From 45ee720bac136875e11ada67d141c462f5b43cfc Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Tue, 14 Oct 2025 16:18:07 -0400 Subject: [PATCH 01/16] docs: enhance documentation with comprehensive content expansions and notification icons - Expand notification settings documentation with detailed configuration options: * Add comprehensive display/behavior settings, notification types, and delivery methods * Include step-by-step SMTP configuration with Gmail app password setup * Add detailed notification agent setup with icons for 13+ services (Discord, Slack, Telegram, etc.) - Significantly expand VM setup documentation with new Unraid 7.x features: * Add comprehensive VM snapshot management (create, revert, block commit/pull) * Include detailed troubleshooting sections and storage considerations * Expand GPU passthrough and PCI device binding documentation - Enhance system administration guides with detailed upgrade/downgrade procedures: * Add a comprehensive downgrade process via the Downgrade OS tool * Include post-downgrade verification and troubleshooting sections * Add warnings about ZFS compatibility and plugin issues - Add Creative Commons license information to the footer configuration - Include 20+ notification service icons (Discord, Slack, Telegram, Pushover, etc.) - Update Docker guide image and other visual assets --- .../customize-unraid-settings.mdx | 153 +++++- .../maintain-and-update/upgrading-unraid.mdx | 202 +++++++- .../secure-your-server/tailscale.mdx | 59 ++- .../common-issues/unclean-shutdowns.mdx | 263 +++++++--- .../vm-conversion-and-migration.mdx | 177 +++---- .../create-virtual-machines/vm-setup.mdx | 157 +++++- .../windows-on-a-vm.mdx | 2 +- .../manage-storage/array-configuration.mdx | 472 ++++++++++++------ docusaurus.config.ts | 10 + i18n/en/docusaurus-theme-classic/footer.json | 8 + static/img/Dockerguide-controlling.png | Bin 25508 -> 68186 bytes .../7a220275-fddc-4d51-a356-0727a2f83a8f.png | Bin 0 -> 47679 bytes static/img/icons/icon-bark.png | Bin 0 -> 17710 bytes static/img/icons/icon-boxcar.png | Bin 0 -> 16084 bytes static/img/icons/icon-discord.png | Bin 0 -> 1018 bytes static/img/icons/icon-discord.svg | 3 + static/img/icons/icon-gotify-alt.svg | 1 + static/img/icons/icon-gotify.png | Bin 0 -> 959 bytes static/img/icons/icon-ntfy.png | Bin 0 -> 534 bytes static/img/icons/icon-prowl.png | Bin 0 -> 1089 bytes static/img/icons/icon-pushbits.png | Bin 0 -> 1180 bytes static/img/icons/icon-pushbullet-alt.png | Bin 0 -> 55876 bytes static/img/icons/icon-pushbullet.png | Bin 0 -> 874 bytes static/img/icons/icon-pushover.png | Bin 0 -> 872 bytes static/img/icons/icon-pushplus.png | Bin 0 -> 9460 bytes static/img/icons/icon-serverchan.png | Bin 0 -> 17952 bytes static/img/icons/icon-serverchan.svg | 3 + static/img/icons/icon-slack-new.png | Bin 0 -> 15855 bytes static/img/icons/icon-slack.png | Bin 0 -> 3305 bytes static/img/icons/icon-slack.webp | Bin 0 -> 34408 bytes static/img/icons/icon-telegram.jpg | Bin 0 -> 27200 bytes static/img/icons/icon-telegram.png | Bin 0 -> 2397 bytes 32 files changed, 1163 insertions(+), 347 deletions(-) create mode 100644 static/img/icons/7a220275-fddc-4d51-a356-0727a2f83a8f.png create mode 100644 static/img/icons/icon-bark.png create mode 100644 static/img/icons/icon-boxcar.png create mode 100644 static/img/icons/icon-discord.png create mode 100644 static/img/icons/icon-discord.svg create mode 100644 static/img/icons/icon-gotify-alt.svg create mode 100644 static/img/icons/icon-gotify.png create mode 100644 static/img/icons/icon-ntfy.png create mode 100644 static/img/icons/icon-prowl.png create mode 100644 static/img/icons/icon-pushbits.png create mode 100644 static/img/icons/icon-pushbullet-alt.png create mode 100644 static/img/icons/icon-pushbullet.png create mode 100644 static/img/icons/icon-pushover.png create mode 100644 static/img/icons/icon-pushplus.png create mode 100644 static/img/icons/icon-serverchan.png create mode 100644 static/img/icons/icon-serverchan.svg create mode 100644 static/img/icons/icon-slack-new.png create mode 100644 static/img/icons/icon-slack.png create mode 100644 static/img/icons/icon-slack.webp create mode 100644 static/img/icons/icon-telegram.jpg create mode 100644 static/img/icons/icon-telegram.png diff --git a/docs/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx b/docs/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx index cbc268cc36..47e0178600 100644 --- a/docs/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx +++ b/docs/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx @@ -209,12 +209,163 @@ Customize the Unraid %%WebGUI|web-gui%% appearance on this page by adjusting the ### Notification Settings -You can configure browser and email notifications on this page, subscribing to different types and setting custom alerts for %%SMART|smart%% attribute values. +Unraid can send you notifications about important system events, updates, and alerts through your browser, email, or third-party notification services. The Notification Settings page allows you to control how and when you receive these notifications. + +To access Notification Settings, navigate to ***Settings → User Preferences → Notification Settings***.
![Notification Settings](/img/settings-notifications.png)
+#### Display and behavior settings + +Configure how notifications appear in your browser: + +- **Notifications display**: Choose between *Detailed* or *Summarized* notification styles +- **Display position**: Set where notifications appear (*top-right*, *top-left*, *bottom-right*, *bottom-left*, or *center*) +- **Auto-close (seconds)**: How long notifications stay visible before automatically closing +- **Date format**: Choose your preferred date format for notification timestamps +- **Time format**: Choose between *12 hours* or *24 hours* time display +- **Store notifications to flash**: Save notification history to your USB flash device (requires flash storage space) + +#### Notification types + +Control which events trigger notifications: + +- **System notifications**: General system events and messages +- **Unraid OS update notification**: Alerts when new Unraid OS versions are available +- **Plugins update notification**: Alerts when plugin updates are available +- **Docker update notification**: Alerts when Docker container updates are available +- **Language update notification**: Alerts when language pack updates are available +- **Array status notification**: Alerts about %%array|array%% events and status changes + +For each notification type, you're able to set the frequency to *Never check*, or checking daily, weekly, monthly, or, in some cases, even multiple times a day. + +#### Delivery methods + +Choose how you want to receive notifications for each category (*Notices*, *Warnings*, and *Alerts*): + +- **Browser**: Display notifications in the %%WebGUI|web-gui%% when you're logged in +- **Email**: Send notifications via email (requires [SMTP configuration](#smtp-settings)) +- **Agents**: Send notifications through configured third-party services + +:::tip + +Enable **Browser** notifications for immediate visibility when using the %%WebGUI|web-gui%%, and **Email** for alerts when you're away from your server. Use **Agents** to integrate with mobile apps and services like Discord or Telegram. + +::: + +#### SMTP Settings + +To receive email notifications, you need to configure your email server settings. Unraid supports many email providers including Gmail, Outlook, and custom SMTP servers. + +The SMTP Settings can be found at ***Settings → User Preferences → Notification Settings → SMTP Settings***. + +**Basic configuration:** + +- **Preset service**: Select a preset configuration (*Gmail*, *Outlook/Hotmail*, or *Custom*) to auto-fill common settings +- **Sending email address**: The email address notifications will be sent from +- **Email recipients**: Comma-separated list of email addresses to receive notifications +- **Priority in header**: Mark emails as high priority (*Yes* or *No*) +- **Email subject prefix**: Text to prepend to all notification email subjects (default: *Unraid Status:*) + +**Server settings:** + +- **Mail server**: SMTP server address (e.g., `smtp.gmail.com`) +- **Mail server port**: SMTP port number (common ports: `465` for SSL/TLS, `587` for STARTTLS, `25` for unencrypted) +- **Use SSL/TLS**: Enable SSL/TLS encryption (*Yes* or *No*) +- **Use STARTTLS**: Use STARTTLS for encryption (*Yes* or *No*) +- **Define a TLS certificate**: Specify a custom TLS certificate if needed (*Yes* or *No*) +- **TLS certificate location**: Path to custom certificate file (only if *Define a TLS certificate* is enabled) + +**Authentication:** + +- **Authentication method**: Choose *None*, *CRAM-MD5*, or *Login* (username/password) +- **Username**: Your email account username (usually your full email address) +- **Password**: Your email account password or app-specific password + +After configuring your settings, use the **TEST** button to verify your email configuration is working correctly. + +##### Configuring Gmail with app passwords + +Gmail requires app-specific passwords when using SMTP with accounts that have 2-step verification enabled (which is recommended for security). + +**To set up Gmail notifications:** + +1. In **Preset service**, select *Gmail* (this will auto-fill the **Mail server** and **Mail server port**) +2. Enter your Gmail address in **Sending email address** +3. Enter recipient email address(es) in **Email recipients** +4. Set **Username** to your full Gmail address (e.g., `yourname@gmail.com`) +5. For **Password**, you'll need to generate an app password: + - Go to your [Google Account settings](https://myaccount.google.com/) + - Navigate to **Security** + - Under "How you sign in to Google," ensure **2-Step Verification** is enabled (required for app passwords) + - In the same section, find and click **App passwords** (or search for "App passwords" in the search bar) + - You may need to verify your identity + - Enter a custom name for the App name, like "Unraid Server". + - Click **Create** + - Google will generate a 16-character password. + - Copy this password and paste it into the **Password** field in Unraid +6. Click **TEST** to verify the configuration +7. Click **DONE** to save your settings + +:::tip[Default Gmail settings] + +- **Mail server**: `smtp.gmail.com` +- **Mail server port**: `465` +- **Use SSL/TLS**: `Yes` +- **Use STARTTLS**: `No` +- **Authentication method**: `Login` + +::: + +:::warning[Security recommendation] + +Always use app passwords instead of your main Gmail password. App passwords can be revoked individually without changing your main account password, providing better security if your Unraid configuration is ever compromised. + +::: + +#### Notification Agents + +Notification agents allow you to send alerts to third-party services and mobile apps. Unraid includes built-in support for many popular notification services. + +To access Notification Agents, click the **Notification Agents** link on the Notification Settings page, or navigate to ***Settings → User Preferences → Notification Settings → Notification Agents***. + +**Built-in agents include:** + +- Bark **Bark**: iOS notification app +- Boxcar **Boxcar**: Push notification service +- Discord **Discord**: Send notifications to Discord channels via webhook +- Gotify **Gotify**: Self-hosted notification server +- ntfy.sh **ntfy.sh**: Simple HTTP-based notification service +- Prowl **Prowl**: iOS push notifications +- Pushbits **Pushbits**: Self-hosted notification relay +- Pushbullet **Pushbullet**: Cross-platform notification service +- Pushover **Pushover**: Push notification service for iOS and Android +- Pushplus **Pushplus**: Chinese push notification service +- ServerChan **ServerChan**: Chinese server monitoring and notification service +- Slack **Slack**: Send notifications to Slack channels via webhook +- Telegram **Telegram**: Send messages to Telegram bot + +**Configuring an agent:** + +1. Select the agent you want to configure from the list +2. Change **Agent function** from *Disabled* to *Enabled* +3. Fill in the required fields for that service: + - Most agents require a **webhook URL**, **API token**, or **access token** + - Some services require additional configuration like channel IDs or group codes +4. Configure **Notification title** (usually set to *Subject* to use the notification subject) +5. Configure **Notification message** (usually set to *Description* to use the full notification text) +6. Click **DONE** to save + +Each agent has different requirements - consult the documentation for your chosen service to obtain the necessary API keys, webhook URLs, or tokens. + +:::tip + +You can enable multiple agents simultaneously. For example, you might use Discord for team notifications and Pushover for personal mobile alerts. Note that **all notifications** are sent to **all enabled agents**, so using multiple agents may result in receiving duplicate notifications. + +::: + ### Scheduler The Scheduler settings page allows you to easily configure the frequency for automated tasks including %%parity checks|parity-check%%, the cache %%Mover|mover%%, and %%TRIM/Discard|trim-discard%% operations for SSDs. 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 e190b4b381..3136d418da 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 @@ -150,23 +150,7 @@ If you run into problems after upgrading, check the relevant section below for a Manual upgrades are infrequently necessary but may be needed if you can't access the %%WebGUI|web-gui%% or need to revert to a prior version. Before proceeding, it's important to back up your USB flash device, details of which you can find in [Backing up your flash device](../maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device). -### Downgrade using the Downgrade OS tool (if WebGUI is accessible) - -If you can reach the WebGUI: - -1. Log in to the %%WebGUI|web-gui%%. -2. Navigate to ***Tools → Downgrade OS***. -3. Your previous version will be listed as the available downgrade option. -4. Click **Downgrade** and follow the prompts. -5. Reboot your server when prompted. - -:::caution - -Keep in mind that downgrading can lead to compatibility issues with plugins or Docker containers. Always back up your USB flash device and any important data beforehand. - -::: - -### Manual methods (if WebGUI is inaccessible) +### Manual upgrades Only use these methods if you can't access the %%WebGUI|web-gui%%: @@ -214,3 +198,187 @@ Only use these methods if you can't access the %%WebGUI|web-gui%%: + +### Downgrade via the Downgrade OS tool + +The **Downgrade OS tool** is designed to help you easily and safely revert to a previous version of Unraid OS. You can access this tool through the %%WebGUI|web-gui%% or the Unraid Connect plugin, so it's convenient for both local and remote management. + +:::info[Prerequisites for downgrading] + +Before you start the downgrading process, please ensure you have: + +- A complete backup of your USB flash device (refer to [Backing up your flash device](../maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device) for guidance) +- The array stopped (this is recommended, but not strictly necessary) +- All important data backed up to avoid any data loss +- An understanding of possible compatibility issues with plugins and Docker containers + +::: + +:::caution[Important considerations] + +Here are some key things to keep in mind: + +- **Plugin compatibility**: Some plugins may not function correctly with older versions of Unraid, especially those featuring the new responsive WebGUI capabilities. +- **Docker containers**: You may need to rebuild your Docker containers after downgrading. +- **VM configurations**: Be prepared to adjust your virtual machine settings. +- **ZFS pools**: If you've upgraded your ZFS pools, downgrading may not be possible. +- **Data integrity**: Always check your data after downgrading to make sure everything is intact. +- **WebGUI features**: New features in the responsive WebGUI might not be available in older versions. +- **Network connectivity issues**: Some versions of Unraid have known connectivity problems that could impact remote access, Docker containers, or network shares. If you're facing network difficulties after an upgrade, consider these factors before deciding to downgrade. + +::: + +:::danger[ZFS compatibility warning] + +If you've upgraded your ZFS pools to utilize newer features, downgrading may be impossible or could lead to data loss. Older versions of Unraid are not compatible with ZFS pools that have newer features. Always verify the version of your ZFS pool before attempting to downgrade. + +Clicking the **Upgrade Pool** buttons in the WebGUI activates new ZFS features that can permanently block you from downgrading to previous versions of Unraid. + +::: + +
+How downgrades are detected and made available - Click to expand/collapse + +The Downgrade OS tool helps you by automatically detecting available downgrade options based on several factors: + +1. **Previous version tracking**: Unraid keeps a record of your last OS version on the USB flash device. +2. **Version compatibility**: Only previous versions that are compatible with your system will be suggested as downgrade options. +3. **System state validation**: The tool checks whether your current system state allows for a safe downgrade. +4. **File integrity verification**: It ensures that all the necessary files for the previous version are present and in good condition. + +**When downgrades become available:** +- After a successful upgrade, your previous version is automatically saved. +- You'll see the downgrade option in ***Tools → Downgrade OS*** within minutes of completing an upgrade. +- The available downgrade options will stay until you perform another upgrade or choose to clean the system manually. + +
+ +To downgrade via the Downgrade OS tool: + + + + + **Method 1: Direct WebGUI access** + + 1. Log in to your Unraid %%WebGUI|web-gui%% using any web browser. + 2. Click on the **Tools** tab at the top of the page. + 3. In the **Tools** menu, find and click on **Downgrade OS**. + 4. You should see your previous version listed as an option for downgrading. + 5. Take a moment to review any warnings or requirements the tool shows before you proceed. + 6. Click on **Downgrade**, then carefully read the confirmation dialog that appears. + 7. Click **Confirm** to kick off the downgrade process. + 8. The system will handle the file replacement automatically. + 9. Once the downgrade is complete, click **Reboot Now**. + 10. After your server restarts, check to see that you're running the expected version. + + **Method 2: Using the top-right dropdown menu** + + 1. Click on the Unraid logo in the upper right corner of the %%WebGUI|web-gui%%. + 2. Choose **Check for Update** from the dropdown menu. + 3. If a downgrade is available, you’ll see a **Downgrade** option here. + 4. Click **Downgrade** and follow the same steps as in Method 1. + + + + + + 1. Log in to [Unraid Connect](https://connect.myunraid.net). + 2. Click on the server that you want to downgrade. + 3. In the server details, click on **Tools** or use the deep linking feature if available. + 4. Click on **Downgrade OS** from the list of tools. + 5. Go through the same confirmation steps as in the WebGUI method. + 6. Keep an eye on the downgrade progress through the Connect interface. + 7. The system will manage the reboot, and you can verify the version remotely. + + :::note[Connect requirements] + + - Your server must be registered with Unraid Connect. + - A valid myunraid.net certificate needs to be set up. + - Make sure remote access is enabled for full functionality. + + ::: + + + + +:::info[What happens during the downgrade process] + +The Downgrade OS tool will automatically handle several important tasks: + +1. **System validation**: It checks that the downgrade is safe to perform. +2. **File backup**: A backup of your current system files will be created. +3. **Version verification**: The tool ensures that the files for the target version are valid and complete. +4. **File replacement**: It replaces the current OS files with the files from the previous version. +5. **Configuration preservation**: Your current settings will be maintained. +6. **System preparation**: The system will be prepared for the previous version. +7. **Reboot scheduling**: A reboot will be scheduled to finish the downgrade. + +::: + +#### Post-downgrade verification + +After the downgrade is complete and your server has rebooted: + +1. **Check the version**: Verify that you're running the version of Unraid you expect. +2. **Test core functionality**: Ensure that the %%array|array%%, Docker, and VM services are working properly. +3. **Verify plugins**: Check that your installed plugins are compatible and functioning as expected. +4. **Test Docker containers**: Start your Docker containers and confirm they are working correctly. +5. **Check VMs**: If you have any virtual machines (VMs), make sure they start and operate properly. See [VM setup](../../using-unraid-to/create-virtual-machines/vm-setup.mdx) for configuration guidance. +6. **Monitor system logs**: Keep an eye on the system logs for any error messages. Use [diagnostics tools](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx) to capture detailed system information. + +#### Troubleshooting downgrade issues + +
+ Downgrade option not available - Click to expand/collapse + + If you don’t see an option to downgrade: + + - **Check system history**: Make sure you've previously upgraded from a compatible version. + - **Verify file integrity**: Previous version files might be corrupted or missing. + - **Check compatibility**: The earlier version may not be compatible with your current hardware. + - **Manual method**: If needed, follow the manual downgrade methods outlined on this page. + +
+ +
+ Downgrade fails during process - Click to expand/collapse + + If the downgrade process doesn't go as planned: + + 1. **Don’t panic**: Your system should still work with the current version. + 2. **Check logs**: Take a look at the system logs to find specific error messages. Use [diagnostics tools](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx) for comprehensive log analysis. + 3. **Verify files**: Ensure that all required files for the target version are available. + 4. **Try the manual method**: If the tool doesn't work, consider using the manual downgrade methods. + 5. **Contact support**: If problems continue, reach out to Unraid support with your diagnostics. + +
+ +
+ System won't boot after downgrade - Click to expand/collapse + + If your system doesn’t boot after downgrading: + +1. **Boot from USB**: Use another computer to access your USB flash device. See [boot troubleshooting](../../troubleshooting/common-issues/boot-and-startup-failures.mdx) for detailed recovery steps. +2. **Restore from backup**: Copy your backup files back to the USB device. + 3. **Check file integrity**: Make sure all system files are present and not damaged. + 4. **Try Safe Mode**: Boot into [Safe Mode](../../using-unraid-to/customize-your-experience/plugins.mdx#troubleshooting-with-safe-mode) for further troubleshooting. + 5. **Manual recovery**: If necessary, utilize the manual recovery methods. + +
+ +
+ Plugins or Docker containers not working - Click to expand/collapse + + After downgrading, some plugins or containers may not function properly: + +- **Update plugins**: Look for plugin updates that work with the downgraded version. Check [Community Applications](../../using-unraid-to/run-docker-containers/community-applications.mdx) for compatible versions. +- **Rebuild Docker**: Delete and recreate your Docker image file. See [Docker troubleshooting](../../troubleshooting/common-issues/docker-troubleshooting.mdx#re-creating-the-docker-image-file) for detailed steps. + - **Check dependencies**: Ensure that all necessary dependencies are available. + - **Plugin compatibility**: Some plugins might not support earlier Unraid versions. + - **Responsive WebGUI plugins**: Plugins designed for newer features may not operate correctly in older versions. + - **Theme plugins**: Visual customization plugins may require updates or removal if they are incompatible. + +
+ + + diff --git a/docs/unraid-os/system-administration/secure-your-server/tailscale.mdx b/docs/unraid-os/system-administration/secure-your-server/tailscale.mdx index 856b5b6e44..0da9d8a2bd 100644 --- a/docs/unraid-os/system-administration/secure-your-server/tailscale.mdx +++ b/docs/unraid-os/system-administration/secure-your-server/tailscale.mdx @@ -43,19 +43,43 @@ The following steps are current and accurate for Unraid 7 and later: 4. Click **Connect** to add your Unraid server to your %%Tailnet|tailnet%%. 5. Visit ***Settings → Management Access*** to see your %%Tailscale|tailscale%% URLs for the %%WebGUI|web-gui%%. 6. In ***Settings → Tailscale***, find your server's %%Tailnet|tailnet%% name and IP. Use these to access SMB/NFS shares, Docker containers, and more from any device on your %%Tailnet|tailnet%%. +7. (Optional) Enable **Include Tailscale peers in /etc/hosts** to automatically add Tailscale devices to your server's hostname resolution, making it easier to access other devices on your %%Tailnet|tailnet%%. ### Subnet routing (optional) To access your Unraid server by its main LAN IP (or to reach Docker containers with their own IPs): -1. Go to ***Settings → Tailscale***, click Viewing, and Sign In. -2. Click **Subnet router** and add: - - Your Unraid server’s IP (e.g., `192.168.0.12/32`), or - - Your whole network’s subnet (e.g., `192.168.0.0/24`). -3. Click **Advertise routes**. -4. Approve the pending route in your Tailscale admin console. -5. Once approved, devices on your %%Tailnet|tailnet%% can access your Unraid server and/or LAN devices by their usual IP addresses. -6. For advanced details, see the [%%Tailscale|tailscale%% %%subnet routing|subnet-routing%% documentation](https://tailscale.com/kb/1019/subnets). +1. Go to ***Settings → Tailscale***, click **Reauthenticate**, and sign in with your Tailscale account. +2. In the Tailscale settings, locate the **Advertise Routes** section and add: + - Your Unraid server's IP (e.g., `192.168.0.12/32`), or + - Your whole network's subnet (e.g., `192.168.0.0/24`). +3. Click **Apply** to save the changes. +4. Log in to your [Tailscale admin console](https://login.tailscale.com/admin) and navigate to the **Machines** page. +5. Locate your Unraid server and approve the pending route for the advertised subnet. +6. Once approved, devices on your %%Tailnet|tailnet%% can access your Unraid server and/or LAN devices by their usual IP addresses. + +:::note + +For advanced details, see the [%%Tailscale|tailscale%% subnet routing documentation](https://tailscale.com/kb/1019/subnets). + +::: + +### Enhanced hostname resolution + +The Tailscale plugin includes an option to automatically add Tailscale peers to your server's `/etc/hosts` file. This feature simplifies device access by enabling hostname-based connections to other devices on your %%Tailnet|tailnet%%. + +Benefits include: + +- Accessing other Tailscale devices using friendly hostnames instead of IP addresses +- Automatic updates when devices join or leave your %%Tailnet|tailnet%% +- Improved compatibility with applications that rely on hostname resolution + +To enable this feature: +1. Go to ***Settings → Tailscale*** in the %%WebGUI|web-gui%%. +2. Enable the **Include Tailscale peers in /etc/hosts** option. +3. Click **Apply** to save the changes. + +Once enabled, you can access other devices on your %%Tailnet|tailnet%% using their Tailscale hostnames from your Unraid server, making it easier to configure services, access shared resources, and manage your network. --- @@ -131,7 +155,7 @@ When using Serve or Funnel, there’s no extra authentication layer - your conta ::: -11. **Apply** your changes and check the **Container log** for Tailscale messages. Click the "To authenticate, visit" link to approve the container on your Tailnet. +11. **Apply** your changes and check the **Enhanced Log** or **Log Viewer** for Tailscale messages. Click the **To authenticate, visit...** link to approve the container on your Tailnet. :::caution[Troubleshooting] @@ -150,15 +174,18 @@ When using Serve or Funnel, there’s no extra authentication layer - your conta %%Tailscale|tailscale%% is updated frequently to deliver new features and security improvements. To keep your Unraid system secure and compatible, make sure both the Unraid %%Tailscale|tailscale%% plugin and any Docker containers using %%Tailscale|tailscale%% are up to date. -To update %%Tailscale|tailscale%%: +### Updating the Tailscale Plugin + +When a new version is available, update the plugin through the Unraid Apps tab just like any other plugin. The plugin is actively maintained and regularly updated with the latest Tailscale features. You can always review the latest Tailscale changes in the [%%Tailscale|tailscale%% changelog](https://tailscale.com/changelog) and the [plugin release notes](https://github.com/unraid/unraid-tailscale/releases). + +### Updating Tailscale in Docker Containers -- **Update the Unraid %%Tailscale|tailscale%% plugin:** When a new version is available, update the plugin through the Unraid Apps tab just like any other plugin. You can always review the latest changes in the [%%Tailscale|tailscale%% changelog](https://tailscale.com/changelog). +To update %%Tailscale|tailscale%% in Docker containers: -- **Update %%Tailscale|tailscale%% in Docker containers:** - 1. On the Docker page, hover over the %%Tailscale|tailscale%% icon for any container. If an update is available, you'll see a notification. - 2. Update the container by either: - - Switching to **Advanced View** (upper right corner), then clicking **Force update**. - - Editing the container, making a minor change (like toggling a setting), and clicking **Apply**. +1. On the Docker page, hover over the %%Tailscale|tailscale%% icon for any container. If an update is available, you'll see a notification. +2. Update the container by either: + - Switching to **Advanced View** (upper right corner), then clicking **Force update**. + - Editing the container, making a minor change (like toggling a setting), and clicking **Apply**. --- diff --git a/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx b/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx index 511a7b6704..c9420fb80b 100644 --- a/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx +++ b/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx @@ -59,11 +59,11 @@ Understanding the main triggers for unclean shutdowns helps you prevent them. Ex - Unraid waits for all open terminal or SSH sessions to close during shutdown. If these sessions remain active and the shutdown timer expires, a forced shutdown occurs. + Unraid waits for all open terminal or %%SSH|ssh%% sessions to close during shutdown. If these sessions remain active and the shutdown timer expires, a forced shutdown occurs. :::tip - The [Dynamix Stop Shell](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository) plugin can automatically close lingering bash or SSH sessions, helping ensure a graceful shutdown. However, be cautious if there are ongoing write operations to the %%array|array%%. + The [Dynamix Stop Shell](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository) plugin can automatically close lingering bash or %%SSH|ssh%% sessions, helping ensure a graceful shutdown. However, be cautious if there are ongoing write operations to the %%array|array%%. ::: @@ -74,100 +74,249 @@ Understanding the main triggers for unclean shutdowns helps you prevent them. Ex ## Configuring shutdown timeouts -Properly configuring shutdown timeouts is essential to ensure your Unraid server can stop all services effectively, preventing unclean shutdowns, particularly during power loss or maintenance. Each component of your system - %%VM|vm%%s, Docker containers, and the overall %%array|array%% - has its own timeout setting that can be adjusted. +Properly configuring shutdown timeouts is essential to ensure your Unraid server can stop all services effectively. This prevents unclean shutdowns, especially during power loss or maintenance. The most important step is to configure your %%VMs|vm%% to hibernate instead of shutting down. This approach helps eliminate many timeout-related issues. -### Recommended timeout settings +### VM hibernation setup -| Setting | Default | Recommended minimum | Where to configure | +:::tip[Use VM hibernation] + +For the most reliable and fastest shutdowns, configure your %%VMs|vm%% to hibernate instead of shutting down. This is especially important for Windows %%VMs|vm%% but benefits all %%VM|vm%% types. + +We recommend using hibernation because it: + +- **Saves VM state instantly** - No waiting for the guest OS to shut down. +- **Prevents data loss** - No risk of interrupting updates or unsaved work. +- **Avoids timeout issues** - Hibernation is nearly instantaneous. +- **Faster recovery** - %%VMs|vm%% resume exactly where they left off. + +Shutdown can be problematic because: + +- Windows may display dialog boxes ("Save this document?") that halt the shutdown indefinitely. +- Windows updates can take 10+ minutes during shutdown. +- If the timeout expires, Unraid force-kills the %%VM|vm%%, potentially corrupting in-progress Windows updates, unsaved documents, application data, and file systems in the guest OS. + +**Critical requirement:** Ensure the %%QEMU|qemu%% %%Guest Agent|guest-agent%% is installed in the %%VM|vm%% for hibernation to function correctly. + +::: + +To enable VM hibernation: + + + + + 1. **Download %%QEMU|qemu%% %%Guest Agent|guest-agent%%:** + - Go to the [VirtIO drivers download page](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/). + - Download the latest `virtio-win.iso` file. + + 2. **Install in Windows %%VM|vm%%:** + - Mount the `virtio-win.iso` to your %%VM|vm%%. + - Run the installer from the mounted ISO. + - Install both %%VirtIO|virtio%% drivers AND %%QEMU|qemu%% %%Guest Agent|guest-agent%%. + - Restart the %%VM|vm%%. + + 3. **Configure in Unraid:** + - Go to your %%VM|vm%% settings in the ***VMs*** tab. + - Set **Shutdown Action** to **Hibernate**. + - Click **Apply**. + + + + + + 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 + ``` + + 2. **Enable the service:** + ```bash + sudo systemctl enable qemu-guest-agent + sudo systemctl start qemu-guest-agent + ``` + + 3. **Configure in Unraid:** + - Set **Shutdown Action** to **Hibernate** in your %%VM|vm%% settings. + + + + + + Some %%VMs|vm%%, like Home Assistant, don't allow the installation of additional software. For these: + + - Keep **Shutdown Action** set to **Shutdown**. + - Use longer timeout values (see timeout recommendations below). + - 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. + + ::: + + + + +Now to verify your hibernation works, start your %%VM|vm%% and open some applications. Then stop it from Unraid. When you start it again, it should resume with all applications still open. + +:::warning[Guest Agent is critical] + +Without the %%QEMU|qemu%% %%Guest Agent|guest-agent%% installed, hibernation may not work properly. In that case, the %%VM|vm%% will revert to shutdown mode, consuming the full timeout period. + +::: + +### Timeout configuration + +In this section, we’ll cover how to configure timeouts for various systems and processes. This information is important to ensure that your %%VMs|vm%% and Docker containers shut down gracefully without data loss. + +| Setting | Default | When to increase | Where to configure | | ----------------------------- | ------- | ------------------------------------------------ | ---------------------------------------------------- | -| %%VM\|vm%% shutdown timeout | 60s | 300s (5 min) | ***Settings → VM Manager → VM Shutdown (Advanced)*** | -| Docker container stop timeout | 10s | 30–60s | ***Settings → Docker (Advanced)*** | -| General shutdown timeout | 90s | 3 × %%VM\|vm%% timeout + Docker timeout + 15–30s | ***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*** | -### Virtual machines timeout +:::tip[When to increase timeouts] -
- Click to expand/collapse +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. +::: - Unraid first shuts down all configured virtual machines (%%VMs|vm%%) before stopping Docker containers or the %%array|array%% itself. The VM Shutdown Timeout determines how long Unraid waits for each %%VM|vm%% to shut down gracefully. +### Shutdown sequence -

Where to set

+When shutting down, the process happens in the following order: - - ***Settings → VM Manager → VM Shutdown*** (enable Advanced view) +1. **%%VM|vm%% shutdown**: This 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%% + + All %%VMs|vm%% in each stage are processed at the same time, meaning the total shutdown time can be calculated as: VM timeout × 3. -

Consider

+2. **Docker containers stop**: All containers will stop simultaneously (total time = Docker timeout). - - Windows %%VMs|vm%% may take longer to shut down, especially if updates are pending or the %%VM|vm%% is in sleep/hibernation. - - If the timeout is too short, %%VMs|vm%% will be force-stopped, risking data loss or corruption. +3. **Other services**: This includes tasks like LXC containers and third-party plugins, which usually take a few seconds. -

Best practice

+4. **Array shutdown**: Drives need to be unmounted and data synced; this typically takes 15-30 seconds. - Set the timeout to at least 300 seconds (5 minutes) for Windows %%VMs|vm%%. Schedule updates to run at boot, not shutdown, to avoid delays. +:::tip[Calculate your general shutdown timeout] -
+**Formula:** Your general shutdown timeout should be greater than: +``` +(VM timeout × 3) + (Docker timeout) + (Other services) + 15-30 seconds +``` -### Docker containers timeout +**Example:** If we follow the formula, it would look like this: `(300 × 3) + 30 + 10 + 30 = 970 seconds (over 16 minutes)`. -
- Click to expand/collapse +**Recommended:** At least **180 seconds (3 minutes)** at minimum and **300+ seconds (5+ minutes)** if you have multiple %%VMs|vm%% or complex containers. - After %%VMs|vm%%, Unraid stops all running Docker containers. The Docker Container Stop Timeout controls how long Unraid waits for each container to exit cleanly. +::: -

Where to set

+If all your %%VMs|vm%% are set to hibernate rather than shutting down, then the VM timeout is less critical since hibernation is nearly immediate. You could use a lower VM timeout (for example, 60-120 seconds) as a backup for any %%VMs|vm%% that don’t support hibernation. - - ***Settings → Docker*** (enable Advanced view) +### Detailed configuration guide -

Consider

+This section provides in-depth information about configuring timeouts for different system components. Each timeout setting works together to ensure your server shuts down gracefully without data loss. - - Containers are stopped in parallel. - - Complex containers, or those with large databases, may need more than the default 10 seconds to shut down safely. - - If the timer expires, containers are force-stopped. + + -

Best practice

- Increase the timeout to 30–60 seconds if you run Docker containers that require additional shutdown time. + Where to set: ***Settings → VM Manager → VM Shutdown*** (enable Advanced view) -
+ **How it works:** + - %%VMs|vm%% go through three shutdown stages, each consuming the full VM timeout + - All %%VMs|vm%% in each stage are processed simultaneously + - Total VM shutdown time = VM timeout × 3 -### General shutdown timer + **Common issues:** + - **Windows update interruptions:** Updates during shutdown can be corrupted if timeout expires. + - **Unsaved work:** Dialog boxes asking to save documents can halt shutdown indefinitely. + - **Hibernation failures:** %%VMs|vm%% without %%QEMU|qemu%% %%Guest Agent|guest-agent%% may fail to hibernate and use full timeout. -
- Click to expand/collapse + :::tip[VM timeout recommendations] + - **Primary recommendation:** Configure %%VMs|vm%% to hibernate instead of shutting down (requires %%QEMU|qemu%% %%Guest Agent|guest-agent%%). + - **If VMs crash during shutdown:** Increase timeout to **300 seconds (5 minutes)** for Windows %%VMs|vm%%. + - **Windows updates:** Set Windows to install updates at startup rather than during shutdown. + - **Test your setup:** Manually stop your %%VMs|vm%% to confirm they shut down or hibernate within the timeout period. + ::: - The overall Shutdown time-out is the maximum time Unraid allows for all shutdown processes - %%VM|vm%%s, Docker, and disk operations - before forcing a 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. + ::: + + + + -

Where to set

+ Where to set: ***Settings → Docker*** (enable Advanced view) + + **How it works:** + - Containers are stopped in parallel, so total time equals the Docker stop timeout. + - Most containers stop within 10 seconds, but some may need more time. + - Complex containers with large databases or ongoing operations might require additional time. + - If the timer expires, containers are force-stopped. + + :::tip[Docker timeout recommendations] + - The **default 10 seconds** works well for most containers. + - **If containers are crashing when stopped:** Increase timeout to **30 seconds**. + - Monitor your containers during shutdown to identify any that consistently need more time. + ::: - - ***Settings → Disk Settings → Shutdown time-out*** +
-

How to calculate

+ - Add up your %%VM|vm%% and Docker timeouts, then add 15–30 seconds for disk unmounting and other processes. + Where to set: ***Settings → Disk Settings → Shutdown time-out*** - - Example: `3 × ***VM Shutdown timeout*** + ***Docker stop timeout*** + 15–30 seconds` + **UPS considerations (most critical factor):** + - Your UPS must provide enough runtime to complete the full shutdown sequence before battery runs out. + - For **manual shutdown**, you can set longer timeouts since you control when shutdown starts. + - With **power outage shutdown**, your timeout is limited by UPS battery life. + - **Test your UPS** by simulating a power outage to ensure your server shuts down cleanly with time to spare. -

Best practice

- Set this timer high enough to cover your slowest shutdown scenario, especially if you have many drives or a large %%array|array%%. + :::tip[General timeout recommendations] + - **If you get unclean shutdowns:** Increase to **180 seconds (3 minutes)** for systems without %%VMs|vm%%. + - **For systems with %%VMs|vm%%:** Use **300+ seconds (5+ minutes)** if not using hibernation. + - **If using hibernation:** **180-300 seconds** is usually sufficient. + - Ensure timeouts are not longer than what your UPS can support during a power outage. + ::: -
+
-### UPS battery life + -
- Click to expand/collapse + **LXC containers:** + The LXC plugin has its own timeout setting for stopping containers. Like Docker containers, LXC containers typically stop within a few seconds, but some may require more time. Check the LXC plugin settings for the container stop timeout and include this timeout in your general shutdown timeout calculation. - Your UPS must provide enough runtime to allow all shutdown timers to expire before the server loses power. + **Other services:** + Some plugins or custom services may have their own shutdown procedures. Refer to the plugin documentation for specific timeout settings and incorporate them into your calculations. -

Where to set

+ **Updated formula with third-party services:** + ``` + (VM timeout × 3) + (Docker timeout) + (LXC/other timeouts) + 15-30 seconds + ``` - - ***Settings → UPS Settings*** (see **Runtime left** with all disks spun up) + **Dynamix Stop Shell plugin:** + If you frequently use SSH or terminal sessions, open sessions can prevent clean shutdowns because Unraid waits for them to close before proceeding. -

Consider

+ The [Dynamix Stop Shell](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository) plugin helps by automatically closing lingering bash or SSH sessions when the array is stopped, ensuring a timely shutdown. - - The UPS should trigger a shutdown early enough to allow the full shutdown sequence to complete. - - If the battery runs out before shutdown completes, you risk an unclean shutdown and possible data loss. + You can install it from [Community Applications (search for "Dynamix Stop Shell")](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository). -

Best practice

+ :::tip[When to use the plugin] + - If you regularly have terminal sessions open. + - To prevent forgotten SSH sessions from delaying shutdown. + - For automated cleanup during shutdown. + ::: - Test your UPS by simulating a power outage and confirming that Unraid shuts down cleanly with time to spare. + :::caution + - Be cautious if you have scripts or processes running in terminal sessions. + - Ensure no critical write operations are in progress before shutdown. + - The plugin will forcefully close sessions, which could interrupt work. + ::: -
+
+ diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx index c1189ca281..3f8b23d543 100644 --- a/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx @@ -3,8 +3,8 @@ sidebar_position: 5 sidebar_label: VM conversion & migration --- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; # VM conversion and migration @@ -163,7 +163,7 @@ There are two common ways to migrate a Windows installation to a %%VM|vm%% in Un **Disk image conversion:** This converts the physical disk to a %%virtual disk|vdisk%% image (`.img`) for use in the %%VM|vm%%. -- Pros: More flexibility, allows the disk to be used as an Unraid share or for snapshots. +- Pros: More flexibility, allows the disk to be used as an Unraid share or for [%%VM|vm%% snapshots](./vm-setup.mdx#vm-snapshots). - Cons: Requires time and free space for the conversion process. Choose passthrough if you want a simple migration or plan to dual-boot the disk. Opt for image conversion for better portability and backup options. @@ -204,6 +204,7 @@ Sysprep is built into Windows and eliminates unique system information, preparin ```bash cd C:\Windows\System32\Sysprep ``` + - Execute sysprep with generalization: ```bash sysprep.exe /generalize /shutdown /oobe @@ -328,138 +329,138 @@ To convert a Windows VM from %%Xen|xen-hvm%% to %%KVM|kvm%%, follow these steps.
Step 1: Determine if your VM uses Xen's GPLPV drivers - Click to expand/collapse - 1. Inside your %%Xen|xen-hvm%% VM, open **Windows Device Manager** (press *Windows key + X*, then select **Device Manager**). - 2. Expand **Network adapters** and check the device name. - - If the name contains "Xen," you are using GPLPV drivers. - - If it doesn't, skip to the step about rebooting into %%KVM|kvm%% mode. +1. Inside your %%Xen|xen-hvm%% VM, open **Windows Device Manager** (press _Windows key + X_, then select **Device Manager**). +2. Expand **Network adapters** and check the device name. + - If the name contains "Xen," you are using GPLPV drivers. + - If it doesn't, skip to the step about rebooting into %%KVM|kvm%% mode. - :::tip +:::tip - If you are not using GPLPV drivers, you can skip the next several steps and continue from the rebooting into %%KVM|kvm%% mode section. +If you are not using GPLPV drivers, you can skip the next several steps and continue from the rebooting into %%KVM|kvm%% mode section. - ::: +:::
Step 2: Prepare Windows for GPLPV driver removal - Click to expand/collapse - 1. Open a command prompt as Administrator (**Start menu** → type `cmd` → right-click **Command Prompt** → select **Run as administrator**). - 2. Enter the following command: - ``` - bcdedit -set loadoptions nogplpv - ``` - 3. Reboot your VM. +1. Open a command prompt as Administrator (**Start menu** → type `cmd` → right-click **Command Prompt** → select **Run as administrator**). +2. Enter the following command: + ``` + bcdedit -set loadoptions nogplpv + ``` +3. Reboot your VM.
Step 3: Uninstall GPLPV drivers - Click to expand/collapse - After the reboot, purge all %%Xen|xen-hvm%% GPLPV drivers from your system using the comprehensive manual removal process documented in the [Xen Project Wiki](https://wiki.xenproject.org/wiki/Xen_Windows_GPLPV). +After the reboot, purge all %%Xen|xen-hvm%% GPLPV drivers from your system using the comprehensive manual removal process documented in the [Xen Project Wiki](https://wiki.xenproject.org/wiki/Xen_Windows_GPLPV). - :::caution +:::caution - GPLPV removal requires extensive registry editing and manual file deletion. Follow the Xen Project Wiki instructions **exactly** as written, as errors can cause system instability or boot failures. +GPLPV removal requires extensive registry editing and manual file deletion. Follow the Xen Project Wiki instructions **exactly** as written, as errors can cause system instability or boot failures. - ::: +:::
Step 4: Create a new KVM virtual machine - Click to expand/collapse - 1. Ensure the **VM manager** is enabled: - - Go to ***Settings → VM manager***. - - Set **Enable VMs** to **Yes**. - - Download the latest **VirtIO drivers ISO** for Windows by selecting it from the dropdown menu and clicking **Download**. +1. Ensure the **VM manager** is enabled: + - Go to **_Settings → VM manager_**. + - Set **Enable VMs** to **Yes**. + - Download the latest **VirtIO drivers ISO** for Windows by selecting it from the dropdown menu and clicking **Download**. - 2. Navigate to the **VMs** tab and click **Add VM**. +2. Navigate to the **VMs** tab and click **Add VM**. - 3. Select the Windows version that matches your original %%Xen|xen-hvm%% virtual machine. +3. Select the Windows version that matches your original %%Xen|xen-hvm%% virtual machine. - 4. Configure the basic settings: - - **Name**: Assign a descriptive name to your VM. - - **VirtIO drivers ISO**: Choose the version you just downloaded. +4. Configure the basic settings: + - **Name**: Assign a descriptive name to your VM. + - **VirtIO drivers ISO**: Choose the version you just downloaded. - 5. Under **Primary vDisk Location**: - - Browse and select your existing %%Xen|xen-hvm%% virtual disk. +5. Under **Primary vDisk Location**: + - Browse and select your existing %%Xen|xen-hvm%% virtual disk. - 6. Add a **temporary secondary vDisk**: - - Click the green plus sign. - - Set the size to **1M** (this will enforce IDE bus compatibility during the initial boot). - - Choose any temporary directory for the location (this will be removed later). +6. Add a **temporary secondary vDisk**: + - Click the green plus sign. + - Set the size to **1M** (this will enforce IDE bus compatibility during the initial boot). + - Choose any temporary directory for the location (this will be removed later). - 7. Leave the other settings for graphics and sound at their default values, then click **Create**. +7. Leave the other settings for graphics and sound at their default values, then click **Create**. - 8. Immediately force-stop the VM: - - Click the VM icon and choose **Force stop**. +8. Immediately force-stop the VM: + - Click the VM icon and choose **Force stop**. - 9. Edit the VM configuration: - - Click the VM icon and select **Edit**. - - Switch to **XML view** using the toggle in the top-right corner. +9. Edit the VM configuration: + - Click the VM icon and select **Edit**. + - Switch to **XML view** using the toggle in the top-right corner. - 10. Modify the primary disk XML: - - Locate the `` section for your primary virtual disk. - - Remove the entire `
` line. - - Change `bus='virtio'` to `bus='ide'` in the `` tag. - - Click **Update**. +10. Modify the primary disk XML: + - Locate the `` section for your primary virtual disk. + - Remove the entire `
` line. + - Change `bus='virtio'` to `bus='ide'` in the `` tag. + - Click **Update**. - :::tip[Why the temporary disk?] +:::tip[Why the temporary disk?] - The 1MB temporary disk forces Unraid to assign the primary disk as `hda` (IDE) instead of `vda` (%%VirtIO|virtio%%), allowing Windows to boot without %%VirtIO|virtio%% drivers initially. This temporary disk will be removed after the driver installation. +The 1MB temporary disk forces Unraid to assign the primary disk as `hda` (IDE) instead of `vda` (%%VirtIO|virtio%%), allowing Windows to boot without %%VirtIO|virtio%% drivers initially. This temporary disk will be removed after the driver installation. - ::: +:::
Step 5: Install VirtIO drivers - Click to expand/collapse - 1. Start the VM from the **VMs** tab. - 2. Connect via %%VNC|vnc-session%% by clicking the VM icon and select **Start with console (VNC)**. - 3. During boot: - - Windows will detect new hardware but might fail to install drivers. - - Choose **Reboot later** when prompted. - 4. Open **Device Manager** (press Win+X and choose Device Manager): - - Install drivers for each device listed under **Other devices** (like Ethernet Controller, PCI Device, etc.): - 1. Right-click the device and select **Update driver**. - 2. Choose **Browse my computer for drivers**. - 3. Point to the %%VirtIO|virtio%% ISO drive (for example, `D:\`). - 4. Check **Include subfolders**. - 5. If prompted, accept **Always trust Red Hat**. - 5. Install the %%QEMU|qemu%% %%guest agent|guest-agent%%: - - Open File Explorer and navigate to `D:\guest-agent\`. - - Double-click `qemu-ga-x64.msi`. - 6. Shut down the VM. +1. Start the VM from the **VMs** tab. +2. Connect via %%VNC|vnc-session%% by clicking the VM icon and select **Start with console (VNC)**. +3. During boot: + - Windows will detect new hardware but might fail to install drivers. + - Choose **Reboot later** when prompted. +4. Open **Device Manager** (press Win+X and choose Device Manager): + - Install drivers for each device listed under **Other devices** (like Ethernet Controller, PCI Device, etc.): + 1. Right-click the device and select **Update driver**. + 2. Choose **Browse my computer for drivers**. + 3. Point to the %%VirtIO|virtio%% ISO drive (for example, `D:\`). + 4. Check **Include subfolders**. + 5. If prompted, accept **Always trust Red Hat**. +5. Install the %%QEMU|qemu%% %%guest agent|guest-agent%%: + - Open File Explorer and navigate to `D:\guest-agent\`. + - Double-click `qemu-ga-x64.msi`. +6. Shut down the VM.
Step 6: Finalize the VM configuration - Click to expand/collapse - 1. Edit the VM: - - Remove the temporary secondary %%vDisk|vdisk%% by clicking the red minus icon. - - Confirm that the primary %%vDisk|vdisk%% points to your original %%Xen|xen-hvm%% disk. - 2. Update the VM: - - Click **Update** to save your changes. - 3. Start the VM normally. - 4. Verify in **Device Manager** that: - - No warning icons appear. - - All devices utilize %%VirtIO|virtio%% drivers (for example, "Red Hat %%VirtIO|virtio%% Ethernet Adapter"). - 5. (Optional) Enable %%VirtIO|virtio%% for better performance: - - Edit the VM and switch to XML view. - - Change the primary disk's `bus` from `ide` to `virtio`. - - Click **Update** and reboot the VM. - - :::tip[Driver troubleshooting] - - If you notice errors on devices after migration: - - 1. Reinstall the %%VirtIO|virtio%% drivers from the ISO. - 2. Check for Windows updates, which may provide newer drivers. - 3. Visit the [Red Hat VirtIO Drivers](https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/) page for the latest versions. - - ::: +1. Edit the VM: + - Remove the temporary secondary %%vDisk|vdisk%% by clicking the red minus icon. + - Confirm that the primary %%vDisk|vdisk%% points to your original %%Xen|xen-hvm%% disk. +2. Update the VM: + - Click **Update** to save your changes. +3. Start the VM normally. +4. Verify in **Device Manager** that: + - No warning icons appear. + - All devices utilize %%VirtIO|virtio%% drivers (for example, "Red Hat %%VirtIO|virtio%% Ethernet Adapter"). +5. (Optional) Enable %%VirtIO|virtio%% for better performance: + - Edit the VM and switch to XML view. + - Change the primary disk's `bus` from `ide` to `virtio`. + - Click **Update** and reboot the VM. + +:::tip[Driver troubleshooting] + +If you notice errors on devices after migration: + +1. Reinstall the %%VirtIO|virtio%% drivers from the ISO. +2. Check for Windows updates, which may provide newer drivers. +3. Visit the [Red Hat VirtIO Drivers](https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/) page for the latest versions. + +:::
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 9656c26ad6..8a066bda2c 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 @@ -2,14 +2,16 @@ sidebar_position: 2 sidebar_label: VM setup --- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; # VM setup -Setting up a virtual machine (VM) on Unraid is a flexible way to run full operating systems - such as Windows, Linux, or other platforms - alongside your containers and native apps. Whether you want to test new software, run legacy applications, host a desktop environment, or utilize hardware passthrough for gaming or creative work, Unraid’s **VM Manager** makes the process approachable for all skill levels. +Setting up a %%VM|vm%% on Unraid is a flexible way to run full operating systems - such as Windows, Linux, or other platforms - alongside your containers and native apps. Whether you want to test new software, run legacy applications, host a desktop environment, or utilize hardware passthrough for gaming or creative work, Unraid's **VM Manager** makes the process approachable for all skill levels. :::tip[New in Unraid 7.0] -Unraid 7.x brings significant enhancements to %%virtual machines (VMs)|vm%%, including: +Unraid 7.x brings significant enhancements to %%VMs|vm%%, including: - %%VM|vm%% clones and snapshots - User-created %%VM|vm%% templates @@ -24,7 +26,7 @@ If you haven’t done so already, please review the [Overview & system prep](./o ## Creating your own virtual machines -With your system prepared and preferences set, you can create a new %%virtual machine (VM)|vm%% using the %%WebGUI|web-gui%%. +With your system prepared and preferences set, you can create a new %%VM|vm%% using the %%WebGUI|web-gui%%. :::note[Before you begin] @@ -71,7 +73,7 @@ To create a user template: To use a user template: -- On the **VMs** page, click **add VM** and select your template from the **user templates** section. +- On the **VMs** page, click **Add VM** and select your template from the **User Templates** section. Import/export: @@ -82,7 +84,7 @@ Import/export: ## New in Unraid 7.x: VM Manager -Unraid 7.x introduces a range of powerful enhancements to the **%%VM|vm%% Manager**, streamlining the process of running and managing %%virtual machines|vm%%. These features cater to beginners and advanced users, making deploying, customizing, and optimizing your %%VMs|vm%% simpler. +Unraid 7.x introduces a range of powerful enhancements to the **%%VM|vm%% Manager**, streamlining the process of running and managing %%VMs|vm%%. These features cater to beginners and advanced users, making deploying, customizing, and optimizing your %%VMs|vm%% simpler. :::tip[Highlights] @@ -95,8 +97,8 @@ Unraid 7.x introduces a range of powerful enhancements to the **%%VM|vm%% Manage
Workflow enhancements - - **VM clones & snapshots:** Duplicate %%VMs|vm%% or quickly save/restore their state for testing or backup. - - **User VM templates:** Save your custom %%VM|vm%% configurations and deploy new %%VMs|vm%% with just a few clicks. + - **%%VM|vm%% clones & [snapshots](#managing-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. @@ -139,6 +141,139 @@ Unraid 7.x introduces a range of powerful enhancements to the **%%VM|vm%% Manage
+--- + +## VM snapshots + +VM snapshots allow you to save the current state of your %%VM|vm%% at a specific point in time. You can revert to that state if something goes wrong or use snapshots to test changes safely. This is particularly useful before installing new software, making configuration changes, or performing system updates. + +:::info[How VM snapshots work] + +When you create a snapshot, Unraid generates an "overlay file" that captures all changes made to your VM after that point. You can think of it like this: + +- **Original VM disk**: This represents your VM's current state (similar to a photograph). +- **Snapshot overlay**: This is a separate file that records all changes made after the snapshot (like a list of edits). +- **VM continues running**: Your VM uses both the original disk and the overlay file together. + +This setup allows you to create multiple snapshots, with each one generating its own overlay file. This means you can easily revert to any previous state. + +**Example scenario:** +1. You create a snapshot called "Clean Windows Install." +2. You install some software and make changes. +3. You create another snapshot called "After Software Install." +4. You can now revert to either the clean install or the state after the software installation. +5. You can also use Block Commit or Block Pull to make changes permanent. + +::: + + + + +To create a snapshot of your %%VM|vm%%: + +1. Go to the **VMs** page in the %%WebGUI|web-gui%%. +2. Click on the %%VM|vm%% name to expand its details. +3. Look for the **Snapshots** section and click **Create Snapshot**. +4. Enter a descriptive name for your snapshot (for example, "Before Windows Update" or "Clean Install State"). +5. **Memory dump option**: If your %%VM|vm%% is running, leave "Memory dump" checked (selected by default). This ensures the snapshot includes the %%VM|vm%%'s memory state for a clean restore. Without this option, the snapshot could be prone to permanent crash state. +6. Click **Create** to save the snapshot. + +:::tip[Best practices] + +- Create snapshots before making significant changes to your %%VM|vm%%. +- Use descriptive names that help you remember what the snapshot contains. +- Keep snapshots for important milestones, but delete old ones to save storage space. + +::: + + + + +Once you have snapshots, you can see them listed in the %%VM|vm%%'s details section. Each snapshot shows: +- **Name**: The name you gave the snapshot. +- **Date**: When the snapshot was created. +- **Size**: How much storage space it uses. + +To manage snapshots: + +1. Go to the **VMs** tab in the %%WebGUI|web-gui%%. +2. Click on the %%VM|vm%% name to expand its details. +3. Navigate to the **Snapshots** section. +4. Use the available buttons for **Revert**, **Block Commit**, **Block Pull**, or **Remove**. + +:::tip +**Revert snapshot**: This restores your %%VM|vm%% to exactly how it was when you created the snapshot. Any changes made after the snapshot will be lost. The VM will use the original disk file as if the snapshot never existed. + +**Block Commit**: This process copies all changes from the snapshot overlay back into the original %%VM|vm%% disk file. By default, it shows "Pivot" and "Delete" options selected: + +- **Pivot**: This option switches your VM from using the overlay file back to using the original disk file. After the commit, your VM will use the original disk (which now contains the changes) instead of the overlay file. + +- **Delete**: This option removes the snapshot overlay file after the changes have been committed to the original disk. + +- **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. + + +**Block Pull**: This merges the original disk data into the snapshot overlay file, making the overlay file complete and independent. Your VM continues using the overlay file, but it no longer depends on the original disk. Use this when you want to keep your current state and make the snapshot permanent. + +**Remove snapshot**: This simply deletes the snapshot overlay file without affecting your %%VM|vm%%. Your %%VM|vm%% continues using the original disk file, and any changes made after the snapshot are lost. + +::: + + + + +If you need to go back to a previous state: + +1. Stop the %%VM|vm%% if it's currently running. +2. Go to the **VMs** tab in the %%WebGUI|web-gui%%. +3. Click on the %%VM|vm%% name to expand its details. +4. Navigate to the **Snapshots** section. +5. Find the snapshot you want to restore and click the **Revert** button. +6. Confirm that you want to revert (this will lose any changes made after the snapshot). +7. Start your %%VM|vm%% - it will now be exactly as it was when you created the snapshot. + +:::caution[Data loss warning] + +Reverting to a snapshot permanently deletes any changes made after that snapshot was created. Make sure you really want to lose those changes before reverting. + +::: + + + + +### Snapshot storage + +Snapshots use storage space on your system. Each snapshot saves only the differences between the current state and the snapshot state; however, these differences can still accumulate over time. + +Here are some points to consider: + +- **QCOW2 disks** support snapshots and work well with this feature. +- **Storage location**: Snapshots are stored with your %%VM|vm%% files, so make sure you have enough space on your %%cache pools|cache-pool%% or %%array|array%%. + +**Snapshot storage location:** +- Snapshot metadata is stored in `/etc/libvirt/qemu/snapshotdb/VM_name/`. +- Actual snapshot data is stored alongside your %%VM|vm%% files on %%cache pools|cache-pool%% or %%array|array%%. + +:::info[Advanced snapshot concepts] + +For more detailed technical information about how VM snapshots work, including block diagrams and advanced scenarios with multiple snapshots, see the [QEMU snapshots documentation](https://kashyapc.fedorapeople.org/virt/lc-2012/snapshots-handout.html). + +::: + +:::tip[Common use cases] + +- **Before system updates**: Create a snapshot before installing Windows updates or Linux package updates. If something goes wrong, you can quickly revert to a previous version. +- **Testing software**: Install new applications or make configuration changes. If you're not satisfied with the results, revert to your clean %%VM|vm%% snapshots from before the changes. +- **Development work**: Create snapshots at different stages of your project. This lets you experiment freely and return to known good states. +- **Backup strategy**: While not a replacement for proper backups, snapshots provide quick recovery for recent changes. + +::: + + --- ## Using virtual GPUs and GPU sharing @@ -224,7 +359,7 @@ Unraid now supports advanced GPU sharing via `VirGL` and `QXL` for Linux %%VMs|v ## Binding PCI devices for passthrough -Before you can assign a GPU or any PCI device to a %%virtual machine|vm%%, it's important to “bind” the device to the **vfio-pci** driver. This process hides the device from Unraid and dedicates it solely to your %%VM|vm%%. +Before you can assign a GPU or any PCI device to a %%VM|vm%%, it's important to "bind" the device to the **vfio-pci** driver. This process hides the device from Unraid and dedicates it solely to your %%VM|vm%%. To bind a PCI device (GPU, USB controller, NVMe, etc.) for passthrough: @@ -259,7 +394,7 @@ After binding, bound devices will appear in the **Other PCI Devices** dropdown w ## GPU passthrough for virtual machines -%%GPU passthrough|gpu-passthrough%% allows you to assign a physical graphics card directly to a %%virtual machine (VM)|vm%%, providing near-native performance for gaming, creative work, or machine learning. +%%GPU passthrough|gpu-passthrough%% allows you to assign a physical graphics card directly to a %%VM|vm%%, providing near-native performance for gaming, creative work, or machine learning. :::info[Why use GPU passthrough?] @@ -331,14 +466,14 @@ To inject a ROM: ## Common issues -This section covers advanced topics and solutions for common issues when managing %%virtual machines (VMs)|vm%% on Unraid. Expand the sections below for step-by-step instructions and troubleshooting tips. +This section covers advanced topics and solutions for common issues when managing %%VMs|vm%% on Unraid. Expand the sections below for step-by-step instructions and troubleshooting tips. ### Expand a vDisk
Click to expand/collapse - If your %%VM|vm%% is running low on disk space, you can increase the size of its %%virtual disk (**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%%: diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx index d03b6a2442..1d25f37ad3 100644 --- a/docs/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx @@ -295,7 +295,7 @@ To add TPM support: :::caution[Data loss risk] -Expanding or modifying %%vDisk|vdisk%% and partition layouts can lead to irreversible data loss if not done carefully. Always create a full backup or snapshot of your %%VM|vm%% before proceeding. +Expanding or modifying %%vDisk|vdisk%% and partition layouts can lead to irreversible data loss if not done carefully. Always create a full backup or [%%snapshot|snapshot%%](./vm-setup.mdx#vm-snapshots) of your %%VM|vm%% before proceeding. ::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx b/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx index 8bc50b0b3a..96b7f70440 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx @@ -12,46 +12,46 @@ Below are some important array configuration principles:
Always use your largest drive(s) for parity. - When you add more disks to your %%array|array%% later, remember that you can't use a data disk that's larger than your %%parity disks|parity-drives%%. It's a good idea to buy the biggest hard drive for your %%parity disks|parity-drives%% at the start. This way, you won't be limited by smaller sizes when expanding later. +When you add more disks to your %%array|array%% later, remember that you can't use a data disk that's larger than your %%parity disks|parity-drives%%. It's a good idea to buy the biggest hard drive for your %%parity disks|parity-drives%% at the start. This way, you won't be limited by smaller sizes when expanding later. - If you use two %%parity disks|parity-drives%%, they can be different sizes. However, keep in mind that no disk in your %%array|array%% can be larger than the smallest %%parity disks|parity-drives%% you have. +If you use two %%parity disks|parity-drives%%, they can be different sizes. However, keep in mind that no disk in your %%array|array%% can be larger than the smallest %%parity disks|parity-drives%% you have.
Do not use SSDs in the array - save them for pools or unassigned devices. - Unraid does not support TRIM or Discard operations for SSDs in the main array. Over time, this will cause SSD performance to degrade if they are used as array members. For best results, use SSDs in %%cache pools|cache-pool%% or as unassigned devices, where these features are supported and long-term performance is maintained. Most modern SSDs, including NVMe, work well in these roles. +Unraid does not support TRIM or Discard operations for SSDs in the main array. Over time, this will cause SSD performance to degrade if they are used as array members. For best results, use SSDs in %%cache pools|cache-pool%% or as unassigned devices, where these features are supported and long-term performance is maintained. Most modern SSDs, including NVMe, work well in these roles.
Using a cache will improve array write performance. - Instead of writing directly to the main storage, data is first sent to a dedicated disk or a group of disks. This data is then moved to the main storage at scheduled times, usually once a day at 3:40 AM. The great thing is that data saved to the %%cache|cache%% still appears through your %%user shares|user-share%%, so you don't have to change how you access your files. +Instead of writing directly to the main storage, data is first sent to a dedicated disk or a group of disks. This data is then moved to the main storage at scheduled times, usually once a day at 3:40 AM. The great thing is that data saved to the %%cache|cache%% still appears through your %%user shares|user-share%%, so you don't have to change how you access your files.
Creating a cache pool helps keep your cached data safe. - Using only one cache device puts your cached data at risk until it is moved to the main array. To protect your data at all times, use multiple devices configured as a %%cache pool|cache-pool%%. This setup provides redundancy for cached data, reducing the chance of data loss due to a cache device failure. +Using only one cache device puts your cached data at risk until it is moved to the main array. To protect your data at all times, use multiple devices configured as a %%cache pool|cache-pool%%. This setup provides redundancy for cached data, reducing the chance of data loss due to a cache device failure.
SSD cache devices are great for apps and virtual machines. - Using SSDs helps applications and virtual machines (VMs) run faster because they can access data more quickly. SSDs work well in a %%cache pool|cache-pool%%, giving you an excellent mix of speed, efficiency, and data security. +Using SSDs helps applications and virtual machines (VMs) run faster because they can access data more quickly. SSDs work well in a %%cache pool|cache-pool%%, giving you an excellent mix of speed, efficiency, and data security.
Encryption is turned off by default. - If you want to use encryption on your system, you must reformat the disk with an encrypted file system type—this process erases all existing data on the drive. Before enabling encryption, move your data off the disk, change the file system to an encrypted option, format the disk, and then move your data back. For details, see [How to encrypt a drive in Unraid](../../system-administration/secure-your-server/securing-your-data.mdx#how-to-encrypt-a-drive-in-unraid). +If you want to use encryption on your system, you must reformat the disk with an encrypted file system type—this process erases all existing data on the drive. Before enabling encryption, move your data off the disk, change the file system to an encrypted option, format the disk, and then move your data back. For details, see [How to encrypt a drive in Unraid](../../system-administration/secure-your-server/securing-your-data.mdx#how-to-encrypt-a-drive-in-unraid). - Keep in mind that using encryption can make it harder to recover data if something goes wrong, so only use it if you really need it. +Keep in mind that using encryption can make it harder to recover data if something goes wrong, so only use it if you really need it.
@@ -89,17 +89,47 @@ To start or stop the array: Unraid provides several maintenance and configuration options for your storage array. Key operations include: -import DocCardList from '@theme/DocCardList'; +import DocCardList from "@theme/DocCardList"; --- @@ -108,7 +138,7 @@ import DocCardList from '@theme/DocCardList'; #### 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. @@ -132,13 +162,20 @@ For a more thorough approach, the pre-clear operation – available through plug

Clear vs. Pre-Clear Comparison

-
- | | Clear | Pre-Clear | - | ---------------- | --------------------------- | --------------------------------------- | - | **Purpose** | Ensures basic compatibility | Tests the drive and prepares it for use | - | **Speed** | Works quickly | Much slower process | - | **Array Impact** | Runs in the background | Needs the disk to be removed from use | - | **Best For** | Ideal for quick expansions | Great for checking new drives | +
+ | | Clear | Pre-Clear | | ---------------- | --------------------------- | + --------------------------------------- | | **Purpose** | Ensures basic + compatibility | Tests the drive and prepares it for use | | **Speed** | Works + quickly | Much slower process | | **Array Impact** | Runs in the background | + Needs the disk to be removed from use | | **Best For** | Ideal for quick + expansions | Great for 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. @@ -240,6 +277,7 @@ When adding a new data disk, it must be the same size or smaller than your curre ::: +
@@ -262,77 +300,77 @@ Adding a %%parity disk|parity-drives%% is similar to adding a data disk, but the
In-depth: What is parity and why does it matter? - Click to expand/collapse - %%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. +%%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. - Unraid relies on this real-time parity for two primary purposes: +Unraid relies on this real-time parity for two primary purposes: - - Rebuilding data when a drive fails - - Correcting errors when a bad sector is found +- Rebuilding data when a drive fails +- Correcting errors when a bad sector is found - This feature allows you to keep your data safe, even as drives will eventually fail over time. +This feature allows you to keep your data safe, even as drives will eventually fail over time.
In-depth: How does Unraid parity work? - Click to expand/collapse - Unraid works with a special bit called the *parity bit*, which is stored for each bit position across all data disks and is 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, a process known as even parity. +Unraid works with a special bit called the _parity bit_, which is stored for each bit position across all data disks and is 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, a process known as even parity. - Here's how it breaks down: +Here's how it breaks down: - - Unraid uses the XOR (exclusive OR) operation for this calculation. - - For example, if you have four drives, and their 57th bits are 1, 1, 1, 1, the parity bit for that position will be 0 (because 1 + 1 + 1 + 1 + 0 = even). - - However, if the 57th bits are 1, 0, 0, 0, the %%parity|parity%% for that position will be 1 (to ensure the total remains even). +- Unraid uses the XOR (exclusive OR) operation for this calculation. +- For example, if you have four drives, and their 57th bits are 1, 1, 1, 1, the parity bit for that position will be 0 (because 1 + 1 + 1 + 1 + 0 = even). +- However, if the 57th bits are 1, 0, 0, 0, the %%parity|parity%% for that position will be 1 (to ensure the total remains even). - When adding a new drive, Unraid first clears it by writing zeros to all bits. This allows for quick inclusion into the protected array since writing zeros does not interfere with the current parity calculations. +When adding a new drive, Unraid first clears it by writing zeros to all bits. This allows for quick inclusion into the protected array since writing zeros does not interfere with the current parity calculations.
In-depth: How is data reconstructed using parity? - Click to expand/collapse - Unraid can reconstruct a missing drive or repair a bad sector using the following steps: +Unraid can reconstruct a missing drive or repair a bad sector using the following steps: - - It reads all remaining drives, including the %%parity disk|parity-drives%%. - - It applies even %%parity|parity%% to solve for the missing data. +- It reads all remaining drives, including the %%parity disk|parity-drives%%. +- It applies even %%parity|parity%% to solve for the missing data. - For example, if drive 2 fails: +For example, if drive 2 fails: - - If the related bits are 1, 1, 1 (in addition to the %%parity|parity%%), Unraid calculates: 1 + x + 1 + 1 + 0 = even. Here, x must be 1 to maintain an even total. - - If the bits show 1, x, 0, 0, 1 = even, then x will equal 0. +- If the related bits are 1, 1, 1 (in addition to the %%parity|parity%%), Unraid calculates: 1 + x + 1 + 1 + 0 = even. Here, x must be 1 to maintain an even total. +- If the bits show 1, x, 0, 0, 1 = even, then x will equal 0. - This %%parity|parity%% feature allows Unraid to "simulate" the missing disk. You can continue using the array as if the drive were still functional. Once you install a new drive in the failed slot, Unraid will recreate all the missing data based on the current state of %%parity|parity%% and the other disks. +This %%parity|parity%% feature allows Unraid to "simulate" the missing disk. You can continue using the array as if the drive were still functional. Once you install a new drive in the failed slot, Unraid will recreate all the missing data based on the current state of %%parity|parity%% and the other disks. - To ensure ongoing protection and effective recovery, it's important to run regular %%parity checks|parity-check%%. +To ensure ongoing protection and effective recovery, it's important to run regular %%parity checks|parity-check%%.
How big does my parity disk need to be? - Click to expand/collapse - Your %%parity disk|parity-drives%% must be **equal to or larger than your largest data disk**. For instance: +Your %%parity disk|parity-drives%% must be **equal to or larger than your largest data disk**. For instance: - - If your largest data disk is 10TB, your %%parity disk|parity-drives%% should be at least 10TB. - - You can use various other data disk sizes freely, as long as none exceeds the size of the %%parity disk|parity-drives%%. +- If your largest data disk is 10TB, your %%parity disk|parity-drives%% should be at least 10TB. +- You can use various other data disk sizes freely, as long as none exceeds the size of the %%parity disk|parity-drives%%.
In-depth: How does parity affect write performance? - Click to expand/collapse - Writing to a %%parity|parity%%-protected array involves four disk operations for each write: reading data, reading %%parity|parity%%, writing data, and writing %%parity|parity%%. This process requires a full rotation from each affected drive, so the overall write speed is limited by the slowest drive involved in the operation. +Writing to a %%parity|parity%%-protected array involves four disk operations for each write: reading data, reading %%parity|parity%%, writing data, and writing %%parity|parity%%. This process requires a full rotation from each affected drive, so the overall write speed is limited by the slowest drive involved in the operation. - Adding a faster %%parity disk|parity-drives%% won't necessarily improve write speeds unless you're writing to multiple slow data disks simultaneously, allowing the %%parity disk|parity-drives%% to handle the load. Typically, the write speed is constrained by the slowest data drive being written to. +Adding a faster %%parity disk|parity-drives%% won't necessarily improve write speeds unless you're writing to multiple slow data disks simultaneously, allowing the %%parity disk|parity-drives%% to handle the load. Typically, the write speed is constrained by the slowest data drive being written to.
In-depth: How does Dual Parity work? - Click to expand/collapse - Dual %%parity|parity%% enables recovery from **two simultaneous disk failures**. In Unraid, the second %%parity disk|parity-drives%% doesn't simply mirror the first. Instead: +Dual %%parity|parity%% enables recovery from **two simultaneous disk failures**. In Unraid, the second %%parity disk|parity-drives%% doesn't simply mirror the first. Instead: - - **Parity 1:** Employs standard XOR (even) %%parity|parity%% calculations. - - **Parity 2:** Utilizes a more complex algorithm (Galois field, rather than Reed-Solomon as in traditional %%RAID 6|raid6%%), allowing Unraid to rebuild from any two missing disks at the same time. This feature is significant for larger arrays, where the risk of multiple failures increases. Dual %%parity|parity%% significantly boosts resilience without the added overhead of mirrored redundancy. +- **Parity 1:** Employs standard XOR (even) %%parity|parity%% calculations. +- **Parity 2:** Utilizes a more complex algorithm (Galois field, rather than Reed-Solomon as in traditional %%RAID 6|raid6%%), allowing Unraid to rebuild from any two missing disks at the same time. This feature is significant for larger arrays, where the risk of multiple failures increases. Dual %%parity|parity%% significantly boosts resilience without the added overhead of mirrored redundancy.
@@ -415,11 +453,11 @@ Replacing drives always involves some risk. If another drive fails during the up To upgrade an existing data disk: -1. **Run a parity check:** First, ensure the integrity of your data by running a %%parity check|parity-check%%. Go to [***Tools → Parity Check***](#checking-array-devices) and make sure there are **zero errors**. If parity isn't valid, rebuilding the disk will corrupt its file system. +1. **Run a parity check:** First, ensure the integrity of your data by running a %%parity check|parity-check%%. Go to [**_Tools → Parity Check_**](#checking-array-devices) and make sure there are **zero errors**. If parity isn't valid, rebuilding the disk will corrupt its file system. -2. **Stop the array:** Next, you'll want to stop the array. Navigate to ***Main → Array Operation*** and select **Stop**. +2. **Stop the array:** Next, you'll want to stop the array. Navigate to **_Main → Array Operation_** and select **Stop**. -3. **Unassign the target disk:** Once the array is stopped, find the disk you want to replace. Remove it from its slot in ***Main → Array Devices***. +3. **Unassign the target disk:** Once the array is stopped, find the disk you want to replace. Remove it from its slot in **_Main → Array Devices_**. 4. **Start the array:** Now, start the array again. Unraid will emulate the missing disk using the existing parity and data disks. You have two modes to choose from: - **%%Maintenance Mode|maintenance-mode%%:** This mode prevents any writes to the %%emulated disk|emulated-disk%%. @@ -442,23 +480,25 @@ Starting the array in Normal Mode at this point is optional. You can use it to v
What is a failed/disabled disk? - A failed or disabled disk is one that Unraid has stopped using for writing data, usually because it encountered a write error. Keep in mind these don't always mean the drive itself is broken; sometimes, it might be due to bad connections, power issues, or just a temporary glitch. +A failed or disabled disk is one that Unraid has stopped using for writing data, usually because it encountered a write error. Keep in mind these don't always mean the drive itself is broken; sometimes, it might be due to bad connections, power issues, or just a temporary glitch. - Some indications include: +Some indications include: -
- ![Red "X" indicates write error](/img/Diskfailureindicator.png) -

*This red "X" shows which disk needs replacement.*

-
+
+ ![Red "X" indicates write error](/img/Diskfailureindicator.png) +

+ *This red "X" shows which disk needs replacement.* +

+
-
+
-
- ![Failure notification alert](/img/Diskfailurenotification.png) -

*Keep an eye out for these alerts.*

-
+
+ ![Failure notification alert](/img/Diskfailurenotification.png) +

*Keep an eye out for these alerts.*

+
-
+
Click to see how different parity configurations handle disk failures @@ -491,43 +531,43 @@ Starting the array in Normal Mode at this point is optional. You can use it to v
How to diagnose the issue - To diagnose the issue, start by checking the %%syslog|syslog%% and %%SMART reports|smart-report%%: +To diagnose the issue, start by checking the %%syslog|syslog%% and %%SMART reports|smart-report%%: - - If the %%syslog|syslog%% shows that the drive has reset, there might be a problem with the connection or cables. - - %%SMART reports|smart-report%% can help assess the drive's health, but the best way to check is by running a %%SMART|smart%% extended test. If it completes without errors, the drive is likely fine. - - If you see %%CRC errors|crc-errors%%, it usually points to issues with the cabling. Keep an eye on these errors, as they accumulate over time and don't reset. +- If the %%syslog|syslog%% shows that the drive has reset, there might be a problem with the connection or cables. +- %%SMART reports|smart-report%% can help assess the drive's health, but the best way to check is by running a %%SMART|smart%% extended test. If it completes without errors, the drive is likely fine. +- If you see %%CRC errors|crc-errors%%, it usually points to issues with the cabling. Keep an eye on these errors, as they accumulate over time and don't reset. - :::tip +:::tip - To stay informed about drive issues, [enable notifications](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#notification-settings) in Unraid. This way, you are alerted right away if something goes wrong, reducing the risk to your data. +To stay informed about drive issues, [enable notifications](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#notification-settings) in Unraid. This way, you are alerted right away if something goes wrong, reducing the risk to your data. - ::: +:::
What is emulation? - When a drive is disabled, Unraid will use its parity and other working drives to emulate the failed drive. This means your system continues to operate, and you can still access the data stored on the %%emulated drive|emulated-disk%%: +When a drive is disabled, Unraid will use its parity and other working drives to emulate the failed drive. This means your system continues to operate, and you can still access the data stored on the %%emulated drive|emulated-disk%%: - - Unraid will stop writing to the physical drive, and any updates will be saved in parity and the emulation instead. - - Before replacing the failed drive, you can check and recover data from the %%emulated drive|emulated-disk%%, which keeps the physical drive intact for potential recovery. - - If you can't access the %%emulated drive|emulated-disk%%, repairing the file system is essential before any rebuild since fixing the file system is quicker and more effective than a rebuild. +- Unraid will stop writing to the physical drive, and any updates will be saved in parity and the emulation instead. +- Before replacing the failed drive, you can check and recover data from the %%emulated drive|emulated-disk%%, which keeps the physical drive intact for potential recovery. +- If you can't access the %%emulated drive|emulated-disk%%, repairing the file system is essential before any rebuild since fixing the file system is quicker and more effective than a rebuild.
Preparing for drive replacement - When you need to replace a drive, make sure the new drive is at least as large as the failed drive but not larger than your smallest parity drive. If you have to use a larger drive, follow the **Parity Swap** procedure. +When you need to replace a drive, make sure the new drive is at least as large as the failed drive but not larger than your smallest parity drive. If you have to use a larger drive, follow the **Parity Swap** procedure. - While it's not mandatory, many users choose to pre-clear new drives to test them and help prevent early failure. You can do this with the Preclear plugin, a %%SMART|smart%% extended test, or manufacturer tools. +While it's not mandatory, many users choose to pre-clear new drives to test them and help prevent early failure. You can do this with the Preclear plugin, a %%SMART|smart%% extended test, or manufacturer tools. - :::caution +:::caution - If you try to rebuild using an unmountable %%emulated drive|emulated-disk%%, the new drive will also become unmountable. Always repair the file system before attempting a rebuild. +If you try to rebuild using an unmountable %%emulated drive|emulated-disk%%, the new drive will also become unmountable. Always repair the file system before attempting a rebuild. - ::: +:::
@@ -542,7 +582,6 @@ Before you start, make sure to check for any disk errors or warnings. Unraid mus To replace and rebuild a disk: 1. **Stop the array:** - - Log in to the Unraid %%WebGUI|web-gui%% (the web interface). - Find the option to stop the array. This is necessary before you can change any disks. @@ -597,6 +636,64 @@ If Unraid prompts you to format the new disk during the rebuild, **do not do it* ::: +#### Re-enabling a disabled disk (rebuilding onto itself) + +Sometimes, a disk may be disabled not because it's actually faulty, but due to issues such as loose cables, power problems, or temporary glitches. If that's the case, you can try to re-enable the disabled disk by rebuilding it onto itself instead of replacing it. + +:::important[When to use this procedure] + +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 fixed any external problems that caused the disk to be disabled. +- The disk seems to be functioning normally. + +::: + +:::warning[Important considerations] + +- 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. Some users assume that a rebuild will automatically fix an unmountable emulated disk, but it's important to 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. +- 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:** + - Run a [%%SMART|smart%% extended test](../../system-administration/advanced-tools/command-line-interface.mdx#smartctl) on the disabled drive to confirm it's actually healthy. + - Check for and acknowledge any warning icons in the dashboard that indicate %%SMART|smart%% warnings. + +2. **Stop the array:** Use the %%WebGUI|web-gui%% to stop the array. + +3. **Unassign the disabled disk:** Go to **_Main → Array Devices_** and change the disabled disk slot to "Unassigned." + +4. **Start the array:** Start the array so Unraid can register the missing disk. The array will display the disk as "Not installed." + +5. **Verify emulated content (for data drives only)**: Check that the %%emulated disk|emulated-disk%% shows the content you expect. + +6. **Stop the array again:** Stop the array again to prepare for the next steps. + +7. **Reassign the disabled disk:** Assign the same disk back to its original slot. + +8. **(Optional) Choose [%%Maintenance Mode|maintenance-mode%%](../../troubleshooting/common-issues/data-recovery.mdx#maintenance-mode):** + - Selecting %%Maintenance Mode|maintenance-mode%% can speed up the rebuild process. + - When in %%Maintenance Mode|maintenance-mode%%, you won't be able to use the array during the rebuild. + - If you choose %%Maintenance Mode|maintenance-mode%%, click **Sync** to start the rebuild. + +9. **Start the rebuild:** Click **Start** to begin the rebuild process. Unraid will take the contents from the %%emulated disk|emulated-disk%% and reconstruct them onto the physical drive. + +:::info[Rebuild time expectations] + +Rebuilding a disk onto itself can take several hours to more than a day for larger drives, depending on the size of the disk and system activity. Factors that can affect rebuild time include drive capacity, disk speed, and system load. You can keep an eye on the progress in the %%WebGUI|web-gui%%. + +::: + +This procedure works for both data drives and %%parity drives|parity-drives%% that have been disabled. + #### Parity swap @@ -616,13 +713,13 @@ If Unraid prompts you to format the new disk during the rebuild, **do not do it*
Example scenario - You have an Unraid setup with a **2TB parity drive** and a **1TB data drive** and want to replace the 1TB drive with a **4TB drive**. +You have an Unraid setup with a **2TB parity drive** and a **1TB data drive** and want to replace the 1TB drive with a **4TB drive**. - First, assign the new 4TB drive as the parity drive, which will replace the 2TB drive. Then move the original 2TB drive to the data slot, and remove the 1TB drive entirely. +First, assign the new 4TB drive as the parity drive, which will replace the 2TB drive. Then move the original 2TB drive to the data slot, and remove the 1TB drive entirely. - After these changes, you'll have a 4TB drive as your new parity, ensuring you can add future data drives up to 4TB. The 2TB drive will now hold your existing data, while the 1TB drive can be repurposed. +After these changes, you'll have a 4TB drive as your new parity, ensuring you can add future data drives up to 4TB. The 2TB drive will now hold your existing data, while the 1TB drive can be repurposed. - This swap keeps your data secure and your array protected, allowing for future upgrades. +This swap keeps your data secure and your array protected, allowing for future upgrades.
@@ -659,14 +756,14 @@ If the drive to be replaced is already disabled (failed), you may not need to pe If your system supports **hot-swap**, you do not need to power down to remove or install disks. Just make sure the array is stopped before making any hardware changes. ::: -6\. *(Optional)* **Remove the old drive.** You may wish to keep it installed for testing or reassignment. +6\. _(Optional)_ **Remove the old drive.** You may wish to keep it installed for testing or reassignment. 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. If you see a message about retrying to unmount disk shares, disable Docker and/or VM services in Settings, reboot, and try again. 10\. **Unassign the parity drive.** 11\. **Assign the new drive to the parity slot.** You may receive error notifications - this is normal. 12\. **Assign the old %%parity drive|parity-drives%% to the data slot** of the drive being replaced. Both the parity and replacement data drives should now display blue status indicators. -13\. **Go to *Main → Array Operation.*** You should see a **Copy** button and a message stating "Copy will copy the parity information to the new %%parity disk|parity-drives%%." +13\. **Go to _Main → Array Operation._** You should see a **Copy** button and a message stating "Copy will copy the parity information to the new %%parity disk|parity-drives%%." 14\. **Confirm and start the copy process.** Check the confirmation box and click **Copy**. The array will not be available during this operation. - The copy process can take many hours, depending on disk size. When finished, the array will be stopped and ready for a data rebuild. @@ -799,7 +896,7 @@ You can choose from two methods to remove a data disk: ```bash truncate -s 400M /tmp/xmini.img mkfs.xfs -f /tmp/xmini.img > /dev/null - mount /tmp/xmini.img /mnt/diskX + mount /tmp/xmini.img /mnt/diskX ``` 3. Zero out the disk with the following command: @@ -832,6 +929,7 @@ You can choose from two methods to remove a data disk: Don't hesitate to reach out to the [Unraid forums](https://forums.unraid.net/). There, you can find helpful resources and community support.
+ @@ -839,13 +937,22 @@ You can choose from two methods to remove a data disk: ### Checking array devices -Regularly checking your Unraid array is crucial for maintaining data integrity and identifying potential issues before they result in data loss. 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%%. - -
- ![The check button lets you perform parity and read checks](/img/Check_button.PNG) +Regularly checking your Unraid array is crucial for maintaining data integrity and identifying potential issues before they result in data loss. 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%%. + +
+ ![The check button lets you perform parity and read + checks](/img/Check_button.PNG)
-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, non-correcting checks on a monthly or quarterly basis to ensure the ongoing health of your data. +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 & Read checks @@ -879,43 +986,84 @@ For convenience, you can schedule these checks to run automatically at intervals While a %%parity check|parity-check%% is in progress, you can still use the array. However, be aware that performance may slow down due to drive contention, as both file operations and the check will compete for resources. - Normally, if the %%parity check|parity-check%% identifies errors, Unraid will update the %%parity disk|parity-drives%% to align with the computed data and increment the Sync Errors counter. - - :::tip + :::tip[Running checks without corrections] If you prefer to run a check without making corrections, simply uncheck **Write corrections to parity** before starting. This way, errors will be reported but not fixed. ::: - :::important + #### Parity check types - A correcting %%parity check|parity-check%% is automatically initiated after an "Unsafe Shutdown" - this occurs when the array is restarted without being properly stopped. The most frequent cause of such an event is unexpected power loss, which can leave write operations incomplete. Using an uninterruptible power supply (UPS) is highly recommended to avoid this scenario. This measure helps maintain the integrity of your data and prevents potential issues. + Unraid offers two types of parity checks, each suited for different scenarios: + + - ::: -

What are parity errors?

+ **Recommended for regular maintenance** + + **When to use:** For regular maintenance and when you want to fix any sync errors found + + Correcting checks: + - Update parity to match current array state + - Fix any sync errors automatically + - Are initiated after unsafe shutdowns + - Are the recommended default for regular maintenance + + :::tip + + Based on extensive testing, correcting checks are now recommended as the default for regular maintenance. + + ::: - %%Parity|parity%% errors happen when the %%parity|parity%% information your system calculates doesn't match what's stored on your %%parity drives|parity-drives%%. This mismatch can arise from several issues, including: +
+ + + + **When to use:** When you want to check for errors without making changes + + Non-correcting checks: + - Only report errors without making changes + - Won't corrupt parity if a data disk has bad sectors + - Useful for initial assessment before running correcting checks + - Good for troubleshooting scenarios + + :::note + + Non-correcting checks are useful for initial assessment, but correcting checks are now recommended for regular maintenance based on current testing. + + ::: + + +
+ + #### Parity errors + + %%Parity|parity%% errors occur when the %%parity|parity%% information your system calculates doesn't match what's stored on your %%parity drives|parity-drives%%. This mismatch can arise from: - Sudden power loss or unsafe shutdowns - Failing drives or disk errors - Problems with cables or connections - Unclean shutdowns or unexpected system crashes + - Bad RAM, especially if new errors are found right after a correcting check - When %%parity|parity%% errors occur, either the %%parity drives|parity-drives%% or the data disks could be out of sync. Ideally, a %%parity check|parity-check%% should report zero errors so everything functions correctly. + When %%parity|parity%% errors occur, either the %%parity drives|parity-drives%% or the data disks could be out of sync. Ideally, a %%parity check|parity-check%% should report zero errors. -

What to do if you encounter %%parity|parity%% errors

+ #### Troubleshooting parity errors If your %%parity check|parity-check%% reveals errors: - 1. **Investigate the problem:** Start by checking %%SMART reports|smart-report%%, which provide detailed information about your drives' health. Look for any signs of disk or connection problems. + 1. **Investigate the problem:** Check %%SMART reports|smart-report%% for signs of disk or connection problems + 2. **Seek help:** Reach out to the Unraid forums for community insights + 3. **Run another check:** After addressing hardware issues, run another check to verify everything is working - 2. **Seek help from our forums:** If you cannot resolve the issue on your own, consider reaching out for advice on the Unraid forums. The community can offer valuable insights and suggestions based on their experiences. + :::important[Automatic correcting checks after unsafe shutdowns] - 3. **Run another check:** After you've addressed any hardware issues, running another %%parity check|parity-check%% is a good idea to ensure everything is back in order. + A correcting %%parity check|parity-check%% is automatically initiated after an "Unsafe Shutdown" - when the array is restarted without being properly stopped. This typically happens due to unexpected power loss, which can leave write operations incomplete. Using an uninterruptible power supply (UPS) is highly recommended to avoid this scenario. + + ::: - :::info[Rebuild Time] + :::info[Check duration] - Remember that %%parity checks|parity-check%% can take several hours, depending on the size of your disks and the activity level of your system. For the best results, schedule these checks during times of low system usage. + %%Parity checks|parity-check%% can take several hours, depending on disk size and system activity. For best results, schedule these checks during low-usage periods. ::: @@ -971,7 +1119,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. @@ -1021,8 +1169,17 @@ Common reasons to reset your array include: - **Fixing disk assignment errors:** To correct any issues with how disks are currently assigned. - **Recovering from configuration problems:** When facing challenges with your existing setup. -
- ![Resetting your disk configuration can be done via the new config page](/img/Newconfig.png) +
+ ![Resetting your disk configuration can be done via the new config + page](/img/Newconfig.png)
To reset your array configuration: @@ -1038,7 +1195,7 @@ To reset your array configuration: - **Data preservation:** Unraid will attempt to recognize previously used drives and preserve data where possible. - **Impact on parity:** Removing a data drive will always invalidate parity unless that drive was zeroed before removal. -- **Disk reordering:** Changing the order of disks won't affect parity1, but it *can* invalidate parity2. +- **Disk reordering:** Changing the order of disks won't affect parity1, but it _can_ invalidate parity2. ::: @@ -1094,13 +1251,16 @@ Unraid provides various write modes for managing array operations, each with its
Click to expand/collapse -

How it works

- This mode reads the existing data and the parity, calculates the new parity, and then writes the updated data. Only the %%parity drive|parity-drives%% and the target data drive spin up, which results in lower power usage and less wear on the drives. However, it can be slower due to the additional read/write cycles. +

How it works

+This mode reads the existing data and the parity, calculates the new parity, and +then writes the updated data. Only the %%parity drive|parity-drives%% and the +target data drive spin up, which results in lower power usage and less wear on +the drives. However, it can be slower due to the additional read/write cycles. -

When to use

+

When to use

- - Anytime, especially if you want energy savings and idle drives to spin down. - - Great for small or infrequent writes. +- Anytime, especially if you want energy savings and idle drives to spin down. +- Great for small or infrequent writes.
@@ -1109,31 +1269,31 @@ Unraid provides various write modes for managing array operations, each with its
Click to expand/collapse - Turbo write, also known as reconstruct write, is a feature designed to boost the writing speed of your Unraid array. It works by reading all data drives and updating the parity simultaneously. This process eliminates the delays caused by waiting for the platters to rotate, as seen in the default write mode. However, it's important to note that all array drives need to be spinning and functioning properly for this to work effectively. +Turbo write, also known as reconstruct write, is a feature designed to boost the writing speed of your Unraid array. It works by reading all data drives and updating the parity simultaneously. This process eliminates the delays caused by waiting for the platters to rotate, as seen in the default write mode. However, it's important to note that all array drives need to be spinning and functioning properly for this to work effectively. -

How it works

+

How it works

- - When you write new data, Unraid reads from all the other data drives and recalculates the parity at the same time. Both the new data and the updated parity get written together. - - All drives in the array must be operational and actively spinning. - - This method significantly enhances write speeds compared to the default writing mode. +- When you write new data, Unraid reads from all the other data drives and recalculates the parity at the same time. Both the new data and the updated parity get written together. +- All drives in the array must be operational and actively spinning. +- This method significantly enhances write speeds compared to the default writing mode. -

When to use Turbo Write

+

When to use Turbo Write

- - Utilize turbo write when transferring large, sequential files to the array. - - It's effective during array rebuilds or %%parity checks|parity-check%%, as all drives will already be spinning. - - This mode is very useful when minimizing write time is a priority and you can confirm all drives are healthy. +- Utilize turbo write when transferring large, sequential files to the array. +- It's effective during array rebuilds or %%parity checks|parity-check%%, as all drives will already be spinning. +- This mode is very useful when minimizing write time is a priority and you can confirm all drives are healthy. -

When to avoid Turbo Write

+

When to avoid Turbo Write

- - Avoid using this mode if you want your drives to spin down during idle times to conserve energy. - - Turbo write isn't ideal for small or infrequent write operations since it causes all drives to spin up for every write, increasing power usage and wear on the drives. - - If you suspect that any drive is failing or is unreliable, it's best to steer clear of turbo write since it relies on every drive being operational. +- Avoid using this mode if you want your drives to spin down during idle times to conserve energy. +- Turbo write isn't ideal for small or infrequent write operations since it causes all drives to spin up for every write, increasing power usage and wear on the drives. +- If you suspect that any drive is failing or is unreliable, it's best to steer clear of turbo write since it relies on every drive being operational. - :::info +:::info - Turbo write is best suited for bulk operations and scenarios requiring high throughput. However, it might not be the best choice for everyday tasks if you're focused on energy savings and minimizing drive wear. +Turbo write is best suited for bulk operations and scenarios requiring high throughput. However, it might not be the best choice for everyday tasks if you're focused on energy savings and minimizing drive wear. - ::: +:::
@@ -1142,31 +1302,31 @@ Unraid provides various write modes for managing array operations, each with its
Click to expand/collapse -

How it works

+

How it works

- Data is written first to a fast SSD or NVMe %%cache|cache%% and can then be moved to the main array later by a process called the %%Mover|mover%%. The speeds vary: +Data is written first to a fast SSD or NVMe %%cache|cache%% and can then be moved to the main array later by a process called the %%Mover|mover%%. The speeds vary: - - SSD: 50–110 MB/s - - NVMe: 250–900 MB/s (which can utilize 10GbE networks) +- SSD: 50–110 MB/s +- NVMe: 250–900 MB/s (which can utilize 10GbE networks) - Once data is moved to the array, it is protected by parity. +Once data is moved to the array, it is protected by parity. -

When to use Cache Write

+

When to use Cache Write

- - For shares with frequent write operations like applications, virtual machines, or downloads. - - To enhance performance and reduce any perceived write latency. +- For shares with frequent write operations like applications, virtual machines, or downloads. +- To enhance performance and reduce any perceived write latency. -

Performance Expectations

+

Performance Expectations

- - Without a cache drive: Average 20–30 MB/s, with peaks up to 40 MB/s. - - With SSD cache: 50–110 MB/s. - - With NVMe cache: 250–900 MB/s depending on network or drive constraints. +- Without a cache drive: Average 20–30 MB/s, with peaks up to 40 MB/s. +- With SSD cache: 50–110 MB/s. +- With NVMe cache: 250–900 MB/s depending on network or drive constraints. - :::tip +:::tip - Consider using a cache pool (multiple devices) for added redundancy and data protection before the %%Mover|mover%% runs. +Consider using a cache pool (multiple devices) for added redundancy and data protection before the %%Mover|mover%% runs. - ::: +:::
@@ -1179,8 +1339,8 @@ Unraid provides various write modes for managing array operations, each with its 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) @@ -1231,7 +1391,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

@@ -1254,10 +1414,10 @@ For more detailed information about %%cache pools|cache-pool%%, including how to ### Troubleshooting array start failures -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; -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_**. diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 765dc11953..b924847d0e 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -217,6 +217,16 @@ const config: Config = { { label: "Blog", href: "https://unraid.net/blog" }, ], }, + { + title: "License", + items: [ + { + label: "CC BY-SA 4.0", + href: "https://creativecommons.org/licenses/by-sa/4.0/", + description: "This documentation is available under the Creative Commons Attribution-ShareAlike 4.0 International License. Feel free to share, copy, and use our docs however you need. You can even modify and build upon them for your own projects. Just make sure to give us credit and share any improvements you make under the same license. Note: This license applies only to the documentation content, not to Unraid software or trademarks." + }, + ], + }, ], logo: { alt: "Unraid Logo", diff --git a/i18n/en/docusaurus-theme-classic/footer.json b/i18n/en/docusaurus-theme-classic/footer.json index 8290e8b21f..b117eb32d1 100644 --- a/i18n/en/docusaurus-theme-classic/footer.json +++ b/i18n/en/docusaurus-theme-classic/footer.json @@ -11,6 +11,10 @@ "message": "More", "description": "The title of the footer links column with title=More in the footer" }, + "link.title.License": { + "message": "License", + "description": "The title of the footer links column with title=License in the footer" + }, "link.item.label.Home": { "message": "Home", "description": "The label of footer link with label=Home linking to /" @@ -43,6 +47,10 @@ "message": "Blog", "description": "The label of footer link with label=Blog linking to https://unraid.net/blog" }, + "link.item.label.CC BY-SA 4.0": { + "message": "CC BY-SA 4.0", + "description": "The label of footer link with label=CC BY-SA 4.0 linking to https://creativecommons.org/licenses/by-sa/4.0/" + }, "copyright": { "message": "Copyright © 2005-2025 Lime Technology, Inc.
Unraid® is a registered trademark of Lime Technology, Inc.
", "description": "The footer copyright" diff --git a/static/img/Dockerguide-controlling.png b/static/img/Dockerguide-controlling.png index fcd0d3d4bf4fc90ee2b971f0e92ab865b20bf3f2..227811dfea7d1f93a5c5062e052c2230b0266f1e 100644 GIT binary patch literal 68186 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 O^GvPgB%7@K;XeQcoJXPn literal 25508 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 SGVsqDAnSAX=FiUhr2Y@ucQD8R diff --git a/static/img/icons/7a220275-fddc-4d51-a356-0727a2f83a8f.png b/static/img/icons/7a220275-fddc-4d51-a356-0727a2f83a8f.png new file mode 100644 index 0000000000000000000000000000000000000000..726afa27ed966cd3a3220349324c71b4beb4b444 GIT binary patch literal 47679 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 literal 0 HcmV?d00001 diff --git a/static/img/icons/icon-bark.png b/static/img/icons/icon-bark.png new file mode 100644 index 0000000000000000000000000000000000000000..190ad86a073cf7a903257678569236c85549bac1 GIT binary patch literal 17710 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 + + diff --git a/static/img/icons/icon-gotify-alt.svg b/static/img/icons/icon-gotify-alt.svg new file mode 100644 index 0000000000..99b8e74a03 --- /dev/null +++ b/static/img/icons/icon-gotify-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/icons/icon-gotify.png b/static/img/icons/icon-gotify.png new file mode 100644 index 0000000000000000000000000000000000000000..4ce32b376a93138d997d3aa27b14e2295c69f3df GIT binary patch literal 959 zcmV;w13>(VP)Px&c}YY;R5;6RlU+<(Wf;c~o0^ziXp9$LIpXe&F(zJkXIvJRY;hYhSX|?n8LmoG zSU(t)kuA->j7z9!!d%Bff=(!f$|`ls_$sv6FM4Q%mbR3I(~mhmdRh*pf%f#AzvrCD zG|@MC^ISad|Mx!6|9u~V_@7mw`}TBo=Yv3Pzq`Ng7t(sp>@wDTXFemOUJ&!y2k?NV8XuiQSO z_R`Rhn>!j`hX2ZyMz=?}p54aoy6=s!XPxT^Gb~KqKeR~zxgRfz@w5AmTbG2A1xQg# zGEms#pq{NtLMoAh&1S<2orP>9Q84-__#KnqO8`BvM~t$baeb?Bq1u-zYW)oAMZljc z5+I&TVaRMkl4hVZPZsaoF`%>kie3U7J1u`*jGwgsT+wF9X$70=E?-I+A;2duUgwl$AtPRn>m^`)|E+NYQ+-!I2Ux;8k9lS9{aYj7On= zL}Gwk0=X1NDw#k&n?{b=C~a+RVQ6UZHc|1p;=K>veC_SpE?Yo7{S?Xxs-$wSq0zO5 z8{J(P9lVR=lNgvx8aq2XU^a7@4FrlD$AKityTr$>-}K44hG(06G#VYL(uLnwpz@@} z=S2NP0-+}q*4NiDHy;!PvwScZN4`9F0MQ>;me&S#&rf zNH0gZ_%c<@WEnmdTa3Hi?ry8qT2)?N{wkro*Z-5A0yHzsw$M9!!L?QrTHpi|IrR*~ zs;8)eam;1|7<-sS}km!g19h~hkmTNmcg76VQ`hz4{wbe)#2 zW}~P{CS5Pv?a~N5A1302p-*HOXQP60yh!8aqLqs%KS=dR62!dcL zv9q%9PYEc-LeeZ20So^CEi^HpCPEg)56EWSHDX1F2F3u_M{U{6mXUN((zg1vZnxW&^uQ#|fB#jRxnG)RSHhgbIfvz3ayHDlET8zB zr_Xcw=*gcEkgxpSV!gV7%Q?*D0)Y2Eb}3+T=gU?Npb$yI49q#E&rBfT`G+NTlbmOe zu`u&F%m8p^J}~EKblTjVyvn2LJ4}rfJp)S%ElBXO@1z4{fOE#;>N{>P%u%jw@^I=p zS4N6G+IyH_0l+gbM;yhB9XUqv;30N8ZK};iZ&51AG6_)_280;OEEUq*gRNKt}oX$cajsgBeKs-2* zXLkG&7lw~BlrN+!625BB+JO1f{&+w@$t1l6MkQ6v>?N@N4~wMa-W-zdNg9{b&n5=@ Y3w6N5Y5qmTjQ{`u07*qoM6N<$f`+f~;Q#;t literal 0 HcmV?d00001 diff --git a/static/img/icons/icon-prowl.png b/static/img/icons/icon-prowl.png new file mode 100644 index 0000000000000000000000000000000000000000..89549c84d6053c6ec53af3fc670a2e71599c0d33 GIT binary patch literal 1089 zcmV-H1it%;P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;VI^GGzb&1F}g(K~y+T9Z*?NlUEr1qd+@i0o!S(VqJ&? z2#Fh0%Y!fuI-tlhU=^r_kOUI45Fkw&37b>O#3%_MP_oBF(1|t{tbkxdSxTKg^rbxX zsmpYx(@r~OD3PY~$8dV{KYaI|d%ttfch04JLDgHnpust|*ttHw+!^-FwT16~(;XhU ze}!NJgYT?#hrI-kEp&v(zwQdhxC9U1oKYuHp5PUieM%ek&39pbbsP_t2H;z6hrUaJ z>z-zKo*Uqt{RFNjdUzKN@H}gSeOd>{v@YtN(^)C!(~mbMR)!GTT*EJat->*@#b;Ip zdU|W%_Etlws)3;HBeZmg(eH1@=MS4P`luDQ84cX?+6~GxuaCU^ZylQ(Yw*A5h5cD8 zhQ3lkuKW;7FDmfsZxyJju7F5fiT2J)wCZc1(g@J&mccgH6rudf#z-{!3ZeBs;h53E zzNE&;oC3XGDK1o%KvG|V^XJPDd|HfIQVUDP5UDC*{z3vvKoX&RPdXWae?x0n`Qc0S zPm5q%RFP7`G9kq!Nf}B@3UT^W0ZPkHp{}_crhpKZDG>&zMG?y2FQETe{|T=mG>P#y zzWezx`KS&AzU_l+Sq6BJh~VR|6Mz?>KZ!8-I!U50U@3SIY$XiDkHrn@JK@%ukN zVry#)tE=Cmty2rJrW^wg8{k+_qM`j9hMo&ydVB$0fg-4#@1w4d1L1WxO~sbjK{m>R zaq=RR=0X$**wEZMfwLkmdM1mJQ<#d5M|o)V=b&lq2-J6uGJ9+|rEq7{awiW;?;*7K zk3kp6h34*YG`T*&nFbEDzC7&ZCP6=$%k-LVAA!isfp{Q;2=Hi1?&Q*qj%+mAvmv!{ zp}fUsh^OlhKyJ^$N~3G99fWu=11cYJ zaqk!!9XuR8^A1|?<={l=dtk9BoK@{-dUfV>$Xz@rJbXxQa%f6w&7$SRfr3nqMG;vz zDAOK5kzy~Zdor*mbtkrOXJOaw1jyZo7^k(@*pS(XYeyCl7|jgT4`-5JO^3k9Mk5i) z7wkc$em{8mZz4W^8&Z;A18W-#CxxlZAmNR4hA*{cg($Hl%_=alqp?ewmCNMJzw|E7 zwd}*btT&LD7>}eRB0yqr^HLc5lA%o0k~h+k^dah^X;-pz_@Ik8*_7F{qLM*QRA5Yt za&nWmlHX3ij>I^mq$D6No(2BN|xo}-8=pVrnpb_HFQLD00000NkvXX Hu0mjf3LEm# literal 0 HcmV?d00001 diff --git a/static/img/icons/icon-pushbits.png b/static/img/icons/icon-pushbits.png new file mode 100644 index 0000000000000000000000000000000000000000..09d5f9bd79f746fff2e7cdc236b26a3725dbe073 GIT binary patch literal 1180 zcmaJjRC|lF$F|eS-D>Xq@!gZlyT`0{Gr@0&b0(SK#Uq7BsfOg z*l@$aB7+WAdKq_1VF+|#TuVy}tqexy3<8^&As6FV>-)uD`olLl=gB!a&w0){dC$kk zojPLUU;_Y0qNBKp2pOauq9E_adN~OJHJ8KZ0CZhEe2`8x>e4X~L85ZnM@SJ0$N2m!#J#>WbHr~te|LA?VO3phGMWh-bbkSc=u0Vt@2Dlzo^ z467E1OabvMT<(Y7NARZwhMvInQK*(cY5`0gV2JC?f^+AAdj@#P;Nl51I^Yzt;OZb; zQNou^aB~vcb|Zv}-Zx0?3S*L{GV)20JIbU3} z9|0!;(6mDBy2WCVm>$#GwYY3iq+NfqvlrH@!=#HKU0@GB+}MA<_}g|^ zzrnS09_`EMTAJP3dto+j?e71uvKDk_#-Zq_ih7K zwm?^yy!(yz9UAV?60c8(4og*-a_#o}&?4DHVjTH*{_oKk47x+EIX;#%ZNF}{pvj>rw9es1yQL8kBdpe8Yi_YC}~AR^LbXk(ik>@j;_0`uZ=4L|PeVZ9@;zy^x&WW+h-*ZN$R7!ELY^bHXxx+M`d}&lOtWvi1D-??1 zn<}Mlw2m`s?WU!^mM6?-35k;QctY+eJo`J;5GBO{ssW$R@&tDKJ9`VeryBw#gF5{M zPLzI7nYCRn(YMVtq=rmaf5$NyMSD#Hf2^HIQRY4S)B>;26S_v6n$`0@hZB1$BksA_ z+dD_7$C%-97i(+2sl&@6uLt>SMrT=JZ+S)2H$VPKoMpFP?;ON<10JdQbwx{4wdg=D z1TTfiN++^|GYhj3fH&LQhsE||dHD;x*uj2&!M=VTY<4i4P5CgQ@?V5=qOAO!vi}l% zgW2By5SHDV2}F3ER7eu#5T)sb*-%X|P*Ta=kzknJfd%x&BXaX>{7&5PqIPNr4< E4Rl)MM*si- literal 0 HcmV?d00001 diff --git a/static/img/icons/icon-pushbullet-alt.png b/static/img/icons/icon-pushbullet-alt.png new file mode 100644 index 0000000000000000000000000000000000000000..462bc74d94a0bf569b58d39317613fdcfc18617f GIT binary patch literal 55876 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 A-T(jq literal 0 HcmV?d00001 diff --git a/static/img/icons/icon-pushover.png b/static/img/icons/icon-pushover.png new file mode 100644 index 0000000000000000000000000000000000000000..e0afe3edff48d2cac36b0d392e84ef7f190ccc7a GIT binary patch literal 872 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 + + diff --git a/static/img/icons/icon-slack-new.png b/static/img/icons/icon-slack-new.png new file mode 100644 index 0000000000000000000000000000000000000000..de7e34faf0058869e7aa6e2d3920d4dff44df387 GIT binary patch literal 15855 zcmXwgbySq!^Zzcn^itBWl!SCQOQ(Q<0@B?f9ZNSzcY}n0NJ~g}r*wnTDc$_m&-?rP z<2ifIJTr6W&b{Z^*HomMiX0X?DLMcEz*3NxRtErpkbe&d1pojL1Xl*Yf6$!dbzA@d z4E%o&5RjQo3;;j?3epmqp4rDaXs+b5DK`{@#@&KL87@0nA)F{=WUWS~t<^|_9NZc4 z0P5a=z<{K9vsxS_Pz$F36cS(E8-`?Q3;_mp5ig%RoH>x33a{BKq?#Qcd^lBdyLnpk zRXQx2Rr)cr`hM2;F#E;2?7g>s)xoOay3abFQ9v*b;FjRm*9?`hvzrMn{Z3cWUpdO` z9Bl*jiProYQZxxpHCj{}1bg{~Jg5!4d3HWnkR_T11-q;T*_!VrS$z!;iiLw`+L| zS>kH2wp(84SLHUvcO}>ZZ04lYY*S zmD!yXd_AsUwRId%A-cq1RmH@ucxNU{n1y)40Ql zcuiiFY32mMBvrt*)7Fv{Qv`aFu3%|P=pP_! z?p`-;BHn>1>LM)Cs_1bsi#WLJ3+FEjaW-R!&gGWO^3HfVX0i4VS*o79XBD|5>ogD_ zIhjv7n*C;kz3P=?fFtS8zTTlBsHsAqg2>d+i(OU!V?uHHTWd9@cbKlmLQHuQfA~7f zzM@6zlC(5efft8C!5!QM2=tt({jeuN(2@ZGs)RMJqSAKp&b8mS~ z>=cdtZD^xhQTv}MlyHSC7DGpnx3{QAaQbrqs%mCN+mtJIj?^x}AM)8U#OYV3sSP@Q zYv6B_U$+mTB{Ju-8&-d`E3@Y2v);nprm5nfK&JUSa*_}AfbVcmYFe{vm-NHb2c0Rg zaNX^*N%&nFVA~#)3N^o_T-xKEw#X4qB$aNLbE{HKBHV7ym0WSci`3K(OeKrzGx?={ zyugX-%8;pQ>8<4@D!@lQfW_gGv_~!!KF%~PxO7V$-{AAp;a7t=&+P_JRGhiYmmtx_ zH>xxV6=_E)9}Z0mu<{C)8|-oR#&13&)tCW3gh{gD4FyUrr+_7ODa)3dj$?Uk=NNB4 zTN3%Jhw2X>bN_zMz)g{YZ>0E*T%B?K{@>~TV`S>Fi{|t)eQz<}0~3Y>`RhbI7OWzB z!;0nB?eNqKk~}Oiccq3YLAaYtpR)--G4uB8*k@hYs8tNNE#7l>}JlJUfBROa`OzVIndgl|aEybsVk)s|d%-WS4G zM9$avb7-f~V^tZ=hwq>HpM7&_h^xOtEDn_!kzt6#_;Lyo5l%6sk2+t7JoxWfTT=WILuNYQQ<`Po$9ZR(tz||INR;8QuiyyM=C*AZIW`S0*se z{ormfEZz>XNQbM-t>Ru3_lW-|d(XU$tdN>r#{C*UU}o!FZtq6AN> ziJ0Y$%({7o@dJF*D_pK=`L?*-kG^em8WWmhxLM!oUhCiTrso_L|EYT_-Ut#$ETx>V z3m0I2{W9SIiBc$yxK9^1A+JQD6;@J`rPW2bLGP(QJN)|RX+amA@&GijRlRNteXm4p zP=?igNelGc2%tJK&2(SDVJFAw_IYc(uoD}^PpaCj$Ud@k-wR2NU^v8&Byq|=q#LbT z2XbTkf#ObbF*+8Wahhx&bk8O$1<#HcqBp62WEr_Ud^(d3TJ=mZ@54u;5mvki@>_a? z8GLePiwqphgqs*u2kt@58};Z{igYyGuWZVPoGHWAo6~AP6H>1V!o_WeD|qoHMN%jyrE`9~@ri zDb3rsxZF@5;_TGC6$~IP%SaT1C{v}pD+7kjV0$5l4M>znZ8yA|fZLEW@wjVZzL8j|lUU0kN>QTn6ciUa2V%a)uG zl=?3EYj>y;RXEy+U&@z#Q9r6iSE0`akBpeQjGeAmnM9l4Gvi3KX=}v@QWq6I5{G>j z6dt17Gq~7wKleMLzr@58{PH9XLAg1)=^{pn!ytyWH`S1_q-7H1`eZzcBh3%~U~BRU zC*o`Q!j-442a3FpVDC{%uyWNkRw|A@A=C~#_6dqUit_TC{#;OAy{gI?1mC1>0YxF4g=1fS@0BLMFj>) zL_b%)@iXIVasCfTpg!|j;<#B>)Qxi-|1nWYq;XFaaNXn(X5l_ZLJGIZ6fFmAs)ytE zWR#g$1jG!-IvCIJGy&B_JiFgj8X=56rcIpC>W!WWdK4oCs#t6e!u?J{+{k)s}_+ z!MC}R*~7xJpkBn`YwJJ2e~)5xSNGk_+6%6am;$<9cs4?*Zan`o8!iB5TTeI4{kjhR zco<~Jr5eGXF8$K7PYAP^x8I>A>bBHN*!+c6z#tHEviRJ9#0(s?u{K_~Nd%ZUj?(~i zs?tLye#SCRjKFF_&Zek&f+RpLlI0#1r&qXVi)%U~Qk6AIlv0x-8|)Yo=SM50H-sri%xV*Yh4Egmc{_q})Na(TF6 zw)3sMNj>R#O!P2m=Z~P4yH96d4k+sGy|l{f|3YWc#qvyTijeAmsIN`@l0$@TY!J%G z3uF-n;S7+hw*MO0P5&E~Wa+E9cQxHb*y;l_!NnW52;Jz(t;ynl=Ra{8Um<_^qB(sRFtJgX`5hsS?dX#fxP6{rSeQVAHv14pA%aBO@`v*zR2vyW zaNT5#eX#nIl^{xoF^6-I5^3`4&y)6>?I&e%@(ulyzCDN2Xrd6~g+COO5v2y4NmuXI zCR`rUoC?`xJ$%*-Ca3pVFnvOBGzli-o)}bE5_(>@TU6(<#dP5a<=J&Ci^EU3S zzSAeSef)_;VY_Z(^~VBbz_0?%*HqVU#~* z%f>D^pdxAbWrO8viVqR&ZL&b-vC4;oG;?%Ee)SH}ZO(Iq=f_mQ;4XGCSo!fv90qLYV&PHCl)3+Y0v{vABd^80uFNAYYeNxkV)>Pvyo2Iq`NpJp}ETHhZVxcAZefT1l+X!bG5HyUIdp6%OsWSy_|iNgvuzs#+8 zK~i+>(3>_Bw^h&Gd@D|#h6%#PzOAbmr^`&2_#Vpw$~d8D-`Fdri_XQVTE4(O{G@23 znx%NL(LXuyHl^|a2ZhRVZ-5^R<>{4xR_5?aaa-pCO2r9y#dB1xPXuEQ@RI=4hJv84 z6t9AguZbIugBSn_QA`N&q3XXlGNm}1rY(MPfS^U{5dgD-%XfVm?p|J6t?z9CxB>DX z;ItY|%DqKX3Ek@uIH8XKIA}t`h54<&E8=hnkp}QS6|PxnEHA3}w^NTh&N|1WiWdX{ zT$WA)ScHaUOI)OM5%>R>< zx3SG_5&!E_*ywEek46C3C65lZ-z3&+>+2y3ZCt{q`ELtjML)O2|B|jCW~$keW)^`MM60)ObdIpU&L6q@j%vhI;R6DAr~(AV#`TsMz9j^?yUG~L z+JpV72T%*qeFPvoZ<|Ws6)<3>W7hUD9+$EAj5B%akn+uDkRbNur_ZsL4f?4 zqLOl2u%*Sm+qqAE=m87pN3Ew38LN(e~tbc z0nB6we~pX}j7Y9x#)jHFDxaR%aCcbVFOqEc)_pc%gFD`OiHxcn{5vm6=@Y&b#qirF z6t!&rqv!P|lhi^fRR2>!EA|8$c`xz#Qxzt;8T~+}<%pg3wOwa`TEP-^Dp^dQnGd%Y zT|Uw0Y$L-bCQIl6nKhQcw&S8hY|e0`QgHN;Ijb7z3uy=N%@WPoM_)~G zw{na}T6yP)!6Mp>YC)lcrFx_fz&U~8oGf#aQ7&HqTb+zZMg?mK8$4zL*zt}maNke? zQ-uICD%bBLoKgNT3s9jim63A>i{w7;h!0{q$-a%Bpcx?fEnw`D%(w6CnxQbOH2Zh! zfbDjN4@YDuzkZQ$TSI^#-t=#`2>VxWXsA_qP16|*p@`Tg{_az3mQaO5i*AAI=AH#h zY~vfGQw+cMX~FZhe}E}XOAPhq#1mD_ZV44g+dZOwGwX2uzSOxk%xDpPM6Q@^AbvML zaI?0=!*44*a`xnpkWkv7`5W{fW})~YN^Tn_7P}+c!X-!N-HCG?rM#tA)fH6}BV~XC zN8vwUr3f`!rH4{*ApJs>0GG?ZMH z?Y4`O9kvx?v!=G5mzE@1?KABOy=&<44En*Zvpbg`9{!<+NECCI4HkijEN=TayKZ*hEn*RCuq>IAZBNb>20GhKj58_=wQf;rAn|B(9jCN6i=O?HFe%i3>kL3|xS z+H_PmO2nlL)Kq%W@7jv;J3PW~G4kzBG#YNEpT5s*mxeHtPOg&%b(fa6*wxhJtrmCJ z;o7dAed_^&l{))nLbB8t(5jvT)350k{7jA?qC3p40$7BkCrq58mND+z7sljcngJUhU1 zpaLJ9TXQkcslDIC$UbHKqC0WQ+1<$0kJembA!@oPuT}gsQJ~Z-5r78YGa76vJ|w>G zh(}-0Yd3(4(Cocn*wIJ7I?i56Hm!F=R_q>VpyrL59={CyVc5$rQFb{5Mk#jfl7_Db zw+5@P46wr#f1eLtT;fP}Y>8TnFFkrMS(;i3v!Vx_zb_cUU6)2%SRmORvbeH$_(3hK zlcoe}Ghla?oJzmj-I4~BeS%sP;f)Im*&2^-S+{z8(>$9JEvO?}L7g}@Tsgcyw)whf zh7NVt#1y4^_1aa|#Odk-&Z$XB^|u#wK;GcVE*s8uEE;>=G%!Sv=v7*fIO+evH~c7a zcXPZjpY(KtRcDA}#L`B? zzQLhGygn#Y;)aNRGaDyBmdy{TQuo1!)2Ig8U>@2gJdKFwl_x-cM&eY1h1oz}%txm; ziN{9~C5Q&S^MsZUd>dZ}64ikB5GcKMba7H}?mJ8mDUOi^iJ@reehYak+^aUhto&tN zQH{r!ucfN>4AhztQCSMpDCU%R_={(E(nX&jrQSzRpDMR=DZhLRf58wzb&@ zKLMf?Pj}mrsL%bPSXvteYTSMvrA`orrO*aw<~Z>QtJE-Fd*;CoxjyUv(qCR17AjvJ zcP0jfTA^ zMJ=kxBjI1sSZQ~fT_jRH59yf`qt7zmE7%Y08%Apj^#m}n7J?cAe}Tf!C-3h=ua zqB#$Mr)5HqmWex3m|iqU0mij2i>855i1FnU_o-5_94cY@e2v44$?+Qyv=3E{Wf74t z%DYn$J%8ZsWeEIeEo3FX-B(yG4QMgdTl$t<*lLIx$D)G!+kVzQxiq*$y;JE01H3yT z0h%@d(N9Ioh{KnyiTZOfK27fg#!ThErx{S`BDxv7=cg{ITrgP%WZ=mAiqD4=e#jMrkS8&Ijq(&6ySx)9(<(0Lp zO@L<9m#xLN(-G7vJFY^LeVOF80~(sXaK!%HP(p!R^1aN(`*>lSS3j)Avkef@#?mEJTR7{-WRD#=#WM`a($G&C*pWNCMy<({cfH@#y*!2Vb>>Qa@vy#1W zeYt4jE9m`&`ma|)k_NZa;S-(d^uO%pT|$hhW33GQoE<*^BI7%J2U8%ni7*{9Ckjf}sxkl>gw#-p&pYbb;u!l@~@I8}^ z*BMVtEfmLnD*XPp!8w>$U6P~CfVrr?4mCv5@dDo?xI)#j<;{X{Dn z`wcioIESiED&KyIo`|qqn>cQ19kNV1^fCqo3`C=*{&jOXGOJHd>JII7`1peULKD4f z6<*HfjvSwf>pyltL~SO0>n^$;3?--PrTzt>Ga^^=I)+fvx}Hz+&K z2^hbHnXQ@m$g%Qcw~Ug@l}Y$;tDn?tNNd!t8O{hRzSwZ)%;g3;To{{VtMg z{PEN@Xi2hosG%s#tE-}d!?=#YEF*}!kNk8e9p8^gsNku}c?Uc7qiUJ&zTkQIoV?4? z;!tPbKM_&?*x_8~UAs z7Y~}zld>iVc?dPa|I>Z>ChH~(yW?m_IUONB1E+3_{O>VAxF8Q};l@wN9lupaS(-Xkw}mWwa9Nr)C3bcMvYi$f)e~Y zh^;XYSNJ`#yFLvN4zV~_FH&%!d&OMA1GD#)22V73x$hKdKZrUt8O`6%^^klu5I~0h zrV9wGvDF!^WODmcr+-{;2&iq*Y58Tu6W&_g%Gv)~n_+dZu;?9Dw zeKPO97^LGchcXm3D9bvvYP6K8uFkk4#4q{#In6$Cz;h@A?k&4mke0p}Yt)WDq!2zg z*(T}&2I+uLT?Tmc8>mXxr}{4038M+3e~7o z*=B()$db0{Qm_KlXc!2>udBNTs*F^zceu~Ua%GiokmAm~S2z+^3w1p_Hv_a-gyPoB zYDhgaNqKhuC3W~N)F?OlL&H|{9K11At1&OVCzYDq$D*sFy>y?jG%66(YQ>bOe*e;W z_L+6u{M}GEMA_;bh*Mqxpd%Ih>CY+80cN#E>v3BaA(yt?NCK?Utv;`g8G< z=|D#=NK)#J|_8PFv5y8?6 zxdIcgXdcz4xmxU2tn%uppVb38>e{%}j{dzC5scmvgGG|)Ma!AKN*tu?9$~=6BZ4W& zX0rY~%#rdbHA%CrIyQa%o!h{j%e=!?=Lj#*3O%Yu69KarCKk3wZ5qyx7t(0M*Udja zwgK*TgdMR;(Q1Z83W6z=1#(ROd?{NA?&g$jVxQxFcqNh3n3KkI@aqN1-kC+?H>KFY z?bf#HYwCBP;%_)R-z&BMVm{hTzyuDgajz1*c)lH%6Fa-|!%k4>TB%bsS9hX1l?D*c z+Exv2&n=A8n_5t=A3rm5$D~$gXtRpsI38biSH<1l(HR(O2B7ZFP z8}zZ!U$_|e14$c^#J*HU+PAy3?W?na6R4NQ<$HFE} zd%M&tG})HJVAHQ)5jZk&D<7tW4)qh@uV0skqi+4Biy!`oMqR-@CrbLpAhEfln_Lc0 z7Htql7cjvqMH`cT3BIS@E+#yVzluyQ6?0eb12DcPm#=YPOey>#y8|9M!J8P6CoN9g zLuR&DjW@n*kChyXx?fNr#DKudCv6}o9o`TZJY1$rG>1pe@^mB80Gb5()JT9dO#+L? zHV}mBAyWvB29YFyv`W_9$~uaLzs~yN;B<<~J6_2t}4D_kt;pe!mcQ zke|j5bhg~^g9XloLR2b4A{tXwB^0{ly#hZht0lZ|2W%O~b2MplV7B8lazk4&u?&A= z*i78Lnt^Sil%9NjmkIz-r2OjzxO=3#{%C~NiW~d%>;1-)5ygugtzNpU+1{10`ThJ+ zP{YGB2uo`X>xY!%h#nQ}bloB3=ezaLep{-r@%47Z0z|jf_11UMA~aHAWh>m=kd=m% zt{o<)@2%KEuM9xPRG6khU%7Zr_4c%3xJ~mb2<=bYBmp?TT{*C%=ltIhC~c!c_UX?Y zHBfRZ8^uEUt5ybLz%ljigWuIW)(A?;?sB%QE-A<**JQ|$18AO*;xD%ZShU+jT;`y^ zd2wndnj#TP+|O8>54nT(SC$LhC(Tfb93_vdm-Dy7N0pYHp~=xcQE8)OTp{yG@@I~Z zMm=0kRV`RcyK&%t0e?DI&6vlF$@%G|n;&6XmV!N7NF~qJ7eQf}MWc3QoK^*CAQVCkz zPQ}oXOM8yLuWYr8+~$k2F|<8!J*@%NLZW__wd%d6j*O33m^??}I~l!)f^YW^m_ky` zn{F)0on2Zx!1qN2u2YEF{GWRk>P(rXgTEt4lS}fAu3t%QBSJ!OUP>Y)c26xX9DNAF zC}qM`I03ye@Bbj_`DagvR|!NhnPptzgH^9Ic=h09L)+O2iKYW3c*R47_ZUb<4}8 zf<;1+;)jQ-=jRMtyANDMXPB)B?!8I!IX{0BJ$$w2ZE4Om^Jb4*9coIQX1VM7$^z4( zpO^2>UUeAdOXOtx2JD3XKCWHI9qcR?fVp``{0!z$a((1L{5u|yQn)3;<$xwIY7>$rvOkejTw4vFOp<|Vm-{GsgcZ9u5c);n# zH=0j|uLY?s5eLCgLf;!Re=CAjY1F2 zzem~qm{uGwvW+YG6lI_E?5QxfsVj(UH(;PofHIlx2VL#55eY;I+Eduh@ieI|6)^dm zL3!iI)4<)_OnB(`1*s1stp$^ng(cLFdZIoCy+_QrCZ!h4V@eE&kzEj;S;@2j% z;S7E-G8E4z*e0(1w%TFCFq19V%n`YW=LNMsq(8)8agT`8m~Kl$X{Q zo0v=01gU${bM{HiXKsup&X^bG4JZ{71asy+{Br$m`laz3F`8waNiNZKY_s1>`(+S~ zml(U$PVLr)!Hd0Bo(H9uICAKubS}>MiC3o7T7)dRjbSm1B^0O7J*t~a^KOJjta|)a zffgy?ZyD8Q_5Qu*nl9qN;>$;Lsu?HTs2t)8Ur?SEVT=eK?-T6H6vs=R(JD-AJbXig z{D)RdXv716it{_<56=}qjh&q~)Q+SrfhFXPr(mfxIi?|)^!Ya>C*DGoS|442D-NS> zn^Salf0Z~(n;_W?YFqwcYmYC8)4JPAt3!ZE9 zr0Pdd1u({x*+3nUQxM6qL-ReEGp5*n3DljrR6X=}{z;?AGRLN0UypDS2ASUnz~09@ zo7FaKGq9iSBQ+qar8I+Cm;Zee77U#d_~lEL&;EEyI__L6yxk?EGXp*ZccwM;5UNE=G$V z%RJe3K6|QoC2c)J22q>6bATqXpP4svY7<&DKpxDWeCzbUWHD7Oc+^^$oeii>yP@q# zIcPHpD$DuIixuGP4aLQ+L~^IxRI<_bJ1*<~Bw@LV8KWg`#fBCWIf>-ncDn7-#=<{Y zJ1-#iw$P>T{ZaII&qiK#c+So{6$$SyMfWK#y?t*}64m%6X1yT*k&P>^vl_|Ui20mms`t2thyBLck+M~#bKl6JkK6Z z!0-;R?0)0OcX_68haDFNvOLph3SWvU_gb(rshd@Mpd zdY6;A)H1!D2GEQKEk_wDe#_wF4Q14;HQji-q1#X_N6APQ0B1o^i=?}N1}=F$uF0W6 z`|$bvT8El44VwX=!(ZOJm=6dM^SdZ#uxc?66{V{Hd;buCraAyCu(QTr9uUgX`0E@M z?B2CZ0u?BP?ORMiYCSQB?jL7%u8cPeEXQpw084)vfu%(NAykCgH|-`s%_yWau7w7} z=dN~?Xi>Rfhn?vDLx7@I6+9Uq=UoQ2o8U&uPXtv0I*X#f31!i=O<3mb4ijRtus=l};OmVAPF#j0J%DoPSjK&gTGm5bjzbNk#; zqJI&E`C+Ii-{MLytp8L{fUC+%{Au^CqT8#0Y!0W> z(Vf$%`&cTi(jLtT`G4OY$Vnf2r**e;Y;DB5^bAv~wi($}bxOV%^lFf`xrwx8gMQ zKmxt(1FXRzta{R;hQX9X>Va}^qoOQ+EVhx^Vm9_#2w%11!pxo=rzb1qhu&2 zSRN5M#-2VdB{#qA03;@6JTIxf{@?d--?*_wkTAT?J?yx3iKuVtUC4vE$1z$0jGt(X zo5e1LrsyYPB0k6;3Bz7Th<2qKVB;FL(V|kO5(XsWUhul*=CQit%h0mzh#d&QP}YYH zIxxEQ<&@o8v`7P*W-dRQI!3E~MvM?CXz#M*p;{raS>4*}bmAsg+-j4Z>e=GV(@b(T8%~GUfC?a)+%PfxlP6ipbJTsco18{z9M>(KFVZ{DK#`E z@zx-A<}5YN7+d#wMKea>dktg8fr?TS*sLSxyy+NkByv#omO}bsuwhJ1v_^Z=PbJa2 zPB#Z*qrFWg3cy6Bo*Jb6&SvHFhrQJUQ|q#)Z?-wmg?Jk@5#}Kk9`{%9;gv&3y4{Jl z2Vt*MHqN-hAu3EQ1sS4aiAjOiq#Q{E%Nvc?AKs04LjD?&cUHHL;rKYO>#lO#h<^;8fNlWISw)L zPA1jeYpgu2ncNIgJ^oJ!dUfTHt#eoQQ3s2pcD;V>K)_aFSZ@cT2m>7P>sZ)novR^w z{IW9SP#-U%V)%JNm_DrXTZZBr+Xgig>fguBQQ_8CkKu;FR+F=B_>nz6EnHuiH zc$S0>9L|*)Y<b>JL?Vv`Njr#Z0)g5-S$>adDqw0Re_FI*byj_ zCeak+9)V8LuXae^yn>dNf`-nra>8pz7lIgG{SAz+OqrJ$*oq{V7Dx#udwl^KR+74# zn}vzZCn|OQu;B9acp;U1d${O}hJI$`^QJET&HHT($k?FQO%qbW?c9~ro|9D%M-^bW>NLs1Xy$ee6ZLpkWmhh53!`a z{(JzLIp;(=NIT;|nipYvGdms(?coCbun&(orIW_`-bTV%)8LZfE&3B4zA6;Rg@7f9 z`%H(zW1^Jk$pDT>vNv}!nU+$3=^_yt%G|zQNDI=Xr^+^CuJ#ThI#x|7aaD(l9N+G@ zVW66gX&N;tDFJFs5EgTyFMW?>Bp_LVYquakb57mRDFu;2KLrhv6#j)r#zzzf5Q@Orc)Jhn|?gEtQ_YXQo-Li>`5i?lNI=eOzp zkF-xHL(w^JdPdnbSO!;9T8kLJg4N>><8!rd!x0gtw9Nbf_VN%%YxkW9e%V{6_H^dW zD=&CWPWD&&rc;JYL@Ut?ZiVI@P@W}p`p3SCmCub~ePj{xTEFH$1D`jy*ApSt zhwV@yTKFN`DF8%u&PwCGI)`S+%Rmrf=O;ox=FpjK*z ze;p3PL{OZ;w$7-wlRCXOr3aGjb36_~d+-RArb)-}3vBK!o8|x9P#TcU(DNE%kcl_)_irS70dc3+L;EK*Cl1qYbyV9x*C(S|DS@eIk@MwD|yyyf)J0z10jte<;{i7CFXJ`xWQ3#CaYj;CqX}8Z2X4UmiQiH`Ady=8NgW~n{c&!M zEZ0D&U_MG`82r$lf{ivYy$N%;ch5NnQUNCA6y9V=?i7S5WJ6eRTqC|r1QlS1Zy)qy z`kXxVhfhDL8TLan5LmB^!02!l`aW|q3kvWmFV{(TDSQI(WP6EAbs#hJzks`0b1>N= zkA4x+1q5M@G^GWug#4A027p!S;7q~Jk0;XO!O1d-^$ zqMkuyKC8`*x;QzMoAVy|@WgYE=8li1NZ5uB*NI41|O8{_Hv{y$ZoxfhN{XI_^uvF);BSl4~#p#*(XCVjcKdz6N{g|>GAS!jYEgLzgOz(ia;j&f2Te(?x#MU4Y< zK7lAqB_!S&C9#gm zgEJ~*4cD;;)Q{_c=gtIt5Z7l^kN)~lQbD)>XkcHn)L2eF9)B&c$bXwSRoFfv%5`H% zl!e(*?_IDU-u&%lKy1j0(hm!`9;nsp6eQA0wcJP*o)TPhnm210ySbpA!`#W)EnaGVJlQDW=|KDdQ7LN85hk!PY%HQ zZ0ja0r3^BaZ1KylC z!BcOxM1d4a?TjMeH{QKqF&0eMsuw=#W{Z=0-HA zYG_H*3x}bRPAHubUsHFBXHH7py-!j!RWx7cCkP4!v@@*pVCA<*40FCykthCs7bcBN?M4x z$K!sU;2LSgp!VZvxT{)Da`5Ua^BQ+pn>w>(a06xAyX5e?!iy&2lt3(Cs z_09Qw-)ARWQr1juqubB;E%_!*jeqb!d{w9TFu1GjKE}>H#a0Nu?b_9Z#SHwevc%|- zr%y$pUeDAQVej!7Fl(CeKZAuc{G95s$vn3O@i$c-}mE@990~!SrI! zwb6mO*sq*_)NxF-ow$Qc#~CC<4crsaJK}j2t{DM+CN<0S0p3?32`ur{hUO}aD?4Eg zaxcSa{iS!^bfpyTSpeK&H3Bb7qDViEbw?+yrEX8eBolDSR0i!y&B^a%b3tDM6ReTp|7U~<2w$b> z@W@FE!ag{4)L>@%-wKy@Jo*=0uP~{(?3m?FNSuaYY=&?j$@vnIR{g~JcobY7^$sBg@hF4#k@j$&Kvl$Af9iFAN)J23Mz~Uo*<---^uL}B@e;MGoCQ| z^U;d}RV&|*fYplmq<+@Q4k)yPn?Bh z9ULnLppz=#Y1H@0s}p9Yj&_0-e?x42m-!&aCrS{7cn0S7XUdJ5zyd`uNexm5A8xLj z#DW_rh(Svt{~8gcq%mVH5W0#0;?t69`WChto-aUk*we~{O({GRp8R2u04+c7VDuf} zJ{d+as^`ldYK#pgC6lE4Y#{xa%!DQ8XUq(EqZY%{n~8=xXj4b8;zRmg`*YEms92hk zM0lsEN7)(1V$kQQj6$hBf<-dEv~G@YCYo+;ho|UNYiAb@SRm-kR+zvB=uu>N45Sd z>U_w&xzJo&i$j6res^!ydl@xpHsxW9fLou)cd|=dD`lx*2MAOpc~U`Q_CL}pmw^HS=?KUWiQ2cv?3ARJy; zrthR^a{TKA`7-rL%j*kKA#QZ{QfWMws#o9;cs(hxVc`)WhfoHn1_2ZIu2dvB=MrB< zCCC%9m;q`583A^Tqyc7KHg=P4&Q2!T=Mr@4=IHiRBoI^zgRk6QtWX~SDL9$0rD{rN z`GcfsQVgsfxK6p@6H8M#DXSJUS#QBK3CybKVuOGjv|V(8;I`wV& zESnl!l6>xhWbjt+#s8+M$mu}|^4siKVsca0@JXsiHMFlz0wP?Las1P+Sa@Zy;u4+w z?}cNBnAJyl{}Sg?_#ma{wsgq%@=sz`J(hb7_7A4x*@Ebj zU+cVE-%y+FEsK6#%U0%RUKWH;Hoc@nEat8Z3yW$s5!h;nk}>6`@U`aLVnA5yYoBO)uT9o2r` z?Ei0e?osgEqh4nFs{YG&#fK-?Avpn}-)dl!DnuO_qLB)3%$A$;wm^&V!hebfR@SFb z{>I04nb^D5wIz++QKomQ^O%RUk$EW3v=*c1_QuaG^s_$d{T~VWx(w2pfPraseC>T>fHDX%&Qa_JK09%4S^4hftNlb zsY-f__|>!4b6R_R)y$qx+E-)CM;}=@6g+x8Zst6){{s3#9BN6YZc)a8VUKJtyW_c{ z%so{yy+}&2R8U&s5IeCe9Gu|8+!8n-K@Pj%_DVvNEs9F32TFMhugKDQ#ugsuV<{}F zZv8J|>q)GY zkaF88ZRmcSux+hLeLfO5=J!Hw+4MuEZC2HhyofbHS5!{rC&y!=GR~ScDr`5aF%4^U z!xBng)(PY*xZWN%6L!7)t45%j10Gl-Bfvy)w8YuKx`xEogo6=}C-Vt@br$s~0GSg; zd=jx}%9Q=N7pqINhuP#DT|Vvn$oKy74vTLHaao|j&F*61dJ4rg3rbc%u8NC8lItrp zTWr>m*H1ZYb?tOwR8^N=o{_1ow}Plx79dIV%5>K?<}Gilm6MCco9Kk2J0SYoI(v^}%LH`di$;zAn literal 0 HcmV?d00001 diff --git a/static/img/icons/icon-slack.png b/static/img/icons/icon-slack.png new file mode 100644 index 0000000000000000000000000000000000000000..7a47e27cfede394efb67d09fff95be2bdec85766 GIT binary patch literal 3305 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 literal 0 HcmV?d00001 diff --git a/static/img/icons/icon-telegram.jpg b/static/img/icons/icon-telegram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9815f3e933f263e246ffb9e749e5b58b53fe5447 GIT binary patch literal 27200 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Ⓢ+ql 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 literal 0 HcmV?d00001 From 4bb42eddced290059eac187ac305bedfd1d1bf8c Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Tue, 14 Oct 2025 16:25:52 -0400 Subject: [PATCH 02/16] Merge branch 'main' of https://github.com/unraid/docs --- .github/workflows/algolia-reindex.yml | 27 + .github/workflows/main.yml | 18 +- .github/workflows/pr.yml | 40 +- .remarkignore | 1 + .remarkrc.mjs | 58 ++ .vscode/settings.json | 37 +- README.md | 263 ++++- crowdin.yml | 1 + docs/API/how-to-use-the-api.mdx | 28 +- docs/API/index.mdx | 18 +- docs/API/partials/get-started-pre72.mdx | 5 + docs/API/partials/get-started-v72.mdx | 5 + docs/API/partials/manage-api-keys-cli.mdx | 12 + docs/API/partials/manage-api-keys-gui.mdx | 6 + docs/unraid-connect/overview-and-setup.mdx | 17 +- .../partials/customization/change-banner.mdx | 1 + .../customization/rearrange-dashboard.mdx | 1 + .../partials/customization/switch-themes.mdx | 1 + .../partials/remote-access/dynamic.mdx | 5 + .../partials/remote-access/static.mdx | 4 + docs/unraid-connect/remote-access.mdx | 17 +- .../optimize-storage/zfs-storage.mdx | 3 +- .../set-up-unraid/configure-your-array.mdx | 4 - .../deploy-and-configure-unraid-os.mdx | 2 - .../getting-started/what-is-unraid.mdx | 30 +- docs/unraid-os/release-notes/6.9.0.md | 1 + docs/unraid-os/release-notes/7.2.0.md | 149 ++- .../advanced-tools/command-line-interface.mdx | 52 +- .../command-line-interface/cpu-info.mdx | 17 + .../command-line-interface/memory-info.mdx | 11 + .../command-line-interface/storage-info.mdx | 11 + .../partials/wake-on-lan/linux.mdx | 11 + .../partials/wake-on-lan/macos.mdx | 19 + .../partials/wake-on-lan/windows.mdx | 9 + .../advanced-tools/wake-on-lan.mdx | 52 +- .../changing-the-flash-device.mdx | 94 +- .../partials/backup-manual-method.mdx | 3 + .../partials/backup-using-webgui.mdx | 8 + .../manual-downgrade-command-line.mdx | 27 + .../partials/manual-downgrade-simplest.mdx | 7 + .../partials/replacement-manual-method.mdx | 25 + .../partials/replacement-using-creator.mdx | 34 + .../partials/upgrade-legacy-611-612.mdx | 6 + .../partials/upgrade-modern.mdx | 13 + .../maintain-and-update/upgrading-unraid.mdx | 68 +- .../partials/reset-password-advanced.mdx | 20 + .../partials/reset-password-basic.mdx | 11 + .../partials/wireguard-configure-mobile.mdx | 9 + .../wireguard-configure-other-devices.mdx | 10 + .../securing-your-connection.mdx | 16 +- .../secure-your-server/user-management.mdx | 45 +- .../secure-your-server/wireguard.mdx | 27 +- .../common-issues/data-recovery.mdx | 68 +- .../partials/data-recovery/repair-btrfs.mdx | 9 + .../partials/data-recovery/repair-xfs.mdx | 18 + .../partials/data-recovery/xfs-check-cli.mdx | 12 + .../data-recovery/xfs-check-webgui.mdx | 7 + .../unclean-shutdowns/flash-drive-failure.mdx | 1 + .../open-terminal-sessions.mdx | 7 + .../unexpected-power-loss.mdx | 7 + .../system-crashes-and-stability.mdx | 2 - .../common-issues/unclean-shutdowns.mdx | 58 +- .../capture-diagnostics-and-logs.mdx | 92 +- .../partials/docker-logs/command-line.mdx | 5 + .../partials/docker-logs/persistent.mdx | 5 + .../partials/docker-logs/via-webgui.mdx | 2 + .../partials/syslog-server/local.mdx | 17 + .../partials/syslog-server/mirror.mdx | 17 + .../partials/syslog-server/remote.mdx | 14 + .../diagnostics/udma-crc-errors.mdx | 2 - docs/unraid-os/troubleshooting/faq.mdx | 15 +- .../troubleshooting/licensing-faq.mdx | 54 +- .../licensing-faq/manual-keyfile-network.mdx | 3 + .../licensing-faq/manual-keyfile-offline.mdx | 6 + .../overview-and-system-prep.mdx | 32 +- .../partials/gpu-amd.mdx | 3 + .../partials/gpu-nvidia.mdx | 2 + .../partials/hvm-support.mdx | 5 + .../partials/iommu-support.mdx | 5 + .../windows-upgrade-clean-install.mdx | 5 + .../partials/windows-upgrade-in-place.mdx | 3 + .../partials/windows-virtio-automatic.mdx | 3 + .../partials/windows-virtio-manual.mdx | 14 + .../unraid-as-a-vm.mdx | 2 - .../vm-conversion-and-migration.mdx | 10 +- .../create-virtual-machines/vm-setup.mdx | 12 +- .../windows-on-a-vm.mdx | 47 +- .../partials/safe-mode-alternative.mdx | 3 + .../partials/safe-mode-preferred.mdx | 5 + .../customize-your-experience/plugins.mdx | 16 +- .../manage-storage/apple-time-machine.mdx | 12 +- .../manage-storage/array-configuration.mdx | 512 ++------- .../manage-storage/cache-pools.mdx | 173 +--- .../manage-storage/file-systems.mdx | 196 +--- .../partials/add-data-disk-no-parity.mdx | 23 + .../add-data-disk-parity-protected.mdx | 34 + .../partials/array-check-parity.mdx | 65 ++ .../partials/array-check-read.mdx | 42 + .../manage-storage/partials/btrfs-balance.mdx | 19 + .../manage-storage/partials/btrfs-scrub.mdx | 23 + .../partials/file-system-btrfs.mdx | 5 + .../partials/file-system-xfs.mdx | 5 + .../partials/file-system-zfs.mdx | 7 + .../partials/fs-check-cli-btrfs.mdx | 12 + .../partials/fs-check-cli-xfs.mdx | 14 + .../partials/fs-check-cli-zfs.mdx | 27 + .../partials/fs-repair-cli-btrfs.mdx | 14 + .../partials/fs-repair-cli-xfs.mdx | 11 + .../partials/fs-repair-cli-zfs.mdx | 20 + .../partials/move-array-to-pool.mdx | 14 + .../partials/move-between-pools-manual.mdx | 10 + .../move-between-pools-using-mover.mdx | 16 + .../partials/move-pool-to-array.mdx | 13 + .../partials/parity-swap-what.mdx | 1 + .../partials/parity-swap-when.mdx | 1 + .../partials/pool-multi-device-mode.mdx | 5 + .../partials/pool-single-device-mode.mdx | 12 + .../remove-data-disk-parity-preserve.mdx | 79 ++ .../partials/remove-data-disk-standard.mdx | 15 + .../partials/remove-disk-command-line.mdx | 53 + .../partials/remove-disk-gui.mdx | 20 + .../partials/shares-array-to-cache-611.mdx | 3 + .../partials/shares-array-to-cache-612.mdx | 3 + .../partials/shares-cache-to-array-611.mdx | 3 + .../partials/shares-cache-to-array-612.mdx | 3 + .../partials/shares-primary-storage-611.mdx | 14 + .../partials/shares-primary-storage-612.mdx | 25 + .../partials/troubleshoot-device-limit.mdx | 20 + .../partials/troubleshoot-key-server.mdx | 6 + .../partials/troubleshoot-license-issues.mdx | 29 + .../partials/troubleshoot-missing-disks.mdx | 10 + .../troubleshoot-withdrawn-release.mdx | 11 + .../using-unraid-to/manage-storage/shares.mdx | 89 +- .../community-applications.mdx | 44 +- .../managing-and-customizing-containers.mdx | 219 +--- .../run-docker-containers/overview.mdx | 2 - .../partials/community-apps-installing.mdx | 19 + .../partials/community-apps-reinstalling.mdx | 9 + .../partials/community-apps-removing.mdx | 4 + .../command-logs.mdx | 7 + .../command-restart.mdx | 7 + .../command-start.mdx | 7 + .../command-status.mdx | 7 + .../command-stop.mdx | 7 + .../environment-variables.mdx | 29 + .../network-type.mdx | 21 + .../port-mappings.mdx | 13 + .../volume-mappings.mdx | 21 + docusaurus.config.ts | 75 +- docs/embedding.md => embedding.md | 26 +- i18n/de/code.json | 476 +++++++++ .../options.json | 14 + .../current.json | 130 +++ .../current/API/_category_.json | 4 + ...i-key-app-developer-authorization-flow.mdx | 100 ++ .../current/API/cli.mdx | 210 ++++ .../current/API/how-to-use-the-api.mdx | 241 +++++ .../current/API/images/advanced-rules.png | Bin 0 -> 103268 bytes .../API/images/button-customization.png | Bin 0 -> 97812 bytes .../API/images/configured-provider.png | Bin 0 -> 86795 bytes .../API/images/default-unraid-provider.png | Bin 0 -> 131176 bytes .../current/API/images/sso-with-options.png | Bin 0 -> 76436 bytes .../current/API/index.mdx | 91 ++ .../current/API/oidc-provider-setup.mdx | 415 ++++++++ .../API/partials/get-started-pre72.mdx | 5 + .../current/API/partials/get-started-v72.mdx | 5 + .../API/partials/manage-api-keys-cli.mdx | 12 + .../API/partials/manage-api-keys-gui.mdx | 6 + .../API/programmatic-api-key-management.mdx | 250 +++++ .../current/API/upcoming-features.mdx | 171 +++ .../current/contribute/_category_.json | 7 + .../current/contribute/style-guide.mdx | 161 +++ .../current/docs-home.mdx | 55 + .../current/glossary.mdx | 8 + .../current/unraid-connect/_category_.json | 7 + .../unraid-connect/automated-flash-backup.mdx | 116 +++ .../unraid-connect/overview-and-setup.mdx | 234 +++++ .../partials/customization/change-banner.mdx | 1 + .../customization/rearrange-dashboard.mdx | 1 + .../partials/customization/switch-themes.mdx | 1 + .../partials/remote-access/dynamic.mdx | 5 + .../partials/remote-access/static.mdx | 4 + .../current/unraid-connect/remote-access.mdx | 155 +++ .../current/unraid-os/_category_.json | 7 + .../advanced-configurations/_category_.json | 7 + .../optimize-storage/_category_.json | 7 + .../optimize-storage/zfs-storage.mdx | 342 ++++++ .../current/unraid-os/download_list.mdx | 12 + .../unraid-os/getting-started/_category_.json | 7 + .../_category_.json | 7 + .../key-features.mdx | 21 + .../tour-the-web-gui.mdx | 120 +++ .../set-up-unraid/_category_.json | 7 + .../complete-your-post-setup-essentials.mdx | 87 ++ .../set-up-unraid/configure-your-array.mdx | 89 ++ .../create-your-bootable-media.mdx | 80 ++ .../customize-unraid-settings.mdx | 224 ++++ .../deploy-and-configure-unraid-os.mdx | 100 ++ .../unraid-os/getting-started/unraid-net.mdx | 31 + .../getting-started/what-is-unraid.mdx | 186 ++++ .../current/unraid-os/release-notes/6.10.0.md | 888 ++++++++++++++++ .../current/unraid-os/release-notes/6.10.1.md | 19 + .../current/unraid-os/release-notes/6.10.2.md | 87 ++ .../current/unraid-os/release-notes/6.10.3.md | 53 + .../current/unraid-os/release-notes/6.11.0.md | 314 ++++++ .../current/unraid-os/release-notes/6.11.1.md | 93 ++ .../current/unraid-os/release-notes/6.11.2.md | 115 +++ .../current/unraid-os/release-notes/6.11.3.md | 36 + .../current/unraid-os/release-notes/6.11.4.md | 60 ++ .../current/unraid-os/release-notes/6.11.5.md | 13 + .../current/unraid-os/release-notes/6.12.0.md | 565 ++++++++++ .../current/unraid-os/release-notes/6.12.1.md | 56 + .../unraid-os/release-notes/6.12.10.md | 68 ++ .../unraid-os/release-notes/6.12.11.md | 75 ++ .../unraid-os/release-notes/6.12.12.md | 82 ++ .../unraid-os/release-notes/6.12.13.md | 35 + .../unraid-os/release-notes/6.12.14.md | 70 ++ .../unraid-os/release-notes/6.12.15.md | 62 ++ .../current/unraid-os/release-notes/6.12.2.md | 68 ++ .../current/unraid-os/release-notes/6.12.3.md | 60 ++ .../current/unraid-os/release-notes/6.12.4.md | 155 +++ .../current/unraid-os/release-notes/6.12.5.md | 63 ++ .../current/unraid-os/release-notes/6.12.6.md | 64 ++ .../current/unraid-os/release-notes/6.12.8.md | 105 ++ .../current/unraid-os/release-notes/6.12.9.md | 81 ++ .../current/unraid-os/release-notes/6.9.0.md | 710 +++++++++++++ .../current/unraid-os/release-notes/6.9.1.md | 64 ++ .../current/unraid-os/release-notes/6.9.2.md | 45 + .../current/unraid-os/release-notes/7.0.0.md | 865 ++++++++++++++++ .../current/unraid-os/release-notes/7.0.1.md | 72 ++ .../current/unraid-os/release-notes/7.1.0.md | 331 ++++++ .../current/unraid-os/release-notes/7.1.1.md | 36 + .../current/unraid-os/release-notes/7.1.2.md | 29 + .../current/unraid-os/release-notes/7.1.3.md | 50 + .../current/unraid-os/release-notes/7.1.4.md | 51 + .../current/unraid-os/release-notes/7.2.0.md | 282 +++++ .../unraid-os/release-notes/_category_.json | 8 + .../system-administration/_category_.json | 7 + .../advanced-tools/_category_.json | 7 + .../advanced-tools/command-line-interface.mdx | 459 ++++++++ .../command-line-interface/cpu-info.mdx | 17 + .../command-line-interface/memory-info.mdx | 11 + .../command-line-interface/storage-info.mdx | 11 + .../partials/wake-on-lan/linux.mdx | 11 + .../partials/wake-on-lan/macos.mdx | 19 + .../partials/wake-on-lan/windows.mdx | 9 + .../advanced-tools/wake-on-lan.mdx | 109 ++ .../maintain-and-update/_category_.json | 7 + .../changing-the-flash-device.mdx | 169 +++ .../partials/backup-manual-method.mdx | 3 + .../partials/backup-using-webgui.mdx | 8 + .../manual-downgrade-command-line.mdx | 25 + .../partials/manual-downgrade-simplest.mdx | 7 + .../partials/replacement-manual-method.mdx | 23 + .../partials/replacement-using-creator.mdx | 32 + .../partials/upgrade-legacy-611-612.mdx | 6 + .../partials/upgrade-modern.mdx | 11 + .../maintain-and-update/upgrading-unraid.mdx | 151 +++ .../monitor-performance/_category_.json | 7 + .../smart-reports-and-disk-health.mdx | 46 + .../secure-your-server/_category_.json | 7 + .../partials/reset-password-advanced.mdx | 20 + .../partials/reset-password-basic.mdx | 11 + .../partials/wireguard-configure-mobile.mdx | 9 + .../wireguard-configure-other-devices.mdx | 10 + .../secure-your-flash-drive.mdx | 71 ++ .../secure-your-outgoing-comms.mdx | 188 ++++ .../securing-your-connection.mdx | 297 ++++++ .../secure-your-server/securing-your-data.mdx | 58 ++ .../security-fundamentals.mdx | 172 +++ .../secure-your-server/tailscale.mdx | 183 ++++ .../secure-your-server/user-management.mdx | 137 +++ .../secure-your-server/wireguard.mdx | 237 +++++ .../unraid-os/troubleshooting/_category_.json | 4 + .../common-issues/_category_.json | 7 + .../boot-and-startup-failures.mdx | 204 ++++ .../common-issues/data-recovery.mdx | 333 ++++++ .../common-issues/docker-troubleshooting.mdx | 86 ++ .../partials/data-recovery/repair-btrfs.mdx | 7 + .../partials/data-recovery/repair-xfs.mdx | 16 + .../partials/data-recovery/xfs-check-cli.mdx | 12 + .../data-recovery/xfs-check-webgui.mdx | 7 + .../unclean-shutdowns/flash-drive-failure.mdx | 1 + .../open-terminal-sessions.mdx | 5 + .../unexpected-power-loss.mdx | 5 + .../system-crashes-and-stability.mdx | 228 ++++ .../common-issues/unclean-shutdowns.mdx | 150 +++ .../diagnostics/_category_.json | 7 + .../capture-diagnostics-and-logs.mdx | 190 ++++ .../partials/docker-logs/command-line.mdx | 5 + .../partials/docker-logs/persistent.mdx | 5 + .../partials/docker-logs/via-webgui.mdx | 2 + .../partials/syslog-server/local.mdx | 15 + .../partials/syslog-server/mirror.mdx | 15 + .../partials/syslog-server/remote.mdx | 12 + .../diagnostics/udma-crc-errors.mdx | 142 +++ .../current/unraid-os/troubleshooting/faq.mdx | 420 ++++++++ .../troubleshooting/licensing-faq.mdx | 303 ++++++ .../licensing-faq/manual-keyfile-network.mdx | 3 + .../licensing-faq/manual-keyfile-offline.mdx | 6 + .../troubleshooting/troubleshooting.mdx | 17 + .../unraid-os/using-unraid-to/_category_.json | 7 + .../create-virtual-machines/_category_.json | 7 + .../overview-and-system-prep.mdx | 214 ++++ .../partials/gpu-amd.mdx | 3 + .../partials/gpu-nvidia.mdx | 2 + .../partials/hvm-support.mdx | 5 + .../partials/iommu-support.mdx | 5 + .../windows-upgrade-clean-install.mdx | 5 + .../partials/windows-upgrade-in-place.mdx | 3 + .../partials/windows-virtio-automatic.mdx | 3 + .../partials/windows-virtio-manual.mdx | 14 + .../unraid-as-a-vm.mdx | 140 +++ .../vm-conversion-and-migration.mdx | 445 ++++++++ .../create-virtual-machines/vm-setup.mdx | 425 ++++++++ .../windows-on-a-vm.mdx | 287 +++++ .../customize-your-experience/_category_.json | 7 + .../customize-your-experience/image.png | Bin 0 -> 562 bytes .../multi-language-support.mdx | 62 ++ .../partials/safe-mode-alternative.mdx | 3 + .../partials/safe-mode-preferred.mdx | 5 + .../customize-your-experience/plugins.mdx | 69 ++ .../manage-storage/_category_.json | 7 + .../manage-storage/apple-time-machine.mdx | 119 +++ .../manage-storage/array-configuration.mdx | 977 ++++++++++++++++++ .../manage-storage/cache-pools.mdx | 390 +++++++ .../manage-storage/file-systems.mdx | 476 +++++++++ .../partials/add-data-disk-no-parity.mdx | 21 + .../add-data-disk-parity-protected.mdx | 30 + .../partials/array-check-parity.mdx | 59 ++ .../partials/array-check-read.mdx | 38 + .../manage-storage/partials/btrfs-balance.mdx | 19 + .../manage-storage/partials/btrfs-scrub.mdx | 23 + .../partials/file-system-btrfs.mdx | 5 + .../partials/file-system-xfs.mdx | 5 + .../partials/file-system-zfs.mdx | 7 + .../partials/fs-check-cli-btrfs.mdx | 10 + .../partials/fs-check-cli-xfs.mdx | 12 + .../partials/fs-check-cli-zfs.mdx | 25 + .../partials/fs-repair-cli-btrfs.mdx | 12 + .../partials/fs-repair-cli-xfs.mdx | 9 + .../partials/fs-repair-cli-zfs.mdx | 18 + .../partials/move-array-to-pool.mdx | 12 + .../partials/move-between-pools-manual.mdx | 8 + .../move-between-pools-using-mover.mdx | 16 + .../partials/move-pool-to-array.mdx | 11 + .../partials/parity-swap-what.mdx | 1 + .../partials/parity-swap-when.mdx | 1 + .../partials/pool-multi-device-mode.mdx | 5 + .../partials/pool-single-device-mode.mdx | 10 + .../remove-data-disk-parity-preserve.mdx | 76 ++ .../partials/remove-data-disk-standard.mdx | 13 + .../partials/remove-disk-command-line.mdx | 49 + .../partials/remove-disk-gui.mdx | 18 + .../partials/shares-array-to-cache-611.mdx | 3 + .../partials/shares-array-to-cache-612.mdx | 3 + .../partials/shares-cache-to-array-611.mdx | 3 + .../partials/shares-cache-to-array-612.mdx | 3 + .../partials/shares-primary-storage-611.mdx | 12 + .../partials/shares-primary-storage-612.mdx | 23 + .../partials/troubleshoot-device-limit.mdx | 18 + .../partials/troubleshoot-key-server.mdx | 6 + .../partials/troubleshoot-license-issues.mdx | 23 + .../partials/troubleshoot-missing-disks.mdx | 9 + .../troubleshoot-withdrawn-release.mdx | 11 + .../using-unraid-to/manage-storage/shares.mdx | 613 +++++++++++ .../run-docker-containers/_category_.json | 7 + .../community-applications.mdx | 144 +++ .../managing-and-customizing-containers.mdx | 234 +++++ .../run-docker-containers/overview.mdx | 48 + .../partials/community-apps-installing.mdx | 17 + .../partials/community-apps-reinstalling.mdx | 9 + .../partials/community-apps-removing.mdx | 4 + .../command-logs.mdx | 7 + .../command-restart.mdx | 7 + .../command-start.mdx | 7 + .../command-status.mdx | 7 + .../command-stop.mdx | 7 + .../environment-variables.mdx | 25 + .../network-type.mdx | 17 + .../port-mappings.mdx | 11 + .../volume-mappings.mdx | 17 + i18n/de/docusaurus-theme-classic/footer.json | 54 + i18n/de/docusaurus-theme-classic/navbar.json | 26 + i18n/es/code.json | 476 +++++++++ .../options.json | 14 + .../current.json | 130 +++ .../current/API/_category_.json | 4 + ...i-key-app-developer-authorization-flow.mdx | 100 ++ .../current/API/cli.mdx | 212 ++++ .../current/API/how-to-use-the-api.mdx | 241 +++++ .../current/API/images/advanced-rules.png | Bin 0 -> 103268 bytes .../API/images/button-customization.png | Bin 0 -> 97812 bytes .../API/images/configured-provider.png | Bin 0 -> 86795 bytes .../API/images/default-unraid-provider.png | Bin 0 -> 131176 bytes .../current/API/images/sso-with-options.png | Bin 0 -> 76436 bytes .../current/API/index.mdx | 91 ++ .../current/API/oidc-provider-setup.mdx | 415 ++++++++ .../API/partials/get-started-pre72.mdx | 5 + .../current/API/partials/get-started-v72.mdx | 5 + .../API/partials/manage-api-keys-cli.mdx | 12 + .../API/partials/manage-api-keys-gui.mdx | 6 + .../API/programmatic-api-key-management.mdx | 250 +++++ .../current/API/upcoming-features.mdx | 171 +++ .../current/contribute/_category_.json | 7 + .../current/contribute/style-guide.mdx | 161 +++ .../current/docs-home.mdx | 55 + .../current/glossary.mdx | 8 + .../current/unraid-connect/_category_.json | 7 + .../unraid-connect/automated-flash-backup.mdx | 116 +++ .../unraid-connect/overview-and-setup.mdx | 234 +++++ .../partials/customization/change-banner.mdx | 1 + .../customization/rearrange-dashboard.mdx | 1 + .../partials/customization/switch-themes.mdx | 1 + .../partials/remote-access/dynamic.mdx | 5 + .../partials/remote-access/static.mdx | 4 + .../current/unraid-connect/remote-access.mdx | 155 +++ .../current/unraid-os/_category_.json | 7 + .../advanced-configurations/_category_.json | 7 + .../optimize-storage/_category_.json | 7 + .../optimize-storage/zfs-storage.mdx | 342 ++++++ .../current/unraid-os/download_list.mdx | 12 + .../unraid-os/getting-started/_category_.json | 7 + .../_category_.json | 7 + .../key-features.mdx | 21 + .../tour-the-web-gui.mdx | 120 +++ .../set-up-unraid/_category_.json | 7 + .../complete-your-post-setup-essentials.mdx | 87 ++ .../set-up-unraid/configure-your-array.mdx | 89 ++ .../create-your-bootable-media.mdx | 80 ++ .../customize-unraid-settings.mdx | 224 ++++ .../deploy-and-configure-unraid-os.mdx | 100 ++ .../unraid-os/getting-started/unraid-net.mdx | 31 + .../getting-started/what-is-unraid.mdx | 186 ++++ .../current/unraid-os/release-notes/6.10.0.md | 931 +++++++++++++++++ .../current/unraid-os/release-notes/6.10.1.md | 19 + .../current/unraid-os/release-notes/6.10.2.md | 95 ++ .../current/unraid-os/release-notes/6.10.3.md | 53 + .../current/unraid-os/release-notes/6.11.0.md | 315 ++++++ .../current/unraid-os/release-notes/6.11.1.md | 93 ++ .../current/unraid-os/release-notes/6.11.2.md | 110 ++ .../current/unraid-os/release-notes/6.11.3.md | 36 + .../current/unraid-os/release-notes/6.11.4.md | 60 ++ .../current/unraid-os/release-notes/6.11.5.md | 13 + .../current/unraid-os/release-notes/6.12.0.md | 578 +++++++++++ .../current/unraid-os/release-notes/6.12.1.md | 56 + .../unraid-os/release-notes/6.12.10.md | 67 ++ .../unraid-os/release-notes/6.12.11.md | 73 ++ .../unraid-os/release-notes/6.12.12.md | 80 ++ .../unraid-os/release-notes/6.12.13.md | 37 + .../unraid-os/release-notes/6.12.14.md | 67 ++ .../unraid-os/release-notes/6.12.15.md | 60 ++ .../current/unraid-os/release-notes/6.12.2.md | 70 ++ .../current/unraid-os/release-notes/6.12.3.md | 61 ++ .../current/unraid-os/release-notes/6.12.4.md | 147 +++ .../current/unraid-os/release-notes/6.12.5.md | 64 ++ .../current/unraid-os/release-notes/6.12.6.md | 65 ++ .../current/unraid-os/release-notes/6.12.8.md | 108 ++ .../current/unraid-os/release-notes/6.12.9.md | 78 ++ .../current/unraid-os/release-notes/6.9.0.md | 710 +++++++++++++ .../current/unraid-os/release-notes/6.9.1.md | 53 + .../current/unraid-os/release-notes/6.9.2.md | 47 + .../current/unraid-os/release-notes/7.0.0.md | 878 ++++++++++++++++ .../current/unraid-os/release-notes/7.0.1.md | 72 ++ .../current/unraid-os/release-notes/7.1.0.md | 331 ++++++ .../current/unraid-os/release-notes/7.1.1.md | 33 + .../current/unraid-os/release-notes/7.1.2.md | 29 + .../current/unraid-os/release-notes/7.1.3.md | 50 + .../current/unraid-os/release-notes/7.1.4.md | 51 + .../current/unraid-os/release-notes/7.2.0.md | 281 +++++ .../unraid-os/release-notes/_category_.json | 8 + .../system-administration/_category_.json | 7 + .../advanced-tools/_category_.json | 7 + .../advanced-tools/command-line-interface.mdx | 457 ++++++++ .../command-line-interface/cpu-info.mdx | 17 + .../command-line-interface/memory-info.mdx | 11 + .../command-line-interface/storage-info.mdx | 11 + .../partials/wake-on-lan/linux.mdx | 11 + .../partials/wake-on-lan/macos.mdx | 19 + .../partials/wake-on-lan/windows.mdx | 9 + .../advanced-tools/wake-on-lan.mdx | 109 ++ .../maintain-and-update/_category_.json | 7 + .../changing-the-flash-device.mdx | 169 +++ .../partials/backup-manual-method.mdx | 3 + .../partials/backup-using-webgui.mdx | 8 + .../manual-downgrade-command-line.mdx | 25 + .../partials/manual-downgrade-simplest.mdx | 7 + .../partials/replacement-manual-method.mdx | 23 + .../partials/replacement-using-creator.mdx | 32 + .../partials/upgrade-legacy-611-612.mdx | 6 + .../partials/upgrade-modern.mdx | 11 + .../maintain-and-update/upgrading-unraid.mdx | 151 +++ .../monitor-performance/_category_.json | 7 + .../smart-reports-and-disk-health.mdx | 46 + .../secure-your-server/_category_.json | 7 + .../partials/reset-password-advanced.mdx | 20 + .../partials/reset-password-basic.mdx | 11 + .../partials/wireguard-configure-mobile.mdx | 9 + .../wireguard-configure-other-devices.mdx | 10 + .../secure-your-flash-drive.mdx | 73 ++ .../secure-your-outgoing-comms.mdx | 187 ++++ .../securing-your-connection.mdx | 296 ++++++ .../secure-your-server/securing-your-data.mdx | 58 ++ .../security-fundamentals.mdx | 172 +++ .../secure-your-server/tailscale.mdx | 183 ++++ .../secure-your-server/user-management.mdx | 137 +++ .../secure-your-server/wireguard.mdx | 237 +++++ .../unraid-os/troubleshooting/_category_.json | 4 + .../common-issues/_category_.json | 7 + .../boot-and-startup-failures.mdx | 204 ++++ .../common-issues/data-recovery.mdx | 333 ++++++ .../common-issues/docker-troubleshooting.mdx | 86 ++ .../partials/data-recovery/repair-btrfs.mdx | 7 + .../partials/data-recovery/repair-xfs.mdx | 16 + .../partials/data-recovery/xfs-check-cli.mdx | 12 + .../data-recovery/xfs-check-webgui.mdx | 7 + .../unclean-shutdowns/flash-drive-failure.mdx | 1 + .../open-terminal-sessions.mdx | 5 + .../unexpected-power-loss.mdx | 5 + .../system-crashes-and-stability.mdx | 228 ++++ .../common-issues/unclean-shutdowns.mdx | 150 +++ .../diagnostics/_category_.json | 7 + .../capture-diagnostics-and-logs.mdx | 190 ++++ .../partials/docker-logs/command-line.mdx | 5 + .../partials/docker-logs/persistent.mdx | 5 + .../partials/docker-logs/via-webgui.mdx | 2 + .../partials/syslog-server/local.mdx | 15 + .../partials/syslog-server/mirror.mdx | 15 + .../partials/syslog-server/remote.mdx | 12 + .../diagnostics/udma-crc-errors.mdx | 142 +++ .../current/unraid-os/troubleshooting/faq.mdx | 420 ++++++++ .../troubleshooting/licensing-faq.mdx | 303 ++++++ .../licensing-faq/manual-keyfile-network.mdx | 3 + .../licensing-faq/manual-keyfile-offline.mdx | 6 + .../troubleshooting/troubleshooting.mdx | 17 + .../unraid-os/using-unraid-to/_category_.json | 7 + .../create-virtual-machines/_category_.json | 7 + .../overview-and-system-prep.mdx | 212 ++++ .../partials/gpu-amd.mdx | 3 + .../partials/gpu-nvidia.mdx | 2 + .../partials/hvm-support.mdx | 5 + .../partials/iommu-support.mdx | 5 + .../windows-upgrade-clean-install.mdx | 5 + .../partials/windows-upgrade-in-place.mdx | 3 + .../partials/windows-virtio-automatic.mdx | 3 + .../partials/windows-virtio-manual.mdx | 14 + .../unraid-as-a-vm.mdx | 140 +++ .../vm-conversion-and-migration.mdx | 440 ++++++++ .../create-virtual-machines/vm-setup.mdx | 425 ++++++++ .../windows-on-a-vm.mdx | 287 +++++ .../customize-your-experience/_category_.json | 7 + .../customize-your-experience/image.png | Bin 0 -> 562 bytes .../multi-language-support.mdx | 62 ++ .../partials/safe-mode-alternative.mdx | 3 + .../partials/safe-mode-preferred.mdx | 5 + .../customize-your-experience/plugins.mdx | 69 ++ .../manage-storage/_category_.json | 7 + .../manage-storage/apple-time-machine.mdx | 119 +++ .../manage-storage/array-configuration.mdx | 975 +++++++++++++++++ .../manage-storage/cache-pools.mdx | 390 +++++++ .../manage-storage/file-systems.mdx | 478 +++++++++ .../partials/add-data-disk-no-parity.mdx | 21 + .../add-data-disk-parity-protected.mdx | 30 + .../partials/array-check-parity.mdx | 57 + .../partials/array-check-read.mdx | 38 + .../manage-storage/partials/btrfs-balance.mdx | 19 + .../manage-storage/partials/btrfs-scrub.mdx | 23 + .../partials/file-system-btrfs.mdx | 5 + .../partials/file-system-xfs.mdx | 5 + .../partials/file-system-zfs.mdx | 7 + .../partials/fs-check-cli-btrfs.mdx | 10 + .../partials/fs-check-cli-xfs.mdx | 12 + .../partials/fs-check-cli-zfs.mdx | 25 + .../partials/fs-repair-cli-btrfs.mdx | 14 + .../partials/fs-repair-cli-xfs.mdx | 9 + .../partials/fs-repair-cli-zfs.mdx | 18 + .../partials/move-array-to-pool.mdx | 12 + .../partials/move-between-pools-manual.mdx | 8 + .../move-between-pools-using-mover.mdx | 16 + .../partials/move-pool-to-array.mdx | 11 + .../partials/parity-swap-what.mdx | 1 + .../partials/parity-swap-when.mdx | 1 + .../partials/pool-multi-device-mode.mdx | 5 + .../partials/pool-single-device-mode.mdx | 10 + .../remove-data-disk-parity-preserve.mdx | 76 ++ .../partials/remove-data-disk-standard.mdx | 13 + .../partials/remove-disk-command-line.mdx | 49 + .../partials/remove-disk-gui.mdx | 18 + .../partials/shares-array-to-cache-611.mdx | 3 + .../partials/shares-array-to-cache-612.mdx | 3 + .../partials/shares-cache-to-array-611.mdx | 3 + .../partials/shares-cache-to-array-612.mdx | 3 + .../partials/shares-primary-storage-611.mdx | 12 + .../partials/shares-primary-storage-612.mdx | 23 + .../partials/troubleshoot-device-limit.mdx | 17 + .../partials/troubleshoot-key-server.mdx | 6 + .../partials/troubleshoot-license-issues.mdx | 23 + .../partials/troubleshoot-missing-disks.mdx | 10 + .../troubleshoot-withdrawn-release.mdx | 11 + .../using-unraid-to/manage-storage/shares.mdx | 614 +++++++++++ .../run-docker-containers/_category_.json | 7 + .../community-applications.mdx | 144 +++ .../managing-and-customizing-containers.mdx | 234 +++++ .../run-docker-containers/overview.mdx | 48 + .../partials/community-apps-installing.mdx | 17 + .../partials/community-apps-reinstalling.mdx | 9 + .../partials/community-apps-removing.mdx | 4 + .../command-logs.mdx | 7 + .../command-restart.mdx | 7 + .../command-start.mdx | 7 + .../command-status.mdx | 7 + .../command-stop.mdx | 7 + .../environment-variables.mdx | 25 + .../network-type.mdx | 17 + .../port-mappings.mdx | 11 + .../volume-mappings.mdx | 17 + i18n/es/docusaurus-theme-classic/footer.json | 54 + i18n/es/docusaurus-theme-classic/navbar.json | 26 + i18n/fr/code.json | 476 +++++++++ .../options.json | 14 + .../current.json | 130 +++ .../current/API/_category_.json | 4 + ...i-key-app-developer-authorization-flow.mdx | 100 ++ .../current/API/cli.mdx | 210 ++++ .../current/API/how-to-use-the-api.mdx | 241 +++++ .../current/API/images/advanced-rules.png | Bin 0 -> 103268 bytes .../API/images/button-customization.png | Bin 0 -> 97812 bytes .../API/images/configured-provider.png | Bin 0 -> 86795 bytes .../API/images/default-unraid-provider.png | Bin 0 -> 131176 bytes .../current/API/images/sso-with-options.png | Bin 0 -> 76436 bytes .../current/API/index.mdx | 91 ++ .../current/API/oidc-provider-setup.mdx | 415 ++++++++ .../API/partials/get-started-pre72.mdx | 5 + .../current/API/partials/get-started-v72.mdx | 5 + .../API/partials/manage-api-keys-cli.mdx | 12 + .../API/partials/manage-api-keys-gui.mdx | 6 + .../API/programmatic-api-key-management.mdx | 250 +++++ .../current/API/upcoming-features.mdx | 171 +++ .../current/contribute/_category_.json | 7 + .../current/contribute/style-guide.mdx | 161 +++ .../current/docs-home.mdx | 55 + .../current/glossary.mdx | 8 + .../current/unraid-connect/_category_.json | 7 + .../unraid-connect/automated-flash-backup.mdx | 116 +++ .../unraid-connect/overview-and-setup.mdx | 234 +++++ .../partials/customization/change-banner.mdx | 1 + .../customization/rearrange-dashboard.mdx | 1 + .../partials/customization/switch-themes.mdx | 1 + .../partials/remote-access/dynamic.mdx | 5 + .../partials/remote-access/static.mdx | 4 + .../current/unraid-connect/remote-access.mdx | 155 +++ .../current/unraid-os/_category_.json | 7 + .../advanced-configurations/_category_.json | 7 + .../optimize-storage/_category_.json | 7 + .../optimize-storage/zfs-storage.mdx | 348 +++++++ .../current/unraid-os/download_list.mdx | 12 + .../unraid-os/getting-started/_category_.json | 7 + .../_category_.json | 7 + .../key-features.mdx | 21 + .../tour-the-web-gui.mdx | 120 +++ .../set-up-unraid/_category_.json | 7 + .../complete-your-post-setup-essentials.mdx | 87 ++ .../set-up-unraid/configure-your-array.mdx | 90 ++ .../create-your-bootable-media.mdx | 80 ++ .../customize-unraid-settings.mdx | 224 ++++ .../deploy-and-configure-unraid-os.mdx | 106 ++ .../unraid-os/getting-started/unraid-net.mdx | 31 + .../getting-started/what-is-unraid.mdx | 186 ++++ .../current/unraid-os/release-notes/6.10.0.md | 956 +++++++++++++++++ .../current/unraid-os/release-notes/6.10.1.md | 22 + .../current/unraid-os/release-notes/6.10.2.md | 89 ++ .../current/unraid-os/release-notes/6.10.3.md | 51 + .../current/unraid-os/release-notes/6.11.0.md | 320 ++++++ .../current/unraid-os/release-notes/6.11.1.md | 93 ++ .../current/unraid-os/release-notes/6.11.2.md | 110 ++ .../current/unraid-os/release-notes/6.11.3.md | 36 + .../current/unraid-os/release-notes/6.11.4.md | 62 ++ .../current/unraid-os/release-notes/6.11.5.md | 13 + .../current/unraid-os/release-notes/6.12.0.md | 567 ++++++++++ .../current/unraid-os/release-notes/6.12.1.md | 56 + .../unraid-os/release-notes/6.12.10.md | 68 ++ .../unraid-os/release-notes/6.12.11.md | 73 ++ .../unraid-os/release-notes/6.12.12.md | 81 ++ .../unraid-os/release-notes/6.12.13.md | 37 + .../unraid-os/release-notes/6.12.14.md | 67 ++ .../unraid-os/release-notes/6.12.15.md | 59 ++ .../current/unraid-os/release-notes/6.12.2.md | 63 ++ .../current/unraid-os/release-notes/6.12.3.md | 61 ++ .../current/unraid-os/release-notes/6.12.4.md | 151 +++ .../current/unraid-os/release-notes/6.12.5.md | 63 ++ .../current/unraid-os/release-notes/6.12.6.md | 64 ++ .../current/unraid-os/release-notes/6.12.8.md | 103 ++ .../current/unraid-os/release-notes/6.12.9.md | 77 ++ .../current/unraid-os/release-notes/6.9.0.md | 680 ++++++++++++ .../current/unraid-os/release-notes/6.9.1.md | 65 ++ .../current/unraid-os/release-notes/6.9.2.md | 46 + .../current/unraid-os/release-notes/7.0.0.md | 871 ++++++++++++++++ .../current/unraid-os/release-notes/7.0.1.md | 72 ++ .../current/unraid-os/release-notes/7.1.0.md | 331 ++++++ .../current/unraid-os/release-notes/7.1.1.md | 33 + .../current/unraid-os/release-notes/7.1.2.md | 29 + .../current/unraid-os/release-notes/7.1.3.md | 50 + .../current/unraid-os/release-notes/7.1.4.md | 51 + .../current/unraid-os/release-notes/7.2.0.md | 282 +++++ .../unraid-os/release-notes/_category_.json | 8 + .../system-administration/_category_.json | 7 + .../advanced-tools/_category_.json | 7 + .../advanced-tools/command-line-interface.mdx | 459 ++++++++ .../command-line-interface/cpu-info.mdx | 17 + .../command-line-interface/memory-info.mdx | 11 + .../command-line-interface/storage-info.mdx | 11 + .../partials/wake-on-lan/linux.mdx | 11 + .../partials/wake-on-lan/macos.mdx | 19 + .../partials/wake-on-lan/windows.mdx | 9 + .../advanced-tools/wake-on-lan.mdx | 109 ++ .../maintain-and-update/_category_.json | 7 + .../changing-the-flash-device.mdx | 169 +++ .../partials/backup-manual-method.mdx | 3 + .../partials/backup-using-webgui.mdx | 8 + .../manual-downgrade-command-line.mdx | 25 + .../partials/manual-downgrade-simplest.mdx | 7 + .../partials/replacement-manual-method.mdx | 23 + .../partials/replacement-using-creator.mdx | 32 + .../partials/upgrade-legacy-611-612.mdx | 6 + .../partials/upgrade-modern.mdx | 11 + .../maintain-and-update/upgrading-unraid.mdx | 151 +++ .../monitor-performance/_category_.json | 7 + .../smart-reports-and-disk-health.mdx | 46 + .../secure-your-server/_category_.json | 7 + .../partials/reset-password-advanced.mdx | 20 + .../partials/reset-password-basic.mdx | 11 + .../partials/wireguard-configure-mobile.mdx | 9 + .../wireguard-configure-other-devices.mdx | 10 + .../secure-your-flash-drive.mdx | 71 ++ .../secure-your-outgoing-comms.mdx | 187 ++++ .../securing-your-connection.mdx | 296 ++++++ .../secure-your-server/securing-your-data.mdx | 56 + .../security-fundamentals.mdx | 172 +++ .../secure-your-server/tailscale.mdx | 183 ++++ .../secure-your-server/user-management.mdx | 137 +++ .../secure-your-server/wireguard.mdx | 237 +++++ .../unraid-os/troubleshooting/_category_.json | 4 + .../common-issues/_category_.json | 7 + .../boot-and-startup-failures.mdx | 204 ++++ .../common-issues/data-recovery.mdx | 333 ++++++ .../common-issues/docker-troubleshooting.mdx | 86 ++ .../partials/data-recovery/repair-btrfs.mdx | 7 + .../partials/data-recovery/repair-xfs.mdx | 16 + .../partials/data-recovery/xfs-check-cli.mdx | 12 + .../data-recovery/xfs-check-webgui.mdx | 7 + .../unclean-shutdowns/flash-drive-failure.mdx | 1 + .../open-terminal-sessions.mdx | 5 + .../unexpected-power-loss.mdx | 5 + .../system-crashes-and-stability.mdx | 228 ++++ .../common-issues/unclean-shutdowns.mdx | 150 +++ .../diagnostics/_category_.json | 7 + .../capture-diagnostics-and-logs.mdx | 190 ++++ .../partials/docker-logs/command-line.mdx | 5 + .../partials/docker-logs/persistent.mdx | 5 + .../partials/docker-logs/via-webgui.mdx | 2 + .../partials/syslog-server/local.mdx | 15 + .../partials/syslog-server/mirror.mdx | 15 + .../partials/syslog-server/remote.mdx | 12 + .../diagnostics/udma-crc-errors.mdx | 142 +++ .../current/unraid-os/troubleshooting/faq.mdx | 421 ++++++++ .../troubleshooting/licensing-faq.mdx | 303 ++++++ .../licensing-faq/manual-keyfile-network.mdx | 3 + .../licensing-faq/manual-keyfile-offline.mdx | 6 + .../troubleshooting/troubleshooting.mdx | 16 + .../unraid-os/using-unraid-to/_category_.json | 7 + .../create-virtual-machines/_category_.json | 7 + .../overview-and-system-prep.mdx | 212 ++++ .../partials/gpu-amd.mdx | 3 + .../partials/gpu-nvidia.mdx | 2 + .../partials/hvm-support.mdx | 5 + .../partials/iommu-support.mdx | 5 + .../windows-upgrade-clean-install.mdx | 5 + .../partials/windows-upgrade-in-place.mdx | 3 + .../partials/windows-virtio-automatic.mdx | 3 + .../partials/windows-virtio-manual.mdx | 14 + .../unraid-as-a-vm.mdx | 140 +++ .../vm-conversion-and-migration.mdx | 440 ++++++++ .../create-virtual-machines/vm-setup.mdx | 425 ++++++++ .../windows-on-a-vm.mdx | 287 +++++ .../customize-your-experience/_category_.json | 7 + .../customize-your-experience/image.png | Bin 0 -> 562 bytes .../multi-language-support.mdx | 62 ++ .../partials/safe-mode-alternative.mdx | 3 + .../partials/safe-mode-preferred.mdx | 5 + .../customize-your-experience/plugins.mdx | 69 ++ .../manage-storage/_category_.json | 7 + .../manage-storage/apple-time-machine.mdx | 119 +++ .../manage-storage/array-configuration.mdx | 974 +++++++++++++++++ .../manage-storage/cache-pools.mdx | 394 +++++++ .../manage-storage/file-systems.mdx | 478 +++++++++ .../partials/add-data-disk-no-parity.mdx | 21 + .../add-data-disk-parity-protected.mdx | 30 + .../partials/array-check-parity.mdx | 59 ++ .../partials/array-check-read.mdx | 38 + .../manage-storage/partials/btrfs-balance.mdx | 19 + .../manage-storage/partials/btrfs-scrub.mdx | 23 + .../partials/file-system-btrfs.mdx | 5 + .../partials/file-system-xfs.mdx | 5 + .../partials/file-system-zfs.mdx | 7 + .../partials/fs-check-cli-btrfs.mdx | 10 + .../partials/fs-check-cli-xfs.mdx | 12 + .../partials/fs-check-cli-zfs.mdx | 25 + .../partials/fs-repair-cli-btrfs.mdx | 14 + .../partials/fs-repair-cli-xfs.mdx | 9 + .../partials/fs-repair-cli-zfs.mdx | 18 + .../partials/move-array-to-pool.mdx | 12 + .../partials/move-between-pools-manual.mdx | 8 + .../move-between-pools-using-mover.mdx | 16 + .../partials/move-pool-to-array.mdx | 11 + .../partials/parity-swap-what.mdx | 1 + .../partials/parity-swap-when.mdx | 1 + .../partials/pool-multi-device-mode.mdx | 5 + .../partials/pool-single-device-mode.mdx | 10 + .../remove-data-disk-parity-preserve.mdx | 76 ++ .../partials/remove-data-disk-standard.mdx | 13 + .../partials/remove-disk-command-line.mdx | 49 + .../partials/remove-disk-gui.mdx | 18 + .../partials/shares-array-to-cache-611.mdx | 3 + .../partials/shares-array-to-cache-612.mdx | 3 + .../partials/shares-cache-to-array-611.mdx | 3 + .../partials/shares-cache-to-array-612.mdx | 3 + .../partials/shares-primary-storage-611.mdx | 12 + .../partials/shares-primary-storage-612.mdx | 23 + .../partials/troubleshoot-device-limit.mdx | 18 + .../partials/troubleshoot-key-server.mdx | 6 + .../partials/troubleshoot-license-issues.mdx | 23 + .../partials/troubleshoot-missing-disks.mdx | 10 + .../troubleshoot-withdrawn-release.mdx | 11 + .../using-unraid-to/manage-storage/shares.mdx | 613 +++++++++++ .../run-docker-containers/_category_.json | 7 + .../community-applications.mdx | 144 +++ .../managing-and-customizing-containers.mdx | 230 +++++ .../run-docker-containers/overview.mdx | 48 + .../partials/community-apps-installing.mdx | 17 + .../partials/community-apps-reinstalling.mdx | 9 + .../partials/community-apps-removing.mdx | 4 + .../command-logs.mdx | 7 + .../command-restart.mdx | 7 + .../command-start.mdx | 7 + .../command-status.mdx | 7 + .../command-stop.mdx | 7 + .../environment-variables.mdx | 25 + .../network-type.mdx | 17 + .../port-mappings.mdx | 11 + .../volume-mappings.mdx | 17 + i18n/fr/docusaurus-theme-classic/footer.json | 54 + i18n/fr/docusaurus-theme-classic/navbar.json | 26 + i18n/zh/code.json | 476 +++++++++ .../options.json | 14 + .../current.json | 130 +++ .../current/API/_category_.json | 4 + ...i-key-app-developer-authorization-flow.mdx | 100 ++ .../current/API/cli.mdx | 212 ++++ .../current/API/how-to-use-the-api.mdx | 241 +++++ .../current/API/images/advanced-rules.png | Bin 0 -> 103268 bytes .../API/images/button-customization.png | Bin 0 -> 97812 bytes .../API/images/configured-provider.png | Bin 0 -> 86795 bytes .../API/images/default-unraid-provider.png | Bin 0 -> 131176 bytes .../current/API/images/sso-with-options.png | Bin 0 -> 76436 bytes .../current/API/index.mdx | 91 ++ .../current/API/oidc-provider-setup.mdx | 419 ++++++++ .../API/partials/get-started-pre72.mdx | 5 + .../current/API/partials/get-started-v72.mdx | 5 + .../API/partials/manage-api-keys-cli.mdx | 12 + .../API/partials/manage-api-keys-gui.mdx | 6 + .../API/programmatic-api-key-management.mdx | 250 +++++ .../current/API/upcoming-features.mdx | 171 +++ .../current/contribute/_category_.json | 7 + .../current/contribute/style-guide.mdx | 161 +++ .../current/docs-home.mdx | 55 + .../current/glossary.mdx | 8 + .../current/unraid-connect/_category_.json | 7 + .../unraid-connect/automated-flash-backup.mdx | 116 +++ .../unraid-connect/overview-and-setup.mdx | 234 +++++ .../partials/customization/change-banner.mdx | 1 + .../customization/rearrange-dashboard.mdx | 1 + .../partials/customization/switch-themes.mdx | 1 + .../partials/remote-access/dynamic.mdx | 5 + .../partials/remote-access/static.mdx | 4 + .../current/unraid-connect/remote-access.mdx | 155 +++ .../current/unraid-os/_category_.json | 7 + .../advanced-configurations/_category_.json | 7 + .../optimize-storage/_category_.json | 7 + .../optimize-storage/zfs-storage.mdx | 342 ++++++ .../current/unraid-os/download_list.mdx | 12 + .../unraid-os/getting-started/_category_.json | 7 + .../_category_.json | 7 + .../key-features.mdx | 21 + .../tour-the-web-gui.mdx | 119 +++ .../set-up-unraid/_category_.json | 7 + .../complete-your-post-setup-essentials.mdx | 87 ++ .../set-up-unraid/configure-your-array.mdx | 89 ++ .../create-your-bootable-media.mdx | 80 ++ .../customize-unraid-settings.mdx | 224 ++++ .../deploy-and-configure-unraid-os.mdx | 99 ++ .../unraid-os/getting-started/unraid-net.mdx | 31 + .../getting-started/what-is-unraid.mdx | 186 ++++ .../current/unraid-os/release-notes/6.10.0.md | 885 ++++++++++++++++ .../current/unraid-os/release-notes/6.10.1.md | 19 + .../current/unraid-os/release-notes/6.10.2.md | 95 ++ .../current/unraid-os/release-notes/6.10.3.md | 51 + .../current/unraid-os/release-notes/6.11.0.md | 314 ++++++ .../current/unraid-os/release-notes/6.11.1.md | 93 ++ .../current/unraid-os/release-notes/6.11.2.md | 110 ++ .../current/unraid-os/release-notes/6.11.3.md | 36 + .../current/unraid-os/release-notes/6.11.4.md | 60 ++ .../current/unraid-os/release-notes/6.11.5.md | 13 + .../current/unraid-os/release-notes/6.12.0.md | 565 ++++++++++ .../current/unraid-os/release-notes/6.12.1.md | 56 + .../unraid-os/release-notes/6.12.10.md | 67 ++ .../unraid-os/release-notes/6.12.11.md | 73 ++ .../unraid-os/release-notes/6.12.12.md | 80 ++ .../unraid-os/release-notes/6.12.13.md | 35 + .../unraid-os/release-notes/6.12.14.md | 66 ++ .../unraid-os/release-notes/6.12.15.md | 59 ++ .../current/unraid-os/release-notes/6.12.2.md | 63 ++ .../current/unraid-os/release-notes/6.12.3.md | 60 ++ .../current/unraid-os/release-notes/6.12.4.md | 147 +++ .../current/unraid-os/release-notes/6.12.5.md | 63 ++ .../current/unraid-os/release-notes/6.12.6.md | 65 ++ .../current/unraid-os/release-notes/6.12.8.md | 103 ++ .../current/unraid-os/release-notes/6.12.9.md | 77 ++ .../current/unraid-os/release-notes/6.9.0.md | 708 +++++++++++++ .../current/unraid-os/release-notes/6.9.1.md | 54 + .../current/unraid-os/release-notes/6.9.2.md | 45 + .../current/unraid-os/release-notes/7.0.0.md | 852 +++++++++++++++ .../current/unraid-os/release-notes/7.0.1.md | 72 ++ .../current/unraid-os/release-notes/7.1.0.md | 331 ++++++ .../current/unraid-os/release-notes/7.1.1.md | 33 + .../current/unraid-os/release-notes/7.1.2.md | 29 + .../current/unraid-os/release-notes/7.1.3.md | 50 + .../current/unraid-os/release-notes/7.1.4.md | 51 + .../current/unraid-os/release-notes/7.2.0.md | 282 +++++ .../unraid-os/release-notes/_category_.json | 8 + .../system-administration/_category_.json | 7 + .../advanced-tools/_category_.json | 7 + .../advanced-tools/command-line-interface.mdx | 457 ++++++++ .../command-line-interface/cpu-info.mdx | 17 + .../command-line-interface/memory-info.mdx | 11 + .../command-line-interface/storage-info.mdx | 11 + .../partials/wake-on-lan/linux.mdx | 11 + .../partials/wake-on-lan/macos.mdx | 19 + .../partials/wake-on-lan/windows.mdx | 9 + .../advanced-tools/wake-on-lan.mdx | 109 ++ .../maintain-and-update/_category_.json | 7 + .../changing-the-flash-device.mdx | 168 +++ .../partials/backup-manual-method.mdx | 3 + .../partials/backup-using-webgui.mdx | 8 + .../manual-downgrade-command-line.mdx | 25 + .../partials/manual-downgrade-simplest.mdx | 7 + .../partials/replacement-manual-method.mdx | 23 + .../partials/replacement-using-creator.mdx | 32 + .../partials/upgrade-legacy-611-612.mdx | 6 + .../partials/upgrade-modern.mdx | 11 + .../maintain-and-update/upgrading-unraid.mdx | 151 +++ .../monitor-performance/_category_.json | 7 + .../smart-reports-and-disk-health.mdx | 46 + .../secure-your-server/_category_.json | 7 + .../partials/reset-password-advanced.mdx | 20 + .../partials/reset-password-basic.mdx | 11 + .../partials/wireguard-configure-mobile.mdx | 9 + .../wireguard-configure-other-devices.mdx | 10 + .../secure-your-flash-drive.mdx | 71 ++ .../secure-your-outgoing-comms.mdx | 186 ++++ .../securing-your-connection.mdx | 296 ++++++ .../secure-your-server/securing-your-data.mdx | 56 + .../security-fundamentals.mdx | 174 ++++ .../secure-your-server/tailscale.mdx | 183 ++++ .../secure-your-server/user-management.mdx | 137 +++ .../secure-your-server/wireguard.mdx | 237 +++++ .../unraid-os/troubleshooting/_category_.json | 4 + .../common-issues/_category_.json | 7 + .../boot-and-startup-failures.mdx | 204 ++++ .../common-issues/data-recovery.mdx | 335 ++++++ .../common-issues/docker-troubleshooting.mdx | 86 ++ .../partials/data-recovery/repair-btrfs.mdx | 7 + .../partials/data-recovery/repair-xfs.mdx | 16 + .../partials/data-recovery/xfs-check-cli.mdx | 12 + .../data-recovery/xfs-check-webgui.mdx | 7 + .../unclean-shutdowns/flash-drive-failure.mdx | 1 + .../open-terminal-sessions.mdx | 5 + .../unexpected-power-loss.mdx | 5 + .../system-crashes-and-stability.mdx | 232 +++++ .../common-issues/unclean-shutdowns.mdx | 150 +++ .../diagnostics/_category_.json | 7 + .../capture-diagnostics-and-logs.mdx | 192 ++++ .../partials/docker-logs/command-line.mdx | 5 + .../partials/docker-logs/persistent.mdx | 5 + .../partials/docker-logs/via-webgui.mdx | 2 + .../partials/syslog-server/local.mdx | 15 + .../partials/syslog-server/mirror.mdx | 15 + .../partials/syslog-server/remote.mdx | 12 + .../diagnostics/udma-crc-errors.mdx | 142 +++ .../current/unraid-os/troubleshooting/faq.mdx | 420 ++++++++ .../troubleshooting/licensing-faq.mdx | 303 ++++++ .../licensing-faq/manual-keyfile-network.mdx | 3 + .../licensing-faq/manual-keyfile-offline.mdx | 6 + .../troubleshooting/troubleshooting.mdx | 17 + .../unraid-os/using-unraid-to/_category_.json | 7 + .../create-virtual-machines/_category_.json | 7 + .../overview-and-system-prep.mdx | 212 ++++ .../partials/gpu-amd.mdx | 3 + .../partials/gpu-nvidia.mdx | 2 + .../partials/hvm-support.mdx | 5 + .../partials/iommu-support.mdx | 5 + .../windows-upgrade-clean-install.mdx | 5 + .../partials/windows-upgrade-in-place.mdx | 3 + .../partials/windows-virtio-automatic.mdx | 3 + .../partials/windows-virtio-manual.mdx | 14 + .../unraid-as-a-vm.mdx | 140 +++ .../vm-conversion-and-migration.mdx | 435 ++++++++ .../create-virtual-machines/vm-setup.mdx | 425 ++++++++ .../windows-on-a-vm.mdx | 287 +++++ .../customize-your-experience/_category_.json | 7 + .../customize-your-experience/image.png | Bin 0 -> 562 bytes .../multi-language-support.mdx | 62 ++ .../partials/safe-mode-alternative.mdx | 3 + .../partials/safe-mode-preferred.mdx | 5 + .../customize-your-experience/plugins.mdx | 69 ++ .../manage-storage/_category_.json | 7 + .../manage-storage/apple-time-machine.mdx | 119 +++ .../manage-storage/array-configuration.mdx | 969 +++++++++++++++++ .../manage-storage/cache-pools.mdx | 390 +++++++ .../manage-storage/file-systems.mdx | 476 +++++++++ .../partials/add-data-disk-no-parity.mdx | 21 + .../add-data-disk-parity-protected.mdx | 30 + .../partials/array-check-parity.mdx | 57 + .../partials/array-check-read.mdx | 38 + .../manage-storage/partials/btrfs-balance.mdx | 19 + .../manage-storage/partials/btrfs-scrub.mdx | 23 + .../partials/file-system-btrfs.mdx | 5 + .../partials/file-system-xfs.mdx | 5 + .../partials/file-system-zfs.mdx | 7 + .../partials/fs-check-cli-btrfs.mdx | 10 + .../partials/fs-check-cli-xfs.mdx | 12 + .../partials/fs-check-cli-zfs.mdx | 25 + .../partials/fs-repair-cli-btrfs.mdx | 12 + .../partials/fs-repair-cli-xfs.mdx | 9 + .../partials/fs-repair-cli-zfs.mdx | 18 + .../partials/move-array-to-pool.mdx | 12 + .../partials/move-between-pools-manual.mdx | 8 + .../move-between-pools-using-mover.mdx | 16 + .../partials/move-pool-to-array.mdx | 11 + .../partials/parity-swap-what.mdx | 1 + .../partials/parity-swap-when.mdx | 1 + .../partials/pool-multi-device-mode.mdx | 5 + .../partials/pool-single-device-mode.mdx | 10 + .../remove-data-disk-parity-preserve.mdx | 76 ++ .../partials/remove-data-disk-standard.mdx | 13 + .../partials/remove-disk-command-line.mdx | 49 + .../partials/remove-disk-gui.mdx | 18 + .../partials/shares-array-to-cache-611.mdx | 3 + .../partials/shares-array-to-cache-612.mdx | 3 + .../partials/shares-cache-to-array-611.mdx | 3 + .../partials/shares-cache-to-array-612.mdx | 3 + .../partials/shares-primary-storage-611.mdx | 12 + .../partials/shares-primary-storage-612.mdx | 23 + .../partials/troubleshoot-device-limit.mdx | 17 + .../partials/troubleshoot-key-server.mdx | 6 + .../partials/troubleshoot-license-issues.mdx | 23 + .../partials/troubleshoot-missing-disks.mdx | 10 + .../troubleshoot-withdrawn-release.mdx | 11 + .../using-unraid-to/manage-storage/shares.mdx | 614 +++++++++++ .../run-docker-containers/_category_.json | 7 + .../community-applications.mdx | 144 +++ .../managing-and-customizing-containers.mdx | 234 +++++ .../run-docker-containers/overview.mdx | 48 + .../partials/community-apps-installing.mdx | 17 + .../partials/community-apps-reinstalling.mdx | 9 + .../partials/community-apps-removing.mdx | 4 + .../command-logs.mdx | 7 + .../command-restart.mdx | 7 + .../command-start.mdx | 7 + .../command-status.mdx | 7 + .../command-stop.mdx | 7 + .../environment-variables.mdx | 25 + .../network-type.mdx | 17 + .../port-mappings.mdx | 11 + .../volume-mappings.mdx | 17 + i18n/zh/docusaurus-theme-classic/footer.json | 54 + i18n/zh/docusaurus-theme-classic/navbar.json | 26 + package-lock.json | 1 + package.json | 8 +- renovate.json | 13 + scripts/format-crowdin-spacing.js | 321 +++++- src/components/ManualKeyfileTabs.tsx | 18 + static/robots.txt | 12 +- wrangler.jsonc | 8 +- 1093 files changed, 84058 insertions(+), 1974 deletions(-) create mode 100644 .github/workflows/algolia-reindex.yml create mode 100644 .remarkignore create mode 100644 docs/API/partials/get-started-pre72.mdx create mode 100644 docs/API/partials/get-started-v72.mdx create mode 100644 docs/API/partials/manage-api-keys-cli.mdx create mode 100644 docs/API/partials/manage-api-keys-gui.mdx create mode 100644 docs/unraid-connect/partials/customization/change-banner.mdx create mode 100644 docs/unraid-connect/partials/customization/rearrange-dashboard.mdx create mode 100644 docs/unraid-connect/partials/customization/switch-themes.mdx create mode 100644 docs/unraid-connect/partials/remote-access/dynamic.mdx create mode 100644 docs/unraid-connect/partials/remote-access/static.mdx create mode 100644 docs/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx create mode 100644 docs/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx create mode 100644 docs/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx create mode 100644 docs/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx create mode 100644 docs/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx create mode 100644 docs/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx create mode 100644 docs/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx create mode 100644 docs/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx create mode 100644 docs/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx create mode 100644 docs/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx create mode 100644 docs/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx create mode 100644 docs/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx create mode 100644 docs/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx create mode 100644 docs/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx create mode 100644 docs/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx create mode 100644 docs/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx create mode 100644 docs/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx create mode 100644 docs/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx create mode 100644 docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx create mode 100644 docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx create mode 100644 docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx create mode 100644 docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx create mode 100644 docs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx create mode 100644 docs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx create mode 100644 docs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx create mode 100644 docs/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx create mode 100644 docs/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx create mode 100644 docs/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx create mode 100644 docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx create mode 100644 docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx create mode 100644 docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx create mode 100644 docs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx create mode 100644 docs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx create mode 100644 docs/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx create mode 100644 docs/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx create mode 100644 docs/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx create mode 100644 docs/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx create mode 100644 docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx create mode 100644 docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx create mode 100644 docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx create mode 100644 docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx create mode 100644 docs/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx create mode 100644 docs/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx create mode 100644 docs/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx create mode 100644 docs/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx create mode 100644 docs/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx create mode 100644 docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx create mode 100644 docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx create mode 100644 docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx create mode 100644 docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx create mode 100644 docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx create mode 100644 docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx create mode 100644 docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx create mode 100644 docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx create mode 100644 docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx rename docs/embedding.md => embedding.md (72%) create mode 100644 i18n/de/code.json create mode 100644 i18n/de/docusaurus-plugin-content-blog/options.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/cli.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/images/advanced-rules.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/images/button-customization.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/images/configured-provider.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/images/default-unraid-provider.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/images/sso-with-options.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/index.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/contribute/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/docs-home.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/glossary.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/image.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/multi-language-support.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx create mode 100644 i18n/de/docusaurus-theme-classic/footer.json create mode 100644 i18n/de/docusaurus-theme-classic/navbar.json create mode 100644 i18n/es/code.json create mode 100644 i18n/es/docusaurus-plugin-content-blog/options.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/cli.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/images/advanced-rules.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/images/button-customization.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/images/configured-provider.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/images/default-unraid-provider.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/images/sso-with-options.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/index.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/contribute/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/docs-home.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/glossary.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/image.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/multi-language-support.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx create mode 100644 i18n/es/docusaurus-theme-classic/footer.json create mode 100644 i18n/es/docusaurus-theme-classic/navbar.json create mode 100644 i18n/fr/code.json create mode 100644 i18n/fr/docusaurus-plugin-content-blog/options.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/cli.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/images/advanced-rules.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/images/button-customization.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/images/configured-provider.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/images/default-unraid-provider.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/images/sso-with-options.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/index.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/contribute/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/docs-home.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/glossary.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/image.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/multi-language-support.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx create mode 100644 i18n/fr/docusaurus-theme-classic/footer.json create mode 100644 i18n/fr/docusaurus-theme-classic/navbar.json create mode 100644 i18n/zh/code.json create mode 100644 i18n/zh/docusaurus-plugin-content-blog/options.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/cli.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/images/advanced-rules.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/images/button-customization.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/images/configured-provider.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/images/default-unraid-provider.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/images/sso-with-options.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/index.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/contribute/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/docs-home.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/glossary.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/image.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/multi-language-support.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx create mode 100644 i18n/zh/docusaurus-theme-classic/footer.json create mode 100644 i18n/zh/docusaurus-theme-classic/navbar.json create mode 100644 src/components/ManualKeyfileTabs.tsx diff --git a/.github/workflows/algolia-reindex.yml b/.github/workflows/algolia-reindex.yml new file mode 100644 index 0000000000..7b5df35aa2 --- /dev/null +++ b/.github/workflows/algolia-reindex.yml @@ -0,0 +1,27 @@ +name: Algolia Reindex + +on: + workflow_dispatch: + workflow_call: + secrets: + ALGOLIA_CRAWLER_USER_ID: + required: true + ALGOLIA_CRAWLER_API_KEY: + required: true + ALGOLIA_API_KEY: + required: true + +jobs: + algolia-reindex: + name: Reindex Algolia Search + runs-on: ubuntu-latest + steps: + - name: Run Algolia Crawler + uses: algolia/algoliasearch-crawler-github-actions@v1 + with: + crawler-user-id: ${{ secrets.ALGOLIA_CRAWLER_USER_ID }} + crawler-api-key: ${{ secrets.ALGOLIA_CRAWLER_API_KEY }} + algolia-app-id: JUYLFQHE7W + algolia-api-key: ${{ secrets.ALGOLIA_API_KEY }} + site-url: https://docs.unraid.net + crawler-name: unraid diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3f1e1c1d4a..ba98742e37 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,11 +27,6 @@ jobs: - name: Install dependencies run: npm ci - - name: Sync with Crowdin - env: - CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }} - run: npm run crowdin:sync - - name: Build documentation run: npm run build @@ -42,15 +37,6 @@ jobs: CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} algolia-reindex: - name: Reindex Algolia Search needs: build-and-deploy - runs-on: ubuntu-latest - steps: - - name: Run Algolia Crawler - uses: algolia/algoliasearch-crawler-github-actions@v1 - with: - crawler-user-id: ${{ secrets.ALGOLIA_CRAWLER_USER_ID }} - crawler-api-key: ${{ secrets.ALGOLIA_CRAWLER_API_KEY }} - algolia-app-id: JUYLFQHE7W - algolia-api-key: ${{ secrets.ALGOLIA_API_KEY }} - site-url: https://docs.unraid.net + uses: ./.github/workflows/algolia-reindex.yml + secrets: inherit diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index b9ec0f1f68..ef415c3d18 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -14,10 +14,16 @@ concurrency: jobs: lint: + if: ${{ github.event.action != 'closed' }} runs-on: ubuntu-latest + permissions: + contents: write steps: - name: Checkout uses: actions/checkout@v5 + with: + fetch-depth: 0 + ref: ${{ github.head_ref }} - name: Setup Node.js uses: actions/setup-node@v5 @@ -28,9 +34,39 @@ jobs: - name: Install dependencies run: npm ci + - name: Run formatter autofix + run: npm run format + - name: Run linter run: npm run lint -- --frail + - name: Check for lint changes + id: lint_changes + run: | + if [[ -n "$(git status --porcelain)" ]]; then + echo "has_changes=true" >> "$GITHUB_OUTPUT" + else + echo "has_changes=false" >> "$GITHUB_OUTPUT" + fi + + - name: Notify forked PRs + if: steps.lint_changes.outputs.has_changes == 'true' && github.repository != github.event.pull_request.head.repo.full_name + run: | + echo "::warning::Format fixes were generated but cannot be pushed automatically for pull requests from forks. Please run 'npm run format' locally and push the changes." + + - name: Commit lint fixes + if: steps.lint_changes.outputs.has_changes == 'true' && github.repository == github.event.pull_request.head.repo.full_name + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add -A + git commit -m "chore: apply lint and format fixes" + + - name: Push lint fixes + if: steps.lint_changes.outputs.has_changes == 'true' && github.repository == github.event.pull_request.head.repo.full_name + run: | + git push origin HEAD:${{ github.head_ref }} || echo "Unable to push lint fixes (likely due to branch permissions)." + deploy-preview: runs-on: ubuntu-latest permissions: @@ -49,8 +85,8 @@ jobs: - name: Install dependencies run: npm ci - - name: Build documentation (English only) - run: npm run build -- --locale en + - name: Build documentation + run: npm run build env: BASE_URL: /docs/pr-preview/pr-${{ github.event.number }}/ GITHUB_BRANCH: ${{ github.head_ref }} diff --git a/.remarkignore b/.remarkignore new file mode 100644 index 0000000000..b43bf86b50 --- /dev/null +++ b/.remarkignore @@ -0,0 +1 @@ +README.md diff --git a/.remarkrc.mjs b/.remarkrc.mjs index d56d3c2326..fc9a8107f1 100644 --- a/.remarkrc.mjs +++ b/.remarkrc.mjs @@ -2,6 +2,7 @@ import remarkFrontmatter from 'remark-frontmatter' import remarkGfm from 'remark-gfm' import remarkMdx from 'remark-mdx' +import remarkDirective from 'remark-directive' import remarkPresetLintRecommended from 'remark-preset-lint-recommended' import remarkLintListItemIndent from 'remark-lint-list-item-indent' import remarkLintOrderedListMarkerStyle from 'remark-lint-ordered-list-marker-style' @@ -23,6 +24,8 @@ import jsxContentSpacing from './remark-jsx-spacing.js' const plugins = [ // MDX support remarkMdx, + remarkDirective, + directiveColonSafe, remarkFrontmatter, remarkGfm, @@ -79,3 +82,58 @@ const remarkConfig = { }; export default remarkConfig + +function directiveColonSafe() { + const data = this.data() + const extensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []) + + for (const extension of extensions) { + if ( + extension && + typeof extension === 'object' && + 'handlers' in extension && + extension.handlers && + 'containerDirective' in extension.handlers && + Array.isArray(extension.unsafe) + ) { + extension.unsafe = extension.unsafe.filter( + (rule) => rule.character !== ':' + ) + + wrapContainerDirectiveHandler(extension) + } + } + + data.toMarkdownExtensions = extensions +} + +function wrapContainerDirectiveHandler(extension) { + const {containerDirective} = extension.handlers + + if (typeof containerDirective !== 'function') { + return + } + + extension.handlers.containerDirective = function wrappedContainerDirective( + node, + parent, + state, + info + ) { + const previous = state.bulletLastUsed + state.bulletLastUsed = undefined + + try { + const output = containerDirective(node, parent, state, info) + return collapseDirectivePadding(output) + } finally { + state.bulletLastUsed = previous + } + } +} + +function collapseDirectivePadding(value) { + return value + .replace(/(^|\n)([ \t]*:::[^\n]*?)\n\n/g, '$1$2\n') + .replace(/\n\n([ \t]*:::)/g, '\n$1') +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 5d91bc0d23..e4f069d53d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,18 +1,21 @@ -{ - "cSpell.words": [ - "Adaptec", - "apcupsd", - "ipvlan", - "macvlan", - "macvtap", - "nchan", - "Realtek", - "Tailnet", - "Tailscale", - "Unraid", - "Userspace" - ], - "cSpell.customDictionaries": { - - } +{ + "cSpell.words": [ + "Adaptec", + "apcupsd", + "ipvlan", + "macvlan", + "macvtap", + "nchan", + "Realtek", + "Tailnet", + "Tailscale", + "Unraid", + "Userspace" + ], + "cSpell.customDictionaries": { + + }, + "files.associations": { + "*.mdx": "markdown" + } } \ No newline at end of file diff --git a/README.md b/README.md index 6cf941bdaa..41857b9194 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,255 @@ -# Unraid Documentation + + + + + + +[![Contributors][contributors-shield]][contributors-url] +[![Forks][forks-shield]][forks-url] +[![Stargazers][stars-shield]][stars-url] +[![Issues][issues-shield]][issues-url] +[![Docs Status][docs-shield]][docs-url] +[![Crowdin][crowdin-shield]][crowdin-url] + + +
+

+ + Unraid Logo + + +

Unraid Documentation

+ +

+ Source for the official Unraid documentation site. +
+ Explore the docs » +
+
+ View Site + · + Report Bug + · + Request Content +

+
+ + +
+ Table of Contents +
    +
  1. + About The Project + +
  2. +
  3. + Getting Started + +
  4. +
  5. Usage
  6. +
  7. Roadmap
  8. +
  9. Contributing
  10. +
  11. License
  12. +
  13. Contact
  14. +
  15. Acknowledgments
  16. +
+
+ + +## About The Project + +[![Unraid Docs Screenshot][product-screenshot]](https://docs.unraid.net) + +This repository powers the public [Unraid Docs](https://docs.unraid.net) site. It contains source content, UI components, and supporting scripts that help the Unraid team publish accurate, localized, and accessible documentation for Unraid OS and connected services. + +The documentation site is built on [Docusaurus 3](https://docusaurus.io/), rendered as a static site, and deployed via GitHub Pages. Remark-based linting, Crowdin integrations, and automated formatting scripts keep Markdown/MDX contributions consistent across the project. + +

(back to top)

+ +### Built With + +* [![Docusaurus][Docusaurus-shield]][Docusaurus-url] +* [![React][React.js]][React-url] +* [![TypeScript][TypeScript-shield]][TypeScript-url] +* [![Remark][Remark-shield]][Remark-url] +* [![Vitest][Vitest-shield]][Vitest-url] + +

(back to top)

+ + +## Getting Started + +Follow these steps to work on the docs locally. + +### Prerequisites + +* Node.js 18 or newer (see the `package.json` `engines` field) +* npm (ships with Node.js) +* Recommended: [nvm](https://github.com/nvm-sh/nvm) for managing Node versions + +Install or update Node with nvm: + +```bash +nvm install --lts +nvm use +``` -View the live documentation on our website [Unraid Docs](https://docs.unraid.net) +### Installation -Unraid Docs are built using [Docusaurus](https://docusaurus.io/) +1. Clone the repo -### Installation + ```bash + git clone https://github.com/unraid/docs.git + cd docs + ``` -``` -$ npm i -``` +2. Install dependencies -### Linting + ```bash + npm install + ``` -Install [DavidAnson.vscode-markdownlint](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) and follow its linting instructions. +

(back to top)

-### Local Development + +## Usage +Spin up a local Docusaurus dev server: + +```bash +npm run start ``` -$ npm run start + +Preview specific locales (one at a time): + +```bash +npm run start -- --locale zh +npm run start -- --locale es ``` -This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. +Lint Markdown and MDX content with Remark: +```bash +npm run lint # report issues +npm run lint:fix # apply automatic fixes ``` -$ npm run start -- --locale zh -$ npm run start -- --locale es + +Run the full formatting pipeline, including Crowdin spacing adjustments: + +```bash +npm run format ``` -These commands start a local development server for a specific locale (run one at a time.) +Additional project scripts: -### Build +* Type check TypeScript: `npm run typecheck` +* Unit tests (watch): `npm run test` +* Single test run (CI): `npm run test:run` +* Build production site: `npm run build` +* Preview production build: `npm run serve` -``` -$ npm run build -``` +

(back to top)

-This command generates static content into the `build` directory and can be served using any static contents hosting service such as: + +## Contributing -``` -$ npm run serve -``` +New to the docs? Start with the contributor [Style Guide](docs/contribute/style-guide.mdx) for voice, formatting, and workflow expectations. It covers terminology, MDX conventions, screenshots, and review tips. -### Deployment +Once you're comfortable with the guidelines, typical workflow looks like: -Using SSH: +1. Fork the project +2. Create a feature branch (`git checkout -b docs/your-change`) +3. Run `npm run lint` and `npm run format` before committing +4. Commit with a clear message (`git commit -m "docs: describe change"`) +5. Push to your fork and open a pull request against `main` -``` -$ USE_SSH=true yarn deploy -``` +

(back to top)

-Not using SSH: +### Top contributors -``` -$ GIT_USER= yarn deploy -``` + + Contributor graph + + + +## Localization + +Help translate Unraid Docs for the global community. + +* Join the project on Crowdin: [unraid.crowdin.com/unraid-docs](https://unraid.crowdin.com/unraid-docs) +* Follow the glossary and tone guidance in the [Style Guide](docs/contribute/style-guide.mdx) +* Run Crowdin formatting before submitting source updates: `npm run format:crowdin` + +Crowdin suggestions are reviewed regularly by maintainers and native-language contributors. + +

(back to top)

+ + +## License + +© 2024 Lime Technology, Inc. All rights reserved. See the [Unraid Legal Terms][license-url] for usage guidelines. + +

(back to top)

+ + +## Contact + +Need help? Open an issue on GitHub or reach us via [unraid.net/contact](https://unraid.net/contact). + +Project Link: [https://github.com/unraid/docs](https://github.com/unraid/docs) + +

(back to top)

+ + +## Acknowledgments + +* [Docusaurus](https://docusaurus.io/) +* [Crowdin](https://crowdin.com/) +* [Remark Lint](https://github.com/remarkjs/remark-lint) +* [Vitest](https://vitest.dev/) + +

(back to top)

-If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. + + +[contributors-shield]: https://img.shields.io/github/contributors/unraid/docs.svg?style=for-the-badge +[contributors-url]: https://github.com/unraid/docs/graphs/contributors +[forks-shield]: https://img.shields.io/github/forks/unraid/docs.svg?style=for-the-badge +[forks-url]: https://github.com/unraid/docs/network/members +[stars-shield]: https://img.shields.io/github/stars/unraid/docs.svg?style=for-the-badge +[stars-url]: https://github.com/unraid/docs/stargazers +[issues-shield]: https://img.shields.io/github/issues/unraid/docs.svg?style=for-the-badge +[issues-url]: https://github.com/unraid/docs/issues +[docs-shield]: https://img.shields.io/badge/site-docs.unraid.net-orange?style=for-the-badge +[docs-url]: https://docs.unraid.net +[crowdin-shield]: https://img.shields.io/badge/Crowdin-Join-orange?style=for-the-badge&logo=crowdin +[crowdin-url]: https://unraid.crowdin.com/unraid-docs +[product-screenshot]: static/img/docusaurus.png +[Docusaurus-shield]: https://img.shields.io/badge/Docusaurus-3B0997?style=for-the-badge&logo=docusaurus&logoColor=white +[Docusaurus-url]: https://docusaurus.io/ +[React.js]: https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB +[React-url]: https://react.dev/ +[TypeScript-shield]: https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white +[TypeScript-url]: https://www.typescriptlang.org/ +[Remark-shield]: https://img.shields.io/badge/Remark-000000?style=for-the-badge&logo=markdown&logoColor=white +[Remark-url]: https://github.com/remarkjs/remark +[Vitest-shield]: https://img.shields.io/badge/Vitest-6E9F18?style=for-the-badge&logo=vitest&logoColor=white +[Vitest-url]: https://vitest.dev/ +[license-url]: https://unraid.net/legal diff --git a/crowdin.yml b/crowdin.yml index 7a69a9bc63..2b491b9932 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -10,6 +10,7 @@ files: - source: /docs/**/* translation: /i18n/%two_letters_code%/docusaurus-plugin-content-docs/current/**/%original_file_name% escape_quotes: 0 + content_segmentation: 0 escape_special_characters: 0 excluded_strings: - ":::note" diff --git a/docs/API/how-to-use-the-api.mdx b/docs/API/how-to-use-the-api.mdx index 4a5fbeec8c..5b1ea2b6f8 100644 --- a/docs/API/how-to-use-the-api.mdx +++ b/docs/API/how-to-use-the-api.mdx @@ -6,6 +6,8 @@ sidebar_position: 2 import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import ManageApiKeysGui from './partials/manage-api-keys-gui.mdx'; +import ManageApiKeysCli from './partials/manage-api-keys-cli.mdx'; # Using the Unraid API @@ -67,31 +69,11 @@ You can authenticate using: - - 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 - + - - You can also use the CLI to create an API key: - - ```bash - unraid-api apikey --create - ``` - - Follow the prompts to set: - - - Name - - Description - - Roles - - Permissions - + @@ -266,6 +248,6 @@ The API returns standard GraphQL errors in the following format: - 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) or run `unraid-api --help`. +For more information about specific commands and configuration options, refer to the [CLI documentation](cli.mdx) or run `unraid-api --help`. ::: diff --git a/docs/API/index.mdx b/docs/API/index.mdx index a935724d4f..9bc842c4e9 100644 --- a/docs/API/index.mdx +++ b/docs/API/index.mdx @@ -7,6 +7,8 @@ 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 @@ -92,23 +94,11 @@ The API provides: - - 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. 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 - 5. Start exploring the API! - + diff --git a/docs/API/partials/get-started-pre72.mdx b/docs/API/partials/get-started-pre72.mdx new file mode 100644 index 0000000000..8f85285aa6 --- /dev/null +++ b/docs/API/partials/get-started-pre72.mdx @@ -0,0 +1,5 @@ +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 +5. Start exploring the API! diff --git a/docs/API/partials/get-started-v72.mdx b/docs/API/partials/get-started-v72.mdx new file mode 100644 index 0000000000..79772d98b6 --- /dev/null +++ b/docs/API/partials/get-started-v72.mdx @@ -0,0 +1,5 @@ +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! diff --git a/docs/API/partials/manage-api-keys-cli.mdx b/docs/API/partials/manage-api-keys-cli.mdx new file mode 100644 index 0000000000..4205c77ca3 --- /dev/null +++ b/docs/API/partials/manage-api-keys-cli.mdx @@ -0,0 +1,12 @@ +You can also use the CLI to create an API key: + +```bash +unraid-api apikey --create +``` + +Follow the prompts to set: + +- Name +- Description +- Roles +- Permissions diff --git a/docs/API/partials/manage-api-keys-gui.mdx b/docs/API/partials/manage-api-keys-gui.mdx new file mode 100644 index 0000000000..2f11cf831c --- /dev/null +++ b/docs/API/partials/manage-api-keys-gui.mdx @@ -0,0 +1,6 @@ +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 diff --git a/docs/unraid-connect/overview-and-setup.mdx b/docs/unraid-connect/overview-and-setup.mdx index f9df1bd213..c79f86de00 100644 --- a/docs/unraid-connect/overview-and-setup.mdx +++ b/docs/unraid-connect/overview-and-setup.mdx @@ -5,6 +5,9 @@ sidebar_label: Overview and setup import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import ConnectChangeBanner from './partials/customization/change-banner.mdx'; +import ConnectRearrangeDashboard from './partials/customization/rearrange-dashboard.mdx'; +import ConnectSwitchThemes from './partials/customization/switch-themes.mdx'; # Unraid Connect overview & setup @@ -148,22 +151,16 @@ Deep linking in Unraid Connect lets you jump directly to specific sections of yo Unraid Connect provides a flexible dashboard experience, allowing you to personalize your server view and appearance. The customization options are organized below for easy reference. - - - To display your server’s banner image on the Connect dashboard, upload or select a banner image from your %%WebGUI|web-gui%% under ***Settings → Display Settings → Banner***. This banner will automatically appear in your Connect dashboard for that server. - + + - - You can customize your dashboard layout by dragging and dropping server tiles. In the Connect dashboard, click the hamburger (≡) button on any tile to rearrange its position. This allows you to prioritize the information and the services most important to you. - + - - Toggle between dark and light mode by clicking the Sun or Moon icon on the far right of the Connect UI. Your theme preference will be instantly applied across the Connect dashboard for a consistent experience. - + diff --git a/docs/unraid-connect/partials/customization/change-banner.mdx b/docs/unraid-connect/partials/customization/change-banner.mdx new file mode 100644 index 0000000000..5330416751 --- /dev/null +++ b/docs/unraid-connect/partials/customization/change-banner.mdx @@ -0,0 +1 @@ +To display your server’s banner image on the Connect dashboard, upload or select a banner image from your %%WebGUI|web-gui%% under ***Settings → Display Settings → Banner***. This banner will automatically appear in your Connect dashboard for that server. diff --git a/docs/unraid-connect/partials/customization/rearrange-dashboard.mdx b/docs/unraid-connect/partials/customization/rearrange-dashboard.mdx new file mode 100644 index 0000000000..fda0b68d05 --- /dev/null +++ b/docs/unraid-connect/partials/customization/rearrange-dashboard.mdx @@ -0,0 +1 @@ +You can customize your dashboard layout by dragging and dropping server tiles. In the Connect dashboard, click the hamburger (≡) button on any tile to rearrange its position. This allows you to prioritize the information and the services most important to you. diff --git a/docs/unraid-connect/partials/customization/switch-themes.mdx b/docs/unraid-connect/partials/customization/switch-themes.mdx new file mode 100644 index 0000000000..62a0df5f03 --- /dev/null +++ b/docs/unraid-connect/partials/customization/switch-themes.mdx @@ -0,0 +1 @@ +Toggle between dark and light mode by clicking the Sun or Moon icon on the far right of the Connect UI. Your theme preference will be instantly applied across the Connect dashboard for a consistent experience. diff --git a/docs/unraid-connect/partials/remote-access/dynamic.mdx b/docs/unraid-connect/partials/remote-access/dynamic.mdx new file mode 100644 index 0000000000..91c454bde5 --- /dev/null +++ b/docs/unraid-connect/partials/remote-access/dynamic.mdx @@ -0,0 +1,5 @@ +**Dynamic remote access** provides secure, on-demand access to your %%WebGUI|web-gui%%. + +- **Access is enabled only when you need it.** The %%WebGUI|web-gui%% remains closed to the internet by default, minimizing the attack surface. +- **Works with %%UPnP|upnp%% or manual port forwarding.** +- **Automatically opens and closes access** through the Connect dashboard or API, with sessions limited by time for added security. diff --git a/docs/unraid-connect/partials/remote-access/static.mdx b/docs/unraid-connect/partials/remote-access/static.mdx new file mode 100644 index 0000000000..0f94e9cc00 --- /dev/null +++ b/docs/unraid-connect/partials/remote-access/static.mdx @@ -0,0 +1,4 @@ +**Static remote access** keeps your %%WebGUI|web-gui%% continuously available from the internet. + +- **Server is always accessible from the internet** on the configured port. +- **Higher risk:** The %%WebGUI|web-gui%% is exposed to WAN traffic at all times, increasing potential vulnerability. diff --git a/docs/unraid-connect/remote-access.mdx b/docs/unraid-connect/remote-access.mdx index 224c5ebdc2..d25cc5d400 100644 --- a/docs/unraid-connect/remote-access.mdx +++ b/docs/unraid-connect/remote-access.mdx @@ -5,6 +5,8 @@ sidebar_label: Remote access import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import RemoteAccessDynamic from './partials/remote-access/dynamic.mdx'; +import RemoteAccessStatic from './partials/remote-access/static.mdx'; # Remote access @@ -48,21 +50,12 @@ Your Unraid server will be ready to accept secure remote connections via the %%W Unraid Connect offers two modes: - - **Dynamic remote access** provides secure, on-demand access to your %%WebGUI|web-gui%%. - - - **Access is enabled only when you need it.** The %%WebGUI|web-gui%% remains closed to the internet by default, minimizing the attack surface. - - **Works with %%UPnP|upnp%% or manual port forwarding.** - - **Automatically opens and closes access** through the Connect dashboard or API, with sessions limited by time for added security. - + + - **Static remote access** keeps your %%WebGUI|web-gui%% continuously available from the internet. - - - **Server is always accessible from the internet** on the configured port. - - **Higher risk:** The %%WebGUI|web-gui%% is exposed to WAN traffic at all times, increasing potential vulnerability. - + 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 652ec08e08..5eb32a2d5b 100644 --- a/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx +++ b/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx @@ -263,10 +263,9 @@ Unraid can import %%ZFS|zfs%% pools created on other platforms with minimal hass 5. **Finish and start array:** Click **Done**, then start the %%array|array%%. :::info[Automatic detection] - Unraid will automatically detect and import the %%ZFS|zfs%% pool. Support vdevs (like log, cache/L2ARC, special/dedup) are listed under **Subpools** in the %%WebGUI|web-gui%%. There is no need to add subpools separately after initiating the import. Unraid will automatically import them alongside the main data disks when all required drives are assigned. - ::: + After importing, running a %%scrub|scrub%% is highly recommended to verify data integrity. - Click the pool name (e.g., `raptor`) to open its configuration. diff --git a/docs/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx b/docs/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx index bf01239448..a954ee6e75 100644 --- a/docs/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx +++ b/docs/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx @@ -46,15 +46,11 @@ Unraid OS uses drives for various purposes: To safeguard cached data, assign more than one device to the %%cache pool|cache-pool%%. A single device does not offer protection from data loss. %%Cache pools|cache-pool%% can be expanded on demand. :::warning - SSD support is experimental in the %%array|array%%. Some SSDs may not perform well due to variations in %%TRIM/Discard|trim-discard%% implementation, which could lead to undesirable results. This does not apply to %%cache pools|cache-pool%%. [Learn more about filesystem options here](../../using-unraid-to/manage-storage/file-systems.mdx). - ::: :::note - SSD-based pools are optimal for applications and virtual machines, leveraging SSD performance for faster interactions. [Learn more about running applications here](../../using-unraid-to/run-docker-containers/overview.mdx). - :::
diff --git a/docs/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx b/docs/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx index bd1f87aa04..7a8e10d7c1 100644 --- a/docs/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx +++ b/docs/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx @@ -105,11 +105,9 @@ Before deploying Unraid OS, it's important to verify your system's BIOS and stor For further assistance, visit the [Unraid general support forum](https://forums.unraid.net/). :::important - Many motherboards limit boot device selection to 12 hard drives. If your USB flash drive is recognized as a hard drive, you may not be able to boot from it after installing 12 physical hard drives. Configure the BIOS to treat the flash drive as a removable device whenever possible. If using an add-on HBA, you may be able to disable INT 13h support to prevent its connected drives from appearing in the bootable devices list, helping to stay within the 12-drive limit. - ::: diff --git a/docs/unraid-os/getting-started/what-is-unraid.mdx b/docs/unraid-os/getting-started/what-is-unraid.mdx index 202c51629d..4ffcbc2918 100644 --- a/docs/unraid-os/getting-started/what-is-unraid.mdx +++ b/docs/unraid-os/getting-started/what-is-unraid.mdx @@ -61,19 +61,23 @@ Unraid features a [user-friendly web interface](./explore-the-user-interface/tou You can also customize these shares to include or leave out certain drives and decide how files are spread across your storage. Additionally, you can manage how users access the shares by setting up network options, like %%SMB|samba%% and %%NFS|nfs%%, and applying security settings. To keep private data safe, you can create user accounts and set access limits for trusted individuals. -
-
- User shares distribution example + ```mdx-code-block -
User shares - Distribution
-
+
+
+ User shares distribution example -
- User shares distribution example larger +
User shares - Distribution
+
-
User shares - Access
-
-
+
+ User shares distribution example larger + +
User shares - Access
+
+
+ + ``` ### Understanding Cache Drives @@ -108,9 +112,7 @@ Unraid features a [user-friendly web interface](./explore-the-user-interface/tou Docker containers allow you to run applications in isolated, lightweight environments without the overhead associated with %%virtual machines|vm%%. Unraid simplifies the use of Docker by providing access to thousands of pre-configured apps through [Docker Hub](https://hub.docker.com/) and [Community Applications](../using-unraid-to/run-docker-containers/community-applications.mdx). This containerized approach enables Unraid users to run multiple applications simultaneously without compatibility issues. It also helps keep the system organized by using self-contained application packages and makes it easy to enhance server capabilities through Docker's ecosystem. :::note - For advanced Docker settings, check out [Run Docker Containers](../using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx). - ::: @@ -121,9 +123,7 @@ Unraid features a [user-friendly web interface](./explore-the-user-interface/tou Unraid functions as a virtualization host, using a %%hypervisor|hypervisor%% to securely allocate resources to virtualized guests. This allows you to run various applications in isolated environments, going beyond just network-attached storage. :::tip - To use hardware virtualization in Unraid, ensure your CPU, chipset, BIOS, and device drivers are compatible. A full list of requirements is available in the [VM setup guide](../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx). If your server doesn't meet these requirements, the %%VMs|vm%% menu will be disabled in the Unraid %%WebGUI|web-gui%%. - :::
@@ -184,9 +184,7 @@ Unraid features a [user-friendly web interface](./explore-the-user-interface/tou For %%VM|vm%% setup steps, check out [Create virtual machines](../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx). :::caution - %%GPU passthrough|gpu-passthrough%% requires compatible hardware (see [VM setup](../using-unraid-to/create-virtual-machines/vm-setup.mdx)). - :::
diff --git a/docs/unraid-os/release-notes/6.9.0.md b/docs/unraid-os/release-notes/6.9.0.md index e1043dd3da..34230f3e12 100644 --- a/docs/unraid-os/release-notes/6.9.0.md +++ b/docs/unraid-os/release-notes/6.9.0.md @@ -469,6 +469,7 @@ page.  For other network configs it may be necessary to directly edit the xml.  Example: ```xml + diff --git a/docs/unraid-os/release-notes/7.2.0.md b/docs/unraid-os/release-notes/7.2.0.md index 3b0c02121e..505c7ac7f7 100644 --- a/docs/unraid-os/release-notes/7.2.0.md +++ b/docs/unraid-os/release-notes/7.2.0.md @@ -1,21 +1,21 @@ -# Version 7.2.0-beta.3 2025-09-19 +# Version 7.2.0-rc.1 2025-10-01 The Unraid webGUI is now responsive! The interface automatically adapts to different screen sizes, making it usable on mobile devices, tablets, and desktop monitors alike. The Unraid API is now built in, and the release also brings RAIDZ expansion, Ext2/3/4, NTFS and exFAT support, and the (optional) ability to login to the webGUI via SSO, among other features and bug fixes. -Search this page for `-beta.3` to see what has changed since the last beta. - -Note that some plugins may have visual issues in this release, please give plugin authors time to make adjustments. Plugin authors, please see this post describing [how to update your plugins to make them responsive](https://forums.unraid.net/topic/192172-responsive-webgui-plugin-migration-guide/). +Note that some plugins may have visual issues in this release; please give plugin authors time to make adjustments. Plugin authors, please see this post describing [how to update your plugins to make them responsive](https://forums.unraid.net/topic/192172-responsive-webgui-plugin-migration-guide/). ## Upgrading +For step-by-step instructions, see [Upgrading Unraid](../../unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx). + ### Known issues #### Plugins The Theme Engine, Dark Theme, and Dynamix Date Time plugins are incompatible and will be automatically uninstalled, as will outdated versions of Unraid Connect. -Please upgrade all plugins, particularly Unraid Connect and the Nvidia driver before updating. -Note that some plugins may have visual issues in this release, please give plugin authors time to make adjustments. +Please upgrade all plugins, particularly Unraid Connect and the Nvidia driver, before updating. +Note that some plugins may have visual issues in this release; please give plugin authors time to make adjustments. For other known issues, see the [7.1.4 release notes](7.1.4.md#known-issues). @@ -38,14 +38,14 @@ You can now expand your single-vdev RAIDZ1/2/3 pools, one drive at a time: - Select the appropriate drive (must be at least as large as the smallest drive in the pool) - Start the array -Enhancements +#### Enhancements -- Fix: There will now be an "invalid expansion" warning if the pool needs to be upgraded first \[-beta.2] -- Improvement: better defaults for ZFS RAIDZ vdevs \[-beta.2] +- Fix: There will now be an "invalid expansion" warning if the pool needs to be upgraded first +- Improvement: Better defaults for ZFS RAIDZ vdevs #### Ext2/3/4, NTFS, and exFAT Support -Unraid now supports Ext2/3/4, NTFS, and exFAT \[-beta.2] drive formats in addition to XFS, BTRFS, and ZFS. +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. @@ -55,23 +55,26 @@ To clarify, Unraid has always worked this way, what is new is that Unraid now su Additionally, you can create single drive pools using the new formats as well. -- Improved the usability of the **File System Type** dropdown as the list of available options is growing \[-beta.2] +- Improved the usability of the **File System Type** dropdown as the list of available options is growing #### 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. \[-beta.3] +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 -- Two-device ZFS pools are mirrored by default, but you can make them RAIDZ1 if you plan to expand that vdev in the future +- Improvement: Two-device ZFS pools are mirrored by default, but you can make them RAIDZ1 if you plan to expand that vdev in the future +- Improvement: Add **File system status** to **DeviceInfo** page, showing whether a drive is mounted/unmounted and empty/not empty - Fix: Display issue on Main page when two pools are named similarly -- Fix: [glibc bug](https://github.com/openzfs/zfs/issues/17629) which could lead to data loss with ZFS \[-beta.2] -- Improvement: Disallow shares named `homes`, `global`, and `printers` (these have special meaning in Samba) \[-beta.2] -- Fix: Shares with invalid characters in names could not be deleted or modified \[-beta.2] -- Fix: Correct handling of case-insensitive share names \[-beta.3] -- Fix: BTRFS array disks with multiple filesystem signatures don't mount \[-beta.3] -- Fix: Resolved some issues for parity disks with existing 1MiB aligned partitions \[-beta.3] -- Improvement: Add **File system status** to **DeviceInfo** page, showing whether a drive is mounted/unmounted and empty/not empty \[-beta.3] +- Fix: [glibc bug](https://github.com/openzfs/zfs/issues/17629) which could lead to data loss with ZFS +- Fix: BTRFS array disks with multiple filesystem signatures don't mount +- Fix: Resolved some issues for parity disks with existing 1MiB aligned partitions +- Fix: When stopping array, do not attempt 'umount' on array devices that are not mounted +- Improvement: Exclusive shares may be selected for NFS export +- Improvement: Disallow shares named `homes`, `global`, and `printers` (these have special meaning in Samba) +- Fix: Correct handling of case-insensitive share names +- Fix: Shares with invalid characters in names could not be deleted or modified +- Fix: Improvements to reading from/writing to SMB Security Settings ### Networking @@ -82,16 +85,16 @@ The ***Main*** page will now warn if any array or pool drives are formatted with ### VM Manager -#### Other VM changes - - Feature: Save PCI hardware data, warn if hardware used by VM changes - Feature: Support virtual sound cards in VMs + +#### Other VM changes + - Improvement: Enhance multi-monitor support, automatically enabling spicevmc when needed - Feature: Upgrade to noVNC v1.6 - Removed historical OpenElec and LibreElec VM templates - Fix: VM Console did not work when user shares were disabled -- Fix: Don't allow single quotes in Domains storage path \[-beta.2] -- Fix: Updated kernel to restore Intel Arc GPU (Xe driver) compatibility \[-beta.2] +- Fix: Don't allow single quotes in Domains storage path ### Unraid API @@ -99,11 +102,11 @@ The Unraid API is now built into Unraid! The new Notifications panel is the firs The Unraid API is fully open source: [https://github.com/unraid/api](https://github.com/unraid/api). Get started in the [API docs](../../API/index.mdx). -The Unraid Connect plugin adds functionality which communicates with our cloud servers, it remains completely optional. +The Unraid Connect plugin adds functionality which communicates with our cloud servers; it remains completely optional. #### Other Unraid API changes -- dynamix.unraid.net 4.24.0 - [see changes](https://github.com/unraid/api/releases) \[-beta.3] +- dynamix.unraid.net 4.25.2 - [see changes](https://github.com/unraid/api/releases) ### WebGUI @@ -111,45 +114,30 @@ The Unraid Connect plugin adds functionality which communicates with our cloud s The Unraid webGUI is now responsive! Most screens should now work as well on your phone as they do on your desktop monitor. -- Fix: Resolve various File Manager issues introduced with the responsive webGUI changes \[-beta.2] -- Fix: Text input fields were hidden on various pop‑ups \[-beta.2] -- Fix: Some tooltips were missing from the Main page \[-beta.2] -- Fix: Footer alignment \[-beta.2] -- Fix: Dashboard icon spacing \[-beta.3] -- Fix: Formatting issue with ***Settings → Display Settings → Language*** \[-beta.3] -- Fix: Diagnostics popup showing offscreen \[-beta.3] -- Fix: Text alignment on ***Settings → Network Settings → Routing Table*** \[-beta.3] -- Fix: Adjust notifications for dark mode \[-beta.3] -- Fix: Share page: Adjust placement of prev/next buttons on narrow screens \[-beta.3] -- Fix: Dashboard: Prevent buttons from appearing on top of settings menu \[-beta.3] - #### Login to the WebGUI via SSO -Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net account or any other OIDC-compliant provider \[new to -beta.2]. For details on this *optional* feature, see [OIDC Provider Setup](../../API/oidc-provider-setup.mdx) in the Docs. +Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net account or any other OIDC-compliant provider. For details on this *optional* feature, see [OIDC Provider Setup](../../API/oidc-provider-setup.mdx) in the Docs. #### Other WebGUI changes - 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: (Optional) Allow specific unraid.net accounts to login to the webGUI, see ***Settings → Management Access → Unraid API*** - 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 +- 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 +- Fix: Prevent webGUI from crashing when dynamix.cfg is corrupt, log any issues - Fix: `blob:` links shouldn't be considered external -- Feature: Differentiate between Intel E-Cores and P-Cores on the Dashboard \[improved in -beta.2] -- Fix: Docker Advanced View was missing when tabs were disabled \[-beta.2] -- Fix: VPN Manager should hide key details by default \[-beta.2] -- Fix: Prevent Firefox from showing resend/cancel popup when starting array \[-beta.3] -- Fix: Dashboard network speed calculation was incorrect \[-beta.3] -- Fix: Docker Advanced View toggle not saving in certain circumstances \[-beta.3] -- Feature: Dashboard now gets CPU usage stats from the Unraid API \[-beta.3] -- Fix: File Manager: stop spinner and show error when it fails \[-beta.3] -- Feature: Speed up rendering of Plugins and Docker pages \[-beta.3] -- Chore: Change charting libraries on the Dashboard \[-beta.3] +- Feature: Differentiate between Intel E-Cores and P-Cores on the Dashboard +- Feature: Dashboard now gets CPU usage stats from the Unraid API +- Fix: Dashboard: More than 1TB of RAM was not reported correctly +- Chore: Change charting libraries on the Dashboard +- Fix: Prevent Firefox from showing resend/cancel popup when starting array +- Fix: File Manager: stop spinner and show error when it fails (thanks [poroyo](https://github.com/poroyo)) +- Feature: Speed up rendering of Plugins and Docker pages +- Fix: Prevent issues when clicking an external link from within a changelog ## Misc @@ -162,23 +150,24 @@ Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net acc - `/boot/config/udev/*.rules` are copied to `/etc/udev/rules.d/` - `/boot/config/udev/*.sh` are copied to `/etc/udev/scripts/` where they can be used by your custom udev rules - Fix: Remove support for nonworking ipv6.hash.myunraid.net URLs -- Fix: Docker Tailscale integration was broken \[-beta.2] -- Fix: Docker custom network creation failed when IPv6 was enabled \[-beta.2] -- Fix: Resolve issues with high CPU load due to nchan and lsof \[-beta.2] -- Improvement: Removed option to disable live updates on inactive browsers, should no longer be needed \[-beta.2] -- Improvement: Better messaging around mover and "dangling links" \[-beta.2] -- Fix: Prevent errors related to *searchLink* when installing plugins \[-beta.3] -- *Europe/Kiev* timezone renamed to *Europe/Kyiv* to align with the IANA Time Zone Database \[-beta.3] -- Fix: Firefox wasn't showing the proper favicons \[-beta.3] +- Fix: Docker custom network creation failed when IPv6 was enabled +- 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: PHP warnings importing WireGuard tunnels +- 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)) ### Other changes ### Linux kernel -- version 6.12.47-Unraid \[-beta.3] +- version 6.12.47-Unraid - built-in: CONFIG\_EFIVAR\_FS: EFI Variable filesystem - CONFIG\_INTEL\_RAPL: Intel RAPL support via MSR interface - - Added eMMC support: \[-beta.3] + - CONFIG\_NLS\_DEFAULT: change from "iso8859-1" to "utf8" + - Added eMMC support: - CONFIG\_MMC: MMC/SD/SDIO card support - CONFIG\_MMC\_BLOCK: MMC block device driver - CONFIG\_MMC\_SDHCI: Secure Digital Host Controller Interface support @@ -193,9 +182,10 @@ Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net acc - at-spi2-core: version 2.56.4 - bash: version 5.3.003 - bind: version 9.20.13 -- btrfs-progs: version 6.16 +- btrfs-progs: version 6.17 - ca-certificates: version 20250812 - cifs-utils: version 7.4 +- coreutils: version 9.8 - cryptsetup: version 2.8.1 - curl: version 8.16.0 - e2fsprogs: version 1.47.3 @@ -204,22 +194,24 @@ Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net acc - fontconfig: version 2.17.1 - freetype: version 2.14.0 - gdbm: version 1.26 -- gdk-pixbuf2: version 2.44.0 +- gdk-pixbuf2: version 2.44.2 - git: version 2.51.0 - glib2: version 2.86.0 - glibc: version 2.42 (build 2) - gnutls: version 3.8.10 - grub: version 2.12 - gtk+3: version 3.24.50 -- harfbuzz: version 11.4.5 +- harfbuzz: version 12.0.0 - intel-microcode: version 20250812 -- iproute2: version 6.16.0 +- iproute2: version 6.17.0 - inih: version 61 +- inotify-tools: version 4.25.9.0 - iputils: version 20250605 - iw: version 6.17 -- kbd: version 2.8.0 -- kernel-firmware: version 20250909\_4573c02 -- krb5: version 1.22 +- json-glib: version 1.10.8 +- kbd: version 2.9.0 +- kernel-firmware: version 20250924\_1269106 +- krb5: version 1.22.1 - less: version 679 - libXfixes: version 6.0.2 - libXpresent: version 1.0.2 @@ -233,37 +225,40 @@ Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net acc - libnvme: version 1.15 - libpng: version 1.6.50 - libssh: version 0.11.3 +- libtiff: version 4.7.1 - libtirpc: version 1.3.7 +- libunistring: version 1.4 - liburing: version 2.12 - libusb: version 1.0.29 - libwebp: version 1.6.0 +- libvirt: version 11.7.0 - libxkbcommon: version 1.11.0 - libxml2: version 2.14.6 - libzip: version 1.11.4 - lsof: version 4.99.5 - lvm2: version 2.03.35 - mcelog: version 206 -- mesa: version 25.2.2 +- mesa: version 25.2.3 - nano: version 8.6 - ncurses: version 6.5\_20250816 - nettle: version 3.10.2 -- nghttp2: version 1.67.0 -- nghttp3: version 1.11.0 +- nghttp2: version 1.67.1 +- nghttp3: version 1.12.0 - noto-fonts-ttf: version 2025.09.01 - nvme-cli: version 2.15 -- openssl: version 3.5.2 +- openssl: version 3.5.3 - ovmf: version unraid202502 -- p11-kit: version 0.25.7 +- p11-kit: version 0.25.10 - pam: version 1.7.1 - pcre2: version 10.46 - pango: version 1.56.4 - pciutils: version 3.14.0 - perl: version 5.42.0 -- php: version 8.3.21-x86\_64-1\_LT with gettext extension +- php: version 8.3.26-x86\_64-1\_LT with gettext extension - pixman: version 0.46.4 - rclone: version 1.70.1-x86\_64-1\_SBo\_LT.tgz - readline: version 8.3.001 -- samba: version 4.22.2 +- samba: version 4.23.1 - shadow: version 4.18.0 - smartmontools: version 7.5 - spirv-llvm-translator: version 21.1.0 @@ -274,7 +269,7 @@ Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net acc - tdb: version 1.4.14 - tevent: version 0.17.1 - userspace-rcu: version 0.15.3 -- util-linux: version 2.41.1 +- util-linux: version 2.41.2 - wayland: version 1.24.0 - wireguard-tools: version 1.0.20250521 - wireless-regdb: version 2025.07.10 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 6701d13d7f..d86ddd6bd9 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 @@ -5,6 +5,9 @@ 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'; +import CliMemoryInfo from './partials/command-line-interface/memory-info.mdx'; +import CliStorageInfo from './partials/command-line-interface/storage-info.mdx'; # Command line interface @@ -166,9 +169,7 @@ This command provides a real-time process and resource monitor. - Use arrow keys to scroll, and `k` to terminate processes. :::tip - Consider using `htop` for a more user-friendly interface with enhanced controls. - ::: @@ -187,9 +188,7 @@ This command shows memory usage statistics. 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. - ::: @@ -427,54 +426,15 @@ Get detailed information about hardware, kernel, and overall system configuratio - **CPU architecture summary:** - - ```bash - lscpu - ``` - - This command displays information about cores, threads, virtualization support, and cache details. - - **Feature detection:** - - ```bash - grep -E 'lm|vmx|svm' /proc/cpuinfo - ``` - - - `lm`: Indicates 64-bit support - - `vmx`: Intel VT-x virtualization - - `svm`: AMD-V virtualization - + - **Memory usage overview:** - - ```bash - free -h - ``` - - **Detailed memory breakdown:** - - ```bash - cat /proc/meminfo | head -20 - ``` - + - **List drives by serial/model:** - - ```bash - ls -l /dev/disk/by-id/ | grep -v part - ``` - - **Check filesystem labels:** - - ```bash - ls -l /dev/disk/by-label/ - ``` - + diff --git a/docs/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx b/docs/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx new file mode 100644 index 0000000000..088682462a --- /dev/null +++ b/docs/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx @@ -0,0 +1,17 @@ +**CPU architecture summary:** + +```bash +lscpu +``` + +This command displays information about cores, threads, virtualization support, and cache details. + +**Feature detection:** + +```bash +grep -E 'lm|vmx|svm' /proc/cpuinfo +``` + +- `lm`: Indicates 64-bit support +- `vmx`: Intel VT-x virtualization +- `svm`: AMD-V virtualization diff --git a/docs/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx b/docs/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx new file mode 100644 index 0000000000..91dd07d631 --- /dev/null +++ b/docs/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx @@ -0,0 +1,11 @@ +**Memory usage overview:** + +```bash +free -h +``` + +**Detailed memory breakdown:** + +```bash +cat /proc/meminfo | head -20 +``` diff --git a/docs/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx b/docs/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx new file mode 100644 index 0000000000..f281a2f642 --- /dev/null +++ b/docs/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx @@ -0,0 +1,11 @@ +**List drives by serial/model:** + +```bash +ls -l /dev/disk/by-id/ | grep -v part +``` + +**Check filesystem labels:** + +```bash +ls -l /dev/disk/by-label/ +``` diff --git a/docs/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx b/docs/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx new file mode 100644 index 0000000000..527e37bbcb --- /dev/null +++ b/docs/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx @@ -0,0 +1,11 @@ +

Terminal method

+ +``` +wakeonlan MAC_ADDRESS +``` + +Install it with `sudo apt install wakeonlan` if it's not already installed. + +

Alternative: WoL GUI

+ +You can install a `wol` GUI frontend from your Linux distribution's package manager. diff --git a/docs/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx b/docs/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx new file mode 100644 index 0000000000..50c816b993 --- /dev/null +++ b/docs/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx @@ -0,0 +1,19 @@ +

Terminal method (recommended)

+ +1. Install `wakeonlan` using Homebrew: + + ``` + brew install wakeonlan + ``` + +2. Send the magic packet: + + ``` + wakeonlan MAC_ADDRESS + ``` + +

GUI alternative: miniWOL

+ +1. Download [miniWOL v3](https://apps.apple.com/app/miniwol/id6474282023) from the App Store. +2. Add your server using its MAC address. +3. Click the sun icon to wake your server. diff --git a/docs/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx b/docs/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx new file mode 100644 index 0000000000..42674cd48c --- /dev/null +++ b/docs/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx @@ -0,0 +1,9 @@ +

Using WakeOnLan CMD

+ +1. Download [wolcmd.exe](https://www.depicus.com/wake-on-lan/wake-on-lan-cmd). + +2. Run it in Command Prompt: + + ``` + wolcmd.exe 255.255.255.255 + ``` diff --git a/docs/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx b/docs/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx index a8a542d88a..82880422d8 100644 --- a/docs/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx +++ b/docs/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx @@ -5,6 +5,9 @@ sidebar_label: Wake-on-LAN (WoL) import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import WakeOnLanWindows from './partials/wake-on-lan/windows.mdx'; +import WakeOnLanMacos from './partials/wake-on-lan/macos.mdx'; +import WakeOnLanLinux from './partials/wake-on-lan/linux.mdx'; # Wake-on-LAN (WoL) @@ -77,16 +80,15 @@ The plugin manages most sleep configuration options. ``` :::caution[Persistence] - WoL settings configured manually are **not persistent** across reboots by default. To make them permanent: 1. Create a `go` file on your flash drive at `/boot/config/go`. + 2. Add this line: ``` /sbin/ethtool -s eth0 wol g ``` - ::: @@ -97,54 +99,14 @@ To wake your Unraid server remotely, you need to send a special "magic packet" o -

Using WakeOnLan CMD

- - 1. Download [wolcmd.exe](https://www.depicus.com/wake-on-lan/wake-on-lan-cmd). - - 2. Run it in Command Prompt: - - ``` - wolcmd.exe 255.255.255.255 - ``` - +
-

Terminal method (recommended)

- - 1. Install `wakeonlan` using Homebrew: - ``` - brew install wakeonlan - ``` - - 2. Send the magic packet: - - ``` - wakeonlan MAC_ADDRESS - ``` - -

GUI alternative: miniWOL

- - 1. Download [miniWOL v3](https://apps.apple.com/app/miniwol/id6474282023) from the App Store. - - 2. Add your server using its MAC address. - - 3. Click the sun icon to wake your server. - +
-

Terminal method

- - ``` - wakeonlan MAC_ADDRESS - ``` - - Install it with `sudo apt install wakeonlan` if it's not already installed. - -

Alternative: WoL GUI

- - You can install a `wol` GUI frontend from your Linux distribution's package manager. - +
diff --git a/docs/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx b/docs/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx index f871ec7247..e8bbbc9922 100644 --- a/docs/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx +++ b/docs/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx @@ -5,6 +5,10 @@ sidebar_label: Changing the flash device import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import BackupUsingWebGUI from './partials/backup-using-webgui.mdx'; +import BackupManualMethod from './partials/backup-manual-method.mdx'; +import ReplacementUsingCreator from './partials/replacement-using-creator.mdx'; +import ReplacementManualMethod from './partials/replacement-manual-method.mdx'; # Changing the flash device @@ -49,11 +53,19 @@ For more guidance on selecting the best flash device for Unraid, check out [Spac - Avoid second-hand or previously used drives. - Test the new drive on your server before transferring your license. - Be cautious of counterfeit products, even from well-known brands. - :::note The [forum announcement on counterfeit SanDisk drives](https://forums.unraid.net/topic/119052-psa-on-sandisk-usbs/) from January 2022 confirms SanDisk is not recommended due to counterfeit devices and manufacturing changes resulting in non-unique GUIDs. This affects both counterfeit and legitimate SanDisk drives. +::: +::: + +::: + +::: + +::: + ::: --- @@ -79,24 +91,11 @@ There are two ways to replace your Unraid USB flash device: the recommended [USB - - 1. Go to the **Main** tab and select your flash device. - 2. Under **Flash device settings**, click **FLASH BACKUP** to download a zipped backup to your computer. - -
- ![Flash Backup](/img/flashbackup.png) -
- - Alternatively, use [Unraid Connect flash backup](../../../unraid-connect/automated-flash-backup.mdx) for automated flash backups. - +
- - 1. Shut down your server and remove the flash device. - 2. Insert it into another computer. - 3. Copy all files from the flash drive to a safe backup location. - +
@@ -118,70 +117,11 @@ If you transfer a trial configuration to a new flash device, you will not be abl - *Recommended for most users* - - 1. Download the [Unraid USB flash creator tool](https://unraid.net/download) for Windows or macOS. - 2. Insert your new USB flash device into your computer. - 3. In the creator tool, click the Operating System, scroll down to **Use custom** and browse to your backup ZIP file. - -
- ![Select version](/img/Selectversion.png) -
- - 4. Choose your new USB flash device as the destination and click **Write**. - 5. Shut down your server, replace the old flash device with the new one, and power on. - 6. When prompted with `Invalid, missing or expired registration key`, select **Registration key**. - -
- ![Invalid Key](/img/Invalidkey.png) -
- - 7. If needed, copy your existing license key file into `boot/config` on the new device. - 8. Ensure only one key file exists in the config folder. - 9. In ***Tools → Registration***, select **Replace key** and enter your email address. - -
- ![Invalid Key](/img/Replacekey.png) -
- - 10. Follow the instructions in the email to install your new key. - 11. Once complete, select **Done**. - - :::important - - If you see a "keyfile is not valid" error, your key may be blacklisted or not the last valid key. [Contact Unraid support](https://unraid.net/support) for assistance. - - ::: - +
- *Use this method if the USB flash creator tool does not work for your system.* - - :::important[Before you begin] - - Use the manual method only if you are comfortable with basic file management and your system does not support the USB flash creator. - - ::: - - 1. Prepare a new flash device following the [Manual install method](../../getting-started/set-up-unraid/create-your-bootable-media.mdx#manual-install-method). - 2. Copy your backed-up `config` folder to the new flash device, overwriting existing files. - 3. Shut down the server, swap the flash devices, and power on. - 4. When prompted with `Invalid, missing or expired registration key`, select **Registration key**. - -
- ![Invalid Key](/img/Invalidkey.png) -
- - 5. In ***Tools → Registration***, select **Replace key** and enter your email address. - -
- ![Invalid Key](/img/Replacekey.png) -
- - 6. Follow the instructions in the email to install your new key. - 7. Select **Done**. - +
diff --git a/docs/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx b/docs/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx new file mode 100644 index 0000000000..182af4c24e --- /dev/null +++ b/docs/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx @@ -0,0 +1,3 @@ +1. Shut down your server and remove the flash device. +2. Insert it into another computer. +3. Copy all files from the flash drive to a safe backup location. diff --git a/docs/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx b/docs/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx new file mode 100644 index 0000000000..ec201db96d --- /dev/null +++ b/docs/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx @@ -0,0 +1,8 @@ +1. Go to the **Main** tab and select your flash device. +2. Under **Flash device settings**, click **FLASH BACKUP** to download a zipped backup to your computer. + +
+ ![Flash Backup](/img/flashbackup.png) +
+ +Alternatively, use [Unraid Connect flash backup](../../../../unraid-connect/automated-flash-backup.mdx) for automated flash backups. diff --git a/docs/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx b/docs/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx new file mode 100644 index 0000000000..52eff50a9b --- /dev/null +++ b/docs/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx @@ -0,0 +1,27 @@ +:::caution + +This method should only be used if you are comfortable with the Linux command line, as mistakes might make your system unbootable. + +::: + +1. Copy the URL of the desired Unraid version ZIP file from the [Version History](../../../download_list.mdx). +2. Log in via %%SSH|ssh%% or console. +3. Execute the following commands *one at a time* (replace `` with the copied link): + + ```bash + cd /tmp + rm -f unraid.zip + rm -rf unraid_install + wget -O unraid.zip + [[ -s unraid.zip ]] && echo "OK to continue" || echo "STOP: the file was not downloaded" + unzip -d unraid_install unraid.zip + [[ -s unraid_install/bzroot ]] && echo "OK to continue" || echo "STOP: the file was not extracted properly" + [[ ! -d /boot/previous ]] && mkdir /boot/previous + mv /boot/bz* /boot/previous + mv /boot/changes.txt /boot/previous + cp unraid_install/bz* /boot + cp unraid_install/changes.txt /boot + sync -f /boot + sleep 5 + reboot + ``` diff --git a/docs/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx b/docs/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx new file mode 100644 index 0000000000..e4bf5ad800 --- /dev/null +++ b/docs/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx @@ -0,0 +1,7 @@ +1. Download the Unraid version ZIP file from the [Version History](../../../download_list.mdx). +2. Unzip the file on your computer. +3. Access the `flash` share or connect the USB flash device to your computer. +4. Create a `previous` directory if it doesn't already exist. +5. Move all `bz*` and `changes.txt` files into the `previous` directory. +6. Copy the new `bz*` and `changes.txt` files to the root of the flash drive. +7. Reboot your server. diff --git a/docs/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx b/docs/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx new file mode 100644 index 0000000000..2958bc8a19 --- /dev/null +++ b/docs/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx @@ -0,0 +1,25 @@ +*Use this method if the USB flash creator tool does not work for your system.* + +:::important[Before you begin] + +Use the manual method only if you are comfortable with basic file management and your system does not support the USB flash creator. + +::: + +1. Prepare a new flash device following the [Manual install method](../../../getting-started/set-up-unraid/create-your-bootable-media.mdx#manual-install-method). +2. Copy your backed-up `config` folder to the new flash device, overwriting existing files. +3. Shut down the server, swap the flash devices, and power on. +4. When prompted with `Invalid, missing or expired registration key`, select **Registration key**. + +
+ ![Invalid Key](/img/Invalidkey.png) +
+ +5. In ***Tools → Registration***, select **Replace key** and enter your email address. + +
+ ![Invalid Key](/img/Replacekey.png) +
+ +6. Follow the instructions in the email to install your new key. +7. Select **Done**. diff --git a/docs/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx b/docs/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx new file mode 100644 index 0000000000..c5017a5073 --- /dev/null +++ b/docs/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx @@ -0,0 +1,34 @@ +*Recommended for most users* + +1. Download the [Unraid USB flash creator tool](https://unraid.net/download) for Windows or macOS. +2. Insert your new USB flash device into your computer. +3. In the creator tool, click the Operating System, scroll down to **Use custom** and browse to your backup ZIP file. + +
+ ![Select version](/img/Selectversion.png) +
+ +4. Choose your new USB flash device as the destination and click **Write**. +5. Shut down your server, replace the old flash device with the new one, and power on. +6. When prompted with `Invalid, missing or expired registration key`, select **Registration key**. + +
+ ![Invalid Key](/img/Invalidkey.png) +
+ +7. If needed, copy your existing license key file into `boot/config` on the new device. +8. Ensure only one key file exists in the config folder. +9. In ***Tools → Registration***, select **Replace key** and enter your email address. + +
+ ![Invalid Key](/img/Replacekey.png) +
+ +10. Follow the instructions in the email to install your new key. +11. Once complete, select **Done**. + +:::important + +If you see a "keyfile is not valid" error, your key may be blacklisted or not the last valid key. [Contact Unraid support](https://unraid.net/support) for assistance. + +::: diff --git a/docs/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx b/docs/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx new file mode 100644 index 0000000000..0eed4bf2b8 --- /dev/null +++ b/docs/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx @@ -0,0 +1,6 @@ +For Unraid versions 6.11 and 6.12, follow this traditional update method: + +1. In the %%WebGUI|web-gui%%, go to ***Tools → Update OS***. +2. Click **Check for Updates**. +3. If a new release is available, click **Update**. +4. Reboot your server when prompted. diff --git a/docs/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx b/docs/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx new file mode 100644 index 0000000000..811cd5f436 --- /dev/null +++ b/docs/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx @@ -0,0 +1,13 @@ +Upgrading Unraid is done using the new **Update OS tool** with a user-friendly interface: + +1. In the %%WebGUI|web-gui%%, click the top-right dropdown menu and select **Check for Update** or navigate to ***Tools → Update OS***. +2. Choose the **Stable** channel for stable releases, or the **Next** channel for betas and RCs. +3. Click **View Changelog to Start Update**. The Changelog will appear for you to review before hitting **Continue**. +4. Click **Confirm and start update** to apply the latest stable release. +5. When prompted, reboot your server to complete the upgrade. + +:::note + +You may need to log into your Unraid account to access updates, especially for "Next" branch releases. + +::: 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 3136d418da..1ef71c7e44 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 @@ -5,6 +5,10 @@ sidebar_label: Upgrading Unraid import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import UpgradeModern from './partials/upgrade-modern.mdx'; +import UpgradeLegacy611612 from './partials/upgrade-legacy-611-612.mdx'; +import ManualDowngradeSimplest from './partials/manual-downgrade-simplest.mdx'; +import ManualDowngradeCommandLine from './partials/manual-downgrade-command-line.mdx'; # Upgrading Unraid @@ -31,32 +35,11 @@ Before you start upgrading, make sure to create a complete backup of your USB fl - - Upgrading Unraid is done using the new **Update OS tool** with a user-friendly interface: - - 1. In the %%WebGUI|web-gui%%, click the top-right dropdown menu and select **Check for Update** or navigate to ***Tools → Update OS***. - 2. Choose the **Stable** channel for stable releases, or the **Next** channel for betas and RCs. - 3. Click **View Changelog to Start Update**. The Changelog will appear for you to review before hitting **Continue**. - 4. Click **Confirm and start update** to apply the latest stable release. - 5. When prompted, reboot your server to complete the upgrade. - - :::note - - You may need to log into your Unraid account to access updates, especially for "Next" branch releases. - - ::: - + - - For Unraid versions 6.11 and 6.12, follow this traditional update method: - - 1. In the %%WebGUI|web-gui%%, go to ***Tools → Update OS***. - 2. Click **Check for Updates**. - 3. If a new release is available, click **Update**. - 4. Reboot your server when prompted. - + @@ -156,46 +139,11 @@ Only use these methods if you can't access the %%WebGUI|web-gui%%: - - 1. Download the Unraid version ZIP file from the [Version History](../../download_list.mdx). - 2. Unzip the file on your computer. - 3. Access the `flash` share or connect the USB flash device to your computer. - 4. Create a `previous` directory if it doesn't already exist. - 5. Move all `bz*` and `changes.txt` files into the `previous` directory. - 6. Copy the new `bz*` and `changes.txt` files to the root of the flash drive. - 7. Reboot your server. - + - :::caution - - This method should only be used if you are comfortable with the Linux command line, as mistakes might make your system unbootable. - - ::: - - 1. Copy the URL of the desired Unraid version ZIP file from the [Version History](../../download_list.mdx). - 2. Log in via %%SSH|ssh%% or console. - 3. Execute the following commands *one at a time* (replace `` with the copied link): - - ```bash - cd /tmp - rm -f unraid.zip - rm -rf unraid_install - wget -O unraid.zip - [[ -s unraid.zip ]] && echo "OK to continue" || echo "STOP: the file was not downloaded" - unzip -d unraid_install unraid.zip - [[ -s unraid_install/bzroot ]] && echo "OK to continue" || echo "STOP: the file was not extracted properly" - [[ ! -d /boot/previous ]] && mkdir /boot/previous - mv /boot/bz* /boot/previous - mv /boot/changes.txt /boot/previous - cp unraid_install/bz* /boot - cp unraid_install/changes.txt /boot - sync -f /boot - sleep 5 - reboot - ``` - + diff --git a/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx b/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx new file mode 100644 index 0000000000..3ee2be8c28 --- /dev/null +++ b/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx @@ -0,0 +1,20 @@ +This method will only remove the **%%root|root-user%% password** and leave other users intact. + +To reset via this method: + +1. **Shut down** your Unraid server. + +2. **Connect the USB flash drive** to a computer (Windows or Mac). + +3. **Open the file** located at `/config/shadow` using a text editor (like Notepad++). + +4. **Edit the line** that looks like: + `root:$&$&%*1112233484847648DHD$%.:15477:0:99999:7:::` + + to this instead: + + `root::15477:0:99999:7:::` + +5. **Save the changes** to the file and reconnect the USB drive to your server. + +6. **Start your Unraid server** and set a new root password. diff --git a/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx b/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx new file mode 100644 index 0000000000..4959b0b635 --- /dev/null +++ b/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx @@ -0,0 +1,11 @@ +This method clears **all user passwords**, including\*%%root|root-user%% and share users. + +For the simplest way to reset your password: + +1. **Shut down** your Unraid server. +2. **Connect the USB flash drive** to a computer (Windows or Mac). +3. **Delete these files** from the USB drive: + - `/config/shadow` + - `/config/smbpasswd` +4. **Disconnect the USB flash drive** and reconnect it to your Unraid server, then start it up. +5. **Create a new root password** when prompted at startup. diff --git a/docs/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx b/docs/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx new file mode 100644 index 0000000000..23a1e93c3c --- /dev/null +++ b/docs/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx @@ -0,0 +1,9 @@ +1. Select the eye ![Peer configuration](/img/eye-icon.png) icon to view the peer configuration. + +
+ ![Peer configuration](/img/peer-eye.png) +
+ +2. In the %%WireGuard|wireguard%% mobile app, choose **Create from QR code** and scan the QR code. +3. Name the connection and connect. The %%VPN tunnel|vpn-tunnel%% should start quickly. +4. Keep the QR code private - anyone with it can access your VPN. diff --git a/docs/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx b/docs/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx new file mode 100644 index 0000000000..13c9aa5178 --- /dev/null +++ b/docs/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx @@ -0,0 +1,10 @@ +1. Select the eye ![Peer configuration](/img/eye-icon.png) icon to view the peer configuration. + +
+ ![Peer configuration](/img/peer-eye.png) +
+ +2. Download the configuration file. +3. Securely transfer it to the client device (e.g., via trusted email or cloud storage). +4. Unzip and import the configuration into the %%WireGuard|wireguard%% client. +5. Protect this file to prevent unauthorized VPN access. diff --git a/docs/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx b/docs/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx index fc3a966f2d..a78ab94af5 100644 --- a/docs/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx +++ b/docs/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx @@ -61,9 +61,7 @@ Below are the main ways to access your Unraid %%WebGUI|web-gui%%, depending on y 5. Click **Apply**. :::warning - Anyone on your network can intercept data sent over HTTP. Use HTTPS whenever possible. - ::: @@ -86,9 +84,7 @@ Below are the main ways to access your Unraid %%WebGUI|web-gui%%, depending on y 5. Click **Apply**. :::important - Browsers will show a certificate error. All traffic is still encrypted after you accept the warning. - ::: @@ -124,15 +120,11 @@ Below are the main ways to access your Unraid %%WebGUI|web-gui%%, depending on y - If you install the [Unraid Connect plugin](../../../unraid-connect/overview-and-setup.mdx), it will also be shown on the Connect dashboard. :::info - The myunraid.net certificate is trusted by browsers and does not display warnings. The URL uses your LAN IP address with dots changed to dashes, plus a unique 40-character %%hash|hash%% assigned to your server. - ::: :::tip[Fallback access] - If %%DNS|dns-name-resolution%% resolution becomes unavailable (e.g., your Internet goes down), you can use the local URLs with your server name or IP address as backup access methods. - ::: @@ -155,7 +147,6 @@ Below are the main ways to access your Unraid %%WebGUI|web-gui%%, depending on y If you install the [Unraid Connect plugin](../../../unraid-connect/overview-and-setup.mdx), it will also be shown on the Connect dashboard. :::caution - If %%DNS|dns-name-resolution%% resolution becomes unavailable (e.g., your Internet connection goes down), you will not be able to access the %%WebGUI|web-gui%% using the Myunraid.net URL. To regain access: @@ -164,7 +155,6 @@ Below are the main ways to access your Unraid %%WebGUI|web-gui%%, depending on y - Run `use_ssl no` to switch to HTTP (`http://[servername].[localTLD]` or `http://[ipaddress]`). - Run `use_ssl yes` to switch to HTTPS using a self-signed certificate (`https://[servername].[localTLD]` or `https://[ipaddress]`). See [HTTPS with a self-signed certificate](#https-with-self-signed-certificate) above for more details. - Once %%DNS|dns-name-resolution%% is restored, set **Use SSL/TLS** back to *Strict* for full security. - ::: @@ -177,10 +167,8 @@ When you access `http://[servername].[localTLD]`, the redirect behavior depends - **Strict**: You will be redirected to `https://[lan-ip].[hash].myunraid.net`. :::note - This can make local access difficult if %%DNS|dns-name-resolution%% is unavailable. See the caution under [HTTPS with Myunraid.net certificate and with no fallback URL](#https-with-myunraidnet-certificate-and-with-no-fallback-url). - -::: + ::: - **Yes**: You will be redirected to `https://[servername].[localTLD]`. This will still work even if your internet connection is down. @@ -227,9 +215,7 @@ If your certificate is invalid or does not match the server's URL, Unraid will d 7. Optionally, enable [Unraid Connect remote access](../../../unraid-connect/remote-access.mdx) for secure, browser-trusted remote management. :::tip - For wildcard certificates, ensure the certificate's Subject Alternative Name or Subject field contains `*.[localTLD]` where `[localTLD]` is the exact value you entered in the **Local TLD** field in **Management Access**. - ::: diff --git a/docs/unraid-os/system-administration/secure-your-server/user-management.mdx b/docs/unraid-os/system-administration/secure-your-server/user-management.mdx index 9447ed629a..c5a60746ef 100644 --- a/docs/unraid-os/system-administration/secure-your-server/user-management.mdx +++ b/docs/unraid-os/system-administration/secure-your-server/user-management.mdx @@ -3,6 +3,11 @@ sidebar_position: 3 sidebar_label: User management --- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ResetPasswordBasic from './partials/reset-password-basic.mdx'; +import ResetPasswordAdvanced from './partials/reset-password-advanced.mdx'; + # User management Unraid makes managing users on your NAS simple and secure, catering to everyone from beginners to experienced users. The streamlined approach helps reduce confusion while ensuring that security and access control remain strong. @@ -123,49 +128,13 @@ To modify a user account: If you've forgotten your %%root|root-user%% password, don't worry! Here are two simple methods to regain access to your Unraid server. You'll need physical access to your **[USB flash device](../../system-administration/maintain-and-update/changing-the-flash-device.mdx)** and another computer. -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - This method clears **all user passwords**, including\*%%root|root-user%% and share users. - - For the simplest way to reset your password: - - 1. **Shut down** your Unraid server. - 2. **Connect the USB flash drive** to a computer (Windows or Mac). - 3. **Delete these files** from the USB drive: - - `/config/shadow` - - `/config/smbpasswd` - 4. **Disconnect the USB flash drive** and reconnect it to your Unraid server, then start it up. - 5. **Create a new root password** when prompted at startup. - + - - This method will only remove the **%%root|root-user%% password** and leave other users intact. - - To reset via this method: - - 1. **Shut down** your Unraid server. - - 2. **Connect the USB flash drive** to a computer (Windows or Mac). - - 3. **Open the file** located at `/config/shadow` using a text editor (like Notepad++). - - 4. **Edit the line** that looks like: - `root:$&$&%*1112233484847648DHD$%.:15477:0:99999:7:::` - - to this instead: - - `root::15477:0:99999:7:::` - - 5. **Save the changes** to the file and reconnect the USB drive to your server. - - 6. **Start your Unraid server** and set a new root password. - + diff --git a/docs/unraid-os/system-administration/secure-your-server/wireguard.mdx b/docs/unraid-os/system-administration/secure-your-server/wireguard.mdx index 945e210ab0..d8cb6502e8 100644 --- a/docs/unraid-os/system-administration/secure-your-server/wireguard.mdx +++ b/docs/unraid-os/system-administration/secure-your-server/wireguard.mdx @@ -5,6 +5,8 @@ sidebar_label: WireGuard import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import WireGuardConfigureMobile from './partials/wireguard-configure-mobile.mdx'; +import WireGuardConfigureOtherDevices from './partials/wireguard-configure-other-devices.mdx'; # WireGuard @@ -141,32 +143,11 @@ Adding a new peer can temporarily disable the %%WireGuard|wireguard%% tunnel, wh - - 1. Select the eye ![Peer configuration](/img/eye-icon.png) icon to view the peer configuration. - -
- ![Peer configuration](/img/peer-eye.png) -
- - 2. In the %%WireGuard|wireguard%% mobile app, choose **Create from QR code** and scan the QR code. - 3. Name the connection and connect. The %%VPN tunnel|vpn-tunnel%% should start quickly. - 4. Keep the QR code private - anyone with it can access your VPN. - +
- - 1. Select the eye ![Peer configuration](/img/eye-icon.png) icon to view the peer configuration. - -
- ![Peer configuration](/img/peer-eye.png) -
- - 2. Download the configuration file. - 3. Securely transfer it to the client device (e.g., via trusted email or cloud storage). - 4. Unzip and import the configuration into the %%WireGuard|wireguard%% client. - 5. Protect this file to prevent unauthorized VPN access. - +
diff --git a/docs/unraid-os/troubleshooting/common-issues/data-recovery.mdx b/docs/unraid-os/troubleshooting/common-issues/data-recovery.mdx index 62354e78bc..c33dc60930 100644 --- a/docs/unraid-os/troubleshooting/common-issues/data-recovery.mdx +++ b/docs/unraid-os/troubleshooting/common-issues/data-recovery.mdx @@ -5,6 +5,10 @@ sidebar_label: Data recovery import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import RepairXfs from './partials/data-recovery/repair-xfs.mdx'; +import RepairBtrfs from './partials/data-recovery/repair-btrfs.mdx'; +import XfsCheckWebGUI from './partials/data-recovery/xfs-check-webgui.mdx'; +import XfsCheckCli from './partials/data-recovery/xfs-check-cli.mdx'; # Data recovery @@ -129,41 +133,12 @@ This section covers how to diagnose and repair file system corruption on data dr ### Running the Repair - - - Starting with Unraid 7.0, XFS file system repair is now fully automated through the WebGUI: - - 1. **Initial Check**: Click the **CHECK** button (no options to enter) - 2. **Check Results**: - - **No corruption detected**: Shows "no filesystem corruption detected" and the **CHECK** button remains - - **Corruption detected**: Shows "filesystem corruption detected" and a **FIX** button appears - 3. **Repair Process**: Click **FIX** to automatically repair the file system - 4. **Additional Actions**: If needed, a **ZERO LOG** button may appear - 5. **Completion**: Shows "filesystem repaired" when the process is complete - - This automated system eliminates the need for users to manually enter repair options and ensures the correct repair sequence is followed. - - :::note - - - Repairs maintain %%parity|parity%% protection and can take significant time. - - Both %%WebGUI|web-gui%% and command-line options are supported for %%XFS|xfs%% repair (commands shown below). - - ::: - + + - - - Use `btrfs scrub` in the %%WebGUI|web-gui%% to scan for and repair certain errors. - - On single drives, scrub may detect but not fix some errors; if so, consider copying data and reformatting the disk or pool. - - :::note - - - Current %%BTRFS|btrfs%% repair tools may not address all corruption; check Unraid documentation for updated tools if needed. - - For more details on scrub and recovery, refer to the respective %%BTRFS|btrfs%% documentation or Unraid forums for guidance. - - ::: - + @@ -184,33 +159,12 @@ If you used %%Maintenance Mode|maintenance-mode%%, stop the array and restart it ### XFS check & repair - - - 1. Use the %%WebGUI|web-gui%% for %%array|array%% drives formatted with %%XFS|xfs%%. - 2. Start the %%array|array%% in %%Maintenance Mode|maintenance-mode%% (unmounted). - 3. From the Main tab, select the disk and open **Check Filesystem Status**. - 4. By default, a check uses `-n` (non-modifying); for more output, add `-v` for `-nv`. - 5. To repair, remove the `-n` flag to allow fixes. - - The %%WebGUI|web-gui%% process maintains %%parity|parity%% during repair. - + + - - At the console or via %%SSH|ssh%%, run: - - ``` - xfs_repair -v /dev/mdXp1 - ``` - - Replace **X** with the correct disk number (e.g., `md1p1` for Disk 1). - - - Review the repair report for further remediation steps if required. If only minor issues, running `-v` is generally sufficient. - - If repair produces a `lost+found` directory, review and manage as above. - - %%Parity|parity%% is maintained during the repair. - - When finished, stop the %%array|array%% and restart in normal mode. - + @@ -221,6 +175,7 @@ If you used %%Maintenance Mode|maintenance-mode%%, stop the array and restart it If a previously functional disk becomes unmountable, this usually indicates file system corruption, often caused by an unclean shutdown or write failure. :::danger[Critical action] + Never format an unmountable disk through the %%WebGUI|web-gui%%! Formatting erases all data and updates %%parity|parity%%, making recovery impossible. ::: @@ -256,6 +211,7 @@ Here’s how to proceed: ``` :::danger + The `--repair` option is extremely dangerous and can cause further data loss. Always backup or image the disk first. Review [the documentation](https://btrfs.readthedocs.io/en/latest/btrfs-check.html) and consider seeking additional advice if you’re unsure. ::: diff --git a/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx b/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx new file mode 100644 index 0000000000..a9af589407 --- /dev/null +++ b/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx @@ -0,0 +1,9 @@ +- Use `btrfs scrub` in the %%WebGUI|web-gui%% to scan for and repair certain errors. +- On single drives, scrub may detect but not fix some errors; if so, consider copying data and reformatting the disk or pool. + +:::note + +- Current %%BTRFS|btrfs%% repair tools may not address all corruption; check Unraid documentation for updated tools if needed. +- For more details on scrub and recovery, refer to the respective %%BTRFS|btrfs%% documentation or Unraid forums for guidance. + +::: diff --git a/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx b/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx new file mode 100644 index 0000000000..5aa04694b2 --- /dev/null +++ b/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx @@ -0,0 +1,18 @@ +Starting with Unraid 7.0, XFS file system repair is now fully automated through the WebGUI: + +1. **Initial Check**: Click the **CHECK** button (no options to enter) +2. **Check Results**: + - **No corruption detected**: Shows "no filesystem corruption detected" and the **CHECK** button remains + - **Corruption detected**: Shows "filesystem corruption detected" and a **FIX** button appears +3. **Repair Process**: Click **FIX** to automatically repair the file system +4. **Additional Actions**: If needed, a **ZERO LOG** button may appear +5. **Completion**: Shows "filesystem repaired" when the process is complete + +This automated system eliminates the need for users to manually enter repair options and ensures the correct repair sequence is followed. + +:::note + +- Repairs maintain %%parity|parity%% protection and can take significant time. +- Both %%WebGUI|web-gui%% and command-line options are supported for %%XFS|xfs%% repair (commands shown below). + +::: diff --git a/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx b/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx new file mode 100644 index 0000000000..57d9bba16b --- /dev/null +++ b/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx @@ -0,0 +1,12 @@ +At the console or via %%SSH|ssh%%, run: + +``` +xfs_repair -v /dev/mdXp1 +``` + +Replace **X** with the correct disk number (e.g., `md1p1` for Disk 1). + +- Review the repair report for further remediation steps if required. If only minor issues, running `-v` is generally sufficient. +- If repair produces a `lost+found` directory, review and manage as above. +- %%Parity|parity%% is maintained during the repair. +- When finished, stop the %%array|array%% and restart in normal mode. diff --git a/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx b/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx new file mode 100644 index 0000000000..f5bfb63e50 --- /dev/null +++ b/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx @@ -0,0 +1,7 @@ +1. Use the %%WebGUI|web-gui%% for %%array|array%% drives formatted with %%XFS|xfs%%. +2. Start the %%array|array%% in %%Maintenance Mode|maintenance-mode%% (unmounted). +3. From the Main tab, select the disk and open **Check Filesystem Status**. +4. By default, a check uses `-n` (non-modifying); for more output, add `-v` for `-nv`. +5. To repair, remove the `-n` flag to allow fixes. + +The %%WebGUI|web-gui%% process maintains %%parity|parity%% during repair. diff --git a/docs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx b/docs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx new file mode 100644 index 0000000000..0492adbde3 --- /dev/null +++ b/docs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx @@ -0,0 +1 @@ +The %%array|array%% status is stored on your USB flash device. If the flash drive becomes unavailable or enters a read-only state, Unraid cannot update the shutdown status, even if the %%array|array%% stops correctly. This results in an unclean shutdown being detected at the next boot. diff --git a/docs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx b/docs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx new file mode 100644 index 0000000000..28ff0d6646 --- /dev/null +++ b/docs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx @@ -0,0 +1,7 @@ +Unraid waits for all open terminal or SSH sessions to close during shutdown. If these sessions remain active and the shutdown timer expires, a forced shutdown occurs. + +:::tip + +The [Dynamix Stop Shell](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository) plugin can automatically close lingering bash or SSH sessions, helping ensure a graceful shutdown. However, be cautious if there are ongoing write operations to the %%array|array%%. + +::: diff --git a/docs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx b/docs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx new file mode 100644 index 0000000000..82d5239041 --- /dev/null +++ b/docs/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx @@ -0,0 +1,7 @@ +Power interruptions are one of the main reasons for unclean shutdowns. Protect your system with a properly configured UPS that can automatically shut down Unraid before the battery runs out. + +:::note + +Unraid supports most UPS units using the %%apcupsd Protocol|apcupsd%% protocol (APC and CyberPower are usually compatible). If your UPS isn't supported, consider using the Network UPS Tools (NUT) plugin from Community Applications. + +::: diff --git a/docs/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx b/docs/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx index c5a891e19a..ea790c5cec 100644 --- a/docs/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx +++ b/docs/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx @@ -220,10 +220,8 @@ System stability typically depends on: Keeping your system firmware current helps prevent unexpected crashes and unlocks new hardware features. :::tip[Recommendations] - - Use manufacturer utilities for risk-free updates, such as [ASUS Armoury Crate](https://www.asus.com/supportonly/armoury%20crate/helpdesk_download/), [Gigabyte @BIOS](https://www.gigabyte.com/Support/Consumer/Download), or [MSI Center](https://www.msi.com/Landing/MSI-Center). - Check your motherboard's BIOS settings for automatic update options if available. - ::: diff --git a/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx b/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx index c9420fb80b..f1393c0a4d 100644 --- a/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx +++ b/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx @@ -3,8 +3,11 @@ sidebar_position: 2 sidebar_label: Unclean shutdowns --- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import UncleanShutdownsPower from "./partials/unclean-shutdowns/unexpected-power-loss.mdx"; +import UncleanShutdownsFlash from "./partials/unclean-shutdowns/flash-drive-failure.mdx"; +import UncleanShutdownsTerminal from "./partials/unclean-shutdowns/open-terminal-sessions.mdx"; # Unclean shutdowns @@ -16,7 +19,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 +29,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-configuration.mdx#startstop-the-array) and power down safely. - **Test your configuration:** Simulate a power loss to ensure the UPS and Unraid respond correctly. @@ -39,34 +42,16 @@ Look into the [NUT plugin](https://unraid.net/community/apps/c/plugins/p4?srslti Understanding the main triggers for unclean shutdowns helps you prevent them. Explore the tabs below for details on each scenario. - - - Power interruptions are one of the main reasons for unclean shutdowns. Protect your system with a properly configured UPS that can automatically shut down Unraid before the battery runs out. - - :::note - - Unraid supports most UPS units using the %%apcupsd Protocol|apcupsd%% protocol (APC and CyberPower are usually compatible). If your UPS isn't supported, consider using the Network UPS Tools (NUT) plugin from Community Applications. - - ::: - + + - - - The %%array|array%% status is stored on your USB flash device. If the flash drive becomes unavailable or enters a read-only state, Unraid cannot update the shutdown status, even if the %%array|array%% stops correctly. This results in an unclean shutdown being detected at the next boot. - - + + + - - Unraid waits for all open terminal or %%SSH|ssh%% sessions to close during shutdown. If these sessions remain active and the shutdown timer expires, a forced shutdown occurs. - - :::tip - - The [Dynamix Stop Shell](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository) plugin can automatically close lingering bash or %%SSH|ssh%% sessions, helping ensure a graceful shutdown. However, be cautious if there are ongoing write operations to the %%array|array%%. - - ::: - + @@ -127,7 +112,7 @@ To enable VM hibernation: ```bash # Ubuntu/Debian sudo apt install qemu-guest-agent - + # CentOS/RHEL/Fedora sudo yum install qemu-guest-agent # or @@ -172,13 +157,13 @@ Without the %%QEMU|qemu%% %%Guest Agent|guest-agent%% installed, hibernation may ### Timeout configuration -In this section, we’ll cover how to configure timeouts for various systems and processes. This information is important to ensure that your %%VMs|vm%% and Docker containers shut down gracefully without data loss. +In this section, we’ll cover how to configure timeouts for various systems and processes. This information is important to ensure that your %%VMs|vm%% and Docker containers shut down gracefully without data loss. | 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] @@ -193,7 +178,7 @@ When shutting down, the process happens in the following order: - 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%% - + All %%VMs|vm%% in each stage are processed at the same time, meaning the total shutdown time can be calculated as: VM timeout × 3. 2. **Docker containers stop**: All containers will stop simultaneously (total time = Docker timeout). @@ -205,6 +190,7 @@ When shutting down, the process happens in the following order: :::tip[Calculate your general shutdown timeout] **Formula:** Your general shutdown timeout should be greater than: + ``` (VM timeout × 3) + (Docker timeout) + (Other services) + 15-30 seconds ``` @@ -275,7 +261,7 @@ This section provides in-depth information about configuring timeouts for differ - Your UPS must provide enough runtime to complete the full shutdown sequence before battery runs out. - For **manual shutdown**, you can set longer timeouts since you control when shutdown starts. - With **power outage shutdown**, your timeout is limited by UPS battery life. - - **Test your UPS** by simulating a power outage to ensure your server shuts down cleanly with time to spare. + - **Test your UPS** by simulating a power outage to ensure your server shuts down cleanly with time to spare. :::tip[General timeout recommendations] - **If you get unclean shutdowns:** Increase to **180 seconds (3 minutes)** for systems without %%VMs|vm%%. diff --git a/docs/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx b/docs/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx index 0fb8ac563d..2f332453d9 100644 --- a/docs/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx +++ b/docs/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx @@ -5,6 +5,12 @@ sidebar_label: Capture diagnostics and logs import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import SyslogMirror from './partials/syslog-server/mirror.mdx'; +import SyslogRemote from './partials/syslog-server/remote.mdx'; +import SyslogLocal from './partials/syslog-server/local.mdx'; +import DockerLogsViaWebGUI from './partials/docker-logs/via-webgui.mdx'; +import DockerLogsCommandLine from './partials/docker-logs/command-line.mdx'; +import DockerLogsPersistent from './partials/docker-logs/persistent.mdx'; # Capturing diagnostic information @@ -154,67 +160,16 @@ For detailed configuration help, check the **Help** icon in the WebGUI toolbar. ### Enabling the syslog server - - - 1. Select **Yes** under **Mirror to flash**. - 2. Click **Apply**. Logs will be saved to `/boot/logs/syslog` on your flash drive - - On the next reboot, this file will be renamed to `/boot/logs/syslog-previous`. You can view this file through **Tools → Syslog → syslog-previous**, and it will also be included (anonymized) in diagnostics. - -

How it works

- - - By default, Unraid copies the %%syslog|syslog%% to the flash drive during every graceful shutdown. This is managed through the "copy %%syslog|syslog%% to flash on shutdown" setting, which is enabled by default. - - If you're troubleshooting crashes, you can enable "Mirror to flash." This will write the %%syslog|syslog%% to both `/var/log/syslog` and `/boot/logs/syslog` in real time. If a crash happens, any %%syslog|syslog%% entries recorded to flash before the crash will be preserved. - - Both methods result in the creation of a `/boot/logs/syslog-previous` file after the next boot, which you can access via the %%syslog|syslog%% viewer and will be included in diagnostics. - - :::caution - - The **Copy %%syslog|syslog%% to flash on shutdown** setting is safe for your flash drive. However, enabling **Mirror to flash** can lead to excessive writes if left on for an extended period. For long-term logging needs, consider using a local or remote %%syslog server|syslog-server%% instead. - - ::: - + + - - 1. Set **Local syslog server** to *Enabled*. - 2. Enter the IP address of your syslog server under **Remote syslog server**. - 3. Click **Apply**. - - Logs will stream to the device you specified. - -
- ![Remote syslog configuration](/img/Syslog-server.jpg) -
- - :::note - - If you upload files from a remote %%syslog server|syslog-server%% to the forum, they will **not** be anonymized. - - ::: - +
- - To create a persistent, reliable copy of your Unraid %%syslog|syslog%% on your server: - - 1. Set **Local syslog server** to *Enabled*. - 2. Configure the following options: - - **Local %%syslog|syslog%% folder**: Use a cache-only or preferred share (best for SSDs). - - **Rotation settings**: Adjust the file size and number limits. - 3. For best results and to ensure all %%syslog|syslog%% data (including boot events) is captured. Be sure to set the **Remote %%syslog server|syslog-server%%** field to your server's own IP address (the "Loopback method"), or the %%syslog|syslog%% will not be saved to the set share. - - This ensures %%syslog|syslog%% events are both stored locally and persist across reboots, without writing to the flash drive. - 4. Click **Apply**. - - Logs will be saved to the share you specified. - - :::note - - - If you upload files from the local %%syslog server|syslog-server%% to the forum, they will **not** be anonymized. - - Logs saved using this method are not included in standard diagnostics. Attach them separately if you need support. - - ::: - +
@@ -227,31 +182,16 @@ While standard diagnostics only provide limited data for Docker and %%VM|vm%%, y To retrieve Docker logs: - - - - Navigate to ***Docker > Containers*** - - Click the **Logs** icon for the desired container - + + - - - Use the command: - - ```bash - docker logs [container_name] > /path/to/save/log.txt - ``` - + + - - - To map container logs to a host path, configure your container template like this: - - ``` - /path/in/container:/logs - ``` - + + diff --git a/docs/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx b/docs/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx new file mode 100644 index 0000000000..f0c273bfca --- /dev/null +++ b/docs/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx @@ -0,0 +1,5 @@ +Use the command: + +```bash +docker logs [container_name] > /path/to/save/log.txt +``` diff --git a/docs/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx b/docs/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx new file mode 100644 index 0000000000..a27d30eb5c --- /dev/null +++ b/docs/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx @@ -0,0 +1,5 @@ +To map container logs to a host path, configure your container template like this: + +``` +/path/in/container:/logs +``` diff --git a/docs/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx b/docs/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx new file mode 100644 index 0000000000..f388bc8bb2 --- /dev/null +++ b/docs/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx @@ -0,0 +1,2 @@ +- Navigate to ***Docker > Containers*** +- Click the **Logs** icon for the desired container diff --git a/docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx b/docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx new file mode 100644 index 0000000000..ef66f8d1e4 --- /dev/null +++ b/docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx @@ -0,0 +1,17 @@ +To create a persistent, reliable copy of your Unraid %%syslog|syslog%% on your server: + +1. Set **Local syslog server** to *Enabled*. +2. Configure the following options: + - **Local %%syslog|syslog%% folder**: Use a cache-only or preferred share (best for SSDs). + - **Rotation settings**: Adjust the file size and number limits. +3. For best results and to ensure all %%syslog|syslog%% data (including boot events) is captured, set the **Remote %%syslog server|syslog-server%%** field to your server's own IP address (the "Loopback method"), or the %%syslog|syslog%% will not be saved to the set share. + - This ensures %%syslog|syslog%% events are both stored locally and persist across reboots, without writing to the flash drive. +4. Click **Apply**. + - Logs will be saved to the share you specified. + +:::note + +- If you upload files from the local %%syslog server|syslog-server%% to the forum, they will **not** be anonymized. +- Logs saved using this method are not included in standard diagnostics. Attach them separately if you need support. + +::: diff --git a/docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx b/docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx new file mode 100644 index 0000000000..30171b7c59 --- /dev/null +++ b/docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx @@ -0,0 +1,17 @@ +1. Select **Yes** under **Mirror to flash**. +2. Click **Apply**. Logs will be saved to `/boot/logs/syslog` on your flash drive + +On the next reboot, this file will be renamed to `/boot/logs/syslog-previous`. You can view this file through **Tools → Syslog → syslog-previous**, and it will also be included (anonymized) in diagnostics. + +

How it works

+ +- By default, Unraid copies the %%syslog|syslog%% to the flash drive during every graceful shutdown. This is managed through the "copy %%syslog|syslog%% to flash on shutdown" setting, which is enabled by default. +- If you're troubleshooting crashes, you can enable "Mirror to flash." This will write the %%syslog|syslog%% to both `/var/log/syslog` and `/boot/logs/syslog` in real time. If a crash happens, any %%syslog|syslog%% entries recorded to flash before the crash will be preserved. + +Both methods result in the creation of a `/boot/logs/syslog-previous` file after the next boot, which you can access via the %%syslog|syslog%% viewer and will be included in diagnostics. + +:::caution + +The **Copy %%syslog|syslog%% to flash on shutdown** setting is safe for your flash drive. However, enabling **Mirror to flash** can lead to excessive writes if left on for an extended period. For long-term logging needs, consider using a local or remote %%syslog server|syslog-server%% instead. + +::: diff --git a/docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx b/docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx new file mode 100644 index 0000000000..21b58573b4 --- /dev/null +++ b/docs/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx @@ -0,0 +1,14 @@ +1. Set **Local syslog server** to *Enabled*. +2. Enter the IP address of your syslog server under **Remote syslog server**. +3. Click **Apply**. + - Logs will stream to the device you specified. + +
+ ![Remote syslog configuration](/img/Syslog-server.jpg) +
+ +:::note + +If you upload files from a remote %%syslog server|syslog-server%% to the forum, they will **not** be anonymized. + +::: diff --git a/docs/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx b/docs/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx index baa409e6de..c9d6d912b4 100644 --- a/docs/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx +++ b/docs/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx @@ -142,9 +142,7 @@ If %%CRC errors|crc-errors%% continue after addressing cabling and power, furthe - Maintains monitoring of the underlying problem :::important - Acknowledging a warning doesn't fix the underlying issue - it just tells Unraid you're aware of it. You should still investigate and resolve the root cause of the %%CRC errors|crc-errors%%. - ::: diff --git a/docs/unraid-os/troubleshooting/faq.mdx b/docs/unraid-os/troubleshooting/faq.mdx index 0f1e06c393..c0189c4d9a 100644 --- a/docs/unraid-os/troubleshooting/faq.mdx +++ b/docs/unraid-os/troubleshooting/faq.mdx @@ -138,9 +138,7 @@ If you need help with Unraid OS, you have several support options: 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. - ::: @@ -161,11 +159,12 @@ If you need help with Unraid OS, you have several support options: 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 + - **Double-check the device identifier** in the WebGUI or with `lsblk` before running this command + - **Ensure you're targeting the correct drive** - data loss from the wrong drive cannot be recovered For each data drive, run: @@ -175,7 +174,6 @@ If you need help with Unraid OS, you have several support options: ``` Replace `X` with the correct drive letter (e.g., sda, sdb, sdc) - ::: 8. Continue with the normal Unraid setup and configuration. @@ -293,10 +291,9 @@ If you need help with Unraid OS, you have several support options: 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. @@ -311,13 +308,11 @@ If you need help with Unraid OS, you have several support options: This process keeps your data safe while changing the partitioning style. :::note[Additional notes] - - **Partitioning is automatic**: Unraid automatically chooses the partitioning style based on drive size: - **2TB or smaller**: Always uses MBR partitioning - **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. - ::: @@ -336,9 +331,7 @@ If you need help with Unraid OS, you have several support options: 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. - ::: @@ -439,9 +432,7 @@ If you need help with Unraid OS, you have several support options: 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 f2757c544d..902ac85c71 100644 --- a/docs/unraid-os/troubleshooting/licensing-faq.mdx +++ b/docs/unraid-os/troubleshooting/licensing-faq.mdx @@ -3,8 +3,8 @@ sidebar_position: 4 sidebar_label: Licensing FAQ --- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; +import Details from '@theme/Details'; +import ManualKeyfileTabs from '@site/src/components/ManualKeyfileTabs'; # Licensing FAQ @@ -84,15 +84,11 @@ This page contains frequently asked questions about Unraid OS licensing. For gen 6. Your registration key will be emailed to you along with installation instructions. :::important - Activation codes are one-time use for generating your Unraid license key file. - ::: :::note[Instructional Video] - Watch the [Activation Code Instructional Video](https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2) for step-by-step guidance. - ::: @@ -146,30 +142,9 @@ This page contains frequently asked questions about Unraid OS licensing. For gen

How do I manually install my license keyfile to my USB flash device?

-
- Click to expand/collapse - - - - - 1. Ensure you have a recent backup of your USB drive. Use [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) (recommended) or the local backup option at ***Main → Flash → Flash Backup***. - 2. Shut down your Unraid server and remove the USB flash device. - 3. Insert the USB flash into another computer. - 4. Open the USB drive and copy your `.key` file into the `/config` folder. - *Make sure this is the only `.key` file present—delete any others.* - 5. Safely eject the USB flash device, reinstall it in your server, and reboot. - - - - - - 1. If your server is running and the flash share is visible on your network, navigate to the flash share under **Network**. - 2. Drag and drop the registration key file into the `config` directory. - 3. In the %%WebGUI|web-gui%%, **Stop** the %%array|array%%, then **Start** the %%array|array%% again to apply the new key. - - - -
+
+ +

@@ -280,9 +255,7 @@ This page contains frequently asked questions about Unraid OS licensing. For gen The first transfer can be done at any time, while subsequent transfers are allowed once every 12 months using the automated system. If you need to transfer your license again before the 12-month period, contact Unraid support with your old and new USB %%GUID|guid%%s for manual assistance. :::tip - Routinely back up your USB device using [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) to simplify recovery and avoid data loss. - ::: @@ -309,11 +282,24 @@ This page contains frequently asked questions about Unraid OS licensing. For gen
Click to expand/collapse - - Trial licenses last 30 days and provide full Unraid Pro functionality without a storage device limit. + - Trial licenses last 30 days and provide full Unraid functionality without a storage device limit. - You'll need a quality USB flash drive and the Unraid USB Creator tool. - Consult the [Getting Started guide](../getting-started/set-up-unraid/create-your-bootable-media.mdx) for server setup instructions. - Trial licenses require an internet connection at boot for initial validation. - - You can extend your trial up to two times (details below). + - You can extend your trial for 15 more days if you need more time to evaluate Unraid. You can do this twice for a total of 60 days (details below). + +
+ +
+ +

How do I Extend My Trial?

+ +
+ Click to expand/collapse + + -Unraid trial registration keys last for 30 days and can be extended twice for 14 additional days each time. After two trial extensions, no additional extensions can be granted. To request an extension, you must stop the array, navigate to the Tools > Registration page, and click "Request Extension." + + -If the two additional extension were not used, and this option does not appear for you, or if it's not working for any reason, please send us the flash drive GUID from Tools - Registration over to [contact@unraid.net](mailto:contact@unraid.net), or via our support portal at support.unraid.net and we will be happy to assist.
diff --git a/docs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx b/docs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx new file mode 100644 index 0000000000..51b9a1f356 --- /dev/null +++ b/docs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx @@ -0,0 +1,3 @@ +1. If your server is running and the flash share is visible on your network, navigate to the flash share under **Network**. +2. Drag and drop the registration key file into the `config` directory. +3. In the %%WebGUI|web-gui%%, **Stop** the %%array|array%%, then **Start** the %%array|array%% again to apply the new key. diff --git a/docs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx b/docs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx new file mode 100644 index 0000000000..5d54cad138 --- /dev/null +++ b/docs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx @@ -0,0 +1,6 @@ +1. Ensure you have a recent backup of your USB drive. Use [Unraid Connect](../../../../unraid-connect/overview-and-setup.mdx) (recommended) or the local backup option at ***Main → Flash → Flash Backup***. +2. Shut down your Unraid server and remove the USB flash device. +3. Insert the USB flash into another computer. +4. Open the USB drive and copy your `.key` file into the `/config` folder. + *Make sure this is the only `.key` file present—delete any others.* +5. Safely eject the USB flash device, reinstall it in your server, and reboot. diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx index 3c4768db14..cd176133a3 100644 --- a/docs/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx @@ -5,6 +5,10 @@ sidebar_label: Overview & system prep import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import HvmSupport from './partials/hvm-support.mdx'; +import IommuSupport from './partials/iommu-support.mdx'; +import GpuNvidia from './partials/gpu-nvidia.mdx'; +import GpuAmd from './partials/gpu-amd.mdx'; # Overview & system prep @@ -49,9 +53,7 @@ For a list of operating systems tested with Unraid, see the [%%VM|vm%% Setup](./ - %%VNC|vnc-session%%: Unraid features a built-in NoVNC client for easy browser-based access to %%VMs|vm%%, with the option to use external %%VNC clients|vnc-session%% as needed. :::tip - Most users don’t need to interact directly with these technologies, but understanding what goes on “under the hood” can be incredibly useful for advanced troubleshooting and customization. For more detailed information, check out the official documentation for [KVM](https://www.linux-kvm.org/page/Main_Page), [QEMU](https://www.qemu.org/), [Libvirt](https://libvirt.org/), and [VirtIO](https://www.linux-kvm.org/page/Virtio). - ::: @@ -97,21 +99,11 @@ Your motherboard BIOS must enable Hardware-assisted virtualization and %%IOMMU|i - %%HVM|hvm%% (Hardware Virtual Machine), also known as %%Intel VT-x|intel-vt-x%% or %%AMD-V|amd-v%%, enables your CPU to run %%virtual machines|vm%% with hardware acceleration. - - - Required for creating and running any %%VM|vm%% on Unraid. - - Provides efficient CPU virtualization and better performance compared to software-only virtualization. - - Most modern CPUs (2015 and newer) include this feature. - + - %%IOMMU|iommu%% (Input/Output Memory Management Unit, also known as Intel VT-d or AMD-Vi, enables secure and efficient device passthrough to %%VMs|vm%%. - - - Required for assigning PCIe devices (GPUs, USB controllers, NVMe drives) directly to a %%VM|vm%%. - - Provides memory isolation and protection, preventing devices from accessing unauthorized memory regions. - - Essential for %%GPU passthrough|gpu-passthrough%%, advanced networking, and high-performance workloads. - + @@ -132,18 +124,11 @@ Passing a GPU to a %%VM|vm%% allows for near-native graphics performance, making - - - All modern RTX (3000/4000 series) support passthrough and are recommended for the best performance. - - Quadro and some older GTX cards are also supported, but it's important to check for current driver compatibility. - + - - - Radeon RX 6000 series are generally reliable for passthrough. - - RX 7000 series may have some unresolved issues; please check the [Unraid forums](https://forums.unraid.net/) for the latest compatibility reports. - - The AMD reset bug has mostly been resolved in recent models, but it's always a good idea to confirm with your hardware. - + @@ -242,4 +227,5 @@ To set your virtualization preferences: This setting is experimental and may affect system stability. Use with caution. ::: + 5\. Click **Apply** to save your settings. diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx new file mode 100644 index 0000000000..00b8dfcdf2 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx @@ -0,0 +1,3 @@ +- Radeon RX 6000 series are generally reliable for passthrough. +- RX 7000 series may have some unresolved issues; please check the [Unraid forums](https://forums.unraid.net/) for the latest compatibility reports. +- The AMD reset bug has mostly been resolved in recent models, but it's always a good idea to confirm with your hardware. diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx new file mode 100644 index 0000000000..ceaedb50cc --- /dev/null +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx @@ -0,0 +1,2 @@ +- All modern RTX (3000/4000 series) support passthrough and are recommended for the best performance. +- Quadro and some older GTX cards are also supported, but it's important to check for current driver compatibility. diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx new file mode 100644 index 0000000000..432f8a847c --- /dev/null +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx @@ -0,0 +1,5 @@ +%%HVM|hvm%% (Hardware Virtual Machine), also known as %%Intel VT-x|intel-vt-x%% or %%AMD-V|amd-v%%, enables your CPU to run %%virtual machines|vm%% with hardware acceleration. + +- Required for creating and running any %%VM|vm%% on Unraid. +- Provides efficient CPU virtualization and better performance compared to software-only virtualization. +- Most modern CPUs (2015 and newer) include this feature. diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx new file mode 100644 index 0000000000..a86b755b11 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx @@ -0,0 +1,5 @@ +%%IOMMU|iommu%% (Input/Output Memory Management Unit, also known as Intel VT-d or AMD-Vi) enables secure and efficient device passthrough to %%VMs|vm%%. + +- Required for assigning PCIe devices (GPUs, USB controllers, NVMe drives) directly to a %%VM|vm%%. +- Provides memory isolation and protection, preventing devices from accessing unauthorized memory regions. +- Essential for %%GPU passthrough|gpu-passthrough%%, advanced networking, and high-performance workloads. diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx new file mode 100644 index 0000000000..7332cbcbab --- /dev/null +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx @@ -0,0 +1,5 @@ +1. Download the [Windows 11 ISO](https://www.microsoft.com/en-us/software-download/windows11). +2. Upload the ISO to your `isos` share on your Unraid server. +3. Modify your %%VM|vm%% template to boot from the ISO in the `isos` share. +4. Boot the %%VM|vm%% from the ISO and perform the fresh installation. +5. Reinstall your applications and restore your data from backup. diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx new file mode 100644 index 0000000000..7a6f72fa7e --- /dev/null +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx @@ -0,0 +1,3 @@ +1. Download the [Windows 11 Installation Assistant](https://www.microsoft.com/en-us/software-download/windows11). +2. Run the installer and follow the on-screen instructions. +3. Reboot when prompted. diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx new file mode 100644 index 0000000000..c5aa7da347 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx @@ -0,0 +1,3 @@ +1. In ***Settings → VM Manager***, set a default %%VirtIO|virtio%% ISO path (e.g., `/mnt/user/isos/virtio-win.iso`). +2. When creating a Windows %%VM|vm%%, the ISO will auto-attach as a virtual CD-ROM. +3. During Windows setup, load drivers from the %%VirtIO|virtio%% ISO when prompted for storage controllers. diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx new file mode 100644 index 0000000000..d4dc99c420 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx @@ -0,0 +1,14 @@ +1. Download the [latest stable VirtIO drivers ISO](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso) and save it to your Unraid `isos` share. + + :::tip[Verify download integrity] + Download the [CHECKSUM file](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/CHECKSUM) from the same directory to verify the ISO's integrity. This helps ensure your download is complete and hasn't been tampered with. + ::: + +2. Edit your %%VM|vm%% settings to point to the new ISO in the `isos` share. + +3. In Windows Device Manager: + - Right-click devices with yellow warnings + - Select **Update driver → Browse my computer** + - Navigate to the %%VirtIO|virtio%% ISO drive (usually `D:\` or `E:\`) + +4. Reboot after updating all drivers. diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx index a76ef99bff..9f94fcedac 100644 --- a/docs/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx @@ -93,9 +93,7 @@ To get Unraid up and running as a %%VM|vm%%: 12. Under **USB devices**, select the flash drive by **manufacturer**, not label. :::important - The %%VM|vm%%'s flash drive must be from a different manufacturer than the host's boot drive. If they match, the %%VM|vm%% drive won't be visible. - ::: diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx index 3f8b23d543..eb7a4c6cce 100644 --- a/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx @@ -335,9 +335,7 @@ To convert a Windows VM from %%Xen|xen-hvm%% to %%KVM|kvm%%, follow these steps. - If it doesn't, skip to the step about rebooting into %%KVM|kvm%% mode. :::tip - If you are not using GPLPV drivers, you can skip the next several steps and continue from the rebooting into %%KVM|kvm%% mode section. - ::: @@ -360,9 +358,7 @@ If you are not using GPLPV drivers, you can skip the next several steps and cont After the reboot, purge all %%Xen|xen-hvm%% GPLPV drivers from your system using the comprehensive manual removal process documented in the [Xen Project Wiki](https://wiki.xenproject.org/wiki/Xen_Windows_GPLPV). :::caution - GPLPV removal requires extensive registry editing and manual file deletion. Follow the Xen Project Wiki instructions **exactly** as written, as errors can cause system instability or boot failures. - ::: @@ -407,9 +403,7 @@ GPLPV removal requires extensive registry editing and manual file deletion. Foll - Click **Update**. :::tip[Why the temporary disk?] - The 1MB temporary disk forces Unraid to assign the primary disk as `hda` (IDE) instead of `vda` (%%VirtIO|virtio%%), allowing Windows to boot without %%VirtIO|virtio%% drivers initially. This temporary disk will be removed after the driver installation. - ::: @@ -454,13 +448,11 @@ The 1MB temporary disk forces Unraid to assign the primary disk as `hda` (IDE) i - Click **Update** and reboot the VM. :::tip[Driver troubleshooting] - If you notice errors on devices after migration: 1. Reinstall the %%VirtIO|virtio%% drivers from the ISO. 2. Check for Windows updates, which may provide newer drivers. 3. Visit the [Red Hat VirtIO Drivers](https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/) page for the latest versions. - -::: + ::: 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 8a066bda2c..a913b6109f 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 @@ -317,10 +317,9 @@ Unraid now supports advanced GPU sharing via `VirGL` and `QXL` for Linux %%VMs|v - **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%%. - ::: + **Hyper-V extensions:** - For Windows %%VMs|vm%%, enable Hyper-V extensions for improved compatibility and performance. @@ -485,10 +484,9 @@ This section covers advanced topics and solutions for common issues when managin 6. The new capacity is now set. :::note - You cannot shrink a %%vDisk|vdisk%% from the Unraid GUI; only expansion is supported. - ::: +

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: @@ -509,9 +507,7 @@ This section covers advanced topics and solutions for common issues when managin Adjust device names as needed for your setup. :::tip - Always back up your %%VM|vm%% before making disk changes. - ::: @@ -534,9 +530,7 @@ This section covers advanced topics and solutions for common issues when managin 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. - ::: @@ -582,9 +576,7 @@ This section covers advanced topics and solutions for common issues when managin - 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). - ::: diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx index 1d25f37ad3..64523cba6c 100644 --- a/docs/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx @@ -5,6 +5,10 @@ sidebar_label: Windows on a VM import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import WindowsVirtioAutomatic from './partials/windows-virtio-automatic.mdx'; +import WindowsVirtioManual from './partials/windows-virtio-manual.mdx'; +import WindowsUpgradeInPlace from './partials/windows-upgrade-in-place.mdx'; +import WindowsUpgradeCleanInstall from './partials/windows-upgrade-clean-install.mdx'; # Windows on a VM @@ -37,32 +41,11 @@ To install or update drivers: - - 1. In ***Settings → VM Manager***, set a default %%VirtIO|virtio%% ISO path (e.g., `/mnt/user/isos/virtio-win.iso`). - 2. When creating a Windows %%VM|vm%%, the ISO will auto-attach as a virtual CD-ROM. - 3. During Windows setup, load drivers from the %%VirtIO|virtio%% ISO when prompted for storage controllers. - + - - 1. Download the [latest stable VirtIO drivers ISO](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso) and save it to your Unraid `isos` share. - - :::tip[Verify download integrity] - - Download the [CHECKSUM file](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/CHECKSUM) from the same directory to verify the ISO's integrity. This helps ensure your download is complete and hasn't been tampered with. - - ::: - - 2. Edit your %%VM|vm%% settings to point to the new ISO in the `isos` share. - - 3. In Windows Device Manager: - - Right-click devices with yellow warnings - - Select **Update driver → Browse my computer** - - Navigate to the %%VirtIO|virtio%% ISO drive (usually `D:\` or `E:\`) - - 4. Reboot after updating all drivers. - + @@ -214,9 +197,7 @@ RDP is not available on Windows Home editions. Always set a secure password for 4. From your client device, use a Microsoft RDP client to connect to the **IP address of the %%VM|vm%%** (not the Unraid server). :::tip - Official Microsoft RDP clients are available for Windows, Mac, Android, and iOS. Make sure your %%VM|vm%% is on a network bridge that allows LAN access. - ::: @@ -229,9 +210,7 @@ If you're having trouble with HDMI audio in a Windows %%VM|vm%% that uses %%GPU How to enable MSI interrupts - Click to expand/collapse :::caution - Back up your %%VM|vm%% before making any registry changes. Incorrect modifications can cause system instability. - ::: 1. **Verify MSI capability:** @@ -273,21 +252,11 @@ To add TPM support: - - 1. Download the [Windows 11 Installation Assistant](https://www.microsoft.com/en-us/software-download/windows11). - 2. Run the installer and follow the on-screen instructions. - 3. Reboot when prompted. - + - - 1. Download the [Windows 11 ISO](https://www.microsoft.com/en-us/software-download/windows11). - 2. Upload the ISO to your `isos` share on your Unraid server. - 3. Modify your %%VM|vm%% template to boot from the ISO in the `isos` share. - 4. Boot the %%VM|vm%% from the ISO and perform the fresh installation. - 5. Reinstall your applications and restore your data from backup. - + diff --git a/docs/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx b/docs/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx new file mode 100644 index 0000000000..c441a23e6a --- /dev/null +++ b/docs/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx @@ -0,0 +1,3 @@ +1. Restart your Unraid server. +2. At the boot menu, select **Unraid OS Safe Mode**. +3. Press Enter to continue. diff --git a/docs/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx b/docs/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx new file mode 100644 index 0000000000..44bf4522bd --- /dev/null +++ b/docs/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx @@ -0,0 +1,5 @@ +Preferred, as it doesn't even require a display connected to your server. + +1. In the **%%WebGUI|web-gui%%**, go to ***Main → Array Operation***. +2. Check the **Reboot in safe mode** box. +3. Click **Reboot** to restart your server directly into Safe Mode - no keyboard or monitor required. diff --git a/docs/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx b/docs/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx index d472a54efb..d3488a4dc6 100644 --- a/docs/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx +++ b/docs/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx @@ -5,6 +5,8 @@ sidebar_label: Plugins import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import SafeModePreferred from './partials/safe-mode-preferred.mdx'; +import SafeModeAlternative from './partials/safe-mode-alternative.mdx'; # Plugins @@ -64,20 +66,10 @@ To boot into safe mode: - - Preferred, as it doesn't even require a display connected to your server. - - 1. In the **%%WebGUI|web-gui%%**, go to ***Main → Array Operation***. - 2. Check the **Reboot in safe mode** box. - 3. Click **Reboot** to restart your server directly into Safe Mode - no keyboard or monitor required. - + - - 1. Restart your Unraid server. - 2. At the boot menu, select **Unraid OS Safe Mode**. - 3. Press Enter to continue. - + diff --git a/docs/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx b/docs/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx index d125866320..5d69da5b76 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx @@ -15,11 +15,19 @@ Apple’s Time Machine is a backup tool that comes with every Mac. It makes it e This guide applies to macOS Ventura (13.x), Sonoma (14.x), and Sequoia (15.x) versions. Some features, such as %%SMB|samba%% enhancements and Time Machine support over %%SMB|samba%%, require macOS versions that support these protocols. For the best results, keep your Mac updated to the latest version of macOS that is compatible with your hardware. - :::caution[macOS Sequoia (15.x) considerations] Some users report intermittent issues with Time Machine and network shares on macOS Sequoia. If you experience backup failures, consider using the [Time Machine Docker container](https://unraid.net/community/apps?q=time+machine#r) as an alternative. +::: +::: + +::: + +::: + +::: + ::: ## Creating a Time Machine share @@ -35,7 +43,6 @@ Ensure **%%SMB|samba%%** is enabled in the %%WebGUI|web-gui%%:
![Enhanced macOS interoperability](/img/enhancedmacos.png)
- ::: To create a Time Machine share: @@ -78,7 +85,6 @@ For more control over backup scheduling and options, consider using a third-part
![Time Machine Editor](/img/TimeMachineEditor.png)
- ::: ## Multiple Time Machine setups diff --git a/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx b/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx index 96b7f70440..503542c9c4 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx @@ -3,6 +3,22 @@ sidebar_position: 2 sidebar_label: Array configuration --- +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import AddDataDiskParityProtected from "./partials/add-data-disk-parity-protected.mdx"; +import AddDataDiskNoParity from "./partials/add-data-disk-no-parity.mdx"; +import ParitySwapWhat from "./partials/parity-swap-what.mdx"; +import ParitySwapWhen from "./partials/parity-swap-when.mdx"; +import RemoveDataDiskStandard from "./partials/remove-data-disk-standard.mdx"; +import RemoveDataDiskParityPreserve from "./partials/remove-data-disk-parity-preserve.mdx"; +import ArrayCheckParity from "./partials/array-check-parity.mdx"; +import ArrayCheckRead from "./partials/array-check-read.mdx"; +import TroubleshootMissingDisks from "./partials/troubleshoot-missing-disks.mdx"; +import TroubleshootDeviceLimit from "./partials/troubleshoot-device-limit.mdx"; +import TroubleshootLicenseIssues from "./partials/troubleshoot-license-issues.mdx"; +import TroubleshootKeyServer from "./partials/troubleshoot-key-server.mdx"; +import TroubleshootWithdrawnRelease from "./partials/troubleshoot-withdrawn-release.mdx"; + # Array configuration Unraid's storage system combines flexibility with data protection through its %%array|array%% and %%cache|cache%% architecture. The %%array|array%% manages your primary storage with optional %%parity|parity%% protection, while cache pools accelerate performance. @@ -201,84 +217,20 @@ When adding a new data disk, it must be the same size or smaller than your curre
How to add a data disk - - - - To add a data disk to a parity-protected array: - - 1. **Stop the array:** Use the Unraid %%WebGUI|web-gui%% to stop the array. - - 2. **Turn off your server:** Power down your server safely. - - 3. **Install the new hard drive(s):** Add the new disk(s) physically. - - 4. **Power the server back on:** Start your server again. - - 5. **Assign the new disk(s):** Use the %%WebGUI|web-gui%% to assign the new disks to available data slots. - - 6. **Start the array:** Start the array again. - - - Unraid will automatically start a **Clear operation** on the new disk. This fills the disk with zeros and ensures it's ready for use while maintaining data integrity. - - The clear operation takes place in the background, so you can still access your array. However, the new disk won't be usable until the process is complete and the disk is formatted. - - If you've pre-cleared the disk, Unraid will skip this step, recognizing that it's already ready to use. - - 7. **After Clearing Completes:** Once the clearing process is finished, the disk will show up as unmountable in the %%WebGUI|web-gui%%. You'll be prompted to format it. - - :::important - - Always double-check the serial number to make sure you're formatting the right disk. Formatting will erase everything on that disk, and this action cannot be undone. - - ::: - 8\. **Confirm the Format:** Check the confirmation box and click the **Format** button. Unraid will give you a warning about the outcomes of this action. - - 9. **Formatting Process:** The formatting will take a few minutes. Once it's completed, the disk will show as mounted and ready for use. It's normal to see a small amount of used space due to file system overhead. - - :::note - - You can add multiple disks, but they won't be usable until all of them have been cleared and formatted. - - ::: - - - - - - To add a data disk to an array without parity protection: - - 1. **Stop the array:** Use the Unraid %%WebGUI|web-gui%% to stop the array. - - 2. **Turn off your server:** Power down your server safely. - - 3. **Install the new hard drive(s):** Add the new disk(s) physically. - - 4. **Power the server back on:** Start your server again. - - 5. **Assign the new disk(s):** Use the %%WebGUI|web-gui%% to assign the new disks to available data slots. - - 6. **Start the array:** Start the array again. +```mdx-code-block - - The clearing step is skipped entirely when there is no %%parity disk|parity-drives%% in the array. - - 7. **Format the Disk:** The new disk will show up as unmountable in the %%WebGUI|web-gui%%. You'll be prompted to format it. - - :::important - - Always double-check the serial number to make sure you're formatting the right disk. Formatting will erase everything on that disk, and this action cannot be undone. - - ::: - 8\. **Confirm the Format:** Check the confirmation box and click the **Format** button. Unraid will give you a warning about the outcomes of this action. - - 9. **Formatting Process:** The formatting will take a few minutes. Once it's completed, the disk will show as mounted and ready for use. It's normal to see a small amount of used space due to file system overhead. - - :::note - - You can add multiple disks, but they won't be usable until all of them have been formatted. + + + + - ::: + + + - + +``` -
#### Adding parity disks @@ -404,6 +356,7 @@ To remove a parity drive: If your server supports hot-swap, you do not need to power down to change disks. You can safely skip steps 2 and 4. ::: + 2\. **Power down the server:** Turn off your server to safely make hardware changes. 3\. **Install the new %%parity disk|parity-drives%%:** Place the new, larger %%parity disk|parity-drives%% into your server. 4\. **Power up the server:** Turn the server back on. @@ -509,20 +462,16 @@ Some indications include: | **2 Disk Failures** | Data Lost | Data Lost | Rebuildable | :::tip[Tips for Safe Rebuilds] - - **For Single Parity:** You can only replace one disk at a time. If another disk fails during the rebuild, you could lose data. - **For Dual Parity:** You can replace one or two disks at the same time, but be cautious if more than two disks fail. - ::: :::important - If you experience a situation where **more disks fail than your parity can protect:** 1. **Immediately halt all write operations** to prevent further data loss. 2. Seek help by posting your issue in the [Unraid forums](https://forums.unraid.net/) along with diagnostics. 3. **Do not attempt a rebuild** until you've received advice - focus on salvaging your data first. - ::: @@ -537,11 +486,9 @@ To diagnose the issue, start by checking the %%syslog|syslog%% and %%SMART repor - %%SMART reports|smart-report%% can help assess the drive's health, but the best way to check is by running a %%SMART|smart%% extended test. If it completes without errors, the drive is likely fine. - If you see %%CRC errors|crc-errors%%, it usually points to issues with the cabling. Keep an eye on these errors, as they accumulate over time and don't reset. -:::tip - -To stay informed about drive issues, [enable notifications](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#notification-settings) in Unraid. This way, you are alerted right away if something goes wrong, reducing the risk to your data. - -::: + :::tip + To stay informed about drive issues, [enable notifications](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#notification-settings) in Unraid. This way, you are alerted right away if something goes wrong, reducing the risk to your data. + ::: @@ -564,9 +511,7 @@ When you need to replace a drive, make sure the new drive is at least as large a While it's not mandatory, many users choose to pre-clear new drives to test them and help prevent early failure. You can do this with the Preclear plugin, a %%SMART|smart%% extended test, or manufacturer tools. :::caution - If you try to rebuild using an unmountable %%emulated drive|emulated-disk%%, the new drive will also become unmountable. Always repair the file system before attempting a rebuild. - ::: @@ -696,19 +641,18 @@ This procedure works for both data drives and %%parity drives|parity-drives%% th #### Parity swap +```mdx-code-block + - - A %%parity swap|parity-swap%% is a special procedure in Unraid used when you need to replace a data disk with a disk that is larger than your current parity disk. The process moves your current parity disk to the data slot, then installs a new, larger disk as the new parity disk. This ensures your array remains protected and allows for larger data drives in the future. - + - - Use a %%parity swap|parity-swap%% when your replacement data drive is larger than your current parity disk. This is not necessary if your new data drive is the same size or smaller than your parity disk. - + +```
Example scenario @@ -740,6 +684,7 @@ This swap keeps your data secure and your array protected, allowing for future u ::: To carry out a parity swap: + :::note If the drive to be replaced is already disabled (failed), you may not need to perform steps 1–4. If you have already installed the new replacement drive (for example, after preclearing), you can skip steps 5–8. @@ -751,11 +696,13 @@ If the drive to be replaced is already disabled (failed), you may not need to pe 3. **Start the array.** If prompted, check the box confirming your action. The data drive should now show as "Not installed." 4. **Stop the array again.** At this point, the array treats the drive as failed. 5. **Power down the server.** - :::tip + :::tip If your system supports **hot-swap**, you do not need to power down to remove or install disks. Just make sure the array is stopped before making any hardware changes. + ::: ::: + 6\. _(Optional)_ **Remove the old drive.** You may wish to keep it installed for testing or reassignment. 7\. **Install the new drive.** Pre-clearing is strongly recommended, but formatting is not needed. 8\. **Power on the server.** @@ -815,123 +762,18 @@ You can choose from two methods to remove a data disk: 1. **Standard method** - Recommended for most users. 2. **Parity-preserve method** - Suitable for advanced users who want to maintain parity during the removal. +```mdx-code-block + - - This method is ideal for users looking for a simple way to remove a data disk. - - 1. **Stop the array:** Begin by stopping the array to safely remove the disk. - 2. **(Optional) Document Your disk assignments:** For your reference, you may want to take a screenshot of your current disk assignments from the Main tab. - 3. **Reset the array configuration:** Use the [Reset the array configuration](#reset-the-array-configuration) procedure. Be sure to choose the option to preserve all current assignments. - 4. **Unassign the disk:** Identify and unassign the disk you wish to remove. - 5. **Start the array:** After unassigning the disk, start the array again, but do not check the "Parity is valid" box. - - Once you start the array, a %%parity|parity%% sync will initiate if you have a %%parity disk|parity-drives%% assigned. Keep in mind that the array will be vulnerable to data loss until this sync completes. - - :::tip - - Move any important data off the disk before removal. The %%parity|parity%% sync process may take several hours, depending on disk size and system activity. - - ::: - + - - The parity-preserve method allows you to remove a data disk from your Unraid array without losing your parity protection. This process requires careful preparation and some technical knowledge and is only recommended for Advanced users. - -

What this method does

- - This method effectively zeros out the data disk you want to remove, allowing you to keep your parity intact. Since a disk filled with zeroes does not affect parity, your array remains protected throughout the procedure. - -

When to use this method

- - Use the %%parity|parity%%-preserve method to remove a data disk while keeping your %%parity|parity%% valid safely. This is especially useful to avoid a full %%parity|parity%% sync after removal. Please ensure that the disk you're removing is healthy. - - :::important[Prerequisites] - - Before you begin, ensure that you meet the following conditions: - - - The disk you want to remove must be healthy and mounted. - - This method allows you to remove only one disk at a time. - - Note that there is no official support from LimeTech for this process; please proceed with caution. - - ::: - - :::warning - - This method will erase all data on the selected disk. Please verify that all files, including hidden files, are removed before proceeding. - - ::: - To remove a disk using the parity-preserve method: - - 1. **Remove disk from shares:** Ensure the disk is excluded from all shares, including global share settings. - 2. **Start the array:** Start the array with the disk assigned and mounted. - 3. **Record array assignments:** Note your array assignments, especially the %%parity drive|parity-drives%%, as a safety measure. - 4. **(Optional) Enable Turbo Write:** For faster zeroing, enable Reconstruct Write ("Turbo Write") in **Settings → Disk Settings**, but only if all drives are healthy. - 5. **Zero out the disk:** Use the alternative command-line method below to manually zero out the disk. - 6. **Stop the array:** Once the clearing is complete, stop the array. - 7. **Reset array configuration:** Retain all current assignments when resetting the array configuration. - 8. **Unassign the disk:** Unassign the disk you wish to remove, double-checking all assignments, especially the %%parity drive|parity-drives%%. - 9. **Confirm parity status:** Check the box indicating "Parity is already valid." - 10. **Start the array again:** Start the array to finish the removal process. - 11. **(Optional) Verify parity:** You can run a correcting %%parity check|parity-check%% afterward to ensure parity integrity. - -
- **Alternative command-line method for zeroing a disk** - - If you're comfortable using the Linux command line, you can manually zero out your disk using the following instructions. Be sure to choose the command that corresponds with your version of Unraid. - - Since zeroing a disk can take many hours, it's recommended to use something like the [Tmux Terminal Manager TTM plugin](https://forums.unraid.net/topic/183427-plugin-tmux-terminal-manager-ttm/) to type the commands and make sure the session remains up. - - **For Unraid 6.12 or later:** - - 1. First, unmount the disk: - ```bash - umount /mnt/diskX - ``` - - 2. With newer releases we need to mount a dummy fs image in place of the disk that we unmounted, or the array won't stop in the end: - - ```bash - truncate -s 400M /tmp/xmini.img - mkfs.xfs -f /tmp/xmini.img > /dev/null - mount /tmp/xmini.img /mnt/diskX - ``` - - 3. Zero out the disk with the following command: - ```bash - dd bs=1M if=/dev/zero of=/dev/mdXp1 status=progress - ``` - - **For Unraid 6.11 and earlier:** - - 1. Start by unmounting the disk: - ```bash - umount /mnt/diskX - ``` - 2. Next, use this command to zero out the disk: - ```bash - dd bs=1M if=/dev/zero of=/dev/mdX status=progress - ``` - - :::note - - Remember to replace `X` with the specific number of the data disk you are removing. - - ::: - - :::caution - - Before executing these commands, double-check the drive number to avoid accidentally erasing data on the wrong disk. - - ::: - Don't hesitate to reach out to the [Unraid forums](https://forums.unraid.net/). There, you can find helpful resources and community support. - -
- +
+``` --- @@ -956,166 +798,18 @@ For convenience, you can schedule these checks to run automatically at intervals #### Parity & Read checks +```mdx-code-block + - - A %%parity check|parity-check%% is essential when your array includes at least one assigned parity device. During this process, all data disks are read simultaneously. The system recalculates the parity and compares it to the information stored on your %%parity disk(s)|parity-drives%%. - -
- In-depth: Parity sync vs. Parity check - What's the difference? - Click to expand/collapse - - A %%parity|parity%% sync reads all data disks and creates %%parity|parity%% from scratch, saving the results on the %%parity drives|parity-drives%%. This process typically happens when you add or replace a %%parity drives|parity-drives%% or after significant configuration changes. - - A %%parity check|parity-check%% reads all data disks along with the %%parity drives|parity-drives%%. It recalculates the %%parity|parity%% values and compares them to the stored values. There are two modes for running a %%parity check|parity-check%%: - - - **Correcting (CORRECT):** If it finds a mismatch, it updates the %%parity disk|parity-drives%% and logs the event. - - **Non-correcting (NOCORRECT):** Only logs any errors found without updating the parity. - - To avoid excessive logging, only the first 100 addresses with errors are reported during a %%parity check|parity-check%%. These mismatches are referred to as **sync errors** and indicate where the parity does not align with the data, typically due to issues such as sudden power losses or hardware problems. Each sync error is counted in 4KiB blocks - this is the system's I/O unit size (known as the Linux page size). - -
- -
- In-depth: What does "valid" mean for parity and array disks? - Click to expand/collapse - - A **valid %%parity disk|parity-drives%%** indicates that after the last successful %%parity|parity%% sync, Unraid recognized the %%parity|parity%% as "good," meaning it's suitable for data recovery if a disk fails. The "valid" status applies to every disk in the array, not just the %%parity|parity%% one. If all disks except one are valid, Unraid can reconstruct the missing or failed disk's data using %%parity|parity%%. - - Unraid maintains the %%parity disk|parity-drives%%'s "valid" status even when some sync errors occur following a non-correcting check. This ensures that you can still recover a failed disk. If the %%parity|parity%% were marked as invalid, you would risk having two invalid disks after just one additional failure, leading to potential data loss. - -
- - While a %%parity check|parity-check%% is in progress, you can still use the array. However, be aware that performance may slow down due to drive contention, as both file operations and the check will compete for resources. - - :::tip[Running checks without corrections] - - If you prefer to run a check without making corrections, simply uncheck **Write corrections to parity** before starting. This way, errors will be reported but not fixed. - - ::: - - #### Parity check types - - Unraid offers two types of parity checks, each suited for different scenarios: - - - - **Recommended for regular maintenance** - - **When to use:** For regular maintenance and when you want to fix any sync errors found - - Correcting checks: - - Update parity to match current array state - - Fix any sync errors automatically - - Are initiated after unsafe shutdowns - - Are the recommended default for regular maintenance - - :::tip - - Based on extensive testing, correcting checks are now recommended as the default for regular maintenance. - - ::: - - - - - - **When to use:** When you want to check for errors without making changes - - Non-correcting checks: - - Only report errors without making changes - - Won't corrupt parity if a data disk has bad sectors - - Useful for initial assessment before running correcting checks - - Good for troubleshooting scenarios - - :::note - - Non-correcting checks are useful for initial assessment, but correcting checks are now recommended for regular maintenance based on current testing. - - ::: - - - - - #### Parity errors - - %%Parity|parity%% errors occur when the %%parity|parity%% information your system calculates doesn't match what's stored on your %%parity drives|parity-drives%%. This mismatch can arise from: - - - Sudden power loss or unsafe shutdowns - - Failing drives or disk errors - - Problems with cables or connections - - Unclean shutdowns or unexpected system crashes - - Bad RAM, especially if new errors are found right after a correcting check - - When %%parity|parity%% errors occur, either the %%parity drives|parity-drives%% or the data disks could be out of sync. Ideally, a %%parity check|parity-check%% should report zero errors. - - #### Troubleshooting parity errors - - If your %%parity check|parity-check%% reveals errors: - - 1. **Investigate the problem:** Check %%SMART reports|smart-report%% for signs of disk or connection problems - 2. **Seek help:** Reach out to the Unraid forums for community insights - 3. **Run another check:** After addressing hardware issues, run another check to verify everything is working - - :::important[Automatic correcting checks after unsafe shutdowns] - - A correcting %%parity check|parity-check%% is automatically initiated after an "Unsafe Shutdown" - when the array is restarted without being properly stopped. This typically happens due to unexpected power loss, which can leave write operations incomplete. Using an uninterruptible power supply (UPS) is highly recommended to avoid this scenario. - - ::: - - :::info[Check duration] - - %%Parity checks|parity-check%% can take several hours, depending on disk size and system activity. For best results, schedule these checks during low-usage periods. - - ::: - +
- - A %%read check|read-check%% is an important task you should perform under certain conditions to ensure the health of your storage array. This check is necessary **if your array does not have any parity devices assigned** or **if you have more disabled drives than available parity drives**. - - During a %%read check|read-check%%, every sector of every disk in the array is examined. The goal is to verify that all data can be accessed and to identify any unrecoverable read errors. - -
- ![History lets you review stats on your read check operations](/img/History_button.PNG) -
- -

Why read checks matter

- - Read checks are essential for monitoring the health of your disks, especially in configurations without parity protection. If a disk encounters an unrecoverable read error during the check, the affected data cannot be retrieved, which could lead to data loss. Therefore, keeping an eye on the results of these checks is crucial, and taking action when errors are reported is necessary. - - You can also review the history of %%read check|read-check%% operations in the Unraid interface, which helps you spot trends or recurring issues over time. - -

When to use a read check

- - Consider running a %%read check|read-check%% in the following situations: - - - **No parity devices assigned:** When your array lacks parity protection. - - **Verifying disk integrity:** To confirm the integrity of each disk without making any corrections. - - **Post-hardware issue resolution:** After fixing hardware issues, to ensure all disks are healthy. - -

What to do if errors are found

- - If your %%read check|read-check%% reports errors, here are some steps to follow: - - 1. **Review SMART reports:** Check the %%SMART reports|smart-report%% for the affected disks to understand their health status. - 2. **Inspect connections:** Ensure that physical connections and cables are secure. - 3. **Consider replacements:** If a disk shows persistent errors, think about replacing it. - 4. **Backup critical data:** Move important data off any disks reporting errors as soon as possible to prevent data loss. - - :::warning - - Without parity protection, any unrecoverable read error will lead to permanent data loss for the affected files or sectors. - - ::: - - :::tip - - To maintain the health of your disks, it's wise to **schedule regular %%read checks|read-check%%**, especially if your array does not have parity protection. This proactive measure will help you catch potential issues early and safeguard your data. - - ::: - +
+``` #### Check history @@ -1289,11 +983,9 @@ Turbo write, also known as reconstruct write, is a feature designed to boost the - Turbo write isn't ideal for small or infrequent write operations since it causes all drives to spin up for every write, increasing power usage and wear on the drives. - If you suspect that any drive is failing or is unreliable, it's best to steer clear of turbo write since it relies on every drive being operational. -:::info - -Turbo write is best suited for bulk operations and scenarios requiring high throughput. However, it might not be the best choice for everyday tasks if you're focused on energy savings and minimizing drive wear. - -::: + :::info + Turbo write is best suited for bulk operations and scenarios requiring high throughput. However, it might not be the best choice for everyday tasks if you're focused on energy savings and minimizing drive wear. + :::
@@ -1322,11 +1014,9 @@ Once data is moved to the array, it is protected by parity. - With SSD cache: 50–110 MB/s. - With NVMe cache: 250–900 MB/s depending on network or drive constraints. -:::tip - -Consider using a cache pool (multiple devices) for added redundancy and data protection before the %%Mover|mover%% runs. - -::: + :::tip + Consider using a cache pool (multiple devices) for added redundancy and data protection before the %%Mover|mover%% runs. + ::: @@ -1414,108 +1104,32 @@ For more detailed information about %%cache pools|cache-pool%%, including how to ### Troubleshooting array start failures -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - If your array won't start, follow these steps to identify and fix common problems. Look for error messages under **_Main → Array Operation_**. +```mdx-code-block + - **Message:** - `Too many wrong and/or missing disks!` - - ![Single parity error](/img/Toomanywrong.png) - - With **one %%parity drive|parity-drives%%**, you can only have **one** missing disk. With two %%parity drives|parity-drives%%, **two** disks can be missing and you can still start the array, and so on. Parity helps until you can replace the missing disk. - - **What to Do:** - Replace the missing disk. For dual-parity configurations, replace the missing disks one at a time. - If you can't recover the data (or if more than 2 disks fail in a dual-parity setup), go to ***Tools → New Config*** to perform the New Config procedure. - + - **Message:** - `Too many attached devices. Please consider upgrading your registration key.` - - ![Device Limit Error](/img/Toomanydevices.png) - - The rules for connecting storage apply only before starting the array. After the array is started, you can add more storage, including USB drives for virtual machines. However, be aware that Unraid currently only limits the number of attached storage devices on the [**Starter license tier**](https://unraid.net/pricing) - (6 device limit). - - :::tip - - The maximum applies to all devices except the boot USB. - - ::: - To resolve this error: - - 1. Stop the array. - 2. Remove any unneeded storage devices. - 3. Start the array. - 4. Reconnect devices afterwards for **Unassigned Devices** use. - + - **Message:** - `Invalid or missing registration key.` - - ![Missing Key](/img/Invalidormissingkey.png) - - A valid registration key is required in order to start the array. To purchase or get a trial key: - - 1. Go to ***Tools → Registration***. - 2. Click **Get Trial Key** or **Purchase Key**. - 3. Install the key by returning to **Registration**, pasting in the field, and clicking the **Install Key** button. - - :::note[Trial vs. Paid Licenses] - - - **Trial License:** Full Unraid access for 30 days, just like the higher license tiers. You can use unlimited storage devices, but you'll need an internet connection to start it up. [Start a new trial here.](https://unraid.net/getting-started) - - - **Paid License:** This is yours to keep forever! However, there are limits on the number of devices based on the plan you choose (**Starter**, **Unleashed**, or **Lifetime**). After you activate it, you don't have to connect to the internet anymore. - - ::: - - :::tip - - If you see an "invalid key" error, it might mean your trial has **expired**. To keep using Unraid, you can [purchase a license here](https://unraid.net/pricing). - - ::: - - :::caution[Blacklisted USB flash devices] - - If your server is online and your trial hasn't run out, your USB flash drive might have a %%GUID|guid%% that can't register a key. This can happen if the %%GUID|guid%% isn't unique or has already registered by someone else. Using an SD card reader via USB can also cause this issue since it often has a generic %%GUID|guid%%. If your USB flash drive is **blacklisted**, it can't be used anymore, and you'll need to find a different device for your Unraid Server OS installation. - - ::: - + - **Message:** - `Cannot contact key-server` - - If you have a Trial license, you'll see a message indicating that you need to contact the Unraid license server to start your array. However, if you have a paid license, you can start the array without any extra steps. - - For Trial users, your server tries to connect to the license key server to check your license when it first boots up. If it can't connect within 30 seconds, the array won't start. But don't worry! Each time you refresh or navigate the %%WebGUI|web-gui%%, it will try again to validate your license quickly. Once it successfully validates, your server won't need to check again unless you reboot. - + - **Message:** `This Unraid release has been withdrawn.` - - If you see this message, it means you're using a beta or release candidate version of Unraid that isn't enabled for regular use. - - To resolve this: - - 1. Open Unraid. - 2. Go to ***Tools → Update OS***. - 3. Install the latest stable version. - - Once the update is complete, restart your server to start your array. - + +``` ### Disk failure during a rebuild diff --git a/docs/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx b/docs/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx index 31a0b600a3..c2824650a3 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx @@ -3,6 +3,17 @@ sidebar_position: 3 sidebar_label: Cache pools --- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RemoveDiskGui from './partials/remove-disk-gui.mdx'; +import RemoveDiskCommandLine from './partials/remove-disk-command-line.mdx'; +import PoolSingleDeviceMode from './partials/pool-single-device-mode.mdx'; +import PoolMultiDeviceMode from './partials/pool-multi-device-mode.mdx'; +import MovePoolToArray from './partials/move-pool-to-array.mdx'; +import MoveArrayToPool from './partials/move-array-to-pool.mdx'; +import MoveBetweenPoolsUsingMover from './partials/move-between-pools-using-mover.mdx'; +import MoveBetweenPoolsManual from './partials/move-between-pools-manual.mdx'; + # Cache pools In Unraid, a %%cache pool|cache-pool%% is a collection of one or more drives, typically SSDs or high-speed HDDs. These drives temporarily store data before it's moved to your main [%%array|array%%](./array-configuration.mdx). Using %%cache pools|cache-pool%% can significantly enhance write speeds, protect your data, and provide dedicated storage for specific tasks like running Docker containers or [%%virtual machines|vm%%](../create-virtual-machines/overview-and-system-prep.mdx). @@ -34,34 +45,13 @@ In Unraid, a %%cache pool|cache-pool%% is a collection of one or more drives, ty Unraid %%cache pools|cache-pool%% can operate in two main modes: **single device mode** and **multi-device mode**. Knowing the difference between these modes will help you find the right balance between performance, flexibility, and data protection for your needs. -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - In **single device mode**, your %%cache pool|cache-pool%% consists of only one device. This means: - - - **No redundancy:** If the device fails, any data stored on it that hasn't been transferred to your %%array|array%% will be lost. - - **File system options:** You can use file systems other than %%BTRFS|btrfs%%, like %%XFS|xfs%% or %%ZFS|zfs%%. - - :::important - - If you choose a non-%%BTRFS|btrfs%% or non-%%ZFS|zfs%% file system in single device mode and later decide to add more devices to the pool, you will need to reformat the device as %%BTRFS|btrfs%% or %%ZFS|zfs%% first. That's why %%BTRFS|btrfs%% is the default file system for %%cache pools|cache-pool%%, even when using just one device. Both %%BTRFS|btrfs%% and %%ZFS|zfs%% support adding devices later to create mirrored pools. For more information on file system selection and compatibility, see [File systems](./file-systems.mdx). - - ::: - Single device mode is straightforward. You can easily add or remove the device, but you won't have options for advanced features like redundancy or expansion. - + - - When you set up a %%cache pool|cache-pool%% with more than one device, it enters **multi-device mode**. Here's what you should know: - - - **Data protection:** This mode uses %%BTRFS|btrfs%% or %%ZFS|zfs%% to mirror data across devices, helping protect your cached data from drive failure. You can lose one device without losing any data. - - **Mix and match:** You can add or remove devices of different sizes and types, including mixing SSDs and HDDs. - - **Capacity management:** Use the [BTRFS disk usage calculator](http://carfax.org.uk/btrfs-usage/) to estimate how much space you'll have based on the %%RAID|raid%% level and sizes of the devices you're using. For %%ZFS|zfs%% pools, use the [ZFS storage guide](../../advanced-configurations/optimize-storage/zfs-storage.mdx) for configuration details. - + @@ -193,83 +183,11 @@ Removing a disk from a %%BTRFS|btrfs%% or %%ZFS|zfs%% multi-device %%cache pool| - :::note[Before you start] - - - You can only remove one drive at a time using the GUI. - - Make sure your pool is using a redundant %%RAID|raid%% profile (like %%RAID 1|raid1%% for both data and metadata). - - To check your pool's %%RAID|raid%% level, navigate to the Main tab and click on the pool. Scroll down to the Balance Status section (for %%BTRFS|btrfs%%) or ZFS pool status (for %%ZFS|zfs%%). - - ::: - To remove a disk using the %%WebGUI|web-gui%%: - - 1. **Stop the %%array|array%%**: Go to the **Main** tab and look for the option to stop your %%array|array%%. - 2. **Unassign the pool drive**: Find the drive you want to remove and unassign it in the **Main** tab. - 3. **Start the %%array|array%%**: Restart the %%array|array%% to apply the changes. - 4. **Verify removal**: Click on the first pool device in the **Main** tab, then check **Balance Status** (for %%BTRFS|btrfs%%) or **zpool status** (for %%ZFS|zfs%%) to confirm the device was correctly removed. - - :::note[Timing] - - Keep in mind that removing a drive and rebalancing the pool may take several hours, depending on how much data you have and your device speeds. - - ::: - + - - If you're comfortable with the command line, this method gives you more control and can be useful if the %%WebGUI|web-gui%% option isn't available. For more information on using the command line interface, see [Command line interface](../../system-administration/advanced-tools/command-line-interface.mdx). - - :::note[Before you start] - - - Ensure that your pool's %%RAID|raid%% profile allows device removal; you can't remove a device from a 2-device %%RAID 1|raid1%% pool without changing it to a single profile first. - - Check that remaining devices will have enough space for your data. - - ::: - To remove a disk using the command line: - - 1. **Open a terminal session**: Make sure the %%array|array%% is running and open your command line interface. - - 2. **Remove the device**: Type the command below, replacing `X` with the letter corresponding to the drive you want to remove (as shown in the Main tab): - - ```bash - btrfs device remove /dev/sdX1 /mnt/cache - ``` - - - For encrypted devices, use: `/dev/mapper/sdX1`. - - For NVMe devices, use: `nvmeXn1p1`. - - 3. **Wait for completion**: The device will be removed once you see the cursor return. - - 4. **Make Unraid "forget" the deleted member**: - - Stop the %%array|array%%. - - Unassign all pool devices. - - Start the %%array|array%% (Unraid will clear the pool configuration). - - If any Docker/%%VM|vm%% services use this pool, disable them before starting the %%array|array%% to prevent Unraid from recreating images elsewhere. - - 5. **Reassign devices**: Stop the %%array|array%% again, reassign all remaining pool members except the removed device, and then start the %%array|array%%. - - **To remove multiple devices**: - - You can do so in one command: - - ```bash - btrfs device remove /dev/sdX1 /dev/sdY1 /mnt/cache - ``` - - However, keep in mind that the removal will still occur one at a time. - - :::note[Timing] - - Similar to the %%WebGUI|web-gui%% method, removing devices and rebalancing may take several hours depending on data volume and device speed. - - ::: - - :::important - - If you have only one device left in the pool, you will need to convert the %%RAID|raid%% profile to **single** to ensure everything functions correctly. For further instructions, refer to the section on [Switching the Pool RAID Level to Single](#switching-the-pool-raid-level-to-single). - - ::: - + @@ -411,36 +329,11 @@ Always disable Docker and %%VM|vm%% services before moving files with the %%Move - :::info[Common use case] - - Moving files off the %%cache pool|cache-pool%% to the %%array|array%% before performing maintenance or upgrades to ensure your data is safe. - - ::: - To move files from your pool to the %%array|array%%: - - 1. **Disable Docker and %%VM|vm%% services**: Go to **Settings** and turn off Docker and %%VM|vm%% Manager. This prevents any files from being held open, allowing the %%Mover|mover%% to transfer everything smoothly. - 2. **Set share storage and Mover action (cache → array)**: In the **Shares** tab, for each share you want to move (like `appdata` or `system`), set **Primary storage** to the source %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. Set **Mover action** to **cache → array**. - 3. **Run %%Mover|mover%%**: Go to the **Main** tab and click **Move Now** to transfer files from the %%cache pool|cache-pool%% to the %%array|array%%. - 4. **Verify the move**: After the %%Mover|mover%% finishes, check that the files have been moved by clicking the folder icon next to the cache entry on the **Main** tab. - 5. **Re-enable Docker and %%VM|vm%% services**: Once all files are on the %%array|array%%, you can safely turn these services back on. - + - :::info[Common use case] - - Moving files back to the %%cache pool|cache-pool%% after maintenance or when you've added a new cache device to improve performance. - - ::: - To move files from the %%array|array%% to a pool: - - 1. **Disable Docker and %%VM|vm%% services**: Go to **Settings** and turn off Docker and %%VM|vm%% Manager to prevent any open files from interfering. - 2. **Set share storage and Mover action (array → cache)**: In the **Shares** tab, for each share you want to move (like `appdata` or `system`), set **Primary storage** to the destination %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. Set **Mover action** to **array → cache**. - 3. **Run the %%Mover|mover%%**: Go to the **Main** tab and click **Move Now** to start moving files from the %%array|array%% to the %%cache pool|cache-pool%%. - 4. **Verify the move**: After the %%Mover|mover%% finishes, check that the files are now on the %%cache pool|cache-pool%%. - 5. **Re-enable Docker and %%VM|vm%% services**: Once the move is complete, turn Docker and %%VM|vm%% Manager back on in **Settings**. - 6. **(Optional) Set share to use %%cache pool|cache-pool%% exclusively**: If you want all files for a share to remain on the %%cache pool|cache-pool%%, set the **Primary storage** to your %%cache pool|cache-pool%% and **Secondary storage** to **None** for that share. - + @@ -508,39 +401,11 @@ If any of the files belong to a Docker container and/or %%VM|vm%%, the services - - 1. **Disable Docker and %%VM|vm%% services**: Go to **Settings** and turn off Docker and %%VM|vm%% Manager to prevent open files. - 2. **Move files from pool1 to the %%array|array%% (cache → array)**: - - Go to the **Shares** tab. For each share that currently resides on pool1, set **Primary storage** to pool1 and **Secondary storage** to the %%array|array%%. - - Set **Mover action** to **cache → array**. - - In the **Main** tab, click **Move Now** to run %%Mover|mover%%. Wait for it to finish. - 3. **Move files from the %%array|array%% to pool2 (array → cache)**: - - In the **Shares** tab, set **Primary storage** to pool2 and **Secondary storage** to the %%array|array%% for each share. - - Set **Mover action** to **array → cache**. - - In the **Main** tab, click **Move Now** again. Files will move from the %%array|array%% to pool2. - 4. **Re-enable Docker and %%VM|vm%% services** (if needed). - - :::note[Timing] - - Moving large data sets can take hours, depending on file size and device speeds. - - ::: - + - - 1. **Disable Docker and %%VM|vm%% services** as described above. - 2. Use `rsync` or `mv` commands to transfer files between mount points (e.g., `/mnt/pool1/share` to `/mnt/pool2/share`). - 3. Verify the files before deleting them from the original pool. - 4. Re-enable Docker and %%VM|vm%% services. - - :::caution - - Always check your file paths and use the correct share names to prevent data loss. - - ::: - + diff --git a/docs/unraid-os/using-unraid-to/manage-storage/file-systems.mdx b/docs/unraid-os/using-unraid-to/manage-storage/file-systems.mdx index 06e19fc980..48414a3d3c 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/file-systems.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/file-systems.mdx @@ -17,35 +17,29 @@ Selecting the right file system for your Unraid %%array|array%% or %%cache pool| import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import FileSystemXfs from './partials/file-system-xfs.mdx'; +import FileSystemZfs from './partials/file-system-zfs.mdx'; +import FileSystemBtrfs from './partials/file-system-btrfs.mdx'; +import BtrfsBalance from './partials/btrfs-balance.mdx'; +import BtrfsScrub from './partials/btrfs-scrub.mdx'; +import FsCheckCliXfs from './partials/fs-check-cli-xfs.mdx'; +import FsCheckCliBtrfs from './partials/fs-check-cli-btrfs.mdx'; +import FsCheckCliZfs from './partials/fs-check-cli-zfs.mdx'; +import FsRepairCliXfs from './partials/fs-repair-cli-xfs.mdx'; +import FsRepairCliBtrfs from './partials/fs-repair-cli-btrfs.mdx'; +import FsRepairCliZfs from './partials/fs-repair-cli-zfs.mdx'; - **%%XFS|xfs%%** is the default file system for %%array|array%% drives in Unraid. It’s known for its robustness and ability to recover from corruption after unexpected shutdowns or crashes. Each drive formatted with %%XFS|xfs%% acts as a self-contained file system, making data recovery straightforward on any Linux system. - - - **Data protection:** No built-in redundancy; relies on Unraid's %%parity|parity%% for protection. - - **Performance:** Consistent and reliable. - - **Best for:** %%Array|array%% drives, especially when stability and ease of data recovery are priorities. - + - %%ZFS|zfs%% is a modern file system that comes with advanced features such as %%checksums|checksum%% to detect %%bit rot|bit-rot%%, %%snapshots|snapshot%% for backups, and native %%RAID|raid%% support options like %%RAIDZ1|raidz1%%/%%RAIDZ2|raidz2%%/%%RAIDZ3|raidz3%% and mirrors. %%ZFS|zfs%% can be utilized for both single-device and multi-device pools in Unraid 6.12 and later. - - - **Data protection:** Supports various %%RAID|raid%% levels for redundancy. - - **Performance:** Excellent, particularly for multi-device pools. - - **Best for:** High-performance environments, %%virtual machines|vm%%, Docker, or when advanced features like %%snapshots|snapshot%% are required. - - For a deep dive into %%ZFS|zfs%% features, configuration, and best practices, check out our dedicated section on [ZFS storage](../../advanced-configurations/optimize-storage/zfs-storage.mdx). - + - %%BTRFS|btrfs%% provides flexible %%RAID|raid%% support, %%checksums|checksum%% for data integrity, and efficient management of mixed-size drives in pools. It serves as the default file system for %%cache pools|cache-pool%% and supports both single-device and multi-device configurations. - - - **Data protection:** Supports %%RAID 0|raid0%%/%%1|raid1%%/%%10|raid10%%/%%5|raid5%%/%%6|raid6%% (note that %%RAID 5|raid5%%/%%6|raid6%% are still experimental). - - **Performance:** Good, with flexibility for expansion and contraction. - - **Best for:** %%Cache pools|cache-pool%%, especially if you plan to mix SSDs and HDDs or need an easy way to expand. - + @@ -257,55 +251,11 @@ Let’s break down what each operation does and when to use them: - - The **Balance** operation redistributes data and metadata chunks across your %%BTRFS|btrfs%% pool. This process helps free up space, resolves allocation issues, and can fix “no space left on device” errors even when space seems available. - -

When to run Balance

- - - When you encounter “no space left on device” errors but have free space. - - After adding or removing drives in a pool. - - To optimize space usage and improve performance. - -

How to run Balance

- - 1. **Access the pool**: In the %%WebGUI|web-gui%%, click on the pool in the **Main** tab and select **Balance**. - 2. **Add parameters (optional)**: Optionally, add parameters for advanced use (refer to Unraid Help for details). - 3. **Start the process**: Click **Start** to begin the process. - - :::note[Timing] - - Balance operations can take a few minutes to several hours, depending on the pool size and amount of data. - - ::: - +
- - The **Scrub** operation reads all data and metadata, checks the integrity of checksums, and repairs any corrupt blocks using available redundant copies. Scrubbing helps identify and fix silent data corruption, known as “bit rot,” before it becomes a significant issue. - -

When to run Scrub

- - - As part of routine maintenance (see recommended schedule below). - - After unclean shutdowns or if you suspect corruption. - - More frequently on high-usage pools. - -

Recommended schedule

- - - High-usage pools: **Once a week** - - All other pools: **Once a month** - -

How to run Scrub

- - 1. **Access the pool**: In the %%WebGUI|web-gui%%, click on the pool in the **Main** tab and select **Scrub**. - 2. **Start the process**: Click **Start** to initiate the process. - - :::note[Timing] - - Scrub operations are usually quicker than a full disk scan because they only check allocated data. Based on pool size and usage, expect this to take anywhere from a few minutes to a few hours. - - ::: - +
@@ -469,70 +419,15 @@ This automated system eliminates the need for users to manually enter repair opt - - To check an %%XFS|xfs%% file system via command line: - - - Start the %%array|array%% in **%%Maintenance Mode|maintenance-mode%%**. - - Run the following command: `xfs_repair -v /dev/mdXp1` - - Replace `X` with the disk number (e.g., `/dev/md1p1`). - - For encrypted %%XFS|xfs%%, use `/dev/mapper/mdXp1`. - - For drives not in the %%array|array%%: `xfs_repair -v /dev/sdX1` - - Ensure you are using the correct device identifier. - - :::warning - - Running this command on an %%array|array%% disk outside of **%%Maintenance Mode|maintenance-mode%%** will invalidate %%parity|parity%%. - - ::: - + - - To check a %%BTRFS|btrfs%% file system via command line: - - - To perform a %%scrub|scrub%% (which checks and repairs many errors automatically), start the %%array|array%% in **Normal mode** and run: `btrfs scrub start /mnt/diskX` - - For a read-only check, start the %%array|array%% in **%%Maintenance Mode|maintenance-mode%%** and run: `btrfs check --readonly /dev/mdXp1` - - Replace `X` with the disk number. - - For drives not in the %%array|array%%: `btrfs check --readonly /dev/sdX1` - - :::warning - - Running this command on an %%array|array%% disk outside of **%%Maintenance Mode|maintenance-mode%%** will invalidate %%parity|parity%%. - - ::: - + - - To check a %%ZFS|zfs%% file system via the command line: - -

Recommended method

- - %%ZFS|zfs%% uses **scrubbing** instead of traditional filesystem checks like `fsck`. A %%scrub|scrub%% examines all data in the pool to verify checksums and automatically repairs any corruption found on redundant configurations. - - - Start the %%array|array%% in **Normal mode** and run: `zpool scrub poolname` - - Replace `poolname` with your actual %%ZFS|zfs%% pool name. - -

Check pool status

- To view the current health and any ongoing %%scrub|scrub%% progress, use the command: `zpool status -v poolname` - - This command shows detailed information about pool health, any errors, and %%scrub|scrub%% progress. - -

Additional %%ZFS|zfs%% commands

- - - To pause a %%scrub|scrub%%: `zpool scrub -p poolname` - - To stop a %%scrub|scrub%%: `zpool scrub -s poolname` - - To list all pools: `zpool list` - - :::info - - %%ZFS|zfs%% does not require or support traditional `fsck` utilities. The transactional nature of %%ZFS|zfs%% means it moves atomically from one consistent state to another, making scrubbing the preferred method for integrity checking. - - ::: - For comprehensive guidance on %%ZFS|zfs%% file systems, check out the dedicated [ZFS storage section](../../advanced-configurations/optimize-storage/zfs-storage.mdx). - +
@@ -590,62 +485,15 @@ If you're uncertain about the output, copy and share it on the [Unraid forums](h - - - Start the %%array|array%% in **%%Maintenance Mode|maintenance-mode%%**. - - Run the following command: `xfs_repair /dev/mdXp1`. Replace `X` with the disk number (e.g., `/dev/md1p1`). - - For encrypted %%XFS|xfs%%, use: `/dev/mapper/mdXp1`. - - If you're prompted to use `-L`, re-run the command like this: `xfs_repair -L /dev/mdXp1`. This is usually safe and necessary to complete the repair. - - For drives that are not part of the %%array|array%%: `xfs_repair /dev/sdX1`. - - :::caution - - Running this command on an %%array|array%% disk outside of **%%Maintenance Mode|maintenance-mode%%** will invalidate parity. - - ::: - + - - - To perform a %%scrub|scrub%% (which detects and repairs many errors automatically), start the %%array|array%% in **Normal mode** and run: `btrfs scrub start /mnt/diskX`. - - For a full repair, start the %%array|array%% in **%%Maintenance Mode|maintenance-mode%%** and run: `btrfs check --repair /dev/mdXp1`. Only use `--repair` if advised by the [forums](https://forums.unraid.net/) or documentation, as it can sometimes lead to further issues. - - :::caution[Use `--repair` with caution] - - The `--repair` option can sometimes cause data loss or make corruption worse if used incorrectly. Only use it when: - - - You've consulted the [Unraid forums](https://forums.unraid.net/) for your specific error - - You have a recent backup of your data - - You understand the risks involved - - For most %%BTRFS|btrfs%% issues, try running a `scrub` first (which is safer) or seek expert advice before attempting repairs. - - ::: - + - %%ZFS|zfs%% pools offer built-in integrity checking and self-healing capabilities, which often eliminate the need for traditional file system repairs. - -

For %%ZFS|zfs%% pools

- - - **Check pool health:** Use the command `zpool status poolname` to see the status of your pool. - - **Run a scrub:** Execute `zpool scrub poolname`. This command detects and repairs any corruption automatically. - - **Clear errors:** After addressing any underlying issues, run `zpool clear poolname` to clear the error state. - -

For %%ZFS|zfs%% disks in the array

- - - **Check dataset health:** Use `zfs list -o name,health` to check the health of your datasets. - - **Run a scrub:** You can also run `zpool scrub poolname` for any disks belonging to a specific pool. - - %%ZFS|zfs%% automatically identifies and fixes data corruption when redundancy is available, such as in mirrors or %%RAIDZ1|raidz1%%/%%RAIDZ2|raidz2%%/%%RAIDZ3|raidz3%% configurations. Unlike traditional file systems, %%ZFS|zfs%% typically does not require manual repair commands because it continuously monitors data integrity with checksums. - - :::tip - - For a comprehensive understanding of %%ZFS|zfs%% management, troubleshooting, and advanced repair scenarios, refer to the dedicated [ZFS storage page](../../advanced-configurations/optimize-storage/zfs-storage.mdx) for detailed guides and best practices. - - ::: - +
diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx new file mode 100644 index 0000000000..d5729392ad --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx @@ -0,0 +1,23 @@ +To add a data disk to an array without parity protection: + +1. **Stop the array:** Use the Unraid %%WebGUI|web-gui%% to stop the array. + +2. **Turn off your server:** Power down your server safely. + +3. **Install the new hard drive(s):** Add the new disk(s) physically. + +4. **Power the server back on:** Start your server again. + +5. **Assign the new disk(s):** Use the %%WebGUI|web-gui%% to assign the new disks to available data slots. + +6. **Start the array:** Start the array again. + + - The clearing step is skipped entirely when there is no %%parity disk|parity-drives%% in the array. + +7. **Format the Disk:** The new disk will show up as unmountable in the %%WebGUI|web-gui%%. You'll be prompted to format it. + +:::important + +Always double-check the serial number to make sure you're formatting the right disk. Formatting will erase everything on that disk, and this action cannot be undone. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx new file mode 100644 index 0000000000..d0b53140dc --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx @@ -0,0 +1,34 @@ +To add a data disk to a parity-protected array: + +1. **Stop the array:** Use the Unraid %%WebGUI|web-gui%% to stop the array. + +2. **Turn off your server:** Power down your server safely. + +3. **Install the new hard drive(s):** Add the new disk(s) physically. + +4. **Power the server back on:** Start your server again. + +5. **Assign the new disk(s):** Use the %%WebGUI|web-gui%% to assign the new disks to available data slots. + +6. **Start the array:** Start the array again. + + - Unraid will automatically start a **Clear operation** on the new disk. This fills the disk with zeros and ensures it's ready for use while maintaining data integrity. + - The clear operation takes place in the background, so you can still access your array. However, the new disk won't be usable until the process is complete and the disk is formatted. + - If you've pre-cleared the disk, Unraid will skip this step, recognizing that it's already ready to use. + +7. **After Clearing Completes:** Once the clearing process is finished, the disk will show up as unmountable in the %%WebGUI|web-gui%%. You'll be prompted to format it. + +:::important + +Always double-check the serial number to make sure you're formatting the right disk. Formatting will erase everything on that disk, and this action cannot be undone. + +::: + +8. **Confirm the Format:** Check the confirmation box and click the **Format** button. Unraid will give you a warning about the outcomes of this action. +9. **Formatting Process:** The formatting will take a few minutes. Once it's completed, the disk will show as mounted and ready for use. It's normal to see a small amount of used space due to file system overhead. + +:::note + +You can add multiple disks, but they won't be usable until all of them have been cleared and formatted. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx new file mode 100644 index 0000000000..01733f4d24 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx @@ -0,0 +1,65 @@ +A %%parity check|parity-check%% is essential when your array includes at least one assigned parity device. During this process, all data disks are read simultaneously. The system recalculates the parity and compares it to the information stored on your %%parity disk(s)|parity-drives%%. + +
+ In-depth: Parity sync vs. Parity check - What's the difference? - Click to expand/collapse + + A %%parity|parity%% sync reads all data disks and creates %%parity|parity%% from scratch, saving the results on the %%parity drives|parity-drives%%. This process typically happens when you add or replace a %%parity drives|parity-drives%% or after significant configuration changes. + + A %%parity check|parity-check%% reads all data disks along with the %%parity drives|parity-drives%%. It recalculates the %%parity|parity%% values and compares them to the stored values. There are two modes for running a %%parity check|parity-check%%: + + - **Correcting (CORRECT):** If it finds a mismatch, it updates the %%parity disk|parity-drives%% and logs the event. + - **Non-correcting (NOCORRECT):** Only logs any errors found without updating the parity. + + To avoid excessive logging, only the first 100 addresses with errors are reported during a %%parity check|parity-check%%. These mismatches are referred to as **sync errors** and indicate where the parity does not align with the data, typically due to issues such as sudden power losses or hardware problems. Each sync error is counted in 4KiB blocks - this is the system's I/O unit size (known as the Linux page size). + +
+ +
+ In-depth: What does "valid" mean for parity and array disks? - Click to expand/collapse + + A **valid %%parity disk|parity-drives%%** indicates that after the last successful %%parity|parity%% sync, Unraid recognized the %%parity|parity%% as "good," meaning it's suitable for data recovery if a disk fails. The "valid" status applies to every disk in the array, not just the %%parity|parity%% one. If all disks except one are valid, Unraid can reconstruct the missing or failed disk's data using %%parity|parity%%. + + Unraid maintains the %%parity disk|parity-drives%%'s "valid" status even when some sync errors occur following a non-correcting check. This ensures that you can still recover a failed disk. If the %%parity|parity%% were marked as invalid, you would risk having two invalid disks after just one additional failure, leading to potential data loss. + +
+ +While a %%parity check|parity-check%% is in progress, you can still use the array. However, be aware that performance may slow down due to drive contention, as both file operations and the check will compete for resources. + +Normally, if the %%parity check|parity-check%% identifies errors, Unraid will update the %%parity disk|parity-drives%% to align with the computed data and increment the Sync Errors counter. + +:::tip + +If you prefer to run a check without making corrections, simply uncheck **Write corrections to parity** before starting. This way, errors will be reported but not fixed. + +::: + +:::important + +After an "Unsafe Shutdown"—when the array is restarted without being properly stopped—Unraid automatically initiates a %%parity check|parity-check%% using the mode configured under **Settings → Scheduler → Parity Check** (non-correcting by default). To change how the automatic check runs, open **Settings → Scheduler → Parity Check** and adjust the options there. Unexpected power loss is the most common trigger for an unsafe shutdown, so using an uninterruptible power supply (UPS) is strongly recommended to protect your data. + +::: + +

What are parity errors?

+ +%%Parity|parity%% errors happen when the %%parity|parity%% information your system calculates doesn't match what's stored on your %%parity drives|parity-drives%%. This mismatch can arise from several issues, including: + +- Sudden power loss or unsafe shutdowns +- Failing drives or disk errors +- Problems with cables or connections +- Unclean shutdowns or unexpected system crashes + +When %%parity|parity%% errors occur, either the %%parity drives|parity-drives%% or the data disks could be out of sync. Ideally, a %%parity check|parity-check%% should report zero errors so everything functions correctly. + +

What to do if you encounter %%parity|parity%% errors

+ +If your %%parity check|parity-check%% reveals errors: + +1. **Investigate the problem:** Start by checking %%SMART reports|smart-report%%, which provide detailed information about your drives' health. Look for any signs of disk or connection problems. +2. **Seek help from our forums:** If you cannot resolve the issue on your own, consider reaching out for advice on the Unraid forums. The community can offer valuable insights and suggestions based on their experiences. +3. **Run another check:** After you've addressed any hardware issues, running another %%parity check|parity-check%% is a good idea to ensure everything is back in order. + +:::info[Rebuild Time] + +Remember that %%parity checks|parity-check%% can take several hours, depending on the size of your disks and the activity level of your system. For the best results, schedule these checks during times of low system usage. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx new file mode 100644 index 0000000000..7067875830 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx @@ -0,0 +1,42 @@ +A %%read check|read-check%% is an important task you should perform under certain conditions to ensure the health of your storage array. This check is necessary **if your array does not have any parity devices assigned** or **if you have more disabled drives than available parity drives**. + +During a %%read check|read-check%%, every sector of every disk in the array is examined. The goal is to verify that all data can be accessed and to identify any unrecoverable read errors. + +
+ ![History lets you review stats on your read check operations](/img/History_button.PNG) +
+ +

Why read checks matter

+ +Read checks are essential for monitoring the health of your disks, especially in configurations without parity protection. If a disk encounters an unrecoverable read error during the check, the affected data cannot be retrieved, which could lead to data loss. Therefore, keeping an eye on the results of these checks is crucial, and taking action when errors are reported is necessary. + +You can also review the history of %%read check|read-check%% operations in the Unraid interface, which helps you spot trends or recurring issues over time. + +

When to use a read check

+ +Consider running a %%read check|read-check%% in the following situations: + +- **No parity devices assigned:** When your array lacks parity protection. +- **Verifying disk integrity:** To confirm the integrity of each disk without making any corrections. +- **Post-hardware issue resolution:** After fixing hardware issues, to ensure all disks are healthy. + +

What to do if errors are found

+ +If your %%read check|read-check%% reports errors, here are some steps to follow: + +1. **Review SMART reports:** Check the %%SMART reports|smart-report%% for the affected disks to understand their health status. +2. **Inspect connections:** Ensure that physical connections and cables are secure. +3. **Consider replacements:** If a disk shows persistent errors, think about replacing it. +4. **Backup critical data:** Move important data off any disks reporting errors as soon as possible to prevent data loss. + +:::warning + +Without parity protection, any unrecoverable read error will lead to permanent data loss for the affected files or sectors. + +::: + +:::tip + +To maintain the health of your disks, it's wise to **schedule regular %%read checks|read-check%%**, especially if your array does not have parity protection. This proactive measure will help you catch potential issues early and safeguard your data. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx new file mode 100644 index 0000000000..051342bcf8 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx @@ -0,0 +1,19 @@ +The **Balance** operation redistributes data and metadata chunks across your %%BTRFS|btrfs%% pool. This process helps free up space, resolves allocation issues, and can fix “no space left on device” errors even when space seems available. + +

When to run Balance

+ +- When you encounter “no space left on device” errors but have free space. +- After adding or removing drives in a pool. +- To optimize space usage and improve performance. + +

How to run Balance

+ +1. **Access the pool**: In the %%WebGUI|web-gui%%, click on the pool in the **Main** tab and select **Balance**. +2. **Add parameters (optional)**: Optionally, add parameters for advanced use (refer to Unraid Help for details). +3. **Start the process**: Click **Start** to begin the process. + +:::note[Timing] + +Balance operations can take a few minutes to several hours, depending on the pool size and amount of data. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx new file mode 100644 index 0000000000..57dc60d494 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx @@ -0,0 +1,23 @@ +The **Scrub** operation reads all data and metadata, checks the integrity of checksums, and repairs any corrupt blocks using available redundant copies. Scrubbing helps identify and fix silent data corruption, known as “bit rot,” before it becomes a significant issue. + +

When to run Scrub

+ +- As part of routine maintenance (see recommended schedule below). +- After unclean shutdowns or if you suspect corruption. +- More frequently on high-usage pools. + +

Recommended schedule

+ +- High-usage pools: **Once a week** +- All other pools: **Once a month** + +

How to run Scrub

+ +1. **Access the pool**: In the %%WebGUI|web-gui%%, click on the pool in the **Main** tab and select **Scrub**. +2. **Start the process**: Click **Start** to initiate the process. + +:::note[Timing] + +Scrub operations are usually quicker than a full disk scan because they only check allocated data. Based on pool size and usage, expect this to take anywhere from a few minutes to a few hours. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx new file mode 100644 index 0000000000..2365ebce7a --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx @@ -0,0 +1,5 @@ +%%BTRFS|btrfs%% provides flexible %%RAID|raid%% support, %%checksums|checksum%% for data integrity, and efficient management of mixed-size drives in pools. It serves as the default file system for %%cache pools|cache-pool%% and supports both single-device and multi-device configurations. + +- **Data protection:** Supports %%RAID 0|raid0%%/%%1|raid1%%/%%10|raid10%%/%%5|raid5%%/%%6|raid6%% (note that %%RAID 5|raid5%%/%%6|raid6%% are still experimental). +- **Performance:** Good, with flexibility for expansion and contraction. +- **Best for:** %%Cache pools|cache-pool%%, especially if you plan to mix SSDs and HDDs or need an easy way to expand. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx new file mode 100644 index 0000000000..b5420ff809 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx @@ -0,0 +1,5 @@ +**%%XFS|xfs%%** is the default file system for %%array|array%% drives in Unraid. It’s known for its robustness and ability to recover from corruption after unexpected shutdowns or crashes. Each drive formatted with %%XFS|xfs%% acts as a self-contained file system, making data recovery straightforward on any Linux system. + +- **Data protection:** No built-in redundancy; relies on Unraid's %%parity|parity%% for protection. +- **Performance:** Consistent and reliable. +- **Best for:** %%Array|array%% drives, especially when stability and ease of data recovery are priorities. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx new file mode 100644 index 0000000000..cbcf54a881 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx @@ -0,0 +1,7 @@ +%%ZFS|zfs%% is a modern file system that comes with advanced features such as %%checksums|checksum%% to detect %%bit rot|bit-rot%%, %%snapshots|snapshot%% for backups, and native %%RAID|raid%% support options like %%RAIDZ1|raidz1%%/%%RAIDZ2|raidz2%%/%%RAIDZ3|raidz3%% and mirrors. %%ZFS|zfs%% can be utilized for both single-device and multi-device pools in Unraid 6.12 and later. + +- **Data protection:** Supports various %%RAID|raid%% levels for redundancy. +- **Performance:** Excellent, particularly for multi-device pools. +- **Best for:** High-performance environments, %%virtual machines|vm%%, Docker, or when advanced features like %%snapshots|snapshot%% are required. + +For a deep dive into %%ZFS|zfs%% features, configuration, and best practices, check out our dedicated section on [ZFS storage](../../../advanced-configurations/optimize-storage/zfs-storage.mdx). diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx new file mode 100644 index 0000000000..d5354ed40b --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx @@ -0,0 +1,12 @@ +To check a %%BTRFS|btrfs%% file system via command line: + +- To perform a %%scrub|scrub%% (which checks and repairs many errors automatically), start the %%array|array%% in **Normal mode** and run: `btrfs scrub start /mnt/diskX` +- For a read-only check, start the %%array|array%% in **%%Maintenance Mode|maintenance-mode%%** and run: `btrfs check --readonly /dev/mdXp1` +- Replace `X` with the disk number. +- For drives not in the %%array|array%%: `btrfs check --readonly /dev/sdX1` + +:::warning + +Running this command on an %%array|array%% disk outside of **%%Maintenance Mode|maintenance-mode%%** will invalidate %%parity|parity%%. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx new file mode 100644 index 0000000000..4a87d00edc --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx @@ -0,0 +1,14 @@ +To check an %%XFS|xfs%% file system via command line: + +- Start the %%array|array%% in **%%Maintenance Mode|maintenance-mode%%**. +- Run the following command: `xfs_repair -v /dev/mdXp1` +- Replace `X` with the disk number (e.g., `/dev/md1p1`). +- For encrypted %%XFS|xfs%%, use `/dev/mapper/mdXp1`. +- For drives not in the %%array|array%%: `xfs_repair -v /dev/sdX1` +- Ensure you are using the correct device identifier. + +:::warning + +Running this command on an %%array|array%% disk outside of **%%Maintenance Mode|maintenance-mode%%** will invalidate %%parity|parity%%. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx new file mode 100644 index 0000000000..77e14646c8 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx @@ -0,0 +1,27 @@ +To check a %%ZFS|zfs%% file system via the command line: + +

Recommended method

+ +%%ZFS|zfs%% uses **scrubbing** instead of traditional filesystem checks like `fsck`. A %%scrub|scrub%% examines all data in the pool to verify checksums and automatically repairs any corruption found on redundant configurations. + +- Start the %%array|array%% in **Normal mode** and run: `zpool scrub poolname` + - Replace `poolname` with your actual %%ZFS|zfs%% pool name. + +

Check pool status

+To view the current health and any ongoing %%scrub|scrub%% progress, use the command: `zpool status -v poolname` + +This command shows detailed information about pool health, any errors, and %%scrub|scrub%% progress. + +

Additional %%ZFS|zfs%% commands

+ +- To pause a %%scrub|scrub%%: `zpool scrub -p poolname` +- To stop a %%scrub|scrub%%: `zpool scrub -s poolname` +- To list all pools: `zpool list` + +:::info + +%%ZFS|zfs%% does not require or support traditional `fsck` utilities. The transactional nature of %%ZFS|zfs%% means it moves atomically from one consistent state to another, making scrubbing the preferred method for integrity checking. + +::: + +For comprehensive guidance on %%ZFS|zfs%% file systems, check out the dedicated [ZFS storage section](../../../advanced-configurations/optimize-storage/zfs-storage.mdx). diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx new file mode 100644 index 0000000000..ec9d0b88ec --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx @@ -0,0 +1,14 @@ +- To perform a %%scrub|scrub%% (which detects and repairs many errors automatically), start the %%array|array%% in **Normal mode** and run: `btrfs scrub start /mnt/diskX`. +- For a full repair, start the %%array|array%% in **%%Maintenance Mode|maintenance-mode%%** and run: `btrfs check --repair /dev/mdXp1`. Only use `--repair` if advised by the [forums](https://forums.unraid.net/) or documentation, as it can sometimes lead to further issues. + +:::caution[Use `--repair` with caution] + +The `--repair` option can sometimes cause data loss or make corruption worse if used incorrectly. Only use it when: + +- You've consulted the [Unraid forums](https://forums.unraid.net/) for your specific error +- You have a recent backup of your data +- You understand the risks involved + +For most %%BTRFS|btrfs%% issues, try running a `scrub` first (which is safer) or seek expert advice before attempting repairs. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx new file mode 100644 index 0000000000..165d8a2826 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx @@ -0,0 +1,11 @@ +- Start the %%array|array%% in **%%Maintenance Mode|maintenance-mode%%**. +- Run the following command: `xfs_repair /dev/mdXp1`. Replace `X` with the disk number (e.g., `/dev/md1p1`). +- For encrypted %%XFS|xfs%%, use: `/dev/mapper/mdXp1`. +- If you're prompted to use `-L`, re-run the command like this: `xfs_repair -L /dev/mdXp1`. This is usually safe and necessary to complete the repair. +- For drives that are not part of the %%array|array%%: `xfs_repair /dev/sdX1`. + +:::caution + +Running this command on an %%array|array%% disk outside of **%%Maintenance Mode|maintenance-mode%%** will invalidate parity. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx new file mode 100644 index 0000000000..63d8263dec --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx @@ -0,0 +1,20 @@ +%%ZFS|zfs%% pools offer built-in integrity checking and self-healing capabilities, which often eliminate the need for traditional file system repairs. + +

For %%ZFS|zfs%% pools

+ +- **Check pool health:** Use the command `zpool status poolname` to see the status of your pool. +- **Run a scrub:** Execute `zpool scrub poolname`. This command detects and repairs any corruption automatically. +- **Clear errors:** After addressing any underlying issues, run `zpool clear poolname` to clear the error state. + +

For %%ZFS|zfs%% disks in the array

+ +- **Check dataset health:** Use `zfs list -o name,health` to check the health of your datasets. +- **Run a scrub:** You can also run `zpool scrub poolname` for any disks belonging to a specific pool. + +%%ZFS|zfs%% automatically identifies and fixes data corruption when redundancy is available, such as in mirrors or %%RAIDZ1|raidz1%%/%%RAIDZ2|raidz2%%/%%RAIDZ3|raidz3%% configurations. Unlike traditional file systems, %%ZFS|zfs%% typically does not require manual repair commands because it continuously monitors data integrity with checksums. + +:::tip + +For a comprehensive understanding of %%ZFS|zfs%% management, troubleshooting, and advanced repair scenarios, refer to the dedicated [ZFS storage page](../../../advanced-configurations/optimize-storage/zfs-storage.mdx) for detailed guides and best practices. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx new file mode 100644 index 0000000000..62b0a6af56 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx @@ -0,0 +1,14 @@ +:::info[Common use case] + +Moving files back to the %%cache pool|cache-pool%% after maintenance or when you've added a new cache device to improve performance. + +::: + +To move files from the %%array|array%% to a pool: + +1. **Disable Docker and %%VM|vm%% services**: Go to **Settings** and turn off Docker and %%VM|vm%% Manager to prevent any open files from interfering. +2. **Set share storage and Mover action (array → cache)**: In the **Shares** tab, for each share you want to move (like `appdata` or `system`), set **Primary storage** to the destination %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. Set **Mover action** to **array → cache**. +3. **Run the %%Mover|mover%%**: Go to the **Main** tab and click **Move Now** to start moving files from the %%array|array%% to the %%cache pool|cache-pool%%. +4. **Verify the move**: After the %%Mover|mover%% finishes, check that the files are now on the %%cache pool|cache-pool%%. +5. **Re-enable Docker and %%VM|vm%% services**: Once the move is complete, turn Docker and %%VM|vm%% Manager back on in **Settings**. +6. **(Optional) Set share to use %%cache pool|cache-pool%% exclusively**: If you want all files for a share to remain on the %%cache pool|cache-pool%%, set the **Primary storage** to your %%cache pool|cache-pool%% and **Secondary storage** to **None** for that share. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx new file mode 100644 index 0000000000..1525838e4a --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx @@ -0,0 +1,10 @@ +1. **Disable Docker and %%VM|vm%% services** as described above. +2. Use `rsync` or `mv` commands to transfer files between mount points (e.g., `/mnt/pool1/share` to `/mnt/pool2/share`). +3. Verify the files before deleting them from the original pool. +4. Re-enable Docker and %%VM|vm%% services. + +:::caution + +Always check your file paths and use the correct share names to prevent data loss. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx new file mode 100644 index 0000000000..a15edc3619 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx @@ -0,0 +1,16 @@ +1. **Disable Docker and %%VM|vm%% services**: Go to **Settings** and turn off Docker and %%VM|vm%% Manager to prevent open files. +2. **Move files from pool1 to the %%array|array%% (cache → array)**: + - Go to the **Shares** tab. For each share that currently resides on pool1, set **Primary storage** to pool1 and **Secondary storage** to the %%array|array%%. + - Set **Mover action** to **cache → array**. + - In the **Main** tab, click **Move Now** to run %%Mover|mover%%. Wait for it to finish. +3. **Move files from the %%array|array%% to pool2 (array → cache)**: + - In the **Shares** tab, set **Primary storage** to pool2 and **Secondary storage** to the %%array|array%% for each share. + - Set **Mover action** to **array → cache**. + - In the **Main** tab, click **Move Now** again. Files will move from the %%array|array%% to pool2. +4. **Re-enable Docker and %%VM|vm%% services** (if needed). + +:::note[Timing] + +Moving large data sets can take hours, depending on file size and device speeds. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx new file mode 100644 index 0000000000..01b8236527 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx @@ -0,0 +1,13 @@ +:::info[Common use case] + +Moving files off the %%cache pool|cache-pool%% to the %%array|array%% before performing maintenance or upgrades to ensure your data is safe. + +::: + +To move files from your pool to the %%array|array%%: + +1. **Disable Docker and %%VM|vm%% services**: Go to **Settings** and turn off Docker and %%VM|vm%% Manager. This prevents any files from being held open, allowing the %%Mover|mover%% to transfer everything smoothly. +2. **Set share storage and Mover action (cache → array)**: In the **Shares** tab, for each share you want to move (like `appdata` or `system`), set **Primary storage** to the source %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. Set **Mover action** to **cache → array**. +3. **Run %%Mover|mover%%**: Go to the **Main** tab and click **Move Now** to transfer files from the %%cache pool|cache-pool%% to the %%array|array%%. +4. **Verify the move**: After the %%Mover|mover%% finishes, check that the files have been moved by clicking the folder icon next to the cache entry on the **Main** tab. +5. **Re-enable Docker and %%VM|vm%% services**: Once all files are on the %%array|array%%, you can safely turn these services back on. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx new file mode 100644 index 0000000000..7c1390e802 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx @@ -0,0 +1 @@ +A %%parity swap|parity-swap%% is a special procedure in Unraid used when you need to replace a data disk with a disk that is larger than your current parity disk. The process moves your current parity disk to the data slot, then installs a new, larger disk as the new parity disk. This ensures your array remains protected and allows for larger data drives in the future. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx new file mode 100644 index 0000000000..9e099b6b5d --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx @@ -0,0 +1 @@ +Use a %%parity swap|parity-swap%% when your replacement data drive is larger than your current parity disk. This is not necessary if your new data drive is the same size or smaller than your parity disk. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx new file mode 100644 index 0000000000..6124c334ca --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx @@ -0,0 +1,5 @@ +When you set up a %%cache pool|cache-pool%% with more than one device, it enters **multi-device mode**. Here's what you should know: + +- **Data protection:** This mode uses %%BTRFS|btrfs%% or %%ZFS|zfs%% to mirror data across devices, helping protect your cached data from drive failure. You can lose one device without losing any data. +- **Mix and match:** You can add or remove devices of different sizes and types, including mixing SSDs and HDDs. +- **Capacity management:** Use the [BTRFS disk usage calculator](http://carfax.org.uk/btrfs-usage/) to estimate how much space you'll have based on the %%RAID|raid%% level and sizes of the devices you're using. For %%ZFS|zfs%% pools, use the [ZFS storage guide](../../../advanced-configurations/optimize-storage/zfs-storage.mdx) for configuration details. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx new file mode 100644 index 0000000000..f62a0fc3af --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx @@ -0,0 +1,12 @@ +In **single device mode**, your %%cache pool|cache-pool%% consists of only one device. This means: + +- **No redundancy:** If the device fails, any data stored on it that hasn't been transferred to your %%array|array%% will be lost. +- **File system options:** You can use file systems other than %%BTRFS|btrfs%%, like %%XFS|xfs%% or %%ZFS|zfs%%. + +:::important + +If you choose a non-%%BTRFS|btrfs%% or non-%%ZFS|zfs%% file system in single device mode and later decide to add more devices to the pool, you will need to reformat the device as %%BTRFS|btrfs%% or %%ZFS|zfs%% first. That's why %%BTRFS|btrfs%% is the default file system for %%cache pools|cache-pool%%, even when using just one device. Both %%BTRFS|btrfs%% and %%ZFS|zfs%% support adding devices later to create mirrored pools. For more information on file system selection and compatibility, see [File systems](../file-systems.mdx). + +::: + +Single device mode is straightforward. You can easily add or remove the device, but you won't have options for advanced features like redundancy or expansion. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx new file mode 100644 index 0000000000..f03ca73908 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx @@ -0,0 +1,79 @@ +The parity-preserve method allows you to remove a data disk from your Unraid array without losing your parity protection. This process requires careful preparation and some technical knowledge and is only recommended for advanced users. + +

What this method does

+ +This method effectively zeros out the data disk you want to remove, allowing you to keep your parity intact. Since a disk filled with zeroes does not affect parity, your array remains protected throughout the procedure. + +

When to use this method

+ +Use the %%parity|parity%%-preserve method to remove a data disk while keeping your %%parity|parity%% valid safely. This is especially useful to avoid a full %%parity|parity%% sync after removal. Please ensure that the disk you're removing is healthy. + +:::important[Prerequisites] + +Before you begin, ensure that you meet the following conditions: + +- This method allows you to remove only one disk at a time. +- Note that there is no official support from LimeTech for this process; please proceed with caution. + +::: + +:::warning + +This method will erase all data on the selected disk. Please verify that all important data has been moved before proceeding. + +::: + +To remove a disk using the parity-preserve method: + +1. **Start the array in maintenance mode:** Click on the disk you want to remove and then click the **Erase** button. This will erase the file system from the device while still maintaining parity, then stop the array. +2. **Start the array:** Start the array in normal mode; the disk to be erased won't mount but the remaining disks will be online during the process. +3. **Record array assignments:** Note your array assignments, especially the %%parity drive|parity-drives%%, as a safety measure. +4. **(Optional) Enable Turbo Write:** For faster zeroing, enable Reconstruct Write ("Turbo Write") in **Settings → Disk Settings**, but only if all drives are healthy. +5. **Zero out the disk:** Use the alternative command-line method below to manually zero out the disk. +6. **Stop the array:** Once the clearing is complete, stop the array. +7. **Reset array configuration:** Retain all current assignments when resetting the array configuration. +8. **Unassign the disk:** Unassign the disk you wish to remove, double-checking all assignments, especially the %%parity drive|parity-drives%%. +9. **Confirm parity status:** Check the box indicating "Parity is already valid." +10. **Start the array again:** Start the array to finish the removal process. +11. **(Optional) Verify parity:** You can run a correcting %%parity check|parity-check%% afterward to ensure parity integrity. + +
+ **Alternative command-line method for zeroing a disk** + + If you're comfortable using the Linux command line, you can manually zero out your disk using the following instructions. Be sure to choose the command that corresponds with your version of Unraid. + + Since zeroing a disk can take many hours, it's recommended to use something like the [Tmux Terminal Manager TTM plugin](https://forums.unraid.net/topic/183427-plugin-tmux-terminal-manager-ttm/) to type the commands and make sure the session remains up. + + **For Unraid 6.12 or later:** + + 1. First, unmount the disk: + ```bash + umount /mnt/diskX + ``` + 2. Zero out the disk with the following command: + ```bash + dd bs=1M if=/dev/zero of=/dev/mdXp1 status=progress + ``` + + **For Unraid 6.11 and earlier:** + + 1. Start by unmounting the disk: + ```bash + umount /mnt/diskX + ``` + 2. Next, use this command to zero out the disk: + ```bash + dd bs=1M if=/dev/zero of=/dev/mdX status=progress + ``` + + :::note + Remember to replace `X` with the specific number of the data disk you are removing. + ::: + + :::caution + Before executing these commands, double-check the drive number to avoid accidentally erasing data on the wrong disk. + ::: + + Don't hesitate to reach out to the [Unraid forums](https://forums.unraid.net/). There, you can find helpful resources and community support. + +
diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx new file mode 100644 index 0000000000..727ddb108c --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx @@ -0,0 +1,15 @@ +This method is ideal for users looking for a simple way to remove a data disk. + +1. **Stop the array:** Begin by stopping the array to safely remove the disk. +2. **(Optional) Document your disk assignments:** Consider taking a screenshot of your current disk assignments from the Main tab. +3. **Reset the array configuration:** Use the [Reset the array configuration](#reset-the-array-configuration) procedure. Be sure to choose the option to preserve all current assignments. +4. **Unassign the disk:** Identify and unassign the disk you wish to remove. +5. **Start the array:** After unassigning the disk, start the array again, but do not check the "Parity is valid" box. + +Once you start the array, a %%parity|parity%% sync will initiate if you have a %%parity disk|parity-drives%% assigned. Keep in mind that the array will be vulnerable to data loss until this sync completes. + +:::tip + +Move any important data off the disk before removal. The %%parity|parity%% sync process may take several hours, depending on disk size and system activity. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx new file mode 100644 index 0000000000..d4138976a0 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx @@ -0,0 +1,53 @@ +If you're comfortable with the command line, this method gives you more control and can be useful if the %%WebGUI|web-gui%% option isn't available. For more information on using the command line interface, see [Command line interface](../../../system-administration/advanced-tools/command-line-interface.mdx). + +:::note[Before you start] + +- Ensure that your pool's %%RAID|raid%% profile allows device removal; you can't remove a device from a 2-device %%RAID 1|raid1%% pool without changing it to a single profile first. +- Check that remaining devices will have enough space for your data. + +::: + +To remove a disk using the command line: + +1. **Open a terminal session**: Make sure the %%array|array%% is running and open your command line interface. + +2. **Remove the device**: Type the command below, replacing `X` with the letter corresponding to the drive you want to remove (as shown in the Main tab): + + ```bash + btrfs device remove /dev/sdX1 /mnt/cache + ``` + + - For encrypted devices, use: `/dev/mapper/sdX1`. + - For NVMe devices, use: `nvmeXn1p1`. + +3. **Wait for completion**: The device will be removed once you see the cursor return. + +4. **Make Unraid "forget" the deleted member**: + - Stop the %%array|array%%. + - Unassign all pool devices. + - Start the %%array|array%% (Unraid will clear the pool configuration). + - If any Docker/%%VM|vm%% services use this pool, disable them before starting the %%array|array%% to prevent Unraid from recreating images elsewhere. + +5. **Reassign devices**: Stop the %%array|array%% again, reassign all remaining pool members except the removed device, and then start the %%array|array%%. + +**To remove multiple devices**: + +You can do so in one command: + +```bash +btrfs device remove /dev/sdX1 /dev/sdY1 /mnt/cache +``` + +However, keep in mind that the removal will still occur one at a time. + +:::note[Timing] + +Similar to the %%WebGUI|web-gui%% method, removing devices and rebalancing may take several hours depending on data volume and device speed. + +::: + +:::important + +If you have only one device left in the pool, you will need to convert the %%RAID|raid%% profile to **single** to ensure everything functions correctly. For further instructions, refer to the section on [Switching the Pool RAID Level to Single](#changing-pool-raid-levels). + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx new file mode 100644 index 0000000000..a1e3b0ac7f --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx @@ -0,0 +1,20 @@ +:::note[Before you start] + +- You can only remove one drive at a time using the GUI. +- Make sure your pool is using a redundant %%RAID|raid%% profile (like %%RAID 1|raid1%% for both data and metadata). +- To check your pool's %%RAID|raid%% level, navigate to the Main tab and click on the pool. Scroll down to the Balance Status section (for %%BTRFS|btrfs%%) or ZFS pool status (for %%ZFS|zfs%%). + +::: + +To remove a disk using the %%WebGUI|web-gui%%: + +1. **Stop the %%array|array%%**: Go to the **Main** tab and look for the option to stop your %%array|array%%. +2. **Unassign the pool drive**: Find the drive you want to remove and unassign it in the **Main** tab. +3. **Start the %%array|array%%**: Restart the %%array|array%% to apply the changes. +4. **Verify removal**: Click on the first pool device in the **Main** tab, then check **Balance Status** (for %%BTRFS|btrfs%%) or **zpool status** (for %%ZFS|zfs%%) to confirm the device was correctly removed. + +:::note[Timing] + +Keep in mind that removing a drive and rebalancing the pool may take several hours, depending on how much data you have and your device speeds. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx new file mode 100644 index 0000000000..50403c48dc --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx @@ -0,0 +1,3 @@ +1. Set the share’s **Use Cache** to *Prefer*. +2. The **%%Mover|mover%%** runs automatically based on your schedule to move files, and manual runs are optional. +3. After files are moved, you can change **Use Cache** to *No* if you prefer. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx new file mode 100644 index 0000000000..75694a03cc --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx @@ -0,0 +1,3 @@ +1. In the share settings, set **Primary Storage** to *Cache* and **Secondary Storage** to *Array*. +2. Set the **Mover action** to *Array -> Cache*. +3. The **%%Mover|mover%%** will run automatically based on your schedule to move files, with manual runs as an option. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx new file mode 100644 index 0000000000..cac98b66ac --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx @@ -0,0 +1,3 @@ +1. Change the share’s **Use Cache** setting to *Yes*. +2. The **%%Mover|mover%%** transfers files automatically according to your schedule. Manual runs are optional. +3. After the files are moved, you can change the **Use Cache** setting to *Only* if you want. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx new file mode 100644 index 0000000000..8e37455efe --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx @@ -0,0 +1,3 @@ +1. In the share settings, set **Primary Storage** to *Cache* and **Secondary Storage** to *Array*. +2. Set the **Mover action** to *Cache -> Array*. +3. The **%%Mover|mover%%** runs automatically based on your schedule to transfer files. Manual %%Mover|mover%% runs are possible but not necessary. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx new file mode 100644 index 0000000000..de12c4ea9b --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx @@ -0,0 +1,14 @@ +Unraid uses the **%%Mover|mover%%** to manage file placement between the %%cache|cache%% and %%array|array%%, controlled by the **Use Cache for New Files** setting for each share: + +- **Yes:** New files go to %%cache|cache%% if space allows; otherwise, to the %%array|array%%. %%Mover|mover%% transfers files from %%cache|cache%% to %%array|array%%. +- **No:** New files go directly to the %%array|array%%. %%Mover|mover%% does nothing for this share. +- **Only:** New files are written only to the %%cache|cache%%. If there’s not enough space, writing fails. %%Mover|mover%% will not move files from %%array|array%% to %%cache|cache%%. +- **Prefer:** New files go to %%cache|cache%% if there’s space; otherwise, to the %%array|array%%. %%Mover|mover%% tries to move files from %%array|array%% back to %%cache|cache%% when possible. + +This setting is the default for `appdata` and `system` shares to improve Docker and VM performance. + +:::note + +Starting with Unraid 6.9, multiple %%pools|cache-pool%% can be created and used as %%cache|cache%%. Any of these %%pools|cache-pool%% can act as a %%cache|cache%%, regardless of their name. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx new file mode 100644 index 0000000000..fbda6d2e22 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx @@ -0,0 +1,25 @@ +The **Primary Storage** setting determines where new files for a share are initially written—this can be the **%%cache|cache%%**, the **%%array|array%%**, or any named **%%pool|cache-pool%%**. The **Secondary Storage** setting specifies an alternate location for new files and folders if the primary storage falls below the **Minimum Free Space** threshold. + +The **%%Mover|mover%%** function automatically transfers files between primary and secondary storage based on your schedule, ensuring optimal performance and storage utilization. + +
+ ![Primary to Secondary Storage](/img/primarytosecondarystorage.png) +
+ +:::note + +If you select the %%array|array%% for primary or secondary storage, you must also configure its **%%allocation method|allocation-method%%**, **%%split level|split-level%%**, and any **%%included or excluded disks|included-or-excluded-disks%%**. These settings do not apply to %%pools|cache-pool%%. + +::: + +**Primary storage drop-down:** + +- This setting is required for each share. +- You must select a primary storage device or %%pool|cache-pool%% (default is **Cache**). +- You can choose any named %%pool|cache-pool%% or the %%array|array%%. + +**Secondary storage drop-down:** + +- **None:** No secondary storage is set for the share (optional). +- If the primary storage is a %%pool|cache-pool%%, **None**, **Array**, and **Another pool** are available. +- If the primary storage is the **Array**, **None** and any eligible %%pools|cache-pool%% are available. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx new file mode 100644 index 0000000000..73eedfb530 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx @@ -0,0 +1,20 @@ +**Message:** +`Too many attached devices. Please consider upgrading your registration key.` + +![Device Limit Error](/img/Toomanydevices.png) + +The rules for connecting storage apply only before starting the array. After the array is started, you can add more storage, including USB drives for virtual machines. However, be aware that Unraid currently only limits the number of attached storage devices on the [**Starter license tier**](https://unraid.net/pricing) +(6 device limit). + +:::tip + +The maximum applies to all devices except the boot USB. + +::: + +To resolve this error: + +1. Stop the array. +2. Remove any unneeded storage devices. +3. Start the array. +4. Reconnect devices afterwards for **Unassigned Devices** use. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx new file mode 100644 index 0000000000..c560c794a5 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx @@ -0,0 +1,6 @@ +**Message:** +`Cannot contact key-server` + +If you have a Trial license, you'll see a message indicating that you need to contact the Unraid license server to start your array. However, if you have a paid license, you can start the array without any extra steps. + +For Trial users, your server tries to connect to the license key server to check your license when it first boots up. If it can't connect within 30 seconds, the array won't start. But don't worry! Each time you refresh or navigate the %%WebGUI|web-gui%%, it will try again to validate your license quickly. Once it successfully validates, your server won't need to check again unless you reboot. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx new file mode 100644 index 0000000000..2e5a61b485 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx @@ -0,0 +1,29 @@ +**Message:** +`Invalid or missing registration key.` + +![Missing Key](/img/Invalidormissingkey.png) + +A valid registration key is required in order to start the array. To purchase or get a trial key: + +1. Go to ***Tools → Registration***. +2. Click **Get Trial Key** or **Purchase Key**. +3. Install the key by returning to **Registration**, pasting in the field, and clicking the **Install Key** button. + +:::note[Trial vs. Paid Licenses] + +- **Trial License:** Full Unraid access for 30 days, just like the higher license tiers. You can use unlimited storage devices, but you'll need an internet connection to start it up. [Start a new trial here.](https://unraid.net/getting-started) +- **Paid License:** This is yours to keep forever! However, there are limits on the number of devices based on the plan you choose (**Starter**, **Unleashed**, or **Lifetime**). After you activate it, you don't have to connect to the internet anymore. + +::: + +:::tip + +If you see an "invalid key" error, it might mean your trial has **expired**. To keep using Unraid, you can [purchase a license here](https://unraid.net/pricing). + +::: + +:::caution[Blacklisted USB flash devices] + +If your server is online and your trial hasn't run out, your USB flash drive might have a %%GUID|guid%% that can't register a key. This can happen if the %%GUID|guid%% isn't unique or has already registered by someone else. Using an SD card reader via USB can also cause this issue since it often has a generic %%GUID|guid%%. If your USB flash drive is **blacklisted**, it can't be used anymore, and you'll need to find a different device for your Unraid Server OS installation. + +::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx new file mode 100644 index 0000000000..c0e169fe2c --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx @@ -0,0 +1,10 @@ +**Message:** +`Too many wrong and/or missing disks!` + +![Single parity error](/img/Toomanywrong.png) + +With **one %%parity drive|parity-drives%%**, you can only have **one** missing disk. With two %%parity drives|parity-drives%%, **two** disks can be missing and you can still start the array, and so on. Parity helps until you can replace the missing disk. + +**What to Do:** +Replace the missing disk. For dual-parity configurations, replace the missing disks one at a time. +If you can't recover the data (or if more than 2 disks fail in a dual-parity setup), go to ***Tools → New Config*** to perform the New Config procedure. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx new file mode 100644 index 0000000000..77f48664ea --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx @@ -0,0 +1,11 @@ +**Message:** `This Unraid release has been withdrawn.` + +If you see this message, it means you're using a beta or release candidate version of Unraid that isn't enabled for regular use. + +To resolve this: + +1. Open Unraid. +2. Go to ***Tools → Update OS***. +3. Install the latest stable version. + +Once the update is complete, restart your server to start your array. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/shares.mdx b/docs/unraid-os/using-unraid-to/manage-storage/shares.mdx index 2bbf0cea65..e9d1e21533 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/shares.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/shares.mdx @@ -3,6 +3,15 @@ sidebar_position: 1 sidebar_label: Shares --- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import SharesPrimaryStorage612 from './partials/shares-primary-storage-612.mdx'; +import SharesPrimaryStorage611 from './partials/shares-primary-storage-611.mdx'; +import SharesCacheToArray612 from './partials/shares-cache-to-array-612.mdx'; +import SharesCacheToArray611 from './partials/shares-cache-to-array-611.mdx'; +import SharesArrayToCache612 from './partials/shares-array-to-cache-612.mdx'; +import SharesArrayToCache611 from './partials/shares-array-to-cache-611.mdx'; + # Shares A key feature of Unraid is the management of shares. Shares are folders or drives on your Unraid server that can be accessed over a network. You can create as many shares as you want on your Unraid server. These shares can be secured, and their configuration determines how data is written and distributed across your %%array|array%% or named %%pool|cache-pool%% of drives. @@ -156,10 +165,8 @@ For shares containing data: 3. **Delete the share:** Follow the steps to delete an empty share above. :::caution - - The `rm -rf` command will permanently delete files. Double-check before using it. - Make sure no Docker or VM services are using the share before you delete it. - ::: @@ -239,56 +246,13 @@ For more detailed guidance, use the **Help** icon in the **WebGUI** while config Unraid’s storage management lets you control where new files are written and how data moves between %%pools|cache-pool%%, %%cache|cache%%, and the %%array|array%%. The options and terminology differ between Unraid 6.12+ and earlier versions. -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - The **Primary Storage** setting determines where new files for a share are initially written—this can be the **%%cache|cache%%**, the **%%array|array%%**, or any named **%%pool|cache-pool%%**. The **Secondary Storage** setting specifies an alternate location for new files and folders if the primary storage falls below the **Minimum Free Space** threshold. - - The **%%Mover|mover%%** function automatically transfers files between primary and secondary storage based on your schedule, ensuring optimal performance and storage utilization. - -
- ![Primary to Secondary Storage](/img/primarytosecondarystorage.png) -
- - :::note - - If you select the %%array|array%% for primary or secondary storage, you must also configure its **%%allocation method|allocation-method%%**, **%%split level|split-level%%**, and any \*\*%%included or excluded disks|included-or-excluded-disks%%. These settings do not apply to %%pools|cache-pool%%. - - ::: - **Primary storage drop-down:** - - - This setting is required for each share. - - You must select a primary storage device or %%pool|cache-pool%% (default is **Cache**). - - You can choose any named %%pool|cache-pool%% or the %%array|array%%. - - **Secondary storage drop-down:** - - - **None:** No secondary storage is set for the share (optional). - - If the primary storage is a %%pool|cache-pool%%, **None**, **Array**, and **Another pool** are available. - - If the primary storage is the **Array**, only **None** is available. - +
- - Unraid uses the **%%Mover|mover%%** to manage file placement between the %%cache|cache%% and %%array|array%%, controlled by the **Use Cache for New Files** setting for each share: - - - **Yes:** New files go to %%cache|cache%% if space allows; otherwise, to the %%array|array%%. %%Mover|mover%% transfers files from %%cache|cache%% to %%array|array%%. - - **No:** New files go directly to the %%array|array%%. %%Mover|mover%% does nothing for this share. - - **Only:** New files are written only to the %%cache|cache%%. If there’s not enough space, writing fails. %%Mover|mover%% will not move files from %%array|array%% to %%cache|cache%%. - - **Prefer:** New files go to %%cache|cache%% if there’s space; otherwise, to the %%array|array%%. %%Mover|mover%% tries to move files from %%array|array%% back to %%cache|cache%% when possible. - - This setting is the default for `appdata` and `system` shares to improve Docker and VM performance. - - :::note - - Starting with Unraid 6.9, multiple %%pools|cache-pool%% can be created and used as %%cache|cache%%. Any of these %%pools|cache-pool%% can act as a %%cache|cache%%, regardless of their name. - - ::: - +
@@ -310,19 +274,11 @@ You can configure the [**%%Mover|mover%%** schedule](../../getting-started/set-u - - 1. In the share settings, set **Primary Storage** to *Cache* and **Secondary Storage** to *Array*. - 2. Set the **Mover action** to *Cache -> Array*. - 3. The **%%Mover|mover%%** runs automatically based on your schedule to transfer files. Manual %%Mover|mover%% runs are possible but not necessary. - + - - 1. Change the share’s **Use Cache** setting to *Yes*. - 2. The **%%Mover|mover%%** transfers files automatically according to your schedule. Manual runs are optional. - 3. After the files are moved, you can change the **Use Cache** setting to *Only* if you want. - + @@ -332,19 +288,11 @@ You can configure the [**%%Mover|mover%%** schedule](../../getting-started/set-u - - 1. In the share settings, set **Primary Storage** to *Cache* and **Secondary Storage** to *Array*. - 2. Set the **Mover action** to *Array -> Cache*. - 3. The **%%Mover|mover%%** will run automatically based on your schedule to move files, with manual runs as an option. - + - - 1. Set the share’s **Use Cache** to *Prefer*. - 2. The **%%Mover|mover%%** runs automatically based on your schedule to move files, and manual runs are optional. - 3. After files are moved, you can change **Use Cache** to *No* if you prefer. - + @@ -389,9 +337,7 @@ There are three straightforward options you can select for how the system alloca - Arrays with mixed drive sizes :::note - High-water is the default method and works well for most users. It reduces drive thrashing compared to "Most-free." - ::: @@ -413,9 +359,7 @@ There are three straightforward options you can select for how the system alloca - Arrays where performance outweighs power savings :::tip - Combine with **%%split level|split-level%%** settings to group related files despite frequent disk switching. - ::: @@ -437,9 +381,7 @@ There are three straightforward options you can select for how the system alloca - Arrays with identical drive sizes :::caution - Without **Minimum Free Space** configured, "disk full" errors will occur when a drive nears capacity. - ::: @@ -602,6 +544,7 @@ For security, it's best to keep your shares in *Private* mode and only grant acc ### Disk share guidelines :::danger[Important Reminder] + **Never copy files directly between a user share and a disk share** if their folder names are the same. This could lead to files being corrupted or deleted, resulting in permanent data loss. ::: diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx index 8d6bde24e9..c04fed7106 100644 --- a/docs/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx @@ -5,6 +5,9 @@ sidebar_label: Community Applications import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import CommunityAppsInstalling from './partials/community-apps-installing.mdx'; +import CommunityAppsRemoving from './partials/community-apps-removing.mdx'; +import CommunityAppsReinstalling from './partials/community-apps-reinstalling.mdx'; # Community Applications @@ -59,50 +62,15 @@ Before installing, consider backing up your flash drive to protect your configur - - To install a Docker container or plugin, simply click the **Install** button from the application's tile or information panel located in the **Apps** tab of the %%WebGUI|web-gui%%. This will start the installation process. - -
-
- ![Install application](/img/CA_Tile1.png) -
- -
- ![Application tile example](/img/CA_Tile3.png) -
-
- - Keep the installation window open until the process is fully completed. - - :::tip[Security tip] - - Before you install, take a moment to read the application's description. Check the developer's reputation and ensure the source repository is trustworthy. It’s best to choose applications from well-known developers or those with active support threads. Always be cautious about granting access to your %%array|array%%, %%cache pool|cache-pool%%, or any sensitive data. Learn more about [security fundamentals](../../system-administration/secure-your-server/security-fundamentals.mdx). - - ::: - +
- - To remove an application: - - 1. Use the **Installed Apps** filter in the **Apps** tab. This will show you all installed Docker containers and plugins as tiles. - 2. Click on **Actions** and select **Uninstall** for the application you want to remove. - + - - If you need to reinstall a Docker container or plugin (for instance, if your `docker.img` file is corrupted), Community Applications simplifies this for you. All application settings are saved as Docker template XML files in `/boot/config/plugins/dockerMan/templates-user`. For more information on the Docker template XML schema and custom tags, see the [Docker Template XML Schema documentation](https://forums.unraid.net/topic/38619-docker-template-xml-schema/) on the Unraid forums. - - To reinstall an application: - - 1. Go to the **Apps** tab in the %%WebGUI|web-gui%%. - 2. Select the **Previous Apps** filter. - 3. Find the application you wish to reinstall and follow the prompts. - - Your saved settings will be restored automatically, allowing for a quick and easy recovery. - +
diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx index 3d1028f498..8d48fb2524 100644 --- a/docs/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx @@ -5,6 +5,15 @@ sidebar_label: Managing & customizing containers import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; +import DockerNetworkType from './partials/managing-and-customizing-containers/network-type.mdx'; +import DockerVolumeMappings from './partials/managing-and-customizing-containers/volume-mappings.mdx'; +import DockerPortMappings from './partials/managing-and-customizing-containers/port-mappings.mdx'; +import DockerEnvironmentVariables from './partials/managing-and-customizing-containers/environment-variables.mdx'; +import DockerCommandStart from './partials/managing-and-customizing-containers/command-start.mdx'; +import DockerCommandStop from './partials/managing-and-customizing-containers/command-stop.mdx'; +import DockerCommandRestart from './partials/managing-and-customizing-containers/command-restart.mdx'; +import DockerCommandStatus from './partials/managing-and-customizing-containers/command-status.mdx'; +import DockerCommandLogs from './partials/managing-and-customizing-containers/command-logs.mdx'; # Managing & customizing containers @@ -17,107 +26,20 @@ This page is written to help users of all skill levels make the most out of Dock Before customizing a Docker container in Unraid, it’s helpful to understand the basic configuration options. Each [container template](./community-applications.mdx) provides a user-friendly interface for setting up networking, storage, and environment variables, allowing you to tailor the container's behavior to your needs without using complex command-line tools. - - - Unraid supports several Docker network modes. The network type you choose determines how your container communicates with other devices and containers: - - - **Bridge (default):** The container is placed on an internal Docker network. Only ports you explicitly map will be accessible from your Unraid server or LAN. This is the safest and most common option for most applications. - - - **Host:** The container shares the Unraid server’s network stack. It can use any available port, but you must ensure no port conflicts with other services. Use this mode only if the application requires direct network access. - - - **None:** The container has no network access. Use this for isolated workloads that do not require any network connectivity. - - - **Custom (macvlan/ipvlan):** The container is assigned its own IP address on your LAN, making it appear as a separate device. This is useful for advanced scenarios but may require additional configuration in your network environment. - - :::tip - - The default network type specified in the container’s template is recommended for most users. - - ::: - - :::caution[Wi-Fi and Docker Networking Limitations] - - Docker has a limitation that prevents it from participating in two networks that share the same subnet. If you switch between a wired and a wireless connection, you will need to restart Docker and reconfigure all existing containers to use the new interface. This [network configuration](../../system-administration/secure-your-server/securing-your-connection.mdx) change requires container reconfiguration. - - ::: - + + - - - Volume mappings control how your container accesses files on your Unraid server. Each mapping links a folder inside the container (container path) to a folder on your Unraid server (host path). - - - **Container path:** The directory inside the container (e.g., `/config` or `/unraid_media`). - - **Host path:** The directory on your Unraid server (e.g., `/mnt/user/appdata/myapp`). - - **Access mode:** Controls permissions - read-only or read/write. Use the most restrictive mode that still allows the container to function. - - :::tip[Best practice] - - 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. - - ::: - - :::note - - - Paths are case-sensitive. - - Container paths should start with a `/`. - - If using an unassigned device as the host path, set the access mode to a "Slave" option to ensure proper detection. - - Host paths are created automatically if they do not exist when the container starts. - - Unexpected folders appearing on your server may indicate a misconfigured mapping. - - ::: - + + - - - Port mappings determine how network traffic is routed from your Unraid server to the container. - - - **Bridge network:** You can map internal container ports to different host ports. For example, if three containers use port 8000 internally, you can map them to 8000, 8001, and 8002 on the host. - - - **Host network:** The container can use any available port. Avoid running multiple containers with the same port to prevent conflicts. - - :::important - - Only modify the host port value. Do not change the container port unless you know the application supports it. - - ::: - Most templates provide sensible defaults, but you can add or adjust port mappings. - + + - - - Environment variables can customize how your Docker container behaves at runtime. They allow you to pass key-value pairs that your containerized application can read and utilize. - -

Common uses for environment variables

- - - Setting the time zone - - Configuring user and group IDs - - Specifying language preferences - - Adjusting application-specific settings, like API keys or feature toggles - -

Managing environment variables in the %%WebGUI|web-gui%%

- - - You can add, edit, or remove environment variables in the container's configuration screen through the %%WebGUI|web-gui%%. - - Many container templates come with common environment variables that are already set, but you can always add more if needed. - - Be sure to check the specific application’s documentation to know which environment variables are available and which values are valid. - - :::info[Examples of environment variables] - - - `TZ=America/New_York`: This sets the container's time zone. - - `PUID=99` and `PGID=100`: These set the user and group IDs for file permissions. - - `UMASK=022`: This controls the default file permissions for created files. - - `API_KEY=your_api_key_here`: This could be used by an application for authentication with an external service. - - ::: - - :::tip - - Use environment variables to avoid hardcoding sensitive or environment-specific information inside your container images. This practice enhances the portability and security of your containers. - - ::: - + +
@@ -200,21 +122,19 @@ To access the container's context menu, go to the **Docker** or **Dashboard** ta ![Docker Guide - Controlling](/img/Dockerguide-controlling.png) -| Option | Description | -| ---------------------------- | --------------------------------------------------------------------------------------------------- | -| **WebUI** | Opens the container’s web interface in a new browser tab (if available). | -| **Update** | Appears when an update is available. Updates the container to the latest image. | -| **Start/Stop** | Starts or stops the container. | -| **Logs** | Shows the container’s log output for troubleshooting. | -| **Edit** | Change container settings, such as port or volume mappings. Changes apply immediately after saving. | -| **Enable/Disable autostart** | Sets whether the container starts automatically when the %%array\|array%% starts. | -| **Remove** | Deletes the container. You can choose to remove just the container or also delete its image. | - -:::tip - -Some containers may offer additional options, like direct links to documentation or support resources. - -::: +| Option | Description | +| ---------------- | --------------------------------------------------------------------------------------------------- | +| **WebUI** | Opens the container's web interface in a new browser tab (if available). | +| **Console** | Opens a command-line interface to interact with the container directly. | +| **Stop** | Stops the running container. | +| **Pause** | Pauses the container, temporarily halting all processes. | +| **Restart** | Restarts the container, applying any configuration changes. | +| **Logs** | Shows the container's log output for troubleshooting. | +| **Edit** | Change container settings, such as port or volume mappings. Changes apply immediately after saving. | +| **Remove** | Deletes the container. You can choose to remove just the container or also delete its image. | +| **Project Page** | Opens the container's project page for documentation and support. | +| **Support** | Provides access to support resources and help for the container. | +| **More Info** | Displays additional information about the container and its configuration. | ### Health indicator @@ -242,20 +162,23 @@ For instance, if you mapped `/mnt/user/media` on the host to `/unraid_media` in Here are some examples showing common path mapping configurations that users frequently need when setting up Docker containers. They demonstrate how to translate between Unraid's host file system paths and the container's internal paths, helping you configure applications correctly. -- **Media server**: +- **Media server:** Host path: `/mnt/user/media`\ - Container path: `/unraid_media`\ + Container path: `/unraid_media` + In the app, set your media library location to `/unraid_media`. -- **Appdata storage**: +- **Appdata storage:** Host path: `/mnt/user/appdata/myapp`\ - Container path: `/config`\ + Container path: `/config` + In the app, use `/config` for configuration storage. -- Multiple %%user shares|user-share%%: - Host path: `/mnt/user/downloads` → Container path: `/downloads`\ - Host path: `/mnt/user/torrents` → Container path: `/torrents`\ - Reference `/downloads` or `/torrents` in the application as needed. +- **Multiple %%user shares|user-share%%:** + Host path: `/mnt/user/media` → Container path: `/media`\ + Host path: `/mnt/user/data` → Container path: `/data` + + Reference `/media` or `/data` in the application as needed. :::important[Best practice] @@ -297,64 +220,24 @@ Cron expressions enable flexible scheduling beyond the built-in options. For exa ### Command examples - - - To start a container, use the command: - - ``` - docker start "container-name" - ``` - - Replace `"container-name"` with the actual name as shown on the Docker tab. - + + - - - To stop a container, use the command: - - ``` - docker stop "container-name" - ``` - - Replace `"container-name"` with the actual name as shown on the Docker tab. - + + - - - To restart a container (useful after updating configurations or troubleshooting): - - ``` - docker restart "container-name" - ``` - - Replace `"container-name"` with the actual name as shown on the Docker tab. - + + - - - To check if a container is running: - - ``` - docker ps --filter "name=container-name" - ``` - - This will list the container if it is currently running. - + + - - - To view the logs for a container (helpful for troubleshooting): - - ``` - docker logs "container-name" - ``` - - This displays recent log output for the specified container. - + + diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/overview.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/overview.mdx index 4d3373c4a7..3221f67838 100644 --- a/docs/unraid-os/using-unraid-to/run-docker-containers/overview.mdx +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/overview.mdx @@ -31,9 +31,7 @@ Unraid’s Docker integration is designed to be user-friendly for everyone. Each - **Limitations:** Unraid does not natively support Docker Compose. For more complex setups, check out the [official Docker Compose documentation](https://docs.docker.com/compose/). :::tip - Most users won’t need to interact with the `docker.img` file directly. However, knowing its role can be helpful for troubleshooting or understanding log messages. - ::: diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx new file mode 100644 index 0000000000..55ad68b5c8 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx @@ -0,0 +1,19 @@ +To install a Docker container or plugin, simply click the **Install** button from the application's tile or information panel located in the **Apps** tab of the %%WebGUI|web-gui%%. This will start the installation process. + +
+
+ ![Install application](/img/CA_Tile1.png) +
+ +
+ ![Application tile example](/img/CA_Tile3.png) +
+
+ +Keep the installation window open until the process is fully completed. + +:::tip[Security tip] + +Before you install, take a moment to read the application's description. Check the developer's reputation and ensure the source repository is trustworthy. It’s best to choose applications from well-known developers or those with active support threads. Always be cautious about granting access to your %%array|array%%, %%cache pool|cache-pool%%, or any sensitive data. Learn more about [security fundamentals](../../../system-administration/secure-your-server/security-fundamentals.mdx). + +::: diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx new file mode 100644 index 0000000000..51062e216d --- /dev/null +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx @@ -0,0 +1,9 @@ +If you need to reinstall a Docker container or plugin (for instance, if your `docker.img` file is corrupted), Community Applications simplifies this for you. All application settings are saved as Docker template XML files in `/boot/config/plugins/dockerMan/templates-user`. For more information on the Docker template XML schema and custom tags, see the [Docker Template XML Schema documentation](https://forums.unraid.net/topic/38619-docker-template-xml-schema/) on the Unraid forums. + +To reinstall an application: + +1. Go to the **Apps** tab in the %%WebGUI|web-gui%%. +2. Select the **Previous Apps** filter. +3. Find the application you wish to reinstall and follow the prompts. + +Your saved settings will be restored automatically, allowing for a quick and easy recovery. diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx new file mode 100644 index 0000000000..c6c8933dc7 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx @@ -0,0 +1,4 @@ +To remove an application: + +1. Use the **Installed Apps** filter in the **Apps** tab. This will show you all installed Docker containers and plugins as tiles. +2. Click on **Actions** and select **Uninstall** for the application you want to remove. diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx new file mode 100644 index 0000000000..1ba362563a --- /dev/null +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx @@ -0,0 +1,7 @@ +To view the logs for a container (helpful for troubleshooting): + +``` +docker logs "container-name" +``` + +This displays recent log output for the specified container. diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx new file mode 100644 index 0000000000..f9e3b2cd0b --- /dev/null +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx @@ -0,0 +1,7 @@ +To restart a container (useful after updating configurations or troubleshooting): + +``` +docker restart "container-name" +``` + +Replace `"container-name"` with the actual name as shown on the Docker tab. diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx new file mode 100644 index 0000000000..87a57ff940 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx @@ -0,0 +1,7 @@ +To start a container, use the command: + +``` +docker start "container-name" +``` + +Replace `"container-name"` with the actual name as shown on the Docker tab. diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx new file mode 100644 index 0000000000..4b981bb6a3 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx @@ -0,0 +1,7 @@ +To check if a container is running: + +``` +docker ps --filter "name=container-name" +``` + +This will list the container if it is currently running. diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx new file mode 100644 index 0000000000..90a278d70f --- /dev/null +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx @@ -0,0 +1,7 @@ +To stop a container, use the command: + +``` +docker stop "container-name" +``` + +Replace `"container-name"` with the actual name as shown on the Docker tab. diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx new file mode 100644 index 0000000000..0a0bbdde2e --- /dev/null +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx @@ -0,0 +1,29 @@ +Environment variables can customize how your Docker container behaves at runtime. They allow you to pass key-value pairs that your containerized application can read and utilize. + +

Common uses for environment variables

+ +- Setting the time zone +- Configuring user and group IDs +- Specifying language preferences +- Adjusting application-specific settings, like API keys or feature toggles + +

Managing environment variables in the %%WebGUI|web-gui%%

+ +- You can add, edit, or remove environment variables in the container's configuration screen through the %%WebGUI|web-gui%%. +- Many container templates come with common environment variables that are already set, but you can always add more if needed. +- Be sure to check the specific application’s documentation to know which environment variables are available and which values are valid. + +:::info[Examples of environment variables] + +- `TZ=America/New_York`: This sets the container's time zone. +- `PUID=99` and `PGID=100`: These set the user and group IDs for file permissions. +- `UMASK=022`: This controls the default file permissions for created files. +- `API_KEY=your_api_key_here`: This could be used by an application for authentication with an external service. + +::: + +:::tip + +Use environment variables to avoid hardcoding sensitive or environment-specific information inside your container images. This practice enhances the portability and security of your containers. + +::: diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx new file mode 100644 index 0000000000..218f375f51 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx @@ -0,0 +1,21 @@ +Unraid supports several Docker network modes. The network type you choose determines how your container communicates with other devices and containers: + +- **Bridge (default):** The container is placed on an internal Docker network. Only ports you explicitly map will be accessible from your Unraid server or LAN. This is the safest and most common option for most applications. + +- **Host:** The container shares the Unraid server’s network stack. It can use any available port, but you must ensure no port conflicts with other services. Use this mode only if the application requires direct network access. + +- **None:** The container has no network access. Use this for isolated workloads that do not require any network connectivity. + +- **Custom (macvlan/ipvlan):** The container is assigned its own IP address on your LAN, making it appear as a separate device. This is useful for advanced scenarios but may require additional configuration in your network environment. + +:::tip + +The default network type specified in the container’s template is recommended for most users. + +::: + +:::caution[Wi-Fi and Docker Networking Limitations] + +Docker has a limitation that prevents it from participating in two networks that share the same subnet. If you switch between a wired and a wireless connection, you will need to restart Docker and reconfigure all existing containers to use the new interface. This [network configuration](/unraid-os/system-administration/secure-your-server/securing-your-connection) change requires container reconfiguration. + +::: diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx new file mode 100644 index 0000000000..906b4d3387 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx @@ -0,0 +1,13 @@ +Port mappings determine how network traffic is routed from your Unraid server to the container. + +- **Bridge network:** You can map internal container ports to different host ports. For example, if three containers use port 8000 internally, you can map them to 8000, 8001, and 8002 on the host. + +- **Host network:** The container can use any available port. Avoid running multiple containers with the same port to prevent conflicts. + +:::important + +Only modify the host port value. Do not change the container port unless you know the application supports it. + +::: + +Most templates provide sensible defaults, but you can add or adjust port mappings. diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx new file mode 100644 index 0000000000..514cd1d57d --- /dev/null +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx @@ -0,0 +1,21 @@ +Volume mappings control how your container accesses files on your Unraid server. Each mapping links a folder inside the container (container path) to a folder on your Unraid server (host path). + +- **Container path:** The directory inside the container (e.g., `/config` or `/unraid_media`). +- **Host path:** The directory on your Unraid server (e.g., `/mnt/user/appdata/myapp`). +- **Access mode:** Controls permissions - read-only or read/write. Use the most restrictive mode that still allows the container to function. + +:::tip[Best practice] + +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. + +::: + +:::note + +- Paths are case-sensitive. +- Container paths should start with a `/`. +- If using an unassigned device as the host path, set the access mode to a "Slave" option to ensure proper detection. +- Host paths are created automatically if they do not exist when the container starts. +- Unexpected folders appearing on your server may indicate a misconfigured mapping. + +::: diff --git a/docusaurus.config.ts b/docusaurus.config.ts index b924847d0e..c6f7b7c3df 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -91,6 +91,7 @@ const config: Config = { // @ts-ignore return sortSidebarItems(sidebarItems); }, + exclude: ['**/partials/**'], // Remark plugins for processing MDX remarkPlugins: [ [remarkAutoGlossary, { yamlFile: "glossary.yaml" }], @@ -274,6 +275,7 @@ const config: Config = { // Category redirects { from: "/category/faq/", to: "/unraid-os/troubleshooting/faq/" }, + { from: "/category/getting-started/", to: "/unraid-os/getting-started/what-is-unraid/" }, { from: "/category/guides/", to: "/category/using-unraid-to/" }, { from: "/category/legacy-documentation/", to: "/" }, { from: "/category/manual/", to: "/category/unraid-os/" }, @@ -311,12 +313,22 @@ const config: Config = { { from: "/unraid-os/faq/installation/", to: "/category/set-up-unraid/" }, { from: "/unraid-os/faq/licensing-faq/", to: "/unraid-os/troubleshooting/licensing-faq/" }, { from: "/unraid-os/faq/os-faq/", to: "/unraid-os/troubleshooting/faq/" }, - { from: "/unraid-os/faq/redeem-license-activation-code/", to: "/unraid-os/troubleshooting/licensing-faq/" }, + { from: "/unraid-os/faq/redeem-license-activation-code/", to: "/unraid-os/troubleshooting/licensing-faq/#redeem-activation-code" }, + { from: "/unraid-os/faq/unraid-account/", to: "/unraid-connect/overview-and-setup/" }, + { from: "/unraid-os/getting-started/", to: "/unraid-os/getting-started/what-is-unraid/" }, - { from: "/unraid-os/getting-started/advanced-bios-config/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, + { from: "/unraid-os/getting-started/advanced-bios-config/", to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#bios-recommendations" }, { from: "/unraid-os/getting-started/considerations/", to: "/unraid-os/getting-started/what-is-unraid/" }, { from: "/unraid-os/getting-started/manual-install-method/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, { from: "/unraid-os/getting-started/quick-install-guide/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, + + { from: "/unraid-os/manual/getting-started/advanced-bios-config/", to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#bios-recommendations" }, + { from: "/unraid-os/manual/getting-started/", to: "/unraid-os/getting-started/what-is-unraid/" }, + { from: "/unraid-os/manual/getting-started/manualinstall-method/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, + { from: "/unraid-os/manual/troubleshooting/", to: "/unraid-os/troubleshooting/" }, + { from: "/unraid-os/manual/users/resetpassword/", to: "/unraid-os/system-administration/secure-your-server/user-management/" }, + { from: "/unraid-os/manual/vm-management/", to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-setup/" }, + { from: "/unraid-os/manual/what-is-unraid/", to: "/unraid-os/getting-started/what-is-unraid/" }, // Guides redirects { from: "/unraid-os/guides/configuring-time-machine/", to: "/unraid-os/using-unraid-to/manage-storage/apple-time-machine/" }, @@ -345,6 +357,7 @@ const config: Config = { { from: "/unraid-os/manual/shares/disk-shares/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, { from: "/unraid-os/manual/shares/network-access/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, { from: "/unraid-os/manual/shares/user-shares/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, + { from: "/unraid-os/manual/storage-management/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/" }, { from: "/unraid-os/manual/tools/", to: "/category/advanced-tools/" }, { from: "/unraid-os/manual/upgrade-instructions/", to: "/unraid-os/system-administration/maintain-and-update/upgrading-unraid/" }, { from: "/unraid-os/manual/users/", to: "/unraid-os/system-administration/secure-your-server/user-management/" }, @@ -375,62 +388,71 @@ const config: Config = { { from: "/unraid-os/troubleshooting/windows-connection/", to: "/category/common-issues/" }, // Additional missing redirects - { from: "/category/getting-started/", to: "/unraid-os/getting-started/what-is-unraid/" }, { from: "/connect/about/", to: "/unraid-connect/overview-and-setup/" }, { from: "/legacy/FAQ/Shrink_array/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/" }, - { from: "/unraid-os/faq/unraid-account/", to: "/unraid-connect/overview-and-setup/" }, - { from: "/unraid-os/manual/getting-started/", to: "/unraid-os/getting-started/what-is-unraid/" }, - { from: "/unraid-os/manual/getting-started/manualinstall-method/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, - { from: "/unraid-os/manual/troubleshooting/", to: "/unraid-os/troubleshooting/" }, - { from: "/unraid-os/manual/users/resetpassword/", to: "/unraid-os/system-administration/secure-your-server/user-management/" }, - { from: "/unraid-os/manual/vm-management/", to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-setup/" }, - { from: "/unraid-os/manual/what-is-unraid/", to: "/unraid-os/getting-started/what-is-unraid/" }, { from: "/unraid-os/release-notes/6.12.7/", to: "/unraid-os/release-notes/6.12.8/" }, - + { from: "/contribute-to-docs/", to: "/category/contribute/" }, + { from: "/contribute-to-docs/how-to-contribute/", to: "/category/contribute/" }, + { from: "/contribute-to-docs/intro/", to: "/category/contribute/" }, + { from: "/contribute-to-docs/unraid-styleguide/", to: "/category/contribute/" }, + { from: "/contribute-to-docs/unraid-styleguide/golden-rules/", to: "/category/contribute/" }, + { from: "/contribute-to-docs/unraid-styleguide/conventions/", to: "/category/contribute/" }, + // Go links redirects { from: "/go/account/", to: "/unraid-connect/overview-and-setup/" }, { from: "/go/adding-array-disks/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/#adding-disks" }, { from: "/go/adding-pools/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/#cache-pools" }, - { from: "/go/advanced-bios-config/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, + { from: "/go/advanced-bios-config/", to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#bios-recommendations" }, { from: "/go/applications/", to: "/unraid-os/using-unraid-to/run-docker-containers/community-applications/" }, + { from: "/go/backing-up-your-flash-drive/", to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/#backing-up-your-flash-device" }, + { from: "/go/blacklisted-usb-flash-device/", to: "/" }, { from: "/go/changing-the-flash-device/", to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/" }, { from: "/go/check-filesystem/", to: "/unraid-os/using-unraid-to/manage-storage/file-systems/#checking-a-file-system" }, { from: "/go/convert-reiser-and-xfs/", to: "/unraid-os/using-unraid-to/manage-storage/file-systems/#converting-to-a-new-file-system-type" }, - { from: "/go/configuring-vpn-tunneledaccess-for-system/", to: "/unraid-os/system-administration/secure-your-server/wireguard/#configuring-vpn-tunneled-access-for-system" }, + { from: "/go/configuring-vpn-tunneled-access-for-system/", to: "/unraid-os/system-administration/secure-your-server/wireguard/#configuring-vpn-tunneled-access-for-system" }, { from: "/go/connect-about/", to: "/unraid-connect/overview-and-setup/" }, - { from: "/go/connect-customizabledashboard/", to: "/unraid-connect/overview-and-setup/#customization" }, + { from: "/go/connect-customizable-dashboard/", to: "/unraid-connect/overview-and-setup/#customization" }, { from: "/go/connect-dashboard/", to: "/unraid-connect/overview-and-setup/#dashboard" }, { from: "/go/connect-deep-linking/", to: "/unraid-connect/overview-and-setup/#deep-linking" }, - { from: "/go/connect-dynamic-remoteaccess/", to: "/unraid-connect/remote-access/#dynamic-remote-access-setup" }, + { from: "/go/connect-dynamic-remote-access/", to: "/unraid-connect/remote-access/#dynamic-remote-access-setup" }, { from: "/go/connect-flash-backup/", to: "/unraid-connect/automated-flash-backup/" }, { from: "/go/connect-help/", to: "/unraid-connect/overview-and-setup/" }, { from: "/go/connect-languagelocalization/", to: "/unraid-connect/overview-and-setup/#language-localization" }, - { from: "/go/connect-licensemanagement/", to: "/unraid-connect/overview-and-setup/#license-management" }, - { from: "/go/connect-manage-serverfrom-connect/", to: "/unraid-connect/overview-and-setup/#manage-your-server-from-within-the-connect-ui" }, + { from: "/go/connect-license-management/", to: "/unraid-connect/overview-and-setup/#license-management" }, + { from: "/go/connect-manage-server-from-connect/", to: "/unraid-connect/overview-and-setup/#manage-your-server-from-within-the-connect-ui" }, + { from: "/go/connect-privacy/", to: "/unraid-connect/automated-flash-backup/#privacy-and-security" }, { from: "/go/connect-remote-access/", to: "/unraid-connect/remote-access/" }, { from: "/go/connect/", to: "/unraid-connect/overview-and-setup/" }, - { from: "/go/determining-hvmiommuhardware-support/", to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/#hvm--iommu-what-they-enable" }, + { from: "/go/determining-hvmiommu-hardware-support/", to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/#hvm--iommu-what-they-enable" }, + { from: "/go/data-encryption/", to: "/unraid-os/system-administration/secure-your-server/securing-your-data/" }, { from: "/go/diagnostics/", to: "/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs/" }, { from: "/go/disk-shares/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, { from: "/go/docker-management/", to: "/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers/" }, { from: "/go/download-list/", to: "/unraid-os/download_list/" }, - { from: "/go/expanding-windows-vmvdisk-partitions/", to: "/" }, - { from: "/go/faq-licensing-redeemactivation-code/", to: "/unraid-os/troubleshooting/licensing-faq/#how-to-redeem-a-license-activation-code" }, + { from: "/go/expanding-windows-vm-vdisk-partitions/", to: "/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm/#expanding-windows-vm-vdisk-partitions" }, + { from: "/go/faq-licensing-pre-release/", to: "/unraid-os/troubleshooting/licensing-faq/#pre-release-policy" }, + { from: "/go/faq-licensing-redeem-activation-code/", to: "/unraid-os/troubleshooting/licensing-faq/#redeem-activation-code" }, { from: "/go/faq-licensing-upgrade/", to: "/unraid-os/troubleshooting/licensing-faq/#how-do-i-upgrade-my-unraid-license" }, { from: "/go/faq-licensing/", to: "/unraid-os/troubleshooting/licensing-faq/" }, { from: "/go/faq/", to: "/unraid-os/troubleshooting/faq/" }, { from: "/go/getting-started/", to: "/unraid-os/getting-started/what-is-unraid/" }, + { from: "/go/hardware-requirements/", to: "/" }, { from: "/go/lost-root-password/", to: "/unraid-os/system-administration/secure-your-server/user-management/" }, + { from: "/go/managing-api-keys/", to: "/API/how-to-use-the-api/#managing-api-keys" }, { from: "/go/manual-install-method/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, { from: "/go/manual/", to: "/category/unraid-os/" }, + { from: "/go/microsoft-windows-as-a-vm/", to: "/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm/" }, { from: "/go/multi-language/", to: "/unraid-os/using-unraid-to/customize-your-experience/multi-language-support/" }, + { from: "/go/multiple-pools/", to: "/unraid-os/using-unraid-to/manage-storage/cache-pools/" }, { from: "/go/outgoing-proxy-manager/", to: "/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms/" }, { from: "/go/parity-swap/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/#parity-swap" }, { from: "/go/parity/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/" }, - { from: "/go/quick-install-guide-assigningdevices/", to: "/unraid-os/getting-started/set-up-unraid/configure-your-array/#assign-parity-and-data-disks" }, - { from: "/go/quick-install-guide-settingup/", to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/" }, + { from: "/go/quick-install-guide-assigning-devices/", to: "/unraid-os/getting-started/set-up-unraid/configure-your-array/#assign-parity-and-data-disks" }, + { from: "/go/quick-install-guide-connecting-to-webgui/", to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#connect-to-the-unraid-webgui" }, + { from: "/go/quick-install-guide-set-root-password/", to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#set-a-root-password" }, + { from: "/go/quick-install-guide-setting-up/", to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/" }, { from: "/go/quick-install-guide/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, - { from: "/go/recommendations-onbuying-usb-drives/", to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/#selecting-a-replacement-device" }, + { from: "/go/recommendations-on-buying-usb-drives/", to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/#selecting-a-replacement-device" }, { from: "/go/release-notes/", to: "/category/release-notes/" }, { from: "/go/release-notes/6.12.12/", to: "/unraid-os/release-notes/6.12.12/" }, { from: "/go/release-notes/6.12.13/", to: "/unraid-os/release-notes/6.12.13/" }, @@ -443,16 +465,21 @@ const config: Config = { { from: "/go/tailscale/", to: "/unraid-os/system-administration/secure-your-server/tailscale/" }, { from: "/go/troubleshooting/", to: "/unraid-os/troubleshooting/" }, { from: "/go/upgrade-instructions/", to: "/unraid-os/system-administration/maintain-and-update/upgrading-unraid/" }, + { from: "/go/upgrading-a-vm-to-windows-11/", to: "/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm/#upgrading-to-windows-11" }, { from: "/go/user-shares/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, + { from: "/go/vm-adjust-bios-settings/", to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/#adjust-bios-settings" }, + { from: "/go/vm-expanding-a-vdisk/", to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-setup/#expand-a-vdisk" }, { from: "/go/vm-management/", to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-setup/" }, { from: "/go/vm-support/", to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/" }, { from: "/go/vm-system-preparation/", to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/#system-preparation" }, { from: "/go/vpn/", to: "/unraid-os/system-administration/secure-your-server/wireguard/" }, + { from: "/go/ups-settings/", to: "/unraid-os/getting-started/set-up-unraid/customize-unraid-settings/#ups-settings" }, { from: "/go/webgui-ssl/", to: "/unraid-os/system-administration/secure-your-server/securing-your-connection/" }, + { from: "/go/what-kind-of-usb-device-do-i-need/", to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/#selecting-a-replacement-device" }, ], }, ], ], }; -export default config; \ No newline at end of file +export default config; diff --git a/docs/embedding.md b/embedding.md similarity index 72% rename from docs/embedding.md rename to embedding.md index 7d3cdd2972..7b575c315c 100644 --- a/docs/embedding.md +++ b/embedding.md @@ -16,12 +16,12 @@ Use the following guidance when loading the Unraid documentation inside an ifram The iframe experience uses `window.sessionStorage` to remember state while a browser tab stays open. Host applications normally do not need to interact with these keys, but they are listed here for completeness. -| Key | Purpose | -| --- | --- | -| `unraidDocsIframe` | Tracks whether the current session originated inside an iframe. | -| `unraidDocsTheme` | Stores the last used Docs theme so reloads stay consistent. | -| `unraidDocsIframeEntry` | Holds the iframe entry path for the fallback back button. | -| `unraidDocsIframeSidebar` | Marks whether the sidebar was explicitly enabled. | +| Key | Purpose | +| ------------------------- | --------------------------------------------------------------- | +| `unraidDocsIframe` | Tracks whether the current session originated inside an iframe. | +| `unraidDocsTheme` | Stores the last used Docs theme so reloads stay consistent. | +| `unraidDocsIframeEntry` | Holds the iframe entry path for the fallback back button. | +| `unraidDocsIframeSidebar` | Marks whether the sidebar was explicitly enabled. | A host can clear these keys to reset the embedded state before opening a new iframe session. @@ -61,16 +61,16 @@ The embedded docs surface a lightweight `postMessage` API that reports readiness ### Messages emitted from the iframe -| Type | Payload | Purpose | -| --- | --- | --- | -| `unraid-docs:ready` | `{ theme: "light" \| "dark" }` | Fired once the iframe has applied its starting theme. | -| `unraid-docs:theme-change` | `{ theme: "light" \| "dark" }` | Fired whenever the iframe theme changes (including the initial emission). | -| `unraid-docs:navigation` | `{ pathname, search, hash, url }` | Fired whenever in-iframe navigation occurs. | +| Type | Payload | Purpose | +| -------------------------- | --------------------------------- | ------------------------------------------------------------------------- | +| `unraid-docs:ready` | `{ theme: "light" \| "dark" }` | Fired once the iframe has applied its starting theme. | +| `unraid-docs:theme-change` | `{ theme: "light" \| "dark" }` | Fired whenever the iframe theme changes (including the initial emission). | +| `unraid-docs:navigation` | `{ pathname, search, hash, url }` | Fired whenever in-iframe navigation occurs. | ### Commands accepted by the iframe -| Type | Payload | Purpose | -| --- | --- | --- | +| Type | Payload | Purpose | +| ----------------------- | ------------------------------ | --------------------------------------------------- | | `unraid-docs:set-theme` | `{ theme: "light" \| "dark" }` | Requests a theme change without requiring a reload. | Example host handler: diff --git a/i18n/de/code.json b/i18n/de/code.json new file mode 100644 index 0000000000..f9c153c695 --- /dev/null +++ b/i18n/de/code.json @@ -0,0 +1,476 @@ +{ + "theme.NotFound.title": { + "message": "Seite nicht gefunden", + "description": "The title of the 404 page" + }, + "theme.NotFound.p1": { + "message": "Wir konnten nicht finden, wonach Sie gesucht haben.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "Bitte kontaktieren Sie den Besitzer der Seite, die Sie zum ursprünglichen URL verlinkt hat, und lassen Sie ihn wissen, dass sein Link nicht funktioniert.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.ErrorPageContent.title": { + "message": "Diese Seite ist abgestürzt.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Zurück nach oben scrollen", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "Archiv", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "Archiv", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "Navigation für Blogbeiträge", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "Neuerer Beitrag", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "Älterer Beitrag", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "Navigation für die Blogliste", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "Neuere Einträge", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "Ältere Einträge", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.tags.tagsPageLink": { + "message": "Alle Tags anzeigen", + "description": "The label of the link targeting the tag list page" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.DocCard.categoryDescription.plurals": { + "message": "1 Artikel|{count} Artikel", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.colorToggle.ariaLabel": { + "message": "Zwischen dunklem und hellem Modus wechseln (derzeit {mode})", + "description": "The ARIA label for the color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "Dunkelmodus", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "Hellmodus", + "description": "The name for the light color mode" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Dokumentationsseiten", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "Vorherige", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "Nächste", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "Ein Dokument getaggt|{count} Dokumente getaggt", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} mit \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "Version: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "Dies ist unveröffentlichte Dokumentation für {siteTitle} Version {versionLabel}.", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "Dies ist die Dokumentation für {siteTitle} {versionLabel}, die nicht mehr aktiv gepflegt wird.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "Für aktuelle Dokumentation siehe {latestVersionLink} ({versionLabel}).", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "Neueste Version", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "Diese Seite bearbeiten", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "Direkter Link zu {heading}", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " am {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " von {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "Zuletzt aktualisiert{atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "Versionen", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "Schließen", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.tags.tagsListLabel": { + "message": "Tags:", + "description": "The label alongside a tag list" + }, + "theme.admonition.caution": { + "message": "vorsicht", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.admonition.danger": { + "message": "Achtung", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "info", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.note": { + "message": "notiz", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "Hinweis", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.warning": { + "message": "warnung", + "description": "The default label used for the Warning admonition (:::warning)" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "Navigation für aktuelle Blogbeiträge", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.CodeBlock.copied": { + "message": "Kopiert", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Code in die Zwischenablage kopieren", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copy": { + "message": "Kopieren", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "Zeilenumbruch umschalten", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.DocSidebarItem.expandCategoryAriaLabel": { + "message": "Seitenleistenkategorie '{label}' erweitern", + "description": "The ARIA label to expand the sidebar category" + }, + "theme.DocSidebarItem.collapseCategoryAriaLabel": { + "message": "Seitenleistenkategorie '{label}' einklappen", + "description": "The ARIA label to collapse the sidebar category" + }, + "theme.NavBar.navAriaLabel": { + "message": "Hauptinhalt", + "description": "The ARIA label for the main navigation" + }, + "theme.blog.post.readMore": { + "message": "Mehr lesen", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "Mehr über {title} lesen", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Sprachen", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "Auf dieser Seite", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.blog.post.readingTime.plurals": { + "message": "Eine Minute Lesezeit|{readingTime} Minuten Lesezeit", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.breadcrumbs.home": { + "message": "Startseite", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Seitenleiste einklappen", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "Seitenleiste einklappen", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Dokumenten-Seitenleiste", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Navigationsleiste schließen", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← Zurück zum Hauptmenü", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Navigationsleiste umschalten", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Seitenleiste erweitern", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "Seitenleiste erweitern", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.SearchBar.seeAll": { + "message": "Alle {count} Ergebnisse anzeigen" + }, + "theme.SearchPage.documentsFound.plurals": { + "message": "Ein Dokument gefunden|{count} Dokumente gefunden", + "description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.SearchPage.existingResultsTitle": { + "message": "Suchergebnisse für \"{query}\"", + "description": "The search page title for non-empty query" + }, + "theme.SearchPage.emptyResultsTitle": { + "message": "Die Dokumentation durchsuchen", + "description": "The search page title for empty query" + }, + "theme.SearchPage.inputPlaceholder": { + "message": "Geben Sie Ihre Suche hier ein", + "description": "The placeholder for search page input" + }, + "theme.SearchPage.inputLabel": { + "message": "Suchen", + "description": "The ARIA label for search page input" + }, + "theme.SearchPage.algoliaLabel": { + "message": "Suche mit Algolia", + "description": "The ARIA label for Algolia mention" + }, + "theme.SearchPage.noResultsText": { + "message": "Keine Ergebnisse gefunden", + "description": "The paragraph for empty search result" + }, + "theme.SearchPage.fetchingNewResults": { + "message": "Neue Ergebnisse werden abgerufen...", + "description": "The paragraph for fetching new search results" + }, + "theme.SearchBar.label": { + "message": "Suchen", + "description": "The ARIA label and placeholder for search button" + }, + "theme.SearchModal.searchBox.resetButtonTitle": { + "message": "Die Abfrage löschen", + "description": "The label and ARIA label for search box reset button" + }, + "theme.SearchModal.searchBox.cancelButtonText": { + "message": "Abbrechen", + "description": "The label and ARIA label for search box cancel button" + }, + "theme.SearchModal.startScreen.recentSearchesTitle": { + "message": "Kürzlich", + "description": "The title for recent searches" + }, + "theme.SearchModal.startScreen.noRecentSearchesText": { + "message": "Keine kürzlichen Suchen", + "description": "The text when no recent searches" + }, + "theme.SearchModal.startScreen.saveRecentSearchButtonTitle": { + "message": "Diese Suche speichern", + "description": "The label for save recent search button" + }, + "theme.SearchModal.startScreen.removeRecentSearchButtonTitle": { + "message": "Diese Suche aus dem Verlauf entfernen", + "description": "The label for remove recent search button" + }, + "theme.SearchModal.startScreen.favoriteSearchesTitle": { + "message": "Favorit", + "description": "The title for favorite searches" + }, + "theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle": { + "message": "Diese Suche aus Favoriten entfernen", + "description": "The label for remove favorite search button" + }, + "theme.SearchModal.errorScreen.titleText": { + "message": "Ergebnisse können nicht abgerufen werden", + "description": "The title for error screen of search modal" + }, + "theme.SearchModal.errorScreen.helpText": { + "message": "Überprüfen Sie Ihre Internetverbindung.", + "description": "The help text for error screen of search modal" + }, + "theme.SearchModal.footer.selectText": { + "message": "um auszuwählen", + "description": "The explanatory text of the action for the enter key" + }, + "theme.SearchModal.footer.selectKeyAriaLabel": { + "message": "Eingabetaste", + "description": "The ARIA label for the Enter key button that makes the selection" + }, + "theme.SearchModal.footer.navigateText": { + "message": "um zu navigieren", + "description": "The explanatory text of the action for the Arrow up and Arrow down key" + }, + "theme.SearchModal.footer.navigateUpKeyAriaLabel": { + "message": "Pfeil nach oben", + "description": "The ARIA label for the Arrow up key button that makes the navigation" + }, + "theme.SearchModal.footer.navigateDownKeyAriaLabel": { + "message": "Pfeil nach unten", + "description": "The ARIA label for the Arrow down key button that makes the navigation" + }, + "theme.SearchModal.footer.closeText": { + "message": "zum Schließen", + "description": "The explanatory text of the action for Escape key" + }, + "theme.SearchModal.footer.closeKeyAriaLabel": { + "message": "Escape-Taste", + "description": "The ARIA label for the Escape key button that close the modal" + }, + "theme.SearchModal.footer.searchByText": { + "message": "Suche mit", + "description": "The text explain that the search is making by Algolia" + }, + "theme.SearchModal.noResultsScreen.noResultsText": { + "message": "Keine Ergebnisse für", + "description": "The text explains that there are no results for the following search" + }, + "theme.SearchModal.noResultsScreen.suggestedQueryText": { + "message": "Versuchen Sie, nach", + "description": "The text for the suggested query when no results are found for the following search" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsText": { + "message": "Denken Sie, diese Suche sollte Ergebnisse liefern?", + "description": "The text for the question where the user thinks there are missing results" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsLinkText": { + "message": "Lassen Sie es uns wissen.", + "description": "The text for the link to report missing results" + }, + "theme.SearchModal.placeholder": { + "message": "Dokumente durchsuchen", + "description": "The placeholder of the input of the DocSearch pop-up modal" + }, + "theme.IdealImageMessage.loading": { + "message": "Wird geladen...", + "description": "When the full-scale image is loading" + }, + "theme.IdealImageMessage.load": { + "message": "Klicken, um zu laden{sizeMessage}", + "description": "To prompt users to load the full image. sizeMessage is a parenthesized size figure." + }, + "theme.IdealImageMessage.offline": { + "message": "Ihr Browser ist offline. Bild nicht geladen", + "description": "When the user is viewing an offline document" + }, + "theme.IdealImageMessage.404error": { + "message": "404. Bild nicht gefunden", + "description": "When the image is not found" + }, + "theme.IdealImageMessage.error": { + "message": "Fehler. Klicken Sie zum Neuladen", + "description": "When the image fails to load for unknown error" + }, + "theme.blog.post.plurals": { + "message": "Ein Beitrag|{count} Beiträge", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} getaggt mit \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.blog.author.pageTitle": { + "message": "{authorName} - {nPosts}", + "description": "The title of the page for a blog author" + }, + "theme.blog.authorsList.pageTitle": { + "message": "Autoren", + "description": "The title of the authors page" + }, + "theme.blog.authorsList.viewAll": { + "message": "Alle Autoren anzeigen", + "description": "The label of the link targeting the blog authors page" + }, + "theme.blog.author.noPosts": { + "message": "Dieser Autor hat noch keine Beiträge geschrieben.", + "description": "The text for authors with 0 blog post" + }, + "theme.contentVisibility.unlistedBanner.title": { + "message": "Nicht gelistete Seite", + "description": "The unlisted content banner title" + }, + "theme.contentVisibility.unlistedBanner.message": { + "message": "Diese Seite ist nicht gelistet. Suchmaschinen werden sie nicht indexieren, und nur Benutzer mit einem direkten Link können darauf zugreifen.", + "description": "The unlisted content banner message" + }, + "theme.contentVisibility.draftBanner.title": { + "message": "Entwurfsseite", + "description": "The draft content banner title" + }, + "theme.contentVisibility.draftBanner.message": { + "message": "Diese Seite ist ein Entwurf. Sie wird nur im Entwicklungsmodus sichtbar und wird vom Produktionsaufbau ausgeschlossen.", + "description": "The draft content banner message" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "Erneut versuchen", + "description": "The label of the button to try again rendering when the React error boundary captures an error" + }, + "theme.common.skipToMainContent": { + "message": "Zum Hauptinhalt springen", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsPageTitle": { + "message": "Tags", + "description": "The title of the tag list page" + }, + "theme.colorToggle.ariaLabel.mode.system": { + "message": "Systemmodus", + "description": "The name for the system color mode" + }, + "theme.navbar.mobileDropdown.collapseButton.expandAriaLabel": { + "message": "Dropdown erweitern", + "description": "The ARIA label of the button to expand the mobile dropdown navbar item" + }, + "theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel": { + "message": "Dropdown schließen", + "description": "The ARIA label of the button to collapse the mobile dropdown navbar item" + } +} diff --git a/i18n/de/docusaurus-plugin-content-blog/options.json b/i18n/de/docusaurus-plugin-content-blog/options.json new file mode 100644 index 0000000000..891cc784d3 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-blog/options.json @@ -0,0 +1,14 @@ +{ + "title": { + "message": "Blog", + "description": "The title for the blog used in SEO" + }, + "description": { + "message": "Blog", + "description": "The description for the blog used in SEO" + }, + "sidebar.title": { + "message": "Aktuelle Beiträge", + "description": "The label for the left sidebar" + } +} diff --git a/i18n/de/docusaurus-plugin-content-docs/current.json b/i18n/de/docusaurus-plugin-content-docs/current.json new file mode 100644 index 0000000000..839730ff69 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,130 @@ +{ + "version.label": { + "message": "Nächste", + "description": "The label for version current" + }, + "sidebar.unraidSidebar.category.Unraid OS": { + "message": "Unraid OS", + "description": "The label for category Unraid OS in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Getting started with Unraid": { + "message": "Erste Schritte mit Unraid", + "description": "The label for category Getting started with Unraid in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Set up Unraid": { + "message": "Unraid einrichten", + "description": "The label for category Set up Unraid in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Explore the user interface": { + "message": "Benutzeroberfläche erkunden", + "description": "The label for category Explore the user interface in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Using Unraid to": { + "message": "Verwenden von Unraid zum", + "description": "The label for category Using Unraid to in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Manage storage": { + "message": "Speicher verwalten", + "description": "The label for category Manage storage in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Run Docker containers": { + "message": "Docker-Container ausführen", + "description": "The label for category Run Docker containers in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Create virtual machines": { + "message": "Virtuelle Maschinen erstellen", + "description": "The label for category Create virtual machines in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Customize your experience": { + "message": "Erfahrung anpassen", + "description": "The label for category Customize your experience in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.System administration": { + "message": "Systemadministration", + "description": "The label for category System administration in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Monitor performance": { + "message": "Leistung überwachen", + "description": "The label for category Monitor performance in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Maintain and update": { + "message": "Wartung und Aktualisierung", + "description": "The label for category Maintain and update in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Secure your server": { + "message": "Server sichern", + "description": "The label for category Secure your server in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Advanced tools": { + "message": "Erweiterte Werkzeuge", + "description": "The label for category Advanced tools in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Advanced configurations": { + "message": "Erweiterte Konfigurationen", + "description": "The label for category Advanced configurations in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Optimize storage": { + "message": "Speicher optimieren", + "description": "The label for category Optimize storage in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Troubleshooting": { + "message": "Fehlerbehebung", + "description": "The label for category Troubleshooting in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Common issues": { + "message": "Häufige Probleme", + "description": "The label for category Common issues in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Diagnostics": { + "message": "Diagnose", + "description": "The label for category Diagnostics in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Release notes": { + "message": "Veröffentlichungshinweise", + "description": "The label for category Release notes in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Release notes.link.generated-index.description": { + "message": "Unraid-Veröffentlichungshinweise", + "description": "The generated-index page description for category Release notes in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.7.2": { + "message": "7.2", + "description": "The label for category 7.2 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.7.1": { + "message": "7.1", + "description": "The label for category 7.1 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.7.0": { + "message": "7.0", + "description": "The label for category 7.0 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.12": { + "message": "6.12", + "description": "The label for category 6.12 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.11": { + "message": "6.11", + "description": "The label for category 6.11 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.10": { + "message": "6.10", + "description": "The label for category 6.10 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.9": { + "message": "6.9", + "description": "The label for category 6.9 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Unraid Connect": { + "message": "Unraid Verbinden", + "description": "The label for category Unraid Connect in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Unraid API": { + "message": "Unraid API", + "description": "The label for category Unraid API in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Contribute": { + "message": "Beitragen", + "description": "The label for category Contribute in sidebar unraidSidebar" + } +} diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/API/_category_.json new file mode 100644 index 0000000000..1e4ded6ca3 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/API/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Unraid API", + "position": 4 +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx b/i18n/de/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx new file mode 100644 index 0000000000..e112462f29 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx @@ -0,0 +1,100 @@ +# API-Schlüssel-Autorisierungsprozess + +Dieses Dokument beschreibt den selbstverwalteten Prozess zur Erstellung von API-Schlüsseln für Drittanbieteranwendungen. + +## Übersicht + +Anwendungen können API-Zugriff auf einen Unraid-Server anfordern, indem sie Benutzer auf eine spezielle Autorisierungsseite umleiten, wo Benutzer die angeforderten Berechtigungen überprüfen und mit einem Klick einen API-Schlüssel erstellen können. + +## Prozess + +1. **Anwendung fordert an**: Die App leitet den Nutzer um zu: + + ``` + https://[unraid-server]/ApiKeyAuthorize?name=MyApp&scopes=docker:read,vm:*&redirect_uri=https://myapp.com/callback&state=abc123 + ``` + +2. **Benutzerauthentifizierung**: Falls nicht bereits angemeldet, wird der Benutzer zuerst zur Anmeldung weitergeleitet (Standard-Unraid-Authentifizierung) + +3. **Zustimmungsbildschirm**: Nutzer sieht: + - Anwendungsname und Beschreibung + - Angeforderte Berechtigungen (mit Checkboxen zur Genehmigung/Ablehnung spezifischer Bereiche) + - API-Schlüsselname-Feld (vorausgefüllt) + - Autorisieren & Abbrechen Schaltflächen + +4. **API-Schlüsselerstellung**: Nach der Autorisierung: + - API-Schlüssel wird mit genehmigten Bereichen erstellt + - Schlüssel wird dem Benutzer angezeigt + - Wenn `redirect_uri` angegeben ist, wird der Benutzer mit dem Schlüssel zurückgeleitet + +5. **Rückruf**: App erhält den API-Schlüssel: + ``` + https://myapp.com/callback?api_key=xxx&state=abc123 + ``` + +## Abfrageparameter + +- `name` (erforderlich): Name der anfordernden Anwendung +- `description` (optional): Beschreibung der Anwendung +- `scopes` (erforderlich): Kommagetrennte Liste der angeforderten Bereiche +- `redirect_uri` (optional): URL, zu der nach der Autorisierung weitergeleitet werden soll +- `state` (optional): Undurchsichtiger Wert zur Aufrechterhaltung des Status + +## Bereichsformat + +Bereiche folgen dem Muster: `resource:action` + +### **DD-WRT:** Wenn Sie "dnsmasq" mit aktiviertem DNS-Rebinding-Schutz verwenden, können Sie diese Zeile Ihrer Router + +- `docker:read` - Lesezugriff auf Docker +- `vm:*` - Vollzugriff auf VMs +- `system:update` - Update-Zugriff auf das System +- `role:viewer` - Zugriffsrolle Betrachter +- `role:admin` - Zugriffsrolle Administrator + +### Verfügbare Ressourcen: + +- `docker`, `vm`, `system`, `share`, `user`, `network`, `disk`, etc. + +### Verfügbare Aktionen: + +- `create`, `read`, `update`, `delete` oder `*` für alle + +## Sicherheitsaspekte + +1. **HTTPS erforderlich**: Umleitungs-URIs müssen HTTPS verwenden (außer localhost für die Entwicklung) +2. **Benutzereinwilligung**: Benutzer genehmigen explizit jede Berechtigung +3. **Sitzungsbasiert**: Verwendet bestehende Unraid-Authentifizierungssitzung +4. **Einmalige Anzeige**: API-Schlüssel werden einmal gezeigt und müssen sicher gespeichert werden + +## Beispielintegration + +```javascript +// JavaScript example +const unraidServer = 'tower.local'; +const appName = 'My Docker Manager'; +const scopes = 'docker:*,system:read'; +const redirectUri = 'https://myapp.com/unraid/callback'; +const state = generateRandomState(); + +// Store state for verification +sessionStorage.setItem('oauth_state', state); + +// Redirect user to authorization page +window.location.href = + `https://${unraidServer}/ApiKeyAuthorize?` + + `name=${encodeURIComponent(appName)}&` + + `scopes=${encodeURIComponent(scopes)}&` + + `redirect_uri=${encodeURIComponent(redirectUri)}&` + + `state=${encodeURIComponent(state)}`; + +// Handle callback +const urlParams = new URLSearchParams(window.location.search); +const apiKey = urlParams.get('api_key'); +const returnedState = urlParams.get('state'); + +if (returnedState === sessionStorage.getItem('oauth_state')) { + // Save API key securely + saveApiKey(apiKey); +} +``` diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/cli.mdx b/i18n/de/docusaurus-plugin-content-docs/current/API/cli.mdx new file mode 100644 index 0000000000..c7123c5424 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/API/cli.mdx @@ -0,0 +1,210 @@ +--- +title: CLI-Referenz +description: Vollständige Referenz für alle Unraid API CLI-Befehle. +sidebar_position: 4 +--- + +# CLI-Befehle + +:::info[Command Struktur] +Alle Befehle folgen dem Muster: `unraid-api [options]` +::: + +## 🚀 Dienstverwaltung + +### Start + +```bash +unraid-api start [--log-level ] +``` + +Startet den Unraid API-Dienst. + +Optionen: + +- `--log-level`: Protokollierungsstufe festlegen (trace|debug|info|warn|error|fatal) + +Alternative: Sie können die Protokollierungsstufe auch mit der Umgebungsvariable `LOG_LEVEL` festlegen: + +```bash +LOG_LEVEL=trace unraid-api start +``` + +### Stoppen + +```bash +unraid-api stop [--delete] +``` + +Stoppt den Unraid API-Dienst. + +- `--delete`: Optional. Das PM2-Heimverzeichnis löschen + +### Neustart + +```bash +unraid-api restart [--log-level ] +``` + +Startet den Unraid API-Dienst neu. + +Optionen: + +- `--log-level`: Protokollierungsstufe festlegen (trace|debug|info|warn|error|fatal) + +Alternative: Sie können die Protokollierungsstufe auch mit der Umgebungsvariable `LOG_LEVEL` festlegen: + +```bash +LOG_LEVEL=trace unraid-api restart +``` + +### Protokolle + +```bash +unraid-api logs [-l ] +``` + +Zeigt die API-Protokolle an. + +- `-l, --lines`: Optional. Anzahl der anzusehenden Zeilen (standardmäßig: 100) + +## ⚙️ Konfigurationsbefehle + +### Konfiguration + +```bash +unraid-api config +``` + +Zeigt aktuelle Konfigurationswerte an. + +### Umgebung wechseln + +```bash +unraid-api switch-env [-e ] +``` + +Wechselt zwischen Produktions- und Staging-Umgebungen. + +- `-e, --environment`: Optional. Zielumgebung (production|staging) + +### Entwicklermodus + +:::tip[Web GUI Verwaltung] +Entwickleroptionen können auch über die Weboberfläche unter **Einstellungen** → **Verwaltungszugriff** → **Entwickleroptionen** verwaltet werden. +::: + +```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 --enable-modal # Enable modal testing tool +unraid-api developer --disable-modal # Disable modal testing tool +``` + +Entwicklerfunktionen für die API konfigurieren: + +- **GraphQL-Sandbox**: Apollo GraphQL-Sandbox unter `/graphql` aktivieren/deaktivieren. +- **Modal-Testwerkzeug**: Aktivieren/deaktivieren des UI-Modul-Tests im Unraid-Menü. + +## API-Schlüsselverwaltung + +:::tip[Web GUI Verwaltung] +API-Schlüssel können auch über das Webinterface unter **Einstellungen** → **Verwaltungszugriff** → **API-Schlüssel** verwaltet werden. +::: + +### API-Schlüsselbefehle + +```bash +unraid-api apikey [options] +``` + +Erstellen und verwalten Sie API-Schlüssel über die CLI. + +Optionen: + +- `--name `: Name des Schlüssels +- `--create`: Erstellen Sie einen neuen Schlüssel +- `-r, --roles `: Comma-separated list of roles +- `-p, --permissions `: Comma-separated list of permissions +- `-d, --description `: Description for the key + +## SSO (Single Sign-On) Verwaltung + +:::info[OIDC Konfiguration] +Für die OIDC/SSO-Anbieter-Konfiguration siehe die Weboberfläche unter **Einstellungen** → **Verwaltungszugriff** → **API** → **OIDC** oder beziehen Sie sich auf den [OIDC-Anbieter-Einrichtungsleitfaden](./oidc-provider-setup.mdx). +::: + +### SSO-Befehlsbasis + +```bash +unraid-api sso +``` + +#### SSO-Benutzer hinzufügen + +```bash +unraid-api sso add-user +# or +unraid-api sso add +# or +unraid-api sso a +``` + +Einen neuen Benutzer für die SSO-Authentifizierung hinzufügen. + +#### SSO-Benutzer entfernen + +```bash +unraid-api sso remove-user +# or +unraid-api sso remove +# or +unraid-api sso r +``` + +Einen Benutzer (oder alle Benutzer) aus SSO entfernen. + +#### SSO-Benutzer auflisten + +```bash +unraid-api sso list-users +# or +unraid-api sso list +# or +unraid-api sso l +``` + +Alle konfigurierten SSO-Benutzer auflisten. + +#### SSO-Token validieren + +```bash +unraid-api sso validate-token +# or +unraid-api sso validate +# or +unraid-api sso v +``` + +Ein SSO-Token validieren und seinen Status zurückgeben. + +## Berichterstellung + +### Bericht erstellen + +```bash +unraid-api report [-r] [-j] +``` + +Ein Systembericht erstellen. + +- `-r, --raw`: Rohbefehlsausgabe anzeigen +- `-j, --json`: Ausgabe im JSON-Format anzeigen + +## Anmerkungen + +1. Die meisten Befehle erfordern entsprechende Berechtigungen, um den Systemstatus zu ändern. +2. Einige Befehle erfordern, dass die API läuft oder gestoppt ist. +3. API-Schlüssel sollten sicher aufbewahrt werden, da sie Zugriff auf das System gewähren. +4. Änderungen an der SSO-Konfiguration können einen Neustart des Dienstes erfordern. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx b/i18n/de/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx new file mode 100644 index 0000000000..9b289a076d --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx @@ -0,0 +1,241 @@ +--- +title: Verwendung der Unraid API +description: Erfahren Sie, wie Sie über die GraphQL API mit Ihrem Unraid-Server interagieren können +sidebar_position: 2 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ManageApiKeysGui from './partials/manage-api-keys-gui.mdx'; +import ManageApiKeysCli from './partials/manage-api-keys-cli.mdx'; + +# Verwendung der Unraid API + +:::tip[Quick Start] +Die Unraid-API bietet eine leistungsfähige GraphQL-Schnittstelle zur Verwaltung Ihres Servers. Diese Anleitung behandelt Authentifizierung, häufige Abfragen und bewährte Methoden. +::: + +Die Unraid-API bietet eine GraphQL-Schnittstelle, mit der Sie mit Ihrem Unraid-Server interagieren können. Diese Anleitung hilft Ihnen, die Erkundung und Nutzung der API zu beginnen. + +## 🎮 Aktivieren des GraphQL-Sandkastenes + +### WebGUI-Methode (Empfohlen) + +:::info[Preferred Methode] +Die Nutzung des WebGUI ist der einfachste Weg, die GraphQL-Sandbox zu aktivieren. +::: + +1. Navigieren Sie zu **Einstellungen** → **Verwaltungszugriff** → **Entwickleroptionen** +2. Schalten Sie den **GraphQL-Sandbox**-Schalter ein +3. Zugriff auf den GraphQL-Spielplatz durch Navigieren zu: + + ```txt + http://YOUR_SERVER_IP/graphql + ``` + +### CLI-Methode + +Alternativ können Sie den Entwicklermodus über die CLI aktivieren: + +```bash +unraid-api developer --sandbox true +``` + +Oder den interaktiven Modus nutzen: + +```bash +unraid-api developer +``` + +## 🔑 Authentifizierung + +:::warning[Required für die meisten Operationen] +Die meisten Abfragen und Mutationen erfordern eine Authentifizierung. Fügen Sie immer die entsprechenden Anmeldedaten in Ihre Anfragen ein. +::: + +Sie können sich authentifizieren mit: + +1. **API-Schlüssel** - Für programmgesteuerten Zugriff +2. **Cookies** - Automatisch, wenn beim WebGUI angemeldet +3. **SSO/OIDC** - Wenn mit externen Anbietern konfiguriert + +### Verwaltung von API-Schlüsseln + + + + + + + + + + + +### Verwendung von API-Schlüsseln + +Der generierte API-Schlüssel sollte als Header in Ihren GraphQL-Anfragen enthalten sein: + +```json +{ + "x-api-key": "YOUR_API_KEY" +} +``` + +## 📊 Verfügbare Schemata + +Die API bietet Zugang zu verschiedenen Aspekten Ihres Unraid-Servers: + +### Systeminformationen + +- Systemdetails wie CPU-, Speicher- und Betriebssysteminformationen abfragen +- Systemstatus und -gesundheit überwachen +- Zugriff auf Basisplatten- und Hardwareinformationen + +### Array-Verwaltung + +- Array-Status und -konfiguration abfragen +- Array-Operationen verwalten (Start/Stopp) +- Festplattenstatus und -gesundheit überwachen +- Paritätsprüfungen durchführen + +### Docker-Verwaltung + +- Docker-Container auflisten und verwalten +- Containerstatus überwachen +- Docker-Netzwerke verwalten + +### Fernzugriff + +- Fernzugriffseinstellungen konfigurieren und verwalten +- SSO-Konfiguration behandeln +- Erlaubte Ursprünge verwalten + +### 💻 Beispielanfragen + +#### Systemstatus überprüfen + +```graphql +query { + info { + os { + platform + distro + release + uptime + } + cpu { + manufacturer + brand + cores + threads + } + } +} +``` + +#### Array-Status überwachen + +```graphql +query { + array { + state + capacity { + disks { + free + used + total + } + } + disks { + name + size + status + temp + } + } +} +``` + +#### Docker-Container auflisten + +```graphql +query { + dockerContainers { + id + names + state + status + autoStart + } +} +``` + +## 🏗️ Schema-Typen + +Die API umfasst mehrere Kern-Typen: + +### Basistypen + +- `Node`: Schnittstelle für Objekte mit eindeutigen IDs - siehe [Objekterkennung](https://graphql.org/learn/global-object-identification/) +- `JSON`: Für komplexe JSON-Daten +- `DateTime`: Für Zeitstempelwerte +- `Long`: Für 64-Bit Ganzzahlen + +### Ressourcentypen + +- `Array`: Array- und Festplattenverwaltung +- `Docker`: Container- und Netzwerkverwaltung +- `Info`: Systeminformationen +- `Config`: Serverkonfiguration +- `Connect`: Fernzugriffseinstellungen + +### Rollenbasierter Zugriff + +Verfügbare Rollen: + +- `admin`: Voller Zugriff +- `connect`: Fernzugriffsfunktionen +- `guest`: Eingeschränkter Lesezugriff + +## ✨ Bewährte Verfahren + +:::tip[Pro Tipps] +1. Verwenden Sie den Apollo-Sandbox, um das Schema zu erkunden und Abfragen zu testen +2. Beginnen Sie mit kleinen Abfragen und fügen Sie schrittweise Felder hinzu, wie benötigt +3. Überwachen Sie die Abfragestruktur, um die Leistung aufrechtzuerhalten +4. Verwenden Sie geeignete Rollen und Berechtigungen für Ihre API-Schlüssel +5. Halten Sie Ihre API-Schlüssel sicher und erneuern Sie sie regelmäßig +::: + +## ⏱️ Ratenbegrenzung + +:::caution[Rate Grenzen] +Die API implementiert eine Ratenbegrenzung, um Missbrauch zu verhindern. Stellen Sie sicher, dass Ihre Anwendungen die Reaktionen auf die Ratenbegrenzung ordnungsgemäß handhaben. +::: + +## 🚨 Fehlerbehandlung + +Die API gibt Standard-GraphQL-Fehler im folgenden Format zurück: + +```json +{ + "errors": [ + { + "message": "Error description", + "locations": [...], + "path": [...] + } + ] +} +``` + +## 📚 Zusätzliche Ressourcen + +:::info[Learn Mehr] +- Verwenden Sie den Schema-Explorer von Apollo Sandbox, um alle verfügbaren Typen und Felder zu durchsuchen +- Prüfen Sie die Dokumentationsregisterkarte in der Apollo Sandbox für detaillierte Felderbeschreibungen +- Überwachen Sie die Gesundheit der API mit `unraid-api status` +- Berichte mit `unraid-api report` zur Fehlerbehebung generieren + +Für weitere Informationen zu spezifischen Befehlen und Konfigurationsoptionen, ziehen Sie die [CLI-Dokumentation](cli.mdx) zurate oder führen Sie `unraid-api --help` aus. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/images/advanced-rules.png b/i18n/de/docusaurus-plugin-content-docs/current/API/images/advanced-rules.png new file mode 100644 index 0000000000000000000000000000000000000000..dd60e6dc0d62443c8e07980846f7762929219f87 GIT binary patch literal 103268 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

=TL8t|d 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 I(gxoD3n!4utN;K2 literal 0 HcmV?d00001 diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/images/button-customization.png b/i18n/de/docusaurus-plugin-content-docs/current/API/images/button-customization.png new file mode 100644 index 0000000000000000000000000000000000000000..516cd0c3cd9d703315129c918a2dea2e13392439 GIT binary patch literal 97812 zcmeEtXH-*N7bYM`li~}AQUn_aNKq+LLs6=90#X7NdY9e;f)o+yO+g3<1PHx%5D@7# z)Iey`Aql;Q%zeLEv(~8J?^&~E&5vZI+a4iib8Y&hlA|fIh73HTo zL`0++L_{Rs6qkWtzSJteA|j%yuu)LZQc+Og)N*mMw6V7!B2o@dOeWWhpZez=j*u&6 z#7Uwf?=(V2qD+|?BEW7Rd{_4Vt;<0lCk;)ApIwcGKbS{+2(lwK=l^j3+O^hMW^-+= ziH@NA8I2rINImDgacN@WM=)F;$P+u`i(TrYBMKR~8XosboJc2leetEBn2))hFuNG3 zkSyhV;AO2}&d8^I8JwVZU4<77e)Z%TJkV)3-tm?eLdosHU%79I-v!Y}E$6(|rI!i$ z^srd@D=pE+lh+f5i2^B$k`#O&V@a>x{JMC2BmMK@q>W;)`dRSh3i@#}BFz=&A3H=b z{PdF2?^&aN+|n$vxV1zXOyTr&QvBY%#4u;Rw$KmJ6bt#spC)mOKM4Gmg~D8641&vF znx0e7LSnd7R|-!+(Z2%JRLjjhXfBz@F#MQp{Q$pZb*Q9+C`kw@BMz*1Ft2{5=^FGy z(mtuqrf|(rLyh*;;G^hYSiZ=3wt2DMwM<-b<9sZK|%b*q2MEtVw#LM;2s zqxk99hi?=#rG?&6mHoMFR*SyYMK3MqBDp- z27k+})Pmo?{4s>;>9edwt=FSIdIE^+;7Ej0RfdFCjdoL>Se~HugOrc(EcM|iYbUqs zDG{dOrqKgR$(eLntizbK={1>sp;Ok-Ano?gFWH3bpWo%WSwR*5p64gqkFP&Xe$I4U zc`5U%>;=m>kzLrqPsLXZWp-sJlhDb__I%ak)6wj$3(mYx7``$H(08`x{Bm*5sm-dT zt~IVDp0SdmED5h^^Igo^kw3Tedw4-{A$4)>;-3FkPNktcPv}V~rP^5Ji5G}6L!9G< zWUq7gFwlI^_@VXs_FIOs;1`;W&;8`jWpBq;svKr_+$FZTlOOE%)h%&U=~P~ylQrIO zDaV}BoBV{nF7Z6(JWxJ!P1l5HIKi!lR+WGGpXD3N6<5GNpNI0d$4_zU3Lx*hs;v|~ zkki*p;%P7u)vbPUn7ySwCFVjZ4i!&gQ*vxFshhb`cjj_uSI=ARMD~R7#P8(J?!*!~ zlQY#R)lDj?5c?385H%{i9wRuc=bKBuaUOYIa{i@{FP>d`R{i?h>-5Ek9ReM%?vdq$ zs4l1$B=#f@@EnY22}4;@lb-Wsq-CJ9BKvh=onJd)H4diuM&muj#8tiq-n~TEMAifx zZ*=|;SV}KW&m&(rUkd!JfTch{ACgmVc2K^Ndh&6Pebse!bpZ5`5X(|%S$M6mTE9rK zNY~*hL;p!tKcIqtG9#iXlE(^YWx|)1x6a`W*BCB%k42i!UwXsk!ow0{a5@V z{7(Gg`ic6<MGfHNI-ZYNQU77Q>5M9FrW=uy>?`ZYl`MIhB}( z&E_=+`UhX=o#hUK&fw;{aGOw@G#l8B{=Px`3d8s*V^_$Y^&Vt}eP!-} z{ew7u+80vQdZqhiGxk%jPiA{2KiYvE-8)lWV{DpQ>!(i9^6??(A!p1orJ1PXY5OXh ziW6HqE57QY8uoHzRYX}qX~UqFIqAdQ8wQw%hmMD=TZ5>8x25jNo=+CGle6;Q#QnP3 z+4}5q#Bl`egALCSkHsfo@dF8D+MBNdE?DpH!V3nrXAUGxVqo(hu4ps)6Ea~7lJldJV5bnwf%3dF0q#&6JY`6rwe1o*; z%BlN9kGDgMyB&f-{O>D*B<1sN@ySO8`%$@5^HV_CEU$A>+EFLdn6a3$%CIcl)V@B< zYICzrU{^80Hh~i%&ce)o6Ds6m9^M%zt#&yH^`PI-$LULJ`B-l;zX2q@@qC7Ais>s8 z_Zy*yS05_9=6VwN)pkJnfn@br zCI>GDi;*N{Jl_@=mMnYpR+vX zAW=9|;qqdOPv-OG9DX%B4TGmFIU3=aOXMnMp{|PFKUcvE1scUkX8b1Tx}RSC)gpqA zr5^{FMws?Orjv3Kt9S~W*j*uGKGx8!(`p(C)^f2c_WLL=FNU|eBk(yu9~9euI8Dfk#H{o&F{(Ql&4iNssFG(x&}AyKY>3;+(`6Jd;_BN_t9DgkG&`| zgP6Q8>dy0i%Xu!_Irs@?M~ArCCwY7jv#o_&m~Y2ac~n&?jYct!wz|jFXJ)BIdvLgd z#!Z}z%*JHxx+H0%)S_BW@2w>Ja{FmkrkQ^&1m$=l7KIPo9Pf8sx~i^H4KNH^!C;Ls-mkL3qo*sc&pR%vnH-`8pPAMpn`@gk z%W=yE22v#^8!tUfYB$^twnW10tco8Oi=j)Kh9_;1-lt-za~hsg9wM`q4O24?bLf$Z zyw!95WMgKhhPh^!FzD(}^t%S>qc*H`ZOgtt?$Yf0*0656Iq4oR;R~-{41Mu4xh|R! zuzcx)3-sDisOj{qD-;V&8&pUKVOI}ZF79BW!vnXN6PP;$Ma;%&jcC%@ciA@ltCq&T z+YN8-h=~XE5Da(5w=wxGCWH;PD7Kqk-2P%GGKBX%VG10~{`RbtEZ&Da%gAGEtX1M* zSc_1z+oxxrn%K-l0#omw*zQ*?r{Ze3<9XuaZ%2K8jHb$nA@1xT-oBtGO1MvyhbE#= z?%SV0lJxsAJZCu8ltRAOjNm5{DIyAXB>he|obzE^DYTG}NY_C-kMCVkQO=uc=5*|I z?$b*rj@C^d-Dro9S2?ydzpSsf^q#?3l(R0>3Dm26)R$h4_gVue_KC#{6-#w>B3|G# z1rc$W4G}5ui5PgX051USW{~`^Uq~}DF8#01B;No2shFviL_{P@r1Dfw&x?2qP1!h# zBy{d*o;4@m%PH4I@!K#w`xXb~$)uRVn{SS|1x2dX4W~KFTF_Zv1 zT9Aa>tPITfu8u=YJAa9~wrrlrw75#&-1GMvI9WmcO2On-yRGZ+nKk=`!W{6Y2k>5A z!*cUbSOf#-J0cQ_-`~jPU!v>XllTk-__V)04TZ@xebK;P!7UI!37q%Dpe*XI3X{^y z5)uFQ#@Rr5e^2YM4AhouK55ZQq$*_5ld!`x|B;E${@2gQYS+~PbFa5oe!J&CP0YWe zxIeA+GqX@3QL{&;T(vh9ERmAr&r9||FE7Sns=Q;o&`^OQ@!Hcvxj(uj3VePmM$E~S zPb=eHA}_dScXbfPbDChyUG7eFj}#qK=%M>hlec}?Uk^xOP8Mh{Nh-)Uk5u}5K%CqZ z^s>vr4SgcF|I6HHy(8KnT6DGjzv8~7{wU_USM8ULOJ8Od8CHyY;AYd<1!L{x|C%Yb z2QiYKj(m{%1aQ7iH?Sy4>-WkbL^<2*ogBF*^ERDP?A3M?0==nXCClCMoi58giR(@j z>`(t}h?w*n<*tRw=ogzz zSs#6}_`|$_ud+!@FX~(p`AurOE-ubs+Aqfn40=Z=;xH@kMoJ~YGFN3RHU`<#6#ncz z(2XK*UU4ey5xvE&FHIH=M5<$&EFMbBx|W2sVbEVoq8$CMoX&#N@YThpJ+tikPn!X5 zmOqW1f-?q9R<3$Ej{nkq^(PvCbxBNG-XN>rEn99u)Pcm7pTU?X{x+z8x_ECWS6|6E zruZ)=Lt%cCm?W>yRd9{+zjV$|Mv+mz?6CapuN_4c*mp;kDA5~BCjFP?1Eb0zBG#*J zEHYvIFO7PWQe-?DY|7yNFH>L5$oZ}(sU|VvFC!r)eH0Bex>CoyPx|}j{&yX^l1NCk zrgp1cwEs(^D_4O=rH+EqfA=K+xpGS99TBhb?D!ACjcCwCDX`Ss%?j5hU8c${JP6RE zsr_~2CDWY>+FLDQ%zI}AM4u^d%pYuJ97rqD8y#bZ~6d+PJUH;=Me z&(2r^&UchpADMrE9xsHcG^JZl>|h&ksLhfl%L>bW)s4C**Z-W_DHY&R2GI87gSVVmRIiTJ*27zu0(!QXeU zsHV^#f7&g@)cNO%aT-%D_3InN6Eh}`;6^@_Ow0y;`!Bk#(S zH$QK>Y-h;9g|-SS2CEIspdxPN1*n=DQ3uqduBMDlvZ+u0a(}8jh^5YTwfb^#xm`fz z?Pnh+ZF1A9K^h(6f0|}jIfUs00hhbXf%=n>kpIYkvG2?>C%T~9I210sX}=b0(1Gz)Zt zXAKRjXz(~;yPeLTKqqtjJ>6%6ha<>ZIW3gd5nV4*30X?5F{#oRe%-OveN+0-2wdl4 zVMcjyG#4?DhH%|Q5l}_0$yJ5Wr13 zOjkRo?XVEe_cTEUy1x`73up6lPi+guT~~smSWSMN;aZ%cr4K*bP?%pbuo3n@_nL0> zu0SJmBF6Ge(Uk#&0BBXkioXuW9J}N=$7W{O&D|C|!{g{vw#vu>{jukfETWYN?yoPI zAzqo#!zn9&ch!l9O9vD9hs**d*V%d&(UN2V8=W(Cu6XHjdS%Fj-Fxz|s8-fLeOP%s zup@b~a1zcC7A88-jBV|Zta@Oie7riV7}hJVnF~bybONXVACC><;s1 z#`{{|TatJoD8Y$x3HOcTqsNwgr3I*}3LNCg*a+B!hmA$pIRh48yE>5OpW2@)da`%u zcW8Ll6C$50=4j8tn0NAlap8$$S^b*8cLV1va^0Z#=hVpIw46Fw+kEYs2~t9u9U}r=Vd# zrCDY&m>kJb!})qe@M3B(M0ev? zz5C`lZVaJ+fR8Ej->BzQ+w|O;T$tE|9U7Q9w1?4D=$g=btXm|1X)CjvDZe4mr@Aho zUu3i#U4;&DunnJ)?7s!yn_HZzgq>Et?x6DBZY5Wkz|#E${proj83GF>2W&y;cYFdZ zGrV;~)@iA=zAJrSJbHL?f$aiv04Du;EqRK9ZCL6XmG~EYYeNr5Z(>nngOmrWarZ8u z&fmjK=wqit#Hg$oJ@OAQ(-S^YJHe4RMS95ZwpMqjB?y5W0AE zPesW@Q#RMv-b96)B(BVX++1JVbWKMHHZ7^6>gKmbeGdG-!(aK874PIQn^n%O^jG+o zG`>!$P{FiC2$V;lqeF=geJ)P4V6-yFFIjhgvR-(qCl!CU+e_jX?J-=N;UAEmFnFMT zvchV&*7mgvF3Z!1_MdiuXSxd3s`86~b$Q%$JEm?B^lQ_Qjdc*`Rx&tM4Fe<*T)0UA zDxS?#Csx9Zc5gc($!I~0-OvR6sF;)h#470*Z>I?BkHU{cBubk)V zWEAZXraF8&wa%4eHb!t6+gdc?;s|v1lT4PXR`}J~GXZ7QeEj*|pnhA3mE3W*gQm+u z+{)O;#-EQ(v=}PiKtd9Yq?uiK{B(535{+(aa=nynmgps4&z9c~9ex=1@;DZ`D%Z7i83TfL|0W z4<-+`Y`{1_Q1O4*u>??Yv%Jcy^iXVw7&x_QsG){K^b3lc?Q*BeU=yEdV{MCA!v*{6 z8*K3gfBBU6L`+)wjS*H2-XDN)y2PDAJ13I&nKCK=pZokpekZ%l-)v5HmwhqK-Tf!o zRB!+-VymP?TC69(tixu(bC8);j1PaoneNn;&!@@(- zuS)6)Hg0ULbZ<;%DwL{>8h{g?nP!QaG~0h+_gTwS37~>;-I%zGONron^yGY}lS93I z*Zgd}D^}EfLoanB-R(0fDfUR93i`_T&(S~nk4MD)1j3kw@yxjbmCGn&QXb&xH7~#f z>-&?79T5sGn~^IDI!F_p1@&I=+pJ78TLkBbP^A;vxq3Ty7J5Fc|QUb{`BVal_Co&tF~0B{ZTQnm5AMV-(W$uc(I;C zcBZ#&>_nc$*v!+l0Q^C6!0R-B1LG}3i{1_QZ^p@6@LNHAXsCCc83+UdAMXUX5GSAx zu;Br@^(tK=at$kIAMJ;W@A##DYW7@MU6lS4XBeuyyXEy3JI?1Ax7Cx#dvfblO3fPe zQMO2b9b@0yZ1H40vh48hdkqs=5HDf#t{A9%6mnzY$Z7)<>RsffsnM`MqQ(znRfI3c z&%{*tqRmH(jB7;usogr$JW-KiGcPgIHAk+Xd>!R@4}*N24pgNLLvANeN%LID^ZF`8_HOK6Z6n-vy3v47;{t2n(|Se3iTN*z;r)zp^?1tp*&{JxIIwwQ~Ce z)(z^oxT2LJ=2=Xa$Rcb_&%(ltVJUgLIvgVnz6V+LH-EA{W`Gx}WJM#78xev{^FU`;mju5Fgel_Q;(B=`JJfY*Won&;pTYJ zX0nYy-o9{%X~{m$iLOCBMXyQNX7Opjlm2@L8NR2c+{}Jtm_teIcH;Am)YClK4FK!y z;_0f_$D0~3&SSd3FqVZGHRa;C_QvB$-e1G8h%h?FJoXvIlyHF6y4UV8pN|$pBqv39 zN;t$_s{k}JM<691^V6Zq5GFo$7%ehb-Pvd9 z5p!4nK+9dcBy}^}CDLaF6)A;AdrRi#XG`&e_=UkIS#K57xi-o~D%Ec#%BLr!teAbA zQ6&E4AC&3SdSQo-Y5Mjo0$Twsm60x~KWMo)Ensr(qzhOyU3w@&7`=8h3ZhYu81n!` z06zV~ZH8ziQ-xB^Lc380vZ|KQ9riA`OrdEL%HSPYe45gxX5r?C8PPj9$Wq<$A5ntS zifXHb?QYW-S|%-(bHB@bavhT9=EvEXgS$1>nyzY29lEMe?Jk!#O785+aI@U*-h+4@ zWa$sDh1Z344@_#ERl{bTHr;4=r0WFNlz|vEPF`}u8yDod{qYaBFRM@g@}J#8=j63J zf9^7X`i1<f-Y6H4KD*YAye6i$3thf-e12o?wJQNjjlBhSq%K{Xeo6BdiKFeykw%(?M=KfgQ_Pn(Ai?_cMZQjsJh9#=&Ew%V1v=@`dQY6ctnWU+o~9?u-V_0p z4Y-}p=%&_Fji~>9e1@i+gLjHCB?XhEuii89=|51=ta;fgA8^hK<~^IJym;)gq}*bc ztC4ojjBWJZJEd2ZOF-O?5?{H_XH=OdeK4xq{Ai=Jopx`!#IWM0&k+_=kfNF_;2`O- zwQYuCGO@Wn0~m~r61#f>NBRDY>);f?h8_Nm)Eq0WfKz#qDIan!iclO*#;+rD&m8!` zh^6R~Ob39i??6YAjU2Mx-1MAzdpPThn<{Mr;$bgy4bzrs>oS7h`Z z@g@7+rEXt*-lMG79UrT$25+9NWksLA1p#DuuI5g()QB5CR=smL*$zFy5pX^{Hyw9R z4aIEcw{Vt)7dc-C7;6~-z+UVub|{2tfj<_%JwM)QZrhrFPj{G}Nz*n9c)B4#9k9hU zpB00mpYs_MZ`BNWhh4d`7yvxWgnD4Q)DpP#rCduSHjKC8Uq}|6^~w?;@rO_!x~`G4ZudXp+h2#hbTKZrxMev@U1(p2gdEQqvX&iJ)2zk-21^+z)Y6IV%eel z!_7FOlFd;ceBYPHon|;Wa`tSnc50t{q>J8nqip4?gfIHncLCsi_R6zBzvxlON5u7! z(~R{L#ZT84AbMA`eSLPjxu=0>eC`YNIG93OX~`AIL@!Ll#yL3CHeK$N1i%_J@zu7s z9*kS#t2H8q*Q~jbNxDO+p#E5$Z zdcV$Uw0m@=z;R*j{+D5o-xTaFLz39dprgKXkjNqE0JQe+h!y9%dZG)Gbl~DuTi-#IjuSTk25)TM@wHR z5JDhkv+qTnW~Detc^=qImFM7U5dEWsE;y&M*|x}%cA~fv+uL9|@qG(Z_045zzhh_J zC$1=)+!GnTQOcFAkpr9b+hp=q>E3W$2{tg44q+qd%~Shiv#`QXEB7McU-bg|4XQ<- zJ+J5yj?H@cYn;b;#W716bsl{jRmQbF*t6sRl-&!nxC}4>l)`aPI@$*a6w#$U`Ez zO}omgy7i*Wl>7PTc~HE|Sd+GFPD}K>lg8fT^%<%UDWVP=m-Iu5sKQ5=u3sGGwUC9B zve@Pg!Y@`BB{piyQZBd)T=OKJPvrfw;}F58Z5}TuTzfy59mIcN3{w+H)0Bfe=uN=J z9@0gzZa&U(u>LJD$XYT@))d~WICKLYs+nOA$i#ANGd(1#gZRmw zP{j$8C(IT=PnMJYHFE4qnnVHH7feTR*$!m{&M6YCWxo83WIdY$$9~&h>ESD>1ftgo zo>AaF8|N zme2dlb%PX+GG%()DkZ&<%L_N>(2L^vzA=>fp6=X@77XJV)#c21shT-iR5QDA3B<11 z8YIuhE;cMvX@lfq6wO=YjrE6l&U$C6^7S)i+aaO)G1+Gb8NPiz$$K)m>542kMy%zfOTx+MONciLUowp zWccc>7StECN}mUQIxV?2IPS#wiz7s-o}6mlsM30&W@Htv6n%4cAwgGT2kdv6YCBzB z)S_7*1z0H;W3!@UWt4Bf$i#7r95lV&1G9m?L(mU`x(hlr?kJk2!7WbNdUOL_8sWZ~ zgPCm#=&TH0!4!)|U&gO|<5pZR2Kj!&aWOXl6!>k1396#EmLZtF?m+dL@zKH76p~I& z=Rmn|K}I5(w}g=-Pv@RBOL=b3b?|Fa_4cM9I4^Ao{YHgRX-O!e!xk~1H5L=vmp`Ja z&XCAAss#?0Clyf_Du(+%yR7B^>{CF{t#BiDlM*gdeWILFB@8g-yCtVeP%sh0l$)Ti zo2J=(vY;8ZK$emIGM=j1AV+10Q711SagQRSE$pi8T7tj9=PbCLE;4u<;i#?aoQ2!QUy#!9x?s)O&?Nx|MJ{DIjJlz^>lN zYeBqIRg7q)4H2*npZqBiuuV7(^SatM5=MO9sZx8g9zR17&j-pV)~iSMdEss0IqyOO@rE`45d z8b?@+5Ij9`*Yjp5;0TO8q?`?-i=axfX-e^@lX}0Yf1Ozv{B!MQ!97&i_U3ap4w?{Z zqhsF#NGG+~HT&F&3|wqztJKql=^m3#wQf$ov&u%gmbnFJlvV0TU69?Ut(vwwMSx?I zdGzVix%4jE0v=i4HFu{b+QZ+0;o^i!W+L{C>(tj4tL+ugKF94NQ2l!5)LjQ$pQW=##wB{uO;*hzCc2ci%Z z1mCz^L`Qc;50j}%LldTEQ=Bq?ea95clXdGYOLg{}%jybbOg?$4eAjhyWeWaz9;jV- zZIT0&|5>H}l}m)rQisS*zk(L4|f{Q49loJ?UX2yqh}N2b2n zp6X9GPR?{M<(Kk8YRW+V_S0JlT=tsTbPJuDm2(Sc!7TJp?OFkMv<#+W?rbqcgjSgI2o!Kyg3ue=z;x%%<+N@ZB@~6-0(G8+d}f zPcFyVARsq|pb~H=W%D`MT+ZwB$PNP}H#4hsTN}gRmn3X1cL&E#16)&+eNgjRW%OP>Pe1*@Xy4WGHf-(yY~47^*Vv%-kD?WDYqqiO=au`In|!iQ~&0jxPMn165p(6_hAA+d5dT47{84cc?tF4n-2f% zSf5!7uzB-L4vRPA4~>0+OOS)jcVJ49Ook)iO1-TWqwyQtBfCJ)FWkLPx&BeouZ_~ zAZ-Rv7nu*k%uq5A%i>ruq(RFAokEM=@@<_!iu`4~X~%oz~xQ86On` z6@g?qUL3G?qlH8+#JD&EM!{L232p(~#=n>0Vbr}2?_QBQn!`qg^T8Qhl- zqoOmeab)-ZJmd>$>0>&z;h+&4txmZjISfC$8<6Hy>Wj#fZ};M_rA4<`SMMCQ01_S^ zI_&ofp{zTWav|`(N1E(AB1)GjVdXkd&chy;+?J|YQp=+#@x@(nM#l4^XCZjz{l@&PZ5IrPSRKXT; z>5nu2{A3UF+pPng->^F03$8W)swVfT`N`!m+F<~R9HkUK8UOkKfznpa5L_Bg30))w zYq$E)h>d97#?-VJ3r&E9GQAu3?9N_Hq>nW3%m87T&dm?HK<9*z(oRf51T1k|g?KEe z%Z1Amli3@U2olOp5qoQzw^8)PFQ614gQc@dfCazFL#R(MiW_Jzy$zbHYHAzVudJNG zCD{Kuc(#hXh&|G0a-z~>nq9*^J;HW#!}jH3NPd`$;v;RX?JHYer5P+(Rf^XJ$&eBX zBF}xJEWdmLf`9UFQh3)a$&J|ePZ`vl;0k1V!ebvSPTOu=$qIkLbSjb~n2x${lyMa` z)f9dORw=OC>v4Q|18+*K{%s-t^dG*V@QFb$$JUGC=6&+bAOmPwwAD47OtxEk!Z;c9 zgP(e@Oun?DZF}~pBgYg6K0WCy?Iv}aAgXE11P8*35)^&1bUaj~jn4CHNu-MAXMKWT!Effjy2-5_nU;LBr{2QGoVvrKFL1 zpkwobY3RqEPh8f@1KoRiS&EV8=KHPmP55cnfzaPJB`3Wa&{Wcu-iqLN=|ONh56l6?Yz|HHfIUZjS0b;|j|ne&gyHf_Z%J;-kM6 zyg(?a9zOfQ-HIA}17aZ9Xcy?_!V~$8f0oNr8d(zF4gFmr)8$9fBb5NXe@XjV+>~*3 z!8?G~CMNP33;^0<(iCQ$<2R)IAN4NAF%Y=m^ub*;dC&Jt<_%PN=KW`*2n)3WKvh{= z{hSqDowS-}#Q-`N0@o-^9|bHYHmzjoD8nsu;m=jZ%5*Ar)`qhbpmZ%!^HAI>OtXLC zaLOaVq+N#Fg7~lQw(i6fJ}`$};(jX!j864iBnaTV?R`Mi1=-%}G__#kOLhsj(r&W= z2SB6olFwz?SxFTIwE2du-Clm6-pwDj+?#BCghdy<>5S4ZF>MNtibq9iNUY!WEjAEr znFgrNR#of!BJk$;c(w{dOQBKKKKKJB+D;iGQt?+}hQeGU5SZIU`<2j07Q^;X8VuqP zg8_i&VHg2_G>0!hd}drb7j-gStE2<%$Cy>SZ|XN7Ad+W3yXGw#W4fAB7qw6z-{k?Q zH)j^WCf%JDFs|++$hfXNZ^+c;2J)nE5zv{v@9BE312E{!H!vU_i}u(o5(N}7AbpTFC~|A70`I^Ipdf}cnZJFha$mltx<@G zQQ<4<3&?SYX?Z2Xjkde|(-l_HbHzZ$-ydyrusQt}P&3Kd-D1Y_A=82d^P$H)%DgX1 zGx!Y~CsEZ7cJYvxVWha6-z)p7T1o9-_w;^ZU_o$okd(<|N|%)0V#5o6d*pS&gs=a+32y>p9*M0ovz z6V*qotDJV(>yGm&3AFS3$QzG;>U|jnDr?Tm0R%G5D`qqKUG6>La4luN*H40lnl4aw z;~iuQ9TCh&(++cG?TU3V$}KID9)<4MnJF$Hd)s-_x6ll>22u#4Jy_Mv)334xBM8FWV0l)6$6=2W$R5dNHxZ0u-i8Ste^7nkP@O2Qu-Y59=9fPYma92^snaO{_ zs2P+gSR&<$G)0!}IAXa5QtO-MYy zK>g_@LMlwg7ClK-Rdy3bvA3TcZWvp0&;FMZv$v!p=`VkXJA0TkjrIp-S3}P{2ng@^ zQDHG8pf9b>37-F=Be0xA%V)o&FfA33dV#=lkr-6PbDb4yXNAt0Z;a+&h&=HqHG5?0 z{yYs=zgb+NKr8-(!=g#4pOKE#P>=suAU#o$OLJZ5I~M2*noeYZ zpL>b$t#Lf;7n?iAL`&@|^O@9^Lf2NzM*LaD?1jKaJhgTB>gjW>7Qm+ZenxXRMa~FG zshgy4!L?LYk-A4*wXZx<7!a|(s5uAhxorfx5!{sSJ22p?iQ612NM?Wg1H9yEMtHhmF@*R>}nG$-VL<$7Ei0k--zTGrr*Q3Bt1ak{Br?`E?JWHSS7zk1lA zD)Tw2t0$#fHHgPNj)WVLslrp6ADHXHe~2U_e}pqYOS2PG3eN^4ar=piC{2YK+wnph zsF~j|u7Fc5KH5&+34F`qDe~lWAG3KWXH&wX(id0PsTabuFSiF;Uk~sZ(`q5-@Eg** zbx=$FbMzbJJ=dd&!Ri3MACJDxu`&EL+VXT+0WquL0EX)p&IFO*e@hr{_$1-qMs-n7 z0##caKKkY6-Cf|!Ii?lsa@@-{+{+M>)NOBArAc5y=w^;pRPOw7cw;e;NfFpr0B-f>ON}BDt_^*_3-)NdCw&6}tkb*5`{n)*ye>m2zbimW|%uJa1 zr&&R6`uCt91d#9cu&KwoNX_)S2_@7ayQIz}-wv4inn0Og?s?2H?fQ(4+;Bt*ZAE0N zXwIH8VXOJP1T5-t-U)wsw~GG;6v$`AHythHR=Z9V53OhMQx`oSNj0CVp#xp?=ogx# zy~Z*6%S?O502SbT9T=U8-LU+Y$wKj#5D%3>{1x`Qtzxl90q9ej!;KhiN^HO7ACAvZ z9UvD!+0Rarr^XLwp2uDJV^IL?mTT_B%DhELp`I z%j0cfpBFvy4Nn%h&88;iG-xm`oH(lp%Seaa8W8H+yhKuYh|nMtjdT!F{=uxLA(QkC7;`LJd5H0Flg zRHMpT3Rl2cJk8D1Y7s~0ax-{O61VR`O)@!cO|(qv>yzD;vaF~)bEn3G;wEXwZ$+jR zt5vxg8hSsx0RR)M`sb#-UfhlHEYq=LqCv6cz&0OjKes;gpWIiZDLZo1- z*O3F<<+t0x$QRJn>alifSsqF?Yws!7pI63#I$0H|x*bA&(qZ=eV)nG&HUHFnd}|Kx zZ=sq@4)-AXvUr$H!}j zojQbTgt|W71kj`^VztBT`{(>(klM}ng$VeH-STL?5^g^ zS^?Pg)5=6XW7M^VTd|rT(07_?)N5D(zKP$sY~-+(a65Ud2;5JX#wOwNb&uuMomu}m zvv$f(b_+6U#_dipc-m=?d1?s58NHdoFW+;_}NG|x4?UGXZ$1pZQoyiAc`hSH`6#7PJvAcJsC4CxuY0e z^DA1s4SFq#nqPB$Hox4l>%+q&K{M0M@vP`bw-1l-C%ZaIof+%pR~6 zd+3HE&cx{Y>>&p$OpYH zD&ZfmB8`|o=V4Gyz2u+?YR5vC^R&`=OnR@PWosdAzcnv{IvOonI;1_a_aMTyU zrBGERF#nNF;5eBTTQk<*?cVlK$tbKqV0RkrzE?HAG6UC6wz(9d2=kNaKtaY)*e1M$ zam|Gj5=t40T|avG3sfE_aDUTB(@JtF!)4YPAV3$#3xuZ)PE@w(KFuvfkfWLwtmvvp zg#l#yQ3sfR-F0NK@aH(;pyu4Y$f#*Nv`%Piac}Ug-0NE{(99sRt;O+vOf_pU6==*9 zmpl0Njgr2&RON%&CZL$R0RPB0JrYWI({OU?fn8NSTVMSmLq8%{+;XZTdAP>w;gZJE zOm}+zbarsRo(2$csQ3JJZ5~3tlKy7;$$dyH3rFUk}Qq_8W`h^}O6P*-lk!dy9<00+OR0cz&YL z+BP$HZIbP1@3dFbaQJozzK%)9`u;pPISt2WP`PbyaL-kzC?NE;&4-MYUG1DC6ccmR zJ`+Ec1S45h6}H&8xQbQ`^b%B`k=>f_{>|a0 zk^YYpQUyYkGgx<5FTw=wY~AO}QCEspG^>I;VDsIYAkbgZTsVd(Jh!>tai$$umnjJ` zVmWZ(0JHt-Vxfw2ozt7z+nhNO&7MQTg}S3e4C<<8XH&Ps$0YONBCf>KR%TGEcE!jF zaKVJ(9-OABY9L2Tg~=nV_G48KL0{R%+Y2dDNbr5%0LxK`_=T2qs2v6u;&Dl|nS*i* z@*!J+O1?&&1p;wRipqH9a`W6pHzS zT*cr?^WJ@Q(WGX2VC}uPa?rl;tx&^D8#_}6t=&DY5Io6*u%zTHxVAFyc3tWxyeXr* z9JH;n87+BAVP;chz8>KEE0~T(H%|-h);*N@vHq5`ZTRzq;yrd8Z+KfOZ(dN0P2hOL zT)XkuuP9oAJM1XT;Mhs#euxB6B=4ChN6>qYsVFn1_m`sSm)Q8wj;5~zWjUn4E!2_; z%dnB$1v@$9c6&QtlIKL-lNUQ$*E~Cu*5GeB2@LKZGCf#nEj`!l;uBd`~?v0d-{=V;#4{#k8YLoDz!}) zIldTEfJhk28Qee;s%rc~qMK)w?55FdQY@j@X7$+PB|QZUo>e}sd}636kCc*%UF}^B zs^M(p)u}CYa9L3DnqES*>)5vX8TzM^rcYkOoJ;C>^}Nh>QiTpnK(ZQlYsEv`jAfV~ zg}}I@sj1tIZ9g%U=ksh)`fEtmB|)YSxt9dqpKN_l3#F@v3ZT%hI3|xran1^(;7@> zG;6-dkL$p^5#!JvYFoXb(-9+Ivh6Bha;_<&mDAo!-f$NKUe&#)?sbO77cbi?)!p)j z)h~F-A%#kD{wY__QxYaJP^#p*wUsXy;)b+@0R`RF-X^N>U{h?%brzz%VoQ|-c9Z)i zU$%|lML(vAyi)86yTn!cvgB+fbj#+Odq3VyuD9ZRkcqiwzeFx3r@MBuP7A22;tjez zjYa#CCogPLGj`#)y(dTyIW@C?jV= z{U?J-NAgO*h95d{_M686!m-P2XP)t_af2sdn5%HkO5xfcMBQBc-;%VN!lqOq6SHIA zI_^rFuDIqryEfdaDVx2!t=@sA2okv>Tr=E&3s`Jf<9m>DyuLJaRRq>ghH(^CUnz2a zrWuQLM!ckebWkm$%aR*j&TE2xY*-(;Ns;LZ*5y_?OqO=j5hIb?8x1Eh!VexysqZN@ zt+&zlyJvq)Rw>4%KOgwIzLRhR33M2{xgBz&9>a12b#P1 ziETl&E)5w{sPhdvrn0iK>&&B18+^XApCFAE!%OX$fIyiIQ6=HEE%*g1Q2u%3gef*% zS?pEGhQt?t0&*XU=x;mo(5icMxLVGX`D_Q9CfbMLP4_usU0el^Ag`OT3H5=Rh6Z() z$2S|P^hD+i%`FUlfU`)kw?np)4fp&q5ZiWr$10f@O1>55>r@~Eqe}M&e-a85iEs39 zH)iVu1*(l0Sw9V~IZAFONVKJZ1kA8K1&PolZk;gM0_U|-Ta6O)XZHg*T%8JLxcImb#bcJoY-aR$VB-h7!2Us~vcQnH> z%5;Rc@ zW)V$B!84P~R%BBac!wFE+g`UiUVXay!2>6Ae#|GfezH2g8BXp;7RUSJwYooS#M}LR zzm_b3wM^zrqB#W{;L9A`G*gheuJZo3vOHO$z#n9fZc~R#`T7jXk?CbyC(IpmNati) zQIYCU!Q8qM#>2?DTi1aza1AW?UZiW6#4Z5EQJWhJT(L4$j_P8SMW56O7Ewh6-z*Ua z6Ty7+koW5lO$qH+t1unp1#nUkWfu=TlF5C|U6U+y&3>?PSsORxGopC^#`*tX?>)ns z?7H?(8y1RKKoq4}kRqT+krogX1f-YH5drBU5rS~2>p@V`5(t8UKL0Sks zgg`>bZ0={CdH=WieU3Ta`G%%kNv>ViUh8+B%Ve3)_p;$`t8AV7490abIy`AWlfv)w%0YrJ9zAyc z&o_`_Jr5S@N6}*^|MplnNJv;^oBl;Nf5iV0kR4x8dw%r~WF6c|0V+U_e-3B*quu~M z^94{SRCp9(_h&`x=!th>2U`ne~MK=g6`*8kQoC^apx{#nLtvf3%*&?mud zZPE%Tkbkg2yUqWoDoT}608PI+h-oXO11WVu!6gc|`xGXAxFgH?4+5<;=~Tv}kPG0j z3>iEX_*+N_Q&mKJ$@ougu`3) zV7C3Pn;v={PT#)BO3=BmQ%z|IcUcr3frur1^6Iw{sjdr|n>UDSdeLI6=yb?n!9QNi8hH`Sg#WL+ zj{hgG0~kI);cDtd;{ft%6$e0C3KSG)jT0;IheatEZWt;rW>k2bhDmhj0O+W73Ra2h zjpfBn2cipvXzfEo2;T(ZULpIj$blDE5cZQmM-NIo_g8kWUH9 zr!x`2s23(Ab+6*qrjXgnN%4g(PS^fesvN=kCcl4qlGH@j4Y_b@Wf47SS5|N&Ueqq0 z9*C;f8j1FPvA-fDryE^|AIdSoT>kllUJ!gD&SUEb`I6a}I&sgfv78jx3kE|MwWXy9 z$(>ImQE#^;{7|EslzV?5LwtS;{CRCt4*b5;Rx~@-8r97rrrK_wxtZObO3m`6-vZWSMH$mt#0A?OZf3wiXhHt|kKN+f$Ud)1s%;He}gyRX%F zYaL9!#CGotX{ZD$-yhL}<~dl$8NCdFtpyR`hIK+N5_lK%bDmx?zKVuvactLp?Ho5d zu?8noZ%nr^sOlYbimi=NrX*vAJ3C@|Fi?Q@k4+fEDi7@)*hf>l9cQL1M~!T5YZolE zS5d1K|QoJ=u3j+}LL?OA9!ikQ>c@T#$^=0`=pSd0$eY{R8jC$U6;z3@g?_9y zbsDZqF?cn-rjv6~K7&!U^Zej1G4XUw0 zt5Egpv?Es4a4Elp&gYOEI0Hu^>=J0V1%yXgM~i!S&Ai*Ej!#_-^#7m~qsyq^`R%;i zSR@b(JT#GGkmdZA&i0?G(f<^Sq-Kv1eSfL=7$e@D^Vsf}Q*ypJ<eP9S9Z&bhX10ST2EAQcQO zT`3qYOgXPN9JqHcZfDnxSlK_B{UFDDWrE!!gYtGDNOkzA8vAZO-YAH>fe?m;AsP7q>mrUW72`hilC4U2!*jm7kU|ox+A~b7&I-f zuab#PWF)4<*|0i8Ar~Mrfw2sHMw8(ZJ7az8UI5LBY2XT=Q|D1AId)r+IO2XZI*2MC zE$>BhRj@387Ba?OM_I^TREALzcJcyxH4@>`!I`FTVE&M>(4_Z^t0KMfdeLjH{Sf~{ z`5S|g$5)5iiPendI~1z%4Eb(JqTWoiH%D`TdUdCB77p!mt*80{(oSM|TU^@2$-rk` z@u(YybwNUVKz(#4u8#Rnlbf5oV9~ACYSxdvqdTC7utob3>TZ9x`e;vsqjaE5pp&wj zsQ3Z=lUVfVyJ+d}^kt%Ec*;I<`54X-hgJ$YZYq5$GI`0kg9j>W;*sTx!u9a#tJXQG z?DZ)h7DM+X+#fa3O9KYpnqW6w-)9{Ny?9$`tBJdsYQbUx;aWg{x_sc|o?(iXQnpCu zEPT}U5y5_}gw18TU07_=iC+6q5}u|7?vTY0S5e=|`ac3z05(0(IYzYYcpZI0fDKO{ zXKbH8ea4}Z%%q+(<2bYGD9jiAI)6jHqRCyQod{OvW?^LUx*+vB&;jE{9k=hbeexZx zS4GvO+2ltm4Q$`n2$Rz(D2$ye&#)!nCM4Cn~{GKSt2&`gFe> z3scRwFVT=~P?4|ElG131E;5EwfM@b1%Y^yw_@kI=U~qMpGpTSXBXBffXYqs3i{g zC*zU!ZZe%f19bP}K;|OTWYi2DwctCATlClNZ)puHwgl7SXY{#+UDVv(PbR8RE%a8+ z*l%qCe2!=+AW$6P&6pY_$c&LL2JGF0)>@tiuyj$fY!F&rUT_{TfHLakIM?qEDEgu- z$sBYT+&*^aBXZ%gdqljTopo&$Q*j;d#KP~{5pYhq43yK8BHqsn6$#I^$}OeQ?`(fO zkn@Ttb^0YMsaCxpG;ji08Xttpo0V4y(Ky^2l2#Vi#k zMaA`gd#-`iBh*c*dp^^%;(4VdM%ZE6_Qq5sFn=-cjKS9Bzf`2RY^qL!#Xo{*4@T|L z>7jr4{dNdGdg9})$Z2Y6(v$D^W(`%mdcRhoJ({g_ic_zDs^Z9+0Nl{0h1c` z-I0qU+nF^{DiD#ZDgM>k?I4xfyGn18-x?~+M1^0pYY2MS;gMRPDTY}oCnahS46$Na zbP%)$WB8Nb5=G#rs5ql~l)jaxA$lI4Py(7l?025GEf zgRp&KN|(Vy6GN!eAztRUSu zG$td{i6xs=`PGY1{T@tT05%(tQ@^F1|M}+?F0iJh)nB{z$8vs7>eZ3Z-v8P1{^u{L zAON?SbMT$|-AUkZ?y|lL-MZ2q!yR{6%kN;k^vBkDIA|9OL?;!glPM#*;NFTV|IWG;x>($)Xw&Bq$a4ptR`($b5+ z4+U@ysdNyYhbWXX{q3=MaOfKN_FehU&vN8g$RX6o)#~=Q$E+@Z^uxugVt={cr*9q( zvRpdk-yX|6bOZZe{ROG>w0ZRPS}EzJCEKpSDk{a-#S?(u<=)QQMx8_OmmXPaDrXr0 z6pDL?@b4L(&bPu}1&<>Ho|blof%i zBzljQsNJv`D@ijPZfr30*=+U292%@O<(K8jN3rjKf^u4h_KbyA8%dKq=g`dZ>(Ezi-jAttDA$JyNk?kzxm24k}is8^l~zoa2S7 zkoFD3vf59~ic_&{joFZrl~5 z$6 zx^;wUxWvfI`JUAX;Ry<>EB&wYOMy$!ZI@kPxpyUpd~~wA{U4j|xpwhmp7&Lt{1z%) z(EK^ELwiiI?LL{+VgKXsTq?^8R#ny3S$RczPagKecsaPV3qPUYgEYcpz+Z3$9GxqR zcy^|=>y35wQ3OZ^9U_qOoLo+L3O zu(VjwVK|*NgaF>y0jFq%D4;S^CC!t(;-Wy1T^LN2CBsvQU3eJ{8T{cJ|_&7&q&YYK{M*s}(2S11oFGsadU1Kl+m z4j@SA=f@hbYy)# zjz|2}fMZ>1U=wZZt*!i-7nHsL__{b@FcYD7mriLNyU>}#fZAG6+TWqL=($LXlzb3w z6ySVfaflyxI|b=mP>@XNFtbSG$I|$I+Qu?XZ|<5J$eC?-f|Sghae$w7jTGDg)rgoa zZdysF;@gf<1&81#CGr0*68w{>Pe0amG$!#Ql!tJagNj7)sRGjZq@MsIFp4&Kq zL<{=p;+BVD6d&2I)9T$lx(it5%Xbv8HiE+F>UgfC*V#2m0(?Vw6wE@eIKSX$;)E={ ze1ec&Sw(VFI2C3{z(LD{%6HW9%LecJ_&s&}4p}}ZWj&|B#HU*i==giuR zv5S_%GqnWg`50&rV))JKj8ZaikP40ok~&FmJ%ij}{v%XAn+U{zfuyE0@A#`(7@M=@ z3+|V#MmRs(@xv~3L$*19OY~fR-+G<<`i{(`Ko?Iv8tpZMg;-4;Rtzp;n+trK@$&25 z6oO!jEe9K$tVA@S!k6R)oQ7S7a8|k;8GG18qN?IoOPjF9+??|1fhO zH>@;&p6A;>oqUJEv$h>@HHtA@^fkKbe$WznZl8gWp&YXy713;;*PglC-m;Y*c(#n5 zPNzRo^Q?#?QITy3li$$Ke*$x<3m{1R_^O@lk9!WLjN`dyS5DH?YP z-bCl|P=U3i`l(o6awo8?O{_m2#AG$RTq%Se{9&S4Hi|sV@;-8h9TvYzs1i2%8M3`A zB=vSJw*H~2^$}|kgD=ni`%C%z0lCU^AG)>m=|S0d%q*sM-+6t1!QEHW+Pof1$k!>m zBj+6awlFUaM0nM1aC|#k!+A4XyaZ{cYlb2X+Cuj!g8V z+G)#6PyQ7kZ>$rn&s=hf1=dqkv*+u*jb^ZG2~tw4g3ZJT*UxYlH_*Gn3Ii2mi%OuV z%k(xlNT(#Ild zPan5kt!=_juuoeMyWJrrt%|X_MFus}#H_{c*MW*Fot%`f5Vvcmt&oWI5@Ma?Rac}X6@6d*efxC7vE@R`g24(vvpCz$ zeL9l{!_}!eu`$|IYi3)PJew)$gjP62B8$Ybk?fr1Jg7XCG)-aLL_{ z#+kH`+`>wc;yghs59_7o#!veV4Z@rE^(#E`k{nmm+{OcWRz79q@8T#QL)=Z|8lr6W z^7BF63V?_23(c|YX{4yl>}USRAW!qONGB3@I*UhAjgmB3w1D(q zNt*X7R(C^Ekaa9Rwl*V$D8~04&nbhVT zxpilo>|Cc>CKvqxj$Sxx608?i&KL+Ge_hl!`N$PU=aIAk!7vrqj?EQ^HUf#n3w?xr zWq1+)ssckKxI>{+qpP}gV>r0m`}{@~P7)1`2P~5wFiIn&hOcBECbgQ^Nq+YC3pB7P zu&O#|t~ny1E)V2ilnab-I(1nZV!$i54>GEsD&XjMwcw_S?*#qf$K@ z^9mhbiCOu;%%@|;@KT)c#m;Ty3T|~T&bTVYHyMpTKriadn!q z>(m4D#MlBeLbi*Lz%|ZKjxVth^?fSnI}4=^rg8p%FuFJz*5lGP~-mZ1RAfw7j<_P?1G$q4zflI z(deA<7Q73>u+Dv)oablXb6v1oLaRSeg>>@$uHVku@ve|%%&*-vE~OLR52fRr8>e9z2b$$V5lX`-@aFU`((;J7VcwJD7DRie)do3_Jdt1T^UGmZH6tCDc( zle)s0?IFf~MAOsLcgA;9Sf8iaLm082E4Nag4f$@eruC5LV|6=%cK1*j-q7B%y6$P; z^WL8vA~$m{puMZj6*bOeM27gTYMnMb@`_-`{Q%h}Y+B{k)2I#sibPq@k>L0; z+vxZFHajcnK{0v7!7P5$$`S{6X&GHl!;;79n{Xm4kBB~#qip4h7v0Ca?jwCMN-fwL zUrs99CJ8rcl}?$jIXNkQ!)Gy75tTNB1NMw=zNbSigN}O(o~aCtjv1FJ_E&1mp ze>GSWrnzbz<~j0d;<$79IpxqZiP77EmcS7k<(Vnx~9b3hVKj(&*B;s%o z2zl#j-BRdzlj--h2T|vDLM%2pbnfkUI5%%gHyQc3R&YiwMMAtu&ine6C1;|15phOW zlZ>`AGl=>ZQ9Db!zPp<_**Ff>Y*T~I2;vsA=Acmi{Cyp-Ja)8iSWQNndA~>+$4vk-o_C#Z&&g$f*rJRYD3`a z#H?{?h+k2#GAlu7(^N-zaW8pJFf+A3xz7IT$Y}arN7~5eccV*vBW}}0!4_V2HaMT^ ztoX7F7v?!@(c+4f-vU;D3eb~*%O4wu^06qWaxlzhEe|^PSV^WIfwCT4GO0F%8y4_i zQSJy;cf4**xGT{ga5=_~l9BUOt4ms8t=RBnujG@VxkVLP+`_keS zOw`i`F;2>Tiqtt*QaAq7@=d|*w3qS|!p!F|eT`b5f1yfY3H(PnXw-%fFtmRg3br&m z$X9QTflqN-;Pjl0WN6-h~DXC##nMi4s3l&O!jf<#h;mAS3iRms~G zS45K|B(cxE!lI|>C{hH#yJ}5MtPojlf9k2o0x7JRed){l^eng_!_bBf zyey|`AVZh+rPWH{1}JP+GB-groT3I#@ECNw zV}AWHTpLckEDmMR;K{L#3xRH!1)Z{rmcJlKVH;%Zq`WKAeLv2Zv|4rUQD|~;JA6k* zm%q}Qe3fHx%XPoyU}dcF=8w$&gSG^p7oK*^g7i-$dx}SdM*=AFF&Vb09vazW=-by! z!iXh;G_Dx;xxDP3Iz!q9zT@XsRKLhbc2rmom+5i{6%q6(FMUVGGa-YYrS2Q~VI_!8 z`;Tmfav$a%&E%$3KG=)9>%!N;7|K^b6b*N^CSN=fmK?_7KtmRD+IZ}SoT5eAHZ^^8 zNa3%swz&MLa~To&(8tKrrl~CHVtjVI>?WeqP5%wn?4;stf>3*FxeYQFRK4%jTWd5L z+zVH!q4@M0Dxk{gU#9k2!4-!x)WJDM8=iN_M`b>5Tb0m%a)r6$r|RZL%MvRa4^e5+@#}KYPRPz<-?oVm+DO=k(_VHMW&(rC4fNwNp)A-=Ff( z+FPDZrEIkjva1Tx{I2gqh7f0MK-|Ex(sMp8i1pI~v3YT{q|<|ly#Fy>yPY+juhwp{ z1>)M;XlZFCVEFi}YvY`Chp&361HHckb0=$uU{f|<>7y3@D=$RJl@XgeF)XOq?u4xJ zX0t-)`;5o%aE4zgm_=nx9ivWJT>LEQ5uO{%I3SWgla!O<=uw-xcb~8Rh3R+S^RC8g zZt)g*j{|X?5S%btqDKLt#POcmtx&46Ln$K=CfLx;dyio85qzl!_VmuT5PCD=t@L1E|VPtw$JO- zmFlk+NfF;C)=picx0XQfHF()OsE8BQIb4d`@+GofFERGyAhH-7$eEa=uucsZa2TNMKNr{6cP3?lnmy~1h@zSKJ*c@i{g_m5E#8r}nXipE#Tk0xl!Tu3onuiJ8rAbYy887t)0LuGZTkiBi$nP15fBW~G3ityqn<+( zzd>|EIVxFfVw{1dyn)DcmH&n2q@m2rkY?xNhA(kKP6QOp&m>%iTZxQ3r_wh%kmrjm~2?Xc}k zynUe4h8F5g4~sARqV{!Z;ab2zGEzI0lMs9br#%HYCjhvxE945r>Nbe;~G|);W8Tl1o8TwumZv=zdkC1uYQb}VGwNha9q7C}bp z!(*7TY>RC>tz&(9xi#cuh?@HnT+fotys5e~?6gU_wn|@l%@gLi?Tb8T+e#xJB5)jH zN>GX+)#knaXp>4ZTY&UEZyLjQRkn*&L3I+i{Z6;Ny`1{A-f zOd8!$c1-a`xoG&)z*cP1{biZrndxBAB+1BEyIR^f&DZna$;8~{V_30E>7?Qn(aW!) zU&}e5cW*6cM}NJI%VSi{e@I8G_Xrc8QbkFrB?N5V0h;-+=UKopk($>kdfK0b_Kwl- zB||TLo>aKvLrILfv75Q*@@|VFCEe5IYNhnaexFT!iogXZND1~kLA#4@r@%xSCmfsl z_ILsezTS3C{gt%-$vRmY(Qiksc%nlr7j9BWLa0a`+4BA0AjI%P(AQyjhNC>< zkEHvnFVb|ZM=H;4>i&f%R%JT8U~onk$T2FlS4W1VzghgP2Jd=~^@tWzI6v|2 zf3bxB`9OCb9X+N>bv{Mw-$|fJg@bgcZvG{58=#c3&?M?Tu`|9nr)Q{X-S z7k|OrhI6A0PYS(26-~(WJ9WZ+i|{Po<7e3PBZH z%i;LquS@4&b@&&&8U&W}%_05OPNu-bD;)hO?JopE>uHWs^PQD(AsE3WLEN)U&}!i3 zH>OaujhcQCn}PnOMc^{aTl=3G;LD*HR3=5KaP!B*|v!_t$j*XX=+dEXz= zjJ*LjaaRZ_utz)Ua(w!;4vc*$b?;OwGhIOL*~4dN6vnI2FbcG9QAhomQTHD>&9Reu z`H`#TiPW-d=EHvK-G6Jqcem*Towq7=x~RZ0Ro(Ei(AR2?;#7Zmzf`khp%NS?)tDHM z<}N!%kN-u3@{Eo0+$+7eyM>JZn(+U$$H+Z<>_lpQi`om8KPm=C`~v}%Zp}7Z{+GUv zsiLRPy~;l;_ZjvV4a%kTBS&)s-}dJJy)w))X?Rm~n1vT;=H}YPs zOphz>dhO7Ji*4Bael-T2ezQ|KUf>7dlyyEfE`ff2`EjqNCE1^TQf+XnJ?1TD(Q}Om zr1Ey4j}X01sP1_wR*hGq>e)|r+6Hq}s`#4r2S8`W^_BZ~4_*IuBhH+A72kVmn}8{< zQaclHiH!FnTY&y(I{o?rfGxiYFkvvx(}|x@RE;Y~GwZm{zd9`GuWl+_)_Os9v1Rtz z_}by3mS;|X1ZhHCwZp)x&Q|GfFPQ**s(WJb#@dkWe2m@I6k&O>U)zH%`vf@-sP}SS zPP6#lYez|yrYe zCKaO=3JRYW2-s+^Edum{nq*u3^`!Yu8fY}<_Jn+(E7`YL{?;KnJR@AIQJag{1rr0B zhE6ylQU&oV#)f5j3x9J}-=#|*UYl>%Fs$tcXys^qhsHC@H>P`Kui9J61W}iMzHb5A zDU@k%o^@V@`Y=zC0eaiK)153KhRu5&f%TN5ihG`7U$-iRDcxH@?7c`BM<8uYF@+6? zDQEmtKUc>j`*=1#m6@k%s9kt%x9c@7FW-4&F}USF&WbLvVk*8fB7gxGk`cg-{xIST znw_|@FSK!0ApEQjHCNx=Ao@x_@* zWZfMl8kwW2GFFRLb{>(Igi_QV8!1v*C!~XBS(95y5%eTU_LQgti}msH9FYGFTdnJb zj5y(joevBPR@~%>#!F+5vA1+l>0T=z>yx*bs@ik8*8H?4vwezl+P9i~jlScfh~&fR zAq~1DIW$_0QeV~HzO?$w?@O}Z3`K!jhHO8qYn?)l2q{8U+VmIHY?pP~E>SShHSDL? zrj{W=p9_m%7N<82_-XH*9-ta&B(7Q@V+T;napZ=#n>!Kz;Z25o!cc6W|rz5aze~5;uO1%W|j2md|usQsO7wfdGoPjZ-JQc?C+6Ld=WKPFS-4-#t z>yk@@ONoFSj6rrcWUj6mYa0OjS+~w^;kfawOr++Ev^%t1b=_)lf#EU(SZ*IY+tjWMtKK{7%cV=sLZvPu~K$Xq48XgWYP z-4ba47GQ3#PSxUWB~IJO5*eIs05>nlX48k`5u(c}G|BinO(cA6%TA+WAQPjn8DW?< zs&V0lu2w6lI25V5guB^!b0KWYGY^&-Lk}X7kqq^S?b*vd->)FnL@{G0lQ}nY{Vw;~ zR!w;o*dfr_hzaY0KuPib4RP4H>d63ZuR;er3xLE+mUcIPtpad~8uc!>7nncZO`6HX zp%dDy{Pxc;z`h3)agd*{9LWISKTTSSNaR1e4PU!U?#uQ&yEEmEiiD**7!COiZNU|> z^@I*?#Avd2ke%dM6Q}RN-l83G6%lp`sECN&(Q0W9&H@rhRWXt&Xo7@ExaNkJte-el z36L)d+nm>qdlP-wURvdTant>X%ErnOVL5`f3?M`<1H#rDqur{eaWVN3n)YDUVpDIn7w+S0TAW^pRLZflGbmtBp-u`A`; zpkIn5BC=WHi{ww18A;%a`J^`?nXNO4ft12bp?$J005W7@!zj8}OAD)CO!i)}>U}fN zXlA2#a7}MlJ$yoxX-`}14CNDYTu27>yzbXvzOCtjJ(F(BU z3fY|0yg{5`rafmKq;B`en$kn|K zaRmEF0^wcN&3|SJ*G1K0Ad}JWrR&ld^q%%S@Fke8IK0Ycm;kL_YkwdnUUqIkTn{`K z#~pjOh8w@@n^%cULm!9B6k!!fV1W%Lt=k2hq*?Ky?c=GL`)Gm-<7=!=TKJrn;Pw4e zS=29hS@G(UA4L*NN4^iB%AT$x@l)OoK7wds>l$?EA!mf#P>#K;z1H@+lF#0fuen5q z?-rA3H@Gu>qbMbkWS{e>VJE36)$?PbL*Ph;??PM+p~sfW%X{mJ)?B5gLWU2L&hwVj zK)rlVTW+rpxor-~PGYGECQHJ}xNY*s2_QRiVAzY3t|a-@E`@O_@y)v}BH7`JJU<8r zRBdZ14LoGA5H+nya(=bafYO$i!t+Lsl(_j`{_JzFxMoBglgalF3QwKr5m~&Z@xnjo zvkw|IBBz84+n&7FcFok?6P_I-QIM{(K0RY)&bK;`UL}0TO#r{cwW+#bbTEtCr(v9= zY?Zh1?GzXF)02~aDAkgf#`gW*H*JGHyP9;W1CrHXmcXYRTWDrdmNir)hIzMW zS@lwa*r!(g--sNrS-rLBc*KLMjrJcz1vA3?^E6IN+b%sU8ziM**B8z0mRS04h>Ka2 zjWYD_*i4uALXdQHVG|(ecy8?J*5h@+W~qV-`T;S(oFrc|TD^eR`=QZ|OXD{tjuTa% zJyEinrmW_vntb`y!U2DE?&w__tVUE7WN2-cWn+EA#E(Z@r>{zdB`ipTlgH)T#tb6b z;$TT8CWvY&1r7MIpm{;@$L#(4@w>C_A9g^H6TIS|aq?`1NwTgZakVOVFXl`}+Ev04 zSd(AhqR|A4Zv&zomi*AAp&0tLXvVi7+pga+LJRhGz-~GP^6A>#*WC3c zBCj~PlIZ@@+iuZ~c|$c)@oRY(En0N3f&}xCj1nR_jr9|e1Cp9tbzJ%|PS~rFQ)q-8 zQqP-3ltHqn-%C^Y@nXyOs}8ne9)5&?j|H4!%Rs?W3CJmdLa46BrgpwvC|Jqm3Ec+l zqox#B=p5@?1M(Uc8^SX@qjZ)YaK0*}rt+Mpl!}>vOnkSkqQ}XDra86S2QHPT>=+94 zN4<9YWCRHOCGMvt`78=3xVwqeXSS?z3GO528dvStP4#&Ig%^#Tk%6QAP3_2BzTW zEYM}JPTbTUw+koaFFCcl`96ltBl&2|*Jh0qIWQd4bSw2s>0#1e?#CO2j=F6(y*`jN zS}}%9t+m|1nfI?_8=r=b&`({eGw$EY5@lBN>$kh-=a6omfmHX9h0Tk7C)8!*t!S(U z$r^R5jo!P`OBB6~5qbky9+X#l<3gP0kl()BLwgmrjL`a61#?ZygzE)2l@F&~6PR{% z6YL^ra(!2J?-2s(kRV3qD1c6}2u?kdk2s#?Hr|QRE@Y;xmJ_*PR_KKi5#7yC*Y7=i~fGKMWA;}-t!zg zsh%toy~V28L9U@5wBOzn54%mOU-Mws=#X5>&Plp!soGKguGthm*d(H~CwyzBG{*>j zSG4iJUI5uXlP{~uKrR#9C{e)PPe*CKV@SGtmYq*q3-+0 z^=QAS%h`u5tvP!M@(y9_1YvPbTDQPOTxYO*7Gm;w*tRK4c-+=A*$&CvEb#!&`EhFW z;>)ScSL(~#gUVDY-W#{)S*A6Z-^ll_vCL{5%m|84H$jV|EuLnj3^MiBDtHP>eOmaM z9ewIxpx0Yl3; z=Z?sO>+ z;Jy^O#VCOu7jNN9jPg=il3P4@VZSKzU;w+MoQIH~{s3%M8-%1DoSHybMTPp-+beq! zg_cHm8ffF8M8_qz;7l_X2N3@ipHdwtmTZW16_=>Kvd%uq7t?S`XOKv@n&79OWMq87 zeYO15)IcZQ#Hohw=5&$^UfmJbMEIwIcWRU{Bb>dj6;!aazh)jhT8Ay)SZLVe}JxB*QJfUNH{-8g>(P1Z!QrJRD3`1S!4**ke|T`3K(VP_0BFW4QIcR1e}W7)^$!TRL%yYsH_ zfkDb7hxpPyuk;=TbE8naot*|JLXJeopWkj{_0TQ~A%=G1c7d?}=jbqkUJvvODOBo2 zg6X3t-)I*qbRA8&G;9i8!bN|3qWzxgFj?1-N(q9g?k`03#{I%4lxo4F|$`ILEEJ`&e;S9LjvN(>R4l51kQ)U za47nHRX<>rtKd5W|Oyj3SL6H z*{HqakdlHW4fM(+E0s1dXpKhn6z9f(1K~kB@+Qf8`o09W>J{$(UV5m}6<3qaJ&fFE zy9r;Ivu}VL;F3Ixqm*|b)r`3>L5{V$R!*tm_^`M8$4H*%VO@f{Q5+j zmyp$vf>n%5Q@U%LL(F_`*CVFhT%OWz7e;!5=fCS;SXW<(T4qE`NGAvCrP+1txJ#{n z-P8uBXM&>FwRG%t zqI%`YI<2G3* zC=b}0Qbt`vg$*UR%e!|v&A5L?6`((TBMBNCN-}S9TMT#TG)6+FS`V%iu)sAUDoI?oi%Hg=#)AXbtkin)r*Z3*6y7I4Zd;BNM0zezLc139pY4 zWZ;)59t%|5ofa@FB(nv-k>}!oV{c&dtq)e^PJfi`thDTJ)&mVvB&d&G2IarI*D2d$ ztrG^gKfB+SZ;ID?_`_p^bvh!b1+n=|zJiuA(egpQb!h$U!$%ZvqI5Vo@@o04Kg-bf zir@_f`&cT~C%8|4v}vj+%7ny2dC(A!>MNdBHG<-idCrep90a!?ATgT6V*KDzWj-0^jOPn!U1Ej-~(M#w8&dU`hSL?>B@OD5q3yd!^-$8lLG-f6 zH#<536#||eMYQ4+&%k#`w|QifleqEZR|(!D&v(W0S?xaJ=cF;5m7bi_Rf?`>Z+a@R z!+3bw?FR12znuJ-7_nT?N4_VYsM#a6E8N>3y}>HgXYB{B2<5MDR;?`xyAVz$~#4T=%dZ8aqRE zzJU(}DOBm6gb14}xqf2M2~kn;GX8pj0+ybAAo#-g@pBfxl~PACZ!uFA3>vF0o|1D)#F8zkbw5ESbD@@(avx;q*3C)+ek92Orgve z@}_V5qTn89ixx`|&Np@Chlf&e6^T*~<%3lcARdE(9vt>CPp3|vs?1TADK+?q-9T>2 z2A15jhCWT2qkKj(awOjNU*}fk7VP%-6<*pGqoKci#%)f@;t1&n+wO{F@nsgPO7(g~ z2AO_VH-&KFCphxH)lR@7(urB&3a;X_SGBrO3APUXAyC?}<7N2#U z*QGjMUd@hGW)GmPb_)NTS#wk3`uAGxbV0euTq4vr)1emk zl_bEzp5yl%7f}<6{(j#&o)D}^@pK!cFraQv>d`D3q>K5q#ssN?J=|&{Z*P8EuV

6p695d{9F*mnL(AwU&U^$t;6KQeR>h!0w9G5#8DM_%mpZT$LtbI-zrS3_{ zer)a3kKm(RyV(vKX2eVjtmS1rA7+wiFl85MLw-fd9 zR$Z09cEEbFJkOXiXF? zy~e0_!Hzui!l3ulA%&W5`S5@d{iS^{!@Sl9DDIxchAA%{PbCa_y1ljV;KHaGCq^$< zCSm+2Nbra%^%W>c?f4+mo4EH5rXOJ!y(D>Jaz>)&E<0fSOkHCPWA63U;_z)YC-hV# z$BQ_X2wWWE=wIqq~HASDHA4f>z?sYuVRBmU)gC7)@S~e9hV9f%F?oQ zL^DczStv1gOtAA+FCQC!J3oK&wlQun5+&XECpp3pg=QS-E9oX!{qhIkPPqie}JO5l=yr0g~ zJ^JNl7->sXhLhf9M>y|pcYu&dlkrw_*PdSe>6(Q>NN!|hXi|qX#ri(2XDtgCIYJU`$^jb?}dhm>PYa?mdeWo!~DSyd*$ZQ>Ym-_KfS8A;Xd$~uC4+KVP zQ5&_XAk%*p+o^qU0nMI6c^qod+34$|qRdeXdrO|5m-qX&__yPYIca^C^7`s!H6Ix1 z6^|6Z{*o+sNy2b#gxt@o@x~y~PKyIYJ`(IXpZ0q8b9eCdH?YCd4OVN8r^zA_% zR2l?H=@Jo;?gr@?5a|{bP>@i%hLY|Y8l+pKV@T;3h8$vubMbr5d!FZ!-+9+r=bv|- zv);v8F6DOax$i6YwfA>_wrVa!#c=1*qRhz%XK5IW9V7z(TwRMK@MPVq3tF)eRxY`C zLc$CyI&j0_+9$hMiX)kSuvTyCGbxQ;Zu(Yy5_FV(+kMdca}bmC#*lm7Se^mJ&R(17 zW*}yh08*XiZ0;kz?3&P5opLXy+H;SM41ADUwtsBMoc9Bramc10DGpEf-kp=`{@6dT z9H0x#hMMhW9Mza38?hqC`j{6|oe^#^*2!rhgR{5vImB0>FzuBs5MQAXPFk(VimOPj z`T1$=+3RCcW+viyp+Vs>)(H_*flpR6@7o|^f~+?l;nu_koX>PyiTZ}2*zfH-GF_;P}Q%r*|Y36=;tD2te^Bt6lGx5%gco7e&16@Yphet9vHC5m_TcA@wlPC8$T$(rZr3YFba~|`*{`aWLB3g zA`T-L>Bjy2yHTY=Z)1?}{KVW%k^M&jL{+e(asJ|GS?E@BOvydSN0cF44G=CYRXSrQ zX9KC%6ZVb=PN|_r@jVjS7UV%H-XPw1f3(j{P-2wLU8wNLvDIUG|l$x{cKxY3G$59 z^l)plu^q(>xP;C8G4`ES9BT{RVx>8nJ%aEL+7llX*9A3y(!o6ga&!dx^?H9DP1nT= z+vUNc-s2ew>l)cNmI5qat4ZpSxHMWNb*$yXTjwfB*Fu`mAa0wgg2K+6_wfM=HdT26 z)M6$-AUMmIp(vz8EZ)UhDno*seUhCY1wM36J{2r z-izyIo^#6g{jiR8WJ`tBovF_H$LV<^t8?ub;FlF{BV|)Y<7Q+>v{QW|kCj(jTvJ7` zg$;w8Bh$hp;MLi}MYdG>C9-!Mb7_YM8Ye&<_=uLkTnTjA<`eJL2>@cl>C?%8j#aAU zQrt63Q_l%ud1JC)fTZUy4A6Yx%K8BVlmEu(fo;}P{hCkl8Xgx)NpXaA^hV1uIQ%3< zr4j1vcDD#}bD&em^K^h>68;UVGpvr(;P-1I)$R4tGCk7Ou7+y;59tGml%Gl~jqHFl zZEbhqM_M=SPb>)<(HU~||Dq&Wx*>b-BbY@?ysRb?W@E}Vf5gcs+9j`ORxX7UPsA{S z_Wo9qT*@ts8i4pBzNpSA^r|ojNFjn8|8GCk-JF+4vSw}nm)QQFoBG^gL~R>Z?|RTa z2J(T-N*lI(K@BcUX);}_5CGuZo6e zbpYFvt*7j@#MLKdW=M(s_=X@zTrE&Tc(*R-`FHtv?h+=|%ulIqKmb!L;JmJu;1DPE zw&eDeFC)6E)W?8VtGXNk1UbTLF)uNgJHCxR=rxPhrZ*LrPZHosd_Y9s@7HE}rNJ2) zQ$8#NT|!r!u|@6#V5s>GN#?vAp`$Fsz*77d;g-}LrR%wjyd?kf26tZpmI-qX(cZuG z|7{{VpjG+bpS#+1|4Z5hCS{Wf6eg47B_@#WNG7_8?Pn(K<58M=#tZEsEHb`MV5RtL z_+LQ4QHnnlsUWyz*{5N^e>Mb@r+_;IQf^LIK)Xs_pt|CHj}FG*VD=1gor2VL<4d8! z;LvhM(q+UOe{FUaL}YDr?JJ_3bxiOsWh*EEBFoS`-07eWgdC&b_CrJ1(*wJJYWd9@ zHDTdzzT|#oxQhL}Ek^wO4v;1()b175Zk7)zlzky&&}sBJ1B#0Vmg3J7Y=+cUuTSyq~EDId`brj=slBG4mR6pa=&nE(HB2 z*ooaD(Z?e;^Zn2@G}7L_?%cyoVM28!*%ew3EUD4ivhTxNfTqcT{B(z~c|lR+xD{V` z@$N?5s1B@eR5y?{9b6O?$}$8HgAhESbw==F==@synB{5&3_jRzG2@OH(S$^)Yn04* zpNy~P71`+?pN<{#CVLIa@PcKccJaHM?Rc@V@iVM(6zbQPf%rrHM%c?0Rv(u)3b3D7YCtG@;SXn-@I5~X{-jE!lP z9bfu6-d)TB@CNYYtQeC%DEhixv+CTV_iq;4F30uR_A5_cXtS+#1Hk}Ey5UVX0@h9(c%beQDEMDltNoSC9?Da$ez0Nx# zkzbs1Z3I#;7|>Ga7U)#u zoApGaP`dULE6Ki8P}R}l#{{Cbm+L90s+m#AP{Rd^T~fSV{6<@w3s@ScdZZjRfrnJj zERasQ92o~r5I2Zk-72zufTRxl;T}m}0z8*0e8LV6kwozPHk$v>o_nHf!A1du(uS}H;3|Q+IKGZuoK1vFH+Ato^3$f;#aWm;OP%$3?brY?X z>$50@hpcS+b5-D;$a+MqNf_QCk3J%U)DX9lJTr?X64PX2azs<#3^Zu@^pYR_L8@^e zm)GZ6%F07Vt&Wm0brgkLJ8iKpz5Vch(yIxDF#>4MhYVnNdMeHsi?wE0;2{or&f%e#hk>Sp~&^ zg4WPr%GOq(jL81V*tp#G86P(NWMt#;IX!yo3&fH0yyQVyldl0z5QX5I{RHnd#D2un zot;cX!0Nm{%w#H>hQKTX_N zjpaU9X`X7L*Q~)ZyPTW+Bf0FC&=7utX026%yK{t^njWH5j=ch$(qapVveIUEMy(8t ztUr%=sIbxT5Z?kueuMCWR9{76A#2ua7A(h5s^=Uxynlfqe92I<TaapAvz~ydRwmRVO(wmQxuUMRHer#B=SL?D@K5y|L<(fe zI(A^6ghi9yzL*6It1?!pTAmeRPRac5W`>oR|wOqe`LBbK=kIpyNW@%r)(HAzt_SxCgu5$eeQ&lP0 z0L(?AeDdE+lS4`Hl!Kv4C0j>IJo1`ivQ0Tpc%W%MyVDBEBEqJOIjdEL8ZmihcEOzS zTYE+$BT%V|vaxTng8-S770w@3jo?%nCA~U~Wm$@8-q1$r-{MJ;ecMZ{#YChxzyY&m z<2w4`9?xy{9Wt7h#bf!KMn9d|kYNB;hu*4nS)OY`r5eT+l^I&uOE>Ns4w9H@nEf*B zWN`GMx?*bn^aVh$Vc!+4Xj?@!Rz3fI&n;L20?ez_n`&JGS&y%n2H7r`^6P0@_PUl! z4E5eG(Z=nsz5i0h^2yy!k*BOpA9}AEIbi)0yAO7GnaJ3yHB0Y`rC5S%QbQ#)SB-=J z{ki}5?GgvdMQWkv78F?qBuk}4kDU^|_q!~*%nKLwit2V?XV2%eWKrKecXAppjQbmo zYU+>HSEsnzpmD;Up~5@8a=Z&gaV0rzvq?uoi>(_9r6k(Ig1Z$@%AymphT$r9Sg-$) z=l_>KQi6b_xceQAf%_Q*o;6#->$)|&1g!_zeuyenu;sGX^G+I29w=11%LBw^{ND zBElQse;keQ%_f8z=S;?y7>>6n)*0ofa_ztQEaFTXdDsqVI*_4jGe?>;!_c7K>~ zp02P(CGw-rrA>N-(YqV=6Uzxsctc^rX+?Oevw2fO>Q>EM(4@Wg)x*42`ZMlhQuJ2f z9hcpbz;Qq%=&q3miJ*3e!lzE7E4hDOAUcZWZt8}R^N@5eo9%V;LQ-uXvi!Zc7(vA# zPr7l23v@ep*K1%*F;Lyh^xpL~9LKAi zwV(ACoryNIBZE7RL54PD*drGd3J;(@TT8sCA$E{w9gkXuQ;&zM-kMw*n|f1g*XZx8 zTjW?%8C+D;G+C)X;xg`0wqL&bE5^{*!gc1N%6oT>bkuxg`4W3jkdD-aWwNFSZh5la zs5_74ofdG_={rF**76vneN*)8FKk?zDIR~8m1v(NP+s8|c<^*6gfrrt%gFnVzkAh zZym$5%ldc37Pob`%J^oFe_D@#!o;WztMr+ZpQDJ2#bP_0kW}>rdye~){(3_M_fPlm#I({E1RPT98 z;UWhPKWc;w3Qx;2$+*r-yBbf)0jTyoE6HId3TC&$v-zRy=0qk%fjz0gvu1j?`ZNh3 zutOhC^h{P*tu=k(ksKWul;bHGrRr2lp|>8oNHi`wSy0HU45QDm_f0sdO>%A;fem8! zOoXf6)CojEHWPybCKMxl6#5Ap(=i4+W2F6mw#!IU+v=Q81s9d@JFZNEy!0|jq2e@N zOEFP+*^0}KRExJ6A*A9s05(-B7l_dJEEpNu%SN7|#-H7AZC6Y*9h-JiJmJTqc(^7> zgr+R^?0luV9RI;xMyCNXx;r-GH3P2DxCgQCu)47wG%xPFW zb57!W=GVN9r_^t-@8&SUm*Tz^O#-%u6^k3MS_7!r*KJ@m7sn^ZYZv(|WvyY}!)1~` z#=jQ|vdrMM$gmP~mLj9PBSmvnCFv#xEY;yjn6+_o7+Qd6XU4M<(bM}h`G3$wHcHI{ zx2L}Jp>>m66mWZ-EXM@uL)CS;xe$)#y5>2VFsC7U+C0|oBjx4L$r-5oNcE8D8T0eq zRn^BWP6dbO(ohuckMzMf?QSsvkeZusSTwz7E>1kT%$o-*UU}JIw*qyrt+9uA7D?Xp zcV0QExG)e5{K_d@L>p-D@%9~Qzd+9@(NFTgywr$(s+d>eX;*y(ytx`fq&eIEf z<)OpNE*xi-ZGwusnDRjQuf5JcfnxEDe}vxJte2a#%Ds#I*zBo2>>K90iFHaQ78$G-&An7F#-U$4{fY{oy9d( zF6I={3iX5{+wS=85pHgFY!NGHw1{uLM=+dk_H0$#3h|CjBXy10rO?RK>wyuPH!om5 z$RXYBu1Y%q(v~tc%Hxq)5$n)${cZ1s)Be0$hZ}y>(#N-Ej;uQ@Ia||aCYP=FW)V1? z6CrG#MbrE_?^gwth?D)-F-L*ZDlSAjocgn?=5j-+eHyCe=!;A1j>R!YsWL4(%Pcr5 zJqvqA!>N9~7#*+?5U-SLzrS_MqY(p<>yju1B!#tOZJh=WJ=54R$34QxhYw& zpMK0<_om9~c{H{x3yU;QGPkWPVvI?3$h%%(U0>H{!fbPDC`?{4uQO`yT>&4qz$rpo zXeZOyEi2j6f6dyr`>S$ahONAFLL}RWV@E-$u)cYGBGFH!< z&K(vf=IXW_v-3s=N`_`b;U=#xd5jJ{Klc zkcRHYI5T6+#=kQ>V+k-XGOc?9e_i0{GpDb$3sP~6^saHR-wuZ~a=(^$4or)e%2h2d zzm-6AL&xEGNun=ZI{6`4kj6&KMOlflc1VongAcgOTLs37uA z?#`2u>!iw~QJ6d-cTpGDaEh~e)O zn%^-SaJavJdl)iWCVCcRQ4{Ii@HJl8b$XO5iKNot7PY+YnyES=6^?Pk%;}tdi^Cx<2?3&^bESqRub0&&8 zsdCQ)YEwg>gCsnWwa)NsBuKtlZ(?8MlogNQ$>QE70CRNl*_>3T<4??{{h6*s2|T)S z`0M%n=Y0QPLpXi4s+I|SyEJ`R7L?SS^U(+1g6QFNNewk~(KZo-?%=|_LahtGEU>F6 zVz&qboTqP%AaQ;2+(E?&l|w0|*RWOQ>ms+FJ%J48HS zJ(_QY{XngJNw?@Eh@f$B0a&2DMWu&Px72Q~8#iTsr62jIGOCoC*-Hlr3kV~I4+mNk zE#aJ)p$g2-6Q8ALV<;CwdA}FJQu&LAbKNiJuyhKrlo^)ALVN19nD3I60$Gqe>>1H6b-IFC#s?7y%NHs`lF|u8(X0lTY@IcDwtiPdf~f0 zg&Y25r0u_)a{K@~Iptl~sdN_0^_OwH9~Ff-fwnqq%e>3Q<}j)94o`mj*E1ng=YxsL ztV@eu`C93B2odGqZk^)KAZ=Ku6<^DYPgApgqt>v$+eNh?T2r3x?Dv2BzRRyqdG5D~ zWfrs%oN?vSKW;e&Fkc?tA^f+CvP|GwWc>bRg!amktpG>{{P*eq{{3YTFj56vW8zuE z`Rn!nd7MO$g#GTxm9yzT&yoSIsaOw^Uj4fFVxY>c($cHHSxWyAbCd8-u;c^+P^(ZB)BGA)ek$O6%bY>){db4{(`baiQy2Q_&c8iN20&P-%gUepTlA5UL8*3%h(7XOEH5O! zFZNl>Wx+Xc*6wu_`maOp|9t)L*u&Y%E!Ja&5J12#1MGTw{Y}wl)Yq~f1}b06x(vG# zraLUOgOo?gp)V4D0m3ft7j#eQO%DimK|lnU*L~O2X7Gp1XF;N&u{0R23M!{#;<$6A zr z6hDzUC^1o@Yu7LVMpnd3E=y6};0*A}Z@cZU4)DHdy)BoavbIwF@#-R><_zYg`s(d7 zP~OUA(kg2Lq~1n3=Yb$6wdc7%Y5vO)a_wY`M^|T<67l5(+sTKg{dwB#~u=R9fv z59L3xL@&h{4%+6dCx>%X(yh&wgX$fXQqd=@trfzvCdV=|cg=BnXN1f~02)L6E6DB)Q&z z-Vy|WG4qw{OIgTp!)R7_{2^prEPek2;kLs7CHi@LFCGe{m@oZ}GbhYp|Qq1;`C^&qz!)IUf9(c(-RlD{n=P}b-UBSsY4 z?F_5KY1d>X@lP6BDK7Kcv5&vJ#}s)SKu|e( z-EB;$Zyz3o+Y++v!CMZ@0`bP3@t(k}%2D9pq&JJ=N%`$U&0DV!2qgo#=&@~^|KkZV{ z>nqeK&{=zG(;gJjAN%a_YeNuP9qhMXh*Jb@V)I~Ens$#H$Mx@pzLO=K?9-#8$QYK5 z2*6+|Rr5*<=x2Jc4@zN9UPi41l#((*9m(FC51rNA@>AdD!hd)uS`&J|(t`n~>y&K- z3%C4)k{nw_B;{sBGSP$J_zwm*k{{vO{f#?$MSmA7Rl~sDZ0NU;PTP(1kk@Lq{L8=Y zX6x6&5CBx-GMSSVKoe0Y#y5`hF%PCn+K8PLZ!IVcbd0{BCK(#!HzL;a3Ymw373MCZ zdr*&EnFJmijkp!&6C(f@E4_?4l364gUzU*(4W#tQK0pj*rRhHtz0#3Y?>{KrNDdMt z22zBTXy=?%QoXwhtp$~n-8D{IwkCkFVArq|?HlwSecvL90k*!`FQ~X?dMil_;LG+vN7*61ypZI8*UfnCMC8C<obYid;T(@VWASCgzI{PX(FCUnh2nFN^(8ks~A@V^AiGv(zH zU2asy51=1ZuI>Wa0+>-D;+Be+TCQ*1h3VY)LM3#y`=FY0jE39URzsQYQflc;v%Bu3 zzjjRv#k8Wej}AW+kFxi%(7;{V${{{VyL5Bb!;RpDZ+29NSRVvzRV?x_b>dOeewGjbkl zE#|21{|D5erAyBjumj43TAuuOBlmLqPT~Gfq!6ogwL!fHU@7gh_W#S~ewQ)i{eS4c zfPAY*85A%~?Th2;0KU@bCGD#lG6rT8p;E7S$*ne;T**8tcLS-1UG(zt7aF|<+T%00%2T6krHyUf|cN?4i#ir11W z;9^It{CvZCrImHhg=(0yR*{qN6R>AL?F?Gp7K0VGo8mn-?D?PIhhWgq~NOXZt6LDK9Ks|uZZIp-+j1Zx(?lXW1qP!5o>-zbn;R6Ul{~H zKM;Z;&~ehoH(L&^-LeL$)kc@xCIq~qtOZ|q*ar|3gyhsWbAX*Q9sp`wd4pdN>lWW| zWS9^|Y|x&eb!%Y|zji?osfj*^UOn1$7nG=02UTwbEFIUb#O66jR zw3yQ{_H5R8P~d378JbkS9B&g)k64crzEtJ_Ud`{94ci|eH52AAAaZ~Q0GQNDqN76W zN)LNu`DLLj6bhq{7Rr{9nbN24I%6g3!I7s<>&NgvSO6fa+-1|DV5y`@X9$3N6Az{aUUAg`5z z;@y)}-i!Bit(Kx%esi($?SH_rT{iUfry2OdkVJISa~frO0o(QV{4Zj*Pfs-ry$^~D zU1!}pz#?RQurWrkx7y_g3YNmu4~w>q-zs`=To$bL&?+QeKLi#AlZ9g-1@q$q4a6i0 zR1nHUNA?6#dl?akp1$?aIsFBSz?oOhy6C>$7|aN!Ty_DHK%dwpc2^aQ?KV=wa?vbB zf)0<)2@73N6tNkAbPoZ~ORLgu`j7rQ>MJvknMUlU8cDtyGx0iQh3y0h>Q= z>g9?Z`h?hJio-TiS~+G9g9-6?)E;}|CmC$~B!0Kz3PT8w;8LWj#Io9@$OBM3egQ6k z3Gk)y^p2I7bT}z31|l0P!R9alp3hEjt16vG-#X{6p1{IaEqb`ESgH7{({K$f zWB=dIEI`^#>AG10h9gio!w2QqDVGOeW;XsOedelp8f-()lr=^!1#>k~hmWb;tOtL5 z;jtagp31!}6?Z*Uh|?5ufPjxRxWYxKUI#~u0$>^fp8%8DbK_OAqT~?@?mAnXy#D&| zaKaOL*Oq0B|Ee#A=9?Jeg`;{|9MO;1Wo`BX;WDN&rs5%RYT?js3X?zph7w-cLzi)5 z+P7sN31(Gqs$OcWFZ0yDh@KIZCZbR@ft;bkTXh>x(csKoyOWt<3uHF9P2s{qV(&KC zD#!0IB;H*fD8e^LkkwYTh98x7`*^IcWyv?OVnI*b!dI{Nk#*=vAr}cv73r(w;BXv4|nrRoX4~oZY2HM?PZ{(#yTSM8g#K=b1vlG zR1q%+YO_fZ^ri`jh?WDJ(_#bqx5Mr>O}H3{*|EL?XDD3NEOdB&H>|JDs4}3>YBe@s z*(z2`klnmtpR;Fi^8^U*aC>b3Xlq!LqsFGo;v>C(G*2n3CS_!^HJkWz+)}rD0k>EVm|@O?;?$lebcHlF&8R1bpUKfKt<)KMf5*$+nmg^#h;ELm2v9k8q&MjO(X zxLXy(iShUWmDgc-UvHQjL?MfFmGV~4nYb)T37#|E-3ztAwKAml{Qa^8o|bv=vZB~v zr$*VrV_+9Z_r}i*>V!4r2JM$iyT#z6ALZ?jIfRJCHQ&n}B$i_Bm!D@B%w4Nqm2N@6 zwtG1%#G%T(y&Lj5yph}~Nl57c?1HTpd|3Hvm9L~4XSa>5nKb}Es1ZJ-D6DSY z;Px{eoZ4vJ(rKNQJulUO(>!mq6$c#K0PC+26p5TbQEd*uq~*mQW5o}z|6<|r0U)~g zbsecDKCE=!!``AJq4}mdLm6~P^cT2gJmw4LyS_yhdY}&M)0J&ON{W#@oskXOoKEx_ z)#*^!2L)^iD^K4Y9sLCN@V7^w@1eFlk^W+Epc$8>j~vZl&2^)Z8?wB*O+5qR!KH1L zoBe`58GLvXCqF-m+IWb`N;Oe??hhz=%2b39Sq_Br;RRp%37q$hI&Kq~w!)8Bk}R;_ zG{7%RUJ zi0T5drsVuiu@apR-Lxo{)%i*b@_ajGqGqGOg0N0xP~AXNril^~ri0V?X6kLD&YYjY zo(xaCxx0L3Hm`c571693Lh`#$*+h0So)AW+jv6*SsBHo0k0Gvx%jZ;{TVz2$ZQPPz z@*QfLqz~tu^VAe=_zpFAW2{xI#?#hKn0j&%b*W!#-C!{R+w~`tHfzT2W*R@Q|7~{P zWn`W6dyh4G8U)$%*3Zxjw4ltW8&%Gg+FQxOvp?W`b})1%axkpQ)EKY7 z+Ea8pW|yTZ1CS@fwoidH7}TsXSMl)a7sDQ^b8`W!uh9Gs5IH768TJ&upY6@bSr-W( zzUI+&U;3T=u*L-uzbmFtBiR2^Hpyc>XU%(9XtEz}SIZ`>xSaIlY`Ij~@DkuPPSyXC zW$1v?b?RQGDEO+iwRh`6$Omg$))Spw8<79N0W}mP^XgT*XA z@3&F~V1aS!K?;E#MJvg=@wMa&$hO>!;7Mp6C0{@R^6s5%W5zaZcx6S zBcHvd*?2g4H1BNix8xPkth%z1PpbsyVOi-0Si_jQ7ns?$3rWRA9k-3pzl(^n1vCgm zcV9gS(9GbA5Bb}lY$SrM#``?d6aaTZH`fGYMtg;Bv);I7_9*ABXaBTInfKvz%-oQ~ z^PBni|FTN_f`BVMH~YaJyPDr+p>p??+i+dZdhyBx-9<-4;CC#-+=Qn z^K#qNmDvpZ)EE6TaX&qIysmj!-jiUGN&PJQ-PEvDN*P9!A#XK%D4$oZ#7xKbBh6G( zg6N{csv_2qSSk+21;w7IcjUGJr(>mEO1~&*q4fWFGa> zxjuONKmB=ye_i2P)WZfn>%eRO(;vV8eart(v?cp-Kr(OcMg5uapOL(x#*9(O5&w>0 zt=;+29(#rP^vw#-!>yl>V365VAH7otCRmRYc{Vb}hLe4<_EIZn&{_rh7pk`0 zbO|CZ?cX_SkIgxqyIxP)H|l1Pc<-p2mwrBgxS*ueut>a1)V$A^IFov#@8L&^e6?;o z6Uj4u#J+_xznDbq)gF$Hu=h2b+m03bjtC-sbD;@b?6i`0(=h$Mi`iN$)0z6|P~Y=o z=`p5PBs2Rx<_Gb^{ORFI-d$6izVm`)1v;U=mF%I_2)M6m(Ni};-M7YjJH15j>*~!B z0llUrioOX+CZ@@DRe5>=my_gLcCF)Y#)Cyi_FHxGXt$+9(Ofdc{s98z{a%k_=Ys=2 zmO=XNW<$9KgF=se>OykZYUas|cVq6*kBIowaW3nXSziX(WAkI?k(wTiku(!g9-~z) zXPbpk>&f1g5z$%~y1}~hcF$acvcg>5SO;Y>rmjzYx%?C!L%?``@TL}(N`Is2miKs>WFzH%MIelKFB- z4GdCv?M~E5H#Cu1(B!ru|;skIVD^U=NXdOl;s+~i29tZL*p!Fo<&A+ej|1DEc4YYFo;++6!mi7SdTF` z^yRf$CtNRKu*d@$YLd7~Oce;8Z4oxX&8ceXncmler4r_D)}t)z9XuN&;hatswRClXAaW+x>FJ-aT@&Fbb(dOYDJ#C1#^ z&z?-q>+xMeo1C=adj-|*gtN0w=J9N~cXE~XqE^l3!^ixiw>6bQ-_W>*Mx&@1H^Dhp zBjP1NH!Rwx#59iF3HdSi7*UzsbS98j=f0b5=rf(RPI%3f+EobYT zNDBvw-JWGO>*mLb*~~Ep+3%?1S+*=DzT;mz4U+q%$!6Ecqr2M=PIYusbVD%Ug~<{i zwagC{&Q$ut)oAf0X3IReRjiGxJD2vXX0-+~Q6sNgi^i)q>`N3(3)lqp}upu7uGs$cj|_lX4iJ%uD}M%DBY+GD%DtLDtwjM}X?VXQSvs~>y? zTo8lyBQ|eZ^StKyJ@c?947NHR$?-t6boJjgP1LXoE&1M+>aTZoCe`NjjgCy#jx+8V zMOcpp?~N?p3NV%NekTxNt^QQ`)HU1zm-YBWSN*(Pl?y7q9%C@mwvhj4AwMVdsg_uu z?onZ`@P!UGZqUHY&HIjSPNT!#vQ+COVw`a3V$G)cN$YLeC3xDk@jx3R`?e;kiy4a4qVpV5nghkp$OD%@Z`e?2|)n}e4`{NL+J-&JH z%I!wMiBAZ#)?DYO-7lZAqL?xmcDw=?<-IIsjdtR>4`dGJvkVzyA4$kWoKy_2$Tety z!%>yOBn(aCJTpP8R67e^38E`NmM$0u3o>Mu^!Y-y4wHx0?Jh7YmQ=BZ(mneE1<}YV0iDc?_y`P*q6AF3&q@YsmENSgwq|{<1F8C*L6cBH(1c!`b7R za;1i|`blKOzM#-dN}hbhwiVW_5FeJY`z zW$t`N?rQ$lOtC@LTqp})bW=(FY`sTqMKI8s+|y{#>A-Zp+FA*TzXlDVn$%q(zIEu( zLE`qp$Qzm7&n>L}y#A~8Y-wsCslPLlPw%8K7qysvA(!Nomh0%~?5yGcuIA|+BKvWe zk}qN^r}91L%?CYvdY&0R{mBSHA63;%(L9lFNHX2J#!T6zR&>ltW6pA2sn{8F&}@V( zG-Z-EFH1I2Nv|=>E3(1S&{Ne@SV$Q16+4eh_l5F_i`|gc9yTz?V)V1u*e~V-*M!J= z!d}&v?54hLSZpp+Pp{!yd-e)*_5S3!^~5{pT*iovDZR%n&02oxp+x8JN@f~rOgfM{ z*N9)jzp5k011sH=#fP-qsC}2E4rT(AtsW+;)B2AMP`^)IqcI@k4%l6k5ezBNy(p`( zIeLCD=Y3txZvMK~L%4IJE|1mQGJ%UtE@y25c~4p5Z&D{2q)B=8G96Px(rjlg{`U39 zb486VxyI@AUD3Hk>d(k*An~I(>Vrt46Y_&OwS%UPe8orwz60P%6#(QEbGm`3gf_AEA z3i9(UkJ}YS9j`6ibK9E^`_bR1BrM1?M%59x*q670amKlv9MU}WY}x2cM9=N#QcPkN zdC;>v$WV?3++<0II;RQjwz@kAy!9bvVnTt>LtBo_NvTjTlv$i0fd(R;PpOlCfuVmG z+Pb2in<7wQ_v77)0-25YK6=N(@FbL0mmU+(*wIQ0-JP04eE3i+stCQQu@zzWEMN-_DPA@Khd%kd9k^R-7 z8mlDa!%XH#mI47-gRqJVPJH8b?r!(Jm*z&g;6w(42oA5MX<0IOeQg7kWw*Ol)=lG9 z;%ae=r|(cakgyrv zu*zZqm#J64eDiO2y$1Wi$H|;4=X9kL-ng0E{=+rQm6 zY-o?cylBxnIXe_}u6ua%#UZ}D`UuO@Q3<}@b^@Ph#6#cAcHZW6BbaR$3r%qTHDP#e znpCLr?E-pw!jho&*KTSoQ71iU{fjM?k7j7C@PuVq<%hJbZr5H0WB&OqxtFuBNR{f? zIxbCgoKULeRy=ppNI|#lUF)Me!O_=9rf%2!Y_AfQ4X^WT3=3bc%@NVp4gRpgG7Wo| zA(xXGV!feQ1FMz9@#`QG(OK$o{rvj7;geEKUyf*11(9bvy;F0ewMwv0-xSd#c*7RK zF_{i=RF9tX7p^|@P@bqVkiQoMRq1&_w&Xur%E8KTR4w+2x31~u_2%K9o>adzjBo6M z)heYu=+EMUl;L{+n&CRipY^FAtVX!c)NJ=cokU^Lp?q$|t}A^#ij;-KoIbQ`xleZp z!ce|OLpG&MkNzdC7)$?Q$X&&NL3^J>*>zg*X^Hyn8V}A*43zezj+Lrt0cf z8Q1lN{=5;RRQ`IfI<5yfa!)4-mlyV(tdfzB-TkD2&%tEk zOfK*)O^4lK5@V7>I=)L&zh^W7QYp?XCP`ySJLxd!x11+aJw^-mGXX+tDbJi$>=5 zikZYhYd6|-;QI^CBb6?~U>hHt^NT3ht&xPVIYrhRCx@0S*uAIC=^YHayS3s20pH2R zDI{CpYQHZvyY)GZ*3!5^ONL^~qn?pd$C3`Gt^?-*#kP}~h}dx}$!2W^Qv2aPazcSZ z`~gmRe=ozFTXbu?phV=|0w^syPYG5EvT zS;oPaqR-_c3s_>uw4`)md-Suy4gp${e05@-r{IN;fP~D*_%ycV;m>@ zS+!|qY(*MeMdLlq@Lr5YF_N_>rQ@AV_4~~p`$y8w+CIJ{?8h&o?zfd+`zp}OLib6N z=6WJ6c7C8Lu?4;SgAl3tUp=nrrUBUp*N;>0a=piG!c6uT@fPz8U&4J&KOiG~zC7U9b}hFVP&ywQbNYO(n;`9k(^fw4wB-R$>b=ul z*M5{Q?vL0q)P)NuGarck@NJ$2_ssyE(?s4BgaO#VGGXDPHGKpG@b)^JW*+yKD3`$F}hWv7IYY`i5!I?XG$u zMClY5=_OQy()#xMf{V@-btS%TtJSEeU&P4R)>@#Xm56VKR|v@V2xi4ke4>4tSr zu-6xo61NLV`Wvi>X`x!4}UjF$)4(XuUZeq|9A(id^!8_#_tl`f(qSY`I??jrHQ$PIE z#VtJ^o`=lLLX`AL&O#s^jCyJyCB=HYG!RBa;g2`! z(*DiwxpRAqp9qH1?R1*di?zLsQXW*votBCfY$Oip(`;gwDM=ZdqW`aU4d<{FB7GPGH-KXW{x|u|`^xeb2pHi4Q!!z}c7KDK=V-soU~BJ+is@!nbaj zMJ@9~?~Vn#rp-HUPp7|dN9|=Ae$sI55~`LJ=5?qtVBDkimh6=j`u_DWzl#H({Sjnb zNJ*LG;(s^!U}E%x#YB+0==z^@w-nb+&y9yXG3MoG4{T2GsS3>Q z3ss1m*?vKZd`fnwwa$Oh_2etMS(kl(*Kyz2M(>E_G9d+YNxOai0Hy?EAN%K336GKSoi6G{Dp;(F&)?Ttfb%mg2n zCEH&N3x$ob+V~~3)e?w}S`9p>(|ehC5U$zK+!M%u-;60}N#>AXFvxW`0AM=2blC_E zLX1Ve9)9Y(Sj74iBI9!ZMc12r{S>U#E;pa7#fPV)X6gk2Ozp2DupfIQm>*PZhO!3x zVb5S77LM^aL|Wd8$D1CBtnCCL>ANi+ZNr*UX0@D4yDeq8*FOT zFPH8)9o{0jnTW}3?#oG==EaH8(#}GQpU5bC@49WOv5^BaJ~rd0AUsjXAa2)>rkY@$ z!Hu;ScLi^-aFNCD`)I}@im&NA^J|$IMk5HS%u9KGzP4TIBoRI*B*0ERF}w5V{3HRH zgWlSTQ{tR(e~b}EB`WXT=use$rQ$yE!8Me`3BipLhU@<$7;<64&84sWLpx}`-zxJLJ4MV0tS^};oqcRdEKq>s}m#2TzCy{_zAX2QM z8G4D5bXCM+MZ*jLDeEsZj@P$P^#P{EV_te|;Cek3Q^*=c9CjQwXbLCT@`j5*v6D4m zPSAmS%w>Ezr0qK(wCx4MB`#|qd-k131;q21SCINR-u}H1Jv}aeZNh$8lsCVC9 zktF$LaH&tsD=@#h?kEiy5|i0kT0%BAa}LdJods{xA1B^AaZ{ z?5&kFBD2Q~gnrl=^xn8s@TZ8pTR4iaIdQOlFlSz3!HVWDj1mrBFSc^PL^>Ze+Boyh zQfzkwCZ`49X5xdB6voa$Zrd+3T+Oc`>Py-3F2iwC#i{k+C`?bbz0QRtxNq48j_I1)Ezogp8aVfs9T9 z`2F)PApVqF#GM(g{f(uX@0D6?*QkeXo7z3}Xt^p!equ(NZBOFFf0rv^@VrAjXVX3wS zg`Sy}FCdK_0RvIO{}A|pdH^GZ19WwUAw%mskmos*xBky<@Wwbve%I4Q;T9i7X~(#G*TYSzk9J8gKqODB;jA}0FdC&nyB7F`9}PzKPUwZ z>IWD59&GAe=iA2FHj)=2DJAL}S%npyema}bp12MiuPa>k>M*}>EWvKY&r%gw477M8 zxR3FV0_?^=TJ8e{b=Q9}vsRUIT-dFe#dfVvz^w~qdJV&+m^lHtY%)_43Y0%Vf#1W* z)5Qxu`jSF~)wgSD?KQI^C7+K!o&ExeH&!oxv*){J|j?iF=sqDFV_E}U!gawfT zrzJwZGqzGVBM-Y3Rseiu#OO&|^lDR;$brqmqS@Yz8dLQ^5^}f?rR>xOC^U-!hgYAz z_KPpXX4^m88r#YSq`R8+>sU?0*BIx*|&_Dv$n^v6@Xb>+7f za`VB{n?(w-mrNEFtLA+(Tqu|`sE3L#2vPM9=U`pW(L|=c!zTO6TY3p8JXiZob!XSudEZ`I^CO)O-jPjr z;-|DB^4B5Qs|?CeV(Bh|UN0sA*qdHiY*6WH1cYf%!KEy8pbyI7W>MoYZ%x8ufoI`I z21_`>U1uk{NOi1@QFmp@DA9eaRzwVbR9tg*9zX7BZWGf>nZg9{ZQr$dqHSuDKW4r% z3LDUxGeT4^)mMwR_sa)d{Iy#^*f0Ga3pfVYlI63STt`Oq7Exp%Pur%^sS`xzoO_#f z!;L~v^R{9Bo|9wyGe|;V%=EiP<7k(__9~Ua%dsG2J>p~>gK^CkzhX!j`M6d`#7Y;6 zbM>v;6nS0eIqd#)xqKJfRaCYUEU`*cdvb(NWb(~vyq|asfBnR}6V89fso@ij+AV)7 ze>$buve0ZYO!{$H%}X-88_iX5!%fX!ZT)aT_IEU!4Sn48+`uV4OhHQ4lK(fPCk!|0 z;IWuk>7m;()A^p7`gEec1g&Z7a)~k`Hp(f$w2I6pjRtvO#J2&}H`11PyB9P&8VL@_ z$PmnV*=v05ibD+z(hGX7lGJ@fG^7j+H3|7^K2Ez#$-2g#J1!p)rKAj{a$!qX8dssw zU&+)7;tA`fi-+Q3rw-<(SA?b3LI$XUogsaLfa*=Dms=kl@E07PHX2)Re!5<6uIdT7 ziJxrKbB%ryQE6sJ!SrqR?_k50AXP)Jo(rINL+spOqP_#n1P@#6`JJo{UZ%=+1Zfym z9|#_lk--j6J6p`fjrA64jh7s14vUNvP{?wEQgvx-zJ^3R@JFAb{O%4gYQ70oxkHuG z;OJYAAn4t*J_x!qunqZUop?dBNYOnWS7JH=_^kdkwEnqOQt*I;<~~fUjwQA$d0WIP z+0~{J#Q$COfw@tcKbjai3wl9VHpi+$pmRsb!kEh>RDE-&56ok|;;kYmGMafsLzBG0HVi5cb)9r8>c`J7SAz zd>rVwrhs%&g-o_&b(Etwh={%oV zyq7wLH?fclK?x`~RZcvMfVf2roH5zuFLLL^kaD9Yg^h2b1H@jMkbs_E9O6pKB#`4r zHO=a2$We*!@db#%gjXuDDn4chM(;mQAaAnxKkv=IgvK3Fpz>Mc^aC1=rI=0u^EO!A z(Rs?NR^^o-LajSBWtyKC2RBMKWwBcxy4#FARwO)fLl@zP2Wm&=a|}l^SsmO)VX(4o z^LN%GqF9BMK@$(@7Oc@Mzh@5&541*;jFs=?Jp8gJGS!uuSGfHnpZ{nF>>imTv@3nW2K=Tf&21-T&pL9nS zNr3r2>CS=%-ricVHlCTxaUQ({KJ}d}_0#dSv0`377rtn+AV6^pE0xTz_JCm%7^lAd zfu->~gDE{5LrL8LpJBVbHaUDP00?JPpGc1r$mI>Ju}nV@#PG8;0V#02R6jqFw71By6G-g zGeEUim&Q$-yvofK)bmqWa~N_vV2&eIy}BG9mNZF$5MXop}Aar zb?LC7(W-Ve-}F@mf`n809hFNVS{5e*mSecTqu*4+$@`N20u8YBnOax@r_j zO@-Km?qO%nUBkmyW}m}I&zOsi5WQvAZ^W#piz+VpwH*&KrU@swyYa}s`uj)5X<&_q zCJ`XIf7Nr=h=Gsd_w0~Mb7KsrOQ){!Cd5KQa_+CbGBQ7eoh|B^xowly-&RR z`ky%GuB*`ZIVLMOm=~=Y{_!bd3vx7K?bbHfqwszqIQUcH53`UWqL4gwscEaxHI}GC zGC1D4!xZ$G{qc@qPfug8Xc_gYuQhBCrNk8Za?6T8RC?BVLBTKtbICC;^c%6yQ{Rue zo#Z}E(!VI1uLbtytKIGBu=VObHF#2z8f8m}s^5iZQxvp2mg&qOzj)E;wD_Gw=Uqf@ zXt)liop=3F#kpnq*Ax-CWoD7~7ZY>}i-DFaaEj3LQa9~)elJ!Zn_rJPi!0=f(+l*5o+{Cxze{j)qcZy zke$1QVbC8NH5hiC40d`;dQA>FH2W3k8Ra`5G$$tb)6oYBP6-+Rx=v#Qwcj|gzM+Vj zQLONFNZ2iRX!_v?d{m4tsBQsL;yZT!ke?$_7_(d#bO3h9+7}I|q^rs04)m=2xYk-5 zY$_IoFqW#_w|G~+C^TI-zY%c1V4&FcgEzr^hKsS=6vt@HR~F!fCqSW~!~{JX8AY0x z=dZ)Im+KEBsrwQ3FE{%aCELs<#8&`Uf;h(wD>qFX1!ze+Q%EUa>Mzjdz=*fAR7zq8 z=1cZvjyQX#7PbMrb8^_+uV`6<{*|zfk==8VE%T+GsK5qt^1~L9`AY&Ad}|~pvy}ZD z4eS2<(Y>9f1yJByxpq@81V7{TDYy2Qm4C;<$!IU}A`%ue&aBf5McQkWzpvnP!ebmj zYwZEtcU4hIBuc^Wg>@(4(IoR_?m>K&c~!Uu=FQ5<=A(2@3D&rOi`8A7&3J;|+fRQ} zCtj&4`cJ#tz2BB-B_;X#jP~oGaM1M$Qdcm6_vdbefUvH;JR8K+M#=DgZJE(y;I|1h z*ejOomkXExHIPZ}-o+pao(duAum@>25+0Gx4$oP~Qti3S-_xb%HAxXoT3k=onVhP_ z1Aa9T<&WQsoQfMzvq-76Ck98tl-@j(ju_Eb_EFh2>6;**tC4zJrI2{ym4AT};Foqi z0kJKtZizNnjIRR6Ys+XRoCs)MIn4(&skOFB5iyGyw=2fwKn*{~Pmk|$boyo{bj9|) z=arr`8d_A{u_uBAhELBYzdG5W3wmnFdcs5=h+h%W{8WOvg(%_|zEksPJme;#FWCTl z2DB80?Jfj!%33&%?Lvet;S6KhzyZhTF3R6zC%xFh@P(dWVy5lfIAcf3OofeD0rk>C58 z#y?0uX?ZA)WI%!Z=v2xsE>gG0H-q!>eV&5} zM-getn>OVzWinC&6T2NkVpX@X8{J%M|1^XHtEYJ6I*s>=Wn?;Sfmk@w^5mLC+Xf1Q zAC}=+qY@)dKC=9|#wFYVpN>d*yzdh`Y@LCEtf3HmioP}DJ*);=)Oa@0CF>??Gs|yk zFFD4-IG+eH$lPL5PRQECuPDot`MrJ#bBAAAPqdAmO*MOpYfWy2b2Haji{O_AC`U(m z3R9TTxqQ(J8^XY6e!>8dDjDe~1CSZe0k>PjEXTUYBdJwWN&|&s$2=y~Zoyn2$Okmp zT9LEuuzN?F?rf{Iw1lJg2iH>E$A_+Ug}=Q5VSeROvcZdfUk=)C2YB)eSL(_gFkX>H z;vFV$s2LwQ>X=5Xv9PSP$Kp&eF9$V|SqFv$N zDX~YM)^ZGA}xz#-5J4 z6@|5zW$`8%0Jv#qMZH(X(q!N|=I?21$Z$T)C52b4=K%=%y`4h~rqm&?F^pkhBeM#nH6#8JD;SR8AucjdWckFaVK%*)ojpInfv_btsV}j>IW>hWp~R|h9HY-15cG3V<&R5 zlUU|kw_Z~W&Fpn%=B|!sC;e4ve3>D+@choG*=q*}{cL-TL#bDVx&(=ZHROjI(?G<0 zNN-ojCqN@Aae`ePC=ZK-Gv8qdJnOXMxyt(?-!eE|ua9&CI59bLJfBKDjE6NRs3_+nq0C=8V-ZhT-y}|$G>VowLYs(xN zKeYX&`L9oa2f-0Rn*yx#SBBuB{I|=G3~}cM?^C$Sf5)jsR{zntgvJlErsC84bhGT0 zLp_G@fbyBj=Qlx(yRqN)&w0|&Y-;w>#`YVY+o^7(1bCjF?&&Vipu$s#^YUwk6aR&? zSK8x0YI(h?V@PZH>RSTrc~?N)cHW@m@Hp0L|LNPs{5em@_dwW<>ObHT`hakWpH6U` z<=Ce~oe;9*I@B6Rj1Y9%ydJ4iBJR$sI;VI#U0(RpT`;oQ^Rn$Sm*$v{JDZTDa<{EG z{{xiCr0zPKq}701*P~D)HYM+8)YcGW#G8$burZ4 zO#ABd(CXt@oJ}mqV`Cj~)c{>z9jy9oFf{pvZKizj%V&+}>nn`J+D}a`qAYp*-}P-> zR!*~;u#TI0gL%+D-b;Dnlc?Dp_6<%YRdv2Y$aISrT0OJG&f_L^5LAl};Fbm>*Eg`T z%u`lPb3OULXs@nuK!1M+T;Tjm#O1##>HPPPe7rGlWt&>8 z2QLJ95}jlgwm;h*-&(1mD){jO&pQN}(cy&)#<~g~j zvxPm*_YR!r-}qYcVQ$i4=XdAjvtwmhIps_X-zjakd0gD3rnG6{$DQ95G1Tt$Q!*V(f5VqInQ^yKbHW=0cXP%LLjPLzpCgQPbpjsd)5_el2KL#&CRY@%RMZ2_lo=09 zP~ejfw`Z!q@dK`g9bJFe?u=@;MGSahj%9-@>-U)h0{aLf58&$)FimOKw@h@|Wi!!4 zfPPjV5Bu5ITjEyu3Gs#PuUYEWZ2lKw2kYs;!eX63th%XSsBPHlSwtFHsrzsCDh*Iz z_WK6kc+##TH|n4C9AE^w`D27zN-sxe9WouXtAE)udOEXM-^8K&nEzes3HrX#|C`w1 zgulZ-RHchriXRptDAm6BWw*mBt%W2^0nn9)q>zR=% z$Bb(IKaAi!+Ar{<7S5l8-B2`mX$*;m_8_e`2=_QQ^D^d6dsCsa=Bi6x0I1SU6QRnrxI-)f(W!x?vg`=k&pVV^8SrEd( zZkoS7C5acPwg~gTW)k!twetKpL_CGkd%rhm&^`H2S@Dk_N2?NfsP3JbIa(xfpZHcQ zgw*J?TuGbpRBjTvkHPn}nc^RVjMdWV-=a-Yztv?6TtpXcs9WuPE^Ex&QF@G3+AzQ*CsF)v3jxLqBP3NyxPX zJ@zyI{%@Cx3lVF8=w?Us`%z>eIY zt_LbUF=@H3Jbq8{hOyHY(@G#WP@Z*xsbcrK}vGhKXf}dEyebL}S{fld6-WsdDrhP%Mk*y-2 z-`{GRK5`}rE-A6ywFfO@YP~+_gBf1E%$<_P$F?u~n zw;N&OY4L|f572KkW?{6U0xVe_k-f4+LK!ap6IR=q|5zMePK!bQTAa)-8*z(tguUa# zD|GCzTw&O)GM90qQBKhBjBW6GtIvq8pxcEpmXC$$r|K3${JJ(J2~bSzrzC(G_WyYS z>=&N@{%aZdn*-arBeU?B&Z|TSsxTHyes$y8TckOvQj%S_va>0Pm5&hqsdD6j$T|W? z)Mt0uUr+!0^bAkbeD#4ozYWo^i^M1i4|A1ABR9tEFSOj^$lujT)I3d>1VN6=RNMyR| z5G6$Eeb2HYhV+rV6Own6#0qifCJOFfHk{U7Y(zw(FN}7({#%!twegl&D1O zrx?I)T|m(GzYH~tgzPWd@0){#IM^RA%hDXiI!$x!%Kkqk?fs@4Rh?=^S81q_I-PTC z^+mOLuj1uzj68(WLF{MYAZ<~Hel6z*S){@3{mG^Uk8%5dQPN&vKmet>d!RyEY;LMIN9z zEZ9jj{dhcg*Ut0<)&>5t;W3Sqpa&3Ve7u^shQVq0F=? zBoPU`pW_EVt%z`Qnb^xBRemTix$J%KJnsnGO+}4YI>m9#HTO`?SpkO7bzF}g>ecf` zl||7nZ>|2MWmYN=HX_6fIYpBCH}N~FXs3!|O@Ar& z83=(#wloouVO73OOZi_lp_YWOhGiNtnxJ1iF;^!*^QGCJ0qxt@C!037uHZ58t9K_q zAA0->?GkFWs$CYJvaWL1o5%_wrsTQpJ_?rwbhs9Yxa;>$7&nkVMAJo<0>(h7OW)j( zFDKt`B%sJx_-CyPfMcKP)qk+=o_|<3@2DA9|3Nb)?fQf)ua)&%m-FAv6?i;rF^ z9V-Y;>P$P;LLh2K(R)fwJmW#yV?Nd)ckdeExy+=ejbr=YPOY{cjn=F?onVD!#s&sk zDwnWg&Rrkaf$PtZ_Qiw3-i2RY*4rG=XY$3($jFzL7`_L>n}He6dUpQ)^tX5j9DdDs zqd(T3NpD*}<(N_vbSM$inj`M*pox4YE-NADxB`j)B}zhU5Zdy~&0AaY=NBUYrlHBUW)u9H)XU6~Z{?trU6HmrdPNzNfj|2tgPzG!oWx+CM|KLcLvs=BwO|f@&)xXCC zU*ky$ChDbUXDS0f5DN->!6($X{0~sxAy}3D^>YrEk1eu5(1S36AWx>pwhCQ4=;PFC z$4lB|8z{!w^__9Swcnsb`B&MK#BQd61HMrqIq3T}Jy;G4taY#(-+EF} zA`hWydf%QEewj+vGb3ick>bB951Gwqz;_hb#+K8{4-S={Oem+(km&ftE!MU*N&i#> zme^y}3{nh0>?Ei^JUeA)`(Z>ruA&R0?<{Q~c_eOVj9))B_xzkRTUr!$L#~{-v|jQ& zUM$gO;d8k=YJe3o&=+KJLT6Z9Jpc#`-2D|DBRf}Q>F(JEBGmt&mhAdq_EX=q5z8Hw zd_w*>D_%PSkq&90DUaKX)`*Owv` z`)TAALdlT~AFNeAM`^U?OhKa=t~FVw2z?uW$D4@!kjrxF^O?ZBJSd@Y-R-T;x(@Uw zn#{rhMss0mngZR2t#4$^jkW3Zc30r1)yC0K*OP#a{`ZMQ!f4|m61A6mE$wZ|pZ%D<&-5CfZb0msixn(Z3HpV&wT3 zkeGr5O$nP^8+ir*;pBIP-4(O3dYaf3bNTR)?EEm2pSlMx(vK(uwXUX;iBfxFc}k1f zzhS{Itr7MrNDR%{oDw_)s!Yx1A)D7Y{TGS9W`=+^xEMS)_^#Pewkp6Cb z;D=05<2X3XnmQE->sudP<&UwQGf@1q2Jd|S@s-k4Im5}buRXgXKX3kO17naxQqeet zU1FAGjb;IvfDLN%M{IEx@C(3 zn*t+KU?RCg43L}I{Zu3;SDFqhFUW2|+k&9g2sf#MLEP%k)dH2Dg(N?QMKB-1jG}-k z9|i)tO?BX24A)Aj?x(Q()BKs8>ERk$rw!pq^^k_9*N$GYXOx_ccqJrTjS46&1oPtO z;P1^UB-E@GN?7?Z6HH%Kw+wTmP@8QjF}&bm!kb;Lje32&&jZ_r@Tn1W;01)A3hfK{ z_PpZT&M9dkEG+F%l`x1Otu;u=77tt$5Z1zIWU67o4mSNwy2S>oK?%rNgi zqhmVI-S8W9smX7xbn0tG4iUjJ-UM3#Z>Y?62U6YN{`_*BM6nbZA6D8jN{g}T)(isj za`Qd?lTrxH6%-?rN0LWs#nnaNv=E`u)^?j)U~W^%sV^}OzpXpUgZ~c=FFK77ATI07?j(lZ1O&>r2Ji!!c84*jR`>qm*S_< zHzld;1@SyIzIeLEcQ})u4BBYG=Y>uFjT9Cq8`1;=ZH0HQV$vWZjY0A&WO+fUV&6~x zER@DOnKhc|lFA2UOx?||Kn`dzr2P}h@uX$uDNxNFbE@4`0%uJE>@DJlTnApAf8p~w zk82>ku%mC=(w2Vet}`!U8}h$u+h=op9oM*Fh5Zv3EWu&m69z4s(FOBs0230*+|!{p zP0P!Jyq9%9GYGpItOW!HRN>8;}G=90XSCOnm%`w`QP+aJD(`AVm8Pdt(B(EUN zGlttH)ePS;#C26SpEm+S5}^biW=E`EXM?1>hU1$CEr~y|0mUP*$)<>T_lEHCS?cB( zJJkzQ`;=P%u#dSp;%sY$)YPzsKhBERf97cz9)&yvEM$VnRjh0Hy7 ziQ?Ye&dYF)n%dEx7=8JsrhWUMV?WImNom`T{poKCJw+G_0AlHygpZ+k1b>f#aDLK< zz~CgLs(3?3lb;c-)+?1$$!r&v^au&%fkHus&T06$lsx^fG@dHm@>=5r5h2$Y{^s%3 zKMqr?umx=NkQd|87<9P>Y+dqJ*hARvrh1Ro;$sMT@nmi&=X(uxW0}k|gY=qa*{&@~ zKAaPyIza5sUEW*NzEYuc8WoORN=kJ+ zmspk@j$wzpJ5%|?VXmxg0)FkwHz)uX+0LM&|FZVh1(jo<7hD+p$}OAoP?Hy^#He1 zwLrJq4)rj9vVm)gCQcVEW!_Z6RL7`7w5RyDiChGr;^^pzuaq)AcH3Aud`>8*J$wZcgKch__Wy7EN_m<8}xU!DrS&$#>Gye z^axTBKKAZA&Mva`r2RKldsm@cd121qN;vz8t0T9s3npBZ7eoY1VCZno*aM>Xfim_6 zO2EHvNU-iDw3HMn;Zy8rIO%j++%w21a+;z15M(l*nr(PGtei7=vJ^TvZ#E)&<$f*kOU)(&5tjeh(;_))mFp{xOkix4fFTnL<+D*0e$%K zZJw&tP@x5Zj1+&@`guySHgsl8U{md8rq}XukeMI(Rg4m63@;QfFIP}+ga+a@kWo?~ zoua9jt0<-PJ3Pp;JcgqrQ_Qc*ZClZb1z7Vd53;fG^3{1p+H3TMvaL&z^FrgwRM+sP z8cU?8b>qHQSO=55cc;JWyd;~I=A)2LC&$zF12&T?{7j27*E#jT#!_eYGh{04f6)jR-nRq=q@d_--ujNC2X^_z92h9=-Ux~85838 zyO@fx|M7j9%&>Uyo9H7uldk}FzXK3P$JjP(BO+gxX&#)Ebr+H2p|`f;RK z4^+TOS7<^-5X7;9Kw(j+hMYtM&7Q%!(`r`Ukdt zBD_sh8s5_dm!q(`9nEDG@ljZ&HGXdSo%^ib>GaIuu`i3~7G5@ihzsKpUwB z*_0044DN%-uf_0_RDnb87Po9YHU~Wt-6jF8aGOdEi6rmV+rPpRH6$=fmv9<23u;CQN13nA}z#e zk&FSLwN)iIJNypUUFD$cyGYv!Y61nn;+k8MPUk4Zk#XX5HiFlI&&?4vh%-Ql!=Ca- zU4qCLpZZ6vg0i)02=1r=`f4nMybk~jjC(`s3?I5eLE_+yl^0l1{F7iR3Tm;7JpIUu z>$b@YLjuW_jihoF1)u%pl0ao4$W`v6l4rmpucF)*A*DeF#fsX;ayqpWOe^B?0p_r5 zSFONFuXA#<2%+f@89dH1Qa4(S`~Y)jVF@O?N`47!O@iG|w_`{ul}T*0d0O93sH+Tk z=AiN3aTq-KD6=Px&1REq57b3eC9?&=F_UQ--JbgMU??rcx@vURC*&93kOwH?bG2L9 z^b}10;yXgbJ!4s#qvKijd}i+l?Gvh|@DE(|$LyND$R+}g(?;jN?7Iqu6>M=Z1BqF`>FH1O4=!RrbZMgr1vFl?c*qzC` zd)8(Q!fT!#V!Pp^jESP1R_*hL+q-e}E9ed<2oc2K07^w^uNL#`5xu~wS;yi63Aw_X zkf!6}=pKB<6gI0iwvQEj!8coDb=3_T*={PdzvAVsX0dApU*49zAT^Z<@(r; zFX8f7Jvw4g3D=wLll0dq?`*BP&175&UoBwy(0|U(q>!Rwt;+CfbM(jA{G4~unUMtO zZX|zVO40brMeGEadl||@sYg}aO3jJAlOwKO-hL&1pZkJC^H?(W9n9yvcCt6_aA+oQ zFhDEtS(zro%DD?0!zN3WlR>D<>M7OtC?q9fA$KLC?YuF8%R5DBQH%Y7MFlAZqu*MU zlvJS61ORqs!!-np7!#xgktVCzAkD7yZ*+fJv0B?hlT||IpQ@szPNt~;g7g#Vjve!v zRg$~+(_WUXS}>=}MUxkdHN@yzh=xEun2V1SE86;Xu<9{joim!L%& z=XR!X^`25c7dvuoXq@JMN@td9_#dUe~E#gI0-mZ&~wOeTm1z}{QX*{8xg9>?XS<{ z{lY?l$$KODXFa)*U&p-7p}9w1eca}Ma9zdZ8&m#D3(eJ2FIf^ zAmm{3$`YVS4+X#v7sS9{K`@f(k_!cLI(6WtyMWUaGtJLby?7QG;b4Cxb)xT9!_5VE z6hROBzt2GrAIfM?D=FX15y^8vKy}|TKZ>~h38us6cl;@W=$c>_$UR8L?W4n4pMeHk zT&6+@p~&8TO1Qtn4C58S{bIuGcS_|$vG7yQzdnmLK~x@jHX1eTBzglwh`(l8vR^JA z4zp4}1&3wlJr)nL1`p%JE9`eDHdO*JB0H0L*D|sfKjbI@!@)#s$A5rXu16fC!1OfS zzF|yc(y0V2ChOpg7vWven;|`DRY>dOb28Pg79J1`kr{1tUP>pU5CH4e^jVvWny}|1 zI4P)FF7pK$LumAQ&pG?PZ`GZ7e5R<64r8fci4T1`^1qPeD><>Dm!YAh-3GEl-&T9Q zO5sXWJ4)S)DaF{o-g#P?6@)=tnS3jHqn(iE=_8XPrRdBtt0T`t(bt2UJsY^L70tn`7`gMv zHX9Z>5IJ&JKIA946-<&Vdr$q17&3KmxfxeC2|1;($`WF%nN$tcVv{(DGPP{1ePn+e zx~b;k0$;Lz#<{Q_pqhb@j)3qsCQ^i-MLa_3)xN0s{Y*5*aLv_Und{ib097C|`6k`k z3KFz;wGvDeVi!MSuPIJ5KU}ifxf0Kl;;b-kV?Z;^o)y;)AGvph{j)19g$Sx%WEMTI zPtel-02!QI$lM|m1d~4*6)Q75ipN}e6n>EgLwP79*cKxhrd7^kWX_znK#VbIDkN_k zw{ktV_hRy=A+2`uAQ@ z4e*8h4ntD#i+4ynXpSrH&KkV($ghOdW;jO{n{!`mM1Y-{;UZ=mTpD-PuS{A{{mCC9 z8zdbn`K^iSk|f|HK0lrI-uh|a;zPQerAb()A0Cw39ao|>N36BGy1|s_XNc`wE zq8oDj0TjaH&3io%Nq4G6#`{aV zw@1icj@MLtg_H@Knoe6KZf6pTPFoRpyIA3@j@hGhu8|CWqf{&0RyaSxb|7;4t!w9V z&aQOVZ3qY&+gW{VSf4j=oP(Zh?nM-F?`kcz+U1p-g z53WK~L*l>I{m8{t&kRcSdOHo;JSJ5CK@B;vXvin-QFO#Cf zkUr4GQ1N_7L|yHD%&f59R9d20QUH%a01Uar*Q^prL{r2+F_8swnF71-Mz1&DWSGyq zPM(3scoX$780yR^jY%EG*rrUz0a>uvRv8EaL9)(nnnM3_+dr&N*ZWIy8%b}_o43n` zu?mXZ;RRwMp0gd-#iAj~Y-bPAlU0bNLsn~Vxs`@@lF>XhCIG_*S3Y$|eb^wwxvb9|+{1V&a%vN{G5I~= z6eaPjnm|vdub8yzR^rerz%!x88$~v`=0AW z5&0c@J5WG8AiR<7OcqBI%0G(`O$@#|+a|lDO2F4ZvHXbyVZM41qU{FPNVR2_kMwHC zgzYsfoYOKSp^3+$Xat9(b_ow-9=FSV&na1vWFsJ)467hSdQ_;kCf=05J1Q`;Xrql( z;$>ZZ?lW4`kvKu?E06@{fgB&`W3E}kcC79vrr2WOOeq`cBcz@w1xR}9f_y@gKJ4jn zOqEV#>t^V2ViQ6EMh5FDvP`R)q8lxu=Q`~+#)9oh%l;IzLrzWn?^f$ofM2p*P&IAA zigBq@-U%}j^iGB(7m@3v9RMCS`Wjr+zChnA4zceHv>!*+i?72(oGu^Ls0HM=)k9YXBSZo+C=lf@Q{1dT z5s^(hiRtRBitv(if(j@*lyeWZF1z>UzFIs56_(F*@fMLxOwrUOzK7A z*=R6O30B6D9&QWxyi0D!*Fd8Y8;TdRLn>b-z~7tz@XfG?siH5M@qPBJDK zE}|ZwiqJ|CUbF;5L_$j0x48a0el|LZy5oiEC&jp>Xtrw6npX}c#g!mq8*KbGbvdRv zg8qN~y0}0PM&=dv%N}t%w2t^evD<1UWKAC{Ef@u6nK-=YL>?;7Q$cV*CJ!8sf13;a zcOneDG#qtv>T)N)r4?QIb+?I25ZLv(zfE{k+rlfvaE5V;SU&q2sggJM>))h{prXzA z3)4fNBrt`oCf>{6IOhDGh<4r1#_@)EmyZnE>W@6sXj*P16=7%Z63ot)aC>+XvBmIi z^59Ll0v6zA&Som#+Pi&swXaI!W0^Lv+Pl^G9No8DOas*+ojgPV{NWZ*gNgpjo;O7y zSUZt3Vm>v^veWTk(@Az6XwAMw14?3(=X7kkIKm)piU7IG&1+_4Em_as%)WGTFA!2_KSvo zro4pz=pb2x?|!fXYbH_fha`vTADy3t<;_g)=<(|9-)rV&P8ZCY(KMmT{;WbxQEEvh z_NcaA6yj2=*@~`h55A_%r9e_LCzcP3W?(`xHgoRFj1ZpcPQveYb;kA<7Cnt)g19=) zD5S);ypmjAE=i_ENr_fcu|554neA4~gv=Bo9e+(}U-^|OJL9J7<%cAF@6kVJ4<;=2 z=cS+&eIQyl%f|&QT4K*kkH6MN9wsbq%bMVi{RJ;O{fl-{6Dr~hqs$NUshNai&IgFJ zOeMmT(12M^@2L5%2x;U|Y5!_#XtOg~Vkv*JWmb*c9Jk2mXV@S%@&!~0HLCmxLQ-Lp zw}sV%J8PC;3?^LOBQGtfe*YQ@G!`zje}ebknw z@9!A(oW^#AbiX4I*7LGrHKTtmEZKH=&z5GxDvuS{ePY+#+hM_V>3iC?UbfS)y-EeV zG>x_5S}8y@K81e4Gt2AGqLT=;&*=|6*QHJOkiRU>&vWY#RkfFK%7KV6Lgxj{HqG>7 zuI_8$Bzdm6vp8G1x#qJ#_@g>?^UmgKY(eeV7Km?~fM0z*7NCb-z0kr{*M zRcHI>?Q>8c-;EBji5`NTg4@~$7HP@wjV)pEDE>AJcrU@uh|dc@f6de!k{b7JJE5p^RK*IGh|Y z02q$0JUX5@dnD&etwCAKWdBOMxVCm~{?P&G8Y>`7q!KPT7KK6k2a5=J^GoKj6>hJT z?UPvH-ES4UBWn9qcudo%2$I%ra&~18e1x)@Jmtmu%S<>(cNzW#WuEr&GM8wrsXPbtWFrGx*l3FHY zfaCmohmO=fy&CZL@u)b<9m01zygp;U2bTx?g4Hrb(H&vg`( z`*=vjA*p&RT>PB3?1(j|C1$nL&}hznE zuRM10!F##)lJxk|k*n7#(y@gvI}t^1G$c1-eUN7*-&WQ#hkv_m+&7qd8MXQ}HWEDWCSU$~%Q z*t5;<>a%L1LGb^md+Vquzpi~;1QDb|8b%uFkWN8Bq@`OxI)-LwkZzGw8kFuDVhHID z=^VOq=$zm9Jn!Sd+=JvX zX+7b~4-wFL1n!MDhIyvdam7Gvf|&$)i$UaeGDHu?Lye(Y%;6(_1dOF8tdH1FIoGJH1rY$jJY(dq& zwt(vO3WJ|z*_ErZIYy$(-k&fMYsVej3wnavP|px_Sjftf$? z#Cyk)9%izqIsF|^gn9g*Q|C%R@l*uSF3g0`ikwHCEg8b>2l?ydt2{QF@#h&aw{cp< zem2isG)DB(?)wlbUi<86F#?4|lB%AyJEXIYybZzT88G@{C!WDmw+Def-1tyvF8oYHD6zu|>oq3$27C}&5h8?TtUZ7I;m zar!2@%1aRG>d*9V6RpJm-JQb^V*6s%^|3j>_wo!{KaL|@TtKCB+ z;7t~Ed8+dU;~hbMneQ6YJEbA!C7I^g_sZUNoMAj1AwB>^haMBY5w}f;tjw|e-Jj*< z*L*x{E)VVQ8nw*H+Z|#Gq8D}EWEL$7AshjjgO6XO49-oJivZK(R1#DxNM;n>KKk{wC0&BsPS`5Dz!^i=TFqB>pnXjon_#d|lQ%L%cUts@4?|oQa!U znRe-&NMN@Aa%fQyQ{eyj>>FUN|0~1g`y~+CB;fo*`2V>0_k$=t{Kf(zmq-~n|6eHv z6sQ-xzajoDQ?zAb{};d?8~G^-A|kQ-XisID;{VJ;2tc$rA{U_iJghkO|Hwh`?`T5` zLCW{<55Y#zmHSN$oGz*O-Cb+(t!H>A0h=!?b(6pyFQ4JuZA`N*f`**)lNc?Vg+wDPd z_>FwD-^aYU6TMABTpf+t->lp%IxYSD!bAkshQ0=1{e|!j>s#i#i^3W-}L4=RKJ;X z4-g&jhRnX8)rfMOuD=~1I4ka0L>aQzEXdeX*d)Kkx%}7XGb!f!@L`+iE<)peQsKaWQh!>e)Er%;Gv;?4R7t+tu2+{U6|VP)n#EHpPX%CR)12 z$}3fWpyCJ2So-Zci~P;qh3a7yy*hiXzv0;7F2?*!8sb-17`(>o5*pjvkLNnv3yydD zVnuU*ll+SNtj;D+;E0#0AyO>WLMgu~dj%}Le8!RB?`o~7W$cQ{a@%@l4;<-()9W|Y z3H@a<)ivl4avoshsWV|d@_E#6j z0C?$MyZIFyi!Cjg#W|t~0U%`d>6a6F`B>x{QGijk|5hDqXIdvws4!^3FK4(^{WS*6 zEn{yAUUEn#rX&i2K1vkUVn0XJ#w&1JJknGoTPPV8zg0*lEOy3IeX*!cYnJ^f(Q~Fi z4v`Afs@WAItO?$jc>fZEm~{iZ;1Vr#zW$}?G+nC8dC&d4?fcGdU%T_PPt-{cD;}yJ6(gw4-wca(!F=@&_FP1N9>mG6Yw6Y5X#rbK#L zPtHD9R{rki@sMg=b~ePZTB&}}-_M-P)McAhp8wX!4|a{exM@??sBWP4!-)o6ulnD3 zKY=IU($u9SP){_mxRqglER%O7<#D!^@_>nbsF3n@wsd^s?x=U@wr$RKg;(p!?u|{E ziZg=ldSwiDR>QTMY0xx5`zhI7TpvM#JX}f!)g0HO58fJ4$cC3Eu@N^iW$!NNOC^dQ zsHYFd8e*||@jQEnF}(FJBJFt>C1#IL*7GG9hy)wQdk^*d-$-R%WswQg3;XisINM-c z($TUfKuGz`rET%)t?kMClZBKYQ)Tm6N&+n@){eKOyEWWD&YCJ(el`_OVNDmva|kKt zZ;S|5f&36@0%W04%?N@rbVWi1$mP-(TqMD`VbK?DNNCrmc+UOHA( zCLk1{MQ^copwh7$(2x7)6rfD&mp+4_XT_N>ZJLjxmusmx=qR)< zHJk#2C9g$iP5Su0BRH^C5inErV^;r4Y&LJ^S4sTJRHBqz}0I0 zP4^i3Gl-bz-t%C|b%hmljq-YJ%S~xlc!k)Fn)qB~&NQFF(R+h=Uc3kQoMF>(j#Lef zpFN1Ik3uQw?AIB;5#rw%^*9ShJS?Fnj6 zlkx-+a>9VazP%F*L-iw{tFM~vS-77psOX;o+JO2&C*Cbzxz_||Z|ao5Uj0!P9^XkY zf@2I3C~>0QIex?3->Ej;Pw!1wvSwf!E&GMK*PZT9VuU0oOAVx&&vxOzn6lgs7Yb!W z1vCg1GY7N2W{aXCT>=?R0&82QeG*(%r6Z|AEvIYIphU9&8XAZB5H=09nD zmC_e+MQ&?I4d@*!quaV+*2lElcT#|j^|MCBTyqc6Y1Q@>>|4cxPJ8I zy=plLuMv-YyrCSf<(k6!&dc4ZFp(VGYm#SLEF(0OY~+*snJDXcGMNqAa(tXT1{{ZN1^6t<<^8(C?(=bBjE-&4Vi3Q+Pl6wSn+ZY z)~h2i*#W$G7XF)r8bNrjY3uw*j8G)I**5I6AVX85^h>THB#rAl$2NC!sX{n1?#niQBe;3bgcccO> zyE2SUKT8>=!KQquag6^)^9+s171^_P8mj1Z=kdg+hA7xNe+pczMTbfffrq?|dBe&c z(U0H&RNwfx(w~%?>AUnj{%WlFddlluUOqEtwAkp@v(%RDef?(yLqUCKzUuicqHOtO zx6%7mu6wqAEkZEg%n>-!gs>bp!C|e-dCi*?8TlhcZVFQS4FduTW@RQ@rtdYgo{uOJ zVx}yr!xDK#g;S7=LG|M~mtE814{*kuDbbBK2ba6b_L6pU#OMd%^JG?7XaqM&@aUwL z{&y>z;e{t3^TGN#0(|`o6*oIL>p1gSDi5PtAPVlfpGe1@&Ky=hc;3;1CK2UKtffhg zNRSaA}P;CkjSImsxu>dmDPz<7g zL$?`mDHEA5yd#_~p9D>%f9{dtqZ_0Gh6s-Yd!_(YD*O)Y+^5b@{a0BEVg|vNh|O6p zj$ND*apQY}(7KWmnyti-w_6e!@pg~~um80K4;VB-?519Szzw*&7ChA`XJ^AFGEER< za>Q*r`FZQh8|Ynq zT#km!x_`Jo_m1Q7Adj<|jb1R!jBuXg3LB|4gh_>nO$j|MdL#8p3ZzR~;5{bjIo1u_ zoh!S2(Hth8H#)`;Zjv3n^_u-;pNaV$dv2TOVb^tzb|J&mQG%WF;vBCAmYypyg?G6U zhgXF4(zfP-oH2KMVBez*3gbs*L!T&tm?EWN#Ge=mai6*yU!P(>!HJ~G`WU|E8dX@{ z85tn`Kyk9$E^n(0O;ASwQKzh~Pt%#MTari+Su@dZPlT9r>FN(PPbjpR41v#|BMr2| zjY~ZdfUCK=5&oz0@CpI`<*rx{`!eGz$+*!L>5d>-jDGB!vU5uC&WjCW7fV9MX^key z$pW_qcI+R>NWX5~fbqwVg;hl;?SYfy>ayeX{fttvKjaf94nA_}APCgchvmz|V}0x) zR@b7gcbo@bWnjW&gz8v&7o!-ObHp0rnKX|9D_l;aKc5yx4wrv#<}N@eAtLoJpE)t- zrh7O=+q~M06=!E&@Pq`1iLj=JkeR7}m%QfFXK5D>RZX%HJbWHs_U3KK#@-&0z%BpsKKAlJIGcr;#SZ36_E_C=5j(i5w&w@gsny z-=ovb$Ei%|v75g+1(qFCuhBbyrsICrwb0;fmg1HJ603>r`L<#a6|R`${kkC<)`JTB zcK>UyNEtlU-l_&N9>IUyyJp4UwR$fC2OqnLn$eJ-+!fd08Nbw%ex}NHB(>m{_bzCd(tT!ZMi6)sh-4P*&>;w#v>&>;;VSFX`=2_+-V#BnXuiUHpIup4HHj8Hdnz~u6AIQI1 z$uG1Rr_yIgD|X8F+Cp=^k7M7jTI(br|E}`0)GjEWP*?YO_iX%vDR4I94b+<>(u+`K zbl`a+9EvD}x5zi?pOH0R43)q-Aqa~k^c zx7j<2KfW;h((Cs&=-7b3kDR6(ZUrv{Z$(A~FPF9!wr=6xhoW2i#s{^nHV4g_=ksv5 zU+H~LF9GuX!sW~I)SFWEM&+^AWCPFe331#k%lRh1+t62ikCt@7ZI4z=&8bkDO_nSiuwiPYW0U`J0G|M**V@pPndH`U>9c|hfP;stxJeXa#iKQ{)*MfezjVE z-hv-=tvN zq?%0^=1jOVb+>x0B0JZ}vAWo$tJFsc&SilSjas{~NB31zjjHS!R1Q0JfTWRRv7RHr zoT#cHogyB=F5HIxEd{Tw<4od9@;Rdc8mc`!pS;;oJ76Sdx!Q;b|Av~RO2^ttQg2|8 zt6HnohNd42Sp2$H>H3WEy*4flS%wU#oWko0NiM2{-FW*~emllN0ot0Lcsq&S)3Mo( zACMkvM@mB~x#R)9t@>=APi{Z%tJp}UiI%Jc!CHn(Ll!oGl_km6?q1z&L6<}7ZgLZYJ!DQs?BO|! zXX(?y^_qu!338UCG?tC*bH`cxMSN-acG`!)gr3^jL$ZN`cDL7CU9s#BjPNDFxXbVg zMOZ_+_s#S#cem!9P;sS|9}BtjqH-fa<4b7C`P@rD{$bO|dNTeuL&P^#AN{{H%* zq98xSUAJ}MCpfX&ay0~to69+QDvn&3YTqF00pncO5k+lTUwWZ>mC*$8`!1b-ZwNB} z#*dL98Dy036c@9xKX4!eo6prkM6H+K<$+!+fA*WUevkd(+aSGRq&MuJdrU&|?XiHI z5d4rDMM!PW8kU|A3O@eR(~DN`mg~FZsER@i8d){6LFEICOKD5B)~I6=)E>b%ArNLz zrYdl_Sxvm82-$}`oA4+#O@Jcq;Gq?s+i=Z1hP_TZziE*ADtXd}no$|t{mApw9m2ao zVFD15sRC>8pR)j-{tST#fga3&E&Hm8;0~7U(!KJ;ho3<3y*O$3_alrrw`+*pyz&i! z$CqQx+0#Id<~(*BWyT;Bd{YZACKO|*=tL~#&uLc~+zm#f`J518wChC#&C>g-YhF#g zhFN&OSM84Rj1@ImiYj-Wgv%!WMa{b#@MT_3Qp|Cwb4NAKPdYF8 z_RvuX>x;ItV>J5P-G<~meT)2b7Z4X01eSz>chrwN>lXFdw38{uOKn|b_oM5j;>8b9 zbmD;}4F$~6QrB^JT#@4TpSy?G1D(y^zHgb)?%ckYXBS&v7v|G~ zdl30ZL~U&i2pb@?ohrriJ_?OZ0`rB!#=w?7Nx1QJ!CBD@@d0`+7Cev8E2%p#emK)m zhHRLEaIQWK4X146x(If6Oxi_!XZ8wYFqDJS-^1UHzUq++NR=kq^<@m+LbluTd)F;^YQ_ASK zsEmrtQ}#w~V!;w+5!@7ysE@68v`B(EOiOY>P|SRQ(}#Xqg{T|uQAUcrnz!E!iKfvq zZ>4Kq-V^50)iVYiNLQL^PnIu`yvFGsyy`xYqew4Jz1gt4*55}Iky`DWgkHaX#w9t^ zz_pu>HFnkNF3f~3#u`ZN1FAemZQq^Sl()zP_?!f!XgHpxSnX%Ki1!+Q+K)YUKG~Rl z-rBGwt@@Pf;7-0A9cinJ!rV46-D~W*+&XROh|ZSb7ju9O1n_XHzL|zw{R+->GVNgo@jKYZWUPP-5V*ky8Xh|V5=yG<) zB0W=b^ewkCw1rlrtIAAS5Ed|IpWpcrWhM{k=geiKVD7MN%=mqM?J1@2syt%SCcUms zeTc{k{2c6#ZS0tA=& zdqg`LNqpE43wWw2yyr5~BOlp06DA&{LGxG%QL8z{$KiT{ePa(?bVot+E{wt_0Ae;s z_jakOYLP77YJrM_OF&jk?t8|mont8#xp4tn#+e>Up?uEK5s}~{t~Y~|S_UsY-cVas zW0^3?9ZW~e>g?^lg_k_D`o7RjO;;dbd<|H(TffbE{tE5zI`@{IBr^pq%+z zOF15;P)B`TybwRDUmpu%3S@lb_lCgD!DWz1hNKhQiz*G(bMUQ8o1w5)Qa1n&B1$6( z6c*7%Q>IY}09PFBkM#hQX&#{)=|SIb`J~*W{dB_yuPO3m<3g}FLKij;n(i04ooKi| zEcw7YA~8n91nB{OOuK$}eHNWBw!=-9JhtS}W7TRY1%C(tP*QVo z<~cT|b~^0`hL(sv&4_l%il6MPyH@zneKkCOJ}&vBI7Zblgc1Akz*yWz52y7PG<`5( z{@E& zey*)#`G~7~)84cdQpYS0Ray<&2fzJ=b1N~(ik^A!iFgU0PQAyOL(kwI=H|`KX~xjX zk?v#cC=FV7u;Z#9{KSL|#hSYHacs+Gq&taro&}CjMoJSIay}m~w8M=*CTYJA+fF(A z3cnr9$CkSuNzwU22Mq;W2CF~ta5-#Up%t2$Rs~4KKIr#5%Pi5Gt9Lr10Xe_uv|1Fq ze;?}O0Z#|W%8=SHmjAFXV{50ydxJME0FUh{u|bQU5nItX58h6Nw%mlI{Itt9iQGO) zHuR9v4YeSthB*Rg(Y={aSANtwRnAXzu3F_5!pFeaq7JbpaH$x!vWPbmdeTM$>|ZK7 zNKYblc)l(?LMl#o9XGl}i8Kcjb_5o_{!0mwPnI-n+ka~m>zu5alV zs#WIqDb~*$S?9)TmH(gh?27Q1@~s7_o`eyFz15gfyodQ7cbTFZXZ353G^htNpU?48#9kOPlt~*k^nMl# z3k&}2HOsFYdHmy~Pq;9xqNS*8!)(z|FAe#=yl8(g@4S%>5PCa9QSE++v2k#6MwSX_T>k_3*A5v+$;ZCp0qGT4RpjJ^#%TRBUgdN#FqD!dq4)GsM;$OqOEzcI0) z)b(4te!EnwH2rG&*z!g?oApX?KEY7ioA0@p~HQf^!*t8m=y1QRx0XC-cNgwAOwu;@LSTIgriJkR=Zs zAfW)0p9KbvhOKCWR|(AAZbNS!V#L$z@TPQ2UHwM@w}XZkjb`(qNi|7azo6+euGYEs zF+Cq_^~0#sOYCv`{7ci%=aLG23Ff?nF~NZMBaNrVsm!kfH|{H7`!*UIi1j=K;H`IS zZrH=PSKOHoDT5rmZ5bDHt*%!MT{)&0uAMC07vf7ha=0DwJ{?YFcwK)zl}UFb3(4{& zr|t&1xtY55*i36KCJga)>4AccV0E3@dK`>P5)^b{Oyo73fWNC zYGd&_kJWHSng++(P)YIr{3ue#DBnp}O{S+Kxza>B1$#Sf7QxOJ6m+9(NFtlKb7-oR zW&9(SEp@ome6yB5IT!DL!OdtoZIj_koAlHMi%w3$=%dhSukl@;`>ug3aHnMp5K~BR zkK^BqB$5LZ^B|&Mdt8`5$q$-)Z{+?nQ2u8Ph42Ai1Yo0hV#V&MxHxN+_Y^3#{9;|= z_%rSN@9Vdt{U56X?-um_?LPizCHDI%zx{&{#96EtT7O34Uw?vxekLPh6D@`S1Vtq|JIXNiKew^uK=nAFabLpw4=vf!sU!&q6ojsrc_k zXL|j!R1>%={zXXZ)_+{$zuzff35`kOynCeipQW-!oSl5+RQsosf4kKGxnBZ^LYU>b zwzc%nQt=|rT0d&g{pW_{N4Vw9C(gismWm8uU(Vp?KZ zVq4;vb`fSV>wc>c)?e-ZCanMD8Sy{pJtrkvmSC1>*6XMzYW_u*W=>*?X#$ld(UE_; z@Q;89U&9aWuS;R#ai?`~P-wKntFPmqZ{5 zM&2V{BHdZ%gunjl&mm8o|KkaTprh=6c;C-$+Ap&He|hg@k7mo}ZgHge{f@E^tD~;! zh}f;I<5I&GQ9OgpPMt@p6xR#y9ljiepJ)16tO@mv`EZc99}6@Gt28Tl~X`k*0l zx!_C*wgNl#C%o*cokmQM9^Ir}rz7G}`|7e}sOwgG*8v#1bbdj*STSb#-50){8yiy- zwo?Z!nd&hFtpu;aACBP9QerzFPBYv6I~nfHSh5j_Au@36MxL7ou=cpKt4m+6G42U*sTSAPc^ zXj=5{oTrW$J;K|TNsX=(bKC9_&zL(&$&ID@R8$u02sDOH8p3Z@Mdxkf#bU*F3qG~P zMRO->d!JC>+ccOZ4;7DZc|mWNCKxk(Z+55$WaoN92)RE2c#3=)3v~?)%A#&NY8@5L znznNypB*yZb05CcujUyzjCB^g-LH;(njf)Wdj6VF{I;YzBJ<%apQkutXsu4nX7AAT z5`F;e@>)90Sfxz0eP2R+2^YPb$t@l2_VC?R%Vb`v?-V#BxTUGf70Rc2`>GX0|Q1-e{b3^S5wmoRyJ?ls4`baTK2UTrO%+I1h4lu{Z5= zf23UPj}hKi*#|>?yJFi@w}+b!nfVr7#!ZfJ{OTJP;ddi&!c6h&_0=j|FWu4YV4XG5%P!wh|e{>XpuT9W_VFQh9uDXt~>12?Z!o@jx5Te$}LaE4&UG zEGl8|Sf1Y*!A8k1?Nd8c--vd6N6+SD_B4#vEu+7LNo?5Q+PD=;lgB6L-VB=CD4esR*lRNzGMzrR=n&oDkv zpAGWO+YZ4p!W^P;LT73=lJxkJ?P|tkx-t=F^3!L*D7S}l_)YmLZ@Gu!O*H5%kH5JP zM3;ovbCf)tLw_5jK8Ax(3qLyQWjj@0z8ePQthHQ&0<8vn3P5>jH*avgPWhuFtHGOKp=mBQZwG6cbG(FtxrM4s4b&E3S<%`KcL*#|YhYmV; zBfustO6Y~{@pw2RwxGE5=Z2!Q^^EIYuhM*}GdnHGww0utH}Jy|yZX?m>~vq+blBKs(Qfm_t<4GWFa>VWfOy=WkNc!Q z=-25Z|EmQTtQ;`RsFz_sz zhW9`!H0>}zq`H48Gd)Aj!%zIb1H_U6F@J1L{nXo-#4B=ggiLx5ppp|JETZzsJoJH& zGFSxAL+P&X_yJ8lNE;#)6fAOV9;jyW*}-vLMUV;A!RVQBAd-WJPZ{&|tK&2s=hE7U z%Wl9yQ2h&k&bDh$Of+2KD_W8hx-HBbcMzxdIg8OtBJB?WguiMBxd#X*o(4S1-v5Nb z!D?7N@xF^4aQA_Sc&wFXe`hS|vpCA9KDASj3WG5LVzWfQy%kr_DJJ`95oGG9j@j-u zXO+JS0i6z9>*MP;a=l>}u){;<-K|4RC5)=n7*3hD3tP`nx5GY$Nx&a2TO$|Uq0NFX zSOLfZCR?}yXaU0F?eHanRg}P{RQtx4cBslrZ=pnRG4hQT78L3re94z+>4jDF$@*0@ zh;`_%qWcS|I9B7;Ny}xcI2MFKA?5Q_+%yUm0JE%=4}Nz_>=k6GeeqTjS68(C09F-E zD-z>&|0}sA0X5ov!BO^P9F)Ft z=}a%Nm};-H`-KtobL#IK21lM+j`r&cdmq!wz>PQHBt3UFjdL!^H6gCUx>!oD{mL#r z>WQ-VD?ZbTfDY4eq*M2n)AUyhlh1;Ps(EM5? zc^g_f4d}@h?H&=dKn%HqlgBIb)B?t5EAwkqed33-34QWtH(cG#U%f;}J|FcoCwdXz zKdEE{#NJwK_{;!QS+~M=H$8XNe~+}=;nFzgy@adv2NVpH!WA;X;$Z;-KEFXMC{89!B^tE1fEJf? zGPjXr6U6jOf23~3VB$mT)tZ0*lRVW%1IIm9xd^dj4db@b^ zs|q&+QIdpr`ZO4Nvgy-Xbu3`*eKMgoUX|{)P>J_=@bfuP*XuwA#QWVWfiy6D^M=Io zRg#Y9jtpkfuc`w?tKwzT4V|Z%uJ>8)SKb~DnH{vKfN}RiO0bVAWI$N2bQbZqQm|w= z>raP;$7$whP>Rk(e+zBvF@8qsx6EGva9ar`&hwG#eA{~J=YaK^7Vh0=fhk6&XV+k+ zONCrA;X6UAhxRi1_|E!Gy_~L#Dg`6zk;l2bSchH~o`)-$`=aagXIHLzMYD0OD`FF+ zT>WW-+}PkAeOi$PvbgvnJQ}67^Ww6(EZ^C7`NESxz}*YDf}MhRKT(EJbT3k(AD=+x zURhHaUf}R%6)c$+TO9IJtj43xc~~&Nax8>AFOyo~hckK{O}TwgZ}QDk*L;98yKQoG z-P+yG-mD}c>91H*iTNzRM~t{!JVU!^;iGz5wr9Y4)B^(x*J;Ey?#tGNp53w^MPiyg zDW((WT*IkiNrIuohK&{#z{J`;)0Mt20^mK36K&(&%hG95B;MzYR?A(~|J9JT7S zr&;AeDl;No(7R3ka4p}d&PadMY4y5e3F`&WTJ*I=ZW+|wM2?!;lb3JaW!&6DV;aCB zg+k^86kJ~pBwrazy2!;jjbes+febt4lWQJg>PH-hl@ksF(g5?Pa?t*1HyaGZTTXnzhMmo}@vz`}aRm zGx4@}SoJy!icJ2hj&LQJCiVk-EcRm9IJo-pgrZM{|0v(Q7lzd+cxyeB0I)BIKO zM`U$y?K>cU;l;O=RRD6h3o2xhLAhV!#GF7Gs~w-yye<;ywdZYxa0z+#*iDCesb++Hg@0DSzL@QDZW>#MFfhv`zc5?batjQjvn zGQPF<&J5qz-(nKFYR7GCvd(#}vco1${mkagHAu-AgtI*KzD|lZVY?J>PLfi0FC-tc zJJoC{q1>?F5k+qomO4{@zTijT-9P^xHQQ~=ca7Xzu}&T2XI7pIi3+Mp-`6_X{H8*W zc@(PE0!!=*q&||er)<~m2SQF8r$*{O$1~z&NC@T=&M#m46aW0VQYqa#BHo_5H;z|U ztsG?GYi1ooB|>)m(BDIif{K$ZPb)%zQ>mE?^$~1G6&})*Q6lQ!`A9eVW2pM)+01cR z7?QYN?`VQ--J@I66QP5#WyR-s(6e0IH}ZIv;wo77pA|l7huNqL7}IE7MJDn z)Xm5CTwjqrAqcTav76WivxijqC+jUO8_g{rBjN4+;k|O;7C!) zp|1ehoJF$$P;%G}N4XUc%s=E92Sy*EY@b0h+Z00hjt!~#S}j`mZqmIh#vPGtb=uCU zZbtvI>IeNFJ+5!o_%n3)ec-oUi;jSe#%E)NAg>@53!8%umah9Fprfb>Xqm0~>{s7_ zMdY!Bw_ebc6PzXVV$*3?Ox8&>aSx%mY&FO2FGonJKLv4~DjX8FFP62OcHP^(2Zhv< zEt!<;eN=dM5{ecHVPL50tK6yVcBG&gbEZOebSMyS#f8*-qpN&Kr7R0WW7+7KU zd1lVFBGa?(C@Zwb>(8hGxD7tN)qz}`vRPKoU;pa=<+nnr5*7Oz&Mzs_XRLi1e1)IE z|D!ab-!pkTs~E11zf*@~JO z22Rl#0hO~1)7wN5Q zCV1DX*yt-^qYV36TosJp<9v@ddr#t|kzuUV+<5jW^REDLoj=#7BtNv{x{|DSkzdfQ zzqmT6UyJcLJ(DBnRH0@q=vTt}84y4xX^2fgtq?-Di}|tovsx|CgA{Y18+gNLr!@)Q zp0Cl<<#&Zr-~Y%FPr8*Cn|hD;kbuC~aAB;xi<@WBYZydm+50f%f2|_6OgBb~4)ksj zWH>XOxM_G|=*2@mm~r8_-Q+Z_#K<$Y2R9@K(r7H%d8rEN*>PghG-mk5c&+cKU24vvASRbJ_c2N0S6^3a}>S>6?3vW!-ouN1kEUpNhCEehL zS*eL3)Nv>Ap#fo^sq)uPNX&*2n*D@Qh`4djv<$ah zyI?DThG=CiY$8YnXS&gSHerdDwFNDXX7)=OG+-kT z1xsbIKbyzTHMQVVYZC_YrSsGGhk3CEcs#Vfwt9)XoQh)QhnmUEHvGGx({o(=8MGe+Uoj@zeL3FR!;q%8@s zYDH(vF3Ie2nWf7Pc4ss-uPg$uf()s1;!;S*LXnUIOQUJlgN{mMRZN6#Vd9W%7%VL< z#dKNqJT9dx))~Pg;&|U(5bt z)vyXof-8mLwm3CkwW!d2VXQg&j@!d2VxICda{cfiYR%`OI#Y4p343t8)~p62gfrq2 z<^HP*RlAF2xw{Osf5p9YgFAlpZY7}0t>$H*P(LfVPf{JN3o2ER1lJmokBfk&dovdJ z!FBq*#^N&m_2_$T`@I``gqLG#BaBaW*;4P;BFwv=>?Dlvk~&F(0DySfyOSla_~kcx z+_$7=j?H7!c#?PnCo!)pXtMdvM~pK|&yVtA@2T74MzEBJnaK|jK~4n{swGpMkBsa4 zp<|3YM>-TE^VnPQ6)f$Cut8hb`xXNEn8+*-U=0Ti=d@ztiTCP{9!kenb8_>uj`%{o zj=dPtjjGYXbsQ0nB9VaIU7jy{h592((?mXz7Sih_?|ewzHfEm~G5TbHE+2_7IyAr{nPA#6$}$0v(%gTJE2#Q5e-m>@eHgJ*6>r|t-t;s( z^e0~R^JXFQstzTQo$sq{1-qnWA<4k{%`r@Mtg_zo~f zV)Z1?sKJEUj-?@&WUR0@|JPodQ;l{_(1bYA?=*5JpNH6Sj)+9!+%N(jpTr=^Q$>9l z*{#yfynWJ6WHKtW63j*2**}{@=M=i(%m00u-OoV`^tLwSGSM9>Qa{QED*hSZO@AgE zuYz%uJMaamFnOVYOJf!w(_Bs|k&p_bx7Pv^eW(I>nj zM|OdYNOQv`l0cGpy1~mr@0-L#f>REhws4b*ZEL_dt}^}%X%P-0m?P98xkO=Jel}s+ zb6ErM?NfcfxCxP=FPhUwd)lk7&y$Xa=V&_d&EJ+b@-Mq~V}|JKEx@O+j(*sgcB`0g z?{)V+?}|i%5s!t|Zz@OJzPhx{;4!l)Rkmqqjnh}&fbEsBb-HErSaeo@yBT}>)yJN$ zJCY_N+otFK8}TED8J-Ndwv8xgC6KA7R->h5TXx-bU2Mdek0Ft1GscT)Bt@U&f|ihI zy6Um!Nz6~=pLJ-1(6KPm_o|BH7lN28C zvHVvKLy<#+*dGz0dIEWUl_! zUAhI?lI2Df?sxw1WPzY_+C!`VM2ZJ>QEswdpXEjg6*W`k>LL{i7wy@g*AOVoRHn)P zD0+dqyBMLouN+2|jn7r<`i^dp)%lJAtOCwa6+Q`vg{l$P0eOe>??PSnZW^KK+V3wM zf})kSW_4rT0*|K-%qNb7j(Fy*8t@{#OSdGh^e%QS4W@6JljP6XBv%eJwBr5bv7Y|wk992WtYGEDQI*M~(2gp~El8TFoAdp~fu48+ z(2Z8C(un`^a0Q`ejT4Klcq>KPNdqLqmu}NC2BJkV0Vz=C?eT6`gn z4Cu7h_Ko+*)BmN4+(=T#%(~@T;Hn531G+!!ygw7SKZ>Db7J%%Hct1$4OPA=(Gioe; zId7x$?!OMjU)R!c+8`hT-+1T7s{an}{|VCOCLw~f1$JaC|9zLg?l#9lEH0~MgguG= z)4BfvJp9H9e3-yTpbsp`@+|CMkv+H3|3_hOq#hk0VVSU|JXV)xiA6-(L5B@n%v1jq zRYrg;LjQ_CXZ#MyTmAYT!OQ;TkGy}$aZl}k;g8Biq<~bElem@czGU({oEonzrc*g3 z{nvGW4zu_l{|>KP;+p>K4#}KG({&1XLc~Pnu^vYl!SA@*X)-LhMZx3vm9}kz{m)JR zMUYJ3zStr#b_aznNK(`+o&N^jel4qE8pUAb>Z2#QRIh0`L%c6EZwL_kV11{B4A~ zsDr;RDE;H3KfFP}LS%x5(*F|Xufs-qL>PeWCHNnq2lym-h#~ZUz4D;b$_aMjIjIO|2M2ASE)6yHHjJB%AF>>0JxGP9=P7`&e6sFc2>7;M%!ZxN`oY( z40*WuTn~WL`}H4zYe}@7dcWOE|BDnZFeWerj;L?pH<{qLAu_0e=}!~4UIb{e>?mj; z`_W1D`6h-x6~4H=)_{8#rgMTrG$?^Rc6jaZ+2OZ@i1gpgOVtXUTplt{o}8TA-7a4j zA-IZt+B+>wod?dS9>^(Ik%>=eWMxx&v(6`bn%Dx1z()$~iej7YXw*%|mi0CZHAb4T z;p`_6Qa-W!nWe6 zkrA|PgrPS@6h6CzD^z0H$5GonO}=7QG=A zm=X-YOv8M^BP?*#yPP~mjgndpy`WW7MyaP1K5xPv+&+R1ryVc9JeszG!Ss4ev8ccO z-xB?=rSaH8AGq?>gF%-mfjm!(tMeWZP>4@>AbiZdx4$d4qTfcD>)roW&+l?t-#_u z-XN+2YnVA$0~7t*6FXwCrFoA9`oIkHtLdT>HcvFL+yd4kS?-TPb=ErHAL79C^1M&ndEM8Izr3sjE;cDP3JMCYl;kr76cqFX6qIXJ znAd@yM5wCaxbR(SIR7@WY!vsha8u zy5ofNMm!JiLE=Um*l~T-b$zxC55>3Rw*MzxUKE8lOVck|d0h0BI4OA0*@Uqsy{^m8 zSRtOZB~gQ4|I9h7a;v}+FCl7r&_ujd=H$)wBK&>~6uEh;?^`G#Abfs7AF|-@ z_vLa8?$2Vq!L)of$V*Eb?q|i+@b+CW<`n!eaByS#`#H!khx3si0qb0JjWo`-60 z^EpT0;2BTI^Fn&kbeP}} zW^&s0rt6)02mYHIlC}`+t@s^XskK*91$L}%$&n+Yl?gqzl2RuY8)&6=7A{XS%XZ11 z*dFcpwpB!#eC!!@a&rvkO=N@D(T~YgM$q$0E_cf9e;P(Sewu2F_}I$J!z1bP)}K5v zN&ULVSDY>pdQ6Fg`#*y*yuFA}mQMSY6k~PM0{Y)!Y+)_gJyNiCU%wq7da!ddwrixY`YNS!&f3F6e|38v*Z{N*H|P`7=&-Ccrh1X&At{WAXr5; zNV?Pe`rG8)C#W%B)va!8qVfpyl;cqPXtSYc`{-_B1&ZRo@u9~jQt;xuFZdI^(EDx( z$1LiRNWDBE;k6&4PbJX|L^P5FGVvLGvXY>SB#SrgZdYF46UIvxGRAbl3#zA&y2;eA zTp$Fy#qsjdDvn=6>!gztZ5)=-H~z^x<)lK`JPjmMWSd&$Bp$fINhkqtJ|`E;r_)~# z@Wp;6mNG5>s@Fw{CF`zoP?khV5}$n8i<(THOjcv&n1J*YneGq9mUeez-fR172X{zB zCgY`$b+0XsEDG(i9h1HFe(^2pB{>^R`r#wWBJ5BfhDP%5agCadqd#uG6w>{oM%s^J z=C{`sY(x@ex@qhSd&kUmA7LP_?u3S|?%OV>hx`%d<| z{Hq7n1Yh2$$yH0cJv|kE@Ud8GKlR5$R1+Hb8@o8W@Lq}Irz+HBq3W|~`dH34j_@nO zPeV?_1q3=+a`O`97a|o*mv2-odcf zBhTqh8XFmt&6tb|@BX7Zy6e?B^dza}0Bcb4pcm#d8(SpJ|DXL9|k} zvpl4bLDyxzDbu`2k({Y+40)uCP*+S+PjwdAA=2{iNTowS7T0!lL0lk9kiSZ}N@Ra| zsh304zTw*SwG6&z6mMnYWIxKrb`<2L=haz6Sj4Z>2zpbBvWi&dYx|97)_QroIa5JC zLW*27xK=8XE)ri)AR3VTe(L!*({KFZYBX$X37@!O);<5Ols;YhmOadhWeiRo{$I?Bo7~sz)DPtj!eyrm`ZcY zC<+lJ@4sXhRCUVhqqA?{Q(a@pvRd(U{V*9l^3C)c9<+!g z=}ney{x6TMIT_fN3(8a3vUw3YAkDFgMyK{tE>;df4o~g(+O1k6 z5ozHi4B3_xwpx8I#_p@frMP@#g*-Q5yTeXS1lEc@=@Z-v%7mce_u4%Ba9=IfkX^@rbsPl=al=@a&@#ceR7*Kovo=) zg_}A96V33lDBJiC_d+)1H>M`Pt(7>Glt}b`AndKT|5TZr0tt4YvIX~RT0(XDgw1~P z-}(UgPOO}^|=GTZmntb1jPhu5>^ zTz#v5a}8dndA>~kft=Eb&V%Pj=-j8pPn3$p14f2L>b%b|hd4A|Hwy3ct7EIR3ls~i zA=lyZilsj?-7T4m-6*3AWe5#@@F9w03_B?Vwdn`y<{3Up7(Ghn7z%!5+wK4Yt=)}4 zn&41Q0O2F|9)!Y`i}J<-{VQH~+Pi*eBGismmenO^7Srs9A|+E=i1BuR%0NFePW;{Whf(q!U%lEL_zg4K|u#T zp#uL%fqy6{Xh~>)euAEmbnVaQYg8A5GwKSRC@8`xQqM$`oKRQCZrCaH4L5G_JiPw~ z-GuSoAWi@-10$pNpsVN)?YzO2A8#>;syw&}`MH%=GY93rFumFccqIaR&B?GdJJK1! zaiAY1C6|sofQCdX9vrQW+H2vt*3o76a6x>Ck$0yyz6do96Ss$ihZ7AEy4~_Hm8kCQ zK6yYgbqx)Z`ZdbGzJ!RNsk6M6YMqqQyX#Rr?Dm0ceXAkOX~f6u&B2Y4L;rt2eeuis zpM;0erIENQcca^;<|efbDfV*I^c{lj>^)t zATjaME?x_#W2S0trh2_6Vf-;nX{O<{sfQu;rF1FIY2@3$4968KVn8#wCt$KUjq!Y| zbim>3j4uTEf4`F4@A8gQV}*yW%aLZrJWY?;zu}{$n5l#~o8&uv_OB)XwS&h})VV%% zxccVb(vENOB`dnmJ;A$Tb4g;A;FpTmMP;1V?5Ic*u6RU;nhr^|3pXw!7rL0x=WNQmNUpEK!K!s5FDGI2shREsV#EPS|%pUrTioQQEbxKe}q=_?ha| zG(H)|#AxZpw`*zsBPPJNxFnJ%)6=+g)7Y2R0gUe5rgq8-CSCZid|k}bOE0{sM05Mb zm17dGC*eY-aXy!iomxHxrCu@U8TsY4U{cFdp?YT=XIkI7e6_EIgV50BxbCFwqe3E> zzx;SllCdw^<@#R{!{B-;X6C?g@&i|A=L+|;qlNvE-KGA=ter0Vt0wV$ z_5rSLPJYK+o@Z_+CmVISqJFm`LgUvQSDc|GrbI%Vx{2=t0$?X=rA0$UMk7%-sEUQ$ zk9!9rcRIlnu9o~(Noz%&LR^%csFzP#Sis8=H-U4~>4?hESsOxbq$^nzS?Zr(W4Mx6m51Cq*(jZh&`{xJIs80nqDVqbVe|8T>4-%Y zMr`EK(RTv5K`vFDwQu>G9pNg_W|s0vv=Q6H^T#9l@xmnmP8)eZF`*wI`hos(&Q_q5@ESD%_FTm&jXtbV>P z`gTxJPLK#IzS3ch6w5GOHr`b918?Iaxr9;bIbR%-;StLkgC;7+xG|3rbN2i+D}zPP zb26;>;d1roT9tNNO{T>CQgre91Ddu$$|@?20^t5e7|#p?6H}|Vx>AaGP+>|iUkfJ( z8Hvt~9sC;t8b3f|ii(Td zUy%o@75#ox9>y67HUaScj}eDK?z6W~rdwIfw{K7lrb>lADDt+TMgoDEUlm}n7IVs&CuLLEMdQ4I79aBLn2uGJtd%2Vxm%C|t6iez_1+i`$vB}2PTS3DNG-$I zWd?ZOCuqKQ&1vG8!^GIW4P>rZU%I|`-F05M+JHN8!h9(rv@r1&0P@K#>wY}C} z%YcaLnfaHa`C11=3QO4XM4e|rRbwL5FeA-7*1R-&Z`4jvr}w1hV7v&?`Q+PxdQXo~ ziKy0QdbIk?=xTnVmYRJcP7^jZw%gtPb^eV*;q{qdp~7%g?ICVQ_a*Sl*Y@k9Ly0H* zBbFn!7Vyu*_bmEV3bZD;MobTVNsdX?G!9mbu8lfJYPrB2hP-@koRF%Vy+46KHnlyD z48Z)-9$Uy90i6@tP_vwh^o@a+1K@Vjl>7fRL&C?HoRCdI zblO){Js4n-MMA^X1@Ai;;+>W1keF~z+j(gX>mNkl{Cbaz3?DO~@b-h&5HKbpd{ydH zby=N?dn%?k$gPCKyBNxy5||zfz50%+_%gMVPY1HN+(Y<);ic<(#lmTgeV%u^pB83H zI-f$>s0~E_UIH3T$&Tieoi0(lqt1GrVDMRae%Wp+4!qy)eozN)UW)gsABBgLRi^uF zLl(P5WB71hUTt{5`x{Lb^JvUOa;k{JM!~p}V?xe~MECun`T<5T5g#ro=g(RP-4|W6 zDeAg(l?HC#MwyF}1O+YPbQ;vAaxBZIuAgi*Q6clxS%w%TS0qz!9u2d z8{;SI*^1VOlL?nSi`OjSq2urif&-8m-@q5WCP`45TG^=aQtTQbzRb~jm6~6#OROOn zV{NBXXot%4c!>@XNLI3*hvHOS+LYjW{Cag7!UDHlOf}0oPxLs3*PW7@<$P%~x2WC{ z*YHH{xp$>_FJqVI)$9*TE~Yjt;ssNzoFok^y4a43Scr!hTEQ`0*&t@q-~E;IDBM(a zHy5KN>%Fj3J{)y=x-F*O6Nd&k&dBf_y;>d6@vLdLw)~32BiPEGw;%B|gGfcKUa4w% zPE~tLHx%u=#+X9G;#?r#ITlG25edo3u|i~}x~f@zNkmZXi3Js($)m_+n2GbOdD(wY!q%_R?PJ3~8AYBP- z?coEP<~_}+wRGcp=9G!C*n{3;C6>y)B}5bJ5~8O%$>b^Dh)^hZKSv&%2@R)*&^u8E&BgKBuHGtJyIuD11*%FpJiV8rQ^@SXy}`~F zXM&LnGGmXw2XT)NdXA5^S3`e*tb3pMM&gRgPG1f*Q**wae+qu&_J$Y|nS}vqnI6l6 zEq&rx3oapN9e3U;jSLSz(mFaiIy17MU&NYV8b2x-^GIcSmq(qQTHGsSC)PqF1UD(| z@f?LEFQ&hwC+9?RAJ(=lwR4MdSK7u*Rxcbg46+F3a1 ztW3xLW;U2oLHiE!L9l;dzo)HOhI{DYlc38XSBUt9H!bly!c<&X{#%=-CS*ZC;T9Fy|EevwSbm=XO0-qVOZQDv5-(5Q6EUc1b zCTQM}a6Q?+xBKx>H^>*KENMNgGcw)qE_kRL$d|_&L^cY$v1?uE9U2M)>@nSXm;Af=0 zVm+{=&BCf6Zm3z#A_rF!FbHe%)ZXVgZ8ACwak?di=NwCe#nNGA7bTw zbtp@N91zYM69=Qk4RaIS#EV(x#TdXYZP$i60xJFlREAKfqP9{Ax= zf@%~ox%T|1RzJOG-Jf}2NqQ+tO!X5kLYIS*5?5=PXW|f3+WKaEgS0<`&#AJ?MNKLz z-{p7Vmene+v-NFewJI{}g_goh$f_nGGN_*->}vp#+7EMujGnExJH+r3T43vR2(2*d z*cwM_Il$TNdMaFIMk-hG$ZDnIg;v(=w!7Ny_r2_ST$03q*`u-8>$1Ce8@6wm%imce zBU_S4I4K>&*}O55@ph5{bJvbFzU&9F#=H!agkWc=H?HT3D!DDc)${LtiS-v!jfl zdmN1&M&xS9?dOM z^|L+4WTuwsC2w=PQcr9z=ZS=+B_ej@dc}hgM!Q^x0@o@{Th2c5<%(U98_gKmywVLR znUc>PybI*#iplCv9wIo5{o{wlzWJSyLa+;pVY!v*Lpmah8ADX!ZOm<)u&&@bz2^>{mcox%j?AaBUZn>v?`Q zr5L-rlldY=x^+S6q1%9#<6cR!VMo-|HQKSmrz9*USUTnKcje0uF)Y_cs@@LC@~O5S zi)*^T<9T3F`H&LC2mYAxfQ)EumytL_H4}zcUB#SRc~u*wG@4V^7_MX%1zz@!p6M0d zi&-PI*|uXP-fT=ySdTN@l$EqP;XH>XZ~L#W^C^z5a<a9U z^7zOdiUyC?g?`HDlDa>>=(@h;rEUeY2NTI_c^u6NohoQ$7$tZNdsu->R@XmDP?f|x zj8{}5hAyY;439$QBGi?+9TOqXpPz0&0Tr1ksu^cj@_bp6G50q<3$m+2&cBD5!DAY- z^^FnfG8{x`133lhFpkljEHua9O`Gq_>lq>IMrFk>d^@;Ab8BTF_s?x+^1loyh+bhx z5`~|7XYA_D`d_k~06g#+BgP!AwHtJF`9?6QL&kwTbxE*RfZ~#Qq7GpL^4mAvwtAO> z2Vv?O49tWcS2t(AE5>wzDX~%(8n4I_TyXFO(hd%{?XDPWK*vnDBi6on9e8eyexNKuM2M* zJdExK9#fE^yKEe&Lzd8@qdsyvTU+-ze*Rk%mZ-aKrm-tVNMR_M{8mQ!8sSHV4`nC? zwy2Ez&U?O){664M8p7uwM4Qc!sHo`kiur$>S2O_o$3 z@~?@a8AJTXH|}^#k*A$d zZ(b33`UL0KMloanU$Q3>at7w&;VElA7m+wertoZlpv6B8+hYvYM#>HjEEkPAk2Kau zhebLh{#;p%qVRcln&%p#jRK0q@Q#*~LFO0jZQM6{@K?GXQjLZk&$%Nx6>KWQErEPC zCVJ2#Xm7cf%uZUbs7G&u`&&{ZnNa%}KXYlKG`%IW!MOOLR~tdscIC5k8nsP4$z_Nr zS-qkt1~1j`Yw39|%we~?&jqP6x)MiMfBB{%c_wG#&T7a4om3A1Vq8cMiI&XBvkz zENh5>kY-J-P~YGEV9b%*^X&AEz;PIZB5d~O$5P|&&u>N(WB<&sgSl9T*rmG%+}Gnk zH1}WrDTxxzz`&rigKuRpw`{z!ZAewq+Sj~#tFaYk*@mm*i7cr(oPG~vhoj|@H7Dy; z=BI~S)(1RxO=S}vW_SXdubUr4k6dK8KWT!Cl~sYV2z zd;s?zN<2Sa$se(9qA=2ceeq2U+Cj*H#bn_*ImH^Ib^U9#C+laGB-&28`q6_jJY)K0 zV-B%khYNrqJFk+_M*Fe5(`Nk*8OUgY+qTq*t{+8?R+Yo}4glem0WjdmxZ6&ATN&y7?^^ z$O>vB6cdHqSC_N%_jTXO_LLA(!Yw`y8$@au0@qh?ftREwt;Cq+eYwYBc99UWjYfk5p|1Kwtvm9I1iAGa zT=FMu7pEuhR5l-DcFaaUnqOTlph#~&?!0i+j>wSX!7z@wO-taMXxqX2F)a)#`^0JU zrR!2!$Fc9Df@EP6rR(5#e*&4-kzzaMQKgrs0655lAuJN|`K2UBxTz_2 zB_ShxiLWxlV}5paFy3)|=^NpmvU#|&%GSZ*T%^uvPBLrVX-|UdIxpBZ6L2b2p)gPP ztsf+%XU8iNm1$qsqm2^$-8wrv4|F?4@dRhhSOvGf6O=Y!GaVwc677+D1FlpRX8z+B zWrVE(YwTo?(=Ca*S?kroFAjhXNEkj@18$+T`BCh%bt2@{`Ps&~+sh2^8Plq@(pbFa z-n#SC1#q|D&R-4;a3-JRg~h(7tnj)6JE_f}BlmO*r%bflZZ4gAOQtf^->ZX}5Ce@` z`K6*E57D3rM8%WfC!DR1FcS#bFp@(*D25>5igZ+~fDqxG$-s&X+XK|2T$X#`=|hTu zAlqBvtn}x`=9W(feB9U)dUgP5{bAUdV19nO6O5NsOeif93f<)9CgN6gioniQ&Q?*; z)FfZZy6Iyj+lfdPy#bU@4a3l~sO@^Np!=C@Qud#V!9cmAa~GSXw4Hn8FnG9ZyM^f_ zS`H}cm=}!nL(M=M?t6VS6DeTy*84t_awjCL+A!$0#NUB6sVJZ;?1UA+uOAElXGcfr z=;&yaNC+Bkdny(W1ywOIC_>AeszydPbQ#xvb+8*i!rE(2gBb4{W zJo5`}mm-~z*bSsLShA>UU7Xojm9^+iw5@WWB1GF`ke{Me>IQTmGpVgATWPrqq7gwyc?mjSf%2YVMb#ayH! zw6smbY5+wo5!ML0N!z+Vax!HxS^pit(BRO&kvD$`s>gncJNA?#Sm=0>M#ru4ep&Aw zZcv@;@lu96_2;B%z@WW%mIBQvBBbvTVW}e8DEpYO4V8|9><=Lv>AQi9FKf@wPEI)X z;$pDUDix>Fk0qLii$~=l1C2psMu0=HOpS$#XH-J7bkfpaO=Wea;xk|-5vsxOR$zOY z)itU>4gilb*V%nGsp-rBbDQ+KAq`pWZ49Q`XsY-0KZcZER7&s~fI^%1Pi+j%f5_zfp6Lknf-Rc|s)V#YBQhdT4|e zJgQ`zlLsgv=*SE7?{SWZw>F3ek=Jcg^8Hou9 z%El~Bkg}XmEFdCmRT=#30L&YMok^#M$a#c>%!b?-mHyFF!YpeavpWxN*Y6pGGlcaV z%xHn$$_X8PuhW(H?b}P|EotYO7-fy;AL=u70`LL1`wo4!JtHf-#Qg1V6xtv8$_%Hk zWS5s42L3RM=}!0Ft_(ITZ+=nKoB+5gr;LI>`iGwxio%hw{QXD$uTyv!`Bmfw#jMfK z3-sw@!AqcocVHQ%n7sIw6XQPi6G97Phd{L3eK!LJ0OTJ^^|mk(IWL=3Ygk_b=YC8&$5wjyV{aZlTWz8vg<+<@B11pA7)h#fDT zT_N{io=1+O)_xnV1--I$1Tp6J7iCd~jJP{13LniGU*@S>1l6?3VytqpY&GOd-Z=an zoW8}hTk1(0rc?f)fMD;_{<_v1yWZ?XGIk z%jKRd{#v2r(DhulXUUS){as%f#_h>ms|@eMSyW|YisG}(wgQdXqI8Yo?IX;Ah@!vL zTqE|0^=A`9WqF$HO0)iX+&6vkokD*ibV{$c*JXo_9-_+y!JA9|1f5>!*v8T0+#@i( ztS@P0LniRg%daskt06B3%DH|Yss2U0`u3JUaM154VTpn5oq?6y<#kAhF%w7`e;)mQLx=+!ko1`xNc%fclM^I& z2>u1oC}>gB(KWTSwA?wnyXS&%z>GW%T^}wW%mf`}My_JR!?y zKzZe_=o1u!w(p#5sWfo9t<}BiXh?Qw0758uC0|`)eZ_FJ63XkLMqF z4uQm`%>(Jql6Gardae+sxY^;Wn#M(pfxl1vlccb2GZ3D;Y5DZ$YS6vtR7hb0a@~E8 zp`jsox30@CR+8{1tjy9LY^Iz^Bf<7W@I9Y6C@dnkHYU>IqlieMrdc{vjn{J9f z5|s1$EG1j)y(gV-XB;nr&u;N$E2vEK6@U0s#{p?NUkB{?i(HP7RG>28LQ+EP(4fox zcU#Bq9KA%B^Y2|4|8pr}Xj7X~_XC#62?+_K48cn}XjqD8Jh0;d)xOtV%ydNe`v~2i zW}F{wV*QmadP$QQZ%;~{>-P5|>L0t~JA3?Ik+GYX)nV#OvAtV_Pq!wxTA{6sn-A=u z{eGZdZ$d{qK5vya15kk_9Smi)PjCN(xv4S2`01GwP;T)>LQiy`O(_ZeX-}o5NL{>N zGJj4WFaF6Sw>eQw433%bcx@nHLF})L87Ss>&Kt|dJh~k zLi?MJ;cm7e_|EV3O{%7GL=91QDY6 z^nn`7uN2{5FW0XGEJgbH_07|Nyy^D|2@?QVC)aJ}$X^Hf2Y>kMt&g<;1A*|o=Je-c z|CVF`9PtOB)fmi(*53*3KVKNl0vL#;I#dDhZ&URTBhvK@$lPVnTMe$*f;0)WQ_JoI zO2QvF;vaiAegN$Kk@sBT6=G&9^f>9ssIfJnu}!cyw(jb_%D6~0t&e0g&yX#NCU->K)g z-V=kion-*Di!7I;omikfL2#t7s3;f6NQ3&FS>9aUIdzv4+Rl7?5s(L;M~G%iqc6|89pf`gKD_P7bqKAOJXNYie@Eb85Zsf;W3mm9t$whc08Z z7OSv1dW4Cw8DIx|zbhmB|5oMyO-da?iq>Kiw!~S?<-D0%HUJNKf_quEg{isF|2J27 zx3jC3sGt8IGyV^;^qMD-k4TZuNX~8c$$0DVx26BbBdF*Kih$&DH3ez^jXnJDWTh@# z+pg%d8&^nRFCl>7w_B$S{O|EUpM-k=DWgT=cZ*yhNnC&=DcFuK{_)NK-2E;f@KWGs zcKDY!Ehz&CbuT%O%N3U3VGSU-J$Sb%uE47P@Am%xcY8_PXyG`-YCm?D3?UJ{^P7*r z>9C%MOwRMskLu(ePf*iE^Gi(p&wl;>l;q-t(L}CCgh)qjB(1_)we@gY*APumpnk5d z(tp06wv;gq5XB04CW-?RJ-M@UI9uCGM#pP%_jni7R76A?5-N9nNpem@<(Mt=Ywq;> zJ)4M{Way^(iu{lEJbs#Vy3;A+2?aP>Z3}%uC2=y`{uOnVLF&0s_4Th_XCW;|JGroJ z{p={dK1LEy;i;l5e7!epLX}U~n`pu{-=M@q59B!X18TQwY_L(S7h_($S&YcpY$O9^ z7qHDGawt;)I;|}6!Q($Vof;>+6~$iL**&GWbqz0Szl3kK;21-W#m>aN@!oAbU%B)0 zXnERBL8IKW9jaE-F}_09cp>9-)$Vp4jrX@Ga@yk^p(-P#w5w(sO zCEB^HhPe=XXM~Zm@cqZBhGe0|G^f5~;B&+FlkN6Wa!*u7m2N#ly1OR_Y}A#-Q3{@> zwE#HK^91+)7Vt@1A;1E(IoU6%zIN*!bCZT!pK_^w2YD;i4jSn`eSGR&>8r zi&)icc2)}M9gZrUN^gb*q=+Z}M+6iUs4*kFH>L1yx7lIubM^bcyGo%EvAC%!TL`&Q zNz@>XfQW^NROQp-Y@#vuGG!L+Q%exNW7{Y2`R?9lLd?0Gx>|7lYHk_qqefxbY^08x zd`YSzU0tC0)?DPtSIHaUmC?%YEi0P~2ebjoWA@=Z8B^uVt!&NmE+~a_DqdCqm0K4p zYTJmrqo)>zxB&qjR5o8bV(w|i@NQ?~-Q(<03`j)i%!;}%_en5Rd%&$_ba%G6u)71YOceyGP} zSCmY62M!WgVFvR{O??b-X04qgZq+uTFq>IVrj{Hbv>~dxCjxRDZYDWa!A-YOb!5Oy zXaOU8J5@|8)=KS{6TwbPI$3(*V<&e9AQ_R z|4umG^}zQ;cHlokfiL_Oi#eLBb-qGf`k2GBQ_%cNY; z@pQrzy1ZaSySK6sdB}jGptxlTl4-SWMdsW>?$E8Ul2|Z2e9uCzJ!{C@?r8ZD=llh} za<)gM(I-epdaU?Ux-mw}0j<5638U`LG;QaqwfV9Y)}i@Iqrj2noj_~W2tNL(tuQ`4 zF}eTjsYjSv6Co8$5Pd|rVD4Drtlz%aJmTr;nd#}8kUbT)VaR9zkS8b7Y3+dZ5t*rc z2(VkQs7M2g>&l1EKYch+Sae>-J2+ozjFkX=&!TnOIhj9M6_H@l9An5GUc2cX?z!!+ zQ>eN=UY+4;I5#)+X~Od$qc7dFe$SnLJ^~4fW~V8XqJmn~)y$O-shVaPrP2D%A8W^Y zv;ZidckRjh^18wZjgA4w?bgN7gXd+ZvNEm2-*SI!xBAto9BD?fXWG09@VxKzdX2(6BSy@Pjxyp3Z$_Ci z_myF^c6+luD*s?g1IIW~)~xZxF>M+5oM2ticvN3uJ{#`g zpVFS12n8_Fi-Y@pJqEUYdmNA-J!6ln7WEk42e^T9Ce@)iwUu=qKRUr0vIpyDMP~}& z>5^k1z3P>;7Ke!8v=+&3xqnAtUSY)VNcb3DV~;yz3_Zs+2aPf(38?x>CQB}vfWMR-0NU?qJQRG@eeAdpcdG?CV1HT&G-P zJB#g};Q-H4C^KDUX(j(g2J=o)ZD)C#uL4YT|3@B|K_W@{UV`~3E5Uzb;EQa!V&+5b zphK}J{s&`m8Mf?4$5BobkTILbzAQp-)LlX%0*?#~^N3%JQ@S3i3xG6nKYs!`C0?}< zwzjnIfk|{6gZU)che$I+Y&ZQTE^WF5#@8H*iGIlXWbGiTWe+M)59Q5 z5JR7f!qghACvxuOGp+q{q$%ZGg$o2bz86|fYep+4ICqWBSH42SoJh0B6jArH9s>UP zycJ!!xO(*)9&%(h;&eYYTwo`VXu`8j=YcAlTe&AU2DoG?O7dq(>|VtS7W{|#gdr2(=rO`$ll<{}zDPO19XA}+ifpT3ib zymQQu%*=fm?lJNi!nzmPb2GtP_nVvU>aaF{zx5Ga!Xi&(MOjUF?RJ2tS%N8OF40>2 zpnf0CURr*I>8kx!6z zR3V_+`4~?lk%~FH+%fJx7wniuCcsDMwE0>=6EYS+t}D4O9orK3+#91vARmL&!vPu4 zIk&2l*7}Sc$Tf#7=f0F!DX~sQ`c7WZ5lP4fp2 z`N?PyaK?c{_t}8|94CMZ>7%Kek8rC8L+uv3Cd~%2JuP^3aER{Y8)VCXzj4GhM7A?B z7k}p8*e!|YEMjg2@hIUdpDksi&xLXM%2uk>B(RVA6CSkzK+`??%FF$A%`^r2jW?Mn z1&3R-+L_w}6}I+AYu!PX=g4ekR_O%Fff~9tr>v@bM*m2i{&Xhb5_gSU(@1pG_Q?-j zCo%rGj`wrt3d|Dop*RpBvagR4U6Ep!F1^+s6+OFcK)M0j7c?b;P%{y^W`^FV&b zD^Q^xZQzvG{Gx7Lk(l100j9j`xc(Q=_~-h5Z6@_1pB=_y$Gd{F@&BcZv+3Ewfg|0`T#b&N@W zB7gle^Ftyi6kU$-VP1^vRT$_PMwk~pj+Ac%aee5xb_SZp|I7{)U8pGGesz%=3rjb60$)a%U5^-2&$QW#8t%GqGbrkd3&JSui zj+-2SH-#0)3daZBfu2fOPpXu1M;*|`x%y$m5+H8(z{`kt z$=X{TLLBd}ku80CS_gE`Xo!f2=#%{>NBsjxPO=8f{VOMJyR9EWPCYE`q{9ddW`IT% zjRdNorTfEXO;1wRW1+>yx)+3rF}a)Z$+Q+RYrSa@l8ee9QK`wy0j2AxwF5vVKT5M| zqVTLXFQ~tsTts@d1>Em8iTXr)4tCi^U(P8P9GqXh-I5Nz;=K4!BZm84X5W(?xkbJh z93$xJFuMr!mNj>>EzcSDEOvHFP$;L>eln$mzwL5ZA6;L`w{+boiL9B9NW%ak;nE2U ze%JkIBX60DwqNemQCss^52Q5Y^aI7?@98qJ#6wg_5v~Y;%(|A9o&VvDEMGdnDoQu- z0eXm)^PX=vVf^`906Hov^Czj)=Al76rFx@x8h{!zt&O@C#JzI4g~|N1sB;*&_UXtq z3hTqEeV~*0WX7Umj<{}DUI(}&O3!LTU-*(HXbUICR2EL9Q90+SVObJB<~iZM4;<*p z4A7>k;W>yqptDiOs#(tVq@9>qZL(|(Xmaovk)U#)tphk&I}U)5xoq%nlz-dEwjdXZ z5*SKURZy7r5#8HR;o+AyU+hZeHm*aSE==Y(QM&iu5}d^!G5&_T_8NI`P}B(YDZ$fx zZ{SkGmQNz-{79qTqTezG>+_nhlktYnO{T6kO zF=y87kB{6?4AneLvVs>E_v&oj;W1k#E^Cu1is|4xfz>^egG`MBxImrf*7Of`LH^I?S@R4V1HgaZ-$2bJ&MdYWlr~&w7AN6|aK%naN$`zQRBQ7XjvB2&d zF3+JJ=L`g?s4)hT7&VMFhxrnzY);s(CwiVvfth9%toDJf-w}W^wjQjwn6fF=bkQI< zvkN<>%#%p#k{$70&|Y0;TRJ&MP5^a53!E~2*_juJCqN8YKf%M#KLT)S7Qp!>^D$?& z2(8-=pv0TQK6pZl-{^hc`)DDvYzA)l8c(6kGLD`NEhL_xWUVk}tKq3Cu4L!e7IJ94 z6Z@N9@W*I+8DOZHmgV@vt@ce>n4@_d^W4`O;xEV=dDcadKp*;Ca00L1+jzSksnVGb z{KJ4Xb3AHs9gYj3#rN#nY4YNbqjf8cO67AYb1)B$ z1cxOjWRZ|(GPA}f{a$P)ks!)+9Pb@w^mlBI@Xp+3yBy6I;mG9?+YExhF)~D1Jt&7VqVtM zDGVNdDUR^sRk@*I+Nvu^5(>ej(+gBXc z@~_;(#x$;t?Yjz58Puy*WtuNU#=I;X5LqmX3L1;vKc~L=X@E(};kb^S7vz`YmpMSU zxCfc%rI`6^9a@`Hz*cP15IbW}Zh`K#veo5pc;MY49YXoPdgmMf`*_kN)!Gd3hFmqu zch`*TSmU=+?(srpGt~K@F@3{CUxd!y5M&XS-gHudL z)S7n+9t6ITtrRzJOy)jND9!bM-=%tZCof3iMqVbzY9;hS_Yl_6@ z;XSR7|L})V^}lM^>w6ptuTF^F^IB%Y;k8-sF84q%QN(>_+s+NyCjd8}~G&#eV8>nd<=L%~iiHn=fij z7$fQBR??tj%KC$iG33ea(oFCR6k-b?p4-#e8!a)v=tu(>D`vLq3cyTBgSfQo&bZ&T`;LN+#u=H+I^q%7f8rIcm%d*^@AZQaV+ z%nF%Qave_A%0|{$;uPF7u<~9WlB}=UKp&7;#BA+GX*|fFh4GY6n&6i8LVPRoYvyA% zbw74u^K$NFvdCCwBYIdtyzectWYSKS%pFak*qOw=GTS;&Csdb)xdwab!2=qVtE>E~ z5{#q80&FTcra~q<@^no7)>Gys_xv`uwuE@fWU4*>M|AoV%Gd#+OxBNgwEzoMMM-J) zz5dE(u-4jx8uoRVDrdFp!McZfLPQIOOcUc~w{$d%R^=eI>crCRgT`VY)W(TO!f3h< z=COku7sEC}<%F=fhgkET90J5PGk~OOrLS@L&0!s6ZW^PWmiB7OVI}j0LrH9S8c!wM zd~uls4p&j^QbIYEQEipth$9T+GF(|1*Uy+UC8?@>4o%O9k&5Bn&&f_Ev|!ZE+iz~7 zlHm3vef$mZod~A3T%HsLVTF}-L(-aQv^X415z{_>1+~1o^(5r6=%rJ&I{r-1sJ6UxNXG;K%Hhc4t!;pV53o#!10)a)`m~*Sl1vq<)iO zpt9i>KgogeAw&N1SIe=LXK!LnwJ7ES^0Fll@8xwCD(Kn;!5dW}qA~4_NxOcksn{0D9!#4dv6(4Wwf@9DuQ$@1?iSlO1f)N(kwa!6zT4iUbKXC zcXy|f28c8wh=9^5-QQe$?{~lNR^D;W80XLV@%@tFv(|cI&S%d1zV7R~?mKs}cE2gx z8^<7}G0dv9%20arcJ(QVkLhf0*;|(0cJ6BHPqC$syDG+Ow!D+!xL)Eq_?r4Ed9~}n zwbe_1*CC~h+NA{37~iv``4mK<-jJ=;rNA9PW8a_hTk9j-s{O>epLTfEacPjV`KhXz zMoszYw{5+dqPCsZPY+sm{y>a$}0C=6ub zu;NK|#lF6ISI)lrNX1W(K-Vun-gRmwCX$8Bzc0!LXud|Ikbb)$UsY>X12Jkwm6!Rl zuA+F{8FgA}bXleH=AS!iHWNxJEv7}JSFbWdsv3i0Wd$G`!3@R}@>;>ds|m=xms#tT zq*g{Y8(d7@79YRJ`HW$)0ik52$7)XKS<_huAjB7X>YTUza$Wc$H}HrNb6t4N%Rtwr zUwo>JH4<~)4(0f+#J@>t|DG;f`XG&32+^kwc@9(L=>^|M;rLn7qXf8Xc70j&}iJY;!{)PTgboOm*{%z*j3 zzBeE**m!W9tS26Yu(z_i__DkA|9!@P=b+}=W?lgn?+EiE7QM#uy_03W?82)@4`EsR`}+uy@6bpA z$<7`K9<}APcN)-Q`hgCX3^fzfwL~Q?Sw%zcYC8Mq~5U z9h~CY2E{ZUjZTKePZy{ATj1-BfEg$gQ1mVkl_B?0lJj8L!buQfU5|EMV^S1H+j2= z$ML7^x99PS7cHq@^Y@#+nvv?c&AD7&0y6kYjMsWe(Pk9y_v&~hfe*uXQ#oHolRNZ6 zeCO*e#x`44GV4H+H8#^|W94&pP=nCD_)J`KTTMQ0TgmkD_7k}}F+E=hr7X9as%%6! zRRCSdn(~C}AxPqm507o8Dl-s?`9G4styHE-gc9KW!N%0^K|8R6iP-5fi$p=_bLs#N zM#^RW<;i81uvcTpZZ~EjRS}4&8b7hNAs0#c`XWrKzE3N5?jL8?VO`Vr z!1XtJezBE*&ojF!7z0$m&ip3$Vl5k9Cvj}K*3avkt&e`(1;nX zG6j}dzr%&A^PS^&5lDFmV1~luXY3F4YnXqs!q1#9N>il5p7qzn`gR`^n0P#XKmP`l zQZ|PZT2+pno$9D#I?^* zJdpoY9KkKeP1n>mM)AX*;J`>cwMa9gws;V~ou|VFv_7@C{9I-9txT(|jLObJ3P9;Bq24O-QmuC$=Q?j=M09=vMD#~V zhtxx5<%gB{7LY})q^HKdt*U!5nd_z&ykan4NO`m{{O)Sqm)W}Ya8l2QFPB(uVMEi+ z&^^oSX>eNSqiJ;BU`g?@PVE)*uA?<#E_vC7sCA7GQkpfX0sIDn7qbgiWo8Mf-`^A3 zFrH@z592ll`%Rjqt9LP*dwLnTh-=#G+xUi@Ke#FvF!B^hLFxODcc*9ltb*9}FQ_n1 zHQRFZb)>LDt_Ty^$YvfQeLzJ)SZ-wz=cOuJ>WVZ0VD?Ou(&r$yN;O|%6eAnI)I3DJ z8Y(X?>EKXT21$i4eAe?)&kBDTZB%vn&dQtL zjWN6XfetOK{^4U$(Rsa9Cn0ZO2U5vhqNiTe8`KSV_kElg zrYc8|uGlWRSd4GEjCF`hX41V3@HVE$NG zyLKwE&yM^2i}AXb%69o1>tFMdXf>yH+^1gr6*7haKa6ma+e5!c(#E78RmFa>~aHm8p z0JuJfYJiwZtempl^3SH_f=;p*V#$g@&=C zRb1fXQgWV`y#`RpI^Y(0g0!@5bP$=gD{SJU$>B6)hJlo-JuvR7XH!{lt28^CsuEmy zsYUwF;%kfEv>XB}tbl8#i3zdqp66L+4k*`ps{XD+?E*`YoTWj2+=p$2D`tOC?!`RO zxMUuT5*KT1bZv_KMhKw>|`KSp? zr;2CvIzBt#QBM3Mvcg&?;Y0D6+V=%e4Stm8)zJ}S${F!AW5>UD8 zPCi^}G`~Cf*8dLYc1!%4KX>3$l>WoeKS3F>R7Ss=>QJdz&*Z#edW4jj{861V&NNB!#&)$z2PpW-(h`w7Z*Pb>GbdH?$~|Mi#H z3@FAI{I9uKJ}7?1$D4xO=mVYnO{b;D`|rA}hldAH(xzj4zo}Si{`%Duycg6ZUq)%% zKLX)_RK$aV0A8QJYQ49SNgifnL3L!A>+8`n5nf;wx(&5JfmaZ~f77Se>9RK^iQ%=c z)y+W}8NC%CoxnU+{3HRR%jJgaSbv=TMebi!=leqF?WP0KiErM#;4~Yo1_lIb_CgxI zm}`IAD)-{6P&>RJ`zVm$!FVoPkVr!JWrM18TzP{GVJ{1OZG)6us+Uy$oH2N^thYNl zl!AM|HQ8l7`Lxj;U_mIfwow0>Lt|1P1T}E@zlPzz!C^50^!y36HfIu|Oq9R#Y*`nO zW(>JOqaVv@-*gISe-N3!XLnWK)NaU4SO zuWz`}I1G@fuf6@k^4DF9QB9yYs$JeTIqU+}B~T$P&(H4#H9AxBZk`)HyoTcF==hk8 zZTL4xfq~3fZhn3hr||z07yfhjss1Os;r|jB{yz{GpsS$x+XuWszDu{8IOS!FP`h@Zq3*v3$52nv{??A=P67Ul&fwP8M zI&I=yIo{GJ1pFJjs8`wi`za}>nZj%l5kSV9;eF>u~X17qN&fuq_{1d2ws zDKoMN*N^!t5Z9hA5m;`u?Q}MZA8$7*cKISo|A7C*=vV<$=I_HH5t>F++)07lf70jj z&_;_epaa+l#F`!~@HSy7uB?;zcpf*JhGNxNj1_9|oBjUz!F4f=A@!_%_`4T?;=Ws^ z&Joxy%_&p?qw4oOU)@aw&x-S`&#JmY+@{X=f$im`69TyVUNJzQHa)3l^Wu2k&FGEQ z6)=-=eTPDLk^;R19^EOI0({;Tb;AOmP=mZSJKN^g`X99lAFbxOu2P2r7iU{@)XlE0 zIhU0T4IE+t=VI&`yRP?*sqLcnAtY0AarefE*7qwutJ;7Kq%cKA&$_dPSLC9)#~Kt_ zp_N0Zf3B7PU;tV6COy_MLEuIRd)ij#HIr|xXHr$2XQeEL?R<{;;rgJM0XZ6tVAHiD z{9WEUW9b@)>Fj&9H}IZA;9BPR@@w%I%UPK6Da}{XR;r%>Ug8M8A7S8=LpysospDqg z1t9cId_o?SEiJ+e@1xU|Lb3dRl)!m0<@*|ko&Dv$Ae>}EDLjjXe^t(vX|ZhpCuxNB zPvZ(;tpG=$U$`)Pm)?cYZ&TZ|?^xgK0$0JUa3Bg%)7HD>|2k2Bwwz{XeNOJWdwW`y z)tmVd3%0GsPL|(r>I>l0S_4xO`TEqrybd^ROh*!PdcV*A`ofZcfZ*y1Bky_D3u{`L zXs(oCJ^P9=Wx=7&i{J9!zOwA40Y|bD)+9@C)c}m*LXii)S&i>l6&|@wQ7%~82StHW#BuuO4T$tVdW6QNq)I1U%$ssTqqb3S;$FgJ<)sC+b-zVya1h_pU>j z%loF8u`*46_;8w}p3{4a@K(n{V^UJm`Bo|20RSTr73j?_tMitgkkfsPZ}odqBb$Z1 z^X@%Ba{ic?cghZC&jE}PHdeYx8Wso*SLZW}sEQD!^ZqD_O2Jv{Oar&M3Cg;xw7xuI z5k$6(Tl-mbN62VkwZvhm+;rgj<<8@`Tg;VL!qn6fukZq_?9sMy`U;w@_7*RxZ2S{* zZMtY!NM_Nuw{73e(q1RNqORBBHkG^t;8x^>& zy+|rpt?~BFAfk5GCL?SU#BhU}slM_)X0(UUg*krX;uU{cQ zq`HkRD~9yXKmC;?-olIGg6Su)zOjcB5eYUPf(1eI=P0RNJLK$O4Mr<4Vq4KLiLpP( zi5tq@=%MiPoH|@Ozu6cLL!(I_z$={Qwky@1J_DmKA1e)q;d9Eo{~*1vpOs- zP8(-j)emP3s(dWq5N)0lW6Fg~gJw$OPR-{7j3Ss!!i!5)6G?3I_Z^Nn)YxD+1x*A%D}%?89m0z91}Oc64l{NhU8cLvSoGk-F8rdZ zmGM)m(N(qI;YHTM6O>3*`PVR)iIeOCtvnq|7 z7-*aIVQ*bsjOgLucoN0kSGyZTRd~al()wRlnK}1=O&aug|C*Xf06xanabhxLWa|pB z`2xvx++Q`vlk=0lIQ%O3?Y&t}?BL(W5!G_ot%6P5PEm3^NB zPOb7#jmoN7v(Nm?@8{~LS3tpnn8M>=#GcZMWQ^J`Qfd*E!qYt5*{Vi-Q}$nz_ur%S zP(=zEKNBP3ja!u$-=wzZZceD>m0=W0ITL+G727?x?7X)pz(c~wi5J54E7!bn+IwI9 zdZkpGiwqLF^VQIOA-JBFlsgMPnL!z?PGr=~+yX_A_n{S6EwZyUxOvT9Jgz5R zjFnRSZFN6LOMIaP#+WSa_S%mpUAy5tk94m(-DexB_@!B@Xc&S-F(UT$*<DewHobNOlP4ix<#)oGt;B_kr?DdZK<=jCHxnt6iBb>MMZ2)N*O#uJF%Yh~tO0UNa z{8W=^0$?*&+uJ8M+1mmew$QBSMg=#@*v9W*T}^x%Htz8BIz1!F$Z_bpe8%sr>mUdR zwnJvK-t189{;HgXQ-M#uY;7_{i}UQ-&J|HqB4$$$sc8nl*W>I#c#*GbfEK*zEW=VB zoX0morbkz(L}P;Bm>G8vO-SeL3%kw>W5IKOQeGbvz2%H|o6fUMr2p^P@vjAMH4;n` z`iisr91}JGV=_)^-q7JUbrW>eZ(|6DeUnmMu5ad?@yitpsFvhd@9H;LlC7i3s5HlK z{C?8Zg*~P3<1#I{{X?@pe(AFfT`9 zg35$RnS*;KL=q$j!?1ib@-yk|ZoGG&BLxpsv(RaOW7Mpz6VbW+jFk!DHxZa2R!yH_ z!C*clZu|J=+of&Fi$sg+UFhZG-qfBLJ{ohkvICc-BvQZY>DpE4n*@G zP5(USa7YsD6^=~ka#}p3OVY3P@0d~e>%IC?gXSE@c6?vY>1jUIuNmPAZY8}))emko zA=3-d<7I^;0feegv6&VP=85u$qeyvKw;Z)fSVWFjzYB+P|C-sA#fn&S<7-@H|Klw`cLdKft0aev!L#An2-TEAbtzE2E!;TW!TOG?(Vm^)}b zvf^RxoBM5eG~9pv)GK6(>gHx;@d=0+zMgqbFp@=N>VNKy|2XGX(yMORxdEwgnb@`9hzPg; z{ih#4rsjIFv6*|H3_tVt*pH$cZtb4=U4ON`5>6R`7m*msDM48`T%>Gv3UciU^o-mu zV-7!4;QaoN3%dUqKm2oC%vF(eye&tR%IZ1Y8p=k4$82tR+z-EeM`sjjI3^esz3He* z0eCx0ofn+-{+fm0g!OJn7|L5d!3WAW9aU$#9bANg$?JP@!Vb8vyP%M%Za%_Ov;#`m zyC4GBB-;cfdu-s_W=crY;vUk;M$=cHabF5{dI4>H5AhAwBHY^I+dYH#r6LWwrAhQ4nS6EI%+*;G1{YMX=P>{LnNKNyf zZ`SnygHuAYbccSPv?Y9)0_5sfj8swL1_7bqdM6owah_ zS>X9@3?3dXh%J?|14a*1T_$yUfY`yv$;Xk5>I>D$HW)t^9-)94mZsTzc;07+8%bvf z?ZX|v_#QwjA=WhX_+<}L+~9&l-O@hf#t$5X0}226R(>HuGKh(qOeQ7yb_9ASp^YhU zDw^6^sh=m3ECF{?WeYwKllUbYhY)usz?6s!0b#!yj7|t5a=QR{fbrW`x7UIbcL3qR zIw}jwv#Ztu+#>UxfZeN@<-jSZ$O|BHfE>N1>#w;mZe-gkjLOB zoti=I|4ys~nmKTzbcw3!3j{e2pT5VhHy@6HYbx~xFnq`XtpZ9u0HP+bZSz9NL3jF& zakR4NrL(7pbpH7cXm0gmxTAdkaou3ta=-jF;GU3Vdajp-rM<&k|VFf6V6v;bZZrC}-GyDh%p-3S3Fi_ob`);u@4qQEO3L?mumR-x&{G>q*B zx9`aU@2H>w1Iz1ql&kMf!@_GG#x~k|SK2F9l`Ztbp-}I=^B-;>>fYK#m}*ZoTw#sl zJ=isV>}v&lY^7I$SL#_;;Q6T%zE&oo(?c6)0EZ~}j!MV>F~`)ASPFv2xqam$jY|#u z+1c7KA6JWkJW6K48VxX}Y&`dt1^VSdgN2?@+$xJu6>%~olwV>HbcGn@n;nSYERg_J zV%zXkDxV^A9k}?bX<$M)){&2~ED~-*9A7W7+y=NI!GOrZ3n&HT+$GkLFx_)h4%*=~ zLU&{VD9f_HIj3=V&_jvc-@}-^0T|Y@1&dN$ta(Q``;ue}hCz1?*CV7K%2Q-fzC|I_ ze+`YFbN$AGZU(1op}-fRYNUd{3-F*J`?UdoP)^Ve+8kYqkyBK{j?r?kz8}Pb`EMxS zO(tRJlfD=KGN@Gq`ju)KA~!HwOr97u{;0R-G5xQ7@7f2EEnm&jf>|1;X$pp@kxk0) zYuvQAn{|%ONz62Z`?Z z$BJlsm9uui0^|Jf3?Kw`)RWaXC$%Heq;$5C;_GDnPTlTk32>W>2j&qceH}vQ2!l4u z2%<*7KQCOmApJCKY_KtmeOU8q3@k}WnFPL~LPkmYj&izbT+cp;!oAQ8g#`Zy4*Wk$ zyj5?Ldo&aww1|}}!M`LF%hO)Z+Bj{p7EG!dkfa-g*Bdl{b=1UE8_ZY)`rJ`P?q3uR?c!7vhA|BVu z3WT!vVG7WYNNCWR>RW1V0Y(W^cbF^O7n+&C86@V;&eM%EB8JEvut|G`gOUI~#_u4F z){8rdaRtpPujwZ-UW(#Xn(NsDzQD5OcoBG=+Dl|Py?b%;tSM)fXfK13@8IxJh0$WY zVh?=_&7jL!Q_ zDtkLdy(flZ8y0$ad}cdrhnk|%>9|XbGiu2a-!6!QxO9IKHBo2`CNykL+)c=1!qcve zJqyZ)SwbVe5UTP*YuROxn>Xz&&O^M5G;#MOkUu8Iw1n&iiM^(^HkTA2RTUhJ@q)an z<>-2PR}vXBH&YvTTT>SUa* zW_k}vH?c9zdABf>CiZv8E)@UXFgC;yE#((hEau)S*w@hQ#RkP@-@>gWf|$b{(;s2* z{W`OL&rcKLi2PufTi-F(Hu+vgf)vA9pqHw9>8G91J*S)<6Tb^3yusSlUg7flrub5% zzII=edAlmeQr-+}oeg%4wN7SvZJ4~P>$VH2*E@MG?Q-dx{4&#tZeED(KXb2aT8N5! zYJFoG&DF8l!6cI)Tz7fu!9 zJBw~mE#&6hHyA7~rv~jYOYI`i$`_`#1sic)D;{G!S)Y#gI^2b`*p5@ay*X0V_uGE- zx#K|4s{8sjG91lPF+!#4`;&g9~q`PK`}~nzY-zoytF9wl0B#J^Drf}Vp6xoyZVfI4z_ ziA35a+p+(mIq67;k=CXpZsb91lr#TT@dw~t%}~Vs9BVS5zRG&g4gnZhVj1BP5IvIV zpt=ibh_gbXUR2o#J1jDYcC~!GA|#T9rg$>wB#B*|eox0bJ_hm`k9+s_Jd=b{E5nHK z?mMmJFi|2a4SmedZ+xqqqxZ2nn%~{2EN8ofK|9RBb3G%wcRT2sKlrsT9!(0v<#S`S zE3~Nmisj-$lc%J^e5wlk9h~Pd+bjL0uf=wkPLyv%n9`LExLn(McOwouS|dGf6Pw;fLc&s*PYYG?Gq?h)$GOU%0`53Yrcmkzo+zM|C=#@Wfij+cdiUXAjctY;(BO?5Aj(@%JCQ32D#+$YN!o z*wosuJvEc4YhRzqq*86J*44Xv?)hGbEW&Byl6x_QyYHB&Q-mUoMJnHR7;VzNkMY9P zBV&3Z+98=T_&wyC_LMc0@z;iq`=YKX-%95RR95`$&lCx5rf3c80S+ctgb)6rJjTP| zItT&84&EQYi_#dTFWE~I97}#yTf>uHgytH(%VbbB+nAFD9bUK->j=U+-;=4Xt2fC6 zJ5`@{Oa!ALet6s-A+;R57r_uDLW{ET%8w{LPJ)>>nNFFUzW2+09)#}2a!cbs3a>l; z9#ZLNYqWj;Hu@1|AHIw)VPE}#N4wJRPw3S=207B5xg3Kn4$8WRBxge& zbUO%*Mv2iRJ&)}-3;Z5bwxaeUbAy^ALadt*5ct}^x+mhWvTZw6t>Jfv;^`*n8~U_P zLY5zJvecfVwfPblx$gxF@S!oI$w8;8HwY!VK zhHk>(R3{eFnGv=Ub1efGjTz#Y8CiTq1{8E-B;(s%OuIu42GY<^JHE$lZ$H}r=CQ-m z+s}DCvlTdfHXJPA{sM}Gh6c38Aoma zpL8;<0DNN?AeTc{t%2CwrN#a(;1Lw?CsYzb1fw{JVC>{0xFaYyXd>h7-KZcM`V=Kq zQJBk@uo9x;4jjshTzc$W=^v8}i$JWQBzvUaK*(=7YP|4qA1h5h?{(yft|hk4^{7|) zJaJYhDmF=icdsb&!qX5wsh_$vJQ@X!nMr>{y{ZUoNWx{uVSX?rv9N->uC2DIshL17R5oeGXlJ=Z$C2i%Cpxw{;Xe>q|Q zO8?dc1P*f5V%cS7?w+>F`B?iB2TU)8Fwt1v@WtC|rY>sQc6>ZE@Qi-X0i_?6-QN$j zANU-;nW^o4cYR;*SW$fjY}Z7HO!eYvI?FK`71!m8=(U{S2KD0jv0kxV<&c42|B4RF zXW`+BlQ6MC{jkxo|0tf^M(0WrvofbH5NYTok`{WSmT{1g&OKsONHqR5paZhvZv24&`74QwEtJ3>*Tq}2A>;AO z-lh$%A&E+86umwjW;%?6i>X26LeoK#l*&y$`jfF)=|H!jxIyTa#C$)gUAh|Te#_C7 zoacH7sjW6Fu(ad6%>s5kF;a+m7+3R|zD*d%dgYOR7OLSN zv+KV=CNUHM{1Ci#*Zt2x?O#(d+XH|`sRP4pH-J*0)WwXa;$C{If9#J-`_~l>(Pr?IQ2MOxb-oXwd;)j-_df5 zeSh*t6LZpI0p99f31rin`R}n2JEwWO?Sg-A2f$Vn`BMbwu6zq&A7WRuSz4m|`gXN% znkdc>k;s`RDrs3FonrrU75nErn@|ET!;F^7^-c3gOpp#t6eU9GrW>bn!+kKxjtIv6 zZkh^Tln|KbSnvqTO-EI>5SXVA%AwIs7hMlSV4lv#&hj@MRTuQPoe=SNyov#^J0K6x z{{yW89f^LWx+~rEg?cX}pfAA$${Vx}&qIv4HaENDt3-k6g&+h@${I;7$aAngC#WEL zdEk#SdgHBf-=oUDn_&uyCpj;NGjo))L^QagaNbz*T2EKAJ1q9H10*jLxF+b1l$26P zWxVwy!F4l#C0GK zTDN|*?S11kBLzn-X}{pm{ypbkAq$X#1?O|);%BWJ#})#P@*r)o-*~J4e?F~8GH61@ zqYp~33lmyKLq)n5`v}w;0h31@>s9tNl9kP#C`y2<$v$f=xG=L>|`MK2S0hX2K8yvuFuTcogTP8_NC!7tJp9K?WVeJp| z8a<234D0?5?h-E(*c{mJvor+()U|7nJTva^m+qM(gnh9D>lA?+gPv)G#sD_O0qwoe z5t{xK&8_3{&AMTVyI4eD=y4i0753VfRRtD>lVpp;hlE&!*LjDC*jsOz#jnNUWtg?QhjI*_~cS&2wv8Y zbpxO}AsWahzv8Dze)I9WK2L2t{W0tG86EV%lGb(zCg?Vb=A%Kt+^1@1?X2NUZJX^* z+TJyN-Jo7Z%F1_rp*wYLzx&R3fZP=g$ocfA9V1xO1WEAT)DKPSP1VnN*A2yqo~T|3 zt{3N7&LAo*#^7UEpIGY@&b~Rt2zP^77FWr+Egr9i!v+BQ@d1FOr&PX)?)wmO2CPQx zg2@}_MXQ1uhr*=F|P_Wh6olLJB?p!F*fF#{EqgAV8N{xji$bf>~jfDRw-7V*vZ zlXTXZaSn08T3x_aWnl~c-=(55L`j#kH_tHyt?}EAFX4B%?oL2WpB(WOAX&;Znl;3QOI{mfY`70^EB~hk}xuyD4G86~>(kUHpoS(5yo;Q*tw*F_!i+Q2j^u|; zUBQUj!Ys*vG!@P7Ww*9%lFxjX2h~22_W(PkMJ*}MB!5DVV3Uz zRl6(Y zcwH5(CpvmWE2-CD8L#(&u6d5`rRLdhuyTdMuJ*H>iMvuwWv&jZO6VsQdFROxm9SQU z#oeBsl$Yrc*Qi<0?q<>+Ozxlp6RvRw)my!?=aS}1py$gH;~D6mWjA zMRYj^qECB0xmJS@Hc?kk)gig}rLUpds&7fX0RD>9`pTTTl zrdjI4hXt6}C#W31K52KYr#EjHuqKOKBVh&w;s`K?DS_VGitfDI`n;B-(e7CTjo1zS zCyERE8m2#0cyi(FL0zqzaK_xBu`a(eJvIyzP*QT6cI&$Ao>WD)EQO#*wbBIKZ^OCg z(?>aCFl|-UnJTgpX)<57cLJ7pH!2CsQohhjlXr)p+{tfnOnF0aWqBX0d2jFBUi?V( zE+7L`y|}fCze4LVxigASLEA3Sv1wwx5JWIcFCyd7M71A?j3#v-duQyALH&vy#_?zc zR+foIoXloz>^hq{^?8W?5`lHE73&S8X zL=CTXKgv4w6ccLHU-$qH6=SCD7Y>NfK<{{ChROK&gPLgA$mggLWqg5oh6iHv^wK!7 zns*}{QAQ$;-%vD#%omudkY%K55xJyQwyu}jgNEam%-WaRk?-g?#CMB2NxTK|t^+>$1oF6mp`Zc#f;rlao z_lG3z#6`#1j8(}q_s(ecz>bq{Ozy`Y(KVp&RMNtbrlV^5Ol%l7{m*x*T=cFwPwvT& z3mDB4y3T$BTrya~*j_Nw@@Xewrk{w^rpms>+gG=9?B+WcCba9@&G8imq@&4ngbX&C z3oa`sJW|;FPO`4$O5oSg4aK$3WLwGB!q}8%ezDFUIhJc^d;lHQ-i%@y#V|$ZQ_|4? zmKiDq>j0NGKx~W$lQ|XuXH{Xu9RH zlMexPeuFG^Z+ZRbQ@J29sIF(qi%}QXl=Gis%CJ-|rIAP9n?IJ8g`DTPLk$XsmT(+M z6Xced8;1uXn}9h$zR9;x3P;)O&*S^5WHcJK;4Q?#WNWv#oyk^qjW`FpK+kn=XR;{| zMhHyLLhP}1be3NP3fNmmLTbXLIUFx?CnpeFI#2l4GGkb~rA1f7Qj%bQ4CrpoukX56 zunA78FIF=bJcuB<- z`*EN$AV%a!`(E;oeFOaOjI2r!SDGKPJ^D^+{s*a_h5lrgf*_U(0s9|N34s=i#{VQ- z1tJJnZD8AdGJ8KbZELa8aTCc6L?oe0F@mfGg_n;eWoLYv<}ByJrw=wchl2)k?e`EQ zXKnY~cvI6ZB8%s|v-Xn7zGrJaV0$K4iWHpYb|q{;U5xf7atRA>{K#DPaKYl5vAJ53 zY;mYzO8xvg#s12lC8>9ns}!=JL8q*GwO1EL$;aC#c7XnsUeB3EHy z!y(Oo9TsOo*bJB?Et)x-qm6L<3+{$n+@@5%T$=XGhk2bl&{GxCu=fS6n*fuo{AyEG z>1y-KjgAtoNkdRsgR(H@qx#ll;H~3bS~VOen_@>BA%?#)33Ejxo1EZ!1YE_v#3UyB z@i23JJ;Y#zq;+4v#n&vdt*9YbbpzgY7D@6HyQcAXTO8ZCmu2{b8>LG&enzUqq}QK` zVRjv)y4n4up2Nzczs?5c#0(q+G^GBnL^mwa0`&esg_%Fo^Tur8|CuYbRH$X`tznt| z&GwrOLFUtUCk8iVLbBPu|CcTG|B5Yj47%|K=SYTzfMBygB4RnCa2^c ze5jDjPOZTIE8!nW2k@csK=2~uHVXX^rieWV^3?;-9rz)S53mwJq=48P<#kF3=EayG zI47``;h6>8q7TQ!FVh{Kcq~-^74ZRb7y|%Gf+yTTc-kXHXn>ChpFm!K8cJ-IOzjPL zOHB9H0x((8P|2NDa$NRt=0R1x8idLr6^%2@F1^~oPQ+wi;P6H)?@KhAvoMdY)!9C9 z<_iM7MGLt@(O9_qflMgtVitrgl0aZ2*!C-8J3#NR) zF0@7>F$F3Kga`&vHJ}~^RT{K~0ICf?f?>M=z*sB<;RmrK!k{A{aUg!6{mg$CSOSCq zwhJ$Uo5bzC$8ijl6}#-_U$WV^>c{TpmaSR=f=1;YIVGj%YR)dWnIe&7tCH9=nJh3O z?yU#2PQ$_AvCuqjUCqq_Ru%pStuQ5iIw^ig!6E438w`+hzQc%lK!5TC1$+KDTxS)^ zrqMkMWoDYrd2qS@=JlX=bWx4PIpA}Jf~@&TMGx4)UMD+{F9~iM1DQ-xkuPYjJHQSo z4@HcPh`^*%CXxt(h*{ot3=8cm5D9xaCxf4m1X)6@)mr?@8epj@w1c|WvU7BC2ZCZG zH8BLbC;Pt_SQayaPVYrJQk3naEVc*%eLy$xH$xik2Go_b%#2Yq;Y@?Gl~a$Ch0w8N zKp*$RKHj|Ji*RH?pkKy?DP~Vae!BGdWxn8xPyDFM+Ayw`1MF!^$lF=lce};9F6c?W zF{u8@D)qOd|DvWVYk;L|f@LK{fVTfz*IWE^(gU66vG#!VGl_N^Bv8utp5R4Jg7o1P zQLj9E_uY`@0{{>ds<(m{L^uqsJ!mXCX%pB+Jn9gm4Y!|dbK5z1qU`e!8RIdgQoD5( zh&q@qV^+&R9w%ZT!=CL^LysRIwjH=nw(l6jCxJm3@_PSAAa2NuL>>BaU`X^2MwN*g z1uu8%0q!w1#V;#3$AR2)q7W5-`{30?Y=5}A;Ic4CbnO9huq>Y=V#|%qK#t(=$^DQV z?AAIH1TSqI-aCEBcUixOmRQuwfUqKKg3vc_N6LmPYfOQnbAl zG87&U5BusOs&y>Odw|UG0ch=6SKaqOF9<*&>1#}!sIxNH666MXHz5XO;eM63-p}NqTnHn?xS)H1^oB+f~UJ% z5JVv<5>TyFSA9ic>vH<>u(g@CxQ0gv^U}2U!9LU)Ixennj5Qf~_yd-{0EVvdyYL;jk&qss#J<$U-IiH>*W{@1@o<=bxeiDqubCH_n`B-?BL_ELt-g`c z$^D2YwdcP|H>wC>gLEZ(H6jR8L)?B0%$N&dD>zHZFQZQ(uZoMTFIlr z(GRYPV0TAN2TV5ru3$lBvu09NIfGMGZ^nCy(IdF0#I)plX#GM;FJBT2yCtNV3#6_E zRt4Ag*#2RRw3Bxi(Eab4MnUi(x9djk#>N+yg^&!ZTcjH88TLz7Kg7Nti?zTiiV5YR zmWT~cigFt4GM9pc?+;=^?td0)%cpe2v9iosGy5x2_16Sd4=!}J5kj~i8byIL7Y5rW zwA;|^X9e7`cqzZRD``jZD-OK&bk`gzP2;6vyaBgm#fe1U7IvlsC=bk!F<-Q>SU420 zUFl2ei=8a=WqLtCLngdfJTtuf>8&dBKH2nKzSyth11!hEDuD#&pQcWr)&gKVfUT2? zB<^Rq_MH;Ov}kf6mjkyN0Vx^kI4ZK`aaN)wWjdqv{RWY3w0I!QG%v-JUZ=IN7*EMf z7B-<;a~n6M*@|@*A3cM&e+*Cq{23>-5HuyYMLFz&xptu1)v1>u<(cImrv{lIC9M+8 z?{^8JG^LurA4&`#Mu9qCyLa(s(*Kc&V7+PO_!&(uwtvz~z6c$~EzX#oKT4<|@IX`n zk@O6omyk=YD|7scUi?08E&y7!!!RI7ciFo5XF_F(4R<|SY|$l!#NN{c!|?^NMvQ?o z3isTKIZ>`?@kAg5MJ*}z3Q#*BjQoALvHpxzk6qt7qrRZvOzfp|Syv&gg3|Z+=QcFFK2aAxkAb1Qu-oU(L_x-Dp z=$EJts0-nH9JyWYiI9)AKYE=accr+%it%IQG&F-c+#L3;m}nx9U0M)I zJvy)(tX|pr_*|(Mi)|MTD_@8l&~Qq$om;%Z=q2E$k?BYM3`=p18YCrZmAIdO)sTLy zn5KwD|Gdd3Lqc3)azWjVhaLo&rj=}pwQ+XoMQ;UF)uC?G*7&e@&7HvTt3YBia@gs% zWUp*F2tE#<&ZhK0WXNKJ9wUq7ZsXe5NRmS|sWVZq=^ zm-*>WOG7e@x$%Csx=;uP7@mDN4v{YJRuF{-bBRnXZ?Wopcaiq56VYep`2JPHc;mnA zDxD1#x9U1MI#~bQXNG8>^}_rqX+Cb(gy1m==L_!r9{%)%tsP;pr}zm_qD4B|Vfv|D z%*aIBR!^}DQrbbs1Rv`Y!l6DSL)WDf%8kWtEVSJ|bTFRrvV=0*Vc<{? z8*i^Iduc`-(~;03g+|ng!~#Ybh+MzbxUINo&Y+@;O7pwDiFniUuAP;rHXtM2Qh+4A zN9D1=fCha^gZNV^fxjXVRMCwBoQMRG?{5PRzO?P>v3WB? z{MdGiG!olVOhdV`x4d_LyO6SnUSk7%V%HXd41h0{$-cos*WH>EWYdd6uEuYtOPy{S zU_ev@=k;FUH4#@3Ds|aXYXb!4euFZa^m-+8LGg@{wv=5{yI8uA{B;qNR52Lk=n9ql zNNasVdA{k)_B_!4Mh>mz$d-dGd2P7yGJmVOpg&yOUTHy~kY8!Rrj@y1q=9e^yTs$^ zMmx*zN!h?FP}o-U(+fW1qkP^P!vmH?bVWfO1G!K&H6vr|_8qGdw9g{11rJ|Oy!9U7 z+2y@M?MOxr7S~SE#*|{nVltx3`0z+Knh0!8TubV2Y)L2`0~wYQqr@0_Zo~VI+7wy@ z?9=i;T5rGlm=v!Pqr%jMq zL-kF}`(wg)UC99Te|>lKt1>iM`oHyEP#apGEH%Vrvw6o%KYsVINnnid|2+~IyHsv> z;4JwJJvDD3clfSfU`gH^g#SlTzZp*Y-rjhT_WDq!I3~ND5hxVKJZ%5E0vVCM<1)I? zK1Z-(Jyv_1@OVm?S=By<*AiA%f#(pXJ>=yx@D>-IkH9&w+{Ha`M}2$7ju3dZGhJyi zv=s!)k+k2k++mylQKNlP*NOV~6&E_G+0ncJzhOM`MO*d1HS_=VJueez*>i^~=l1tE z;BPKMGMIHH*@$1%@BDNM%sRy@gw4jgrmRsmm~~SdP3s@;`ZUJ@%(~Hr50}3&t^dJY znu5yV9BSxmNdIf7|Nb*CnYYp;m6z?dJrohnzgRgoiX5arKog$qamNV;(Eob^r$?}Y z?%Q|FK9Ye!_|IOSeHFaz;T8gCw1g*d|?=LiOnQq$u@icj} z$-vvI;?d&6wif?oZ2qvD2IF+nb#H&?^*p*7%l1BSz(EF1uUAC^DTZIH{<^3rLnRjS zfofi;OOJVHprET*ckAk10)iOCIBf@2 zCy@NA+fj4;x!l_^f%jQo$*%rn4AE7%*ciy-kf3%TP$*~u;2_N{fzP_j3f(quu67ZD z&yFYWd&((b-q_>?%BA90fQo`?5&l6mbt4NAXAc0kIx|()3&^11MjpuZOcji%YX|{hAkAJRV zGnw&(Y1rqPG;7*eCKSr-$cCb6oPag4F|{ijG6gD;rsYdm4Zu{lnR(4J6ylO-S)mHJ zB7#jWTZPyGPcA_lFet}GVGRe`5J@4}xR-ehj;g3kE~vo;JYbW{UfVhV05w4=x4d~v zCJZI(fYtE?7zgOF0yBlCC~<1ks@o5uZq=Wrq|TkD3o5f3!q_)+j+1R$dEEL~C`(9P zj6+A2k%N&iQ7R@~w)TOEYDTwxuiidDSGmD)mSz-lEO$_T?k@pMS<+M@kNBu&dq~{$ za{tc-c3=>!BBQ10a6ADoZTpy&RbB->#N>Ob+qo|L#bovx+%rF9?sI}`z^FIQ0ep(sIBh?^uYsP)5{jx6z!#_CW}QdJ4EC6j z)%L+J!&TWo*LW5JDIQ%L^fEu_^c=zFi-#D_1Q&@@H#o)Xw7v8k^{J7@Z_`~eEhty2 z@w-LGr<=-QmA*VD?8D|q=Tq4N(E^&q3*g*AVv-EBQE7le_zgUKDnUBK7LUU5}o{|R16I%^Dc7PiGBuJ-vo~p9< z;o?1i7ywB(@}}_a@C7^&)de4rugo|B7YNKw^X#2ra+Fpd*28R`TQ+K3L0Z_P0=*Wg zT*48VZey>97}WJ6%X?>S3CbB2$$&W!*jXq`uWq~&8~shFMk|vo#rAY^0hog!t|fbV zd?tHVal$g~W4?sH;gOx};Sws%*w1N;>DKyugF|otwZ;R7k!%JozsIVGUwW zw=S}aO)KA^SC*_SF2|11RvyX!5gW)9K(#QXHUfvsi;Eft%C+vgu+IjC+i$P;^mmQs za-r3=Q6ZwPJfi^Z;g%_hy*BiMbixo|(~}*g@`0B>Iqyt2LstAHM?1iOQqGCd%)W%O zAb1Ab#~LIUX9YD!m?$kLV87aXyxYjL9K+XlMkx@tz%%CF1sNv4eRn@^RlwI944+Yu zgm5u3U70DpyAKpeV(=y>a1m{JdR1!y`-P>T*GDurrds-sOdD(;zVA_`pQ>~|)lE(V zfnz4jQ0poiA6Y8#VKxMczh}Z_L9N`zcE0FIk`sM|*1pu%u#bF?Uu_Da$|~kt##}jp z0+_sx6?f^iiB`19%ayH>Joc3s`KE4$4;zbBdUJjZL2F|wk4^XLPrD?$JkZ`Ku?u5) zoUFv@0CkV~f#wMXp45SZiFqu7A6?x(AHg+J#ki)YyAvp5G>KcUHMOak7HaCb7uWw0 zWPh%QvT?r${Y_qw$fxsp?@bu>magGk_i`Cuu7UgdcsOAXM`jQ1i;}`1tF+Hkh!!R) ze?}tLv*EFz+6k`n?+!I~J$6m0+E_R%>yf_A77CzTBxwn`Ohs~c!_4tM=L%pL1XeSnV|rz}D%!OaN3A>_#qHZx3QnEIaE|i=^x$B5r(_qcOt8VXvJ})iv=(#zX;Y$r4Sa;U z@+U5e&+Tuk*Q9c_M@U_$cawx9Gl7mWK}_IU=0~mTPYr?~A>bc$6I)dbxGGt5{Q(;q z^DW5(6(Ay_*O$Op`gzSzz8#?Q&IQCZ$RpQmz@X&Yt;dxwR3|>_K=dj=cLr+hFk#b8 z)9p05FYg(;h<3!vgFqi3wk2E~kVA%GZ=2FI#way)U;(A1N^_kkOi&5YnOE*qZCuyuVQik*(S+a=VXOH23Ho7WK&Mi@xyM&sDFjk};>QtjgM254{01 zU_-^@&jelJ8OWkueYL;Pj~h)&h8jf3$%b6Gql~_ke1KBTEvObdjs#t*&q!L%Q#k2!ED!L@FQYXq5c7@T z-=4QGds^7e9JKqV>XnUruHwgmIKqjbZy2mKnysvgbWM{+4$d!K|3t-o_{BE;M`_Qi z?qzlL=f%a=UYi6s8_6_%D#?xaOwL`@}|A0o5<9OAL2x%DnP^Ej_gly}x zFKZyrla2cO%vKx>O)Y%nH5&*DpJ38|E+pH)670PA+AYG9FRhTz)SjD_kXKkZy^Up? zV@lqzEt2WHyme8^JWdvZ|MWaqlN$ifb4nRz?V8O^Mc{r^3#})-rXpFy^ zE?6D0b&Kqt$%DX3XDN@v@Q!b)#eC1TKB8gyLCM@#Y+BbO4|&-r{%5oXGUE~Pw=1#A zNd8DTm}0Hu0_1(x=5K#)g&0^L^i^&4ss6E@5O}>HjqoM)$udjUwEN)QB=3Rs^9}(8 zFX+VtY=-PtMY2O=7a-C5e{M|R1Jc)6+9Zp+Zi3e-RJT)K6mfHB4o(RwSPD7| zf8!hfu?1?7ZUp7c1rX3$JR{dR0V-WT%Z7_A$u`@FkHp`Pu7||we1RtnPY4cM$s63G z+PC!pC>j5Jdcth7aRa3+Sb^Y-<-*ww)c2YJ$3i)E`VaA%*CP}wE$aD@QzaJ0G5KW+T*8H!EuIK>*K)v z<58J~Ml^H}CSdvNAvS>asz4&e55?9(82cuw`pmdg;b#CL=YFIOXkG&a3U6cSKtL|l zG(r?ijRvI&7kYvw5ytg#ss^71fB;N;c6j0$&FnlBxq${W-v;;)nKzu>03o9pq(zt? zK_1;E1*mvH-->$P=u;qH>#&p17pJFc>;3pQ^nslMJh`SO(46vW0XU$E(d9#Fbbov4 zKvQ!Ipy{y!jww(^aLz!@hCiT}E4$>HOD-6Lj>1MY-X}8`fc4@Ba_SK{=@X_i8xAt4 zM~<(4oFCGhyyg`6GMtFT?jwD%Lp(vWpP*kjyF$R{3Z4g7YAss7*}PbL|Z zUc3P23^J6?F1GfP{w?o1z*kN9kKySqK#XHz!U1K)--zmfW=b-LfpMx+18cxb31_!z zDa>kAQP~$T`nWawQH2EvxWHL-ax*_72=Hh^RWYDSmwzHm(gvcVmt;~&n0QV5Z&JT23HO@5J9F@7(~A12X8vARG@;B-0uK1Yfo} zAS!^Qo2`B_l;SkSLPr9PqL!?{GU5k3J7_{53_~;B7a<$~zBs-HWCCP3=l%D}{V81X z*kj%z`2Y*yIN@iX1P)J;Ze7h0Q4ht(0=WV1Do=$_K*&w+4_uO{34Wm5AB%8(8#bR& zx$vMLHPRk){>XN}<(YJbUGc*gDg+mO_N$%tH_)Ll%>#?eKym%2t39Y;a9_dvlHzGel%Xx)dOZC;Uc?7wyp$muYS&{;2ou1psRM)|famln%-O;D)aenbkuzTKQBJTq zo_GJuyd~J2(G}xUh20uJW)FiZ3l&eqo8;x1SS&d&v3V0l2KI#N`J@cZ6MO7m5im!r z`BlGqv?bFw2eQT%-}xcnagBusq$2cy?Q)F0`ugZ!OsakC&fCg^+Xwyk-Ogzi@RttM zg)&Gpi*dx;ipqpEy8B%;`=9LmiWq)ALN$WWWYF4xt%*4W!KairMmyz*bSNZ@^RR=2 z+8SvP&WivWA{M}3z50}H5!kkvqKm>gdL?O&3ya(G zK9psOq6av?LeyXu?ss1klM#9x*mQSOHvI)P2I4AP%1nr}3Tbe<-;UCUNp(y3gMh^f zZ^<_~&QvZNye#!3V;aCgYh#6znc`>j#EkzvVNW=iNvK13%v2drmSkhtYfY6x&8kK3 z@sUgdky7+L$O}Ak3GW@~N}CWzvH}8>CE9DJ!1gMnJ!om3pzCj?h+#{TMs)CntUnx~ z5y(PCZ%Q6z!0VQIV|-`@Mq8<{>_0uBu0|(*m+$ZSynRsXH|PDC&vguKHvkdS)Df^% zGOD4LGZ0FozqWzUNOByNTBnVbQ#~N5=l)=JlKx<5`3JTp>_s@^3^==d{9Kz0Rq7zA z<90Q|<+o7MnhI#~G;Dq2?@V3Xf)#r{^m5AkR0ak(CUEbdN%VLC%5a+6M?TRV1Lh;g$#Ccb ziBPtU-Nq2bf7Gz){I=kSou%idi&H3j707_12Hd>2?A!+hF`fdW0S&bEc;&&WGpMal z2+BqP2@!&C0^29ZPGCf*z0-a)9Asimgu&-4wDJq@9`dH_r7j-dy$|TR6Zkj#{v^kP z_#a?&pI@_#_yYvAMCctsQy!s*Wl1L)bEM)3jIKpKBMjPBP=7!&WClJ4Vv z_z$S*a9h1em(oFx#9vEZK1L1ADg7Bj;E?Qg*ty}ngtH~gRk~QJQkR+_HR3_E8DQwk zOof#$!|jjaeXHVbCjSNDmH?~x5u7EcQ(Bv}+S&qj1_=_B$Qd-X^tv3ZLmBqEc+eff zRAAgjb9fKXt|C3WIi=fiY$X=8F4a5FN7Ww`_YefZ9^Ct4#p z*(6^hvyhtP(y_v+jX+7vNqG1c$S^cPy6Gn91YsWgfX<~g1J!<^pLo&7Uw7>UQg`~X zdZD&P`DW|Z5J2SIgj@cK#}-O+Ojo5(PeWO?q0r%Xqd?$(dQ#f~uM=Q|^W;T7xoK*s zVIa>FoyYg1M~cmozTC*M>4iZppn4f$9{eO-%q7jY!waBM;h#{#;^7Gwd<6HFlRsmI zkm*n&A4~z}BR+H@N?IO0;6d=cJ2E7rV#qKof^s}%y=d{LQ-esN{`SW*ze3r;xJAa{ zsD_ESUlVJuF`(0A3Zx`Lg1oCc|A;k6R<}<~y&n}!xTx?dJY1Q9r<(-zajTtz2Tf((0lge@R*4%XU55`gx)O(%yPPd#QmxUDMWOOMQYp7+@OG zY@G|IdRcE5lJ2QNb*(kkFmql8;nu#Wrme3`o5wB{67&pie~R1f@LSA8h5=$G80U1m zfB-`G+<2R~ty&ylJ_&&dKrh6>ZP`Ibrp2Pm&VWJHY3?Q!?B4LM;k?jK9!WJ5V6>{I zKu4K<^X`$crTu7nr~Am6=({JmmKo%OhAeV0s2l-ZUAeaB63ZBTvZPd(+PRY4(zkG_ zS!RC!@&b^6bImx`*9++(PF;%T>pk`a%??Q-?|X^}Q!@*cB}IMw;uL_>-FA|Gz@^=f zN-{#vXV;ARY!LP!kZ=3xLE3~T|26HLJZBrZfK>Y1oFiXr3EVvDA=FI%AoUk@D0*E5 z564y2Q@((o_t!f$G%VTZDb$dkX$P8TUa^Mv!%>}o`jR5Tp+8sMhMo@G+BP{3u+u)i zl+{yZ%Kv)nr$sEtlpSaz?eS5hx4Y5t2DxJ^ra$&nJ4~H>e8^ORz2f&|wCpj=EzfZ} zmlNYB_s{njA!g`KSt&?#*CUC9=3%(CHd8O@+B5WlngMr?LQIoMZo7~3sE6cjB$3d8 zl|USI$^Kzi*tH6tm)26vXQ9;6OF*>1W@+`^SBYa_|%AQ zKWR^L`a~AH1^CaB9&y;nx2S6rR$7IuPSvhC_7CV_aoe0gT-5|f^2rX@l;+Y?1gO;L z&kS)8oZ`g2dIV>3BU_LR;Y`?C!?^=_7qvFYiv0pCw-5bK!Xbv=2u@IB@24$+nuPSj z>FPNde51qy$l0>%Mb9D*AF1xMez=FjlbT2jervFEJ+al+$y37UDYS;1JTv0=ZO5>+ z+*nqt7pqrZ>L^!H@5W+(bt>epXsyU>zi@tM$eKbo<~OAoP(QNTbeaH#w;z@-$XFP<-Jtr7kk z98mTeMu_vdl21$~h@`o8`dX2U1XA}uh$1M_21(k=txjl$6f8TVk_Kg;%QXPvPF8Y< z69ZYESDZ``n<4S@@bxc{$p5nOo=cGN7Y$3Pa8e0nt?86p<^xOcIv?94B z{iN9jl*J$Ig?6oQWiu)4iuuoUpM-$U8?_`d%UkH^*&Gx-aNW_$!kPA7{3Mf+~r92(e$xe0L{UMv-$H8P~@ z*kLx3q-*}RpRuDRR&Nr`G^YLdx73{1m1KalVMd8oX#@sOp8gX?>sZ+s=7alw7;QMS zGJT#}n-D&Y+*Jfw_J9X<0db6S7B=V#4N_{T5dN9*v5%&zD|{;_q0(1kwnbZWmw?Ht z`rvX+u+c~$0VP(j4Eg7e5EW%6ShSXVKFozjL)x9nZ3~7nw2EJ&kXwtz!V_(z^{xnl zLfK-+h$wf+J+rxpjBWEFTbdZtmu@btLdssd70Ow9E04?T-A8`o^8)pbJ;t9~ogHw=`u>wY<{X8j`8X9H}h`}!P=J({x;?Yce&y5kduua>x* zSlNZ9nGMT(lGWt%i9B0dUy6z3^rj7Yf>I?__byjuw;PY+54s9y)&g0G>O+l) zM2iKPq4P%7^N^+e?a?#pI0UK5#=i$^bNkz1(TwPz6pn7ObzyJ#<8WhXfmgAv&i%_J1yx!i%xCV8NAYdSwz`kEYl_brp+zen>} zGP`;Vd^a4At7)QGFL5jT?5^7j`17du%W#;ISJl2EN<%$~0CH(jm^ybSsf}bn2zJ0` zz%IeGfR@vKZ;tDDdy)}~(N;IO+yy=ZM4svyZ}Xe(H^at-MuIQ_Qbw#sY&1HWWJ0EaVOT@$04R;y9|D?e}=cP;_c*LZyQhvoj|Fxl0H|X)ox2rDm zGbOIIjy|=mML%bE%%r6q`^UM?=6>eprI5nFNtgPB2NT}A5662C2Ic)dSc3ojd5FsE z)Ftd^bH_&n_q`yp0<5YzM#{M!PRWe983NW?lufx7kC@+NtHv=rw^j!O9Du>z@dH z@Mxm(_D21f`GOLPynea@4Q)*tOk(ajzgH5hN!k7}0Pv^z5NXgK-2~u|Gnr0T6wEpe zOFBrVa*yS!GGen@ea3a%E*@p?aow#S2ljY6(580O;Y$ntcwJ=&08!KrWBc`1{c{er zqU01e$w!f#t`mpDN~g1M>>7o0UgqTHzd8lt)#+kf4z=!+vC`zar_LhaY+OILYr1J2 z4n@iJ6KX-L06y(6!l4NIz{p7T+yg*x2Al8jnY8qtP6K*`8L(t2lRRDut_=&ARq7?<r5y9@@P&k?sSamV)COCHbDgSiKF0*L zpOuQzBjbiXb_YP2ONbYuVj_b#1n{KA4+4*xN@%wOEelYODm8DMbr{PKjUK418%W%-jXTohZ1Tg z8=3q_IfZyg%C!#W>NcIEJD&_wdjnLZt3DGClDnKjb+-$yOKqXSoAP{JF`hT@cxphD z+Zc+=F~)AUj?$8d8>+Q&Hzt&$9+w4k0in%~}}S%_nN;1phJwl$nyuYi|9-N)vt4 zS_$i4m&Fg}R9#~el zLTz;kRJNCh+JKXnfnm+PkuKktq-3{15Bfpn7-adX@@F$ISbT_$u`fTmog0hq9^ z?MMgq#LA00C*#>Jh+T_n3|6f`GWXET(EYMqBgRLcj%!;&6YMO>6G##Hr@n6St=#O? z3i}yxkq^HM3&&0r8c(d3ENAqqW%LRN!vsal`oa*u!|x z0HXbcrrjXH3(Y-uvF}@Z{k4E$S4B(-xm; zaL#lImh9)XZL~%f1z*=aE1j7e*1PTR; zUq6;R{KelC#rH$4nw~H^=Zgzf{qy~rfeS?cxAB)+BCuRXfse^ zEO~+FcM2Q?CU|zu%fAEbro-bRD5=Z|R+JzbBVxNf)dL|FAyYo*ZAC7ApozbeQ(_Ba zpx&!MFSHb<7w}v(W16o6q}a)&seJjnNS;74ti=uKDoSWH35LVB-3`C86>#mTYcq zvpAxP9%X$KfPY)lZeB6V0;j&Cu`G{|h6;kKvyjTT^VuCO={sky_-7#m>8|Judip?o zgg4^Tpx%V#6JV!Ws29kA#RW|!^!9W210g5YhE`w*=GqkA@lUz4s;Z2E z4#OG#ZJYl2lL$mTP~kMdp-ufQa)Q3b3XEP@5YASCF#roC6ad~gZ^pZEu?U(XZ0GOj zubg2zYen${wrUK+BvM#PR(JJD{xW35NaWss6$n9?HktUA*4e$D1&kte!#Is8OIo=$ zPAPW-N&7!1x;xgox(ioJ;n|SwQJTIJZO_NlTKpb-iJqU5oe((b{x*qH~#0ni!vPox;t%nX2C9#_*v9gg#eb2+8M> zhM7mEBU+slvnGls{mPy4zLQ#6ZVrC3JlcL=ini#7K1F4%mw9^&wG*A#qP3e`J96iD@%>ML$TR_w=I9cohPqyOqo8k9P$153Ef5BRLcPI$)6`(|21yXa zZU?}8PcD+}QW1oEDk`~hYi%I7yB7&WuI^fE&gsj6q(wxkSMI0qixIohdTfKX43NEO zi4^Uw&I}wyF*I6BQc^r+S}NaXn{I-7ay+iCso1VLUsfg3JoPwL>sX66bnK=Iq&a3a z9e2v#1OyR=bZL?Tt^Jyrc@g;=1n)n?=+BpMBdp=sYnn_l@yUl5?-Cs<mp&|11soFZwWz{af-eG7Vlv4{!@)bN zS7vMQ&E>%fHu8|cip#w_@W}aqJq2xzAKOG6Xoc$NQW%>j+tUwZpeK{ zCf_4tVeUZ3!>B1xbN2p0a$iccqtyZaY$OUL`=`hx8MrAdxB6UORZV!>X9FxN?os69 zuxDa5?GI@JRS&B+x7~9*KRGOMbhcL2a&^{T#!S3^`~CeB!@#%CLq*5M&0@ZhMw3t7 zI}=c!sV_tKd)?RmdG^+&22Qb`s}@S|hBWkqBp_Pj%iV6*)2!U@J z=6U@91E$$iK@8mh4HBQgM4{yxCi3mu@t~ELT%|A>51Fkb&%U0&BY~oj_`yTS`Mizy z>D~F$q~zze6{m#R*CMWWtR5g68|A;Zkn2)4Om#4*Cyfn zeFd(WjpuhIXFW%-C@HHKkkvF{7^kG_TA;Lt~dy~3(0_>T}-vG(|^xg&F5mrD= zWXd>nnqX_KzuyCt^?3tz9?&4}z47+*Ng$uuo^##J%@LDb1EDfqEvSQ;0aQqEG!=ug z9+dM>0nbX=i3)Jqgny)8Bu^{#oUfk7uNrucc6wOMk-Pu87}aojTanqOzL zYB;K>RBT>3JLY1yXCa?0m0T)7Id}<@E7QwQ$zzq4^H%eKRy4J3R-rZ>^%>}EF|L59 z&2WpA7P$VoUS!7cC4!``1~h$cp7Yo$m>g?w#n60L^aNK;$JG)E+W_j3>}wyycCl5| zI0Z~@&7ll8hEd6Mk;|8z_SCz~lb}bRMeWX*Iu%a353BXdt69hAV~NkmgI~@ktygB1 zsU~lmB0Olj|I3{3VfVT)s1IZtZh{)tIH%o$P<;mw-O51dPwM1zyfbduXQ$SwbX6@v zQk(g`+g3lpy`|pi-KE)Ro}xZ&L9snpLESi@?c;%YV5*)T)QV^ano=0_CiE6_o5(eT zsQ2RuMBNi>9LVI%>VlcFlUz&;;_+bKIGme3-R7E`#{zxx%JC8S3x?YjrfkY@g^TK**5*O}U zrxrz0j4T||p#XKuDOh4?R|#J2HJ^7sEq3K}BR8LR4wwT*R?qqB)oLD#Y!y_L#Bp+p zr%8gAg>}s4LoF4cquQs#W4G4^A<52dFQNaPe6j1CVU>#S`ICX^8tB-jSkx`e5%z|{ z!-{H8rz9%7E=p4o^|6K-gz?RrIdQ&Xx&o?}8SuDyvUCXoFWc3|!E3zfVm%}EGY8`$ zt(7KZ=88GI4;4pJ9ICb$x=7sXz*c85)7ouKN8B*g{-b%_pio6K(EPF3X)^gT=4lq2 zjFlNz#eo2mA_eJM(T-cbc>70#>t4CT&Xj&oY?1KxxaH&!i;AZ^2e3-o25E3-QosFv znJXi%)A##hEo-K?*Qcf6sn=;RyN`2*fZSK&!W)^}2q?~i3wGw-ET$#N7`wJjo7GNR zjJ?|_m!vLg*v$LZFl28>EzMEzAoL`kvA+yRlp(cZ)qB2U8I)&x^Yac<*6sAd*(o+% zX2|>@5Auv~+u0{mfm$yd0KU^xpi`v^u?rGVI49<2)v4*yL@I2lZ{?4!Ci-hgd=m5c z%r!ED$?rU+lHv=|!k#PDboX)impdHG3O|3MO;hG!xJe-FwW@BKm+C5Q zQMTZxWw?LNz@Z7w5hC zOi7j1)p%U|PAVP0(o{Y%rSX%Y@=-7~JzVZwq2=10&}&vv#2lXo0$BhqA(t_0j)Zw4 zBXGI8;DPRR^)}{54}aO`;!9yo`X^TnEw{8o@Nlt0<``WjS!ejGHb-*x0FIJYu+=m) zNsE&C(2uV1=MZqLd-YYmw&G-;9T1G7?Ado&Ie;8ja=|T5)1w+ByCx1P>aSviQ~*pT^=+ES!yNyT?MfJG5VrqG)dLNx$x&W*(}>2ifMQqshlE zX=A}_e28>raa9--m)K@+aW&l%nEoo%|qP1^u%&!nQ%^K^~E5>JSM zWFB&$H(DvJ!&rle#NzOF1>Y8{wkK$TB!!||&QexUuEfM6`$T5_tBUxH(PmS|m?}WN zb~GAk$%NzH6BFvyxat@e;B9Ux5f!9lm$`#A_05R+)(6q?Le1tAG!ZDl+pfIFnqlj; zeD#M1*P82~FB(frbYkiT(e_{dIJ)6Hrz$AzBo=EWx+y!vNyGFQ{^4ik4j||7W2Ov? z)J(HijlH_+6|@WNj;mI267ffJh(dIO8nmg**9eCSdd@>Z;P32n(~37gjeGZYJn>`b z3L4f%hiyO7S%D2&Db}E6fyX)!cIwF#@y*ru7Wbp% zA<31R`lKxZg9R`bPm|K{M0<5oslH_j)S!^f$>GcCX+bN}qxOG7WB-WKys8Dh-y(a2 zmRf)wm*W-MI>^DCXn9K$U zHUOr!S{qCdNKPfK;nNXQ9r0|ldX1N&_ArPl%3i%pr0x2rZC0488_DkTh$^E9h%G9` zpfpox>A~h#^6}F>{9v>*N)e57(HTY(`Hx$`laE_OsZg8e!fm<3YKp5es(eg?@c?5` z!v1VsjI)l?dXQND6et$RcFm)zFk}~Rr|_rtlbc?xF_WDXxkhQ)o{R>%?vgB`^a{pX zB_mp_isQ|O>$F$snTY1fJ!$TZq~BDuu$7r=C`-|DW(cTk~OR`#bYyf8LE!gzFuKJ zsM9%6I3K|YRAdTuZhp!lGQ&ap!q)>UzsBTnpC8%xRl&<%`7%CJxuaa>4Z6#NsQnEh zDa>2-X1`b}y3^oBAM(YR3f*z*ORN*R!rkXlkW-ACcgY65QRRcykYNEWcE1@6Z7GizjpfLuuSsUD$@Qlr1~1flRL93xIVz-IL>qH6W8IC$F2hz(f4p zH9}`l@QyMLcfI;R;5^XP&OmBI)o!nOUo&-arAcPB4#@#XqBBh6Xw#@mZyr6NP|hAG z&F-Sb`*=02RCvGP*P5BF4{zv+(_tLmQC#zWY0d4|ipG0WXyUZS-f|rFou-0m%JVg6 zA&uL01IaAYft&Tiy&RPafabyOWovg=m?=}Vui~+ng{%z*l1b-= zax$6wq;?x3a1AxKy*_~*x8}To!MjnsDX5(9b5x~Jes#di*(1gC%9*jVwDV!*{;VO- z@y;UOeief6jd%)CkxR}{RG-25WBdt#e47_=m60Xb2t0KNPmZ^n(q{5@462J*#I(08 z!Q}qJ(9vzU588GNBmqm*ffzk;Et(R(HU3P_MkemiQNc)*Lkcabt3ux^m-SwNzw-<$ z)>t~b>@1vVPS=m6?-Z}4tTePAp64=bvitTMyLYrOki7?9ok#JdbsWu*+4;T~b;+AtK08L-z-4w0@VcXy_r`fuWU&1qIbYt@_*Uff(j{wD{ zY`)>;Op1P4Uk>4~J!*mD`MaK}`UoeAIY}uzT*2m?+hrvcp{@*B1z`Tv9PSPoJpL6q zr9Xokndlis@Ro=3l~C_FJ4B)K70uCjp}ibKCCoF)VltA0qLgg|Pd>?#>ffDNpd>aj zP>$f-%~DT7wM?73(JGl$$5Ji9Cs$a!zOp4Goj@z@uOa$b1~aLJbmh66M-ouw`MFek zJS;B!a8%P)pVpMwr5Of zwcu~+yg^H>I7?zcYa2V|WSq=$b|`xJ?5b?EKz&?EMaS1pwtA_VOG6w+7;ecrQhX-H zat#wXF8V#`f~0dTIy?DaqA;3;`_&qCqyb_gofW!c?|SshO~$U7B;a8uca%cK9wmN6trxir;m?2>eYc1ueUz_Lr!gW@Hd1j zNyNHh55ZJ>`E(tIel7F~DwAm2U*Ll8+vGBOzT`V5aW~`kD?+kbIHWMjb0p4WB4siu z1kTOx5;qk_m8|>UpA$t}@arG;bsC;@bNbIYpJ_r1CkA;REhS`ohQw9f-h^UMkw^NV zIy0@eTA8KHyw0Oz;13+8Dp8_k-B_uKEA6RZ<%WOa{&PjfJ_ghMNAGKYPGykwm?b(z zt@EvwPWRr>7Nxn)CW>8XY1t5NgF;HFJ126O%|OQzsdODUT3Hy&xbu7NgV!uT95cPFF1v8Pt-lBj6r z61#k>#@V%ZY2cjwq&J1ZwSji@o@-$PbEUeW^U(UGZi;yUW8hMIjmXz449^07f9Imy5lzN)fg-+|| z9>n1=pKh47bsUOZ<3DM=TM8Gz+KGA|eW9d}-m7sh3NwTLn-M~?Y)9Z)O`xFCbiJbj zo+P0ImcQ1wC8y)u++T_K3n0JXJhcdyNmS| zES+h{P}w!i{IGG0Y!9DOzD3ZVY1j7P%9dEChE+xll?6#|uUTLZ1Q62Etp0%=xX>0eC7Oe4`^3HLf?b#){_xp~m zY}Yj&pO=P{Uar4Xwz1^GM@v5Dgm5xXFNx}W&UWUr_Qf(4?p?o7h%G1D8$CZ04gBki zOt#Oe8U|HP0R&H8LGXvNY!)=SzDOv9P@nNFC>%=lA=c3|LMv z7<_ZrwReEy_Zo^4@!q{1gA6=&nJME?qaCg{dYq>zS1qs0wK6H|ktf{M z!s7dd>vqQWjX>mi+D~b;WD-n>gkXq*cJ1j#(%}%40cG}b{u?!Hk+*-Pq}2iWT;e9h zd{EO|Ot=u8)f9~wNAL!zLT&V{`?%(tx6?fr80`4%DSNgh{=LS^klx6{u7Jb}?>K+; z(wLmM1}(bmaIQeaedtr_Aafa$S!MLWX1%F$|^ z!o}vkpVZx;wRNg8FDjYhj#k-cN5||Ng15pUx>~{qB0&nbL-bTeUn8Y=XpHD4S@yKj zZ$kMOEoRbQxfk%QB5+NkWgl~zX0rww7gc?;*D|RTDOWbqd|~UkVXb(g(iC48zucSC zNQ(B2tNKP_PO8}5w}Uc6b)o6xH6_?0P|jrR|bM9Rd~nEKnJp%(K8rsrl;8KO2@G?g(_M;NIB zwfus^QsPsj663EAXKQ|HUq3_649so@o^Kq>KfI%vv0nFW$7E=3bCQddcyxc%k*FE- zP5#EHQ61dfPzS`%X(^3ASJ`nvb!nha_tg$<_Uv`pQS_9!88h(5Me{re9kumv(Tb->3Kc$MYH{2Z?^iu7bV!+pSVvOO4>3~k9sX0>soe~!%4a3LDk0#$C;&Tg*lB}dLxNLDiGxVqykJ+S3S8Y!m4TIXq1^A)jy)odGOxda2v<*_q)bkTxI25CSu-tT(+SF?vjodI!ta! zkH2s^Wy+pnmhC5a^ee!M3sXMQi!)TVYEmjjQsDWQ^qw3u$0LFwcwczMk;0o34g2Ni z5iHI}9j2mMe5KRNGz4^MZsw*Ehhu}ZHWw0v)CfhLaU;qLL6?JE%OGmE)r_Vc=IUUi zN$w_f=N>OUWQU{%J7MT8elAbbkgYBp#6&kxh&+qA9IOvgbl}?wYLhXNe33xxOKeb- z8+7?~U4vnZ_3DyuyJTzalGb9gHr+mFYb1`Zim9?yt>NVB@=Yjb$QCFq_DshFR}kLD z@ZBGkS`6&h>(HMImLsQhsbIFGMfc~ltR72BfcTj=T!}x`tH4pRqic1L>A8MashFe9 zwRJfiV_Mn0T~X4ge7xP;w?G3H>xF4R)a_Y`-SdmZ;ZDugZZQ3Woaoi{ z?E6ygVNVszF96!V_-CKtV4OIg-w&kxCG`7uZ6_9#iWHm;H2xUN-(Q!31!X280@+`& zxqlz}5EQ>C`$MRHK{@_CJAw$npC~^D4m0JHw+A^q_omAL)Qosbl17(dGveL*K^K~^Y{E!W_HZp z_kCS!t!u4cPf(di21b}SU;23_zn`BJAQIV+kg5Ork^iVm*#Rr}f4tYHl%(z^pZWVW z%>edO9dr^ZlRS=I8$q|2~sQL$>j9AUS}y!(+koRFCWS)^&pr z{zUkb0P5xHsV(4N4E>5P$A}#mimBlAYJm^mI(W`0g66=?KOA83wcoeZ{+rfQd+>4g zw33W*YhgLZRfjuKp11083w0y|J7}zR@lvz1bxW`ime#3HP{vf0TlHRRdhA&5Ry<^c7 zx&QiXk-CNf5?JC@>1CK(X%{&Nxh_7g+DeaO$B8VN6M)1JiXF&uqDoZN3`sA4jQ6~^u>0(rnPg|%=2qDg`kx00zq$(s&2pR7FwTSA`5f< zA<zLHK;LItAwK%D zIjJZZ@Hri6*#-NtRoBZvUO9>=DsE2ZX>~Lh1RDR_uII8~&6yV}tgAL)9@ce$o7-R` zO)&xpVovfiA-7urzJv_hMDa+9MXjoZQI9-*5lX6dYZ1DX`dKcJU~_?NpxCs1yogx? zAup5{yd)Gc2idsowmiM4Ke$>sO@?;MNXShK*qyyEfOomPX`$#iLdyl4uT7bWm78e*L-}=juPwJdH>}ZK*r3o55`;L>AY4|s>T}P9ld=hIi3ItB3P!wa;&z7Xpxf6LkozJ zD-(>pcafhr?WS@Q{2%41)zyyRZVY_ePxb;nE<=~NKDMU2)^Y@`B^F0*5c#^{m2$2J z3D^y{_kkv4#^LXDOhVbDBlCr_95A13(X9460DL|kV=2>-OvLDvygqr#X|rdfn_V6 z9c^-{(^K8k7q#KfmK63{SJ{HWBIC2^T^VS#QCV0P=zraL4%H9LLzS?A5)g3j%Y5do z;j=eu5^mAk@1TY!SdBYUo(Jl9Zjs)maEm!%G(s!Y?L9DARUc^aL)7ROR`!W~nD-!L zP6dk%gp$DxpCBxm)9;Bs#krd??a#-Id^`T&baKWPb^EGk`TAPY z)<89#9{ha0jQ8(if(y?-4bzXmxEoY9XImSwTQxe{T8Fic-->bG7-tU|^a}+<>Y$=t z?xSG_Rz*DfdFdNgdp{&r0#I>?<^yEQi z6UnRYL|28cw3;-22tN6#<|)|*s*UUX7*RX_HGNiZ026Cf@3MhAJ+>ydkqCRK=cKk^ zX{ZDXllTA3CqTItN{rR=4B4Q-^!W8P)_9YRMdah&G7=e|!Y*L*sF-?QVEFON#+5s1 zvdeUrSKdumCK?ljs(>Y{A9TO&sNJ)J;&aNi@^a8j#w?x5It`ledq$~t?p-v}nKvxUDhc>U(Tz^b7 zPc;x+9v5m7yB?|YH0$fDlyV@%OopQ2u-o$okHTMhO!!g4FVfm*sOuud)Yq35d1u&{ zql|Xy#Z;NyGNbCNSH)1xu$NCiNL>yvgjV>oxAHXu4J7mK7Y1_~(!e%BSpPM_^MkCS zGBAPVVx2J;Hmj1U;3UzVLI2Sf;O}SpkKm$@JtzMu*0%88tcR#YS<~gETf^<{v}BiE zS|C&~(Ue#LtH>)kf!sv*P^7Nu=@E(b!iP&^J!0>Z16sRi-8Ho3LZk-Ssc#0S4Z$53 zt}5kdAT7$WPn^v0&>ld)g*V4qb@kbZQcCdKHZcwqbnvQnh*4&z1Ra{zW(g^;*w@st zOuJ?6cF$7O{rvi{326>c6H=gYKiZh~hb(uOZKk$~NgKfm3Q(*WlvTixgHd9&Z(Q;eEDk35+=JMiW zX@>tOn;IJ@SCiFQ9WqRf@GPrciIG&0j_5S36=wf= zW2Z(YA^$KqA)2ug+5bS;luN8vdPXRri*WUN9|C7wqCSrh0yeg>@lTd`a4J8Hb;!1GF5JLR- za{|4s)W-o5uQIx{d%qoF5dp1K>TivBu5Ya8G{i2RK|9J18H}}co0=w1V0_>m(IymO zb9Y8Z8pP6jR#x=1kVT8WyXl%Ew)yowefhu&-GL$5 zORCuQ^}sc;2R&D}g~Q8LinIcH%gz-z(IuDaMUDJgmndd93}! zWnQ&jcB2SRQ>JqxYbBC2R{|Qv?m6-W@D=Nga#N6^bf~&0?YCPB+l@LmMe1YfQc~$dd=H@2sYoXqFP8CnJQ*pE}(oydl_(vrm+zF zSy!c)`XeXL6!mU0W;WT)uZWPA2hy7=ct(lgzeKImhG8_hmNM?TM2PEG-K4;F_f_++ z2wl?k(@$5Bl;f>S^n`y{Xx@OWbX@LWeC2AutUDN%(=tsI;i_?cQ^qQ`PDJGDCx=zT z__()3VT~?Bz-;b)%TO)m7)cdb^8!M=%nDY2qijbPE{1s#PS$lmFkxH2(rS~EJyy1V zDV;6fP9cjEpUq;+;x{P62f49Z$|k?uNUnHlS1lhA)snDj^lNuW?1OJ@oCe`#rB6xoDmC$GL&Ip z?uzS_V4F8%zuOi^p?)~{;$OrKOMbyYvtAKY(OG$>g=pS8L*GK{@oEb z#B)lYOr?|;=G+(83m?$2im6{Il{4z_D)YnSs-8~^<{}Wm#&l72Vp#5DulfL%S(;Eu z%1dz8kTPHZapR4pQB=KRLI-(~|N63l-t=j=O16WDfq;4{rgYa(=Qy_$2V;*I7F4KRt3TB$l#}hL+uM5jWzfDSO%StmJ zARoi5spWK3WRm=eQ$#Q*PrYKc3PsmOY#uF0+4|i#ro*TS4#Yk%yu9myQXl~toAqqH5pnFwx~z@h>VmSt(m{i!5&uLl?B7d z8YkHsvL!iB=RC`w(&s}N?ckwrNIW(5+)NS2z9aGZ6_alThE|-|C{$MJvI+wBMBS=I zzvZtKHhTsPm!Px0SBa*V5*RBsx!h-~T9E@>!>ub^iJOe1<=%VS$L-SaHdV)Y>^$l+ z@^s3%zGw=4DpmB7zJu-`^j+Yidcf)?GJ-pzRtjofEf)=mOFfxu+y$l1TAF@5JUS1cZTV}cm8I?Lhk;=eSX(HzH~x}6%p z*@1gNQ>i89Mv8mztPhB?U89pldTw?- zPE$)y##(JcG3lX;s@h>Kubn^j2Aej$-2 zqmL{y*oIh1(HdOp^s4mU)}pmoX4QeN^|#{}qw`ayB)cCu?`d!CN0Ee|iO8|=p2nw{ z3yg_jyW?lwG#aj(&xluC{vCq+I!pSE1Rs`RxHr_e?pu^Zq9D7D;V=3lVhz zLwMuw4KszCrT#XJ)Nzfd`44i-UDmJ0Y-QvxgE=GR6}LBnSpHPp3VhfI9hXa72-5KabQ zI@MUt=D*G%$i4x<_s?B{SOR{01qK`Q{|eD(GUvE5T+)pK zaG6%$^DxFDT`=w`4y3Nh^W8zRw$)3oiApesl$_)pDzT^GBOcviG22bI_JQ!b{wj^2 zjoxgf=SfJq{Aq_pAi~7tkhPT&q=Ts~vkkK&14n?(1D+`71)_Lb8!S+?c2Y;pd)>DA zs0z%M5M)0`D>`ITJC~05rvA;VTF5$D zANbDxbN0Xiwc+X>C_H!vP3az42ycFTX${)OQapTQV8C*q18y^d5(i0d_UcTHnbpK; z=sjn&-*zPd7&f){d925nTSr7_!k45@>Bj`lE`I(;Sudk2Pz69Sq%+dZ9E&b5@DeeT z&tz9Y$VG8!JbEKnuKQgpc?2l5O}88WK=8uZeYa$t#sznG->vP;$>eBexNG|jSGbgvYwXwNw-#$UwPpPxPNTScgBe>%vecvRmE zX^MB-;L-u$0;X$x_JaX?Lq)Q#`1emop}37PU0@WP+f<1~QBfMW>)QvEp{=+*Knts| z!tgVdT~iX>dLpH-hDCUDF}K@{43S`dVWDOm zvH8wpJ`Y4tC&BjN)ZRlzaIm?X=g0NGwADK#I{Q5ZFN5i?mI~B{24nwt9n?sCLxC@l z{9bRRr(naBX`s8p+Y^J%8zT)QrXhq8{I?d`5}=unkt_#u`xl8Is%ca*I(ZVuaKUgi z5NfBe0sqV{{jvC+L)m_U2lgDD_%Lzf!sBQqih&wQhj+srWzldB&qirWDl~oJ+U+NA z6k_>WZB}lTrbX(oLkd9rz`gh@Anxo!T73Z7W<)0;gU+WEWQFrF2+v&xdEx(P_nDpv zp1t_TVmZvD93R&@Oau8mS{Yn}_Kp$$Ha`Fx+ZMQ!{dmvOkH94yM8#82>oxsBdG`mx zYCTdd8f(AqC^}1}J6Lnp*@vlNf29tdwpCFJGdNW=C|l7$*Muep6uhNi698NWH8J_qU0o=R<(WAXD#5)5GAmG|AO1K%+J zz`$bD1)b+bhMEZ%GXx^qS)ga=!v^C~Uw7H`a^EY&33P5(`hSIYAzD#ZXj-o4?624p zFEz;1>jSqG_h^p1h?k!F@3OBis0)~^jnw)0pe?T9nMMzv)cYocj`{;`?g zue`zDyAeBpjpd?ZQ&a9P7%2C4^c*Q0eElsINn_V|(Rq!3FnZZ2tBW24DFIyt(FwcW zZa3|jvKX&I9AA;x#!v&%XTX)+Q)4xE?E7d`%jVei81eqWCkJTyz>Na_N-zR}PNU7< z2CU0#hus&ylSsVZ}NWo%dyTw5BRKE?1@wZ_Vz9))oXZ*6f-p zaHHHUMaG{W&CS9jfA9i+9nM2Z{;1Nq-n=Rg$ui5{W-uTdx6&=b-5b1owkc{+i?y50 z&3<XfQH|_@3m?cSc!xZtRXSoxi~grur`e>(uJY%rcnq zZzPzVUWK99*h7@5L> zU--=0n%smI8Fzm5eD?KI!MiwKksia%6wB(msF|9W@5y>6F^oL-;)9)y=D^T&al;;L z#)$#q%{_7;lOW>n7L4O3INrcJ>{cBMT*sr)z_|PBz>Do5?%g)uROhmau?L z2Vw2>?`{Tj4r0{3>CPyi!D5C74QJUlt-JGZQA=029IJuuS>Dsv8$=(hx>C+`t?~1J zbF&z>%Pq>=jOpA2;9&Wv_~jY?DzM;nQpyS~-8P8Y?<+}p-)~dv+-s%mq_Ol>+7H<( zu-ND3y5yyxt4kN_7a2vGgBWwHszIeAZ~i%^Won?6W`do zpZxr;nnN;_tqs0@eko$TwZB61^E+j}h3sL=_Hzz!-sJWEI0w%Y{$s6J*zc#(2nxkXI7Euw{+%k$L= zjFjcFpSY-y!{nBcWDKTVX4v6|-DgG!Cert4SpQXi+2Is+yL;?*-2RPXJhw4kf)%Mo zFHf`rk12A>r2m0%XR8S*fQext%!RSFi+^3qD@SGP)e!^WsTRH_-M{ZdnQnHAisyy{ zqVBtYkv`Z!Vs6v8awUG!oZ{p&>vu`ww!3)GKY&CziEfOE%X5&MGKtLRgHm5&2e~c_ z!S_;dLG|R@MzP*dJBb78T5OaD8xui0yrP1vP4CSa=y_npElRbpR;-C&&fTpm4R&1Cziw zQoiiAN7#N z^W)X3Jic`CW-W3tNsaZ?Fhm--&lN&zs)b_RyJ&o_kV?qz-z*3&7fo`PN{<(t7erka zSG3z665~j2O_4I-{z-*ytij;Qv(M!tBC-O*4cw+WBp*gV zVR)sP481jU|F*6h>sYZVOf0+ZH6~7$S4A6+|4wgl&HYr$tP0HjOi}1bWC&p{0z4PG zkA06HA!X7Uq~ag-5$%ISp6BW4hqv|BNlHf?5``j@jOQGdv_{1j-0ks!T$QZ3A@^V{ zG9uMZ&$xyB;vPb%#z7>qS;8=h!pw5Ms#bg;v`98We8wq5NDI&syn}%a9I&D4vW4V~ zXKlubzR)(&*xTni(_eOrQbQa#Ny|%Hdu`q?c(ZV<=4KSg(OH=sbCYdrV9$r-xx`d| zy!A&F&mVL*NSTW)Xtl4@QaTyD9c?l33{hg8mn*eg+1?H0F7 zX1=fYV3g02XI7DiX9Nlp5ag1Lj6D|SoPK<*jI3YmXM9x=$DVsut+UBE!UGy8X$LMV z7=bLo36C7JrMJ6{a><%fCW_@5Q^HR3Ltu>V%BypJYBJWS(UqY`*B!abaPtCfJAmMf zapCWyqOgyGH`y0z?lZ-BaQP|CylE3SZFKvzFBwyb0Ss2wSSTz&pbV$*1QTK)so;vP+n@aeA0VxF0EId+r*4tV+@+TRYLdhMHA|!_yCy z1oD*?{K#PwZbiv#yNXA`y(wt33LA68aL>poKQdZtG?mWUce+^TM4Mk9$crP>F+t)s zsr8%7?**H)!-3|N7Mm^s#z`Zs5;Vf6IP@C1|M*S%?-HF-tork8k7|m1UZ?Z&I|o~= z)Zdy)Sx5KPS$9ZGL7TRsN)2+TZ%Zq;Hb~dYa}`{SXkB5B6}{RMxhLk8KQslp4P<^5 zK^Tjl46EjeTwh{s2_tin+YPlmS=2A46kH7p7o6qZa7BJ2f6zW35-MzT_nHv{>~dqJ;NH0b#W?)$I4A&v7(PV6Y4CQhANC5{rSh3N%>3G#ALSr z5pB!2n#hda;x*$NRKL{i&|&U`vulYNct`ap)q31P`5Sc$%#p4b=hj|!Vv>JbO%i(A z$?~w$=|(1jn$3EW^;!?f)^HJp7fIE}Qe>X1dFLoE>}}-S6qUKzuDD6N^A(dTdUVd& zY)0!wS;u`6&Zv($4o#xi>?r8+dT1u9UE55T$06}gg)nePvpm9oyH8QDW=u5?*Kx`G z)sX~#v-fNJMh}bU#cKmcCY|;VBt=9H6Z7Cc=P>JfZhmbjoJJM}FFaxH&DUG5{u=1Y zhkwh&(LBXy5Vp5P5LwWYqhwvTOOi}7asQxZ@!{qO!GN%qdO;*WNyK$|MauIePmCna zF{qK>9Z#trV)Inb_&6IE_qQ%(gfqv7)D76jh_8@!f%jlwR$7Xyc17 z3W;Y7Lp3AhZ@xBNn{oRnX}sczZ|{{hkwCdHL+V}ZJ`9Ep$Vt&EJ>{k=+0fJK(^0p# z3@{b$DpOnzV(Xe~7gw_MK;FN`QG8O=uEtqRe!-avt7JzH{}3p58-FLN9ot3j?dR4X zo%0l>u&AJv4f9?Pe{4{-Y&p`=#`}?{-#J7iFHyT_Q_odA*S^z2vx?TV%KY+5uGP(A z35bt*sp2Jp91KG~r2hk}?uWsI`Nw}CF4-^d23>+3OTo0A)Q)Q!EXiu+iwoVgs^Tn4 zDl>fg@Xc`i3#ZTp$26J|uDadjLa{xf{=``hLYsC@VCcFdy2s&YYgn3YxlQ^l_L@~T z|IXZ4(U;Tw%h4MJdUsLDULQS5pTya-%ILWdiCIvDUQ(FQkfw1`8=8^lMv$p8D&uDm zp2SoUEly0vJUg}gi#PThG}x;Ax#PkFTm<&UX#6b=on%m~{AM;x`_13 zA)FI927s_$6Hm2X?9XdC2=_gD5=EfZ$%q%bjfZ6<;QONLXZaRdoN-!RB`j4E0XN%N z(%jUjqFE*dlvWLr$|2Sabi4r^IzDHhVVRq617Bm(ob}%gVs^q?dOp`eP))E58IezH ztBSODNVnXxzo53e?8xpjvS%rsrm3XEU*7a1DQY8U?&bQhQ1K>Pf4EV`A=6WdM$}Q& z%iJF+Q_ozd+jTPKFNPTksO5?K^fhBe|92pU>#QoBm zMGc$YeGvZRIheidd%$tjA*V%l6_TL=tukMO;0p`3QH_>i_{!Hb9Cl9q*=;W$8QpBt zof3KEM=4dqYDh2;RC$CPa_D2V?Ody6+7sJ1&dM9&c1V)t_8}9^eoAIHZR9WsT-riT z_?gQ*7y4Y6fmUY?sVPXqhAzL}(yKqwP2l&-j6e?kC7e#)2Z+FEA%vnsE!xf4#xF4edn6IX zU8=gwgZ|QVF|Q6}1L+z9o>Z^WcC41Se&em4&qzX4^VgZ(m6!fXB&4?0JuBRJOe@~2 zXr?h;PxGJo-jI`sO^TYu(tZAuD$1y~FwejPZLZQsL!p)ijBwHQ&8hUo>e2+9u`OJt zLTD%6p*XOiCL2$vg)u3&twE8Yt} z9*X=-t(vas&FS%43GIZkXmfoZTgA0CryXcH(x!^=ltI6uFZQc&ghl4`BH6^%f})4x z3Flon&EEC>A?ds&c&cwXszvgmgo6n+e=(`wqt@PsrwbfnL@zYE(cZw@Gy6VqjtLFg ziQF*qFW0t&z?jLDk{?GF=ZAs||nLkbgny z(;ec131qJq4e8v;yJubvHu`v7dUo)~YX#7Kq|%{~3}kos%>y0C}!_wM#5aaT`n^}7W5r!e_( zFpv|+GH6*+{NB<0Jj_G@|IcIm{HK5a@Rl^d>^m>!^8J-a0Ltpdt3QwN`;ns=h@8nO zjjMm<7{J*WpZjs6{s4?SE*?41o|pr!4}~8Xq)|ZU%YIDPy5`I^nFLP)(wyidCLht) z(Ev(mB(Q>nJbOm;o$=b9%Q%j`l)Xqa_aou1R?fVN`OEJDSQ91=QHAnG#obxvs@awn z4nN%+t-u^pwhn+W# z{E@%}H_vXWS;M*}SwvA?4P-si1ufIA?jssY0`I;`g z6eN?6Dc+elwnG%zVH{|xw`Su8fI>G{YGoF_Aigss=F)v(!gvI~>kR@m*{Z%Yj0+%L zO|0giE^|Fi0MkpE>511V;s>G*;d8dY2&VR6L8#C9kJR^qP&a$87yYuK%g} z-pA=z8UF=ZijiMKoLa#&2HblkgK^B(uX0{=48?@y4!KLY#AgE;mBbJjnhj@Dd6U?f zz)?`yR_U~0!yvKK5iC0Sreh2DvRj`z)I|fF0uF!yrA~vo-Cg24)*b*~=2Zt}S^M?< zU83nQ2#)iM*LW#fy$}=r$>G%oPsj1xDgE!lAYu=i%%Tf6ry2#As8Db4gH(nP(VhW4 zD^9FaD-(S3EeDE?B~j1Fe$_!w3!-XY<}{y`fg(l~5?J6lJeIqL-b;Q7c&81C@k3Z- zNd}P?iSho6RnOhWqt}%g?&H&$dhtyX;-#JQd8TXgeVo#jB`g$!TV^DA#^(7Ing|EK zT5FKY2+S^6yhICnM_?eicjF7PjXbE_YLM#<`_i^CwrN{^Zx{T4FK?y9D*@ou$s#?C zM22X}v=QqGI)J_FWP&#&8vfgKx;D{g`|G+XKi=bHl(WW6bR)cSCo}Q-Xmv6s$9b+>5-`#iI<|E&uTa zmZf|H&>p58v{XWbrgqc%h;3bba@e+OKY20-4zIfr8XBESH-&eux#cP3myUWEyOC--`L%e7;7nH1=XlDDKgF`=mYJ%b6s~a=j zZ%rUOl`R)RFlHCq2M?lvFgfhZ;9|n@IFF$}X0HBOz&}+>5&Q5?N`wB(`86NCgttUQ zCUd-fH&f>zxK&$Qk`|gME0efE-KsX;qPHYmWRbMq(;wcWWekKgJu>4SB$Qs#<@QoA z4Zg(X0=%SAH()NZZsD=~(5v=>Ub7R2DulAAud9}Dm`N^_5kkz)fPDR?~@;9?84P7Ulk(9K?83M%$GNU|y`AugzkMOIy>g3pXU8_KyWU$;fW$)GaOa z09YoV7R9hLQ&clYI>ljhGKkD#C{cbog+mu40$#O4ULsG-x{zw;YfVV_S5Fbrylb}| zGreYL<>`EuWh&GrJibl)Ms)e5Ewg$9lWhr&cF%00$1ZP>oJqtN7D&R-!&ylQWdg?^ z;3aWi_jL;-3L##()}`r~+TZ!vurK5OZP+j8_uM2>M$Ux`qmj@6kHs(79wi5W)eMPO zTdx9B-C$F^Ki2MAo8sl^FYLD~gS&!<-9rih|5?9VRfA$`%12aoW4_;rs6T0PWC4dQ zuB+Q1RHefeMewE1x`k=QJzX;+*IiXVx7VT#QA8_t=Y#gqE6Pp-OV5P-hS;XLgB22G zZ_(BiQ83@>xWCW%RO*_9ceTvfhCgZq;)54meyUGvLMGZH-}8N$wx?KJtb7SuYaJX- zc1>p|&5W@&zm1Q2TqLswxM&-h3ow1tu(v%eKqK0rkYp*#&cy+T%@cFR*THJjy~?1H z^+8^WlqL!_c))b(0O}bhvhmQpsRmZMqYsyPuPTA!u`Ts5*7q54at77;aoa3h<#sKI zcYU2Yi7Hck5n+Gt9QB>A&Ks|06TP-AD^g#Er~~1b_)_EhFS|j4qlG3S&ZT~o`LWT_ zR@C8tk(em+p6dIekG~NsT=o<#mXr9@->ZL+SuxIfkRL~-q&^1`85*(2<~a|zRk-xL2-jQi3v?u99Hm?91DN6TZt_ot!g~CoPd8im=6W`s`IIu z_Og_O?V)cjK3KO_Cg)xS!Q%_8K|Umuo+l7*Qn7(N_}L6<&9+PZg9Svx1PNWBbFiDn7;F|1Ra2ls-oKYwStHIkt`|E(u<@%>WxZ z>S`^6p4i5%HuI)|b{Ei;EguQ}3c1ovhksHIQh)stjdx@QA+AaF!;!!_!u|!MQc;u^ z2t6*qdg|3gqp%QK^{ZpWw35*aR}-Q#VnlQP#DR%L+^iU}K(!o=lO>$`TQ%Kx^GH*Z zS${4M@72GoCg3F`BMu}U32VIY-&b|v`CT?LAfai}HtG1Uj)N$nIYyMwd}8Ez@VBp4 zeoIsg*$q(f{;fS=Jxo*#-IDo}@c*~q55GZF48`*|pZ(cP{Q4cT&xwj5d9wR|Ee+Ei zfxe2uJc#En74QGQ++X{n|Nra$(k1?1ALdz(rhB|*|32w=6>i*Gg8K?=Ay}aEl!pVUi$}nnb*3a3d{{8;Jj1Y#VhO`Hqui2Deg&Q zuDQ!YwiSwF?elYb+IwHUHL7^q%t|qJyn}vLvvFfjIqP0)htcE>F#FH({W^8#8*{2p zcG!$P?dRG1zBra1e8q&kOSFG~4>x6h140pZ`-Rd4@3vQQtPdkji}Sup^gI$qdT*`d zSdx9ciq3;JhFgB(>=&YYFuW~fX>F+BJ-M_q7~UCi@qXQ+ERaUr8L5T1&ddHwQ@mRa zUiQ86*|@5IdT3wdqw$PA6uK_a+q!JHfz9=*sc3@U#}9X=Bvh(p=(;bY?)z{JY#n6u zQ6IP@S%+lYUSfTFABhiNQC20-F6b70p+@C!$54Yi$J^pAIPwg34raDGcS*y-xJ-B$ zfBd)knSG_Z2T>P)I%j_jJ;r>#8o9qW9d^AsJc~R3bBD6!3*{-iOu>g%6V{c)U~{#= zsI2;TZA-7X)M}m;DR$lo#=mmN&Ureq@y;;m3yE3Z#@JH^2zNZI%RNy#Y|h9cd2DYP zZ*5m*h9vh_C1ilBKI`5bq@>)IM01(s*Jbs?rvsEoIh9-vd&mO#!fftL-^&lkWIQjF zekQrd{pKQd&^wcA>6QSVhd}|&x)e^g#W$y!t~%Zh*t|8`fTn70Ct){8ZnjWvcy}S? z!bPY;Bgu<%d?WqpEo%n_WpxWV0}tk3xlfiWCD<0!*mxuw)~1T&3~arvhp>G9u@nv+ z_Vvg|r1N{}ju>hUR#P>#nLxf2Ps`cRr&XEoR*RY{N5;lC%dw^A-|RsO>OjAym>uNy`-*Y2nir)&slvy4h3S==NfY+f%Z)PmUOKSZ&?)5bD+F`*;>X3tydPkX){9TZCJc!a6l+vbPtsRz zu=A*z#VHH*F%RUZlKUmnGkb*Vp+Ce;Hq^dBstU3i#!k=Fe-KXG9-O<$p(=hACD#x^ zkB@pSHSG}VUAs)z1=&YQNHfR!y-c0BW4iXb4RJ-D>ep>7`ohOWK40G-cF;qoeepE+ zw8>SaGF%QJtf!nVKik&vI6LxCmHlo%b+=AN{*LArn@K(22tz_z$1`;NW4$PT{W5j- z`Lpbj5f34P!KlyNK~q9I7)@aem9f=P=KpMpz9&Tw!1dFs}jlX#V&9;5@(hp+Dso|UHLtmmo3r%96agf)6_1Ftj!Rv~e%U5{AGVMS{t%oz);>~mUuNkWe(H7N94_)>Q3@;m z+cn0dQ6Hr!`277d{^87S)YvZ_{oM;I@iT$%(vGF>2~p zyZd^zqoiAR#VCK<%wHVxW3l;xDt;xjoCV1e zSyCvMSLTmT3Vgidc)uIs%}%DRjwlOxAlAUPG9BKZRk&s@5aIRxb++rmC3o0Dh3B@cbbq;yo`jgRuE z9Xfv#Fee=9cAaO8{!tl;Fnx4p5Tvy1vbmm@_f~J}rY@@Abo$nnssf6uFgfk))z+r> zQe2mMM{XMktujEzSj0RP%JiM=g1__{UWwedjDpOzYCm)#ur!k0L$OY|dhNOgVjA&a3NSiX_>v{L>n>tuY*S zW!K6Lm?R8ti+MjdW?EeX6RF7Elpg+CSxX&$yFK7nRkyG2A-{~n$B+D5 zQ$036mQHgYc~~vst`H)HRV3bB=|koFRhZ*7KkKILQD@Y_ZYIrceGqj0Bcvqd3;e=f z8&!K3y~+GdM`XgID@ipPT%HEHUQHgn4UC2%Yi`@;!>UL5cklDZBP$mh@rXSvb%j@N8xxXW=1nj9!_JLhuBehPKb+sijDS@+328B?As zK;`LsYNIPAD&ZBFN4izti=A<(Zc?9qLimPvaYDsR2Gn~z9PU0*f}Z8JwU#c}zN@>t zBna(3-fit+xYXs0n?HDp<@Pk$ZLb{=sNLCep2Q~NgJjBFa7)>wW$*)f=oI+`rHM14 z7d0Qap90leTZdQRXYWYE299SI+KSY5VNYhYzfY9*aZ)m17e)&9Cz<@RAK$%x`s-3- z!Y|je|3K!U`W4EUo9v0|>>ZDA+z7vT!W_d+?H&|gZ(ceju?-)~!AKxFX+2|Ahs^iC zmY}vB_VYT|X)Ri6?bUVN`p8lHg8KAUaSI|}XU*eB1`L-6oF{h-Z34#*vh(Uzm*LAp za{e{b8RXV9`kxTG$if%mlS5%|qKjS9%*R?+gq~ zP#XGIt++t3gMy`Qo=rB`0W2Cf&YK>Uiee@fh%3CVX&t6NK`|^-S#w779CaM zB(^8vca}5YPVFHKjD}ancr|kEznhkEsZOKWb@TE9LmGaw#9;<+`L&;K`OU*+$AX~u zkc++7e5_ST-Y33L(?pn4s=n?-x$p9e1c{98wK-4k+1f~pFU~q+&;}MGD9Gv{{w5d& zH2At+JH7^8dm)G34jdbT+k_C(BzB#@Tj=;8MNn;9O14;TA5Dt%uBUN=2SWl2lH_?aEn@%+d9ED?~;ws+ZeJ*JX56zqYUe8sC!e;zL%cY zY*-F?8Z;%bse@jr2t@m~OPJLGOh~h1$(ng4z;3eA3N*cHX++5U&>_=bj zOG6gzd@O4(BlbnMh(#sbw9qQf(?-=wT6}YTGdSTzihIf{`=AXP+igrouaA@?&Z26^ zt0186xywh+;IRaOEwcgmQbR#$kgeXOv2W;JGnQcU>@QVIejKP~$|>&gwc+9d0yI!! zzmn5t%P1?sVn|oJj1{{1icfUPQq=rl_oWNzGf~Q4m)k}krJwK3^G~72l24>Oq%$;L zj~Wm)KPS!HZ#;aCQ7|t#=#d|_6M0r-$uk9M7*Fb|p2`HqJw)DHI^AQT%@se}7Q(Px zjJTq7Wz0H|RYT~0np~Z$Kpz7wdSGlh>k+&^*oUwTKjo9A)yK?B^H4Yv8O zlkCiBuHkfNTLXRtHfYC>nSEpK_93Sm7d%Wy_sGMV!_$weP1~s8 zMPI91xYYq0)O(fzJ-Jb5jn|?m+(ta?KRS>4mQ3+!>22 zb;pZ!cxe0GQiE^I2~6Fa?3Gj+gCxl7ZqPzYrlg^o(eODM`4R3MDZ9uNm$E!vTdFg< z4GXY&YjKChjq_|?!PIVr+IObik{}!ji;urTGp&iZwSeKAz#qG zTF~g0cj5G!qITPtDbJD1QY;B_%yRv$eNFmcKB$@SE&D3jkA73Q z2qU)nwqLQ2Pj{aO|55|_A9ME)t#@zec64t4I&^CK^~bMkiZ@Pg=`n9GKwZKeYI?8I zC~3Sxxtq%&=yYH27Nzf`VWPRoHBa_8juoA6dv%4|Rw(N`pAhB(Wo7NXMBez{=HxcB zX*PaP*`Oq!r&1MbW{R21HD{2CflAIOS7{ZT>Esjmr@ztlX@+#H<4(-9E3@=!j(fh& z-qj*ZbeWXDncK0{aKBV!Ou)#kZECk2(1}mABICdMvB8%5d~f}-$vPf!{B3D?=EeM0 z0C_Q-pI+TD`~38zVtz^Sl-1h_hL+{B++@{xYN}%Wyihe7S>Y5%fdNU#S?q}eJAI87 zA%ROyCoUzi$E3@Qa@qJa_quk~CiXa;h=~2IV`Tm)G2HR<-ahs}W|otaeSAh&(vj5C zvdG>I+P_GVmel^G^Whl>`O~V~c^@rn!~JhMJ3PUwg{c(_S?NXG-x9Shtf8>v@M-zt zv`D9KD(5uQb7Rzbqs$ZY`PFZw>uIn$lT*F94QiX;>ucz+mwe`D1PdmM`-^$Z- zquN?`SiiIL$cJFM$NC$_dJA0V@Tnh{$#hEeds%^%6(+$jPrT-6rdjzxIGerspvu~% ztOnK*+t#T*Uz9dsKFeS(>TuUF$ z^Q^y9TW>$>mM1pXZ({#rr~CKuJVre1iJyl(9q-&EjYcK0R;W=b^B=dI;pwUoeAFq4 z6q`Pu{On8gay)y>_#$X~m?8-_Z3$N8I$z8VYL!B0@M70RQr$I9vfBw}Xl>%z&Rn|y>Xp#Hn9#YGjZGLH_f-q_vw}L_OQ%or@_15$>==aG>C=m&MV*gmB?8v2bJj_Cpq7*C-?KIK6GT`=;6Jt z&|e?LUt8{-1kh3K(6F8U8;E}B*n{Wwp(R%WpbbV{%4Pf&Px-ONfKLEiMeIk}`k#yV=h6x}z=h(^XoUV+NdD&-zx39> zz6anBhAthUfH@!Mkoo&Xg1Vmck5BwKGVTm`s;XW@r2hTZQot%s{`yP&=d_*uz-`t4 zEUWr!Vey}1fJgP{-@md-@_Bu4{$nP#pHI~9f9A(R`2A-7ynNsPwOGXu;ga&QuFeKd Q*BOAo)78&qol`;+04(}33;+NC literal 0 HcmV?d00001 diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/images/default-unraid-provider.png b/i18n/de/docusaurus-plugin-content-docs/current/API/images/default-unraid-provider.png new file mode 100644 index 0000000000000000000000000000000000000000..8d1f3227d6d04960a730ec48fa864ccd5243f78e GIT binary patch literal 131176 zcmeEuWmr^O*fuSK2udkP7<7t+^w3Jf&@g~>cc*}ev`Tk(4^o4GsDN}g0|?U0&|Tl= zsOLTB;Lq>RdtL7j=9+8PX73fxdg8wCwSyJqrSNdba8OWC@SZ;tS4Kg>$OHb~U}FKl zw0ab$qM+bZnv01kJ{J?CR&=m6F}E^CL3tJ&6L(D|YW()gjf*@UEowAnQQHAbv}e~d z0$C}nUOfWQ-^cO~8Pn83mALgTmwC4EjlU(T5z8BT5|ZX=QX?hB(H4LD^p8|eFwKAvA#^Yh6!b!n{!4A4U>xZQ{Z#O93 zl};`E@>}tFy%+3SI)nG56XQrz(?!{X-uXOx)R+DQ5eqr?U;?4Qu*ap(l5e7{J~bHC zjA2cj@f*&#&J^Vt+3<3>({+`+C7*Qp`ykM98*~&>)LD4S7o|y;yuC z969eRBMmij!9zECOZauV`AzP9(|sxB!m{YV3RJ&J=2^KD1xNp{{8q7b=EcjJ@-jDH z^m0VbBbmaZ?#=Ra+M_8HL{g_v@O7SYM!wY~$-|Nv4JWLOuk5s8+y%^reR*Pc1b;B2Mrym*c=H<(-3SDa{-?Y;Q4zj0}UYM|v%RQ*C9 z)6%wU6HXA(4{MIqD%XB!=}B0a^d_^A)UCt3K{G@4jO9zz)#8Zn)8KBFKq8spH^Lm&V!K(mz0%B!9&ijJjFrfZ--ah$( zdL+`UNJNC*A}0C_%~(V`T_B%;F`zJAYngQUhSMz=)*c8yL&yx<13$c(KK=&N=hbo{ ztD8^sY1eUsK6lQ#xzQwFH~qptd%KoQ2#4o0>38x?NG+)kUSv8-$g9kZ4~n_;SRsKp z;u2YNiUva-Dy)TfRKp9Us?zxsYm^%DdGguJm=i;Cv*h|C%xsqhoS#bw}U zk@q8(CzpkG*^kLz`zw8k*T2VZCHsh$vJxjMfT8u?*W^~6)~S{o`a&-%G{{C!EQ9u1 zC0`I$SXLa3d5>XPF;!oijHGD(ZpZkPFqx2*pshJ)-oY-XHmer5R=XB;%2eQbS#Zr~ z&$+BE(Nhzz$LHAR0_P;>G(O4HQhg7f5};id_)I2>`W+=B&@PG{bce2k5burrS4D#d z_JkF$G!#C{dWoKb9=!YTd_TM85vuvaf>%z-PBBAL$D(S~L;494Ax=jk9O*~Db2EQd*SXv~*F})ZZg5&#a$8!BweHzR?H$ROC8m1DofyX$^5_l5$bvpq0hRYEE(M$g z0;&>4WJRoMkQ|ua9&|P7C}f9X$#H3^NBHr@JF;SvVv^!&wGzn^u(dcu3@!u7)-CjT zein`;_eJ%gQr5HikF9TMRR=Y}>6+Q@B0I#8;GS%{L78R5?h6(!7F(8JwHURyk=klM zm-u}X1QsHXPn_ble6svI`J|rm(%jM}n^>C^J!N-;JO+cMpt>HJ1NpI7H}c*LH;LnC(CoDHdm#t(f1l+|&@LRw>`D zn6er-IGXMl3$awSac)aAK$tf)!^V%{qEUgTfhVLwvyBaFw}chwP(_igsc*Lx>??aQ5?xjy~A8JAUH_Bi~$j~kW4<2o)Zo?~r2rYQ>b zY~ws%Yq}2V(kjx%%37%Q54L6y7mq+}pgVm;*l6Q^_2_9>cQHzC96LXDvG1GPZejCh z38?hv7tO!VBpUI`3&$Ck1>5_c$sOA3mbh_vdStrfLS)}5mG1PDn^V@YZc9d6L{k^? zl95tSdb4{N1-HEyl);LfVD8rRuuW)&4tJKas6$deo=)M66DJeX8L~gV^;pV)_Nia8 zMb9&4{^|!V@tt$Xg~r9Y?GQIHFFK$57skn8oflL3AHk={!wihLS97m;&|=eNH(C4n zD>&>q8Q5182aFuV9mH^iXlNJ06h-16St$%ZgQQG6RKFL=m&WR`=)mh*-MXu}*q#VJ@zo90?SxFm=EPJn z6xmWZLWVueyw{Jb@%YH0JU6U%C*0f!?ZE@NGu+x%tW&4tz!W4F~uAEkbA+%Z94m?sNbnU0bg?KKGT{;molXR|M5zCC_EMrZC z_2Al_Y1TMM5bgr*6WkNmlMNf@Owt7s@2N_I-m1C4mKe`qPa028nN#UR8D|;SSovt0 zXgG^2lWo3Y(U{s}SY*w{h|lQRUd(EYdyJv*bsrDK1=V4V5Hz_pppCnMfBZN8u42TP?j|kmWc2n-MY* zO~*8gah`Nu3LjF8l8c3NTnpzo_nd4V4%Oz`*D_=j)bJM8Ers~P~ecbg~dikixEPzX&c5G*=}FCV` zMtZ08ilqu8m-d^^A0i@y{nkmNNn6;s^hR!K;iXb+-&^&m`Z4^;vVU!hhu62`LUU_m z6H(BlbFq3a;vS_Noe$5E&_zH;kQf!Ij}`fKGWUIkg~3BJq-jiVP!oHjQUQ7D2Ax02NCg4;5g}TQQKNjH_r)BqUllc;V1-gUAv=$Xx(0fvV?~U z0)qhxp)4p|B`B|KFh1e;=e!w_dR@$f0=8DlXL?yul4Dp+nu?sv6GuO?F>45My4g2) zi)vFLVP&PM^CXSzS=PDS1@00PF1r3mrx}pNJ~h^OZXzd#!U%lFMnMfSN5KHTp#pzo zz#j?z`ZYWq0XlLkuzuYBK#p0^uw;$^+%)7dwIui@vVO6UoQPq@7(; z0tep6E~NJ&?^0}Zy@7=CdkPEaN&+-GI{J|g=lJd`+$XnCF$h2?|N5X8^?PrCBVXV> zh?zOijlc8^_6ZC-dciO7;3WzgHub+gT9_4`ni;rUa#8aOQ}1Bp7BaSZ{O1yEYDFuw zy%5Ap=Z{r)1q!>ZNe#8_yRKd|hL#iP?baU2it)~ZF_h7Y?T9iV;K~EBsR`H=KQtGh z-13)J#ZwO4`?BvQ{_p<(HJooc>B|9NKSrT%(aajeO*$HBQdb5FLhb}YY7&3wcz!BMbHVCS1^0ia8n_XN3joE@M8PNgT!@cugBZ zlWz0jgCoX$=_1pflZfg{A@AdCNGj%kO%hlNSxhKpvNBe$rfI5qmQ-YQATFs|{((hN ziOEumZ=-cRqMA5YcXHEn7Mo|>vwRcy-pA{E<^96Cipi#f=goKxh!MD-RJT6_u~!MM>50+ zZDdg6!SX`9B=HvCp((N2HoQ&6(7FhIld2LCw%H=ZCv0T)hxSs~ot*=-1R?C+r zrH7zBIhb}-2()fEnD*RHBa~+kZ^=f!!WTG9mplAH=(z-UwO${qs94V=x2v zrq5byOY?zl_#QSRDTJn6#*ImvCf1N{LDLR0v`P6@#y5F)6>XtI$}+8Dvrv5_O+#}qSI#;w#kD#KZrBunU!Cy8bfS)RcK2IW zq=|#9j~89|PB!%WYx3hXxXTQD-wD1wBq-Nh1ozzAo)O zEud@^{Lb6Wh27lnp-3980nF0sag!u=enb{*w?KQ2Hp$9>ytt{6>dh&lW~Q1@fv-LC zB-`c{$n4myn%YY#o~2Y#mYpTlP)eJI&};Z3%#%&FdcwJ}zTeNm zu1%!6Zq23%?PabT)7A44{IAC^JdzhC7KTT4pA0KFPupdMdyPsv>xIS2ur&;s$fhBe zN=8eP1lbKi(Jtv{I&bX-tX+uB=QTg_X4f^%iwiAq5u z{^0xZ4<~)F#{2 z5qW4VNJhV+PGz~N-TJ{STk9C=$pFta3U zLE#~-Rj`%ZBm>Afk%}_!B&Hp*>B8qi;Phbg3;xMg8l|&ev8oQW)Y@x=8NrcH(7oFv zRa>m-TvNt21?#J=lLIf8UyRG?yp=(3EXv0ww6UWzK+&Bn!{MtM*quR&p z$Fo5XSGc!p4%P?!lOI<@>9*Kxno17y5SP=SEK4w#dLIC)<6rMR%-F?gdskac>U~WTqcV60dCa`eBskRTc3p(_484i z*EjAOr0~1$H&f%Gl~IqWszZozWzE?SZs7~euBBI$J4t;)*D-m=(adS*^=;qdXd#Zt zivQz?{^HhMxfdds#SsE?*i`Y#x$j|Tcy;F8ab#`!#7Fm?Q#bVh$o_~$QK^ON4e~{Fa0m8at=?(~ z@9v0piAVqzcaQVdy#+KCqANj{UdON4SpIAUnyy0h_PHv|Y2|j3U^}KkAvoGOM?Zwa zC7L&fiBUA^R;!o#(`+zeIVkDenSERS8)nz?u>J~0COkE zdepOqG+mt6H|!3`_~`EdQDltHCb_s~+N1N@OEMmt^-;X$0^L$_Lnx~Q6gxpCFWI9o zWwv!jdE9fO!P?xE`>Qd(MCYiUFXAA}9OqHsyppzj3g57e;~=FIoQn8I2uZm8-q$Dv zt)QC}22pKI7mdD+jceOu&T!|m9XJF_oo+Nm89{`|yrUgVcO~L0vZGy4T`!myE3C=Z z)>&?hwK~9!bFv*g6^C5BFNw1{{v3#VR!l3Gc-V&ZPG8YUuYIJ~>G*{Wfh%VHBAbT( zMxEa*uvh9cCJ}TICX)ZFNF{&^>Z?*|5Gvod0To;Nj@BQHsx@>1b z(E_k1D71}R!|tBfRTng`$DopQkZ4;e-Dl5PS*v?FM8^usM@EE33Qa_E<=&{-8_{Mf zZhd&wIh0>IhmKSw{fA_Cp8vR)qBp#i``IO?juVd8RRTr6XHIc`DDt+f@wfwjf+Du8 zXP%AKE;~(;Q*xNkCf(VXIFSF^Yj+Q;H5gn%=FT;lK{aRi%v@+|qOu($GhJ^t&&-r5 zXTuz9pW!JnG*?Z>zGZAod26zNjo_0qsSN!7W36cO5vZ{Yt_WTC;HQO*8~50$1xhya z)3Z2=MP0?Z!-OT}$T`j47Fg!A7Ae;Vo#hu-AFnoQXTb24uOuGnc9>9-WaU0lcpuSj zU&{3D@Gp<{+2y04A(@cV!huH{A9v)fstBS7Kr5>@`v)_=CpS{Z(Cih4yyaaxnVb#p zr>rC2#Myv$QEe1Ax#FA%RX$0LgK)Nuv^c-H)062jS~1BcL5=R^8$akQuuOyP1*S)@ z7DMyu*K`XrQKCa8L=%k3HW-M)ZxK^Gf(-JDW92jf9{zLYd4*N~115+=kf5<^4ik)N z_FE9;wn)cPs`tpWEBurw|9C&icKtIh>n7rX?H@dN?&Tt_z9vDExrX2h3H-q7jBv3e ztbutnY@Y7u>IS&CneM6NK5ujiC`g-!I;oIxTbZrFX5&NrWmiSHO}g%QcEQhV^jzD7 zjHx9;(Kz$cToS3!3ru@c&C$VH>aI|2!*H(5q=F$wxU&Lf2WTK(arHK7h`$7^K2^HL z2L9Q|m#4834%y};iSZXOY>U|2InKT=ADEuDpR>n3X;nGKJxpW&4)>{qj8hu9E%bTS z1dWyYylUW98&TL={l$5%Y;}K@)QP^nM#R9QJeK&)2#|K%?No4S#&aefq@L*&K1hZ*^-H+CB#$#+>`D-t zed4sN2yT_9U#h>6LV~RFXK$+uql4d<*A#~_r68ZxM3Udp32-dBw~S0wCzUYdvM&FD z^yjJNUozLBB@Tx;x85~9l)@az^y8!mfbA3{`%b(2bkSkf4N0)7Dv@Yn-(Zwk+36Lo z+1_?&>IK75R2+=+s2m0h>#x}}N2($4R>tY*ZyCkfZjwP#!BCo(-< z2Py6ntKdq&aVOdCa(V~efR=ssxLT=!&aWG>I7+LK>bPYv$ViSq?sz|-aG4Hc{p%0vpE2DPi_(fYaSpz z)iy;`m4u!gwd2i|+J7~2&Ye`lb_?8_qgp8Pn{`fxJ;~r`7;%|A>M*Wj7?g7*71;cQ zKCeE{b=57s1&wgz8Rge+KzzU8xkT5?B%x6<-oKN*w5sbeb9SI^SBQJB|6AfRcK z-n&W{`POZ5NY(%;R7OlGmFT@J7(EC&qGdS_BzQJ?wX&?3x~qlEm0cYBpV09SKdJEZ z=)joD0@XkbB)-SUgN zd7C?R^ST;7MJ3hSJ40~gyC$pWd7q-uyj`c<^Y9A;jlqJ9Z=Bm{;to*~S`$3xw%QQn z2l=c%_!0Na`8S|4g~JI!SBgA$R>e7(ZOqc=$6aZ{Gp;S*xJHuhq)8m)O-C3yggc~Z zaJsDN*spn*MINH_Cj|!8mT%^?l*{qtjf=Nzl`!VEj~$$z>uEg)yijWh zv5h}^ZsF-{nf-4J;Ic6Nj{8H_u5hz}SM*B22WmGrzhalQ(6Sq4e<(jNLS%p{+P;cM zD)h=Quzy4Y#c;C4O~yX}0Yq^?+nj}M1j*I%`x^tQKbUv;o(k60HhNZ|tz~%n9?KOI zp?(Vns&Vs%f)4_6X{mmvA; z1j!u*i|HJHXtM{}7)$pT&92UxU-E70r!nAe5#uWX3&n2^Xj9ceboc)Oui>Qu*)irN z26S9mLKL(XpslcWA}Q++u!Ms&ut@S;*J4DjLKgqGfdAhYkiL8Wdru-)=VDKarLnQG znyzjtVzu1&55}d2AuTOk{Nck;BIjS|Oj(Tgk9kQM9S}X!t^1f+xpGM+xTLIIQar0+ zSGSjnW;&3okHDNQsfr7?C2@>eik;UUva3>?5(N2OxjcqM5gK9ekf^d4BX1}sGK@i9 z_)3T9O;B4Ti5@cSzmJ)XZjI0UlbNxC!oD&yp=VltWcZzzWRrdy=zF`ur1nY1EM58c zuhfd_XkVW}iIV5=5iq`%as10o2@=9tJ}~<78n48BFn1(h=^<8o@fXP8Wdl zxv~kOFBv_%Kc)WKuGI1%^nA-?Mq{s0mysCgx4jlf6s?@aUMJWeY#-hw^Ya1F`ve@h z*s{iA!bd{GlpRJ70~qUWIsV$!={6WdVTs(;ThsyoD4I@MP;|TgXCeX78el~;3n^5xdzZA@hrb=kI#D2ONKT+a7H!ztYV)qFp z>|b@0s2Ch1fDe64jQa;Si9PfI2rh{v#-3OGG78#V05tB155c_Zmr*e+v;apb7YhBg z5dV6vUl=B~ys>PH|L>m4&wjxd{tzY4*S^@D6z9}`>!IXWC|hH^lTSsr#z(gbZvY;= ztSL+v`kGFV{PjTMZ-tzy(;OG(|K+3oV7Cr;2NmRm>okA>WKg6?_j8d7>C5$-(JoU+ zi2Fj!#l+_X05(NT)?AG4CMIw8OHqv*MhcpMb7h~y#@9;gdn6<7B{=ywo65$sH`~-L zkVHwa#;pwIoq(njXJ3ai)TGnUpE6CvD~yVx&WI=kSQk8cvY))r0c<47ymrF%F2+sMs=N>2 zqiR~_H0131FTDYXyF#_2vl9W_>WT5a0$sXfJ5lDfC7|}M20GHgR=*IdeQX$75-+9@ z4ar41)y(+RTQ}^DTo$Km6IDeJ`xfGAU`8j$Dhv&)&Q5oF5w-IXm2y1rq5W}Fs(PTS zhC91PKt0ZF)q*Bo$7eOax5yLQ$eR~AuX-LyYp>9X4|H94%V2YJEYPueT6 z6Gq{++3b_nM&;{;d9myuAoV+DTZmp7Cp{GJmzPikHQ#cs0Nc$sU7VGj0ce`b*o&a? zOo`Cb{?qf5jr{=`wj=#FxlB(pOU(d)J&DVDV(3~95sI?@kF7SUgEcd49Cn76*$&4m zc_%2cWx5Ssl6|~O$%Yd)(9BXdEj?5g%*va>r*@v(?Q{rWc#$OzD>-q;pQL9Ry%Awg zdN$|P8Q$c2Bg?=-mR?YV)N6!mNA z!&*vlO%*(x4VV@+8P#zN_ug#2#_hiS1Lx!>+qBP#^+po_r%wV8v?E{tX29 zO%TwRgopq3hy>s8{a7Ke!>t6B%Nd88E}C^^A>s8W=o+n8w%{|0*@r&93(Y`qfj2Q!o&%lG+#LZ?I`l*A`N=VSx$ z8k^G@x?~&AdosSM`BfP?l23~N3+o!#ZIyS zWMv3Okx#H7tC8N3k(TyS(|&5xt=|99I99XOR54ILE4Qq6E@Y&_P)blv1ArVeiwhKq zsE79He>;4TH8v1!@KmdV|MEScSd3`R?9vwaLTx5>la6h)O*P|&1U09eJy;6yGK*VRX^X+ zKMy=%d-{6xyZzQ&%XvXh6u`Q@YH#dJZ@r!ME7=11VAB&?Z%2bdO{mz zO=U)4XQfi@YWH58?kLQ_tpGb7?UW`x%g8aD0^*3*CvoyVd&Vs3d3}k{)r2AmL&Jik zWUMzEEWu1=-F!#K4b!r0AI_g0-&Jp zW-G0qE-=%#$2(39HSQHW*mWfnKztZn2f&YQO%*;$_5Qy4a)g^+F4bBG~*dh-*X;P5{i=a%itQ-d9p$qga-iktZnsv+%fKs&6uQz^-Y1q z(eJYS>c#XKWEJ+@ie!|8kC(IL0&*?AF}0iy_}~zEi2!$|PnmuVRo0lk4kh$rD~%_} z9alb;P1dRVN^R-Kg-K~4(6q}i?(6!wVSl32RF;7~2ensq$XcNl#*`^w^syO>{Loo6 zHwvp{W2hhsUx$G`A0-}X6JKmbee^tvcDye`43Qbix_#GyY)BWC>wl^Nax@xN;>M5M z+{qS61vd9nECd&S((;OCXvbW|rS>?KLy|{8;PT#=#daAQ5)$PpJA7RH-deBIk~y25 zQrU^uxk-jo5GI?sv|9KSK+lEGRWpxXoIb+zx5xx&IJQQajMg`W?U`Nl#`FwKa)$0S zOdX0~ZY}7%5=eO`Gr@c!)?c42jmc>ZOsyC&v}W_>?Bqb9nqL?aPzqq0iLBlXG4a0~ z#vW#-p*ihD;vD@-?DG%0PFl;ydT{=oVR1<2-hd-V-kgNnPj()JdfjYxbAle=*2{)W zz$|((pQ2q#SuG3vdE5P;#uU0yFc&}0;B!SLyC?ufi)@`N6qEszFD#k?2;r3gZL&z& zyIMei@a#aC=c1YXrd;T6_^o2)Sb+V2jD8hr{WIhffT%ms=u({CTLX+5x6i4YZ=8_x z^`S%XcX=PpQp)XJDw%IrJ3&Q&9jU0EOiwMME(t2(bFV`n6wOxP3i3Hg*DFS_r!f2h9ru zR+R^VTIYW<^+IZP+v$&t#Vw4^G@z5A7|xSlP=}v58bD}P0KSYaQ8jN+<=SvgF77{z z0~Jw_dH-<&m!%rbh(SM$MDgTRb>W(K<=@qDy8F&zt}N2(ygT2!=t@zNpZ(IGQu-ZW zwoOcRw4tMcFDE1rSuVeWEehKBZ8JEmsvA&F{8i19Fy}`-&gX26-p}#2m?;#qj!xX5 z*C4MlO8V&-h-zP=QC+4n-iJxt)>^YtNy0%qrakv&SohXOd())B;9sUd{|q&J?*qV? zovat!ePVLRoI64J2;!S%(X`s3uIUVxSw1L{24K)ujgw+ter|aX)&4$tX3;+e?B)B zTO3^l=S{wXZ>34MtftCwb;ze@h&0CIMWuOqdTr?dZ^posPb!G|%4>hyEK@VXnIB}b zz?AbBXm>Y`$bG_3F4br*wUnRvHiDFpxn2Z_*=UZR`421Wd`usHk zMrik`Go}2&?a>yt9-Czig5}1)`!{=m`5W`VLJqKCUsohPS!vsPc&Qo6CZtw;FaPG~ zZ?Aoh!)ex+K8wXuCT)4@XqjGEtl91Cge%I0hWUrx!j0M@PDGwjn?a=G>bGqrx@;rf zkvZ_GOtVy)`|cRe&m`;jy@AI8s}G&yYK?|%7pUJ|pzGg^<@NylB?YK{3mqL?-u$)7|NbBVpia!|f5+#4-f>k2s6A4m zD#iZP8EOEPe75n4_A1R!07~xxD*ItxUj9Ex(XfFL_+v!=>5k5< z0OZ=!K7RkoIsy|-K#!*YJ*oxj_#}SU(ry6A2V5IelX(BCs0*8@0c37oz-2M??GgvX zBj+wwjePH*ZsCk?&MjovdLxO)HkHeAqzeG8toYo1?}fid2J{WIj}a}9?bf|MUg`ZY z*SIsbN-d!nD-VFR3;@4T1Eki&6R6M^e_FjlT-h`sI0=iEk@aMC$+4tzaRMMI;>eBu zAfeAFvBr-3PdoSp3ZSB5=3gS0+#LB(4r*9yyt2g|zk+*D>+{jB&c$0v(Bpe84n%_m zE0?$;mhk8u@b579caXYtQl|up%uum^Hv0b}?LVf}NN6g~gv!h%F0>|e;!zi;_A4OrjpN_hTN%86Q$0BFO>yvzHC zEl4d4*vx`yy^`hCIZda&$;2w>WbZ%lqr|0Cl5 znjybaA^`77Lr9if-SB??mx@G!?r$RhG>Kp1JYoQLr|@LB)?fbY-xpxs2Mm}x@m;__ zm*LlPZ-asT;!{mtCHW7(^Q#T#5{VGue0c3D%#8gb57>jJRy-Devh!C!o4=XlO|(DQ zlmg%mj>c_<$gZ~0V*_oN{bBbo{$O4Iw}Aia7cl2Y6VWm1(d>`O?TXY%683G3iHTA5 zK`;K3eZBmTuk7+8Q!T@hxRrb`D+V zT8KA2R;I=?p}(%(bPRti@dw@x2LgIb&?35BL1bko?Yc0SuKx$0n%;*=gs#N=h)Sjz zE05Db&~>4+4g8+(>O+nHaou*sa(>)1o0n;$K z=+_WDr&QG|#4(&Y8 zkCwnTK7fkXrJURV+ZbBm5q`>c1Bi zGh}P7cfmeW{PnD8=Ihx((m0ikZrgn{Ps9srrk8&5WDA$+d; zC*(XfI)TGODO-U2o13B&kknf)rMadSFr{@ME>6-Ye5dTsj|2~<=GXQC`sHXe;dB&0 zq9*|szfTshvzc=r%78*p=baNlvw{31igdvDn1f=r!J ztLN#N6S#E?coBH_p7ycjdEhlHkN`e7 zk|m*Vx+2i+zuOl?31m;w!)6PiaO!27k9k;RmHB@7@>~{*26%7<^aH~MyeT6d`eQca zO&_i5*v{nfN<>jvBh(V&(wAh|su5{j-S3T#&?T*P2Uw4@Y2v;*C%C8e!R#IWO$O>J02Dq# z8OAI1oT85ljxId~c#{48HmVbSMJb+hFpv5*ylkJswN%oM;)ExNKCzn>{R%=W=)y_X zumZtl7%`>eZhtQIWJgi)-00wT$Lk4?wUW!D2ru@+C?`Ld&&Lf`6o{`4m%k93d=W%( zx(kp>y{;50)v9`N)~bsUXAgK-hX4if!crLk`%W(cy5H@xy_u;xM{l)}OO7m@j0@@} zjCaR(EF);bku^TQ^gUCp;nN<>^u`Nh{TTPIIH~}z*P_=k>}6`i7Qh&VBeXjo71b;% z{dPRRv$1ccsIa{pi-x9|CnuiSnuBU4p`FFL=5@HTb<TU4##3wZ@#f$AFz8j?jcY@&1DrD8ua0bIoqvv67^AMs%Pl7o zEd!BMZSpBCElr+ z)HhcI;;vW4;4&5@yCUn(S)FlGOX?OAT{`*c@!f(b%a z#gTLo^t39cH;%CH$7|NUaYs4Dr9fddF4ObqumJ$ug$zp$Qaz6mUoTvDN zf>G9vP3Y(cAviXIk~r+T1nPV71pwqbh!RVG#7u}+`pP_*GEU2aVaA!g%d#$eIy83O z6Ns!nYP}Gb>!DvMn;h<{sxquT$VZ0Yurlz=pymzgxFqBT4rIFT;FQHQbL+?hKIq-g%DrFog9-tG5@bil!7HEG{` z|C=lQxP(2#@oMb~I}`cf#TmF}%&BXwQ4Y8av6Z!7dxSn4kJK75YR~4f>E2ErSW~W9 zFEfp=a=y!pcfOLikekbrqNdTzwgadczCvGrmKKJYGp58E5eBZPy6XVEC?J^h8R;=z zzTq5@Zh3eQh^##ekC%3Sq*CBqly+GVw+Hd{1CuUixp z4vyvG#-r(}qb(YUV-HuKX3=~^0y#=rF>4S7pHn$0ycWD_aj=x;n~0{?9&&nHQzDOn zP!3>B<7(}50ns@0e{j@agI4^8#+oU56!(cO4$!oV^Nbr4u_Pk=6_KVHCz_m{9tbs) z1{dddj0aN+g90pBM1>BdQ-|)GP26!7pL1;p>|);8SY?~#Mne-Q-GAH?W@Db$Q`u?) zQlSCY?`u_Ul+~e~D#~^ecV%a4fjJL>;TFDX9@*0gczMY&duU}Wm-@7Glru8lajz)F zeQPe8dl!lHV$o6OKLZZQjZM4F;2;!=FLqb#IKB3HDv~yJ}ndMksDQEekWhJ)D?0P!C_hLavDq6h#V;Ebq)s`fKJ9icWkqjgp8;;yPgcfQS;yMC11_-aysT3s!n5JDBDK z-;34rabH_$^@lyaL z>q6QId)9*Vob-3bL}gOVk|O!p;NF|;2Os^&YbzA6ZoeZEo_;uD$#;vFFHa3Bov#oF-S*mvi1Oq*n84v$tI4)N+-m6Qg!U_L` zszyc#TXc+L(OOR)(wnZnemVuYp9Om3uh1^-$ip3lrm7C%qr`5tEZZ#)8 + +## 🌟 Wichtige Funktionen + +:::info[Core Fähigkeiten] +Die API stellt bereit: + +- **GraphQL-Schnittstelle**: Moderne, flexible API mit starker Typisierung +- **Authentifizierung**: Verschiedene Methoden inklusive API-Schlüssel, Sitzungs-Cookies und SSO/OIDC +- **Umfassende Abdeckung**: Zugriff auf Systeminformationen, Array-Verwaltung und Docker-Operationen +- **Entwicklerwerkzeuge**: Eingebauter GraphQL-Sandbox, konfigurierbar über Webschnittstelle oder CLI +- **Rollenbasierte Zugänge**: Granulare Berechtigungskontrolle +- **Web-Management**: API-Schlüssel und Einstellungen über die Webschnittstelle verwalten +::: + +## 🚀 Loslegen + + + + + + + + + + + +Für detaillierte Nutzungsanweisungen siehe die [CLI-Befehle](./cli) Referenz. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx b/i18n/de/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx new file mode 100644 index 0000000000..58a981f4b8 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx @@ -0,0 +1,415 @@ +--- +title: OIDC-Anbieter-Einrichtung +description: Konfigurieren Sie OIDC (OpenID Connect)-Anbieter für die SSO-Authentifizierung in der Unraid-API +sidebar_position: 3 +--- + +# OIDC-Anbieter-Einrichtung + +:::info[What Was ist OIDC?] +OpenID Connect (OIDC) ist ein Authentifizierungsprotokoll, das es Benutzern ermöglicht, sich mit ihren bestehenden Konten von Anbietern wie Google, Microsoft oder Ihrem Unternehmensidentitätsanbieter anzumelden. Es ermöglicht Single Sign-On (SSO) für eine nahtlose und sichere Authentifizierung. +::: + +Diese Anleitung führt Sie durch die Konfiguration von OIDC (OpenID Connect)-Anbietern für die SSO-Authentifizierung in der Unraid-API über die Weboberfläche. + +## 🚀 Schnellstart + +
+ Zu den OIDC-Einstellungen gelangen + + 1. Navigieren Sie zur Weboberfläche Ihres Unraid-Servers + 2. Gehen Sie zu **Einstellungen** → **Verwaltungszugriff** → **API** → **OIDC** + 3. Sie sehen Registerkarten für verschiedene Anbieter - klicken Sie auf die **+**-Schaltfläche, um einen neuen Anbieter hinzuzufügen +
+ +### Überblick über die OIDC-Anbieteroberfläche + +![Login-Seite mit SSO-Optionen](/img/api/sso-with-options.png) +*Login-Seite zeigt traditionelles Login-Formular mit SSO-Optionen - "Mit Unraid.net anmelden" und "Mit Google anmelden" Schaltflächen* + +Die Oberfläche umfasst: + +- **Anbieter-Registerkarten**: Jeder konfigurierte Anbieter (Unraid.net, Google usw.) erscheint als Registerkarte. +- **Anbieter hinzufügen Schaltfläche**: Klicken Sie auf die **+** Schaltfläche, um neue Anbieter hinzuzufügen +- **Autorisierungsmodus Dropdown**: Umschalten zwischen "einfachen" und "erweiterten" Modi +- **Einfache Autorisierungssektion**: Konfigurieren Sie erlaubte E-Mail-Domains und spezifische Adressen +- **Element hinzufügen Schaltflächen**: Klicken Sie, um mehrere Autorisierungsregeln hinzuzufügen + +## Autorisierungsmodi verstehen + +Die Oberfläche bietet zwei Autorisierungsmodi: + +### Einfacher Modus (Empfohlen) + +Der einfache Modus ist der einfachste Weg, die Autorisierung zu konfigurieren. Sie können: + +- Spezielle E-Mail-Domains zulassen (z.B. @company.com) +- Spezielle E-Mail-Adressen zulassen +- Festlegen, wer mit minimalem Setup auf Ihren Unraid-Server zugreifen kann + +**Wann sollte der einfache Modus verwendet werden:** + +- Sie möchten alle Benutzer von Ihrer Unternehmensdomain zulassen +- Sie haben eine kleine Liste spezifischer Benutzer +- Sie sind neu in der OIDC-Konfiguration + +
+ Erweiterter Modus + + Der erweiterte Modus bietet granulare Kontrolle mit regelbasierten Ansprüchen. + + - Komplexe Autorisierungsregeln basierend auf JWT-Ansprüchen erstellen + - Operatoren wie gleich, enthält, endetMit, beginntMit verwenden + - Mehrere Bedingungen mit ODER/UND Logik kombinieren + - Wählen, ob IRGENDEINE Regel bestehen muss (ODER-Modus) oder ALLE Regeln bestehen müssen (UND-Modus) + + **Wann sollte der erweiterte Modus verwendet werden:** + + - Sie müssen Gruppenmitgliedschaften überprüfen + - Mehrfache Ansprüche verifizieren wollen (z.B. E-Mail-Domain UND verifizierter Status) + - Sie haben komplexe Autorisierungsanforderungen + - Benötigen eine feingranulare Kontrolle darüber, wie Regeln bewertet werden +
+ +## Autorisierungsregeln + +![Konfiguration von Autorisierungsregeln](/img/api/advanced-rules.png) +*Erweiterte Autorisierungsregeln zeigen die JWT-Anspruchskonfiguration mit E-Mail endetMit-Operator für domänenbasierten Zugriffskontrolle* + +### Beispiele für den einfachen Modus + +#### Unternehmensdomain zulassen + +Im einfachen Autorisierungsmodus: + +- **Erlaubte E-Mail-Domains**: Geben Sie `company.com` ein +- Dies erlaubt jedem mit einer @company.com-E-Mail + +#### Spezielle Benutzer zulassen + +- **Spezifische E-Mail-Adressen**: Einzelne E-Mails hinzufügen +- Klicken Sie auf **Element hinzufügen**, um mehrere Adressen hinzuzufügen + +
+ Beispiele für den erweiterten Modus + + #### Autorisierungsregelmodus + + Wenn mehrere Regeln verwendet werden, können Sie wählen, wie sie bewertet werden: + + - **ODER-Modus** (Standard): Benutzer wird autorisiert, wenn IRGENDEINE Regel besteht + - **UND-Modus**: Benutzer wird nur autorisiert, wenn ALLE Regeln bestehen + + #### E-Mail-Domain mit Verifizierung (UND-Modus) + + Um sowohl E-Mail-Domain als auch Verifizierung zu verlangen: + + 1. Setzen Sie **Autorisierungsregelmodus** auf `UND` + 2. Zwei Regeln hinzufügen: + - Regel 1: + - **Anspruch**: `email` + - **Operator**: `endsWith` + - **Wert**: `@company.com` + - Regel 2: + - **Anspruch**: `email_verified` + - **Operator**: `equals` + - **Wert**: `true` + + Dies stellt sicher, dass Benutzer sowohl über eine Unternehmens-E-Mail als auch eine verifizierte E-Mail-Adresse verfügen müssen. + + #### Gruppenbasierter Zugriff (ODER-Modus) + + Um den Zugriff auf mehrere Gruppen zu erlauben: + + 1. Setzen Sie **Autorisierungsregelmodus** auf `ODER` (Standard) + 2. Fügen Sie Regeln für jede Gruppe hinzu: + - **Anspruch**: `groups` + - **Operator**: `contains` + - **Wert**: `admins` + Oder eine andere Regel hinzufügen: + - **Anspruch**: `groups` + - **Operator**: `contains` + - **Wert**: `developers` + + Benutzer in der `admins` ODER `developers` Gruppe werden autorisiert. + + #### Mehrere Domains + + - **Anspruch**: `email` + - **Operator**: `endsWith` + - **Werte**: Mehrere Domains hinzufügen (z.B. `company.com`, `subsidiary.com`) + + #### Komplexe Autorisierung (UND-Modus) + + Für strenge Sicherheit, die mehrere Bedingungen erfordert: + + 1. Setzen Sie **Autorisierungsregelmodus** auf `UND` + 2. Fügen Sie mehrere Regeln hinzu, die ALLE bestehen müssen: + - E-Mail muss von der Unternehmensdomain stammen + - E-Mail muss verifiziert sein + - Benutzer muss in einer spezifischen Gruppe sein + - Konto muss 2FA aktiviert haben (wenn Anspruch verfügbar) +
+ +
+ Details zur Konfigurationsoberfläche + + ### Anbieter-Registerkarten + + - Jeder konfigurierte Anbieter erscheint als Registerkarte oben + - Klicken Sie auf eine Registerkarte, um zwischen Anbieter-Konfigurationen zu wechseln + - Mit der **+** Schaltfläche rechts wird ein neuer Anbieter hinzugefügt + + ### Autorisierungsmodus Dropdown + + - **einfach**: Am besten für E-Mail-basierte Autorisierung (empfohlen für die meisten Benutzer) + - **erweitert**: Für komplexe, anspruchsbasierte Regeln mit JWT-Ansprüchen + + ### Einfache Autorisierungsfelder + + Wenn der "einfache" Modus ausgewählt ist, sehen Sie: + + - **Erlaubte E-Mail-Domains**: Geben Sie Domains ohne @ ein (z.B. `company.com`) + - Hilfstext: "Benutzer mit E-Mails, die in diesen Domains enden, können sich einloggen" + - **Spezifische E-Mail-Adressen**: Fügen Sie einzelne E-Mail-Adressen hinzu + - Hilfstext: "Nur diese exakten E-Mail-Adressen können sich einloggen" + - **Element hinzufügen**-Schaltflächen, um mehrere Einträge hinzuzufügen + + ### Erweiterte Autorisierungsfelder + + Wenn der "erweiterte" Modus ausgewählt ist, sehen Sie: + + - **Autorisierungsregelmodus**: Wählen `ODER` (jede Regel besteht) oder `UND` (alle Regeln müssen bestehen) + - **Autorisierungsregeln**: Fügen Sie mehrere anspruchsbasierte Regeln hinzu + - **Für jede Regel**: + - **Anspruch**: Der JWT-Anspruch, der überprüft werden soll + - **Operator**: Wie verglichen werden soll (equals, contains, endsWith, startsWith) + - **Wert**: Gegen was abgeglichen werden soll + + ### Zusätzliche Schnittstellenelemente + + - **Entwickler-Sandbox aktivieren**: Umschalten, um die GraphQL-Sandbox unter `/graphql` zu aktivieren + - Die Schnittstelle verwendet ein dunkles Thema für bessere Sichtbarkeit + - Feldvalidierungsanzeigen helfen, die korrekte Konfiguration sicherzustellen +
+ +### Erforderliche Redirect-URI + +:::caution[Important Konfiguration] +Alle Anbieter müssen mit diesem genauen Redirect-URI-Format konfiguriert werden: +::: + +```bash +http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback +``` + +:::tip +Ersetzen Sie `YOUR_UNRAID_IP` durch Ihre tatsächliche Server-IP-Adresse (z.B. `192.168.1.100` oder `tower.local`). +::: + +### Format der Herausgeber-URL + +Das Feld **Herausgeber-URL** akzeptiert beide Formate, aber **Basis-URL wird für die Sicherheit dringend empfohlen**: + +- **Basis-URL** (empfohlen): `https://accounts.google.com` +- **Volle Entdeckungs-URL**: `https://accounts.google.com/.well-known/openid-configuration` + +**⚠️ Sicherheitshinweis**: Verwenden Sie immer das Basis-URL-Format, wenn möglich. Das System fügt automatisch `/.well-known/openid-configuration` zur OIDC-Erkennung hinzu. Die direkte Verwendung der vollständigen Erkennungs-URL deaktiviert wichtige Überprüfungen des Ausstellungsortes und wird von der OpenID Connect-Spezifikation nicht empfohlen. + +**Beispiele für korrekte Basis-URLs:** + +- Google: `https://accounts.google.com` +- Microsoft/Azure: `https://login.microsoftonline.com/IHR_TENANT_ID/v2.0` +- Keycloak: `https://keycloak.example.com/realms/IHR_REALM` +- Authelia: `https://auth.ihredomain.com` + +## ✅ Konfiguration testen + +![Login-Seite mit SSO-Schaltflächen](/img/api/sso-with-options.png) +*Unraid-Login-Seite, die sowohl die traditionelle Benutzername/Passwort-Authentifizierung als auch SSO-Optionen mit angepassten Anbieterschaltflächen anzeigt* + +1. Speichern Sie Ihre Anbieter-Konfiguration +2. Melden Sie sich ab (falls angemeldet) +3. Navigieren Sie zur Anmeldeseite +4. Ihre konfigurierte Anbieterschaltfläche sollte angezeigt werden +5. Klicken Sie, um den Anmeldevorgang zu testen + +## 🔧 Fehlerbehebung + +### Häufige Probleme + +#### Fehler "Anbieter nicht gefunden" + +- Stellen Sie sicher, dass die Herausgeber-URL korrekt ist +- Überprüfen Sie, ob der Anbieter die OIDC-Erkennung unterstützt (/.well-known/openid-configuration) + +#### "Autorisierung fehlgeschlagen" + +- Im einfachen Modus: Überprüfen, ob E-Mail-Domains korrekt eingegeben sind (ohne @) +- Im erweiterten Modus: + - Überprüfen Sie, ob Anspruchsnamen exakt dem entsprechen, was Ihr Anbieter sendet + - Prüfen, ob der Autorisierungsregelmodus korrekt eingestellt ist (ODER vs UND) + - Stellen Sie sicher, dass alle erforderlichen Ansprüche im Token vorhanden sind +- Aktivieren Sie das Debug-Logging, um tatsächliche Ansprüche und Regelbewertungen anzuzeigen + +#### "Ungültige Redirect-URI" + +- Stellen Sie sicher, dass die Redirect-URI in Ihrem Anbieter exakt übereinstimmt +- Geben Sie den korrekten Port an, wenn eine nicht standardmäßige Konfiguration verwendet wird +- Überprüfen Sie, ob das Protokoll der Redirect-URI mit der Konfiguration Ihres Servers (HTTP oder HTTPS) übereinstimmt + +#### Anmeldeschaltfläche nicht sichtbar + +- Überprüfen Sie, ob mindestens eine Autorisierungsregel konfiguriert ist +- Stellen Sie sicher, dass der Anbieter aktiviert/gespeichert ist + +### Debug-Modus + +Um Probleme zu beheben: + +1. Aktivieren Sie das Debug-Logging: + +```bash +LOG_LEVEL=debug unraid-api start --debug +``` + +2. Protokolle überprüfen auf: + +- Erhaltene Ansprüche vom Anbieter +- Berechtigungsrichtlinienbewertung +- Token-Validierungsfehler + +## 🔐 Sicherheits-Best-Practices + +1. **Einfache Methode für die Autorisierung verwenden** - Verhindert zu einladende Konfigurationen und reduziert Fehlkonfigurationsrisiken +2. **Sei spezifisch bei der Autorisierung** - Verwende keine allzu breiten Regeln +3. **Geheimnisse regelmäßig rotieren** - Aktualisiere die Client-Geheimnisse regelmäßig +4. **Gründlich testen** - Verifizieren, dass nur beabsichtigte Benutzer Zugang haben + +## 💡 Brauchst du Hilfe? + +- Überprüfen Sie die OIDC-Dokumentation des Anbieters +- Überprüfen Sie die Unraid-API-Protokolle auf detaillierte Fehlermeldungen +- Stellen Sie sicher, dass Ihr Anbieter den OIDC-Standard unterstützt. +- Überprüfen Sie die Netzwerkverbindung zwischen Unraid und dem Anbieter + +## 🏢 Anbieter-spezifische Einrichtung + +### Unraid.net Anbieter + +Der Unraid.net-Anbieter ist vorinstalliert und vorkonfiguriert. Sie müssen nur Autorisierungsregeln in der Oberfläche konfigurieren. + +**Konfiguration:** + +- **Issuer URL**: Vorkonfiguriert (eingebauter Anbieter) +- **Client-ID/Secret**: Vorkonfiguriert (eingebauter Anbieter) +- **Redirect-URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +:::tip[Redirect URI-Protokoll] +**Passen Sie das Protokoll an Ihre Serverkonfiguration an:** Verwenden Sie `http://`, wenn Sie auf Ihren Unraid-Server ohne SSL/TLS zugreifen (typisch für den Zugriff im lokalen Netzwerk). Verwenden Sie `https://`, wenn Sie SSL/TLS auf Ihrem Server konfiguriert haben. Einige OIDC-Anbieter (wie Google) erfordern HTTPS und akzeptieren keine HTTP-Redirect-URIs. +::: + +Konfigurieren Sie Berechtigungsrichtlinien mit einfacher Methode (erlaubte E-Mail-Domains/Adressen) oder erweiterter Methode für komplexe Anforderungen. + +### Google + +
+ 📋 Einrichtungs-Schritte + + Richten Sie OAuth 2.0-Anmeldedaten in der [Google Cloud Console](https://console.cloud.google.com/) ein: + + 1. Gehen Sie zu **APIs & Dienste** → **Anmeldedaten** + 2. Klicken Sie auf **Anmeldedaten erstellen** → **OAuth Client-ID** + 3. Wählen Sie **Webanwendung** als Anwendungstyp aus + 4. Fügen Sie Ihre Redirect-URI zu **Autorisierte Redirect-URIs** hinzu + 5. Konfigurieren Sie den OAuth-Zustimmungsbildschirm, wenn Sie dazu aufgefordert werden +
+ +**Konfiguration:** + +- **Issuer URL**: `https://accounts.google.com` +- **Client-ID/Secret**: Von Ihren OAuth 2.0-Client-Anmeldedaten +- **Erforderliche Scopes**: `openid`, `profile`, `email` +- **Redirect-URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +:::warning[Google Domain-Anforderungen] +**Google erfordert gültige Domainnamen für OAuth Redirect-URIs.** Lokale IP-Adressen und `.local` Domains werden nicht akzeptiert. Um Google OAuth mit Ihrem Unraid-Server zu verwenden, benötigen Sie: + +- **Option 1: Reverse Proxy** - Richten Sie einen Reverse Proxy (wie NGINX Proxy Manager oder Traefik) mit einem gültigen Domainnamen ein, der auf Ihre Unraid-API zeigt +- **Option 2: Tailscale** - Verwenden Sie Tailscale, um eine gültige `*.ts.net` Domain zu erhalten, die Google akzeptiert +- **Option 3: Dynamisches DNS** - Verwenden Sie einen DDNS-Dienst, um einen öffentlichen Domainnamen für Ihren Server zu erhalten + +Vergessen Sie nicht, Ihre Redirect-URI sowohl in der Google Cloud Console als auch in Ihrer Unraid OIDC-Konfiguration zu aktualisieren, um die gültige Domain zu verwenden. +::: + +Für Google Workspace-Domains verwenden Sie die erweiterte Methode mit dem `hd`-Anspruch, um den Zugang auf die Domain Ihrer Organisation zu beschränken. + +### Authelia + +Konfigurieren Sie den OIDC-Client in Ihrer Authelia `configuration.yml` mit der Client-ID `unraid-api` und generieren Sie ein gehashtes Geheimnis mit dem Authelia-Befehl hash-password. + +**Konfiguration:** + +- **Issuer URL**: `https://auth.yourdomain.com` +- **Client-ID**: `unraid-api` (oder wie in Authelia konfiguriert) +- **Client-Secret**: Ihr ungehashtes Geheimnis +- **Erforderliche Scopes**: `openid`, `profile`, `email`, `groups` +- **Redirect-URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Verwenden Sie die erweiterte Methode mit dem `groups`-Anspruch für eine gruppenbasierte Autorisierung. + +### Microsoft/Azure AD + +Registrieren Sie eine neue App im [Azure Portal](https://portal.azure.com/) unter Azure Active Directory → App-Registrierungen. Notieren Sie sich die Anwendungs-ID, erstellen Sie ein Client-Geheimnis und notieren Sie sich Ihre Mandanten-ID. + +**Konfiguration:** + +- **Issuer URL**: `https://login.microsoftonline.com/YOUR_TENANT_ID/v2.0` +- **Client-ID**: Ihre Anwendungs-(Client)ID +- **Client-Secret**: Generiertes Client-Geheimnis +- **Erforderliche Scopes**: `openid`, `profile`, `email` +- **Redirect-URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Berechtigungsrichtlinien können in der Schnittstelle mit E-Mail-Domains oder erweiterten Ansprüchen konfiguriert werden. + +### Keycloak + +Erstellen Sie einen neuen vertraulichen Client in der Keycloak-Admin-Konsole mit dem `openid-connect`-Protokoll und kopieren Sie das Client-Geheimnis aus dem Anmeldedaten-Tab. + +**Konfiguration:** + +- **Issuer URL**: `https://keycloak.example.com/realms/YOUR_REALM` +- **Client-ID**: `unraid-api` (oder wie in Keycloak konfiguriert) +- **Client-Secret**: Aus dem Credentials-Tab von Keycloak +- **Erforderliche Scopes**: `openid`, `profile`, `email` +- **Redirect-URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Für rollenbasierte Autorisierung verwenden Sie die erweiterte Methode mit dem `realm_access.roles`- oder `resource_access`-Anspruch. + +### Authentik + +Erstellen Sie einen neuen OAuth2/OpenID-Anbieter in Authentik und erstellen Sie eine Anwendung, die mit dem Anbieter verknüpft ist. + +**Konfiguration:** + +- **Issuer URL**: `https://authentik.example.com/application/o//` +- **Client-ID**: Aus der Authentik-Anbieter-Konfiguration +- **Client-Secret**: Aus der Authentik-Anbieter-Konfiguration +- **Erforderliche Scopes**: `openid`, `profile`, `email` +- **Redirect-URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Berechtigungsrichtlinien können in der Schnittstelle konfiguriert werden. + +### Okta + +Erstellen Sie eine neue OIDC-Webanwendung in der Okta-Admin-Konsole und weisen Sie entsprechende Benutzer oder Gruppen zu. + +**Konfiguration:** + +- **Issuer URL**: `https://YOUR_DOMAIN.okta.com` +- **Client-ID**: Aus der Okta-Anwendungskonfiguration +- **Client-Secret**: Aus der Okta-Anwendungskonfiguration +- **Erforderliche Scopes**: `openid`, `profile`, `email` +- **Redirect-URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Berechtigungsrichtlinien können in der Schnittstelle mit E-Mail-Domains oder erweiterten Ansprüchen konfiguriert werden. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx b/i18n/de/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx new file mode 100644 index 0000000000..3930b25e14 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx @@ -0,0 +1,5 @@ +1. Installiere das Unraid Connect Plugin aus den Community Apps +2. Kein Unraid Connect Login erforderlich für lokalen API-Zugriff +3. Plugin-Einstellungen konfigurieren +4. Aktiviere die GraphQL-Sandbox +5. Beginne die API zu erkunden! diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx b/i18n/de/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx new file mode 100644 index 0000000000..1cadc66e6b --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx @@ -0,0 +1,5 @@ +1. Die API ist bereits installiert und läuft +2. Zugriffseinstellungen unter **Einstellungen** → **Managementzugang** → **API** +3. Aktiviere die GraphQL-Sandbox für die Entwicklung +4. Erstelle deinen ersten API-Schlüssel +5. Beginne mit GraphQL-Abfragen! diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx b/i18n/de/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx new file mode 100644 index 0000000000..356fc9e47f --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx @@ -0,0 +1,12 @@ +Sie können auch die CLI verwenden, um einen API-Schlüssel zu erstellen: + +```bash +unraid-api apikey --create +``` + +Folgen Sie den Eingabeaufforderungen, um einzustellen: + +- Name +- Beschreibung +- Rollen +- Berechtigungen diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx b/i18n/de/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx new file mode 100644 index 0000000000..a59ff87a99 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx @@ -0,0 +1,6 @@ +Navigieren Sie in Ihrer Unraid-Weboberfläche zu **Einstellungen** → **Verwaltungszugriff** → **API-Schlüssel**, um: + +- bestehende API-Schlüssel anzuzeigen +- neue API-Schlüssel zu erstellen +- Berechtigungen und Rollen zu verwalten +- Schlüssel zu widerrufen oder neu zu generieren diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx b/i18n/de/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx new file mode 100644 index 0000000000..c5c023df78 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx @@ -0,0 +1,250 @@ +--- +title: Programmgesteuerte API-Schlüsselverwaltung +description: Erstellen, verwenden und löschen Sie API-Schlüssel programmgesteuert für automatisierte Workflows +sidebar_position: 4 +--- + +# Programmgesteuerte API-Schlüsselverwaltung + +Diese Anleitung erklärt, wie man API-Schlüssel mit der Unraid API CLI programmgesteuert erstellt, verwendet und löscht, um automatisierte Workflows und Skripte zu ermöglichen. + +## Übersicht + +Der Befehl `unraid-api apikey` unterstützt sowohl interaktive als auch nicht-interaktive Modi und eignet sich für: + +- Automatisierte Bereitstellungsskripte +- CI/CD-Pipelines +- Temporäre Zugangsbereitstellung +- Infrastruktur-als-Code-Workflows + +:::tip[Quick Start] +Springen Sie zum [kompletten Workflow-Beispiel](#complete-workflow-example), um alles in Aktion zu sehen. +::: + +## Programmatische Erstellung von API-Schlüsseln + +### Grundlegende Erstellung mit JSON-Ausgabe + +Verwenden Sie das `--json`-Flag, um maschinenlesbare Ausgabe zu erhalten: + +```bash +unraid-api apikey --create --name "workflow key" --roles ADMIN --json +``` + +**Ausgabe:** + +```json +{ + "key": "your-generated-api-key-here", + "name": "workflow key", + "id": "generated-uuid" +} +``` + +### Erweiterte Erstellung mit Berechtigungen + +```bash +unraid-api apikey --create \ + --name "limited access key" \ + --permissions "DOCKER:READ_ANY,ARRAY:READ_ANY" \ + --description "Read-only access for monitoring" \ + --json +``` + +### Umgang mit bestehenden Schlüsseln + +Verwenden Sie `--overwrite`, wenn ein Schlüssel mit demselben Namen existiert: + +```bash +unraid-api apikey --create --name "existing key" --roles ADMIN --overwrite --json +``` + +:::warning[Key Ersatz] +Das `--overwrite`-Flag wird den vorhandenen Schlüssel dauerhaft ersetzen. Der alte Schlüssel wird sofort ungültig. +::: + +## Programmatisches Löschen von API-Schlüsseln + +### Nicht-interaktive Löschung + +Löschen Sie einen Schlüssel nach Namen ohne Aufforderungen: + +```bash +unraid-api apikey --delete --name "workflow key" +``` + +**Ausgabe:** + +``` +Successfully deleted 1 API key +``` + +### JSON-Ausgabe für das Löschen + +Verwenden Sie das `--json`-Flag für maschinenlesbare Löschbestätigung: + +```bash +unraid-api apikey --delete --name "workflow key" --json +``` + +**Erfolgs-Ausgabe:** + +```json +{ + "deleted": 1, + "keys": [ + { + "id": "generated-uuid", + "name": "workflow key" + } + ] +} +``` + +**Fehlerausgabe:** + +```json +{ + "deleted": 0, + "error": "No API key found with name: nonexistent key" +} +``` + +### Fehlerbehandlung + +Wenn der angegebene Schlüssel nicht existiert: + +```bash +unraid-api apikey --delete --name "nonexistent key" +# Output: No API keys found to delete +``` + +**JSON Fehlerausgabe:** + +```json +{ + "deleted": 0, + "message": "No API keys found to delete" +} +``` + +## Komplettes Workflow-Beispiel + +Hier ist ein vollständiges Beispiel zur Bereitstellung von temporärem Zugriff: + +```bash +#!/bin/bash +set -e + +# 1. Create temporary API key +echo "Creating temporary API key..." +KEY_DATA=$(unraid-api apikey --create \ + --name "temp deployment key" \ + --roles ADMIN \ + --description "Temporary key for deployment $(date)" \ + --json) + +# 2. Extract the API key +API_KEY=$(echo "$KEY_DATA" | jq -r '.key') +echo "API key created successfully" + +# 3. Use the key for operations +echo "Configuring services..." +curl -H "Authorization: Bearer $API_KEY" \ + -H "Content-Type: application/json" \ + -d '{"provider": "azure", "clientId": "your-client-id"}' \ + http://localhost:3001/graphql + +# 4. Clean up (always runs, even on error) +trap 'echo "Cleaning up..."; unraid-api apikey --delete --name "temp deployment key"' EXIT + +echo "Deployment completed successfully" +``` + +## Befehlsübersicht + +### Befehlserstellungsoptionen + +| Kennzeichnung | Beschreibung | Beispiel | +| ----------------------- | -------------------------------- | --------------------------------- | +| `--name ` | Schlüsselname (erforderlich) | `--name "mein Schlüssel"` | +| `--roles ` | Komma-getrennte Rollen | `--roles ADMIN,VIEWER` | +| `--permissions ` | Ressource:Aktionspaare | `--permissions "DOCKER:READ_ANY"` | +| `--description ` | Schlüsselbeschreibung | `--description "CI/CD Schlüssel"` | +| `--overwrite` | Existierenden Schlüssel ersetzen | `--overwrite` | +| `--json` | Maschinenlesbare Ausgabefunktion | `--json` | + +### Verfügbare Rollen + +- `ADMIN` - Voller Systemzugang +- `CONNECT` - Unraid Connect Funktionen +- `VIEWER` - Nur-Lesezugriff +- `GUEST` - Eingeschränkter Zugriff + +### Verfügbare Ressourcen und Aktionen + +**Ressourcen:** `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` + +**Aktionen:** `CREATE_ANY`, `CREATE_OWN`, `READ_ANY`, `READ_OWN`, `UPDATE_ANY`, `UPDATE_OWN`, `DELETE_ANY`, `DELETE_OWN` + +### Befehlslöschungsoptionen + +| Kennzeichnung | Beschreibung | Beispiel | +| --------------- | ---------------------------------- | ------------------------- | +| `--delete` | Löschmodus aktivieren | `--delete` | +| `--name ` | Zu löschender Schlüssel (optional) | `--name "mein Schlüssel"` | + +**Hinweis:** Wenn `--name` weggelassen wird, wird der Befehl interaktiv ausgeführt. + +## Beste Praktiken + +:::info[Security Beste Praktiken] +**Minimale Berechtigungen** + +- Spezifische Berechtigungen anstelle der ADMIN-Rolle verwenden, wenn möglich +- Beispiel: `--permissions "DOCKER:READ_ANY"` anstelle von `--roles ADMIN` + +**Schlüssel-Lebenszyklus-Management** + +- Temporäre Schlüssel immer nach Gebrauch bereinigen +- API-Schlüssel sicher speichern (Umgebungsvariablen, Geheimnismanagement) +- Verwenden Sie beschreibende Namen und Beschreibungen für Prüfpfade +::: + +### Fehlerbehandlung + +- Überprüfen Sie Exit-Codes (`$?`) nach jedem Befehl +- Verwenden Sie `set -e` in Bash-Skripten, um bei Fehlern schnell zu scheitern +- Führen Sie eine ordnungsgemäße Reinigung mit `trap` durch + +### Schlüsselbenennung + +- Verwenden Sie beschreibende Namen, die Zweck und Datum enthalten +- Namen müssen nur Buchstaben, Zahlen und Leerzeichen enthalten +- Unicode-Buchstaben werden unterstützt + +## Fehlerbehebung + +### Häufige Probleme + +:::note[Common Fehlermeldungen] +**"API-Schlüsselname darf nur Buchstaben, Zahlen und Leerzeichen enthalten"** + +- **Lösung:** Entfernen Sie Sonderzeichen wie Bindestriche, Unterstriche oder Symbole + +**"API-Schlüssel mit Namen 'x' existiert bereits"** + +- **Lösung:** Verwenden Sie das `--overwrite`-Flag oder wählen Sie einen anderen Namen + +**"Bitte fügen Sie mindestens eine Rolle oder Berechtigung zum Schlüssel hinzu"** + +- **Lösung:** Geben Sie entweder `--roles` oder `--permissions` an (oder beides) +::: + +### Debug-Modus + +Führen Sie für die Fehlerbehebung mit Debug-Protokollierung aus: + +```bash +LOG_LEVEL=debug unraid-api apikey --create --name "debug key" --roles ADMIN +``` diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx b/i18n/de/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx new file mode 100644 index 0000000000..2ce836489d --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx @@ -0,0 +1,171 @@ +--- +title: Roadmap & Funktionen +description: Aktueller Status und kommende Funktionen für die Unraid API +sidebar_position: 10 +--- + +# Roadmap & Funktionen + +:::info[Development Status] +Dieser Fahrplan skizziert abgeschlossene und geplante Funktionen für die Unraid-API. Funktionen und Zeitpläne können sich basierend auf Entwicklungsprioritäten und Rückmeldungen der Community ändern. +::: + +## Funktionsstatuslegende + +| Status | Beschreibung | +| ----------------------------- | ---------------------------------------- | +| ✅ **Fertig** | Funktion ist abgeschlossen und verfügbar | +| 🚧 **In Bearbeitung** | Derzeit in aktiver Entwicklung | +| 📅 **Geplant** | Für künftige Entwicklung eingeplant | +| 💡 **Unter Berücksichtigung** | Wird für zukünftige Aufnahme bewertet | + +## Kerninfrastruktur + +### Abgeschlossene Funktionen ✅ + +| Funktion | Verfügbar seit | +| -------------------------------------------- | ------------------ | +| **API-Entwicklungsumgebungs-Verbesserungen** | v4.0.0 | +| **API in Unraid OS einbinden** | Unraid v7.2-beta.1 | +| **API vom Connect Plugin trennen** | Unraid v7.2-beta.1 | + +### Künftige Funktionen 📅 + +| Funktion | Zielzeitplan | +| ----------------------------------- | ---------------------------------------------------------------------------------- | +| **API Open Source machen** | Abgeschlossen – open-sourced Januar 2025 ([GitHub](https://github.com/unraid/api)) | +| **Entwicklerwerkzeuge für Plugins** | Q2 2025 | + +## Sicherheit & Authentifizierung + +### Abgeschlossene Funktionen ✅ + +| Funktion | Verfügbar seit | +| --------------------------------------- | ------------------ | +| **Neufassung des Berechtigungssystems** | v4.0.0 | +| **OIDC/SSO-Unterstützung** | Unraid v7.2-beta.1 | + +### In Entwicklung 🚧 + +- **Bibliothek für Benutzeroberflächenkomponenten** - Verbesserte Sicherheitskomponenten für die Benutzeroberfläche + +## Benutzeroberflächenverbesserungen + +### Geplante Funktionen 📅 + +| Funktion | Zielzeitplan | Beschreibung | +| --------------------------------------- | ------------ | -------------------------------------------------------------------------- | +| **Neue Einstellungsseiten** | Q2 2025 | Modernisierte Einstellungsschnittstelle mit verbesserter UX | +| **Benutzerdefinierter Themen-Editor** | Q2-Q3 2025 | Erlaubt es Benutzern, benutzerdefinierte Themen zu erstellen und zu teilen | +| **Neue Connect-Einstellungsoberfläche** | Q1 2025 | Neugestaltete Unraid Connect-Konfiguration | + +## Array-Verwaltung + +### Abgeschlossene Funktionen ✅ + +| Funktion | Verfügbar seit | +| --------------------------- | -------------- | +| **Array-Statusüberwachung** | v4.0.0 | + +### Geplante Funktionen 📅 + +| Funktion | Zielzeitplan | Beschreibung | +| ----------------------------------------- | ------------ | --------------------------------------- | +| **Speicherpool-Erstellungsschnittstelle** | Q2 2025 | Vereinfachter Pool-Erstellungsprozess | +| **Speicherpool-Statusschnittstelle** | Q2 2025 | Echtzeitüberwachung der Pool-Gesundheit | + +## Docker-Integration + +### Abgeschlossene Funktionen ✅ + +| Funktion | Verfügbar seit | +| -------------------------------------- | -------------- | +| **Docker-Container-Statusüberwachung** | v4.0.0 | + +### Geplante Funktionen 📅 + +| Funktion | Zielzeitplan | Beschreibung | +| ---------------------------------------------- | ------------ | -------------------------------------------- | +| **Neue Docker-Statusoberflächengestaltung** | Q3 2025 | Moderne Container-Verwaltungsschnittstelle | +| **Neue Docker-Statusoberfläche** | Q3 2025 | Implementierung des neuen Designs | +| **Docker-Container-Einrichtungsschnittstelle** | Q3 2025 | Vereinfachte Bereitstellung von Containern | +| **Docker Compose-Unterstützung** | TBD | Unterstützung von nativen docker-compose.yml | + +## Freigabeverwaltung + +### Abgeschlossene Funktionen ✅ + +| Funktion | Verfügbar seit | +| ---------------------------------------- | -------------- | +| **Array-/Cache-Share-Statusüberwachung** | v4.0.0 | + +### Unter Berücksichtigung 💡 + +- **Speicherfreigabeerstellung & -einstellungen** - Erweiterte Freigabenkonfigurationsoptionen +- **Speicherfreigabeverwaltungsschnittstelle** - Einheitliches Freigabeverwaltungs-Dashboard + +## Plugin-System + +### Geplante Funktionen 📅 + +| Funktion | Zielzeitplan | Beschreibung | +| ----------------------------------- | ------------ | --------------------------------------------- | +| **Neue Plugins-Oberfläche** | Q3 2025 | Neugestaltete Plugin-Management-Schnittstelle | +| **Plugin-Management-Schnittstelle** | TBD | Erweiterte Plugin-Konfiguration | +| **Plugin-Entwicklungswerkzeuge** | TBD | SDK und Werkzeuge für Entwickler | + +## Benachrichtigungen + +### Abgeschlossene Funktionen ✅ + +| Funktion | Verfügbar seit | +| ------------------------------- | -------------- | +| **Benachrichtigungssystem** | v4.0.0 | +| **Benachrichtigungsoberfläche** | v4.0.0 | + +--- + +## Letzte Veröffentlichungen + +:::info[Full Veröffentlichungshistorie] +Für eine vollständige Liste aller Veröffentlichungen, Änderungsprotokolle und Download-Links besuchen Sie die [Unraid API GitHub Releases](https://github.com/unraid/api/releases) Seite. +::: + +### Unraid v7.2-beta.1 Highlights + +- 🎉 **API in Unraid OS enthalten** - Native Integration +- 🔐 **OIDC/SSO-Unterstützung** - Unternehmensauthentifizierung +- 📦 **Eigenständige API** - Getrennt vom Connect-Plugin + +### v4.0.0 Highlights + +- 🛡️ **Neufassung des Berechtigungssystems** - Verbesserte Sicherheit +- 📊 **Umfassende Überwachung** - Status von Array, Docker und Freigaben +- 🔔 **Benachrichtigungssystem** - Echtzeitwarnungen und -benachrichtigungen +- 🛠️ **Entwicklungsumgebung** - Verbesserte Entwicklungstools + +## Community-Feedback + +:::tip[Have einen Funktionswunsch?] +Community-Feedback erhalten; API im Januar 2025 als Open Source freigegeben! Bitte reichen Sie Funktionswünsche und Feedback ein über: + +- [Unraid-Foren](https://forums.unraid.net) +- [GitHub Issues](https://github.com/unraid/api/issues) - Die API ist jetzt Open Source! +::: + +## Versionsunterstützung + +| Unraid-Version | API-Version | Unterstützungsstatus | +| ------------------- | ----------------- | -------------------- | +| Unraid v7.2-beta.1+ | Aktuell | ✅ Aktiv | +| 7.0 - 7.1.x | v4.x über Plugin | ⚠️ Eingeschränkt | +| 6.12.x | v4.x über Plugin | ⚠️ Eingeschränkt | +| \< 6.12 | Nicht unterstützt | ❌ EOL | + +:::warning[Legacy Unterstützung] +Versionen vor Unraid 7.2 erfordern die Installation der API über das Unraid Connect-Plugin. Einige Funktionen sind in älteren Versionen möglicherweise nicht verfügbar. +::: + +:::tip[Pre-release Versionen] +Sie können das Unraid Connect-Plugin immer installieren, um Vorabversionen der API zu erhalten und neuen Funktionen frühzeitig Zugang zu verschaffen, bevor sie in den Unraid OS-Veröffentlichungen enthalten sind. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/contribute/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/contribute/_category_.json new file mode 100644 index 0000000000..d139c223de --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/contribute/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Beitragen", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx b/i18n/de/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx new file mode 100644 index 0000000000..362d15150b --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx @@ -0,0 +1,161 @@ +--- +sidebar_position: 1 +sidebar_label: Styleguide +--- + +# Unraid-Dokumentationsstilguide + +Unraid OS wird vom LimeTech-Team und der Unraid-Community geformt. Unsere Dokumentation zielt darauf ab, umfassend, genau und aktuell zu sein. Da unsere Benutzer aus unterschiedlichen Hintergründen weltweit kommen, bildet dieser Leitfaden die Grundlage für ein konsistentes und klares Schreiben in allen Unraid-Dokumenten. + +--- + +## Schreibkonventionen + +### Stil und Ton + +Unser Ton sucht eine Balance zwischen freundlich und formell, mit dem Ziel, detaillierte und genaue Inhalte zu liefern, mit denen sich Nutzer identifizieren können. + +- Verwenden Sie formelle, direkte Anweisungen, wenn die Aktion festgelegt ist und keinen Spielraum für Abweichungen lässt. +- Verwenden Sie einen gesprächigen, erläuternden Ton, wenn Sie Kontext oder Szenarien bereitstellen, um die Inhalte zugänglicher zu machen. + +Als Beitragender sollten Sie den Kontext und das Publikum berücksichtigen, wenn Sie Ihren Ton wählen. + +:::important +Da Unraid OS ein weltweites Publikum hat, vermeiden wir Jargon, Slang oder Redewendungen. Diese können nicht-muttersprachliche Englischsprecher verwirren und den Übersetzungsprozess komplizieren. +::: + +### Zielgruppe: Schreiben für alle Bereiche + +Unsere Leser reichen von Linux-Experten, die Systeminternes verstehen, bis zu Anfängern, die Unraid zum ersten Mal nutzen. + +Schreiben Sie klar und inklusiv, damit sowohl Experten als auch Neulinge problemlos folgen können. + +### Die ABC-Methode: Genauigkeit, Kürze, Klarheit + +Wir priorisieren: + +- **Genauigkeit**: Stellen Sie sicher, dass der Inhalt korrekt und gründlich getestet ist. +- **Kürze**: Seien Sie prägnant, ohne notwendige Details zu opfern. +- **Klarheit**: Verwenden Sie einfache Sprache und strukturieren Sie Inhalte für ein leichtes Verständnis. + +--- + +## Syntax + +Unraid-Dokumentationen verwenden Markdown-Formatierung in Kombination mit spezifischen Textstilen, um Benutzern zu helfen, schnell Interface-Elemente zu identifizieren und in der WebGUI zu navigieren. + +| Elementtyp | Stilkonvention | Markdown-Syntax | Beispiel / Beschreibung | +| ------------------------------- | ------------------------------------- | -------------------------------- | ---------------------------------------------- | +| Option oder Schaltflächenname | Fett | `**text**` | Wählen Sie **Fertig** | +| Benutzerdefinierter Eingabewert | Kursiv | `*text*` | Geben Sie einen Wert von *50GB* ein | +| Navigationspfad | Fett + Kursiv; verwenden Sie → | `***nav1 → nav2***` | ***Einstellungen → Festplatteneinstellungen*** | +| Reiterbeschriftung | Fett | **Tabellenname** | Name eines zu wählenden Reiters | +| Checkbox-Beschriftung | Fett | **Kontrollkästchenbeschriftung** | Beschriftung einer Checkbox-Option | +| Dropdown-Menü-Option | Kursiv | **Dropdown-Option** | Wählbare Option in einem Dropdown | +| Dialogtitel | Überschrift 3 | `### Dialogtitel` | Titel für Pop-up-Dialoge oder modale Fenster | +| Tooltip-Text | Inline-Schriftkursiv | *tooltip text* | Kurze Erklärung bei Hover-Effekt | +| Menüpunkt | Fett + Kursiv | ***Menü → Untermenü → Element*** | Navigation durch verschachtelte Menüs | +| CLI- und Systemoutput | Schreibmaschinenschrift (inline code) | `` `text` `` | Navigieren Sie zu `http://tower.local` | +| Fehlermeldung | Schreibmaschinenschrift (inline code) | `` `Fehler: Nachricht` `` | Exakte Fehlerstrings oder Logs | +| Dokumenttitel | Überschrift 1 | `# Überschrift` | (wird gerendert als) `

Überschrift

` | +| Dokumentabschnitt | Überschrift 2 | `## Überschrift` | (wird gerendert als) `

Überschrift

` | +| Dokument-Teilabschnitt | Überschrift 3 | `### Überschrift` | (wird gerendert als) `

Überschrift

` | + +:::note +Jede Überschrift der Ebene 2 (`##`) und kleiner erscheint in der Inhaltsverzeichnis-Seitenleiste der Seite zur einfachen Navigation. +::: + +--- + +## Formatierung für Listen und Tabellen + +Die effektive Nutzung von strukturierten Elementen wie Listen und Tabellen verbessert die Informationsklarheit, unterstützt das Verständnis und erleichtert den schnellen Zugriff. + +### Listen + +Listen helfen Benutzern, Hauptpunkte oder Schritte aufzufassen, zu erinnern und zu befolgen. Es gibt zwei Haupttypen, die jeweils klare Anwendungsfälle haben: + +- **Ungeordnete Listen** (Punkte): Nutzen Sie sie, um verwandte Elemente ohne Reihenfolgenangabe zu gruppieren. + *Beispiel:* "Liste der gängigen Unraid OS-Werkzeuge." + +- **Geordnete Listen** (nummeriert): Nutzen Sie sie, um eine erforderliche Reihenfolge oder Prozedur anzuzeigen. + *Beispiel:* "Um das %%array|array%% zu starten..." + +:::tip[Best Praktiken] +- Versuchen Sie, die Liste mit einem klaren Anfangssatz einzuführen, der in einem Doppelpunkt endet. +- Verwenden Sie maximal 4–6 Elemente in einer ungeordneten Liste, um das Scannen und Merken zu erleichtern. Längere Listen sind möglicherweise besser als Tabelle darzustellen. +::: + +### Tabellen + +Tabellen sind eine großartige Möglichkeit, zusammenhängende Daten durch Gruppierung in Zeilen und Spalten zu organisieren, wodurch Vergleiche schneller und präziser werden. + +:::tip[Best Praktiken] +- Verwenden Sie Tabellen, wenn mehrere zusammenhängende Datenpunkte von einem Vergleich nebeneinander profitieren. +- Vermeiden Sie Tabellen mit nur 1 oder 2 Zellen; stattdessen verwenden Sie Aufzählungslisten oder Sätze. +- Fügen Sie der Tabelle einen einleitenden Satz hinzu, der deren Zweck und Inhalt erklärt. +::: + +--- + +## Abkürzungen, Akronyme und Initialwörter + +Um Verwirrung bei den Lesern zu verringern, befolgen Sie diese Prinzipien bezüglich Abkürzungen: + +- **Abkürzungen** sind verkürzte Formen von Wörtern, die in den Unraid-Dokumentationen normalerweise überflüssig sind, es sei denn, sie sind allgemein anerkannt. +- **Akronyme** bilden neue Wörter aus den Anfangsbuchstaben anderer Wörter (z.B. %%RAID|raid%%). +- **Initialwörter** verwenden Initialen, die einzeln ausgesprochen werden (z.B. OS, %%ZFS|zfs%%). + +**Empfehlungen:** + +- Bevorzugen Sie bestehende, bekannte Akronyme oder Initialwörter, die Ihrem Publikum vertraut sind. +- Vermeiden Sie die Erstellung neuer Abkürzungen nur um der Kürze halber. +- Schreiben Sie ungewohnte Akronyme oder Initialwörter beim ersten Gebrauch immer aus und fügen Sie die Abkürzung in Klammern hinzu. + *Beispiel:* Virtuelle Maschinen-Disk (VMDK) + +--- + +## Verlinkung zu anderen Dokumenten oder Seiten + +Strategisches Verlinken erlaubt es den Lesern, verwandte Themen zu erkunden und ihr Verständnis zu verbessern. Verwenden Sie diese Richtlinien für praktisches und zugängliches Hyperlinking. + +### Leitlinien für den Linktext + +- Der Linktext sollte das Ziel klar beschreiben und allen Lesern den Zweck des Links verständlich machen. +- Meiden Sie vage Linktexte wie "Hier klicken" oder "Mehr lesen", da diese den Kontext vermissen lassen. +- Vermeiden Sie die Verwendung von rohen URLs als Inline-Linktext. + +### Formatieren von Links + +- Verwenden Sie Inline-Markdown-Links: + +``` +You can also check our [getting started guide](../unraid-os/getting-started/quick-start-guide.mdx). +``` + +- Verlinken Sie immer zur relevantesten und autoritativsten verfügbaren Ressource. + +### Hinzufügen von Glossartermen + +Unraid Dokumentationen verwenden ein zentrales Glossarsystem, um die Konsistenz und Zugänglichkeit technischer Begriffe sicherzustellen. Glossareinträge werden in der Datei `glossary.yaml` im Hauptverzeichnis aufbewahrt. + +Um einen Begriff hinzuzufügen oder zu aktualisieren: + +1. Bearbeiten Sie `glossary.yaml` mit der folgenden Vorlage: + +``` +GlossaryTerm: + term: Display Name + def: Full definition text. + link:
Optional detailed link +``` + +2. Um die Tooltip-Funktionalität hinzuzufügen, verweisen Sie auf den Begriff in der Dokumentation mit der folgenden Syntax: + + ``` + %%Term|GlossaryTerm%% + ``` + + ... wobei die linke Seite des Pipes der Text ist, den Sie anzeigen möchten, während die rechte Seite der entsprechende Eintrag im YAML-Glossar ist. + +3. 3. Die [Glossarseite](../glossary.mdx) wird automatisch aktualisiert, um neue Begriffe einzuschließen. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/docs-home.mdx b/i18n/de/docusaurus-plugin-content-docs/current/docs-home.mdx new file mode 100644 index 0000000000..2c9eceec31 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/docs-home.mdx @@ -0,0 +1,55 @@ +--- +slug: / +sidebar_position: 0 +--- + +import Term from "@lunaticmuch/docusaurus-terminology/components/tooltip.js"; + +# Unraid-Dokumentation + +Willkommen zur offiziellen Unraid-Dokumentation! Diese umfassende Ressource soll Ihnen helfen, das Beste aus Ihrem Unraid-Server herauszuholen, egal ob Sie Ihr erstes System einrichten oder eine komplexe Homelab-Umgebung verwalten. + +## Erste Schritte + +Wenn Sie neu bei Unraid sind, empfehlen wir, mit diesen grundlegenden Anleitungen zu beginnen: + +- **[Was ist Unraid?](unraid-os/getting-started/what-is-unraid.mdx)** – Lernen Sie die Hauptfunktionen und Vorteile von Unraid kennen +- **[Unraid einrichten](unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx)** – Kompletter Einrichtungsleitfaden von der Installation bis zum ersten Start +- **[Die WebGUI erkunden](./unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx)** – Navigieren Sie sicher durch die WebGUI + +## Brauchen Sie Hilfe? + +### Community-Foren + +Die [Unraid-Foren](https://forums.unraid.net/) sind das Herz der Unraid-Community. Hier finden Sie: + +- Benutzerdiskussionen und Fehlerbehebungen +- Plugin- und Docker-Container-Unterstützung +- Hardware-Empfehlungen und Kompatibilitätsdiskussionen +- Von der Community entwickelte Lösungen und Umgehungsmöglichkeiten + +### Offizielle Ressourcen + +- **[Unraid-Startseite](https://unraid.net/)** – Produktinformationen, Downloads und Lizenzen +- **[Community-Anwendungen](https://unraid.net/community/apps)** – Stöbern und installieren Sie Plugins und Docker-Container +- **[Unraid Connect](https://connect.myunraid.net/)** – Übersicht für die Fernverwaltung + +### Support-Optionen + +- **Community-Support**: Stellen Sie Fragen in den [Foren](https://forums.unraid.net/) +- **Dokumentation**: Verwenden Sie die Suchfunktion und Navigation, um Antworten zu finden +- **Plugin-Support**: Überprüfen Sie einzelne Plugin-Threads im Abschnitt [Community-Anwendungen](https://forums.unraid.net/forum/89-community-applications/) + +## Glossarbegriffe + +In dieser Dokumentation werden Ihnen Begriffe begegnen, die wie %%WebGUI|web-gui%% formatiert sind. Dies sind Glossarbegriffe, die schnelle Definitionen und Erklärungen bieten. + +Um sie zu verwenden, fahren Sie mit der Maus über Glossarbegriffe, um Tooltips mit Definitionen zu sehen. Sie können das gesamte Glossar auf der [Glossarseite](glossary.mdx) einsehen. + +## Mitwirken + +Einen Fehler gefunden oder einen Vorschlag? Die Dokumentation ist Open Source und wird auf [GitHub](https://github.com/unraid/docs) gehostet. Wir begrüßen Beiträge aus der Community! + +--- + +**Bereit, einzutauchen?** Starten Sie mit dem Abschnitt [Erste Schritte](unraid-os/getting-started/what-is-unraid.mdx) oder nutzen Sie die Suchfunktion, um spezifische Informationen zu finden. Wenn Sie nicht finden, was Sie suchen, sind die [Unraid-Foren](https://forums.unraid.net/) immer bereit zu helfen! diff --git a/i18n/de/docusaurus-plugin-content-docs/current/glossary.mdx b/i18n/de/docusaurus-plugin-content-docs/current/glossary.mdx new file mode 100644 index 0000000000..3f7d95e809 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/glossary.mdx @@ -0,0 +1,8 @@ +--- +sidebar_position: 999 +sidebar_label: Glossar +--- + +# Glossar + +%%RemarkAutoGlossary::list\_all%% diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json new file mode 100644 index 0000000000..5808794ec2 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Unraid Verbinden", + "position": 2, + "link": { + "type": "generated-index" + } +} diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx new file mode 100644 index 0000000000..f568c795bf --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx @@ -0,0 +1,116 @@ +--- +sidebar_position: 2 +sidebar_label: Automatisiertes Flash-Backup +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Automatisiertes Flash-Backup + +Das Sichern Ihres Unraid-Flash-Laufwerks ist entscheidend für eine schnelle Wiederherstellung bei Problemen wie Hardwarefehlern, versehentlichen Löschungen oder Datenbeschädigungen. Während lokale Backups (wie das Kopieren Ihres Flash-Laufwerks auf ein anderes USB-Gerät oder einen Netzwerkspeicher) einfachen Zugriff und Kontrolle ermöglichen, können sie anfällig für Diebstahl, Feuer oder Hardwarefehler sein, die Ihre gesamte Einrichtung betreffen könnten. Andererseits bieten Cloud-Backups sichere Offsite-Speicherung für Ihre Konfiguration und schützen vor lokalen Katastrophen, sodass eine Wiederherstellung von überall aus möglich ist. + +Im Gegensatz zu herkömmlichen Backups, die sich auf Benutzerdaten, VMs oder Docker-Container konzentrieren, sichern Flash-Backups speziell Ihre Unraid-OS-Konfiguration, -Lizenzen und -Systemeinstellungen. Diese Fokussierung ermöglicht Ihnen, die Operationen Ihres Servers schnell wiederherzustellen, ohne bei Null anfangen zu müssen. Unraid Connect ermöglicht automatische, cloudbasierte Backups Ihrer OS-Konfiguration. Wenn Ihr Flash-Laufwerk ausfällt, können Sie Ihr neuestes Backup schnell mit dem [Unraid USB Flash Creator Tool](https://unraid.net/download) wiederherstellen. + +Flash-Backup ist optional, wenn Sie Unraid Connect verwenden. + +:::tip +Verwenden Sie sowohl lokale als auch Cloud-Backup-Methoden für maximalen Schutz. Cloud-Backups bieten eine zusätzliche Schicht der Widerstandsfähigkeit, die lokale Lösungen allein nicht bieten können. +::: + +## Datenerfassung und Datenschutz + +
+ Klicken Sie, um zu sehen, welche Daten gesammelt werden und wie wir sie handhaben + + Unraid Connect legt großen Wert auf Ihre Privatsphäre und Daten beim Verwenden des Flash-Backup: + +

Zweck

+ + Flash-Backup speichert nur die Konfigurationsdateien, die zur Wiederherstellung Ihrer Unraid-OS-Umgebung benötigt werden. Dies hilft Ihnen, sich schnell zu erholen und den Dienstbetrieb aufrechtzuerhalten, falls Ihr Flash-Gerät ausfällt. + +

Gesammelte Daten

+ + Das Backup enthält nur Konfigurationsdateien, sodass vertrauliche Informationen, wie Passwörter und %%WireGuard|WireGuard%%-Schlüssel, ausgeschlossen sind. Docker-Vorlagen-XML-Dateien könnten Teil des Backups sein und anwendungsspezifische Anmeldedaten enthalten. + +

Datenaufbewahrung

+ + Nur das letzte Backup wird aufbewahrt. Wenn ein Backup bestimmte Grenzen überschreitet – insbesondere, wenn einzelne Dateien 10 MB überschreiten oder die Gesamtgröße des Repositories 100 MB übersteigt – wird es gelöscht und neu erstellt. Backups werden auch entfernt, wenn Sie die Flash-Backup-Funktion deaktivieren oder nach einem bestimmten Zeitraum der Inaktivität. + +

Datenaustausch

+ + Flash-Backup-Daten werden niemals mit Dritten geteilt. Sie werden ausschließlich gespeichert, um Ihnen Backup- und Wiederherstellungsdienste bereitzustellen. +
+ +## Flash-Backup aktivieren + +Unraid Connect schließt sensible Daten - wie Kontopasswörter und %%WireGuard|wireguard%%-Schlüssel - von Backups aus, bis eine vollständige Verschlüsselung verfügbar ist. Jedoch sind Docker-Vorlagen-XML-Dateien (die Anwendungsanmeldeinformationen enthalten könnten) enthalten. Verschlüsselungslösungen sind in Entwicklung. + +So aktivieren Sie Flash-Backup: + +1. Gehen Sie zu ***Einstellungen → Management-Zugriff → Unraid API***. + +
+ ![Flash-Backup aktivieren](/img/flashbackupbutton.png) +
+ +2. Unter **Flash-Backup** klicken Sie auf **Aktivieren**. +3. Warten Sie auf die Aktivierung und den Abschluss des ersten Backups. Der Status zeigt **Aktiviert: Auf dem neuesten Stand**, wenn es fertig ist. + +Nach der Aktivierung werden alle Konfigurationsänderungen innerhalb von 1–2 Minuten automatisch in die Cloud gesichert. + +:::important +Backups schließen keine `config/shadow`- oder `config/smbpasswd`-Dateien ein. Benutzerkonten bleiben erhalten, aber Passwörter nicht. Sie müssen alle Benutzerpasswörter, einschließlich des Root-Passworts, nach der Wiederherstellung zurücksetzen. %%WireGuard|wireguard%%-Schlüssel sind ebenfalls ausgeschlossen. +::: + +Das Flash-Backup wurde entwickelt, um essentielle Konfigurationsdateien zu speichern und keine vollständige Kopie Ihres Flash-Laufwerks. Es sichert keine temporären Dateien (wie Protokolle) oder Anwendungs-Binaries. Plugin-Konfigurationen sind enthalten, aber Anwendungsdateien müssen beim Start neu heruntergeladen werden. Einzelne Dateien bis zu 10 MB werden gesichert; wenn das Gesamtbackup 100 MB überschreitet, wird es gelöscht und neu erstellt. + +## Flash-Backup wiederherstellen + +So stellen Sie Ihre Konfiguration wieder her: + +1. Melden Sie sich bei Unraid Connect an. +2. Wählen Sie **Details** auf dem Dashboard. +3. Klicken Sie auf **Flash-Backup generieren** aus der Flash-Backup-Kachel. +4. Das System erstellt eine ZIP-Datei, die Ihre OS-Konfiguration und Versionsinformationen enthält. +5. Klicken Sie auf **Flash-Backup herunterladen**, um die ZIP-Datei zu erhalten. +6. Verwenden Sie den [Unraid USB Flash Creator](https://unraid.net/download), um das Backup auf ein neues Flash-Laufwerk wiederherzustellen. + +### Schritte nach der Wiederherstellung + +Nach dem Booten mit dem wiederhergestellten Flash-Laufwerk: + +- Aktivieren Sie Flash-Backup erneut in ***Einstellungen → Management-Zugriff → Unraid API***. +- Setzen Sie die Passwörter für alle Benutzer (einschließlich Root) auf der Benutzerseite zurück. +- Generieren Sie für jeden %%VPN Tunnel|vpn-tunnel%% und Peer in ***Einstellungen → VPN Manager*** neue Schlüssel und laden Sie aktualisierte Client-Konfigurationen herunter. +- Sollte der Internetzugang nach dem Start nicht sofort verfügbar sein, installieren Sie Plugins über ***Apps → Frühere Apps*** neu, sobald die Konnektivität wiederhergestellt ist. Konfigurationsdateien werden einsatzbereit sein. + +## Flash-Backup deaktivieren + +So schalten Sie Flash-Backup aus: + +1. Klicken Sie in **Einstellungen → Management-Zugriff → Unraid API** auf **Deaktivieren** für Flash-Backup. +2. Aktivieren Sie im Bestätigungsdialog **Auch Cloud-Backup löschen**, wenn Sie Ihr Backup sofort entfernen möchten. Andernfalls werden Backups nach einer gewissen Inaktivität automatisch gelöscht. + +## Datenschutz und Sicherheit + +### Backups-Verschlüsselung + +Derzeit werden Flash-Backups ohne Verschlüsselung in der Cloud gespeichert. Vorsichtshalber werden sensible Daten - einschließlich aller Benutzer- und Root-Passwörter sowie alle %%WireGuard|wireguard%%-Schlüssel - nie im Backup enthalten. + +### Richtlinie für sensible Daten + +Um Ihre Privatsphäre zu schützen, werden die folgenden **niemals** in Cloud-Backups gespeichert: + +- Unraid-Root- oder Benutzerkonto-Passwörter +- Öffentliche, private oder gemeinsame %%WireGuard|wireguard%%-Schlüssel + +:::note\[Reminder] + +Flash-Backup ist nur für die Wiederherstellung von Konfigurationen gedacht. Integrieren Sie immer zusätzliche Backup-Strategien für Ihre Daten und kritischen Geheimnisse. + +::: + +--- + +\* *„%%WireGuard|wireguard%%“ und das „%%WireGuard|wireguard%%“-Logo sind eingetragene Warenzeichen von Jason A. Donenfeld.* diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx new file mode 100644 index 0000000000..9573d528f5 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx @@ -0,0 +1,234 @@ +--- +sidebar_position: 1 +sidebar_label: Übersicht und Einrichtung +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ConnectChangeBanner from './partials/customization/change-banner.mdx'; +import ConnectRearrangeDashboard from './partials/customization/rearrange-dashboard.mdx'; +import ConnectSwitchThemes from './partials/customization/switch-themes.mdx'; + +# Übersicht & Einrichtung von Unraid Connect + +**Unraid Connect** ist ein cloudbasiertes Begleitprogramm, das entwickelt wurde, um Ihr Unraid OS-Servererlebnis zu verbessern. Es erleichtert die Serververwaltung, Überwachung und Wartung, indem es Cloud-Komfort direkt in Ihr Heim- oder Geschäftsumfeld bringt. + +Unraid Connect arbeitet nahtlos mit Unraid OS, verbessert Ihr Servererlebnis, ohne seine grundlegenden Funktionen zu verändern. Sie können Unraid Connect als Ihr Remote-Kontrollzentrum betrachten. Es erweitert die Fähigkeiten Ihres Unraid-Servers durch sicheren, webbasierten Zugriff und erweiterte Funktionen, unabhängig davon, wo Sie sich befinden. + +Mit Unraid Connect können Sie: + +- Fernzugriff auf Ihren Unraid-Server von jedem Gerät aus, überall auf der Welt. +- Echtzeit-Überwachung der Servergesundheit und Ressourcennutzung, einschließlich Speicher-, Netzwerk- und Docker-Containerstatus. +- Sichere Online-Flash-Backups planen und durchführen, um Ihre Konfigurations- und Lizenzinformationen zu schützen. +- Benachrichtigungen über Servergesundheit, Speicherstatus und kritische Ereignisse erhalten. +- Dynamischen Fernzugriff und Server-Deep-Linking verwenden, um schnell zu spezifischen Verwaltungsseiten zu navigieren oder Probleme zu beheben. +- Mehrere Server über ein einziges Dashboard verwalten, ideal für Benutzer mit mehr als einem Unraid-System. + +Unraid Connect ist mehr als nur ein Add-on; es ist eine unverzichtbare Erweiterung der Unraid-Plattform, die darauf ausgelegt ist, den Wert, die Sicherheit und den Komfort Ihrer Unraid-OS-Investition zu maximieren. + +[**Klicken Sie hier, um in Unraid Connect einzutauchen!**](https://connect.myunraid.net) + +## Datenerfassung und Datenschutz + +
+ Klicken Sie, um zu sehen, welche Daten gesammelt werden und wie wir sie handhaben + + Unraid Connect priorisiert Ihre Privatsphäre und Transparenz. Hier erfahren Sie, wie wir mit Ihren Daten umgehen: + +

Welche Daten werden erfasst und warum

+ + Wenn Ihr Server eine Verbindung zu Unraid.net herstellt, wird eine sichere Verbindung zu unserer Infrastruktur aufgebaut und nur die erforderlichen Daten übertragen, die für ein nahtloses Erlebnis im Unraid Connect Dashboard benötigt werden. Dazu gehören: + + - Server-Hostname, Beschreibung und Symbol + - Details der Schlüsseldatei und Flash %%GUID|guid%% + - Lokale Zugriffs-URL und LAN-IP (nur wenn ein Zertifikat installiert ist) + - Remote-Zugriffs-URL und WAN-IP (wenn der Remote-Zugriff aktiviert ist) + - Installierte Unraid-Version und Betriebszeit + - Unraid Connect Plugin-Version und unraid-api-Version/Betriebszeit + - %%Array|array%%-Größe und Nutzung (nur Zahlen, keine Datei-Spezifika) + - Anzahl der Docker-Container und %%VMs|vm%%, die installiert und in Betrieb sind + + Wir verwenden diese Daten ausschließlich zur Aktivierung von Unraid Connect-Funktionen wie Fernüberwachung, Verwaltung und Benachrichtigungen. Sie werden nicht für Werbung oder Profiling verwendet. + +

Datenaufbewahrungsrichtlinie

+ + - Wir behalten nur das neueste Update von Ihrem Server; keine vergangenen Daten werden gespeichert. + - Daten werden solange gespeichert, wie Ihr Server registriert ist und Unraid Connect verwendet. + - To delete your data, simply uninstall the plugin and remove any %%SSL|ssl%% certificates issued through Let's Encrypt. + +

Datenaustausch

+ + - Ihre Daten werden **nicht mit Dritten geteilt**, es sei denn, es ist notwendig für Unraid Connect-Dienste, wie die Bereitstellung von Zertifikaten über Let's Encrypt. + - Wir sammeln oder teilen keine Benutzerinhalte, Dateidetails oder persönlichen Informationen über das hinaus, was oben spezifiziert wurde. + + Für weitere Details besuchen Sie unsere [Richtlinien](https://unraid.net/policies) Seite. +
+ +## Installation + +Unraid Connect ist als Plugin verfügbar, das Unraid OS 6.10 oder höher erfordert. Bevor Sie beginnen, stellen Sie sicher, dass Ihr Server mit dem Internet verbunden ist und das [Community Applications](../unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx)-Plugin installiert ist. + +Um Unraid Connect zu installieren: + +1. Navigieren Sie zum **Apps**-Tab im Unraid WebGUI. +2. Suchen Sie nach **Unraid Connect** und fahren Sie mit der Installation des Plugins fort. Warten Sie, bis die Installation vollständig abgeschlossen ist, bevor Sie den Dialog schließen. +3. Klicken Sie in der oberen rechten Ecke Ihres Unraid WebGUI auf das Unraid-Logo und wählen Sie **Sign In**. + +
+ ![Unraid Connect Symbol](/img/icon_unraidconnect.png) +
+ +4. Melden Sie sich mit Ihren Unraid.net-Anmeldedaten an oder erstellen Sie bei Bedarf ein neues Konto. +5. Folgen Sie den Anweisungen auf dem Bildschirm, um Ihren Server mit Unraid Connect zu registrieren. +6. Nach der Registrierung können Sie auf das [Unraid Connect Dashboard](https://connect.myunraid.net) für eine zentrale Verwaltung zugreifen. + +:::note +Unraid Connect erfordert ein myunraid.net-Zertifikat für die sichere Fernverwaltung und den Zugriff. Um ein Zertifikat bereitzustellen, gehen Sie zu ***Einstellungen → Verwaltungszugriff*** im %%WebGUI|web-gui%% und klicken Sie unter dem Zertifikatsabschnitt auf **Bereitstellen**. +::: + +## Dashboard + +Das **Unraid Connect Dashboard** bietet eine zentralisierte, cloudbasierte Ansicht all Ihrer registrierten Unraid-Server mit Funktionen wie: + +- **Meine Server:** Alle verknüpften Server erscheinen in einer Seitenleiste und als interaktive Kacheln zur einfachen Auswahl. +- **Status (auf einen Blick):** Schnell erkennen, welche Server online oder offline sind, zusammen mit ihrer Unraid OS-Version, Lizenztyp und kürzlichen Aktivitäten. +- **Gesundheit und Warnungen:** Visuelle Indikatoren zeigen den Serverzustand, Benachrichtigungen und den Aktualisierungsstatus an. + +Wenn Sie auf **Details** eines Servers klicken, sehen Sie: + +- **Online/Offline:** Echtzeit-Verbindungsstatus. +- **Lizenztyp:** Starter, Unleashed oder Lifetime. +- **Betriebszeit:** Dauer, die der Server in Betrieb ist. +- **Unraid OS-Version:** Aktuelle Version und Updateverfügbarkeit. +- **Speicher:** Gesamter und freier Speicherplatz auf allen Arrays und Pools. +- **Gesundheitsmetriken:** CPU-Auslastung, Speichernutzung und Temperatur (falls unterstützt). +- **Benachrichtigungen:** Hardware-/Software-Alarme, Warnungen und Fehler. +- **Flash-Backup:** Status und Datum des letzten erfolgreichen Backups. + +--- + +## Fernverwaltung Ihres Servers + +:::tip +Um alle Verwaltungsfunktionen zu nutzen, stellen Sie ein myunraid.net-Zertifikat unter ***Einstellungen → Verwaltungszugriff*** auf Ihrem Server bereit. +::: + +Mit einem gültigen **myunraid.net**-Zertifikat ermöglicht Unraid Connect eine sichere, remote Serververwaltung direkt über die Connect-Weboberfläche. + +Remote-Verwaltungsfunktionen umfassen: + +- **Fernzugriff auf WebGUI:** Zugriff auf die WebGUI von überall. +- **Array-Steuerungen:** Starten oder Stoppen von %%array|array%%s und Verwalten von Speicherpools. +- **Docker- und VM-Verwaltung:** Anzeigen, Starten, Stoppen und Überwachen von Containern und %%VM|vm%%s. +- **Parity & Scrub:** Starte %%parity check|parity-check%% oder %%ZFS|zfs%%/%%BTRFS|btrfs%% Scrub-Jobs +- **Flash-Backup:** Flaschen-Backup des Geräts in die Cloud auslösen und überwachen. +- **Diagnose:** Ein Diagnosen-Zip zur Unterstützung herunterladen +- **Benachrichtigungen:** Systemwarnungen überprüfen und bestätigen. +- **Serversteuerungen:** Server remote neu starten oder herunterfahren. +- **Benutzerverwaltung:** Zugriff und Registrierung für das Unraid.net-Konto verwalten. + +Sie können mehrere Server von jedem Gerät aus – Handy, Tablet oder Computer – mit einem einzigen Browserfenster verwalten. + +--- + +## Deep Linking + +Mit Deep Linking in Unraid Connect können Sie direkt zu bestimmten Abschnitten Ihres Unraid %%WebGUI|web-gui%% springen, indem Sie einfach auf einen der umkreisten Link-Buttons (unten) in der Connect-Oberfläche klicken, um direkt zur relevanten Verwaltungsseite Ihres Servers zu gelangen. + +
+ ![Deep Linking](/img/Deep-linking.png) +
+ +--- + +## Anpassung + +Unraid Connect bietet ein flexibles Dashboard-Erlebnis, das Ihnen erlaubt, Ihre Serveransicht und Ihr Erscheinungsbild zu personalisieren. Die Anpassungsoptionen sind unten zur einfachen Referenz organisiert. + + + + + + + + + + + + + + + +--- + +## Lizenzverwaltung + +Die Verwaltung Ihrer Lizenzen in Unraid Connect ist einfach. Unter dem Abschnitt **Meine Schlüssel** können Sie: + +- Einen Schlüssel auf einen neuen USB ansehen oder erneut ausstellen. +- Ihr Lizenzlevel direkt von der Connect-Benutzeroberfläche aus upgraden. +- Registrierungsschlüsseldateien für Backup oder Transfer herunterladen. +- Lizenzstatus und Ablaufdatum überprüfen (falls zutreffend). + +
+ ![Meine Schlüssel](/img/mykeys.png) +
+ +Sie müssen die Connect-Oberfläche nicht verlassen, um Ihre Lizenzen zu verwalten oder zu aktualisieren. + +--- + +## Sprachlokalisierung + +Unraid Connect unterstützt mehrere Sprachen, um eine globale Benutzerbasis zu bedienen. Sie können Ihre Sprachpräferenz über den Sprachwähler in der Connect-Oberfläche ändern. + +Um die Spracheinstellung zu ändern: + +1. Öffnen Sie die Connect-Benutzeroberfläche. +2. Gehen Sie zum Sprachwähler. + +
+ ![Sprachwähler](/img/languageselector.png) +
+ +3. Wählen Sie Ihre bevorzugte Sprache aus der Liste. + +Die Benutzeroberfläche wird automatisch aktualisiert, um Ihre Auswahl widerzuspiegeln. + +--- + +## Abmeldung + +Sie können sich jederzeit von Unraid Connect abmelden über ***Einstellungen → Verwaltungszugriff → Unraid Connect → Kontostatus***, indem Sie auf die **Abmelden**-Schaltfläche klicken. + +Wenn Sie sich abmelden: + +- Ihr Server bleibt auf dem Connect-Dashboard gelistet, aber Sie verlieren den Zugriff auf Fernverwaltungsfunktionen. +- Fernzugriff, cloudbasierte Flash-Backups und andere Unraid Connect-Funktionen werden für diesen Server deaktiviert. +- Sie können Ihre Registrierungsschlüssel weiterhin herunterladen, aber den Server nicht mehr remote verwalten oder überwachen, bis Sie sich erneut anmelden. +- Abmelden trennt Ihren Server **nicht** vom lokalen Netzwerk und beeinflusst den lokalen Zugriff nicht. + +--- + +## Deinstallation des Plugins + +Wenn Sie das Unraid Connect Plugin deinstallieren: + +- Alle Flash-Backup-Dateien werden deaktiviert und von Ihrem lokalen Flash-Laufwerk gelöscht. +- Cloud-Backups sind zur Entfernung von Unraid-Servern markiert; sie werden für 30 Tage aufbewahrt, danach werden sie dauerhaft gelöscht. Für eine sofortige Löschung, [deaktivieren Sie Flash-Backup](./automated-flash-backup.mdx), bevor Sie es deinstallieren. +- Der Fernzugriff wird deaktiviert. Stellen Sie sicher, dass Sie alle zugehörigen Portweiterleitungsregeln von Ihrem Router entfernen. +- Ihr Server wird von Unraid.net abgemeldet. + +:::note +Die Deinstallation des Plugins setzt die URL Ihres Servers **nicht** von `https://yourpersonalhash.unraid.net` auf `http://computername` zurück. Wenn Sie Ihre Zugriffs-URL ändern möchten, beziehen Sie sich auf [Deaktivierung von SSL für lokalen Zugriff](../unraid-os/system-administration/secure-your-server/securing-your-connection.mdx#disabling-ssl-for-local-access). +::: + +--- + +## Verbindungsfehler + +Wenn Sie bei Unraid Connect auf Verbindungsfehler stoßen, [öffnen Sie ein Terminal](../unraid-os/system-administration/advanced-tools/command-line-interface.mdx) vom WebGUI aus und führen Sie aus: + +``` +unraid-api restart +``` diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx new file mode 100644 index 0000000000..5eb88832d5 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx @@ -0,0 +1 @@ +Um das Banner-Bild Ihres Servers auf dem Connect-Dashboard anzuzeigen, laden Sie ein Banner-Bild von Ihrer %%WebGUI|web-gui%% unter ***Einstellungen → Anzeigeneinstellungen → Banner*** hoch oder wählen Sie es aus. Dieses Banner erscheint automatisch im Connect-Dashboard für diesen Server. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx new file mode 100644 index 0000000000..51b35979b5 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx @@ -0,0 +1 @@ +Sie können das Dashboard-Layout anpassen, indem Sie Serverkacheln per Drag & Drop verschieben. Klicken Sie im Connect-Dashboard auf die Hamburger-Schaltfläche (≡) einer Kachel, um deren Position neu zu arrangieren. Dies ermöglicht Ihnen, die für Sie wichtigsten Informationen und Dienste zu priorisieren. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx new file mode 100644 index 0000000000..619a4081e5 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx @@ -0,0 +1 @@ +Zwischen dem dunklen und dem hellen Modus wechseln Sie, indem Sie auf das Sonnen- oder Mondsymbol ganz rechts in der Connect-UI klicken. Ihre Themenpräferenz wird sofort auf dem gesamten Connect-Dashboard angewendet, um ein konsistentes Erlebnis zu gewährleisten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx new file mode 100644 index 0000000000..0fc503ea51 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx @@ -0,0 +1,5 @@ +**Dynamischer Fernzugriff** bietet sicheren, bedarfsorientierten Zugriff auf Ihr %%WebGUI|web-gui%%. + +- **Zugriff ist nur aktiviert, wenn Sie ihn benötigen.** Das %%WebGUI|web-gui%% bleibt standardmäßig vor dem Internet verborgen und minimiert die Angriffsfläche. +- **Funktioniert mit %%UPnP|upnp%% oder manueller Portweiterleitung.** +- **Öffnet und schließt automatisch den Zugriff** über das Connect-Dashboard oder die API, mit zeitlich begrenzten Sitzungen für zusätzliche Sicherheit. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx new file mode 100644 index 0000000000..f67111df61 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx @@ -0,0 +1,4 @@ +**Statischer Fernzugriff** hält Ihr %%WebGUI|web-gui%% kontinuierlich aus dem Internet verfügbar. + +- **Der Server ist immer über das Internet erreichbar** über den konfigurierten Port. +- **Höheres Risiko:** Das %%WebGUI|web-gui%% ist zu jeder Zeit für den WAN-Verkehr exponiert, was die potenzielle Verwundbarkeit erhöht. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx new file mode 100644 index 0000000000..35a3c8276a --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx @@ -0,0 +1,155 @@ +--- +sidebar_position: 3 +sidebar_label: Fernzugriff +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RemoteAccessDynamic from './partials/remote-access/dynamic.mdx'; +import RemoteAccessStatic from './partials/remote-access/static.mdx'; + +# Fernzugriff + +Entsperren Sie den sicheren, browserbasierten Zugriff auf Ihr Unraid WebGUI von überall mit Fernzugriff. Diese Funktion ist ideal, um Ihren Server zu verwalten, wenn Sie nicht zu Hause sind - keine komplizierte Netzwerkeinrichtung oder VPN-Tunnel erforderlich. Für fortgeschrittenere Anforderungen, wie das Verbinden mit Docker-Containern oder der Zugriff auf Netzlaufwerke, bleibt ein VPN-Tunnel die empfohlene Lösung. + +:::important[Security erinnerung] +Bevor Sie den Fernzugriff aktivieren, stellen Sie sicher, dass Ihr Root-Passwort stark und einzigartig ist. Aktualisieren Sie es auf der Seite **Benutzer**, wenn erforderlich. Halten Sie außerdem Ihr Unraid OS auf die neueste Version aktualisiert, um sich gegen Sicherheitslücken zu schützen. [Erfahren Sie hier mehr darüber, wie Sie Unraid aktualisieren können](../unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx). +::: + +Fernzugriff über Unraid Connect bietet: + +- **Bequemlichkeit** - Greifen Sie schnell auf die Verwaltungsoberfläche Ihres Servers von überall zu, mit einer sicheren, cloudverwalteten Verbindung. +- **Sicherheit** - Dynamische Zugriffsmodi begrenzen die Exposition, indem der Zugang zum Internet nur dann erlaubt ist, wenn es nötig ist, was die Risiken durch automatisierte Angriffe reduziert. +- **Einfachheit** - Keine Notwendigkeit für manuelle Portweiterleitungen oder VPN-Client-Einrichtung für grundlegende Verwaltungsaufgaben. + +:::tip +Für vollen Netzwerkzugang oder weitergehende Anwendungen, betrachten Sie die Einrichtung von [Tailscale](../unraid-os/system-administration/secure-your-server/tailscale.mdx) oder einer VPN-Lösung. +::: + +--- + +## Erstkonfiguration + +Zum Aktivieren des Fernzugriffs: + +1. Navigieren Sie im Unraid-%%WebGUI|web-gui%% zu ***Einstellungen → Verwaltungszugriff***. +2. Überprüfen Sie den **HTTPS-Port** (Standard: 443). Wenn dieser Port verwendet wird (z. B. von Docker), wählen Sie einen freien Port über 1000 (z. B. 3443, 4443 oder 5443). +3. Klicken Sie auf **Anwenden**, wenn Sie Einstellungen geändert haben. +4. Unter **CA-signierte Zertifikatdatei**, klicken Sie auf **Provisionieren**, um ein vertrauenswürdiges Zertifikat zu erstellen. + +Ihr Unraid Server wird bereit sein, sichere Fernverbindungen über das %%WebGUI|web-gui%% zu akzeptieren, mit dem konfigurierten Port und einem vertrauenswürdigen Zertifikat. + +--- + +## Auswahl eines Fernzugriffstyps + +Unraid Connect bietet zwei Modi: + + + + + + + + + + + +| Funktion | Dynamischer Fernzugriff | Statischer Fernzugriff | +| -------------------------------------- | ----------------------------------------- | --------------------------------- | +| %%WebGUI\|web-gui%% offen zum Internet | Nur wenn aktiviert | Immer Erlauben | +| Angriffsfläche | Minimiert | Maximiert | +| Automatisierung | Automatisch öffnen/schließen über Connect | Manuelle Einrichtung, immer offen | +| UPnP Unterstützung | Ja | Ja | +| | **Empfohlen für die meisten** | | + +## Einrichten des dynamischen Fernzugriffs + +Um dynamischen Fernzugriff einzurichten: + +1. Wählen Sie in ***Einstellungen → Verwaltungszugriff → Unraid API*** eine dynamische Option aus dem Dropdown-Menü für Fernzugriff: + - **Dynamisch - UPnP:** Verwendet %%UPnP|upnp%%, um automatisch zufällige Ports zu öffnen und zu schließen (erfordert %%UPnP|upnp%%-Aktivierung auf Ihrem Router). + - **Dynamisch - Manuelle Portweiterleitung:** Erfordert, dass Sie den ausgewählten Port manuell auf Ihrem Router weiterleiten. + +2. Navigieren Sie zu [Unraid Connect](https://connect.myunraid.net/), und gehen Sie zur Verwaltungs- oder Serverdetailseite. + +3. Die **Dynamische Fernzugriff**-Karte zeigt eine Schaltfläche, wenn Ihr Server von Ihrem Standort aus nicht erreichbar ist. + +4. Klicken Sie auf die Schaltfläche, um WAN-Zugriff zu aktivieren. Wenn Sie %%UPnP|upnp%% verwenden, wird ein neues Port-Forward-Leasing erstellt (in der Regel für 30 Minuten) und während der Aktivität automatisch erneuert. + +5. Die Karte zeigt den aktuellen Status und den Zustand von %%UPnP|upnp%% an. + +6. Nach 10 Minuten Inaktivität – oder wenn Sie auf **Fernzugriff deaktivieren** klicken – wird der Internetzugang automatisch widerrufen. %%UPnP|upnp%%-Leases werden ebenfalls entfernt. + +--- + +## Verwendung von UPnP (Universal Plug and Play) + +%%UPnP|upnp%% automatisiert die Portweiterleitung und vereinfacht den Fernzugriff, ohne dass eine manuelle Routerkonfiguration erforderlich ist. + +Um %%UPnP|upnp%% zu konfigurieren: + +1. **Aktivieren Sie %%UPnP|upnp%% auf Ihrem Router.** + Stellen Sie sicher, dass Ihr Router %%UPnP|upnp%% unterstützt und überprüfen Sie, ob es in den Router-Einstellungen aktiviert ist. + +2. **Aktivieren Sie %%UPnP|upnp%% in Unraid.** + Gehen Sie zu ***Einstellungen → Zugriffsverwaltung*** und ändern Sie **Nutze %%UPnP|upnp%%** zu **Ja**. + +3. **Wählen Sie %%UPnP|upnp%% in Unraid Connect.** + Auf der Einstellungsseite von Unraid Connect wählen Sie die Fernzugriffsoption als %%UPnP|upnp%% (entweder Dynamisch oder Immer An wählen) und klicken dann auf **Übernehmen**. + +4. **Überprüfen Sie die Portweiterleitung (nur Immer An).** + Klicken Sie auf die **Prüfen**-Taste. Bei Erfolg sehen Sie die Nachricht: "Ihr Unraid-Server ist über das Internet erreichbar." + + Bei dynamischer Weiterleitung müssen Sie auf **Dynamischen Fernzugriff aktivieren** in [Unraid Connect](https://connect.myunraid.net/) klicken, um Zugriff zu gewähren. + +:::caution\[Troubleshooting] + +Wenn sich die Einstellung beim Neuladen von %%UPnP|upnp%% auf manuelle Portweiterleitung ändert, kann es sein, dass Unraid nicht mit Ihrem Router kommunizieren kann. Überprüfen Sie, ob %%UPnP|upnp%% aktiviert ist, und erwägen Sie, die Firmware Ihres Routers zu aktualisieren. + +::: + +--- + +## Verwendung der manuellen Portweiterleitung + +Manuelle Portweiterleitung bietet mehr Kontrolle und ist mit den meisten Routern kompatibel. + +Um die manuelle Portweiterleitung zu konfigurieren: + +1. **Wählen Sie einen WAN-Port:** Wählen Sie eine zufällige Portnummer über 1000 (zum Beispiel 13856 oder 48653), anstelle des Standards 443. + +2. **Einstellungen in Unraid anwenden:** Klicken Sie auf **Anwenden**, um den gewählten Port zu speichern. + +3. **Konfigurieren Sie Ihren Router:** Richten Sie eine Portweiterleitungsregel auf Ihrem Router ein, die den von Ihnen gewählten WAN-Port auf den HTTPS-Port Ihres Servers leitet. Die Unraid-Schnittstelle stellt die richtigen Ports und die IP-Adresse bereit. + + Einige Router erfordern möglicherweise, dass der WAN-Port und der HTTPS-Port übereinstimmen. Verwenden Sie in diesem Fall dieselbe hohe Zufallszahl für beide. + +4. **Überprüfen Sie die Portweiterleitung (nur immer eingeschaltet):** Drücken Sie die Schaltfläche **Prüfen**. Wenn alles korrekt ist, sehen Sie „Ihr Unraid-Server ist vom Internet aus erreichbar.“ + + Bei dynamischer Weiterleitung klicken Sie auf **Dynamischen Fernzugriff aktivieren** in [Unraid Connect](https://connect.myunraid.net/), um den Zugriff zu aktivieren. + +5. **Zugriff auf Ihren Server:** Melden Sie sich bei [Unraid Connect](https://connect.myunraid.net/) an und klicken Sie auf den **Verwalten**-Link, um sich remote mit Ihrem Server zu verbinden. + +--- + +## Sicherer lokaler Zugriff aktivieren + +Sicherer lokaler Zugriff stellt sicher, dass alle Verbindungen zu Ihrem Unraid-%%WebGUI|web-gui%%, sogar innerhalb Ihres Heim- oder Büronetzwerks, mit HTTPS verschlüsselt werden, um alle sensiblen Informationen, wie Anmeldedaten und Konfigurationsdaten, zu schützen. + +Zu den Vorteilen des sicheren lokalen Zugriffs gehören: + +- **Verschlüsselung** - Alle zwischen Ihrem Browser und dem Server ausgetauschten Daten sind geschützt. +- **Konsistenz** - Verwenden Sie dieselbe sichere URL für sowohl lokalen als auch Fernzugriff. +- **Einhaltung** - Befolgt die Sicherheitsbestenpraktiken zum Schutz administrativer Schnittstellen. + +Um sicheren lokalen Zugriff zu aktivieren: + +1. Gehen Sie zu ***Einstellungen → Verwaltungszugriff***. +2. Überprüfen Sie im Bereich **CA-signiertes Zertifikat** auf Warnungen zu DNS-Rebinding. + - Wenn keine Warnungen angezeigt werden, setzen Sie **SSL/TLS verwenden** auf **Strikt**. + - Wenn Warnungen vorhanden sind, lesen Sie [DNS-Rebinding-Schutz](../unraid-os/system-administration/secure-your-server/securing-your-connection.mdx#dns-rebinding-protection). + +:::important +Mit %%SSL|ssl%%/%%TLS|tls%% auf Strict gesetzt, müssen Client-Geräte den DNS-Namen Ihres Servers auflösen. Wenn Ihre Internetverbindung ausfällt, kann der Zugriff auf das %%WebGUI|web-gui%% verloren gehen. In [Zugriff auf Ihren Server, wenn DNS ausgefallen ist](../unraid-os/system-administration/secure-your-server/securing-your-connection.mdx#accessing-your-server-when-dns-is-down) finden Sie Wiederherstellungsschritte. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/_category_.json new file mode 100644 index 0000000000..a732ac293f --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Unraid OS", + "position": 1, + "link": { + "type": "generated-index" + } +} diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json new file mode 100644 index 0000000000..13ee84114a --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Erweiterte Konfigurationen", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json new file mode 100644 index 0000000000..5654d53023 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Speicher optimieren", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000..185755c380 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx @@ -0,0 +1,342 @@ +--- +sidebar_position: 1 +sidebar_label: ZFS-Speicher +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZFS-Speicher + +:::important[Special Danke] +Wir möchten unseren Dank an Ed Rawlings (\[Spaceinvader One])([https://www.youtube.com/c/SpaceinvaderOne](https://www.youtube.com/c/SpaceinvaderOne))) für das Fachwissen und die Anleitung zum Ausdruck bringen, von denen diese %%ZFS|zfs%%-Speicherdokumentation angepasst wurde. Seine Tutorials und Erkenntnisse haben zahllosen Unraid-Nutzern geholfen, fortgeschrittene Speichertechniken zu meistern. Wir schätzen seine anhaltenden Beiträge zur Unraid-Gemeinschaft sehr. +::: + +%%ZFS|zfs%% bietet erweiterte Datenintegrität, flexible Speicherlösungen und hohe Leistung für Ihr Unraid-System. Dieser Leitfaden erklärt die Kernkonzepte von %%ZFS|zfs%% und führt Sie durch die Verwaltung von %%ZFS|zfs%%-Pools direkt über das Unraid %%WebGUI|web-gui%%. Egal, ob Sie neuen %%ZFS|zfs%%-Speicher einrichten oder einen bestehenden Pool integrieren, hier finden Sie die Schritte und den Kontext, die Sie benötigen, um sicher zu starten. + +--- + +## Warum ZFS? + +ZFS ist ein modernes Dateisystem und Volume-Manager, der Ihre Daten schützt, Korruption verhindert und die Speicherverwaltung vereinfacht. + +Mit ZFS erhalten Sie: + +- Automatische Datenintegritätschecks und Selbstheilung +- Eingebaute RAID-Unterstützung (Spiegelungen, RAIDZ) +- %%Snapshots|snapshot%% und Klone für einfache Backups und Rollbacks +- ZFS send/receive für effiziente Replikation +- Kompression in Echtzeit + +Unraid supports %%ZFS|zfs%% for any storage pool. You can create a new %%ZFS|zfs%% pool, import one from another system, or use Unraid’s unique hybrid %%ZFS|zfs%% setup: add a %%ZFS|zfs%%-formatted disk directly to the Unraid %%array|array%% (not a pool) and combine %%ZFS|zfs%% features with Unraid’s %%parity|parity%% protection. + +:::info\[Example] + +You can use %%ZFS|zfs%% %%snapshots|snapshot%% and replication on a single disk as a backup target, or replicate a fast SSD %%ZFS|zfs%% pool to a %%ZFS|zfs%% disk in the %%array|array%% protected by Unraid %%parity|parity%% - getting the best of both worlds. + +::: + +
+ ![](/img/zfs1.png) +
+ +:::note +The hybrid %%ZFS|zfs%%-in-array approach is helpful for specific backup or replication scenarios but is not a replacement for a full %%ZFS|zfs%% pool. %%ZFS|zfs%% disks in the %%array|array%% are managed individually; you do not get the combined performance, redundancy, or self-healing of a true multi-disk %%ZFS|zfs%% pool. For full %%ZFS|zfs%% functionality, always use dedicated %%ZFS|zfs%% pools. +::: + +### Pools, Vdevs und Redundanz + +Ein %%ZFS|zfs%%-Pool (genannt „zpool“) besteht aus einem oder mehreren vdevs (virtuelle Geräte). Jedes vdev ist eine Gruppe physischer Festplatten mit einem eigenen Redundanzlevel. %%ZFS|zfs%% schreibt Daten über vdevs, aber jedes vdev ist für seine Ausfallsicherheit verantwortlich. + +:::caution +Redundanz gilt immer pro vdev. Wenn ein vdev ausfällt, fällt der gesamte Pool aus, auch wenn andere vdevs gesund sind. Planen Sie Ihre vdevs sorgfältig! +::: + +
+ ![](/img/zfs2.png) +
+ +--- + +## Erstellen eines ZFS-Pools + +So erstellen Sie einen ZFS-Pool über das WebGUI: + +1. Stoppen Sie das %%array|array%%. +2. **Pool hinzufügen** klicken. + +
+ ![](/img/zfs3.png) +
+ +3. Wählen Sie einen Namen für Ihren Pool (zum Beispiel `raptor`). +4. Stellen Sie die Anzahl der Slots auf die Anzahl der Festplatten ein, die Sie in Ihren primären Daten-Vdev(s) haben möchten. + +:::note +Diese anfängliche Steckplatzanzahl gilt nur für Daten-vdevs. Unterstützungs-vdevs (wie Protokoll- oder Cache-Laufwerke) können nach der Erstellung des Pools separat hinzugefügt werden. +::: + +
+ ![](/img/zfs4.png) +
+ +5. Weisen Sie dem Pool Festplatten zu (die Reihenfolge spielt keine Rolle). + +
+ ![](/img/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) +
+ +8. Wählen Sie Ihr Zuordnungsprofil - dies bestimmt die Redundanz und Leistung Ihres Pools. + +:::tip +Überprüfen Sie vor dem Abschluss die Abschnitte über Zuordnungsprofile und Topologie, um eine fundierte Entscheidung zu treffen. +::: + +
+ ![](/img/zfs7.png) +
+ +
+ ![](/img/zfs8.png) +
+ +9. Aktivieren Sie die Komprimierung, wenn gewünscht (empfohlen für die meisten Workloads). +10. Klicken Sie auf **Erledigt**, dann starten Sie das %%array|array%%. + +--- + +## Eine ZFS-Disk ins Array integrieren (Hybrid-Setup) + +You can add a standalone %%ZFS|zfs%% disk to your Unraid %%array|array%% (not a %%ZFS|zfs%% pool) to combine %%ZFS|zfs%% features with Unraid's %%parity|parity%% protection. + +:::info[What this enables] +- **Parity-Schutz:** Die ZFS-Festplatte ist durch die %%array|array%%-%%parity|parity%% von Unraid geschützt, wodurch Ihre Daten vor einzelnen (oder mehreren, abhängig von Ihren %%parity drives|parity-drives%%) Festplattenausfällen gesichert sind. + +- **Datenintegrität:** %%ZFS|zfs%% bietet Integritätsprüfungen auf Blockebene (Prüfsummen). Während eine einzelne Festplatte nicht zur Selbstheilung von Bitrot fähig ist, erkennt %%ZFS|zfs%% Korruption und warnt Sie, sodass Sie vor einem schleichenden Datenverlust aus einem Backup wiederherstellen können. + +- **%%ZFS|zfs%% features:** You can utilize %%ZFS|zfs%% %%snapshots|snapshot%% and replication on this disk, making it ideal for backup targets, specific datasets, or scenarios where you want %%ZFS|zfs%% features alongside traditional Unraid storage. +::: + +To add a %%ZFS|zfs%% disk to the %%array|array%%: + +1. Gehen Sie zum **Main**-Tab im %%WebGUI|web-gui%%. +2. Stoppen Sie das %%array|array%%. +3. Klicken Sie auf einen leeren Slot unter **Array Devices**. +4. Wählen Sie die Festplatte aus, die Sie hinzufügen möchten. + +
+ ![](/img/zfs9.png) +
+ +5. Wählen Sie unter **Dateisystem** `zfs` oder `zfs-verschlüsselt`. + +
+ ![](/img/zfs10.png) +
+ +6. Klicken Sie auf **Übernehmen**. +7. Starten Sie das %%array|array%% und lassen Sie die Festplatte bei Bedarf formatieren. + +--- + +## Wahl eines Zuordnungsprofils + +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) +
+ +| Profil | Redundanz | Leistung | Erweiterung | Speichereffizienz | Typischer Anwendungsfall | +| ------- | ---------------------------- | --------------------------------------------------------------------------------- | -------------------------------- | ----------------- | ------------------------------------------ | +| Stripe | Keine | Schnell, aber riskant | Hinzufügen von mehr Festplatten | 100% | Temporärer/zwischengespeicherter Speicher | +| Spiegel | 1:1 (%%RAID 1\|raid1%%-Stil) | Hervorragend für zufällige I/O | Hinzufügen von mehr Spiegelungen | 50% | Hohe Leistung, einfache Erweiterung | +| RAIDZ1 | 1 Festplatte pro Vdev | Schnell für große Dateien. Nicht ideal für kleine oder zufällige Schreibvorgänge. | Neue Vdevs hinzufügen | Hoch | Allgemeine Nutzung, 1-Festplatten-Toleranz | +| RAIDZ2 | 2 Festplatten pro Vdev | Wie Z1, aber leicht langsamere Schreibvorgänge (zusätzliche Parität) | Neue Vdevs hinzufügen | Mäßig | Wichtige Daten, 2-Festplatten-Toleranz | +| RAIDZ3 | 3 Festplatten pro Vdev | Wie Z2, mit mehr Schreibaufwand (für maximale Sicherheit) | Neue Vdevs hinzufügen | Niedriger | Mission-kritisch, 3-Festplatten-Toleranz | + +:::important[How to choose] +- Verwenden Sie **Mirror**, wenn Sie die beste Leistung und einfache, flexible Erweiterung wünschen und es Ihnen nichts ausmacht, mehr Speicherplatz für Redundanz zu nutzen. +- Wählen Sie **RAIDZ1/2/3**, wenn Sie den nutzbaren Speicher maximieren und große Dateien speichern möchten, beachten Sie jedoch, dass die Erweiterung weniger flexibel ist und die Leistung bei zufälligem Schreiben geringer ist. +- **Stripe** ist nur für nicht-kritische, temporäre Daten geeignet – bei Ausfall einer Festplatte verlieren Sie alles. +::: + +--- + +## Topologie und Erweiterung + +Wie Sie Festplatten in Vdevs gruppieren, beeinflusst sowohl die Datensicherheit als auch die Geschwindigkeit. + +
+ ![](/img/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. +- Sie gewinnen eine bessere parallele Leistung, wenn Sie Laufwerke in mehrere kleinere RAIDZ1-vdevs aufteilen. Seien Sie vorsichtig; wenn zwei Laufwerke im selben vdev ausfallen, verlieren Sie den gesamten Pool. +- ZFS streift Daten über Vdevs, nicht einzelne Festplatten, daher können mehr Vdevs bei Workloads mit vielen kleinen Dateien oder zufälligen I/O zu besseren Leistungen führen. +- Das Erweitern eines ZFS-Pools bedeutet in der Regel das Hinzufügen eines neuen Vdevs mit demselben Layout, nicht nur einer einzelnen Festplatte. + +:::tip +Plan your pool’s layout to fit your needs and future growth. Unlike the Unraid %%array|array%%, you can’t add a single disk to an existing vdev using the %%WebGUI|web-gui%%. +::: + +--- + +## Kompression und RAM + +%%ZFS|zfs%% bietet erweiterte Funktionen, die die Speichereffizienz und Leistung von Unraid erheblich verbessern können. Zwei gängige Interessensthemen sind Komprimierung und Speicheranforderungen. + +ZFS-Kompression arbeitet transparent – sie funktioniert im Hintergrund und schrumpft Daten, bevor sie die Festplatte erreicht. + +Dies bietet zwei wesentliche Vorteile: + +- **Reduzierte Festplattennutzung:** Weniger Speicherplatz wird genutzt. +- **Verbesserte Leistung:** Weniger Daten zu schreiben und zu lesen kann zu schnelleren Vorgängen führen, besonders bei modernen CPUs. + +
+ ![](/img/zfs13.png) +
+ +:::tip +Aktivieren Sie die %%ZFS|zfs%%-Komprimierung für die meisten Unraid %%ZFS|zfs%%-Pools. Sie ist sicher, effizient und beeinträchtigt selten die Kompatibilität oder Stabilität. +::: + +
+ Der ZFS RAM-Mythos - Klicken, um ein-/auszuklappen + + Vielleicht sind Sie auf die veraltete Empfehlung gestoßen: „%%ZFS|zfs%% benötigt 1 GB RAM pro 1 TB Speicher.“ Dies ist für die meisten Benutzer nicht mehr zutreffend. %%ZFS|zfs%% nutzt RAM für seinen Adaptive Replacement Cache (ARC), der häufig abgerufene Lesevorgänge beschleunigt. + + 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) +
+
+ +:::info +%%ZFS|zfs%% skaliert gut mit verfügbarem Speicher. Mehr RAM kann die Cache-Leistung verbessern, aber %%ZFS|zfs%% funktioniert zuverlässig mit bescheidenen Hardwarevoraussetzungen. Lassen Sie sich durch alte Empfehlungen nicht davon abhalten, %%ZFS|zfs%% auf Unraid zu verwenden. +::: + +--- + +## Importieren von auf anderen Systemen erstellten ZFS-Pools + +Unraid kann mit minimalem Aufwand ZFS-Pools importieren, die auf anderen Plattformen erstellt wurden. + +
+ So importieren Sie einen ZFS-Pool - Klicken, um ein-/auszuklappen + + 1. **Array stoppen:** Stellen Sie sicher, dass Ihr Unraid-%%array|array%% angehalten ist. + 2. **Neuen Pool hinzufügen:** Klicken Sie auf **Pool hinzufügen**. + 3. **Alle Laufwerke zuweisen:** + - Stellen Sie **Anzahl der Daten-Slots** auf die Gesamtzahl der Laufwerke in Ihrem ZFS-Pool ein (einschließlich Daten-Vdevs und Support-Vdevs). + - Weisen Sie jedem Laufwerk den richtigen Slot zu. + - *Beispiel:* Für einen Pool mit einem 4-Laufwerke gespiegelt vdev und einem 2-Laufwerke L2ARC vdev, setzen Sie 6 Slots und weisen Sie allen sechs Laufwerken zu. + 4. **Stellen Sie Dateisystem auf "Auto":** Klicken Sie auf den Pool-Namen (z.B. `raptor`) und stellen Sie **Dateisystem** auf **Auto**. + 5. **Abschließen und Array starten:** Klicken Sie auf **Erledigt**, dann starten Sie das %%array|array%%. + + :::info[Automatische Erkennung] + Unraid erkennt und importiert den %%ZFS|zfs%%-Pool automatisch. Unterstützungs-vdevs (wie Log, Cache/L2ARC, Special/Dedup) werden unter **Subpools** im %%WebGUI|web-gui%% aufgelistet. Es ist nicht erforderlich, Subpools nach dem Start des Imports separat hinzuzufügen. Unraid importiert sie automatisch zusammen mit den Hauptdatenträgern, wenn alle erforderlichen Laufwerke zugewiesen sind. + ::: + + Es wird dringend empfohlen, nach dem Import einen %%scrub|scrub%% durchzuführen, um die Datenintegrität zu überprüfen. + + - Klicken Sie auf den Poolnamen (z.B. `raptor`), um seine Konfiguration zu öffnen. + - Unter **Poolstatus** den Status überprüfen und auf **Scrub** klicken. + +
+ ![](/img/zfs15.png) +
+
+ +--- + +## Unterstützende vdevs (Unterpools) + +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) +
+ +| Unterstützender vdev (Unterpool) | Zweck | Risiko/Notizen | +| -------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| Spezial-vdev | Speichert Metadaten und kleine Dateien | Der Pool wird unlesbar, wenn verloren. | +| Dedup vdev | Ermöglicht Deduplizierung | Erfordert große Mengen an RAM; riskant für die meisten Benutzer. Vermeiden Sie dies, es sei denn, Sie haben spezifische Bedürfnisse. | +| Log vdev (SLOG) | Verbessert die Synchronisierungs-Schreibleistung | Optional. Nur vorteilhaft für bestimmte Arbeitslasten. | +| Cache vdev (L2ARC) | Bietet SSD-basierten Lese-Cache | Optional. Kann die Lesegeschwindigkeit für große Arbeitsmengen verbessern. | +| Ersatz vdev | In Unraid nicht unterstützt (ab 7.1.2) | | + +:::caution +Die meisten Unraid-Benutzer sollten Unterstützungs-vdevs/Subpools vermeiden, es sei denn, Sie haben spezifische und gut verstandene Anforderungen. Sie sind für spezialisierte Arbeitslasten ausgelegt und können bei missbräuchlicher Verwendung Komplexität oder Risiko einführen. +::: + +--- + +## Kritische unterstützende vdev-Laufwerke beim Import nicht zugewiesen + +When you import a %%ZFS|zfs%% pool into Unraid, you need to assign every drive from your original pool, including those used for support vdevs, to the pool slots. Unraid will automatically recognize each drive’s role (data, log, cache, special, or dedup) once the %%array|array%% starts. You don’t need to specify which drive serves what purpose manually. + +Wenn Sie vergessen, ein Laufwerk, das Teil eines unterstützenden vdev war, beim Import einzubeziehen, hängt das Ergebnis von der Funktion des vdev ab: + +| vdev-Typ | Wenn das Laufwerk beim Import fehlt | Ergebnis | +| ---------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Spezial-vdev oder Dedup vdev | Pool wird nicht importiert oder ist unbenutzbar | These vdevs store critical metadata or deduplication tables. Without them, %%ZFS\|zfs%% cannot safely mount the pool. | +| Log (SLOG) vdev | Pool wird importiert, aber die Synchronisierungs-Schreibleistung nimmt ab. | Der Pool bleibt zugänglich, aber Sie könnten eine langsamere Leistung für Arbeitslasten bemerken, die auf Synchronisierungs-Schreibvorgänge angewiesen sind. | +| Cache (L2ARC) vdev | Pool wird importiert, aber der Lese-Cache geht verloren | Der Pool funktioniert normal, aber Sie verlieren die Leistungssteigerung durch den L2ARC-Cache. Es gehen keine Daten verloren. | + +:::tip +Weisen Sie beim Importieren in Unraid immer alle physischen Laufwerke aus Ihrem ursprünglichen %%ZFS|zfs%%-Pool zu, einschließlich aller Unterstützungs-vdevs. Dies gewährleistet eine reibungslose Erkennung und Integration. Für neue in Unraid erstellte Pools sind Unterstützungs-vdevs optional und für die meisten Benutzer in der Regel nicht erforderlich. +::: + +--- + +## Speicher erweitern + +%%ZFS|zfs%% ist mächtig, aber es ist wichtig zu verstehen, wie seine Speichererweiterung funktioniert - besonders wenn Sie zukünftiges Wachstum planen. + +Historisch gesehen haben %%ZFS|zfs%%-vdevs eine feste Breite. Sie können kein Laufwerk zu einem bestehenden RAIDZ-vdev hinzufügen, um es größer zu machen. + +Möglichkeiten zur Erweiterung Ihres Pools umfassen: + +- **Hinzufügen eines neuen vdevs:** Erweitern Sie Ihren Pool durch Hinzufügen eines neuen vdevs (wie einer neuen Spiegelung oder einer RAIDZ-Gruppe). Dies erhöht die Kapazität, aber Sie müssen Laufwerke in Sätzen hinzufügen, die der Konfiguration des vdevs entsprechen. +- **Ersetzen von Laufwerken durch größere:** Tauschen Sie jedes Laufwerk in einem vdev nacheinander gegen eine größere Festplatte. Siehe [Laufwerkserweiterung](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-faileddisabled-disks) für detaillierte Verfahren. Nachdem alle Laufwerke ersetzt und der Pool aufgelöst wurden, erhöht sich die Kapazität des vdevs. +- **Erstellen eines neuen Pools:** Das Starten eines neuen %%ZFS|zfs%% Pools hält Dinge für verschiedene Datentypen oder Arbeitslasten organisiert und unabhängig. + +:::tip[Planning ahead] +Bevor Sie Ihren Pool aufbauen, überlegen Sie, wie viel Speicher Sie benötigen werden - nicht nur heute, sondern auch in der Zukunft. %%ZFS|zfs%% belohnt gutes Planen, insbesondere wenn Sie störende Erweiterungen später vermeiden möchten. +::: + +--- + +## Die Verwendung von ZFS-Pools auf einem vorhandenen Unraid-Server + +Wenn Sie ein traditionelles Unraid %%array|array%% laufen haben und %%ZFS|zfs%% Pools hinzufügen möchten, finden Sie hier einige effektive Möglichkeiten, sie zu integrieren: + +| Anwendungsfall | Beschreibung | Details / Beispiele | +| ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| Schneller SSD/NVMe-Pool für App-Daten & Docker | Store the appdata share for fast, responsive containers and databases. This supports %%snapshot\|snapshot%%s for easy rollbacks and can also host %%VM\|vm%%s for high I/O. | Viele Benutzer wählen einen 2-Laufwerk-%%ZFS\|zfs%%-Mirror für diesen Zweck. Es ist einfach zu erweitern und bietet starke Leistung. | +| ZFS-Pool für wichtige Daten | Use a %%ZFS\|zfs%% mirror or RAIDZ2 pool for irreplaceable files like photos, tax records, and %%user share\|user-share%% data. %%ZFS\|zfs%% checks for corruption and self-heals with redundancy. | Dieses Setup schützt kritische Daten mit automatischen Integritätsüberprüfungen und Selbstheilungsmöglichkeiten. | +| Tägliches Backup oder Replikationsziel | Use a %%ZFS\|zfs%% disk (even within the Unraid %%array\|array%%) as a replication target. You can replicate other pools locally or from another Unraid server. | Nutzen Sie `zfs send/receive` oder Tools wie Syncoid für schnelle und zuverlässige Backups und Wiederherstellungen. | +| %%Snapshot\|snapshot%%-basierte Wiederherstellungspool | Keep point-in-time %%snapshot\|snapshot%%s of critical data or containers. %%snapshot\|snapshot%%s can be auto-scheduled and are space-efficient. | Diese Funktion ermöglicht eine schnelle Wiederherstellung nach versehentlichen Löschungen oder Fehleinstellungen. | + +## Vermeidung häufiger ZFS-Fehler + +%%ZFS|zfs%% ist ein leistungsstarkes Dateisystem, jedoch gibt es einige häufige Fallstricke, die seine Vorteile untergraben können. Es ist wichtig, die folgenden Punkte zu beachten, bevor Sie Ihren Pool konfigurieren, um eine reibungslosere Erfahrung zu gewährleisten: + +- **Laufwerksgrößen-Mismatch in RAIDZ:** %%ZFS|zfs%% behandelt alle Festplatten in einem RAIDZ-vdev als die Größe der kleinsten. Um die beste Effizienz zu gewährleisten, verwenden Sie immer gleich große Laufwerke innerhalb jedes vdevs. + +- **Erweiterung von RAIDZ-vdevs über das %%WebGUI|web-gui%%:** Während Unraid Version 7.1.x und neuer die Erweiterung von RAIDZ über die Befehlszeile unterstützt, ist diese Funktion im %%WebGUI|web-gui%% noch nicht verfügbar. Zurzeit erweitern Sie über die CLI oder fügen neue vdevs über die GUI hinzu. + +- **%%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. + +- **Deduplikation ohne ausreichenden RAM:** Deduplikation erfordert beträchtlichen Speicher, und die Aktivierung ohne ausreichenden RAM kann die Leistung erheblich beeinträchtigen. Aktivieren Sie die Deduplikation nur, wenn Sie die Anforderungen vollständig verstehen. + +- **Vdev-Redundanz ist lokal:** Die Redundanz in %%ZFS|zfs%% ist lokal für jedes vdev und nicht über den Pool verteilt. Stellen Sie sicher, dass Sie Ihre vdev-Layout so planen, dass das gewünschte Maß an Widerstandsfähigkeit erreicht wird. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx new file mode 100644 index 0000000000..3a445f61c5 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx @@ -0,0 +1,12 @@ +--- +sidebar_position: 7 +title: Versionsverlauf +--- + +import {VersionsTable} from '@site/src/components/VersionsTable'; + +# Versionsverlauf + +Brauchen Sie den USB Creator? [Erste Schritte mit Unraid](https://unraid.net/getting-started) + + diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json new file mode 100644 index 0000000000..af64d1a956 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Erste Schritte mit Unraid", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json new file mode 100644 index 0000000000..504efd9daf --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Benutzeroberfläche erkunden", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx new file mode 100644 index 0000000000..27e396852e --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx @@ -0,0 +1,21 @@ +--- +sidebar_position: 1 +sidebar_label: Hauptmerkmale +--- + +# Hauptmerkmale + +Sie können Ihr Unraid-System über eine intuitive [Weboberfläche](./tour-the-web-gui.mdx), bekannt als die %%WebGUI|web-gui%%, verwalten. Diese Oberfläche bietet grundlegende Steuerungen für häufige Aufgaben und ermöglicht gleichzeitig erweiterte Anpassungen für erfahrene Benutzer. Unraid wählt automatisch Standardeinstellungen aus, die für die meisten Benutzer geeignet sind, aber es ermöglicht Ihnen auch, diese Einstellungen an Ihre spezifischen Bedürfnisse anzupassen. + +Dieses Design macht Unraid benutzerfreundlich, wenn Einfachheit am wichtigsten ist, und anpassbar, wenn Personalisierung entscheidend ist. Die vereinfachten Verwaltungsfunktionen umfassen: + +- **[Dashboard-Ansicht](./tour-the-web-gui.mdx#1-dashboard)** - Das Dashboard bietet eine detaillierte, Echtzeit-Übersicht Ihres Systems und zeigt Indikatoren für Festplattengesundheit, Temperaturen, Ressourcenauslastung und Anwendungszustände an. +- **[Array-Betrieb](./tour-the-web-gui.mdx#2-main)** - Verwalten Sie Ihr %%array|Array%% mühelos. Sie können Geräte entweder für die Nutzung im %%array|Array%% oder %%cache|Cache%% zuweisen, einzelne Festplatten hoch- oder herunterfahren, das %%array|Array%% starten und stoppen und sogar %%parity checks|Paritätsprüfungen%% im Handumdrehen durchführen – alles auf einer einzigen Seite. +- **[Freigabeverwaltung](../../using-unraid-to/manage-storage/shares.mdx)** - Das Einrichten von Freigaben in Unraid ist unkompliziert. Geben Sie einfach der Freigabe einen Namen, wählen Sie optional Zugriffs- und Verteilungsrichtlinien aus und klicken Sie auf "Erstellen!" +- **[Festplatten-Optimierung](../set-up-unraid/customize-unraid-settings.mdx#disk-settings)** - Steuern Sie, wie und wann Geräte heruntergefahren werden, wählen Sie das Standard-Dateisystemformat und passen Sie andere erweiterte Einstellungen an, um den Verschleiß und den Stromverbrauch Ihrer Geräte zu reduzieren. +- **[Network Controls](../set-up-unraid/customize-unraid-settings.mdx#network-settings)** - Enable %%NIC bonding|nic-bonding%% and %%bridging|nic-bridging%%, set time servers, and configure additional network settings. +- **[APC-UPS-Sicheres Herunterfahren](../set-up-unraid/customize-unraid-settings.mdx#ups-settings)** - Wenn Unraid mit einer APC-UPS verbunden ist, kann es das System bei einem Stromausfall sicher herunterfahren. +- **[Systembenachrichtigungen](../set-up-unraid/customize-unraid-settings.mdx#notification-settings)** - Unraid kann Sie über wichtige Ereignisse sowohl durch die Web-Verwaltungskonsole als auch per E-Mail und andere Benachrichtigungssysteme informieren. +- **[Task Scheduler](../set-up-unraid/customize-unraid-settings.mdx#scheduler)** - Specify when to perform automatic %%parity checks|parity-check%% and how often the %%Mover|mover%% script should transfer files from the %%cache|cache%% to the %%array|array%%. +- **[Docker-Container](../../using-unraid-to/run-docker-containers/overview.mdx)** - Verwalten Sie Anwendungssteuerungen über eine einzige Schnittstelle. Fügen Sie Anwendungen mit minimalem Aufwand mithilfe von Community-Vorlagen hinzu. +- **[Virtuelle Maschinen](../../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx)** - Wählen Sie aus bereits erstellten %%virtuellen Maschinen|vm%% oder erstellen Sie Ihre eigenen benutzerdefinierten %%VMs|vm%% von Grund auf. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx new file mode 100644 index 0000000000..9b78c3393d --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx @@ -0,0 +1,120 @@ +--- +sidebar_position: 2 +--- + +# Führen Sie die WebGUI-Tour durch + +Die %%WebGUI|web-gui%% ist die primäre Schnittstelle für die Verwaltung und Konfiguration Ihres Unraid-Servers. Sie bietet Zugriff auf alle Systemfunktionen, Überwachungstools und Konfigurationsoptionen über eine organisierte Navigationsleiste und benutzerfreundliche Bildschirme. Dieses Layout ist darauf ausgelegt, Ihnen bei der effizienten Verwaltung von Speicher, Benutzern, Anwendungen und Systemeinstellungen über einen beliebigen Webbrowser zu helfen. + +## Die Navigationsleiste + +Die horizontale Navigationsleiste bietet Benutzern Zugriff auf die Hauptfunktionsbereiche des Unraid-Systems. Sie können sie mit Plugins anpassen, um zusätzliche Menüs und Optionen hinzuzufügen, die im Abschnitt [Community Applications](../../using-unraid-to/run-docker-containers/community-applications.mdx) verfügbar sind. + +![Navigationsleiste - Annotiert](/img/navbar3.png) + +### 1. Dashboard + +Der **Dashboard**-Tab bietet eine Echtzeitüberwachung von Hardware- und Softwarekomponenten auf Ihrem Unraid-Server. Er zeigt verschiedene Aspekte der Verwaltung - wie Systemidentifikation, CPU, RAM, Speicher, Netzwerkinformationen, Container, %%VMs|vm%%, Benutzer und Freigaben - in einem Raster von Kacheln an. +![Dashboard tab](/img/dashboard.png) +Sie können das Dashboard mit Plugins aus [Community Applications](../../using-unraid-to/run-docker-containers/community-applications.mdx) erweitern + +### 2. Hauptbereich + +Der **Haupt**-Bildschirm ermöglicht eine effiziente Verwaltung Ihres Unraid-Speichers und Ihrer Festplattenoperationen. Sie können Ihr %%array|Array%%, %%cache pools|Cache-Pools%% und Flash-Geräte konfigurieren sowie USB-Speicher und nicht zugewiesene Geräte, einschließlich Remotefreigaben, verwalten. Er zeigt wichtige Informationen über jedes Speichermedium an, wie Gesundheit, Kapazität und Dateisysteme. +![Hauptregisterkarte](/img/maintab.png) +Am unteren Rand bietet der Abschnitt Array-Operationen Wartungsoptionen, um Ihr %%array|Array%% reibungslos am Laufen zu halten. + +### 3. Freigaben + +Die **Freigaben**-Registerkarte ist in [Benutzerfreigaben](../../using-unraid-to/manage-storage/shares.mdx#user-shares) und [Festplattenfreigaben](../../using-unraid-to/manage-storage/shares.mdx#disk-shares) geteilt. + +Sie können detaillierte Informationen und Verwaltungsoptionen für jede Freigabe durch Auswahl ihres Namens aufrufen. + +### 4. Benutzer + +Der **Benutzer**-Bildschirm ermöglicht die Verwaltung aller Benutzerkonten auf dem Unraid-Server, wie im [Benutzerverwaltungsabschnitt](../../system-administration/secure-your-server/user-management.mdx) beschrieben. + +![Benutzer-Tab](/img/userstab.png) + +### 5. Einstellungen + +Der **Einstellungen**-Bildschirm ermöglicht es Ihnen, alle Systemeinstellungen auf Ihrem Unraid-Server zu verwalten, einschließlich: + +- **Systemeinstellungen**: Konfigurieren Sie Parameter und Verhaltensweisen für die Kernkomponenten von Unraid. +- **Netzwerkdienste**: Richten Sie verschiedene Kommunikationsprotokolle ein und konfigurieren Sie Ihr %%Wireguard|wireguard%% %%VPN|vpn-tunnel%%. +- **Benutzereinstellungen**: Passen Sie individuelle Benutzereinstellungen an, wie Benachrichtigungen und Anzeigeeinstellungen. +- **Benutzer-Werkzeuge**: Verwalten Sie individuelle Hilfsprogramme, die Sie über Plugins hinzugefügt haben. + +![Einstellungen-Tab](/img/settingstab.png) + +### 6. Plugins + +Der **Plugins**-Bildschirm zeigt alle auf Ihrem Unraid-Server installierten Plugins an. + +![Plugins-Tab](/img/pluginstab.png) + +:::note +Für Schritte zur Plugin-Installation siehe [Community Applications](../../using-unraid-to/run-docker-containers/community-applications.mdx). +::: + +### 7. Docker + +Der **Docker**-Bildschirm zeigt alle Container an, die aus den [Community Applications](../../using-unraid-to/run-docker-containers/community-applications.mdx) installiert wurden. Sie können jeden Container starten, stoppen und konfigurieren, einschließlich ihrer Auto-Start-Einstellungen. + +:::note +Für Details zum Ausführen von Docker-Containern siehe [Docker-Container ausführen](../../using-unraid-to/run-docker-containers/overview.mdx). +::: + +### 8. VMs + +Der **VMs**-Bildschirm ermöglicht Ihnen die Verwaltung von %%virtual machines (VMs)|vm%% auf Ihrem Unraid-Server. Er zeigt alle Ihre erstellten %%VMs|vm%% zusammen mit ihren Hauptattributen, wie CPU-Zuweisungen, %%vDisk-Zuordnung|vdisk-allocation%% und Grafikkarteneinstellungen, an. + +:::note +Diese Option wird **nur** in der Navigationsleiste angezeigt, wenn Ihr Unraid-Server die Anforderungen an die %%hardware virtualization|hvm%% erfüllt. +::: + +### 9. Apps + +Der **Apps**-Bildschirm oder "Community Applications" ist die offizielle Quelle für Unraid-Apps. + +![Apps-Tab](/img/appstab.png) + +Es bietet von der Gemeinschaft bereitgestellte Plugins und Docker-Container, die die Funktionalität von Unraid über ein grundlegendes NAS hinaus erweitern. Für weitere Details siehe den Abschnitt [Community Applications](../../using-unraid-to/run-docker-containers/community-applications.mdx). + +### 10. Tools + +Der **Werkzeuge**-Bildschirm bietet verschiedene Werkzeuge zur Verwaltung des Unraid OS, zur Anpassung des Aussehens der %%WebGUI|web-gui%% und für Systemupdates. + +![Werkzeuge-Tab](/img/toolstab.png) + +### 11. Systemkürzel + +Der **Systemkürzel**-Abschnitt bietet schnellen Zugriff auf wesentliche Unraid-Funktionen und -Werkzeuge direkt von der Navigationsleiste. + +![Systemkürzel](/img/systemshortcuts.png) + +Die Navigationsleiste zeigt Abkürzungen zu Unraid-Funktionen wie: + +- ![Abmelden](/img/logout.png) **Abmelden :** Vom Unraid-Server abmelden. +- ![Terminal](/img/terminal.png) **Terminal:** Ein Terminalfenster öffnen. +- ![Dateimanager](/img/filemanager.png) **Dateimanager:** Den integrierten Dateimanager aufrufen. +- ![Feedback](/img/feedback.png) **Feedback:** Rückmeldung geben, Probleme melden oder Kommentare hinterlassen. +- ![Information](/img/infoicon.png) **Information:** Eine Zusammenfassung der Attribute Ihres Servers anzeigen. +- ![Protokoll](/img/logicon.png) **Protokoll:** Eine Liste von Systemereignissen anzeigen. +- ![Hilfe](/img/helpicon.png) **Hilfe:** Hilfe für den aktuellen Bildschirm aktivieren. +- ![Benachrichtigungen](/img/notificationicon.png) **Benachrichtigungen:** Systemwarnungen, Warnungen und Mitteilungen anzeigen. + +### 12. Kontenoptionen + +In der oberen rechten Ecke der %%WebGUI|web-gui%%, neben Ihrem Servernamen, befindet sich das Hamburger-Menü (☰) für **Kontenoptionen**. Dieses Menü ermöglicht es Ihnen, Ihr Unraid-Konto zu verwalten, auf [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) zuzugreifen, Ihren Lizenzschlüssel zu aktualisieren und sich abzumelden. + +Wenn Sie im Testmodus sind, können Sie hier auch Ihren Lizenzschlüssel einlösen, um Unraid als Starter, Unleashed oder Lifetime zu aktivieren. + +### 13. Statusleiste + +![Statusleiste](/img/status-bar2.png) +Die **Statusleiste** unten in der %%WebGUI|web-gui%% zeigt den aktuellen Zustand Ihres %%array|array%% und den Status laufender Vorgänge wie %%Mover|mover%% oder %%parity checks|parity-check%% an. Einige Plugins zeigen auch wichtige Informationen wie Systemtemperaturen an. + +--- + +\* *„%%WireGuard|wireguard%%“ und das „%%WireGuard|wireguard%%“-Logo sind eingetragene Warenzeichen von Jason A. Donenfeld.* diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json new file mode 100644 index 0000000000..d7c50172d1 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Unraid einrichten", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx new file mode 100644 index 0000000000..f92854e984 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx @@ -0,0 +1,87 @@ +--- +sidebar_position: 4 +sidebar_label: Vervollständigen Sie Ihre Nachrüstungs-Essentials +--- + +# Vervollständigen Sie Ihre Nachrüstungs-Essentials + +Herzlichen Glückwunsch zu Ihrem initialen Setup! + +Jetzt ist es an der Zeit, einige weitere wichtige Aspekte zu erkunden, die die Funktionalität und Sicherheit Ihres Servers verbessern werden. + +## Sichern Sie Ihr Flash-Gerät + +Sichern Sie Ihr Unraid-Flash-Gerät immer nach bedeutenden Konfigurationsänderungen. Reguläre Backups werden *dringend* empfohlen. + +Um Ihr Flash-Gerät zu sichern, gehen Sie zum **Main** Tab, wählen Sie das Gerät aus und klicken Sie auf **Flash Backup**. + +:::warning +Speichern Sie Sicherungen außerhalb des Unraid %%array|array%%, um einfachen Zugriff zu haben, falls das %%array|array%% nicht betriebsbereit ist. [Erfahren Sie hier mehr über die Verwaltung von Flash-Geräten](../../system-administration/maintain-and-update/changing-the-flash-device.mdx). +::: + +:::note +Alternativ verwenden Sie das [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) Plugin für automatische Backups auf LimeTechs Cloud-Servern. +::: + +## Verwenden Sie die integrierte Hilfe + +Unraid bietet ausführliche Hilfetexte zu den Einstellungen im %%WebGUI|web-gui%%. Aktivieren Sie es, indem Sie auf das ![Hilfe-Symbol](/img/helpicon.png) in der oberen rechten Ecke klicken. Sie können auch die Hilfe für einzelne Felder durch Klicken auf deren Namen umschalten. Die %%WebGUI|web-gui%%-Hilfe bietet in der Regel die aktuellsten Informationen. + +
+ ![Eingebaut in die Hilfe](/img/toolbar.png) +
+ +## Überprüfen Sie die besten Sicherheitspraktiken + +Da Ihr Unraid-Server wertvolle Daten enthält, ist es ratsam, die [besten Sicherheitspraktiken](../../system-administration/secure-your-server/security-fundamentals.mdx) in der Dokumentation zu überprüfen, um potenzielle Angriffe zu vermeiden und Ihre Informationen zu schützen. + +## Unraid Verbinden + +[Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) ist ein Plugin für Unraid, das im Abschnitt Community Applications zu finden ist. Mit Unraid Connect können Sie alle Ihre Serverinstanzen über ein [einheitliches Dashboard](https://connect.myunraid.net/) verwalten. + +![Unraid Connect Dashboard](/img/unraidconnectdashboard.png) + +Unraid Connect verwendet Ihre Unraid.net-Anmeldeinformationen für das Zugriffsmanagement und kommuniziert über eine sichere Verbindung mit unseren Cloud-Servern. + +Für weitere Informationen darüber, wie wir mit Ihren Daten umgehen, lesen Sie bitte den [Datenschutzbereich](../../../unraid-connect/overview-and-setup.mdx#data-collection-and-privacy) in unserer Unraid Connect-Dokumentation. + +## Verbinden Sie Ihren Lizenzschlüssel mit Ihrem Konto + +Wenn Sie einen bestehenden Unraid-Lizenzschlüssel haben, ihn jedoch noch nicht mit Ihrem Unraid.net-Konto verbunden haben, können Sie dies tun, um zusätzliche Funktionen und eine einfachere Lizenzverwaltung zu aktivieren. + +Vorteile der Verbindung Ihres Lizenzschlüssels umfassen: + +- **Zentrale Verwaltung:** Anzeigen und Verwalten aller Ihrer Lizenzen von Ihrem Unraid.net-Konto aus +- **Einfacher Zugang:** Laden Sie Ihre Lizenzschlüsseldateien von überall herunter +- **Erweiterter Support:** Optimiertes Support-Erlebnis mit verknüpften Kontoinformationen +- **Prerelease-Zugriff:** Laden Sie Beta- und Release-Kandidaten-Versionen herunter, wenn zutreffend + +Zum Verbinden Ihres Lizenzschlüssels: + +1. **Über die WebGUI:** + - Gehen Sie zu ***Tools → Registration*** in der WebGUI Ihres Unraid-Servers + - Klicken Sie auf **Anmelden bei Unraid.net** falls nicht bereits geschehen + - Ihr Lizenzschlüssel wird automatisch mit Ihrem Konto verknüpft + +2. **Über das Konto-Portal:** + - Besuchen Sie [account.unraid.net/keys](https://account.unraid.net/keys) + - Melden Sie sich mit Ihren Unraid.net-Anmeldedaten an + - Klicken Sie auf **Bestehenden Schlüssel verknüpfen** und folgen Sie den Anweisungen + +3. **Während der Servereinrichtung:** + - Wenn Sie einen neuen Server mit einem bestehenden Lizenzschlüssel einrichten, können Sie sich während der Initialkonfiguration in Ihr Unraid.net-Konto einloggen + - Ihr Lizenzschlüssel wird automatisch verknüpft + +:::note +Das Verknüpfen Ihres Lizenzschlüssels mit Ihrem Konto ist ein einmaliger Vorgang. Nach der Verknüpfung können Sie Ihre Lizenz entweder über das WebGUI oder Ihr Online-Konto-Portal verwalten. +::: + +:::important +Wenn Sie Probleme beim Verknüpfen Ihres Lizenzschlüssels haben, stellen Sie sicher, dass: + +- Ihre Unraid.net-Konto-E-Mail mit der E-Mail des Lizenzkaufs übereinstimmt +- Sie die richtige Lizenzschlüssel-Datei verwenden +- Ihr Server hat Internetzugriff für die Kontoverifizierung +::: + +Für detailliertere Informationen zur Lizenzverwaltung siehe die [Lizenz-FAQ](../../troubleshooting/licensing-faq.mdx). diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx new file mode 100644 index 0000000000..0ca9c4d830 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx @@ -0,0 +1,89 @@ +--- +sidebar_position: 3 +sidebar_label: Konfigurieren Sie Ihr Array +--- + +# Konfigurieren Sie Ihr Array + +Nach der Installation Ihres Registrierungsschlüssels besteht der nächste Schritt darin, Ihren Speicher zu konfigurieren, indem Sie Geräten zum %%array|array%% und **Poolgeräten** zuweisen. Diese Konfiguration bestimmt, wie Unraid OS Ihre Daten verwaltet, sie mit %%parity|parity%% schützt und die Leistung mit %%cache pools|cache-pool%% optimiert. + +:::important +Wenn Sie mit einem Teil der Unraid-Installation Schwierigkeiten haben, schauen Sie sich unbedingt unsere [Installations-FAQ](../../troubleshooting/faq.mdx#installation)! +::: + +## Zuweisung von Parity- und Datenlaufwerken + +Sie verwenden die Registerkarte **Main** in der Unraid %%WebGUI|web-gui%%, um Geräte zuzuweisen und zu überprüfen, einschließlich %%array|array%% und Pool-Zuweisungen zusammen mit nicht zugewiesenen Geräten und Ihrem Boot-Gerät (dem **USB-Flashgerät**). + +![Konfigurieren des Arrays](/img/configuringarray1.png) + +### Geräterollen + +Unraid OS verwendet Laufwerke für verschiedene Zwecke: + +- **Array-Geräte**, die in zwei Kategorien unterteilt sind: + - **Paritätsgeräte:** Bieten Fehlertoleranz und ermöglichen die Wiederherstellung von Daten, wenn ein Datenlaufwerk ausfällt. Sie können bis zu zwei Paritätslaufwerke zuweisen. + - **Daten-Geräte:** Speichern Ihre benutzerdefinierten Freigaben und Ordner sowie alle Dateien, die Sie ihnen hinzufügen, z. B. Mediendateien. + +- **Pool-Geräte:** Hochleistungsfestplatten, die hauptsächlich als **Cache** verwendet werden und Dateien vorübergehend speichern, um die Leistung zu verbessern, bevor sie in das %%array|array%% übertragen werden. + +- **Boot-Gerät:** Das USB-Flash-Gerät, das Unraid OS enthält und Ihren Server startet. + +
+ Disk-Zuweisungsempfehlungen + + Diese Empfehlungen zur Datenträgerzuweisung sind darauf ausgelegt, Ihr Unraid-%%array|array%% zu optimieren, die Leistung zu steigern, den Datenschutz zu gewährleisten und die zukünftige Erweiterungsmöglichkeiten zu verbessern. Indem Sie diesen folgen, können Sie Ihre Speichereinheiten effektiv maximieren und gängige Setup-Probleme vermeiden. + + 1. **Select the largest %%parity device|parity-drives%%:** + Always choose the largest available storage device as your %%parity device|parity-drives%%(s). When expanding your %%array|array%%, data disks must be equal to or smaller than your %%parity device|parity-drives%%(s). You should purchase the largest **HDD** for your initial %%parity device|parity-drives%% to avoid future limitations. For dual %%parity disks|parity-drives%%, each parity disk must be greater than or equal to the largest data disk. + + 2. **Utilize HDDs for the %%array|array%% and SSD/NVMe drives for pools:** + For optimal performance, use **HDDs** as the primary storage devices in the %%array|array%% for general storage and %%parity|parity%% protection. Assign **SSD** or **NVMe** drives to a %%cache pool|cache-pool%% or dedicated pool to enhance high-speed read and write operations. This setup improves overall performance by taking advantage of the strengths of each type of drive. + + 3. **Schützen Sie zwischengespeicherte Daten mit einem %%multi-device pool|multi-device-pool%%:** + Um zwischengespeicherte Daten zu schützen, weisen Sie mehr als einem Gerät den %%cache pool|cache-pool%% zu. Ein einzelnes Gerät bietet keinen Schutz vor Datenverlust. %%Cache pools|cache-pool%% können auf Nachfrage erweitert werden. + + :::warning + SSD support is experimental in the %%array|array%%. Some SSDs may not perform well due to variations in %%TRIM/Discard|trim-discard%% implementation, which could lead to undesirable results. This does not apply to %%cache pools|cache-pool%%. [Learn more about filesystem options here](../../using-unraid-to/manage-storage/file-systems.mdx). + ::: + + :::note + SSD-basierte Pools sind optimal für Anwendungen und virtuelle Maschinen, da sie die SSD-Leistung für schnellere Interaktionen nutzen. [Hier erfahren Sie mehr über die Ausführung von Anwendungen](../../using-unraid-to/run-docker-containers/overview.mdx). + ::: +
+ +:::important +Ihr %%array|array%% wird nicht starten, wenn Sie die Anzahl der durch Ihren Lizenzschlüssel erlaubten Speichergeräte überschreiten. +::: + +## Starten und Formatieren des Arrays + +Nachdem Sie alle Ihre Geräte zugewiesen haben, klicken Sie auf die Schaltfläche **Start** unter **Array-Betrieb**, um sie einzuhängen und das %%array|array%% zu starten. + +
+ ![Array-Betrieb Start](/img/arrayoperation_start.png) +
+ +New devices will appear as *Unformatted* and cannot be used until formatted. Unraid defaults to the %%XFS|xfs%% filesystem for array devices. For %%cache pools|cache-pool%%, %%BTRFS|btrfs%% is always used by default when using auto mode, but you can choose your desired filesystem when adding devices to a pool. You can change the default filesystem for the array in ***Settings → System Settings → Disk Settings***. + +Um Ihre Geräte zu formatieren, aktivieren Sie das **Format**-Feld unter **Array-Betrieb**, lesen Sie die Aufforderung sorgfältig und klicken Sie auf die Schaltfläche **Format**. + +Ein Paritätssync läuft im Hintergrund, um das %%array|array%% sogar vor Abschluss der Formatierung zu schützen. Das %%array|array%% funktioniert in einem ungeschützten Zustand, bis der Sync abgeschlossen ist, daher ist es am besten, mit dem Hinzufügen von Daten zu warten. + +### Ändern von Dateisystemen auf vorhandenen Laufwerken + +Um das Dateisystem eines bestehenden Laufwerks zu ändern: + +1. **Sichern Sie Ihre Daten:** Durch das Neuformatieren werden alle Daten auf dem Laufwerk gelöscht. +2. **Stoppen Sie die Array**. +3. **Klicken Sie auf das Laufwerk** und ändern Sie den Dateisystemtyp (z. B. %%XFS|xfs%%, %%BTRFS|btrfs%%). +4. **Starten Sie das Array** und aktivieren Sie das **Format**-Feld unter **Array-Betrieb**. +5. **Klicken Sie auf Format**, um das neue Dateisystem anzuwenden. + +:::caution +Reformatting a drive will erase all its data. For %%RAID|raid%% setups, check the %%parity|parity%% to avoid data loss during rebuilds. Use the [Unassigned Devices plugin](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon) to back up your files before reformatting. +::: + +:::info +Sie können das Array stoppen, herunterfahren oder neu starten, indem Sie die entsprechenden Schaltflächen im selben Abschnitt **Array-Betrieb** auf der Registerkarte **Main** verwenden. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx new file mode 100644 index 0000000000..c150538b1f --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx @@ -0,0 +1,80 @@ +--- +sidebar_position: 1 +sidebar_label: Erstellen Sie Ihr bootfähiges Medium +--- + +# Erstellen Sie Ihr bootfähiges Medium + +Unraid OS ist auf einem USB-Flash-Laufwerk installiert, das als Boot-Gerät für Ihren Server fungiert. Sie können dieses bootfähige Medium mit unserer empfohlenen [Automatisierten Installationsmethode](./create-your-bootable-media.mdx#automated-install-method) mit unserem [USB Flash Creator](https://unraid.net/download) Tool erstellen oder die [Manuelle Installationsmethode](./create-your-bootable-media.mdx#manual-install-method) nutzen. In beiden Fällen benötigen Sie ein hochwertiges USB-Flash-Laufwerk (zwischen 4 und 32 GB) mit einer einzigartigen %%GUID|guid%%. + +## Automatisierte Installationsmethode + +Die automatisierte Installationsmethode ist der beste Weg, um Unraid OS einzurichten. Sie vereinfacht den Prozess, reduziert Fehler und stellt sicher, dass Ihr USB-Flash-Laufwerk für die meisten Hardware-Konfigurationen bereit ist. Diese Methode bietet den schnellsten und zuverlässigsten Weg zu einer erfolgreichen Installation für die meisten Benutzer. + +1. **Bereiten Sie Ihr USB-Gerät vor:** + Schließen Sie ein hochwertiges USB-Flash-Laufwerk an Ihren Computer an. + +2. **Laden Sie den Unraid USB Flash Creator herunter und installieren Sie das Unraid OS auf dem Laufwerk.** + [Windows](https://releases.unraid.net/dl/stable/usb-creator.exe) | [Mac](https://releases.unraid.net/dl/stable/usb-creator.dmg) | [Linux](https://releases.unraid.net/dl/stable/usb-creator.deb) + +3. **Setup abschließen:** + Passen Sie den Namen Ihres Servers und die Netzwerkeinstellungen an. + +4. **Auswerfen und Installieren:** + Entfernen Sie das USB-Laufwerk sicher und stecken Sie es in Ihren Server. + +5. **Konfigurieren Sie die BIOS-Einstellungen Ihres Servers** + - Setzen Sie das Boot-Gerät auf den USB-Stick. + - Enable %%hardware virtualization|hvm%% features, including %%IOMMU|iommu%%. (See [HVM & IOMMU configuration](../../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx#hvm--iommu-what-they-enable) for details.) + +6. **In Unraid OS booten:** + Speichern Sie Ihre BIOS-Konfiguration und verlassen Sie das Menü, um in Unraid OS zu booten. + +## Manuelle Installationsmethode + +Die manuelle Installationsmethode ist für Situationen konzipiert, in denen das USB Flash Creator-Tool entweder nicht verfügbar oder mit Ihrer Hardware nicht kompatibel ist. Dieser Ansatz bietet die vollständige Kontrolle über den Formatierungs- und Einrichtungsprozess, was ihn ideal für fortgeschrittene Benutzer oder zur Problemlösung spezifischer Probleme mit einem USB-Gerät macht. + +### Bereiten Sie Ihr USB-Gerät vor + +1. Schließen Sie das USB-Stick an. +2. Formatieren Sie es auf FAT32 (**nicht** ex-FAT oder NTFS). +3. Setzen Sie das Volume-Label auf `UNRAID` (großgeschrieben, genau so). + +:::important +Unter Windows können Laufwerke, die größer als 32 GB sind, nicht als FAT32 mit den eingebauten Formatierungstools formatiert werden (sie verwenden standardmäßig exFAT). Für Laufwerke, die größer als 32 GB sind, müssen Sie ein Drittanbieter-Tool wie [Rufus](https://rufus.ie/en/) verwenden, um als FAT32 zu formatieren. +::: + +### Herunterladen und entpacken + +1. Gehen Sie zum [Unraid Download-Archiv](../../download_list.mdx) und laden Sie die ZIP-Datei Ihrer gewählten Version herunter. +2. Entpacken Sie den Inhalt der ZIP-Datei auf das USB-Gerät. +3. Bestätigen Sie, dass die Dateien kopiert wurden. + +### Machen Sie das USB-Gerät bootfähig + +:::note +Dieser Abschnitt ist nur erforderlich, um das Legacy-Boot zu aktivieren. Wenn Sie für den UEFI-Boot einrichten, ist es nicht erforderlich, diese Skripte auszuführen. +::: + +Führen Sie das passende Skript für Ihr OS aus: + +**Windows 7 oder höher:** + +- Rechtsklicken Sie auf `make_bootable` und wählen Sie **Als Administrator ausführen**. + +**Mac:** + +- Doppelklicken Sie auf `make_bootable_mac` und geben Sie Ihr Admin-Passwort ein. + +**Linux:** + +- Kopieren Sie `make_bootable_linux` auf Ihre Festplatte. +- Hängen Sie das USB-Laufwerk aus. +- Führen Sie im Terminal aus: + ``` + sudo bash ./make_bootable_linux + ``` + +:::note +Das Flash-Gerät kann während dieses Vorgangs kurzzeitig verschwinden und wieder auftauchen. Das ist normal. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx new file mode 100644 index 0000000000..4643c1be4d --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx @@ -0,0 +1,224 @@ +--- +sidebar_position: 5 +sidebar_label: Unraid-Einstellungen anpassen +--- + +# Unraid-Einstellungen anpassen + +Das Unraid OS funktioniert automatisch, ermöglicht jedoch die weitere Anpassung von Einstellungen wie IP-Adresse, Hostname, Festplattenoptimierungen und mehr über die Registerkarte **Einstellungen** im Unraid **%%WebGUI|web-gui%%**. + +:::tip[Tailscale integration] +**Tailscale** ist ein optionales Plugin, das Sie über den Tab **Apps** durch Suchen nach "Tailscale" installieren können. Es bietet sicheren Fernzugriff auf Ihr Netzwerk und fügt Ihren **Einstellungen** einen Abschnitt **Tailscale** hinzu, um erweiterte Fernverwaltungsfunktionen zu bieten. +::: + +
+ ![Toolbar - Einstellungen](/img/toolbar_settings.png) +
+ +Nicht vergessen - die %%WebGUI|web-gui%% enthält eingebaute Hilfe. Um Hilfe für ein bestimmtes Feld zu erhalten, klicken Sie auf das Symbol daneben oder verwenden Sie das **Hilfe**-Symbol ![Hilfe-Symbol](/img/helpicon.png) oben rechts in der Benutzeroberfläche, um die Hilfe für alle Felder zu aktivieren. + +## Systemeinstellungen + +**Systemeinstellungen** ermöglichen Ihnen die Konfiguration wichtiger Funktionen wie Netzwerk-, Freigabe-, %%VM|vm%%- und Laufwerkseinstellungen. + +### CPU-Pinning + +%%CPU Pinning|cpu-pinning%% allows you to assign specific CPU cores to %%VMs|vm%% (Virtual Machines) or Docker containers. This is particularly important for performance-sensitive workloads, such as gaming %%VMs|vm%%. Even if you manually assign Docker containers to avoid conflicts with your gaming %%VM|vm%%, the host operating system may still utilize those cores for tasks like managing the %%WebGUI|web-gui%%, running a %%parity check|parity-check%%, or performing %%BTRFS|btrfs%% operations. + +- Wenn Sie einen Kern an eine %%VM|vm%% oder einen Docker-Container heften, wird dieser Kern der %%VM|vm%% oder dem Container zugewiesen. Das Unraid OS kann jedoch weiterhin darauf zugreifen, um Routineaufgaben auszuführen. +- Wenn Sie einen Kern isolieren, wird er ausschließlich der %%VM|vm%% oder dem Container zugewiesen und steht dem Unraid OS nicht mehr zur Verfügung. +- Sie können Kerne ohne Neustart Ihres Servers zuweisen, aber das Anwenden von CPU-Isolationsänderungen erfordert einen Neustart des Systems. + +### Datum & Uhrzeit + +Auf dieser Seite können Sie Ihre Zeitzone einstellen und die Verwendung von bis zu vier NTP-Servern umschalten. Sie sollten Unraid an Ihre Zeitzone anpassen, um eine genaue Zeitmessung zu gewährleisten. + +
+ ![Toolbar - Einstellungen](/img/date-time.png) +
+ +### Datenträgereinstellungen + +You can modify additional settings for your disk devices on this page. Enable your %%array|array%% to start automatically on boot, adjust disk %%spin-down timers|spin-down-timers%%, and even change advanced driver settings like %%SMART polling frequency|smart-polling%%. + +
+
+ Datenträgereinstellungen +
+ +
+ Globale SMART-Einstellungen +
+
+ +### Docker + +Docker-Container ermöglichen es Ihnen, vorkonfigurierte Linux-Anwendungen in Ihren Unraid-Server zu integrieren. Einzelheiten finden Sie auf der Seite [Docker-Verwaltung](../../using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx). + +
+ ![Einstellungen - Docker](/img/settings-docker.png) +
+ +### Kennung + +Unraid nutzt standardmäßig den Hostnamen `tower`, aber Sie können ihn hier ändern. Sie können auch eine Beschreibung oder Modellnummer für Ihr System hinzufügen. + +
+ ![Einstellungen - Kennung](/img/settings-identification.png) +
+ +### Verwaltungszugang + +You can configure various access settings for your Unraid server, including enabling Telnet or %%SSH|ssh%%, setting ports for %%SSL|ssl%%/%%TLS|tls%%, HTTP, and HTTPS, and defining the default landing page for Unraid. For detailed information about securing your %%WebGUI|web-gui%% with %%SSL|ssl%% certificates, see [Securing your connection](../../system-administration/secure-your-server/securing-your-connection.mdx). + +
+ ![Einstellungen - Verwaltungszugriff](/img/settings-management-access.png) +
+ +### Netzwerkeinstellungen + +By default, Unraid tries to obtain an IP address from a DHCP server on your local network, usually provided by your router. On this page, you can configure a static IP address, set up %%bonding|nic-bonding%%, %%bridging|nic-bridging%%, or explore other options. While setting a static IP is recommended, it is not necessary to use Unraid. + +
+ ![Netzwerkeinstellungen](/img/settings-network.png) +
+ +### Leistungsmodus + +Die Einstellung **Power Mode** ermöglicht es Ihnen, Ihren Unraid-Server für Energieeffizienz, ausgewogene Betriebsweise oder maximale Leistung zu optimieren. Sie können aus den verfügbaren Modi - **Beste Energieeffizienz**, **Ausgewogener Betrieb** oder **Beste Leistung** - wählen, um Ihren Arbeitslasten und Energiepräferenzen gerecht zu werden. Die Anpassung des Power Modes kann dazu beitragen, den Energieverbrauch zu senken, die Systemtemperaturen zu reduzieren oder zusätzliche Ressourcen für anspruchsvolle Aufgaben bereitzustellen. + +Änderungen treten sofort in Kraft und erfordern keinen Neustart des Systems. + +
+ ![Leistungsmodus](/img/settings-powermode.png) +
+ +### Globale Freigabeeinstellungen + +%%User shares|user-share%% can greatly simplify the organization and access of content across multiple disks in the %%array|array%%. You have the option to specify which disks are allowed to participate in %%user shares|user-share%% through global inclusion or exclusion settings. + +
+ ![Globale Freigabeeinstellungen](/img/settings-globalshare.png) +
+ +### USV-Einstellungen + +Unraid kann mit einer APC (oder kompatiblen) USV (Unterbrechungsfreie Stromversorgung) verbunden werden, um das System bei einem Stromausfall sicher herunterzufahren, während es weiterhin Batteriestrom erhält. Sie können die USV-Verbindung konfigurieren und Richtlinien für den Shutdown-Befehl auf dieser Seite festlegen. + +
+ ![USV-Einstellungen](/img/settings-ups.png) +
+ +### VM-Manager + +**Virtuelle Maschinen** (VMs) können Ihren Server in einen Desktop oder Medienplayer verwandeln und Anwendungen ausführen, die nicht für Linux konzipiert sind. Weitere Informationen zum Verwalten von %%VMs|vm%% auf Unraid finden Sie im Abschnitt [VM-Einrichtung](../../using-unraid-to/create-virtual-machines/vm-setup.mdx). + +
+ ![VM-Manager](/img/settings-vmmanager.png) +
+ +## Netzwerkdienste + +**Network Services** let you configure network communication protocols on your Unraid server, which are essential for user and disk shares. You can also enable an %%FTP|ftp%% server, a logging server, and set up a %%VPN|vpn-tunnel%% for secure remote access. + +### NFS (Network File System) + +NFSv4 support is available in Unraid. You can enable or disable it for %%user shares|user-share%% and adjust the `fuse_remember` tunable to help resolve *NFS Stale File Handle* errors. + +
+ ![NFS](/img/settings-nfs.png) +
+ +### SMB (Server Message Block) + +Das SMB-Protokoll wird von Microsoft Windows-Clients verwendet. Auf dieser Seite können Sie es aktivieren, eine Arbeitsgruppe definieren oder einer Active Directory-Domäne beitreten. + +
+ ![SMB](/img/settings-smb.png) +
+ +### FTP (File Transfer Protocol) + +Users can connect via %%FTP|ftp%% only if they are added to the **FTP users** field on this page. If no users are added, the %%FTP|ftp%% service will not start. + +
+ ![FTP](/img/settings-ftp.png) +
+ +### Syslog-Server + +Der %%Syslog-Server|syslog-server%% speichert dauerhaft Ihr Systemlog, was für die Fehlerbehebung nützlich ist, da Unraid das Log nach jedem Neustart löscht. + +
+ ![Syslog-Server](/img/settings-syslog.png) +
+ +### Tailscale + +:::note +Der Tailscale-Abschnitt ist nur verfügbar, wenn Sie das Tailscale-Plugin installiert haben. +::: + +Der Abschnitt %%Tailscale|tailscale%% ermöglicht sicheren Fernzugriff über den %%Tailscale|tailscale%% %%VPN|vpn-tunnel%%. Hier können Sie sich anmelden, um Ihren Unraid-Server mit Ihrem %%Tailnet|tailnet%% zu verbinden, die zugewiesene IP-Adresse und den Hostnamen anzeigen sowie die %%Tailscale|tailscale%%-Konnektivität aktivieren oder deaktivieren. + +Sie können Ihren Server auch als %%Subnetz-Router|subnet-routing%% für lokale Geräte oder als Exit-Node konfigurieren, um Internetverkehr zu leiten. Dieser Abschnitt ermöglicht die Verwaltung beworbener Routen, den Status von Exit-Nodes, Integrationsoptionen für Docker-Container und die Überwachung des Verbindungsstatus zur Fehlersuche. + +
+ ![Tailscale-Einstellungen](/img/settings-tailscale.png) +
+ +### VPN-Manager + +Sie können eine %%VPN|vpn-tunnel%%-Verbindung zu Ihrem Unraid-Server mithilfe von [%%Wireguard|wireguard%%](https://www.wireguard.com/) für sichere Internetverbindungen herstellen. + +
+ ![VPN-Manager](/img/settings-vpnmanager.png) +
+ +## Benutzereinstellungen + +Benutzereinstellungen ermöglichen es Ihnen, verschiedene Aspekte Ihrer Interaktionen mit dem Unraid OS zu konfigurieren, einschließlich Benachrichtigungen, Anzeigeeinstellungen, UI-Anpassungen und den %%Mover|mover%%-Zeitplan. + +### Bestätigungen + +Sie können von diesem Ort aus die Bestätigungen für verschiedene Aufgaben aktivieren/deaktivieren. + +
+ ![Bestätigungen](/img/settings-confirmations.png) +
+ +### Konsoleneinstellungen + +Ermöglicht es Ihnen, die lokale Systemkonsole anzupassen. Sie können das Tastaturlayout auswählen, die Bildschirmleerzeit anpassen und den permanenten Bash-Verlauf über Neustarts hinweg aktivieren oder deaktivieren. Diese Optionen verbessern Ihre Erfahrung, wenn Sie Unraid mit einem angeschlossenen Monitor und einer Tastatur verwenden. + +
+ ![Konsoleneinstellungen](/img/settings-console.png) +
+ +### Anzeigeneinstellungen + +Passen Sie das Erscheinungsbild des Unraid %%WebGUI|web-gui%% auf dieser Seite an, indem Sie das Datums- und Zeitformat, das Zahlenformat anpassen und zwischen Registerkartensicht und nicht registerkartensicht umschalten. Sie können auch die Temperatureinheit auswählen und aus verschiedenen Themen für die Benutzeroberfläche wählen. + +
+ ![Anzeigeeinstellungen](/img/settings-display.png) +
+ +### Benachrichtigungseinstellungen + +You can configure browser and email notifications on this page, subscribing to different types and setting custom alerts for %%SMART|smart%% attribute values. + +
+ ![Benachrichtigungseinstellungen](/img/settings-notifications.png) +
+ +### Scheduler + +The Scheduler settings page allows you to easily configure the frequency for automated tasks including %%parity checks|parity-check%%, the cache %%Mover|mover%%, and %%TRIM/Discard|trim-discard%% operations for SSDs. + +## Benutzerprogramme + +Hier werden Drittanbieter-Plugins angezeigt, die die Funktionalität von Unraid erweitern und Ihnen mehr Kontrolle über Ihren Server geben. Zum Beispiel ist das [Community-Applikationen Plugin](../../using-unraid-to/run-docker-containers/community-applications.mdx) enthalten. Andere Plugins bieten Funktionen zur Systemüberwachung, -wartung, Speicherverwaltung und `appdata`-Backups. + +--- + +\* *„%%WireGuard|wireguard%%“ und das „%%WireGuard|wireguard%%“-Logo sind eingetragene Warenzeichen von Jason A. Donenfeld.* diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx new file mode 100644 index 0000000000..3126d68d14 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx @@ -0,0 +1,100 @@ +--- +sidebar_position: 2 +sidebar_label: Unraid OS bereitstellen und konfigurieren +--- + +# Unraid OS bereitstellen und konfigurieren + +Nachdem Sie Unraid OS zum ersten Mal gebootet haben, verwenden Sie die %%WebGUI|web-gui%%, um Ihre Systemkonfiguration abzuschließen. Diese Schnittstelle ermöglicht es Ihnen, Ihren Server zu verwalten, Speicher einzurichten, Benutzerverzeichnisse zu konfigurieren und Funktionen wie %%hardware-virtualisierung|hvm%% und Docker-Container zu steuern. + +:::info\[Localize] + +Es kann einfacher für Benutzer sein, diesem Leitfaden zu folgen, nachdem sie ihre Spracheinstellungen konfiguriert haben. Schauen Sie sich [Mehrsprachige Unterstützung](../../using-unraid-to/customize-your-experience/multi-language-support.mdx) an, um die %%WebGUI|web-gui%% in Ihrer bevorzugten Sprache zugänglicher zu machen. + +::: + +## Mit dem Unraid WebGUI verbinden + +Sie können auf zwei Arten eine Verbindung zum %%WebGUI|web-gui%% herstellen: + +- **GUI-Modus:** Starten Sie Unraid im GUI-Modus und melden Sie sich mit einer an den Server angeschlossenen Tastatur und Monitor an. Verwenden Sie `root` als Benutzernamen ohne anfängliches Passwort. +- **Webbrowser:** Besuchen Sie auf einem anderen Gerät in Ihrem lokalen Netzwerk `http://tower.local`. Wenn Sie einen anderen Hostnamen festgelegt haben, verwenden Sie diesen anstelle von `tower` (z.B. für den Hostnamen `unraidserver` würden Sie `http://unraidserver.local` besuchen). %%mDNS|mdns%% kümmert sich um die Auflösung dieser `.local`-Adressen. + +:::important +Der Unraid-Server ist über Ihr LAN zugänglich, sobald er vollständig gestartet ist. Sie können die IP-Adresse in der DHCP-Clientliste Ihres Routers finden oder ein Netzwerk-Scan-Tool verwenden. +::: + +## Ein Root-Passwort festlegen + +Wenn Sie das %%WebGUI|web-gui%% zum ersten Mal aufrufen, werden Sie aufgefordert, ein starkes Passwort für den %%root user|root-user%% zu erstellen. + +Stellen Sie sicher, dass Ihr Passwort ist: + +- Einzigartig +- Mindestens 8 Zeichen lang. (Obwohl die beste Praxis 12+ für die sichersten Passwörter empfiehlt!) +- Eine Mischung aus Buchstaben, Zahlen und Sonderzeichen + +Wir empfehlen die Verwendung eines Passwort-Managers zur sicheren Speicherung. + +
+ ![Root-Passwort festlegen](/img/Set_root_password.png) +
+ +:::tip +Wenn Sie Ihr root-Passwort vergessen, können Sie es mit der Anleitung [Passwort zurücksetzen](../../system-administration/secure-your-server/user-management.mdx#reset-your-password) zurücksetzen. Sie können Ihr Passwort auch auf der Benutzerseite der %%WebGUI|web-gui%% aktualisieren. +::: + +## Ihren Lizenzschlüssel registrieren + +Nachdem Sie Ihr Root-Passwort festgelegt haben, melden Sie sich bei Ihrem Unraid.net-Konto an, um einen Lizenzschlüssel zu erhalten: + +1. Gehen Sie im %%WebGUI|web-gui%% zum Abschnitt **Erste Schritte**. + +
+ ![Erste Schritte](/img/Upc_get_started.png) +
+ +2. Melden Sie sich an oder erstellen Sie ein Konto, wonach ein Testschlüssel automatisch installiert wird. + +
+ ![Testschlüssel installieren](/img/Upc_install_trial_key.png) +
+ + Dieser Vorgang ermöglicht es Ihnen, Ihre Unraid OS-Lizenzschlüssel zu verwalten, neue Schlüssel zu erhalten, verlorene wiederherzustellen oder Ihre Lizenz zu aktualisieren. + +:::important +Besuchen Sie für Details zu Ihrer Lizenz ***Tools → Registrierung*** im %%WebGUI|web-gui%%. +::: + +## BIOS-Empfehlungen + +Vor der Bereitstellung von Unraid OS ist es wichtig, die BIOS- und Speichercontroller-Einstellungen Ihres Systems zu überprüfen. Nachfolgend finden Sie eine Checkliste, die hilft, Kompatibilität, Stabilität und Zugriff auf wichtige Funktionen sicherzustellen. + +
+ Klicken Sie, um unsere BIOS- und Speichercontroller-Checkliste zu erweitern + + Eine korrekte Konfiguration von BIOS und Speichercontroller ist entscheidend für eine stabile Bereitstellung von Unraid OS. Verwenden Sie diese Checkliste vor Ihrem ersten Start. + + ### Grundlegende Einstellungen + + ✅ Stellen Sie das USB-Flash-Laufwerk als primäres Boot-Gerät ein.\n✅ Konfigurieren Sie den Speichercontroller im **%%AHCI|ahci%%**-Modus mit SATA-Verbindungen.\n✅ Stellen Sie den Controller auf **%%HBA-Modus|hba-mode%%** (nicht **%%RAID|raid%%**).\n✅ Deaktivieren Sie **Secure Boot**, da dies von Unraid OS nicht unterstützt wird. + + ### Erweiterte Einstellungen + + ✅ Aktivieren Sie **%%hardware virtualization|hvm%%**-Funktionen (z. B. **%%Intel VT-x|intel-vt-x%%** oder **%%AMD-V|amd-v%%**) für **%%virtual machines (VMs)|vm%%**.\ + ✅ Aktivieren Sie **%%IOMMU|iommu%%**-Unterstützung (Intel VT-d oder AMD-Vi) für die Zuordnung von PCI-Geräten an VMs. + + ### Tipps zur Fehlerbehebung + + Wenn Unraid OS nicht startet, versuchen Sie: + + ✅ Passen Sie die Boot-Reihenfolge an: **Forced-FDD**, **USB-HDD**, **USB-ZIP**.\n✅ Deaktivieren Sie die USB 2.0/3.0-Unterstützung.\n✅ Schalten Sie alle Schnelles-Start-Funktionen um.\n✅ Schalten Sie die USB-Tastatur-Unterstützung um. + + Für weitere Hilfe besuchen Sie das [Allgemeine Support-Forum von Unraid](https://forums.unraid.net/). + + :::important + Viele Mainboards beschränken die Auswahl der Boot-Geräte auf 12 Festplatten. Wenn Ihr USB-Flashlaufwerk als Festplatte erkannt wird, können Sie eventuell nicht davon starten, nachdem Sie 12 physische Festplatten installiert haben. Konfigurieren Sie das BIOS, um das Flashlaufwerk, soweit möglich, als Wechseldatenträger zu behandeln. + + Wenn Sie einen zusätzlichen HBA verwenden, können Sie möglicherweise die INT 13h-Unterstützung deaktivieren, um zu verhindern, dass dessen angeschlossene Laufwerke in der Liste der bootfähigen Geräte erscheinen, was hilft, innerhalb der Grenze von 12 Laufwerken zu bleiben. + ::: +
diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx new file mode 100644 index 0000000000..fd7671f019 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx @@ -0,0 +1,31 @@ +--- +sidebar_position: 2 +sidebar_label: Unraid.net +--- + +# Unraid.net + +Ein Unraid.net-Konto ist Ihr Zugangspunkt zu den Online-Diensten von Unraid, einschließlich [Foren](https://forums.unraid.net/), [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) und Lizenzverwaltung. Obwohl es für grundlegende Serverfunktionen nicht erforderlich ist, bietet ein Konto mehrere Vorteile wie vereinfachte Lizenzverwaltung, Zugang zu Vorabversionen und erweiterten Support. + +#### Zu den Vorteilen eines Unraid.net-Kontos gehören: + +- **%%Single Sign-On (SSO)|sso%%:** Greifen Sie mit einem Satz von Anmeldeinformationen auf Unraid's Systeme zu. +- **Lizenzverwaltung:** Verwalten Sie einfach Ihre Lizenzschlüssel und Serverregistrierungen. +- **Zugriff auf Vorabversionen:** Laden Sie Vorabversionen von Unraid herunter und testen Sie sie. +- **Erweiterter Support:** Nehmen Sie an Foren teil und erhalten Sie Updates zu Ihrem Konto. +- **Sichere Authentifizierung:** Genießen Sie sicheres Login mit Optionen für Multi-Faktor-Authentifizierung (MFA). + +### Ihr Konto und die gespeicherten Daten + +Unraid.net uses a %%SSO|sso%% system at account.unraid.net for secure authentication via %%AWS Cognito|aws-cognito-oauth%%. Your data is stored securely and encrypted. The %%AWS Cognito|aws-cognito-oauth%% user pool database retains the following information for registered users: + +| Datentyp | Beschreibung | +| --------------------------------------- | ---------------------------------------------------------------------- | +| Benutzer-ID | Eindeutige Kennung für Ihr Konto | +| Benutzername | Ihr gewählter Unraid.net-Benutzername | +| E-Mail-Adresse | Wird für Kommunikation und Kontowiederherstellung verwendet | +| Unraid-Foren-ID | Verknüpft Ihr Konto mit Forenaktivitäten | +| Freigabe für Vorabversionen | Gibt an, ob Sie Unraid-Vorabversionen herunterladen können | +| %%Passworthash\|hash%% | Sichere, gesalzene, unidirektionale (gehashte) Version Ihres Passworts | +| MFA-Details | Informationen zur Multi-Faktor-Authentifizierung | +| Google/Apple %%SSO\|sso%% Informationen | Attribute für Drittanbieter-Anmeldungen (falls verwendet) | diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx new file mode 100644 index 0000000000..4a27472d2f --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx @@ -0,0 +1,186 @@ +--- +sidebar_position: 1 +sidebar_label: Was ist Unraid? +--- + +# Was ist Unraid? + +Unraid is an embedded operating system designed to give you complete control over your hardware. It functions as a robust network-attached storage (NAS) system, an %%application server|application-server%%, and a host for %%virtual machines (VMs)|vm%%. + +Unraid wird auf einem USB-Flash-Laufwerk installiert und von diesem gebootet, wobei es in ein Root-RAM-Dateisystem geladen wird. Es verwendet einen modernen Linux-Kernel mit aktualisierten Hardware-Treibern, sodass es auf nahezu jedem 64-Bit-x86\_64-System mit minimalem Speicherbedarf ausgeführt werden kann. Alle Konfigurationsdaten für das Betriebssystem werden auf dem Flash-Laufwerk gespeichert und gleichzeitig mit dem Betriebssystem geladen. + +Unraid bietet eine [benutzerfreundliche Weboberfläche](./explore-the-user-interface/tour-the-web-gui.mdx) zur einfachen Verwaltung. Es bietet grundlegende Steuerungen für allgemeine Aufgaben und erweiterte Einstellungen für erfahrene Benutzer. Während es standardmäßig auf Einstellungen setzt, die für die meisten Menschen geeignet sind, ermöglicht es auch Anpassungen. Diese Kombination aus Einfachheit und Flexibilität hilft Ihnen, Ihre Inhalte effektiv zu speichern, zu schützen, zu teilen und zu genießen. + +**Die Kernfähigkeiten von Unraid liegen in drei Hauptbereichen:** + +
+

Software-definiertes NAS

Ermöglicht Benutzern, Speicherplatz über ein Netzwerk effizient zu teilen.
+ + ### Arrays und Parität + + Unraid bietet eine einfache und flexible Lösung zur Umwandlung eines 64-Bit-fähigen Systems in ein Network Attached Storage (NAS). Es kann eine Vielzahl von Laufwerken verarbeiten, egal ob sie über IDE, SATA oder SAS verbunden sind, und unterstützt unterschiedliche Laufwerksgrößen. Dies bedeutet, dass Sie neue Laufwerke nacheinander hinzufügen können, wenn Ihr Speicherbedarf wächst, ohne Ihre vorhandenen Daten reorganisieren zu müssen. + + The main job of an Unraid %%array|array%% is to organize and protect the data stored across several drives. It does this by using up to two special drives called %%parity drive|parity-drives%%s. These %%parity drive|parity-drives%%s are important because they help reconstruct your data if one of the other drives fails. In fact, with just one %%parity drive|parity-drives%%, you can protect all the other drives in your %%array|array%%, keeping your data safe. Plus, you can mix different sized drives and easily expand your storage over time, making Unraid a user-friendly option for anyone looking to manage their data effectively. + +
+ Wie funktioniert die Parität? - Klicken zum Erweitern/Reduzieren + + In Unraid, %%parity|parity%% information is updated in real time. To understand how this works, imagine the contents of a hard drive as a long stream of bits, where each bit is either a zero or a one. By summing the nth bit values across all drives and determining whether that sum is even or odd, the corresponding nth %%parity|parity%% bit can be set accordingly. If a data drive ever fails, this %%parity|parity%% information allows for an accurate determination of the exact bit values, facilitating a precise rebuild on the replacement drive. + + Zum Beispiel: + +
+ ![Keine Parität](/img/No_parity_500px.png) +
+ + In the image above, three drives contain streams of bits that vary by device size. These drives are unprotected, so if one fails, data will be lost. To protect against failure, we need a fourth disk as a %%parity disk|parity-drive%%, which must be equal to or larger than the largest data disk. + + To set the %%parity|parity%% bits, we find the total for each column. If the sum is even, the %%parity|parity%% bit is 0; if odd, the %%parity|parity%% bit is 1. + + Here's the same image as before, but with %%parity|parity%% calculated per frame: + +
+ ![Parität](/img/Parity@500px.png) +
+ + Nehmen wir an, dass Laufwerk 2 in unserem Beispiel ausgefallen ist und ein neues Laufwerk zum Ersatz gekauft wurde: + +
+ ![Laufwerksausfall](/img/Drive_failure@500px.png) +
+ + To rebuild data on the new disk, we determine the missing bit rather than calculating the %%parity|parity%% bit. For column 1, the sum is 0, so the missing bit is 0. For column 6, with a sum of 1, the missing bit is 1. + + Rebuilding a disk using %%parity|parity%% protects against data loss and offers fault tolerance, ensuring full access to the system even if a drive fails. +
+ + ### Benutzerfreigaben + + Unraid is different from most %%RAID|raid%% systems because it saves data on individual drives instead of combining them into one. As a %%root user|root-user%%, you can create %%user shares|user-share%%, which are like top-level folders that gather files from multiple drives in the %%array|array%% or %%cache pool|cache-pool%%. This means you don’t have to worry about which specific drive holds your files; they are organized for you. + + You can also customize these shares to include or leave out certain drives and decide how files are spread across your storage. Additionally, you can manage how users access the shares by setting up network options, like %%SMB|samba%% and %%NFS|nfs%%, and applying security settings. To keep private data safe, you can create user accounts and set access limits for trusted individuals. + + ```mdx-code-block + +
+
+ User shares distribution example + +
User shares - Distribution
+
+ +
+ User shares distribution example larger + +
User shares - Access
+
+
+ + ``` + + ### Verstehen von Cache-Laufwerken + + One of the standout features of Unraid is the %%cache drive|cache%%, which helps speed up data transfer. When you use a %%cache drive|cache%% alongside three or more drives, you can write data up to **three times faster**. When you save files to a %%user shares|user-share%% with a %%cache drive|cache%%, the data is first stored on the %%cache drive|cache%%. This allows for quick writing, and later, a process called %%Mover|mover%% transfers the data to the main storage %%array|array%% - often during the night—making room on the %%cache drive|cache%%. + + For added data safety, you can set up a %%cache pool|cache-pool%% with multiple drives. This setup not only increases storage space but also uses technologies like %%ZFS|zfs%% or %%BTRFS|btrfs%% to provide extra protection for your data, similar to %%RAID 1|raid1%%. Overall, Unraid’s management of shares and %%cache drives|cache%% creates a flexible, efficient, and secure storage solution. + + [Erfahren Sie hier mehr über die Konfiguration von Freigaben und Cache.](../using-unraid-to/manage-storage/array-configuration.mdx) + +
+ ![Wie das Erfassen von Daten mit dem Cache-Pool funktioniert](/img/Cache-pool.gif) +
+
+ +
+

Anwendungsserver

Ermöglicht die Ausführung containerisierter Anwendungen.
+ + Unraid transforms your storage solution into a versatile %%application server|application-server%% through Docker containerization. This approach overcomes traditional NAS limitations while maintaining system stability and ease of use. + + Traditionelle NAS-Lösungen stellen drei zentrale Herausforderungen für das Hosting von Anwendungen dar: + + 1. **Kompatibilitätsprobleme mit dem Betriebssystem** - Anwendungen, die für andere Betriebssysteme entwickelt wurden, können nicht ausgeführt werden. + 2. **Komplexes Lifecycle-Management** - Schwierige Installationserfahrungen können verbleibende Artefakte nach der Entfernung hinterlassen. + 3. **Anwendungskonflikte** - Softwarekomponenten können sich gegenseitig beeinflussen oder den Systembetrieb stören. + + Unraid's use of Docker addresses these challenges in three key ways: + + 1. **Unabhängigkeit vom Betriebssystem** - Jeder Container läuft in seiner eigenen Linux-Umgebung, wodurch Kompatibilitätsprobleme mit dem Host-Betriebssystem beseitigt werden. + 2. **Image-basierte Bereitstellung** - Vorgefertigte Anwendungspakete ermöglichen die Ein-Klick-Installation und vollständige Deinstallation von Anwendungen. + 3. **Prozessisolierung** - Containerisierte Anwendungen arbeiten in separaten Benutzerbereichen, wodurch jegliche Konflikte zwischen der Software vermieden werden. + + Docker-Container ermöglichen das Ausführen von Anwendungen in isolierten, ressourcenschonenden Umgebungen, ohne den mit virtuellen Maschinen verbundenen Overhead. Unraid vereinfacht die Nutzung von Docker, indem es Zugriff auf Tausende vorgefertigte Apps durch [Docker Hub](https://hub.docker.com/) und [Community Applications](../using-unraid-to/run-docker-containers/community-applications.mdx) bietet. Dieser containerisierte Ansatz ermöglicht es Unraid-Benutzern, mehrere Anwendungen gleichzeitig auszuführen, ohne Kompatibilitätsprobleme zu haben. Er hilft auch, das System durch die Nutzung selbsthaltender Anwendungspakete organisiert zu halten und erleichtert es, die Serverfähigkeiten durch das Docker-Ökosystem zu erweitern. + + :::note + Für erweiterte Docker-Einstellungen sehen Sie sich [Run Docker Containers](../using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx) an. + ::: +
+ +
+

Virtualisierungsplattform

Führt virtuelle Maschinen mit einer Leistung nahe der Hardware durch.
+ + Unraid funktioniert als Virtualisierungshost, indem ein %%hypervisor|Hypervisor%% verwendet wird, um Ressourcen sicher an virtualisierte Gäste zuzuweisen. Dies ermöglicht es Ihnen, verschiedene Anwendungen in isolierten Umgebungen auszuführen, über das hinaus, was ein netzwerkgebundener Speicher allein kann. + + :::tip + Um Hardware-Virtualisierung in Unraid zu nutzen, stellen Sie sicher, dass Ihre CPU, Ihr Chipsatz, BIOS und die Gerätetreiber kompatibel sind. Eine vollständige Liste der Anforderungen finden Sie im [VM-Setup-Leitfaden](../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx). Wenn Ihr Server diese Anforderungen nicht erfüllt, wird das VMs-Menü im Unraid WebGUI deaktiviert. + ::: + +
+ Vorteile der Verwendung von Virtuellen Maschinen (VMs) - Klicken zum Erweitern/Reduzieren + + Während Docker-Container für Linux-basierte Anwendungen beliebt sind, erhöhen %%VMs|vm%% die Flexibilität und Effizienz Ihrer Unraid-Servereinrichtung und bieten auf Ihrem Unraid-Server einzigartige Vorteile: + + - **Isolation:** %%VMs|vm%% laufen unabhängig in separaten Umgebungen, was sicherstellt, dass der Ausfall eines keine Auswirkungen auf die anderen hat. + + - **Konsolidierung:** Konsolidieren Sie mehrere physische Server in eine einzige Unraid-Maschine, reduzieren Sie den Hardwarebedarf und vereinfachen Sie die Wartung. + + - **Ressourcenzuweisung:** Unraid ermöglicht es Ihnen, bestimmten CPUs, Speicher, Speicherplatz und Netzwerkressourcen für jede %%VM|vm%% zuzuweisen, wodurch sichergestellt wird, dass kritische Workloads die erforderlichen Ressourcen erhalten. + + - **Testen und Entwicklung:** %%VMs|vm%% ermöglichen die einfache Erstellung und das Testen von Software über verschiedene Umgebungen hinweg, ohne dass mehrere physische Maschinen erforderlich sind. + + - **Sicherheit:** Die Isolation von %%VMs|vm%% erhöht die Sicherheit, indem es schwerer wird, dass Malware sich zwischen ihnen ausbreitet. + + - **Legacy-Anwendungsunterstützung:** %%VMs|vm%% ermöglichen es Ihnen, veraltete Anwendungen oder Betriebssysteme auszuführen, die möglicherweise nicht mit moderner Hardware kompatibel sind. + + - **Ressourcenisolation:** Jede %%VM|vm%% kann über dedizierte Ressourcen verfügen, wodurch Leistungsprobleme zwischen %%VMs|vm%% vermieden werden. + + - **Ressourcenüberbelegung:** Sie können mehr %%VMs|vm%% laufen lassen, als die physischen Ressourcen normalerweise zuließen, in dem Wissen, dass nicht alle ihre Zuweisungen gleichzeitig vollständig nutzen. +
+ +
+ Zuweisbare Geräteunterstützung für Virtualisierung - Klicken zum Erweitern/Reduzieren + + Unraid's %%KVM|kvm%%-based virtualization uses modern tools for flexible hardware assignment while maintaining host stability. + + Wichtige Komponenten umfassen: + + **Kerntechnologien** + + - %%QEMU|qemu%% und %%libvirt|libvirt%%: Verwalten die Lebenszyklen von %%VM|vm%%. + - %%VFIO|vfio%% Geräte-Passthrough: Bietet direkten Hardwarezugriff. + - %%VirtIO|virtio%% und %%VirtFS|virtfs%%: Optimieren Speicher- und Netzwerkleistung. + - %%OVMF|ovmf%%: Unterstützt %%UEFI|uefi%% und Secure Boot. + + **Zugewiesene Ressourcen** + + - **Rechenleistung:** Dedizierte CPU-Kerne durch %%CPU-Zuweisung|cpu-pinning%%. + - **Speicher:** Isolierter RAM. + - **Speicher:** SSD-optimierte %%virtuelle Festplatten|vdisk%% über %%VirtIO|virtio%%. + - **Peripheriegeräte:** Vollständiges PCI/USB-Geräte-Passthrough, einschließlich Unterstützung für %%GPU-Passthrough|gpu-passthrough%%. + + **Plattform-Flexibilität** + + - Unterstützt %%i440fx|i440fx%% und %%Q35|q35%% Maschinentypen. + - Kompatibel mit %%Xen HVM|xen-hvm%% und %%Xen PV|xen-pv%% Workloads. + - Ermöglicht %%Intel VT-x|intel-vt-x%% und %%AMD-V|amd-v%% Hardware-Virtualisierung. + +
+ ![Zuweisbare Ressourcen](/img/KVM@2x.png) +
+
+ + Für Schritte zur Einrichtung von %%VM|VM%%s siehe [Virtuelle Maschinen erstellen](../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx). + + :::caution + %%GPU passthrough|gpu-passthrough%% requires compatible hardware (see [VM setup](../using-unraid-to/create-virtual-machines/vm-setup.mdx)). + ::: +
diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md new file mode 100644 index 0000000000..20487213d6 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md @@ -0,0 +1,888 @@ +## Version 6.10.0 07.05.2022 + +Zusammenfassung der Änderungen und neuen Funktionen + +### UPC und My Servers Plugin + +Die sichtbarste neue Funktion befindet sich in der oberen rechten Ecke der WebGUI-Kopfzeile. Wir nennen dieses Element die *Benutzerprofilkomponente* oder UPC. Die UPC ermöglicht einem Benutzer, seine Registrierungsschlüssel besser zu verwalten und das optionale *My Servers*-Plugin zu installieren. + +*My Servers* ist der Name unserer Cloud-basierten Dienste und Funktionen, die sich in Ihren Unraid-Server integrieren. Nach der Installation des *My Servers*-Plugins werden Sie aufgefordert, sich mit einem bestehenden Unraid.net-Konto bei Ihrem Server anzumelden oder ein neues Unraid.net-Konto zu erstellen. Einmal installiert, hier einige der Funktionen von *My Servers*: + +- *Echtzeit-Status* - Mit dem installierten Plugin zeigt jede Server-Kachel auf dem *My Servers Dashboard* den Echtzeitstatus an, wie zum Beispiel ob der Server online oder offline ist, Speichernutzung und andere Informationen. +- Lokaler Zugangslink - dies ist ein direkter Link zum WebGUI des Servers in Ihrem LAN. +- Remote-Zugriffslink - **wenn aktiviert**, wird auf dem *My Servers Dashboard* ein Link angezeigt, um ein Server WebGUI aus der Ferne und über das Internet aufzurufen. +- Automatisches Flash-Backup - Jedem registrierten Server wird ein privates Git-Repo bereitgestellt, das anfangs mit den Inhalten Ihres USB-Flash-Boot-Geräts gefüllt ist (mit Ausnahme bestimmter Dateien, die private Informationen wie Passwörter enthalten). Danach werden Konfigurationsänderungen automatisch eingespielt. Ein Link wird bereitgestellt, um eine benutzerdefinierte Zip-Datei herunterzuladen, die als Eingabe für das USB Flash Creator Tool verwendet werden kann, um Ihre Konfiguration auf ein neues USB-Flash-Gerät zu übertragen. +- Benachrichtigung über sicherheitsrelevante Updates. Im Falle einer schwerwiegenden Sicherheitslücke, die entdeckt und behoben wurde, senden wir eine Benachrichtigung an alle mit registrierten Servern verknüpften E-Mail-Adressen. +- Posting-Berechtigung in einer neuen Reihe von My Servers Forum-Boards. + +Eingeloggte Server halten eine WebSocket-Verbindung zu einem cloudbasierten Proxy-Server von Lime Technology aufrecht, um den Echtzeit-Status zu übermitteln. Weitere Informationen finden Sie im Abschnitt Datenschutz von My Servers. + +### Sicherheitsänderungen + +Es ist nun **verpflichtend**, ein *root*-Passwort festzulegen und die Änderung des *root*-Benutzerpassworts führt zum Abmelden aller WebGUI-Browser-Sitzungen. + +Wir haben auch eine Unterteilung auf der Benutzerseite erstellt, um *root* von anderen Benutzernamen zu unterscheiden. Die *root* Benutzerbearbeitungsseite enthält ein Textfeld zum Einfügen von SSH autorisierten Schlüsseln. + +Für neue Konfigurationen ist die Standardeinstellung zum Exportieren von *flash*-Freigaben Nein. + +Für neue Konfigurationen ist SMBv1 standardmäßig deaktiviert. + +Für neue Konfigurationen sind Telnet und SSH standardmäßig deaktiviert. + +Für alle neuen Benutzerfreigaben ist die standardmäßige Export-Einstellung Nein. + +Wir haben bestimmte Zeichenfolgen aus den Diagnosen entfernt, wie z. B. Passwörter, die in der Datei 'go' gefunden wurden. + +#### Umzug zu Let's Encrypt Wildcard-SSL-Zertifikaten + +Ab dieser Version geben **wir keine neuen Single-Host-SSL-Zertifikate** mehr aus (die wir als Legacy-Zertifikate bezeichnen). Stattdessen sind alle neuen Unraid.net SSL-Zertifikate **Wildcard-Zertifikate** (bereitgestellt von Let's Encrypt). + +Die URL, die verwendet wird, um auf Ihren Server mit einem Wildcard-Zertifikat zuzugreifen, hat diese Form: + +- `https://[lan-ip].[hash].myunraid.net` + +wo, + +- `[lan-ip]` ist die LAN-IP-Adresse Ihres Servers, bei der Punkte durch Bindestriche ersetzt wurden. +- `[hash]` ist eine 40-stellige hexadezimale Zeichenkette (160 Bit), die für diesen Server einzigartig ist (und sich von der ähnlichen `[hash]` in alten Zertifikaten unterscheidet). + +Beispiel: + +- `https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net` + +Wir haben einen neuen DDNS-Server hinzugefügt, der auf "myunraid.net" lauscht. Dieser Server extrahiert `[lan-ip]` aus dem Domain-Namen und gibt die IP-Adresse zurück, wobei die Bindestriche wieder in Punkte umgewandelt werden. Diese Vorgehensweise bietet mehrere Vorteile sowohl für unsere Nutzer als auch für uns: + +- Eliminiert DNS-Verzögerungen bei der *Bereitstellung* eines Zertifikats oder wenn sich eine Server-LAN-IP-Adresse (oder WAN-IP-Adresse) ändert. Da der Domain-Name die IP-Adresse enthält, verändert jede IP-Adressänderung auch den Domain-Namen und wird daher in keinem zwischengeschalteten DNS-Cache enthalten sein. Darüber hinaus haben wir die TTL von 1 Stunde auf 7 Tage geändert, wodurch der Overhead weiter reduziert wird und Probleme gelöst werden, bei denen das Internet einer Person für kurze Zeit ausfällt. +- Es ist nicht mehr erforderlich, dass der Server einen DDNS-Server aktiv aktualisiert. +- Verbessert den Datenschutz, da Ihre Remote-Zugangs-WAN-IP-Adresse nicht einfach durch das Voranstellen von "www" zu Ihrer lokalen Zugangs-URL bestimmt werden kann. +- Verlagert die DNS-Funktionalität von der Domain 'unraid.net' und isoliert sie auf der Domain 'myunraid.net'. + +In früheren Versionen des Codes, der ein Unraid.net SSL-Zertifikat bereitstellt (zuteilt und herunterlädt), wurde zunächst überprüft, ob *DNS Rebinding Protection* im LAN des Benutzers durchgesetzt wurde; wenn ja, wurde das Zertifikat nicht bereitgestellt. Da es andere Anwendungsfälle für ein LE-Zertifikat gibt, haben wir den Code so geändert, dass die *Bereitstellung* immer fortgesetzt wird. Anschließend änderten wir die Logik hinter der *Auto*-Auswahl der "Use SSL/TLS"-Einstellung auf der Management-Zugangsseite. Jetzt ist es nur möglich, Auto zu wählen, wenn sowohl ein LE-Zertifikat bereitgestellt wurde als auch DNS Rebinding Protection nicht durchgesetzt wird. Dies ist eine subtile Änderung, die jedoch bestimmte *My Servers* Funktionen wie den Fernzugriff ermöglicht. + +Nach der Aktualisierung müssen Sie eventuell bestehende Server-Lesezeichen mit der neuen URL ändern. Alternativ, wenn Sie das *My Servers* Plugin installiert haben, ist auf Ihrem Dashboard ein lokaler Zugriffslink für jeden Server enthalten. Wenn Sie das My Servers Plugin nicht installiert haben, da es keinen DDNS-Update-Daemon gibt, empfehlen wir, entweder ein statisches DHCP-Lease einzurichten oder Ihrem Server eine statische IP-Adresse zuzuweisen. Schließlich haben wir nginx so eingerichtet, dass die URLs: + +- `http://./` + +oder + +- `https://./` + +Weitere Informationen, einschließlich Anwendungsfällen, finden Sie in der Dokumentation [hier](../system-administration/secure-your-server/securing-your-connection.md). + +Weitere Informationen, einschließlich Anwendungsbeispielen, finden Sie in der Dokumentation [hier](../system-administration/secure-your-server/securing-your-connection.mdx). + +### Virtualisierung + +Sowohl libvirt als auch qemu wurden aktualisiert. Darüber hinaus wurde qemu mit OpenGL-Unterstützung und ARM-Emulation (experimentell) kompiliert. + +#### Windows 11 Unterstützung + +Um Windows 11 zu unterstützen, das TPM und Secure Boot erfordert, haben wir TPM-Emulation hinzugefügt und eine "Windows 11" VM-Vorlage eingeführt, die automatisch das TPM-bewusste OVMF-BIOS auswählt. Hier sind auch Anweisungen zum Upgrade einer Windows 10-VM auf Windows 11. Besonderer Dank an [@ich777](https://forums.unraid.net/profile/72388-ich777/), der erforscht und festgestellt hat, welche Änderungen und Komponenten erforderlich sind, um diese Funktionalität bereitzustellen. + +### Docker + +#### Docker-Labels + +- Docker-Labels werden hinzugefügt, um Personen, die Docker Compose verwenden, die Verwendung von Symbolen und den GUI-Zugriff zu ermöglichen. +- Schauen Sie sich die Ausgabe eines Docker 'run'-Befehls an, um genau zu sehen, welche Labels verwendet werden. + +#### Docker-Benutzerdefinierte Netzwerke + +- Eine neue Einstellung für benutzerdefinierte Netzwerke ist verfügbar. Ursprünglich wurden benutzerdefinierte Netzwerke im Macvlan-Modus erstellt, und dieser Modus wird beibehalten, wenn auf Version 6.10 aktualisiert wird. +- Der neue Ipvlan-Modus wird eingeführt, um die Abstürze zu bekämpfen, die einige Leute erleben, wenn sie den Macvlan-Modus verwenden. Wenn dies bei Ihnen der Fall ist, wechseln Sie in den Ipvlan-Modus und testen Sie. Das Wechseln des Modus erfordert keine Neukonfiguration auf der Docker-Ebene, alles wird intern erledigt. + +#### Docker-Brücken-Netzwerk (docker0) + +- docker0 unterstützt nun IPv6. Dies wird durch die Zuweisung eines privaten IPv6-Subnetzes (fd17::/64) zu docker0 umgesetzt, ähnlich wie bei IPv4, und durch die Verwendung der Netzwerkübersetzung zur Kommunikation mit der Außenwelt. +- Container, die mit dem Brückennetzwerk verbunden sind, haben jetzt sowohl IPv4- als auch IPv6-Konnektivität (natürlich muss das System in der Netzwerkkonfiguration IPv6 konfiguriert haben). +- Darüber hinaus wurden mehrere Verbesserungen in der IPv6-Implementierung vorgenommen, um den Umgang mit der Nutzung (oder Nichtnutzung) von IPv6 besser zu handhaben. + +### WireGuard + +Das WireGuard-Plugin wurde in das WebGUI integriert, sodass ein Plugin nicht mehr erforderlich ist. Wenn Sie das Plugin zuvor installiert hatten, wird es deinstalliert und auf die Seite "Plugins/Plugin-Datei-Installationsfehler" verschoben. Keine Aktion erforderlich, es sei denn, Sie möchten das Löschfeld drücken, um es von dieser Seite zu entfernen. Ihre WireGuard-Tunnels und -Einstellungen bleiben erhalten. [Weitere Informationen zum Einstieg in WireGuard finden Sie in diesem Beitrag](https://forums.unraid.net/topic/84226-wireguard-quickstart/). + +Der ansässige Netzwerk-Guru [@bonienl](https://forums.unraid.net/profile/2736-bonienl/) hat die Möglichkeit hinzugefügt, ein virtuelles WireGuard-Netzwerk-Interface an einen Docker-Container zu binden. Eine Anwendung dieser Funktion ist die Konfiguration eines VPNs mit WireGuard, das dann exklusiv von diesem Container genutzt werden kann, während Ihr Hauptserver das normale LAN-Netzwerk-Interface verwendet. [Für zusätzliche Details bitte diesen Beitrag beachten.](https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381) + +### Linux-Kernel + +Auf Linux 5.15.x LTS-Kernel aktualisiert, der sogenannte *Sequoia*- und *Dirty Pipe*-Schwachstellenminderungen beinhaltet. + +**In-tree GPU-Treiber** werden jetzt standardmäßig geladen, wenn entsprechende Hardware erkannt wird: + +- amdgpu +- ast +- i915 +- radeon + +Diese Treiber sind hauptsächlich für die im Motherboard integrierte Grafik in der *GUI-Start*-Modus erforderlich. Das Laden eines Treibers kann durch Erstellen der entsprechenden Datei, die nach dem Treiber benannt ist, verboten werden. + +`echo "blacklist i915" > /boot/config/modprobe.d/i915.conf` + +Alternativ kann das Gerät über die Seite Systemgeräte vollständig von Linux isoliert werden. Beachten Sie, dass in Unraid OS 6.9-Versionen die GPU-Treiber standardmäßig auf die schwarze Liste gesetzt sind und zum Aktivieren des Ladens eines Treibers eine leere "conf"-Datei erstellt werden muss. Nach dem Upgrade auf Unraid OS 6.10 können Sie diese Dateien löschen oder sie so belassen. Diese Änderung wurde vorgenommen, um die *Desktop GUI*-Erfahrung für neue Benutzer erheblich zu verbessern. + +**Weitere Kernel-Änderungen:** + +- Unterstützung für Intel GVT-g hinzugefügt, mit dem Sie Ihr Intel i915 iGPU in mehrere virtuelle GPUs aufteilen und an mehrere VMs durchreichen können, indem Sie [@ich777](https://forums.unraid.net/profile/72388-ich777/)s *Intel-GVT-g*-Plugin verwenden. +- Unterstützung für gnif/vendor-reset hinzugefügt. Dies vereinfacht [@ich777](https://forums.unraid.net/profile/72388-ich777/)s *AMD Vendor Reset*-Plugin, mit dem Benutzer ihre AMD-Grafikkarten korrekt zurücksetzen können. +- So genannter "add-relaxable-rmrr-5\_8\_and\_up.patch" für unseren Kernel modifiziert: + [https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5\_8\_and\_up.patch](https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch) + Dank an [@ich777](https://forums.unraid.net/profile/72388-ich777/) für den Hinweis. +- Zusätzliche ACPI-Kerneloptionen aktiviert +- TPM-Kernelmodule aktiviert (noch nicht verwendet) - beachten Sie, dass dies für Unraid-Hosts gilt, die physisches TPM nutzen, nicht für emulierte TPM-Unterstützung für virtuelle Maschinen. +- Unterstützt Realtek RTL8152/RTL8153-basierte USB-Ethernet-Adapter +- NFSv4-Unterstützung aktiviert. + +### Basis-Pakete + +Praktisch das gesamte Basispaket-Set wurde aktualisiert. + +Für SMB: Samba Version 4.15 SMB3 Multi-Channel ist nicht mehr als "experimentell" gekennzeichnet, ist jedoch **standardmäßig deaktiviert**. Dies kann auf der Seite Einstellungen/SMB-Einstellungen aktiviert werden. Einige Benutzer haben Probleme mit SMB3-Multi-Channel in Verbindung mit bestimmten Netzwerkkonfigurationen gemeldet. + +Auf Anfrage haben wir das mcelog-Paket hinzugefügt. Mit der Aufnahme dieses Pakets können Sie, wenn Sie einen AMD-Prozessor besitzen, möglicherweise diese Fehlermeldung im Systemprotokoll sehen: + +`mcelog: ERROR: AMD Processor family 23: mcelog does not support this processor. Please use the edac_mce_amd module instead.` + +Wir sind uns nicht sicher, was wir daraus machen sollen. Es scheint, dass mcelog zugunsten von rasdaemon veraltet wird. Dies ist etwas, das wir weiter erforschen müssen. + +### Weitere Verbesserungen + +Weitere Verbesserungen, die vielleicht nicht so offensichtlich sind, in den Release Notes zu erkennen, und einige dieser Verbesserungen sind intern und nicht wirklich sichtbar: + +**Ereignisgesteuertes Modell** zur Gewinnung von Serverinformationen und Aktualisierung der WebGUI in Echtzeit + +- Der Vorteil dieses Modells liegt in seiner Skalierbarkeit. Mehrere Browser können gleichzeitig zur WebGUI geöffnet werden, ohne wesentliche Auswirkungen. +- Außerdem erzeugen veraltete Browsersitzungen keine CSRF-Fehler mehr +- Personen, die ihren Browser 24/7 geöffnet halten, werden feststellen, dass das WebGUI jederzeit reaktionsfähig bleibt +- Konsistente Statusinformationen werden in allen Browserinstanzen gepflegt, die zu einem bestimmten Server geöffnet sind + +**Plugins-Seite** + +- Die Plugins-Seite lädt jetzt Informationen in zwei Schritten. Zuerst wird die Liste der Plugins erstellt und anschließend wird das zeitaufwändigere Plugin-Statusfeld im Hintergrund abgerufen. Das Ergebnis ist eine schneller ladende Plugins-Seite, insbesondere wenn Sie viele Plugins installiert haben. + +**Dashboard-Diagramme** + +- Das Dashboard verfügt nun über zwei verfügbare Diagramme. Das CPU-Diagramm wird standardmäßig angezeigt, während das NETWORK-Diagramm eine neue Option unter Schnittstelle ('Allgemeine Informationen' Auswahl) ist. +- Das CPU-Diagramm kann auch ausgeblendet werden, falls es nicht gewünscht wird +- Beide Diagramme haben eine konfigurierbare Zeitleiste, die standardmäßig auf 30 Sekunden eingestellt ist und unabhängig für jedes Diagramm geändert werden kann, um eine längere oder kürzere Historie zu sehen. +- Diagramme werden in Echtzeit aktualisiert und sind nützlich, um das Verhalten des Servers unter verschiedenen Umständen zu beobachten + +**Scheduler-Verbesserungen** + +- Sie können nun eine Paritätsprüfung in kleinere Stücke aufteilen und diese über mehrere Tage oder Wochen laufen lassen. Zum Beispiel kann eine Prüfung in einem Zeitraum von 01:00 bis 06:00 Uhr an mehreren aufeinanderfolgenden Tagen durchgeführt werden, bis sie abgeschlossen ist. Auf diese Weise wird eine lange Paritätsprüfung nicht mit den normalen täglichen Aktivitäten, wie dem Anschauen eines Films, interferieren. +- Fähigkeit hinzugefügt, 'Balance'- und 'Scrub'-Operationen des Pools zu planen und zu berechnen, ob eine vollständige Balance empfohlen wird. + +**Der eingebaute Firefox-Browser** im *GUI-modus* Start ist als AppImage erstellt und befindet sich im *bzfirmware* komprimierten Dateisystemimage. Dies spart etwa 60MB RAM. + +**Vereinfachte Installation des Community Apps Plugins.** Das WebGUI enthält automatisch das Apps-Menüelement, und wenn CA nicht bereits installiert ist, bietet die Seite eine Installationsschaltfläche an. Es besteht keine Notwendigkeit, den Plugin-Link zu suchen. + +**Wir haben die Schriftgröße im Terminal erhöht** und das Problem mit macOS *Monterey* behoben. Die Terminal-Schriftgröße kann über die Seite Einstellungen/Bildschirmeinstellungen konfiguriert werden. + +**Mover** erstellt eine '.partial'-Datei und benennt sie nach Abschluss um. + +**Systemstart** überprüft die bz-Datei sha256sum beim Booten, um keine Beschädigung sicherzustellen. + +**Für Cookies, die von WebGUI verwaltet werden**, wurde das sameSite-Cookie-Attribut von 'strict' auf 'lax' geändert. Diese Änderung wurde vorgenommen, um ein Problem zu lösen, bei dem das Terminalfenster in Safari nicht geöffnet wurde. + +**Hinzufügen der ServerChan und Pushplus** Benachrichtigungsagenten, dank an [@ludoux](https://forums.unraid.net/profile/168579-ludoux/) + +**Vorlagen-Repositories** wurden entfernt. Weitere Informationen zu ihren Ersatz finden Sie in [diesem Beitrag](https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265) + +### Weitere Fehlerbehebungen + +- Wir sind zu einer besser gewarteten Version der WSD-Serverkomponente namens wsdd2 gewechselt, um Fälle zu vermeiden, in denen der wsd-Daemon 100% eines CPU-Kerns verwenden würde. +- Behoben wurde ein Problem, bei dem kein Docker-Image auf einem Share-Namen erstellt werden konnte, der ein Leerzeichen enthält. +- Behoben wurde ein Problem, bei dem 'Mover' nicht auf einen Poolnamen mit Leerzeichen verschoben wurde. +- Behoben wurde ein Problem im [Benutzerfreigabesystem](../using-unraid-to/manage-storage/shares.mdx#user-shares), bei dem die Berechtigungen nicht beachtet wurden. +- Behobene Jumbo-Frames, die nicht funktionierten. +- sysctl: handle net.netfilter.nf\_conntrack\_count max überschritten (Einstellung auf 131072 erhöhen) - Dank an Community-Mitglied [@DieFalse](https://forums.unraid.net/profile/77686-diefalse/) +- Behobener Fehler, gefunden von [@thohell](https://forums.unraid.net/profile/12113-thohell/), bei dem md\_sync\_limit nicht beachtet wurde, um die Nutzung des stripe\_head caches zu begrenzen, wenn andere E/A aktiv ist. Die Wirkung dieser Fehlerbehebung besteht darin, dass Paritätsoperationen drastisch verlangsamt werden, wenn andere E/A erfolgt (wie beispielsweise das Streaming eines Videos). Das Drosseln von Paritätssynchronisationsvorgängen kann durch Ändern des Werts 'Einstellungen/Festplatzeinstellungen/Tuning (md\_sync\_limit)' angepasst werden. +- Eckfälle beim Ersetzen von btrfs-Poolgeräten behoben. Wichtiger Hinweis: Wenn Sie ein Gerät aus einem btrfs-Mehrgeräte-Pool 'abmelden' und dieses Gerät noch physisch vorhanden ist, löschen wir beim Start der Arrays \*\*den LUKS-Header auf dem Gerät, falls vorhanden, und **löschen** die Partitionstruktur und löschen damit effektiv alle auf dem Gerät enthaltenen Daten. Dies ist notwendig, um btrfs davon zu überzeugen, das Gerät nicht mehr zu verwenden und es zur Zuweisung an einen anderen Pool freizugeben. +- Fehler behoben, bei dem das Ersetzen eines Geräts in einem btrfs-Mehrgeräte-Pool weiterhin das alte Gerät als fehlend markiert hat. +- Fehler behoben, bei dem ein hot-plugging eines Geräts in einem Server mit heruntergefahrenen SAS-Laufwerken dazu führen konnte, dass die SAS-Laufwerke als nicht zugeordnet angezeigt wurden. +- Fehler behoben, bei dem der Server aus dem Windows-Netzwerk verschwand, nachdem Docker und/oder VM gestartet wurden. +- Behobene md/unraid-Treiberregression, die XFS verwirrte und es denken ließ, ein Online-Verkleinern sei aufgetreten. +- Behoben: Unraid friert ein, wenn das Array steigt, während VMs im pausierten oder suspendierten Zustand sind. +- Zahlreiche weitere kleine Fehlerkorrekturen und Verbesserungen. + +## Änderungsprotokoll vs. Unraid OS 6.9.2 + +#### Grunddistro + +- aaa\_base: Version 15.0 +- aaa\_glibc-solibs: Version 2.33 +- aaa\_libraries: Version 15.0 +- acl: Version 2.3.1 +- acpid: Version 2.0.33 +- apcupsd: Version 3.14.14 +- at: Version 3.2.3 +- attr: Version 2.5.1 +- avahi: Version 0.8 +- bash: Version 5.1.016 +- beep: Version 1.3 +- bin: Version 11.1 +- bind: Version 9.16.27 +- bluez-firmware: Version 1.2 +- bridge-utils: Version 1.7.1 +- brotli: Version 1.0.9 +- btrfs-progs: Version 5.16 +- bzip2: Version 1.0.8 +- ca-certificates: Version 20220403 +- celt051: Version 0.5.1.3 +- cifs-utils: Version 6.14 +- coreutils: Version 9.0 +- cpio: Version 2.13 +- cpufrequtils: Version 008 +- cracklib: Version 2.9.7 +- cryptsetup: Version 2.4.3 +- curl: Version 7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775 CVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780 CVE-2022-27781 CVE-2022-27782 CVE-2022-30115) +- cyrus-sasl: Version 2.1.27 +- db48: Version 4.8.30 +- dbus: Version 1.12.20 +- dcron: Version 4.5 +- devs: Version 2.3.1 +- dhcpcd: Version 9.4.1 +- diffutils: Version 3.8 +- dmidecode: Version 3.3 +- dnsmasq: Version 2.86 +- docker: Version 20.10.14 (CVE-2022-24769) +- dosfstools: Version 4.2 +- e2fsprogs: Version 1.46.5 +- ebtables: Version 2.0.11 +- eject: Version 2.1.5 +- elogind: Version 246.10 +- elvis: Version 2.2\_0 +- etc: Version 15.0 +- ethtool: Version 5.16 +- eudev: Version 3.2.11 +- file: Version 5.41 +- findutils: Version 4.8.0 +- flex: Version 2.6.4 +- floppy: Version 5.5 +- fuse3: Version 3.10.5 +- gawk: Version 5.1.1 +- gdbm: Version 1.22 +- genpower: Version 1.0.5 +- getty-ps: Version 2.1.0b +- git: Version 2.35.3 (CVE-2022-24765) +- glib2: Version 2.70.3 +- glibc: Version 2.33 +- glibc-zoneinfo: Version 2022a +- gmp: Version 6.2.1 +- gnutls: Version 3.7.2 +- gptfdisk: Version 1.0.8 +- grep: Version 3.7 +- gzip: Version 1.12 (CVE-2022-1271) +- hdparm: Version 9.63 +- hostname: Version 3.23 +- htop: Version 3.1.2 +- icu4c: Version 69.1 +- inetd: Version 1.79s +- infozip: Version 6.0 +- inih: Version 53 +- inotify-tools: Version 3.20.11.0 +- iproute2: Version 5.16.0 +- iptables: Version 1.8.7 +- iputils: Version 20211215 +- irqbalance: Version 1.7.0 +- jansson: Version 2.14 +- jemalloc: Version 5.2.1 +- jq: Version 1.6 +- json-c: Version 0.15\_20200726 +- json-glib: Version 1.6.6 +- kbd: Version 1.15.3 +- keyutils: Version 1.6.3 +- kmod: Version 29 +- krb5: Version 1.19.2 +- lbzip2: Version 2.5 +- less: Version 590 +- libaio: Version 0.3.112 +- libarchive: Version 3.6.1 +- libcap-ng: Version 0.8.2 +- libcgroup: Version 0.41 +- libdaemon: Version 0.14 +- libdrm: Version 2.4.109 +- libedit: Version 20210910\_3.1 +- libepoxy: Version 1.5.9 +- libestr: Version 0.1.9 +- libevent: Version 2.1.12 +- libfastjson: Version 0.99.9 +- libffi: Version 3.3 +- libgcrypt: Version 1.9.4 +- libgpg-error: Version 1.44 +- libgudev: Version 237 +- libidn: Version 1.38 +- libjpeg-turbo: Version 2.1.2 +- liblogging: Version 1.0.6 +- libmnl: Version 1.0.4 +- libnetfilter\_conntrack: Version 1.0.8 +- libnfnetlink: Version 1.0.1 +- libnftnl: Version 1.2.1 +- libnl3: Version 3.5.0 +- libpcap: Version 1.10.1 +- libpciaccess: Version 0.16 +- libpng: Version 1.6.37 +- libpsl: Version 0.21.1 +- libseccomp: Version 2.5.1 +- libssh: Version 0.9.6 +- libssh2: Version 1.10.0 +- libtasn1: Version 4.18.0 +- libtirpc: Version 1.3.2 +- libtpms: Version 0.9.0 +- libunistring: Version 0.9.10 +- libunwind: Version 1.6.2 +- libusb: Version 1.0.24 +- libusb-compat: Version 0.1.7 +- libuv: Version 1.41.0 +- libvirt: Version 8.2.0 +- libvirt-php: version 0.5.6a +- libwebp: version 1.2.2 +- libwebsockets: version 4.2.0 +- libx86: version 1.1 +- libxml2: version 2.9.14 (CVE-2022-29824) +- libxslt: version 1.1.35 +- libzip: version 1.8.0 +- lm\_sensors: Version 3.6.0 +- lmdb: version 0.9.29 +- logrotate: version 3.18.1 +- lshw: version B.02.19.2 +- lsof: version 4.94.0 +- lsscsi: version 0.32 +- lvm2: version 2.03.13 +- lz4: version 1.9.3 +- lzip: version 1.22 +- lzo: version 2.10 +- mc: version 4.8.27 +- mcelog: version 180 +- miniupnpc: version 2.1 +- mpfr: version 4.1.0 +- nano: version 6.0 +- ncompress: version 5.0 +- ncurses: version 6.3 +- net-tools: Version 20181103\_0eebece +- nettle: version 3.7.3 +- network-scripts: version 15.0 +- nfs-utils: version 2.5.4 +- nghttp2: version 1.46.0 +- nginx: version 1.21.6 +- nss-mdns: version 0.14.1 +- ntfs-3g: version 2021.8.22 +- ntp: version 4.2.8p15 +- numactl: version 2.0.13 +- oniguruma: version 6.9.7.1 +- openssh: version 8.8p1 +- openssl: version 1.1.1o (CVE-2022-1292) +- openssl-solibs: version 1.1.1o (CVE-2022-1292) +- p11-kit: version 0.24.1 +- pam: version 1.5.2 +- patch: version 2.7.6 +- pciutils: version 3.7.0 +- pcre: version 8.45 +- pcre2: version 10.39 +- php: version 7.4.29 (CVE-2021-21708) +- pixman: version 0.40.0 +- pkgtools: version 15.0 +- procps-ng: version 3.3.17 +- pv: version 1.6.6 +- qemu: version 6.2.0 +- qrencode: version 4.1.1 +- reiserfsprogs: version 3.6.27 +- rpcbind: version 1.2.5 +- rsync: version 3.2.3 +- rsyslog: version 8.2102.0 +- samba: version 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336 CVE-2021-44141 CVE-2021-441412 CVE-2022-0336) +- sdparm: version 1.12 +- sed: version 4.8 +- sg3\_utils: Version 1.47 +- shadow: version 4.8.1 +- smartmontools: version 7.3 +- spice: version 0.15.0 +- sqlite: version 3.37.2 +- ssmtp: version 2.64 +- sudo: version 1.9.9 +- swtpm: version 0.7.3 (CVE-2022-23645) +- sysfsutils: version 2.1.0 +- sysvinit: version 2.99 +- sysvinit-scripts: version 15.0 +- talloc: version 2.3.2 +- tar: version 1.34 +- tcp\_wrappers: Version 7.6 +- tdb: version 1.4.6 +- telnet: version 0.17 +- tevent: version 0.11.0 +- traceroute: version 2.1.0 +- tree: version 1.8.0 +- ttyd: version 20211023 +- usbredir: version 0.8.0 +- usbutils: version 014 +- utempter: version 1.2.0 +- util-linux: version 2.37.4 +- vbetool: version 1.2.2 +- vsftpd: version 3.0.5 +- wayland: version 1.20.0 +- wget: version 1.21.2 +- which: version 2.21 +- wireguard-tools: version 1.0.20210914 +- wsdd2: version 20111022 +- xfsprogs: version 5.13.0 +- xxHash: version 0.8.1 +- xz: version 5.2.5 (CVE-2022-1271) +- yajl: version 2.1.0 +- zlib: version 1.2.12 +- zstd: version 1.5.2 + +#### Inklusive mit GUI-Modus + +- adwaita-icon-theme: Version 40.1.1 +- at-spi2-atk: Version 2.38.0 +- at-spi2-core: Version 2.42.0 +- atk: Version 2.36.0 +- cairo: Version 1.16.0 +- dbus-glib: Version 0.112 +- freetype: Version 2.11.1 +- fribidi: Version 1.0.11 +- gd: Version 2.3.3 +- gdk-pixbuf2: Version 2.42.6 +- graphite2: Version 1.3.14 +- gtk+3: Version 3.24.31 +- harfbuzz: Version 3.2.0 +- hicolor-icon-theme: Version 0.17 +- libtiff: Version 4.3.0 +- libxkbcommon: Version 1.3.1 +- pango: Version 1.48.11 +- shared-mime-info: Version 2.1 +- startup-notification: Version 0.12 +- appres: Version 1.0.5 +- dejavu-fonts-ttf: Version 2.37 +- editres: Version 1.0.7 +- encodings: Version 1.0.5 +- fontconfig: Version 2.13.92 +- freeglut: Version 3.2.1 +- glew: Version 2.2.0 +- glu: Version 9.0.2 +- libICE: Version 1.0.10 +- libSM: Version 1.2.3 +- libX11: Version 1.7.3.1 +- libXau: Version 1.0.9 +- libXaw: Version 1.0.14 +- libXcomposite: Version 0.4.5 +- libXcursor: Version 1.2.0 +- libXdamage: Version 1.1.5 +- libXdmcp: Version 1.1.3 +- libXevie: Version 1.0.3 +- libXext: Version 1.3.4 +- libXfixes: Version 6.0.0 +- libXfont: Version 1.5.2 +- libXfont2: Version 2.0.5 +- libXfontcache: Version 1.0.5 +- libXft: Version 2.3.4 +- libXi: Version 1.8 +- libXinerama: Version 1.1.4 +- libXmu: Version 1.1.3 +- libXpm: Version 3.5.13 +- libXrandr: Version 1.5.2 +- libXrender: Version 0.9.10 +- libXres: Version 1.2.1 +- libXt: Version 1.2.1 +- libXtst: Version 1.2.3 +- libXxf86dga: Version 1.1.5 +- libXxf86misc: Version 1.0.4 +- libXxf86vm: Version 1.1.4 +- libdmx: Version 1.1.4 +- libevdev: Version 1.12.0 +- libfontenc: Version 1.1.4 +- libglvnd: Version 1.3.3 +- libpthread-stubs: Version 0.4 +- libxcb: Version 1.14 +- libxkbfile: Version 1.1.0 +- libxshmfence: Version 1.3 +- listres: Version 1.0.4 +- mkfontscale: Version 1.2.1 +- mtdev: Version 1.1.6 +- sessreg: Version 1.1.2 +- setxkbmap: Version 1.3.2 +- transset: Version 1.0.2 +- xauth: Version 1.1.1 +- xcb-util: Version 0.4.0 +- xdpyinfo: Version 1.3.2 +- xdriinfo: Version 1.0.6 +- xev: Version 1.2.4 +- xf86-input-evdev: Version 2.10.6 +- xf86-input-keyboard: Version 1.9.0 +- xf86-input-mouse: Version 1.9.3 +- xf86-input-synaptics: Version 1.9.1 +- xf86-video-ast: Version 1.1.5 +- xf86-video-mga: Version 2.0.0 +- xf86-video-vesa: Version 2.5.0 +- xhost: Version 1.0.8 +- xinit: Version 1.4.1 +- xkbcomp: Version 1.4.5 +- xkbevd: Version 1.1.4 +- xkbutils: Version 1.0.4 +- xkeyboard-config: Version 2.34 +- xkill: Version 1.0.5 +- xload: Version 1.1.3 +- xlsatoms: Version 1.1.3 +- xlsclients: Version 1.1.4 +- xmessage: Version 1.0.5 +- xmodmap: Version 1.0.10 +- xorg-server: Version 1.20.14 +- xprop: Version 1.2.5 +- xrandr: Version 1.5.1 +- xrdb: Version 1.2.1 +- xrefresh: Version 1.0.6 +- xset: Version 1.2.4 +- xsetroot: Version 1.1.2 +- xsm: Version 1.0.4 +- xtrans: Version 1.4.0 +- xwd: Version 1.0.8 +- xwininfo: Version 1.1.5 +- xwud: Version 1.0.5 +- imlib2: Version 1.7.1 +- fluxbox: Version 1.3.7 +- slim: Version 1.3.6 +- vte3: Version 0.50.2 +- sakura: Version 3.5.0 +- xclock: Version 1.0.9 +- xterm: Version 370 +- hwloc: Version 2.2.0 + +#### Linux-Kernel + +- Version: 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910 CVE-2022-0847) +- Patch: "drm/i915/gen11: Verschieben von WAs zu icl\_gt\_workarounds\_init()" +- Patch: "add-relaxable-rmrr-5\_8\_and\_up.patch" für diesen + Kernel modifiziert +- Hinzugefügte Funktionen: + - diverse ACPI-bezogene CONFIG-Einstellungen + - CONFIG\_TCG\_TPM und zugehörige TPM-Chiptreiber + - CONFIG\_NFS\_V4: NFS-Client-Unterstützung für NFS Version 4 + - CONFIG\_NFSD\_V4: NFS-Server-Unterstützung für NFS Version 4 + - CONFIG\_USB\_RTL8152: Realtek RTL8152/RTL8153-basierte USB-Ethernet-Adapter + - CONFIG\_USB\_NET\_AQC111: Aquantia AQtion USB-zu-5/2.5GbE-Controller-Unterstützung + - CONFIG\_USB4: Einheitliche Unterstützung für USB4 und Thunderbolt + - CONFIG\_USB4\_NET: Netzwerkunterstützung über USB4 und Thunderbolt-Kabel + - CONFIG\_DRM\_I915\_GVT: Aktivierung der Intel GVT-g Grafikvirtualisierung Host-Unterstützung + - CONFIG\_DRM\_I915\_GVT\_KVMGT: Aktivieren Sie KVM/VFIO Unterstützung für Intel GVT-g + - CONFIG\_VFIO\_MDEV: Vermittlungsgerätetreiber-Framework + - CONFIG\_VFIO\_MDEV\_DEVICE: VFIO-Treiber für vermittelte Geräte + - CONFIG\_FTRACE: Tracer + - CONFIG\_FUNCTION\_TRACER: Kernel-Funktionstracer + - CONFIG\_KPROBES: Kprobes + - CONFIG\_DEBUG\_KERNEL: Kernel-Debugging + - CONFIG\_KALLSYMS\_ALL: Alle Symbole in kallsyms einschließen + - CONFIG\_ISCSI\_TCP: iSCSI Initiator über TCP/IP (gemäß Community-Mitglied [@ich777](https://forums.unraid.net/profile/72388-ich777/)) + - CONFIG\_GIGABYTE\_WMI: Gigabyte WMI Temperaturtreiber +- BPF Kerneloptionen (auf Benutzeranfrage): + - CONFIG\_BPF\_SYSCALL: bpf()-Systemaufruf aktivieren + - CONFIG\_BPF\_JIT: BPF Just-In-Time-Kompilierer aktivieren + - CONFIG\_BPF\_JIT\_ALWAYS\_ON: BPF JIT permanent aktivieren und BPF-Interpreter entfernen + - CONFIG\_NET\_CLS\_BPF: BPF-basierter Klassifizierer + - CONFIG\_NET\_CLS\_ACT: Aktionen + - CONFIG\_NET\_ACT\_BPF: BPF-basierte Aktion + - CONFIG\_IKHEADERS: Kernel-Headers über + /sys/kernel/kheaders.tar.xz aktivieren + - CONFIG\_NET\_SCH\_SFQ: Stochastic Fairness Queueing (SFQ) + - CONFIG\_NET\_ACT\_POLICE: Verkehrsüberwachung + - CONFIG\_NET\_ACT\_GACT: Generische Aktionen + - CONFIG\_GACT\_PROB: Wahrscheinlichkeitssupport + - CONFIG\_NET\_SCH\_INGRESS: Eingangs-Klassifizierer-Aktions-Qdisc + - CONFIG\_CGROUP\_BPF: Unterstützung für eBPF-Programme, die an Cgroups angehängt sind +- md/unriad: Version 2.9.22 + - Behebung: md\_sync\_limit wurde ignoriert + +#### Verwaltung + +- bessere IPv6-Unterstützung +- Diagnose: Hinzufügen von bz\*.sha256-Werten +- Diagnose: Verbesserte Anonymisierung +- Diagnose: Anonymisieren des Umsetzungsprogramms +- Diagnose: Bessere Paketlistungen in folders.txt +- Diagnose: 169.254.x.x Adressen nicht anonymisieren +- emhttp neue Vorgaben: + - Root-Passwort erforderlich + - Neu erstellte Freigaben werden standardmäßig nicht exportiert + - Vordefinierte 'Flash'-Freigabe wird standardmäßig nicht exportiert + - SSH, Telnet: Standardmäßig deaktiviert + - NetBIOS standardmäßig deaktiviert + - WSD standardmäßig aktiviert (und verwendet neueres 'wsdd2'-Paket) + - Erweiterte macOS-Interoperabilität standardmäßig aktiviert + - Für 'domain' und 'system'-Freigaben, ändern Sie die Standardeinstellung 'Enable Copy-on-write' von 'Nein' zu 'Auto' + - Anpassung des Standardwerts für poll\_attributes von 30 Min. auf 30 Sek. +- emhttpd: Hinzufügen von 'rootshare' als reserviertem Namen +- emhttpd: Behebung von Rückschrittsfehlern: Benutzerfreigaben sollten standardmäßig aktiviert sein +- emhttpd: Minimiert die durch die UpdateDNS-Funktion übermittelten Informationen +- emhttpd: Verwenden Sie shfs ioctl, um den shfs-gecachten Freigabeinfo zu ungültig zu machen, wenn die Freigabekonfigurationen geändert werden +- emhttpd: Falsche Handhabung von nicht zugewiesenen Geräte-Lese-/Schreibzählern korrigieren +- emhttpd: Behebung des Problems, bei dem der falsche Gerätename an heiße Geräte vergeben wird, die nicht zugewiesen sind +- emhttpd: Korrigieren von btrfs-ersetzten Fällen +- emhttpd: Korrigieren Sie btrfs Pool-Geräte Ersatz, das immer noch 'fehlend' zeigt +- emhttpd: Löschen Sie alle PHP-Sitzungen, wenn das Root-Passwort geändert wird (meldet alle ab) +- emhttpd: Korrigieren Sie die Geräten/Status-Verarbeitung für Pools mit einem einzigen Steckplatz +- emhttpd: Mehrere Unterstriche innerhalb von nvme /dev/disk/by-id-Symlinks auf einen einzigen Unterstrich zusammenführen +- firefox: Version 91.0.r20210823123856 (AppImage) +- mover: Fehler beheben, Bei welchem Anteile mit eingebetteten Leerzeichen nicht bewegt werden +- mover: '.partial'-Suffix zum Dateinamen hinzufügen, wenn die Verschiebung im Gange ist +- rc.docker: Netzwerkrennbedingungen bei Start beheben +- rc.libvirt: Verhindern Sie, dass Unraid hängt, wenn das Array gestoppt ist, während VMs im Pausen- oder Aussetzustand sind +- rc.libvirt: Testen Sie die Existenz einer VM, bevor Sie sie zur NAMEN-Liste hinzufügen +- rc.mcelog: mcelog zur Basisdistribution hinzugefügt +- rc.nginx: Änderung des fastcgi\_read\_timeout von 120s auf 640s +- rc.nginx: ttyd-Seitenlast entfernen +- rc.nginx: Unterstützung für Let’s-Encrypt-Wildcard-Zertifikate +- rc.nginx: Unterstützung für benutzerdefinierte Wildcard-Selbsterstellte Zertifikate +- rc.nginx: Selbsterstellter Zertifikatsinhalt von "unRAID" zu "Unraid" ändern +- rc.nginx: Groß-/Kleinschreibung bei der Verarbeitung von Feldinhalt für benutzerdefinierte Zertifikate ignorieren +- rc.nginx: Entfernen des Standardserverblocks, der 404 für HTTPS zurückgibt, wenn USE\_SSL==no und kein CA-signiertes Zertifikat vorhanden ist +- rc.samba: SMB Multi Channel standardmäßig deaktivieren; zur Steuerung Einstellungen/SMB-Einstellungen hinzufügen +- rc.S: Überprüfen Sie bz-Datei sha256 während des ersten Starts +- shfs: Behebung des Fehlers, bei dem die Berechtigungen ignoriert wurden ('default\_permissions' fehlte im mount-Befehl) +- sysctl: Behandlung der Überschreitung von net.netfilter.nf\_conntrack\_count max (Einstellung auf 131072 erhöht) +- ttyd: Fehlerhafte Texte im lokalen Firefox-Terminalfenster beheben +- upgradepkg: Aktualisieren nicht, wenn vorhandenes Paket neuer ist +- wsdd2: Standardmäßig nur auf aktiver Schnittstelle lauschen (br0, bond0 oder eth0) +- WebGUI: Header-UPC integrieren +- WebGUI: Apps-Link zur Installation von CA hinzufügen +- WebGUI: Internen Containerverweis hinzufügen +- WebGUI: Neu Einstellung "Terminalschriftgröße" hinzufügen +- WebGUI: Benachrichtigungsagent für Pushplus hinzufügen +- WebGUI: Benachrichtigungsagent für ServerChan hinzufügen +- WebGUI: 'root'-Ordnerschutz zur Dateibaumstruktur hinzufügen +- WebGUI: Nachverfolgung nach Systemabschaltung hinzufügen +- WebGUI: vmxnet3 und e1000 zu den verfügbaren NICs für VMs hinzufügen +- WebGUI: "User 'root'"-Verweis auf der Verwaltungs-Zugangsseite hinzugefügt +- WebGUI: Benachrichtigung hinzufügen, wenn Plugin-Installation fehlschlägt +- WebGUI: Hinzugefügt: Kumulative Paritätsprüfung. Dies ermöglicht eine Paritätsprüfung, die über mehrere Zeitfenster aufgeteilt wird. +- WebGUI: Hervorhebung der Zeilen auf der Haupt- und Freigabeseite angepasst, um Menschen mit Farbsehschwierigkeiten besser gerecht zu werden +- WebGUI: CA erlauben, alle Docker-Informationen abzurufen, ohne dass Symbole heruntergeladen werden müssen, falls nicht vorhanden +- WebGUI: Alle Benachrichtigungsagenten erlauben, Links zu senden +- WebGUI: Erlaube Regelwerk für lokale Regeln in rsyslog.conf +- WebGUI: Erlaube gleichzeitige Log- und Konsolenfenster für Container +- WebGUI: "WebUI" immer für benutzerdefinierte URLs anzeigen +- WebGUI: BTRFS-Balance und Scrub-Zeitplaner +- WebGUI: BTRFS-Balance: Empfehlungshinweis beheben, wenn Volumen leer ist +- WebGUI: Bessere Array-Synchronisation bei geöffneten mehreren Sitzungen +- WebGUI: Verbesserte Übersetzung der Docker-Container-Variablen +- WebGUI: Kleine Korrekturen im CSS +- WebGUI: Dashboards Paritätsstatus ändern, um ungültig und nicht emuliert zu sein. +- WebGUI: Seitenschaltung ändern, um besser zu Safari auf mobilen Geräten zu passen +- WebGUI: Paritätssynchronisation-Benachrichtigungsstufe von Fehler zu Hinweis ändern +- WebGUI: Header-Auswahl geändert für besseren Android-Support +- WebGUI: Überprüfung auf Flash-Offline-Status / Kurzüberprüfung auf mögliche Korruption +- WebGUI: Styles-Ordner aufräumen +- WebGUI: Zu lange Freigabenamen in Dropdown-Menüs komprimieren +- WebGUI: Kontextmenü: Option "Button" hinzugefügt: Standard ist "links" (aktuelles Verhalten), andere Optionen sind "rechts" und "beide" +- WebGUI: Benachrichtigungsabfragen in Nchan umwandeln +- WebGUI: favicon.ico erstellen +- WebGUI: Syslog-Eintrag erstellen, wenn sich ein Benutzer ausloggt +- WebGUI: Dashboard: CPU- und NETZWERK-Diagramm hinzufügen +- WebGUI: Dashboard: Balkenfarbe beheben, wenn Festplattenschwellenwerte deaktiviert sind +- WebGUI: Dashboard: CPU-Details und Diagrammansicht trennen +- WebGUI: DockerRepositories.page löschen sieh [diesen Beitrag für Infos zu ihren Ersetzungen](https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265) +- WebGUI: Device\_list ersetzt .png-Icon durch Schriftzeichen. +- WebGUI: Diagnose-Plugin-Version Fehler: Max-Version deprecated +- WebGUI: Diagnose: Zusammenfassungen der Freigaben hinzufügen +- WebGUI: Diagnose: Aktuelle Plugin-Versionen einbeziehen +- WebGUI: Diagnose: Zeilen mit Passwörtern etc. aus "go" entfernen +- WebGUI: Diagnose: Anonymisierungsverfahren überarbeiten +- WebGUI: Diagnose: DHCP-Protokoll hinzufügen +- WebGUI: Diagnose: Prüfen auf DNS-Rebind-Schutz +- WebGUI: Diagnose: URL-Details hinzufügen +- WebGUI: Diagnose: Routbare IPs privatisieren +- WebGUI: Anzeigeeinstellungen: "showBannerGradient" hinzufügen +- WebGUI: Keine Hervorhebung von falschen positiven ERST-Fehlern +- WebGUI: Optimierungen beim Laden der Docker-Seite +- WebGUI: Docker-Einstellungen: Browser-Präsets unterdrücken +- WebGUI: Docker-Nutzung Warnung nur bei Bilddatei +- WebGUI: Docker: Netzwerk- / Datenschutzkategorie hinzufügen +- WebGUI: Docker: Kategorie "Krypto" hinzufügen +- WebGUI: Docker: Benutzervorlagen nicht aktualisieren +- WebGUI: Docker: Falsches Caching beim Löschen / Neuerstellen des Bildes beheben +- WebGUI: Docker: Umgang mit Ausnahmefall bei Nutzung der Browser-Zurücktaste im CA unter bestimmten unwahrscheinlichen Umständen +- WebGUI: Docker: Symbolverweise auf Standard-Fragezeichen ignorieren +- WebGUI: Docker: Nur als V2 speichern +- WebGUI: Docker: PHP-Fehler bei der Bearbeitung einer Vorlage unterdrücken, wenn Korruption vorliegt +- WebGUI: Docker: CA-Tag unterstützen +- WebGUI: Docker: ReadMe in Kontextmenüs unterstützen +- WebGUI: Docker: Beschreibung für alle benutzerdefinierten Netzwerke hinzufügen +- WebGUI: Docker: Route für Remote-Zugriff über WireGuard hinzufügen: + - "Hostzugang zu benutzerdefinierten Netzwerken" muss aktiviert sein, um den Zugriff zu ermöglichen + - Container mit Netzwerk 'br0' können per WireGuard ferngesteuert werden, ohne dass statische Routen auf dem Heimrouter (Gateway) konfiguriert werden müssen +- WebGUI: Docker: Zeiteinheit in den Einstellungen hinzufügen +- WebGUI: Docker: WireGuard-Beschreibung in der Netzwerkauswahl hinzufügen +- WebGUI: Docker: Zu lange Autorennamen komprimieren +- WebGUI: Docker: GUI kann hängen bleiben, wenn mehrere Bildschirme geöffnet sind +- WebGUI: Docker: Überlappende Anzeige von Container-IDs beheben +- WebGUI: Docker: Spinner verschwindet nicht, nachdem versucht wurde, einen nicht vorhandenen Container zu deinstallieren +- WebGUI: Docker: Dateibaum manchmal nicht sichtbar behoben +- WebGUI: Docker: Behobenes Anzeigeproblem führt zu Lücke +- WebGUI: Docker: Listendarstellung im festen Ansichtsmodus behoben +- WebGUI: Docker: Beim Entfernen von Vorlagen, wenn keine Container existieren, behoben +- WebGUI: Docker: Popup-Fenster an die Browserfenstergröße anpassen +- WebGUI: Docker: Kontextmenü optimiert +- WebGUI: Docker: Bash-ANSI-Farben in der Weblog-Anzeige verarbeiten +- WebGUI: Docker: Schließen-Schaltfläche im Popup-Fenster entfernen +- WebGUI: Docker: Übersetzungsoptimierung +- WebGUI: Docker: Aktualisierungsfenster verwendet die Farbe des ausgewählten Themes +- WebGUI: Container hinzufügen/ändern: Konsolenfehler im Browser beheben +- WebGUI: SMART-Erweiterungstest je nach Spindown-Delay-Einstellung aktivieren/deaktivieren +- WebGUI: Fehlerprüfung etc. bei Ports für den Syslog-Server +- WebGUI: Doppelte Anführungszeichen in Texteingaben für Submit maskieren +- WebGUI: Dateityp-Icon-Auswahl erweitern +- WebGUI: ipaddr() mit Protokoll erweitern: Protokoll standardmäßig auf IPv4 in IPv4 + IPv6-Fällen +- WebGUI: CPU-Modell manchmal nicht vorhanden behoben +- WebGUI: PHP-Fehler bei Berechnung des Balance-Levels beheben +- WebGUI: Korruptionsprüfung nach dem Ausstellen einer neuen Konfiguration beheben +- WebGUI: Fehlenden csrf-Token in Benachrichtigungen beheben +- WebGUI: Falsche positive Monitorausgaben beheben +- WebGUI: Netzwerkbonding-Anzeige beheben +- WebGUI: Anzeige von Pools auf Hauptseite beheben, wenn leerer Pool existiert +- WebGUI: Regressionserror bei Themes „azure & gray“ beheben +- WebGUI: Seitenleisten-Fehler bei Themes azure/gray in Firefox beheben +- WebGUI: Verbesserte DNS-Rebind-Prüfung +- WebGUI: Behobene PHP-Fehler bei Freigabe- und Plattenberechnungen +- WebGUI: Zeitplan für Balance/Scrub nicht gespeichert, wenn der Gerätename ein "-" enthält, behoben +- WebGUI: Kommentarfeld nur für ausgewählte Platten behoben +- WebGUI: Paritätsdauer + Geschwindigkeit bei Pause/Fortsetzen behoben +- WebGUI: SMART-Temperatureinstellungen manchmal nicht möglich behoben +- WebGUI: VM 9p Add-Share-Problem behoben +- WebGUI: Buttons in Gerätinfo nicht funktionsfähig, wenn kein Gerät vorhanden, behoben +- WebGUI: Fehlendes SameSite-Attribut in Cookies behoben +- WebGUI: Paritätshistorie manchmal falsch verarbeitet behoben +- WebGUI: Racebedingung behoben, wenn Array gestoppt wird und Gerätezuweisungen geändert +- WebGUI: Spezifische Platteneinstellungen nur für Pool-Geräte +- WebGUI: Geschwindigkeitsberechnung der Paritätsprüfung behoben +- WebGUI: Spinner bleibt nach Docker-Befehl sichtbar +- WebGUI: Verbesserungen und Anpassungen in der Durchsuchungsfunktion +- WebGUI: Schriftart-Dateien aktualisieren: +- CSS-Einstellungen anpassen + - Font-Dateien bereinigen, nur WOFF-Format verwenden + - Schriftart "clear-sans" wiederherstellen +- Bitstream-Schriftart aktualisieren + - bitstream → source code pro + - clear-sans → source sans pro +- WebGUI: Erstellen eines Root-Passworts erzwingen +- WebGUI: Ausgewählte Zeile beim Überfahren von Array oder Freigaben hervorheben +- WebGUI: Verbesserte Erkennung und Handhabung von Hintergrundprozessen +- WebGUI: Verbesserte Formatierung veralteter und fehlerhafter Plugin-Seiten +- WebGUI: Links in E-Mail- und Discord-Agent-Benachrichtigungen einbeziehen +- WebGUI: Einstellung "showBannerGradient" standardmäßig auf "ja" setzen +- WebGUI: Begrenzung der Popup-Fensterbreite auf Ultrawide-Monitoren +- WebGUI: Protokollierung von Docker-Symboldownload-Fehlern +- WebGUI: Aktualisierungsfrequenz der Monitorfunktion verringern, um besser auf mobile Geräte zu passen +- WebGUI: Hauptseite - Tabellenaktualisierungsfrequenz reduzieren für bessere Reaktionsfähigkeit von Links +- WebGUI: WireGuard-Markenzeichen auf "voller" Seite sichtbar machen +- WebGUI: Links im Hilfetext hervorheben (rot) +- WebGUI: Verwaltung: Fehler bei Belegung der Ports beheben +- WebGUI: Verschiedene Updates und Fehlerbehebungen +- WebGUI: Starttaste unter das Verschlüsselungsfeld verschieben +- WebGUI: NFS: Kopieren der Hostliste nach dem LESEN beheben +- WebGUI: Nchan: Mehrkanalmodus verwenden und Fehlerberichterstattung hinzufügen +- WebGUI: Nur PNG-Dateien als Benutzerbild-Upload zulassen +- WebGUI: Terminalfenster mit dynamischer Größe öffnen +- WebGUI: Paritätsprüfung: Spinup/Spindown erlauben, wenn der Vorgang pausiert ist +- WebGUI: Paritätsprüfung: Fertig-Schaltfläche nach Abschluss erneut einführen +- WebGUI: Verbesserungen der Paritätsoperation: + - Disk-Lösch-Aktion hinzufügen + - Paritätsoperations-Aktion zur Historienansicht hinzufügen + - Größenspalte zur Paritätshistorie hinzugefügt + - CSS-Anpassung in den SMART-Attributen + - Korrekte Berechnungen für Datenwiederherstellung kleiner als Parität + - Paritätssynchronisation und Datenwiederherstellung als einzelne Aktionen trennen + - Zusätzliche Tasten im Array gestoppt Zustand anzeigen + - Textverbesserungen + - Nchan-Updates für Kopier-/Löschfortschritt verwenden +- WebGUI: Parität: Zeigt Dauerzeit ohne Leerlauf an +- WebGUI: Plugin-Manager: Fehlerhafte Deaktivierung von Zweig-Auswahl behoben +- WebGUI: Verbesserungen beim Laden der Plugin-Seite +- WebGUI: Proaktive Sicherheitshärtung von Skripten +- WebGUI: SMART-Erkennungslogik relaxieren +- WebGUI: Aktualisierungsfrequenz etwas lockern +- WebGUI: Nchan-Fehlererkennung entfernen (Verlassen Sie sich auf die automatische Wiederverbindung von Nchan zur Wiederherstellung von Verbindungen bei langsamer Kommunikation) +- WebGUI: Veraltete Schriftarten-Erweiterungen entfernen: eot, svg, ttf +- WebGUI: Abfrageskripte durch ereignisgesteuerte Nchan-Schnittstelle ersetzen +- WebGUI: Rückkehr zur Standard-Großschreibung von Gerätenamen +- WebGUI: Filedrop.js überarbeitet +- WebGUI: Rechtsklicken oder langes Klicken auf einen Menüpunkts sollte das ausgewählte Menü öffnen +- WebGUI: SSH-autorisierte Schlüssel-Benutzeroberfläche +- WebGUI: Aktualisierungsfrequenz der Hauptseite auf 1s für besseren mobilen Gerätesupport setzen +- WebGUI: Freigaben: Falsche Größenberechnung beheben +- WebGUI: IP auf VM-Manager-VM-Seite anzeigen +- WebGUI: Verwaltungs- und Freigabezugangs-Gruppen für Benutzer anzeigen +- WebGUI: Warnung anzeigen, wenn JavaScript deaktiviert ist +- WebGUI: Anmeldung erforderlich, um Unraid LE SSL-Zertifikat zu bereitstellen/erneuern +- WebGUI: PHP-Fehler auf Syslinux-Seite unterdrücken, wenn Flash-Laufwerk fehlt +- WebGUI: Unterstützung für zukünftige T2FA +- WebGUI: Unterstützt mehrsprachige Darstellung im Dateibaum +- WebGUI: Unterdrückung von IPv6-Anycast-Adressen in der Routingtabelle +- WebGUI: Unterdrückung nicht relevanter IPv6-Routen in der Routingtabelle +- WebGUI: Systemgeräte-Erweiterungen +- WebGUI: Systeminformationen: Übersetzungsfehler beheben +- WebGUI: Übersetzungsunterstützung (Unraid.net) +- WebGUI: Übersetzungen: Behebung der Erstellung leerer Sitzungen +- WebGUI: Aktualisierung der Credits-Seite +- WebGUI: Aktualisierung der DashStats-Seite +- WebGUI: Aktualisierung der FileTree.php +- WebGUI: Aktualisierung der GUI mit neuesten Hilfetexten +- WebGUI: Aktualisierung von Outlook/Hotmail-SMTP-Einstellungen +- WebGUI: Aktualisierung des Warntextes +- WebGUI: CSS-Dateien aktualisieren, um nur woff und woff2 Formate zu verwenden +- WebGUI: UpdateDNS zur Bevorzugung von IPv4 zuerst und dann IPv6 +- WebGUI: Aktualisierung der Bitstream-Schriftart zur Unterstützung weiterer Sprachen +- WebGUI: Aktualisierte Hilfetexte für Anzeigeeinstellungen und Docker +- WebGUI: Hintergrundkontrollen zur Erkennung von Flash-Korruption verwenden +- WebGUI: HTTPS für Internetkonnektivitätsprüfungen verwenden +- WebGUI: Tabulatoransicht für Geräteinformationsseite verwenden +- WebGUI: Verwendung von ttyd für Protokollfenster +- WebGUI: VM Manager: Download-Link für virtio-win-0.1.208.iso hinzufügen +- WebGUI: VM Manager: Windows 11-Vorlage und OVMF-TPM hinzugefügt +- WebGUI: VM-Editor-Stil aktualisieren +- WebGUI: VM: Fehlende Pfadauswahl (für GPU-Firmware-Datei) beheben +- WebGUI: VMs: Virtio-Win-ISO-Liste automatisch aktualisieren +- WebGUI: VMs: Kontextmenü optimiert +- WebGUI: WebGUI-Ports vor dem Anwenden validieren +- WebGUI: Ziel der VirtIO-ISO-Downloads validieren +- WebGUI: Beim Ansehen der Quelle die verantwortliche .page-Datei identifizieren +- WebGUI: WireGuard integriert +- WebGUI: WireGuard-Updates: + - Tunnel-Routing für Docker-Container hinzufügen + - WG-Tunnel automatisch Containern verfügbar machen (benutzerdefiniertes Netzwerk) + - Importkonfigurationsdatei von VPN-Anbietern robuster machen. + - VPN-getunnelter Zugriff für Docker + - VPN-getunnelter Zugriff für das System +- WebGUI: WireGuard: Warnung hinzufügen, wenn das Löschen des Tunnels fehlschlägt +- WebGUI: WireGuard: Einführung neuer Netzwerkmodes: +- WebGUI: WireGuard: Logik hinzufügen, um Netzwerke nach dem Neustart neu zu erstellen +- WebGUI: WireGuard: Korrekte Handhabung von IPv4 + IPv6-Tunneln +- WebGUI: WireGuard: Voreingestellten Peer-DNS-Server mit "Remote-Tunnelzugang" +- WebGUI: WireGuard: Kill-Switch bei inaktivem Tunnel verwenden +- WebGUI: WireGuard: Benutzer-Nginx-Einstellungen und Unraid.net-API +- WebGUI: WireGuard: Warnung bei direkter Verbindung mit öffentlicher IP +- WebGUI: WireGuard: Importfunktion korrigieren, um alle Schlüssel zu akzeptieren +- WebGUI: WireGuard: Managementschnittstelle auswählbar machen: +- WebGUI: WireGuard: Managementschnittstelle auswählbar machen: + - Standardmäßig auf eth0 - zukünftige Erweiterung +- WebGUI: WireGuard: ListenPort aus Datei-Input entfernen: + - ListenPort muss einzigartig sein, WG soll stattdessen einen zufälligen lokalen Port generieren +- WebGUI: Verbesserungen am CSS-Scrollbar +- WebGUI: Diagnosen: Fix: Myunraid.net-URLs anonymisieren +- WebGUI: DockerMan-Sicherheit: HTML-Tags aus Konfigurations-Elementen entfernen +- WebGUI: DockerMan: HTML aus Beschreibungen entfernen +- WebGUI: Fix: Passwortsperren werden nicht korrekt entfernt +- WebGUI: Fix: Reauthentifizierungsnachricht aus E-Mail-Benachrichtigungen entfernen +- WebGUI: Verbesserung: Markierung der ausgewählten Zeile beim Überfahren von Array oder Freigaben +- WebGUI: jQuery: Version 3.6.0 +- WebGUI: CA-signierte Zertifikatssubjekte als Link anzeigen +- WebGUI: Host in Diagnosen privatisieren +- WebGUI: UpdateDNS.php neu strukturieren: Detaillierte Ausgabe standardmäßig anonymisieren, weitere Verbesserungen +- WebGUI: "My Servers"-Skelettseite entfernen +- WebGUI: Anmeldung zum Bereitstellen von Zertifikaten erforderlich +- WebGUI: Gleichzeitige LAN-SSL-Unterstützung mit selbstsigniertem Zertifikat und DNS-basierte SSL-Unterstützung mit Let's Encrypt-Zertifikat +- WebGUI: Verschiedene Korrekturen für Mehrsprachigkeit + +["WireGuard" und das "WireGuard"-Logo sind eingetragene Marken von Jason A. Donenfeld.](https://www.wireguard.com/) + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md new file mode 100644 index 0000000000..8dcfb568b2 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md @@ -0,0 +1,19 @@ +## Version 6.10.1 2022-05-21 + +Einige Benutzer starten von einer USB-Flash-Partition, die nicht "1" ist. Das heißt, anstelle von /dev/sda1 haben einige Benutzer /dev/sda2 als Volumenlabel UNRAID gesetzt, und es gibt sogar Benutzer, die überhaupt keine Partitionen auf dem Flash haben. In diesem Fall bootet und mountet es /dev/sda auf /boot. + +Eine Änderung in 6.10.0 bei der Erkennung des Boot-Geräts mit dem Label UNRAID führte zu einem Problem, bei dem nur Partition 1 berücksichtigt wurde, wodurch diese Benutzer die Boot-Sequenz nicht abschließen konnten. + +Dies wurde in 6.10.1 behoben – und das ist die einzige funktionale Änderung in 6.10.1 gegenüber 6.10.0. + +## Änderungsprotokoll gegenüber Unraid OS 6.10.0 + +#### Verwaltung + +- Startup: Regression beheben: Unterstützung für USB-Flash-Start von anderen Partitionen als Partition 1 + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md new file mode 100644 index 0000000000..3ed618b76f --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md @@ -0,0 +1,87 @@ +## Version 6.10.2 2022-05-27 + +### Mögliche Datenbeschädigung mit dem tg3-Treiber, wenn Intel VT-d aktiviert ist + +Die Kombination des Linux 5.15-Kernels, des tg3-Treibers und der aktivierten Intel VT-d scheint Datenkorruption zu verursachen. Dies wurde auf mehreren Plattformen verifiziert, darunter eine Broadcom NetXtreme Gigabit Ethernet NIC (Hinweis: möglicherweise gibt es noch andere). Diese Veröffentlichung beinhaltet den folgenden Workaround: + +Sehr früh beim Server-Startup (rc.S), wenn Intel VT-d als aktiviert erkannt wird, erstellt das Skript bedingungslos die Datei: + +`/etc/modprobe.d/tg3.conf` + +mit folgendem Inhalt: + +`schwarze Liste tg3` + +Daher wird standardmäßig, wenn VT-d aktiviert ist, das bedeutet, es wurde weder im BIOS noch über den Kernel "intel\_iommu=off" deaktiviert, der tg3-Treiber auf allen Plattformen auf die schwarze Liste gesetzt. Was ist, wenn jemand eine Plattform hat, auf der der tg3-Treiber mit aktiviertem VT-d keine Probleme verursacht? In diesem Fall müssen sie eine \_leere\_ Datei auf ihrem Flash-Gerät erstellen: + +`config/modprobe.d/tg3.conf` + +Wenn die Startsequenz fortgesetzt wird, erreicht sie den Punkt, an dem sie ausführt: + +`install -p -m 0644 /boot/config/modprobe.d/* /etc/modprobe.d` + +Eine *leere* tg3.conf-Datei, die im Flash gespeichert ist, entlistet sie dann effektiv. + +Es wird Benutzer geben, die die Netzwerkverbindung verlieren, weil ihre NIC auf die schwarze Liste gesetzt wird. Wenn Sie auf einer problematischen Plattform arbeiten, sollten Sie ins BIOS gehen und VT-d deaktivieren. Wenn dies eine Plattform ohne Probleme ist, müssen Sie im Verzeichnis config/modprobe.d Ihres Flash-Speichers die leere Datei tg3.conf erstellen. + +Es kann einige Zeit dauern, um ein geeignetes Update für dieses Problem zu identifizieren und zu integrieren; zu diesem Zeitpunkt werden wir den automatischen Schwarzzukunftscode entfernen. + +#### Wie deaktiviert man Intel VT-d auf dem HP MicroServer Gen 8 mit einem E3-1265LV2 + +Server neu starten, dann: + +- Drücken Sie während des Startvorgangs F9, um in das BIOS zu gelangen. +- Sobald das BIOS geladen ist, gehen Sie zum Menü Systemoptionen → Prozessoroptionen → Intel(R) VT-d +- Stellen Sie es auf deaktiviert +- Drücken Sie Esc, um wieder zum Hauptmenü zu gelangen +- Drücken Sie F10, um das BIOS zu verlassen und zu speichern + +Der Server sollte jetzt wieder normal starten. Dank an das Community-Mitglied Oceanic für die +Anleitung. + +### Sicherheitsbezogene Änderungen + +- Der Firefox-Browser wurde auf Version 100.0.2 aktualisiert, um eine sehr schwerwiegende Sicherheitslücke zu schließen. Wenn Sie Firefox verwenden, empfehlen wir auch ein Upgrade auf allen Plattformen. +- Wir haben ein Problem behoben, bei dem das WebGUI-Login ein Passwort von einem anderen Benutzer als „root“ akzeptieren konnte, wenn dieser Benutzername das String „root“ enthielt. +- Der Linux-Kernel wurde auf 5.15.43 aktualisiert, um eine "Sicherheitsumgehung"-Schwachstelle zu beheben. + +### Andere Änderungen + +- Auf der Seite Managementzugriff haben wir für die Einstellung "Use SSL/TLS" das Wort "Auto" im Dropdown-Menü in "Strict" geändert. Dies beschreibt die Aktion dieser Einstellung besser. +- Der Docker-Manager verwendet jetzt das Docker-Label als Fallback für Symbole. +- Der VM Manager bietet nun die Möglichkeit, LibVirt-Netzwerke neben Bridges zu verwenden, ohne die XML der VM bearbeiten zu müssen. +- Verbesserte Handhabung von benutzerdefinierten SSL-Zertifikaten. +- \[6.10.1] Regression behoben: Unterstützung von USB-Flash-Boots von anderen als Partition 1 +- Sonstige diverse Fehlerbehebungen + +## Änderungsprotokoll vs. Unraid OS 6.10.1 + +#### Grunddistro + +- firefox AppImage: Version: 100.0.r20220519220738 (CVE-2022-1802 CVE-2022-1529) + +#### Linux-Kernel + +- Version 5.15.43-Unraid (CVE-2022-21499) + +#### Verwaltung + +- nginx: Vermeiden Sie das Hinzufügen der Standardportnummer zu Umleitungs-URLs +- nginx: selbstsignierte Zertifikatsdatei: akzeptieren Sie den allgemeinen Namen und alle alternativen Namen +- Start: Behebung, dass mehreren Netzwerkschnittstellen die gleiche MAC-Adresse zugewiesen wurde +- Start: tg3 standardmäßig auf die schwarze Liste setzen, wenn Intel VT-d aktiviert ist +- WebGUI: Managementzugriff: SSL/TLS-Einstellung verwenden: ändern Sie das Wort „Auto“ zu „Strikt“ +- WebGUI: Behoben: smGlue nicht enthalten, wenn ein Controller ausgewählt wird +- WebGUI: Behoben: Erlauben Sie Freigabenamen mit eingebettetem kaufmännischem Und-Zeichen +- WebGUI: LXC-Terminalunterstützung hinzufügen (für LXC-Plugin) +- WebGUI: Docker Web UI verwendet Docker-Label für Symbole als Fallback +- WebGUI: VM-Manager: Unterstützung von libvirt-Netzwerken (machen Sie libvirt-Netzwerke über die GUI zugänglich) +- WebGUI: Problem behoben, bei dem der 'root'-Login mit einem Passwort von einem anderen Benutzer, der den String 'root' enthielt, funktionierte. +- WebGUI: OS-Seitenschreibkorrektur: Warnungskorrektur +- WebGUI: Überprüfung des Hilfetextes: kleinere Korrekturen + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md new file mode 100644 index 0000000000..074519ea4c --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md @@ -0,0 +1,53 @@ +## Version 6.10.3 2022-06-14 + +### Verbesserungen + +Behobenes Datenbeschädigungsproblem, das auf einigen Plattformen, insbesondere auf dem HP Microserver Gen8/9, auftreten konnte, wenn Intel VT-d aktiviert war. +Das wurde gelöst, indem der voreingestellte IOMMU-Betriebsmodus des Linux-Kernels von "DMA-Übersetzung" auf "Durchreichen" geändert wurde. + +- Außerdem wurde das Blacklisting von 'tg3' entfernt, wenn Intel VT-d aktiviert war. Dies wurde aus Vorsicht hinzugefügt, da alle frühen + Berichte über Datenbeschädigungen von Plattformen stammten, die zufällig auch den 'tg3' Netzwerktreiber verwendeten. Wenn Sie eine + leere Datei 'config/modprobe.d/tg3.conf' erstellt haben, können Sie diese entfernen. + +**Plugin-Autoren:** Eine Plugin-Datei kann einen ``-Tag enthalten, der eine mit Markdown formatierte Nachricht anzeigt, wenn eine neue Version verfügbar ist. +Verwenden Sie dies, um Anleitungen oder Warnungen an Benutzer vor der Durchführung des Upgrades zu übermitteln. + +Farbkodierung in Protokollfenstern wieder eingeführt. + +### Fehlerbehebungen + +Problem mit der Erkennung der Mellanox-NIC behoben. + +Sonstige WebGUI-Fehlerkorrekturen + +## Änderungsprotokoll gegenüber Unraid OS 6.10.2 + +### Grunddistro + +- keine Änderungen + +### Linux-Kernel + +- Version 5.15.46-Unraid +- CONFIG\_IOMMU\_DEFAULT\_PASSTHROUGH: Durchschleifen + +### Verwaltung + +- Start: Verbesserung der Netzwerkerkennung +- WebGUI: Farbcodierung zu Protokolldateien hinzugefügt +- WebGUI: Bei Flash-Korruption den Test erneut versuchen +- WebGUI: Verbesserte Syslog-Anzeige +- WebGUI: Einstellung der Protokollgröße beim Anzeigen des Syslogs hinzugefügt +- WebGUI: Plugin-Manager: Funktion für ALERT-Nachrichten hinzufügen +- WebGUI: INFO-Symbol zum Banner hinzufügen +- WebGUI: Übersetzungen zur PageMap-Seite hinzugefügt +- WebGUI: Fehlerbehebung: nicht korrekte Paritätsprüfung korrigierend bei installiertem nicht-englischem Sprachpaket +- WebGUI: Aktualisierte azure/graue Themen + - Bessere Unterstützung für Firefox + - Nutzungs- und Benachrichtigungsindikatoren nach rechts verschieben + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md new file mode 100644 index 0000000000..b3a4154366 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md @@ -0,0 +1,314 @@ +## Version 6.11.0 2022-09-23 + +### Verbesserungen + +- Mit diesem Release gab es viele Basis-Paket-Updates, einschließlich mehrerer CVE-Mitigierungen. + +- Das Linux-Kernel-Update enthält Maßnahmen gegen [Processor MMIO stale-data vulnerabilities](https://lwn.net/Articles/898011/). + +- Das Plug-in-System wurde so umgestaltet, dass die 'Plug-in-Installation' im Hintergrund fortgesetzt werden kann. Dies behebt das Problem, bei dem ein Benutzer denken könnte, die Installation sei abgestürzt und schließt das Fenster, obwohl sie tatsächlich nicht abgestürzt ist. + +- Viele weitere WebGUI-Verbesserungen. + +- Unterstützung für die Angabe benutzerdefinierter VNC-Ports im VM-Manager-Formular-Editor hinzugefügt. Die im XML-Editor angegebene benutzerdefinierte Portnummer bleibt erhalten, wenn zum formularbasierten Editor gewechselt wird. + +- Das Herunterfahren von nicht-rotierenden Geräten versetzt diese Geräte nun in den Standby-Modus, wenn dies vom Gerät unterstützt wird. Ähnlich wird beim Hochfahren oder bei jeglichem E/A auf das Gerät der normale Betrieb wiederhergestellt. + +- Anzeige der NVMe-Gerätemöglichkeiten, die aus SMART-Informationen gewonnen wurden. + +- Notwendige Kernel-CONFIG-Optionen hinzugefügt, um SR-iov mit Mellanox ConnectX4+-Karten zu unterstützen. + +- Dynamix SSD Trim Plugin in Unraid OS WebGUI integriert. + +- Vorläufige Unterstützung für cgroup2. Geben Sie 'unraidcgroup2' in der syslinux-Append-Zeile ein, um zu aktivieren. + +- Perl in der Basis-Distribution enthalten. + +### Fehlerbehebungen + +- Problem im VM-Manager behoben, bei dem das VM-Log nicht geöffnet werden konnte, wenn der VM-Name ein eingebettetes `#`-Zeichen enthält. + +- Problem behoben, bei dem das Paritäts-Check-Pausieren/Fortsetzen im Zeitplan nicht funktionierte. + +- Problem beim Installieren von Registrierungsschlüsseln behoben. + +- Samba wurde aktualisiert, um Sicherheitsprobleme zu adressieren. Auch Kernel-Meldungen über "Versuch, ein LOCK\_MAND-Schloss über flock(2) zu setzen." sollten verschwinden. + +- Problem beim Wechseln von der `test`-Branch zu `next` behoben. + +- Das Herunterfahren von Geräten, die den Standby-Modus nicht unterstützen, nicht mehr versuchen. + +- AD-Beitrittsproblem behoben, das durch veraltete cyras-sasl-Bibliothek verursacht wurde. + +- Starten des mcelog-Daemons vermeiden, wenn die CPU nicht unterstützt wird (meiste AMD-Prozessoren). + +- Problem behoben, bei dem nginx die Erneuerung des SSL-Zertifikats nicht erkannte. + +- Wireguard: Überprüfen Sie die Erreichbarkeit des Gateways (nächste Hop), bevor der WG-Tunnel gestartet wird. + +- Ignorieren von "ERROR:"-Zeichenfolgen, die im Ausgabebefehl "btrfs filesystem show" gemischt sind. Dies löst das Problem, bei dem libblkid eine Paritätsfestplatte als btrfs-Dateisystem markieren könnte, da der Ort, an dem es nach der "magischen Zahl" sucht, zufällig zu btrfs passt. Nachfolgende "btrfs fi"-Befehle versuchen, btrfs-Metadaten von diesem Gerät zu lesen, was scheitert, da dort tatsächlich kein btrfs-Dateisystem vorhanden ist. + +- Fehler im Mover-Tool behoben, der verhinderte, dass Dateien vom unRAID-Array in einen Cachepool (Modus: Vorzugsweise) verschoben wurden, wenn der Freigabename ein Leerzeichen enthielt. + +## Änderungsprotokoll im Vergleich zu Unraid OS 6.10.3 + +#### Verwaltung + +- SHA-256-Prüfsummen von entpackten Dateien in unRAIDServer.plg hinzufügen. +- bash: In /etc/profile das "." (aktuelles Verzeichnis) aus dem PATH weglassen. +- docker: `docker stop` nicht aufrufen, wenn keine Container ausgeführt werden. +- emhttpd: Unterstützung für Standby (Spinnen) verbessert. +- Mover: Problem behoben, das verhinderte, dass Dateien vom Array in den Cache verschoben wurden, wenn der Freigabename ein Leerzeichen enthielt. +- rc.nginx: Aktivieren Sie das OCSP-Stapeln auf Zertifikaten, die eine OCSP-Responder-URL enthalten. +- rc.nginx: Komprimieren Sie die Schriften `woff`-Dateien und fordern Sie den Browser auf, diese im Cache zu speichern. +- rc.wireguard: Bessere Fehlersuche für den WireGuard-Autostart hinzufügen. +- rc.S: Frühzeitiges Laden von Plugin-Treibermodulen unterstützen. +- SMB: `fruit`-Einstellungen für das USB-Flash-Boot-Gerät behoben. +- SMB: NTLMv1-Unterstützung entfernen, da dies aus dem Linux-Kernel entfernt wurde. +- SMB: (vorübergehend) die vfs\_fruit-Einstellungen in eine separate Datei /etc/samba/smb-fruit.conf verschieben +- SMB: (vorübergehend) die Warnhinweise 'idmap\_hash ist veraltet' von Samba entfernen +- Starten: Das Installieren von herabgestuften Versionen von Paketen verhindern, die möglicherweise in `/boot/extra` vorhanden sind. +- upc: Version v1.3.0 +- WebGUI: Update des Plugin-Systems. + - Frontend- und Backend-Operation trennen. + - Verwenden Sie `nchan` als Kommunikationskanal. + - Erlaube es, das Fenster zu schließen, während das Backend weitermacht. + - Verwenden Sie `SWAL` als Fenster-Manager. + - Fügt die Möglichkeit hinzu, mehrere Elemente auf der Plugins-Seite zu entfernen. + - Fügt die Funktion hinzu, alle Plugins mit Details zu aktualisieren. +- WebGUI: Docker: Verwenden Sie das Docker-Label als primäre Quelle für die WebUI. + - Dies macht die 'net.unraid.docker.webui' Docker-Label zur primären Quelle beim Parsen der Web-UI-Adresse. Wenn das Docker-Label fehlt, wird stattdessen der Template-Wert verwendet. +- WebGUI: Aktualisierung der Credits-Seite +- WebGUI: VM-Manager: Korrigieren Sie, dass das VM-Log nicht geöffnet werden kann, wenn der VM-Name ein eingebettetes `#` enthält. +- WebGUI: Management-Zugriffsseite: Details für selbstsignierte Zertifikate hinzufügen. +- WebGUI: Paritätsprüfung: Regessionsfehler beheben. +- WebGUI: Sitzungserstellung in Skripten entfernen. +- WebGUI: SSH-Schlüssel-Regex aktualisieren. + - Unterstützung für `ed25519`/`sk-ed25519` hinzufügen. + - Unterstützung für `ecdsa` (unsicher) entfernen. + - Richtigen Regex verwenden, um gültige Schlüsseltypen zu überprüfen. +- WebGUI: verschiedene Stilaktualisierungen +- WebGUI: Management-Zugriff: HTTP-Port-Einstellung sollte immer aktiviert sein. +- WebGUI: Korrektur: VNC-Port-Einstellungen behalten. +- WebGUI: Regressionsfehler im Plugin-System beheben. +- WebGUI: Problem beim Installieren von Registrierungsschlüsseln beheben. +- WebGUI: Fallauswahl hervorheben, wenn benutzerdefiniertes Bild ausgewählt ist. +- WebGUI: Korrektur (upc): v1.4.2-APIVersion-Check-Regression. +- WebGUI: Aktualisierung der Festplattenfähigkeitsseiten für NVMe-Laufwerke. +- WebGUI: Reinigung (upc): v1.6.0 +- WebGUI: Plugin-System- und Docker-Update. +- WebGUI: Systeminformationen - Stilaktualisierung. +- WebGUI: Plugins: Kopfzeilen-Schaltflächen an derselben Position halten. +- WebGUI: Überlauf bei Containergröße für niedrige Auflösungen verhindern. +- WebGUI: VM Manager: Hinzufügen von Boot-Reihenfolge zur GUI und CD-Hot-Plug-Funktion. +- WebGUI: Docker-Manager: Fähigkeit hinzufügen, Shell mit Container-Label anzugeben. +- WebGUI: Korrektur: Discord-Benachrichtigungs-Agent-URL. +- WebGUI: Informationssymbol in der Banner-Nachricht unterdrücken, wenn keine Informationen verfügbar sind. +- WebGUI: Spindown-Nachricht hinzufügen und -n für Identifikation verwenden, wenn es sich um ein SCSI-Laufwerk handelt. +- WebGUI: SAS-Selbsttest beheben. +- WebGUI: Plugin-Mehrfach-Updates beheben. +- WebGUI: Verbesserungen der UPS-Anzeige: + - Icon für jede Kategorie hinzufügen. + - Übersetzung im UPS-Abschnitt auf dem Dashboard hinzufügen. + - Ausgangsspannung / Frequenzwert hinzufügen. + - Färbung je nach Einstellung hinzufügen. + - Einheiten normalisieren. + - Updates fast in Echtzeit durchführen. + - UPS-Modellfeld hinzugefügt. +- WebGUI: JQuery: Version 3.6.1 +- WebGUI: JQueryUI: Version 1.13.2 +- WebGUI: Verbesserte "Cache-Busting" bei Schrift-Datenbank-URLs. +- WebGUI: Behoben: Textfarbe im Docker-Popup-Fenster manchmal falsch. +- WebGUI: Behoben: Lese-Fehler während des Lese-Checks anzeigen. +- WebGUI: VM Manager: USB-Startup-Richtlinie hinzufügen; Unterstützung für fehlende USB-Geräte hinzufügen. +- WebGUI: Docker: JavaScript-Fehler behoben, wenn keine Container vorhanden sind. +- WebGUI: Hinzugefügt: Drittanbieter-Systemdiagnose. + - Diagnose für Drittanbieter-Plugin-Pakete hinzugefügt. + - Diagnose für /dev/dri-Geräte hinzugefügt. + - Diagnose für /dev/dvb-Geräte hinzugefügt. + - Diagnose für Nvidia-Geräte hinzugefügt. + +#### Linux-Kernel + +- Version 5.19.9 (CVE-2022-21123 (CVE-2022-21123 CVE-2022-21125 CVE-2022-21166) +- md/unraid: Version 2.9.24 +- CONFIG\_IOMMU\_DEFAULT\_PASSTHROUGH: Durchschleifen +- CONFIG\_VIRTIO\_IOMMU: Virtio IOMMU-Treiber +- CONFIG\_X86\_AMD\_PSTATE: AMD-Prozessor P-State-Treiber +- CONFIG\_FIREWIRE: FireWire-Treiberstack +- CONFIG\_FIREWIRE\_OHCI: OHCI-1394-Controller +- CONFIG\_FIREWIRE\_SBP2: Speichergeräte (SBP-2-Protokoll) +- CONFIG\_FIREWIRE\_NET: IP-Netzwerk über 1394 +- CONFIG\_INPUT\_UINPUT: Treiberunterstützung auf Benutzerebene +- CONFIG\_INPUT\_JOYDEV: Joystick-Schnittstelle +- CONFIG\_INPUT\_JOYSTICK: Joysticks/Gamepads +- CONFIG\_JOYSTICK\_XPAD: X-Box Gamepad-Unterstützung +- CONFIG\_JOYSTICK\_XPAD\_FF: X-Box Gamepad Rumble-Unterstützung +- CONFIG\_JOYSTICK\_XPAD\_LEDS: LED-Unterstützung für Xbox360 Controller 'BigX' LED +- CONFIG\_MLX5\_TLS: Mellanox Technologies TLS Connect-X-Unterstützung +- CONFIG\_MLX5\_ESWITCH: Mellanox Technologies MLX5 SRIOV E-Switch-Unterstützung +- CONFIG\_MLX5\_CLS\_ACT: MLX5 TC Klassifikator-Aktion Unterstützung +- CONFIG\_MLX5\_TC\_SAMPLE: MLX5 TC Beispiel Offload-Unterstützung +- CONFIG\_MLXSW\_SPECTRUM: Unterstützung für die Mellanox Technologies Spectrum Familie +- CONFIG\_NET\_SWITCHDEV: Unterstützung von Switch-(und Switch-ähnlichen) Geräten +- CONFIG\_TLS: Unterstützung der Transportschicht-Sicherheit +- CONFIG\_TLS\_DEVICE: Transportschicht-Sicherheit Hardware-Offload +- CONFIG\_TLS\_TOE: Transportschicht-Sicherheit TCP-Stack-Umgehung +- CONFIG\_VMD: Intel-Volumenverwaltungsgerät-Treiber +- Zusätzliche Sensortreiber hinzugefügt: + - CONFIG\_AMD\_SFH\_HID: AMD Sensor Fusion Hub + - CONFIG\_SENSORS\_AQUACOMPUTER\_D5NEXT: Aquacomputer D5 Next Wasserkühlungspumpe + - CONFIG\_SENSORS\_MAX6620: Maxim MAX6620 Lüftersteuerung + - CONFIG\_SENSORS\_NZXT\_SMART2: NZXT RGB- und Lüftersteuerung/Smart Device v2 + - CONFIG\_SENSORS\_SBRMI: Emulierter SB-RMI-Sensor + - CONFIG\_SENSORS\_SHT4x: Sensiron Feuchtigkeits- und Temperatursensoren. SHT4x und kompatibel. + - CONFIG\_SENSORS\_SY7636A: Silergy SY7636A + - CONFIG\_SENSORS\_INA238: Texas Instruments INA238 + - CONFIG\_SENSORS\_TMP464: Texas Instruments TMP464 und kompatibel + - CONFIG\_SENSORS\_ASUS\_WMI: ASUS WMI X370/X470/B450/X399 + - CONFIG\_SENSORS\_ASUS\_WMI\_EC: ASUS WMI B550/X570 + - CONFIG\_SENSORS\_ASUS\_EC: ASUS EC Sensoren +- Patch: Verweis auf fehlende Firmware in `drivers/bluetooth/btrtl.c` hinzufügen. + - rtl8723d\_fw\.bin + - rtl8761b\_fw\.bin + - rtl8761bu\_fw\.bin + - rtl8821c\_fw\.bin + - rtl8822cs\_fw\.bin + - rtl8822cu\_fw\.bin +- CONFIG\_BPF\_UNPRIV\_DEFAULT\_OFF: Deaktivieren Sie unprivilegierten BPF standardmäßig +- patch: Lösung für Team Group MP33 M.2 2280 1TB NVMe (weltweit doppelte IDs für nsid) +- Alle IPv6-Kerneloptionen aktivieren: + - CONFIG\_INET6\_\* + - CONFIG\_IPV6\_\* +- CONFIG\_RC\_CORE: Fernsteuerer-Unterstützung +- CONFIG\_SFC\_SIENA: Solarflare SFC9000-Unterstützung +- CONFIG\_SFC\_SIENA\_MCDI\_LOGGING: Solarflare SFC9000-Familie MCDI Protokollierungsunterstützung +- CONFIG\_SFC\_SIENA\_MCDI\_MON: Solarflare SFC9000-Familie hwmon-Unterstützung +- CONFIG\_SFC\_SIENA\_SRIOV: Solarflare SFC9000-Familie SR-IOV-Unterstützung +- CONFIG\_ZRAM: Unterstützung für komprimiertes RAM-Blockgerät +- CONFIG\_ZRAM\_DEF\_COMP\_LZ4: Standard-RAM-Kompressor (lz4) +- Alle EDAC-Kerneloptionen aktivieren + - CONFIG\_EDAC: Bericht über EDAC (Fehlererkennung und -korrektur) + - CONFIG\_EDAC\_\* + +#### Grunddistro + +- aaa\_base: Version 15.1 +- aaa\_glibc-solibs: Version 2.36 +- aaa\_libraries: Version 15.1 +- at: Version 3.2.3 +- bind: Version 9.18.6 +- btrfs-progs: Version 5.19.1 +- ca-certificates: Version 20220622 +- cifs-utils: Version 7.0 +- coreutils: Version 9.1 +- cracklib: Version 2.9.8 +- cryptsetup: Version 2.5.0 +- curl: Version 7.85.0 +- cyrus-sasl: Version 2.1.28 +- dbus: Version 1.14.0 +- dhcpcd: Version 9.4.1 +- dmidecode: Version 3.4 +- docker: Version 20.10.17 (CVE-2022-29526 CVE-2022-30634 CVE-2022-30629 CVE-2022-30580 CVE-2022-29804 CVE-2022-29162 CVE-2022-31030) +- etc: Version 15.1 +- ethtool: Version 5.19 +- eudev: Version 3.2.11 +- file: Version 5.43 +- findutils: Version 4.9.0 +- firefox: Version 105.0.r20220922151854-x86\_64 (AppImage) +- fuse3: Version 3.12.0 +- gawk: Version 5.2.0 +- gdbm: Version 1.23 +- git: Version 2.37.3 +- glib2: Version 2.72.3 +- glibc: Version 2.36 +- glibc-zoneinfo: Version 2022c +- gnutls: Version 3.7.7 +- gptfdisk: Version 1.0.9 +- grep: Version 3.8 +- gzip: Version 1.12 +- hdparm: Version 9.65 +- htop: Version 3.2.1 +- icu4c: Version 71.1 +- inotify-tools: Version 3.22.6.0 +- iperf3: Version 3.11 +- iproute2: Version 5.19.0 +- iptables: Version 1.8.8 +- jemalloc: Version 5.3.0 +- json-c: Version 0.16\_20220414 +- json-glib: Version 1.6.6 +- kmod: Version 30 +- krb5: Version 1.20 +- libaio: Version 0.3.113 +- libarchive: Version 3.6.1 +- libcap-ng: Version 0.8.3 +- libcgroup: Version 3.0.0 +- libdrm: Version 2.4.113 +- libepoxy: Version 1.5.10 +- libffi: Version 3.4.2 +- libgcrypt: Version 1.10.1 +- libgpg-error: Version 1.45 +- libidn: Version 1.41 +- libjpeg-turbo: Version 2.1.4 +- libmnl: Version 1.0.5 +- libnetfilter\_conntrack: Version 1.0.9 +- libnfnetlink: Version 1.0.2 +- libnftnl: Version 1.2.3 +- libnl3: Version 3.7.0 +- libpng: Version 1.6.38 +- libssh: Version 0.10.4 +- libtasn1: Version 4.19.0 +- libtirpc: Version 1.3.3 +- liburcu: Version 0.13.1 +- libusb: Version 1.0.26 +- libwebp: Version 1.2.4 +- libxml2: Version 2.9.14 +- libxslt: Version 1.1.36 +- libzip: Version 1.9.2 +- logrotate: Version 3.20.1 +- lsof: Version 4.95.0 +- lzip: Version 1.23 +- mc: Version 4.8.28 +- mcelog: Version 189 +- nano: Version 6.4 +- nfs-utils: Version 2.6.2 +- nghttp2: Version 1.49.0 +- nginx: Version 1.22.0 +- ntfs-3g: Version 2022.5.17 +- ntp: version 4.2.8p15 +- oniguruma: Version 6.9.8 +- openssh: Version 9.0p1 +- openssl: Version 1.1.1q (CVE-2022-1292 CVE-2022-2097 CVE-2022-2274) +- openssl-solibs: Version 1.1.1q (CVE-2022-1292) +- p11-kit: version 0.24.1 +- pciutils: Version 3.8.0 +- pcre2: Version 10.40 +- perl: Version 5.36.0 +- php: Version 7.4.30 (CVE-2022-31625 CVE-2022-31626) +- pkgtools: Version 15.1 +- rpcbind: Version 1.2.6 +- rsync: Version 3.2.6 +- samba: Version 4.17.0 (CVE-2022-2031 CVE-2022-32744 CVE-2022-32745 CVE-2022-32746 CVE-2022-32742) +- sqlite: Version 3.39.3 +- sudo: Version 1.9.11p3 +- sysfsutils: Version 2.1.1 +- sysstat: Version 12.6.0 +- sysvinit-scripts: Version 15.1 +- talloc: Version 2.3.4 +- tar: version 1.34 +- tevent: Version 0.13.0 +- tree: Version 2.0.2 +- util-linux: Version 2.38.1 +- wayland: version 1.21.0 +- wget: Version 1.21.3 +- xfsprogs: Version 5.18.0 +- xz: Version 5.2.6 +- zlib: version 1.2.12 + +["WireGuard" und das "WireGuard"-Logo sind eingetragene Marken von Jason A. Donenfeld.](https://www.wireguard.com/) + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md new file mode 100644 index 0000000000..8c0c714cbb --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md @@ -0,0 +1,93 @@ +## Version 6.11.1 2022-10-06 + +### Verbesserungen + +Aktualisiert sowohl QEMU als auch Libvirt auf die neuesten Versionen: + +- Unterstützung für PPC, RISC-V32/RISC-V64 und AArch64 hinzugefügt. + +Docker auf v20.10.18 aktualisiert und Netzwerk verbessert: + +- Wenn DHCP verwendet wird, warten Sie auf die IPv4-Zuweisung, bevor Sie beim Systemstart fortfahren, um ein mögliches Race-Condition beim Booten zu vermeiden, wenn der Hostzugriff auf benutzerdefinierte Netzwerke aktiviert ist. +- Erlauben Sie, dass benutzerdefinierte Netzwerke beim Start des Docker-Dienstes wieder verbunden werden. Jetzt werden alle definierten Netzwerke automatisch wieder verbunden. + +Verbesserungen im VM-Manager: + +- Option zur Verwendung von Virtiofs für die Zuordnung von Unraid-Hostsfreigaben zu einer VM implementiert. +- Spice HTML-Client für virtuelle Maschinen hinzugefügt (experimentell). + +### Bemerkenswerte Fehlerbehebungen + +- Behoben: Öffnen bestimmter Seiten, z. B. des Dashboards, verursacht unnötige Schreibvorgänge auf das USB-Flash-Boot-Gerät. + +- Das Problem behoben, dass Docker-Container das Internet erreichen können, wenn der WG-Tunnel beim Systemstart nicht automatisch gestartet wird. **Benutzern wird empfohlen, die WG-Konfigurationen neu zu generieren.** Dies kann beispielsweise durch Klicken in ein Feld zum Ändern eines Werts und dann durch Zurücksetzen des Werts erfolgen, um den Anwenden-Button zum Leuchten zu bringen. Klicken Sie dann auf Anwenden. + +- Problem behoben, bei dem leere Popup-Fenster in bestimmten Browsern und Geräten angezeigt werden. + +- "NTLMv1-Authentifizierung" für eingehende SMB-Verbindungen wiederhergestellt. + +## Änderungsprotokoll vs. Unraid OS 6.11.0 + +#### Grunddistro + +- acpid: Version 2.0.34 +- Bash: Version 5.2.000 +- Bind: Version 9.18.7 +- CA-Zertifikate: Version 20220922 +- dbus: Version 1.14.2 +- dnsmasq: Version 2.87 +- docker: Version 20.10.18 (CVE-2022-27664 CVE-2022-32190 CVE-2022-36109) +- git: Version 2.38.0 +- glib2: Version 2.72.4 +- glibc-zoneinfo: Version 2022d +- gnutls: Version 3.7.8 +- harfbuzz: Version 5.2.0 +- intel-microcode: Version 20220809 +- libXtst: Version 1.2.4 +- libXxf86vm: Version 1.1.5 +- libffi: Version 3.4.3 +- libvirt: Version 8.7.0 +- libvirt-php: Version 0.5.6 +- lsof: Version 4.96.3 +- nghttp2: Version 1.50.0 +- pango: Version 1.50.11 +- qemu: Version 7.1.0 (mit Unterstützung für PPC und RISC-V32/64, ARM durch AArch64 ersetzt) +- sqlite: Version 3.39.4 +- xterm: Version 373 +- xz: Version 5.2.7 + +#### Linux-Kernel + +- Version 5.19.14 +- CONFIG\_DRM\_MGAG200: Matrox G200 +- CONFIG\_X86\_SGX: Software Guard Extensions (SGX) +- CONFIG\_X86\_SGX\_KVM: Software Guard Extensions (SGX) Virtualisierung +- CONFIG\_CRYPTO\_ZSTD: Zstd-Komprimierungsalgorithmus +- md/unraid: Version 2.9.25 +- Patch: EDID "Block all zeros" und "defekter Header"-Meldungen stummschalten +- Patch: NVMe-Fehler für nicht konforme Geräte, die von Benutzern gemeldet werden, hinzufügen + +#### Verwaltung + +- WebGUI: VM-Manager: GUI-Optionen aktualisieren + - 9P und Virtiofs einschließen + - 9P-Option für Windows entfernen. + - XML aktualisieren, wenn Virtiofs und Windows zusätzlich zu Linux verwendet werden. + - VM-Share-GUI-Optionen aktualisieren +- WebGUI: Behoben: Falsche Rückmeldung auf der VM-Seite +- WebGUI: Dashboard: Grafiken im Dateisystem anstelle von Cookies speichern +- WebGUI: Benutzer zur Bereitstellung von Diagnosen auffordern, bevor das OS herabgestuft wird +- WebGUI: Spice-HTML-Client zusätzlich zu VNC +- WebGUI: Umgang mit Windows-Style-Konfigurationsdateien verbessern +- WebGUI: WireGuard: expliziten Schnittstellennamen im Routing hinzufügen +- WebGUI: SWAL: "Esc"-Taste abfangen, um Nchan bei Schließen des Fensters zu stoppen +- WebGUI: nchan: verzögerte Befehlsausführung + - Dies verhindert ein leeres Popup-Fenster in bestimmten Browsern und Geräten + +["WireGuard" und das "WireGuard"-Logo sind eingetragene Marken von Jason A. Donenfeld.](https://www.wireguard.com/) + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md new file mode 100644 index 0000000000..ecf2aa0675 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md @@ -0,0 +1,115 @@ +## Version 6.11.2 2022-11-04 + +Diese Version konzentriert sich auf Fehlerbehebungen und kleinere Verbesserungen. Bitte beachten Sie, dass wichtige +Sicherheitsmitigations in Samba enthalten sind und alle Benutzer zur Aktualisierung ermutigt werden. + +### VM-Manager + +Wenn Sie eine VM von einem durchgereichten physischen USB-Gerät starten, gibt es eine neue Einstellung namens **USB-Boot aktivieren**, +die auf **Ja** gesetzt werden muss. Dies ist auf eine Funktionsänderung in der neuesten OVMF-Komponente zurückzuführen. + +Änderungen: + +- Fügen Sie die Startreihenfolge für USB und USB-Boot-Option hinzu. Mit dem Feld "Bootreihenfolge" kann die VM von einem + durchgereichten NVMe-Controller/-Gerät gestartet werden. +- Virtiofs/9p Unraid-Freigabemapping hinzufügen. +- Fehlerbehebung beim CD-Hotplug. +- Hotplug innerhalb von Vorlagen beheben. +- Änderung von Passthru zu Custom-CPU beheben. +- Test für Gast-Agent, um Fehlermeldungen im libvirt-Protokoll zu unterdrücken und Text für nicht laufenden Gast oder nicht installierten Gast-Agent anzeigen. +- Konnte HyperV-Einstellungen nicht ändern beheben. +- Option 'starten mit Konsole' hinzufügen. +- OVMF für QEMU: Version edk2-stable202208 + +### WireGuard + +Änderungen: + +- Behobenes Problem beim Einrichten von Tunneln bei Verwendung der Standardnetzwerk.cfg-Einstellungen. +- Tippfehler beim Einrichten der Routen beheben. + +### Plugin-Manager + +Änderungen: + +- Wenn Plugin-Dateien nicht von der CDN-URL gelesen werden können, auf nicht-CDN-URL zurückgreifen. +- Erzwingen, dass Plugin-Dateien mit '.plg' enden müssen. +- Beheben, dass der Nach-Hook fehlschlägt, wenn der Plugindownload fehlschlägt. +- Die wget-Parameter anpassen, um ein unendliches Hängenbleiben zu verhindern. + +### Scheduler + +Für geplante Paritätsprüfungen ändern Sie den Standardmodus auf Nicht-korrigierend. Falls während einer Paritätsprüfung +Probleme mit der Festplatte auftreten, wäre es sicherer, den Standard auf nicht-korrigierend zu setzen. Wenn Synchronisierungsfehler +erkannt werden, kann der Benutzer das Protokoll analysieren und entsprechend handeln. + +### Sonstiges WebGUI + +Änderungen: + +- DashStats: Die eingehenden Netzwerkstatistiken sind fehl am Platz, wenn der numerische Wert xxx.x ist. +- Docker: Hilfe zu benutzerdefinierten Netzwerkeinstellungen für Docker hinzufügen/klären. +- Docker: Anzeige-Anomalien bei Waisenbildern beheben. +- SMART-Attribute: Nachricht klarstellen: 'Attribute können nicht gelesen werden' zu 'Attribute nicht verfügbar' ändern. +- ShareEdit/ShareList: Pool nicht definiert anzeigen, wenn Freigabepool nicht ein definierter Pool ist. + +### Linux-Kernel + +- Version 5.19.17 +- Patch: zusätzliche NVMe BOGUS\_NID Probleme für nicht konforme Geräte, die von Benutzern gemeldet wurden. +- Klangunterstützung: + - CONFIG\_SOUND: Soundkartenunterstützung + - CONFIG\_SND: Fortschrittliche Linux Sound Architektur + - CONFIG\_SND\_OSSEMUL: Aktivieren Sie OSS Emulation + - CONFIG\_SND\_PCM\_OSS: OSS PCM (digitales Audio) API + - CONFIG\_SND\_HRTIMER: HR-Timer Backend-Unterstützung + - CONFIG\_SND\_SUPPORT\_OLD\_API: Unterstützung der alten ALSA API + - CONFIG\_SND\_PROC\_FS: Sound Proc FS Unterstützung +- CONFIG\_IPV6: Das IPv6 Protokoll (vom Modul zur integrierten Funktion wechseln) + +### Base-Distro + +Paketaktualisierungen einschließlich CVE-Anpassungen: + +- bash: Version 5.2.002 +- bind: Version 9.18.8 (CVE-2022-38178 CVE-2022-38178 CVE-2022-3080 CVE-2022-2795) +- btrfs-progs: Version 6.0 +- curl: Version 7.86.0 +- dbus: Version 1.14.4 +- freeglut: Version 3.4.0 +- git: Version 2.38.1 (CVE-2022-39253 CVE-2022-39260) +- glibc-zoneinfo: Version 2022e +- harfbuzz: Version 5.3.1 +- icu4c: Version 72.1 +- iproute2: Version 6.0.0 +- kernel-firmware: Version 20221017\_48407ff +- less: Version 608 +- libXmu: Version 1.1.4 +- libXrender: Version 0.9.11 +- libedit: Version 20221009\_3.1 +- libffi: Version 3.4.4 +- libgpg-error: Version 1.46 +- libpciaccess: Version 0.17 +- libunistring: Version 1.1 +- libxkbfile: Version 1.1.1 +- libxshmfence: Version 1.3.1 +- lsof: Version 4.96.4 +- nginx: Version 1.22.1 +- openssh: Version 9.1p1 +- php: Version 7.4.32 +- pixman: Version 0.42.0 +- rsync: Version 3.2.7 +- samba: Version 4.17.2 (CVE-2021-20251 CVE-2022-3437 CVE-2022-3592) +- sudo: Version 1.9.12 +- tree: Version 2.0.4 +- xkeyboard-config: Version 2.37 +- xterm: Version 375 +- zlib: Version 1.2.13 (CVE-2022-37434) + +["WireGuard" und das "WireGuard"-Logo sind eingetragene Marken von Jason A. Donenfeld.](https://www.wireguard.com/) + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md new file mode 100644 index 0000000000..17a3959384 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md @@ -0,0 +1,36 @@ +## Version 6.11.3 2022-11-08 + +Diese Veröffentlichung konzentriert sich auf Fehlerbehebungen und kleinere Verbesserungen. Insbesondere müssen wir eine Basisbibliothek aufgrund eines Fehlers zurücksetzen, der die Formatierung von Geräten >2TB verhindert. + +### Verwaltung + +- "libpopt.so.0.0.1" wurde zurückgesetzt, um den "sgdisk"-Fehler zu umgehen, der zum Formatieren von Geräten größer als 2 TB verwendet wird. +- Behoben: Das Beschreibungsfeld für den "root"-Benutzer wurde über Neustarts hinweg nicht beibehalten. +- Problem behoben, bei dem manchmal das Informationsfenster leer öffnet. + +### VM-Manager + +- Richtige Werte für USB-Boot und richtige Auswahl von Freigaben beim Bearbeiten setzen. +- NIC-Boot-Reihenfolge hinzufügen. + +### Base-Distro + +- gptfdisk: Version 1.0.8 (zurückgesetzt von Version 1.0.9) +- libXext: Version 1.3.5 +- libXinerama: Version 1.1.5 +- libdrm: Version 2.4.114 +- libedit: Version 20221030\_3.1 +- mcelog: Version 190 +- ntfs-3g: Version 2022.10.3 +- openssl: Version 1.1.1s +- openssl-solibs: Version 1.1.1s +- pixman: Version 0.42.2 +- sessreg: Version 1.1.3 +- sudo: Version 1.9.12p1 +- xsetroot: Version 1.1.3 + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md new file mode 100644 index 0000000000..1b5a47a07e --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md @@ -0,0 +1,60 @@ +## Version 6.11.4 2022-11-18 + +Diese Version konzentriert sich auf Fehlerbehebungen und kleinere Verbesserungen. + +### Diagnose + +- Freigabeinformationen in „Diagnosen“ beheben. + +### Docker + +- Docker-Version: 20.10.21 (CVE-2022-39253 CVE-2022-2879 CVE-2022-2880 CVE-2022-41715) +- Fix: „Bitte warten“-Nachricht nach Entfernen des verwaisten Bildes. +- IPVLAN standardmäßig für neue Installationen festlegen. + +### Samba + +- Samba: Version 4.17.3 (CVE-2022-42898) +- Standardwert für „Maximale offene Dateien“ auf den Wert von 'ulimit -n' setzen, der derzeit auf 40960 eingestellt ist. + +### VM-Manager + +- Erlauben Sie, dass Netzwerk-PCI-Geräte eine Startreihenfolge haben. +- Ändern zu libvirt\_domain\_interface\_addresses verwenden, welche seit langer Zeit verfügbar ist, aber im API-Handbuch nicht dokumentiert wurde. Die Verwendung dieser Funktion verhindert, dass tainted-Warnungen in das Protokoll geschrieben werden, z.B.: "Domain id=4 is tainted: custom-ga-command". +- Fix für VM-Umbenennung. + +### Verschiedenes + +- Behobenes Problem, das das automatische Starten des Arrays mit einem Testschlüssel verhinderte. +- Behobenes Codierungsproblem, wenn Passwörter mehrbyte UTF-8-Zeichen enthalten. +- Paritätsverlauf: Tag der Woche zum Datum hinzufügen. +- Freigaben: Fix: Erstellen von versteckten Freigabenamen nicht zulassen. +- Hauptseite: Datentransferstatistiken bei neuer Browsersitzung neu initialisieren. +- Verwaltungszugriffsseite: verbesserte Meldungen für SSL. +- Firefox: Version 107.0.r20221110173214 (AppImage) +- Bei Schließen aller Browsersitzungen unnötige Hintergrundprozesse stoppen. + +### Base-Distro + +- Bash: Version 5.2.009 +- btrfs-progs: Version 6.0.1 +- gdk-pixbuf2: Version 2.42.10 +- glibc-zoneinfo: Version 2022f +- intel-microcode: Version 20221108 +- libX11: Version 1.8.2 +- libnftnl: Version 1.2.4 +- nghttp2: Version 1.51.0 +- PHP: Version 7.4.33 (CVE-2022-31630 CVE-2022-37454) +- Sed: Version 4.9 +- Sysstat: Version 12.7.1 +- Xkbevd: Version 1.1.5 +- xkill: Version 1.0.6 +- xlsatoms: Version 1.1.4 +- xlsclients: Version 1.1.5 +- xz: Version 5.2.8 + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md new file mode 100644 index 0000000000..ec50d91230 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md @@ -0,0 +1,13 @@ +## Version 6.11.5 2022-11-20 + +Diese Version hebt eine Änderung auf, die die falsche Datei modifizierte. Dies führte dazu, dass der benutzerdefinierte „macvlan"-Docker-Netzwerktyp nicht ausgewählt werden konnte. Bei neuen Installationen wird jetzt standardmäßig „ipvlan" ausgewählt. + +### Docker + +- Fix: Setze IPVLAN als Standard nur für neue Installationen. + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md new file mode 100644 index 0000000000..2cb7a291d5 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md @@ -0,0 +1,565 @@ +# Version 6.12.0 2023-06-14 + +## Upgrade-Hinweise + +Beim Start, wenn sich alle in `config/vfio-pci.cfg` angegebenen PCI-Geräte nicht ordnungsgemäß binden, wird der automatische Start von VMs verhindert. Sie können jedoch einzelne VMs manuell starten. Dies ist, um einen Absturz des Unraid-Hosts zu verhindern, falls sich die PCI-IDs der Hardware aufgrund eines Kernel-Updates oder einer physischen Hardwareänderung geändert haben. Um den automatischen Start von VMs wiederherzustellen, überprüfen Sie `/var/log/vfio-pci-errors` und entfernen Sie problematische PCI-IDs aus der `config/vfio-pci.cfg`-Datei und starten Sie neu. + +Wenn Sie von 6.12 auf 6.11.5 oder früher zurückkehren, müssen Sie alle Ihre Docker-Container zwangsweise aktualisieren und nach dem Downgrade manuell starten. Dies ist notwendig aufgrund der grundlegenden Änderung zu cgroup v2 ab 6.12.0-rc1. + +Linux [Multi-Gen LRU](https://lwn.net/Articles/856931/) ist eine relativ neue Funktion, die jetzt enthalten, aber standardmäßig nicht aktiviert ist. Sie können sie aktivieren, indem Sie diese Zeile zu Ihrer 'config/go'-Datei hinzufügen: + +`echo y > /sys/kernel/mm/lru_gen/enabled` + +Wenn Sie von 6.12 auf 6.11.5 oder früher zurückkehren, müssen Sie diese Zeile möglicherweise entfernen. + +Wenn Sie Pools mit 6.12.0-beta5 erstellt haben, bitte löschen Sie diese Pools und erstellen Sie sie neu. + +### Veraltete/Beschädigte Plugins + +Es gibt einige Plugins, die mit Unraid 6.12 nicht kompatibel sind und beim Booten nicht installiert werden. Sie erhalten eine Benachrichtigung für jedes betroffene Plugin und können die Liste unter **Plugins/Plugin Datei Installationsfehler** prüfen. + +- disklocation-master Version 2022.06.18 (`Disk Location` von olehj, unterbricht das Dashboard) + - Aktualisieren Sie dieses Plugin vor dem Upgraden des Betriebssystems +- plexstreams Version 2022.08.31 (`Plex Streams` von dorgan, unterbricht das Dashboard) + - Aktualisieren Sie dieses Plugin vor dem Upgraden des Betriebssystems +- corsairpsu Version 2021.10.05 (`Corsair PSU Statistics` von Fma965, unterbricht das Dashboard) + - Aktualisieren Sie dieses Plugin vor dem Upgraden des Betriebssystems +- gpustat Version 2022.11.30a (`GPU Statistics` von b3rs3rk, unterbricht das Dashboard) + - Wechseln Sie zu `GPU Statistics` von SimonF +- ipmi Version 2021.01.08 (`IPMI Tools` von dmacias72, unterbricht das Dashboard) + - Wechseln Sie zu `IPMI Tools` von SimonF +- nut Version 2022.03.20 (`NUT - Network UPS Tools` von dmacias72, unterbricht das Dashboard) + - Wechseln Sie zu `NUT - Network UPS Tools` von SimonF +- NerdPack Version 2021.08.11 (`Nerd Tools` von dmacias72) + - Wechseln Sie zu `NerdTools` von UnRAIDES +- upnp-monitor Version 2020.01.04c (`UPnP Monitor` von ljm42, nicht mit PHP 8 kompatibel) +- ZFS-companion Version 2021.08.24 (`ZFS-Companion` von campusantu, unterbricht das Dashboard) + +Einige der betroffenen Plugins wurden von anderen Entwicklern übernommen. Wir empfehlen, auf die **Apps**-Seite zu gehen und nach Ersatz zu suchen. Bitte stellen Sie plugin-spezifische Fragen im Support-Thread für das jeweilige Plugin. + +### Bekannte Probleme + +#### Abstürze im Zusammenhang mit dem i915-Treiber + +Hinweis: Das Problem besteht ab Unraid [6.12.6](6.12.6.md#bug-fixes-and-improvements) nicht mehr. + +Wir sind uns bewusst, dass einige 11. Gen. Intel Rocket Lake-Systeme auf Abstürze des i915 iGPU stoßen. Wenn Ihr Rocket Lake-System unter Unraid 6.12.0-6.12.5 abstürzt, öffnen Sie ein Web-Terminal, geben Sie dies ein und starten Sie dann neu: + +`echo "options i915 enable_dc=0" >> /boot/config/modprobe.d/i915.conf` + +Das Einstellen dieser Option kann zu einem höheren Stromverbrauch führen, aber es könnte dieses Problem für diese GPUs lösen. + +#### Call Traces im Zusammenhang mit macvlan + +Wenn Sie Call Traces im Zusammenhang mit macvlan erhalten, empfehlen wir als ersten Schritt zu ***Einstellungen > Docker*** zu navigieren, zur erweiterten Ansicht zu wechseln und den **Docker-Benutzerdefinierten Netzwerktyp** von **macvlan** auf **ipvlan** zu ändern. Dies ist die Standardkonfiguration, die seit Version 6.11.5 mit Unraid ausgeliefert wird und sollte bei den meisten Systemen funktionieren. + +Einige Benutzer haben jedoch Probleme mit der Portweiterleitung bei bestimmten Routern (Fritzbox) und verringerte Funktionalität bei erweiterten Netzwerkmanagement-Tools (Ubiquity), wenn sie im ipvlan-Modus sind. + +In 6.12.0 ist die [zwei-NIC Docker-Segmentierungsmethode](https://forums.unraid.net/topic/137048-guide-how-to-solve-macvlan-and-ipvlan-issues-with-containers-on-a-custom-network/) eine machbare Lösung, aber wir empfehlen ein Upgrade auf Unraid [6.12.4](6.12.4.md), das eine bessere Lösung bietet. + +#### Plex + +Wenn Docker-Container nach einer Weile Probleme beim Starten haben und Sie Plex ausführen, gehen Sie zu Ihren Plex Docker-Container-Einstellungen, wechseln Sie zur erweiterten Ansicht und fügen Sie dies zu den zusätzlichen Parametern hinzu: `--no-healthcheck` + +### Rückschritte + +Siehe die Anmerkungen unter [Upgrade Hinweise](#upgrade-notes) + +## ZFS Pools + +Neu in dieser Version ist die Möglichkeit, ein ZFS-Dateisystem in einem benutzerdefinierten Pool zu erstellen. Sie können auch jedes Datenlaufwerk im Unraid-Array mit einem Einzelgerät-ZFS-Dateisystem formatieren. Für einen guten Überblick über ZFS, siehe [diesen Artikel](https://arstechnica.com/information-technology/2020/05/zfs-101-understanding-zfs-storage-and-performance/). + +Wir teilen die vollständige ZFS-Implementierung auf zwei Unraid OS-Veröffentlichungen auf. Die erste Unterstützung in dieser Version umfasst: + +- Unterstützung für raid0, Spiegel, raidz1, raidz2 und raidz3 Wurzelprofile. Bis zu 4-fache Spiegelung in einem Spiegel-vdev. Mehrere vdev-Gruppen. +- Unterstützung für das Entfernen einzelner Geräte: Wenn das Gerät noch im Server vorhanden ist, wird 'wipefs' verwendet, um die Partitionstabelle zu löschen. +- Unterstützung für das Ersetzen einzelner fehlender Geräte durch ein neues Gerät gleicher oder größerer Größe. +- Unterstützung für geplantes Trimmen von ZFS-Pools. +- Unterstützung für Pool-Umbenennung. +- Poolnamen müssen mit einem Kleinbuchstaben beginnen und dürfen nur Kleinbuchstaben, Ziffern, den Unterstrich und Bindestrich enthalten. Poolnamen dürfen nicht mit einer Ziffer enden. +- Non-root vdev cannot be configured in this release, however, they can be imported. Note: imported hybrid pools may not be + expanded in this release. +- Pools, die auf anderen Systemen erstellt wurden, können je nach Art der Erstellung möglicherweise importiert werden. Ein zukünftiges Update wird das Importieren von Pools von jedem System ermöglichen. + +Ein ZFS-Pool hat drei Variablen: + +- Profil - die Datenorganisation der Wurzel: raid0, Mirror (bis zu 4-Wege), raidz1, raidz2, raidz3 +- Breite - die Anzahl der Geräte pro Root-vdev +- Gruppen - die Anzahl der Root-vdevs im Pool + +Zum Zeitpunkt der Erstellung des ZFS-Pools zeigt das WebGUI alle Topologieoptionen basierend auf der Anzahl der dem Pool zugewiesenen Geräte an. + +Spezialbehandlung für einheitliche Wurzel-Mirror-vdevs: + +- Ein einzelgerätiger ZFS-Pool kann in einen Mehrgerät-Mirror umgewandelt werden, indem bis zu 3 zusätzliche Geräte in einem Vorgang hinzugefügt werden. +- Ein 2-Geräte-Spiegel kann auf 3-Geräte erhöht werden, indem ein einzelnes Gerät hinzugefügt wird; ähnlich kann ein 3-Geräte-Spiegel auf einen 4-Geräte-Spiegel erhöht werden, indem ein einzelnes Gerät hinzugefügt wird. + +Um ein zusätzliches Wurzel-vdev hinzuzufügen, müssen Sie gleichzeitig die 'Breite'-Anzahl neuer Geräte dem Pool zuweisen. Das neue vdev wird mit dem gleichen 'Profil' wie die vorhandenen vdevs erstellt. Zusätzliche Flexibilität beim Hinzufügen/Erweitern von vdevs wird in einem zukünftigen Update bereitgestellt. + +Pools, die mit dem **steini84**-Plugin erstellt wurden, können wie folgt importiert werden: Erstellen Sie zuerst einen neuen Pool mit der Anzahl der Slots, die der Anzahl der im Pool zu importierenden Geräte entspricht. Weisen Sie als Nächstes alle Geräte dem neuen Pool zu. Beim Start des Arrays sollte der Pool erkannt werden, obwohl bestimmte zpool-Topologien möglicherweise nicht erkannt werden (bitte melden Sie uns diese). Bitte beachten Sie, dass in dieser Version nur Pools importiert werden können, die Partition #1 verwenden, z. B. diese `lsblk`-Ausgabe: + +```bash +# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS +sdb 8:16 0 7.3T 0 disk +├─sdb1 8:17 0 2G 0 part +└─sdb2 8:18 0 7.3T 0 part +``` + +zeigt an, dass die zweite (`sdb2`) Partition der Festplatte für Daten verwendet wird und **nicht** importiert werden kann. + +Gemischte Topologien werden nicht unterstützt. Beispielsweise wird ein Pool mit einem Spiegel-Wurzel-vdev und einem Raidz-Wurzel-vdev nicht erkannt. + +Autotrim kann als **an** oder **aus** konfiguriert werden (außer für ZFS-Einzelgerätevolumes im unRAID-Array). + +Die Kompression kann als **an** oder **aus** konfiguriert werden, wobei **an** **lz4** auswählt. Ein zukünftiges Update wird ermöglichen, andere Algorithmen/Ebenen zu spezifizieren. + +Beim Erstellen eines neuen ZFS-Pools können Sie **zfs - verschlüsselt** wählen, was wie bei anderen verschlüsselten Volumen eine gerätebasierte Verschlüsselung über LUKS anwendet. Die native ZFS-Verschlüsselung wird derzeit nicht unterstützt. + +Beim Systemstart wird die Datei /etc/modprobe.d/zfs.conf automatisch generiert, um den ZFS-ARC auf 1/8 des installierten Speichers zu begrenzen. Dies kann bei Bedarf überschrieben werden, indem Sie eine benutzerdefinierte 'config/modprobe.d/zfs.conf'-Datei erstellen. Ein zukünftiges Update wird die Möglichkeit beinhalten, den ARC über das WebGUI zu konfigurieren, einschließlich der automatischen Anpassung entsprechend dem Speicherdruck, z. B. beim Start/Stop von VMs. + +Top-Level-Benutzerfreigaben in einem ZFS-Pool werden als Datasets anstelle gewöhnlicher Verzeichnisse erstellt. + +## Änderung des Speicherbegriffs für Freigaben + +Neu in dieser Version ist eine konzeptuelle Änderung in der Art und Weise, wie Speicher Shares zugewiesen wird. Das alte Konzept, dass der Hauptspeicher das Unraid-Array mit einem optionalen "Cache" ist, verwirrt viele neue Benutzer, insbesondere da "Cache" im ZFS eine spezifische Bedeutung hat. + +Wie unten beschrieben, haben wir das Konzept eines *exklusiven Shares* eingeführt. Dies ist einfach ein Share, in dem alle Daten in einem einzigen benannten Pool vorhanden sind. In diesem Fall gibt das auf FUSE basierende User-Share-Dateisystem einen **Symlink** auf das tatsächliche Sharedirectory im Pool zurück. Alle Operationen innerhalb des Shares, einschließlich der Datenübertragung, umgehen daher FUSE, was zu einer höheren Leistung führt. Diese Funktion zielt hauptsächlich darauf ab, die E/A für große schnelle ZFS-Pools zu maximieren, die über ein schnelles Netzwerk zugänglich sind. + +Dies ist nur eine Front-End-Änderung; bestehende Freigaben werden mit dieser neuen Struktur automatisch beim Upgrade angezeigt und automatisch auf den vorherigen Stil zurückgesetzt, wenn auf eine frühere Version zurückgegangen wird. + +Das Konfigurieren der Speicheroptionen für eine Freigabe erfolgt über zwei Eingaben: + +- Primärer Speicher +- Sekundärer Speicher + +Primärspeicher ist der Ort, an dem **neue** Dateien/Ordner erstellt werden. Wenn der Primärspeicher unter dem Minimum Free Space-Einstellung liegt, werden neue Dateien und Ordner im Sekundärspeicher erstellt, falls dieser konfiguriert ist. + +Jede Eingabe zeigt ein Dropdown an, das als Auswahl "Array", "keine" und jeden benannten Pool gemäß einigen Konfigurationsregeln auflistet: + +Für das Primäre Speicher-Dropdown: + +- die Option "keine" ist ausgelassen, d.h., ein Primärer Speicher muss ausgewählt werden +- jeder benannte Pool kann ausgewählt werden +- "Array" kann ausgewählt werden (bedeutet das unRAID-Array) + +Für das Sekundäre Speicher-Dropdown: + +- die Option "keine" ist enthalten, d.h., Sekundärer Speicher ist optional +- Wenn der Primärspeicher ein Poolname ist, dann sind die einzigen Optionen "keine" und "Array". In Zukunft werden hier auch andere Pools aufgeführt sein. +- wenn Primärspeicher "Array" ist, dann erscheint nur "keine" als Option + +Wenn "Array" für Primären oder Sekundären Speicher ausgewählt wird, schieben sich weitere Einstellungen ein: + +- Zuweisungsprofil +- Eingeschlossene Platte(n) +- Ausgeschlossene Festplatte(n) +- Teilungsstufe + +Wenn ein *btrfs* benannter Pool für Primären oder Sekundären Speicher ausgewählt wird, wird eine zusätzliche Einstellung eingeblendet: + +- Kopiergeschützte Aktivierung aktivieren + +Wenn ein *ZFS*-benannter Pool entweder für den Primär- oder Sekundärspeicher ausgewählt wird, gibt es zu diesem Zeitpunkt keine zusätzlichen Einstellungen, es könnte jedoch in Zukunft welche geben. Beispielsweise, da ein Share als ZFS-Dataset erstellt wird, könnte es eine andere Kompressionskonfiguration als der übergeordnete Pool haben, wenn wir dies implementieren müssen. + +### Mover-Aktion + +Wenn ein Sekundärer Speicher für eine Freigabe konfiguriert ist, wird die Einstellung "Mover-Aktion" aktiviert, sodass der Benutzer die Bewegungsrichtung des Movers auswählen kann: + +- Primär zu Sekundär (Standard) +- Sekundär zu Primär + +### Exklusive Freigaben + +Wir haben eine neue Einstellung hinzugefügt: "Einstellungen/Globale Freigabeeinstellungen/Exklusive Freigaben erlauben" \[Ja/Nein] Standard: Nein. Wenn auf Ja gesetzt und wenn der primäre Speicher für eine Freigabe ein Pool ist und der sekundäre Speicher auf "None" gesetzt ist, wird ein Symlink unter /mnt/user/*share* erstellt, der direkt auf das Pool-Freigabeverzeichnis verweist. (Es wird zusätzlich überprüft, dass die Freigabe auch nicht auf anderen Volumes vorhanden ist.) + +Es gibt ein neues Statusflag 'Exklusiver Zugriff', das auf 'Ja' gesetzt wird, wenn ein Symlink vorhanden ist, und 'Nein' sonst. Exklusive Shares sind auch auf der Share-Seite angegeben. + +Der Vorteil der Einrichtung von Symlinks besteht darin, dass I/O das FUSE-basierte User-Share-Dateisystem (shfs) umgeht, was die Leistung erheblich steigern kann. + +Es gibt einige Einschränkungen: + +- Sowohl die Freigabe-Minimum-Freiraum- als auch die Pool-Minimum-Freiraumeinstellungen werden ignoriert, wenn neue Dateien auf einer exklusiven Freigabe erstellt werden. +- Wenn eine Freigabe als NFS exportiert wird, kann sie nicht exklusiv sein, d.h., der Symlink wird nicht erstellt. Dies liegt daran, dass Symlinks im NFS-Client aufgelöst werden, nicht auf dem Server. Wir hoffen, diese Einschränkung in einem zukünftigen Update zu beseitigen. + +### Bereinigungsknopf + +Auf der Shares-Seite erscheint ein Button namens CLEAN UP, der, wenn aktiviert, darauf hinweist, dass es config/share/*share*.cfg-Dateien für nicht existierende Shares gibt. Ein Klick auf diesen Button entfernt diese Dateien. + +## Weitere Verbesserungen + +### btrfs + +Autotrim kann als **ein** oder **aus** konfiguriert werden, wenn es in einem Pool verwendet wird. + +Die Kompression kann als **ein** oder **aus** eingestellt werden. **Ein** wählt **zstd**. Zukünftiges Update wird erlauben, andere Algorithmen/Ebenen anzugeben. + +### xfs + +Autotrim kann als **ein** oder **aus** konfiguriert werden, wenn es als Einzelfach-Pool verwendet wird. + +### Docker + +Es ist möglich, das **Docker data-root** in einem Verzeichnis auf einem ZFS-Speicher-Pool zu platzieren. In diesem Fall verwendet Docker den 'zfs'-Storage-Treiber. Dieser Treiber erstellt ein separates Dataset für jede Image-Ebene. Aus diesem Grund empfehlen wir, Docker mit dem **directory**-Modus einzurichten: + +Erstellen Sie zunächst eine **docker** Benutzerfreigabe, die folgendermaßen konfiguriert ist: + +- Freigabename: **docker** +- Primärspeicher: ***Name Ihres ZFS-Pools*** +- Sekundärspeicher: **keiner** + +Als Nächstes auf der Seite **Docker-Einstellungen**: + +- Docker aktivieren: **Ja** +- Docker Daten-Wurzel: **Verzeichnis** +- Docker-Verzeichnis: **/mnt/user/docker** + +Falls Sie jemals den persistenten Docker-Status löschen müssen, bringen Sie die Docker-Einstellungsseite auf und setzen Sie **Docker aktivieren** auf **Nein** und klicken Sie auf **Anwenden**. Nachdem Docker heruntergefahren ist, klicken Sie auf das **Verzeichniss löschen**-Kontrollkästchen und dann auf **Löschen**. Dies führt dazu, dass nicht nur die verschiedenen Dateien und Verzeichnisse gelöscht werden, sondern auch alle Schichten als Datasets gespeichert sind. + +Bevor Sie Docker erneut aktivieren, stellen Sie sicher, dass Sie vorher den **docker**-Freigabebereich wie oben beschrieben neu erstellen. + +#### Weitere Docker-Änderungen + +- CreateDocker: Bezeichnung **Docker Hub-URL** in **Registry-URL** geändert, da GHCR und andere neue Container-Registries immer beliebter werden. +- Einstellung des Benutzers für Timeout-Anhaltezeit beachten. +- Akzeptiere Bilder im OCI-Format. +- Option zum Deaktivieren von readmore-js auf der Container-Tabelle hinzufügen. +- Korrektur: Docker-Container-Konsole verwendet bash nicht, wenn ausgewählt. +- Problembehebung beim Erkennen eines ordnungsgemäßen Herunterfahrens von Docker. +- rc.docker: Dockerd 30 Sekunden anstelle von 15 Sekunden geben, um zu starten. + +### VM-Manager + +Wenn Sie die Kopier-/Einfügefunktion für virtuelle Konsolen aktivieren, müssen Sie zusätzliche Software auf dem Client installieren, zusätzlich zu dem QEMU-Agent, falls dieser bereits installiert wurde. [Hier ist der Ort](https://www.spice-space.org/download.html) für spice-vdagent sowohl für Windows als auch für Linux. Beachten Sie, dass die Kopier-/Einfügefunktion nicht mit dem Web-Spice-Viewer funktioniert, Sie müssen virt-viewer verwenden. + +#### Andere VM-Änderungen + +- Füge serielle Option für vdisk hinzu. +- Spice-Bugfix für Benutzer mit nicht standardmäßigen GUI-Ports. +- OVMF für QEMU: Version stable202302 +- Korrektur für Bus-Text. +- Kopieren/Einfügen-Option für virtuelle Konsolen aktivieren. +- Update Memory Backup-Verarbeitung für Virtiofs. +- Problem mit dem Festfrieren beheben, wenn keine VMs vorhanden sind. +- Unterstützung für rtl8139-Netzwerkmodell hinzufügen. +- Übersetzungsversäumnis beheben. +- Hinzufügen von Sperr-entsperrfunktionen für sortierbare Elemente. +- Korrektur für Spice Maus, wenn Kopieren/Einfügen aktiviert ist. +- Seite auch laden lassen, wenn PCI-Geräte fehlen oder falsch zugewiesen erscheinen. +- Remote-Viewer- und Web-Konsolen-Optionen auswählbar machen. +- Option zum Herunterladen der .vv-Datei und Starten des Remote-Viewers, wenn Browser so eingestellt ist, dass die .vv-Datei beim Herunterladen geöffnet wird. +- Unterstützung für Remote Viewer-Konsole hinzufügen. +- Entfernen-lock-posix='on'-flock='on'/- +- Problem beheben, bei dem als Autostart markierte VM nicht nach manuellem Start des Arrays startet. +- Korrektur für Max-Speicher > 1TB. +- Probleme mit VM-Seitenladungen beheben, wenn Benutzer vcpu-Zuweisung entfernt haben. +- ovmf-stable: Version 202305 (Build 3). +- Benachrichtigungssubjekt korrigiert. + +### Dashboard + +Das WebGUI-Dashboard wurde neu gestaltet und es ist jetzt möglich, Elemente (Kacheln) nach oben und unten und zwischen Spalten zu verschieben. Dies ermöglicht es dem Benutzer, die Kacheln beliebig zu organisieren. Auf der Menüleiste befindet sich ein kleines **Sperr**-Symbol, das angeklickt werden muss, um diese Funktion zu aktivieren: + +- Grün ist der Normalzustand (Seite ist gesperrt) +- Rot ist der Alarmzustand (Seite ist entsperrt) + +Hinweis: Das **Schloss**-Symbol erscheint auch auf den Docker- und VM-Seiten und muss angeklickt werden, um die Startreihenfolge umzuordnen. + +### Netzwerkverbesserungen + +Wir haben einen neuen Bereich hinzugefügt: Einstellungen/Netzwerkeinstellungen/Schnittstelle Extra + +Dieser neue Abschnitt ermöglicht es dem Benutzer, zu definieren, welche Schnittstellen von den Unraid-Diensten genutzt werden. Standardmäßig werden alle regulären Schnittstellen mit einer IP-Adresse in die Liste der hörenden Schnittstellen aufgenommen. + +Die Tunnel der integrierten WireGuard-Funktion von Unraid werden automatisch zur Liste hinzugefügt oder entfernt, wenn die WireGuard-Tunnel aktiviert oder deaktiviert werden. Der Benutzer kann diese Tunnel von der Liste der hörenden Schnittstellen ausschließen. + +Um die Tailscale- oder Zerotier-Schnittstelle zu nutzen, muss der Schnittstellenname oder die IP-Adresse der Kommunikation zur Liste der enthaltenen hörenden Schnittstellen hinzugefügt werden. **Wichtig:** Es ist zwingend erforderlich, dass der Tailscale- oder Zerotier-Container läuft, bevor die Schnittstelle zur Liste hinzugefügt wird. Weitere Informationen finden Sie in [diesem Community-Forumsbeitrag](https://forums.unraid.net/bug-reports/prereleases/unraid-os-version-6120-rc7-available-r2427/?tab=comments#comment-24235). + +#### Weitere Netzwerkänderungen + +- Unterstützung für benutzerdefinierte Schnittstellen (z. B. Tailscale VPN-Tunnel oder Zerotier L2-Tunnel) +- create\_network\_ini - smb neu starten, wenn Netzwerkänderungen vorgenommen wurden +- rc.inet1 - Hinzufügen der iptables-Verarbeitung zu Brückenschnittstellen, damit sie ähnlich wie macvlan-Schnittstellen funktionieren +- rc.avahidaemon - Dienst nur auf regulären Schnittstellen mit einer IP-Adresse hören lassen, dies umfasst die primäre Schnittstelle + IPv4/IPv6-Unterstützung +- rc.docker - Unterdrücke IPv6-Link-Local-Adresse für docker0- und Shim-Schnittstellen, wenn nur IPv4 eingestellt ist +- rc.samba - smb, nmb-Dienst nur auf regulären Schnittstellen mit einer IP-Adresse hören lassen, dies umfasst die primäre Schnittstelle + IPv4/IPv6-Unterstützung (auch für wsdd2) +- rc.ssh - nur auf regulären Schnittstellen mit einer IP-Adresse hören, dies umfasst die primäre Schnittstelle + IPv4/IPv6-Unterstützung +- Problem beheben, bei dem /etc/resolve.conf gelöscht werden kann, wenn DNS-Server zwischen Auto/Statik gewechselt wird. +- Fehler bei der Verarbeitung des Beschreibungsfelds beheben. +- nginx so anpassen, dass IP-Adresse von langsamen DHCP-Servern erkannt wird + +### Weitere Verbesserungen/Bugfixes + +- Erhöhung der maximalen Anzahl an Geräten pro Pool von 30 auf 60. In einer zukünftigen Version werden wir das obere Maximum vollständig eliminieren. +- webTerminal: Zur besseren Lesbarkeit die Hintergrundfarbe bei Verzeichnislisten geändert, bei denen 'w+o' gesetzt ist. Außerdem den Renderer von webgl auf Canvas geändert, um Probleme mit den neuesten Chrome-Versionen zu mildern. +- Korrektur für NTP-Drift-Dateispeicherung/-wiederherstellung aus dem persistenten USB-Flash-„config“-Verzeichnis. +- Überflüssige /root/.config/remmina-Datei entfernt +- Warnen, wenn ungültiger ZFS-Name verwendet wird. +- Freigabebearbeitung: Erlaube 1-Buchstaben-Namen +- [Pushbits-Agent](https://github.com/pushbits/server) zur Integration von Matrix/Synapse hinzufügen. +- cgroup2 ist jetzt der Standard +- Loopback-Bilder werden nicht mehr mit directio eingehängt +- newperms-Skript auf Operationen nur auf /mnt/ beschränkt. +- upgradepkg gepatcht, um das Ersetzen eines vorhandenen Pakets durch eine ältere Version zu verhindern. +- Aktuelle PCI-Bus-/Geräteinformationen werden in der Datei '/boot/previous/hardware' beim Upgrade von Unraid OS gespeichert. +- NFS: Aktiviere UPD-Transport +- emhttp: Cache-Pool (null) syslog-Zeichenfolgen korrigieren +- emhttp: Cache-Pool zeigt falsche Gerätegröße für ausgewähltes Ersatzgerät an +- Mover: Falsche Behandlung von Symlinks korrigieren +- Mover: Journaleinträge-Format des Mover-Loggings von vorherigen Versionen korrigiert +- Plugin: Anzeigen des Run-Befehls-Retval bei Fehlermeldung +- shfs: Versteckte Verzeichnisse auf oberster Ebene ignorieren (Namen, die mit '.' beginnen) +- Terminal: OpenTerminal: Terminationssignal (harter Stopp) geändert +- Unraid OS aktualisieren: Auf früheren Upgrade ohne Neustart überprüfen +- WebGUI: Unterstützung für PHP8, Erhöhung des PHP-Maximalen Speichers von 128M auf 256M +- WebGUI: ManagementAccess: Provisionierungs-/Erneuerungs-/Upgrade-Schaltflächen deaktivieren, wenn keine IP auf eth0 +- WebGUI: ManagementAccess: Unterstützung für lokale Wireguard-IP-Adressen in Kombination mit myservers.unraid.net SSL-Zertifikat +- WebGUI: "Ansehen"-Symbol auf der Haupt- und Freigabeseite nach links verschieben +- WebGUI: Entlassene Banner einen Monat lang ausgeblendet halten +- WebGUI: Dashboard: Rückführungsfehler beim "Fall auswählen" beheben +- WebGUI: Dashboard: Elemente zwischen Spalten verschiebbar machen +- WebGUI: Dashboard: API zum Hinzufügen benutzerdefinierter Kacheln +- WebGUI: Dashboard: Prozessorinformationen neu anordnen +- WebGUI: Dashboard: UPS-Informationen neu anordnen +- WebGUI: Dashboard: Speicherinformationen neu anordnen +- WebGUI: Dashboard: VPN-Kopfzeile neu anordnen +- WebGUI: Dashboard: Kopfzeilen neu anordnen +- WebGUI: JQuery UI Touch Punch für mobile Geräte hinzufügen +- WebGUI: Geänderte ID zu CLASS für mehrfach vorkommende Elemente +- WebGUI: Kopfzeile in den weißen und schwarzen Themen scrollbar machen + - Sind mehr Elemente vorhanden als Bildschirmplatz, kann der Benutzer jetzt durch sie scrollen (bisher waren diese Elemente unsichtbar) +- WebGUI: Dashboard und Docker: Sperre für sortierbare Elemente einführen + - Standardmäßig sind sortierbare Elemente gesperrt, was es mobilen Geräten ermöglicht, die Seite zu scrollen. Auf Anfrage können Positionen sortierbar gemacht werden. +- WebGUI: Benutzer: Symbol zur Titelleiste hinzufügen +- WebGUI: Werkzeuge: neue Funktion -> PHP-Einstellungen + - PHP-Informationen anzeigen + - Fehlerberichtskonfiguration + - Öffnen Sie das LOG, um Fehler in Echtzeit zu sehen +- WebGUI: Systeminformationen: nicht aktive Ports lesen korrigieren +- WebGUI: Plugin: Dem tatsächlich ausgeführten Befehl einbeziehen +- WebGUI: Systeminformationen: Cache-Verbesserung +- WebGUI: Systeminformationen: Speicherverbesserungen +- WebGUI: Geräteinformationen: Tasten deaktivieren, wenn Löschvorgang läuft +- WebGUI: Docker: Dateibaumkorrekturen +- WebGUI: Dashboard: Hitzewarnung pro Pool korrigiert anzeigen +- WebGUI: Benachrichtigungen: Überarbeitung des Betriebs + - Neue Benachrichtigungen nach 3 Sekunden automatisch schließen + - Korrigieren von Benachrichtigungen, die nach dem Schließen erneut erscheinen. +- WebGUI: Geräteliste: FS-Typ im Offline-Zustand hinzufügen +- WebGUI: Agent für Bark-Benachrichtigungen hinzufügen +- WebGUI: Hauptmenü: Symbol zum Durchsuchen ausblenden, wenn Festplatte nicht eingehängt ist +- WebGUI: Diagnose: Zusätzliche btrfs- und zfs-Informationen hinzufügen +- WebGUI: Dashboard: ZFS-Speichernutzung hinzufügen +- WebGUI: Neue Berechtigungen überarbeitet + - Auswahl entweder von Festplatten oder Freigaben (nicht beides) +- WebGUI: testparm zur Diagnose hinzufügen +- WebGUI: Unterstützung für neuen UD reservierten Einhängepunkt von /mnt/addons +- WebGUI: Problem bei der Anzeige von Merkmalen beheben, wenn die Temperaturanzeige auf Fahrenheit eingestellt ist. +- WebGUI: Dashboard-Änderungen: + - Dashboard vollständig sperren: Bearbeiten/Verschieben wird erst möglich, wenn die Seite entsperrt wird + - Eine leere Spalte wird wieder aufgefüllt, wenn die entsprechenden Kacheln wieder sichtbar gemacht werden, kein Zurücksetzen erforderlich + - Visuellen "Verschiebe-Indikator" auf der Docker- und VM-Seite hinzugefügt, um klarzustellen, dass Zeilen jetzt verschoben werden können. + - Form des Cursors bei aktivierter Verschiebung ändern + - Kachelname als Index verwenden +- WebGUI: Korrektur: Firefox-Konto-Popup für lokale Postnachrichten funktioniert nicht +- WebGUI: SMART-Test kann nicht auf einer UD-Festplatte ausgeführt werden, da keine Spin-Down-Verzögerungsauswahl vorhanden ist +- WebGUI: Statusfußzeile bleibt bei "Dienste starten" hängen, wenn Änderungen an der Freigabekonfiguration angewendet werden. +- WebGUI: Tabellenlayout für verwaiste Bilder korrigieren +- WebGUI: Plugin: Update-Schaltfläche nicht anzeigen, wenn nicht kompatibel +- WebGUI: Plugin: Erkennung der wget-Prozentanzeige robuster machen +- WebGUI: OpenTerminal: Kundenbegrenzung +- WebGUI: Kontextmenü: automatische Dreiecksplatzierung +- WebGUI: Dashboard: Pool-Warnungen korrigieren +- WebGUI: Erlauben SMART-Langtest für UD +- WebGUI: Prozessortyp aus /proc/cpuinfo lesen +- WebGUI: CSS: Scrollbar-Probleme in Firefox lösen +- WebGUI: Freigabe hinzufügen: Überprüfung des verborgenen Freigabenamens korrigieren +- WebGUI: Anzeigeeinstellungen: Fehlende Standardeinstellungen hinzufügen +- WebGUI: Array-Operation: Verhindern von Doppelklicks auf den Startknopf +- WebGUI: Geräteinfo: Anzeige von "shareFloor" mit Einheiten +- WebGUI: Geräteinfo: Automatische Stockwerksberechnung hinzugefügt +- WebGUI: Automatische Größennachricht hinzugefügt +- WebGUI: Freigaben: Info-Symbol hinzugefügt +- WebGUI: Geräteinfo und Freigabeseite aktualisiert +- WebGUI: Netzwerkdarstellungsanomalie behoben. +- WebGUI: Automatisches Ausfüllen des minimalen freien Speicherplatzes für neue Freigaben +- WebGUI: feat(upc): Update auf v3 für Verbinden +- WebGUI: Berechnung der Freigabe-/Poolgröße: Prozentwerte anzeigen und zulassen +- wireguard: SSL-Unterstützung für WG-Tunnel-IP-Adressen hinzufügen (nur myunraid.net-Wildcard-Zertifikate) +- wireguard: Nginx-Problem bei teilweiser WireGuard-Konfiguration beheben + +### Unterschiede in der *bz*-Datei freigeben + +Unraid OS besteht aus einem Satz von 5 sogenannten *bz*-Dateien im Stammverzeichnis +des USB-Flash-Startgeräts: + +- bzimage - der Linux-Kernel +- bzroot - das Root-Dateisystem, ohne Konsolendesktop +- bzroot-gui - zusätzliche Dateien, die für den Konsolendesktop benötigt werden +- bzmodules - mit dem Linux-Kernel verbundene Module (Treiber) +- bzfirmware - Gerätesteuerungen, die von bestimmten Modulen benötigt werden + +Ab der Version 6.12 wurde der Inhalt dieser Dateien neu geordnet: + +- bzimage - der Linux-Kernel (wie zuvor) +- bzroot - das Root-Dateisystem ohne das /usr-Verzeichnisbaum +- bzroot-gui - eine einzelne Datei, die den Konsolendesktop automatisch startet (zur Kompatibilität) +- bzmodules - mit dem Linux-Kernel verbundene Module (Treiber) und Gerätesteuerungen, die von bestimmten Modulen benötigt werden +- bzfirmware - das /usr-Verzeichnis und alle darin enthaltenen Dateien, einschließlich des Konsolendesktops + +Diese Änderungen beschleunigen den Boot-Prozess und geben fast 1 GB RAM frei. Dies ermöglicht uns auch, in Zukunft mehr "Dinge" zum Unraid-OS hinzuzufügen, ohne mehr RAM zu benötigen. Schließlich kann der Desktop im **Nicht-GUI**-Modus durch Anmeldung an der Konsole und Eingabe des 'slim'-Befehls gestartet werden. + +#### Manuelles Update + +Manuelles Update bezieht sich auf das Aktualisieren des Unraid-OS auf Ihrem USB-Flash-Boot-Gerät ohne Verwendung der **Tools/Update-OS**-Funktion. Normalerweise würde man entweder: + +- Ein Terminal-Fenster öffnen, die Release-Zip-Datei herunterladen, die Veröffentlichung entzippen und dann die *bz*-Dateien in das Stammverzeichnis des Startgeräts kopieren. + +oder + +- Das 'Flash'-Laufwerk in Ihrem Netzwerk freigeben und die *bz*-Dateien direkt von einem PC auf den Flash ziehen. + +Ab Version 6.12 kann jede Methode fehlschlagen, weil die *bzfirmware*-Datei überschrieben wird, während sie noch eingebunden ist - nicht gut. + +Um dies zu umgehen, müssen Sie zuerst ein temporäres Verzeichnis auf dem Flash-Gerät erstellen und dann alle vorhandenen *bz*-Dateien in dieses temporäre Verzeichnis 'mv' (oder ziehen). Jetzt können Sie die neuen *bz*-Dateien in das Stammverzeichnis des Flash-Geräts kopieren und neu starten. + +## Linux-Kernel + +- Version 6.1.33 +- md/unraid: Version 2.9.27 +- CONFIG\_FS\_DAX: Dateisystembasierte Direct-Access-Unterstützung (DAX) +- CONFIG\_VIRTIO\_FS: Virtio-Dateisystem +- CONFIG\_ZONE\_DEVICE: Geräte-Speicher (pmem, HMM, usw\...) Hotplug-Unterstützung +- CONFIG\_USBIP\_HOST: Host-Treiber +- CONFIG\_INTEL\_MEI: Intel Management Engine Interface +- CONFIG\_INTEL\_MEI\_ME: ME-fähige Intel-Chipsets +- CONFIG\_INTEL\_MEI\_GSC: Intel MEI GSC eingebettetes Gerät +- CONFIG\_INTEL\_MEI\_PXP: Intel PXP-Services des ME-Interface +- CONFIG\_INTEL\_MEI\_HDCP: Intel HDCP2.2-Services des ME-Interface +- CONFIG\_INTEL\_PMC\_CORE: Intel PMC Core-Treiber +- CONFIG\_DRM\_I915\_PXP: Intel PXP-Unterstützung aktivieren +- CONFIG\_SCSI\_FC\_ATTRS: FiberChannel Transport-Attribute +- CONFIG\_FUSION\_SPI: Fusion MPT ScsiHost-Treiber für SPI +- CONFIG\_FUSION\_FC: Fusion MPT ScsiHost-Treiber für FC +- CONFIG\_FUSION\_CTL: Fusion MPT Gerätesteuerung (ioctl) Treiber +- CONFIG\_FUSION\_LOGGING: Fusion MPT Protokollierungsfunktion +- CONFIG\_X86\_AMD\_PSTATE: AMD-Prozessor P-State-Treiber +- CONFIG\_LRU\_GEN: Multi-Gen LRU +- CONFIG\_SERIAL\_8250\_NR\_UARTS=32: Maximale Anzahl an 8250/16550 seriellen Ports +- CONFIG\_SERIAL\_8250\_RUNTIME\_UARTS=4: Anzahl der 8250/16550 seriellen Ports zur Laufzeit registrieren +- CONFIG\_FANOTIFY: Dateisystemweite Zugriffsmeldungen + +## Basis-Distro-Updates + +- aaa\_glibc-solibs: Version 2.37 +- adwaita-icon-theme: Version 43 +- at-spi2-core: Version 2.46.0 +- bash: Version 5.2.015 +- bash\_completion: Version 2.11 +- bind: Version 9.18.12 +- btrfs-progs: Version 6.2.1 +- ca-certificates: Version 20221205 +- cryptsetup: Version 2.6.1 +- curl: Version 7.88.1 +- dbus: Version 1.14.6 +- diffutils: Version 3.9 +- dnsmasq: Version 2.89 +- docker: Version 23.0.6 +- e2fsprogs: Version 1.47.0 +- encodings: Version 1.0.7 +- file: Version 5.44 +- firefox: Version 111.0 (AppImage) +- freetype: Version 2.13.0 +- fuse3: Version 3.12.0 +- gawk: Version 5.2.1 +- git: Version 2.39.2 +- glib2: Version 2.74.6 +- glibc: Version 2.37 +- glibc-zoneinfo: Version 2022g +- gnutls: Version 3.7.9 +- gptfdisk: Version 1.0.9 +- gtk+3: Version 3.24.37 +- harfbuzz: Version 7.1.0 +- htop: Version 3.2.2 +- iproute2: Version 6.2.0 +- iptables: Version 1.8.9 +- iputils: Version 20221126 +- kernel-firmware: 20230531\_fc90c59 +- less: Version 612 +- libICE: Version 1.1.1 +- libSM: Version 1.2.4 +- libX11: Version 1.8.4 +- libXau: Version 1.0.11 +- libXcomposite: Version 0.4.6 +- libXdamage: Version 1.1.6 +- libXdmcp: Version 1.1.4 +- libXpm: Version 3.5.15 +- libXrandr: Version 1.5.3 +- libXres: Version 1.2.2 +- libXxf86dga: Version 1.1.6 +- libarchive: Version 3.6.2 +- libdrm: Version 2.4.115 +- libfontenc: Version 1.1.7 +- libglvnd: Version 1.6.0 +- libjpeg-turbo: Version 2.1.5.1 +- libpcap: Version 1.10.3 +- libpng: Version 1.6.39 +- libpsl: Version 0.21.2 +- liburcu: Version 0.14.0 +- libwebp: Version 1.3.0 +- libxkbcommon: Version 1.5.0 +- libxkbfile: Version 1.1.2 +- libxshmfence: Version 1.3.2 +- lmdb: Version 0.9.30 +- logrotate: Version 3.21.0 +- lsof: Version 4.98.0 +- lz4: Version 1.9.4 +- lzlib: Version 1.13 +- mc: Version 4.8.29 +- mcelog: Version 191 +- mpfr: Version 4.2.0 +- nano: Version 7.2 +- ncurses: Version 6.4 +- nginx: Version 1.23.3 +- nghttp2: Version 1.52.0 +- openssh: Version 9.2p1 +- openssl: Version 1.1.1t +- openssl-solibs: Version 1.1.1t +- openzfs: Version 2.1.12 +- pango: Version 1.50.14 +- pciutils: Version 3.9.0 +- pcre2: Version 10.42 +- php: Version 8.2.4 +- php-libvirt: Version 0.5.7 +- php-markdown: Version 2.0.0 +- samba: Version 4.17.7 +- sqlite: Version 3.41.0 +- sudo: Version 1.9.13p2 +- sysstat: Version 12.7.2 +- tdb: Version 1.4.8 +- tevent: Version 0.14.1 +- traceroute: Version 2.1.2 +- transset: Version 1.0.3 +- tree: Version 2.1.0 +- usbutils: Version 015 +- xcb-util: Version 0.4.1 +- xdriinfo: Version 1.0.7 +- xf86-video-vesa: Version 2.6.0 +- xfsprogs: Version 6.1.1 +- xhost: Version 1.0.9 +- xinit: Version 1.4.2 +- xkbcomp: Version 1.4.6 +- xkeyboard-config: Version 2.38 +- xorg-server: Version 21.1.7 +- xprop: Version 1.2.6 +- xrandr: Version 1.5.2 +- xset: Version 1.2.5 +- xterm: Version 379 +- xz: Version 5.4.1 +- zstd: Version 1.5.4 + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md new file mode 100644 index 0000000000..085fc197f0 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md @@ -0,0 +1,56 @@ +# Version 6.12.1 2023-06-20 + +Änderungen gegenüber [6.12.0](6.12.0.md) + +## Upgrade-Hinweise + +### Bekannte Probleme + +Bitte beachten Sie die [6.12.0 Release-Hinweise](6.12.0.md#known-issues) für allgemein bekannte Probleme. + +### Rückschritte + +Wenn Sie zu einer Version vor 6.12.0 zurückrollen, beachten Sie bitte auch die [6.12.0 Release-Hinweise](6.12.0.md#rolling-back). + +## Fehlerbehebungen + +- emhttpd: Entfernen Sie "unraid" aus der Liste der reservierten Namen +- emhttpd: "ERROR"-Strings im Befehlsausgang `btrfs filesystem show` korrekt behandeln +- emhttpd: Verhindern Sie cmdStart, wenn bereits gestartet +- Netzwerk: Überarbeitete Funktionalität zum Neuladen von Diensten: stellt sicher, dass die Dienste nur einmalig neu geladen werden +- Netzwerk: rc.library: Liest IP-Adressen direkt von Schnittstellen anstelle der Datei +- Netzwerk: NTP: Korrektur der abhörenden Schnittstellen +- Netzwerk: NTP: Ausschluss von WG-Tunneln und benutzerdefinierten Schnittstellen +- Netzwerk: NTP: Hinzufügen des Schnittstellennamens in der Konfiguration +- Netzwerk: SSH: Hinzufügen des Schnittstellennamens in der Konfiguration +- WebGUI: Beheben Sie die PHP8-Warnung auf der UPS-Einstellungsseite +- WebGUI: Dashboard: ZFS-Prozentsatz basierend auf c\_max-Wert anzeigen +- WebGUI: Dashboard: Färbung der ZFS-Nutzungsleiste unterdrücken +- WebGUI: Dashboard: andere verschiedene Korrekturen + +## Linux-Kernel + +- Version 6.1.34 + +## Base-Distro + +- ttyd: Version 1.7.3 (behebt das Problem unsichtbarer Unterstrichzeichen in bestimmten Firefox-Versionen) + +### Sicherheitsupdates + +- ca-certificates: Version 20230506 +- curl: Version 8.1.2 (CVE-2023-28322 CVE-2023-28321 CVE-2023-28320 CVE-2023-28319) +- git: Version 2.35.8 (CVE-2023-25652 CVE-2023-25815 CVE-2023-29007) +- ntp: Version 4.2.8p17 (CVE-2023-26551 CVE-2023-26552 CVE-2023-26553 CVE-2023-26554 CVE-2023-26555) +- openssl: Version 1.1.1u (CVE-2023-2650) +- openssh: Version 9.3p1 +- php: Version 8.2.7 +- libX11: Version 1.8.6 (CVE-2023-3138) +- libssh: Version 0.10.5 (CVE-2023-1667 CVE-2023-2283) +- zstd: Version 1.5.5 + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md new file mode 100644 index 0000000000..bb572008c0 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md @@ -0,0 +1,68 @@ +# Version 6.12.10 2024-04-03 + +## Upgrade-Hinweise + +Diese Version kehrt zu einer älteren Version des Linux-Kernels zurück, um zwei in 6.12.9 gemeldete Probleme zu lösen. Außerdem enthält sie ein Sicherheitsupdate für 'curl' und einen Bugfix für spezielle Fälle. + +Hinweis: Unraid OS v6.12.x und alle früheren Versionen sind **nicht** anfällig für das xz-Hintertür [CVE-2024-3094](https://nvd.nist.gov/vuln/detail/CVE-2024-3094). + +### Bekannte Probleme + +#### Veraltete Plugins + +Veraltete Plugins können Probleme verursachen. Wir empfehlen, sie aktuell zu halten. + +#### Call Traces und Abstürze im Zusammenhang mit macvlan + +Wenn Sie Anruftraces im Zusammenhang mit macvlan (oder unerklärliche Abstürze generell) erhalten, empfehlen wir als ersten Schritt, zu ***Einstellungen > Docker*** zu navigieren, in die **Erweiterte** Ansicht zu wechseln und **Docker-Benutzerdefinierter Netzwerktype** von **macvlan** auf **ipvlan** zu ändern. Dies ist die Standardkonfiguration, mit der Unraid seit der Version 6.11.5 ausgeliefert wurde und sollte für die meisten Systeme funktionieren. + +Bitte beachten Sie, dass einige Benutzer Probleme mit der Portweiterleitung von bestimmten Routern (Fritzbox) und eingeschränkter Funktionalität mit erweiterten Netzwerkverwaltungstools (Ubiquity) im IPvlan-Modus gemeldet haben. Wenn Sie betroffen sind, sehen Sie sich die alternative Lösung an, die seit Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces) verfügbar ist. + +#### Netzwerkprobleme aufgrund von Jumbo-Frames + +Wenn Sie irgendwelche Netzwerkprobleme haben, überprüfen Sie, dass Sie keine Jumbo Frames aktiviert haben. Navigieren Sie zu ***Einstellungen > Netzwerkeinstellungen > eth0*** und bestätigen Sie, dass die **Gewünschte MTU** 1500 ist. Weitere Informationen finden Sie in der [Fehlerbehebungswarnung für Jumbo Frames](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Probleme aufgrund von Realtek-Netzwerkkarten + +Der aktualisierte Kernel behebt das Deadlock-Problem mit Jumbo Frames und dem In-Tree Realtek 8125 Treiber. Wir empfehlen jedoch weiterhin, den oben genannten Ratschlägen bezüglich Jumbo Frames zu folgen. + +Sollten weiterhin Probleme mit der Netzwerkstabilität auftreten und ***Werkzeuge > Systemgeräte*** anzeigt, dass Sie einen Realtek Ethernet-Controller haben, notieren Sie sich die angezeigte Teilenummer und suchen Sie in den Community-Apps nach einem Realtek-Treibersystem-Plugin für dieses Gerät. Weitere Informationen finden Sie auf der [Support-Seite für Realtek-Treiber-Plugins](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### Weitere Probleme? + +Wir empfehlen dringend, das **Fix Common Problems** Plugin zu installieren, da es Sie über gängige Konfigurationsprobleme informiert. + +Wenn Sie andere Abstürze oder Stabilitätsprobleme haben, navigieren Sie zu ***Einstellungen > Syslog-Server*** und aktivieren Sie **Syslog auf Flash spiegeln**. Dies wird zu zusätzlichem Verschleiß Ihres USB-Flash-Startgeräts führen, ist jedoch kurzfristig nützlich, um Protokolle nach einem Absturz zu sammeln. + +Nach dem nächsten Neustart gehen Sie zu ***Werkzeuge > Diagnose*** und laden Sie Ihre anonymisierten Diagnosen herunter (ab 6.12.5, +Diagnosen beinhalten automatisch Protokolle, die auf dem Flash-Laufwerk gespiegelt wurden). + +Erstellen Sie schließlich ein neues Thema unter [Allgemeine Unterstützung](https://forums.unraid.net/forum/55-general-support/) und geben Sie alle Details des Problems an. Sobald das Problem gelöst ist, deaktivieren Sie unbedingt **Syslog auf Flash spiegeln**. + +### Rückschritte + +Wenn ein Rollback vor Version 6.12.9 durchgeführt wird, lesen Sie auch die [6.12.9 Versionshinweise](6.12.9.md#rolling-back). + +## Änderungen gegenüber [6.12.9](6.12.9.md) + +### Fehlerbehebungen und Verbesserungen + +- Probleme beim Einhängen entfernter SMB-Freigaben über das Unassigned Devices Plugin beheben. +- Probleme beheben, bei denen bestimmte Asmedia-Controller nicht alle angeschlossenen Geräte erkennen. +- nfs: (Zurücksetzen) NFSv4-Mounts standardmäßig +- zfs: Erkennen, ob für einen importierten Pool mit fehlendem Gerät unzureichende Pools-Slots definiert sind. +- Problem mit der Übersetzung bei SystemDrivers beheben + +### Linux-Kernel + +- Version 6.1.79 + +### Grunddistro + +- curl: Version: 8.7.1 (CVE-2024-2466 CVE-2024-2398 CVE-2024-2379 CVE-2024-2004) + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md new file mode 100644 index 0000000000..816ccd07ff --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md @@ -0,0 +1,75 @@ +# Version 6.12.11 2024-07-16 + +## Upgrade-Hinweise + +Diese Veröffentlichung enthält einige schöne Bugfixes, die von unserer Arbeit an Unraid 7 zurückportiert wurden, sowie einen Sicherheitsfix für OpenSSH und +aktualisierungen des Linux-Kernels und von OpenZFS. + +### Bekannte Probleme + +#### Veraltete Plugins + +Veraltete Plugins können Probleme verursachen. Wir empfehlen, sie aktuell zu halten. + +#### Docker Fork Bomb + +Ein beschädigter oder bösartiger Docker-Container kann alle verfügbaren Prozess-IDs auf dem System verwenden, was zu Instabilität führen kann. Wir testen derzeit einen Fix in Unraid 7 und werden ihn in einem zukünftigen Release zurückportieren (Hinweis: dieser Fix ist in [6.12.12](6.12.12.md) enthalten). Wenn Sie vermuten, dass Sie betroffen sind, gibt es einen Workaround: Begrenzen Sie die Anzahl der PIDs, die ein Container verwenden kann, indem Sie `--pids-limit 2048` im Docker-Vorlagenfeld *Extra Parameter* hinzufügen. + +#### Call Traces und Abstürze im Zusammenhang mit macvlan + +Wenn Sie Anruftraces im Zusammenhang mit macvlan (oder unerklärliche Abstürze generell) erhalten, empfehlen wir als ersten Schritt, zu ***Einstellungen > Docker*** zu navigieren, in die **Erweiterte** Ansicht zu wechseln und **Docker-Benutzerdefinierter Netzwerktype** von **macvlan** auf **ipvlan** zu ändern. Dies ist die Standardkonfiguration, mit der Unraid seit der Version 6.11.5 ausgeliefert wurde und sollte für die meisten Systeme funktionieren. + +Bitte beachten Sie, dass einige Benutzer Probleme mit der Portweiterleitung von bestimmten Routern (Fritzbox) und eingeschränkter Funktionalität mit erweiterten Netzwerkverwaltungstools (Ubiquity) im IPvlan-Modus gemeldet haben. Wenn Sie betroffen sind, sehen Sie sich die alternative Lösung an, die seit Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces) verfügbar ist. + +#### Netzwerkprobleme aufgrund von Jumbo-Frames + +Wenn Sie irgendwelche Netzwerkprobleme haben, überprüfen Sie, dass Sie keine Jumbo Frames aktiviert haben. Navigieren Sie zu ***Einstellungen > Netzwerkeinstellungen > eth0*** und bestätigen Sie, dass die **Gewünschte MTU** 1500 ist. Weitere Informationen finden Sie in der [Fehlerbehebungswarnung für Jumbo Frames](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Probleme aufgrund von Realtek-Netzwerkkarten + +Der aktualisierte Kernel behebt das Deadlock-Problem mit Jumbo Frames und dem In-Tree Realtek 8125 Treiber. Wir empfehlen jedoch weiterhin, den oben genannten Ratschlägen bezüglich Jumbo Frames zu folgen. + +Sollten weiterhin Probleme mit der Netzwerkstabilität auftreten und ***Werkzeuge > Systemgeräte*** anzeigt, dass Sie einen Realtek Ethernet-Controller haben, notieren Sie sich die angezeigte Teilenummer und suchen Sie in den Community-Apps nach einem Realtek-Treibersystem-Plugin für dieses Gerät. Weitere Informationen finden Sie auf der [Support-Seite für Realtek-Treiber-Plugins](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### Weitere Probleme? + +Wir empfehlen dringend, das **Fix Common Problems** Plugin zu installieren, da es Sie über gängige Konfigurationsprobleme informiert. + +Wenn Sie andere Abstürze oder Stabilitätsprobleme haben, navigieren Sie zu ***Einstellungen > Syslog-Server*** und aktivieren Sie **Syslog auf Flash spiegeln**. Dies wird zu zusätzlichem Verschleiß Ihres USB-Flash-Startgeräts führen, ist jedoch kurzfristig nützlich, um Protokolle nach einem Absturz zu sammeln. + +Nach dem nächsten Neustart gehen Sie zu ***Werkzeuge > Diagnose*** und laden Sie Ihre anonymisierten Diagnosen herunter (ab 6.12.5, +Diagnosen beinhalten automatisch Protokolle, die auf dem Flash-Laufwerk gespiegelt wurden). + +Erstellen Sie schließlich ein neues Thema unter [Allgemeine Unterstützung](https://forums.unraid.net/forum/55-general-support/) und geben Sie alle Details des Problems an. Sobald das Problem gelöst ist, deaktivieren Sie unbedingt **Syslog auf Flash spiegeln**. + +### Rückschritte + +Wenn Sie vor 6.12.10 zurücksetzen, sehen Sie sich auch die [6.12.10 Versionshinweise](6.12.10.md#rolling-back) an. + +## Änderungen gegenüber [6.12.10](6.12.10.md) + +### Fehlerbehebungen und Verbesserungen + +- Fehler 500 beim Anmelden beheben +- Dashboard + - Kacheldialog zeigt leeres Fenster - beheben + - Sichtbarkeits-Cookies in fehlerhaftem Zustand bereinigen +- VMs + - Beheben, dass das Ändern des Brückenwerts VMs mit mehr als einem NIC nicht aktualisiert und die VM nicht startet + - Beheben, dass das Entfernen der GPU und das Hinzufügen einer virtuellen keinen Output führt +- Trimmen konsistent zwischen "Jetzt trimmen" und Cron-Job machen + +### Linux-Kernel + +- Version 6.1.99 +- zfs: Version 2.1.15 + +### Grunddistro + +- openssh: Version 9.8p1 (CVE-2024-6387) + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md new file mode 100644 index 0000000000..6fa671951c --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md @@ -0,0 +1,82 @@ +# Version 6.12.12 2024-08-20 + +## Upgrade-Hinweise + +Unraid 6.12 profitiert weiterhin von der Arbeit, die an Unraid 7 geleistet wird. Diese Version enthält mehrere Fehlerkorrekturen +aus Unraid 7 sowie eine Sicherheitskorrektur für curl. + +### Bekannte Probleme + +#### Veraltete Plugins + +Veraltete Plugins können Probleme verursachen. Wir empfehlen, sie aktuell zu halten. + +#### Call Traces und Abstürze im Zusammenhang mit macvlan + +Wenn Sie Anruftraces im Zusammenhang mit macvlan (oder unerklärliche Abstürze generell) erhalten, empfehlen wir als ersten Schritt, zu ***Einstellungen > Docker*** zu navigieren, in die **Erweiterte** Ansicht zu wechseln und **Docker-Benutzerdefinierter Netzwerktype** von **macvlan** auf **ipvlan** zu ändern. Dies ist die Standardkonfiguration, mit der Unraid seit der Version 6.11.5 ausgeliefert wurde und sollte für die meisten Systeme funktionieren. + +Bitte beachten Sie, dass einige Benutzer Probleme mit der Portweiterleitung von bestimmten Routern (Fritzbox) und eingeschränkter Funktionalität mit erweiterten Netzwerkverwaltungstools (Ubiquity) im IPvlan-Modus gemeldet haben. Wenn Sie betroffen sind, sehen Sie sich die alternative Lösung an, die seit Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces) verfügbar ist. + +#### Netzwerkprobleme aufgrund von Jumbo-Frames + +Wenn Sie irgendwelche Netzwerkprobleme haben, überprüfen Sie, dass Sie keine Jumbo Frames aktiviert haben. Navigieren Sie zu ***Einstellungen > Netzwerkeinstellungen > eth0*** und bestätigen Sie, dass die **Gewünschte MTU** 1500 ist. Weitere Informationen finden Sie in der [Fehlerbehebungswarnung für Jumbo Frames](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Probleme aufgrund von Realtek-Netzwerkkarten + +Der aktualisierte Kernel behebt das Deadlock-Problem mit Jumbo Frames und dem In-Tree Realtek 8125 Treiber. Wir empfehlen jedoch weiterhin, den oben genannten Ratschlägen bezüglich Jumbo Frames zu folgen. + +Sollten weiterhin Probleme mit der Netzwerkstabilität auftreten und ***Werkzeuge > Systemgeräte*** anzeigt, dass Sie einen Realtek Ethernet-Controller haben, notieren Sie sich die angezeigte Teilenummer und suchen Sie in den Community-Apps nach einem Realtek-Treibersystem-Plugin für dieses Gerät. Weitere Informationen finden Sie auf der [Support-Seite für Realtek-Treiber-Plugins](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### Weitere Probleme? + +Wir empfehlen dringend, das **Fix Common Problems** Plugin zu installieren, da es Sie über gängige Konfigurationsprobleme informiert. + +Wenn Sie andere Abstürze oder Stabilitätsprobleme haben, navigieren Sie zu ***Einstellungen > Syslog-Server*** und aktivieren Sie **Syslog auf Flash spiegeln**. Dies wird zu zusätzlichem Verschleiß Ihres USB-Flash-Startgeräts führen, ist jedoch kurzfristig nützlich, um Protokolle nach einem Absturz zu sammeln. + +Nach dem nächsten Neustart gehen Sie zu ***Werkzeuge > Diagnose*** und laden Sie Ihre anonymisierten Diagnosen herunter (ab 6.12.5, +Diagnosen beinhalten automatisch Protokolle, die auf dem Flash-Laufwerk gespiegelt wurden). + +Erstellen Sie schließlich ein neues Thema unter [Allgemeine Unterstützung](https://forums.unraid.net/forum/55-general-support/) und geben Sie alle Details des Problems an. Sobald das Problem gelöst ist, deaktivieren Sie unbedingt **Syslog auf Flash spiegeln**. + +### Rückschritte + +Wenn Sie auf eine Version vor 6.12.11 zurücksetzen, siehe auch die [6.12.11 Versionshinweise](6.12.11.md#rolling-back). + +## Änderungen gegenüber [6.12.11](6.12.11.md) + +### Fehlerbehebungen und Verbesserungen + +- Schützen Sie vor Docker Fork Bombs, indem Sie ein Standard *Docker PID Limit* zu ***Einstellungen > Docker Einstellungen*** hinzufügen. +- shfs: behebe „Split-Ebene 0“ (Manuelle Split-Ebene) Regression. +- Entferne fest kodierten Hosts-Dateieintrag für keys.lime-technology.com. +- Verwenden Sie „go links“, wenn Sie auf die Dokumentation verlinken. +- Behebe UPS-Einstellungen-Seite bei leeren Konfigurationswerten. +- update.php: Datei-Pointer nach der Nutzung freigeben. +- Diagnosen: IPv6-Adressen anonymisieren. +- Beheben: Nach dem Stoppen und Neustarten des Arrays läuft nfsd nicht. +- Beheben: Beim Löschen eines Freigabe wird diese nicht von SMB und NFS entfernt. +- Beheben: Routen speichern funktioniert nur auf Englisch. +- Startup-Verbesserungen im rc.S Skript: + - Bootsektor-Backup automatisch reparieren. + - Alle Dateisysteme explizit aushängen, wenn das Booten nicht fortgesetzt werden kann. +- Benutzer in natürlicher Reihenfolge auf der Freigabenseite sortieren. +- Webgui: Ersetzen von document.write() Verwendungen. +- Ein Schreibfehler im Hilfetext behoben. +- Veraltetes /etc/apcupsd/doshutdown Skript entfernen. +- UserEdit: Neben Ed25519, FIDO/U2F Ed25519 und RSA unterstützen auch SSH-Schlüsseltypen DSA, ECDSA und FIDO/U2F ECDSA. +- Beheben: PHPSettings.page: Behebe inkonsistente PHP-Fehlerberichts-Standards. +- Dashboard: Meldungen während Paritätssynchronisation/-prüfung abschwächen. + +### Linux-Kernel + +- Version 6.1.103 + +### Grunddistro + +- curl: Version 8.9.1 (CVE-2024-7264) + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md new file mode 100644 index 0000000000..270152d0f0 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md @@ -0,0 +1,35 @@ +# Version 6.12.13 2024-08-22 + +## Upgrade-Hinweise + +Dies ist ein schnelles Update, das den Linux-Kernel aktualisiert, um eine [Regression](https://lore.kernel.org/lkml/45cdf1c2-9056-4ac2-8e4d-4f07996a9267@kernel.org/T/) zu korrigieren, bei der einige HDD-Geräte nicht heruntergefahren werden konnten. + +Für weitere Details zu den jüngsten Änderungen siehe die [6.12.12-Hinweise zur Veröffentlichung](6.12.12.md). + +### Bekannte Probleme + +#### Windows-VMs sollten den VirtIO-net-Treiber verwenden + +Aufgrund eines Kernel-Regressions gibt es eine erhebliche Verschlechterung der Leistung bei jedem ausgehenden Transfer von einer Windows-VM, die den VirtIO-Netzwerktreiber verwendet. Der Workaround besteht darin, auf den VirtIO-net-Treiber umzuschalten. (Hinweis: Dies wurde in [6.12.14](6.12.14.md) behoben.) + +Für weitere bekannte Probleme siehe die [6.12.12 Release Notes](6.12.12.md#known-issues). + +### Rückschritte + +Wenn Sie auf eine frühere Version als 6.12.12 zurückrollen, sehen Sie auch die [6.12.12-Hinweise zur Veröffentlichung](6.12.12.md#rolling-back). + +## Änderungen gegenüber [6.12.12](6.12.12.md) + +### Fehlerbehebungen und Verbesserungen + +- Aktualisierter Kernel zur Lösung von Problemen beim Herunterfahren von Festplatten + +### Linux-Kernel + +- Version 6.1.106 + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md new file mode 100644 index 0000000000..6bfc0b0f52 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md @@ -0,0 +1,70 @@ +# Version 6.12.14 2024-11-26 + +## Upgrade-Hinweise + +Diese Version beinhaltet wichtige Fehlerbehebungen und Sicherheitsaktualisierungen. + +***ALLE NUTZER SIND DRINGEND ZUR AKTUALISIERUNG AUFGEFORDERT*** + +### Bekannte Probleme + +#### Neue Windows-Änderungen können den Zugriff auf öffentliche Freigaben beeinträchtigen + +Aufgrund der jüngsten Sicherheitsänderungen in Windows 11 24H2 könnte der "Gast"-Zugriff auf öffentliche Unraid-Freigaben nicht funktionieren. Der einfachste Weg, dies zu umgehen, besteht darin, in Unraid einen Benutzer mit dem gleichen Namen wie das Windows-Konto zu erstellen, das Sie zur Verbindung verwenden. Wenn das Unraid-Benutzerkennwort nicht mit dem Windows-Konto-Passwort übereinstimmt, wird Windows nach Anmeldeinformationen fragen. + +Wenn Sie ein Microsoft-Konto verwenden, könnte es besser sein, einen Benutzer in Unraid mit einem einfachen Benutzernamen zu erstellen, ein Passwort festzulegen und dann in Windows zu ***Systemsteuerung → Anmeldeinformationsverwaltung → Windows-Anmeldungen → Neue Windows-Anmeldedaten hinzufügen*** zu gehen und den korrekten Unraid-Servernamen und die Anmeldedaten hinzuzufügen. + +Alternativ können Sie [Windows Gast-Fallback erneut aktivieren](https://techcommunity.microsoft.com/blog/filecab/accessing-a-third-party-nas-with-smb-in-windows-11-24h2-may-fail/4154300) +(nicht empfohlen). + +#### Probleme aufgrund von Realtek-Netzwerkkarten + +Es gab mehrere Berichte über Probleme mit dem Realtek-Treiber-Plugin nach der Aktualisierung auf die neuesten Kernel. Sie sollten es möglicherweise vorsorglich deinstallieren, bevor Sie ein Upgrade durchführen, oder es nachträglich entfernen, falls Netzwerkprobleme auftreten. + +Für weitere bekannte Probleme siehe die [6.12.12 Release Notes](6.12.12.md#known-issues). + +### Rückschritte + +Wenn Sie auf eine Version vor 6.12.13 zurückgehen, schauen Sie sich auch die [6.12.13 Release Notes](6.12.13.md#rolling-back) an. + +## Änderungen gegenüber [6.12.13](6.12.13.md) + +### Fehlerbehebungen und Verbesserungen + +- emhttpd: Behebung der Swap-Deaktivierungsoperation, die den verbleibenden Speicherplatz auf dem Ziel nicht ordnungsgemäß löschte. +- ShareList: Anzeige eines Indikators, wenn ein primärer Pool einer Freigabe ungültig ist, zum Beispiel umbenannt oder gelöscht wurde. +- ShareEdit: Benutzerwarnung, dass das Umbenennen eines Pools sich auf Freigaben auswirken kann, die diesen Pool verwenden. +- DiskSettings: Klarstellung, dass "Standardsystem" für unRAID-Array-Datenträger gilt. +- Entfernen von ps.txt aus der Diagnose, um VPN-Anmeldedaten nicht offenzulegen. +- Hinzufügen eines Hilfetextes zum Zugriff auf öffentliche Freigaben aus Windows 11 24H2. +- Feedback-Formular aktualisieren und E-Mail-Adresse erforderlich machen +- Behobener Link zum apcupsd-Handbuch auf der ***Einstellungen → UPS-Einstellungen***-Seite +- Behobener Link zur btrfs-Man-Seite im Hilfetext +- rc.docker: Stellen Sie sicher, dass benutzerdefinierte Schnittstellen mit einem höheren Index als 0 ordnungsgemäß wiederhergestellt werden +- rc.rsyslogd: Verwenden von pgrep, killall mit PID-Namespace. +- WebGUI: verbesserte Handhabung von HTTP-Abfrageparametern +- Kernel: Behebung von Leistungseinbußen bei Windows-VMs und dem VirtIO-Netzwerktreiber, die in [6.12.13](6.12.13.md) eingeführt wurden + +### Linux-Kernel + +- Version 6.1.118 + +### Grunddistro + +- firefox: Version 132.0.r20241110231641 (AppImage) (CVE-2024-11691 - 11699) +- intel-microcode: Version 20241112 +- libssh: Version 0.10.6 +- libssh2: Version 1.11.1 (CVE-2023-48795) +- openssl: Version 1.1.1zb (CVE-2024-9143) +- php: Version 8.2.26 [Mehrere CVE](https://www.php.net/ChangeLog-8.php#8.2.26) +- samba: Version 4.19.9 (CVE-2018-14628) +- wget: Version 1.25.0 (CVE-2024-10524) + +## Patches + +Für diese Version sind derzeit keine Patches verfügbar, aber wir empfehlen die Installation des +[Unraid-Patch-Plugins](https://forums.unraid.net/topic/185560-unraid-patch-plugin/), +um Patches zu erhalten, sobald sie verfügbar sind. + +Bitte beachten Sie, dass in neueren Versionen zusätzliche Sicherheitsaktualisierungen verfügbar sind, +weitere Details finden Sie in [diesem Blogeintrag](https://unraid.net/blog/cvd). diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md new file mode 100644 index 0000000000..feb28c4d0d --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md @@ -0,0 +1,62 @@ +# Version 6.12.15 2025-01-21 + +## Upgrade-Hinweise + +Diese Version beinhaltet wichtige Fehlerbehebungen und Sicherheitsaktualisierungen. + +***ALLE NUTZER SIND DRINGEND ZUR AKTUALISIERUNG AUFGEFORDERT*** + +### Bekannte Probleme + +#### Neue Windows-Änderungen können den Zugriff auf öffentliche Freigaben beeinträchtigen + +Aufgrund der jüngsten Sicherheitsänderungen in Windows 11 24H2 könnte der "Gast"-Zugriff auf öffentliche Unraid-Freigaben nicht funktionieren. Der einfachste Weg, dies zu umgehen, besteht darin, in Unraid einen Benutzer mit dem gleichen Namen wie das Windows-Konto zu erstellen, das Sie zur Verbindung verwenden. Wenn das Unraid-Benutzerkennwort nicht mit dem Windows-Konto-Passwort übereinstimmt, wird Windows nach Anmeldeinformationen fragen. + +Wenn Sie ein Microsoft-Konto verwenden, könnte es besser sein, einen Benutzer in Unraid mit einem einfachen Benutzernamen zu erstellen, ein Passwort festzulegen und dann in Windows zu ***Systemsteuerung → Anmeldeinformationsverwaltung → Windows-Anmeldungen → Neue Windows-Anmeldedaten hinzufügen*** zu gehen und den korrekten Unraid-Servernamen und die Anmeldedaten hinzuzufügen. + +Alternativ können Sie [Windows Gast-Fallback erneut aktivieren](https://techcommunity.microsoft.com/blog/filecab/accessing-a-third-party-nas-with-smb-in-windows-11-24h2-may-fail/4154300) +(nicht empfohlen). + +#### Probleme aufgrund von Realtek-Netzwerkkarten + +Es gab mehrere Berichte über Probleme mit dem Realtek-Treiber-Plugin nach der Aktualisierung auf die neuesten Kernel. Sie sollten es möglicherweise vorsorglich deinstallieren, bevor Sie ein Upgrade durchführen, oder es nachträglich entfernen, falls Netzwerkprobleme auftreten. + +Für weitere bekannte Probleme siehe die [6.12.12 Release Notes](6.12.12.md#known-issues). + +### Rückschritte + +Wenn Sie auf eine frühere Version als 6.12.14 zurückrollen, beachten Sie auch die [6.12.14 Versionshinweise](6.12.14.md#rolling-back). + +## Änderungen vs. [6.12.14](6.12.14.md) + +### Fehlerbehebungen und Verbesserungen + +- WebGUI: Speicherleck auf den Seiten Dashboard, VM-Manager und Docker-Manager behoben +- WebGUI: Fehlerbehebung: JavaScript-Konsolen-Protokollierungsfunktionalität wiederhergestellt +- WebGUI: Durch Klicken auf die Unraid-Versionsnummer werden Versionshinweise von der Unraid-Dokumentationen-Website geladen +- WebGUI: CA-Installations-URL auf neues Repository umgeschaltet +- Behoben: MTU der Docker Wireguard Bridge an Standard-MTU von Wireguard angepasst +- Behoben: Behandlung von leerem Trial.key bei fehlerhaftem Download korrigiert +- Behoben: Agentenbenachrichtigungen funktionieren nicht, wenn ein Problem mit der E-Mail-Benachrichtigung vorliegt +- Behoben: nfsd startet nicht richtig neu +- Behoben: Im Pool-Löschdialog wird der Poolname nicht angezeigt +- Erstellen Sie eine aussagekräftige /etc/os-release-Datei +- make\_bootable\_linux: Version 1.4 + - Überprüfen, ob mtools installiert ist + +### Linux-Kernel + +- Version 6.1.126 +- md/unraid: Behandlung von Gerätefehlern während des Wiederaufbaus/der Synchronisierung behoben + +### Grunddistro + +- git: Version 2.46.3 (CVE-2024-50349 CVE-2024-52006) +- php: Version 8.2.27 +- rsync: Version 3.4.1 (CVE-2024-12084 CVE-2024-12085 CVE-2024-12086 CVE-2024-12087 CVE-2024-12088 CVE-2024-12747) + +## Patches + +Für diese Version sind derzeit keine Patches verfügbar, aber wir empfehlen die Installation des +[Unraid-Patch-Plugins](https://forums.unraid.net/topic/185560-unraid-patch-plugin/), +um Patches zu erhalten, sobald sie verfügbar sind. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md new file mode 100644 index 0000000000..bac5cfe4c6 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md @@ -0,0 +1,68 @@ +# Version 6.12.2 2023-06-29 + +Änderungen gegenüber [6.12.1](6.12.1.md) + +## Upgrade-Hinweise + +### Bekannte Probleme + +Bitte beachten Sie die [6.12.0 Release-Hinweise](6.12.0.md#known-issues) für allgemein bekannte Probleme. + +### Rückschritte + +Wenn Sie zu einer Version vor 6.12.0 zurückrollen, beachten Sie bitte auch die [6.12.0 Release-Hinweise](6.12.0.md#rolling-back). + +## Highlights + +Dies ist hauptsächlich ein Bugfix-Release, das auch ein kleines Sicherheitsupdate enthält. Weitere Highlights: + +- Wir haben **docker** von v23.0.6, das während der Unraid OS 6.12-Entwicklung eingeführt wurde, auf v20.10.24 zurückgesetzt, das der neueste Patch-Release + von **docker** ist, der in Unraid OS 6.11 verwendet wurde. Dies, um erhöhten Speicherverbrauch und andere Probleme + mit **docker** zu adressieren. +- Eine kleine notwendige Änderung, um unser 'update\_services'-Skript aufzurufen, wann immer ein WireGuard-Tunnel startet oder stoppt + wird automatisch auf alle 'config/wireguard/\*.conf'-Dateien angewendet, wenn Sie über die OS-Aktualisierungsseite aktualisieren. Bei + manuellen Updates oder wenn Sie downgraden, ist es notwendig, eine "Dummy-Änderung" an einer Einstellung auf der Seite Einstellungen/VPN-Manager vorzunehmen + und dann auf Übernehmen zu klicken. + +## Fehlerbehebungen und Verbesserungen + +- E-Mail-Benachrichtigungen: Zeile in /etc/php.ini hinzufügen: 'mail.mixed\_lf\_and\_crlf=On', um mit der Änderung der CRLF-Verarbeitung in PHP8 umzugehen +- emhttpd: Regression behoben: Emulierte ZFS-Volumes nicht erkannt +- emhttpd: Regression behoben: Formatierung schlägt fehl, wenn diskFsType==auto und defaultFsType Verschlüsselung spezifiziert. +- emhtptd: Regression behoben: Mount schlägt fehl, wenn diskFsType==auto +- htop: Vorkonfigurierte Datei /root/.config/htop/htoprc entfernt +- Netzwerk: RC-Dienst-Update: + - NFS - Service-Neuladen behoben + - RPC - Service-Neuladen behoben + - NGINX - Entfernen Sie den HTTPS-Port in FQDN-Weiterleitungen bei Standard 443 + - Alle Dienste - Registrieren IPv4 Link lokale Zuweisung (169.254.xxx.xxx) + - Alle Dienste - Lock-Datei programmierbar machen + - WireGuard: Verzögertes Service-Update, um Rennbedingung zu vermeiden + - rc.library: Keine Duplikate in Bindungsliste erlauben +- WebGUI: Dashboard-Updates: + - Anzeige/Verbergen von Kachelinhalten wieder einführen + - Neue Icon-Funktion hinzufügen, um alle Inhalte auf einmal anzuzeigen/verbergen + - Lücke zwischen Spalten verkleinern + - Beschreibung -> Modell + - ZFS: Prozentwert auf maximal 100% festlegen + - Verwenden Sie die Prototypen-Funktion: Dies erleichtert Drittentwicklern, dynamische Inhalte automatisch zu verbergen. + - Doppelte IP-Zuweisungen behandeln und Warnungen ausgeben + - Kopfzeile MEMORY in SYSTEM ändern +- WebGUI: OS-Update: Checkbox hinzufügen, um zu bestätigen, dass die Release-Hinweise vor dem Upgrade gelesen wurden +- WebGUI: Diagnose: Liste der doppelten Zuweisungen einfügen +- WebGUI: NFS: Erhöhung der Regel-Feldlänge von 256 auf 512 Zeichen für Security/Private. + +## Linux-Kernel + +- Version 6.1.36 + +## Base-Distro + +- bind: Version -9.16.42 (CVE-2023-2911) +- docker: 20.10.24 (Zurücksetzung von v23.0.6) + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md new file mode 100644 index 0000000000..5506358ef6 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md @@ -0,0 +1,60 @@ +# Version 6.12.3 2023-07-14 + +Änderungen im Vergleich zu [6.12.2](6.12.2.md) + +## Upgrade-Hinweise + +### Bekannte Probleme + +Bitte beachten Sie die [6.12.0 Release-Hinweise](6.12.0.md#known-issues) für allgemein bekannte Probleme. + +### Rückschritte + +Wenn Sie zu einer Version vor 6.12.0 zurückrollen, beachten Sie bitte auch die [6.12.0 Release-Hinweise](6.12.0.md#rolling-back). + +## Netzwerk-Änderungen + +Dieses Update enthält Korrekturen für das Netzwerk, insbesondere im Zusammenhang mit IPv6. Ein Nebeneffekt ist, dass dadurch ein Problem behoben werden sollte, bei dem das WebGUI in bestimmten Fällen nicht geladen wird. + +Hinweis: Wenn Sie in Ihrem 'go'-Script Code haben, um IPv6 zu deaktivieren, entfernen Sie diesen und deaktivieren Sie es stattdessen über die 'Einstellungen/Netzwerkeinstellungen' +Seite. Das manuelle Deaktivieren von IPv6 führt zu Konflikten. + +## Docker + +Dieses Release behebt ein Problem, bei dem Docker nicht richtig stoppt, wenn das Array gestoppt wird, was zu einem unsauberen Herunterfahren führen kann. + +Wenn Docker-Container nach einer Weile Probleme beim Starten haben und Sie Plex ausführen, gehen Sie zu Ihren Plex Docker-Container-Einstellungen, wechseln Sie zur erweiterten Ansicht und fügen Sie dies zu den zusätzlichen Parametern hinzu: `--no-healthcheck` + +## Fehlerbehebungen und Verbesserungen + +- rc.docker: + - überarbeitet Prüfung des Docker-Daemon-Betriebs + - rc.docker: Routenmetrik der Hauptschnittstelle nach Bedarf ändern, um Konflikte mit Shim-Schnittstelle zu vermeiden +- rc.library: + - Code-Optimierung für IPv6 Max/Min + - Unterstützung von IPv4 gemappten Adressen +- rc.nginx: explizite Auswahl von IPv4/IPv6 auf der lo-Schnittstelle +- shfs: Korrekte Berechnung der Freigabegröße bei ZFS als eines der Volumen +- WebGUI: + - VM-Einstellungsseite: Tippfehler korrigiert + - Freigabe Bearbeiten Seite: Mindestfreiraumeinstellungen immer verfügbar machen + - Wireguard: Tippfehler in IPv6-Maske korrigiert + - Routingtabelle: Anzeige des Metrikwertes korrigieren, wenn null + +## Linux-Kernel + +- Version 6.1.38 +- Unterstützung zum Überwachen und auch zur Begrenzung der Leistung auf Intel Core (2. Gen+) CPU-Modellen hinzugefügt: + - CONFIG\_POWERCAP: Generischer powercap-sysfs-Treiber + - CONFIG\_INTEL\_RAPL: Intel RAPL Unterstützung über MSR-Schnittstelle + - CONFIG\_IDLE\_INJECT: Leerlaufinjektions-Framework + +## Base-Distro + +- firefox: Version 115.0.r20230710165010 (AppImage) + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md new file mode 100644 index 0000000000..a375449f34 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md @@ -0,0 +1,155 @@ +# Version 6.12.4 2023-08-31 + +## Upgrade-Hinweise + +### Bekannte Probleme + +Bitte beachten Sie die [6.12.0 Release-Hinweise](6.12.0.md#known-issues) für allgemein bekannte Probleme. + +### Rückschritte + +Bevor Sie auf eine ältere Version zurücksetzen, stellen Sie sicher, dass Bridging aktiviert ist: + +- ***Einstellungen > Netzwerkeinstellungen > eth0 > Bridging aktivieren*** = Ja + +Starten Sie dann das Array (zusammen mit den Docker- und VM-Diensten), um Ihre Docker-Container, VMs und WireGuard-Tunnel zu aktualisieren, sodass sie wieder mit den vorherigen Einstellungen arbeiten, die in älteren Versionen funktionieren sollten. + +Sobald Sie sich in der älteren Version befinden, überprüfen Sie, ob diese Einstellungen für Ihre Konfiguration korrekt sind: + +- ***Einstellungen > Docker > Hostzugriff auf benutzerdefinierte Netzwerke*** +- ***Einstellungen > Docker > Docker-Benutzerdefinierter Netztyp*** + +Wenn Sie zu einer Version vor 6.12.0 zurückrollen, beachten Sie bitte auch die [6.12.0 Release-Hinweise](6.12.0.md#rolling-back). + +## Behebung für macvlan Call Traces + +Die große Neuigkeit in dieser Version ist, dass wir Probleme im Zusammenhang mit macvlan Call Traces und Abstürzen gelöst haben! + +Das Problem liegt darin, dass macvlan, das für benutzerdefinierte Docker-Netzwerke verwendet wird, unzuverlässig ist, wenn die übergeordnete Schnittstelle eine +Bridge (wie br0) ist. Es funktioniert am besten auf einer physischen Schnittstelle (wie eth0) oder einem Bond (wie bond0). Wir glauben, dass dies ein lang anhaltendes Kernelproblem +ist, und haben einen [Bug-Report](https://bugzilla.kernel.org/show_bug.cgi?id=217777) eingereicht. + +Wenn Sie auf macvlan-bezogene Call-Traces stoßen, empfehlen wir als ersten Schritt das Navigieren zu ***Einstellungen > Docker***, +wechseln Sie zur erweiterten Ansicht und ändern Sie den "Docker-Benutzernetzwerktyp" von macvlan auf ipvlan. Dies ist die Standardkonfiguration, die Unraid seit Version 6.11.5 ausliefert und sollte für die meisten Systeme funktionieren. +Wenn Sie mit dieser Einstellung zufrieden sind, sind Sie fertig! Sie werden keine Call-Traces im Zusammenhang mit macvlan mehr haben +und können zum [nächsten Abschnitt](#system-drivers-page) übergehen. + +Einige Benutzer meldeten jedoch Probleme mit der Portweiterleitung von bestimmten Routern (Fritzbox) und verminderter Funktionalität bei fortschrittlichen Netzwerkmanagement-Tools (Ubiquiti) im ipvlan-Modus. + +Für diese Benutzer haben wir eine neue Methode, die das Networking überarbeitet, um Probleme mit macvlan zu vermeiden. Passen Sie ein paar Einstellungen an, und Ihre +Docker-Container, VMs und WireGuard-Tunnel sollten sich automatisch anpassen: + +- ***Einstellungen > Netzwerkeinstellungen > eth0 > Bonding aktivieren*** = Ja oder Nein, beide Lösungen funktionieren +- ***Einstellungen > Netzwerkeinstellungen > eth0 > Bridging aktivieren*** = Nein (dies ermöglicht automatisch macvlan) +- ***Einstellungen > Docker > Hostzugriff auf benutzerdefinierte Netzwerke*** = Aktiviert + +Hinweis: Wenn Sie zuvor die [2-nic Docker-Segmentierungsmethode](https://forums.unraid.net/topic/137048-guide-how-to-solve-macvlan-and-ipvlan-issues-with-containers-on-a-custom-network/) verwendet haben, möchten Sie dies möglicherweise zurücksetzen: + +- ***Einstellungen > Docker > benutzerdefinierte Netzwerkschnittstelle eth0 oder bond0*** (d.h. stellen Sie sicher, dass eth0/bond0 für das benutzerdefinierte Netzwerk konfiguriert ist, nicht eth1/bond1) + +Wenn Sie das Array starten, können der Host, die VMs und die Docker-Container alle kommunizieren, und es sollten keine Call Traces mehr auftreten! + +### Fehlerbehebung + +- Wenn Ihre Docker-Container mit benutzerdefinierten IPs nicht starten, bearbeiten Sie diese und ändern Sie den "Netzwerktyp" zu "Custom: eth0" oder "Custom: bond0". Wir haben versucht, dies automatisch zu tun, aber je nachdem, wie Dinge angepasst wurden, müssen Sie es möglicherweise manuell tun. +- Wenn Ihre VMs Netzwerkprobleme haben, bearbeiten Sie diese und setzen Sie die Netzwerkquelle auf "vhost0". Stellen Sie auch sicher, dass eine MAC-Adresse zugewiesen ist. +- Wenn Ihre WireGuard-Tunnel nicht starten, führen Sie für jeden Tunnel eine Dummy-Änderung durch und speichern Sie diese. +- Wenn Sie Probleme beim Port-Forwarding zu Docker-Controllern haben (insbesondere mit einem FritzBox-Router), löschen und erstellen Sie das Port-Forwarding in Ihrem Router neu. + +### Um etwas technischer zu werden... + +Nach dem Upgrade auf diese Version, wenn das Bridging auf eth0 aktiviert bleibt, funktioniert alles wie bisher. Sie können versuchen, die Call-Traces zu umgehen, indem Sie das benutzerdefinierte Docker-Netzwerk deaktivieren oder ipvlan anstelle von macvlan verwenden oder die 2-Nic-Docker-Segmentierungsmethode mit Containern auf eth1 verwenden. + +Mit dieser Version erstellen wir ein neues macvtap-Netzwerk für Docker-Container und VMs, wenn Sie das Bridging auf eth0 deaktivieren. Es hat eth0 als übergeordnete Schnittstelle anstelle von br0, wodurch wir die Call-Traces vermeiden. + +Ein Nebeneffekt ist, dass macvtap-Netzwerke als schneller als Bridge-Netzwerke berichtet werden, sodass Sie möglicherweise Geschwindigkeitsverbesserungen beim Kommunikationsvorgang mit Docker-Containern und VMs bemerken. + +FYI: Mit deaktiviertem Bridging für die Hauptschnittstelle (eth0) wird der Docker-Benutzernetzwerktyp auf macvlan eingestellt und ausgeblendet, +es sei denn, es gibt andere Schnittstellen auf Ihrem System mit aktiviertem Bridging, in diesem Fall ist die legacy ipvlan-Option verfügbar. +Um die hier besprochene neue Lösung zu verwenden, sollten Sie dies auf macvlan belassen. + +## Systemtreiber-Seite + +Navigieren Sie zu ***Werkzeuge > Systemtreiber***, um Einsicht in die auf Ihrem System verfügbaren/benutzten Treiber zu erhalten. Von Plugins installierte 3rd-Party-Treiber (wie NVIDIA und Realtek) haben ein Symbol, das auf die Support-Seite für diesen Treiber verlinkt. Sie können jetzt auch die modprobe.d-Konfigurationsdatei für jeden Treiber hinzufügen/modifizieren/löschen, ohne diese Datei auf Ihrem Flash-Laufwerk finden zu müssen. + +## Weitere Fehlerkorrekturen und Verbesserungen + +- Diese Veröffentlichung behebt Randfälle in Netzwerken, Libvirt, Docker, WireGuard, NTP, NGINX, NFS und RPC. Sie enthält eine Verbesserung des VM-Managers, sodass das VNC-Passwort während eines Updates beibehalten wird. + +- Der Herunterfahrprozess wurde so geändert, dass das NUT-Plugin das System ordnungsgemäß herunterfahren kann. + +- Die Anzeigedauer von Benachrichtigungen vor dem automatischen Schließen ist jetzt konfigurierbar (siehe ***Einstellungen > Benachrichtigungseinstellungen***). + +- Eine kleine Änderung besteht darin, dass Pakete in /boot/extra jetzt mehr wie von Plugins installierte Pakete behandelt werden, und die Installation wird in syslog anstelle der Konsole protokolliert. + +- Der Update-OS-Prozess aktualisiert bei Bedarf automatisch das Plugin-Update-Helfer-Skript. + +## Änderungen gegenüber [6.12.3](6.12.3.md) + +### Grunddistro + +- create\_network\_ini: + - dhcp-Hook behoben + - verbesserte IP-Adressen-Erfassung +- Diagnose: + - Vorherige Unraid-Version zur Diagnosedatei hinzufügen. + - ntp.conf, sshd.config und servers.conf (mit anonymisierten URLs) hinzufügen + - IP-Adressen anonymisieren +- Docker: + - Routing hinzufügen, wenn shim- oder macvtap-Netzwerk verwendet wird + - Routing beheben, wenn "Hostzugriff" aktiviert ist + - IPv6 von Shim/Vhost-Schnittstelle entfernen (einige Router sind inkompatibel) +- Libvirt, Nginx, NFS, RPC: laufende Prozessdetektion geändert +- NFS-Client: Verhandlung mit v4 starten, Änderung der Zugriffzeiten deaktivieren +- rc.6: /usr und /lib während des Herunterfahrens weiterhin eingehängt lassen +- rc.docker: + - gleiches IPv6-Netzwerk für Container und Services erstellen + - mehr Protokollierung beim Stoppen von dockerd hinzufügen +- rc.inet1: + - Promiscuous-Modus für Bridging nicht verwenden + - Persistente Option zu dhcpcd hinzufügen +- rc.library: Schnittstellen immer in derselben Reihenfolge auflisten, IPv6-Anzeige beheben +- rc.libvirt: 'itco'-Watchdog aus XML entfernen, falls vorhanden +- rc.local: Auto-generierte Datei /etc/modprobe.d/zfs.conf kommentieren +- rc.services: + - Logging hinzufügen + - WireGuard "VPN-Tunnelzugriff für Docker"-Tunnel von Services ausschließen + - WireGuard-Tunnel für NTP ausschließen (Code-Optimierung) + +#### Paketaktualisierungen + +- btrfs-progs: 6.3.3 +- curl: Version 8.2.0 (CVE-2023-32001) +- Firefox: Version 117.0.r20230824132758 (AppImage) +- kernel-firmware: version 20230724\_59fbffa +- krb5: Version 1.19.2 (CVE-2023-36054) +- openssh: Version 9.3p2 (CVE-2023-38408) +- openssl: Version 1.1.1v (CVE-2023-3817 CVE-2023-3446) +- samba: Version 4.17.10 (CVE-2023-3496 CVE-2022-2127 CVE-2023-34968 CVE-2023-3496 CVE-2023-3347) + +### Linux-Kernel + +- Version 6.1.49 (CVE-2023-20593) +- CONFIG\_SCSI\_MPI3MR: Broadcom MPI3 Storage Controller Device Driver + +### WebGUI + +- Dashboard: ZFS-Leiste ausblenden, wenn kein ZFS verwendet wird +- Docker-Einstellungen: Subnetzgrößen beheben +- Rückmeldung: Rückmeldungsskript umstrukturieren +- Netzwerkeinstellungen: DNS-Einstellungen korrigieren, die manchmal verschwinden +- Benachrichtigungen: Neue Benachrichtigungsoption: automatisierte Schließzeit, Standard sind 5 Sekunden +- Pools: Mindestfreier Speicherplatz: nur aktiv, wenn das Array gestoppt ist +- Freigaben und Pools: Zeige "Mindestfreier Speicherplatz" als absolute Zahl anstelle eines Prozentsatzes +- Systemtreiber: neue Seite +- Übersetzungen: Schlüssel und Wert in Sprachdateien trimmen +- VM-Manager: VNC-Passwort während des Updates beibehalten. +- VM-Manager: Heruntergeladene '.vv'-Dateien entfernen. +- CSS: overflow-x auf 'auto' setzen +- update monitor\_nchan + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md new file mode 100644 index 0000000000..0fbfa06e62 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md @@ -0,0 +1,63 @@ +# Version 6.12.5 2023-11-27 + +## Upgrade-Hinweise + +Diese Veröffentlichung enthält Fehlerbehebungen und Sicherheitsupdates. Allen Benutzern wird empfohlen, auf die neueste Version zu aktualisieren. + +### Bekannte Probleme + +Es gibt eine Lösung für ein [ZFS-Datenkorruptionsproblem](https://github.com/openzfs/zfs/issues/15526). Dies wird erreicht, indem diese Option in der Standardeinstellung `/etc/modprobe.d/zfs.conf` Datei aufgenommen wird: + +`zfs_dmu_offset_next_sync=0` + +Bitte beachten Sie die [6.12.0 Release-Hinweise](6.12.0.md#known-issues) für allgemein bekannte Probleme. + +### Rückschritte + +Wenn Sie eine frühere Version als 6.12.4 zurücksetzen, sehen Sie sich auch die [6.12.4 Versionshinweise](6.12.4.md#rolling-back) an. + +## Änderungen gegenüber [6.12.4](6.12.4.md) + +### Fehlerbehebungen und Verbesserungen + +- Sehr altes 'MemTest86+' ersetzen durch Memtest86+ Version: 6.20 + - Es sind auch [Startoptionen](https://github.com/memtest86plus/memtest86plus#boot-options) verfügbar. +- Wenn 'Spiegelung Syslog auf Flash' aktiviert ist, sehen Sie syslog-previous unter Werkzeuge -> Syslog und in Diagnosen +- Docker: + - Docker-Container wurden nicht immer gestoppt, was verhinderte, dass Docker unmountete + - Docker-Container, die IPv6 in benutzerdefinierten Netzwerken verwenden, konnten nicht gestartet werden +- emhttpd: Wenn Benutzerfreigaben nicht aktiviert sind, wurde update\_cron nicht während der Startsequenz des Arrays aufgerufen +- rc.nginx stop - nginx zum Stoppen zwingen +- shfs: Das Zuweisungsverfahren funktionierte nicht korrekt, wenn 6 oder mehr Festplatten in der 'Inklusive' Maske angegeben waren +- webgui: + - Downgrade.php wurde für 6.12 nicht aktualisiert + - ipvlan / macvlan Einstellung immer anzeigen +- ZFS: Verwenden Sie 'zfs import -f', um sicherzustellen, dass Pools von anderen Systemen importiert werden +- Automatisches Herunterfahren von nicht formatierten Geräten verhindern + +### Paketaktualisierungen + +- curl: Version 8.4.0 (CVE-2023-38546 CVE-2023-38545 CVE-2023-38039) +- firefox: Version 119.0.r20231106151204 (AppImage) +- intel-microcode: Version 20231114 +- kernel-firmware: 20231024\_4ee0175 +- qemu: Version 7.2.0 +- samba: Version 4.17.12 (CVE-2023-3961 CVE-2023-4091 CVE-2023-4154 CVE-2023-42669 CVE-2023-42670) +- smartmontools: Version 7.4 +- zfs: Version 2.1.13 + +### Linux-Kernel + +- Version 6.1.63 +- CONFIG\_USB\_NET\_CDC\_NCM: Unterstützung für CDC NCM +- CONFIG\_NFS\_V4\_1: NFS-Client-Unterstützung für NFSv4.1 +- CONFIG\_NFS\_V4\_1\_MIGRATION: NFSv4.1-Client-Unterstützung für Migration +- CONFIG\_NFS\_V4\_2: NFS-Client-Unterstützung für NFSv4.2 +- CONFIG\_NFS\_V4\_2\_READ\_PLUS: NFS: Unterstützung für den NFSv4.2 READ\_PLUS-Befehl aktivieren +- CONFIG\_NFSD\_V4\_2\_INTER\_SSC: NFSv4.2 Inter-Server zu Server COPY + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md new file mode 100644 index 0000000000..dbab366ac9 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md @@ -0,0 +1,64 @@ +# Version 6.12.6 2023-12-01 + +## Upgrade-Hinweise + +Diese Veröffentlichung beinhaltet Fehlerbehebungen und einen wichtigen Patch-Release von OpenZFS. Allen Nutzern wird empfohlen, ein Upgrade durchzuführen. + +### Bekannte Probleme + +#### Veraltete Plugins + +Veraltete Plugins können Probleme verursachen. Wir empfehlen, sie aktuell zu halten. + +#### Call Traces und Abstürze im Zusammenhang mit macvlan + +Wenn Sie Call-Traces im Zusammenhang mit Macvlan (oder wirklich unerklärliche Abstürze) erhalten, empfehlen wir als ersten Schritt, zu ***Einstellungen > Docker*** zu gehen, zur **erweiterten** Ansicht umzuschalten und den **benutzerdefinierten Docker-Netzwerktyp** von **Macvlan** zu **Ipvlan** zu ändern. Dies ist die Standardkonfiguration, die seit Version 6.11.5 mit Unraid ausgeliefert wird und sollte für die meisten Systeme funktionieren. + +Beachten Sie, dass einige Benutzer über Probleme mit dem Port-Weiterleiten von bestimmten Routern (Fritzbox) und eingeschränkter Funktionalität bei erweiterten Netzwerkverwaltungstools (Ubiquity) im IPvlan-Modus berichtet haben. Wenn dies Sie betrifft, sehen Sie sich die alternative Lösung an, die seit Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces) verfügbar ist. + +#### Netzwerkprobleme aufgrund von Jumbo-Frames + +Wenn Sie Netzwerkprobleme jeglicher Art haben, überprüfen Sie, dass Sie keine Jumbo-Frames aktiviert haben. Gehen Sie zu ***Einstellungen > Netzwerkeinstellungen > eth0*** und bestätigen Sie, dass die **erwünschte MTU** 1500 ist. Weitere Informationen finden Sie in der [Fix Common Problems-Warnung für Jumbo-Frames](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Probleme aufgrund von Realtek-Netzwerkkarten + +Die Standard-Realtek-Treiber in den neuesten Linux-Kernen verursachen Netzwerk- und Stabilitätsprobleme. Wenn Sie Probleme haben und ***Werkzeuge > Systemgeräte*** anzeigt, dass Sie einen Realtek-Ethernet-Controller haben, notieren Sie sich die angezeigte Teilenummer und suchen Sie in den Community-Apps, ob es ein Realtek-Treiber-Plugin für das Gerät gibt. Weitere Informationen finden Sie auf der [Unterstützungsseite für Realtek-Treiber-Plugins](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-und-r81526-treiber/). + +#### Adaptec 7 Serie HBA nicht kompatibel + +Wenn Sie einen Adaptec 7 Series HBA haben, der den aacraid-Treiber verwendet, empfehlen wir, vorerst bei Version 6.12.4 zu bleiben, da es in den neuesten Kerneln eine Regression im Treiber gibt. Weitere Informationen finden Sie in diesem [Bugreport im Linux-Kernel](https://bugzilla.kernel.org/show_bug.cgi?id=217599). + +#### Weitere Probleme? + +Wir empfehlen dringend, das **Fix Common Problems** Plugin zu installieren, da es Sie über gängige Konfigurationsprobleme informiert. + +Haben Sie andere Abstürze oder Stabilitätsprobleme? Gehen Sie zu ***Einstellungen > Syslog-Server*** und aktivieren Sie **Syslog auf Flash spiegeln**. Dies führt zu zusätzlichem Verschleiß am Flash-Laufwerk, ist jedoch kurzfristig nützlich, um nach einem Absturz Protokolle zu sammeln. Nach dem nächsten Neustart gehen Sie zu ***Werkzeuge > Diagnosen*** und laden Ihre anonymisierten Diagnosen herunter (ab Version 6.12.5 beinhalten Diagnosen automatisch Protokolle, die auf das Flash-Laufwerk gespiegelt wurden). Erstellen Sie dann ein neues Thema unter [Allgemeine Unterstützung](https://forums.unraid.net/forum/55-general-support/) und geben Sie alle Details zum Problem an. Sobald das Problem behoben ist, deaktivieren Sie **Syslog auf Flash spiegeln**. + +### Rückschritte + +Wenn Sie eine frühere Version als 6.12.4 zurücksetzen, sehen Sie sich auch die [6.12.4 Versionshinweise](6.12.4.md#rolling-back) an. + +## Änderungen gegenüber [6.12.5](6.12.5.md) + +### Fehlerbehebungen und Verbesserungen + +- modprobe.d/zfs.conf: Entfernen der `zfs_dmu_offset_next_sync=0`-Abschwächung – wird nicht mehr benötigt +- Netzwerk: Behebung der IPv6-zuweisung für statische Adressen +- Die Umgehungslösung für [Abstürze im Zusammenhang mit dem i915-Treiber auf Rocket Lake-Systemen](6.12.0.md#crashes-related-to-i915-driver) ist nicht mehr erforderlich. Nach dem Upgrade können Sie ein Webterminal öffnen und dies eingeben, dann neu starten: + + `rm /boot/config/modprobe.d/i915.conf` + +### Paketaktualisierungen + +- nvme-cli: Version 2.6 +- zfs: Version 2.1.14 + +### Linux-Kernel + +- Version 6.1.64 + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md new file mode 100644 index 0000000000..1eb87c3c05 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md @@ -0,0 +1,105 @@ +# Version 6.12.8 2024-02-15 + +## Upgrade-Hinweise + +Diese Version enthält zwei sehr wichtige Korrekturen. Zunächst haben wir Docker aktualisiert, um die Fixes für ihre +[jüngste Sicherheitsmeldung](https://www.docker.com/blog/docker-security-advisory-multiple-vulnerabilities-in-runc-buildkit-and-moby/) zu integrieren. + +Zweitens haben wir einen Randfall-Bug behoben, der zu Datenverlust führen kann, wenn ein neu hinzugefügtes Array-Laufwerk ein nicht standardmäßiges Partitionslayout aufweist. Wenn Sie eines dieser Laufwerke hinzufügen, wird beim zweiten Start des Arrays das Laufwerk als unformatiert angezeigt. Wenn dies passiert, wenden Sie sich bitte an den Support, und wir können Ihnen bei der Datenwiederherstellung helfen. Selbst wenn Sie dieses Problem noch nicht erlebt haben, empfehlen wir ein Upgrade, um in Zukunft beim Hinzufügen von Laufwerken nicht betroffen zu sein. + +Diese Version enthält auch einige nette Korrekturen im Bereich der Netzwerke, Docker-Container, Time Machine-Unterstützung und VMs sowie eine Behebung für eine Verlangsamung, die einige Systeme auf dem Dashboard erlebt haben. Wir haben auch die SMART-Attributverarbeitung für NVME- und SSD-Laufwerke verbessert. Details unten. + +### Bekannte Probleme + +#### Veraltete Plugins + +Veraltete Plugins können Probleme verursachen. Wir empfehlen, sie aktuell zu halten. + +#### Call Traces und Abstürze im Zusammenhang mit macvlan + +Wenn Sie Anruftraces im Zusammenhang mit macvlan (oder unerklärliche Abstürze generell) erhalten, empfehlen wir als ersten Schritt, zu ***Einstellungen > Docker*** zu navigieren, in die **Erweiterte** Ansicht zu wechseln und **Docker-Benutzerdefinierter Netzwerktype** von **macvlan** auf **ipvlan** zu ändern. Dies ist die Standardkonfiguration, mit der Unraid seit der Version 6.11.5 ausgeliefert wurde und sollte für die meisten Systeme funktionieren. + +Bitte beachten Sie, dass einige Benutzer Probleme mit der Portweiterleitung von bestimmten Routern (Fritzbox) und eingeschränkter Funktionalität mit erweiterten Netzwerkverwaltungstools (Ubiquity) im IPvlan-Modus gemeldet haben. Wenn Sie betroffen sind, sehen Sie sich die alternative Lösung an, die seit Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces) verfügbar ist. + +#### Netzwerkprobleme aufgrund von Jumbo-Frames + +Wenn Sie irgendwelche Netzwerkprobleme haben, überprüfen Sie, dass Sie keine Jumbo Frames aktiviert haben. Navigieren Sie zu ***Einstellungen > Netzwerkeinstellungen > eth0*** und bestätigen Sie, dass die **Gewünschte MTU** 1500 ist. Weitere Informationen finden Sie in der [Fehlerbehebungswarnung für Jumbo Frames](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Probleme aufgrund von Realtek-Netzwerkkarten + +Der aktualisierte Kernel behebt das Deadlock-Problem mit Jumbo Frames und dem In-Tree Realtek 8125 Treiber. Wir empfehlen jedoch weiterhin, den oben genannten Ratschlägen bezüglich Jumbo Frames zu folgen. + +Sollten weiterhin Probleme mit der Netzwerkstabilität auftreten und ***Werkzeuge > Systemgeräte*** anzeigt, dass Sie einen Realtek Ethernet-Controller haben, notieren Sie sich die angezeigte Teilenummer und suchen Sie in den Community-Apps nach einem Realtek-Treibersystem-Plugin für dieses Gerät. Weitere Informationen finden Sie auf der [Support-Seite für Realtek-Treiber-Plugins](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### Weitere Probleme? + +Wir empfehlen dringend, das **Fix Common Problems** Plugin zu installieren, da es Sie über gängige Konfigurationsprobleme informiert. + +Wenn Sie andere Abstürze oder Stabilitätsprobleme haben, navigieren Sie zu ***Einstellungen > Syslog-Server*** und aktivieren Sie **Syslog auf Flash spiegeln**. Dies wird zu zusätzlichem Verschleiß Ihres USB-Flash-Startgeräts führen, ist jedoch kurzfristig nützlich, um Protokolle nach einem Absturz zu sammeln. + +Nach dem nächsten Neustart gehen Sie zu ***Werkzeuge > Diagnose*** und laden Sie Ihre anonymisierten Diagnosen herunter (ab 6.12.5, +Diagnosen beinhalten automatisch Protokolle, die auf dem Flash-Laufwerk gespiegelt wurden). + +Erstellen Sie schließlich ein neues Thema unter [Allgemeine Unterstützung](https://forums.unraid.net/forum/55-general-support/) und geben Sie alle Details des Problems an. Sobald das Problem gelöst ist, deaktivieren Sie unbedingt **Syslog auf Flash spiegeln**. + +### Rückschritte + +Beachten Sie, dass das Zurücksetzen auf eine frühere Version Ihr System anfällig für die Docker-Sicherheitsprobleme und das potenzielle Datenverlustszenario macht, das in den [Upgrade-Hinweise](#upgrade-notes) erwähnt wird. + +Wenn Sie auf eine Version früher als 6.12.6 zurückgehen, lesen Sie auch die [6.12.6 Release Notes](6.12.6.md#rolling-back). + +## Änderungen gegenüber 6.12.7 + +Ein Problem im Zusammenhang mit dem Upgrade von rc-Veröffentlichungen behoben. + +## Änderungen gegenüber [6.12.6](6.12.6.md) + +### Fehlerbehebungen und Verbesserungen + +- Docker: + - Korrigieren Sie, dass WG-Routen zu der korrekten Schnittstelle (br0 oder eth0 oder bond0) hinzugefügt werden. + - Verwenden Sie "Lazy Unmount", um ein Blockieren des Array-Stopps zu verhindern + - Aktualisiert, um mehrere Sicherheitsprobleme (CVE-2024-21626, CVE-2024-24557) zu beheben +- Netzwerkverbesserungen: + - Schnellerer Boot-Vorgang durch Überprüfung, ob ein Träger vorhanden ist, bevor DHCP-Adressen zugewiesen werden + - Führen Sie führende Nullen aus IPv4- und IPv6-Adressen aus + - Neue Befehle '/etc/rc.d/rc.inet1 status' und '/etc/rc.d/rc.inet1 status ip', um Netzwerkprobleme von der Befehlszeile aus zu beheben +- Benachrichtigungen: fügen Sie ntfy.sh zu den Benachrichtigungsagenten hinzu +- SMART-Verbesserungen: + - NVME-Selbsttest beheben + - Anzeige des 'Akkumulierte Einschaltzeit, Stunden: Minuten xxxxx:yy' SMART-Attributs beheben + - Angezeigte KB/MB/GB/TB in SMART-Attributen für SSDs hinzufügen + - 'SSD-Endurance verbleibend' SMART-Attribut hinzufügen +- Systemprotokollierung: + - Standardmäßig wird das Syslog beim Herunterfahren auf den USB-Boot-Flash kopiert, siehe ***Einstellungen > Syslog-Server***, um dies zu deaktivieren + - Protokolle aus dem Obigen und **Systemprotokoll auf USB-Flash spiegeln** sind beim nächsten Booten auf ***Werkzeuge > Syslog*** und in Diagnosen verfügbar +- VM-Manager: Fix für Downgrade: Wenn die VM-Vorlage auf den neuesten QEMU-Maschinentyps aktualisiert wurde, wird sie beim Downgrade nicht gefunden. Diese Änderung findet die aktuellste Version eines gegebenen Maschinentyps. +- ZFS: Verwenden Sie das Zpool-Import-Flag "-f", um den Import fremder Pools zu erlauben +- Sonstige: + - Standardmäßiges Aktivieren des EFI-Boots für Neuinstallationen + - Behebung der Verlangsamung auf den Dashboard- und Docker-Seiten (und reduziert Flash-Geräteschreibvorgänge) + - Formatierung: Initialisieren des Gerätepartition-Layouts nicht, wenn bereits gültig. + - OS-Update: Betriebssystem-Update und Downgrade-Seiten neu gestalten, siehe [Blogpost](https://unraid.net/blog/new-update-os-tool) + - Fix: MacOS kann nicht auf den 'Flash'-Share schreiben und die Time Machine-Kompatibilität wiederherstellen (Änderungen an der Frucht) + - Ermöglichen es den Community-Apps (falls installiert), Container beim Multi-Install automatisch zu starten + - Feedbackformular: Taste "DONE" in "CANCEL" ändern + +### Paketaktualisierungen + +- docker: Version 24.0.9 +- kernel-firmware: Version 20231226\_abfcad8 + +### Linux-Kernel + +- Version 6.1.74 + - CONFIG\_USB\_SERIAL\_XR: USB MaxLinear/Exar USB zu Seriell Treiber + - CONFIG\_CAN: CAN-Bus-Subsystem-Unterstützung + - CONFIG\_CAN\_NETLINK: CAN-Gerätetreiber mit Netlink-Unterstützung + - CONFIG\_CAN\_GS\_USB: Geschwister Schneider UG und candleLight-kompatible Schnittstellen + - CONFIG\_SCSI\_LPFC: Emulex LightPulse Fibre Channel-Unterstützung + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md new file mode 100644 index 0000000000..7d95912289 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md @@ -0,0 +1,81 @@ +# Version 6.12.9 2024-03-26 + +## Upgrade-Hinweise + +Dies ist eine Fehlerbehebungsveröffentlichung, die eine nette Sammlung von Problemen löst, die von der Community gemeldet wurden, Details unten. +Wir empfehlen dringend, dass alle Benutzer auf diese Version aktualisieren. + +### Bekannte Probleme + +#### Veraltete Plugins + +Veraltete Plugins können Probleme verursachen. Wir empfehlen, sie aktuell zu halten. + +#### Call Traces und Abstürze im Zusammenhang mit macvlan + +Wenn Sie Anruftraces im Zusammenhang mit macvlan (oder unerklärliche Abstürze generell) erhalten, empfehlen wir als ersten Schritt, zu ***Einstellungen > Docker*** zu navigieren, in die **Erweiterte** Ansicht zu wechseln und **Docker-Benutzerdefinierter Netzwerktype** von **macvlan** auf **ipvlan** zu ändern. Dies ist die Standardkonfiguration, mit der Unraid seit der Version 6.11.5 ausgeliefert wurde und sollte für die meisten Systeme funktionieren. + +Bitte beachten Sie, dass einige Benutzer Probleme mit der Portweiterleitung von bestimmten Routern (Fritzbox) und eingeschränkter Funktionalität mit erweiterten Netzwerkverwaltungstools (Ubiquity) im IPvlan-Modus gemeldet haben. Wenn Sie betroffen sind, sehen Sie sich die alternative Lösung an, die seit Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces) verfügbar ist. + +#### Netzwerkprobleme aufgrund von Jumbo-Frames + +Wenn Sie irgendwelche Netzwerkprobleme haben, überprüfen Sie, dass Sie keine Jumbo Frames aktiviert haben. Navigieren Sie zu ***Einstellungen > Netzwerkeinstellungen > eth0*** und bestätigen Sie, dass die **Gewünschte MTU** 1500 ist. Weitere Informationen finden Sie in der [Fehlerbehebungswarnung für Jumbo Frames](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Probleme aufgrund von Realtek-Netzwerkkarten + +Der aktualisierte Kernel behebt das Deadlock-Problem mit Jumbo Frames und dem In-Tree Realtek 8125 Treiber. Wir empfehlen jedoch weiterhin, den oben genannten Ratschlägen bezüglich Jumbo Frames zu folgen. + +Sollten weiterhin Probleme mit der Netzwerkstabilität auftreten und ***Werkzeuge > Systemgeräte*** anzeigt, dass Sie einen Realtek Ethernet-Controller haben, notieren Sie sich die angezeigte Teilenummer und suchen Sie in den Community-Apps nach einem Realtek-Treibersystem-Plugin für dieses Gerät. Weitere Informationen finden Sie auf der [Support-Seite für Realtek-Treiber-Plugins](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### Weitere Probleme? + +Wir empfehlen dringend, das **Fix Common Problems** Plugin zu installieren, da es Sie über gängige Konfigurationsprobleme informiert. + +Wenn Sie andere Abstürze oder Stabilitätsprobleme haben, navigieren Sie zu ***Einstellungen > Syslog-Server*** und aktivieren Sie **Syslog auf Flash spiegeln**. Dies wird zu zusätzlichem Verschleiß Ihres USB-Flash-Startgeräts führen, ist jedoch kurzfristig nützlich, um Protokolle nach einem Absturz zu sammeln. + +Nach dem nächsten Neustart gehen Sie zu ***Werkzeuge > Diagnose*** und laden Sie Ihre anonymisierten Diagnosen herunter (ab 6.12.5, +Diagnosen beinhalten automatisch Protokolle, die auf dem Flash-Laufwerk gespiegelt wurden). + +Erstellen Sie schließlich ein neues Thema unter [Allgemeine Unterstützung](https://forums.unraid.net/forum/55-general-support/) und geben Sie alle Details des Problems an. Sobald das Problem gelöst ist, deaktivieren Sie unbedingt **Syslog auf Flash spiegeln**. + +### Rückschritte + +Die Funktionalität von "Docker Patch 6.12.8" ist nun in Unraid integriert. Wenn Sie auf 6.12.8 zurücksetzen, möchten Sie möglicherweise dieses Plugin neu installieren. + +Wenn Sie auf eine Version vor 6.12.8 zurückgehen, beachten Sie auch die [6.12.8 Versionshinweise](6.12.8.md#rolling-back). + +## Änderungen gegenüber [6.12.8](6.12.8.md) + +### Fehlerbehebungen und Verbesserungen + +- Docker + - Leere Pfade in der Konfigurationsdatei ignorieren, wenn Container hinzugefügt oder aktualisiert werden + - Bestimmte Probleme beim Aktualisieren von Containern beheben + - Benachrichtigungen beheben, wenn Container-Updates verfügbar sind +- Seite „Zugriffsverwaltung“ + - Problem bei der Anzeige von IPv6-URLs beheben + - Unterstützung für veraltete 'unraid.net'-SSL-Zertifikate entfernen und "UpdateDNS" entfernen +- Diagnostik: PHP-Fehlerprotokoll zur Unterstützung der Fehlersuche einbeziehen +- Systemtreiber: Problem mit Übersetzungen beheben, das die Anzeige der Seite verhinderte +- UPC: + - Probleme mit einfachen oder doppelten Anführungszeichen in der Serverbeschreibung beheben + - Unraid-API nicht starten, wenn es nicht installiert ist +- Umleitungsfehler beheben, wenn die Serverbeschreibung oder das Modell im Nur-HTTP-Modus geändert wird, oder + wenn der Servername im HTTP- oder HTTPS-Modus geändert wird +- Erhöhte /run tmpfs Größenbeschränkung von 32M auf 128M. +- Verzögerung zwischen Erstellung der GPT-Partitionstabelle und Befehl an Kernel zum erneuten Lesen einführen, + um "Gerät oder Ressource bereit"-Fehler zu vermeiden +- shfs: Korrektur der HighWater-Zuweisungsmethode in Verbindung mit ZFS-Volumen +- nfs: Sicherstellen, dass NFSv4-Mounts standardmäßig aktiviert sind +- Verschiedene PHP-Warnungen beheben +- Standard-Zeitserver für neue Installationen auf "time.google.com" ändern + +### Linux-Kernel + +- Version 6.1.82 + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Ein Teil der Sicherheitsaktualisierungen, siehe [diesen Blogbeitrag](https://unraid.net/blog/cvd) für Details. Wir empfehlen, auf die neueste stabile Version zu aktualisieren, um zusätzliche Sicherheitsaktualisierungen zu erhalten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md new file mode 100644 index 0000000000..42f91df127 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md @@ -0,0 +1,710 @@ +## Version 6.9.0 2021-02-27 + +Zusammenfassung der Änderungen und neuen Funktionen + +## Mehrere Pools + +Diese Funktion ermöglicht es Ihnen, bis zu 35 benannte Pools mit jeweils bis zu 30 Speichervolumes zu definieren. Pools werden über die Hauptseite erstellt und verwaltet. + +- Hinweis: Eine Cache-Disk/Pool von vor Version 6.9.0 ist nun einfach ein Pool namens "cache". Wenn Sie einen Server aktualisieren, der eine Cache-Disk/Pool definiert hat, wird eine Sicherung von `config/disk.cfg` in `config/disk.cfg.bak` gespeichert, und anschließend werden die Cache-Gerätezuweisungseinstellungen aus `config/disk.cfg` in eine neue Datei, `config/pools/cache.cfg`, übertragen. Sollten Sie später zu einer Unraid OS Version vor 6.9.0 zurückkehren, verlieren Sie Ihre Cache-Gerätezuteilungen und müssen die Geräte manuell dem Cache erneut zuweisen. Solange Sie die richtigen Geräte erneut zuweisen, sollten die Daten intakt bleiben. + +Wenn Sie einen Benutzer-Share erstellen oder einen bestehenden bearbeiten, können Sie festlegen, welcher Pool mit diesem Share verbunden werden soll. Der zugewiesene Pool funktioniert identisch zur aktuellen Cache-Pool-Funktion. + +Etwas zu beachten: Wenn ein Verzeichnislisting für eine Freigabe abgerufen wird, werden die Unraid-Array-Diskvolumes und alle Pools, die diese Freigabe enthalten, in dieser Reihenfolge zusammengeführt: + +> zugeordneter Pool zur Freigabe +> +> disk1 +> +> `:` +> +> disk28 +> +> alle anderen Pools in +> [strverscmp()](https://man7.org/linux/man-pages/man3/strverscmp.3.html) +> -Reihenfolge. + +Ein Ein-Gerät-Pool kann entweder mit xfs, btrfs oder (veraltet) reiserfs formatiert werden. Ein Mehr-Geräte-Pool kann nur mit btrfs formatiert werden. Eine zukünftige Version wird die Unterstützung für mehrere "Unraid-Array" Pools sowie eine Anzahl anderer Pool-Typen umfassen. + +- Hinweis: Etwas weiter zu beachten: Angenommen, Sie haben einen 2-Geräte Btrfs-Pool. Dies würde dem entsprechen, was Btrfs als "raid1" bezeichnet und was die meisten als "gespiegelte Festplatten" verstehen würden. Das ist größtenteils korrekt, im Sinne, dass die gleichen Daten auf beiden Festplatten vorhanden sind, aber nicht notwendigerweise auf Blockebene. Angenommen, Sie erstellen einen weiteren Pool und ordnen ein Gerät von dem bestehenden 2-Geräte Btrfs-Pool um, sodass Sie zwei Ein-Gerät-Btrfs-Pools haben. Während des Array-Starts könnte man annehmen, es gibt jetzt zwei Pools mit genau den gleichen Daten, was jedoch nicht der Fall ist. Stattdessen wird, wenn das Unraid OS erkennt, dass ein Btrfs-Gerät aus einem bestehenden Mehr-Geräte-Pool entfernt wurde, ein `wipefs` auf diesem Gerät ausgeführt, sodass es beim Mounten nicht mehr im alten Pool enthalten ist. Dadurch werden effektiv alle Daten auf dem umgesiedelten Gerät gelöscht. + +### Zusätzliche btrfs Balance-Optionen + +Mehrere Gerätepools werden standardmäßig immer noch mit dem btrfs *raid1* Profil erstellt. Wenn Sie 3 oder mehr Geräte in einem Pool haben, können Sie nun auf das *raid1c3* Profil (x3 Kopien der Daten auf separaten Geräten) umverteilen. Wenn Sie 4 oder mehr Geräte in einem Pool haben, können Sie nun auf *raid1c4* (x4 Kopien der Daten auf separaten Geräten) umverteilen. Wir haben auch den *raid6* Balance-Operation geändert, um Meta-Daten auf *raid1c3* zu setzen (zuvor war es *raid1*). + +Wir haben festgestellt, dass die Anwendung eines dieser Balance-Filter auf ein komplett leeres Volume einige Daten-Extents mit dem vorherigen Profil zurücklässt. Die Lösung besteht darin, einfach die gleiche Balance erneut auszuführen. Wir betrachten dies als einen Btrfs-Fehler und falls keine Lösung kommt, werden wir die zweite Balance standardmäßig in den Code einfügen. Bis dahin bleibt es so. + +### SSD 1 MiB Partitionsausrichtung + +Wir haben ein weiteres Partitionslayout hinzugefügt, bei dem der Anfang von Partition 1 auf eine 1 MiB-Grenze ausgerichtet ist. Das bedeutet, dass Partition 1 bei Geräten mit 512-Byte-Sektoren im Sektor 2048 beginnt; bei Geräten mit 4096-Byte-Sektoren im Sektor 256. Dieser Partitionstyp wird jetzt beim Formatieren aller unformatierten nicht-rotierenden Speicher verwendet (nur). + +Es ist nicht klar, welchen Nutzen eine 1 MiB-Ausrichtung bietet. Bei einigen SSD-Geräten werden Sie keinen Unterschied feststellen; bei anderen könnte der Leistungsunterschied erheblich sein. LimeTech empfiehlt nicht, ein bestehendes SSD-Gerät neu zu partitionieren, es sei denn, Sie haben überzeugende Gründe dafür (oder Ihr OCD lässt es einfach nicht zu). + +Um eine SSD neu zu partitionieren, ist es erforderlich, zuerst alle vorhandenen Partitionsstrukturen auf dem Gerät zu löschen. Dies wird natürlich alle Daten auf dem Gerät löschen. Der einfachste Weg, dies zu erreichen, ist es, während das Array gestoppt ist, die zu löschenden Geräte zu identifizieren und den 'blkdiscard' Befehl zu verwenden. + +`blkdiscard /dev/xxx  # zum Beispiel /dev/sdb oder /dev/nvme0n1 usw.` + +WARNUNG: Stellen Sie sicher, dass Sie die korrekte Gerätekennung eingeben, da **alle Daten auf diesem Gerät verloren gehen werden!** + +Beim nächsten Start des Arrays wird das Gerät als unformatiert erscheinen, und da es jetzt keine Partitionsstruktur gibt, wird Unraid OS sie erstellen. + +- Hinweis: Wenn Sie Ihre SSD-basierte Cache-Disk/Pool umpartitionieren und Daten erhalten möchten, sollten Sie in Betracht ziehen, im [Unraid Community Forum](https://forums.unraid.net/forum/55-general-support/) um Unterstützung für Ihre spezielle Konfiguration zu bitten. Bitte beziehen Sie sich auch auf [diesen Beitrag](https://forums.unraid.net/bug-reports/prereleases/unraid-os-version-690-beta29-available-r1066/) im Prerelease-Board. + +### SMART-Handhabung und Speicher-Schwellenwert-Warnungen + +Es gibt eine Konfigurationsdatei namens `config/smart-one.cfg`, die Informationen zu SMART enthält, z.B. den Controller-Typ, der an `smartctl` für den Abruf von SMART-Informationen übergeben wird. Auch in dieser Datei gespeichert sind Volumen-Warnungs- und kritische Freiplatzschwellen. Ab dieser Version werden diese Konfigurationseinstellungen anders behandelt. + +Für die SMART-Konfiguration werden nun Einstellungen nach Geräte-ID statt nach Slot-ID gespeichert. Damit können wir SMART für nicht zugewiesene Geräte verwalten. Es ermöglicht auch, dass die SMART-Konfiguration "dem Gerät folgt", egal welchem Slot es zugewiesen ist. Die Implikation ist jedoch, dass Sie die SMART-Konfiguration für alle Geräte, die vom Standard abweichen, manuell neu konfigurieren müssen. + +Die Einstellungen für Volumen-Warungen und kritische Speicherplatzschwellen wurden aus dieser Konfigurationsdatei entfernt und werden stattdessen jetzt in `config/disk.cfg` (für das Unraid-Array) und in den Pool-Konfigurationsdateien für jeden Pool gespeichert. Die Implikation ist, dass Sie diese Einstellungen für alle Volumen, die vom Standard abweichen, manuell neu konfigurieren müssen. + +Nach dem Upgrade können Sie eine Benachrichtigung wie diese erhalten: `Hinweis [TOWER] - Disk 1 hat sich auf das normale Nutzungsniveau zurückgesetzt`. Wie oben beschrieben, wurden alle Ihre SMART-Konfigurationseinstellungen auf den Standard zurückgesetzt. Besuchen Sie `Einstellungen -> Festplatteneinstellungen`, um die Standardwerte zu überprüfen und für einzelne Laufwerke auf `Haupt -> Festplatte X -> Einstellungen` zu überschreiben. + +## Bessere Modul-/Drittanbietertreiber-Unterstützung + +Erinnern Sie sich, dass wir Linux-Module und Firmware in separaten SquashFS-Dateien bereitstellen, die schreibgeschützt unter `/lib/modules` und `/lib/firmware` eingehängt sind. Wir haben jetzt ein OverlayFS an jedem dieser Einhängepunkte eingerichtet, was es ermöglicht, 3.-Party-Module mit dem Plugin-System zu installieren, vorausgesetzt, diese Module sind gegen die aktuell laufende Kernelversion gebaut. Außerdem definieren wir ein neues Verzeichnis auf dem USB-Flash-Boot-Gerät namens `config/modprobe.d`, dessen Inhalte zu Beginn der Startsequenz in `/etc/modprobe.d` kopiert werden, bevor der Linux-Kernel irgendwelche Module lädt. + +Diese Technik wird verwendet, um den Nvidia-Treiber zu installieren (siehe unten) und kann von Community-Entwicklern genutzt werden, um eine einfachere Möglichkeit zum Hinzufügen von Modulen zu schaffen, die nicht im Basis-Unraid-OS enthalten sind: keine Notwendigkeit, benutzerdefinierte bzimage, bzmodules, bzfirmware und bzroot-Dateien zu erstellen! + +### Parameter an Module übergeben + +Die Verwendung von `conf`-Dateien in `config/modprobe.d` kann genutzt werden, um Optionen zu spezifizieren und Argumente an Module zu übergeben. + +Als Beispiel: Aktuell haben wir keine UI-Unterstützung, um festzulegen, welche Netzwerkschnittstelle "primär" in einem Bond sein soll; der Bonding-Treiber wählt standardmäßig einfach das erste Mitglied. In einigen Konfigurationen kann es nützlich sein, eine ausdrücklich bevorzugte Schnittstelle anzugeben, zum Beispiel, wenn Sie einen Bond mit einem 1 Gbit/s (eth0) und einem 10 Gbit/s (eth1) Interface haben. + +Da die Bond-Einrichtung das Laden des Bonding-Kernmoduls erfordert, können Sie angeben, welche Schnittstelle als primär über diese Methode festgelegt werden soll: + +Erstellen Sie eine Datei auf dem Flash: `config/modprobe.d/bonding.conf`, die diese einzelne Zeile enthält und dann neu startet: + +`options bonding primary=eth1` + +Nach dem Neustart können Sie überprüfen, ob es funktioniert hat, indem Sie diesen Befehl eingeben: + +`cat /proc/net/bonding/bond0` + +wo Sie die ausgewählte Schnittstelle als "Primäre Slave" sehen sollten. + +### Nvidia-Treiber + +Das Ziel der Erstellung von Squashfs-Overlays, die in `/lib/modules` und +`/lib/firmware` eingehängt werden, sowie die Bereitstellung eines Mechanismus zum Definieren benutzerdefinierter Modulparameter besteht darin, eine Möglichkeit zur Integration von Drittanbietertreibern in das Unraid OS zu bieten, ohne dass benutzerdefinierte Builds der bz\*-Dateien erforderlich sind. Einer der am häufigsten angeforderten Drittanbietertreiber für Unraid OS ist der Nvidia-GPU-Linustreiber. Dieser Treiber wird für die Transcoding-Funktion in Docker-Containern benötigt. Die Bereitstellung dieses Treibers als Plugin für Unraid OS erforderte viel Arbeit zur Einrichtung einer Entwicklungsumgebung, zur Kompilierung des Treibers und der Tools sowie zum Entpacken von bzmodules, Hinzufügen des Treibers, Erstellen neuer bzmodules und schließlich zum Ersetzen im USB-Flash-Root-Verzeichnis. Diese Arbeit wurde von Community-Mitgliedern wie [@chbmb](https://forums.unraid.net/profile/6219-chbmb/), +[@bass\_rock](https://forums.unraid.net/profile/78406-bass_rock/) und anderen umgesetzt. Aufbauend auf ihrer Arbeit erstellen wir jetzt eigenständige Nvidia-Treiberpakete, die mit jeder neuen Unraid OS-Version gegen einen neuen Kernel erstellt werden, jedoch nicht direkt in die Basis-bz\*-Distribution einbezogen sind. + +Eine JSON-Datei, die die von jedem Kernel unterstützte(n) Treiberversion(en) beschreibt, kann hier heruntergeladen werden: + +[https://s3.amazonaws.com/dnld.lime-technology.com/drivers/releases.json](https://s3.amazonaws.com/dnld.lime-technology.com/drivers/releases.json) + +Jedes Treiberpaket enthält den Nvidia Linux GPU-Treiber zusammen mit einem Satz an Container-Tools. Die Container-Tools umfassen: + +`nvidia-container-runtime`\ +`nvidia-container-toolkit`\ +`libnvidia-container` + +Diese Tools sind hilfreich, um beschleunigtes Transcoding in Docker-Containern zu ermöglichen. Ein großes Dankeschön an Community-Mitglied [@ich777](https://forums.unraid.net/profile/72388-ich777/) für die Hilfe und Bereitstellung der Tools. [@ich777](https://forums.unraid.net/profile/72388-ich777/) hat auch ein [praktisches Plugin](https://raw.githubusercontent.com/ich777/unraid-nvidia-driver/master/nvidia-driver.plg) bereitgestellt, um die korrekte Installation des Treibers zu erleichtern. + +Die Aufnahme von Drittanbieter-Modulen in das Unraid OS mit dem Plugin-System ist noch in Arbeit. Ein weiterer Kandidat, beispielsweise, wäre die Ersetzung der In-Tree-Linux-Intel-Ethernet-Treiber gegen Intels benutzerdefinierte Linux-Treiber. + +## Docker + +Es ist nun möglich, verschiedene Symbole für mehrere Container des gleichen Typs auszuwählen. Diese Änderung erfordert das erneute Herunterladen der Symbole für alle installierten Docker-Anwendungen. Eine Verzögerung beim initialen Laden entweder des Dashboards oder der Docker-Registerkarte, während dies geschieht, ist zu erwarten, bevor die Container angezeigt werden. + +Wir haben auch einige Änderungen vorgenommen, um mehr Flexibilität bei der Zuordnung von Speicher für die Docker-Engine zu bieten. Dies wird über die Einstellung Settings/Docker Settings/Docker-Daten-Root konfiguriert. Damit können Sie auswählen, wie der persistente Zustand von Docker (Image-Ebenen) beibehalten werden soll: + +- In einem mit Btrfs-formatierten Vdisk-Loopback, gemountet unter /var/lib/docker. In diesem Fall muss der Name der Image-Datei 'docker.img' sein. +- In einem mit XFS-formatierten Vdisk-Loopback, gemountet unter /var/lib/docker. In diesem Fall muss der Name der Image-Datei 'docker-xfs.img' sein. +- In einem angegebenen Verzeichnis, das unter /var/lib/docker gemountet ist. Weiterhin muss das Dateisystem, auf dem sich dieses Verzeichnis befindet, entweder Btrfs oder XFS sein. + +Docker wird entweder den 'btrfs'-Speichertreiber bei btrfs-formatiertem Vdisk/Verzeichnis nutzen oder den 'overlay2'-Speichertreiber bei xfs-formatiertem Vdisk/Verzeichnis. + +Implementiert folgendermaßen: Zuerst erkennt `rc.docker`, welcher Dateisystemtyp unter `/var/lib/docker` gemountet ist. Wir unterstützen jetzt entweder Btrfs oder XFS und der Docker-Storage-Treiber wird entsprechend gesetzt. + +Anschließend wird `mount_image` modifiziert, um eine Loopback-Datei zu unterstützen, die entweder mit Btrfs oder XFS formatiert ist, abhängig von der Endung des Loopback-Dateinamens. Wenn der Dateiname beispielsweise mit `.img` endet, wie bei `docker.img`, verwenden wir `mkfs.btrfs`. Endet der Dateiname mit `-xfs.img`, wie bei `docker-xfs.img`, verwenden wir `mkfs.xfs`. + +Zusätzlich haben wir die Möglichkeit hinzugefügt, ein Verzeichnis anstelle eines Loopbacks zu binden. Wenn der Dateiname nicht mit `.img` endet, wird davon ausgegangen, dass es sich um den Namen eines Verzeichnisses handelt (vermutlich auf einem Share), das auf `/var/lib/docker` gebindet wird. Beispiel: Wenn `/mnt/user/system/docker/docker` dann erstellen wir zuerst, falls nötig, das Verzeichnis `/mnt/user/system/docker/docker`. Wenn sich dieser Pfad auf einem Nutzer-Share befindet, "dereferenzieren" wir den Pfad, um den Festplattenpfad zu erhalten, der dann auf `/var/lib/docker` gebindet wird. Beispiel: Wenn `/mnt/user/system/docker/docker` auf "disk1" ist, würde `/mnt/disk1/system/docker/docker` gebindet. Vorsicht: Der Share sollte nur-Cache oder kein-Cache sein, damit 'mover' nicht versucht, das Verzeichnis zu verschieben, aber das Skript prüft dies nicht. + +## Virtualisierung + +Wir haben Änderungen in die "Tools → Systemgeräte"-Seite integriert, die von Benutzer [@Skitals](https://forums.unraid.net/profile/97624-skitals/) vorgenommen wurden, mit Verbesserungen durch Benutzer +[@ljm42](https://forums.unraid.net/profile/61877-ljm42/). Sie können jetzt PCI-Geräte auswählen, die bei Systemstart von Linux isoliert werden sollen, indem Sie einfach einige Kästchen ankreuzen. Dadurch wird es einfacher, diese Geräte zur Zuweisung an VMs zu reservieren. Diese Technik ist als *Stubbing* bekannt (weil ein Stub oder Dummy-Treiber dem Gerät beim Start zugewiesen wird, wodurch verhindert wird, dass der echte Linux-Treiber zugewiesen wird). + +Man könnte sich fragen, wenn wir einzelne Treiber *blacklisten* können, warum müssen wir diese Geräte dennoch "stubben“, um sie VMs zuzuweisen? Die Antwort lautet: Sie können das. Aber wenn Sie mehrere Geräte desselben Typs haben, von denen einige an eine VM weitergegeben werden müssen und andere den Host-Linux-Treiber installiert haben müssen, dann müssen Sie das Stubbing verwenden, um die Geräte an VMs weiterzugeben. + +Hinweis: Wenn Sie das VFIO-PCI Config Plugin installiert hatten, sollten Sie es entfernen, da diese Funktionalität jetzt in Unraid OS 6.9 integriert ist. Wenn Sie Geräte manuell gestubt haben, indem Sie Ihre Syslinux-Datei geändert haben, sollten Sie in Betracht ziehen, auf die hier beschriebene neue Methode umzusteigen im [vfio-pci Leitfaden](https://forums.unraid.net/topic/93781-guide-bind-devices-to-vfio-pci-for-easy-passthrough-to-vms/). + +## Mehrsprachige Unterstützung + +Eine weitere aufregende neue Funktion in Unraid 6.9 ist die Möglichkeit, Sprachpakete herunterzuladen und das Unraid OS in verschiedenen Sprachen zu verwenden. + +Eine enorme Menge an Arbeit und Aufwand wurde von +[@bonienl](https://forums.unraid.net/profile/2736-bonienl/) umgesetzt, um Mehrsprachensupport im Unraid OS Management-Dienstprogramm, auch bekannt als WebGUI, bereitzustellen. Derzeit sind *Englisch, Spanisch, Französisch, Deutsch, Niederländisch, Arabisch, Vereinfachtes Chinesisch, Portugiesisch und Polnisch* verfügbar und einige weitere sind in Arbeit. + +Dank an [@Squid](https://forums.unraid.net/profile/10290-squid/), die Sprachpakete werden über das Community Applications-Plugin installiert - suchen Sie nach einer neuen Kategorie mit dem Titel Sprache. + +- Hinweis: Community-Apps müssen auf dem neuesten Stand sein, um Sprachen zu installieren. Für weitere Details, [hier weiterlesen](https://forums.unraid.net/topic/38582-plug-in-community-applications/page/124/?tab=comments#comment-866710). + +Jedes Sprachpaket existiert in öffentlichen [Unraid-Organisation-Github-Repositories](https://github.com/unraid). Interessierte Benutzer werden ermutigt, Pull-Anfragen zur Korrektur von Übersetzungsfehlern zu klonen und zu erstellen. Sprachübersetzungen und PR-Zusammenführungen werden von [@SpencerJ](https://forums.unraid.net/profile/88446-spencerj/) verwaltet. + +*Für mehr Informationen über den Mehrsprachensupport, [sehen Sie sich bitte unseren Leitfaden an.](https://unraid.net/blog/unraid-6-9-multi-language-support)* + +Wir haben auch einen Unraid Community Forum Multi-Language +Bereich hinzugefügt. + +## Sonstige + +### GPU-Treiber-Integration + +Unraid OS enthält jetzt ausgewählte In-Tree-GPU-Treiber: ast (Aspeed), i915 (Intel), amdgpu und radeon (AMD). Aus Gründen der Abwärtskompatibilität werden diese Treiber standardmäßig über entsprechende `conf`-Dateien in `/etc/modprobe.d` blacklisted. + +`/etc/modprobe.d/ast.conf`\ +`/etc/modprobe.d/i915.conf`\ +`/etc/modprobe.d/amdgpu.conf`\ +`/etc/modprobe.d/radeon.conf` + +Jede dieser Dateien enthält eine Zeile, die den Treiber *blacklistet* und verhindert, dass er vom Linux-Kernel geladen wird. + +Es ist möglich, die Einstellungen in diesen Dateien durch Erstellen einer benutzerdefinierten `conf`-Datei im Verzeichnis `config/modprobe.d` auf Ihrem USB-Flash-Boot-Gerät zu überschreiben. Zum Beispiel, um den amdgpu-Treiber von der Blacklist zu entfernen, erstellen Sie eine leere Datei, indem Sie diesen Befehl in einer Terminal-Sitzung eingeben: + +`touch /boot/config/modprobe.d/amdgpu.conf` + +Dies muss nur einmal durchgeführt werden und muss nicht in Ihr Go +Script aufgenommen werden. + +In Version 6.9.1, wenn Ihr Go-Skript einen Modprobe-Befehl für Ihre GPU +und/oder einen Befehl zum Korrigieren der Berechtigungen auf `/dev/dri` enthält, sollten Sie diese +entfernen: + +`modprobe amdgpu`\ +`chmod -R 777 /dev/dri` + +In Version 6.9.0, wenn der von Ihnen verwendete Docker keinen Zugriff +auf die GPU hat, lassen/hinzufügen Sie diese Zeile zu Ihrem Go-Skript: + +`chmod -R 777 /dev/dri` + +aber entfernen Sie diese: + +`modprobe amdgpu` + +### Linux-Kernel + +Wir verwenden den [LTS](https://www.kernel.org/) (Long Term Supported) +Kernel: Version 5.10.x. + +Im Kernel aktivierte neue Funktionen: + +- WireGuard-Modul +- iScsi-Zielmodul +- USB/IP-Modul + +Diese out-of-tree Treiber sind enthalten: + +- QLogic QLGE 10Gb Ethernet-Treiber Unterstützung (aus dem Staging) +- RealTek r8125: Version 9.003.05 (enthalten für neuere r8125) +- HighPoint rr272x\_1x: Version v1.10.6-19\_12\_05 (auf Benutzeranfrage) + +Bitte beachten Sie, dass, wenn wir den Linux-Kernel aktualisieren, ein out-of-tree Treiber nicht +mehr kompiliert wird, er weggelassen wird. + +Diese Treiber sind **weggelassen**: + +- Highpoint RocketRaid r750 (kann nicht kompiliert werden) +- Highpoint RocketRaid rr3740a (kann nicht kompiliert werden) +- Tehuti Networks tn40xx (kann nicht kompiliert werden) + +Falls Sie einen dieser Treiber benötigen, erstellen Sie bitte einen Fehlerbericht, und wir werden etwas Zeit damit verbringen, nach Alternativen zu suchen. Noch besser: Setzen Sie den Hersteller des Controllers unter Druck, seine Treiber zu aktualisieren. + +### Basis-Pakete + +Alle auf die neuesten Versionen aktualisiert. Zudem wurde [Linux PAM](https://en.wikipedia.org/wiki/Linux_PAM) integriert. Dies ermöglicht uns die Installation von Zwei-Faktor-Authentifizierungspaketen in einer zukünftigen Version. + +### SAS-Spinnenkontrolle + +Wir sollten jetzt auch in der Lage sein, die SAS-Gerät-Spin-Up/Down ordnungsgemäß zu unterstützen (endlich) und mit außergewöhnlicher Hilfe von [@doron](https://forums.unraid.net/profile/8006-doron/) sind wir fast am Ziel. SAS-Geräte sind generell für den Einsatz in Unternehmensumgebungen konzipiert, wo das Herunterfahren von Geräten selten ist, und viele Geräte haben ein inkonsistentes Verhalten in Bezug auf diese Funktionalität. Diese Veröffentlichung selbst enthält keine eingebauten Funktionen zur Handhabung des SAS-Gerätespinnens, aber [@doron](https://forums.unraid.net/profile/8006-doron/) stellt ein Plugin zur Verfügung, in dem wir weiterhin einige nervige Details angehen. + +### SSH-Verbesserungen + +Es gibt Änderungen in `/etc/ssh/sshd_conf`, um die Sicherheit zu verbessern (dank an +[@Mihai](https://forums.unraid.net/profile/89549-mihai/) und +[@ljm42](https://forums.unraid.net/profile/61877-ljm42/) für +Vorschläge): + +- Nur Root-Benutzer dürfen sich über SSH anmelden (denken Sie daran: keine + traditionellen Benutzer in Unraid OS - nur 'root'). +- Ein nicht-leeres Passwort ist jetzt erforderlich. Um ein Passwort festzulegen, gehen Sie auf den Reiter "Benutzer" (oder Einstellungen -> Benutzer, je nach Konfiguration), wählen Sie den Benutzer "root", geben Sie ein komplexes Passwort zweimal ein und drücken Sie ÄNDERN (nicht ZURÜCKSETZEN). +- Nicht-root-Tunneling ist deaktiviert. + +Zusätzlich stellen wir beim Upgrade sicher, dass das Verzeichnis `config/ssh/root` auf dem USB-Flash-Boot-Gerät existiert; und, wir haben einen Symlink eingerichtet: `/root/.ssh` zu diesem Verzeichnis. Das bedeutet, dass alle Dateien, die Sie in `/root/.ssh` legen, über Neustarts hinweg persistent sind. + +Wenn Sie also zuvor Befehle zu ihrem `go`-Skript hinzugefügt haben, um +`authorized_keys` und andere Dateien auf `/root/.ssh` zu kopieren, sollten Sie +diese Befehle entfernen und einfach die Dateien in `config/ssh/root` einfügen, +dann neu starten. + +Hinweis: Wenn Sie das SSH-Startskript `/etc/rc.d/rc.sshd` untersuchen, wird beim Booten alle Dateien aus dem `config/ssh` Verzeichnis in `/etc/ssh` kopiert (aber nicht Unterverzeichnisse). Der Zweck ist es, die Host-SSH-Schlüssel wiederherzustellen; jedoch kann dieser Mechanismus verwendet werden, um benutzerdefinierte `ssh_conf` und `sshd_conf` Dateieinstellungen zu definieren. + +### "unerwartete GSO-Fehler" + +Wenn Ihr Systemprotokoll mit Fehlermeldungen wie diesen überflutet wird: + +`Feb 20 09:09:21 Tower kernel: tun: unerwarteter GSO-Typ: 0x0, gso_size 31, hdr_len 66` + +Sie müssen jede VM bearbeiten und den Modelltyp für die Ethernet-Brücke von `virtio` auf `virtio-net` ändern. In den meisten Fällen kann dies einfach durch Klicken auf Aktualisieren in der "Formularansicht" auf der VM-Bearbeitungsseite durchgeführt werden. Für andere Netzwerkkonfigurationen kann es erforderlich sein, die XML direkt zu bearbeiten. Beispiel: + +```xml + + + + +
+ +``` + +### "noVNC hat einen Fehler entdeckt" + +Wenn Sie eine Fehlermeldung `noVNC hat einen Fehler entdeckt` nach dem Upgrade +erhalten, löschen Sie bitte Ihren Browser-Cache. + +### AFP-Unterstützung wurde entfernt + +Selbst Apple geht davon aus, dass dieser Protokoll +verschwindet. moving +away + +Für die beste Interoperabilität mit macOS und um ein Share für Time +Machine-Zwecke zu exportieren, stellen Sie bitte sicher, dass "Einstellungen/SMB-Einstellungen/Verbesserte +macOS-Interoperabilität" auf "Ja" gesetzt ist. + +## Änderungsprotokoll + +#### Grunddistro + +- aaa\_elflibs: Version 15.0 Build 27 +- acl: Version 2.2.53 +- acpid: Version 2.0.32 +- apcupsd: Version 3.14.14 +- at-spi2-core: Version 2.36.1 +- at: Version 3.2.1 +- attr: Version 2.4.48 +- avahi: Version 0.8 +- bash: Version 5.0.018 +- beep: Version 1.3 +- bin: Version 11.1 +- bluez-firmware: Version 1.2 +- bridge-utils: Version 1.7 +- brotli: Version 1.0.9 Build 2 +- btrfs-progs: Version 5.10 +- bzip2: Version 1.0.8 +- ca-certificates: Version 20201219 +- celt051: Version 0.5.1.3 +- cifs-utils: Version 6.11 +- coreutils: Version 8.32 +- cpio: Version 2.13 +- cpufrequtils: Version 008 +- cryptsetup: Version 2.3.4 +- curl: Version 7.74.0 (CVE-2020-8231 CVE-2020-8286 CVE-2020-8285 + CVE-2020-8284) +- cyrus-sasl: Version 2.1.27 +- db48: Version 4.8.30 +- dbus: Version 1.12.20 +- dcron: Version 4.5 +- devs: Version 2.3.1 Build 25 +- dhcpcd: Version 8.1.9 +- diffutils: Version 3.7 +- dmidecode: Version 3.3 +- dnsmasq: Version 2.84 (CVE-2020-25681 CVE-2020-25682 CVE-2020-25683 + CVE-2020-25684 CVE-2020-25685 CVE-2020-25686 CVE-2020-25687) +- docker: Version 19.03.14 +- dosfstools: Version 4.1 +- e2fsprogs: Version 1.45.6 +- ebtables: Version 2.0.11 +- eject: Version 2.1.5 +- elvis: Version 2.2\_0 +- etc: Version 15.0 +- ethtool: Version 5.9 +- eudev: Version 3.2.5 +- file: Version 5.39 +- findutils: Version 4.7.0 +- flex: Version 2.6.4 +- floppy: Version 5.5 +- fontconfig: Version 2.13.92 +- freetype: Version 2.10.4 +- fribidi: Version 1.0.10 +- fuse3: Version 3.10.0 +- gawk: Version 4.2.1 +- gd: Version 2.2.5 +- gdbm: Version 1.18.1 +- genpower: Version 1.0.5 +- getty-ps: Version 2.1.0b +- git: Version 2.29.1 +- glib2: Version 2.66.2 +- glibc-solibs: Version 2.30 Build 2 +- glibc-zoneinfo: Version 2020d +- glibc: Version 2.30 Build 2 +- gmp: Version 6.2.0 +- gnutls: Version 3.6.15 +- gptfdisk: Version 1.0.5 +- grep: Version 3.4 +- gtk+3: Version 3.24.23 +- gzip: Version 1.10 +- harfbuzz: Version 2.7.2 +- haveged: Version 1.9.13 +- hdparm: Version 9.60 +- hostname: Version 3.23 +- htop: Version 3.0.2 +- icu4c: Version 68.1 +- inetd: Version 1.79s +- infozip: Version 6.0 +- inotify-tools: Version 3.20.2.2 +- intel-microcode: Version 20210216 +- iproute2: Version 5.9.0 +- iptables: Version 1.8.5 +- iputils: Version 20200821 +- irqbalance: Version 1.6.0 +- jansson: Version 2.13.1 +- jasper: Version 2.0.22 +- jemalloc: Version 5.2.1 +- jq: Version 1.6 +- kernel-firmware: Version 20210211\_f7915a0 +- keyutils: Version 1.6.1 +- kmod: Version 27 +- krb5: Version 1.18.2 +- lbzip2: Version 2.5 +- lcms2: Version 2.11 +- less: Version 563 +- libX11: Version 1.6.12 +- libaio: Version 0.3.112 +- libarchive: Version 3.4.3 +- libcap-ng: Version 0.8 Build 2 +- libcgroup: Version 0.41 +- libdaemon: Version 0.14 +- libdrm: Version 2.4.102 +- libedit: Version 20191231\_3.1 +- libestr: Version 0.1.11 +- libevdev: Version 1.10.0 +- libevent: Version 2.1.12 +- libfastjson: Version 0.99.8 +- libffi: Version 3.3 +- libgcrypt: Version 1.8.7 +- libglvnd: Version 1.3.2 +- libgpg-error: Version 1.39 +- libgudev: Version 234 +- libidn: Version 1.36 +- libjpeg-turbo: Version 2.0.5 +- liblogging: Version 1.0.6 +- libmnl: Version 1.0.4 +- libnetfilter\_conntrack: Version 1.0.8 +- libnfnetlink: Version 1.0.1 +- libnftnl: Version 1.1.8 +- libnl3: Version 3.5.0 +- libpcap: Version 1.9.1 +- libpciaccess: Version 0.16 +- libpng: Version 1.6.37 +- libpsl: Version 0.21.1 Build 2 +- librsvg: Version 2.50.1 +- libseccomp: Version 2.4.3 +- libssh2: Version 1.9.0 +- libssh: Version 0.9.5 +- libtasn1: Version 4.16.0 +- libtirpc: Version 1.2.6 +- libunistring: Version 0.9.10 +- libusb-compat: Version 0.1.5 +- libusb: Version 1.0.23 +- libuv: Version 1.34.0 +- libvirt-php: Version 0.5.5 +- libvirt: Version 6.6.0 (CVE-2020-14339) +- libwebp: Version 1.1.0 Build 3 +- libwebsockets: Version 3.2.2 +- libx86: version 1.1 +- libxkbcommon: Version 1.0.1 +- libxml2: Version 2.9.10 Build 3 +- libxslt: Version 1.1.34 +- libzip: Version 1.7.3 +- lm\_sensors: Version 3.6.0 +- lmdb: Version 0.9.27 +- logrotate: Version 3.17.0 +- lshw: Version B.02.17 +- lsof: Version 4.93.2 +- lsscsi: Version 0.31 +- lvm2: Version 2.03.10 +- lz4: Version 1.9.1 +- lzip: Version 1.21 +- lzo: version 2.10 +- mc: Version 4.8.25 +- miniupnpc: version 2.1 +- mpfr: version 4.1.0 +- nano: Version 5.3 +- ncompress: Version 4.2.4.6 +- ncurses: Version 6.2\_20201024 +- net-tools: Version 20181103\_0eebece +- nettle: Version 3.6 +- network-scripts: Version 15.0 Build 9 +- nfs-utils: Version 2.1.1 +- nghttp2: Version 1.41.0 +- nginx: Version 1.19.5 (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516) +- nodejs: Version 13.12.0 +- nss-mdns: version 0.14.1 +- ntfs-3g: Version 2017.3.23 +- ntp: Version 4.2.8p15 Build 3 +- numactl: Version 2.0.11 +- oniguruma: Version 6.9.1 +- openldap-client: Version 2.4.49 +- openssh: Version 8.4p1 Build 2 +- openssl-solibs: Version 1.1.1i +- openssl: Version 1.1.1i +- p11-kit: Version 0.23.22 (CVE-2020-29361 CVE-2020-29361 + CVE-2020-29361) +- pam: Version 1.5.1 +- pango: Version 1.46.2 +- patch: version 2.7.6 +- pciutils: version 3.7.0 +- pcre2: Version 10.35 +- pcre: Version 8.44 +- php: Version 7.4.15 (CVE-2019-11048 CVE-2020-7068 CVE-2020-7070 + CVE-2020-7069) +- pixman: version 0.40.0 +- pkgtools: Version 15.0 Build 33 +- pm-utils: Version 1.4.1 +- procps-ng: Version 3.3.16 +- pv: version 1.6.6 +- qemu: Version 5.1.0 (CVE-2020-10717, CVE-2020-10761) +- qrencode: Version 4.0.2 +- reiserfsprogs: version 3.6.27 +- rpcbind: Version 1.2.5 Build 2 +- rsync: version 3.2.3 +- rsyslog: Version 8.2002.0 +- samba: Version 4.12.11 (CVE-2020-10700, CVE-2020-10704 + CVE-2020-10730, CVE-2020-10745, CVE-2020-10760, CVE-2020-14303 + CVE-2020-1472 CVE-2020-14318 CVE-2020-14318 CVE-2020-14318) +- sdparm: Version 1.11 +- sed: version 4.8 +- sg3\_utils: Version 1.45 +- shadow: version 4.8.1 +- shared-mime-info: Version 2.0 +- smartmontools: Version 7.1 +- spice: Version 0.14.1 +- sqlite: Version 3.33.0 +- ssmtp: version 2.64 +- sudo: Version 1.9.3p2 (CVE-2021-23239 CVE-2021-23240) +- sysfsutils: version 2.1.0 +- sysvinit-scripts: Version 2.1 Build 35 +- sysvinit: Version 2.97 +- talloc: Version 2.3.1 Build 4 +- tar: Version 1.32 +- tcp\_wrappers: Version 7.6 Build 3 +- tdb: Version 1.4.3 Build 4 +- telnet: version 0.17 +- tevent: Version 0.10.2 Build 4 +- traceroute: version 2.1.0 +- tree: version 1.8.0 +- ttyd: Version 20200624 +- usbredir: Version 0.7.1 +- usbutils: Version 013 +- utempter: version 1.2.0 +- util-linux: Version 2.36 Build 2 +- vbetool: version 1.2.2 +- vsftpd: Version 3.0.3 Build 7 +- wget: Version 1.20.3 +- which: version 2.21 +- wireguard-tools: Version 1.0.20210223 +- wsdd: Version 20180618 +- xev: Version 1.2.4 +- xf86-video-vesa: Version 2.5.0 +- xfsprogs: Version 5.9.0 +- xinit: Version 1.4.1 +- xkeyboard-config: Version 2.31 +- xorg-server: Version 1.20.9 Build 3 +- xterm: Version 361 +- xxHash: Version 0.8.0 +- xz: Version 5.2.5 +- yajl: version 2.1.0 +- zlib: Version 1.2.11 +- zstd: Version 1.4.5 + +#### Linux-Kernel + +- Version 5.10.19 +- CONFIG\_WIREGUARD: WireGuard sicherer Netzwerktunnel +- CONFIG\_IP\_SET: IP-Set-Unterstützung +- CONFIG\_SENSORS\_DRIVETEMP: Festplatten mit Temperatursensoren +- md/Unraid: Version 2.9.17 + - Unterstützung für Spinup-Gruppe Spinup/Spdindown entfernt (Funktionalität in emhttpd verschoben) + - konfigurierbaren Synchronisationsstartversatz hinzugefügt +- iSCSI-Kernel-Unterstützung hinzugefügt: +  - CONFIG\_ISCSI\_TARGET: iSCSI-Target-Modus-Stack von Linux-iSCSI.org + - CONFIG\_ISCSI\_TARGET\_CXGB4: Chelsio iSCSI-Target-Offload-Treiber + - CONFIG\_LOOPBACK\_TARGET: TCM Virtuelles SAS-Target und Linux/SCSI LDD + Verbindungsschleife-Modul + - CONFIG\_NVME\_TARGET: NVMe-Target-Unterstützung + - CONFIG\_NVME\_TARGET\_LOOP: Unterstützung für NVMe-Verbindungsschleifen-Geräte + - CONFIG\_NVME\_TARGET\_PASSTHRU: NVMe-Target-Durchleitung-Unterstützung + - CONFIG\_TARGET\_CORE: Generischer Target-Core-Mod und ConfigFS + Infrastruktur + - CONFIG\_TCM\_FILEIO: TCM/FILEIO-Subsystem-Plugin für Linux/VFS + - CONFIG\_TCM\_IBLOCK: TCM/IBLOCK-Subsystem-Plugin für Linux/BLOCK + - CONFIG\_TCM\_PSCSI: TCM/pSCSI-Subsystem-Plugin für Linux/SCSI + - CONFIG\_TCM\_USER2: TCM/USER-Subsystem-Plugin für Linux +- USB/IP-Kernel-Support hinzugefügt: +  - CONFIG\_USBIP\_CORE: USB/IP-Unterstützung +  - CONFIG\_USBIP\_VHCI\_HCD: VHCI hcd +- mpt3sas: /etc/modprobe.d/mpt3sas-workaround.conf hinzugefügt, um + "max\_queue\_depth=10000" festzulegen. +- oot: Realtek r8152: Version 2.13.0 +- oot: Tehuti tn40xx: Version 0.3.6.17.3 +- zusätzliche native hwmon-Treiber aktiviert +- zusätzliche Hyperv-Treiber aktiviert + +#### Verwaltung + +- AFP-Unterstützung entfernt +- Mehrsprachige Unterstützung hinzugefügt +- Unterstützung für mehrere Pools hinzugefügt +- at: Suppress-Eingaangeber auf/zu syslog-Meldungen unterdrücken +- Vermeiden Sie das Senden von Spinup/Spindown an nicht-rotierende Geräte +- btrfs: 'discard=async' Mount-Option inkludieren +- Fehlerbehebung: /etc/krb.conf in /etc/krb5.conf umbenennen +- passwd, shadow bereinigen +- dhcpcd: ipv6: slaac hwaddr anstelle von slaac private verwenden +- docker: Korrektur der Speichersteuerlogik +- docker: Unterstützung sowohl für btrfs- als auch xfs-Backup-Dateisysteme +- emhtppd: wipefs verschlüsseltes Gerät aus Multi-Device-Pool entfernt +- emhtptd: sauberen/unsauberen Shutdown mit Datei 'config/forcesync' verfolgen +- emhttpd: wipefs-Funktion hinzugefügt (WebGUI-Button 'Löschen') +- emhttpd: unnötiges Entfernen der mover.cron-Datei vermeiden +- emhttpd: 'Remount' vermeiden, um zusätzliche Mount-Optionen festzulegen +- emhttpd: Fehlerbehebung: Kein Smartdata für nicht standardmäßigen Controllertyp +- emhttpd: Fehlerbehebung: Anfängliche Gerätetemperaturen werden nicht angezeigt +- emhttpd: Korrektur der 'Löschen'-Logik für Unraid-Array-Geräte +- emhttpd: SMART bei Geräten beim Start aktivieren +- emhttpd: 'Auto'-Einstellung reparieren, bei der aktivierte Pools für Benutzerfreigaben + nicht exportiert werden sollten +- emhttpd: Fehlerbehebung: Festplatten-'SMART Controllertyp' wird beim Lesen der Temperaturen nicht berücksichtigt +- emhttpd: Fehlerbehebung externes 'smartctl -n standby' verursacht Geräte-Spindown +- emhttpd: poll\_attributes-Ereignis entfernen +- emhttpd: Implementierung von Spinup/Spindown der Spinup-Gruppe; Spinup/Spindown-Aufrufe hinzufügen +- emhttpd: Erlaubnis zum Löschen von 'DISK\_DSBL\_NEW'-Ersatzgeräten geben +- emhttpd: 'poll\_attributes' Event-Aufruf wiederherstellen +- emhttpd: nicht zugeordnete Geräte werden gemäß globalen Standard heruntergefahren +- emhttpd: Eine weitere btrfs-Methode zur Berechnung von 'frei/belegt' +- emhttpd-Absturz reparieren, der sich aus dem Export von NFS-Datenträgerfreigabe(n) ergibt +- Repariere Nicht-rotierende Gerätespartitionen, die nicht tatsächlich 1MiB ausgerichtet wurden +- unterstützung für 'system'-Plugin entfernen (nie benutzt) +- PAM integrieren +- ljm42 vfio-pci-Skriptänderungen integrieren +- Loopbacks: Erlauben von xfs- oder btrfs basierend auf Dateinamen +- modprobe: Standardmäßig GPU-Treiber auf Blacklist, config / modprobe.d /\* + kann beim Boot überschrieben werden +- Alle btrfs-Volumes mit der Option 'space\_cache=v2' mounten +- Loopbacks mit 'noatime'-Option mounten; 'direct-io' aktivieren +- mount\_image: Bind-Mount-Unterstützung hinzufügen +- Nicht-rotierende Gerätespartitionen standardmäßig an 1MiB-Ausrichtung ausrichten +- Plugin: Unterstützung für sha256-Dateivalidierung +- rsyslog: Defektes "Syslog auf Flash spiegeln" reparieren +- samba: Deaktivieren Sie aio standardmäßig +- shfs: move: ioctl\_iflags beim Verschieben zwischen gleichen Dateisystemtypen beibehalten +- shfs: verschieben: Unterstützung von Spardateien +- smart-one.cfg speichert SMART-Infos pro-ID anstelle von pro-Steckplatz; Festplattenwarnung/Kritische Konfiguration wurde in die Disk/Pool-cfg verschoben +- smb: Ad-Verbindungsproblem behoben +- smb: Entfernen Sie die Einstellung der 'aio'-Optionen in smb.conf, verwenden Sie die Samba-Standardeinstellungen +- ssh: Symbolischen Link /root/.ssh zu /boot/config/ssh/root-Verzeichnis hinzufügen +- ssh: Nur root-Benutzer zulassen, Passwörter verlangen, nicht-root-Tunneling deaktivieren +- ssh: erfordert Passwörter, deaktiviert nicht-root-Tunneling +- Start: Einrichten eines Overlayfs für /lib/modules und /lib/firmware +- syslog: Konfigurieren, um auch auf localhost udp Port 514 zu hören +- Web-Terminal: Warnungs-Pop-up beim Schließen des Fensters unterdrücken +- Wireguard-Unterstützung: rc.wireguard: iptables-Regeln hinzufügen +- WebGUI: Dockerupdate.php Warnungen beheben +- WebGUI: Statuscheck aktualisieren +- WebGUI: 'Portugiesisch (pt)' Tastaturbelegungsoption für libvirt hinzufügen +- WebGUI: Anpassbare Auszeit beim Beenden von Containern hinzufügen +- WebGUI: Log-Viewer für vfio-pci hinzufügen +- WebGUI: Benachrichtigungsagent für Discord hinzufügen +- WebGUI: Pools-Informationen zur Diagnostik hinzufügen +- WebGUI: Raid1c3 und Raid1c4 Btrfs Pool Balance-Optionen hinzufügen. +- WebGUI: Aktualisierungsdialog zum Docker-Kontextmenü hinzufügen +- WebGUI: "Sicherer Modus" Einmalige Sicherheitsmodus Neustart-Option hinzugefügt +- WebGUI: Btrfs-Informationen für alle Pools in der Diagnostik hinzugefügt +- WebGUI: Neue Anzeigeeinstellung hinzugefügt: normierte oder rohe Gerätekennungen anzeigen +- WebGUI: Neue Einstellung "Benutzerfreigabezuweisung aktivieren" für Cache-Pool hinzugefügt +- WebGUI: Unterstützung für private Docker-Registrierungen mit Grundauth. + oder ohne Auth., und Verbesserungen für Token-basierte Authentifizierung +- WebGUI: Verschiedene Bildtypen zum Hochladen mit maximal 512K zulassen +- WebGUI: Erlauben Sie doppelten Containern unterschiedliche Icons +- WebGUI: Erlaube Markdown innerhalb von Containerbeschreibungen +- WebGUI: Ändern Sie das Symbol für Motherboard-Informationen von Zahnrad (Einstellungen) zu Info +- WebGUI: Geändert: Konsistenz zwischen Dashboard und Docker beim Zugreifen auf Protokolle +- WebGUI: Dashboard: fehlende Schnittstellenstatistiken reparieren +- WebGUI: Dashboard: Stilanpassung für Serversymbol +- WebGUI: Ungültige Sitzung erfassen und aktuelles Tab abmelden +- WebGUI: Diagnostik: Entfernen Sie SHA256-Hashes +- WebGUI: "?" in Freigabenamen untersagen +- WebGUI: Anzeigeeinstellungen: Farben sollten 3 oder 6 Zeichen hexadezimale Ziffern sein +- WebGUI: CA-Profile in der Liste Container hinzufügen nicht anzeigen +- WebGUI: Docker: Erlauben Sie BTRFS oder XFS Vdisk, oder Ordnerlocation +- WebGUI: Docker: Intuitivere Handhabung von Bildern +- WebGUI: Fix 'Erscheinen' +- WebGUI: Beheben Sie Azure/Gray-Switch-Sprache, die abgeschnitten wird +- WebGUI: Bannerwarnungen beheben, die ohne Neuladen der Seite nicht zu entlassen sind +- WebGUI: Gestartete VMs erscheinen nicht im Dashboard reparieren +- WebGUI: Absturz beim Lesen sehr großer Logdateien reparieren (Ausgabe auf 1000 Zeilen begrenzt). +- WebGUI: Alle Benachrichtigungen beenden reparieren +- WebGUI: Nicht in der Lage, den Paritätsprüfungszeitplan zu ändern, falls kein Cache-Pool vorhanden ist, beheben +- WebGUI: Benachrichtigungen, die ständig wieder erscheinen, reparieren +- WebGUI: Nicht in der Lage, obere rechte Symbole zu verwenden, falls Benachrichtigungen vorhanden sind, beheben +- WebGUI: Falschen Docker-Run-URL-Verweis beheben +- WebGUI: Fix: Dashboard / Docker-Scrolling auf iPad-Geräten +- WebGUI: Fix: Ordnungsgemäße Samesite-Cookie setzen (Anmeldeproblem mit Safari reparieren) +- WebGUI: Für Raid6 btrfs Pool Datenprofil verwenden Sie raid1c3 Metadataprofil. +- WebGUI: Neuanordnung von Icon-Buttons +- WebGUI: Hauptseite: Verschiebe-Button ausblenden, wenn keine Benutzerfreigaben aktiviert sind +- WebGUI: Mehrsprachig: Regression Error behoben: Fehlender Indikator für erforderliche Felder +- WebGUI: Mehrsprachig: Nicht in der Lage, Benutzer zu löschen / bearbeiten, beheben +- WebGUI: Netzwerkeinstellungen: Erster DNSv6-Servers anzeigen +- WebGUI: Netzwerk: Ermöglichen Sie den Metrikwert Null, um kein Standard-Gateway festzulegen +- WebGUI: Netzwerk: Datenschutz-Erweiterungen nicht gesetzt Problem beheben +- WebGUI: Neue Berechtigungen: Unterstützung von mehreren Cache-Pools +- WebGUI: Benachrichtigungen: Lücke in Weiß/Schwarz korrigieren +- WebGUI: Dateisystemkonfiguration zulassen, wenn Array für nicht einhängbare Volumes gestartet wird. +- WebGUI: Verhindern, dass "Add" zu Englisch zurückkehrt, wenn ein neuer Benutzer mit ungültigem Benutzernamen hinzugefügt wird +- WebGUI: Verhindern, dass gebundene nics auch an vfio-pci gebunden werden +- WebGUI: Entfernen von WG vom Dashboard, wenn keine Tunnels definiert sind +- WebGUI: Nachricht anzeigen, wenn zu viele Dateien zum Durchsuchen vorhanden sind +- WebGUI: Unterstützung von Links in Benachrichtigungen +- WebGUI: Autofan-Link im Dashboard unterdrücken, wenn Plugin nicht installiert ist +- WebGUI: WG im Dashboard unterdrücken, wenn keine Tunnels definiert sind +- WebGUI: Diagnostik auf Websocket umstellen +- WebGUI: SysDevs - warnen, wenn Seite verlassen, ohne zu speichern +- WebGUI: SysDevs-Überarbeitung mit vfio-pci.cfg-Bindung +- WebGUI: Tabed-Fensterauswahl +- WebGUI: Task-Plugins: Möglichkeit zur Definition von Display\_Name bieten +- WebGUI: Feedback.php aktualisieren +- WebGUI: jGrowl auf Version 1.4.7 aktualisieren +- WebGUI: noVNC auf v1.2.0 aktualisieren +- WebGUI: Gehäusesymbole aktualisiert +- WebGUI: Bildaktualisierungsdialog für Update-Eintrag im Docker-Kontextmenü verwenden +- WebGUI: VM-Manager: 'virtio-win-0.1.189-1' zur Liste VirtIO-ISOs hinzufügen +- WebGUI: VM-Manager: Fehlerbehebung: Wechsel von VM VNC-Grafik zu GPU-Passthrough +- WebGUI: VM-Manager: 'virtio-win-0.1.190-1' hinzufügen +- WebGUI: VM-Manager: Neue Einstellung "Netzwerkmodell" +- WebGUI: VMs: Fehlerbehebung: Hinzufügen von NICs oder VirtFS-Bereitstellungen zu einer VM ist eingeschränkt +- WebGUI: VMs: Fehler: Seltene Fälle, in denen vdisk auf Auto standardmäßig eingestellt wird, wenn er manuell sein sollte +- WebGUI: VMs: Standardnetzwerkmodell auf virtio-net ändern +- WebGUI: VMs: Intuitive Handhabung der Bildauswahl +- WebGUI: PHP-Syntaxfehler vermeiden, wenn die Autov() -Quelldatei nicht existiert +- WebGUI: Bessere Handhabung mehrerer nics mit vfio-pci +- WebGUI: falsches Standardgehäusesymbol im Anmeldeformular korrigieren +- WebGUI: Versuchen Sie nicht, SMART-Infos anzuzeigen, die Spin-Up verursachen, bei bereits heruntergefahrenen Geräte +- WebGUI: dockerMan: Erlaube "mehr lesen" in der erweiterten Ansicht +- WebGUI: dockerMan: Nur docker-kompatiblen Namen erlauben +- WebGUI: dockerMan: Wählbarer Start bei Installation +- WebGUI: Fix: jGrowl deckt Buttons ab +- WebGUI: Problem mit Anmeldeaufforderung beim Wechsel zwischen Servern beheben +- WebGUI: andere verschiedene Verbesserungen +- WebGUI: Pools, die nicht für Benutzerfreigaben aktiviert sind, sollten nicht für Cache wählbar sein +- WebGUI: Eingaben beim loggen von tail\_log bereinigen +- WebGUI: Standardgehäusesymbol 'Mid-Tower' festlegen +- WebGUI: Unterstützung für das Hoch- und Herunterfahren sowie die Temperaturüberwachung von nicht zugewiesenen Geräten +- WebGUI: Deaktivieren der Benutzername-Autovervollständigung im Anmeldeformular +- WebGUI: VM-Manager: VNC-Port-Einstellungen beibehalten +- WebGUI: VNC: Browser-Cache-Busting hinzufügen + +["WireGuard" und das "WireGuard"-Logo sind eingetragene Marken von Jason A. Donenfeld.](https://www.wireguard.com/) diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md new file mode 100644 index 0000000000..2c0513a936 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md @@ -0,0 +1,64 @@ +## Version 6.9.1 2021-03-08 + +## Bemerkenswerte Fehlerkorrekturen und Verbesserungen + +Behobenes Problem, bei dem der Code außerhalb des Unraid OS Management Utilitys, der +`smartctl` aufgerufen hat, Bedingungen einrichtete, unter denen Geräte nie heruntergefahren wurden. +Hinweis: Sie benötigen nach wie vor das SAS +Spindown +Plugin von +[@doron](https://forums.unraid.net/profile/8006-doron/), +um die Spindown-Unterstützung für SAS-Geräte ordnungsgemäß zu unterstützen. + +Für Docker: Wenn ein im Kernel enthaltener GPU-Treiber geladen wird, der zur Erstellung von `/dev/dri/*` Geräteknoten führt, setzen wir die Berechtigungen für diese Knoten auf `0777`, um die Integration von Containern zu erleichtern, die GPU für das Transkodieren nutzen. + +Die Eingabe von 'exit' in einem Terminalfenster schließt jetzt das Fenster (yay!). + +Wir haben einen 'no-cache'-Header zum NoVNC-Webzugang hinzugefügt, damit zukünftige Unraid OS-Versionen keine veralteten Webkomponenten mehr haben. + +Das openssl-Paket wurde auf Version 1.1.1j aktualisiert, welches Sicherheitsupdates enthält. + +Der Linux-Kernel wurde auf 5.10.21 aktualisiert, ein Patch-Release des 5.10 LTS-Kernels. + +Enthaltene Kernel-Konfigurationseinstellungen sind erforderlich, um bestimmte Hardware-Überwachungsgeräte einzubeziehen, und Unterstützung für neue Geräte wurde hinzugefügt. + +### Treiberaktualisierungen + +Der Nvidia-GPU-Treiber wurde auf 460.56 aktualisiert und sollte mit +Kernel 5.10.21 funktionieren. Bitte installieren Sie +[@ich777](https://forums.unraid.net/profile/72388-ich777/)'s +Nvidia-Driver +Plugin, +um diesen Treiber herunterzuladen und zu installieren. + +## Änderungsprotokoll gegenüber Unraid OS 6.9.0 + +#### Grunddistro + +- openssl: Version 1.1.1j (CVE-2021-23841 CVE-2021-23840) +- openssl-solibs: Version 1.1.1j +- ttyd: Version 1.6.3 + +#### Linux-Kernel + +- Version 5.10.21 +- CONFIG\_WATCHDOG: Watchdog-Timer-Unterstützung +- mehrere neue hwmon-Treiber hinzugefügt + +#### Verwaltung + +- emhttp: überwachene Partitionsstatistiken anstatt Gerätestatistiken in der Logik zum Herunterfahren/Aufwachen +- rc.local: Sicherstellen, dass erforderliche Verzeichnisse auf dem USB-Flash-Boot-Gerät vorhanden sind +- rc.local: für Docker-Container: Zugriff auf Grafikkartengeräteknoten /dev/dri/\* gewähren +- rc.nginx: Cache-Control:nocache-Header zu novnc hinzufügen +- WebGUI: Erhöhung des Syslog-Puffers von 1000 auf 3000 Zeilen +- WebGUI: SysDevs behebt Anzeigefehler +- WebGUI: Diagnosen: modprobe.d-Dateien einbeziehen +- WebGUI: Diagnosen: go als go.txt einfügen +- WebGUI: Share-Sicherheitshilfe aktualisieren +- WebGUI: Spendenlinks in Vorlagen zugunsten von Links in CA-Profilen missbilligen +- WebGUI: Schützen Sie das GUI vor ungültigen .page-Dateien +- WebGUI: IPv6-Multicast-Einträge in der Routentabellenanzeige unterdrücken +- WebGUI: Synchronisieren Sie helptext.txt mit dem Repository von lang-en\_US +- WebGUI: Benutzerverwaltung - Deaktivieren der Passwort-Autovervollständigung +- WebGUI: Dashboard: Behebung der Farbe für die Ausnutzung der Festplatte diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md new file mode 100644 index 0000000000..b5df5435fe --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md @@ -0,0 +1,45 @@ +## Version 6.9.2 2021-04-07 + +### **Einschränkungen bei fehlgeschlagenen Anmeldungen** + +Für den WebGUI-Login erhalten Sie jetzt 3 Anmeldeversuche pro IP-Adresse, bevor eine 15-minütige Abkühlung erzwungen wird. Außerdem werden die Zeitstempel der letzten drei fehlgeschlagenen Anmeldeversuche pro IP-Adresse in Dateien gespeichert, die unter `/var/log/pwfail/` zu finden sind. Beachten Sie, dass dies nur für WebGUI-Logins gilt, nicht für ssh oder telnet. + +### **Treiber-Updates** + +Wir haben den GPU-Treiber des Nvidia-Herstellers auf Version 465.19.01 aktualisiert. Nutzen Sie dieses [praktische Plugin](https://raw.githubusercontent.com/ich777/unraid-nvidia-driver/master/nvidia-driver.plg) von Community Developer [@ich777](https://forums.unraid.net/profile/72388-ich777/), um die Installation des richtigen Treibers zu erleichtern. + +## Änderungsprotokoll vs. Unraid OS 6.9.1 + +#### Grunddistro + +- docker: Version 20.10.5 +- fuse3: Version 3.10.2 +- nginx: Version 1.19.9 +- samba: Version 4.12.14 (CVE-2020-27840 CVE-2020-27840) + +#### Linux-Kernel + +- Version 5.10.28 +- Alle CONFIG\_NF\_\* Module einbinden +- oot: realtek r8125: Version 9.005.01 + +#### Verwaltung + +- emhttpd: Erkennung von Geräte-Spinnen außerhalb des Bandes +- shfs: Füge Unterstützung für 'copy\_file\_range()' hinzu +- shfs: 'mknod' zur Erstellung einer FIFO fixen +- WebGUI: Anmelden: Maximal 3 fehlgeschlagene Anmeldeversuche pro 15-Minuten-Intervall implementieren +- WebGUI: Fehler in den Benachrichtigungslinks beheben, wenn im Zusammenfassungsmodus angezeigt +- WebGUI: Plugins: Inkompatible Plugins nach ../plugins-error verschieben +- WebGUI: Fehlendes CSRF beim Löschen eines Pools beheben +- WebGUI: .sweet-alert Farbe fixen +- WebGUI: Anpassungen der Übersetzungen +- WebGUI: Diagnosen: Doppelklicks auf dem Download-Button verhindern +- WebGUI: Fix für nicht versendete Benachrichtigungen bei Standardnutzungsschwellenwerten +- WebGUI: CSS span.select Hintergrundfarbe fixen +- WebGUI: Diagnosen Nachrichten linksbündig ausrichten +- WebGUI: Javascript-Fehler in DeviceInfo.page behoben, der das Speichern von Einstellungen verhinderte +- WebGUI: DeviceInfo.page aktualisieren +- WebGUI: Verhinderung des automatischen Ausfüllens von Passwörtern in Containern +- WebGUI: Docker: CPU-Pinning nicht zulassen, wenn keine Vorlage vorhanden +- WebGUI: Korrigiere die Farbe von .sweet-alert .sa-icon, \* im CSS diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md new file mode 100644 index 0000000000..f6c3c18afa --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md @@ -0,0 +1,865 @@ +# Version 7.0.0 2025-01-09 + +Diese Version des Unraid OS beinhaltet bedeutende Verbesserungen in allen Subsystemen, während versucht wird, die Abwärtskompatibilität so weit wie möglich aufrechtzuerhalten. + +Besonderen Dank an: + +- @bonienl, @dlandon, @ich777, @JorgeB, @SimonF und @Squid für ihre Leitung, Unterstützung und Entwicklungsarbeit an dieser Veröffentlichung. +- @bonienl für die Zusammenführung ihres **Dynamix File Manager** Plugins in das WebGUI +- @Squid für die Zusammenführung ihrer **GUI Search** und **Unlimited Width Plugin** Plugins in das WebGUI +- @ludoux (**Proxy Editor** Plugin) und @Squid (**Community Applications** Plugin) für die Pionierarbeit an der HTTP-Proxy-Unterstützung, von der mehrere Ideen in die Webgui integriert wurden. +- @ich777 für die Pflege von Drittanbieter-Treiber-Plugins sowie für die [Tailscale Docker Integration](#tailscale-integration) +- @SimonF für bedeutende neue Funktionen im Unraid OS VM-Manager +- @EDACerton für die Entwicklung des Tailscale Plugins + +Besuchen Sie die [Beiträger zu Unraid auf GitHub](https://github.com/unraid/webgui/graphs/contributors?from=2023-09-08\&to=2025-01-08\&type=c) mit Danksagungen an diese Community-Mitglieder, die PRs beigesteuert haben (dies sind GitHub-IDs): + +- almightyYantao +- baumerdev +- Commifreak +- desertwitch +- dkaser +- donbuehl +- FunkeCoder23 +- Garbee +- jbtwo +- jski +- Leseratte10 +- Mainfrezzer +- mtongnz +- othyn +- serisman +- suzukua +- thecode + +Und ein aufrichtiger Dank an alle, die Features angefordert, Fehler gemeldet und Vorabversionen getestet haben! + +## Upgrade + +### Bekannte Probleme + +#### ZFS Pools + +Wenn Sie ZFS-Pools verwenden, beachten Sie bitte Folgendes: + +- Sie werden eine Warnung über nicht unterstützte Funktionen in Ihren vorhandenen ZFS-Pools sehen. Dies liegt daran, dass die Version von ZFS in 7.0 im Vergleich zu 6.12 aktualisiert wurde und neue Funktionen enthält. Diese Warnung ist harmlos, das bedeutet, dass Ihr Pool weiterhin normal funktioniert. Es erscheint eine Schaltfläche, mit der Sie einen Pool auf die neuen ZFS-Funktionen aktualisieren können; jedoch macht Unraid OS von diesen neuen Funktionen keinen Gebrauch, und einmal aktualisiert, können frühere Versionen von Unraid OS den Pool nicht mehr einhängen. +- Ebenso werden neue Pools, die in 7.0 erstellt wurden, in 6.12 aufgrund von ZFS nicht eingehängt, da Downgrades nicht unterstützt werden. Es gibt keinen Weg, dies zu umgehen. +- Wenn Sie sich entscheiden, von 7.0 auf 6.12 herunterzustufen, werden zuvor vorhandene hybride Pools beim Neustart in 6.12 nicht erkannt. Um dies zu umgehen, klicken Sie zuerst auf Tools/New Config in 7.0, um alle Slots zu erhalten, und starten Sie dann in 6.12 neu. Ihre hybriden Pools sollten korrekt importiert werden. +- ZFS-Reserven werden in dieser Version nicht unterstützt. Wenn Sie in 6.12 einen hybriden Pool erstellt haben, der Reserven enthält, entfernen Sie bitte das 'reserves' vdev vor dem Upgrade auf v7.0. Dies wird in einer zukünftigen Version behoben. +- Derzeit sind TrueNAS-Pools nicht importierbar. Dies wird in einer zukünftigen Version behoben. +- Wenn Sie **Docker data-root=directory** auf einem ZFS-Volume verwenden, siehe [Unterstützung für Overlay2 Speichertreiber hinzufügen](#add-support-for-overlay2-storage-driver). +- Wir prüfen, dass VM-Namen keine Zeichen enthalten, die für ZFS ungültig sind. Vorhandene VMs werden nicht geändert, aber bei ungültigen Zeichen wird ein Fehler angezeigt und das Update deaktiviert. + +#### Allgemeine Pool-Probleme + +Wenn Ihre bestehenden Pools mit *falschem Poolstatus, ungültige Erweiterung* oder *falscher Poolstatus. Zu viele falsche oder fehlende Geräte* nicht importiert werden können, siehe diesen [Forumspost](https://forums.unraid.net/topic/184435-unraid-os-version-700-available/#findComment-1508012). + +#### Probleme beim Spindown der Festplatte + +Laufwerke können möglicherweise nicht ausgehen, wenn sie an ältere Marvell-Laufwerkscontroller angeschlossen sind, die den sata\_mv-Treiber verwenden (z.B. Supermicro SASLP und SAS2LP) oder an ältere Intel-Controller (z.B. ICH7-ICH10). Dies könnte durch ein zukünftiges Kernel-Update behoben werden. + +#### Übermäßige Aktivität des Flash-Laufwerks verlangsamt das System + +Wenn das System langsam läuft, überprüfen Sie die Hauptseite und sehen Sie nach, ob während des normalen Betriebs +signifikante kontinuierliche Lesevorgänge vom Flash-Laufwerk angezeigt werden. Wenn ja, könnte das System ausreichend Speicher +beanspruchen, um das Betriebssystem aus dem RAM zu drängen und zu veranlassen, dass es erneut vom Flash-Laufwerk gelesen wird. Vom Web-Terminal aus geben Sie ein: + +```shell +touch /boot/config/fastusr +``` + +und dann neu starten. Dies wird ungefähr 500 MB RAM verwenden, um sicherzustellen, dass die OS-Dateien immer im Speicher bleiben. Bitte lassen Sie uns wissen, ob dies hilft. + +#### Neue Windows-Änderungen können den Zugriff auf öffentliche Freigaben beeinträchtigen + +Aufgrund der jüngsten Sicherheitsänderungen in Windows 11 24H2 könnte der "Gast"-Zugriff auf öffentliche Unraid-Freigaben nicht funktionieren. Der einfachste Weg, dies zu umgehen, besteht darin, in Unraid einen Benutzer mit dem gleichen Namen wie das Windows-Konto zu erstellen, das Sie zur Verbindung verwenden. Wenn das Unraid-Benutzerkennwort nicht mit dem Windows-Konto-Passwort übereinstimmt, wird Windows nach Anmeldeinformationen fragen. + +Wenn Sie ein Microsoft-Konto verwenden, könnte es besser sein, einen Benutzer in Unraid mit einem einfachen Benutzernamen zu erstellen, ein Passwort festzulegen und dann in Windows zu ***Systemsteuerung → Anmeldeinformationsverwaltung → Windows-Anmeldungen → Neue Windows-Anmeldedaten hinzufügen*** zu gehen und den korrekten Unraid-Servernamen und die Anmeldedaten hinzuzufügen. + +Alternativ können Sie [Windows Gast-Fallback erneut aktivieren](https://techcommunity.microsoft.com/blog/filecab/accessing-a-third-party-nas-with-smb-in-windows-11-24h2-may-fail/4154300) +(nicht empfohlen). + +#### Probleme aufgrund von Realtek-Netzwerkkarten + +Es gab mehrere Berichte über Probleme mit dem Realtek-Treiber-Plugin nach der Aktualisierung auf die neuesten Kernel. Sie sollten es möglicherweise vorsorglich deinstallieren, bevor Sie ein Upgrade durchführen, oder es nachträglich entfernen, falls Netzwerkprobleme auftreten. + +#### Eine virtuelle NIC wird auf bestimmten Systemen als eth0 zugewiesen + +In einigen Systemen mit IPMI KVM wird eine virtuelle NIC eth0 anstelle der erwarteten NIC zugewiesen. Sehen Sie sich diesen [Forumspost](https://forums.unraid.net/bug-reports/stable-releases/61214-no-network-after-updating-eth0-assigned-to-virtual-usb-nic-cdc-ethernet-device-with-169-ip-instead-of-mellanox-10gbe-nic-r3407/) für Optionen an. + +#### Probleme bei der Verwendung benutzerdefinierter Docker-Netzwerke + +Wenn bestimmte benutzerdefinierte Docker-Netzwerke von Ihren Docker-Containern nicht verwendet werden können, navigieren Sie zu ***Einstellungen → Docker*** und korrigieren Sie die CIDR-Definitionen für die +Subnetzmaske und den DHCP-Pool in diesen benutzerdefinierten Netzwerken. Die zugrunde liegenden Systeme sind strenger geworden und ungültige CIDR-Definitionen, die in früheren Versionen funktionierten, funktionieren nicht mehr. + +### Rückschritte + +Siehe die Warnungen unter **Bekannte Probleme** oben. + +Der Dynamix File Manager, die GUI-Suche und die Plugins für das unbegrenzte Breiten-Plugin sind jetzt in Unraid integriert. Wenn Sie zu einer früheren Version zurückkehren, +müssen Sie diese Plugins neu installieren, um deren Funktionalität beizubehalten. + +Wenn Sie die Unraid-Array deaktiviert haben, empfehlen wir, es vor dem Rückrollen wieder zu aktivieren. + +Wenn Sie zuvor Ausgangsproxies über den Proxy Editor-Plugin oder einen anderen Mechanismus eingerichtet hatten, müssen Sie diesen Mechanismus nach dem Rückrollen erneut aktivieren. + +Wenn Sie nach der Aktivierung des [overlay2-Speichertreibers](#add-support-for-overlay2-storage-driver) zurückrollen, müssen Sie das Docker-Verzeichnis löschen und Docker die Image-Layer neu herunterladen lassen. + +Wenn Sie zurückrollen, nachdem Sie [Tailscale in einem Docker-Container](#tailscale-integration) installiert haben, müssen Sie den Container bearbeiten, eine Dummy-Änderung vornehmen und **Anwenden**, um den Container ohne Tailscale-Integration neu zu erstellen. + +Nach dem Zurückrollen nehmen Sie eine Dummy-Änderung an jeder WireGuard-Konfiguration vor, um die Einstellungen für diese Version von Unraid zu erhalten. + +Wenn Sie auf eine frühere Version als 6.12.14 zurückrollen, beachten Sie auch die [6.12.14 Versionshinweise](6.12.14.md#rolling-back). + +## Speicher + +### Unraid-Array optional + +Sie können jetzt die Anzahl der unRAID-Arrayslots auf 'keine' setzen. Dies ermöglicht, das Array zu starten, +ohne dass Geräte dem unRAID-Array selbst zugewiesen sind. + +Wenn Sie einen reinen SSD/NVMe-Server betreiben, empfehlen wir, alle Geräte einem oder mehreren ZFS/BTRFS-Pools zuzuweisen, da Trim/Discard mit Unraid-Array-Geräten nicht unterstützt wird. + +Um das Unraid-Array von einem bestehenden Server zu entfernen, weisen Sie zuerst alle Array-Slots auf der Hauptseite neu zu und setzen dann die Slots auf 'none'. + +Bei Neuinstallationen ist die standardmäßig reservierte Anzahl der Slots für das Unraid-Array jetzt 'none'. + +### Sekundären Speicher zuweisen + +Freigaben können jetzt mit Pools für sowohl primären als auch sekundären Speicher konfiguriert werden, und der Mover wird Dateien zwischen diesen Pools verschieben. + +### ReiserFS-Dateisystemoption wurde deaktiviert + +Da ReiserFS aus dem Linux-Kernel entfernt werden soll, wurde die Option deaktiviert, ein Gerät mit ReiserFS zu formatieren. +Sie können diese Mover-Funktion verwenden, um eine Array-Disk zu leeren, bevor Sie mit einem anderen Dateisystem neu formatieren, siehe unten. Wir werden in einer zukünftigen Version eine webGUI-Schaltfläche dafür hinzufügen. + +### Mover verwenden, um ein Array-Disk zu leeren + +Mover kann jetzt verwendet werden, um eine Array-Disk zu leeren. Mit gestartetem Array führen Sie dies in einem Web-Terminal aus: + +```bash +mover start -e diskN |& logger & # wobei N [1..28] ist +``` + +Mover prüft jedes Top-Level-Verzeichnis (Freigabe) und verschiebt dann Dateien einzeln zu anderen Disks +im Array gemäß den üblichen Konfigurationseinstellungen (einschließen/ausschließen, Teilniveau, Zuteilungsmethode). Ziele für Umzüge sind auf das unRAID-Array beschränkt. + +Überwachen Sie das Syslog auf den Status. Wenn der Mover-Vorgang endet, zeigt das Syslog eine Liste der Dateien an, die nicht verschoben werden konnten: + +- vielleicht war die Datei in Gebrauch +- vielleicht befindet sich die Datei auf oberster Ebene von /mnt/diskN +- vielleicht hatten wir keinen Platz mehr + +### Vorhandene Freigaben verwalten + +Der Unraid OS Docker-Manager ist standardmäßig so konfiguriert, dass er diese vorhandenen Freigaben verwendet: + +- system - wird verwendet, um Docker-Image-Schichten in einem Loopback-Image zu speichern, das in system/docker gespeichert ist. +- appdata - wird von Docker-Anwendungen verwendet, um Anwendungsdaten zu speichern. + +Der Unraid OS VM-Manager ist standardmäßig so konfiguriert, dass er diese vorhandenen Freigaben verwendet: + +- system - wird verwendet, um Libvirt-Loopback-Image zu speichern, das in system/libvirt gespeichert ist. +- domains - wird zum Speichern von VM-Vdisk-Images verwendet +- isos - wird zum Speichern von ISO-Boot-Images verwendet + +Wenn Docker oder VMs aktiviert sind, werden die erforderlichen vorhandenen Freigaben je nach diesen Regeln bei Bedarf erstellt: + +- Wenn ein Pool namens 'cache' vorhanden ist, werden vordefinierte Freigaben mit 'cache' als Primärspeicher ohne Sekundärspeicher erstellt. +- Wenn kein Pool namens 'cache' vorhanden ist, werden die vordefinierten Freigaben mit dem alphabetisch ersten vorhandenen Pool als Primärspeicher ohne Sekundärspeicher erstellt. +- Wenn keine Pools vorhanden sind, werden die vordefinierten Freigaben auf dem Unraid-Array als Primärspeicher ohne Sekundärspeicher erstellt. + +### ZFS-Implementierung + +- Hybrid-ZFS-Pools auch Sub-Pools (außer 'spares') unterstützen +- Unterstützung der Wiederherstellung von mehreren Laufwerksausfällen in einem ZFS-Pool mit ausreichendem Schutz +- Unterstützung von LUKS-Verschlüsselung für ZFS-Pools und -Laufwerke +- Angemessene Standardprofile für neue ZFS-Pools und Sub-Pools festlegen +- Unterstützung der Aktualisierung von ZFS-Pools beim Anzeigen des Poolstatus. Hinweis: Nach der Aktualisierung ist das + Volume möglicherweise in früheren Versionen von Unraid nicht mehr einhängbar. + +### Zuteilungsprofile für Btrfs, ZFS und ZFS-Sub-Pools + +Wenn ein Btrfs- oder ZFS-Pool/Sub-Pool erstellt wird, wird die Standard-Speicherzuweisung durch die Anzahl der anfangs zugewiesenen Slots (Geräte) zum Pool bestimmt: + +- Für ZFS-Hauptpool (Root): + - Slots == 1 => Single + - Slots == 2 => Spiegel (1 Gruppe von 2 Geräten) + - Slots >= 3 => Raidz1 (1 Gruppe von 'Slots' Geräten) + +- Für ZFS-Spezial-, Log- und Deduplizierungs-Sub-Pools: + - Slots == 1 => Single + - Slots%2 == 0 => Spiegel (Slots/2 Gruppen von 2 Geräten) + - Slots%3 == 0 => Spiegel (Slots/3 Gruppen von 3 Geräten) + - Andernfalls => Streifen (1 Gruppe von 'Slots' Geräten) + +- Für ZFS-Cache- und Reserve-Sub-Pools: + - Slots == 1 => Single + - Slots >= 2 => Streifen (1 Gruppe von 'Slots' Geräten) + +- Für Btrfs-Pools: + - Slots == 1 => Single + - Slots >= 2 => Raid1 (d.h., was Btrfs „Raid1“ nennt) + +### Poolüberlegungen + +Beim Hinzufügen von Geräten zu einem Einzel-Slot-Pool gelten folgende Regeln: + +Für btrfs: Das Hinzufügen eines oder mehrerer Geräte zu einem Einzel-Slot-Pool führt zur Umwandlung des +Pools in RAID1 (also das, was btrfs als RAID1 definiert). Das Hinzufügen beliebiger Geräte zu einem +bestehenden Multiple-Slot btrfs-Pool erhöht die Speicherkapazität des Pools und ändert das Speicherprofil nicht. + +Für zfs: Hinzufügen eines, zweier oder dreier Geräte zu einem Einzel-Slot-Pool führt zu einer Umwandlung +des Pools in 2-Wege-, 3-Wege- oder 4-Wege-Spiegelung. Das Hinzufügen eines einzelnen Geräts zu einem +bestehenden 2-Wege- oder 3-Wege-Spiegel konvertiert den Pool in eine 3-Wege- oder 4-Wege-Spiegelung. + +Ändern des Dateisystemtyps eines Pools: + +Für alle Einzel-Slot-Pools kann der Dateisystemtyp geändert werden, wenn das Array gestoppt ist. + +Für btrfs/zfs-Multiple-Slot-Pools kann der Dateisystemtyp nicht geändert werden. Um die Geräte wiederzuverwenden, +müssen Sie die Schaltfläche Pool löschen klicken. + +### Andere Funktionen + +- Geräte einer Pool-Gruppe gleichzeitig hoch- und runterfahren +- Fügen Sie die Schaltfläche "Pool löschen" hinzu, die alle Geräte eines Pools unzuweist und dann den Pool entfernt. Die Geräte selbst werden nicht geändert. Dies ist nützlich, wenn Geräte physisch von einem Server entfernt werden. +- Fähigkeit hinzufügen, die Verschlüsselungsphrase/Keyfile für LUKS-verschlüsselte Festplatten zu ändern. +- Einführung der Variable 'config/share.cfg' 'shareNOFILE', die maximal offene Dateideskriptoren für den shfs-Prozess festlegt (siehe die bekannten Probleme). + +## VM-Manager + +### Verbesserungen + +Unterstützung für VM-Klone, Snapshots und evdev-Durchleitung hinzugefügt. + +Der VM-Editor hat jetzt einen neuen schreibgeschützten Inline-XML-Modus für fortgeschrittene Benutzer, der verdeutlicht, wie die GUI-Auswahlen das zugrunde liegende XML der VM beeinflussen. + +Vielen Dank an @SimonF für seine kontinuierlichen Verbesserungen der VMs. + +### Andere Änderungen + +- **VM-Tab** + - Alle Grafikkarten und IP-Adressen anzeigen, die VMs zugewiesen sind + - noVNC-Version: 1.5 +- **Einstellungen des VM-Managers** + - Option zum Deaktivieren von VM-Autostart hinzugefügt +- **VM-Vorlage hinzufügen/bearbeiten** + - Option "Inline-XML-Ansicht" hinzugefügt + - Unterstützung für benutzererstellte VM-Vorlagen + - QEMU ppc64 Ziel hinzufügen + - qemu:override Unterstützung hinzufügen + - Feature "QEMU-Befehlszeilen-Durchschleifung" hinzufügen + - Funktion zur Unterstützung von VM-Multifunktionen, einschließlich "PCI Andere" hinzufügen + - Erweiterungen der VM-Vorlage für Windows VMs, einschließlich hypervclock-Unterstützung + - Option "migrierbar" für emulierte CPU hinzufügen + - Offset- und Timer-Unterstützung hinzufügen + - Option ohne Tastaturlayout hinzufügen und virtuelle GPU-Standardtastatur darauf einstellen + - Option 'nogpu' hinzufügen + - SR-IOV-Unterstützung für Intel iGPU hinzufügen + - Speicherüberschreibung hinzufügen, um festzulegen, wo beim Hinzufügen einer VM Bilder erstellt werden. + - SSD-Flag für vDisks hinzufügen + - Unmap-Unterstützung hinzufügen + - Überprüfen, ob der VM-Name keine Zeichen enthält, die unter ZFS nicht gültig sind. +- **Dashboard** + - VM-Nutzungsstatistiken zum Dashboard hinzufügen, aktivieren Sie die Option unter ***Einstellungen → VM-Manager → VM-Nutzung anzeigen*** + +## Docker + +### Verhinderung von Docker-Fork-Bombs + +Um "Docker-Fork-Bombs" zu verhindern, haben wir eine neue Einstellung eingeführt, ***Einstellungen → Docker → Docker PID Limit***, die die maximale Anzahl an Prozess-IDs angibt, die ein Container aktiv haben kann (Standardwert: 2048). + +Wenn Sie einen Container haben, der mehr PIDs benötigt, können Sie entweder diese Einstellung erhöhen oder für einen spezifischen Container durch Hinzufügen von `--pids-limit 3000` zur Docker-Vorlage *Extra-Parameter* Einstellung übersteuern. + +### Unterstützung für overlay2 Speicher-Treiber hinzufügen + +Verwenden Sie auf einem ZFS-Volume **Docker data-root=directory**, empfehlen wir, zu ***Einstellungen → Docker*** zu navigieren und den **Docker-Speicher-Treiber** auf **overlay2** umzuschalten, dann den Verzeichnisinhalt zu löschen und Docker die Image-Ebenen neu herunterladen zu lassen. +Die veraltete **native** Einstellung verursacht erhebliche Stabilitätsprobleme auf ZFS-Volumes. + +Wenn die Beibehaltung der Möglichkeit zum Downgrade auf frühere Versionen wichtig ist, dann wechseln Sie stattdessen zu **Docker data-root=xfs vDisk**. + +### Andere Änderungen + +- Siehe [Tailscale-Integration](#tailscale-integration) +- Erlauben Sie benutzerdefinierte Registry mit einer Port-Spezifikation +- Verwenden Sie "Lazy Unmount", um ein Blockieren des Array-Stopps zu verhindern +- Aktualisiert, um mehrere Sicherheitsprobleme (CVE-2024-21626, CVE-2024-24557) zu beheben +- Docker Manager: + - Erlauben Sie Benutzern, Container-Netzwerke im WebGUI auszuwählen + - Nicht Docker-Manager verwaltete Container korrekt identifizieren/anzeigen +- rc.docker: + - Nur Unraid verwaltete Container stoppen + - Neustartpolitik von externen Containern respektieren +- MTU der Docker Wireguard-Bridge auf Wireguard-Standard-MTU einstellen + +## Netzwerk-Änderungen + +### Tailscale-Integration + +Unraid OS unterstützt [Tailscale](https://tailscale.com/) durch die Nutzung eines Plugins, das vom Community-Entwickler EDACerton erstellt wurde. Wenn dieses Plugin installiert ist, werden Tailscale-Zertifikate für den https-WebGUI-Zugriff unterstützt, +und die Tailnet-URLs werden auf der Seite ***Einstellungen → Managementzugriff*** angezeigt. + +Und in Unraid nativ können Sie Tailscale optional in fast jedem Docker-Container installieren, wodurch Sie die Möglichkeit haben, Container mit bestimmten Personen zu teilen, diese mit gültigen HTTPS-Zertifikaten zu nutzen und ihnen alternative Routen zum Internet über Exit-Knoten bereitzustellen. + +Weitere Details finden Sie in [den Dokumenten](../system-administration/secure-your-server/tailscale.mdx) + +### Unterstützung zur Einbettung des WebGUI in Frame + +Unterstützung für "Content-Security-Policy frame-ancestors" hinzugefügt, um automatisch zu erlauben, dass die WebGUI von Domänen eingebunden wird, für die es Zertifikate gibt. Es wird nicht exakt unterstützt, aber zusätzliche Anpassungen sind möglich, indem ein Skript verwendet wird, um den NGINX\_CUSTOMFA in `/etc/defaults/nginx` zu ändern. + +### Andere Änderungen + +- Upgrade auf OpenSSL 3 durchgeführt +- Erlauben Sie alle IPv4/IPv6 Adressen als Listener. Dieses löst das Problem, wenn sich IPv4 oder IPv6-Adressen dynamisch ändern. +- Samba: + - Fügen Sie nur eine IPv6-Abhöradresse hinzu, wenn NetBIOS deaktiviert ist + - Fix: MacOS kann nicht auf den 'Flash'-Share schreiben und die Time Machine-Kompatibilität wiederherstellen (Änderungen an der Frucht) +- Der VPN-Manager fügt jetzt alle Schnittstellen zu WireGuard-Tunneln hinzu. Nehmen Sie eine Dummy-Änderung am Tunnel vor, nachdem Sie die Netzwerkeinstellungen aktualisiert oder geändert haben, um die WireGuard-Tunnel-Konfigurationen zu aktualisieren. + +## webGUI + +### Integriertes Dynamix-Dateimanager-Plugin + +Klicken Sie auf das Dateimanager-Symbol und navigieren Sie durch Ihre Verzeichnisstruktur mit der Möglichkeit, allgemeine Aufgaben wie Kopieren, Verschieben, Löschen und Umbenennen von Dateien und Verzeichnissen durchzuführen. + +### Integriertes GUI-Suchplugin + +Klicken Sie auf das Suchsymbol in der Menüleiste und geben Sie den Namen der Einstellung, die Sie suchen, ein. + +### Ausgehender Proxy-Manager + +Wenn Sie zuvor das Proxy-Editor-Plugin verwendet haben oder einen ausgehenden Proxy für CA eingerichtet hatten, werden diese automatisch entfernt/importiert. Sie können sie dann unter ***Einstellungen → Ausgehender Proxy Manager*** anpassen. + +Weitere Details finden Sie im [Handbuch](../system-administration/secure-your-server/secure-your-outgoing-comms.mdx). + +Hinweis: Diese Funktion ist völlig unabhängig von eventuell verwendeten Reverse Proxys. + +### Benachrichtigungsagenten + +Benachrichtigungsagenten-XMLs werden jetzt als einzelne XML-Dateien gespeichert, was es einfacher macht, Benachrichtigungsagenten über Plugins hinzuzufügen. + +Siehe dieses [Beispiel-Plugin](https://github.com/Squidly271/Wxwork-sample) von @Squid + +- Behoben: Agentenbenachrichtigungen funktionieren nicht, wenn ein Problem mit der E-Mail-Benachrichtigung vorliegt + +### NTP-Konfiguration + +Für neue Installationen wird ein einzelner Standard-NTP-Server auf 'time.google.com' gesetzt. + +Wenn Ihr Server unsere vorherigen NTP-Standards von time1.google.com, time2.google.com etc. verwendet, +können in Ihrem Syslog möglicherweise einige verwirrende NTP-bezogene Nachrichten angezeigt werden. Um dies zu vermeiden, ziehen Sie in Betracht, auf unsere neuen Standards zu wechseln: navigieren Sie zu ***Einstellungen → Datum & Uhrzeit*** und konfigurieren Sie **NTP-Server 1** +als time.google.com, und lassen Sie alle anderen leer. + +Natürlich stehen Ihnen beliebige Zeitserver zur Verfügung. Dies ist nur, um Ihnen mitzuteilen, dass wir unsere Standards angepasst haben. + +### NFS-Freigaben + +Wir haben einige neue Einstellungen hinzugefügt, um Probleme mit NFS-Freigaben zu lösen. Auf ***Einstellungen → Globale Freigabeeinstellungen*** können Sie die Anzahl der Fuse-Dateideskriptoren anpassen und unter ***Einstellungen → NFS*** können Sie die NFS-Protokollversion und die Anzahl der verwendeten Threads anpassen. Details finden Sie in der Hilfe. + +- Unterstützung für NFS 4.1 und 4.2 hinzugefügt und NFSv4-Mounts standardmäßig zulassen +- Ein Textfeld zum Konfigurieren mehrzeiliger NFS-Regeln hinzufügen +- Fehlerbehebung: nfsd startet nicht korrekt neu + +### Dashboard + +- Server-Datum und -Uhrzeit zum Dashboard hinzufügen; klicken Sie auf die Uhrzeit, um die zugehörigen Einstellungen zu bearbeiten. +- Das **System**-Tile neu gestalten, um zu verdeutlichen, was angezeigt wird, einschließlich Tooltips. +- Nützliche Inhalte anzeigen, wenn Dashboard-Tiles minimiert sind. +- Docker-RAM-Nutzung im Dashboard anzeigen + - Docker-RAM-Nutzung zum Dashboard hinzufügen + - „Dienste“ in „System“ umbenennen +- Speicherleck auf den Seiten Dashboard, VM-Manager und Docker-Manager beheben + +### SMART-Verbesserungen + +- Angezeigte KB/MB/GB/TB in SMART-Attributen für SSDs hinzufügen +- 'Verbleibende SSD-Ausdauer' SMART-Attribut hinzufügen. + +### Diagnose + +- Fügen Sie gpujson von gpu\_statistics zu Diagnosen hinzu. +- Anonymisierung von LXC-Logs verbessert +- Wenn das FCP-Plugin installiert ist, Scan während der Diagnose durchführen +- phplog hinzufügen, um PHP-Fehler zu identifizieren +- Anonymisierung von IPv6-Adressen verbessert +- ps.txt entfernt, da es Passwörter in der Prozessliste aufdeckte + +### Andere Änderungen + +- Unterstützen Sie unterschiedliche Warn-/kritische Temperaturgrenzwerte für HDD/SSD/NVMe-Laufwerke. NVMe-Grenzwerte werden automatisch vom Laufwerk selbst festgelegt, + sehen Sie unter ***Einstellungen → Festplatteneinstellungen***, um die Grenzwerte für HDDs und SSDs festzulegen. Alle können für einzelne Laufwerke noch überschrieben werden. +- Seite ***Einstellungen → Lokale Konsoleneinstellungen*** mit Optionen für Tastaturlayout, Bildschirm-Timeout und persistente Bash-Historie hinzufügen +- Seite ***Einstellungen → Energiemodus*** hinzufügen, um das System auf Energieeffizienz, Ausgewogenheit oder Leistung zu optimieren +- Mit der Maus über einen Eintrag in **Tools** und **Settings** fahren, um ein Element als Favorit zu markieren, und schnell zur neuen obersten **Favoriten**-Seite zurückkehren. Oder die Favoritenfunktionalität unter \***Settings → Display Settings** deaktivieren. +- Verbesserter Herunterfahren/Neustart-Bildschirm, der mehr Details des Prozesses zeigt +- Benachrichtigungen vereinfachen, indem Untermenüs entfernt werden - Ansicht, Verlauf und Bestätigung gelten jetzt für alle Benachrichtigungstypen +- Datum & Zeit-Einstellungen von **Anzeigeeinstellungen** verschieben zu ***Einstellungen → Datum & Zeiteinstellungen*** +- ***Einstellungen → Anzeigeeinstellungen***: neue Einstellung "Breite", um größere Bildschirme besser zu nutzen +- NVMe-Stromverbrauch optional anzeigen; siehe ***Einstellungen → Laufwerkseinstellungen*** +- Web-Komponentenverbesserungen – Herabstufungen, Updates und Registrierung +- Formatierung neuer Laufwerke als ReiserFS verhindern +- Für Updates von Konfigurationsdateien atomare Schreibvorgänge verwenden +- Änderungen in den ZFS-Pooleinstellungen: + - Sinnvolle ZFS-Unterpool-Beschreibungen erstellen + - ZFS-Profiltext von 'raid0' zu 'stripe' ändern +- Zusätzliche Optionen zum Durchschleifen von USB-Geräten für smartmontools zur WebGUI hinzufügen (dank GitHub-Nutzer jski) +- UPS-Einstellungsseite (Dank an @othyn): + - Die Möglichkeit hinzufügen, eine manuelle USV-Kapazitätsanpassung festzulegen. +- UserEdit: Neben Ed25519, FIDO/U2F Ed25519 und RSA unterstützen auch SSH-Schlüsseltypen DSA, ECDSA und FIDO/U2F ECDSA. +- OpenTerminal: Die für den root-Benutzer in der /etc/passwd-Datei definierte Shell verwenden +- Option "Freigabe löschen" immer anzeigen, aber sie deaktivieren, wenn die Freigabe nicht leer ist + +## Verschiedenes + +### Andere Änderungen + +- Sehr altes 'memtest' durch Memtest86+ Version 6.20 ersetzen + - Es sind auch [Boot-Optionen](https://github.com/memtest86plus/memtest86plus#boot-options) verfügbar +- Unterstützung für Legacy Unraid.net-Zertifikate entfernen +- Funktionalität "UpdateDNS" entfernen, da keine Legacy-Non-Wildcard-SSL-Zertifikate 'Unraid.net' mehr verwendet werden +- Proxydaten und '&' aus dem 'go'-Skript entfernen +- Korrektur der passwd-Dateiverarbeitung +- Wenn avahidaemon läuft, name.local zu der Hosts-Datei hinzufügen +- keys.lime-technology.com aus der Hosts-Datei entfernen +- rc.S: wsync vom XFS-Mount entfernen, um ein Einfrieren des WebGUI bei intensiver E/A auf /boot zu verhindern +- make\_bootable\_linux: Version 1.4 + - Überprüfen, ob mtools installiert ist +- ntp.conf: Setzen Sie 'logconfig', um LOG\_INFO zu ignorieren. +- Beschleunigen: Verwenden Sie AVAHI-Reload anstelle eines Neustarts +- Linux-Kernel: Erzwingen Sie, dass alle fehlerhaften externen USB-Gehäuse von Seagate an usb-storage anstelle des UAS-Treibers gebunden werden +- Startup-Verbesserungen im rc.S Skript: + - Bootsektor-Backup automatisch reparieren. + - Alle Dateisysteme explizit aushängen, wenn das Booten nicht fortgesetzt werden kann. + - Schlechten Root-Wert in syslinux.cfg erkennen + - Neustart sollte Herunterfahren nicht aufrufen + - Leere cgroups bereinigen +- Samba smb.conf: Setzen "nmbd bind explicit broadcast = no", wenn NetBIOS aktiviert ist +- Fügen Sie fastcgi\_path\_info der Standard-nginx-Konfiguration hinzu. +- Stellen Sie sicher, dass Aufrufe von pgrep oder killall auf den aktuellen Namespace beschränkt sind +- (Erweitert) Möglichkeit hinzugefügt, benutzerdefinierte udev-Regeln aus `/boot/config/udev/` beim Booten anzuwenden +- Fehlerbehebung: Korrekte Handhabung einer leeren Trial.key, wenn der Download fehlschlägt +- Fehlerbehebung: PHP-Warnung für UPS-Status korrigiert +- Erstellen Sie eine aussagekräftige /etc/os-release-Datei +- Verschiedene Übersetzungskorrekturen +- Fehlerbehebung: JavaScript-Konsolenprotokollierungsfunktionalität wiederhergestellt +- Durch Klicken auf die Unraid-Versionsnummer werden die Versionshinweise von der Unraid Docs-Website geladen + +## Linux-Kernel + +- Version 6.6.68 + - CONFIG\_MISC\_RTSX\_PCI: Realtek PCI-E Kartenleser + - CONFIG\_MISC\_RTSX\_USB: Realtek USB Kartenleser + - CONFIG\_DRM\_XE: Intel Xe Grafikkarten + - CONFIG\_DRM\_XE\_DISPLAY: Anzeigeunterstützung aktivieren + - CONFIG\_AUDIT: Audit Unterstützung + - CONFIG\_USB\_SERIAL\_OPTION: USB-Treiber für GSM- und CDMA-Modems + - CONFIG\_USB\_SERIAL\_SIMPLE: Einfacher USB-Serientreiber + - CONFIG\_USB\_UAS: USB Attached SCSI + - CONFIG\_NFS\_V4\_1: NFS-Client-Unterstützung für NFSv4.1 + - CONFIG\_NFS\_V4\_1\_MIGRATION: NFSv4.1-Client-Unterstützung für Migration + - CONFIG\_NFS\_V4\_2: NFS-Client-Unterstützung für NFSv4.2 + - CONFIG\_NFS\_V4\_2\_READ\_PLUS: NFS: Unterstützung für den NFSv4.2 READ\_PLUS-Befehl aktivieren + - CONFIG\_NFSD\_V4\_2\_INTER\_SSC: NFSv4.2 Inter-Server zu Server COPY + - CONFIG\_USB\_NET\_CDC\_EEM: CDC EEM-Unterstützung + - CONFIG\_USB\_NET\_CDC\_NCM: Unterstützung für CDC NCM + - CONFIG\_USB\_SERIAL\_XR: USB MaxLinear/Exar USB zu Seriell Treiber + - CONFIG\_CAN: CAN-Bus-Subsystem-Unterstützung + - CONFIG\_CAN\_NETLINK: CAN-Gerätetreiber mit Netlink-Unterstützung + - CONFIG\_CAN\_GS\_USB: Geschwister Schneider UG und candleLight-kompatible Schnittstellen + - CONFIG\_SCSI\_LPFC: Emulex LightPulse Fibre Channel-Unterstützung + - CONFIG\_DRM\_VIRTIO\_GPU: Virtio GPU Treiber + - CONFIG\_DRM\_VIRTIO\_GPU\_KMS: Virtio GPU Treiber Modusunterstützung + - CONFIG\_LEDS\_TRIGGERS: LED Trigger Unterstützung + - CONFIG\_LEDS\_TRIGGER\_ONESHOT: LED One-shot Trigger + - CONFIG\_LEDS\_TRIGGER\_NETDEV: LED Netdev Trigger + - CONFIG\_QED: QLogic QED 25/40/100Gb Core-Treiber + - CONFIG\_QED\_SRIOV: QLogic QED 25/40/100Gb SR-IOV Unterstützung + - CONFIG\_QEDE: QLogic QED 25/40/100Gb Ethernet NIC + - CONFIG\_SCSI\_UFSHCD: Universal Flash Storage Controller + - CONFIG\_SCSI\_UFS\_BSG: Universal Flash Storage BSG-Gerätenode + - CONFIG\_SCSI\_UFS\_HWMON: UFS Temperaturbenachrichtigung + - CONFIG\_SCSI\_UFSHCD\_PCI: PCI Bus basierter UFS Controller Support + - CONFIG\_SCSI\_UFS\_DWC\_TC\_PCI: DesignWare PCI Unterstützung mit einem G210 Testchip + - CONFIG\_SCSI\_UFSHCD\_PLATFORM: Plattformbus basierter UFS Controller Support + - CONFIG\_SCSI\_UFS\_CDNS\_PLATFORM: Cadence UFS Controller Plattformtreiber + - CONFIG\_SCSI\_QLA\_FC: QLogic QLA2XXX Fiber Channel Unterstützung + - CONFIG\_LIQUIDIO: Cavium LiquidIO Unterstützung + - CONFIG\_LIQUIDIO\_VF: Cavium LiquidIO VF Unterstützung + - CONFIG\_NTFS\_FS: NTFS Dateisystemunterstützung \[entfernt - dies ist das alte, nur lesbare vfs-Modul] + - CONFIG\_NTFS3\_FS: NTFS Lese-Schreib-Dateisystemunterstützung + - CONFIG\_NTFS3\_LZX\_XPRESS: Aktivieren Sie die Unterstützung für externe Komprimierungen lzx/xpress + - CONFIG\_NTFS3\_FS\_POSIX\_ACL: NTFS POSIX Access Control Lists + - CONFIG\_UHID: User-space I/O Treiber Unterstützung für HID Subsystem +- md/unraid: Version 2.9.33 + - Regression beheben: Leere Slots vor dem ersten belegten Slot geben NO\_DEVICES zurück. + - Behebung der Handhabung von Geräteausfällen während des Wiederaufbaus/Synchronisation +- XEN-Unterstützung entfernt + +## Grunddistro + +- aaa\_base: Version 15.1 +- aaa\_glibc-solibs: Version 2.40 +- aaa\_libraries: Version 15.1 +- acl: Version 2.3.2 +- acpid: Version 2.0.34 +- adwaita-icon-theme: Version 47.0 +- apcupsd: Version 3.14.14 +- appres: Version 1.0.7 +- at: Version 3.2.5 +- at-spi2-atk: Version 2.38.0 +- at-spi2-core: Version 2.54.0 +- atk: Version 2.38.0 +- attr: Version 2.5.2 +- avahi: Version 0.8 +- bash: Version 5.2.037 +- bash-completion: Version 2.16.0 +- beep: Version 1.3 +- bin: Version 11.1 +- bind: Version 9.20.4 +- bluez-firmware: Version 1.2 +- bridge-utils: Version 1.7.1 +- brotli: Version 1.1.0 +- btrfs-progs: Version 6.12 +- bzip2: Version 1.0.8 +- ca-certificates: Version 20241120 +- cairo: Version 1.18.2 +- celt051: Version 0.5.1.3 +- cifs-utils: Version 7.1 +- coreutils: Version 9.5 +- cpio: Version 2.15 +- cpufrequtils: Version 008 +- cracklib: Version 2.10.3 +- cryptsetup: Version 2.7.5 +- curl: Version 8.11.1 +- cyrus-sasl: Version 2.1.28 +- db48: Version 4.8.30 +- dbus: Version 1.16.0 +- dbus-glib: Version 0.112 +- dcron: Version 4.5 +- dejavu-fonts-ttf: Version 2.37 +- devs: Version 2.3.1 +- dhcpcd: Version 10.0.10 +- diffutils: Version 3.10 +- dmidecode: Version 3.6 +- dnsmasq: Version 2.90 +- docker: Version 27.0.3 +- dosfstools: Version 4.2 +- e2fsprogs: Version 1.47.1 +- ebtables: Version 2.0.11 +- editres: Version 1.0.9 +- elfutils: Version 0.192 +- elogind: Version 255.5 +- elvis: Version 2.2\_0 +- encodings: Version 1.1.0 +- etc: Version 15.1 +- ethtool: Version 5.19 +- eudev: Version 3.2.14 +- file: Version 5.46 +- findutils: Version 4.10.0 +- flex: Version 2.6.4 +- floppy: Version 5.5 +- fluxbox: Version 1.3.7 +- fontconfig: Version 2.15.0 +- freeglut: Version 3.6.0 +- freetype: Version 2.13.3 +- fribidi: Version 1.0.16 +- fuse3: Version 3.16.2 +- gawk: Version 5.3.1 +- gd: Version 2.3.3 +- gdbm: Version 1.24 +- gdk-pixbuf2: Version 2.42.12 +- genpower: Version 1.0.5 +- git: Version 2.47.1 +- glew: Version 2.2.0 +- glib2: Version 2.82.4 +- glibc: Version 2.40 +- glibc-zoneinfo: Version 2024b +- glu: Version 9.0.3 +- gmp: Version 6.3.0 +- gnutls: Version 3.8.8 +- gptfdisk: Version 1.0.10 +- graphite2: Version 1.3.14 +- grep: Version 3.11 +- gtk+3: Version 3.24.43 +- gzip: Version 1.13 +- harfbuzz: Version 10.1.0 +- hdparm: Version 9.65 +- hicolor-icon-theme: Version 0.18 +- hostname: Version 3.25 +- htop: Version 3.3.0 +- hwloc: Version 2.2.0 +- icu4c: Version 76.1 +- imlib2: Version 1.7.1 +- inetd: Version 1.79s +- infozip: Version 6.0 +- inih: Version 58 +- inotify-tools: Version 4.23.9.0 +- intel-microcode: Version 20241112 +- iperf3: Version 3.17.1 +- iproute2: Version 6.12.0 +- iptables: Version 1.8.11 +- iputils: Version 20240905 +- irqbalance: Version 1.7.0 +- jansson: Version 2.14 +- jemalloc: Version 5.3.0 +- jq: Version 1.6 +- json-c: Version 0.18\_20240915 +- json-glib: Version 1.10.6 +- kbd: Version 2.7.1 +- kernel-firmware: Version 20241220\_9e1d9ae +- keyutils: Version 1.6.3 +- kmod: Version 33 +- krb5: Version 1.21.3 +- lbzip2: Version 2.5 +- less: Version 668 +- libICE: Version 1.1.2 +- libSM: Version 1.2.5 +- libX11: Version 1.8.10 +- libXau: Version 1.0.12 +- libXaw: Version 1.0.16 +- libXcomposite: Version 0.4.6 +- libXcursor: Version 1.2.3 +- libXdamage: Version 1.1.6 +- libXdmcp: Version 1.1.5 +- libXevie: Version 1.0.3 +- libXext: Version 1.3.6 +- libXfixes: Version 6.0.1 +- libXfont2: Version 2.0.7 +- libXfontcache: Version 1.0.5 +- libXft: Version 2.3.8 +- libXi: Version 1.8.2 +- libXinerama: Version 1.1.5 +- libXmu: Version 1.2.1 +- libXpm: Version 3.5.17 +- libXrandr: Version 1.5.4 +- libXrender: Version 0.9.12 +- libXres: Version 1.2.2 +- libXt: Version 1.3.1 +- libXtst: Version 1.2.5 +- libXxf86dga: Version 1.1.6 +- libXxf86misc: Version 1.0.4 +- libXxf86vm: Version 1.1.6 +- libaio: Version 0.3.113 +- libarchive: Version 3.7.7 +- libcap-ng: Version 0.8.5 +- libcgroup: Version 0.41 +- libdaemon: Version 0.14 +- libdeflate: Version 1.23 +- libdmx: Version 1.1.5 +- libdrm: Version 2.4.124 +- libedit: Version 20240808\_3.1 +- libepoxy: Version 1.5.10 +- libestr: Version 0.1.9 +- libevdev: Version 1.13.3 +- libevent: Version 2.1.12 +- libfastjson: Version 0.99.9 +- libffi: Version 3.4.6 +- libfontenc: Version 1.1.8 +- libgcrypt: Version 1.11.0 +- libglvnd: Version 1.7.0 +- libgpg-error: Version 1.51 +- libgudev: Version 238 +- libidn: Version 1.42 +- libjpeg-turbo: Version 3.1.0 +- liblogging: Version 1.0.6 +- libmnl: Version 1.0.5 +- libnetfilter\_conntrack: Version 1.1.0 +- libnfnetlink: Version 1.0.2 +- libnftnl: Version 1.2.8 +- libnl3: Version 3.11.0 +- libnvme: Version 1.11.1 +- libpcap: Version 1.10.5 +- libpciaccess: Version 0.18.1 +- libpng: Version 1.6.44 +- libpsl: Version 0.21.5 +- libpthread-stubs: Version 0.5 +- libseccomp: Version 2.5.5 +- libssh: Version 0.11.1 +- libssh2: Version 1.11.1 +- libtasn1: Version 4.19.0 +- libtiff: Version 4.7.0 +- libtirpc: Version 1.3.6 +- libtpms: Version 0.9.0 +- libunistring: Version 1.3 +- libunwind: Version 1.8.1 +- libusb: Version 1.0.27 +- libusb-compat: Version 0.1.8 +- libuv: Version 1.49.2 +- libvirt: Version 10.7.0 +- libvirt-php: Version 0.5.8 +- libwebp: Version 1.5.0 +- libwebsockets: Version 4.3.2 +- libx86: version 1.1 +- libxcb: Version 1.17.0 +- libxcvt: Version 0.1.3 +- libxkbcommon: Version 1.7.0 +- libxkbfile: Version 1.1.3 +- libxml2: Version 2.13.5 +- libxshmfence: Version 1.3.3 +- libxslt: Version 1.1.42 +- libzip: Version 1.11.2 +- listres: Version 1.0.6 +- lm\_sensors: Version 3.6.0 +- lmdb: Version 0.9.33 +- logrotate: Version 3.22.0 +- lshw: version B.02.19.2 +- lsof: Version 4.99.4 +- lsscsi: version 0.32 +- lvm2: Version 2.03.29 +- lz4: Version 1.10.0 +- lzip: Version 1.24.1 +- lzlib: Version 1.14 +- lzo: version 2.10 +- mbuffer: Version 20240107 +- mc: Version 4.8.31 +- mcelog: Version 202 +- mesa: Version 24.2.8 +- miniupnpc: version 2.1 +- mkfontscale: Version 1.2.3 +- mpfr: Version 4.2.1 +- mtdev: Version 1.1.7 +- nano: Version 8.3 +- ncompress: version 5.0 +- ncurses: Version 6.5 +- net-tools: Version 20181103\_0eebece +- nettle: Version 3.10 +- network-scripts: Version 15.1 +- nfs-utils: Version 2.8.2 +- nghttp2: Version 1.64.0 +- nghttp3: Version 1.7.0 +- nginx: Version 1.27.2 +- noto-fonts-ttf: Version 2024.12.01 +- nss-mdns: version 0.14.1 +- ntfs-3g: Version 2022.10.3 +- ntp: Version 4.2.8p18 +- numactl: version 2.0.13 +- nvme-cli: Version 2.11 +- oniguruma: Version 6.9.9 +- openssh: Version 9.9p1 +- openssl: Version 3.4.0 +- ovmf: Version stable202411 +- p11-kit: Version 0.25.5 +- pam: Version 1.6.1 +- pango: Version 1.54.0 +- patch: version 2.7.6 +- pciutils: Version 3.13.0 +- pcre: version 8.45 +- pcre2: Version 10.44 +- perl: Version 5.40.0 +- php: Version 8.3.8 +- pixman: Version 0.44.2 +- pkgtools: Version 15.1 +- procps-ng: Version 4.0.4 +- pv: version 1.6.6 +- qemu: Version 9.1.0 +- qrencode: version 4.1.1 +- readline: Version 8.2.013 +- reiserfsprogs: version 3.6.27 +- rpcbind: Version 1.2.6 +- rsync: Version 3.3.0 +- rsyslog: version 8.2102.0 +- sakura: Version 3.5.0 +- samba: Version 4.21.1 +- sdparm: version 1.12 +- Sed: Version 4.9 +- sessreg: Version 1.1.3 +- setxkbmap: Version 1.3.4 +- sg3\_utils: Version 1.48 +- shadow: Version 4.16.0 +- shared-mime-info: Version 2.4 +- slim: Version 1.3.6 +- smartmontools: Version 7.4 +- spice: version 0.15.0 +- spirv-llvm-translator: Version 19.1.2 +- sqlite: Version 3.46.1 +- ssmtp: version 2.64 +- startup-notification: Version 0.12 +- sudo: Version 1.9.16p2 +- swtpm: Version 0.7.3 +- sysfsutils: Version 2.1.1 +- sysstat: Version 12.7.6 +- sysvinit: Version 3.12 +- sysvinit-scripts: Version 15.1 +- talloc: Version 2.4.2 +- tar: Version 1.35 +- tcp\_wrappers: Version 7.6 +- tdb: Version 1.4.12 +- telnet: version 0.17 +- tevent: Version 0.16.1 +- traceroute: Version 2.1.6 +- transset: Version 1.0.4 +- tree: Version 2.1.1 +- usbredir: version 0.8.0 +- usbutils: Version 018 +- userspace-rcu: Version 0.15.0 +- utempter: Version 1.2.1 +- util-linux: Version 2.40.2 +- vbetool: version 1.2.2 +- virtiofsd: Version 1.11.1 +- vsftpd: version 3.0.5 +- vte3: Version 0.50.2 +- wayland: Version 1.23.1 +- wget: Version 1.25.0 +- which: version 2.21 +- wireguard-tools: version 1.0.20210914 +- wqy-zenhei-font-ttf: Version 0.8.38\_1 +- wsdd2: Version 1.8.7 +- xauth: Version 1.1.3 +- xcb-util: Version 0.4.1 +- xcb-util-keysyms: Version 0.4.1 +- xclock: Version 1.1.1 +- xdpyinfo: Version 1.3.4 +- xdriinfo: Version 1.0.7 +- xev: Version 1.2.6 +- xf86-input-evdev: Version 2.11.0 +- xf86-input-keyboard: Version 1.9.0 +- xf86-input-mouse: Version 1.9.3 +- xf86-input-synaptics: Version 1.9.2 +- xf86-video-ast: Version 1.1.5 +- xf86-video-mga: Version 2.1.0 +- xf86-video-vesa: Version 2.6.0 +- xfsprogs: Version 6.12.0 +- xhost: Version 1.0.9 +- xinit: Version 1.4.2 +- xkbcomp: Version 1.4.7 +- xkbevd: Version 1.1.6 +- xkbutils: Version 1.0.6 +- xkeyboard-config: Version 2.43 +- xkill: Version 1.0.6 +- xload: Version 1.2.0 +- xlsatoms: Version 1.1.4 +- xlsclients: Version 1.1.5 +- xmessage: Version 1.0.7 +- xmodmap: Version 1.0.11 +- xorg-server: Version 21.1.15 +- xprop: Version 1.2.8 +- xrandr: Version 1.5.3 +- xrdb: Version 1.2.2 +- xrefresh: Version 1.1.0 +- xset: Version 1.2.5 +- xsetroot: Version 1.1.3 +- xsm: Version 1.0.6 +- xterm: Version 396 +- xtrans: Version 1.5.2 +- xwd: Version 1.0.9 +- xwininfo: Version 1.1.6 +- xwud: Version 1.0.7 +- xxHash: Version 0.8.3 +- xz: Version 5.6.3 +- yajl: version 2.1.0 +- zfs: Version 2.2.7\_6.6.68\_Unraid +- zlib: Version 1.3.1 +- zstd: Version 1.5.6 + +## Patches + +Mit dem [Unraid-Patch-Plugin](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) installiert, besuchen Sie ***Tools → Unraid Patch***, um folgende Patches/Hotfixes zu erhalten: + +- Das Verschiebeprogramm hat keine Freigaben mit Leerzeichen im Namen vom Array in den Pool verschoben +- Dateimanager: Zugriff auf UD-Remote-Shares ermöglichen +- Share-Auflistung: Tooltip zeigte `%20` statt eines Leerzeichens +- VM-Manager: Problem mit leerem Löschen-Feld auf vDisk beheben +- Installierte Patches in Diagnosen einbeziehen + +Hinweis: Wenn das Mover Tuning Plugin installiert ist, werden Sie aufgefordert, neu zu starten, um diese Patches anzuwenden. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md new file mode 100644 index 0000000000..542f47384e --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md @@ -0,0 +1,72 @@ +# Version 7.0.1 2025-02-25 + +## Upgrade-Hinweise + +Dies ist ein Sicherheits- und Fehlerbehebungs-Release. Es enthält alle Patches, die für version 7.0.0 verfügbar gemacht wurden. + +Dies löst ein Sicherheitsproblem, wenn die Tailscale-Integration auf einem Container im Host-Modus aktiviert ist und dann mit anderen Benutzern geteilt wird. Ab dieser Version wurde das Starten solcher Container deaktiviert. Um fortzufahren, deaktivieren Sie die Tailscale-Integration für Container im Host-Modus oder ändern Sie den Netzwerktyp in Bridge oder "Benutzerdefiniert: eth0/bond0/br0." + +### Bekannte Probleme + +Für bekannte Probleme siehe die [7.0.0 Freigabehinweise](7.0.0.md#known-issues). + +### Rückschritte + +Wenn Sie auf eine Version vor 7.0.0 zurückrollen, sehen Sie auch die [Release-Notizen 7.0.0](7.0.0.md#rolling-back). + +## Änderungen gegenüber [7.0.0](7.0.0.md) + +### Fehlerbehebungen und Verbesserungen + +- Tailscale Docker-Integration + - Verhindern Sie, dass Container mit dem Netzwerktyp "Host" die Tailscale-Integration verwenden, deaktivieren Sie die Möglichkeit, vorhandene Container in dieser Konfiguration zu starten (Sicherheit) + - Verhindern Sie, dass neue Container mit dem Netzwerktyp "Container" die Tailscale-Integration verwenden (der Sidecar-Container sollte Tailscale haben, nicht der Hauptcontainer) + - Standard-Tailscale-Staatverzeichnisse von Community-Apps akzeptieren + - Installieren Sie ca\_certificates, falls erforderlich + - Verbesserte Handhabung von **post arguments**, sobald die Tailscale-Integration aktiviert ist, wird alles vor dem ersten `;` an den Container übergeben, alles danach wird auf dem Host ausgeführt + - Hinweis: Zusätzliche Verbesserungen sind in Arbeit, insbesondere die Möglichkeit, den offiziellen Tailscale-Sidecar-Container mit dieser Integration zu verwalten +- Docker: Verbergen Sie den Aktualisierungsstatus für von Drittanbietern verwaltete Container +- Möglichkeit der Speicherleckage bei nchan behoben +- Dateimanager: Zugriff auf UD-Remote-Shares ermöglichen +- Anzahl der erkannten SD-Geräte beim frühen Bootvorgang von 8 auf 16 erhöht +- *Falscher Pool-Zustand, ungültige Erweiterung* behoben, die Benutzer beim Upgrade bestimmter btrfs-Pools von 6.12 gesehen haben +- Verhindern Sie die Importierung vorhandener vfat-Partitionen +- Problem behoben, bei dem versucht wurde, das Array mit einem definierten, aber nicht zugewiesenen Pool zu starten +- Fehler behoben: mc bewahrt das aktuelle Verzeichnis nicht nach Beenden mit F10 +- Verschiebeprogramm + - Das Verschiebeprogramm hat keine Freigaben mit Leerzeichen im Namen vom Array in den Pool verschoben + - Das Verschiebeprogramm hat Hardlinks nicht richtig behandelt +- VMs + - Fix: Kann eine VM mit einfachen Anführungszeichen im Namen nicht starten/stoppen + - Fix: Unter bestimmten Bedingungen erstellt das Erstellen einer VM einen neuen Share mit dem VM-Namen + - Problem mit leerem Discard-Feld auf vDisk behoben +- Den `cdc_ether`-Treiber auf die schwarze Liste setzen, um Probleme mit IPMI-NICs auf bestimmten Motherboards zu verhindern + Um diesen Treiber wieder zu aktivieren, `touch /boot/config/modprobe.d/cdc_ether.conf` +- Downgraden zu einer früheren Version von dhcpcd, um DHCP-Probleme zu lösen, die einige Benutzer haben +- Share-Auflistung: Tooltip zeigte `%20` statt eines Leerzeichens +- Installierte Patches in Diagnosen einbeziehen + +### Linux-Kernel + +- Version 6.6.78 +- Fix: md/unraid erlaubt Start, wenn nur 2 Paritäten und keine Datenträger vorhanden sind + +### Grunddistro + +- bind: Version 9.20.5 (CVE-2024-12705 CVE-2024-11187) +- curl: Version 8.12.1 (CVE-2025-0725 CVE-2025-0665 CVE-2025-0167) +- dhcpcd: Version 9.5.3 (Rückkehr von v10.0.10) +- git: Version 2.48.1 (CVE-2024-50349 CVE-2024-52006) +- gnutls: Version 3.8.9 (CVE-2024-12243) +- libtasn1: Version 4.20.0 (CVE-2024-12133) +- libxml2: 2.13.6 (CVE-2025-24928 CVE-2024-56171) +- mariadb: Version 11.4.5 (CVE-2025-21490) +- mc: Version 4.8.33 +- openssh: Version 9.9p2 (CVE-2025-26465 CVE-2025-26466) +- openssl: Version 3.4.1 +- rsync: Version 3.4.1 (CVE-2024-12084 CVE-2024-12085 CVE-2024-12086 CVE-2024-12087 CVE-2024-12088) +- ttyd: Version 20250129 + +## Patches + +Zurzeit sind keine Patches für diese Version verfügbar. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md new file mode 100644 index 0000000000..afa3d90719 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md @@ -0,0 +1,331 @@ +# Version 7.1.0 2025-05-05 + +Dieses Release fügt drahtloses Networking, die Möglichkeit, TrueNAS und andere Fremdpools zu importieren, mehrere Verbesserungen an VMs, erste Schritte hin zu einem responsiven WebGUI und mehr hinzu. + +## Upgrade + +### Bekannte Probleme + +Diese Version hat ein potenzielles Datenverlustproblem, bei dem das neueste Feature "Mover-Leer-Disk" die Aufteilungsebenen auf Freigaben nicht korrekt behandelt. Behoben in Version 7.1.2. + +#### Plugins + +Bitte aktualisieren Sie alle Plugins, insbesondere Unraid Connect und den Nvidia-Treiber. + +Für andere bekannte Probleme siehe die [Release-Notizen 7.0.0](7.0.0.md#known-issues). + +### Rückschritte + +Wir verbessern, wie wir Patches zwischen den Versionen verteilen, weshalb das Standalone-Patch-Plugin in dieser Version deinstalliert wird. Wenn Sie zu einer früheren Version zurückkehren, empfehlen wir, es erneut zu installieren. Weitere Details folgen. + +Wenn Sie auf eine Version vor 7.0.0 zurückrollen, sehen Sie auch die [Release-Notizen 7.0.0](7.0.0.md#rolling-back). + +## Änderungen vs. [7.0.1](7.0.1.md) + +### Speicher + +- Importieren Sie ausländische ZFS-Pools wie TrueNAS, Proxmox, Ubuntu, QNAP. +- Importieren Sie die größte Partition auf der Festplatte anstelle der ersten. +- Das Entfernen eines Geräts aus einem btrfs raid1 oder zfs single-vdev Mirror wird nun die Pool-Slot-Anzahl reduzieren. + +#### Andere Speicheränderungen + +- Fix: Deaktivierte Festplatten wurden nicht auf dem Dashboard angezeigt. +- Fix: Anfangs drehte sich nur das erste Pool-Gerät herunter, nachdem eine benutzerdefinierte Spin-Down-Einstellung hinzugefügt wurde. +- Fix: Array Start wurde erlaubt, wenn nur 2 Paritätsgeräte und keine Datengeräte vorhanden waren. +- Fix: Die Paritätsüberprüfungsbenachrichtigung zeigt oft die vorherige Paritätsüberprüfung und nicht die aktuelle an. +- Behoben: Bestimmte Fälle mit *Falscher Pool-Zustand. Zu viele falsche oder fehlende Geräte* beim Upgrade wurden gelöst. +- Fix: Es war nicht möglich, ein zfs-Gerät durch ein kleineres vdev zu ersetzen. +- mover: + - Fix: Problem mit älteren share.cfg-Dateien gelöst, das verhinderte, dass mover ausgeführt wurde. + - Fix: Mover konnte keinen harten Link neu erstellen, wenn das übergeordnete Verzeichnis noch nicht vorhanden war. + - Fix: Mover blieb bei benannten Pipes hängen. + - Fix: [Mover zum Entleeren eines Arrays verwenden](7.0.0.md#using-mover-to-empty-an-array-disk) bewegt jetzt nur noch die obersten Ebenen von Ordnern, die eine entsprechende share.cfg-Datei haben. Außerdem wurde ein Fehler behoben, der die Anzeige der nicht verschobenen Dateien verhinderte. + +### Netzwerk-Änderungen + +#### Drahtloses Networking + +Unraid unterstützt jetzt WiFi! Ein kabelgebundener Anschluss wird in der Regel bevorzugt, aber wenn dies für Ihre Situation nicht möglich ist, können Sie jetzt WiFi einrichten. + +Für die Ersteinrichtung benötigen Sie entweder eine lokale Tastatur/Bildschirm (im GUI-Modus booten) oder eine kabelgebundene Verbindung. In Zukunft wird der USB Creator in der Lage sein, drahtlose Netzwerke vor dem ersten Booten zu konfigurieren. + +- Zugriff auf das WebGUI und besuchen Sie ***Einstellungen → Netzwerkeinstellungen → Drahtlos wlan0*** + - Aktivieren Sie zuerst WiFi + - Die **Regulierungsregion** kann im Allgemeinen auf **Automatisch** belassen werden, stellen Sie sie jedoch auf Ihren Standort ein, wenn das gewünschte Netzwerk nicht verfügbar ist. + - Finden Sie Ihr bevorzugtes Netzwerk und klicken Sie auf das **Mit WiFi-Netzwerk verbinden** Symbol + - Geben Sie Ihr WiFi-Passwort und andere Einstellungen ein und drücken Sie dann **Dieses Netzwerk beitreten** + - Hinweis: Wenn Ihr Ziel es ist, Docker-Container über WiFi zu verwenden, entfernen Sie jede kabelgebundene Verbindung, bevor Sie Docker starten + +Zusätzliche Details + +- WPA2/WPA3 und WPA2/WPA3 Enterprise werden unterstützt, wenn sowohl WPA2 als auch WPA3 verfügbar sind, wird WPA3 verwendet. +- Es wird nicht empfohlen, sowohl kabelgebundene als auch drahtlose Verbindungen langfristig zu nutzen, es sollte eine der beiden sein. Wenn jedoch beide Verbindungen DHCP verwenden und Sie ein Netzwerkkabel (ab)stecken, während drahtlos konfiguriert ist, sollte das System (außer Docker) sich innerhalb von 45-60 Sekunden anpassen. +- Unterstützung für drahtlose Chipsets: Wir erwarten, mit modernen WiFi-Adaptern Erfolg zu haben, aber ältere Adapter könnten nicht funktionieren. Wenn Ihr WiFi-Adapter nicht erkannt wird, starten Sie bitte einen neuen Foren-Thread und stellen Sie Ihre Diagnose bereit, damit wir sie untersuchen können. +- Wenn Sie einen USB-WiFi-Adapter verwenden möchten, sehen Sie sich diese Liste von [USB-WiFi-Adaptern an, die mit Linux-in-Kernel-Treibern unterstützt werden](https://github.com/morrownr/USB-WiFi/blob/main/home/USB_WiFi_Adapters_that_are_supported_with_Linux_in-kernel_drivers.md) +- Erweitert: Neue Firmware-Dateien, die in `/boot/config/firmware/` platziert wurden, werden in `/lib/firmware/` kopiert, bevor Treibermodule geladen werden (vorhandene Dateien werden nicht überschrieben). + +Einschränkungen: Es gibt Netzwerkeinschränkungen bei der Verwendung von Funk, da ein WLAN nur eine einzige MAC-Adresse haben kann. + +- Nur eine drahtlose NIC wird unterstützt, wlan0 +- Wlan0 kann nicht an einem Verbund teilnehmen +- Docker-Container + - Auf ***Einstellungen → Docker*** beachte, dass bei aktivierter WLAN das System die **Docker benutzerdefinierte Netzwerkart** Einstellung ignoriert und immer **ipvlan** verwendet (macvlan ist nicht möglich, da WLAN mehrere MAC-Adressen auf einer einzelnen Schnittstelle nicht unterstützt) + - ***Einstellungen → Docker***, **Host-Zugang zu benutzerdefinierten Netzwerken** muss deaktiviert sein + - Der **Netzwerktyp** eines Docker-Containers kann nicht br0/bond0/eth0 verwenden + - Docker hat eine Einschränkung, dass es nicht an zwei Netzwerken teilnehmen kann, die dasselbe Subnetz teilen. Wenn Sie zwischen kabelgebunden und drahtlos wechseln, müssen Sie Docker neu starten und alle vorhandenen Container auf die neue Schnittstelle umkonfigurieren. Wir empfehlen, entweder kabelgebunden oder drahtlos einzurichten und nicht zu wechseln. +- VMs + - Wir empfehlen, Ihre VM **Netzwerkquelle** auf **virbr0** einzustellen. Es gibt keine Begrenzung, wie viele VMs Sie in diesem Modus ausführen können. Die VMs werden vollen Netzwerkzugriff haben, der Nachteil ist jedoch, dass sie nicht aus dem Netzwerk erreichbar sind. Sie können weiterhin über VNC auf den Host zugreifen. + - Mit etwas manueller Konfiguration kann eine einzelne VM im Netzwerk zugänglich gemacht werden: + - Konfigurieren Sie die VM mit einer statischen IP-Adresse + - Konfigurieren Sie dieselbe IP-Adresse auf der ipvtap-Schnittstelle, Typ: `ip addr add IP-ADRESSE dev shim-wlan0` + +#### Andere Netzwerkänderungen + +- Über ***Einstellungen → Netzwerkeinstellungen*** können Sie jetzt die DNS-Einstellungen des Servers ändern, ohne zuerst andere Dienste zu stoppen. Siehe oben im Abschnitt **eth0**. +- Wenn Sie eine Netzwerkschnittstelle konfigurieren, hat jede Schnittstelle eine **Info**-Taste, die Details zur aktuellen Verbindung anzeigt. +- Beim Konfigurieren einer Netzwerkschnittstelle ist das Feld **Gewünschte MTU** deaktiviert, bis Sie **Jumbo-Frames aktivieren** klicken. Bewegen Sie den Mauszeiger über das Symbol, um eine Warnung zum Ändern der MTU zu erhalten. In den meisten Fällen sollte sie auf der Standardeinstellung bleiben. +- Beim Konfigurieren mehrerer Netzwerkschnittstellen wird standardmäßig das Gateway der zusätzlichen Schnittstellen deaktiviert. Dies ist eine sichere Voreinstellung, die in den meisten Netzwerken funktioniert, wo nur ein Gateway erforderlich ist. Wenn ein zusätzliches Gateway aktiviert wird, erhält es eine höhere Metrik als bestehende Gateways, um Konflikte zu vermeiden. Sie können dies nach Bedarf anpassen. +- Alte Netzwerkschnittstellen werden automatisch aus den Konfigurationsdateien entfernt, wenn Sie Änderungen an ***Einstellungen → Netzwerkeinstellungen*** speichern. +- Verschiedene DHCP-Probleme beheben. + +### VM-Manager + +#### Nouveau GPU-Treiber + +Der Nouveau-Treiber für Nvidia-GPUs ist jetzt enthalten, standardmäßig deaktiviert, da wir erwarten, dass die meisten Benutzer den Nvidia-Treiber bevorzugen. Um ihn zu aktivieren, deinstallieren Sie das Nvidia-Treiber-Plugin und führen Sie `touch /boot/config/modprobe.d/nouveau.conf` aus und starten Sie neu. + +#### VirGL + +Sie können jetzt Intel- und AMD-GPUs gleichzeitig zwischen mehreren Linux-VMs mit VirGL, dem virtuellen 3D-OpenGL-Renderer, teilen. In dieser Weise genutzt, bietet die GPU beschleunigte Grafik, jedoch ohne Ausgabe auf dem Monitor. Beachten Sie, dass dies noch nicht mit Windows-VMs oder dem Standard-Nvidia-Plugin funktioniert (es funktioniert jedoch mit Nvidia-GPUs mit dem Nouveau-Treiber). + +Um die virtuelle GPU in einer Linux-VM zu verwenden, bearbeiten Sie die VM-Vorlage und setzen Sie die **Grafikkarte** auf **Virtuell**. Stellen Sie dann den **VM-Konsolen-Videotreiber** auf **Virtio(3d)** und wählen Sie die entsprechende **Render-GPU** aus der Liste der verfügbaren GPUs aus (beachten Sie, dass an VFIO-PCI gebundene oder an andere VMs durchgereichte GPUs hier nicht ausgewählt werden können und Nvidia-GPUs nur verfügbar sind, wenn der Nouveau-Treiber aktiviert ist). + +#### QXL Virtuelle GPUs + +Um diese Funktion in einer VM zu verwenden, bearbeiten Sie die VM-Vorlage und setzen Sie die **Grafikkarte** auf **Virtuell** und den **VM-Konsolenvideotreiber** auf **QXL (Beste)**, Sie können dann auswählen, wie viele Bildschirme sie unterstützt und wie viel Speicher sie benötigt. + +#### CPU-Pinning ist optional + +CPU-Pinning ist jetzt optional. Wenn keine Kerne an eine VM angeheftet sind, wählt das OS aus, welche Kerne verwendet werden. + +Von ***Einstellungen → CPU-Einstellungen*** oder beim Bearbeiten einer VM, drücken Sie **Alles Abwählen**, um alle Kerne für diese VM zu lösen, und setzen Sie die Anzahl der vCPUs auf 1, erhöhen Sie bei Bedarf. + +### Benutzer-VM-Vorlagen + +Erstellen einer Benutzervorlage: + +- Bearbeiten Sie die VM, wählen Sie **Vorlage erstellen/ändern** und geben Sie ihr einen Namen. Sie wird nun als **Benutzervorlage** gespeichert, die auf dem **VM hinzufügen** Bildschirm verfügbar ist. + +Um eine Benutzervorlage zu verwenden: + +- Drücken Sie in der VM-Auflistung **VM Hinzufügen** und wählen Sie dann die Vorlage aus dem **Benutzervorlagen** Bereich. + +Import/Export + +- Auf dem **VM Hinzufügen** Bildschirm den Mauszeiger über eine Benutzervorlage bewegen und auf den Pfeil klicken, um die Vorlage an einen Ort auf dem Server zu exportieren oder herunterzuladen. +- Auf einem anderen Unraid-System **Import aus Datei** oder **Hochladen** auswählen, um die Vorlage zu verwenden. + +#### Andere VM-Änderungen + +- Wenn die **Primäre** GPU als Durchschleifen für eine VM zugewiesen ist, warnen, dass sie ohne das Laden eines kompatiblen vBIOS möglicherweise nicht funktioniert. +- Fix: Entfernen der verwirrenden *Pfad existiert nicht* Meldung beim Einrichten des VM-Dienstes +- Feat: Unraid-VMs können jetzt im GUI-Modus booten, wenn der QXL-Videotreiber verwendet wird +- Fix: Das VM-Symbol konnte im XML-Ansichtmodus nicht geändert werden + +### WebGUI + +#### CSS-Änderungen + +Als Schritt zur Verbesserung der Reaktionsfähigkeit des WebGUI haben wir das CSS überarbeitet. Dies sollte größtenteils nicht auffallen, abgesehen von einigen geringfügigen Farbänderungen. Wir erwarten, dass die meisten Plugins ebenfalls in Ordnung sind, obwohl Plugin-Autoren diese [Dokumentation](https://github.com/unraid/webgui/blob/master/emhttp/plugins/dynamix/styles/themes/README.md) überprüfen sollten. Die Reaktionsfähigkeit wird in zukünftigen Versionen weiter verbessert. + +Wenn Sie Ausrichtungsprobleme oder Farbprobleme in einem offiziellen Thema bemerken, lassen Sie es uns bitte wissen. + +#### nchan aus Shared-Memory-Probleme + +Wir haben mehrere Änderungen vorgenommen, um dieses Problem zu verhindern, und wenn wir feststellen, dass es auftritt, starten wir nginx neu, um automatisch davon zu erholen. + +Wenn sich Ihre Hauptseite nie füllt oder Sie "nchan: Kein gemeinsamer Speicher" in Ihren Protokollen sehen, starten Sie bitte einen neuen Foren-Thread und stellen Sie Ihre Diagnose bereit. Optional können Sie zu ***Einstellungen → Anzeigeeinstellungen*** navigieren und **Echtzeit-Updates in inaktiven Browsern zulassen** deaktivieren; dies verhindert, dass Ihr Browser bestimmte Updates anfordert, sobald er den Fokus verliert. In diesem Zustand sehen Sie ein Banner mit den Worten **Live-Updates pausiert**, klicken Sie einfach auf das WebGUI, um es in den Vordergrund zu bringen und Live-Updates erneut zu aktivieren. Bestimmte Seiten werden automatisch neu geladen, um sicherzustellen, dass sie die neuesten Informationen anzeigen. + +#### Andere WebGUI-Änderungen + +- Fix: AdBlocker könnten das Laden des Dashboards verhindern +- Fix: Unter bestimmten Umständen konnte die Speichernutzung des Browsers auf dem Dashboard exponentiell wachsen +- Fix: Verhindern, dass beschädigte Konfigurationsdateien das Dashboard brechen + +## Verschiedenes + +### Andere Änderungen + +- Auf ***Einstellungen → Datum und Uhrzeit*** können Sie jetzt Ihre Uhr mit einem **PTP**-Server synchronisieren (wir erwarten, dass die meisten Benutzer **NTP** verwenden werden) +- Upgrade auf jQuery 3.7.1 und jQuery UI 1.14.1 +- Fix: Der Besuch von boot.php wird den Server nicht mehr herunterfahren +- Fix: Auf dem Docker-Tab wurde das Dropdown-Menü für den letzten Container in bestimmten Situationen abgeschnitten +- Fix: Auf ***Einstellungen → Docker***, das Löschen eines **Docker-Verzeichnisses**, das auf einem ZFS-Volume gespeichert ist, funktioniert jetzt einwandfrei +- Fix: Beim Booten wird die benutzerdefinierte ssh-Konfiguration erneut von `/boot/config/ssh/` nach `/etc/ssh/` kopiert +- Fix: Dateimanager kann Dateien von einer Benutzerfreigabe zu einem nicht zugewiesenen Datenträgermontagepunkt kopieren +- Fix: Entfernen der verwirrenden *Pfad existiert nicht* Meldung beim Einrichten des Docker-Dienstes +- Fix: aktualisieren `rc.messagebus`, um die korrekte Handhabung von `/etc/machine-id` zu korrigieren +- Diagnose + - Fix: Verbesserte Anonymisierung von IPv6-Adressen in Diagnosen + - Fix: Verbesserte Anonymisierung von Benutzernamen in bestimmten Konfigurationsdateien in Diagnosen + - Fix: Diagnosen könnten aufgrund von Multibyte-Zeichenfolgen im Systemprotokoll fehlschlagen + - Feat: Diagnosen protokollieren jetzt Fehler in logs/diagnostics.error.log + +### Linux-Kernel + +- Version 6.12.24-Unraid + - Anwenden: \[PATCH] [Revert "PCI: Vermeiden Sie einen Reset, wenn über sysfs deaktiviert"](https://lore.kernel.org/lkml/20250414211828.3530741-1-alex.williamson@redhat.com/) + - CONFIG\_NR\_CPUS: erhöht von 256 auf 512 + - CONFIG\_TEHUTI\_TN40: Tehuti Networks TN40xx 10G Ethernet-Adapter + - CONFIG\_DRM\_XE: Intel Xe Grafikkarten + - CONFIG\_UDMABUF: Userspace dmabuf-Misc-Treiber + - CONFIG\_DRM\_NOUVEAU: Nouveau (NVIDIA) Karten + - CONFIG\_DRM\_QXL: QXL virtueller GPU + - CONFIG\_EXFAT\_FS: exFAT-Dateisystem-Unterstützung + - CONFIG\_PSI: Druckstalls-Informationstracking + - CONFIG\_PSI\_DEFAULT\_DISABLED: Boot-Parameter erforderlich, um das Druckstalls-Informationstracking zu aktivieren, z.B. `psi=1` + - CONFIG\_ENCLOSURE\_SERVICES: Gehäusedienste + - CONFIG\_SCSI\_ENCLOSURE: SCSI-Gehäuse-Unterstützung + - CONFIG\_DRM\_ACCEL: Compute-Beschleunigungs-Framework + - CONFIG\_DRM\_ACCEL\_HABANALABS: HabanaLabs AI-Beschleuniger + - CONFIG\_DRM\_ACCEL\_IVPU: Intel NPU (Neural Processing Unit) + - CONFIG\_DRM\_ACCEL\_QAIC: Qualcomm Cloud AI-Beschleuniger + - zfs: Version 2.3.1 + +- Kabellose Unterstützung + - Atheros/Qualcomm + - Broadcom + - Intel + - Marvell + - Microtek + - Realtek + +### Basis-Distro-Updates + +- aaa\_glibc-solibs: Version 2.41 +- adwaita-icon-theme: Version 48.0 +- at-spi2-core: Version 2.56.1 +- bind: Version 9.20.8 +- btrfs-progs: Version 6.14 +- ca-certificates: Version 20250425 +- cairo: Version 1.18.4 +- cifs-utils: Version 7.3 +- coreutils: Version 9.7 +- dbus: Version 1.16.2 +- dbus-glib: Version 0.114 +- dhcpcd: Version 9.5.2 +- diffutils: Version 3.12 +- dnsmasq: Version 2.91 +- docker: Version 27.5.1 +- e2fsprogs: Version 1.47.2 +- elogind: Version 255.17 +- elfutils: Version 0.193 +- ethtool: Version 6.14 +- firefox: Version 128.10 (AppImage) +- floppy: Version 5.6 +- fontconfig: Version 2.16.2 +- gdbm: Version 1.25 +- git: Version 2.49.0 +- glib2: Version 2.84.1 +- glibc: Version 2.41 +- glibc-zoneinfo: Version 2025b +- grep: Version 3.12 +- gtk+3: Version 3.24.49 +- gzip: Version 1.14 +- harfbuzz: Version 11.1.0 +- htop: Version 3.4.1 +- icu4c: Version 77.1 +- inih: Version 60 +- intel-microcode: Version 20250211 +- iperf3: Version 3.18 +- iproute2: Version 6.14.0 +- iw: Version 6.9 +- jansson: Version 2.14.1 +- kernel-firmware: Version 20250425\_cf6ea3d +- kmod: Version 34.2 +- less: Version 674 +- libSM: Version 1.2.6 +- libX11: Version 1.8.12 +- libarchive: Version 3.7.8 +- libcgroup: Version 3.2.0 +- libedit: Version 20250104\_3.1 +- libevdev: Version 1.13.4 +- libffi: Version 3.4.8 +- libidn: Version 1.43 +- libnftnl: Version 1.2.9 +- libnvme: Version 1.13 +- libgpg-error: Version 1.55 +- libpng: Version 1.6.47 +- libseccomp: Version 2.6.0 +- liburing: Version 2.9 +- libusb: Version 1.0.28 +- libuv: Version 1.51.0 +- libvirt: Version 11.2.0 +- libXft: Version 2.3.9 +- libxkbcommon: Version 1.9.0 +- libxml2: Version 2.13.8 +- libxslt: Version 1.1.43 +- libzip: Version 1.11.3 +- linuxptp: Version 4.4 +- lvm2: Version 2.03.31 +- lzip: Version 1.25 +- lzlib: Version 1.15 +- mcelog: Version 204 +- mesa: Version 25.0.4 +- mpfr: Version 4.2.2 +- nano: Version 8.4 +- ncurses: Version 6.5\_20250419 +- nettle: Version 3.10.1 +- nghttp2: Version 1.65.0 +- nghttp3: Version 1.9.0 +- noto-fonts-ttf: Version 2025.03.01 +- nvme-cli: Version 2.13 +- oniguruma: Version 6.9.10 +- openssh: Version 10.0p1 +- openssl: Version 3.5.0 +- ovmf: Version stable202502 +- pam: Version 1.7.0 +- pango: Version 1.56.3 +- parted: Version 3.6 +- patch: Version 2.8 +- pcre2: Version 10.45 +- perl: Version 5.40.2 +- php: Version 8.3.19 +- procps-ng: Version 4.0.5 +- qemu: Version 9.2.3 +- rsync: Version 3.4.1 +- samba: Version 4.21.3 +- shadow: Version 4.17.4 +- spice: Version 0.15.2 +- spirv-llvm-translator: Version 20.1.0 +- sqlite: Version 3.49.1 +- sysstat: Version 12.7.7 +- sysvinit: Version 3.14 +- talloc: Version 2.4.3 +- tdb: Version 1.4.13 +- tevent: Version 0.16.2 +- tree: Version 2.2.1 +- userspace-rcu: Version 0.15.2 +- utempter: Version 1.2.3 +- util-linux: Version 2.41 +- virglrenderer: Version 1.1.1 +- virtiofsd: Version 1.13.1 +- which: Version 2.23 +- wireless-regdb: Version 2025.02.20 +- wpa\_supplicant: Version 2.11 +- xauth: Version 1.1.4 +- xf86-input-synaptics: Version 1.10.0 +- xfsprogs: Version 6.14.0 +- xhost: Version 1.0.10 +- xinit: Version 1.4.4 +- xkeyboard-config: Version 2.44 +- xorg-server: Version 21.1.16 +- xterm: Version 398 +- xtrans: Version 1.6.0 +- xz: Version 5.8.1 +- zstd: Version 1.5.7 + +## Patches + +Zurzeit sind keine Patches für diese Version verfügbar. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md new file mode 100644 index 0000000000..357bcc555b --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md @@ -0,0 +1,36 @@ +# Version 7.1.1 2025-05-08 + +Dies ist eine kleine Veröffentlichung, die eine aktualisierte Version der OVMF-Firmware enthält, +die einen [Commit](https://github.com/tianocore/edk2/commit/efaa102d00) zurücksetzt, um ein Problem zu beheben, das verhindert, +dass bestimmte VMs (Fedora, Debian, Rocky, andere CentOS-basierte Distributionen) +starten. Siehe auch [diese Diskussion](https://github.com/tianocore/edk2/issues/10883). + +## Upgrade + +### Bekannte Probleme + +Diese Version hat ein potenzielles Datenverlustproblem, bei dem das neueste Feature "Mover-Leer-Disk" die Aufteilungsebenen auf Freigaben nicht korrekt behandelt. Behoben in Version 7.1.2. + +Für andere bekannte Probleme siehe die [7.1.0 Release-Hinweise](7.1.0.md#known-issues). + +### Rückschritte + +Bitte beachten Sie die [7.1.0 Release Notes](7.1.0.md#rolling-back). + +## Änderungen gegenüber [7.1.0](7.1.0.md) + +### VM-Manager + +- Fix: beinhaltet aktualisierte OVMF-Firmware, um ein Problem zu beheben, das verhindert, dass bestimmte VMs starten + +### Linux-Kernel + +- Version 6.12.24-Unraid (keine Änderungen) + +### Basis-Distro-Updates + +- ovmf: Version unraid202502 + +## Patches + +Zurzeit sind keine Patches für diese Version verfügbar. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md new file mode 100644 index 0000000000..4add46df2a --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md @@ -0,0 +1,29 @@ +# Version 7.1.2 2025-05-11 + +Dies ist eine kleine, aber wichtige Veröffentlichung, die ein potenzielles Datenverlustproblem in 7.1.0 und 7.1.1 behebt, bei dem die kürzlich eingeführte Funktion "Mover leerer Datenträger" keine Trennstufen auf Freigaben korrekt behandelt. + +Es behebt auch ein kleineres Problem, bei dem die normale Mover-Funktionalität Trennstufen beim Verschieben von Dateien ignoriert. + +## Upgrade + +### Bekannte Probleme + +Bitte siehe die [7.1.0 Release-Anmerkungen](7.1.0.md#known-issues). + +### Rückschritte + +Bitte beachten Sie die [7.1.0 Release Notes](7.1.0.md#rolling-back). + +## Änderungen gegenüber [7.1.1](7.1.1.md) + +### Speicher + +- Korrektur: "Mover leerer Datenträger" behandelt Trennstufen auf Freigaben nicht korrekt + +### Linux-Kernel + +- Version 6.12.24-Unraid (keine Änderungen) + +## Patches + +Zurzeit sind keine Patches für diese Version verfügbar. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md new file mode 100644 index 0000000000..9f88a84ca3 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md @@ -0,0 +1,50 @@ +# Version 7.1.3 2025-06-04 + +Dies ist ein Release für kleinere Fehlerbehebungen und Sicherheitsupdates. + +## Upgrade + +### Bekannte Probleme + +- Einige Benutzer haben Netzwerkprobleme bei diesem Release, bitte aktualisieren Sie auf [7.1.4](7.1.4.md) +- Bitte beachten Sie auch die [7.1.0 Release Notes](7.1.0.md#known-issues). + +### Rückschritte + +Bitte beachten Sie die [7.1.0 Release Notes](7.1.0.md#rolling-back). + +## Änderungen gegenüber [7.1.2](7.1.2.md) + +### Netzwerk-Änderungen + +- Korrektur: Erlaube statische IP-Zuweisungen zusammen mit WLAN zu verwenden +- Korrektur: Verbesserte automatische Metrenzuweisungen +- Korrektur: Verbesserte IP-Auswahl auf Interfaces + +### Docker + +- Korrektur: Ermöglichen Sie den Zugriff auf das Docker-Host auf der drahtlosen Schnittstelle +- Korrektur: Shim-br0-Schnittstelle manchmal nicht erstellt, was Probleme mit dem Hostzugriff auf benutzerdefinierte Netzwerke auf br0 verursachen könnte + +### Speicher + +- Korrektur: mover: leere Verzeichnisse entfernen, die nach dem Leeren einer Festplatte mit Hardlinks möglicherweise übrig bleiben +- Korrektur: Partitionsnummer und Partitionsschema direkt erhalten anstatt den 'lsblk'-Befehl zu verwenden +- Korrektur: /mnt/user0/sharename respektiert manchmal nicht die Zuweisungsmethoden + +### webGUI + +- Korrektur: Verschlüsselungs-Passphrase manchmal inkorrekt +- Korrektur: Rückgängig machen erlauben Docker-Kontextmenüs oben oder unten + +### Linux-Kernel + +- Version 6.12.24-Unraid (keine Änderungen) + +### Basis-Distro-Updates + +- curl-8.14.0-x86\_64-1 (CVE-2025-5025 CVE-2025-4947) + +## Patches + +Zurzeit sind keine Patches für diese Version verfügbar. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md new file mode 100644 index 0000000000..8a6cc4c94a --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md @@ -0,0 +1,51 @@ +# Version 7.1.4 18.06.2025 + +Dies ist eine Bugfix-Version, die sich hauptsächlich auf Netzwerkprobleme konzentriert. + +## Upgrade + +### Bekannte Probleme + +Bitte beachten Sie auch die [7.1.0 Release Notes](7.1.0.md#known-issues). + +### Rückschritte + +Bitte beachten Sie die [7.1.0 Release Notes](7.1.0.md#rolling-back). + +## Änderungen im Vergleich zu [7.1.3](7.1.3.md) + +### Netzwerk-Änderungen + +- Fix: Zurückgesetzt: Verbesserte automatische Metrikzuweisungen +- Fix: Verhindert, dass das Schnittstellenüberwachungsskript die Standardroute unter bestimmten Umständen löscht +- Fix: Sicherstellen, dass deaktivierte Standardrouten nicht verwendet werden + +### Docker + +- Fix: Begrenze Docker-Subnetze nicht auf /25 +- Fix: Zeige keine APIPA-IP an, wenn eine bessere verfügbar ist +- Hinweis: Wenn ein Docker-Container mit einer statischen IP-Adresse nicht startet, bearbeiten Sie den Container und überprüfen Sie die zugewiesene IP-Adresse. + Die IP muss in einem der aufgelisteten Subnetze enthalten sein. Die Subnetze werden unter **Einstellungen → Docker-Einstellungen** definiert. + +### VMs + +- Fix: Fehlen von benutzerdefinierten virbr-Schnittstellen +- Fix: Die MAC-Zuweisung wurde jedes Mal neu generiert, wenn eine andere Schnittstelle ausgewählt wurde + +### Speicher + +- Fix: Respektiere die **Autotrim**-Einstellung beim Einhängen von BTRFS- und XFS-Laufwerken + +### webGUI + +- Fix: Dateimanager: Fehlendes Icon im Footer, wenn der Job minimiert ist, wurde behoben +- Fix: Dateimanager: Respektiere die Einstellung **Vorhandene Dateien überschreiben** beim Verschieben von Dateien +- Fix: Verhindere das Ändern von Poolkompressions-/ Autotrim-Einstellungen, wenn das Array gestartet ist + +### Linux-Kernel + +- Version 6.12.24-Unraid (keine Änderungen) + +## Patches + +Zurzeit sind keine Patches für diese Version verfügbar. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md new file mode 100644 index 0000000000..e5bac23419 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md @@ -0,0 +1,282 @@ +# Version 7.2.0-rc.1 2025-10-01 + +Die Unraid WebGUI ist jetzt responsiv! Die Oberfläche passt sich automatisch an verschiedene Bildschirmgrößen an und ist auf mobilen Geräten, Tablets und Desktop-Monitoren gleichermaßen nutzbar. Die Unraid API ist jetzt integriert und die Veröffentlichung bringt auch RAIDZ-Erweiterung, Ext2/3/4-, NTFS- und exFAT-Unterstützung sowie die (optionale) Möglichkeit, sich über SSO bei der WebGUI anzumelden, sowie weitere Funktionen und Fehlerbehebungen. + +Bitte beachten Sie, dass einige Plugins in dieser Version visuelle Probleme haben können; geben Sie den Plugin-Autoren etwas Zeit, um Anpassungen vorzunehmen. Plugin-Entwickler, bitte lesen Sie diesen Beitrag, der beschreibt, [wie Sie Ihre Plugins aktualisieren können, um sie reaktionsfähig zu machen](https://forums.unraid.net/topic/192172-responsive-webgui-plugin-migration-guide/). + +## Upgrade + +Für Schritt-für-Schritt-Anleitungen siehe [Unraid aktualisieren](../../unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx). + +### Bekannte Probleme + +#### Plugins + +Die Plugins Theme Engine, Dark Theme und Dynamix Date Time sind inkompatibel und werden automatisch deinstalliert, ebenso wie veraltete Versionen von Unraid Connect. + +Bitte aktualisieren Sie alle Plugins, insbesondere Unraid Connect und den Nvidia-Treiber, bevor Sie ein Update durchführen. +Beachten Sie, dass einige Plugins in dieser Version visuelle Probleme haben können. Geben Sie den Plugin-Autoren etwas Zeit, um Anpassungen vorzunehmen. + +Für weitere bekannte Probleme siehe die [7.1.4 Release-Notizen](7.1.4.md#known-issues). + +### Rückschritte + +Wenn das Rollback vor 7.1.4 erfolgt, siehe auch die [7.1.4 Release-Notizen](7.1.4.md#rolling-back). + +## Änderungen gegenüber [7.1.4](7.1.4.md) + +### Speicher + +#### ZFS RAIDZ-Erweiterung + +Sie können jetzt Ihre Single-VDEV RAIDZ1/2/3-Pools um jeweils ein Laufwerk erweitern: + +- Während das Array läuft, auf ***Haupt → Pool-Geräte*** den Poolnamen wählen, um die Details anzusehen +- Im Bereich **Pool-Status** suchen Sie nach einer **Upgrade-Pool**-Schaltfläche. Falls eine vorhanden ist, müssen Sie darauf klicken, bevor Sie fortfahren. Beachten Sie, dass das Upgrade des Pools Ihre Fähigkeit einschränkt, auf frühere Unraid-Versionen (7.1 sollte in Ordnung sein, aber nicht 7.0) zurückzustufen. +- Array stoppen +- Auf ***Haupt → Pool-Geräte*** einen Slot zum Pool hinzufügen +- Das passende Laufwerk auswählen (muss mindestens so groß sein wie das kleinste Laufwerk im Pool) +- Array starten + +#### Verbesserungen + +- Fix: Es gibt jetzt eine "Ungültige Erweiterung"-Warnung, falls der Pool zuerst aktualisiert werden muss +- Verbesserung: Bessere Voreinstellungen für ZFS RAIDZ VDEVs + +#### Ext2/3/4-, NTFS- und exFAT-Unterstützung + +Unraid unterstützt jetzt die Laufwerksformate Ext2/3/4, NTFS und exFAT zusätzlich zu XFS, BTRFS und ZFS. + +Anwendungsfall: Angenommen, Sie sind ein Content-Ersteller mit einer Kiste voller Festplatten, die alle Ihre historischen Videos enthalten. Wenn Sie ein neues Array erstellen (oder nach dem Ausführen von ***Werkzeuge → Neues Konfiguration***), fügen Sie alle vorhandenen Datenträger (leer oder mit Daten in einem unterstützten Datenträgerformat) zum Array hinzu. Alle Paritätsfestplatten werden überschrieben, aber die Datenträger behalten ihre Daten. Sie können Paritätsschutz genießen, sie im Netzwerk freigeben und alle Vorteile nutzen, die Unraid bietet. + +Wichtiger Hinweis: Sie können weiterhin gefüllte Datenlaufwerke zum Array hinzufügen, solange Sie das Array nicht mit einem Paritätslaufwerk gestartet haben. Sobald ein Paritätslaufwerk hinzugefügt wurde, werden alle neuen Datenlaufwerke, die dem Array hinzugefügt werden, gelöscht. + +Zur Klarstellung, Unraid hat immer so gearbeitet, neu ist, dass Unraid jetzt zusätzliche Laufwerksformate unterstützt. + +Zusätzlich können Sie jetzt Pools mit einem Einzellaufwerk unter Verwendung der neuen Formate erstellen. + +- Benutzerfreundlichkeit des **Dateisystemtyp**-Dropdowns verbessert, da die Liste der verfügbaren Optionen wächst + +#### Warnung über veraltete Dateisysteme + +Die ***Haupt***-Seite zeigt jetzt eine Warnung an, wenn irgendein Array- oder Pool-Laufwerke mit ReiserFS formatiert sind; diese Laufwerke müssen so schnell wie möglich auf ein anderes Dateisystem migriert werden, da sie in einer zukünftigen Version von Unraid (voraussichtlich Unraid 7.3) nicht mehr nutzbar sein werden. Ähnlich wird gewarnt, wenn es Laufwerke gibt, die in einer veralteten Version von XFS formatiert sind; diese müssen vor 2030 migriert werden. Siehe [Konvertierung zu einem neuen Dateisystemtyp](../using-unraid-to/manage-storage/file-systems.mdx#converting-to-a-new-file-system-type) in den Dokumenten für weitere Details. + +#### Andere Speicheränderungen + +- Verbesserung: Zwei-Geräte-ZFS-Pools werden standardmäßig gespiegelt, aber Sie können sie in RAIDZ1 ändern, wenn Sie planen, diesen VDEV in Zukunft zu erweitern. +- Verbesserung: **Dateisystemstatus** zur **DeviceInfo**-Seite hinzugefügt, der zeigt, ob ein Laufwerk eingehängt/nicht eingehängt und leer/nicht leer ist +- Fix: Anzeigeproblem auf Hauptseite, wenn zwei Pools ähnlich benannt sind +- Fix: [glibc-Fehler](https://github.com/openzfs/zfs/issues/17629), was zu Datenverlust mit ZFS führen könnte +- Fix: BTRFS-Array-Laufwerke mit mehreren Dateisystem-Signaturen werden nicht eingehängt +- Fix: Einige Probleme mit Parität-Laufwerken mit vorhandenen 1MiB-ausgerichteten Partitionen behoben +- Fix: Beim Stoppen des Arrays wird nicht versucht, 'umount' auf nicht eingehängten Array-Geräten auszuführen +- Verbesserung: Exklusive Freigaben können für den NFS-Export ausgewählt werden +- Verbesserung: Verboten von Freigaben mit den Namen `homes`, `global` und `printers`, da diese in Samba eine besondere Bedeutung haben +- Fix: Korrekte Handhabung von Groß- und Kleinschreibung bei Freigaben-Namen +- Fix: Freigaben mit ungültigen Zeichen in den Namen konnten nicht gelöscht oder geändert werden +- Fix: Verbesserungen beim Lesen und Schreiben von SMB-Sicherheitseinstellungen + +### Netzwerk-Änderungen + +#### Andere Netzwerkänderungen + +- Funktion: IPv6-Docker-Benutzerdefinierte Netzwerke unterstützen jetzt neben den gängigeren Global Unicast-Adressen (GUA) auch einzigartige lokale Adressen (ULA), vorausgesetzt, Ihr Router stellt beide Subnetze bereit, wenn der Unraid-Host eine IPv6-Adresse über DHCP oder SLAAC erhält. Um dies zu verwenden, weisen Sie dem Container eine benutzerdefinierte statische IP aus dem entsprechenden Subnetz zu. +- Fix: Die Seite ***Einstellungen → Netzwerkeinstellungen → Schnittstellenregeln*** zeigte manchmal den falschen Netzwerk-Treiber an (es war nur ein Darstellungsfehler). + +### VM-Manager + +- Funktion: PCI-Hardwaredaten speichern, warnt, wenn sich die von der VM genutzte Hardware ändert. +- Funktion: Unterstützt virtuelle Soundkarten in VMs. + +#### Andere VM-Änderungen + +- Verbesserung: Erhöhte Unterstützung für mehrere Monitore, spicevmc wird bei Bedarf automatisch aktiviert. +- Funktion: Upgrade auf noVNC v1.6. +- Historische OpenElec- und LibreElec-VM-Vorlagen entfernt. +- Fix: VM-Konsole funktionierte nicht, wenn Benutzerfreigaben deaktiviert waren. +- Fix: Einfache Anführungszeichen im Speicherpfad von Domains sind nicht erlaubt + +### Unraid API + +Die Unraid API ist jetzt in Unraid integriert! Das neue Benachrichtigungsfeld ist das erste große Feature, das sie verwendet, und im Laufe der Zeit wird die gesamte WebGUI aktualisiert, um sie zu nutzen. + +Die Unraid API ist vollständig Open Source: [https://github.com/unraid/api](https://github.com/unraid/api). Einstieg in den [API-Dokumenten](../../API/index.mdx). + +Das Unraid Connect-Plugin fügt Funktionalitäten hinzu, welche mit unseren Cloud-Servern kommunizieren; es bleibt vollkommen optional. + +#### Andere Unraid API-Änderungen + +- dynamix.unraid.net 4.25.2 - [Änderungen ansehen](https://github.com/unraid/api/releases) + +### WebGUI + +#### Responsives CSS + +Das Unraid WebGUI ist jetzt reaktionsfähig! Die meisten Bildschirme sollten jetzt auf Ihrem Telefon genauso gut funktionieren wie auf Ihrem Desktop-Monitor. + +#### Anmeldung zum WebGUI über SSO + +Melden Sie sich beim Unraid WebGUI mittels Single Sign-On (SSO) mit Ihrem Unraid.net-Konto oder einem beliebigen OIDC-kompatiblen Anbieter an. Einzelheiten zu dieser *optionalen* Funktion finden Sie unter [OIDC-Anbieter-Setup](../../API/oidc-provider-setup.mdx) in den Dokumenten. + +#### Andere WebGUI-Änderungen + +- Funktion: Neue Benachrichtigungsverwaltungssicht hinzugefügt, über die Glocke in der oberen rechten Ecke des WebGUI zugänglich. +- Funktion: Fortschrittsanzeige zum Docker / Plugin / VM-Popup hinzugefügt. +- Funktion: Countdown-Timer auf der Anmeldeseite anzeigen, wenn aufgrund zu vieler falscher Anmeldeversuche gesperrt. +- Funktion: **Erzwingen-Installieren**-Button hinzufügen, um Versionsprüfungen zu umgehen, wenn Plugins manuell installiert werden. +- Feature: ***Werkzeuge → Terminal öffnen***-Seite hinzufügen; kann durch Suchen nach "Terminal" aufgerufen werden. Die Terminal-Schaltfläche kann optional über ***Einstellungen → Anzeigeeinstellungen → Terminal-Schaltfläche in Kopfzeile anzeigen*** entfernt werden. +- Funktion: ***Benutzer → Root → SSH autorisierte Schlüssel*** unterstützen jetzt mehr Formate (danke [wandercone](https://github.com/wandercone)) +- Funktion: Willkommensbildschirm für neue Systeme hinzugefügt, der nach dem Einstellen des Root-Passworts angezeigt wird. +- Fix: Smart-Testschaltflächen nach Abschluss des Tests wieder aktivieren. +- Fix: Verhindern, dass das WebGUI abstürzt, wenn dynamix.cfg beschädigt ist und loggen aller Probleme +- Fix: `blob:` Links sollten nicht als extern betrachtet werden. +- Funktion: Unterscheidung zwischen Intel E-Cores und P-Cores im Dashboard +- Funktion: Dashboard bezieht jetzt CPU-Nutzungsstatistiken von der Unraid-API +- Fix: Dashboard: Mehr als 1 TB RAM wurde nicht korrekt gemeldet +- Chore: Ändern der Chart-Bibliotheken im Dashboard +- Fix: Verhindern, dass Firefox beim Starten eines Arrays das Senden/Abbrechen-Popup anzeigt +- Fix: Dateimanager: Spinner stoppen und Fehler anzeigen, wenn es fehlschlägt (danke [poroyo](https://github.com/poroyo)) +- Funktion: Beschleunigen der Darstellung von Plugin- und Docker-Seiten +- Fix: Probleme beim Klicken auf einen externen Link innerhalb eines Änderungsprotokolls verhindert + +## Verschiedenes + +- Funktion: `go`-Skript im abgesicherten Modus nicht ausführen, `/boot/config/go.safemode`-Skript bei Bedarf erstellen. +- Verbesserung: Authentifizierung auf `http://localhost` erforderlich. Dies verbessert die Sicherheit und ermöglicht es, dass Tailscale Funnel mit dem WebGUI funktioniert. Beachten Sie, dass Sie sich im GUI-Modus beim Start jetzt erneut anmelden müssen, um auf das WebGUI zuzugreifen. +- Funktion: Unterstützung für Favicon und Web-App-Manifest hinzufügen. +- Funktion: Lizenzschlüssel-Upgrades werden automatisch installiert, ohne das Array neu starten zu müssen. +- Funktion: Thunderbolt-Geräte werden bei Anschluss automatisch autorisiert. +- Funktion: Verbesserungen der benutzerdefinierten Udev-Regeln und -Skripte beim Booten: + - `/boot/config/udev/*.rules` werden nach `/etc/udev/rules.d/` kopiert. + - `/boot/config/udev/*.sh` werden nach `/etc/udev/scripts/` kopiert, wo sie von Ihren benutzerdefinierten Udev-Regeln verwendet werden können. +- Fix: Unterstützung für nicht funktionierende ipv6.hash.myunraid.net-URLs entfernen. +- Fix: Docker-Benutzerdefinierte Netzwerk-Erstellung schlug fehl, wenn IPv6 aktiviert war +- Fix: Probleme mit hoher CPU-Auslastung durch nchan und lsof gelöst +- Verbesserung: Option zum Deaktivieren von Live-Updates auf inaktive Browser entfernt; sollte nicht mehr benötigt werden +- Verbesserung: Bessere Nachrichten über Mover und "dangling links" +- Fix: Fehler im Zusammenhang mit *searchLink* beim Installieren von Plugins verhindert +- Fix: PHP-Warnungen beim Importieren von WireGuard-Tunneln +- Verbesserung: *Europa/Kiew* Zeitzone in *Europa/Kyiv* umbenannt, um sich mit der IANA-Zeitzonendatenbank auszurichten +- Verbesserung: Discord-Benachrichtigungsagent verbessert; Agent aktivieren/deaktivieren, um Updates zu erhalten (danke [mgutt](https://github.com/mgutt)) + +### Andere Änderungen + +### Linux-Kernel + +- Version 6.12.47-Unraid + - eingebaut: CONFIG\_EFIVAR\_FS: EFI-Variable Dateisystem + - CONFIG\_INTEL\_RAPL: Intel RAPL-Unterstützung über MSR-Schnittstelle + - CONFIG\_NLS\_DEFAULT: Änderung von "iso8859-1" zu "utf8" + - eMMC-Unterstützung hinzugefügt: + - CONFIG\_MMC: MMC/SD/SDIO Kartenunterstützung + - CONFIG\_MMC\_BLOCK: MMC-Blockgerätetreiber + - CONFIG\_MMC\_SDHCI: Secure Digital Host Controller Interface Unterstützung + - CONFIG\_MMC\_SDHCI\_PCI: SDHCI-Unterstützung für PCI-Bus + - CONFIG\_MMC\_SDHCI\_ACPI: SDHCI-Unterstützung für ACPI-aufgelistete SDHCI-Controller + - CONFIG\_MMC\_SDHCI\_PLTFM: SDHCI-Plattform- und OF-Treiber-Hilfsprogramm + +### Basis-Distro-Updates + +- aaa\_glibc-solibs: Version 2.42 +- adwaita-icon-theme: Version 48.1 +- at-spi2-core: Version 2.56.4 +- bash: Version 5.3.003 +- bind: Version 9.20.13 +- btrfs-progs: Version 6.17 +- ca-certificates: Version 20250812 +- cifs-utils: Version 7.4 +- coreutils: Version 9.8 +- cryptsetup: Version 2.8.1 +- curl: Version 8.16.0 +- e2fsprogs: Version 1.47.3 +- ethtool: Version 6.15 +- exfatprogs: Version 1.2.9 +- fontconfig: Version 2.17.1 +- freetype: Version 2.14.0 +- gdbm: Version 1.26 +- gdk-pixbuf2: Version 2.44.2 +- git: Version 2.51.0 +- glib2: Version 2.86.0 +- glibc: Version 2.42 (build 2) +- gnutls: Version 3.8.10 +- grub: Version 2.12 +- gtk+3: Version 3.24.50 +- harfbuzz: Version 12.0.0 +- intel-microcode: Version 20250812 +- iproute2: Version 6.17.0 +- inih: Version 61 +- inotify-tools: Version 4.25.9.0 +- iputils: Version 20250605 +- iw: Version 6.17 +- json-glib: Version 1.10.8 +- kbd: Version 2.9.0 +- kernel-firmware: Version 20250924\_1269106 +- krb5: Version 1.22.1 +- less: Version 679 +- libXfixes: Version 6.0.2 +- libXpresent: Version 1.0.2 +- libXres: Version 1.2.3 +- libarchive: Version 3.8.1 +- libdrm: Version 2.4.125 +- libffi: Version 3.5.2 +- libgcrypt: Version 1.11.2 +- libjpeg-turbo: Version 3.1.2 +- libnftnl: Version 1.3.0 +- libnvme: Version 1.15 +- libpng: Version 1.6.50 +- libssh: Version 0.11.3 +- libtiff: Version 4.7.1 +- libtirpc: Version 1.3.7 +- libunistring: Version 1.4 +- liburing: Version 2.12 +- libusb: Version 1.0.29 +- libwebp: Version 1.6.0 +- libvirt: Version 11.7.0 +- libxkbcommon: Version 1.11.0 +- libxml2: Version 2.14.6 +- libzip: Version 1.11.4 +- lsof: Version 4.99.5 +- lvm2: Version 2.03.35 +- mcelog: Version 206 +- mesa: Version 25.2.3 +- nano: Version 8.6 +- ncurses: Version 6.5\_20250816 +- nettle: Version 3.10.2 +- nghttp2: Version 1.67.1 +- nghttp3: Version 1.12.0 +- noto-fonts-ttf: Version 2025.09.01 +- nvme-cli: Version 2.15 +- openssl: Version 3.5.3 +- ovmf: Version unraid202502 +- p11-kit: Version 0.25.10 +- pam: Version 1.7.1 +- pcre2: Version 10.46 +- pango: Version 1.56.4 +- pciutils: Version 3.14.0 +- perl: Version 5.42.0 +- php: Version 8.3.26-x86\_64-1\_LT mit gettext-Erweiterung +- pixman: Version 0.46.4 +- rclone: version 1.70.1-x86\_64-1\_SBo\_LT.tgz +- readline: Version 8.3.001 +- samba: Version 4.23.1 +- shadow: Version 4.18.0 +- smartmontools: Version 7.5 +- spirv-llvm-translator: Version 21.1.0 +- sqlite: Version 3.50.4 +- sudo: Version 1.9.17p2 +- sysstat: Version 12.7.8 +- sysvinit: Version 3.15 +- tdb: Version 1.4.14 +- tevent: Version 0.17.1 +- userspace-rcu: Version 0.15.3 +- util-linux: Version 2.41.2 +- wayland: version 1.24.0 +- wireguard-tools: Version 1.0.20250521 +- wireless-regdb: Version 2025.07.10 +- xdpyinfo: Version 1.4.0 +- xdriinfo: Version 1.0.8 +- xfsprogs: Version 6.16.0 +- xkeyboard-config: Version 2.45 +- xorg-server: Version 21.1.18 +- xterm: Version 402 +- zfs: Version zfs-2.3.4\_6.12.47\_Unraid-x86\_64-2\_LT diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json new file mode 100644 index 0000000000..6f7b40f25e --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Veröffentlichungshinweise", + "position": 6, + "link": { + "type": "generated-index", + "description": "Unraid-Veröffentlichungshinweise" + } +} diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json new file mode 100644 index 0000000000..10d99a1edf --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Systemadministration", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json new file mode 100644 index 0000000000..45f39424f2 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Erweiterte Werkzeuge", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx new file mode 100644 index 0000000000..51e646262c --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx @@ -0,0 +1,459 @@ +--- +sidebar_position: 1 +sidebar_label: Befehlszeilenschnittstelle +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CliCpuInfo from './partials/command-line-interface/cpu-info.mdx'; +import CliMemoryInfo from './partials/command-line-interface/memory-info.mdx'; +import CliStorageInfo from './partials/command-line-interface/storage-info.mdx'; + +# Befehlszeilenschnittstelle + +Während die meisten Aufgaben in Unraid über die %%WebGUI|web-gui%% ausgeführt werden können, erfordern bestimmte Operationen - insbesondere solche, die mit der Diagnose, der Laufwerksverwaltung oder dem Scripting in Zusammenhang stehen - die Verwendung der Systemkonsole oder des %%SSH|ssh%% Terminals. Diese Seite bietet Unraid-spezifische Befehlszeilen-Tools und Beispiele, die ohne umfangreiche Linux-Kenntnisse verwendet werden können. + +:::tip[Device Wege] +Viele Festplattenoperationen auf Unraid basieren auf Linux-Gerätenamen wie `/dev/sdX`. Sie können die Gerätekennung für jedes Laufwerk im **Main**-Tab der %%WebGUI|web-gui%% finden. Suchen Sie nach dem dreibuchstabigen Label `sdX` oder `nvmeX` neben jeder Festplatte. Verwenden Sie den entsprechenden Bezeichner in allen Befehlen, indem Sie `sdX` durch Ihre spezifische Festplatte ersetzen. +::: + +## Zugriff auf das Terminal + +Unraid enthält ein integriertes Web-Terminal, auf das Sie direkt über die %%WebGUI|web-gui%% zugreifen können. Verwenden Sie einfach das Dropdown-Menü oben rechts und wählen Sie ">\_". Dies öffnet eine Befehlszeilensitzung als %%root user|root-user%%, die Ihnen vollständigen administrativen Zugriff auf Ihr System gewährt. + +Sie können auch extern über %%SSH|ssh%% (Secure Shell) mit einem Client wie %%PuTTY|putty%% auf Ihren Unraid-Server zugreifen. + +:::tip\[When Sollte ich das Terminal verwenden? + +If you're using Windows, you might prefer %%PuTTY|putty%% for %%SSH|ssh%% access instead of the built-in terminal. It's lightweight, free, and allows you to save sessions for easy access later. + +- Ausführen von Diagnosen und Befehlszeilentools wie `smartctl`, `xfs_repair`, `tail` oder `top`. +- Ausführen von Plugin-Skripten oder Tools, die keine Benutzeroberfläche erfordern. +- Fehlerbehebung bei Problemen mit der Konnektivität, Systemdiensten oder %%user shares|user-share%%. + +::: + +### Laufwerktests und Überwachung + +If you're using Windows, you might prefer %%PuTTY|putty%% for %%SSH|ssh%% access instead of the built-in terminal. It's lightweight, free, and allows you to save sessions for easy access later. + +
+ Wie man PuTTY installiert und verwendet - Klicken Sie, um ausklappen/einklappen + + 1. Laden Sie %%PuTTY|putty%% von der [offiziellen Website](https://www.putty.software/) herunter. + 2. Starten Sie die %%PuTTY|putty%%-Anwendung. + 3. Geben Sie die IP-Adresse oder den Hostnamen Ihres Unraid-Servers ein (z. B. `tower.local`). + 4. Stellen Sie den Verbindungstyp auf `%%SSH|ssh%%` ein. + 5. (Optional) Speichern Sie den Sitzungsnamen für die zukünftige Nutzung. + 6. Klicken Sie auf **Öffnen**, um die Sitzung zu starten. + 7. Geben Sie bei der Aufforderung `root` ein und dann Ihr Passwort. + + Sobald Sie sich angemeldet haben, befinden Sie sich in der Unraid-Shell-Umgebung. Tippen Sie `exit`, um die Sitzung zu schließen, wenn Sie fertig sind. +
+ +:::note +Unraid konfiguriert den SSH-Server automatisch beim ersten Start. Stellen Sie sicher, dass Ihre Netzwerkverbindung ordnungsgemäß funktioniert und dass Ihr Root-Passwort gesetzt ist, bevor Sie eine Remoteverbindung herstellen. +::: + +## Laufwerktests und Überwachung + +Diese Tools helfen dabei, die Leistung zu bewerten, den Zustand der Laufwerke zu überprüfen und die Langsamkeit des %%arrays|array%% zu beheben. Alle Befehle sollten vom Terminal oder über %%SSH|ssh%% ausgeführt werden. + +### `diskspeed.sh` + +Dieses Skript ermöglicht umfassende Oberflächen-Leistungsprüfungen mit visuellen Berichten. + +
+ Diskspeed.sh-Nutzung anzeigen - Klicken Sie, um ausklappen/einklappen + + Früher war dies ein Skript, das Sie aus den Unraid-Foren heruntergeladen haben. DiskSpeed ist jetzt in einem verfeinerten Paket erhältlich: + + ```bash + hdparm -tT /dev/sdX + ``` + + Das `-t`-Flag testet gepufferte Festplattenlesevorgänge, während `-T` Cache-Lesevorgänge testet. Dies misst hauptsächlich die sequentielle Leseleistung und hilft dabei, ungewöhnlich langsame Laufwerke zu identifizieren. + + **Führen Sie mehrere Tests zur Genauigkeit durch:** + + ```bash + for ((i=0;i<5;i++)); do hdparm -tT /dev/sdX; done + ``` + + **Laufwerksinformationen anzeigen:** + + ```bash + hdparm -I /dev/sdX + ``` + + Dies zeigt das Modell, die Firmware, die Cache-Größe und unterstützte Funktionen an, was hilft, den Datenträgertyp und das Controllerverhalten zu überprüfen. +
+ +### `smartctl` + +Dieser Befehl führt %%SMART|smart%% Diagnosen durch und überwacht die Gesundheit der Laufwerke. + +
+ Smartctl-Optionen anzeigen - Klicken Sie, um ausklappen/einklappen + + **Basis %%SMART|SMART%% Bericht:** + + ```bash + smartctl -a /dev/sdX + ``` + + Wenn dieser Befehl einen Fehler anzeigt, versuchen Sie, den Gerätetyp anzugeben: `smartctl -a -d ata /dev/sdX` (verwenden Sie `-d nvme` für NVMe-Laufwerke). + + **%SMART|smart%% Selbsttests starten:** + + Kurzer Test (dauert einige Minuten) + + ```bash + smartctl -t short /dev/sdX + ``` + + Erweiterter Test (kann Stunden dauern) + + ```bash + smartctl -t long /dev/sdX + ``` + + **Speichern Sie %%SMART-Bericht|smart-report%% in einer Datei:** + + ```bash + smartctl -a /dev/sdX > /boot/smart_report.txt + ``` + + Dies speichert den Bericht auf Ihrem Unraid-Flash-Laufwerk zur späteren Überprüfung oder zum Teilen im [Forum](https://forums.unraid.net/). +
+ +### `top` + +Dieser Befehl bietet eine Echtzeitüberwachung von Prozessen und Ressourcen. + +
+ Top-Nutzung anzeigen - Klicken Sie, um ausklappen/einklappen + + Früher war dies ein Skript, das Sie aus den Unraid-Foren heruntergeladen haben. DiskSpeed ist jetzt in einem verfeinerten Paket erhältlich: + + Installieren Sie DiskSpeed über [Community-Anwendungen](../../using-unraid-to/run-docker-containers/community-applications.mdx) (***Apps-Tab***) durch die Suche nach "DiskSpeed" oder besuchen Sie das [GitHub-Repository](https://github.com/jbartlett777/DiskSpeed) für manuelle Installationsanweisungen. +
+ +--- + +## Systemüberwachung + +Verwenden Sie diese Befehle, um Speicher, Prozesse und Systemleistung zu überwachen, wenn der %%WebGUI|web-gui%% nicht verfügbar ist oder für detailliertere Diagnosen. + +### `ps` + +Verwenden Sie diesen Befehl, um laufende Prozesse mit detaillierten Informationen anzuzeigen. + +
+ Ps-Optionen anzeigen - Klicken Sie, um ausklappen/einklappen + + ```bash + top + ``` + + - Zeigt die CPU- und Speichernutzung für jeden Prozess in Echtzeit an. + - Drücken Sie `q`, um den Vorgang zu beenden. + - Verwenden Sie die Pfeiltasten zum Scrollen und `k`, um Prozesse zu beenden. + + **Nach Speicherverbrauch sortieren:** +
+ +### `frei` + +Dieser Befehl zeigt Speicherverbrauchsstatistiken an. + +
+ Freie Nutzung anzeigen - Klicken Sie, um ausklappen/einklappen + + ```bash + free -h + ``` + + Dies zeigt die RAM-Nutzung in einem menschenlesbaren Format an. Das `-h`-Flag bedeutet, dass die Größenangaben in KB, MB oder GB anstatt in Bytes angezeigt werden. + + :::tip[Das Ausgabeergebnis verstehen] + Eine niedrige "verfügbare" Speicheranzeige weist nicht unbedingt auf ein Problem hin, da Linux aggressiv Daten für Leistungszwecke zwischenspeichert. + ::: +
+ +### `df` + +Dieser Befehl zeigt die Nutzung des Dateisystem-Speicherplatzes an. + +
+ Df-Nutzung anzeigen - Klicken Sie, um ausklappen/einklappen + + **Alle Prozesse mit vollständigen Details auflisten:** + + ```bash + ps aux + ``` + + :::tip + Erwägen Sie die Verwendung von `htop` für eine benutzerfreundlichere Schnittstelle mit erweiterten Steuerungen. + ::: + + ```bash + ps aux --sort=-%mem | head -20 + ``` + + **Nach CPU-Nutzung sortieren:** + + ```bash + ps aux --sort=-%cpu | head -20 + ``` +
+ +--- + +## Speicher-Utilities + +Diese Befehle helfen, den Speicherplatzverbrauch, Partitionsinformationen zu überprüfen und Speichereinheiten zu identifizieren. + +### `lsblk` + +Listet alle Blockgeräte in Baumstruktur auf. + +
+ Lsblk-Nutzung anzeigen - Klicken Sie, um ausklappen/einklappen + + ```bash + df -h + ``` + + Dieser Befehl zeigt den verwendeten und verfügbaren Speicherplatz auf allen eingebundenen Dateisystemen an. Er ist praktisch zum Überprüfen von `/var/log` (das RAM-basiertes Logging nutzt) in Unraid. Für weitere Informationen zum [System Logging](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx). +
+ +### `blockdev -getsz` + +Hilft zu bestimmen, ob ein Ersatzlaufwerk ausreichend Speicherplatz für den Wiederaufbau hat. + +
+ Blockdev-Nutzung anzeigen - Klicken Sie, um ausklappen/einklappen + + ```bash + fdisk -l /dev/sdX + ``` + + Dieser Befehl zeigt das Partitionslayout, die Größen und die Plattenspeicherung an. Er hilft beim Beheben von Problemen mit unpassenden Plattengrößen, besonders beim [Ersetzen von Platten](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-disks). +
+ +### `blkid` + +Dateisystembeschriftungen identifizieren. + +
+ Blkid-Nutzung anzeigen - Klicken Sie, um ausklappen/einklappen + + ```bash + lsblk + ``` + + Dieser Befehl zeigt den verwendeten und verfügbaren Speicherplatz auf allen eingebundenen Dateisystemen an. Er ist praktisch zum Überprüfen von `/var/log` (das RAM-basiertes Logging nutzt) in Unraid. Für weitere Informationen zum [System Logging](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx). +
+ +### `blockdev -getsz` + +Hilft zu bestimmen, ob ein Ersatzlaufwerk ausreichend Speicherplatz für den Wiederaufbau hat. + +
+ Fdisk-Nutzung anzeigen - Klicken Sie, um ausklappen/einklappen + + **Syntax:** + + ``` + blockdev --getsz /dev/sdX + ``` + + Gibt die rohen Anzahl der 512-Byte-Sektoren eines Geräts zurück - praktisch, um zu bestätigen, dass ein Ersatzlaufwerk groß genug ist, bevor der Wiederaufbau beginnt. +
+ +### `ss` + +Socket-Statistiken und Netzwerkverbindungen anzeigen. Dies ist der moderne Ersatz für `netstat`. + +
+ Ss-Optionen anzeigen - Klicken Sie, um ausklappen/einklappen + + **Syntax:** + + ``` + blkid /dev/sdX1 + ``` + + Gibt den Dateisystemtyp und das Label aus. Verwenden Sie dies anstelle des veralteten `vol_id`-Befehls, um zu überprüfen, dass das Unraid-Flash mit `UNRAID` beschriftet ist. +
+ +--- + +## Netzwerkdiagnosen + +Werkzeuge zur Fehlerbehebung bei Netzwerkverbindungen und Interface-Konfiguration. + +### `ping` + +Netzwerkkonnektivität testen. + +
+ Ping-Nutzung anzeigen - Klicken Sie, um ausklappen/einklappen + + **Konnektivität testen, indem eine begrenzte Anzahl von Paketen gesendet wird:** + + ```bash + ss -tuln + ``` + + - `-t`: TCP-Sockets + - `-u`: UDP-Sockets + - `-l`: Zeigt nur lauschende Sockets an + - `-n`: Zeigt Portnummern anstelle von Servicenamen + + **Etablierten Verbindungen anzeigen:** + + ```bash + ss -tup + ``` + + Dieser Befehl zeigt aktive Verbindungen zusammen mit Prozessinformationen an. +
+ +### `ethtool` + +Ein praktisches Werkzeug zum Abfragen und Anpassen von Parametern der Netzwerkschnittstellenkarte (NIC), wie Link-Geschwindigkeit, Offload-Funktionen und Statistik. + +
+ Ethtool-Nutzung anzeigen - Klicken Sie, um ausklappen/einklappen + + **Grundlegende Treiber- und Firmware-Informationen:** + + ```bash + ip addr show + ``` + + **Netzwerkschnittstellen mit Farben anzeigen:** + + ```bash + ip -c addr show + ``` + + Um die aktuelle Link-Geschwindigkeit und Einstellungen Ihrer Schnittstelle zu prüfen, führen Sie aus: + + ```bash + ip route show + ``` +
+ +### `ping` + +Netzwerkkonnektivität testen. + +
+ Ss-Optionen anzeigen - Klicken Sie, um ausklappen/einklappen + + **Alle offenen Ports anzeigen:** + + ```bash + ping -c 4 google.com + ``` + + Dieser Befehl sendet vier Pakete an das Ziel und stoppt, was ihn für grundlegende Konnektivitätstests ohne kontinuierliche Ausgabe geeignet macht. +
+ +### `ethtool` + +Ein praktisches Werkzeug zum Abfragen und Anpassen von Parametern der Netzwerkschnittstellenkarte (NIC), wie Link-Geschwindigkeit, Offload-Funktionen und Statistik. + +
+ IP-Optionen anzeigen - Klicken Sie, um ausklappen/einklappen + + **Alle Netzwerkschnittstellen anzeigen:** + + Verwenden Sie diesen Befehl, um Informationen über den Treiber und die Firmware Ihrer Netzwerkschnittstelle zu erhalten: + + ``` + ethtool -i eth0 + ``` + + **Aktuelle Link-Geschwindigkeit und Einstellungen anzeigen:** + + **Routing-Tabelle anzeigen:** + + ``` + ethtool eth0 + ``` + + **Erweiterte Schnittstellenstatistiken anzeigen:** + + Für erweiterte Statistiken im Zusammenhang mit der Schnittstelle verwenden Sie den folgenden Befehl: + + ``` + ethtool -S eth0 + ``` + + Diese Befehle können helfen, die Verhandlungsraten für Gigabit, 2.5 GbE oder 10 GbE-Verbindungen zu bestätigen, Probleme mit Kabeln zu diagnostizieren oder verlorene Pakete zu identifizieren, die aufgrund von Offload-Unstimmigkeiten auftreten könnten. +
+ +--- + +## `tail` + +Protokolldateien in Echtzeit überwachen. + + + + + + + + + + + + + + + +--- + +## Systemwartung + +Befehle zum Herunterfahren des Systems, zur Protokollüberwachung und zur Dienstverwaltung. + +### `tail` + +Protokolldateien in Echtzeit überwachen. + +
+ Verwendung von tail anzeigen - Zum Erweitern/Reduzieren klicken + + ```bash + tail -f /var/log/syslog + ``` + + Dieser Befehl zeigt Live-Updates aus dem Systemprotokoll an. Zum Beenden verwenden Sie `Strg+C`. + + **Eine bestimmte Anzahl von Zeilen anzeigen:** + + ```bash + tail -n 50 /var/log/syslog + ``` +
+ +### `powerdown` + +System sicher herunterfahren. + +
+ Verwendung von powerdown anzeigen - Zum Erweitern/Reduzieren klicken + + ```bash + powerdown + ``` + + Dieser Befehl verwendet den eingebauten Abschaltvorgang von Unraid, um das %%array|array%% zu stoppen und das System sicher herunterzufahren. Es wird der manuellen Abschaltung vorgezogen. +
diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx new file mode 100644 index 0000000000..ad208dbb2f --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx @@ -0,0 +1,17 @@ +**CPU-Architekturzusammenfassung:** + +```bash +lscpu +``` + +Dieser Befehl zeigt Informationen über Kerne, Threads, Virtualisierungsunterstützung und Cache-Details an. + +**Feature-Erkennung:** + +```bash +grep -E 'lm|vmx|svm' /proc/cpuinfo +``` + +- `lm`: Zeigt 64-Bit-Unterstützung an +- `vmx`: Intel VT-x Virtualisierung +- `svm`: AMD-V Virtualisierung diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx new file mode 100644 index 0000000000..1198f19399 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx @@ -0,0 +1,11 @@ +**Speichernutzung Überblick:** + +```bash +free -h +``` + +**Detaillierte Speicheraufteilung:** + +```bash +cat /proc/meminfo | head -20 +``` diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx new file mode 100644 index 0000000000..775b38ef04 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx @@ -0,0 +1,11 @@ +**Laufwerke nach Serien-/Modellnummer auflisten:** + +```bash +ls -l /dev/disk/by-id/ | grep -v part +``` + +**Dateisystem-Labels überprüfen:** + +```bash +ls -l /dev/disk/by-label/ +``` diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx new file mode 100644 index 0000000000..d2bbe77286 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx @@ -0,0 +1,11 @@ +

Terminal-Methode

+ +``` +wakeonlan MAC_ADDRESS +``` + +Installieren Sie es mit `sudo apt install wakeonlan`, falls es noch nicht installiert ist. + +

Alternative: WoL-GUI

+ +Sie können eine `wol`-GUI-Frontend von Ihrem Linux-Distributionspaketmanager installieren. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx new file mode 100644 index 0000000000..d3fd913876 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx @@ -0,0 +1,19 @@ +

Terminal-Methode (empfohlen)

+ +1. Installieren Sie `wakeonlan` mit Homebrew: + + ``` + brew install wakeonlan + ``` + +2. Senden Sie das magische Paket: + + ``` + wakeonlan MAC_ADDRESS + ``` + +

GUI-Alternative: miniWOL

+ +1. Laden Sie [miniWOL v3](https://apps.apple.com/app/miniwol/id6474282023) aus dem App Store herunter. +2. Fügen Sie Ihren Server mit seiner MAC-Adresse hinzu. +3. Klicken Sie auf das Sonnensymbol, um Ihren Server zu wecken. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx new file mode 100644 index 0000000000..a462da73c5 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx @@ -0,0 +1,9 @@ +

Verwendung von WakeOnLan CMD

+ +1. Laden Sie [wolcmd.exe](https://www.depicus.com/wake-on-lan/wake-on-lan-cmd) herunter. + +2. Führen Sie es in der Eingabeaufforderung aus: + + ``` + wolcmd.exe 255.255.255.255 + ``` diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx new file mode 100644 index 0000000000..84d9b81f47 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx @@ -0,0 +1,109 @@ +--- +sidebar_position: 2 +sidebar_label: Wake-on-LAN (WoL) +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import WakeOnLanWindows from './partials/wake-on-lan/windows.mdx'; +import WakeOnLanMacos from './partials/wake-on-lan/macos.mdx'; +import WakeOnLanLinux from './partials/wake-on-lan/linux.mdx'; + +# Wake-on-LAN (WoL) + +%%Wake-on-LAN (WOL)|wake-on-lan%% ermöglicht es Ihnen, Ihren Unraid-Server aus einem Herunter- oder Schlafmodus aus der Ferne zu wecken, indem Sie ein "magisches Paket" über das Netzwerk senden. Diese Seite hilft Ihnen dabei, WoL für Ihr lokales Netzwerk einzurichten. + +## Anforderungen + +Damit WoL ordnungsgemäß funktioniert, stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllen: + +- **NIC-Unterstützung**: Ihr Netzwerk-Interface-Controller sollte WoL unterstützen; die meisten modernen NICs tun dies. + +- **BIOS/UEFI-Einstellungen**: Aktivieren Sie WoL im BIOS/%%UEFI|uefi%% Ihres Motherboards unter Energiemanagement. Hier sind einige gängige Einstellungennamen: + + | Einstellungsname | Beschreibung | + | --------------------------------- | ------------------------------------------------- | + | Wake on LAN | Generische WoL-Einstellung | + | PME-Ereignisaufweckung | Für PCIe-Weckereignisse | + | Einschalten durch PCI/PCIe-Geräte | Alternativer Name für WoL | + | ErP bereit | Muss *deaktiviert* werden, damit WoL funktioniert | + +- **Stromanschluss**: Stellen Sie sicher, dass Ihr Server an eine Stromquelle angeschlossen ist. + +- **Netzwerkverbindung**: Verbinden Sie Ihren Server mit Ihrem LAN über ein Ethernet-Kabel (WiFi WoL wird nicht unterstützt). + +:::caution[Hardware kompatibilität] +Nicht alle Hardware unterstützt den S3-Schlaf oder WoL zuverlässig. Einige Systeme können Probleme beim Eintritt in den Schlaf oder beim korrekten Aufwachen haben oder zusätzliche BIOS/%%UEFI|uefi%%-Einstellungen erfordern. Testen Sie diese Funktionen immer gründlich, bevor Sie sich darauf verlassen. +::: + +## Einen Unraid-Server in den Schlaf versetzen + +Der bevorzugte und benutzerfreundliche Weg, den Schlafmodus auf Unraid zu verwalten, ist das [**Dynamix S3 Sleep Plugin**](https://unraid.net/community/apps/c/plugins/p3?srsltid=AfmBOorpfP2Psw_bCorklf-QVCUHvADYGsdbsAH-4CldU4V2hWgoO-09#r:~:text=%3E%3E-,Dynamix%20S3%20Sleep,-Dynamix%20Repository) zu verwenden. Dieses Plugin bietet eine grafische Oberfläche, um den Schlaf-, Aufwach- und Leerlaufverhalten zu planen, während auch gängige Probleme behandelt werden, die bei verschiedenen Hardwarekonfigurationen auftreten können. + +Zum Installieren und Konfigurieren: + +1. Öffnen Sie die ***Apps-Schaltfläche*** im Unraid %%WebGUI|web-gui%%. +2. Suchen Sie nach "Dynamix S3 Sleep" und installieren Sie das Plugin. +3. Navigieren Sie zu ***Einstellungen → Schlaf-Einstellungen***, um Ihre Schlaf- und Weckoptionen einzurichten. + +Das Plugin verwaltet die meisten Schlafkonfigurationsoptionen. + +
+ Alternative manuelle Methode - Klicken zum Erweitern/Einklappen + + Wenn Sie mehr Kontrolle möchten oder eine erweiterte Anpassung benötigen, können Sie Schlaf- und WoL-Einstellungen über die Befehlszeile konfigurieren. Diese Methode wird für fortgeschrittene Benutzer empfohlen. + + So konfigurieren Sie den Schlafmodus manuell: + + 1. Verbinden Sie sich mit Ihrem Server über das %%WebGUI|web-gui%% Terminal oder [%%SSH|ssh%%](../../system-administration/advanced-tools/command-line-interface.mdx#accessing-the-terminal). + + 2. Identifizieren Sie Ihr primäres Netzwerk-Interface (normalerweise `eth0`) durch Ausführen des folgenden Befehls: + + ``` + ifconfig + ``` + + Notieren Sie die MAC-Adresse (beschriftet als `ether`). + + 3. Aktivieren Sie WoL auf dem Interface mit diesem Befehl: + + ``` + ethtool -s eth0 wol g + ``` + + 4. Setzen Sie den Server in den Schlafmodus mit diesem Befehl: + + ``` + echo -n mem > /sys/power/state + ``` + + :::caution[Beständigkeit] + Manuell konfigurierte WoL-Einstellungen sind **standardmäßig nicht beständig** über Neustarts hinweg. Um sie dauerhaft zu machen: + + 1. Erstellen Sie eine `go`-Datei auf Ihrem Flash-Laufwerk unter `/boot/config/go`. + + 2. Fügen Sie diese Zeile hinzu: + + ``` + /sbin/ethtool -s eth0 wol g + ``` + ::: +
+ +## Wecken Sie Ihren Unraid-Server + +Um Ihren Unraid-Server aus der Ferne zu wecken, müssen Sie ein spezielles "Magic Packet" über Ihr lokales Netzwerk senden. Dieses Paket enthält die MAC-Adresse Ihres Servers und weist die Netzwerkschnittstelle an, das System aus dem Schlaf- oder Abschaltungszustand einzuschalten. Verschiedene Betriebssysteme bieten verschiedene Werkzeuge und Methoden, um dieses Paket zu senden. Unten finden Sie spezifische Anweisungen für Windows, macOS und Linux. + + + + + + + + + + + + + + diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json new file mode 100644 index 0000000000..7a52c0ca59 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Wartung und Aktualisierung", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx new file mode 100644 index 0000000000..c3aa3423d4 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx @@ -0,0 +1,169 @@ +--- +sidebar_position: 3 +sidebar_label: Ändern des Flash-Geräts +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import BackupUsingWebGUI from './partials/backup-using-webgui.mdx'; +import BackupManualMethod from './partials/backup-manual-method.mdx'; +import ReplacementUsingCreator from './partials/replacement-using-creator.mdx'; +import ReplacementManualMethod from './partials/replacement-manual-method.mdx'; + +# Ändern des Flash-Geräts + +Das USB-Flash-Laufwerk ist entscheidend für Ihren Unraid-Server, da es das Betriebssystem, die Konfigurationsdateien und die Lizenz speichert. Falls dieses Gerät ausfällt oder unzuverlässig wird, ist ein schneller Austausch entscheidend, um Datenverlust zu vermeiden und Ausfallzeiten zu minimieren. + +:::caution +Wenn Sie Ihr Unraid USB-Flash-Gerät ersetzen, wird Ihre Lizenz auf das neue Gerät übertragen und das alte Flash-Gerät wird gesperrt **und kann nicht mehr mit Unraid verwendet werden.** Diese Aktion ist dauerhaft und kann nicht rückgängig gemacht werden. +::: + +Zu den häufigen Anzeichen, dass Ihr USB-Flash-Gerät ersetzt werden muss, gehören: + +- Der Server startet nicht oder es fehlen Dateien auf dem Gerät. +- Das Gerät wechselt wiederholt in den Schreibschutzmodus oder zeigt Datei-Systemfehler an. +- Das Gerät geht verloren oder wird gestohlen. +- Speicherkapazität ist für Updates oder Konfigurationsänderungen unzureichend. +- Die physische Größe des Geräts passt nicht zu Ihrem Server-Setup. + +--- + +## Auswahl eines Ersatzgeräts + +Beim Auswählen eines neuen USB-Flash-Laufwerks für Unraid liegt der Schwerpunkt eher auf Zuverlässigkeit und Kompatibilität als auf Geschwindigkeit. + +

Anforderungen

+ +| Anforderung | Details | +| ------------------------ | ------------------------------------------------------------------------------------------------------------------------- | +| USB-Version | USB 2.0 empfohlen (in der Regel zuverlässiger und umfassender kompatibel als USB 3.0) | +| Eindeutige GUID | Muss eine eindeutige Hardware-GUID im programmierbaren ROM enthalten | +| Mindestgröße | Mindestens 4 GB | +| Maximal empfohlene Größe | 32 GB (zur Erleichterung manueller Installationen; größere Geräte können funktionieren, sind aber nicht notwendig) | +| Marke/Anbieter | Kaufen Sie von seriösen Marken und vertrauenswürdigen Einzelhändlern; vermeiden Sie gebrauchte oder graumarktige Produkte | +| Physische Größe | Wählen Sie eine Form, die zu den verfügbaren USB-Ports und den physischen Einschränkungen Ihres Servers passt | + +Für weitere Orientierung zur Auswahl des besten Flash-Geräts für Unraid, sehen Sie sich [Spaceinvader One's Videoanleitung zum USB-Flash-Laufwerktest](https://www.youtube.com/watch?v=jjkaidlZmgs) an. + +::::tip[Rules Daumenregel für den Austausch] +- Kaufen Sie USB-Laufwerke von seriösen Händlern und meiden Sie Auktionsseiten und unbekannte Verkäufer. +- Vermeiden Sie gebrauchte oder zuvor verwendete Laufwerke. +- Testen Sie das neue Laufwerk auf Ihrem Server, bevor Sie Ihre Lizenz übertragen. +- Seien Sie vorsichtig bei gefälschten Produkten, sogar von bekannten Marken. + :::note + ::: +Die [Forenankündigung über gefälschte SanDisk-Laufwerke](https://forums.unraid.net/topic/119052-psa-on-sandisk-usbs/) von Januar 2022 bestätigt, dass SanDisk aufgrund gefälschter Geräte und Herstellungsänderungen, die zu nicht-eindeutigen GUIDs führen, nicht empfohlen wird. Dies betrifft sowohl gefälschte als auch echte SanDisk-Laufwerke. +:::: + +::: + +::: + +::: + +::: + +--- + +## Ersetzen Ihres USB-Flash-Geräts + +:::caution[Before Sie ersetzen] +Bevor Sie Ihr aktuelles Flash-Gerät ersetzen, überlegen Sie, es auf Fehler zu überprüfen: + +1. Fahren Sie Ihren Server herunter und entfernen Sie das Flash-Gerät. +2. Stecken Sie das Gerät in einen Windows- oder Mac-Computer. +3. Verwenden Sie Windows Scandisk oder das Mac-Dienstprogramm, um nach Fehlern zu suchen und diese zu reparieren. +4. Wenn Fehler gefunden und behoben werden, können Sie das Gerät weiter verwenden. Wenn Probleme weiterhin bestehen oder wieder auftreten, wird ein Austausch empfohlen. + +Ein einzelner Stromausfall oder unvollständiger Schreibvorgang kann manchmal zu geringfügigen Korruptionen führen, die in der Regel behebbar sind. Jedoch deuten wiederkehrende Probleme auf die Notwendigkeit eines neuen Geräts hin. +::: + +Es gibt zwei Möglichkeiten, Ihr Unraid USB-Flash-Gerät zu ersetzen: das empfohlene [USB-Flash-Erstellungstool](https://unraid.net/download) für Windows oder macOS oder die manuelle Methode für erfahrene Benutzer. **Sichern Sie Ihr Flash-Gerät immer, bevor Sie beginnen.** + +### Sichern Ihres Flash-Geräts + + + + + + + + + + + +:::tip[Backup best Practices] +- Sichern Sie Ihr Flash-Gerät regelmäßig, insbesondere nach wichtigen Konfigurationsänderungen. +- Speichern Sie Backups außerhalb des Servers (auf einem anderen Computer oder in der Cloud). +- Bewahren Sie einen Screenshot Ihrer Festplattenzuweisungen nach Änderungen an der Hardware auf. +::: + +:::important[Trial Schlüssel und Geräteänderungen] +Wenn Sie eine Testkonfiguration auf ein neues Flash-Gerät übertragen, können Sie das %%array|array%% nicht starten, bis Sie einen gültigen Registrierungsschlüssel erworben haben. Testlizenzen funktionieren nur auf dem ursprünglichen Gerät. +::: + +### Austauschmethoden + + + + + + + + + + + +Sie haben nun Ihr USB-Flash-Gerät ersetzt und Ihren Unraid-Registrierungsschlüssel übertragen. Das System zeigt das Registrierungsdatum und das nächste berechtigte Ersatzdatum an. + +--- + +## Häufigkeit des Ersatzes von Registrierungsschlüsseln + +Der Ersatz Ihres Unraid-Registrierungsschlüssels ist einfach, aber es gibt wichtige Details zu Timing und Berechtigung zu beachten. + +- Sie können Ihren Registrierungsschlüssel jederzeit ersetzen. Nach dem ersten Ersatz müssen jedoch **12 Monate** vergehen, bevor Sie die automatisierte Online-Methode erneut verwenden können. +- Wenn Sie Ihren Schlüssel innerhalb von 12 Monaten erneut ersetzen müssen, [kontaktieren Sie den Unraid-Support](https://unraid.net/contact). Für einen schnelleren Service geben Sie Ihre alten und neuen USB-%%GUIDs|guid%%, Ihren Lizenzschlüssel und die E-Mail-Adresse, die für den Kauf verwendet wurde, an. + +:::important +Wenn Sie aufgrund einer Überschreitung des automatisierten Ersatzlimits gesperrt sind und sofortigen Serverzugriff benötigen, richten Sie einen neuen Unraid-Test mit einem neuen USB-Laufwerk ein und kontaktieren Sie dann den Support, um Ihre Lizenz zu übertragen. +::: + +--- + +## Wiederherstellung von einem verlorenen Flash-Gerät ohne Backup + +Den Verlust Ihres Flash-Geräts und das Nichtkennen Ihrer Festplattenzuweisungen kann stressig sein, aber Sie können Datenverlust vermeiden, indem Sie vorsichtig vorgehen. + +:::caution +Never assign a data disk as a %%parity drive|parity-drives%%. Incorrect assignments can overwrite data with parity information, resulting in permanent data loss. +::: + +:::tip[Identifying Laufwerke] +- **%%Parity drives|parity-drives%%** do not have a mountable file system. If a drive cannot be mounted, it is likely a %%parity|parity%% drive. +- **Data drives** previously used by Unraid retain their data even after resetting the %%array|array%% configuration. +- If you find more unmountable drives than expected %%parity|parity%% drives, stop and seek help in the [Unraid forums](https://forums.unraid.net/). +::: + +So konfigurieren Sie Ihr %%array|array%% sicher neu: + +1. Bereiten Sie ein neues Unraid-Flash-Laufwerk gemäß den Anleitungen früher in diesem Handbuch vor. +2. Gehen Sie zum ***Hauptreiter*** + - Weisen Sie alle Laufwerke als Datenlaufwerke zu und starten Sie das %%array|array%%. + - Note the serial numbers of drives that do not mount; these are likely your %%parity|parity%% drives. + - Do not click **Format** on any drive. If more unmountable drives appear than expected %%parity|parity%% drives, stop and seek help in the forums. + - Sie können auch das [Unassigned Devices Plugin](https://unraid.net/community/apps?q=Unassigned%20Devices) verwenden, um jedes Laufwerk testweise zu mounten (%%parity|parity%% wird nicht gemountet), und %%parity|parity%% durch Ausschluss zu identifizieren. + - Stoppen Sie das %%array|array%%, bevor Sie fortfahren. +3. Go to ***Tools → New Config*** and create a new %%array|array%% configuration, retaining all the currently configured drives. +4. Weisen Sie die richtigen Laufwerke als %%parity|parity%% und den Rest als Datenlaufwerke auf der **Haupt**-Registerkarte zu. +5. If you have a single %%parity|parity%% drive, the order of data drives is not critical. Check **Parity is Valid** only if you are certain you assigned the same physical parity disk and no writes occurred since the original configuration. For dual %%parity|parity%%, both the order of the data drives and the assignment of parity1 and parity2 are important—parity1 and parity2 are not interchangeable, and %%parity|parity%% must be rebuilt if either is changed. +6. Start the %%array|array%% to commit assignments. Data drives should mount, and their contents should remain intact. +7. Wenn Sie **Parität ist gültig** angekreuzt haben, führen Sie eine korrigierende [%%parity|parity%%-Überprüfung](../../using-unraid-to/manage-storage/array-configuration.mdx#checking-array-devices) durch, um zu bestätigen, dass Ihre Konfiguration korrekt ist. + +:::note +Nach dem Wiederherstellen Ihres %%array|array%% überprüfen Sie alle spezifischen Include/Exclude-Einstellungen, da sich die Reihenfolge der Datenlaufwerke geändert haben könnte. +::: + +--- + +\* *„%%WireGuard|wireguard%%“ und das „%%WireGuard|wireguard%%“-Logo sind eingetragene Warenzeichen von Jason A. Donenfeld.* diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx new file mode 100644 index 0000000000..55eb47afb3 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx @@ -0,0 +1,3 @@ +1. Fahren Sie Ihren Server herunter und entfernen Sie das Flash-Gerät. +2. Setzen Sie es in einen anderen Computer ein. +3. Kopieren Sie alle Dateien vom Flash-Laufwerk an einen sicheren Backup-Speicherort. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx new file mode 100644 index 0000000000..d7d06871f6 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx @@ -0,0 +1,8 @@ +1. Gehen Sie zum **Hauptreiter** und wählen Sie Ihr Flash-Gerät aus. +2. Klicken Sie unter **Flash-Geräteeinstellungen** auf **FLASH BACKUP**, um ein gezipptes Backup auf Ihren Computer herunterzuladen. + +
+ ![Flash Backup](/img/flashbackup.png) +
+ +Alternativ können Sie [Unraid Connect-Flash-Backup](../../../../unraid-connect/automated-flash-backup.mdx) für automatisierte Flash-Backups verwenden. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx new file mode 100644 index 0000000000..b583891161 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx @@ -0,0 +1,25 @@ +:::caution +Diese Methode sollte nur verwendet werden, wenn Sie sich mit der Linux-Befehlszeile auskennen, da Fehler Ihr System unbrauchbar machen könnten. +::: + +1. Kopieren Sie die URL der gewünschten Unraid-Version-ZIP-Datei aus der [Versionsgeschichte](../../../download_list.mdx). +2. Melden Sie sich über %%SSH|ssh%% oder Konsole an. +3. Führen Sie die folgenden Befehle *einen nach dem anderen* aus (ersetzen Sie `` durch den kopierten Link): + + ```bash + cd /tmp + rm -f unraid.zip + rm -rf unraid_install + wget -O unraid.zip + [[ -s unraid.zip ]] && echo "OK to continue" || echo "STOP: the file was not downloaded" + unzip -d unraid_install unraid.zip + [[ -s unraid_install/bzroot ]] && echo "OK to continue" || echo "STOP: the file was not extracted properly" + [[ ! -d /boot/previous ]] && mkdir /boot/previous + mv /boot/bz* /boot/previous + mv /boot/changes.txt /boot/previous + cp unraid_install/bz* /boot + cp unraid_install/changes.txt /boot + sync -f /boot + sleep 5 + reboot + ``` diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx new file mode 100644 index 0000000000..0edbede3bf --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx @@ -0,0 +1,7 @@ +1. Laden Sie die Unraid-Version-ZIP-Datei aus der [Versionsgeschichte](../../../download_list.mdx) herunter. +2. Entpacken Sie die Datei auf Ihrem Computer. +3. Greifen Sie auf den `flash`-Freigabeordner zu oder schließen Sie das USB-Flashgerät an Ihren Computer an. +4. Erstellen Sie ein `previous`-Verzeichnis, wenn es noch nicht existiert. +5. Verschieben Sie alle `bz*`- und `changes.txt`-Dateien in das `previous`-Verzeichnis. +6. Kopieren Sie die neuen `bz*`- und `changes.txt`-Dateien in das Stammverzeichnis des Flash-Laufwerks. +7. Starten Sie Ihren Server neu. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx new file mode 100644 index 0000000000..b1dcbf97c7 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx @@ -0,0 +1,23 @@ +*Verwenden Sie diese Methode, wenn das USB-Flash-Erstellungstool in Ihrem System nicht funktioniert.* + +:::important[Before Sie beginnen] +Verwenden Sie die manuelle Methode nur, wenn Sie sich mit grundlegender Datei-Verwaltung auskennen und Ihr System das USB-Flash-Erstellungstool nicht unterstützt. +::: + +1. Bereiten Sie ein neues Flash-Gerät nach der [manuellen Installationsmethode](../../../getting-started/set-up-unraid/create-your-bootable-media.mdx#manual-install-method) vor. +2. Kopieren Sie Ihren gesicherten `config`-Ordner auf das neue Flash-Gerät und überschreiben Sie vorhandene Dateien. +3. Fahren Sie den Server herunter, tauschen Sie die Flash-Geräte und schalten Sie den Strom ein. +4. Wenn Sie mit `Ungültiger, fehlender oder abgelaufener Registrierungsschlüssel` aufgefordert werden, wählen Sie **Registrierungsschlüssel**. + +
+ ![Ungültiger Schlüssel](/img/Invalidkey.png) +
+ +5. Wählen Sie in ***Werkzeuge → Registrierung*** **Schlüssel ersetzen** und geben Sie Ihre E-Mail-Adresse ein. + +
+ ![Ungültiger Schlüssel](/img/Replacekey.png) +
+ +6. Folgen Sie den Anweisungen in der E-Mail, um Ihren neuen Schlüssel zu installieren. +7. Wählen Sie **Fertig**. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx new file mode 100644 index 0000000000..9bb36fd343 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx @@ -0,0 +1,32 @@ +*Empfohlen für die meisten Benutzer* + +1. Laden Sie das [Unraid USB-Flash-Erstellungstool](https://unraid.net/download) für Windows oder macOS herunter. +2. Fügen Sie Ihr neues USB-Flash-Gerät in Ihren Computer ein. +3. Klicken Sie im Erstellungstool auf Betriebssystem, scrollen Sie nach unten zu **Benutzerdefiniert verwenden** und navigieren Sie zu Ihrer Backup-ZIP-Datei. + +
+ ![Version auswählen](/img/Selectversion.png) +
+ +4. Wählen Sie Ihr neues USB-Flash-Gerät als Ziel und klicken Sie auf **Schreiben**. +5. Fahren Sie den Server herunter, ersetzen Sie das alte Flash-Gerät durch das neue und schalten Sie den Strom ein. +6. Wenn Sie mit `Ungültiger, fehlender oder abgelaufener Registrierungsschlüssel` aufgefordert werden, wählen Sie **Registrierungsschlüssel**. + +
+ ![Ungültiger Schlüssel](/img/Invalidkey.png) +
+ +7. Kopieren Sie bei Bedarf Ihre vorhandene Lizenzschlüsseldatei in das Verzeichnis `boot/config` des neuen Geräts. +8. Stellen Sie sicher, dass nur eine Schlüsseldatei im Konfigurationsordner vorhanden ist. +9. Wählen Sie in ***Werkzeuge → Registrierung*** **Schlüssel ersetzen** und geben Sie Ihre E-Mail-Adresse ein. + +
+ ![Ungültiger Schlüssel](/img/Replacekey.png) +
+ +10. Folgen Sie den Anweisungen in der E-Mail, um Ihren neuen Schlüssel zu installieren. +11. Sobald Sie abgeschlossen sind, wählen Sie **Fertig**. + +:::important +Wenn Sie den Fehler "Schlüsseldatei ist nicht gültig" sehen, könnte Ihr Schlüssel auf der schwarzen Liste stehen oder nicht der letzte gültige Schlüssel sein. [Kontaktieren Sie den Unraid-Support](https://unraid.net/support) für Unterstützung. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx new file mode 100644 index 0000000000..083b308b06 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx @@ -0,0 +1,6 @@ +Für Unraid-Versionen 6.11 und 6.12 folgen Sie dieser traditionellen Aktualisierungsmethode: + +1. Im %%WebGUI|web-gui%%, gehen Sie zu ***Tools → Update OS***. +2. Klicken Sie auf **Nach Updates suchen**. +3. Wenn ein neues Release verfügbar ist, klicken Sie auf **Update**. +4. Starten Sie Ihren Server neu, wenn Sie dazu aufgefordert werden. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx new file mode 100644 index 0000000000..f8d00f6354 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx @@ -0,0 +1,11 @@ +Das Upgrade von Unraid erfolgt über das neue **Update OS Tool** mit einer benutzerfreundlichen Oberfläche: + +1. Im %%WebGUI|web-gui%%, klicken Sie auf das Dropdown-Menü oben rechts und wählen **Nach Updates suchen** oder navigieren Sie zu ***Tools → Update OS***. +2. Wählen Sie den **Stabilen** Kanal für stabile Releases oder den **Nächsten** Kanal für Betas und RCs. +3. Klicken Sie auf **Changelog anzeigen, um das Update zu starten**. Das Changelog wird Ihnen angezeigt, damit Sie es überprüfen können, bevor Sie auf **Fortfahren** klicken. +4. Klicken Sie auf **Bestätigen und Update starten**, um das neueste Stabil-Release anzuwenden. +5. Wenn Sie dazu aufgefordert werden, starten Sie Ihren Server neu, um das Upgrade abzuschließen. + +:::note +Möglicherweise müssen Sie sich in Ihr Unraid-Konto einloggen, um auf Updates zuzugreifen, insbesondere für die „Next“-Branch-Veröffentlichungen. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx new file mode 100644 index 0000000000..ecd2af3e7f --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx @@ -0,0 +1,151 @@ +--- +sidebar_position: 2 +sidebar_label: Unraid aktualisieren +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import UpgradeModern from './partials/upgrade-modern.mdx'; +import UpgradeLegacy611612 from './partials/upgrade-legacy-611-612.mdx'; +import ManualDowngradeSimplest from './partials/manual-downgrade-simplest.mdx'; +import ManualDowngradeCommandLine from './partials/manual-downgrade-command-line.mdx'; + +# Unraid aktualisieren + +Das Aktualisieren von Unraid OS stellt sicher, dass Sie die neuesten Funktionen, Sicherheitsupdates und Hardwareunterstützung erhalten. Diese Seite beschreibt den standardmäßigen Aktualisierungsprozess sowie Problemlösungs-Tipps und manuelle Upgrade-Optionen. + +:::note\[Prerequisites] + +Bevor Sie mit der Aktualisierung beginnen, sichern Sie unbedingt eine vollständige Sicherung Ihres USB-Flash-Geräts. Weitere Einzelheiten finden Sie unter [Sicherung Ihres Flash-Geräts](../maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device). + +::: + +:::tip[Best Praktiken vor dem Upgrade] +1. **Erstellen Sie ein Backup** Ihres Flash-Laufwerks und aller wichtigen Daten. +2. **Lesen Sie die Versionshinweise** für die Version, die Sie installieren möchten. +3. **Aktualisieren Sie alle Plugins** auf die neuesten Versionen. +4. **Stoppen Sie optional das Array**, bevor Sie fortfahren. +5. **Aktualisieren Sie Unraid OS** über die Seite ***Tools → Update OS***. +6. **Starten Sie** Ihren Server neu, um das Upgrade abzuschließen. +::: + +## Standard-Aktualisierungsprozess + + + + + + + + + + + +:::caution[ZFS Pool-Upgrade-Warnungen] +Beim Upgrade auf Unraid 7.x können während des Bootvorgangs oder im WebGUI Warnungen zu [%%ZFS|zfs%%](../../advanced-configurations/optimize-storage/zfs-storage.mdx) Pool-Feature-Upgrades angezeigt werden. Diese Warnungen sind kein Anzeichen für ein Problem; sie weisen lediglich darauf hin, dass Ihr %%ZFS|zfs%%-Pool Funktionen einer älteren Version von ZFS verwendet. + +Das Upgrade Ihres Pools ist nicht dringend erforderlich, aber wenn Sie sich entscheiden, es durchzuführen, sollten Sie beachten, dass es möglicherweise nicht mit früheren Versionen von Unraid funktioniert. Dies bedeutet, dass Sie nach dem Upgrade möglicherweise nicht zu einer vorherigen Unraid-Version zurückkehren können. + +Denken Sie wie immer daran, Ihre Daten zu sichern, bevor Sie Ihre %%ZFS|zfs%%-Pools aktualisieren. +::: + +--- + +## Troubleshooting upgrade issues + +Wenn Sie nach dem Upgrade auf Probleme stoßen, sehen Sie sich den entsprechenden Abschnitt unten zur Unterstützung an. + +
+ Das Array oder Docker-Container starten nach dem Upgrade langsam - Klicken zum Expandieren/Reduzieren + + Ein einmaliger Migrationsprozess kann nach bestimmten Upgrades für Docker-Container erforderlich sein. Dieser Prozess kann Zeit in Anspruch nehmen, insbesondere wenn Sie viele Images haben. Seien Sie geduldig während dieses Prozesses; die Leistung sollte sich nach dem ersten Start normalisieren. +
+ +
+ Docker-Container funktionieren nach einem Upgrade nicht richtig - Klicken zum Expandieren/Reduzieren + + Wenn Sie auf Fehler stoßen wie *"Layer aus dem Manifest stimmen nicht mit der Image-Konfiguration überein,"* müssen Sie möglicherweise Ihre Docker-Image-Datei neu erstellen. Hier ist, wie: + + 1. Gehen Sie zu ***Einstellungen → Docker*** und stoppen Sie den Docker-Dienst. + 2. Kreuzen Sie das Kästchen an, um das Docker-Image zu löschen, und klicken Sie auf die Löschtaste. + 3. Starten Sie Docker neu, um das Image neu zu erstellen. + 4. Navigieren Sie zur **Apps**-Registerkarte, **Vorherige Apps** und markieren Sie, was Sie erneut installieren möchten, und klicken Sie auf **„xx Anwendungen installieren“**. +
+ +
+ Das Array oder Docker-Container starten nach dem Upgrade langsam - Klicken zum Expandieren/Reduzieren + + Ein einmaliger Migrationsprozess kann nach bestimmten Upgrades für Docker-Container erforderlich sein. Dieser Prozess kann Zeit in Anspruch nehmen, insbesondere wenn Sie viele Images haben. Seien Sie geduldig während dieses Prozesses; die Leistung sollte sich nach dem ersten Start normalisieren. + + 1. Gehen Sie zum **VMs**-Tab und bearbeiten Sie jede %%VM|vm%% (stellen Sie sicher, dass die **Erweiterte Ansicht** aktiviert ist). + 2. Setzen Sie die Netzwerkbrücke auf `br0` und klicken Sie auf **Anwenden**. + 3. Navigieren Sie zu ***Einstellungen → VM-Manager*** (in **Erweiterter Ansicht**) und setzen Sie die Standard-Bridge auf `br0`. +
+ +
+ Docker-Container funktionieren nach einem Upgrade nicht richtig - Klicken zum Expandieren/Reduzieren + + Wenn Sie auf Fehler stoßen wie *"Layer aus dem Manifest stimmen nicht mit der Image-Konfiguration überein,"* müssen Sie möglicherweise Ihre Docker-Image-Datei neu erstellen. Hier ist, wie: + + 1. Bearbeiten Sie die %%VM|vm%% über das **VMs**-Tab (wählen Sie **Erweiterte Ansicht** aus). + 2. Stellen Sie den **%%VNC|vnc-session%%-Video-Treiber** auf **QXL** (empfohlen) ein. Versuchen Sie **Cirrus** oder **vmvga**, wenn Sie mit QXL wenig Erfolg haben. + 3. Klicken Sie auf **Anwenden**, um die Änderungen zu speichern. +
+ +
+ VMs zeigen "Kann Schnittstellen-MTU nicht abrufen" oder Netzwerkfehler - Klicken zum Expandieren/Reduzieren + + Wenn Sie %%OVMF|ovmf%%-basierte %%VMs|vm%% in älteren Unraid-Versionen erstellt haben, könnten Sie auf eine EFI-Shell stoßen. Sie können die %%VM|vm%% starten, indem Sie die folgenden Befehle eingeben: + + 1. Geben Sie `fs0:` ein. + 2. Geben Sie dann `cd efi/boot` ein. + 3. Schließlich geben Sie `bootx64.efi` ein. + + Wenn `fs0:` nicht funktioniert, können Sie stattdessen `fs1:` versuchen. Wenn weiterhin Probleme auftreten, besuchen Sie bitte das [Unraid-Forum](https://forums.unraid.net/) für Unterstützung. +
+ +
+ VNC-Zugriff auf VMs funktioniert nicht oder ist langsam - Klicken zum Expandieren/Reduzieren + + Um dieses Problem zu lösen, bearbeiten Sie die %%VM|vm%% im %%WebGUI|web-gui%% und klicken Sie auf **Anwenden**, ohne Änderungen vorzunehmen. Diese Aktion aktualisiert den Maschinentyp auf die neueste unterstützte Version. +
+ +
+ VM wird nicht booten (EFI-Shell erscheint) - Klicken zum Expandieren/Reduzieren + + Wenn Sie %%OVMF|ovmf%%-basierte %%VMs|vm%% in älteren Unraid-Versionen erstellt haben, könnten Sie auf eine EFI-Shell stoßen. Sie können die %%VM|vm%% starten, indem Sie die folgenden Befehle eingeben: +
+ +--- + +## Manuelles Upgrade oder Downgrade + +Manuelle Aktualisierungen sind selten erforderlich, können jedoch notwendig sein, wenn Sie keinen Zugriff auf die WebGUI haben oder auf eine frühere Version zurückkehren müssen. Bevor Sie fortfahren, ist es wichtig, Ihr USB-Flash-Gerät zu sichern. Einzelheiten finden Sie unter [Sicherung Ihres Flash-Geräts](../maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device). + +### Downgrade mit dem Downgrade-OS-Tool (falls WebGUI zugänglich ist) + +Wenn Sie auf das WebGUI zugreifen können: + +1. Loggen Sie sich in die %%WebGUI|web-gui%% ein. +2. Navigieren Sie zu ***Tools → Downgrade OS***. +3. Ihre vorherige Version wird als verfügbare Downgrade-Option aufgeführt. +4. Klicken Sie auf **Downgrade** und folgen Sie den Anweisungen. +5. Starten Sie Ihren Server neu, wenn Sie dazu aufgefordert werden. + +:::caution +Bedenken Sie, dass ein Downgrade zu Kompatibilitätsproblemen mit Plugins oder Docker-Containern führen kann. Sichern Sie immer Ihr USB-Flash-Gerät und alle wichtigen Daten zuvor. +::: + +### Manuelle Methoden (wenn WebGUI unzugänglich ist) + +Verwenden Sie diese Methoden nur, wenn Sie keinen Zugriff auf die %%WebGUI|web-gui%% haben: + + + + + + + + + + diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json new file mode 100644 index 0000000000..2c9dfe7b13 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Leistung überwachen", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx new file mode 100644 index 0000000000..a0a3eecd32 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx @@ -0,0 +1,46 @@ +--- +sidebar_position: 2 +sidebar_label: SMART-Berichte & Festplattengesundheit +--- + +# SMART-Berichte & Festplattengesundheit + +**Selbstüberwachungs-, Analyse- und Berichterstellungstechnologie (%%SMART|smart%%)** ist eine hilfreiche Funktion in den meisten modernen Festplatten und SSDs. Es behält die Gesundheit und Zuverlässigkeit Ihrer Laufwerke im Auge. In Unraid dient die %%SMART|smart%% Überwachung als Frühwarnsystem, das Sie vor möglichen Laufwerksausfällen warnt, bevor Sie Daten verlieren. + +## Warum die SMART-Überwachung wichtig ist + +Die %%SMART|smart%% Überwachung hilft Ihnen, subtile Veränderungen im Gesundheitszustand Ihres Laufwerks zu erkennen, wie z.B. steigende Fehlerraten oder fehlerhafte Sektoren, bevor sie zu ernsthaften Problemen wie Lese- oder Schreibfehlern führen. Indem Sie auf diese Warnungen achten, können Sie ein versagendes Laufwerk ersetzen oder sichern und so Ihre wertvollen Daten schützen. Um informiert zu bleiben, aktivieren Sie [Benachrichtigungen](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#notification-settings), um Warnungen zu erhalten, auch wenn Sie nicht im Unraid %%WebGUI|web-gui%% eingeloggt sind. + +:::note +%%SMART|smart%%-Überwachung funktioniert für SATA-Laufwerke, ist jedoch nicht für SAS-Laufwerke verfügbar. +::: + +## Wie Unraid SMART nutzt + +Unraid constantly checks key %%SMART|smart%% attributes for each connected drive. If any of these attributes change, you'll see an orange icon next to the affected drive on the Dashboard. Clicking on the icon brings up a menu that lets you acknowledge the change. After that, Unraid will only notify you again if there are further updates to that attribute. + +Für eine genauere Betrachtung der Daten eines Laufwerks von %%SMART|smart%%, klicken Sie auf dessen Namen im **Main**-Tab der Unraid %%WebGUI|web-gui%%. + +Einige %%SMART|smart%% Attribute, die Unraid standardmäßig überwacht, umfassen: + +| **ID** | **Attribut** | **Was es bedeutet** | **Wann man besorgt sein sollte / Maßnahmen, die zu ergreifen sind** | +| ------- | ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **5** | Anzahl der umverteilten Sektoren | Dies zeigt, wie viele fehlerhafte Bereiche auf der Festplatte durch Reserve-Sektoren ersetzt wurden. | Wenn es über 0 liegt, beginnt Ihr Laufwerk auszufallen. Wenn diese Zahl wächst, [sichern Sie Ihre Daten](../../getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx#back-up-your-flash-device) und besorgen Sie sich bald ein neues Laufwerk. | +| **187** | Gemeldete unkorrigierbare Fehler | Dies sind Fehler, die das Laufwerk nicht beheben konnte. | Wenn hier eine Zahl größer als 0 angezeigt wird, ist das ein ernstes Zeichen. Ersetzen Sie das Laufwerk so bald wie möglich. | +| **188** | Befehlszeitüberschreitung | Dies zählt, wie oft Operationen zu lange gedauert haben, was auf mögliche Laufwerks- oder Kabelprobleme hinweist. | Gelegentliche Timeouts können aufgrund von Stromproblemen auftreten. Wenn dieser Wert häufig über 0 liegt, überprüfen Sie Ihre Kabel und Stromverbindungen. | +| **197** | Anzahl der aktuellen / anstehenden Sektoren | Dies weist auf instabile Sektoren hin, die bald ausfallen könnten. | Jede Zahl über 0 bedeutet, dass das Laufwerk einige Bereiche nicht richtig lesen kann. Sollte sie nach ein paar Tagen nicht auf 0 zurückgehen, ersetzen Sie das Laufwerk. | +| **198** | Anzahl der unkorrigierbaren Sektoren | Diese Sektoren können auch nach mehreren Versuchen nicht gelesen oder geschrieben werden. | Wenn Sie feststellen, dass diese Zahl größer als 0 ist, haben Sie Daten verloren. Ersetzen Sie das Laufwerk sofort. | +| **199** | %%UDMA\|udma%% %%CRC-Fehler\|crc-errors%% Zählung | Dies zeigt Fehler im Datentransfer zwischen dem Laufwerk und dem Computer an, die oft durch fehlerhafte Kabel verursacht werden. | Wenn diese Zahl steigt, überprüfen und schließen Sie die SATA-Kabel neu an. Wenn es danach nicht mehr steigt, sollte alles in Ordnung sein. | + +## Was zu tun ist, wenn Sie eine SMART-Warnung erhalten + +Wenn Sie eine %%SMART|smart%% Warnung erhalten, sollten Sie Folgendes tun: + +- Überprüfen Sie die betroffenen Attribute in der obigen Tabelle. +- Wenn Sie feststellen, dass die Anzahl der umverteilten, anstehenden oder unkorrigierbaren Sektoren zunimmt, ist es Zeit, die Festplatte bald zu ersetzen. +- Bei %%CRC-Fehlern|crc-errors%% prüfen Sie Ihre Datenkabel und stellen Sie sicher, dass sie sicher angeschlossen sind. +- Wenn Sie sich über eine Warnung unsicher sind, zögern Sie nicht, die [Unraid-Foren](https://forums.unraid.net/) zu nutzen oder die Dokumentation des Laufwerksherstellers zu konsultieren. + +:::warning +%%SMART|smart%% warnings are early signals that shouldn't be ignored. Take action to back up your data and consider replacing the drive before it fails. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json new file mode 100644 index 0000000000..d8d89ebcd9 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Server sichern", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx new file mode 100644 index 0000000000..915651aa7e --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx @@ -0,0 +1,20 @@ +Diese Methode entfernt nur das **Root-Benutzerpasswort** und lässt andere Benutzer unangetastet. + +Um über diese Methode zurückzusetzen: + +1. **Fahren Sie Ihren Unraid-Server herunter.** + +2. **Verbinden Sie das USB-Flash-Laufwerk** mit einem Computer (Windows oder Mac). + +3. **Öffnen Sie die Datei** unter `/config/shadow` mit einem Texteditor (wie Notepad++). + +4. **Bearbeiten Sie die Zeile**, die wie folgt aussieht: + `root:$&$&%*1112233484847648DHD$%.:15477:0:99999:7:::` + + zu diesem stattdessen: + + `root::15477:0:99999:7:::` + +5. **Speichern Sie die Änderungen** an der Datei und schließen Sie das USB-Laufwerk wieder an Ihren Server an. + +6. **Starten Sie Ihren Unraid-Server** und setzen Sie ein neues Root-Passwort. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx new file mode 100644 index 0000000000..041e53ec78 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx @@ -0,0 +1,11 @@ +Diese Methode löscht **alle Benutzerpasswörter**, einschließlich\*%%root|root-user%% und Share-Benutzer. + +Für den einfachsten Weg, Ihr Passwort zurückzusetzen: + +1. **Fahren Sie Ihren Unraid-Server herunter.** +2. **Verbinden Sie das USB-Flash-Laufwerk** mit einem Computer (Windows oder Mac). +3. **Löschen Sie diese Dateien** vom USB-Laufwerk: + - `/config/shadow` + - `/config/smbpasswd` +4. **Trennen Sie das USB-Flash-Laufwerk** und schließen Sie es erneut an Ihren Unraid-Server an, dann starten Sie ihn. +5. **Erstellen Sie ein neues Root-Passwort**, wenn während des Systemstarts dazu aufgefordert wird. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx new file mode 100644 index 0000000000..be757b6c59 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx @@ -0,0 +1,9 @@ +1. Wählen Sie das Auge-Symbol ![Peer-Konfiguration](/img/eye-icon.png), um die Peer-Konfiguration anzuzeigen. + +
+ ![Peer-Konfiguration](/img/peer-eye.png) +
+ +2. In der %%WireGuard|wireguard%%-Mobil-App wählen Sie **Aus QR-Code erstellen** und scannen Sie den QR-Code. +3. Benennen Sie die Verbindung und verbinden Sie sich. Der %%VPN-Tunnel|vpn-tunnel%% sollte schnell starten. +4. Halten Sie den QR-Code privat - jeder, der ihn hat, kann auf Ihr VPN zugreifen. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx new file mode 100644 index 0000000000..f3803109d0 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx @@ -0,0 +1,10 @@ +1. Wählen Sie das Auge-Symbol ![Peer-Konfiguration](/img/eye-icon.png), um die Peer-Konfiguration anzuzeigen. + +
+ ![Peer-Konfiguration](/img/peer-eye.png) +
+ +2. Laden Sie die Konfigurationsdatei herunter. +3. Übertragen Sie es sicher auf das Client-Gerät (z.B. über vertrauenswürdige E-Mail oder Cloud-Speicher). +4. Entpacken Sie die Dateien und importieren Sie die Konfiguration in den %%WireGuard|wireguard%%-Client. +5. Schützen Sie diese Datei, um unbefugten VPN-Zugang zu verhindern. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx new file mode 100644 index 0000000000..d6c40eb609 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx @@ -0,0 +1,71 @@ +--- +sidebar_position: 2 +sidebar_label: Den USB-Stick sichern +--- + +# Den USB-Stick sichern + +Das USB-Flashlaufwerk ist für Ihren Unraid Server unerlässlich, da es alle Konfigurationsdaten, Lizenzen und Systemeinstellungen speichert. Aufgrund seiner Bedeutung ist es entscheidend, seine Inhalte jederzeit sicher und zugänglich zu halten. + +## Backups + +Ein aktuelles Backup Ihres USB-Flashlaufwerks stellt sicher, dass Sie sich schnell von Hardwarefehlern, unbeabsichtigten Änderungen oder Datenbeschädigungen erholen können. Erstellen Sie Backups in den folgenden Situationen: + +- Vor dem Upgrade von Unraid oder der Installation von Plugins +- Nach dem Hinzufügen oder Entfernen von Laufwerken +- Nach Änderungen an Netzwerk-, Freigabe- oder Sicherheitseinstellungen +- Vor wesentlichen Konfigurationsänderungen +- Regelmäßig im Rahmen Ihrer Wartungsroutine + +Um Ihren USB-Stick mit dem Unraid WebGUI zu sichern, folgen Sie diesen Schritten: + +1. Wählen Sie Ihren USB-Stick im **Main**-Tab aus. +2. Klicken Sie in den **Flash-Geräteeinstellungen** auf **Flash-Backup**. + +
+ ![Wählen Sie die Flash-Backup-Schaltfläche](/img/flashbackup.png) +
+ +3. Unraid erstellt eine ZIP-Datei mit dem Inhalt des USB-Sticks. +4. Speichern Sie diese ZIP-Datei an einem sicheren Ort außerhalb Ihres Unraid-Servers (z.B. auf einem separaten PC, NAS oder in einer Cloud). + +Wenn Sie Ihren USB-Stick neu erstellen müssen, verwenden Sie dieses Backup mit dem [USB Creator Tool](https://unraid.net/download). + +:::tip +Erwägen Sie, nach Hardware-Änderungen einen Screenshot Ihrer [Laufwerkszuweisungen](../../getting-started/set-up-unraid/configure-your-array.mdx#assign-parity-and-data-disks) zu speichern. Dies sorgt für eine korrekte Festplattenplatzierung, falls Sie von Ihrem Backup wiederherstellen müssen. +::: + +--- + +## Netzwerkzugriff + +Sie können steuern, ob Ihr Flash-Laufwerk über das Netzwerk zugänglich ist, ähnlich wie andere Freigaben in Unraid. Der Netzwerkzugriff sollte jedoch eingeschränkt werden, da das Flash-Laufwerk sensible Konfigurations- und Lizenzierungsdaten enthält. Ziehen Sie Folgendes in Betracht: + +- **Netzwerksichtbarkeit:** Entscheiden Sie, ob Ihr USB-Stick im Netzwerk sichtbar oder verborgen sein soll. +- **Zugriffsrechte:** Wenn der Netzwerkzugriff aktiviert ist, legen Sie Berechtigungen fest, um zu begrenzen, wer die Inhalte anzeigen oder ändern kann. + +:::important[Reducing Sicherheitsrisiken] +- **Freigabe deaktivieren:** Setzen Sie den %%SMB|samba%% Export des Flash-Laufwerks auf **Nein**, um den Netzwerkzugriff vollständig zu verhindern. +- **Zugang beschränken:** Falls Sie den USB-Stick freigeben müssen, setzen Sie die Sicherheit auf **Privat** und gewähren nur vertrauenswürdigen Benutzern mit starken Passwörtern Zugriff. +- **Öffentlichen Zugang vermeiden:** Lassen Sie die USB-Stick-Freigabe niemals auf **Öffentlich** oder **Sicher**, wenn Gastzugriff mit Schreibrechten möglich ist. + +Diese Schritte tragen dazu bei, unerlaubte Änderungen oder die Offenlegung kritischer Dateien zu verhindern. +::: + +--- + +## Berechtigungen + +Um die Systemsicherheit zu erhöhen, können Dateien auf dem Flash-Laufwerk keine Ausführungsberechtigung mehr erhalten. Diese Änderung verhindert, dass bösartiger oder unbeabsichtigter Code direkt vom Flash-Laufwerk ausgeführt wird, und verringert das Risiko von Ausnutzung oder unbeabsichtigter Systemänderung. + +Wenn Sie benutzerdefinierte Skripte oder Programme auf dem USB-Stick gespeichert haben, gehen Sie wie folgt vor: + +1. **Kopieren Sie Skripte an einen ausführbaren Ort:** + - Verwenden Sie `/usr/local/bin`, wenn Sie die Skripte im Standard-Systempfad wollen. + - Automatisieren Sie dies, indem Sie Kopierbefehle in Ihre `config/go`-Datei einfügen. + - Setzen Sie nach dem Kopieren die Ausführungsrechte auf die Dateien. + +2. **Skripte mit einem Interpreter ausführen:** + - Schließen Sie das Skript mit dem Interpreter ein (z.B. `bash /boot/config/scripts/myscript.sh`). + +Dieser Ansatz hält Ihr System sicher, während fortgeschrittene Benutzer ihre Skripte ausführen können. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx new file mode 100644 index 0000000000..9ca06db6ca --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx @@ -0,0 +1,188 @@ +--- +sidebar_position: 8 +sidebar_label: Sichern Sie Ihre ausgehenden Kommunikationen +--- + +# Sichern Sie Ihre ausgehenden Kommunikationen + +Der ausgehende Proxy-Manager und %%Tailscale|tailscale%%-Ausgangsknoten bieten eine Möglichkeit, die ausgehenden Kommunikationen von Unraid durch sichere Kanäle zu leiten. Diese Tools sind nützlich zum Umgehen restriktiver Firewalls, Einhaltung von Netzwerk-Richtlinien oder zum Schutz Ihres ausgehenden Datenverkehrs. Auch wenn sich diese Lösungen hauptsächlich auf den Systemverkehr von Unraid konzentrieren, gibt es Konfigurationsmöglichkeiten, um ihre Reichweite auf Ihr gesamtes Netzwerk auszuweiten. + +Es gibt drei Hauptmethoden, um Ihre ausgehenden Kommunikationen zu sichern: + +1. [**Ausgehender Proxy-Manager**](#setting-up-a-proxy-server) - Dieses Werkzeug leitet HTTP-Verkehr über einen Proxy-Server, sodass Sie Ihre Webanfragen sicher verwalten und steuern können. +2. [**%%Tailscale|tailscale%% Exit-Nodes**](#tailscale-exit-nodes) - Mit %%Tailscale|tailscale%% Exit-Nodes kann Ihr gesamter Datenverkehr durch das Mesh-Netzwerk von %%Tailscale|tailscale%% geleitet werden, um eine sichere Verbindung zwischen Ihren Geräten zu gewährleisten. +3. [**%%WireGuard|wireguard%% %%VPN|vpn-tunnel%%**](#outgoing-vpn-connections) - Sie können auch %%WireGuard|wireguard%% %%VPN|vpn-tunnel%% verwenden, um Ihren Datenverkehr über kommerzielle %%VPN|vpn-tunnel%%-Anbieter zu leiten, und so eine zusätzliche Schicht von Privatsphäre und Sicherheit hinzufügen. + +### Ausgehender Proxy-Manager vs. Tailscale/WireGuard/VPN + +| Anwendungsfall | Empfohlenes Werkzeug | Warum | +| ------------------------------------------------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Firewall für Unraid-Systemaktualisierungen umgehen | Ausgehender Proxy-Manager | Leitet nur den Systemverkehr von Unraid durch einen Proxy; einfache und minimale Konfiguration. | +| Gesamten ausgehenden Datenverkehr mit Mesh-Netzwerken sichern | %%Tailscale\|tailscale%% Exit-Nodes | Verschlüsselt Datenverkehr durch das Mesh-Netzwerk von %%Tailscale\|tailscale%%; einfache Einrichtung mit bestehender %%Tailscale\|tailscale%% Infrastruktur. | +| Gesamten ausgehenden Datenverkehr (systemweit) sichern | %%WireGuard\|wireguard%% %%VPN\|vpn-tunnel%% | Verschlüsselt und tunneliert den gesamten Datenverkehr von Unraid (einschließlich Docker/VMs) zu kommerziellen %%VPN\|vpn-tunnel%%-Anbietern. | +| Traffic von Docker oder VMs isolieren | %%VPN\|vpn-tunnel%% oder Container-Proxy | Konfigurieren Sie %%VPN\|vpn-tunnel%% auf Container/VM-Ebene für granulare Kontrolle. | +| Zugriff auf das Heimnetzwerk von überall aus | %%Tailscale\|tailscale%% Exit-Nodes | Leiten Sie den Verkehr durch Ihr Heimnetzwerk für eine konsistente IP und Geostandorte. | + +Für die meisten Benutzer sind Lösungen wie [%%Tailscale|tailscale%%](./tailscale.mdx) oder [%%WireGuard|wireguard%%](./wireguard.mdx) bevorzugt für vollständige Systemsicherheit und Privatsphäre. Verwenden Sie den ausgehenden Proxy-Manager, wenn Sie nur Unraid's eigene HTTP-Anfragen proxyen müssen. + +### Einen Proxy-Server einrichten + +Um einen Proxy-Server einzurichten: + +1. Navigieren Sie zu ***Einstellungen → Ausgehender Proxy-Manager*** im %%WebGUI|web-gui%%. + +
+ ![Ausgehender Proxy-Manager](/img/outgoing-proxy-manager.png) +
+ +2. Fügen Sie den Namen, die URL und (falls erforderlich) den Benutzernamen/das Passwort Ihres Proxy ein. +3. Klicken Sie auf **Übernehmen**. +4. Wählen Sie Ihren neuen Proxy aus der Liste und klicken Sie erneut auf **Anwenden**. + +The %%WebGUI|web-gui%% will automatically use the selected proxy for outgoing system traffic. If you have open web terminals or %%SSH|ssh%% sessions, close and reopen them to apply the new proxy settings. This usage is transparent—monitor proxy server logs to verify activity. + +### Einen HTTP-Proxy-Server auswählen + +- **Wenn Ihre Organisation einen Proxy bereitstellt:** Verwenden Sie die von Ihrem Netzwerkadministrator bereitgestellte Adresse und Anmeldedaten. +- **Falls Sie selbst einen einrichten müssen:** + - Der [Proxy Server Docker-Container von @ich777](https://forums.unraid.net/profile/72388-ich777/) wurde getestet und funktioniert gut mit Unraid. + - Sie können diesen Container konfigurieren, um den Verkehr über einen kommerziellen %%VPN|vpn-tunnel%% unter Verwendung von Unraid's [%%WireGuard|wireguard%% %%VPN|vpn-tunnel%%](wireguard.mdx) zu leiten oder ihn mit einem anderen Docker-basierten %%VPN|vpn-tunnel%%-Dienst zu verbinden. + - Aus Gründen der Zuverlässigkeit hosten Sie den Proxy-Server auf einem separaten System von Unraid, um die Netzwerkverfügbarkeit während des Bootens zu gewährleisten. + +Um den Proxy-Verkehr zu überwachen, gehen Sie auf die **Docker** Registerkarte auf dem Proxy-Host-System, wählen Sie den **Proxy Server** Container und sehen Sie sich die **Logs** an. + +### Automatischer Import und Plug-in-Kompatibilität + +- Wenn Sie vorher das **Proxy Editor** Plugin verwendet haben, wird es automatisch entfernt, sobald Sie auf Unraid 7.0+ mit eingebauter Proxy-Unterstützung aktualisieren. +- Alte Proxy-Einstellungen in Ihrem `config/go` Skript oder in `community.applications/proxy.cfg` werden automatisch importiert und die alten Dateien zu Ihrer Sicherheit umbenannt. + +### Plugin-Kompatibilität + +- Plugins, die PHP’s `curl_init()` Funktion verwenden, nutzen automatisch den ausgehenden Proxy. +- Plugins, die `file_get_contents()` verwenden, sollten auf `curl_init()` migrieren, um Proxy-Kompatibilität zu gewährleisten. +- Für Kommandozeilen-Prozesse bevorzugen Sie `curl` über `wget` für Proxy-Unterstützung. + +Für weitere Informationen über Plugin-Entwicklung und Kompatibilität, besuchen Sie den [Plugins-Abschnitt der Dokumentation](../../using-unraid-to/customize-your-experience/plugins.mdx). + +## Tailscale Exit-Nodes + +%%Tailscale|tailscale%% exit nodes offer a secure and modern way to route your Unraid server's outgoing traffic through another device on your %%Tailnet|tailnet%%. This setup provides the security of a %%VPN|vpn-tunnel%% while leveraging %%Tailscale|tailscale%%'s easy-to-use mesh networking, making it ideal for users who want encrypted outgoing traffic without the complexity of traditional %%VPN|vpn-tunnel%%s. + +:::tip\[When "Wann Sie Tailscale Exit-Nodes verwenden sollten" + +Erwägen Sie die Verwendung von %%Tailscale|tailscale%% Exit-Nodes für: + +- Sichern des ausgehenden Datenverkehrs von Ihrem Heimnetzwerk während des Reisens +- Beibehalten konsistenter IP-Adressen für Dienste, die VPN-Verkehr blockieren +- Nahtlose Integration mit bestehender %%Tailscale|tailscale%%-Infrastruktur + +::: + +### Konfigurieren von Tailscale Exit-Nodes + +Um einen %%Tailscale|tailscale%% Exit-Node für den ausgehenden Datenverkehr Ihres Servers einzurichten: + +1. **Installieren Sie das [Tailscale Plugin](https://unraid.net/community/apps/c/plugins?q=tailscale#r:~:text=Plugins-,Tailscale%20\(Plugin\),-Derek%20Kaser)** von Community Applications, falls es noch nicht installiert ist. +2. **Richten Sie einen Ausgangsknoten** in Ihrem %%Tailnet|tailnet%% ein. Dies kann ein weiterer Unraid-Server, ein Docker-Container oder jedes Gerät sein, das %%Tailscale|tailscale%% ausführt. +3. **Konfigurieren Sie Ihren Unraid-Server**, um den Exit-Node zu nutzen: + - Navigieren Sie zu ***Einstellungen → Tailscale***. + - Im **Use Exit Node**-Feld wählen Sie Ihren verfügbaren Exit-Node. + - Klicken Sie auf **Übernehmen**. + +### Mullvad-Integration + +Tailscale hat sich mit Mullvad VPN zusammengetan, um kommerzielle Ausgangsknoten bereitzustellen. Sie können [Mullvad VPN über Tailscale](https://tailscale.com/mullvad) erwerben und haben Zugriff auf ihr weltweites Netzwerk von Servern als Ausgangsknoten. Diese Kombination bietet das Mesh-Netzwerk von Tailscale zusammen mit der auf Privatsphäre ausgerichteten Infrastruktur von Mullvad. + +### Docker-Container Exit-Nodes + +Sie können auch einen Docker-Container einrichten, um als %%Tailscale|tailscale%% Exit-Node auf Ihrem Unraid-Server zu fungieren. + +1. **Stellen Sie einen %%Tailscale|tailscale%%-Container bereit**, indem Sie das [offizielle %%Tailscale|tailscale%% Docker-Bild](https://hub.docker.com/r/tailscale/tailscale) verwenden. +2. **Konfigurieren Sie den Container**, indem Sie das `--advertise-exit-node` Flag hinzufügen. +3. **Genehmigen Sie den Exit-Node** in Ihrer %%Tailscale|tailscale%%-Admin-Konsole. +4. **Wählen Sie den Container** als Exit-Node für Ihre anderen Geräte im %%Tailnet|tailnet%% aus. + +## Ausgehende VPN-Verbindungen + +Unraid unterstützt ausgehende WireGuard-VPN-Verbindungen zu kommerziellen Anbietern, sodass Sie Docker-Container oder den gesamten Traffic Ihres Servers durch einen sicheren Tunnel leiten können. Dies ist nützlich für den Schutz der Privatsphäre, das Umgehen von geografischen Einschränkungen oder das Sichern ausgehender Daten. Für Community-Einblicke und Fehlersuche sehen Sie den [WireGuard VPN tunneled access Forum Thread](https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/). + +### Einen VPN-Anbieter wählen + +Die Auswahl des richtigen %%VPN|vpn-tunnel%%-Anbieters hängt von Ihren Prioritäten ab - Geschwindigkeit, Privatsphäre, Benutzerfreundlichkeit und Support. Die folgenden Anbieter werden gut von Unraid unterstützt und bieten eine starke %%WireGuard|wireguard%%-Integration: + +| Anbieter | Am besten geeignet für | Schlüsselfunktionen | Unterstützung in Unraid | Anmerkungen | +| -------------------------------------------------------------------------------------------------------- | ----------------------------------- | ---------------------------------------------------------------------- | ----------------------- | ---------------------------------------------- | +| [NordVPN](https://nordvpn.com/) | Geschwindigkeit, Privatsphäre, Wert | Double NAT, keine Protokolle, globales Netzwerk | Ausgezeichnet | NordLynx-Protokoll, schnell | +| [Surfshark](https://surfshark.com/) | Budget, unbegrenzte Geräte | Keine Protokolle, unbegrenzte Verbindungen, schnelle Geschwindigkeiten | Ausgezeichnet | Großer Wert, einfache Einrichtung | +| [ProtonVPN](https://protonvpn.com/) | Privatsphäre, Open-Source | Double NAT, Secure Core, keine Protokolle | Ausgezeichnet | Open-Source, starke Privatsphäre | +| [Mullvad](https://mullvad.net/en) | Anonymität, Einfachheit | Keine persönlichen Daten, Festpreis, Open-Source | Ausgezeichnet | Mit Bargeld zahlen, keine E-Mail | +| [PureVPN](https://www.purevpn.com/) | Streaming, Flexibilität | Großes Netzwerk, einfache Unraid-Integration | Gut | Gute Unterstützung, schnelle Geschwindigkeiten | +| [CyberGhost](https://www.cyberghostvpn.com/) | Streaming, Benutzerfreundlichkeit | Optimierte Server, schnelle Geschwindigkeiten | Gut | Benutzerfreundliche Apps | +| [IVPN](https://www.ivpn.net/en/), [OVPN](https://www.ovpn.com/en), [Windscribe](https://windscribe.com/) | Spezifische Bedürfnisse | Erweiterte Privatsphäre, regionale Optionen | Gut | Community-unterstützt | + +:::tip +Wählen Sie einen Anbieter mit nativer %%WireGuard|wireguard%%-Unterstützung und starken Datenschutzrichtlinien. Vermeiden Sie Anbieter, die benutzerdefinierte Clients oder proprietäre Protokolle erfordern. +::: + +### VPN-Tunneling-Zugriff für Docker konfigurieren + +Sie können spezifische Docker-Container durch einen kommerziellen %%VPN|vpn-tunnel%% Tunnel leiten - keine Routeränderungen erforderlich. + +1. Laden Sie die %%WireGuard|wireguard%%-Konfigurationsdatei von Ihrem gewählten Anbieter herunter. +2. In ***Einstellungen → VPN-Manager*** wählen Sie **Konfig importieren** und laden Sie die Datei hoch. Dies erstellt einen neuen Tunnel. +3. Der **Peer-Typ von Zugriff** ist standardmäßig auf *VPN-Tunneling-Zugriff für Docker* eingestellt. Optional können Sie ihm einen lokalen Namen geben. +4. Klicken Sie auf **Übernehmen**. +5. Setzen Sie den Tunnel-Schalter auf **Aktiv**. + +:::tip +Beachten Sie den Tunnelnamen (z.B., `wg0`, `wg1`, `wg2`). Sie benötigen ihn bei der Konfiguration von Docker-Containern.\nWenn Ihr Anbieter einen DNS-Server in seiner Konfiguration angibt, merken Sie ihn sich für die spätere Verwendung. Wenn nicht, verwenden Sie einen öffentlichen DNS wie `8.8.8.8`. +::: + +### Den Docker-Tunnel testen + +Um zu überprüfen, ob Ihr Docker-Tunnel funktioniert und keine DNS- oder IP-Informationen verliert: + +1. Installieren Sie einen [Firefox](https://unraid.net/community/apps?q=Firefox) Docker-Container über Community Applications. +2. Setzen Sie den **Netzwerk-Typ** auf **Benutzerdefiniert: wgX** (ersetzen Sie X durch Ihren Tunnelnamen). +3. Wechseln Sie zur **Erweiterten** Ansicht und fügen Sie Ihren DNS-Provider zu **Zusätzliche Parameter** hinzu (z. B. `--dns=8.8.8.8`). +4. Änderungen anwenden und den Container starten. +5. Starten Sie Firefox und besuchen Sie [whatismyipaddress.com](https://whatismyipaddress.com/), um zu überprüfen, ob Ihre IP-Adresse mit dem Land des VPN-Servers übereinstimmt. +6. Besuchen Sie [dnsleaktest.com](https://www.dnsleaktest.com/) und bestätigen Sie, dass nur die DNS-Server Ihres VPN erkannt werden. + +Sie können diesem Tunnel zusätzliche Container zuweisen oder mehrere Tunnel erstellen. + +### VPN-Tunneling-Zugriff für das System konfigurieren + +Um den gesamten Unraid-Verkehr durch einen kommerziellen VPN zu leiten: + +1. Laden Sie die %%WireGuard|wireguard%%-Konfigurationsdatei von Ihrem Anbieter herunter. +2. In ***Einstellungen → VPN-Manager*** wählen Sie **Konfig importieren** und laden Sie die Datei hoch. +3. Benennen Sie den Tunnel optional um. +4. Klicken Sie auf **Übernehmen**. +5. Setzen Sie den Tunnel-Schalter auf **Aktiv**. + +:::note +- Möglicherweise müssen Sie den Tunnel vorübergehend deaktivieren, um Unraid-Updates oder Plugin-Installationen durchzuführen. +- Gleichzeitig kann nur ein systemweiter Tunnel aktiv sein. +- Unraid ignoriert die DNS-Einstellungen aus der importierten Konfiguration. Stellen Sie Unraids DNS auf einen zuverlässigen öffentlichen Server ein (z.B. `8.8.8.8`, `8.8.4.4`). +::: + +### Testen des Systemtunnels + +1. Installieren Sie den [Firefox](https://unraid.net/community/apps?q=Firefox) Docker-Container. +2. Akzeptieren Sie alle Vorgaben. +3. Starten Sie Firefox und besuchen Sie [whatismyipaddress.com](https://whatismyipaddress.com/). Ihre IP-Adresse sollte mit dem Standort Ihres VPN-Anbieters übereinstimmen. + +--- + +### Unterstützung und Community-Ressourcen + +Für die aktuellsten Anleitungen, Problemlösungshilfen und Community-Tipps besuchen Sie die folgenden Ressourcen in den [Unraid-Foren](https://forums.unraid.net/): + +- **[WireGuard VPN Vernetzte Verbindung](https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/)** - Diese Community-Diskussion konzentriert sich auf die Leitung von Docker-Containern oder systemweitem Datenverkehr über kommerzielle WireGuard VPN-Anbieter. Sie beinhaltet Praxisbeispiele, DNS-Lecktests und Tipps zur Fehlersuche für ausgehende Tunnel. + +- **[Dynamix WireGuard Plugin Thread](https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/)** - Dies ist der offizielle Thread für das Dynamix WireGuard-Plugin. Er behandelt Plugin-Updates, Funktionsanfragen, Fehlerberichte und allgemeine Fragen und Antworten im Zusammenhang mit der integrierten WireGuard-Unterstützung von Unraid. + +- **[WireGuard Schnellstart](https://forums.unraid.net/topic/84226-wireguard-quickstart/)** - Eine Schritt-für-Schritt-Anleitung zur Einrichtung von eingehenden WireGuard-VPN-Verbindungen zu Unraid. Dieses Ressourcen bietet Konfigurationsanleitungen, Schritt-für-Schritt-Setups und Tipps für den Remotezugriff. + +\* *"WireGuard" und das "WireGuard"-Logo sind eingetragene Marken von Jason A. Donenfeld.* diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx new file mode 100644 index 0000000000..bb67609d28 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx @@ -0,0 +1,297 @@ +--- +sidebar_position: 4 +sidebar_label: Verbindung sichern +--- + +# Verbindung sichern + +Securing your Unraid %%WebGUI|web-gui%% with %%SSL|ssl%% encryption protects sensitive data—such as login credentials and configuration details—from interception or tampering on your local network or the internet. You can use wildcard %%SSL|ssl%% certificates provisioned by [Let's Encrypt](https://letsencrypt.org/) for both local and [Unraid Connect Remote Access](../../../unraid-connect/remote-access.mdx) scenarios. + +:::important[The Bedeutung von SSL] +%%SSL|ssl%% (Secure Sockets Layer) verschlüsselt den gesamten Datenverkehr zwischen Ihrem Browser und dem Unraid-Server, um Abhören und Man-in-the-Middle-Angriffe zu verhindern. Ohne %%SSL|ssl%% könnte jeder, der Zugriff auf Ihr Netzwerk hat, potenziell sensible Daten abfangen oder Ihre Sitzung kapern. Die Verwendung von %%SSL|ssl%% wird sowohl für die lokale als auch für die Remote-Verwaltung Ihres Unraid-Servers dringend empfohlen. +::: + +--- + +## SSL-Parameter + +Mehrere Parameter in Unraid beeinflussen, wie %%SSL|ssl%% konfiguriert und verwendet wird. Diese zu verstehen, hilft Ihnen, das richtige Zertifikat und die richtige Verbindungsmethode für Ihre Bedürfnisse auszuwählen. + +| Parameter | Beschreibung | +| --------------------- | ------------------------------------------------------------------------------------------------ | +| **Servername** | Eingestellt in ***Einstellungen → Identifikation***. Standard ist `tower`. | +| **Lokale TLD** | Eingestellt in ***Einstellungen → Management-Zugriff***. Standard ist `local`. | +| **SSL/TLS verwenden** | Eingestellt in ***Einstellungen → Verwaltungszugriff***. Steuert, ob %%SSL\|ssl%% aktiviert ist. | +| **HTTP-Port** | Eingestellt in ***Einstellungen → Management-Zugriff***. Standard ist `80`. | +| **HTTPS-Port** | Eingestellt in ***Einstellungen → Management-Zugriff***. Standard ist `443`. | +| **Zertifikat** | Type of %%SSL\|ssl%% certificate used (see below). | +| **Lan-ip** | Die LAN-IP-Adresse Ihres Servers, formatiert für die Verwendung in URLs. | +| **Wan-ip** | Die öffentliche IP-Adresse Ihres Servers, formatiert für die Verwendung in URLs. | +| **%%Hash\|hash%%** | Eindeutiger 40-stelliger Identifikator, der dem Zertifikat Ihres Servers zugewiesen ist. | + +### SSL-Zertifikatstypen + +| Typ | Wann zu verwenden | Vorteile/Nachteile | +| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | +| **Selbstsigniert** | Für nur lokale Zugriffe, wenn Sie kein vertrauenswürdiges Zertifikat benötigen. | Einfach einzurichten, aber Browser zeigen Warnungen an. Der Datenverkehr ist verschlüsselt, sobald die Warnung akzeptiert wird. | +| **Myunraid.net** | Für sicheren lokalen und Fernzugriff, insbesondere mit Unraid Connect oder wenn Sie ein vertrauenswürdiges Zertifikat wünschen. | Von Browsern vertraut, keine Warnungen. Ermöglicht sicheren Fernzugriff über Unraid Connect. | +| **Benutzerdefiniert** | Für fortgeschrittene Benutzer, die ein Wildcard- oder benutzerdefiniertes Domain-Zertifikat wünschen (erfordert %%DNS\|dns-name-resolution%%-Konfiguration). | Vertrauenswürdig, flexibel, erfordert jedoch zusätzliche Einrichtung. | + +--- + +## Möglichkeiten, auf Ihre WebGUI zuzugreifen + +Below are the main ways to access your Unraid %%WebGUI|web-gui%%, depending on your %%SSL|ssl%% configuration: + +#### Nur HTTP (nicht verschlüsselt) + +
+ Klicken zum Erweitern/Reduzieren + + Mit nur HTTP ist der Datenverkehr zwischen Ihrem Browser und dem Server nicht verschlüsselt. + + 1. Gehen Sie zu ***Einstellungen → Verwaltungszugriff***. + 2. Setzen Sie **SSL/TLS verwenden** auf *Nein*. + 3. Belassen Sie **Lokale TLD** als `local`, es sei denn, Sie besitzen einen eigenen DNS. + 4. Zugriffs-URLs: + - `http://[servername].[localTLD]` (z.B. `http://tower.local`) + - `http://[ipaddress]` (z.B. `http://192.168.100.1`) + 5. Klicken Sie auf **Übernehmen**. + + :::warning + Jeder im Netzwerk kann Daten abfangen, die über HTTP gesendet werden. Nutzen Sie HTTPS wann immer möglich. + ::: +
+ +--- + +#### HTTPS mit selbstsigniertem Zertifikat + +
+ Klicken zum Erweitern/Reduzieren + + Der Datenverkehr ist verschlüsselt, aber Browser werden aufgrund des nicht von einer vertrauenswürdigen Instanz signierten Zertifikats eine Warnung anzeigen. + + 1. Gehen Sie zu ***Einstellungen → Verwaltungszugriff***. + 2. Setzen Sie **SSL/TLS verwenden** auf *Ja*. + 3. Belassen Sie **Lokale TLD** als `local`, es sei denn, Sie besitzen einen eigenen DNS. + 4. Zugriffs-URLs: + - `https://[servername].[localTLD]` (z.B. `https://tower.local`) + - `https://[ipaddress]` (z.B. `https://192.168.100.1`) + 5. Klicken Sie auf **Übernehmen**. + + :::important + Browser zeigen einen Zertifikatfehler an. Trotzdem wird der gesamte Datenverkehr nach Akzeptieren der Warnung verschlüsselt übertragen. + ::: +
+ +--- + +#### HTTPS mit Myunraid.net-Zertifikat und Fallback-URL + +
+ Klicken zum Erweitern/Reduzieren + + Sie können über das %%WebGUI|web-gui%% mit einem Myunraid.net-Zertifikat sicher auf Ihren Server zugreifen und eine Fallback-URL konfigurieren, falls Ihre %%DNS|dns-name-resolution%%-Auflösung ausfällt. Der gesamte Datenverkehr wird verschlüsselt, und der Server ist so konfiguriert, dass er auf eine sekundäre Methode zurückgreift, wenn %%DNS|dns-name-resolution%% nicht verfügbar ist. + + 1. Gehen Sie zu ***Einstellungen → Verwaltungszugriff***. + 2. Belassen Sie **Lokale TLD** auf dem Standard `local`, es sei denn, Sie können Ihren eigenen DNS-Namen bereitstellen (dies wird für das Fallback-Zertifikat verwendet). + 3. Lassen Sie **SSL/TLS verwenden** entweder auf *Nein* oder *Ja* gesetzt. + 4. Drücken Sie **Bereitstellen**, um das Myunraid.net-Zertifikat zu generieren. + + **Ihre primären URLs, wenn SSL/TLS verwenden auf *Nein* gesetzt ist:** + + - `http://[servername].[localTLD]` (Beispiel: `http://tower.local`) + - `http://[ipaddress]` (Beispiel: `http://192.168.100.1`) + + **Ihre primären URLs, wenn SSL/TLS verwenden auf *Ja* gesetzt ist (verwendet selbstsigniertes Zertifikat):** + + - `https://[servername].[localTLD]` (Beispiel: `https://tower.local`) + - `https://[ipaddress]` (Beispiel: `https://192.168.100.1`) + + **Ihre alternative myunraid.net URL:** + + - `https://[lan-ip].[hash].myunraid.net` (Beispiel: `https://192-168-100-1.a1b2c3d4e5.myunraid.net`) + - Diese URL wird im **Lokale Zugriffs-URLs**-Feld auf der **Verwaltungszugriffs**-Seite angezeigt. + - Wenn Sie das [Unraid Connect-Plugin](../../../unraid-connect/overview-and-setup.mdx) installieren, wird es auch auf dem Connect-Dashboard angezeigt. + + :::info + Das myunraid.net-Zertifikat wird von Browsern vertraut und zeigt keine Warnungen an. Die URL verwendet Ihre LAN-IP-Adresse, wobei Punkte durch Bindestriche ersetzt werden, plus ein einzigartiger 40-Zeichen %%hash|hash%%, der Ihrem Server zugewiesen wurde. + ::: + + :::tip[Fallback-Zugriff] + Wenn %%DNS|dns-name-resolution%% nicht verfügbar wird (z.B. Ihr Internet fällt aus), können Sie die lokalen URLs mit Ihrem Servernamen oder Ihrer IP-Adresse als Backup-Zugriffsmethoden nutzen. + ::: +
+ +#### HTTPS mit Myunraid.net-Zertifikat und ohne Fallback-URL + +
+ Klicken zum Erweitern/Reduzieren + + This method provides the highest level of %%SSL|ssl%% enforcement by requiring all %%WebGUI|web-gui%% access to use the Myunraid.net certificate and URL. It is ideal for users who want maximum security and do not need to access their server via local IP or hostname if %%DNS|dns-name-resolution%% is unavailable. + + 1. Gehe zu ***Einstellungen → Verwaltungszugriff*** in der %%WebGUI|web-gui%%. + 2. Belassen Sie **LokaleTLD** auf `local`, es sei denn, Sie haben Ihre eigene %%DNS|dns-name-resolution%% Namenauflösung (diese wird für das Fallback-Zertifikat verwendet, wenn Sie später den Befehl `use_ssl` ausführen). + 3. Klicken Sie auf **Bereitstellen**, um ein Myunraid.net-Zertifikat zu generieren. + 4. Wenn Ihr Netzwerk keine %%DNS|dns-name-resolution%%-Rebinding-Probleme hat, ist die *Strikte* Option für **SSL/TLS verwenden** verfügbar. + 5. Setzen Sie **SSL/TLS verwenden** auf *Strikt* (oder *Auto* in früheren Unraid-Versionen). + 6. Ihre Zugriffs-URL wird sein: + `https://[lan-ip].[hash].myunraid.net` (z.B. `https://192-168-100-1.a1b2c3d4e5.myunraid.net`) + + Wenn Sie das [Unraid Connect-Plugin](../../../unraid-connect/overview-and-setup.mdx) installieren, wird es auch auf dem Connect-Dashboard angezeigt. + + :::caution + Wenn %%DNS|dns-name-resolution%% nicht verfügbar wird (z.B. die Internetverbindung fällt aus), können Sie nicht über die Myunraid.net-URL auf das %%WebGUI|web-gui%% zugreifen. + ::: + + Um den Zugriff wiederherzustellen: + + - Verwenden Sie Telnet, %%SSH|ssh%% oder eine lokale Tastatur/Monitor, um sich anzumelden. + - Führen Sie `use_ssl no` aus, um zu HTTP zu wechseln (`http://[servername].[localTLD]` oder `http://[ipaddress]`). + - Führen Sie `use_ssl yes` aus, um auf HTTPS mit einem selbstsignierten Zertifikat umzuschalten (`https://[servername].[localTLD]` oder `https://[ipaddress]`). Weitere Details finden Sie unter [HTTPS mit einem selbstsignierten Zertifikat](#https-mit-selbstsignierten-zertifikat) oben. + - Sobald %%DNS|dns-name-resolution%% wiederhergestellt ist, setzen Sie **SSL/TLS verwenden** zurück auf *Strikt* für volle Sicherheit. + ::: +
+ +--- + +## Weiterleitungen + +Wenn Sie `http://[servername].[localTLD]` aufrufen, hängt das Weiterleitungsverhalten von Ihrer **SSL/TLS verwenden**-Einstellung ab: + +- **Strikt**: Sie werden zu `https://[lan-ip].[hash].myunraid.net` weitergeleitet. + :::note + Dies kann den lokalen Zugriff erschweren, wenn %%DNS|dns-name-resolution%% nicht verfügbar ist. Siehe die Warnung unter [HTTPS mit Myunraid.net-Zertifikat und ohne Fallback-URL](#https-with-myunraidnet-certificate-and-with-no-fallback-url). + ::: + +- **Ja**: Sie werden zu `https://[servername].[localTLD]` umgeleitet. Dies funktioniert auch, wenn Ihre Internetverbindung unterbrochen ist. + +- **Nein**: Die HTTP-URL wird direkt geladen, ohne Weiterleitung oder Verschlüsselung. + +:::tip +Weiterleitungen funktionieren nur, wenn Sie von HTTP-URLs aus starten, nicht von HTTPS-URLs. +::: + +--- + +## Benutzerdefinierte Zertifikate + +Custom certificates allow you to secure your Unraid %%WebGUI|web-gui%% with your own %%SSL|ssl%% certificate, such as one issued by a commercial certificate authority or a wildcard certificate for your domain. + +A custom certificate is any %%SSL|ssl%% certificate that you provide and manage yourself, rather than one generated by Unraid or Let's Encrypt. This is useful if you want to use your own domain name, a wildcard certificate, or integrate with your organization's PKI infrastructure. + +:::info\[When Bei der Verwendung eines benutzerdefinierten Zertifikats sind Sie verantwortlich für... + +- Die Beschaffung des Zertifikats von einer vertrauenswürdigen Zertifizierungsstelle (CA) +- Das Verwalten der %%DNS|dns-name-resolution%%-Einträge für Ihre gewählte Domain +- Das Hochladen und Erneuern des Zertifikats nach Bedarf +- Sicherstellen, dass das Zertifikat mit dem Domänennamen Ihres Servers übereinstimmt (im Subject- oder Subject Alternative Name-Feld) + +::: + +Falls Ihr Zertifikat ungültig ist oder nicht zur Server-URL passt, löscht Unraid es und kehrt zu einem Standardzertifikat zurück. + +### HTTPS mit benutzerdefiniertem Zertifikat (mit optionalem Unraid Connect-Fernzugriff) + +
+ Zugang über HTTPS mit benutzerdefiniertem Zertifikat - Klicken zum Erweitern/Zusammenklappen + + 1. Gehen Sie zu ***Einstellungen → Verwaltungszugriff***. + 2. Setzen Sie **SSL/TLS verwenden** auf *Ja*. + 3. Setzen Sie **Lokale TLD** auf den Domainnamen, der im Subject Ihres Zertifikats verwendet wird. + 4. Greifen Sie auf Ihren Server unter `https://[servername].[localTLD]` zu (z. B. `https://tower.mydomain.com`). Sie müssen das DNS für diese URL verwalten. + 5. Laden Sie Ihr Zertifikat unter `/boot/config/ssl/certs/[servername]_unraid_bundle.pem` hoch. + 6. Das Zertifikat muss f�fcr `[servername].[localTLD]` oder als Wildcard `*.[localTLD]` g�fcltig sein (wobei `[localTLD]` genau mit dem �fcbereinstimmt, was Sie im Feld **Lokale TLD** eingegeben haben). + - Die Domain muss im Subject oder im Subject Alternative Name-Feld erscheinen (Unraid 6.10.3+ unterstützt SANs). + - Wenn das Zertifikat nicht übereinstimmt, wird es von Unraid gelöscht. + 7. Optional können Sie [Unraid Connect-Fernzugriff](../../../unraid-connect/remote-access.mdx) für sicheren, browservertrauenswürdigen Fernzugriff aktivieren. + + :::tip + Für Platzhalterzertifikate stellen Sie sicher, dass das Subject Alternative Name oder Subject-Feld des Zertifikats `*.[localTLD]` enthält, wobei `[localTLD]` der exakte Wert ist, den Sie im **Lokale TLD**-Feld unter **Management-Zugriff** eingegeben haben. + ::: +
+ +--- + +## SSL-Fehlersuche und erweiterte Konfiguration + +Dieser Abschnitt behandelt häufige SSL-bezogene Probleme und erweiterte Konfigurationsoptionen, die bei der Verwendung von Myunraid.net-Zertifikaten gelten, unabhängig davon, ob Unraid Connect installiert ist oder nicht. + +### Schutz gegen DNS-Rebinding + +DNS rebinding protection is a security feature on many routers that prevents public DNS entries from resolving to local IP addresses. This helps protect your network from certain attacks, but can cause issues when trying to use %%SSL|ssl%% certificates for local access to the Unraid %%WebGUI|web-gui%%. + +If you encounter a DNS rebinding error while trying to provision an %%SSL|ssl%% certificate (e.g., after clicking the **Provision** button), consider the following steps: + +- Klicken Sie im Fehlerdialog auf **OK**, warten Sie 2 bis 5 Minuten und versuchen Sie es erneut. +- Wenn der Fehler fortbesteht, überprüfen Sie die Routereinstellungen auf Optionen im Zusammenhang mit "DNS-Rebind-Schutz" oder ähnlichen Begriffen. +- Erlauben Sie DNS-Rebinding für die Domain `myunraid.net`. +- Denken Sie daran, dass es bei DNS-Änderungen Zeit dauern kann, bis sie sich ausbreiten, sodass Sie nach Aktualisierungen eventuell erneut auf den Fehler stoßen. + +Die genauen Schritte können je nach Routermodell und Firmware variieren. + +### Zugriff auf Ihren Server bei DNS-Ausfall + +Wenn %%SSL|ssl%% mit einem myunraid.net-Zertifikat aktiviert ist, greifen Sie normalerweise über einen vollqualifizierten Domänennamen (FQDN) auf Ihren Unraid-Server zu, wie zum Beispiel: + +``` +https://ip.yourpersonalhash.myunraid.net +``` + +Oder, wenn Sie einen benutzerdefinierten HTTPS-Port verwenden: + +``` +https://ip.yourpersonalhash.myunraid.net: +``` + +This ensures you're using a valid %%SSL|ssl%% certificate for secure access. However, if your Internet connection goes down and your browser hasn't cached the DNS entry, you may lose access to the %%WebGUI|web-gui%%. + +Wenn Sie DNS- oder Internetzugang verlieren: + +- Wenn **SSL/TLS verwenden** auf **Ja** gesetzt ist, versuchen Sie, auf Ihren Server zuzugreifen unter: + ``` + https://[servername].[localTLD] + ``` + Oder mit einem benutzerdefinierten Port: + ``` + https://servername.[localTLD]: + ``` + +- Wenn dies nicht funktioniert, oder wenn **SSL/TLS verwenden** auf **Streng** eingestellt ist: + 1. Verwenden Sie telnet, %%SSH|ssh%% oder eine direkt angeschlossene Tastatur/Monitor, um sich auf Ihrem Server anzumelden. + 2. Führen Sie den folgenden Befehl aus: + ```bash + use_ssl no + ``` + 3. Sie können jetzt auf die %%WebGUI|web-gui%% zugreifen unter: + ``` + http:// + ``` + Oder, wenn ein benutzerdefinierter Port verwendet wird: + ``` + http://: + ``` + (Hinweis: Dies verwendet HTTP, nicht HTTPS.) + +Sobald der Internetzugang wiederhergestellt ist, gehen Sie zu ***Einstellungen → Verwaltungszugang*** und setzen Sie **SSL/TLS verwenden** wieder auf **Streng**, um lokales SSL erneut zu aktivieren. + +### SSL zur lokalen Nutzung deaktivieren + +You should disable %%SSL|ssl%% for local access if you prefer a simple HTTP connection on your trusted home network or if you're facing ongoing issues with %%SSL|ssl%% certificate provisioning, DNS rebinding, or browser compatibility. + +So deaktivieren Sie %%SSL|ssl%% für den lokalen Zugriff: + +1. Gehen Sie in der WebGUI zu ***Einstellungen → Verwaltungszugang***. +2. Setzen Sie **SSL/TLS verwenden** auf **Nein**. +3. Klicken Sie auf **Übernehmen**. + +Diese Änderung deaktiviert auch die Remotezugriffs-Funktion, da %%SSL|ssl%% für sichere Remoteverbindungen notwendig ist. + +:::caution +Das Deaktivieren von %%SSL|ssl%% bedeutet, dass Ihre %%WebGUI|web-gui%% über unverschlüsseltes HTTP zugänglich ist. Dies setzt Ihre Anmeldeinformationen und Sitzungsdaten jedem in Ihrem lokalen Netzwerk aus und wird nicht empfohlen, es sei denn, Sie sind sicher, dass Ihr Netzwerk sicher ist und Sie keinen Remotezugriff benötigen. Zur besten Sicherheit halten Sie %%SSL|ssl%% wann immer möglich aktiviert. +::: + +:::note +Die Verwaltung von %%SSL|ssl%% ist eine Kernfunktion von Unraid und hängt nicht vom Unraid Connect-Plugin ab. Sie können %%SSL|ssl%% deaktivieren, ohne andere Unraid-Funktionen zu beeinträchtigen. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx new file mode 100644 index 0000000000..423c082f4b --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx @@ -0,0 +1,58 @@ +--- +sidebar_position: 5 +sidebar_label: Verschlüsseln Ihrer Daten +--- + +# Verschlüsseln Ihrer Daten + +Das Verschlüsseln Ihrer Laufwerke in Unraid fügt eine starke Schutzschicht für sensible Daten hinzu und hilft dabei, unbefugten Zugriff zu verhindern, falls ein Laufwerk verloren geht oder gestohlen wird. Verschlüsselung ist für den %%array|array%% und den %%cache pool|cache-pool%% verfügbar. Seien Sie jedoch sich bewusst, dass Verschlüsselung die Datenwiederherstellung erschweren kann, sodass sie nur verwendet werden sollte, wenn Sie ein bestimmtes Maß an Datenvertraulichkeit benötigen, zum Beispiel beim Speichern sensibler persönlicher, geschäftlicher oder reglementierter Informationen. + +:::caution +Verschlüsselung erhöht die Sicherheit Ihrer Daten, kann aber die Wiederherstellung nach einem Hardwarefehler verkomplizieren. **Aktivieren Sie die Verschlüsselung nur, wenn Sie einen echten Bedarf haben und über ein zuverlässiges Backup-System verfügen.** Wenn Sie Ihren Verschlüsselungsschlüssel oder Ihre Schlüsseldatei verlieren, sind Ihre Daten dauerhaft unzugänglich. +::: + +
+ Wann sollten Sie die Verschlüsselung Ihrer Laufwerke in Betracht ziehen? - Klicken zum Erweitern/Einklappen + + - Sie speichern vertrauliche, regulierte oder sensible Daten auf Ihrem Unraid-Server. + - Sie sind besorgt über Datendiebstahl, falls ein Laufwerk physisch entfernt oder gestohlen wird. + - Sie müssen die organisatorischen oder gesetzlichen Anforderungen zum Datenschutz erfüllen. + + Wenn Sie Unraid hauptsächlich für Heimmedien oder nicht sensitive Dateien verwenden, ist die Verschlüsselung möglicherweise nicht notwendig und kann die Fehlersuche und Wiederherstellung erschweren. +
+ +## Wie man ein Laufwerk in Unraid verschlüsselt + +:::warning +Das Verschlüsseln eines Laufwerks löscht alle vorhandenen Daten auf diesem Laufwerk. +::: + +:::important\[Before Verschlüsselung aktivieren + +Verschieben Sie alle Daten von dem Laufwerk, das Sie verschlüsseln möchten, an einen anderen Ort (ein anderes Laufwerk in Ihrem %%array|array%%, einen %%cache-pool|cache-pool%% oder ein externes Backup). Einzelheiten zur sicheren Datenverschiebung finden Sie unter [Konvertierung in einen neuen Dateisystemtyp](../../using-unraid-to/manage-storage/file-systems.mdx#converting-to-a-new-file-system-type). + +::: + +Um ein Laufwerk zu verschlüsseln: + +1. Gehen Sie zum **Main**-Tab im %%WebGUI|web-gui%%. +2. Stoppen Sie das %%array|array%%. +3. Wählen Sie das Laufwerk, das Sie verschlüsseln möchten. +4. Wählen Sie im **Dateisystemtyp** die verschlüsselte Version Ihres gewünschten Dateisystems (z.B. `xfs-encrypted`, `btrfs-encrypted`). +5. Klicken Sie auf **Anwenden**, um die Änderung zu übernehmen. +6. Klicken Sie auf **Fertig** um zur **Haupt**-Registerkarte zurückzukehren. Das Laufwerk erscheint nun nicht montierbar und Sie haben die Möglichkeit, nicht montierbare Laufwerke zu formatieren. +7. Überprüfen Sie nochmals, dass Sie das richtige Laufwerk ausgewählt haben, und [formatieren Sie es](../../using-unraid-to/manage-storage/file-systems.mdx#creating-a-file-system-formatting), um die Verschlüsselungskonfiguration abzuschließen. + +Nach der Aktivierung der Verschlüsselung müssen Sie bei jedem Start des %%array|array%% den Verschlüsselungsschlüssel oder die Schlüsseldatei angeben. Sobald entsperrt, funktionieren verschlüsselte Laufwerke wie jedes andere Volume in Unraid. + +--- + +## Verwaltung des Verschlüsselungsschlüssels + +Unraid erfordert denselben Verschlüsselungsschlüssel oder dieselbe Schlüsseldatei für alle verschlüsselten Laufwerke in Ihrem System. + +- Sie können ein Passwort oder eine Schlüsseldatei (wie eine zufällige Bilddatei) verwenden. +- Speichern Sie Ihren Verschlüsselungsschlüssel oder Ihre Schlüsseldatei an einem sicheren, offline Ort. Verlassen Sie sich nicht ausschließlich auf Ihren Unraid-Server zur Schlüsselspeicherung. +- Wenn Sie den Schlüssel oder die Schlüsseldatei verlieren, können Ihre verschlüsselten Daten nicht wiederhergestellt werden – keine Ausnahmen. + +Verschlüsselte Laufwerke verwenden das industriestandardisierte %%LUKS|luks%%-Format, welches auf jedem modernen Linux-System mit dem richtigen Schlüssel entsperrt werden kann. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx new file mode 100644 index 0000000000..c43e174fac --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx @@ -0,0 +1,172 @@ +--- +sidebar_position: 1 +sidebar_label: Sicherheitsgrundlagen +--- + +# Sicherheitsgrundlagen + +:::note[Principle des geringsten Privilegs] +Das Prinzip des geringsten Privilegs bedeutet, Benutzern und Geräten nur den minimal erforderlichen Zugriff zu gewähren, der notwendig ist, um ihre Aufgaben zu erledigen, niemals mehr. Dieser Ansatz begrenzt potenziellen Schaden durch kompromittierte Konten oder versehentliche Aktionen und ist ein Kernkonzept der modernen Sicherheit, einschließlich Zero-Trust-Modelle. Wenden Sie dieses Prinzip in Ihrer Unraid-Konfiguration an, insbesondere bei der Erstellung von Freigabenutzern und der Zuweisung von Berechtigungen. +::: + +## Zugriff auf freigegebene Ordner steuern + +### Wählen eines Netzwerkdateifreigabeprotokolls + +Beim Teilen von Dateien mit Ihrem Unraid-Server über Ihr Heim- oder Büronetzwerk haben Sie einige Möglichkeiten, wie Sie eine Verbindung herstellen können. Unraid unterstützt gängige Methoden, die als Kommunikationsprotokolle bekannt sind, und helfen Geräten, miteinander zu kommunizieren. + +| Protokoll | Hauptnutzung | Vorteil | Nachteil | Empfohlene Anwendungsfälle | +| ------------------------------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| %%SMB\|samba%% (Server Message Block) | Nahtlose Windows/macOS-Integration | Integrierte Windows-Unterstützung; unterstützt Drucker und VM-Speicher; schnell mit großen Dateien | Ältere Versionen (SMBv1) unsicher; langsamer bei kleinen Dateien | Windows- und Mac-Netzwerke; gemischte Ressourcenumgebungen (Drucker, VMs) | +| %%NFS\|nfs%% (Network File System) | Nahtlose Unix/Linux-Integration | Optimiert für Linux/Unix; effizient mit kleinen Dateien; geringer Overhead | Erfordert zusätzliche Tools für Windows; Netzwerksicherheit entscheidend; begrenzte Sperrfunktion | Linux- und Unix-Umgebungen; kleine Dateioperationen; statische Datenlasten | +| %%FTP\|ftp%% (File Transfer Protocol) | Plattformübergreifende Kompatibilität | Universelle Client-Unterstützung; einfache Einrichtung; Stapelübertragungen von Dateien | Klartextprotokoll ohne Verschlüsselung; Anmeldedaten unverschlüsselt gesendet; veraltete Sicherheit | Nur für nicht sensible oder Legacy-Übertragungen; Verwenden Sie FTPS (FTP über TLS) oder SFTP (FTP über SSH) für sichere Dateitransfers | + +:::important +Ab Unraid Version 6.9 wurde die Unterstützung für **%%AFP|AFP%% (Apple Filing Protocol)** entfernt. Um sicherzustellen, dass Ihre Macs gut mit Ihrem Unraid-Server funktionieren, einschließlich Funktionen wie Time Machine-Backups, gehen Sie zu ***Einstellungen → SMB*** und aktivieren Sie die **Erweiterte macOS-Interoparabilität**. +::: + +Die Entscheidung, welches Protokoll verwendet werden soll, hängt von den Geräten ab, die Sie haben und was Sie mit Ihren Dateien machen möchten. Standardmäßig aktiviert Unraid %%SMB|samba%%, da es von modernen Windows- und macOS-Systemen weitgehend unterstützt wird. %%NFS|nfs%% und %%FTP|ftp%% sind ausgeschaltet, können aber bei Bedarf aktiviert werden. + +For instance, if you use an %%FTP|ftp%% client to connect to your Unraid server, you can easily transfer large files and even pause and resume your uploads or downloads if needed. + +--- + +### Verwalten der Netzwerkaufmerksamkeit von Freigaben + +Sie können unterschiedliche Zugriffsberechtigungen für Ihre Netzwerkordner (Freigaben) in Unraid einrichten, indem Sie: + +1. Gehen Sie zum Reiter **Freigaben**: Beginnen Sie, indem Sie im %%WebGUI|web-gui%% auf den Reiter **Freigaben** klicken. + +2. **Wählen Sie eine Freigabe aus**: Wählen Sie eine vorhandene Freigabe aus, die Sie anpassen möchten. + +3. **Scrollen Sie zu Sicherheitseinstellungen**: Am unteren Rand der Freigabeneinstellungsseite sehen Sie einen Abschnitt für Sicherheitsoptionen für jedes aktivierte Netzwerkprotokoll. + +4. **Passen Sie die Exporteinstellung an**: Diese Einstellung steuert, wie die Freigabe im Netzwerk angezeigt wird. Sie haben drei Optionen: + + - **Ja**: Die Freigabe ist sichtbar und jeder, der im Netzwerk surft, hat Zugriff. + - **Ja (Versteckt)**: Die Freigabe wird nicht in den Netzwerksuchlisten angezeigt, aber wenn jemand den Namen der Freigabe kennt, kann er darauf zugreifen. + - **Nein**: Die Freigabe ist vollständig versteckt und über dieses bestimmte Protokoll nicht zugänglich. + +By tweaking these options, you can manage who can see and access each share, making it easier to keep everything secure while ensuring the right people have the access they need, whether they are using %%SMB|samba%%, %%NFS|nfs%%, or %%FTP|ftp%% connections. + +--- + +### Benutzerberechtigungen für Freigaben festlegen + +Die Sicherheit der Freigabe steuert den Zugriff der Benutzer auf freigegebene Dateien in Ihrem System. Sie können eine Freigabe so einrichten, dass für den Zugriff auf Dateien ein Benutzername und ein Passwort erforderlich sind, den Zugang nur zum Lesen begrenzen oder komplett öffentlich zugänglich machen, ohne dass Anmeldeinformationen benötigt werden. + +:::note\[Example] + +Wenn Sie einen Filmshare auf Ihrem Unraid-Server erstellen, können Sie wählen, ob Sie einen gültigen Benutzernamen und ein Passwort nur für das Lesen von Daten benötigen oder ob Sie öffentlichen Zugriff zulassen. Wenn Sie Benutzer hinzufügen müssen, kann ein %%root-User|root-user%% Benutzer in der [**Benutzerverwaltung**](./user-management.mdx#add-users) erstellen. + +::: + +Wenn Sie zum Tab **Shares** gehen und eine Freigabe auswählen, sehen Sie deren Einstellungen, einschließlich eines Sicherheitsabschnitts, in dem Sie [Zugriffsberechtigungen](#managing-network-visibility-of-shares) basierend auf den von Ihnen aktivierten Protokollen verwalten können. So können Sie festlegen, wer je nach Bedarf auf Ihre Dateien zugreifen kann. + +Die **Sicherheitseinstellung** hat folgende Optionen: + +| Typ | Erklärung | Gebrauchsfall | +| -------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| **Öffentlich** | Offener Zugang: Jeder kann in diesem Ordner lesen und schreiben. | Geeignet für nicht sensible Informationen, wie freigegebene Medien oder öffentliche Downloads. | +| **Sicher** | Eingeschränkter Zugang: Alle können lesen, aber nur bestimmte Benutzer können schreiben. | Gut für gemeinsame Projekte, bei denen Zusammenarbeit erforderlich ist, wie Team-Ordner. | +| **Privat** | Eingeschränkter Zugriff: Nur bestimmte Benutzer können lesen oder schreiben. | Ideal für sensible Informationen, wie Finanzberichte oder persönliche Dokumente. | + +:::caution[Windows SMB access] +Modern versions of Windows (Windows 10 1709+, Windows 11, Server 2019+) block access to **Public** (guest/anonymous) %%SMB|samba%% shares by default, due to stricter security policies. Attempting to connect to a public share will usually fail unless you manually enable insecure guest logons in Windows settings - which is not recommended for security reasons. + +**Best Practice:** Richten Sie Benutzerkonten und Passwörter für Ihre Unraid-Freigaben ein und verwenden Sie diese Anmeldedaten für zuverlässigen Zugriff von Windows. + +**Anmeldeangaben-Beschränkung:** Windows erlaubt gleichzeitig nur einen Satz von Anmeldedaten pro Server. Wenn Sie versuchen, sich mit unterschiedlichen Anmeldedaten bei verschiedenen Freigaben auf demselben Server zu verbinden, schlägt die Verbindung fehl. + +**Problemumgehung:** Wenn Sie auf Anmeldeprobleme stoßen, versuchen Sie, eine Freigabe mit dem Servernamen und eine andere mit dessen IP-Adresse zu verbinden. Windows behandelt diese als getrennte Server. + +Für weitere Details siehe [Microsofts Dokumentation zum SMB-Gastzugang](https://learn.microsoft.com/en-us/windows-server/storage/file-server/enable-insecure-guest-logons-smb2-and-smb3). +::: + +--- + +## Netzwerksicherheit + +### Stellen Sie ein starkes Root-Passwort ein + +Wenn Sie das %%WebGUI|web-gui%% zum ersten Mal nach der Installation aufrufen, müssen Sie ein Passwort für den %%root user|root-user%% festlegen. Unraid erzwingt jedoch keine Anforderungen an die Passwortkomplexität – es liegt an Ihnen als Benutzer, das gewünschte Sicherheitsniveau für Ihr Server-Passwort festzulegen. + +- Gehen Sie zur Registerkarte **Benutzer**, wählen Sie den %%root user|root-user%% und legen Sie ein Passwort fest. +- Erwägen Sie die Verwendung des **Dynamix-Passwort-Validators** von [Community Apps](../../using-unraid-to/run-docker-containers/community-applications.mdx) für Echtzeit-Feedback zur Stärke. +- Für weitere Informationen beachten Sie bitte das [Bitwarden Passwortstärke-Tool](https://bitwarden.com/), das online bereitgestellt wird. + +### Überprüfen und minimieren Sie das Port-Forwarding + +Das Weiterleiten von Ports von Ihrem Router zu Ihrem Unraid-Server kann für den Fernzugriff auf Dienste notwendig sein, birgt jedoch erhebliche Risiken für Ihr Netzwerk. Leiten Sie nur Ports weiter, die Sie vollständig verstehen und benötigen. + +| Port(s) | Typische Nutzung | Sicherheitsrisiko | Sichere Alternative | +| ---------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 80 / 443 | %%WebGUI\|web-gui%% (HTTP/HTTPS) | Setzt Management-Interface aus; Risiko von Abfangung oder Brute-Force-Angriffen bei schwachem Passwort | Verwenden Sie Unraid Connect oder VPN für den Remotezugriff. Beachten Sie, dass Unraid Connect die Weiterleitung von WAN-Ports oder UPnP erfordert (kein ständig verfügbares Cloud-Relay). | +| 445 | %%SMB\|samba%% (Dateifreigaben) | Exponiert Freigaben im Internet; Risiko von Datendiebstahl oder -löschung | Verwenden Sie VPN für sicheren Fernzugriff auf Dateien | +| 111 / 2049 | %%NFS\|nfs%% | Exposes %%NFS\|nfs%% shares; similar risks as %%SMB\|samba%% | Verwenden Sie VPN für Fernzugriff | +| 22 / 23 | %%SSH\|ssh%%/Telnet | Setzt Konsolenzugriff aus; Risiko von Brute-Force-Angriffen oder Anmeldedatendiebstahl | Use %%SSH\|ssh%% keys or VPN; never forward Telnet | +| 57xx | %%VNC\|vnc-session%% für %%VMs\|vm%% | Bietet Zugriff auf %%VM\|vm%%-Konsolen; Risiko eines unbefugten Fernzugriffs | Verwenden Sie Unraid Connect oder VPN | + +:::tip +Wenn Sie eine Portweiterleitungsregel sehen, die Sie nicht verstehen, entfernen Sie sie und überwachen Sie eventuelle Probleme. Sie können sie bei Bedarf jederzeit erneut hinzufügen. +::: + +:::caution +Setzen Sie Ihren Server niemals in die DMZ Ihres Netzwerks. Das Platzieren Ihres Unraid-Servers in der DMZ setzt alle Ports dem Internet aus und erhöht drastisch das Risiko einer Kompromittierung. Selbst mit starken Passwörtern wird dies niemals empfohlen. +::: + +--- + +## Zugriffssicherheit für Freigaben + +### Sichtbarkeit und Berechtigungen der Freigaben kontrollieren + +- Verwenden Sie die Registerkarte **Freigaben** im WebGUI, um die Export- und Sicherheitseinstellungen jeder Freigabe festzulegen. +- Bevorzugen Sie private oder sichere Freigaben für sensible Daten. Öffentliche Freigaben sind für jeden im Netzwerk zugänglich und aus Sicherheitsgründen in modernen Windows-Versionen standardmäßig blockiert. +- Weisen Sie Benutzerkonten nur die für ihre Rolle benötigten Berechtigungen zu (geringstes Privileg). +- Begrenzen Sie den Freigabezugang wann immer möglich auf bestimmte Benutzer. + +### Benutzerberechtigungen sorgfältig zuweisen + +- Weisen Sie Benutzern Zugriff auf Freigaben mit Lesezugriff oder Lese-/Schreibzugriff nach Bedarf zu. +- Das %%root user|root-user%%-Konto ist für die Systemadministration und kann nicht auf Netzfreigaben zugreifen. Erstellen Sie dedizierte Benutzerkonten für den Zugriff auf Netzfreigaben. +- Überprüfen Sie regelmäßig Benutzerrechte und entfernen Sie nicht mehr benötigte Konten. + +### Begrenzen Sie den Freigabezugang auf privat oder schreibgeschützt + +Obwohl der passwortlose Zugriff auf Freigaben bequem ist, kann er Ihre Daten gefährden, wenn Geräte in Ihrem lokalen Netzwerk kompromittiert werden. Dies umfasst PCs, Macs, mobile Geräte und IoT-Geräte. Standardmäßig sind Unraid-Freigaben so eingestellt, dass sie für jeden im Netzwerk öffentlich lesbar und beschreibbar sind, was bedeutet, dass jedes Gerät im Netzwerk potentiell Dateien stehlen, löschen oder verschlüsseln könnte, wenn es kompromittiert wird. Darüber hinaus können böswillige Benutzer unerwünschte Daten auf Ihren Server hochladen. + +- Setzen Sie empfindliche Freigaben im **Freigaben**-Reiter des %%WebGUI|web-gui%% auf **Privat**. +- Wenn eine **öffentliche** Freigabe erforderlich ist, setzen Sie sie wann immer möglich auf **schreibgeschützt**. +- Geben Sie Schreibzugriff nur an autorisierte Benutzer mit starken Passwörtern. + +### Exposition der Flash-Freigabe vermeiden oder privat machen + +Das Unraid-Flashgerät enthält wichtige System- und Konfigurationsdateien. Auch wenn es bequem sein mag, die Flash-Freigabe über %%SMB|samba%% für erweiterte Konfigurationen zu öffnen, stellt dies ein erhebliches Risiko dar, wenn sie öffentlich bleibt. + +- Exponieren Sie die Flash-Freigabe nur, wenn es absolut notwendig ist, und stellen Sie sie auf **Privat**. +- Erfordern Sie einen Benutzernamen und ein starkes Passwort für den Zugriff. +- Entfernen Sie die Freigabe oder deaktivieren Sie sie, wenn sie nicht verwendet wird, um das Risiko zu minimieren. + +### Halten Sie Ihren Server auf dem neuesten Stand + +Regelmäßige Updates sind essenziell für die Sicherheit. Neue Schwachstellen (CVEs) werden häufig entdeckt, und Lime Technology gibt aktiv Patches für Unraid OS heraus. Updates sind nur dann effektiv, wenn Sie sie auch tatsächlich anwenden. + +- Überprüfen Sie verfügbare Updates unter ***Tools → Update OS*** im %%WebGUI|web-gui%%. +- Aktivieren Sie Benachrichtigungen unter ***Einstellungen → Benachrichtigungen***, um informiert zu werden, wenn Updates verfügbar sind. +- Aktualisieren Sie Plugins und Docker-Container über den **Apps**-Reiter, um sicherzustellen, dass alle Komponenten sicher sind und kompatibel bleiben. +- Wenden Sie Updates schnell an, um Ihren Server vor bekannten Bedrohungen zu schützen. + +### Sichere Methoden für die Fernverwaltung verwenden + +Setzen Sie das %%WebGUI|web-gui%% niemals direkt dem Internet aus. Verwenden Sie stattdessen sichere Lösungen für den Fernzugriff: + +- **%%Tailscale|tailscale%%** ist eine empfohlene Option mit einem dedizierten Plugin für Unraid. Es erstellt ein sicheres privates Netzwerk (Tailnet) für den Zugriff auf Ihren Server und Dienste von überall aus, ohne Ports freizugeben oder komplexe Firewall-Regeln zu konfigurieren. +- **%%WireGuard|wireguard%% VPN** ist in Unraid integriert und bietet einen sicheren, verschlüsselten Tunnel für die Fernverwaltung. +- **%%OpenVPN|openvpn%%** ist als Plugin oder Docker-Container verfügbar. +- Viele moderne Router bieten integrierte VPN-Unterstützung - überprüfen Sie die Router-Dokumentation für die Einrichtung. +- Das [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) Plugin erlaubt den Fernzugriff auf das %%WebGUI|web-gui%%, erfordert jedoch, dass ein Port an Ihrem Router weitergeleitet wird. + +--- + +\* *„%%WireGuard|wireguard%%“ und das „%%WireGuard|wireguard%%“-Logo sind eingetragene Warenzeichen von Jason A. Donenfeld.* diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx new file mode 100644 index 0000000000..622bdeb4a9 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx @@ -0,0 +1,183 @@ +--- +sidebar_position: 6 +sidebar_label: Tailscale +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Tailscale + +Unraid bietet jetzt eine nahtlose Integration mit [%%Tailscale|tailscale%%](https://tailscale.com/), dank einer technologischen Partnerschaft, die ein nahtloses, sicheres Netzwerk direkt mit Ihrem Server verbindet. %%Tailscale|tailscale%% ist kein traditionelles VPN - es ist ein modernes, Peer-to-Peer Overlay-Netzwerk, das auf %%WireGuard|wireguard%% basiert. Damit können Sie Geräte, Server und individuelle Docker-Container in Ihr sicheres privates Netzwerk (%%Tailnet|tailnet%%) einbinden, unabhängig von deren physischem Standort oder Netzwerkumgebung. Die Partnerschaft mit Unraid stellt sicher, dass das %%Tailscale|tailscale%% Plugin vollständig gewartet und eng integriert ist, mit nativem Zertifikatsupport und erweiterten Funktionen in Unraid 7 und neuer. + +- **Einfache Einrichtung:** Kein Port-Forwarding oder Firewall-Kopfschmerzen. +- **Starke Sicherheit:** Nutzt %%WireGuard|wireguard%%-Verschlüsselung im Hintergrund. +- **Flexibles Teilen:** Gewähren Sie Zugriff auf bestimmte Geräte oder Container, nicht nur auf Ihr gesamtes Netzwerk. +- **Erstklassiger Support:** Offiziell gewartetes Plugin mit ständigen Verbesserungen. + +--- + +## Erste Schritte mit Tailscale + +Um zu beginnen, [melden Sie sich für ein kostenloses Tailscale-Konto an](https://login.tailscale.com/start) und installieren den Client auf mindestens einem Gerät (Windows, macOS, Linux, iOS, Android, und mehr). Kostenlose Konten unterstützen bis zu drei Benutzer und 100 Geräte. + +Vor dem Hinzufügen von Unraid beachten Sie: + +- [Benennen Sie Ihr %%Tailnet|tailnet%% um](https://tailscale.com/kb/1217/tailnet-name) für eine einfachere Identifizierung. +- Aktivieren Sie [%%MagicDNS|magicdns%%](https://tailscale.com/kb/1081/magicdns) für vereinfachtes Gerätemanagement. +- Aktivieren Sie [HTTPS-Zertifikate](https://tailscale.com/kb/1153/enabling-https) für sicheren, vertrauenswürdigen Zugriff. + +:::note +Maschinennamen in HTTPS-Zertifikaten sind öffentlich. Verwenden Sie Namen, die Sie gerne teilen möchten. +::: + +### Hinzufügen von Tailscale zu Unraid + +Die folgenden Schritte sind aktuell und korrekt für Unraid 7 und höher: + +1. Überprüfen Sie Ihre Tailscale-Kontoeinstellungen wie oben beschrieben. +2. Suchen Sie in Unraid im Tab [**Community Apps**](../../using-unraid-to/run-docker-containers/community-applications.mdx) nach dem offiziellen %%Tailscale|tailscale%%-Plugin und installieren Sie es. +3. Öffnen Sie ***Einstellungen → Tailscale*** und klicken Sie auf Reauthentifizieren. Melden Sie sich mit Ihrem %%Tailscale|tailscale%%-Konto an. +4. Klicken Sie auf **Verbinden**, um Ihren Unraid-Server zu Ihrem %%Tailnet|tailnet%% hinzuzufügen. +5. Besuchen Sie ***Settings → Management Access***, um Ihre %%Tailscale|tailscale%%-URLs für das WebGUI anzuzeigen. +6. Finden Sie in ***Einstellungen → Tailscale*** den %%Tailnet|tailnet%%-Namen und die IP-Adresse Ihres Servers. Verwenden Sie diese, um auf SMB-/NFS-Freigaben, Docker-Container und mehr von jedem Gerät in Ihrem %%Tailnet|tailnet%% zuzugreifen. + +### Subnet-Routing (optional) + +Um auf Ihren Unraid-Server über seine Haupt-LAN-IP zuzugreifen (oder um Docker-Container mit ihren eigenen IPs zu erreichen): + +1. Gehen Sie zu ***Settings → Tailscale***, klicken Sie auf Anzeigen und melden Sie sich an. +2. Klicken Sie auf **Subnet-Router** und fügen Sie hinzu: + - Die IP Ihres Unraid-Servers (z. B. `192.168.0.12/32`), oder + - Das Subnetz Ihres gesamten Netzwerks (z. B. `192.168.0.0/24`). +3. Klicken Sie auf **Routen bewerben**. +4. Genehmigen Sie die ausstehende Route in Ihrer Tailscale-Admin-Konsole. +5. Sobald genehmigt, können Geräte in Ihrem %%Tailnet|tailnet%% auf Ihren Unraid-Server und/oder LAN-Geräte über ihre üblichen IP-Adressen zugreifen. +6. Für erweiterte Details siehe die [%%Tailscale|tailscale%% %%subnet routing|subnet-routing%% Dokumentation](https://tailscale.com/kb/1019/subnets). + +--- + +## Hinzufügen von Tailscale zu Docker-Containern + +Unraid erleichtert es, [Docker-Container](../../using-unraid-to/run-docker-containers/overview.mdx) mit Ihrem %%Tailnet|tailnet%% zu verbinden, indem jedem Container eine eindeutige Geräteidentität für sicheren, flexiblen Fernzugriff zugewiesen wird. Mit dieser Integration können Sie den Zugriff auf einzelne Container freigeben, ohne Ihren gesamten Server offenzulegen, und Funktionen wie Exit-Knoten, Serve und Funnel auf Containerbasis nutzen. Das Setup ist vollständig automatisiert, sodass Benutzer aller Qualifikationsstufen von erhöhter Sicherheit und optimiertem Networking profitieren können. + +
+ Wie die Tailscale-Docker-Integration funktioniert - Klicken, um zu erweitern/zusammenklappen + + Wenn Sie **Use %%Tailscale|tailscale%%** für einen Docker-Container aktivieren und Änderungen anwenden, automatisiert Unraid folgende Schritte für nahtlose Integration: + + 1. **Entrypoint-Extraktion:** Unraid identifiziert den ursprünglichen Entrypoint und CMD des Containers und bewahrt dessen beabsichtigtes Startverhalten. + 2. **Integrationsskript-Injektion:** Das `tailscale_container_hook`-Skript wird innerhalb des Containers montiert und der Entrypoint wird aktualisiert, um dieses Skript zuerst auszuführen. + 3. **Umgebungseinrichtung:** Der ursprüngliche Entrypoint, CMD und alle erforderlichen %%Tailscale|tailscale%%-Variablen werden an den Docker-Run-Befehl übergeben. + 4. **%%Tailscale|tailscale%%-Initialisierung:** Beim Start installiert das Hook-Skript alle Abhängigkeiten, lädt herunter und startet den %%Tailscale|tailscale%%-Client innerhalb des Containers. + 5. **Normaler Start:** Das Skript startet dann den ursprünglichen Entrypoint und CMD des Containers, sodass Ihre Anwendung wie gewohnt ausgeführt wird - mit Tailscale-Netzwerk, das automatisch hinzugefügt wird. + + Einmal aktiviert, erscheint der Container als eigenes Gerät in Ihrem Tailnet, bereit für sicheren Zugriff und erweiterte Tailscale-Funktionen, ohne manuelle Netzwerkkonfiguration oder Port-Weiterleitung. +
+ +:::warning[Container kompatibilität] +Die Tailscale-Integration funktioniert nicht mit allen Containern. Einige Container funktionieren möglicherweise überhaupt nicht, wenn Tailscale aktiviert ist, insbesondere solche mit: + +- Benutzerdefinierten Netzwerk-Anforderungen +- Spezifischen Netzisolierungsbedürfnissen +- Anwendungen, die mit den Netzwerkänderungen von Tailscale in Konflikt stehen + +Testen Sie die Tailscale-Integration zuerst mit nicht kritischen Containern und seien Sie bereit, sie zu deaktivieren, wenn der Container nicht mehr ordnungsgemäß funktioniert. +::: + +:::note\[Prerequisites] + +- Installieren Sie zuerst %%Tailscale|tailscale%% auf jedem Computer, der auf Ihre Docker-Container zugreift. +- Während das Unraid-Tailscale-Plugin für die Docker-Integration nicht zwingend erforderlich ist, wird dringend empfohlen, es zu installieren und sich auf Ihrem Unraid-Server anzumelden, um die beste Erfahrung zu erzielen. + +::: + +Um %%Tailscale|tailscale%% zu einem Docker-Container hinzuzufügen: + +1. Überprüfen Sie Ihre %%Tailscale|tailscale%%-Kontoeinstellungen wie im Abschnitt [Erste Schritte](#getting-started-with-tailscale) beschrieben. +2. Gehen Sie in Unraid zum Tab **Docker** und [bearbeiten Sie den gewünschten Container](../../using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx). +3. Aktivieren Sie den **Use Tailscale**-Schalter. +4. Geben Sie einen **Tailscale-Hostname** für den Container ein (muss eindeutig in Ihrem Tailnet sein). + +:::warning +Ein HTTPS-Zertifikat wird für diesen Hostnamen generiert und in einem öffentlichen Zertifikatsregister veröffentlicht. Wählen Sie einen Namen, den Sie gerne öffentlich teilen. Einzelheiten finden Sie in den [Tailscale HTTPS-Dokumenten](https://tailscale.com/kb/1153/enabling-https). +::: + +5. Entscheiden Sie, ob dieser Container ein Exit-Node sein soll (nützlich für VPN-Container). +6. Wählen Sie, ob der Container einen Exit-Node für seinen ausgehenden Datenverkehr verwenden soll. Wenn das Tailnet-Plugin installiert ist, sehen Sie eine Liste verfügbarer Exit-Nodes; andernfalls geben Sie die IP manuell ein. +7. Wenn ein Exit-Node verwendet wird, geben Sie an, ob der Container auch auf Ihr LAN zugreifen soll. +8. Das Tailscale **Userspace Networking**-Feld wird in der Regel automatisch gesetzt. Lassen Sie es deaktiviert, es sei denn, Sie haben einen speziellen Bedarf. +9. Entscheiden Sie, ob Sie **%%Tailscale|tailscale%% %%SSH|ssh%%** (gesicherter Shell-Zugriff, authentifiziert durch %%Tailscale|tailscale%%) aktivieren möchten. + +:::info[Serve vs. Trichter] +- **Serve**: Ermöglicht den sicheren Zugriff auf die Website oder den Webservice eines Containers von Ihrem Tailnet aus mit einer benutzerfreundlichen HTTPS-URL. Keine Portweiterleitung erforderlich, und nur Tailnet-Geräte können eine Verbindung herstellen. +- **Funnel**: Veröffentlicht die Website des Containers über eine einzigartige HTTPS-URL im öffentlichen Internet. Jeder, der über den Link verfügt, kann darauf zugreifen, auch wenn er nicht in Ihrem Tailnet ist. Verwenden Sie dies mit Vorsicht, da es Ihren Dienst dem breiteren Internet aussetzt. +::: + +10. Aktivieren **Serve** für die Rückwärts-Proxy Bereitstellung des Webinterface des Containers zu Ihrem Tailnet oder **Funnel** um es im öffentlichen Internet zugänglich zu machen. Unraid erkennt automatisch den zu verwendenden Port basierend auf den WebUI-Einstellungen des Containers. Bei Bedarf sind auch erweiterte Optionen verfügbar. + +:::warning +Wenn Sie Serve oder Funnel verwenden, gibt es keine zusätzliche Authentifizierungsebene - Ihr Container ist dafür verantwortlich, den Benutzerzugang zu verwalten. Sichern Sie Ihre Webanwendungen entsprechend. +::: + +11. **Anwenden** Ihrer Änderungen und überprüfen Sie das **Containerprotokoll** auf Tailscale-Nachrichten. Klicken Sie auf den Link "Um zu authentifizieren, besuchen Sie", um den Container auf Ihrem Tailnet zu genehmigen. + +:::caution\[Troubleshooting] + +**Persistenter Zustand Fehler** - Wenn Sie "*ERROR: Konnte kein persistentes Docker-Verzeichnis für .tailscale\_state erkennen*" sehen: + +- Bearbeiten Sie den Container und identifizieren Sie einen gemappten Pfad, um Tailscale-Zustandsdaten zu speichern (z. B. `/container-path/`). +- Aktivieren Sie **Erweiterte Einstellungen anzeigen** und setzen Sie das Tailscale **Statusverzeichnis** auf `/container-path/.tailscale_state`. +- Starten Sie den Container neu. +- Docker-XML-Autoren können dies vereinfachen, indem sie `/container-path/.tailscale_state` zum XML der Container hinzufügen. + +::: + +--- + +## Aktualisierung von Tailscale + +%%Tailscale|tailscale%% wird häufig aktualisiert, um neue Funktionen und Sicherheitsverbesserungen zu liefern. Um Ihr Unraid-System sicher und kompatibel zu halten, stellen Sie sicher, dass sowohl das Unraid %%Tailscale|tailscale%%-Plugin als auch alle Docker-Container, die %%Tailscale|tailscale%% verwenden, auf dem neuesten Stand sind. + +Um %%Tailscale|tailscale%% zu aktualisieren: + +- **Aktualisieren Sie das Unraid %%Tailscale|tailscale%% Plugin:** Wenn eine neue Version verfügbar ist, aktualisieren Sie das Plugin über die Unraid Apps-Registerkarte wie jedes andere Plugin. Die neuesten Änderungen können Sie immer im [%%Tailscale|tailscale%% Changelog](https://tailscale.com/changelog) nachlesen. + +- **Aktualisieren Sie %%Tailscale|tailscale%% in Docker-Containern:** + 1. Auf der Docker-Seite fahren Sie mit der Maus über das %%Tailscale|tailscale%% Icon eines Containers. Wenn ein Update verfügbar ist, wird eine Benachrichtigung angezeigt. + 2. Aktualisieren Sie den Container, indem Sie entweder: + - Zum **Erweiterten Ansicht**-Modus wechseln (obere rechte Ecke) und dann auf **Update erzwingen** klicken. + - Den Container bearbeiten, eine kleine Änderung vornehmen (wie z. B. das Umschalten einer Einstellung), und auf **Übernehmen** klicken. + +--- + +## Userspace-Netzwerk + +**Userspace Networking** steuert, wie ein Container mit Ihrem %%Tailnet|tailnet%% und dem Rest Ihres Netzwerks verbunden wird. In den meisten Fällen können Sie die Details ignorieren, wenn Sie auf Container über ihre %%Tailscale|tailscale%% WebUI-URLs zugreifen und %%Tailscale|tailscale%% auf allen Client-Systemen installiert haben. + +- **Aktiviert:** Der Container arbeitet in einer eingeschränkten Umgebung. Er kann keine Verbindungen zu anderen %%Tailnet|tailnet%%-Geräten herstellen oder %%Tailscale|tailscale%% DNS verwenden, bleibt aber über sowohl die %%Tailscale|tailscale%% WebUI als auch die ursprüngliche WebUI-URL erreichbar. + +- **Deaktiviert:** Der Container hat vollständigen %%Tailnet|tailnet%% Zugang und kann %%Tailscale|tailscale%% DNS verwenden. Er kann mit anderen %%Tailnet|tailnet%%-Geräten kommunizieren, aber die ursprüngliche WebUI-URL ist möglicherweise nicht verfügbar. + +:::info[Feature anforderungen] +- Container, die als **Exit-Nodes** konfiguriert sind, haben immer das Userspace-Netzwerk aktiviert. +- Container, die **einen Exit-Node verwenden**, haben immer das Userspace-Netzwerk deaktiviert. +::: + +### Kompatibilität mit Netzwerktypen + +Das Verhalten der Tailscale-Integration und das Userspace-Networking hängt vom Netzwerktyp des Containers ab. Verwenden Sie die folgende Tabelle, um Kompatibilitäts- und Zugangsmöglichkeiten zu verstehen: + +| Netzwerktyp | Standardmäßig Userspace-Netzwerk | Kann geändert werden? | WebUI-Zugriff (%%Tailscale\|tailscale%%) | WebUI-Zugriff (Original) | Anmerkungen | +| -------------------- | -------------------------------- | --------------------- | ---------------------------------------- | ------------------------------------ | ------------------------------------------------------------------------------------------ | +| `host` | Deaktiviert | Nein | Nein | Ja | %%Tailscale\|tailscale%%-Integration im Hostmodus nicht verfügbar | +| `brücke` | Deaktiviert | Ja | Ja | *Aktiviert*: Ja *Deaktiviert*: Nein | Aktiviert beide URLs, wenn aktiviert; nur %%Tailscale\|tailscale%% WebUI, wenn deaktiviert | +| `eth0`/`br0`/`bond0` | Deaktiviert | Ja | Ja | Ja | Beide URLs sind unabhängig von der Einstellung zugänglich | +| `container`/`wg0` | Deaktiviert (nicht getestet) | Ja | Unbekannt | Unbekannt | Mit Vorsicht verwenden; nicht vollständig getestet | + +:::info[Keep im Auge behalten] +- %%Tailscale|tailscale%%-WebUI-URLs sind nur von Geräten aus zugänglich, auf denen %%Tailscale|tailscale%% installiert und Ihrem %%Tailnet|tailnet%% beigetreten ist, oder mit explizit aktiviertem Teilen. +- Für die meisten Benutzer bieten die Standardeinstellungen sicheren und zuverlässigen Zugriff. Für spezielle Networking-Bedürfnisse stehen erweiterte Optionen zur Verfügung. +::: + +\* *„%%WireGuard|wireguard%%“ und das „%%WireGuard|wireguard%%“-Logo sind eingetragene Warenzeichen von Jason A. Donenfeld.* diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx new file mode 100644 index 0000000000..8445448a51 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx @@ -0,0 +1,137 @@ +--- +sidebar_position: 3 +sidebar_label: Benutzerverwaltung +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ResetPasswordBasic from './partials/reset-password-basic.mdx'; +import ResetPasswordAdvanced from './partials/reset-password-advanced.mdx'; + +# Benutzerverwaltung + +Unraid vereinfacht die Verwaltung von Benutzern auf Ihrem NAS und bietet eine einfache und sichere Verwaltung für Anfänger bis hin zu erfahrenen Benutzern. Der optimierte Ansatz hilft Verwirrung zu reduzieren, während die Sicherheit und Zugriffskontrolle stark bleiben. + +:::note[Simplified Ansatz] +Anders als traditionelle Linux-Systeme bietet Unraid ein unkompliziertes Benutzermodell: + +- **Einzelner Administrator (%%root|root-user%%)**: Es gibt nur einen Hauptbenutzer, was Berechtigungen vereinfacht und die Sicherheit erhöht. +- **Share-zentrierter Zugriff**: Der Fokus liegt auf der gemeinsamen Nutzung von Daten, was es weniger kompliziert für Benutzer macht, die nicht die Komplexität von mehreren Benutzerumgebungen benötigen. + +So können Sie, selbst wenn Sie mit Linux nicht vertraut sind, Ihr NAS einfach und sicher verwalten. +::: + +## Übersicht + +### Root-Benutzer + +Unraid arbeitet mit einem einzigen Superuser, bekannt als %%root|root-user%%, der vollständige Kontrolle über alles hat. + +%%Root-Benutzer|root-user%%... + +- Haben vollen Zugriff auf die %%WebGUI|web-gui%%, %%SSH|ssh%% und Telnet-Oberflächen. +- Sind verantwortlich für das Verwalten aller Benutzerkonten und Einstellungen. +- Können aus Sicherheitsgründen nicht direkt auf Dateifreigaben über **%%SMB|samba%%**, **%%NFS|nfs%%** oder **%%FTP|ftp%%** zugreifen. +- Ermöglichen Sie [%%SSH|ssh%% schlüsselbasierte Authentifizierung](../../system-administration/advanced-tools/command-line-interface.mdx#accessing-the-terminal) zum Anmelden ohne Passwort. + +
+ ![Root-Benutzer](/img/rootuser.png) +
+ +:::important +Der %%Root-Benutzer|root-user%% ist entscheidend für die Aufrechterhaltung der Sicherheit. Stellen Sie immer sicher, dass ein [starkes Passwort](./security-fundamentals.mdx#set-a-strong-root-password) gesetzt ist und begrenzen Sie den %%SSH|-Zugriff ssh%%, um Ihr System zu schützen. +::: + +### Freigabebenutzer + +Diese Konten sind darauf ausgelegt, auf bestimmte Freigaben zuzugreifen, ohne jegliche Systemsteuerungen auf Systemebene. + +Freigabebenutzer... + +- Können nur vom %%Root-Benutzer|root-user%% erstellt und verwaltet werden. +- Können auf Freigaben über **%%SMB|samba%%**, **%%NFS|nfs%%** oder **%%FTP|ftp%%** (sofern aktiviert) zugreifen. +- Haben keinen Zugriff auf die **%%WebGUI|web-gui%%**, **%%SSH|ssh%%** oder **Telnet**. + +
+ ![Root-Benutzer](/img/shareusers.png) +
+ +--- + +## Benutzer hinzufügen + +Um von einem anderen Gerät auf freigegebene Dateien auf Unraid zuzugreifen, benötigen Sie einen Benutzernamen und ein Passwort. Diese Anmeldeinformationen sind von denen getrennt, die Sie möglicherweise für bestimmte Anwendungen verwenden, die in Containern ausgeführt werden und über eigene Login-Informationen verfügen. + +Einen Benutzer hinzufügen: + +1. **Benutzerverwaltung aufrufen** + - Gehen Sie zu ***Benutzer → Freigabezutritt*** (oder ***Einstellungen → Benutzer → Freigabezutritt***). + - Klicken Sie auf **Benutzer hinzufügen**. + +2. **Benutzeranmeldeinformationen festlegen** + - **Benutzername**: Wählen Sie einen eindeutigen Namen (wie `john_media`). Verwenden Sie nur Kleinbuchstaben, um Konflikte zu vermeiden, und halten Sie ihn unter 30 Zeichen, um die Windows-Grenzen einzuhalten. + + - **Passwort**: Erstellen Sie ein starkes Passwort mit einer Mischung aus Buchstaben, Zahlen und Symbolen. Folgen Sie dem Passwortstärke-Messer für Anleitungen. + +:::note\[Optionally] + +- **Eine Beschreibung hinzufügen**: Schreiben Sie eine Notiz wie "Zugang zur Medienbibliothek." +- **Benutzerdefiniertes Bild**: Laden Sie ein PNG-Bild (wie ein Benutzeravatar) zur visuellen Identifikation hoch. + +::: + +
+ ![Root-Benutzer](/img/adduser.png) +
+ +3. Wählen Sie **Hinzufügen**, um den Benutzer zu erstellen. + +--- + +## Benutzer löschen + +Sie können ein Benutzerkonto in Unraid ganz einfach entfernen, wenn es nicht mehr benötigt wird. + +:::caution +Das Entfernen eines Benutzerkontos ist dauerhaft und entzieht sofort den Zugriff auf Freigaben und freigegebene Ressourcen. +::: + +Um einen Benutzer zu entfernen: + +1. Gehen Sie zum **Benutzer**-Menü und klicken Sie auf den Namen des Benutzerkontos, das Sie löschen möchten. +2. Aktivieren Sie das Kästchen mit der Bezeichnung **Löschen**. Die **Übernehmen**-Schaltfläche wird zu einer **Löschen**-Schaltfläche. +3. Klicken Sie auf **Löschen**, um den Benutzer zu entfernen. Eine Bestätigungsmeldung erscheint, um die Löschung zu bestätigen. +4. Wählen Sie **Fertig**. + +--- + +## Benutzer ändern + +Sie können ein Benutzerkonto in Unraid ändern, wenn der Benutzer sein Passwort vergessen hat oder einen anderen Zugriff auf die freigegebenen Ordner benötigt. + +Um ein Benutzerkonto zu ändern: + +1. Gehen Sie zu ***Benutzer → Freigabezutritt*** (oder ***Einstellungen → Benutzer → Freigabezutritt***) und klicken Sie auf das Benutzerkonto, das Sie ändern möchten. +2. *(Optional)* Auf dem Bildschirm **Benutzer bearbeiten** können Sie alle Informationen außer dem **Benutzernamen** aktualisieren. Um ein neues **Passwort** festzulegen, geben Sie es einfach ein und bestätigen Sie es, indem Sie es erneut eingeben. +3. *(Optional)* Unten sehen Sie eine Liste von Ordnern (Freigaben), auf die der Benutzer zugreifen kann. Sie können deren Zugriffseinstellungen für diese Freigaben anpassen, aber keine neuen hinzufügen. +4. Klicken Sie auf **Anwenden**, um Ihre Änderungen zu speichern. + +--- + +## Passwort zurücksetzen + +Wenn Sie Ihr %%Root|root-user%%-Passwort vergessen haben, keine Sorge! Hier sind zwei einfache Methoden, um den Zugang zu Ihrem Unraid-Server wiederzuerlangen. Sie benötigen physischen Zugang zu Ihrem **[USB-Flash-Gerät](../../system-administration/maintain-and-update/changing-the-flash-device.mdx)** und einen weiteren Computer. + + + + + + + + + + + +:::tip[Be bewusst] +Jeder mit physischem Zugang zu Ihrem USB kann diese Methoden verwenden, um Ihr %%Root|root-user%%-Passwort zurückzusetzen und vollen Verwaltungszugang zu erlangen. Bewahren Sie Ihren USB immer sicher auf! +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx new file mode 100644 index 0000000000..92f27c42ae --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx @@ -0,0 +1,237 @@ +--- +sidebar_position: 7 +sidebar_label: WireGuard +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import WireGuardConfigureMobile from './partials/wireguard-configure-mobile.mdx'; +import WireGuardConfigureOtherDevices from './partials/wireguard-configure-other-devices.mdx'; + +# WireGuard + +Während Tailscale für die meisten eine benutzerfreundliche Erfahrung bietet, ist [WireGuard](https://www.wireguard.com/) eine robuste, integrierte VPN-Lösung in Unraid, die sich in bestimmten fortgeschrittenen Netzwerkszenarien hervorhebt. Besonders nützlich ist sie, wenn Sie detaillierte Kontrolle über das VPN-Routing benötigen oder server-zu-server- oder LAN-zu-LAN-Verbindungen ohne Drittanbieterdienste aufbauen müssen. Nachfolgend sind Schlüssel-Szenarien aufgeführt, in denen WireGuard überzeugt. + +

Wann sollte man WireGuard wählen?

+ +| Szenario | Warum %%WireGuard\|wireguard%% wählen? | +| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| **Erweiterte Konfiguration** | Ermöglicht individuelle %%VPN-Tunnel\|vpn-tunnel%%-Konfigurationen und die Integration in bestehende Netzwerk-Infrastruktur | +| **Server-zu-Server-Tunnel** | Ermöglicht das Erstellen von persistenten verschlüsselten Verbindungen zwischen Unraid-Servern | +| **LAN-zu-LAN-Integration** | Verbindet ganze Netzwerke ohne Zwischendienste | +| **Bandbreitenintensive Aufgaben** | Bietet minimalen Protokolloverhead für maximale Durchsatzrate | + +:::info +Für die meisten Benutzer kann [**Tailscale**](../secure-your-server/tailscale.mdx) alles erledigen, was WireGuard kann, oft sogar einfacher. Es erfordert normalerweise kein Port-Forwarding oder manuelle Konfiguration. Wenn jedoch fortgeschrittene, benutzerdefinierte VPN-Setups oder spezifische Kompatibilitätsanforderungen benötigt werden, könnte WireGuard für einige eine bessere Option sein. +::: + +

Verbindungstypen und Anwendungsfälle

+ +Das Wissen über Verbindungstypen in %%WireGuard|wireguard%% kann Ihnen dabei helfen zu entscheiden, ob es das Richtige für Sie ist: + +| Verbindungstyp | Praktischer Anwendungsfall | +| :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------- | +| Fernzugriff auf Server | Zugriff auf Unraid %%WebGUI\|web-gui%%, Docker-Container, %%VM\|vm%%s und Netzfreigaben aus der Ferne. | +| Fernzugriff auf LAN | Greifen Sie auf alle Geräte in Ihrem LAN remote zu, als wären Sie im lokalen Netzwerk. | +| Server-zu-Server-Zugang | Verbinden Sie sicher zwei Unraid-Server für Datenaustausch oder Backup. | +| LAN-zu-LAN-Zugriff | Verbinden Sie nahtlos zwei ganze LANs für eine reibungslose Kommunikation zwischen Netzwerken. | +| Server Hub-und-Speichen-Zugriff | Ermöglichen Sie mehreren VPN-Clients, über den Server miteinander zu verbinden. | +| LAN-Hub & Spoke-Zugriff | Kommunikation zwischen mehreren LANs über einen zentralen Server ermöglichen. | +| VPN-getunnelter Zugang | Route specific Docker containers and %%VM\|vm%%s through a commercial %%WireGuard\|wireguard%% VPN provider. | +| Ferngetunnelter Zugriff | Routen Sie Ihren gesamten Internetverkehr sicher über Ihren Unraid-Server, wenn Sie sich in unsicheren Netzwerken befinden. | + +## Einrichten von WireGuard auf Unraid + +:::note\[Prerequisites] + +- **Dynamisches DNS:** Richten Sie DDNS für zuverlässigen Zugriff ein, falls sich Ihre öffentliche IP ändert. Beliebte Optionen sind [Cloudflare](https://www.cloudflare.com/) (erfordert Domainbesitz), [No-IP](https://www.noip.com/) oder [DuckDNS](https://www.duckdns.org/) (kostenlos, kann aber gelegentliche Ausfälle haben). +- **Routerkonfiguration:** + - Aktivieren Sie %%UPnP|upnp%% in den ***Einstellungen → Management Zugang*** für automatische Portweiterleitung. + - Wenn %%UPnP|upnp%% nicht verfügbar ist, leiten Sie UDP-Port 51820 manuell an die IP Ihres Unraid-Servers weiter. +- **Client-Software:** Installieren Sie %%WireGuard|wireguard%% auf Ihren Geräten ([Windows](https://www.wireguard.com/install/), [macOS](https://apps.apple.com/us/app/wireguard/id1451685025), [iOS](https://apps.apple.com/us/app/wireguard/id1441195209), [Android](https://play.google.com/store/apps/details?id=com.wireguard.android)). + +::: + +

Schritt 1: Schlüssel generieren

+ +1. Gehen Sie zu ***Einstellungen → VPN-Manager***. + +
+ ![VPN Manager](/img/wg0.png) +
+ +2. Benennen Sie Ihren Tunnel (z.B. "Home VPN"). +3. Klicken Sie auf **Schlüsselpaar generieren**, um öffentliche/private Schlüssel zu erstellen. + +:::warning +Bewahren Sie den privaten Schlüssel sicher auf, da er vollen Netzwerkzugriff gewährt. +::: + +

Schritt 2: Konfigurieren Sie Ihren Endpunkt

+ +- **Für DDNS-Nutzer:** Ersetzen Sie die IP in **Lokaler Endpunkt** durch Ihre DDNS-URL (z.B. `myhome.duckdns.org`). +- Behalten Sie den Standardport (`51820`), es sei denn, es gibt Konflikte mit bestehenden Diensten. + +

Schritt 3: Portweiterleitung einrichten

+ +- **%%UPnP|upnp%%-Nutzer:** Unraid wird automatisch Ports weiterleiten, wenn in **Einstellungen → Management Zugang** aktiviert. + +
+ ![UPnP aktiviert](/img/upnp-yes.png) +
+ +- **Manuelle Einrichtung:** Wenn %%UPnP|upnp%% nicht verfügbar ist: + 1. Melden Sie sich bei Ihrem Router an. + 2. Leiten Sie UDP-Port `51820` an die LAN-IP Ihres Unraid-Servers weiter. + 3. Verwenden Sie denselben Port für externe und interne Einstellungen. + +
+ ![UPnP deaktiviert](/img/upnp-no.png) +
+ +

Schritt 4: Aktivieren Sie Ihren Tunnel

+ +1. Schalten Sie **Aktiv** um %%WireGuard|wireguard%% zu aktivieren. +2. Aktivieren Sie **Autostart**, um %%WireGuard|wireguard%% beim Start auszuführen. + +
+ ![Aktivierungsumschalter](/img/activate.png) +
+ +:::important[Security best Practices] +- **Nur vertrauenswürdiger Zugriff:** VPN-Zugriff ist mit physischem Netzwerkzugriff vergleichbar, deshalb sollten nur vertrauenswürdige Geräte autorisiert werden. +- **Schlüsselverwaltung:** Niemals private Schlüssel teilen; behandeln Sie sie wie Passwörter. +- **Netzwerksegmentierung:** Für komplexe Setups (benutzerdefinierte Docker/%%VM|vm%%s), isolieren Sie VPN-Verkehr mithilfe von VLANs oder separaten Subnetzen. +- **Regelmäßige Audits:** Überprüfen Sie quartalsweise verbundene Geräte und Zugriffsberechtigungen. +::: + +### Definieren eines Peers (Clients) + +Ein Peer ist ein Client-Gerät - wie ein Telefon, Laptop oder ein anderer Server - das eine Verbindung zu Ihrem Unraid %%WireGuard|wireguard%%-VPN herstellt. Das Definieren eines Peers bedeutet, eine eindeutige Identität zu erstellen und Schlüssel für dieses Gerät zu sichern. + +1. Wählen Sie **Peer hinzufügen**. + +
+ ![Peer hinzufügen](/img/peer-add.png) +
+ +2. Benennen Sie den Peer (z.B. *MyAndroid*). +3. Wählen Sie den initialen Verbindungstyp für vollen Netzwerkzugriff, typischerweise *Remote-Zugriff auf LAN*. +4. Klicken Sie auf **Schlüsselpaar generieren**, um öffentliche und private Schlüssel zu erstellen. Bewahren Sie den privaten Schlüssel sicher auf. +5. Erstellen Sie optional einen vorab geteilten Schlüssel für zusätzliche Sicherheit. +6. Klicken Sie auf **Übernehmen**. + +:::note +Während Peers ihre eigenen Schlüssel generieren können, vereinfacht das Generieren von Schlüsseln durch Unraid das Setup, indem vollständige Konfigurationsdateien bereitgestellt werden. +::: + +:::caution +Das Hinzufügen eines neuen Peers kann den %%WireGuard|wireguard%%-Tunnel vorübergehend deaktivieren, was Ihre Verbindung unterbrechen könnte. Stellen Sie sicher, dass Sie lokalen Zugriff auf Ihren Server haben, bevor Sie Änderungen vornehmen. +::: + +### Konfiguration eines Peers (Clients) + + + + + + + + + + + +### Konfiguration Ihres DNS + +1. Greifen Sie auf Geräte mit IP-Adressen oder vollständig qualifizierten Domain-Namen (z.B. `yourpersonalhash.unraid.net`) zu. + +:::note +Kurznamen wie "tower" oder vom Router verwaltete DNS-Einträge funktionieren möglicherweise nicht über das VPN. +::: + +2. Um die Auflösung von Kurznamen zu ermöglichen: + - Gehen Sie zu ***Einstellungen → VPN-Manager*** in Unraid. + - Wechseln Sie von **Basis** zu **Erweitert**. + - Geben Sie die IP-Adresse Ihres bevorzugten DNS-Servers im Feld **Peer-DNS-Server** ein. + - Speichern Sie die Änderungen und aktualisieren Sie die Client-Konfigurationsdatei. +3. Empfohlene DNS-Server: + - Die IP-Adresse des LAN-Routers. + - Öffentliche DNS-Server wie `8.8.8.8`. + +Diese Einrichtung ist besonders wichtig für **Remote getunnelten Zugang**-Modus, bei dem der ursprüngliche DNS-Server des Clients möglicherweise nicht erreichbar ist. + +:::note +%%mDNS|mdns%%-Adressen (z.B., `tower.local`) funktionieren nur im lokalen Netzwerk und nicht über %%WireGuard|wireguard%% VPN. +::: + +### Komplexe Netzwerke + +Für die meisten Benutzer funktioniert die Standardeinstellung **NAT verwenden** sofort und ermöglicht den Zugriff auf Unraid und die meisten LAN-Geräte. Wenn Sie jedoch Docker-Container mit benutzerdefinierten IPs oder %%VM|vm%%s mit strengen Netzwerkanforderungen verwenden: + +1. Stellen Sie in Ihrer %%WireGuard|wireguard%%-Tunnel-Konfiguration die Option **NAT verwenden** auf **Nein**. +2. Fügen Sie auf Ihrem Router eine statische Route für das WireGuard-Tunnelnetzwerk (z.B. `10.253.0.0/24`) hinzu, die auf die IP Ihres Unraid-Servers zeigt. +3. In ***Einstellungen → Docker-Einstellungen*** stellen Sie **Zugriff für benutzerdefinierte Netzwerke** auf **Aktiviert**. + +### Konfigurationen, die vermieden werden sollten + +| NAT-Einstellung verwenden | Host-Zugang zu benutzerdefinierten Netzwerken | Server & Dockers (Bridge/Host) | %%VMs\|vm%% & andere LAN-Systeme | Dockers mit benutzerdefinierter IP | Anmerkungen | +| ------------------------- | --------------------------------------------- | ------------------------------ | -------------------------------- | ---------------------------------- | ---------------------------------------------------------------------------- | +| Ja | Deaktiviert (statische Route optional) | Zugänglich | Zugänglich | Nicht zugänglich | Einfaches Netzwerk-Setup; empfohlen für die meisten Benutzer | +| Ja | Aktiviert (statische Route optional) | Zugänglich | Nicht zugänglich | Nicht zugänglich | Diese Konfiguration vermeiden | +| Nein | Deaktiviert (Keine statische Route) | Zugänglich | Nicht zugänglich | Nicht zugänglich | Vermeiden; erfordert eine statische Route, um ordnungsgemäß zu funktionieren | +| Nein | Deaktiviert (Mit statischer Route) | Zugänglich | Zugänglich | Nicht zugänglich | Fast korrekt; Host-Zugriff für benutzerdefinierte Netzwerke aktivieren | +| Nein | Aktiviert (Mit statischer Route) | Zugänglich | Zugänglich | Zugänglich | Empfohlenes Setup für komplexe Netzwerke | + +## Fehlerbehebung für WireGuard + +WireGuard ist so konzipiert, dass es unauffällig ist - wenn etwas nicht funktioniert, werden keine Fehlermeldungen angezeigt. Effektive Problemlösung erfordert eine systematische Überprüfung jedes Aspekts Ihrer Konfiguration. + +#### Verbindungskontrollliste + +- ✅ Der Tunnel ist auf sowohl Unraid als auch auf den Client-Geräten aktiv. *(„Aktiv“ bedeutet, dass der Tunnel gestartet wurde, aber nicht unbedingt verbunden ist.)* +- ✅ DDNS-URL zeigt auf Ihre aktuelle öffentliche IP und ist im **Lokalen Endpunkt** festgelegt. +- ✅ Der korrekte UDP-Port wird von Ihrem Router auf Unraid weitergeleitet und stimmt mit dem **Lokalen Endpunkt**-Port überein. +- ✅ Clients haben die neuesten Konfigurationsdateien nach Änderungen auf der Serverseite. +- ✅ Änderungen werden gespeichert, bevor Peer-Konfigurationen (QR-Codes/Dateien) eingesehen oder verteilt werden. + +#### Zusätzliche Fehlerbehebungsmaßnahmen + +
+ Erste Setup-Tipps – Klicken zum Erweitern/Zusammenklappen + + Wenn Sie zum ersten Mal WireGuard einrichten, können Ihnen diese Tipps helfen, häufige Fallstricke zu vermeiden: + + - Richten Sie Ihren ersten Client mithilfe eines Mobilgeräts im Mobilfunknetz (nicht WLAN) ein, um lokale Netzwerkprobleme auszuschließen. + - Verwenden Sie die QR-Code-Methode für den einfachsten Konfigurationstransfer. +
+ +
+ Handshake- und Konnektivitätsprobleme – Klicken zum Erweitern/Zusammenklappen + + Wenn Sie keinen Handshake sehen oder keine Verbindung herstellen können, versuchen Sie diese gezielten Überprüfungen: + + - Wenn Sie keinen Handshake sehen, versuchen Sie, den Verkehr zu erzeugen (zum Beispiel den Server anzupingen), um die Verbindung auszulösen. + - Deaktivieren Sie Energiespar-, Datenspar- oder Batteriesparfunktionen auf mobilen Clients, da diese die VPN-Funktion beeinträchtigen können. + - Stellen Sie sicher, dass Client- und Servernetzwerke unterschiedliche Subnets verwenden (z. B. sollten beide nicht `192.168.1.0/24` verwenden). + - Wenn Sie Cloudflare für DDNS nutzen, setzen Sie den **Proxystatus** auf **nur DNS** (nicht **Proxied**). Geben Sie DNS-Änderungen Zeit zur Ausbreitung. + - Wenn Sie von manchen Standorten aus eine Verbindung herstellen können, von anderen jedoch nicht, blockiert das entfernte Netzwerk möglicherweise UDP-Datenverkehr. %%WireGuard|wireguard%% unterstützt derzeit kein TCP als Fallback. +
+ +
+ Erweiterte Netzwerkkonflikte - Klicken zum Erweitern/Zusammenklappen + + Wenn Ihre Netzwerkeinrichtung komplexer ist oder Sie einen IP-Konflikt vermuten, prüfen Sie diese erweiterten Fehlerbehebungsschritte: + + - Im **Erweiterter**-Modus bestätigen Sie, dass Ihr **Lokales Tunnel-Netzwerk-Pool** nicht mit einem vorhandenen Netzwerk auf einer der beiden Seiten überlappt. Bei einem Konflikt ändern Sie in ein anderes privates Subnetz (zum Beispiel `10.10.10.0/24`). + - Für Docker-Container mit benutzerdefinierten IPs oder %%VM|vm%%s mit strengen Anforderungen siehe den Abschnitt [Komplexe Netzwerke](#complex-networks). +
+ +
+ Notfallwiederherstellung - Klicken zum Erweitern/Zusammenklappen + + Wenn Sie den Zugriff auf die Unraid %%WebGUI|web-gui%% verlieren und das automatische Starten von %%WireGuard|wireguard%% deaktivieren müssen + + - Löschen Sie `/boot/config/wireguard/autostart` von Ihrem Flash-Laufwerk und starten Sie neu. +
+ +\* *„%%WireGuard|wireguard%%“ und das „%%WireGuard|wireguard%%“-Logo sind eingetragene Warenzeichen von Jason A. Donenfeld.* diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json new file mode 100644 index 0000000000..98a995a4bc --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Fehlerbehebung", + "position": 5 +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json new file mode 100644 index 0000000000..2ac9bcd956 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Häufige Probleme", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx new file mode 100644 index 0000000000..70ea55f35a --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx @@ -0,0 +1,204 @@ +--- +sidebar_position: 1 +sidebar_label: Start- & Anlaufprobleme +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Start- & Anlaufprobleme + +Wenn Ihr Unraid-Server nicht korrekt startet, kann es schwierig sein, die Ursache zu identifizieren, ohne ein klares Verständnis des Boot-Prozesses. Mit Hilfe dieses Leitfadens können Sie die meisten Startprobleme schnell diagnostizieren und beheben, sodass Ihr %%array|array%%, %%WebGUI|web-gui%% und die Dienste mit minimaler Ausfallzeit betriebsbereit sind. + +## Vorbereiten des Flash-Geräts + +Dieses Thema wird ausführlich im Abschnitt [USB-Gerät vorbereiten](../../getting-started/set-up-unraid/create-your-bootable-media.mdx#prepare-your-usb-device) behandelt. + +:::caution +Sichern Sie immer [Ihren Flash-Laufwerk](../../system-administration/maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device), bevor Sie Änderungen vornehmen. Alle benutzerspezifischen Einstellungen, einschließlich Ihres Lizenzschlüssels, befinden sich im `config`-Ordner. Das Wiederherstellen dieses Ordners nach der Neuformatierung Ihres Flash-Geräts hilft, Ihre aktuelle Konfiguration beizubehalten. +::: + +## UEFI-Boot aktivieren + +Moderne Systeme erfordern in der Regel den **UEFI-Bootmodus** für erhöhte Sicherheit und schnellere Startzeiten. + +So konfigurieren Sie den %%UEFI|uefi%% Boot in Ihrem System-BIOS/%%UEFI|uefi%%-Einstellungen: + +1. Rufen Sie das BIOS-Setup Ihrer Hauptplatine während des Starts auf (normalerweise durch Drücken von F2, DEL oder ESC) +2. Suchen Sie die Boot-Optionen oder Bootmodus-Einstellungen auf +3. Setzen Sie den Bootmodus auf **UEFI** oder **UEFI mit deaktiviertem CSM** +4. Stellen Sie sicher, dass das Unraid Flash-Gerät als UEFI-Bootgerät ausgewählt ist +5. Speichern Sie Ihre Änderungen und beenden Sie + +## Verstehen der Startreihenfolge + +Die Unraid-Boot-Sequenz umfasst mehrere Phasen: + +
+ 1. BIOS Boot - Zum Erweitern/Kollabieren klicken + + Die BIOS/UEFI-Firmware initialisiert die Hardware und findet das bootfähige Gerät. Dies ist das Fundament des gesamten Boot-Prozesses. + + - Das Motherboard-BIOS erkennt das Unraid-Boot-Flash-Gerät. + - Das Festlegen des Flash-Geräts als Standard-Boot-Gerät variiert je nach BIOS - überprüfen Sie das Handbuch Ihrer Hauptplatine für Anleitung. + - Das Flash-Gerät unterstützt sowohl **Legacy (CSM)** als auch **%%UEFI|uefi%%** Boot-Modi. + - Um den %%UEFI|uefi%%-Boot zu aktivieren, stellen Sie sicher, dass der `EFI`-Ordner auf dem Flash-Gerät kein nachfolgendes Minuszeichen (`-`) hat. +
+ +
+ 2. Syslinux Loader - Zum Erweitern/Kollabieren klicken + + Der Bootloader bietet Startoptionen und lädt den Linux-Kernel in den Arbeitsspeicher. Diese Phase bestimmt, welches Betriebssystem oder Diagnosetool ausgeführt werden soll. + + - Die Bootmenüeinträge sind in der Datei `syslinux/syslinux.cfg` auf dem Flash-Gerät definiert. + - Sie können diese Datei über die %%WebGUI|web-gui%% unter ***Main → Syslinux-Konfiguration*** bearbeiten. + - **Memtest86+**, das mit aktuellen Unraid-Versionen ausgeliefert wird, funktioniert sowohl im Legacy- als auch im %%UEFI|uefi%%-Modus. Für ältere Unraid-Versionen erhalten Sie eine kompatible Version von [der offiziellen Memtest-Seite](https://www.memtest86.com/) für %%UEFI|uefi%%. + - Wenn keine Option ausgewählt wird, startet das Standardprogramm nach einer Verzögerung, was für den kopflosen Betrieb nützlich ist. +
+ +
+ 3. Linux-Kern - Zum Erweitern/Kollabieren klicken + + Der Linux-Kernel initialisiert und beginnt mit der Hardwareerkennung. Hier übernimmt das Betriebssystem die Kontrolle vom Bootloader. + + - **Syslinux** lädt den Linux-Kern vom Flash-Gerät in den RAM. + - Sie sehen Konsolennachrichten, die die bz\* Dateien laden. + - Fehler in dieser Phase deuten oft auf Probleme mit dem Flash-Gerät hin. + - Linux erkennt Hardware während des Startvorgangs. +
+ +
+ 4. Flash-abhängige Dienste - Zum Erweitern/Kollabieren klicken + + Das Flash-Gerät wird zugänglich und essentielle Dienste beginnen zu laden. Diese Phase ist entscheidend für die Konfiguration und den Netzwerkzugang. + + - Das Flash-Gerät wird unter `/boot` eingehängt. + - Wenn es nicht eingehängt wird, können Sie möglicherweise immer noch eine Anmeldeaufforderung sehen, aber das deutet auf einen unvollständigen Start hin. + - Verwenden Sie den `df`-Befehl, um zu überprüfen, ob `/boot` eingehängt ist. + - Das Flash-Gerät muss mit **UNRAID** (alles in Großbuchstaben) gekennzeichnet sein, um korrekt eingehängt zu werden. + - Zusätzliche Treiber und Firmware werden in dieser Phase verfügbar. + - Die Konfiguration wird in den RAM geladen. + - Standard-Linux-Dienste, einschließlich Netzwerken und %%WireGuard|wireguard%%-VPN (wenn aktiviert), starten hier. +
+ +
+ 5. Plugins - Zum Erweitern/Kollabieren klicken + + Drittanbieter-Erweiterungen und Anpassungen werden geladen, um die Systemfunktionalität zu verbessern. Plugin-Probleme können einen erfolgreichen Start verhindern. + + - Installierte Plugins werden in diesem Schritt geladen. + - **Sicherer Start**-Optionen können die Plugin-Ladung nach Bedarf unterdrücken. +
+ +
+ 6. WebGUI - Zum Erweitern/Kollabieren klicken + + Die webbasiertem Verwaltungsoberfläche wird verfügbar und ermöglicht die Fernadministration und -konfiguration Ihres Servers. + + - Die %%WebGUI|web-gui%% startet an diesem Punkt. + - Die Datei `config/go` auf dem Flash-Gerät kann Benutzerbefehle vor oder nach dem Start der %%WebGUI|web-gui%% ausführen. +
+ +
+ 7. Array - Zum Erweitern/Kollabieren klicken + + Speichergeräte werden eingehängt und verfügbar gemacht, was den Bootvorgang abschließt. Hier werden Ihre Daten zugänglich. + + - Wenn Autostart aktiviert ist, beginnt das %%array|array%% hier; andernfalls ist ein manueller Start erforderlich. + - Laufwerke werden als `/dev/diskX` und `/mnt/cache` (falls vorhanden) eingehängt. + - Freigaben werden im Netzwerk als `/mnt/user/sharename` verfügbar. + - Docker-Container starten in der auf der Docker-Seite angegebenen Reihenfolge mit anpassbaren Verzögerungen. + - Automatisch startende virtuelle Maschinen (%%VMs|vm%%) werden ebenfalls gestartet. +
+ +An diesem Punkt ist der Unraid-Server voll funktionsfähig. + +--- + +## Startfehler + +Wenn Ihr Server nicht startet, hilft systematisches Troubleshooting dabei, die Ursache schnell zu identifizieren und zu beheben. Befolgen Sie diese Schritte der Reihenfolge nach, um kritische Probleme nicht zu übersehen oder unnötige Änderungen vorzunehmen. Jeder Schritt baut auf dem vorherigen auf, also überspringen Sie keinen Schritt, auch wenn er möglicherweise nicht direkt mit Ihrem spezifischen Problem in Verbindung zu stehen scheint. + +1. Verwenden Sie nach Möglichkeit einen USB 2.0-Port für das Flash-Gerät. Dieser ist im Allgemeinen zuverlässiger und weniger anfällig für Probleme als USB 3.0. +2. Überprüfen Sie die BIOS-/%%UEFI|uefi%%-Einstellungen, um sicherzustellen, dass das Flash-Gerät als primäres Boot-Gerät festgelegt ist. +3. Untersuchen Sie das Flash-Gerät auf physische oder logische Fehler an einem Windows- oder macOS-Computer. +4. Extrahieren Sie die Unraid-Release bz\* Dateien erneut auf das Flash-Laufwerk, um potenzielle Beschädigungen zu vermeiden. +5. Erstellen Sie das Flash-Gerät neu, indem Sie mit einer sauberen Unraid-Kopie beginnen und dann Ihren `config`-Ordner wiederherstellen. +6. Versuchen Sie, im [Abgesicherten Modus](../../using-unraid-to/customize-your-experience/plugins.mdx#troubleshooting-with-safe-mode) zu booten, um plugin-bezogene Probleme zu überprüfen. +7. Testen Sie mit einem neuen Flash-Gerät und führen Sie eine saubere Unraid-Installation durch. Dies hilft zu ermitteln, ob Probleme mit der Server-Hardware bestehen. +8. Übertragen Sie bei Bedarf Ihre Lizenz auf ein neues Flash-Gerät. + +--- + +## Wiederherstellung von einem verlorenen Boot-Laufwerk und unbekannten Parität-Laufwerken + +:::important +Dieser Wiederherstellungsprozess birgt das Risiko eines Datenverlustes, falls Laufwerke falsch zugewiesen werden. Bevor Sie fortfahren: + +1. **Starten Sie das Array nicht**, bis Sie sich über die Laufwerkszuordnungen sicher sind. +2. **Dokumentieren** Sie, welche Laufwerke zuvor Paritäts- vs. Datenträger waren +3. **Erwägen Sie Rat**, wenn Sie sich unsicher sind, in den [Unraid-Foren](https://forums.unraid.net/) einzuholen + +Wenn Sie über aktuelle Backups oder Dokumentationen Ihrer Array-Konfiguration verfügen, überprüfen Sie diese zuerst. +::: + +Wenn Ihr Unraid-Bootlaufwerk ausfällt und Sie keinen aktuellen Backup oder kein Wissen darüber haben, welche Laufwerke Parität sind, können Sie Ihr System wiederherstellen, indem Sie Unraids Fähigkeit nutzen, Datenträger anhand ihrer Dateisysteme zu erkennen. %%Paritätslaufwerke|parity-drives%% haben kein gültiges Dateisystem, was sie unterscheidbar macht. + +Unraid identifies data drives by detecting existing valid file systems. %%Parity drives|parity-drives%%, which lack a file system, appear unmountable. This characteristic allows you to distinguish %%parity drives|parity-drives%% from data drives after booting with a new flash device. + +### Wiederherstellungsverfahren + +Dieses Verfahren hilft Ihnen, Ihre Array-Konfiguration wiederherzustellen, wenn Sie Ihr Boot-Laufwerk verloren haben und nicht mehr wissen, welche Laufwerke Parität vs. Daten waren. Befolgen Sie jeden Schritt sorgfältig, um Datenverlust zu vermeiden. + +1. Erstellen Sie ein neues Unraid-Boot-Laufwerk. +2. Starten Sie den Server von diesem neuen Laufwerk (weisen Sie noch keine Laufwerke zu). +3. Aktivieren Sie eine Lizenz, entweder durch eine Testversion oder durch Übertragung einer bestehenden. +4. Identifizieren Sie %%parity drives|parity-drives%% mithilfe einer der unten aufgeführten Methoden. +5. Verwenden Sie ***Werkzeuge → Neue Konfig***, um das %%array|array%% zurückzusetzen, während Sie nach Möglichkeit vorherige Zuweisungen beibehalten. +6. Korrigieren Sie die Laufwerkszuweisungen auf der ***Haupt***-Registerkarte, und stellen Sie sicher, dass Sie zwischen %%parity|parity%% und Datenlaufwerken unterscheiden. +7. Starten Sie das %%array|array%%, um die Laufwerkszuweisungen zu bestätigen. +8. If the %%parity|parity%% is valid, check the box for ***Parity is Already Valid***. If not, allow the %%parity|parity%% to rebuild. + +:::warning[Multiple Paritätslaufwerke] +If you have multiple %%parity drives|parity-drives%% and had to identify them based on which drives were unmountable, **do not** use the **Parity is Already Valid** option. There's a 50:50 chance of getting the assignments wrong, and if you do, your %%array|array%% may appear protected but actually isn't. Always allow parity to rebuild in this scenario to ensure proper protection. +::: + +9. Prüfen und passen Sie alle Benutzerfreigaben ein/einschließen/auszuschließen basierend auf den neuen Zuweisungen an. +10. Führen Sie eine %%parity check|parity-check%% durch, um die Integrität zu überprüfen, insbesondere wenn die %%parity|parity%% nicht neu aufgebaut wurde. + +--- + +### Parität-Laufwerke identifizieren + +
+ Mithilfe der integrierten Unraid-Funktion (empfohlene Methode) - Zum Ein- oder Ausblenden klicken + + Diese Methode erfordert keine Plugins, aber sie ungültig die %%parity|parity%%, was einen Neuaufbau erforderlich macht. + + So verwenden Sie diese Methode: + + 1. Weisen Sie alle Laufwerke als Datenträger zu und starten Sie es. + 2. %%Parität-Laufwerke|parity-drives%% werden als nicht einhängbar angezeigt, da ihnen ein gültiges Dateisystem fehlt. + 3. Confirm that the number of unmountable drives matches your %%parity|parity%% count. + 4. Notieren Sie sich die Seriennummern dieser Laufwerke. + 5. Falls zutreffend, können Sie eingehängte Datenträger prüfen, um deren Reihenfolge zu bestätigen. +
+ +
+ Mithilfe des Unassigned Devices-Plugins - Zum Ein- oder Ausblenden klicken + + Diese Plugin-basierte Methode erhält die Gültigkeit der %%parity|parity%%, indem Laufwerke im Nur-Lese-Modus eingebunden werden. + + So verwenden Sie diese Methode: + + 1. Installieren Sie das [**Unassigned Devices**-Plugin](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon) von der ***Apps***-Registerkarte. + 2. Hängen Sie jedes Laufwerk nacheinander im Nur-Lesen-Modus ein. + 3. Laufwerke, die nicht eingehängt werden können, sind wahrscheinlich %%parity drives|parity-drives%% (sie können nicht zwischen parity1 und parity2 unterscheiden). + 4. Überprüfen Sie bei Bedarf die Reihenfolge der eingehängten Datenträger. +
+ +Weitere Informationen finden Sie im [Thread zum Unassigned Devices-Plugin](https://forums.unraid.net/topic/55481-unassigned-devices-managing-unassigned-devices-without-rebooting/) in den Unraid-Foren. + +--- + +\* *„%%WireGuard|wireguard%%“ und das „%%WireGuard|wireguard%%“-Logo sind eingetragene Warenzeichen von Jason A. Donenfeld.* diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx new file mode 100644 index 0000000000..a49187ddf6 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx @@ -0,0 +1,333 @@ +--- +sidebar_position: 4 +sidebar_label: Datenwiederherstellung +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RepairXfs from './partials/data-recovery/repair-xfs.mdx'; +import RepairBtrfs from './partials/data-recovery/repair-btrfs.mdx'; +import XfsCheckWebGUI from './partials/data-recovery/xfs-check-webgui.mdx'; +import XfsCheckCli from './partials/data-recovery/xfs-check-cli.mdx'; + +# Datenwiederherstellung + +Das Verständnis des Datenschutzes ist wichtig beim Verwalten Ihres Unraid-Servers. Während Unraid einen starken Schutz gegen häufige Hardwareausfälle bietet, kann kein System vollständige Immunität gegen Datenverlust garantieren. Dieser Abschnitt bietet Leitlinien zu bewährten Verfahren zum Schutz Ihrer Daten, zur Erkennung potenzieller Probleme und zur Wiederherstellung von Daten, wenn Probleme auftreten. + +Effektive Datenwiederherstellung beginnt mit soliden Datenschutzstrategien, die regelmäßige Backups, proaktive Überwachung und einen sorgfältigen Umgang mit Laufwerks- und Array-Konfigurationen umfassen. + +--- + +## Grundlagen der Backup-Strategie + +Auch wenn Unraid Schutz gegen verschiedene Hardwareausfälle bietet, sind zuverlässige Backups Ihrer wichtigen Daten unerlässlich. Backups sind Ihre letzte Verteidigungslinie gegen katastrophale Ausfälle, Ransomware oder versehentliches Löschen. + +- **Kritische Daten bewerten:** Identifizieren Sie unersetzliche oder wesentliche Dateien wie persönliche Dokumente, Fotos und wichtige Videos. +- **Mehrere Backup-Kopien:** Halten Sie sich an die 3-2-1-Regel: Bewahren Sie mindestens drei Kopien Ihrer Daten auf zwei verschiedenen Medientypen auf, wobei eine Kopie extern oder in der Cloud gespeichert wird. Dies minimiert das Risiko von physischen Katastrophen wie Feuer oder Diebstahl. +- **Backup-Häufigkeit:** Planen Sie regelmäßige Backups, um die Wahrscheinlichkeit von Datenverlust zu verringern. +- **Ransomware-Schutz:** Mindestens eine Backup-Kopie sollte offline oder unzugänglich sein, um vor möglicher Beschädigung zu schützen. +- **Backup-Tools:** Für Unraid 7.0 und höher wird empfohlen, [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) für automatisierte Backups Ihrer Flash- und Konfigurationsdateien in die Cloud zu verwenden. Weitere beliebte Backup-Lösungen sind: + - **[Duplicati](https://unraid-production-481d40bf.preview.craft.cloud/community/apps?q=Duplicati#r:~:text=of%202%20Apps-,duplicati,-Backup%2C%20Cloud):** Ein vielseitiges, quelloffenes Backup-Tool, das Deduplizierung und Verschlüsselung bietet und Cloud, lokale, USB- und Remote-Ziele unterstützt. + - **[rclone](https://unraid-production-481d40bf.preview.craft.cloud/community/apps?q=rclone#r:~:text=various%20cloud%20services.-,rclone,-Waseh%27s%20Repository):** Eine robuste Lösung zum Synchronisieren und Sichern von Cloud-Speicheranbietern. + - **[rsync](https://rsync.samba.org/):** Eine effiziente Option für lokale oder Remote-Backups. + - **[borgbackup](https://www.borgbackup.org/):** Eine Wahl für fortgeschrittene Benutzer, die sich für deduplizierte, verschlüsselte Backups interessieren. + +Benutzer sollten ihre Risikotoleranz und Backup-Anforderungen bewerten, aber die Nutzung von Cloud-Integration und Automatisierung ist ein guter Ausgangspunkt für die meisten Unraid-Benutzer. + +:::tip[Modern Backup-Strategie] +Mit Unraid 7.0 und höher aktivieren Sie [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) für automatisierte Cloud-Backups Ihres Flash-Geräts und Ihrer Konfiguration. Erwägen Sie die Nutzung von Duplicati, rclone oder ähnlichen Tools für wichtige Dateien und Freigaben, um geplante Backups an lokalen, entfernt zugänglichen oder Cloud-Zielen zu erstellen. Testen Sie immer Ihren Wiederherstellungsprozess, um sicherzustellen, dass Ihre Backups im Bedarfsfall funktionieren. +::: + +:::info[Proactive Überwachung und Unterstützung] +- **Benachrichtigungen aktivieren:** Richten Sie Benachrichtigungen in ***Einstellungen → Benachrichtigungen*** ein, um sofort Benachrichtigungen über Systemprobleme zu erhalten. +- **Suchen Sie Expertenunterstützung:** Wenn Sie unsicher über Wiederherstellungsschritte sind, konsultieren Sie die [Unraid-Foren](https://forums.unraid.net/), bevor Sie Maßnahmen ergreifen. +- **Regelmäßige Gesundheitsprüfungen:** Behalten Sie die [SMART-Daten](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx) Ihrer Laufwerke im Auge und führen Sie regelmäßige Dateisystemüberprüfungen durch. +::: + +--- + +## Dateisysteme reparieren + +:::caution +Verwenden Sie diese Anweisungen ausschließlich für Datenlaufwerke mit Dateisystembeschädigung. Wenden Sie sie nicht auf das Paritätslaufwerk, Hardwareprobleme oder fehlende Laufwerke an. + +- Dateisystem-Reparatur-Tools sind nur für die Behebung von Daten- oder Cache-Laufwerken vorgesehen, die Dateisystem- oder Mount-Fehler aufweisen. +- Das Paritätslaufwerk hat **kein** Dateisystem. Das Ausführen eines Reparaturtools auf dem Paritätslaufwerk kann es beschädigen und zu irreversiblen Datenverlusten führen. +::: + +### Gerätenamensgebung: Pfade und Symbole + +Bei der Verwendung des **%%WebGUI|web-gui%%** werden Gerätepfade automatisch verwaltet. Wenn Sie sich für die Reparatur über die Befehlszeile entscheiden, stellen Sie stets sicher, dass Sie den richtigen **Partitionspfad** verwenden: + +| Bezeichnung | Typischer Pfad | Verwendung | Ist %%Parity\|parity%% geschützt? | +| -------------------------- | -------------- | ------------------------ | -------------------------------------- | +| Laufwerk 7 | /mnt/disk7 | Unraid-Einhängepunkt | Ja (wenn %%array\|array%% Datenträger) | +| %%Array\|array%% Partition | /dev/md7p1 | Unraid-verwaltetes Gerät | Ja | +| Rohpartition | /dev/sdj1 | Direkter Gerätezugriff | Nein | + +:::warning +Führen Sie niemals Dateisystem-Reparaturtools auf ganzen Laufwerken (wie `/dev/sdj`) aus; verwenden Sie immer Partition-Pfade (wie `/dev/sdj1` oder von Unraid verwaltete `/dev/mdXp1`). + +- Für %%array|array%% Laufwerke, verwenden Sie immer das von Unraid verwaltete Gerät (z. B. `/dev/md5p1`), um den **%%parity|Paritätsschutz%% zu gewährleisten**. +- Wenn Sie die rohe Partition verwenden (zum Beispiel `/dev/sdj1`), wird %%parity|parity%% nicht aktualisiert, was sie ungültig macht. +::: + +- Verwenden Sie immer `/dev/mdXp1` für %%array|array%% Laufwerke, um die gültige %%parity|Parität%% zu erhalten. +- For non-%%array|array%% drives (like %%cache|cache%%-only devices), use the direct partition path, e.g., `/dev/sdj1`. + +### Die richtige Reparaturmethode wählen + +Alle Unraid-Versionen seit **v6.0.0** unterstützen Dateisystemreparaturen über das %%WebGUI|web-gui%% für %%XFS|xfs%% und %%BTRFS|btrfs%%. + +Für die meisten Benutzer ist die empfohlene Methode: + +1. Öffnen Sie das %%WebGUI|web-gui%%. +2. Navigieren Sie zum **Main**-Tab. +3. Klicken Sie auf das entsprechende %%array|array%% oder %%cache|cache%% Gerät. +4. Befolgen Sie die Aufforderungen, um die integrierte Dateisystemprüfung und -reparatur durchzuführen. + +Wenn Sie die Befehlszeile verwenden möchten, immer: + +- Identifizieren Sie die korrekte, von Unraid verwaltete Partition (`/dev/mdXp1`) für %%array|array%% Laufwerke. +- Verwenden Sie die geeigneten Reparatur-Tools für Ihr Dateisystem: + - **XFS:** `xfs_repair` + - **BTRFS:** `btrfs scrub` + +:::caution[Know Ihr Dateisystem] +Die falsche Verwendung eines Reparaturtools kann weiteren Schaden verursachen. Stellen Sie sicher, dass Ihre Festplatte als **%%XFS|xfs%%**, **%%BTRFS|btrfs%%** oder ein anderer unterstützter Dateisystemtyp formatiert ist, bevor Sie mit der Reparatur beginnen. +::: + +--- + +## Checken und Reparieren von Laufwerken im WebGUI + +Dieser Abschnitt erläutert, wie Sie Dateisystembeschädigungen auf Datenlaufwerken mit den integrierten Tools von Unraid diagnostizieren und reparieren können. Dateisystemprobleme können nach unsauberen Abschaltungen, Stromausfällen oder Hardwareproblemen auftreten, aber Unraid bietet sichere Reparaturmethoden, die Ihren %%parity|Paritätsschutz%% bewahren, während die zugrunde liegenden Probleme behoben werden. + +### Vorbereiten des Tests + +| Dateisystem | Startmodus | Wartungsmodus erforderlich? | Anmerkungen | +| ---------------- | ------------- | --------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| %%XFS\|xfs%% | Wartungsmodus | Ja | %%Array\|array%% muss im Wartungsmodus gestartet werden (Laufwerke nicht eingebunden) für Überprüfung/Reparatur. | +| %%BTRFS\|btrfs%% | Normalmodus | Nein | %%Array\|array%% muss normal gestartet werden, nicht im Wartungsmodus, für Scrub/Überprüfung. | + +- Identifizieren Sie das Dateisystem für das Ziellaufwerk: **Hauptmenü** → Klicken Sie auf den Laufwerksnamen → Überprüfen Sie **Dateisystemtyp**. +- Klicken Sie auf der Hauptseite auf den zu überprüfenden oder zu reparierenden Datenträger. + +### Den Test ausführen + +1. Der Standard für die meisten Dateisysteme (wie %%XFS|xfs%%) ist eine Nur-Lese-Prüfung (keine Änderungen), normalerweise mit der `-n`-Option (nicht verändern). (Für detailliertere Ausgaben mit %%XFS|xfs%%, fügen Sie die `-v`-Option (ausführlich) hinzu, was zu `-nv` führt.) +2. Für %%BTRFS|btrfs%% verwenden Sie den Befehl `scrub` anstelle der Balance-Operation. +3. Klicken Sie auf **Prüfen**, um zu starten; verwenden Sie die **Aktualisieren**-Schaltfläche, um den Fortschritt bei Bedarf zu überwachen. +4. Wenn keine Schäden gefunden wurden, fahren Sie mit [**Nach dem Test und der Reparatur**](#after-the-test-and-repair) fort. + +### Die Reparatur ausführen + + + + + + + + + + + +### Nach dem Test und der Reparatur + +Wenn Sie %%wartungsmodus#124;maintenance-mode%% verwendet haben, stoppen Sie das Array und starten Sie es im Normalmodus, um den Betrieb fortzusetzen. + +:::tip[What was nach der Reparatur zu erwarten ist] +- Reparatur- und Kontrolloperationen können bis zu einer halben Stunde oder mehr dauern, abhängig von der Größe und dem Zustand Ihres Dateisystems. +- Bei umfangreicher Korruption kann ein `lost+found`-Ordner erstellt werden, der wiederhergestellte Datei- und Ordnerfragmente enthält. Überprüfen und stellen Sie diese bei Bedarf wieder her; löschen Sie sie, wenn Sie fertig sind. +- Dies ist vergleichbar mit dem Ausführen von chkdsk oder scandisk auf Windows und Arbeiten mit Dateien, die als `File0000.chk` umbenannt wurden. Nehmen Sie sich Zeit, wenn Sie den Inhalt von `lost+found` überprüfen. +::: + +--- + +### XFS-Überprüfung & Reparatur + + + + + + + + + + + +--- + +## Nicht einhängbare(s) Laufwerk(e) + +Wenn ein zuvor funktionierendes Laufwerk nicht einhängbar wird, weist dies gewöhnlich auf Dateisystemkorruption hin, oft verursacht durch unsauberes Herunterfahren oder Schreibfehler. + +:::danger[Critical aktion] +Formatieren Sie niemals eine unmontierbare Festplatte über das %%WebGUI|web-gui%%! Das Formatieren löscht alle Daten und aktualisiert %%parity|parity%%, was eine Wiederherstellung unmöglich macht. +::: + +### Wiederherstellungsverfahren + +Wenn eine Festplatte, die vorher einwandfrei funktionierte, plötzlich nicht mehr gemountet werden kann, ist es verständlich, sich um Ihre Daten Sorgen zu machen. Diese Art von Problem wird oft durch Dateisystemkorruption verursacht, die nach unsauberen Abschaltungen, Stromunterbrechungen oder fehlerhaften Schreibvorgängen auftreten kann. Das Wichtigste, das Sie sich merken sollten, ist: **Formatieren Sie das Laufwerk nicht**, wenn Sie vom %%WebGUI|web-gui%% dazu aufgefordert werden. Durch Formatieren werden alle vorhandenen Daten gelöscht und die Wiederherstellung erschwert, wenn nicht gar unmöglich gemacht. + +Tatsächlich sollte Ihr erster Schritt der Versuch einer Dateisystemreparatur sein. Unraid bietet dafür eigene Tools, und das Befolgen des korrekten Verfahrens kann oft den Zugriff auf Ihre Daten mit minimalem Risiko wiederherstellen. + +So gehen Sie vor: + +1. Sehen Sie sich den [Abschnitt zur Dateisystemreparatur](#repair-file-systems) an. Diese Anleitung führt Sie durch den Vorgang für Ihr spezifisches Dateisystem. + +2. Für Festplatten, die das %%XFS|xfs%% Dateisystem verwenden (Standard für die meisten Unraid-Setups), führen Sie aus: + + ``` + xfs_repair -v /dev/mdXp1 + ``` + + Ersetzen Sie **X** durch die korrekte Festplattensatznummer. Die `-v`-Option gibt detaillierte Fortschrittsinformationen aus. Dieser Befehl überprüft und versucht, das Dateisystem auf dem angegebenen Laufwerk zu reparieren. + +3. Für mit %%BTRFS|btrfs%% formatierte Festplatten zuerst einen Nur-Lese-Check ausführen: + + ``` + btrfs check /dev/mdXp1 + ``` + + Ersetzen Sie **X** durch die korrekte Festplattensatznummer. Verwenden Sie den Reparaturmodus nur, wenn er absolut notwendig ist und nachdem Sie die Risiken verstanden haben: + + ``` + btrfs check --repair /dev/mdXp1 + ``` + +:::danger +Die `--repair` Option ist extrem gefährlich und kann zu weiterem Datenverlust führen. Sichern oder erstellen Sie immer ein Abbild der Festplatte zuerst. Überprüfen Sie die [Dokumentation](https://btrfs.readthedocs.io/en/latest/btrfs-check.html) und ziehen Sie zusätzliche Beratung in Betracht, wenn Sie unsicher sind. +::: + +Wenn diese Reparaturversuche das Problem nicht beheben oder Sie auf Fehler stoßen, die Sie nicht verstehen, ist es am besten, eine Pause einzulegen und um Hilfe in den Unraid-Foren zu bitten. Viele erfahrene Benutzer und Moderatoren stehen bereit, um Sie durch die nächsten Schritte zu führen, und eine zweite Meinung einzuholen ist immer sicherer, bevor Sie weiter fortfahren. + +--- + +## Verlorene Array-Konfiguration + +Losing your %%array|array%% configuration can be stressful, but it doesn't mean your data is gone. The %%array|array%% configuration file (located at `config/super.dat` on your flash device) tells Unraid how your drives are assigned and which ones serve as %%parity|parity%%. If you've lost your flash drive or don’t have a recent backup, you can recover your %%array|array%% by carefully reassigning the drives. + +Folgendes sollten Sie tun, wenn Sie sich in dieser Situation befinden: + +1. Weisen Sie im %%WebGUI|Web-GUI%% alle verfügbaren Laufwerke als Datenlaufwerke zu. Weisen Sie zunächst keine als %%parity|Parität%% zu. +2. Starten Sie das %%array|array%%. Laufwerke, die zuvor für die %%parity|Parität%% verwendet wurden, erscheinen als *nicht mountierbar*, da sie kein Dateisystem enthalten. +3. Write down or take a screenshot of the serial numbers for these unmountable drives - these are your %%parity|parity%% drives. +4. Stoppen Sie das %%array|array%%. +5. Gehen Sie zu ***Tools → Neue Konfiguration*** und wählen Sie die Option, aktuelle Zuordnungen beizubehalten. +6. Klicken Sie das Kontrollkästchen an, um zu bestätigen, dass Sie fortfahren möchten, und klicken Sie auf **Übernehmen**. +7. Return to the **Main** tab and correctly assign the %%parity|parity%% drives using the serial numbers you noted. +8. Starten Sie das %%array|array%%, um die %%parity|parity%% basierend auf Ihren korrekten Zuordnungen wiederherzustellen. + +--- + +## Datenwiederherstellung mit ddrescue + +Wenn Standard-Unraid-Wiederherstellungsmethoden, wie das [Ersetzen der Laufwerke](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-disks) Verfahren, aufgrund mehrerer Plattenausfälle oder ungültiger %%parity|parity%% nicht durchführbar sind, können spezialisierte Tools wie **ddrescue** Ihnen helfen, so viele Daten wie möglich von einer fehlerhaften Festplatte zu retten. + +:::note[Best Methoden zur Datenwiederherstellung] +Bevor Sie beginnen, denken Sie daran, dass die Datenwiederherstellung ein empfindlicher Prozess ist. Arbeiten Sie immer nach Möglichkeit mit einer Kopie Ihrer fehlerhaften Festplatte und vermeiden Sie das Schreiben neuer Daten auf die Quellfestplatte. Wenn Ihre Daten unersetzlich sind, sollten Sie professionelle Wiederherstellungsdienste in Betracht ziehen, bevor Sie fortgeschrittene Wiederherstellungsmaßnahmen selbst versuchen. Dokumentieren Sie Ihre Maßnahmen und nehmen Sie sich Zeit - Eile erhöht das Risiko des dauerhaften Datenverlusts. +::: + +Die empfohlene Methode zur Installation von ddrescue erfolgt über das **[Nerd Tools](https://unraid.net/community/apps?q=nerd+tools#r)** Plugin (das 2022 das veraltete NerdPack ersetzt hat). + +Um ddrescue zu aktivieren: + +1. Installieren Sie [Nerd Tools](https://unraid-production-481d40bf.preview.craft.cloud/community/apps?q=nerd+tools#r:~:text=of%201%20App-,Nerd%20Tools,-unRaid.es) aus dem **Apps**-Tab in der Unraid %%WebGUI|web-gui%%. +2. Öffnen Sie ***Einstellungen → Nerd Tools*** und aktivieren Sie **ddrescue**. + +### Klonen einer fehlerhaften Festplatte + +Sie benötigen einen gesundes Ziellaufwerk, das mindestens so groß ist wie das fehlerhafte Quelllaufwerk. Stellen Sie sicher, dass während des Prozesses keine der beiden Festplatten gemountet ist. Überprüfen Sie die Gerätezuweisungen doppelt, bevor Sie beginnen; das falsche Ziel überschreibt und zerstört dessen Daten. + +Um die gesamte Festplatte zu klonen, öffnen Sie eine Terminalsitzung oder %%SSH|ssh%% Sitzung und führen den folgenden Befehl aus: + +``` +ddrescue -f /dev/sdX /dev/sdY /boot/ddrescue.log +``` + +- Ersetzen Sie **X** durch den Buchstaben Ihrer Quelldisk und **Y** durch den Buchstaben Ihrer Zielfestplatte. +- Die Datei `/boot/ddrescue.log` wird den Fortschritt protokollieren und Ihnen das Fortsetzen ermöglichen, wenn der Prozess unterbrochen wird. + +If you want to clone directly to an %%array|array%% disk while maintaining %%parity|parity%%, use the `md#` device and start the %%array|array%% in Maintenance Mode: + +``` +ddrescue -f /dev/sdX1 /dev/md\# /boot/ddrescue.log +``` + +- Ersetzen Sie **X** durch den Buchstaben Ihrer Quelldisk (beachten Sie die `1` für die Partition). +- Ersetzen Sie **#** mit der Nummer Ihrer Zielfestplatte. + +:::caution +Überprüfen Sie immer die Gerätezuweisungen, bevor Sie ddrescue ausführen. Die Verwendung des falschen Ziels könnte zu einem vollständigen Datenverlust auf diesem Laufwerk führen. +::: + +### Übersetzen der ddrescue-Ausgabe + +Während des Wiederherstellungsprozesses wird ddrescue den Fortschritt in Echtzeit anzeigen. + +Hier ein Beispiel dafür, was Sie während des ersten Durchgangs sehen könnten: + +``` +GNU ddrescue 1.27 +ipos: 926889 MB, non-trimmed: 1695 kB, current rate: 95092 kB/s +opos: 926889 MB, non-scraped: 0 B, average rate: 79236 kB/s +non-tried: 1074 GB, bad-sector: 0 B, error rate: 0 B/s +rescued: 925804 MB, bad areas: 0, run time: 3h 14m 44s +pct rescued: 46.28%, read errors: 54, remaining time: 3h 18m +time since last successful read: 0s +Copying non-tried blocks... Pass 1 (forwards) +``` + +:::note[What Was bedeutet das?] +- **ipos/opos**: Aktuelle Lese-/Schreibpositionen auf den Quell- und Zielfestplatten. +- **gerettet**: Menge der erfolgreich kopierten Daten. +- **schlechte Bereiche/Lesefehler**: Anzahl der problematischen Regionen und der aufgetretenen Lesefehler. +- **pct gerettet**: Prozentsatz der bisher wiederhergestellten Festplatte. +- **verbleibende Zeit**: Geschätzte Zeit bis zur Fertigstellung. +- **Kopieren nicht-versuchter Blöcke...**: ddrescue versucht zum ersten Mal, alle Sektoren zu lesen. +::: + +Nach der Erstkopie wird ddrescue an der Wiederherstellung von Daten aus fehlerhaften Sektoren arbeiten, indem es mehrere Durchgänge macht und manchmal Blöcke in beide Richtungen liest. Diese Phase kann viel länger dauern, insbesondere wenn die Festplatte ernsthaft beschädigt ist. + +Hier ein Beispiel für eine Ausgabe während dieser Phase: + +``` +GNU ddrescue 1.27 +ipos: 17878 MB, non-trimmed: 0 B, current rate: 0 B/s +opos: 17878 MB, non-scraped: 362496 B, average rate: 74898 kB/s +non-tried: 0 B, bad-sector: 93696 B, error rate: 102 B/s +rescued: 2000 GB, bad areas: 101, run time: 7h 25m 8s +pct rescued: 99.99%, read errors: 260, remaining time: 25m +time since last successful read: 10s +Scraping failed blocks... (forwards) +``` + +:::note[What's geschieht gerade?] +- **Ausschaben fehlgeschlagener Blöcke...**: ddrescue unternimmt wiederholte Versuche, unlesbare Sektoren wiederherzustellen. +- **schlechte Bereiche/Lesefehler**: Diese Zahlen können steigen, während ddrescue mehr Schäden findet, aber das Ziel ist es, nicht wiederherstellbare Daten zu minimieren. +::: + +### Einhängen und Überprüfen der wiederhergestellten Festplatte + +Sobald ddrescue abgeschlossen ist, können Sie versuchen, das Ziellaufwerk zu mounten. Verwenden Sie das [**Unassigned Devices** Plugin](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon) für eine einfache Bereitstellung im %%WebGUI|web-gui%%. Wenn das Laufwerk nicht gemountet wird, führen Sie das passende Dateisystem-Reparaturtool aus, wie `xfs_repair` oder `btrfs check`. Selbst wenn das Laufwerk gemountet wird, ist es eine gute Idee, eine Dateisystemüberprüfung durchzuführen, um die Integrität sicherzustellen. + +Once you have recovered the files, copy them to a safe location on your %%array|array%%. Be mindful that some files may be corrupt, especially if the disk had many unreadable sectors. Using %%checksums|checksum%% (or %%BTRFS|btrfs%% with built-in checksumming) can help you identify damaged files. + +### Beschädigte Dateien ohne Prüfsummen identifizieren + +Falls keine Prüfsummen vorhanden sind, können Sie immer noch Dateien identifizieren, die von defekten Sektoren betroffen sind, indem Sie den Füllmodus von ddrescue verwenden: + +1. Erstellen Sie eine temporäre Datei mit einem eindeutigen String: + + ``` + printf "Unraid " > ~/fill.txt + ``` + +2. Füllen Sie die defekten Blöcke auf der geklonten Festplatte mit diesem String: + + ``` + ddrescue --fill-mode='-' ~/fill.txt /dev/sdY /boot/ddrescue.log + ``` + + Ersetzen Sie **Y** durch die Zielfestplatte und verwenden Sie die vorhandene ddrescue-Kartendatei. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx new file mode 100644 index 0000000000..7a4d349bb2 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx @@ -0,0 +1,86 @@ +--- +sidebar_position: 5 +sidebar_label: Docker-Fehlerbehebung +--- + +# Docker-Fehlerbehebung + +:::info +Diese Seite bietet speziell für Docker-Container auf Unraid, die vom Unraid-Team verwaltet werden, Problembehebungshinweise an. Für fortgeschrittene Problembehebung, tiefere technische Details oder Themen, die über die Unraid-spezifische Implementierung hinausgehen, bitte auf die [offizielle Docker-Dokumentation](https://docs.docker.com/) verweisen. +::: + +Docker erleichtert es, eine Vielzahl von Anwendungen auf Ihrem Unraid-Server auszuführen, aber es können Probleme auftreten, wie z.B. Container, die nicht starten, beschädigte Docker-Abbilddateien oder Netzwerkprobleme. Diese Seite befasst sich mit einigen häufigen Problemen im Zusammenhang mit Docker auf Unraid und bietet bewährte Verfahren zu deren effektiven Lösung. + +--- + +## Das Docker-Image-Datei neu erstellen + +A corrupted Docker image file (`docker.img`) is a common issue, often caused by the %%cache pool|cache-pool%% running out of space or an unclean shutdown. Luckily, a well-configured container stores all variable data outside the image file (usually in the `appdata` share), so you can safely recreate the image without losing your application settings or data. + +Um die Docker-Image-Datei neu zu erstellen: + +1. Gehen Sie zu ***Einstellungen → Docker*** in der %%WebGUI|web-gui%%. +2. Setzen Sie **Docker aktivieren** auf **Nein** und klicken Sie auf **Anwenden**, um den Docker-Dienst zu stoppen. +3. Wählen Sie die Option zum Löschen der Docker-vdisk-Datei und klicken Sie dann auf **Anwenden**. Sie können die Datei auch manuell löschen, falls erforderlich. +4. Bestätigen Sie den Speicherort und den Dateinamen für die neue Docker-vdisk-Datei. Diese Einstellung umfasst sowohl den Ordnerpfad als auch den Dateinamen. +5. Legen Sie die gewünschte Größe für die neue Abbilddatei fest. Die Standardgröße ist normalerweise für die meisten Benutzer ausreichend. +6. Setzen Sie **Docker Aktivieren** auf **Ja** und klicken Sie auf **Anwenden**. Unraid erstellt und formatiert eine neue `docker.img`-Datei mit %%BTRFS|btrfs%%. + +Nun sind Sie bereit, Ihre Container mit ihren gespeicherten Einstellungen neu zu installieren. + +--- + +## Docker-Anwendungen neu installieren + +Unraid speichert automatisch eine Vorlage für jeden auf Ihrem Flash-Laufwerk installierten Container. Diese Vorlagen speichern Ihre Konfiguration, was es erleichtert, Container nach dem Erstellen der Docker-Abbilddatei wiederherzustellen. + +Um Ihre Container neu zu installieren: + +1. Gehen Sie zum **Apps**-Tab in der %%WebGUI|web-gui%%. +2. Öffnen Sie den Abschnitt **Vorherige Apps**. +3. Wählen Sie die Container aus, die Sie neu installieren möchten. +4. Fahren Sie mit der Installation fort. Unraid wird jeden Container erneut herunterladen und Ihre vorherigen Einstellungen automatisch anwenden. + +:::important +Dieser Prozess stellt Ihre Container in ihren vorherigen Zustand wieder her, sofern alle variablen Daten außerhalb der Docker-Image-Datei abgebildet wurden (zum Beispiel im `appdata`-Share). +::: + +:::tip +Wenn ein Container nach der Neuinstallation nicht startet, prüfen Sie seine Protokolle im Kontextmenü des **Docker**-Tabs auf Fehlermeldungen und Hinweise zur Fehlerbehebung. +::: + +:::note +Überprüfen Sie, dass alle zugeordneten Hostpfade vorhanden sind und die richtigen Berechtigungen nach der Wiederherstellung Ihrer Container haben. Falsche Zuordnungen oder Berechtigungen sind eine häufige Ursache für Startprobleme. +::: + +--- + +## Wiederherstellung von Docker-Benutzernetzwerken + +Benutzerdefinierte Docker-Netzwerke bleiben nicht bestehen, wenn die Docker-Abbilddatei gelöscht wird. Bevor Sie das Abbild entfernen, dokumentieren Sie Ihre benutzerdefinierten Netzwerknamen, indem Sie ein Terminal öffnen und folgende Befehle ausführen: + +``` +docker network ls +``` + +Notieren Sie sich die Namen aller von Ihnen erstellten Netzwerke (mit Ausnahme der Standardnetzwerke `bridge`, `host` und `none`). + +Um benutzerdefinierte Netzwerke wiederherzustellen: + +1. Erstellen Sie nach dem Neu-Erstellen der Docker-Image-Datei jedes benutzerdefinierte Netzwerk erneut mit: + + ``` + docker network create + ``` + + Ersetzen Sie `` durch den zuvor aufgenommenen genauen Namen. + +2. Aktualisieren Sie Ihre Container, um die wiederhergestellten Netzwerke bei Bedarf zu verwenden. + +:::note +Sie können den Hostzugriff auf benutzerdefinierte Netzwerke unter ***Einstellungen → Docker*** aktivieren, indem Sie **Hostzugriff auf benutzerdefinierte Netzwerke** auf **Aktiviert** setzen, wenn Ihre Einrichtung dies erfordert. +::: + +:::tip +Wenn Container nach der Wiederherstellung nicht wie erwartet kommunizieren können, überprüfen Sie Ihre Docker-Netzwerkeinstellungen auf Konflikte oder Verbindungsprobleme. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx new file mode 100644 index 0000000000..124ee4511b --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx @@ -0,0 +1,7 @@ +- Verwenden Sie `btrfs scrub` im %%WebGUI|web-gui%%, um bestimmte Fehler zu scannen und zu reparieren. +- Auf Einzel-Laufwerken kann Scrubbing einige Fehler erkennen, aber nicht beheben; in diesem Falle erwägen Sie das Kopieren von Daten und Formatieren der Disk oder des Pools. + +:::note +- Aktuelle %%BTRFS|btrfs%% Reparaturwerkzeuge können möglicherweise nicht alle Beschädigungen beheben; überprüfen Sie die Unraid Dokumentation auf aktualisierte Werkzeuge, falls erforderlich. +- Für detailliertere Informationen über Scrubbing und Wiederherstellung, verweisen Sie auf die entsprechende %%BTRFS-Dokumentation|btrfs%% oder die Unraid-Foren zur Beratung. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx new file mode 100644 index 0000000000..e245277ca7 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx @@ -0,0 +1,16 @@ +Ab Unraid 7.0 ist die Reparatur des XFS-Dateisystems nun vollständig im WebGUI automatisiert: + +1. **Erste Überprüfung**: Klicken Sie auf **PRÜFEN** (keine Optionen erforderlich) +2. **Prüfergebnisse**: + - **Keine Beschädigung erkannt**: Zeigt "keine Dateisystembeschädigung erkannt" an und der **PRÜFEN**-Button bleibt + - **Beschädigung erkannt**: Zeigt "Dateisystembeschädigung erkannt" an und ein **FIX**-Button erscheint +3. **Reparaturvorgang**: Klicken Sie auf **FIX**, um das Dateisystem automatisch zu reparieren +4. **Zusätzliche Aktionen**: Falls erforderlich, kann ein **ZERO LOG**-Button erscheinen +5. **Abschluss**: Zeigt "Dateisystem repariert" an, wenn der Prozess abgeschlossen ist + +Dieses automatisierte System eliminiert die Notwendigkeit für Benutzer, manuell Reparaturoptionen einzugeben, und stellt sicher, dass die korrekte Reparatursequenz eingehalten wird. + +:::note +- Reparaturen erhalten den %%parity|parity%% Schutz und können viel Zeit in Anspruch nehmen. +- Both %%WebGUI|web-gui%% and command-line options are supported for %%XFS|xfs%% repair (commands shown below). +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx new file mode 100644 index 0000000000..1655297576 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx @@ -0,0 +1,12 @@ +Am Konsolen oder via %%SSH|ssh%% führen Sie aus: + +``` +xfs_repair -v /dev/mdXp1 +``` + +Ersetzen Sie **X** durch die korrekte Laufwerksnummer (z. B. `md1p1` für Laufwerk 1). + +- "Überprüfen Sie den Reparaturbericht auf weitere Abhilfemaßnahmen, falls erforderlich. Bei geringfügigen Problemen ist das Ausführen von `-v` in der Regel ausreichend." +- Wenn die Reparatur ein `lost+found`-Verzeichnis erzeugt, überprüfen und verwalten Sie dies wie oben. +- Die %%Parität%% bleibt während der Reparatur erhalten. +- Wenn Sie fertig sind, stoppen Sie %%array|array%% und starten es im normalen Modus neu. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx new file mode 100644 index 0000000000..869b99e95c --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx @@ -0,0 +1,7 @@ +1. Use the %%WebGUI|web-gui%% for %%array|array%% drives formatted with %%XFS|xfs%%. +2. Starten Sie %%array|array%% im %%Maintenance Mode|maintenance-mode%% (nicht eingehängt). +3. Wählen Sie im Hauptmenü den Datenträger aus und öffnen Sie **Dateisystemstatus prüfen**. +4. Standardmäßig führt eine Überprüfung `-n` (nicht modifizierend) aus; für mehr Ausgaben fügen Sie `-v` für `-nv` hinzu. +5. Um zu reparieren, entfernen Sie das `-n`-Flag, um Korrekturen zu ermöglichen. + +The %%WebGUI|web-gui%% process maintains %%parity|parity%% during repair. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx new file mode 100644 index 0000000000..73350c3e89 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx @@ -0,0 +1 @@ +Der Status des %%array|array%% wird auf Ihrem USB-Flash-Laufwerk gespeichert. Wenn das Flash-Laufwerk nicht verfügbar oder schreibgeschützt wird, kann Unraid den Herunterfahrstatus nicht aktualisieren, selbst wenn das %%array|array%% korrekt stoppt. Dies führt dazu, dass beim nächsten Start ein unsauberes Herunterfahren erkannt wird. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx new file mode 100644 index 0000000000..b8a3e1cd2e --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx @@ -0,0 +1,5 @@ +Unraid wartet während des Herunterfahrens auf alle offenen Terminal- oder SSH-Sitzungen. Wenn diese Sitzungen aktiv bleiben und der Shutdown-Timer abläuft, erfolgt ein erzwungenes Herunterfahren. + +:::tip +Das [Dynamix Stop Shell](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository) Plugin kann automatisch lange offene Bash- oder SSH-Sitzungen schließen und so für ein reibungsloses Herunterfahren sorgen. Seien Sie jedoch vorsichtig, wenn noch Schreibvorgänge auf das %%array|array%% ausgeführt werden. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx new file mode 100644 index 0000000000..4abd1d92dd --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx @@ -0,0 +1,5 @@ +Stromausfälle sind einer der Hauptgründe für unsaubere Abschaltungen. Schützen Sie Ihr System mit einer richtig konfigurierten USV, die Unraid automatisch herunterfahren kann, bevor der Akku leer ist. + +:::note +Unraid supports most UPS units using the %%apcupsd Protocol|apcupsd%% protocol (APC and CyberPower are usually compatible). If your UPS isn't supported, consider using the Network UPS Tools (NUT) plugin from Community Applications. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx new file mode 100644 index 0000000000..6349ff1602 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx @@ -0,0 +1,228 @@ +--- +sidebar_position: 3 +sidebar_label: Systemabstürze & Stabilität +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Systemabstürze & Stabilität + +Systemabstürze und Stabilitätsprobleme können schwer zu diagnostizieren und zu lösen sein. Sie entstehen oft durch Hardwareausfälle, Konfigurationsfehler oder Konflikte innerhalb der Software. Dieser Abschnitt führt Sie durch häufige Ursachen, Diagnoseschritte und bewährte Praktiken, um Ihren Unraid-Server stabil zu halten. + +--- + +## RAM-Probleme + +Speicherprobleme gehören zu den häufigsten Ursachen für Systeminstabilität und Datenkorruption. RAM kann im Laufe der Zeit abgenutzt werden, was zu unvorhersehbaren Fehlern führt, die oft schwer zu diagnostizieren sind. Dieser Abschnitt befasst sich damit, wie man speicherbezogene Stabilitätsprobleme identifiziert und löst. + +Häufige Symptome von RAM-Problemen sind: + +- Unerklärliche Systemabstürze oder -einfrierungen +- Datenkorruption in Dateien oder %%array|array%% +- Zufällige Anwendungsfehler +- Systeminstabilität unter Last +- Fehlgeschlagene %%parity checks|parity-check%% + +### RAM-Test + +Speichertests sind unerlässlich zur Diagnose von Stabilitätsproblemen. Das Unraid-Boot-Menü enthält Memtest86+ für umfassende RAM-Tests, die sowohl auf Legacy- als auch auf %%UEFI|uefi%%-Systemen funktionieren. + +Um Ihr RAM zu testen: + +1. Starten Sie Ihren Server neu und wählen Sie **Memtest86+** aus dem Startmenü. +2. Lassen Sie den Test mindestens 2-4 Stunden laufen, um eine gründliche Abdeckung zu gewährleisten. +3. Beobachten Sie, ob Fehlermeldungen oder fehlgeschlagene Tests auftreten. + +:::note[Other RAM-Testwerkzeuge] +- [**MemTest86+**](https://www.memtest.org/): Open-Source-Tool in Unraid enthalten +- [**MemTest86**](https://www.memtest86.com/): Kommerzielles Tool mit Unterstützung für moderne Hardware +- [**Karhu RAM Test**](https://www.karhusoftware.com/): Ein kostenpflichtiges, aber äußerst effektives Windows-basiertes Tool, das Fehler schneller als traditionelle Methoden erkennt, mit Erkennungsraten von 95,67% innerhalb von 30 Minuten (ideal für DDR5-Systeme). +- [**HCI MemTest**](https://hcidesign.com/memtest/): Beliebtes, kostenloses Windows-basiertes Testprogramm +- [**Prime95**](https://prime95.net/): Validiert RAM- und CPU-Stabilität gleichzeitig +::: + +:::important[If Sie finden RAM-Fehler] +Wenn Memtest86+ Fehler anzeigt, versuchen Sie, die RAM-Module neu einzusetzen und den Test erneut durchzuführen. Testen Sie jeden RAM-Riegel einzeln, um fehlerhafte Module zu identifizieren. Lesen Sie in der Dokumentation Ihres Mainboards nach, um unterstützte RAM-Geschwindigkeiten und -konfigurationen zu finden und vermeiden Sie es, unterschiedliche RAM-Marken oder -Geschwindigkeiten zu mischen, um Kompatibilitätsprobleme zu minimieren. +::: + +### RAM-Übertaktung + +RAM-Übertaktung kann die Systemstabilität erheblich beeinträchtigen. Viele Nutzer möchten ihr RAM mit der vom Hersteller angegebenen Höchstgeschwindigkeit betreiben, jedoch haben Kombinationen aus Mainboard und CPU oft niedrigere, aber dennoch maximal zuverlässige RAM-Geschwindigkeiten, als das was für den RAM angegeben ist. + +:::caution[RAM Übertaktungsrisiken und Empfehlungen] +**Einkauf:** Wenn möglich, kaufen Sie immer RAM, das in der QVL (Qualified Vendor List) Ihres Mainboards aufgeführt ist und nicht in der QVL des RAM-Herstellers. Dies gewährleistet eine bessere Kompatibilität und Stabilität. + +**Intel XMP und AMD AMP Profile sind Übertaktungen.** Für die beste Stabilität sollten Sie RAM immer mit SPD-Geschwindigkeiten betreiben, nicht mit XMP/AMP-Geschwindigkeiten. + +**Risiken der Übertaktung:** + +- Systeminstabilität und zufällige Abstürze +- Datenkorruption und Dateisystemfehler +- Verkürzte Hardware-Lebensdauer +- Inkompatibilität mit anderen Komponenten + +**Fehlerbehebung:** Wenn Memtest86+ bestanden wird, Sie aber immer noch Probleme haben, deaktivieren Sie XMP/AMP und versuchen Sie es erneut. Der Leistungsunterschied ist in der Regel minimal, jedoch kann die Stabilitätsverbesserung erheblich sein. +::: + +

Best Practices

+ +1. Überprüfen Sie immer die Spezifikationen Ihrer Hauptplatine und CPU, bevor Sie einen Übertaktungsversuch unternehmen. +2. **Für maximale Stabilität:** Deaktivieren Sie XMP/AMP-Profile und betreiben Sie RAM mit den Standard-SPD-Geschwindigkeiten. +3. Beginnen Sie mit konservativen Einstellungen und erhöhen Sie diese schrittweise. +4. Testen Sie die Stabilität mit Memtest86+ nach Änderungen. +5. Wenn Sie Instabilität bemerken, setzten Sie sofort auf Standard- oder niedrigere Geschwindigkeiten zurück. +6. Berücksichtigen Sie den Kompromiss zwischen Leistung und Stabilität in Serverumgebungen. + +## Kritische Stabilitätsfaktoren + +Die Systemstabilität hängt von mehr ab als nur der RAM- oder CPU-Leistung. Mehrere Hardware- und Softwarekomponenten arbeiten zusammen, um einen zuverlässigen Betrieb zu gewährleisten. Dieser Abschnitt deckt die Schlüsselbereiche ab, die die Stabilität Ihres Unraid-Servers beeinflussen, und bietet praktische Schritte, um Probleme zu verhindern und zu lösen. + +Systemstabilität hängt typischerweise von folgenden Faktoren ab: + +- Netzteilqualität und -zuverlässigkeit +- Angemessenes Thermomanagement +- Festplattengesundheit und I/O-Leistung +- Plugin- und Anwendungs-Kompatibilität +- Aktuelle Firmware- und BIOS-Versionen +- Proaktives Monitoring und Wartung + +### Netzteilzuverlässigkeit + +
+ Klicken zum Erweitern/Reduzieren + + Eine stabile und ausreichende Stromversorgung ist entscheidend für einen ununterbrochenen Serverbetrieb. Stromprobleme werden oft übersehen, können aber die frustrierendsten Stabilitätsprobleme verursachen. + + Häufige strombezogene Probleme sind: + + - Zufällige Systemabstürze oder Einfrierungen + - Datenkorruption während des Schreibens + - Plötzliche Abschaltungen ohne Vorwarnung + - Ausfälle von Hardwarekomponenten + - Inkonsistente Leistung + +

Prävention und Wartung

+ + Proaktive Wartung der Stromversorgung verhindert die häufigsten Stabilitätsprobleme. Regelmäßige Kontrollen und die Auswahl geeigneter Komponenten können teure Ausfallzeiten und Datenverluste vermeiden. + + 1. Verwenden Sie immer ein hochwertiges, angemessen bewertetes Netzteil für Ihre Hardware. + 2. **Wichtig:** Stellen Sie sicher, dass Ihr Netzteil das gleichzeitige Hochfahren ALLER angeschlossenen Speichergeräte bewältigen kann. Die Stromstärke der 12V-Schiene muss den Hochlaufstrom aller Laufwerke gleichzeitig berücksichtigen, nicht nacheinander. + 3. Vermeiden Sie nach Möglichkeit Stromverteiler. Sie können Spannungsabfälle und Instabilität verursachen, besonders während Hochlastereignissen, wie das Hochfahren von Laufwerken. + 4. Erwägen Sie redundante Netzteile für Enterprise- und Multi-Bay-Systeme. + 5. Stellen Sie sicher, dass jede PSU-Einheit korrekt angebracht und verbunden ist. + 6. Überwachen Sie PSU-Gesundheitsindikatoren (wie AC OK LEDs), wenn verfügbar. + 7. Ersetzten Sie ausgefallene Einheiten sofort, um Ausfallzeiten zu vermeiden. + 8. Überprüfen Sie regelmäßig, dass alle Stromkabel sicher sind. + 9. Vergewissern Sie sich, dass Schaltkreise nicht überlastet sind. +
+ +### Thermomanagement und Überhitzung + +
+ Klicken zum Erweitern/Reduzieren + + Überhitzung ist eine der Hauptursachen für Hardwareausfälle und unberechenbares Serververhalten. Thermische Probleme können dazu führen, dass Komponenten die Leistung drosseln oder vollständig versagen. + + Anzeichen für thermische Probleme sind: + + - Systemdrosselung oder reduzierte Leistung + - Zufällige Abstürze bei hoher Belastung + - Lüftergeräusche oder ungewöhnliches Kühlverhalten + - Ausfälle von Hardwarekomponenten + - Inkonsistentes Systemverhalten + +

Kühllösungen und bewährte Praktiken

+ + Eine ordnungsgemäße Kühlung ist entscheidend, um die Systemstabilität aufrechtzuerhalten und thermisches Drosseln zu verhindern. Diese Praktiken helfen sicherzustellen, dass Ihr Server innerhalb sicherer Temperaturbereiche arbeitet. + + 1. Stellen Sie sicher, dass Ihr Server an einem gut belüfteten Ort steht. + 2. Halten Sie kontrollierte Umgebungstemperaturen aufrecht (idealerweise 18-24°C/64-75°F). + 3. Nutzen Sie angemessene Kühllösungen (hochwertige Lüfter, Rack-Montage Klimaanlagen). + 4. Überwachen Sie die Systemtemperaturen mit Hardwaresensoren. + 5. Reinigen Sie regelmäßig Staub und Schmutz von Kühlelementen. + 6. Vermeiden Sie es, Server in engen oder schlecht belüfteten Räumen zu platzieren. + 7. Erwägen Sie zusätzliche Kühlung für Hochleistungssysteme. + + Proaktives Temperaturmonitoring hilft, Kühlungsprobleme zu identifizieren, bevor sie zur Systeminstabilität führen. Verwenden Sie die in Unraid integrierten Temperatursensoren oder Hardware-Monitoring-Tools, die mit Ihrem System kompatibel sind. +
+ +### Festplattengesundheit und I/O-Fehler + +
+ Klicken zum Erweitern/Reduzieren + + Festplattenfehler, sei es durch alternde Festplatten oder plötzliche Ausfälle, können die Systemstabilität stören und Daten gefährden. E/A-Probleme äußern sich häufig zuerst als Leistungsprobleme, bevor sie vollständige Ausfälle verursachen. + + Symptome von Festplattenproblemen sind: + + - Hohe Serverauslastung oder langsame Leistung + - Fehlgeschlagene %%parity checks|parity-check%% + - Datenkorruption oder Lese-/Schreibfehler + - Ungewöhnliche Festplattenaktivität oder -geräusche + - Systemabstürze während Festplattenoperationen + +

Präventive Wartung

+ + Regelmäßige Wartung hilft, Festplattenprobleme zu erkennen, bevor sie zu Datenverlust oder Systeminstabilität führen. Diese proaktiven Schritte können die Lebensdauer der Festplatten erheblich verlängern und die Leistung aufrechterhalten. + + 1. Regularly monitor drive %%SMART|smart%% data using Unraid's built-in [disk health tools](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx). + 2. Führen Sie regelmäßige [%%parity checks|parity-check%%s](../../using-unraid-to/manage-storage/array-configuration.mdx#parity--read-checks) durch, um die Datenintegrität sicherzustellen. + 3. Überwachen Sie Festplattentemperaturen und Leistungskennzahlen. + 4. Halten Sie die Laufwerke richtig belüftet und gekühlt. + +

Wenn Probleme auftreten

+ + Eine schnelle Reaktion auf Festplattenprobleme kann Datenverlust verhindern und Ausfallzeiten minimieren. Befolgen Sie diese Schritte systematisch, um Probleme zu identifizieren und zu lösen. + + 1. Ersetzen Sie fehlerhafte Laufwerke umgehend, um Datenverlust zu vermeiden. + 2. Untersuchen Sie die Verkabelung, die Stromversorgung und die Gesundheit der Laufwerkssteuerung. + 3. Überprüfen Sie auf lose Verbindungen oder beschädigte Kabel. + 4. Consider running extended %%SMART|smart%% tests for suspect drives. + 5. Überwachen Sie Systemprotokolle auf I/O-Fehlermuster. +
+ +### Anwendungs- und Plugin-Stabilität + +
+ Klicken zum Erweitern/Reduzieren + + Die Flexibilität von Unraid ergibt sich aus der Unterstützung von Plugins und Docker-Containern. Allerdings können Drittanbieter-Plugins Instabilität einführen, insbesondere wenn sie veraltet oder mit Ihrer aktuellen Unraid-Version nicht kompatibel sind. + + Beim Troubleshooting... + + - Verwenden Sie den [Sicherheitsmodus](../../using-unraid-to/customize-your-experience/plugins.mdx#troubleshooting-with-safe-mode), um Plugins vorübergehend zu deaktivieren und die Ursache von Problemen zu identifizieren. + - Bevorzugen Sie Docker-Container gegenüber Plugins für zusätzliche Funktionen, da Container eine bessere Isolation vom Kernbetriebssystem bieten und weniger wahrscheinlich systemweite Probleme verursachen. + - Aktualisieren oder entfernen Sie regelmäßig ungenutzte oder nicht unterstützte Plugins, um die Stabilität zu erhalten. +
+ +### Firmware- und BIOS-Updates + +
+ Klicken zum Erweitern/Reduzieren + + Veraltete Firmware oder ein veraltetes BIOS können zu Instabilität, Sicherheitsanfälligkeiten und Hardwarekompatibilitätsproblemen führen. Regelmäßige Updates sind entscheidend für die Aufrechterhaltung der Systemstabilität und -sicherheit. + + - Planen Sie regelmäßige Überprüfungen von Firmware- und BIOS-Updates für Ihr Motherboard und kritische Komponenten ein. + - Sichern Sie immer Ihre Konfiguration vor Updates und testen Sie, wenn möglich, Updates in einer kontrollierten Umgebung. + - Dokumentieren Sie Ihren Aktualisierungsprozess und überprüfen Sie ihn regelmäßig, um sicherzustellen, dass Sie den besten Verfahren folgen. + + Das Aktualisieren der Systemfirmware hilft, unerwartete Abstürze zu vermeiden und neue Hardwarefunktionen freizuschalten. + + :::tip[Empfehlungen] + - Verwenden Sie Herstellerwerkzeuge für risikofreie Updates, wie z. B. [ASUS Armoury Crate](https://www.asus.com/supportonly/armoury%20crate/helpdesk_download/), [Gigabyte @BIOS](https://www.gigabyte.com/Support/Consumer/Download) oder [MSI Center](https://www.msi.com/Landing/MSI-Center). + - Überprüfen Sie die BIOS-Einstellungen Ihres Motherboards auf Optionen für automatische Updates, falls verfügbar. + ::: +
+ +### Proaktives Systemmonitoring + +
+ Klicken zum Erweitern/Reduzieren + + Konsequentes Monitoring ist entscheidend für die frühzeitige Erkennung von Problemen. + + - Aktivieren Sie [persistente Protokollierung](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx) in Unraid, um Protokolle über Neustarts hinweg zu behalten. + - Nutzen Sie Systemüberwachungs-Tools, um Temperaturen, Spannungen und Laufwerkszustände zu verfolgen. Richten Sie Alarme für kritische Schwellenwerte ein, um Maßnahmen zu ergreifen, bevor kleinere Probleme eskalieren. + - Durch regelmäßige Überprüfung der Systemprotokolle können Sie Muster erkennen und zugrunde liegende Ursachen ansprechen, bevor sie zu Ausfallzeiten führen. +
diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx new file mode 100644 index 0000000000..f948e5a6b8 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx @@ -0,0 +1,150 @@ +--- +sidebar_position: 2 +sidebar_label: Unbereinigt heruntergefahrene Systeme +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import UncleanShutdownsPower from './partials/unclean-shutdowns/unexpected-power-loss.mdx'; +import UncleanShutdownsFlash from './partials/unclean-shutdowns/flash-drive-failure.mdx'; +import UncleanShutdownsTerminal from './partials/unclean-shutdowns/open-terminal-sessions.mdx'; + +# Unbereinigt heruntergefahrene Systeme + +An unclean shutdown happens when Unraid detects that the %%array|array%% was not properly stopped before the system powered off. This situation can trigger an automatic %%parity check|parity-check%% during the next boot to ensure data integrity. + +:::important[Recommendations um unsaubere Abschaltungen zu verhindern] +Durch einige proaktive Maßnahmen können Sie unbereinigte Herunterfahrten vermeiden oder erkennen: + +- **Verwenden Sie eine USV:** Halten Sie Ihren Server mit einer unterbrechungsfreien Stromversorgung (USV) verbunden und richten Sie diese ein, um einen kontrollierten Shutdown einzuleiten, wenn der Batteriestrom niedrig wird. +- **Versuchen Sie ein geordnetes Herunterfahren:** Wenn Ihr Server nicht reagiert, drücken Sie kurz den Netzschalter, um ein sicheres Herunterfahren zu initiieren. Halten Sie den Knopf nicht gedrückt, da dies ein hartes Ausschalten erzwingt und zu einem nicht ordnungsgemäßen Herunterfahren führt. +- **Aktivieren Sie persistente Protokollierung:** Gehen Sie zu ***Settings → Syslog Server***, um die Protokollierung zu aktivieren, die nach einem Neustart bestehen bleibt. Weitere Details finden Sie unter [Persistente Protokolle (Syslog-Server)](../diagnostics/capture-diagnostics-and-logs.mdx#persistent-logs-syslog-server). +- **Diagnosen für den Support anhängen:** Wenn ein unsauberer Shutdown auftritt, versucht Unraid, Diagnosen unter `/log/diagnostics.zip` auf Ihrem Flash-Gerät zu speichern. Hängen Sie diese Datei an Forumsbeiträge an, wenn Sie Unterstützung suchen. +::: + +:::tip[UPS beste Konfigurationspraktiken] +Eine gut konfigurierte USV ist Ihre beste Verteidigung gegen unbereinigte Herunterfahrten, die durch Stromausfall verursacht werden. + +- **Verbinden Sie die USV über USB** mit Ihrem Unraid-Server. +- **Aktivieren Sie die USV-Unterstützung** unter ***Einstellungen → USV-Einstellungen***. +- **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-configuration.mdx#startstop-the-array) and power down safely. +- **Testen Sie Ihre Konfiguration:** Simulieren Sie einen Stromausfall, um sicherzustellen, dass die USV und Unraid korrekt reagieren. + +Schauen Sie sich das [NUT Plugin](https://unraid.net/community/apps/c/plugins/p4?srsltid=AfmBOop675PrJQW4iqb4JBN3GyPpwDDiSmnZReq78t27XyxkFdMX8inO#:~:text=NUT%20%2D%20Network%20UPS%20Tools) für eine bessere Kompatibilität mit fortschrittlicheren USV-Modellen oder nicht unterstützter Hardware an. +::: + +## Ereignisse, die unbereinigte Herunterfahrten verursachen + +Das Verständnis der Hauptauslöser für nicht ordnungsgemäßes Herunterfahren hilft Ihnen, diese zu verhindern. Erkunden Sie die untenstehenden Tabs für Details zu jedem Szenario. + + + + + + + + + + + + + + + +--- + +## Konfigurierung der Shutdown-Timeouts + +Properly configuring shutdown timeouts is essential to ensure your Unraid server can stop all services effectively, preventing unclean shutdowns, particularly during power loss or maintenance. Each component of your system - %%VM|vm%%s, Docker containers, and the overall %%array|array%% - has its own timeout setting that can be adjusted. + +### Empfohlene Timeout-Einstellungen + +| Einstellung | Standard | Empfohlene Mindestdauer | Wo einstellen | +| -------------------------------------------- | -------- | ----------------------------------------------------------------------- | --------------------------------------------------------------- | +| %%VM\|vm%% Herunterfahren-Zeitüberschreitung | 60s | 300s (5 Min) | ***Einstellungen → VM-Manager → VM-Shutdown (Erweitert)*** | +| Docker-Container-Stop-Timeout | 10s | 30–60s | ***Einstellungen → Docker (Erweitert)*** | +| Allgemeiner Shutdown-Timeout | 90s | 3 × %%VM\|vm%% Zeitüberschreitung + Docker-Zeitüberschreitung + 15–30 s | ***Einstellungen → Laufwerkseinstellungen → Shutdown-Timeout*** | + +### Timeout für virtuelle Maschinen + +
+ Klicken zum Erweitern/Reduzieren + + Unraid fährt zuerst alle konfigurierten virtuellen Maschinen (%%VMs|vm%%) herunter, bevor es Docker-Container oder das %%array|array%% selbst stoppt. Die VM-Shutdown-Zeitüberschreitung bestimmt, wie lange Unraid auf das ordnungsgemäße Herunterfahren jeder %%VM|vm%% wartet. + +

Wo festlegen

+ + - ***Einstellungen → VM-Manager → VM-Shutdown*** (erweiterte Ansicht aktivieren) + +

Betrachten

+ + - Windows-%%VMs|vm%% können mehr Zeit zum Herunterfahren benötigen, insbesondere wenn Updates anstehen oder die %%VM|vm%% im Schlaf-/Ruhezustand ist. + - Wenn das Timeout zu kurz ist, werden %%VMs|vm%% zwangsweise gestoppt, was zu Datenverlust oder Beschädigung führen kann. + +

Best Practice

+ + Stellen Sie die Zeitüberschreitung auf mindestens 300 Sekunden (5 Minuten) für Windows-%%VMs|vm%%. Planen Sie Updates so, dass sie beim Start und nicht beim Herunterfahren ausgeführt werden, um Verzögerungen zu vermeiden. +
+ +### Docker-Container-Timeout + +
+ Klicken zum Erweitern/Reduzieren + + Nach den %%VMs|vm%% stoppt Unraid alle laufenden Docker-Container. Der Docker-Container-Stop-Timeout steuert, wie lange Unraid auf das ordnungsgemäße Beenden jedes Containers wartet. + +

Wo festlegen

+ + - ***Einstellungen → Docker*** (erweiterte Ansicht aktivieren) + +

Betrachten

+ + - Container werden parallel gestoppt. + - Komplexe Container oder solche mit großen Datenbanken benötigen möglicherweise mehr als die voreingestellten 10 Sekunden, um sicher herunterzufahren. + - Wenn der Timer abläuft, werden Container erzwungenermaßen gestoppt. + +

Best Practice

+ Erhöhen Sie das Timeout auf 30–60 Sekunden, wenn Sie Docker-Container betreiben, die zusätzliche Shutdown-Zeit benötigen. +
+ +### Allgemeiner Shutdown-Timer + +
+ Klicken zum Erweitern/Reduzieren + + Der allgemeine Herunterfahr-Timeout ist die maximale Zeit, die Unraid für alle Herunterfahrprozesse - %%VM|vm%%s, Docker und Festplattenvorgänge - gewährt, bevor ein erzwungenes Herunterfahren durchgeführt wird. + +

Wo festlegen

+ + - ***Einstellungen → Laufwerkseinstellungen → Shutdown-Timeout*** + +

Wie berechnen

+ + Addieren Sie Ihre %%VM-%% und Docker-Timeouts, dann 15–30 Sekunden für das Unmounten von Laufwerken und andere Prozesse. + + - Beispiel: `3 × ***VM-Shutdown-Timeout*** + ***Docker-Stop-Timeout*** + 15–30 Sekunden` + +

Beste Praxis

+ Stellen Sie diesen Timer hoch genug ein, um Ihr langsamstes Herunterszenario abzudecken, insbesondere wenn Sie viele Laufwerke oder ein großes %%array|array%% haben. +
+ +### USV-Batterielebensdauer + +
+ Klicken zum Erweitern/Reduzieren + + Ihre USV muss genügend Laufzeit bieten, um alle Shutdown-Timer ablaufen zu lassen, bevor der Server keinen Strom mehr hat. + +

Wo festlegen

+ + - ***Einstellungen → USV-Einstellungen*** (siehe **Verbleibende Laufzeit** mit allen Laufwerken im Betrieb) + +

Betrachten

+ + - Die USV sollte einen Shutdown früh genug auslösen, um die vollständige Shutdown-Abfolge abzuschließen. + - Wenn der Akku leer ist, bevor der Shutdown abgeschlossen ist, besteht das Risiko eines unbereinigten Herunterfahrens und möglicher Datenverluste. + +

Best Practice

+ + Testen Sie Ihre USV, indem Sie einen Stromausfall simulieren und bestätigen, dass Unraid mit genügend Zeit sauber herunterfährt. +
diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json new file mode 100644 index 0000000000..34a36e1809 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Diagnose", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx new file mode 100644 index 0000000000..4ef6ccfe60 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx @@ -0,0 +1,190 @@ +--- +sidebar_position: 1 +sidebar_label: Erfassen von Diagnosedaten und Protokollen +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import SyslogMirror from './partials/syslog-server/mirror.mdx'; +import SyslogRemote from './partials/syslog-server/remote.mdx'; +import SyslogLocal from './partials/syslog-server/local.mdx'; +import DockerLogsViaWebGUI from './partials/docker-logs/via-webgui.mdx'; +import DockerLogsCommandLine from './partials/docker-logs/command-line.mdx'; +import DockerLogsPersistent from './partials/docker-logs/persistent.mdx'; + +# Erfassung von Diagnoseinformationen + +Wenn es Probleme mit Ihrem Unraid-Server gibt, ist das Sammeln detaillierter Informationen entscheidend für eine effektive Problemlösung. Diese Informationen helfen anderen, genaue und zeitnahe Unterstützung bereitzustellen, insbesondere wenn Sie in Foren posten. + +:::info[Diagnostics Einschließen...] +Die Diagnosedatei im ZIP-Format enthält mehrere anonymisierte Textdateien, die eine detaillierte Momentaufnahme Ihres Unraid-Systems erstellen, einschließlich: + +- **Systemkonfiguration**: Informationen über Ihre %%array|array%%, Freigaben, Netzwerkeinstellungen und installierte Plugins. +- **Systemprotokolle**: Protokolle vom Kernel, WebGUI und von Systemdiensten, die Ereignisse dokumentieren, die zur Problematik geführt haben könnten. +- **Hardwareinformationen**: Details zu angeschlossenen Laufwerken, Controllern und anderen Hardwarekomponenten. +- **Docker- und %%VM|VM%%-Infos**: Gesamtkonfiguration für Docker und virtuelle Maschinen (keine Informationen zu Ihren individuellen Containern oder %%VMs|VMs%% enthalten). +::: + +--- + +## Systemdiagnostik + +Unraid bietet ein **Diagnosetool**, das unter ***Tools → Diagnostik*** im %%WebGUI|web-gui%% zu finden ist, um umfassende Systeminformationen für die Fehlersuche zu erfassen. Dieses Tool erstellt eine Zip-Datei, die Sie herunterladen und an Forenbeiträge anhängen können, um Unterstützung zu erhalten. Alle Diagnoseprotokolle sind textbasiert, und Benutzer können diese überprüfen, um zu verstehen, welche Informationen enthalten sind. + +| Szenario | Wie erfassen | Anmerkungen | +| ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| %%WebGUI\|Web-GUI%% verfügbar | Verwenden Sie ***Tools → Diagnosen*** im **%%WebGUI\|Web-GUI%%**, um die Diagnosedatei im ZIP-Format zu erstellen und herunterzuladen. | Diagnosedaten werden standardmäßig anonymisiert, um sensible Daten zu schützen. | +| %%WebGUI\|Web-GUI%% nicht verfügbar | Zugriff über **%%SSH\|ssh%%**, telnet oder direkte Konsole, um den `diagnostics` Befehl auszuführen. Die ZIP-Datei wird unter `/boot/logs` gespeichert. | Erfassen Sie die Diagnosedaten immer vor dem Neustart, um die Protokolle intakt zu halten. | +| %%Array%% im Normalmodus gestartet | Dies ist die bevorzugte Methode zur Erfassung von Diagnosedaten, da sie die vollständigsten Informationen bereitstellt, insbesondere in Bezug auf den Status der Laufwerke. | Wenn dies nicht möglich ist, sehen Sie im Abschnitt [Persistente Logs](#persistent-logs-syslog-server) für alternative Erfassungsmethoden nach. | + +
+ ![Logik der Laufwerksauswahl](/img/Diagnostics.jpg) +
+ +:::important +Hängen Sie die einzelne Diagnosedatei im ZIP-Format an, wenn Sie Beiträge in Foren posten. Vermeiden Sie das Hochladen der extrahierten Dateien einzeln. +::: + +### Anonymisierung von Diagnosedaten + +By default, diagnostics are automatically anonymized. If you enable %%Mover|mover%% logging under ***Settings → Scheduler → Mover Settings***, the %%syslog|syslog%% will include details about files the %%Mover|mover%% processes. It's best to allow %%Mover|mover%% logging only when troubleshooting specific %%Mover|mover%%-related issues, as it may reveal file paths and names. + +When your system shuts down gracefully, the session log is saved automatically to the flash drive. You can access it after rebooting by going to ***Tools → Syslog → syslog-previous***. This log is also included in diagnostics on the next boot. However, if the system crashes, the system log will be lost. In these cases, enabling %%syslog|syslog%% mirroring to the flash or using a remote %%syslog server|syslog-server%% is recommended to preserve logs for troubleshooting. + +--- + +## Ermittlung der Lesegeschwindigkeit von Festplatten + +You can use built-in Linux tools to evaluate the read performance of your hard drives. This is helpful when diagnosing slow %%parity|parity%% syncs, sluggish disk responses, or mismatched speeds among drives in an %%array|array%% or %%cache|cache%%. + +:::important[When und warum Testgeschwindigkeit wichtig ist] +Überlegen Sie sich, Disk-Read-Benchmarks auszuführen, wenn Sie feststellen: + +- Extremely slow %%parity|parity%% builds or %%parity check|parity-check%%s +- Verdächtig langsame Dateiübertragungen von einer bestimmten Festplatte +- Unstimmigkeiten nach dem Hinzufügen oder Ersetzen von Festplatten, insbesondere bei der Mischung von SSDs und HDDs +- Reallozierte Sektoren oder %%UDMA|udma%% %%CRC-Fehler|crc-errors%%, die möglicherweise auf fehlerhafte Laufwerke hinweisen + +Obwohl diese Tests Ihnen keine exakten Übertragungsgeschwindigkeiten in realen Bedingungen liefern, können sie auf unterperformende Festplatten und Controller-Engpässe hinweisen. +::: + +### Schnelltest (hdparm) + +Das `hdparm`-Tool misst sowohl die zwischengespeicherte als auch die gepufferte Lesegeschwindigkeit einer Festplatte. + +Um den Test durchzuführen, ersetzen Sie `X` durch Ihr Festplattengerät (z. B. `sdb` oder `sdg`) und geben Sie den folgenden Befehl ein: + +``` +hdparm -tT /dev/sdX +``` + +- Das `-T`-Ergebnis zeigt die Cache-Lesegeschwindigkeit. +- Das `-t`-Ergebnis zeigt die gepufferte (sequenzielle) Festplattenleseleistung. + +:::tip +Führen Sie diesen Test mehrfach durch, um eine zuverlässigere Benchmark zu erhalten. Zum Beispiel können Sie den folgenden Einzeiler verwenden, um den Test 12-mal auszuführen: + +``` +for ((i=0;i<12;i++)); do hdparm -tT /dev/sdX; done +``` +::: + +:::note +Make sure to replace `/dev/sdX` with a valid physical device. Avoid logical Unraid devices, such as `/dev/md1`, which include %%parity|parity%% processes that may distort the raw performance readings. +::: + +### Umfassender Test (diskspeed.sh) + +Für eine detailliertere Bewertung aller angeschlossenen Laufwerke, einschließlich %%parity|parity%%- und Datenträger, sollten Sie das Community-Skript `diskspeed.sh` verwenden. + +Dieses Skript: + +- Testet Lesegeschwindigkeiten an mehreren linearen Offsets auf der Festplattenoberfläche +- Generiert CSV-Daten und Leistungs-Heatmaps (Bilder) +- Kann Bereiche schlechter Leistung identifizieren, was ein Zeichen für fehlerhafte Hardware oder problematische SMR-Festplatten sein könnte + +So beginnen Sie mit `diskspeed.sh`: + +1. Laden Sie das Skript von den [Unraid-Foren](https://forums.unraid.net/topic/31073-disk-speed-test-graphs-disk-bottlenecks-identified-see-how-fast-your-disks-can-really-go/) herunter. +2. Platzieren Sie es in einem persistenten Pfad wie `/boot/scripts/`. +3. Machen Sie es ausführbar: + +``` +chmod +x /boot/scripts/diskspeed.sh +``` + +4. Führen Sie das Skript aus: + +``` +bash /boot/scripts/diskspeed.sh +``` + +:::note +This script only performs read-only operations and won't modify any data on your drives. However, it's best to schedule the test during idle periods, as it may affect disk I/O and interfere with %%array|array%% performance. +::: + +--- + +## Persistente Protokolle (Syslog-Server) + +Persistente Protokolle sind wichtig, um Systemereignisse zwischen Neustarts aufzuzeichnen. Im Gegensatz zu Standardprotokollen, die beim Neustart des Systems zurückgesetzt werden, verwenden persistente Protokolle den integrierten %%syslog-server|syslog-server%% von Unraid, um sicherzustellen, dass Sie Abstürze oder intermittierende Probleme, die im Laufe der Zeit auftreten, diagnostizieren können. + +### Auswahl der richtigen Protokollierungsmethode + +Gehen Sie zu ***Einstellungen → Syslog-Server***, um persistente Protokollierung einzurichten. Jede Methode hat Vor- und Nachteile: + +| Methode | Vorteile | Nachteile | Am besten geeignet für | +| ------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------ | --------------------------------------------------- | +| **Spiegeln auf Flash** | Erfassen der Ereignisse beim Bootvorgang | Kann das Flash-Laufwerk schnell abnutzen | Kurzzeitdiagnostik (einige Tage) | +| **Remote %%syslog\|Syslog%%** | Protokolle werden auf einem anderen Gerät gespeichert | Benötigt einen separaten, immer eingeschalteten Server | Langzeitüberwachung (Wochen bis Monate) | +| **Lokales %%syslog\|syslog%%** | Keeps logs on the %%array\|array%% or %%cache\|cache%%, reducing wear on flash | Weniger zugänglich bei einem Systemabsturz | Kontinuierliche Protokollierung ohne externe Geräte | + +:::tip +Für detaillierte Konfigurationshilfe, schauen Sie sich das **Hilfesymbol** in der WebGUI-Werkzeugleiste an. +::: + +### Aktivieren des Syslog-Servers + + + + + + + + + + + + + + + +--- + +## Zugriff auf Docker-Container-Protokolle + +Während Standarddiagnosen nur begrenzte Daten für Docker und %%VM|vm%% bereitstellen, können Sie Container-Protokolle direkt abrufen, um detailliertere Fehlerbehebungen durchzuführen. + +So rufen Sie Docker-Protokolle ab: + + + + + + + + + + + + + + + +### Protokolle für virtuelle Maschinen + +%%VM%%-Protokolle können über ihre jeweiligen Hypervisors abgerufen werden (zum Beispiel befinden sich %%QEMU%%-Protokolle unter `/var/log/libvirt/`). Lesen Sie in der Dokumentation Ihrer %%VM%%-Plattform nach weiteren Details. + +:::important +Denken Sie daran, die relevanten Container- oder %%VM|vm%%-Protokolle separat beizufügen, wenn Sie Unterstützung für anwendungsspezifische Probleme suchen. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx new file mode 100644 index 0000000000..3fbb0e52bb --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx @@ -0,0 +1,5 @@ +Verwenden Sie den Befehl: + +```bash +docker logs [container_name] > /path/to/save/log.txt +``` diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx new file mode 100644 index 0000000000..487b0c7040 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx @@ -0,0 +1,5 @@ +Um Container-Protokolle einem Host-Pfad zuzuordnen, konfigurieren Sie Ihre Container-Vorlage so: + +``` +/path/in/container:/logs +``` diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx new file mode 100644 index 0000000000..de753c4f78 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx @@ -0,0 +1,2 @@ +- Navigieren Sie zu ***Docker > Container*** +- Klicken Sie auf das **Logs**-Symbol für den gewünschten Container diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx new file mode 100644 index 0000000000..2fd176beb4 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx @@ -0,0 +1,15 @@ +Um eine persistente, zuverlässige Kopie Ihres Unraid-%%syslog|syslog%% auf Ihrem Server zu erstellen: + +1. Setzen Sie **Lokalen Syslog-Server** auf *Aktiviert*. +2. Konfigurieren Sie die folgenden Optionen: + - **Lokaler %%syslog|syslog%% Ordner**: Verwenden Sie einen Cache-only oder bevorzugten Share (am besten für SSDs). + - **Rotierungseinstellungen**: Passen Sie die Dateigrößen- und Mengenlimits an. +3. For best results and to ensure all %%syslog|syslog%% data (including boot events) is captured, set the **Remote %%syslog server|syslog-server%%** field to your server's own IP address (the "Loopback method"), or the %%syslog|syslog%% will not be saved to the set share. + - This ensures %%syslog|syslog%% events are both stored locally and persist across reboots, without writing to the flash drive. +4. Klicken Sie auf **Übernehmen**. + - Protokolle werden im von Ihnen angegebenen Freigabeordner gespeichert. + +:::note +- Wenn Sie Dateien vom lokalen %%syslog-Server|syslog-server%% ins Forum hochladen, werden diese **nicht** anonymisiert. +- Protokolle, die mit dieser Methode gespeichert wurden, sind nicht in den standardmäßigen Diagnosen enthalten. Fügen Sie sie separat bei, wenn Sie Unterstützung benötigen. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx new file mode 100644 index 0000000000..aaf65f52c6 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx @@ -0,0 +1,15 @@ +1. Wählen Sie **Ja** unter **Spiegeln auf Flash**. +2. Klicken Sie auf **Anwenden**. Protokolle werden auf Ihrem USB-Stick in `/boot/logs/syslog` gespeichert. + +Beim nächsten Neustart wird diese Datei in `/boot/logs/syslog-previous` umbenannt. Sie können diese Datei über **Tools → Syslog → syslog-previous** anzeigen, und sie wird auch (anonymisiert) in die Diagnose aufgenommen. + +

Wie es funktioniert

+ +- Standardmäßig kopiert Unraid das %%syslog|syslog%% bei jedem ordnungsgemäßen Herunterfahren auf den USB-Stick. Dies wird durch die Einstellung "copiere %%syslog|syslog%% beim Herunterfahren auf USB-Stick" verwaltet, die standardmäßig aktiviert ist. +- Wenn Sie Abstürze beheben möchten, können Sie "Spiegeln auf USB-Stick" aktivieren. Dadurch wird das %%syslog|syslog%% sowohl in `/var/log/syslog` als auch in `/boot/logs/syslog` in Echtzeit geschrieben. Sollte ein Absturz passieren, werden alle %%syslog|syslog%% Einträge, die vor dem Absturz auf den USB-Stick geschrieben wurden, beibehalten. + +Beide Methoden führen dazu, dass nach dem nächsten Start eine `/boot/logs/syslog-previous` Datei erstellt wird, auf die Sie über den %%syslog|syslog%% Viewer zugreifen können und die in die Diagnose aufgenommen wird. + +:::caution +Die Einstellung **Kopiere %%syslog|syslog%% beim Herunterfahren auf den Flash** ist sicher für Ihr Flash-Laufwerk. Das Aktivieren von **Spiegeln auf Flash** kann jedoch zu übermäßigen Schreibvorgängen führen, wenn es über einen längeren Zeitraum eingeschaltet bleibt. Für langfristige Protokollierungsanforderungen sollten Sie stattdessen die Verwendung eines lokalen oder entfernten %%syslog-Server|syslog-server%% in Betracht ziehen. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx new file mode 100644 index 0000000000..6489e54218 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx @@ -0,0 +1,12 @@ +1. Setzen Sie **Lokalen Syslog-Server** auf *Aktiviert*. +2. Geben Sie unter **Remote syslog-Server** die IP-Adresse Ihres Syslog-Servers ein. +3. Klicken Sie auf **Übernehmen**. + - Protokolle werden an das von Ihnen angegebene Gerät gestreamt. + +
+ ![Konfiguration des Remote-Syslogs](/img/Syslog-server.jpg) +
+ +:::note +Wenn Sie Dateien von einem entfernten %%syslog-server|syslog-server%% ins Forum hochladen, werden diese **nicht** anonymisiert. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx new file mode 100644 index 0000000000..ec0b89a763 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx @@ -0,0 +1,142 @@ +--- +sidebar_position: 2 +sidebar_label: UDMA CRC-Fehler +--- + +# UDMA CRC-Fehler + +**%%UDMA|udma%% %%CRC-Fehler|crc-errors%%** ([%%SMART|smart%% Attribut 199](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx)) sind bei Unraid-Nutzern typisch und treten häufig in Berichten zur Laufwerksgesundheit auf. Für die meisten Benutzer weisen diese Fehler auf ein Kommunikationsproblem zwischen dem Laufwerk und dem Server hin, anstatt auf einen Ausfall des Laufwerks selbst. + +Tritt ein %%CRC-Fehler|crc-errors%% auf, erkennt das Laufwerk, dass Daten nicht korrekt vom Host empfangen wurden. Unraid versucht automatisch, die Daten erneut zu senden. Wenn das erneute Senden erfolgreich ist, wird der Vorgang wie gewohnt fortgesetzt, obwohl möglicherweise langsamere Schreibgeschwindigkeiten aufgrund der Wiederholungsversuche auftreten. Diese Ereignisse werden im %%syslog|syslog%% protokolliert. + +If recovery attempts fail after several retries, Unraid treats it as a read error. In %%parity|parity%%-protected %%arrays|array%%, Unraid will attempt to rewrite the affected sector using %%parity|parity%% and data from other drives. If this rewrite is successful, operation resumes; if not, the drive is disabled and marked with a red 'x' in the %%WebGUI|web-gui%%. + +
+ Was ist ein CRC-Fehler? (technische Erklärung) - Klicken zum Erweitern/Zusammenklappen + + A **%%cyclic redundancy check (CRC)|crc%%** is a mathematical checksum that detects accidental changes to raw data during transmission. In the context of %%UDMA|udma%% (ultra direct memory access), %%CRC errors|crc-errors%% mean the data sent between your drive and controller failed this integrity check. This usually indicates a physical communication issue - such as a loose or faulty cable - rather than a problem with the drive's platters or flash memory. +
+ +--- + +## Mögliche Ursachen für UDMA CRC-Fehler + +%UDMA CRC-Fehler|crc-errors%% weisen auf Übertragungsprobleme zwischen Ihren Laufwerken und dem System hin. Wenn sie nicht kontrolliert werden, können diese Fehler Datenkorruption, Leistungsprobleme und Laufwerksausfälle verursachen. Die Ursachen zu verstehen hilft Ihnen, gezielte Lösungen zu implementieren, anstatt auf Vermutungen zu setzen. + +

Häufige Ursachen zur Untersuchung

+ +- **Lose oder schlecht sitzende SATA-Kabel:** SATA-Stecker sind nicht sehr robust und können sich durch Vibration oder Kabelspannung leicht lösen. Vermeiden Sie enge Kabelbündelungen, da dies zu Übersprechen und Störungen führen kann. +- **Defekte SATA-Kabel:** Beschädigte oder minderwertige Kabel sind häufige Ursachen für %%CRC-Fehler|crc-errors%%. +- **Probleme bei der Stromversorgung:** Unzureichende oder instabile Stromversorgung, oft durch Splitterkabel oder ein überlastetes Netzteil, kann zu sporadischen Fehlern führen. +- **Nicht vollständig eingesetzter Festplatten-Controller:** Kommunikationsfehler können auftreten, wenn die Controller-Karte nicht vollständig in ihren Steckplatz eingesetzt ist. +- **Fehler in der Laufwerkshardware:** Auch wenn selten, kann ein ausfallendes Laufwerk ebenfalls CRC-Fehler erzeugen. +- **Kabelführungsprobleme:** + - **Bindestraps:** Wenn Binde-Straps zur Kabelverwaltung verwendet werden, halten Sie sie locker, nicht eng oder übermäßig fest. Ideal ist die Verwendung von Klettbändern. + - **Verlauf von Strom- und Datenkabeln:** Vermeiden Sie es, Stromkabel neben SATA-Datenkabeln zu verlegen. Wenn sie sich berühren oder sehr nahe beieinander liegen müssen, sollten sie sich im 90-Grad-Winkel kreuzen, um Störungen zu minimieren. + - **Biegen von SATA-Kabeln:** SATA-Kabel sollten niemals erzwungen werden, um 90-Grad-Biegungen zu machen. Dies kann das Kabel beschädigen und Kommunikationsprobleme verursachen. + +--- + +## Wiederherstellungsprozess + +Wenn Sie %%CRC-Fehler|crc-errors%% bemerken, ist der erste Schritt, die SATA- und Stromkabel zu Ihren Laufwerken sorgfältig zu überprüfen und neu zu verbinden. Ersetzen Sie alle Kabel, die beschädigt erscheinen oder nicht sicher sitzen. Wenn Fehler weiterhin bestehen, überprüfen Sie Ihre Stromversorgung und Controller-Anschlüsse und erwägen Sie das Austauschen von Kabeln oder Ports, um das Problem einzugrenzen. + +Wenn %%CRC-Fehler|crc-errors%% nach Behebung von Verkabelungs- und Stromproblemen weiterhin auftreten, sind weitere Untersuchungen erforderlich, um einen ausfallenden Controller oder ein ausfallendes Laufwerk auszuschließen. + +--- + +## CRC-Fehlerindikatoren verstehen + +### Gelegentliche vs. häufige Fehler + +
+ Klicken zum Erweitern/Reduzieren + + Das Verständnis der Häufigkeit und das Muster von %%CRC-Fehlern|crc-errors%% hilft Ihnen, die Dringlichkeit Ihrer Antwort zu bestimmen. Nicht alle Fehler erfordern sofortige Maßnahmen, aber Muster können zugrunde liegende Probleme aufdecken, die Aufmerksamkeit erfordern. + +

Gelegentliche Fehler (niedrige Bedenken)

+ Einige %%CRC-Fehler|crc-errors%% über Wochen oder Monate hinweg sind normalerweise kein Grund zur Sorge. Diese isolierten Vorfälle können durch vorübergehende Stromschwankungen, Kabelbewegungen während der Wartung oder andere vorübergehende Probleme verursacht werden, die sich von selbst lösen. + +

Häufige Fehler (hohe Bedenken)

+ Tägliche oder wöchentliche %%CRC-Fehler|crc-errors%% oder schnell ansteigende Fehlerraten deuten auf ein anhaltendes Problem hin, das sofortige Untersuchung erfordert. Dieses Muster weist oft auf Hardwareprobleme wie lose Verbindungen, defekte Kabel oder Probleme mit der Stromversorgung hin, die sich mit der Zeit nur verschlimmern werden. + +

Wann man Maßnahmen ergreifen sollte

+ Untersuchen Sie sofort, wenn Fehler häufig sind oder zunehmen. Überprüfen Sie Ihre Verkabelung und Stromversorgung auf intermittierende Probleme und überwachen Sie die Fehlerraten, um sich verschlechternde Bedingungen zu erkennen. Ziehen Sie vorbeugende Wartungsmaßnahmen in Betracht, wenn Fehler bestehen bleiben, da diese Probleme sich selten von selbst lösen und zu schwerwiegenderen Ausfällen führen können. +
+ +### Anzahl der ausstehenden Sektoren + +
+ Klicken zum Erweitern/Reduzieren + + Der **Aktuelle anhängige Sektoranzahl** ([%%SMART|smart%% Attribut 197](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx)) ist ein kritischer Indikator, der oft neben %%CRC-Fehlern|crc-errors%% erscheint. Diese Kombination weist auf ein ernstes Problem hin, das sofortige Aufmerksamkeit und sorgfältige Überwachung erfordert. + + Anhängige Sektoren zeigen auf, dass die Festplattenbereiche möglicherweise beim Zugriff nicht lesbar sind. Dies sind Sektoren, die Lese-Fehler erfahren haben und nun vom Laufwerksfirmware als potenziell problematisch markiert wurden. Wenn anhängige Sektoren neben %%CRC-Fehlern|crc-errors%% auftreten, deutet dies darauf hin, dass Kommunikationsprobleme physische Schäden am Laufwerk verursachen, die Fähigkeit, Daten zuverlässig zu speichern und abzurufen, erschweren. + +

Warum diese Kombination gefährlich ist

+ %%CRC-Fehler|crc-errors%% deuten auf Kommunikationsprobleme zwischen Laufwerk und Controller hin, während anhängige Sektoren anzeigen, dass einige Bereiche der Festplatte unzuverlässig werden. Zusammen schaffen sie eine Hochrisikosituation, in der der Schutz Ihrer Daten gefährdet sein könnte. Wenn währenddessen ein weiteres Laufwerk ausfällt und dieses noch anhängige Sektoren hat, könnte Ihre Fähigkeit zur Datenwiederherstellung schwer beeinträchtigt werden, was die [Datenwiederherstellung](../../troubleshooting/common-issues/data-recovery.mdx) gefährden könnte. + + Wenn Sie diese Kombination sehen, sollten Sie: + + - **Sofort** alle wichtigen Daten sichern, die nicht bereits geschützt sind. + - Check the drive's health using extended %%SMART|smart%% tests, and consider drive replacement if pending sectors continue to increase. + - Beobachten Sie die Situation genau auf weitere Warnzeichen und seien Sie bereit, Ihr Array neu aufzubauen, wenn das Laufwerk unzuverlässig wird. +
+ +### Beständigkeit der CRC-Anzahl + +
+ Klicken zum Erweitern/Reduzieren + + Die Anzahl der %%CRC-Fehler|crc-errors%% in den [%%SMART|smart%% Daten](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx) Ihres Laufwerks wird nie zurückgesetzt - sie steigt nur an. + + Diese kumulative Natur bedeutet: + + - Die Anzahl repräsentiert die gesamten Fehler über die Lebensdauer des Laufwerks + - Überwachen Sie die Steigerungsrate, um sich verschlechternde Bedingungen zu identifizieren + - Sobald ein Fehler auftritt, wird er dauerhaft aufgezeichnet + - Verwenden Sie die Anzahl, um vorbeugende Wartung zu planen, bevor Probleme eskalieren + + Geraten Sie nicht in Panik, wenn Sie ein paar CRC-Fehler sehen, aber verfolgen Sie die Anstiegsrate. Ein plötzlicher Anstieg der Fehlerrate zeigt oft ein neues Problem an, das sofortige Aufmerksamkeit erfordert. +
+ +### Dashboard-Warnsymbol + +
+ Klicken zum Erweitern/Reduzieren + + Wenn Unraid einen %%CRC-Fehler|crc-errors%% erkennt, zeigt das **Dashboard** ein Warnsymbol neben dem betroffenen Laufwerk an. Dies ist eine %%SMART|smart%% Warnung, die Sie dazu veranlassen sollte, das Problem zu überprüfen und zu beheben. + +

Warum das wichtig ist

+ + - Frühwarnsystem für potenzielle Hardwareprobleme + - Hilft, Datenverlust zu verhindern, indem Probleme frühzeitig erkannt werden + - Weist darauf hin, wann vorbeugende Wartung erforderlich ist + - Teil von Unraid's proaktivem Überwachungssystem + + Klicken Sie auf das Warnsymbol, um detaillierte %%SMART|smart%% Informationen anzuzeigen und die Warnung zur Kenntnis zu nehmen. +
+ +### Bestätigung von SMART-Warnungen + +
+ Klicken zum Erweitern/Reduzieren + + Um SMART-Warnungen zu bestätigen und zu löschen: + + 1. Klicken Sie auf das **orangefarbene Warnsymbol** neben dem betroffenen Laufwerk + 2. Wählen Sie **Bestätigen** aus dem Optionsmenü + 3. Bestätigen Sie die Aktion, wenn Sie dazu aufgefordert werden + 4. Das Symbol wird **grün**, um die Bestätigung anzuzeigen + +

Was die Bestätigung bewirkt

+ + - Entfernt die Warnung aus Ihrer unmittelbaren Ansicht + - Verfolgt, dass Sie das Problem gesehen haben + - Warnt nur erneut, wenn die Fehleranzahl weiter zunimmt + - Beibehaltung der Überwachung des zugrundeliegenden Problems + + :::wichtig + Das Bestätigen einer Warnung behebt das zugrunde liegende Problem nicht – es zeigt lediglich Unraid an, dass Sie darüber informiert sind. Sie sollten dennoch die Ursache der %%CRC-Fehler|crc-errors%% untersuchen und beheben. + ::: +
diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx new file mode 100644 index 0000000000..8a93c048dc --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx @@ -0,0 +1,420 @@ +--- +sidebar_position: 3 +sidebar_label: FAQ +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Häufig gestellte Fragen + +Wenn Sie Unterstützung für Unraid OS benötigen, stehen Ihnen mehrere Supportoptionen zur Verfügung: + +- **Unraid Foren:** [Allgemeine Unterstützung](https://forums.unraid.net/forum/55-general-support/), [Zwanghaftes Design](https://forums.unraid.net/forum/35-unraid-compulsive-design/) +- **Offizielle Dokumentation:** [Unraid Docs](../../docs-home.mdx) +- **Discord:** [Unraid Discord Community](https://discord.unraid.net) +- **Supportportal:** [Unraid Support](https://unraid.net/support) + +--- + +## Index + +- [**Bauen & Hardware**](#build--hardware) + - [Ich benötige Hilfe bei einem Aufbau oder einer Systemkonfiguration. Wohin soll ich gehen?](#build-help) + - [Welche Controller werden für Unraid empfohlen?](#hardware-raid-support) + - [Wie füge ich am besten mehr Speicher hinzu, wenn mein integrierter Controller voll ist?](#add-more-storage) + - [Hat Unraid eine Zuordnungsfunktion, die sich fehlerhafte Sektoren auf Laufwerken merkt, um Schreibvorgänge darauf zu verhindern?](#bad-sector-allocation) +- [**OS und Konfiguration**](#os--configuration) + - [Kann ich einen HASP-Schlüssel innerhalb einer VM auf Unraid verwenden? Wie funktioniert das mit mehreren VMs?](#hasp-key-vm) + - [Mein USB-Stick ist ausgefallen, und ich habe kein Backup. Wie stelle ich meine Konfiguration wieder her?](#usb-failed-restore) + - [Was soll ich tun, wenn ich mein Root-Passwort vergessen habe?](#forgot-root-password) + - [Wie kann ich Unraid OS vollständig neu starten? (Zurücksetzen auf Werkseinstellungen)](#factory-reset) + - [Wie ändere ich den Hostnamen meines Servers?](#change-hostname) + - [Mein Flash-Laufwerk meldet eine ungültige GUID. Was kann ich tun?](#invalid-guid) +- [**Virtualisierung & Geräte**](#virtualization--devices) + - [Wenn ich meine Windows-VM mit einer zugewiesenen AMD-GPU herunterfahre, startet sie nicht neu. Was kann ich tun?](#amd-gpu-vm-restart) + - [Wie gebe ich meine primäre GPU an eine VM weiter, wenn meine CPU keine integrierte Grafikeinheit hat?](#primary-gpu-passthrough) +- [**Speicher & RAID**](#storage--raid) + - [Unterstützt Unraid verschiedene RAID-Typen wie RAID1/5/6/10?](#raid-types-support) + - [Ich habe derzeit eine Reihe von Geräten mit einem MBR-Partitionstabelle formatiert und möchte auf GPT umstellen. Wie mache ich das?](#mbr-to-gpt-conversion) +- [**Netzwerk**](#networking) + - [Gibt es eine Möglichkeit, die br0-Brücke zu deaktivieren?](#disable-br0-bridge) + - [Ich kann nicht mit dem WebGUI über „http://tower“ oder „http://tower.local“ verbinden. Was kann ich tun?](#webgui-connection) +- [**Installation**](#installation) + - [Ich kann den USB-Flash Creator nicht dazu bringen, Unraid auf meinem Flash-Gerät zu installieren. Was kann ich tun?](#usb-creator-issue) + - [Ich muss mein System so konfigurieren, dass es mit UEFI bootet. Wie mache ich das?](#uefi-boot-config) + - [Ich habe Probleme mit dem Webbrowser und der WebGUI. Was kann ich tun?](#webgui-browser-issues) + - [Wie verlängere ich meine Unraid-Testversion?](#extend-trial) +- [**Lizenzierung**](#licensing) + - Für lizenzbezogene Fragen siehe die [Lizenzierungs-FAQ](licensing-faq.mdx). + +--- + +## Bauen & Hardware + +

Ich benötige Hilfe bei einem Aufbau oder einer Systemkonfiguration. Wohin soll ich gehen?

+ +
+ Klicken zum Erweitern/Reduzieren + + Für Anleitungen zum Erstellen oder Aufrüsten Ihres Unraid-Servers besuchen Sie das [Compulsive Design Forum](https://forums.unraid.net/forum/35-unraid-compulsive-design/) oder treten Sie dem [Unraid Discord](https://discord.unraid.net) bei. Die Community ist aktiv und bereit, Ihnen zu helfen, unabhängig von Ihrem Erfahrungsstand. +
+ +
+ +

Welche Controller werden für Unraid empfohlen?

+ +
+ Klicken zum Erweitern/Reduzieren + + Unraid funktioniert am besten mit nicht-%%RAID|raid%% Host-Bus-Adaptern (HBAs). Es ist am besten, Hardware-%%RAID|raid%%-Controller zu vermeiden, da diese die Informationen zur Laufwerksgesundheit verschleiern und die Wartung erschweren können. + + Überprüfen Sie stets auf Firmware-Updates und stellen Sie sicher, dass der Controller auf HBA/IT-Modus und nicht auf %%RAID|raid%%-Modus eingestellt ist. Sie können den [Empfohlene Controller-Thread](https://forums.unraid.net/topic/102010-recommended-controllers-for-unraid/) aufrufen, um Modelle zu finden, die von der Community erfolgreich getestet wurden. +
+ +
+ +

Wie füge ich am besten mehr Speicher hinzu, wenn mein integrierter Controller voll ist?

+ +
+ Klicken zum Erweitern/Reduzieren + + Unraid allows for the expansion of storage across multiple controllers. You can add a compatible HBA (as mentioned above). Ensure the controller operates in standard HBA (non-%%RAID|raid%%) mode and supports %%AHCI|ahci%%/SATA. Avoid using %%RAID|raid%%-only cards, as Unraid requires direct disk access for %%parity|parity%% and monitoring. +
+ +
+ +

Hat Unraid eine Zuordnungsfunktion, die sich fehlerhafte Sektoren auf Laufwerken merkt, um Schreibvorgänge darauf zu verhindern?

+ +
+ Klicken zum Erweitern/Reduzieren + + Unraid utilizes %%SMART|smart%% data from your drives to monitor their health and detect issues such as bad sectors. %%SMART|smart%% is built into modern hard drives and SSDs, tracking attributes such as reallocated and pending sectors. + + While Unraid doesn't have a specific allocation feature to avoid bad sectors, it does use %%SMART|smart%% data to notify you if a drive displays signs of failure or has an increasing number of bad sectors. This information can be found in the %%WebGUI|web-gui%% under the drive's health status and %%SMART|smart%% attributes. + + Wenn ein Laufwerk eine hohe Anzahl umverteilte oder ausstehende Sektoren aufweist, erwägen Sie, es bald zu ersetzen, um Datenverlust zu verhindern. + + If you're uncertain about a drive's health, you can share your %%SMART|smart%% data in the [General Support forum](https://forums.unraid.net/forum/55-general-support/) for assistance from the community. +
+ +
+ +--- + +## OS und Konfiguration + +

Kann ich einen HASP-Schlüssel innerhalb einer VM auf Unraid verwenden? Wie funktioniert das mit mehreren VMs?

+ +
+ Klicken zum Erweitern/Reduzieren + + Wenn Ihr HASP-Schlüssel ein USB-Dongle ist, können Sie ihn nur einem %%VM|vm%% gleichzeitig zuweisen. Beachten Sie, dass zwei %%VM|vm%%s denselben Schlüssel nicht gleichzeitig verwenden können. Möglicherweise müssen Sie einen gesamten USB-Controller durchschleifen, um bessere Kompatibilität zu gewährleisten. Testen Sie immer mit einer Testlizenz, um zu bestätigen, dass Ihre Hardware erwartungsgemäß funktioniert. +
+ +
+ +

Mein USB-Stick ist ausgefallen, und ich habe kein Backup. Wie stelle ich meine Konfiguration wieder her?

+ +
+ Klicken zum Erweitern/Reduzieren + + Wenn Sie [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) für Flash-Backups aktiviert hatten, können Sie es zur Wiederherstellung verwenden. Wenn nicht, besorgen Sie sich ein neues, hochwertiges Flash-Laufwerk, installieren Sie Unraid darauf und verwenden Sie den Registrierungsschlüssel, den Sie per E-Mail erhalten haben. Ordnen Sie Ihre Laufwerke neu zu, wie sie waren. Wenn Sie sich nicht an die Zuordnungen erinnern können, posten Sie im [Allgemeines Support-Forum](https://forums.unraid.net/forum/55-general-support/) um Hilfe. +
+ +
+ +

Was soll ich tun, wenn ich mein Root-Passwort vergessen habe?

+ +
+ Klicken zum Erweitern/Reduzieren + + Sehen Sie sich die Anleitung [Passwort zurücksetzen](../system-administration/secure-your-server/user-management.mdx#reset-your-password) an. + + :::note + Wenn Sie verschlüsselte Laufwerke verwenden und das Verschlüsselungspasswort vergessen, ist eine Datenwiederherstellung nicht möglich - es gibt keine Hintertür. + ::: +
+ +
+ +

Wie starte ich Unraid OS komplett neu? (Zurücksetzen auf Werkseinstellungen)

+ +
+ Klicken zum Erweitern/Reduzieren + + 1. Sichern Sie alle Daten, die Sie behalten möchten. + 2. Stoppen Sie das %%array|Array%% und fahren Sie Ihren Server herunter. + 3. Entfernen Sie das USB-Flash-Gerät. + 4. Verwenden Sie das Unraid USB Flash Creator-Tool zum Formatieren und Neuinstallieren von Unraid auf dem Flash-Speicher. + 5. Stecken Sie das Flash-Gerät wieder ein und starten Sie den Server. + 6. Öffnen Sie im WebGUI ein Terminal und führen Sie `lsblk` aus, um alle Laufwerke (außer dem Flash) aufzulisten. + 7. Bestehende Dateisysteme von jedem Datenlaufwerk entfernen: + + :::danger[Kritisch: Zerstörerischer Vorgang] + **Dieser Schritt wird ALLE Daten auf den angegebenen Laufwerken dauerhaft löschen und ist UNWIDERRUFLICH!** + + - **Stellen Sie sicher, dass Sie Backups haben** von allen Daten, die Sie benötigen, bevor Sie fortfahren + + - **Überprüfen Sie die Gerätekennung** in der WebGUI oder mit lsblk, bevor Sie diesen Befehl ausführen. + + - **Stellen Sie sicher, dass Sie das richtige Laufwerk auswählen** - Datenverlust vom falschen Laufwerk kann nicht wiederhergestellt werden + + Für jedes Datenlaufwerk ausführen: + + ``` + wipefs /dev/sdX + ``` + + Ersetzen Sie `X` durch den richtigen Laufwerksbuchstaben (z.B. sda, sdb, sdc) + ::: + + 8. Fahren Sie mit der normalen Unraid-Einrichtung und -Konfiguration fort. +
+ +
+ +

Wie ändere ich den Hostnamen meines Servers?

+ +
+ Klicken zum Erweitern/Reduzieren + + Um den Hostnamen Ihres Unraid-Servers zu ändern, navigieren Sie im WebGUI zu ***Einstellungen → Systemeinstellungen → Identifikation***. + + **Auswirkungen der Änderung Ihres Hostnamens:** + + - Der neue Hostname wird für die Netzwerkidentifikation verwendet (z.B. Zugriff über `http://neuername`). + - Möglicherweise müssen Sie alle zugeordneten Netzlaufwerke oder Verknüpfungen mit dem neuen Hostnamen erneut verbinden. + - Einige Geräte oder Dienste könnten den alten Namen im Cache speichern; ein vollständiger Neustart des Geräts kann erforderlich sein, um den neuen Namen zu erkennen. +
+ +
+ +

Mein Flash-Laufwerk meldet eine ungültige GUID. Was kann ich tun?

+ +
+ Klicken zum Erweitern/Reduzieren + + Unraid benötigt ein USB-Flash-Gerät mit einer einzigartigen Hardware-%%GUID|guid%% (Seriennummer). Einige Hersteller könnten %%GUID|guid%%s wiederverwenden oder generische Werte verwenden, wodurch diese Laufwerke untereinander inkompatibel werden. + + **Erprobte Marken:** + + - Samsung FIT Plus / Bar Plus + - Kingston DataTraveler Exodia + - Lexar JumpDrive M45 + - PNY Elite-X + (Vermeiden Sie neuere SanDisk Ultra Fit/Cruzer-Modelle, es sei denn, Sie können eine eindeutige %%GUID|guid%% bestätigen.) + + Es ist am besten, generische oder nicht markengebundene Laufwerke, SSDs, USB-Kartenleser und SD-Kartenadapter zu vermeiden, da diese oft einzigartige %%GUID|guid%%s fehlen und möglicherweise nicht für das Booten von Unraid unterstützt werden. +
+ +
+ +--- + +## Virtualisierung & Geräte + +

Wenn ich meine Windows-VM mit einer zugewiesenen AMD-GPU herunterfahre, startet sie nicht neu. Was kann ich tun?

+ +
+ Klicken zum Erweitern/Reduzieren + + Viele AMD-GPUs haben Probleme mit Funktions-Level-Resets, die zu diesem Problem beitragen. Zu den Workarounds gehört, die GPU innerhalb von Windows auszuwerfen, bevor das System heruntergefahren wird, oder eine NVIDIA-GPU zu verwenden, die dieses Problem im Allgemeinen vermeidet. +
+ +
+ +

Wie gebe ich meine primäre GPU an eine VM weiter, wenn meine CPU keine integrierte Grafikeinheit hat?

+ +
+ Klicken zum Erweitern/Reduzieren + + Dies ist machbar, erfordert jedoch zusätzliche Schritte. Schauen Sie sich die [Videoanleitung von SpaceInvaderOne](https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/) an, um detaillierte Anweisungen zu erhalten, wie Sie dies richtig tun können. +
+ +
+ +--- + +## Speicher & RAID + +

Unterstützt Unraid verschiedene RAID-Typen wie RAID1/5/6/10?

+ +
+ Klicken zum Erweitern/Reduzieren + + Unraid verfügt über eine einzigartige Speicherarchitektur, die es von traditionellen %%RAID|raid%%-Systemen unterscheidet. Hier ist ein Vergleich verschiedener Speicheroptionen: + + | Merkmal / Fähigkeit | Unraid %%parity\|parity%% %%array\|array%% (md) | %%BTRFS\|btrfs%% Pool (%%cache\|cache%%) | **%%ZFS\|zfs%% Pool (7.x+)** | Traditionelles %%RAID 1\|raid1%%/%%RAID 5\|raid5%%/%%RAID 6\|raid6%%/%%RAID 10\|raid10%% | + | -------------------------------------------- | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------ | + | %%Parity\|parity%% / Redundanzmodell | Dedizierte %%parity\|parity%% Platte(n) | Software %%RAID 1\|raid1%%/%%RAID 10\|raid10%%/%%RAID 5\|raid5%%/%%RAID 6\|raid6%% über %%BTRFS\|btrfs%% | %%RAID 1\|raid1%%-Z1/Z2/Z3 oder Spiegel | Gestreifte %%parity\|parity%% (%%RAID 5\|raid5%%/%%RAID 6\|raid6%%) oder Spiegel (%%RAID 10\|raid10%%) | + | Datenstreifen-Support | Nein | Ja (außer %%RAID 1\|raid1%%) | Ja | Ja | + | Flexibilität der Laufwerksgrößen | Beliebige Größen mischen | Am besten bei ähnlichen Größen | Am besten bei ähnlichen pro vdev | Benötigt passende Größen | + | Eine Platte nach der anderen erweitern | Ja | Ja (Geräte hinzufügen oder ersetzen) | Ja (pro vdev\*) | Typischerweise nein | + | Dateisystem pro Platte | Ja | Nein | Nein | Nein | + | Lesegeschwindigkeit einer einzelnen Platte | Natürliche Plattengeschwindigkeit | Aggregiert (mehrere Platten) | Aggregiert (mehrere Platten) | Aggregiert | + | Schreibverzögerung während des Wiederaufbaus | Minimal (nur ausgefallene Platte) | Kommt auf das Niveau an | Abhängig vom vdev-Layout | Signifikant | + | %%Bit rot\|bit-rot%% Erkennung | Optional (%%BTRFS\|btrfs%%/%%ZFS\|zfs%% %%checksum\|checksum%%) | ✅ Integriert | ✅ Durchgehende %%checksum\|checksum%%s | ❌ Nicht inhärent | + | %%Snapshot\|snapshot%% / Senden-Empfangen | ❌ | ✅ (%%BTRFS\|btrfs%%) | ✅ Nativ | ❌ | + | Empfohlene Produktionseinsätze | Allgemeine Medienlagerung | %%RAID 1\|raid1%%/%%RAID 10\|raid10%% (vermeide %%RAID 5\|raid5%%/%%RAID 6\|raid6%%)\*\* | ✅ Alle Ebenen stabil | Enterprise-%%array\|array%%s | + + \* %%ZFS|zfs%% VDEVs müssen durch Ersetzen **aller** Laufwerke im VDEV oder durch Hinzufügen eines neuen VDEV erweitert werden.\ + \* %%BTRFS|btrfs%% %%RAID 5|raid5%%/%%RAID 6|raid6%% bleibt upstream als "experimentell" markiert; verwenden Sie es mit Vorsicht. + + - **Unraid %%parity|parity%% %%array|array%%** ist ideal für inkrementelle Erweiterungen, ermöglicht nicht passende Laufwerksgrößen mit minimalem Wiederaufbaustress. + - **%%ZFS|zfs%% Pools** (verfügbar in 7.x) bieten Enterprise-Klassen-Redundanz, %%snapshot|snapshot%%s und %%checksum|checksum%%s, wodurch sie ideal für %%VM|vm%%s und Datenbanken sind. + - **%%BTRFS|btrfs%% Pools** sind ideal für schnelle SSD-%%cache|cache%%s, insbesondere im gespiegelt mitteln \*\*RAID 1|raid1%%/%%RAID 10|raid10%% Modus. + - Traditionelle Hardware-%%RAID|raid%%-Karten sind *nicht* erforderlich; einfache HBAs reichen aus, damit Unraid Laufwerke direkt verwalten kann. +
+ +
+ +

Derzeit habe ich eine Reihe von Geräten, die mit einem MBR-Partitionstabelle formatiert sind und möchte zu GPT konvertieren. Wie mache ich das?

+ +
+ Klicken zum Erweitern/Reduzieren + +

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[Verwenden Sie **Wartungsmodus**] + Bevor Sie mit dem Konvertierungsprozess beginnen, versetzen Sie Ihr %%array|array%% in den **Wartungsmodus**. Dieser Schritt stellt sicher, dass während der Konvertierung keine Schreibvorgänge stattfinden, um Ihre Daten zu schützen. + ::: + +

Konvertierungsvorgang

+ + 1. Sicherstellen, dass eine gültige %%parity|parity%% und ein aktuelles Backup Ihres Flash-Laufwerks vorhanden ist. + 2. Den **Wartungsmodus** über den ***Main***-Tab betreten. + 3. Ersetzen und erneuern Sie zuerst Ihre %%parity|parity%% Platte. + 4. Jedes Datenlaufwerk nacheinander austauschen und das %%array|array%% nach jedem Austausch wiederherstellen. + 5. Das neue Laufwerk wird mit dem passenden Partitionierungsstil basierend auf seiner Größe formatiert: + - **2TB oder kleiner**: Verwendet MBR-Partitionierung + - **Größer als 2TB**: Verwendet GPT-Partitionierung + 6. Sobald alle Laufwerke ersetzt und wiederhergestellt wurden, den **Wartungsmodus** beenden. + + Dieser Prozess hält Ihre Daten sicher, während der Partitionierungsstil geändert wird. + + :::note[Zusätzliche Notizen] + - **Partitionierung erfolgt automatisch**: Unraid wählt automatisch den Partitionierungsstil basierend auf der Größe des Laufwerks: + - **2TB oder kleiner**: Verwendet immer MBR-Partitionierung + - **Größer als 2TB**: Verwendet immer GPT-Partitionierung + - Ab Unraid OS 6.9 beginnt Partition 1 bei 32KiB für rotierende Geräte und 1MiB für nicht rotierende Geräte, unabhängig vom Partitionierungsstil. + - Sichern Sie immer [Ihr Flash-Laufwerk](../system-administration/secure-your-server/secure-your-flash-drive.mdx#backups), bevor Sie diesen Konvertierungsprozess starten. + ::: +
+ +
+ +--- + +## Netzwerk-Änderungen + +

Gibt es eine Möglichkeit, die br0-Brücke zu deaktivieren?

+ +
+ Klicken zum Erweitern/Reduzieren + + Ja. Die **br0**-Brücke ist eine Linux-Netzwerkbrücke, die Docker-Container und %%VM|vm%%s ermöglicht, direkt mit dem lokalen Netzwerk (LAN) über ihre IP-Adressen zu verbinden. Sie fungiert als virtueller Netzwerkschalter, der Ihre physische Netzwerkschnittstelle mit den virtuellen Schnittstellen verbindet, die von Containern und %%VM|vm%%s verwendet werden. + + :::note + Das Deaktivieren von br0 bedeutet, dass %%VMs|vm%% und Docker-Container keinen direkten Zugriff auf das LAN haben und einige erweiterte Netzwerkfunktionen verloren gehen können. + ::: +
+ +
+ +

Es scheint, dass ich keine Verbindung zur WebGUI über `http://tower` oder `http://tower.local` herstellen kann. Was kann ich tun?

+ +
+ Klicken zum Erweitern/Reduzieren + + Wenn Sie Probleme haben, sich über den Hostnamen mit der %%WebGUI|web-gui%% zu verbinden, könnte das Problem bei Ihrem lokalen DNS liegen, der den Servernamen nicht auflöst. Versuchen Sie stattdessen, sich direkt über die IP-Adresse zu verbinden. + + **So finden Sie die IP-Adresse Ihres Servers:** + + - Überprüfen Sie die DHCP-Client-Liste Ihres Routers oder Switches auf ein Gerät, das als "Tower" oder ähnlich aufgeführt ist. + - Wenn Sie bei der Flash-Erstellung eine statische IP-Adresse zugewiesen haben, verwenden Sie diese Adresse. + - Schließen Sie einen Monitor und eine Tastatur an Ihren Server an; die IP-Adresse wird nach dem Booten auf der lokalen Konsole angezeigt. + + **Häufige Ursachen für dieses Problem:** + + - Ihr Computer und der Server könnten sich in unterschiedlichen Subnetzen oder VLANs befinden. + - Ihr Router unterstützt möglicherweise keine lokale Hostnamensauflösung. + - Der Unraid-Server ist möglicherweise nicht mit dem Netzwerk verbunden oder hat eine fehlerhafte Netzwerkeinstellung. + - Firewall- oder Sicherheitssoftware kann den Zugriff blockieren. + + Wenn Sie keine Verbindung herstellen können, versuchen Sie, Ihren Server und Ihre Netzwerkausrüstung neu zu starten und stellen Sie sicher, dass alle Kabel sicher verbunden sind. +
+ +
+ +--- + +## Installation + +

Ich kann den USB-Flash-Creator nicht dazu bringen, Unraid auf meinem Flash-Gerät zu installieren. Was kann ich tun?

+ +
+ Klicken zum Erweitern/Reduzieren + + Wenn das USB-Flash-Erstellungstool auf Ihrem System oder Flash-Laufwerk nicht funktioniert, können Sie die [manuelle Installationsmethode](../getting-started/set-up-unraid/create-your-bootable-media.mdx#manual-install-method) verwenden, um Ihr Unraid-Boot-Gerät vorzubereiten. Diese Methode ist mit Windows, macOS und Debian/Ubuntu Linux kompatibel. +
+ +
+ +

Ich muss mein System so konfigurieren, dass es mit UEFI bootet. Wie mache ich das?

+ +
+ Klicken zum Erweitern/Reduzieren + + Sie können den %%UEFI|uefi%%-Bootmodus auf verschiedene Weise einrichten: + + **Option 1: Während des Flash-Erstellung** + + - Wenn Sie den USB-Flash-Creator verwenden, wählen Sie die Option, um den %%UEFI|uefi%%-Bootmodus zu aktivieren, bevor Sie Unraid auf das Flash-Laufwerk schreiben. + + **Option 2: Nach dem Booten im Legacy-Modus** + + - Gehen Sie im %%WebGUI|web-gui%% zur ***Flash-Laufwerk Einstellungen → Flash-Laufwerk*** Seite. + - Aktivieren Sie den %%UEFI|uefi%%-Bootmodus und starten Sie Ihren Server neu. + + **Option 3: Manuelles Umbenennen des Ordners** + + - Benennen Sie auf dem Flash-Laufwerk den `EFI-`-Ordner in `EFI` um (entfernen Sie das Minuszeichen `-`). + - Stecken Sie das Flash-Laufwerk in Ihren Server und rufen Sie die BIOS/%%UEFI|uefi%%-Einstellungen Ihres Motherboards auf. + - Setzen Sie das USB-Flash-Laufwerk als primäres Boot-Gerät und aktivieren Sie den %%UEFI|uefi%%-Bootmodus (deaktivieren Sie CSM/Legacy/Kompatibilitätsmodus, sofern verfügbar). +
+ +
+ +

Ich habe Probleme mit dem Webbrowser und der WebGUI. Was kann ich tun?

+ +
+ Klicken zum Erweitern/Reduzieren + + Wenn Sie Anzeige- oder Funktionsprobleme mit der %%WebGUI|web-gui%% haben, ziehen Sie Folgendes in Betracht: + + - **Ad-Blocker und Inhaltsblocker:** Diese Browser-Erweiterungen können die WebGUI stören. Versuchen Sie, Ihren Unraid-Server zur Whitelist des Ad-Blockers hinzuzufügen oder den Blocker für die Serveradresse zu deaktivieren. + - **Browser-Erweiterungen:** Einige Erweiterungen könnten Scripts blockieren oder Seiteninhalte verändern. Deaktivieren Sie Erweiterungen oder versuchen Sie es mit einem privaten/Inkognito-Fenster. + - **Veraltete Browser:** Stellen Sie sicher, dass Sie einen modernen, aktuellen Browser verwenden (wie Chrome, Firefox oder Edge). Ältere Browser unterstützen die WebGUI möglicherweise nicht vollständig. + - **Cache-Probleme:** Löschen Sie Ihren Browser-Cache oder versuchen Sie einen sog. Hard-Refresh (Ctrl+F5 oder Cmd+Shift+R). + - **Netzwerkprobleme:** Stellen Sie sicher, dass Ihr Computer und Server mit demselben Netzwerk und Subnetz verbunden sind. + + Wenn Probleme bestehen bleiben, versuchen Sie, auf die %%WebGUI|web-gui%% von einem anderen Browser oder Gerät zuzugreifen. +
+ +
+ +

Wie verlängere ich meinen Unraid-Test?

+ +
+ Klicken zum Erweitern/Reduzieren + + Wenn Sie mehr Zeit mit Ihrer [30-tägigen kostenlosen Testversion](https://unraid.net/download) von Unraid benötigen, können Sie diese verlängern. Sobald Ihre ursprüngliche Testversion abläuft, stoppen Sie das %%array|array%% und gehen Sie zur **Registrierungsseite**. Sie sollten eine Schaltfläche sehen, die Ihnen ermöglicht, eine Verlängerung um 15 Tage zu beantragen. Dies können Sie zweimal tun, insgesamt 60 Tage, bevor Sie eine Lizenz kaufen müssen. + + :::important + Sie müssen dasselbe USB-Flash-Gerät verwenden, um Ihre Testversion fortzusetzen. Der Wechsel des Flash-Geräts erfordert, dass Sie eine neue Testversion von vorne beginnen. + ::: +
+ +
diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx new file mode 100644 index 0000000000..d4fb490b25 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx @@ -0,0 +1,303 @@ +--- +sidebar_position: 4 +sidebar_label: Lizenz-FAQ +--- + +import Details from '@theme/Details'; +import ManualKeyfileTabs from '@site/src/components/ManualKeyfileTabs'; + +# Lizenz-FAQ + +Diese Seite enthält häufig gestellte Fragen zur Lizenzierung des Unraid OS. Für allgemeine Fehlerbehebungsfragen siehe das [Haupt-FAQ](faq.mdx). + +--- + +## Index + +- [**Lizenzbesitz**](#license-ownership) + - [Besitze ich meine Softwarelizenz?](#own-license) +- [**Einkauf**](#purchasing) + - [Wie kaufe ich Unraid?](#purchase-unraid) + - [Wie löse ich einen Lizenz-Aktivierungscode ein?](#redeem-activation-code) + - [Ich bin ein Händler/OEM und muss eine Lizenz im Namen meines Kunden kaufen. Was soll ich tun?](#oem-purchase) +- [**Lizenzverwaltung**](#license-management) + - [Wie upgrade ich meine Unraid-Lizenz?](#upgrade-license) + - [Wie installiere ich meine Lizenzschlüssel-Datei manuell auf meinem USB-Flash-Gerät?](#manual-keyfile-install) + - [Wie kann ich meinen Registrierungstyp bestimmen?](#registration-type) +- [**Lizenztypen & Funktionen**](#license-types--features) + - [Ist Unraid OS ein Abonnement?](#subscription) + - [Was passiert, wenn ich meine Starter- oder Unleashed-Lizenz nicht verlängere?](#no-extension) + - [Was passiert mit Vorabversionen (Beta/RC-Versionen)?](#pre-release-policy) + - [Was bedeutet "unlimited" für angeschlossene Speichergeräte?](#unlimited-storage) +- [**Problembehandlung**](#troubleshooting) + - [Was geschieht, wenn mein USB-Flash-Gerät ausfällt? Muss ich eine Lizenz neu kaufen?](#usb-failure-license) + - [Was soll ich tun, wenn ich beim Registrieren meines Flash-Geräts einen Fehler erhalte: '####-####-####-#############' ist bereits einem anderen Benutzer zugeordnet?](#guid-error) +- [**Testlizenzen**](#trial-licenses) + - [Wie funktionieren Unraid-Testversionen?](#trial-license) + - [Kann ich meinen Testschlüssel auf ein neues Flash-Gerät übertragen?](#trial-key-transfer) + +--- + +## Lizenzbesitz + +

Besitze ich meine Softwarelizenz?

+ +
+ Klicken zum Erweitern/Reduzieren + + Wenn Sie [eine Unraid OS-Lizenz erwerben](https://unraid.net/pricing), besitzen Sie eine zeitlich unbegrenzte Kopie der Software. Ihre Lizenz ist unbegrenzt gültig und läuft nicht ab, selbst wenn Sie nicht für zukünftige Updates zahlen. +
+ +
+ +--- + +## Einkauf + +

Wie kaufe ich Unraid?

+ +
+ Klicken zum Erweitern/Reduzieren + + Es gibt zwei Möglichkeiten, Unraid zu kaufen: + + 1. **Über die %%WebGUI|web-gui%%:** Wenn Sie eine Testversion gestartet haben, können Sie eine Lizenz oder ein Upgrade direkt über das Menü oben rechts in der %%WebGUI|web-gui%% erwerben. + 2. **Mit einem Aktivierungscode:** Kaufen Sie einen Unraid Lizenz-Aktivierungscode von der [Unraid Website](https://unraid.net/pricing). Aktivierungscodes verfallen nicht und können jederzeit eingelöst werden. + + Alle Lizenzen gelten pro Server. Nutzen Sie die kostenlose 30-tägige Testversion, um sicherzustellen, dass Unraid Ihren Anforderungen entspricht, da alle Verkäufe endgültig sind. +
+ +
+ +

Wie löse ich einen Lizenz-Aktivierungscode ein?

+ +
+ Klicken zum Erweitern/Reduzieren + + 1. Kaufen Sie einen Aktivierungscode von der [Unraid Website](https://unraid.net/pricing). Ihr Code wird auf Ihrer Kaufquittung angegeben. + 2. Richten Sie Ihren Unraid-Server mit dem [Anwendungsleitfaden](../getting-started/set-up-unraid/create-your-bootable-media.mdx) ein. + 3. Melden Sie sich an der %%WebGUI|web-gui%% (`http://tower` oder `http://tower.local` standardmäßig) Ihres Unraid-Servers an. + 4. Melden Sie sich bei Ihrem Unraid.net-Konto an. + 5. Wählen Sie **Aktivierungscode einlösen** und geben Sie Ihren Code ein. + 6. Ihr Registrierungsschlüssel wird Ihnen zusammen mit Installationsanweisungen per E-Mail zugesandt. + + :::wichtig + Aktivierungscodes sind einmalig zur Generierung Ihrer Unraid-Lizenzdatei nutzbar. + ::: + + :::note[Anleitungsvideo] + Sehen Sie sich das [Aktivierungscode-Anleitungsvideo](https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2) für eine schrittweise Anleitung an. + ::: +
+ +
+ +

Ich bin ein Händler/OEM und muss eine Lizenz im Namen meines Kunden kaufen. Was soll ich tun?

+ +
+ Klicken zum Erweitern/Reduzieren + + Sie können eine Lizenz über die %%WebGUI|web-gui%% oder durch den Erwerb eines Aktivierungscodes auf der [Unraid-Website](https://unraid.net/pricing) erwerben. + + Wählen Sie beim Bezahlen die "OEM"-Option aus und geben Sie Ihre Kaufdaten ein, einschließlich Name und E-Mail-Adresse Ihres Kunden. Der Lizenzschlüssel wird auf den Namen Ihres Kunden ausgestellt und direkt an ihn gesendet. Nach dem Bezahlen finden Sie auch einen Link zum Herunterladen der Rechnung. + + Für OEM-/Wiederverkäuferpreise (10 Lizenzen oder mehr) [kontaktieren Sie Unraid](https://unraid.net/contact) für Sonderpreise. +
+ +
+ +--- + +## Lizenzverwaltung + +

Wie upgrade ich meine Unraid-Lizenz?

+ +
+ Klicken zum Erweitern/Reduzieren + + Sie können Ihre Lizenz jederzeit in der %%WebGUI|web-gui%% (***Tools → Registration***) oder [über das Kontoportal](https://account.unraid.net/keys) (durch Klicken auf **••• More** und Auswählen von **Upgrade Key**) upgraden. + + | Upgrade-Pfad | Einmalige Upgrade-Gebühr | Neue Gerätebegrenzung¹ | + | -------------------- | ------------------------ | ---------------------- | + | Starter → Unleashed | 69 $ USD | Unbegrenzt² | + | Starter → Lifetime | 209 $ USD | Unbegrenzt² | + | Unleashed → Lifetime | 149 $ USD | Unbegrenzt² | + | Basic → Unleashed | 49 $ USD | Unbegrenzt² | + | Plus → Unleashed | 19 $ USD | Unbegrenzt² | + | Basic → Plus | 89 $ USD | Bis zu 12 Geräte¹ | + | Basic → Pro | 139 $ USD | Bis zu 30 Geräte¹ | + | Plus → Pro | 109 $ USD | Bis zu 30 Geräte¹ | + + **Jährliche Verlängerungsgebühr** (nur Starter & Unleashed): 36 $ USD + + 1 Angeschlossene Speichermedien bezieht sich auf die Gesamtzahl der Festplatten, die Sie anschließen dürfen, bevor der %%array|array%% gestartet wird (dies schließt das USB-Flash-Startgerät nicht ein).\ + 2 "Unbegrenzt" bedeutet, dass Sie nicht durch die Lizenz, sondern durch Hardware- und Betriebssystemeinschränkungen begrenzt sind. Zusätzliche Speichermedien können für %%VMs|vm%%, nicht zugewiesene Geräte oder andere Unraid-Funktionen verwendet werden.\* +
+ +
+ +

Wie installiere ich meine Lizenzschlüsseldatei manuell auf meinem USB-Flash-Gerät?

+ +
+ +
+ +
+ +

Wie kann ich meinen Registrierungstyp bestimmen?

+ +
+ Klicken zum Erweitern/Reduzieren + + Navigieren Sie zu ***Werkzeuge → Registrierung*** im %%WebGUI|web-gui%%. Dort finden Sie Ihren aktuellen Lizenztyp und Registrierungsdetails. +
+ +
+ +--- + +## Lizenztypen & Funktionen + +

Ist Unraid OS ein Abonnement?

+ +
+ Klicken zum Erweitern/Reduzieren + + Nein. Unraid OS ist eine **zeitlich unbegrenzte Lizenz**: + + - **Starter** und **Unleashed** beinhalten ein Jahr lang Updates, danach können Sie eine jährliche Verlängerungsgebühr von 36 $ USD zahlen (optional). + - **Lifetime** beinhaltet Updates für die gesamte Produktlebensdauer. + - Wenn Sie sich entscheiden, die Verlängerungsgebühr nicht zu bezahlen, behalten Sie Ihre bestehende Version auf unbestimmte Zeit; Sie erhalten einfach keine neuen Hauptupdates. + + Sie behalten Ihre Lizenz auch dann, wenn Sie aufhören, für Updates zu zahlen. +
+ +
+ +

Was passiert, wenn ich meine Starter- oder Unleashed-Lizenz nicht verlängere?

+ +
+ Klicken zum Erweitern/Reduzieren + + - Sie behalten Ihre Lizenz und können Ihre aktuelle Version des Unraid OS auf unbestimmte Zeit verwenden. + - Sie erhalten keine neuen Funktionsupdates oder großen Versionsupgrades. + - Sie bleiben berechtigt, Patch-Releases und Sicherheitsupdates innerhalb derselben Minor-Version zu erhalten (z.B. 7.1.x, wenn Ihre Lizenz bei 7.1.0 abgelaufen ist). + - Sobald eine neue Minor-Version veröffentlicht wird (z.B. 7.2.0), werden nur Sicherheitsupdates für die vorherige Minor-Version bereitgestellt. + - Wenn eine Version das Ende ihres Lebenszyklus (EOL) erreicht, werden keine weiteren Updates bereitgestellt. + - Sie können die Verlängerungsgebühr jederzeit zahlen, um wieder Zugriff auf die neuesten Updates zu erhalten. +
+ +
+ +

Was passiert mit Vorabversionen (Beta/RC-Versionen)?

+ +
+ Klicken zum Erweitern/Reduzieren + + - Vorabversionen (Beta- und Release Candidate) sind für Testzwecke gedacht und können Fehler enthalten. + - Installieren Sie Vorabversionen nur auf Nicht-Produktionssystemen. + - Die Unterstützung für Vorabversionen endet, wenn die stabile Version veröffentlicht wird. + - Ihre Lizenz muss am Tag der stabilen Veröffentlichung für OS-Updates berechtigt sein, um die stabile Version zu empfangen. + - Wenn Ihre Lizenz vor der stabilen Veröffentlichung abläuft, müssen Sie Ihre Lizenz verlängern, um ein Update durchzuführen oder zu einer unterstützten stabilen Version zurückzukehren. + - Ihre Lizenz bleibt auch nach Ablauf gültig; Sie benötigen nur eine aktive Lizenz für neue Updates. +
+ +
+ +

Was bedeutet "unbegrenzt" für angeschlossene Speichergeräte?

+ +
+ Klicken zum Erweitern/Reduzieren + + "Unbegrenzt" bezieht sich auf die maximale Anzahl von Speichergeräten, die Sie basierend auf Ihrer Lizenzstufe an Ihren Unraid-Server anschließen können. + + Hier sind die aktuellen Grenzen: + + | Lizenzstufe | %%Parity\|parity%%-Protected %%Array\|array%% | Benannte Pools | Geräte pro Pool | Gesamte Speichergeräte | + | ------------ | --------------------------------------------- | -------------- | --------------- | ---------------------- | + | Starter | Bis zu 6 | 1 | Bis zu 6 | 6 | + | Unbeschränkt | Up to 30 (28 data + 2 %%parity\|parity%%) | Bis zu 35 | Bis zu 60 | Unbegrenzt\* | + | Lebenslang | Up to 30 (28 data + 2 %%parity\|parity%%) | Bis zu 35 | Bis zu 60 | Unbegrenzt\* | + + \* *"Unbegrenzt" bedeutet, dass Sie nicht durch die Lizenz, sondern durch Hardware- und Betriebssystemeinschränkungen begrenzt sind. Zusätzliche Speichermedien können für virtuelle Maschinen, nicht zugewiesene Geräte oder andere Unraid-Funktionen verwendet werden.* +
+ +
+ +--- + +## Fehlerbehebung + +

Was geschieht, wenn mein USB-Flash-Gerät ausfällt? Muss ich eine Lizenz neu kaufen?

+ +
+ Klicken zum Erweitern/Reduzieren + + Nein, Sie müssen Ihre Lizenz nicht neu kaufen, wenn Ihr USB-Flash-Gerät ausfällt. + + So übertragen Sie Ihre Lizenz: + + 1. Bereiten Sie ein neues, hochqualitatives [USB-Flash-Gerät](../getting-started/set-up-unraid/create-your-bootable-media.mdx) vor. + 2. Installieren Sie das Unraid-Betriebssystem auf dem neuen Gerät mittels USB-Flash-Creator oder einer manuellen Methode. + 3. Starten Sie Ihren Server mit dem neuen Flash-Gerät. + 4. Gehen Sie zu ***Werkzeuge → Registrierung*** im %%WebGUI|web-gui%%. + 5. Klicken Sie auf **Schlüssel Ersetzen** und folgen Sie den Anweisungen, um Ihre Lizenz auf das neue Gerät zu übertragen. + + Die erste Übertragung kann jederzeit erfolgen, während nachfolgende Übertragungen einmal alle 12 Monate über das automatische System erlaubt sind. Wenn Sie Ihre Lizenz vor Ablauf der 12 Monate erneut übertragen müssen, wenden Sie sich an den Unraid-Support mit den alten und neuen USB-%%GUID|guid%%s für manuelle Unterstützung. + + :::Tipp + Sichern Sie routinemäßig Ihr USB-Gerät mit [Unraid Connect](../../unraid-connect/overview-and-setup.mdx), um Wiederherstellung zu erleichtern und Datenverlust zu vermeiden. + ::: +
+ +
+ +

Was soll ich tun, wenn ich beim Registrieren meines Flash-Geräts die Fehlermeldung erhalte: '####-####-####-#############' ist bereits einem anderen Benutzer zugewiesen?

+ +
+ Klicken zum Erweitern/Reduzieren + + Dieser Fehler zeigt an, dass Ihr USB-Flashgerät keine eindeutige Hardware-ID (%%GUID|guid%%) besitzt, wodurch es nicht mit dem Unraid OS registriert werden kann. Um dieses Problem zu lösen, verwenden Sie ein anderes USB-Flash-Laufwerk. Marken, die für eindeutige %%GUID|guid%%s bekannt sind, schließen Lexar, Samsung, Kingston und PNY ein. +
+ +
+ +--- + +## Testlizenzen + +

Wie funktionieren Unraid-Testversionen?

+ +
+ Klicken zum Erweitern/Reduzieren + + - Testlizenzen dauern 30 Tage und bieten die volle Unraid-Funktionalität ohne Speichergerätelimit. + - Sie benötigen ein qualitativ hochwertiges USB-Flash-Laufwerk und das Unraid-USB-Creator-Tool. + - Konsultieren Sie den [Leitfaden „Erste Schritte“](../getting-started/set-up-unraid/create-your-bootable-media.mdx) für Servereinstellungen. + - Testlizenzen erfordern beim Start eine Internetverbindung zur anfänglichen Validierung. + - Sie können Ihren Test um 15 Tage verlängern, wenn Sie mehr Zeit für die Bewertung von Unraid benötigen. Sie können dies zweimal tun, insgesamt 60 Tage (Details unten). +
+ +
+ +

Wie verlängere ich meinen Test?

+ +
+ Klicken zum Erweitern/Reduzieren + + -Unraid Testschlüssel sind 30 Tage lang gültig und können zweimal um jeweils 14 zusätzliche Tage verlängert werden. Nach zwei Testverlängerungen sind keine weiteren Verlängerungen möglich. Um eine Verlängerung zu beantragen, müssen Sie den Array stoppen, zur Seite Werkzeuge > Registrierung navigieren und "Verlängerung anfordern" klicken. + + -Falls die beiden zusätzlichen Verlängerungen nicht genutzt wurden und diese Option für Sie nicht erscheint oder aus irgendeinem Grund nicht funktioniert, senden Sie uns bitte die Flash-Laufwerks-GUID von Werkzeuge - Registrierung an [contact@unraid.net](mailto:contact@unraid.net) oder über unser Support-Portal unter support.unraid.net und wir helfen Ihnen gerne. +
+ +
+ +

Kann ich meinen Testschlüssel auf ein neues Flash-Gerät übertragen?

+ +
+ Klicken zum Erweitern/Reduzieren + + Nein, Testanmeldungen sind nur auf dem ursprünglichen USB-Flash-Gerät gültig. Wenn Sie eine Lizenz erwerben möchten, können Sie Ihre Konfiguration auf ein neues Flash-Gerät übertragen und dann einen Registrierungsschlüssel kaufen; jedoch kann der Test auf einem neuen Gerät nicht fortgesetzt werden. +
+ +
diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx new file mode 100644 index 0000000000..14c7489e16 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx @@ -0,0 +1,3 @@ +1. Wenn Ihr Server läuft und das Flash-Share in Ihrem Netzwerk sichtbar ist, navigieren Sie zum Flash-Share unter **Netzwerk**. +2. Ziehen Sie die Registrierungsschlüsseldatei in das `config`-Verzeichnis. +3. In der %%WebGUI|web-gui%% **Stoppen** Sie das %%array|array%%, und **Starten** Sie das %%array|array%% erneut, um den neuen Schlüssel anzuwenden. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx new file mode 100644 index 0000000000..a6011fb882 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx @@ -0,0 +1,6 @@ +1. Stellen Sie sicher, dass Sie ein aktuelles Backup Ihres USB-Laufwerks haben. Verwenden Sie [Unraid Connect](../../../../unraid-connect/overview-and-setup.mdx) (empfohlen) oder die lokale Sicherungsoption unter ***Main → Flash → Flash Backup***. +2. Fahren Sie Ihren Unraid-Server herunter und entfernen Sie das USB-Flash-Gerät. +3. Schließen Sie den USB-Flash an einen anderen Computer an. +4. Öffnen Sie das USB-Laufwerk und kopieren Sie Ihre `.key` Datei in den `/config` Ordner. + *Stellen Sie sicher, dass dies die einzige `.key` Datei ist - löschen Sie alle anderen.* +5. Werfen Sie das USB-Flash-Gerät sicher aus, installieren Sie es wieder in Ihrem Server und starten Sie diesen neu. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx new file mode 100644 index 0000000000..c7ec2870c8 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx @@ -0,0 +1,17 @@ +# Fehlerbehebung + +Unraid-Systeme sind auf Zuverlässigkeit ausgelegt, jedoch können gelegentlich Probleme auftreten. Dieser Abschnitt führt Sie durch die Lösung häufiger Probleme und bietet bewährte Methoden zur effektiven Fehlersuche. + +:::info[Built-in Hilfe] +Die WebGUI bietet ausführliche, kontextabhängige Hilfe für fast jede Einstellung. Klicken Sie auf einen beliebigen Feldnamen oder verwenden Sie das ![Hilfe](/img/Help-icon.jpg)-Symbol in der rechten oberen Ecke, um Hilfe für die gesamte Seite zu erhalten. +::: + +:::tip[Stay angemeldet] +Aktivieren Sie Benachrichtigungen unter ***Einstellungen → Benutzereinstellungen → Benachrichtigungseinstellungen***, um Warnungen zur Systemgesundheit zu erhalten. Unbeachtete Probleme können sich verschlimmern, wenn sie nicht behoben werden. +::: + +Für zusätzliche Unterstützung sind die Unraid-Community-Foren eine hervorragende Ressource. Denken Sie daran, beim Hilfesuchen: + +- **Erfassen Sie Diagnosen, bevor Sie neu starten.** + Gehen Sie zu ***Werkzeuge → Diagnosen***, um eine Diagnosedatei zu erstellen, die Protokolle und Systemdetails zur Fehlerbehebung speichert. +- **Teilen Sie die Diagnosedatei** in einem [Beitrag im Unraid-Forum](http://forums.unraid.net/) , um anderen zu helfen, Ihnen effektiv zu helfen. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json new file mode 100644 index 0000000000..9a8456eba7 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Verwenden von Unraid zum", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json new file mode 100644 index 0000000000..01359c8c35 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Virtuelle Maschinen erstellen", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx new file mode 100644 index 0000000000..dfbe8092b1 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx @@ -0,0 +1,214 @@ +--- +sidebar_position: 1 +sidebar_label: Übersicht & Systemvorbereitung +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import HvmSupport from './partials/hvm-support.mdx'; +import IommuSupport from './partials/iommu-support.mdx'; +import GpuNvidia from './partials/gpu-nvidia.mdx'; +import GpuAmd from './partials/gpu-amd.mdx'; + +# Übersicht & Systemvorbereitung + +Virtuelle Maschinen (VMs) ermöglichen das Ausführen vollständiger Betriebssysteme, wie Windows, macOS oder Linux, auf Ihrem Unraid-Server, parallel zu Docker-Containern. + +%%VMs|vm%% sind ideal für: + +- Anwendungen ausführen, die ein vollständiges Betriebssystem benötigen oder als Container nicht verfügbar sind. +- Zugehörige Hardware an Gastsysteme zuzuweisen, wie GPUs oder USB-Geräte. +- Testen, Entwicklung, Spielen oder Ausführen von Legacy-Software. +- Hosting mehrerer isolierter Umgebungen für unterschiedliche Arbeitslasten. + +Für eine Liste der mit Unraid getesteten Betriebssysteme siehe die Seite [%%VM|vm%% Setup](./vm-setup.mdx). + +
+ **Unter der Haube:** Erweitern, um mehr über den Technologie-Stack hinter Unraid-Virtualisierung zu erfahren + + Unraid’s virtualization stack is designed to be flexible and high-performing, utilizing several open-source technologies to support effective %%virtual machine (VM)|vm%% management. This overview explains the key components and their interaction in a user-friendly manner. + +

Kerntechnologien

+ + | Technologie | Funktion der Technologie | Warum sie wichtig ist | + | --------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | + | %%KVM\|kvm%% | Acts as the %%hypervisor\|hypervisor%% built into the Linux kernel. | Ermöglicht es Unraid, %%VMs\|vm%% reibungslos mit Hardware-Beschleunigung und minimalem Overhead auszuführen. | + | %%QEMU\|qemu%% | Emuliert die wesentliche Hardware (wie Motherboard, CPU und Controller) für %%VMs\|vm%%. | Arbeitet zusammen mit %%KVM\|kvm%%, um eine vollständige virtuelle Umgebung für die Gastbetriebssysteme zu schaffen. | + | %%Libvirt\|libvirt%% | Verwaltet %%VM\|vm%%-Definitionen sowie Speicher- und Netzwerkschnittstellen. | Speichert %%VM\|vm%%-Konfigurationen in `libvirt.img` und bietet eine konsistente Verwaltungs-API. | + | %%VNC\|vnc-session%% | Bietet Remote-Grafikzugriff auf %%VMs\|vm%%. | Ermöglicht die Interaktion mit %%VMs\|vm%% von jedem Gerät aus über einen Browser oder VNC-Client. | + | %%VirtIO\|virtio%% | Bietet leistungsstarke paravirtualisierte Treiber für Netzwerk- und Speichergeräte. | Erhöht die Geschwindigkeit und Effizienz von %%VMs\|vm%%, erfordert %%VirtIO\|virtio%%-Treiber, die im Gastbetriebssystem installiert sind. | + | %%VirtFS\|virtfs%% (`9p`) | Ermöglicht die gemeinsame Nutzung des Dateisystems zwischen dem Host und Linux-basierten Gästen. | Nützlich für Entwicklung und erweiterte Dateifreigabebedürfnisse. | + | %%HVM\|hvm%% | Unterstützt hardwareunterstützte Virtualisierung (%%Intel VT-x\|intel-vt-x%%, %%AMD-V\|amd-v%%). | Notwendig für den Betrieb von %%VMs\|vm%% mit voller Hardwarebeschleunigung. | + | %%VFIO\|vfio%% & %%IOMMU\|iommu%% | Erlaubt das direkte PCI-Geräte-Passthrough zu %%VMs\|vm%% (wie GPU und USB-Geräte). | Wesentlich für nahezu native Leistung und Sicherheitstrennung. | + +

Wie Unraid die Unterstützung für %%VM|vm%% implementiert

+ + - %%KVM|kvm%%/%%QEMU|qemu%%: Unraid’s Virtualisierung basiert fundamental auf %%KVM|kvm%% und %%QEMU|qemu%%, was robuste %%VM|vm%%-Hostingfähigkeiten bietet. + - %%Libvirt|libvirt%%: %%VM|vm%% definitions are stored as XML files in `libvirt.img` (typically found in the `system` share). + - **Standardfreigaben:** + - `domains`: Hält %%VM|vm%%-%%virtuelle Festplattenabbilder|virtual-disk-images%%. + - `isos`: Enthält Installations-ISOs und Treiber-Abbilder. + - `system`: Speichert `libvirt.img` und andere kritische Systemdateien. + - Alle sind standardmäßig auf **Verwenden %%Cache|cache%%: Bevorzugen** für optimale Leistung eingestellt. + - %%VNC|vnc-session%%: Unraid bietet einen integrierten NoVNC-Client für einfachen browserbasierten Zugriff auf %%VMs|vm%%, mit der Möglichkeit, bei Bedarf externe %%VNC-Clients|vnc-session%% zu verwenden. + + :::tip + Die meisten Nutzer müssen nicht direkt mit diesen Technologien interagieren, aber ein Verständnis dessen, was „unter der Haube“ vor sich geht, kann unglaublich nützlich sein für fortgeschrittene Fehlersuche und Anpassungen. Für ausführlichere Informationen, schauen Sie sich die offizielle Dokumentation für [KVM](https://www.linux-kvm.org/page/Main_Page), [QEMU](https://www.qemu.org/), [Libvirt](https://libvirt.org/), und [VirtIO](https://www.linux-kvm.org/page/Virtio) an. + ::: +
+ +## Anforderungen + +Um %%VMs|vm%% auf Unraid auszuführen, muss Ihr System die folgenden Anforderungen erfüllen: + +| Komponente | Mindestanforderung | Recommended for %%VMs\|vm%% & %%GPU passthrough\|gpu-passthrough%% | +| --------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------ | +| CPU | 64-Bit, 4 Kerne, 2,4 GHz+ (Intel/AMD) | 8+ Kerne, 3,0 GHz+ (Intel Core i7/i9, AMD Ryzen 7/9 oder neuer) | +| Virtualisierung | %%HVM\|hvm%% (%%Intel VT-x\|intel-vt-x%% oder %%AMD-V\|amd-v%%) | %%HVM\|hvm%% + %%IOMMU\|iommu%% (Intel VT-d oder AMD-Vi) | +| RAM | 8 GB | 16 GB oder mehr (fügen Sie für jede aktive %%VM\|vm%% RAM hinzu) | +| Speicher | SSD/NVMe für %%VM\|vm%%-Festplatten | Hochleistungs-NVMe für beste Leistung | +| Netzwerk | Gigabit-Ethernet (PCIe empfohlen) | 2.5G/10G-Ethernet für anspruchsvolle Arbeitslasten | +| GPU (optional) | Moderne NVIDIA RTX (empfohlen) oder AMD Radeon RX | RTX 3000/4000-Serie (NVIDIA empfohlen für bessere Durchleitungskompatibilität) | + +:::tip[GPU Kompatibilität für Durchreichen] +NVIDIA GPUs are **generally recommended** for %%VM|vm%% passthrough due to better compatibility and reliability. AMD GPUs can be more challenging to pass through, and some newer models (including RX 7000/9000 series) may not work reliably or at all with %%VMs|vm%%. If you're planning to use %%GPU passthrough|gpu-passthrough%%, consider NVIDIA options for the best experience. +::: + +:::note +Ihr Motherboard-BIOS muss hardwareunterstützte Virtualisierung und ##IOMMU|iommu##-Unterstützung ermöglichen. Suchen Sie nach den Einstellungen „%%Intel VT-x|intel-vt-x%%“, „Intel VT-d“, „%%AMD-V|amd-v%%“ oder „AMD-Vi“. +::: + +### VM-Ressourcen + +| %%VM\|vm%%-Typ | RAM pro %%VM\|vm%% | vCPUs pro %%VM\|vm%% | Beispielanwendungen | +| ------------------------- | ------------------ | -------------------- | ---------------------------------------------------- | +| Virtueller Server | 1–2 GB | 1–2 | Leichtgewichtiges Linux, Dienstprogramme %%VMs\|vm%% | +| Virtueller Desktop | 4–8 GB | 2–4 | Windows 11, Ubuntu-Desktop, RDP | +| Hybrid-/Gaming-%%VM\|vm%% | 8–16 GB+ | 4–8+ | %%GPU-Passthrough\|gpu-passthrough%%, Gaming, ML | + +- Speicher und CPU werden nur verbraucht, wenn %%VMs|vm%% ausgeführt werden. +- Planen Sie für Spitzenlasten, wenn mehrere %%VMs|vm%% gleichzeitig laufen. +- Ressourcen immer basierend auf Gast-OS und Arbeitslastanforderungen zuteilen. + +### HVM & IOMMU: Was sie ermöglichen + + + + + + + + + + + +:::important\[How \[um die Unterstützung zu überprüfen] + +Klicken Sie im %%WebGUI|web-gui%% im oberen Menü auf **Info**. + +- **HVM-Unterstützung:** Zeigt an, ob die Hardware-Virtualisierung vorhanden und aktiviert ist. +- **IOMMU-Unterstützung:** Zeigt an, ob die Gerätedurchleitung verfügbar und aktiviert ist. + +::: + +--- + +### Grafikkartendurchleitung + +Das Durchleiten einer GPU an ein %%VM|vm%% ermöglicht nahezu native Grafikleistung und ist ideal für Gaming, kreative Arbeit oder maschinelles Lernen. + + + + + + + + + + + +:::tip[General tipps] +- Verwenden Sie %%OVMF|ovmf%% (%%UEFI|uefi%%) für %%VMs|vm%% mit modernen GPUs. +- Verwenden Sie immer die neueste Unraid-Version für verbesserte Hardwareunterstützung. +- Technologien wie NVIDIA Optimus können %%GPU-Durchleitung|gpu-passthrough%% für Laptops oder erweiterte Setups ermöglichen, aber die Ergebnisse können variieren. +::: + +:::info[Always Änderung] +Hardware- und Treiberkompatibilitätsänderungen erfolgen schnell. Überprüfen Sie vor dem Kauf einer GPU für das Passthrough die [Unraid-Foren](https://forums.unraid.net/) und die Herstellerdokumentation für aktuelle Berichte und Benutzererfahrungen. +::: + +--- + +## Systemvorbereitung + +Bevor Sie virtuelle Maschinen erstellen, führen Sie diese wesentlichen Einrichtungsschritte durch, um sicherzustellen, dass Ihr System bereit ist. + +### BIOS-Einstellungen anpassen + +Um die Virtualisierungsfähigkeiten von Unraid vollständig zu nutzen, muss Ihr BIOS die hardwareunterstützte Virtualisierung und das I/O-Speichermanagement aktivieren. Suchen Sie nach Einstellungen, die als **Virtualisierung**, %%Intel VT-x|intel-vt-x%%, **Intel VT-d**, %%AMD-V|amd-v%% oder **AMD-Vi** gekennzeichnet sind und setzen Sie diese auf **Aktiviert**. + +:::note +BIOS-Oberflächen variieren je nach Hersteller. Siehe im Handbuch Ihres Mainboards nach dem genauen Ort dieser Einstellungen. +::: + +### Ein Netzwerkbridge konfigurieren + +%%Virtuelle Maschinen|vm%% können sich über einen von zwei Brückentypen mit Ihrem Netzwerk verbinden. Wählen Sie den aus, der am besten zu Ihren Bedürfnissen passt: + +| Bridge-Typ | Beschreibung | Anwendungsfall | +| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| **Privates NAT (virbr0)** | Verwaltet von %%libvirt\|libvirt%%. Diese Option stellt einen internen DHCP-Server und ein isoliertes Subnetz bereit. %%VMs\|vm%% können auf das Internet und Host-Dateifreigaben zugreifen, sind jedoch von anderen Netzwerkgeräten isoliert. | Ideal für isolierte %%VMs\|vm%%, die Internet- und Hostzugriff benötigen, aber keine LAN-Sichtbarkeit haben. | +| **Öffentliche Bridge (br0)** | Verwaltet durch Unraid. Diese Option verbindet %%VMs\|vm%% direkt mit Ihrem LAN, wobei die IPs von Ihrem Router zugewiesen werden. MAC-Adressen werden für eine konsistente IP-Zuweisung beibehalten. | Am besten für %%VMs\|vm%% geeignet, die als normale Geräte in Ihrem Netzwerk funktionieren und von anderen Geräten aus zugänglich sein sollen. | + +:::important +Falls Ihr Unraid-Server mit Wi-Fi verbunden ist, wird die Verwendung der **Private NAT (virbr0)** Netzwerkbrücke für Ihre %%virtuellen Maschinen|vm%% empfohlen. Dies liegt daran, dass Wi-Fi-Schnittstellen nur eine einzige MAC-Adresse unterstützen, was die Verwendung öffentlicher Brücken und benutzerdefinierter Netzwerktypen einschränkt. Durch die Nutzung der **virbr0**-Brücke haben Ihre %%VMs|vm%% vollständigen Netzzugriff über %%NAT|nat%%, obwohl sie nicht direkt von anderen Geräten in Ihrem lokalen Netzwerk (LAN) zugänglich sind. Sie können jedoch weiterhin über %%VNC|vnc-session%% über den Host auf die %%VMs|vm%% zugreifen. +::: + +- Aktivieren Sie die öffentliche Bridge in ***Netzwerkeinstellungen → Bridging aktivieren***. +- Setzen Sie Ihre bevorzugte Brücke als **Standard-Netzwerkbrücke** in den %%VM|vm%%-Einstellungen. Möglicherweise müssen Sie die erweiterte Ansicht aktivieren, um diese Option zu sehen. + +--- + +### Benutzerfreigaben für Virtualisierung + +Unraid creates two default %%user shares|user-share%% for %%virtualization|virt%%: + +- `isos`: Diese Freigabe speichert Installationsmedien für Ihre %%VMs|vm%%. +- `Domains`: Diese Freigabe enthält %%virtuelle Maschinen|vm%%, %%virtuelle Festplattenabbilder|virtual-disk-images%% und Konfigurationsdateien. + +Erwägen Sie, eine separate Freigabe für %%VM|vm%%-Backups zu erstellen, um Ihre Daten zu schützen. + +

Empfehlungen für die Konfiguration von Freigaben

+ +- Speichern Sie aktive %%VM|vm%%-%%virtuelle Festplattenabbilder|virtual-disk-images%% auf einer %%cache|cache%%-only-Freigabe für die beste Leistung. +- Using SSDs in your %%cache pool|cache-pool%% significantly improves %%VM|vm%% responsiveness. +- Die Verwendung von %%Cache|cache%% für die `isos`-Freigabe ist optional. + +:::important +Do not store active %%virtual machines|vm%% on a share with **Use %%cache|cache%%** set to **Yes**. This can cause %%VMs|vm%% to be moved to the %%array|array%% during the %%Mover|mover%% process, leading to degraded performance. +::: + +## Einrichtung der Virtualisierungseinstellungen + +Bevor Sie beginnen, stellen Sie sicher, dass Ihr System für die Virtualisierung bereit ist (siehe [Systemvorbereitung](#system-preparation)). Die Einstellung Ihrer %%Virtualisierungs|virt%%-Vorlieben in Unraid hilft sicherzustellen, dass Ihre %%virtuellen Maschinen (VMs)|vm%% für optimale Leistung und Kompatibilität konfiguriert sind. + +So legen Sie Ihre Virtualisierungseinstellungen fest: + +1. Gehen Sie im %%WebGUI|web-gui%% zu ***Einstellungen → VM Manager***. +2. **Für Windows VMs:** + - Laden Sie die neuesten stabilen %%VirtIO|virtio%%-Windows-Treiber-ISO von der [offiziellen Repository](https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md) herunter. + - Kopieren Sie die %%VirtIO|virtio%%-ISO-Datei in Ihre **isos**-Freigabe. + - Verwenden Sie im **VM Manager** den Dateiauswahl für **VirtIO Windows Treiber ISO**, um die von Ihnen kopierte ISO auszuwählen. + - (Optional) Überschreiben Sie die Standard-Treiber-ISO für einzelne %%VMs|vm%% in der **Erweiterten Ansicht**. +3. **Wählen Sie eine Standardnetzwerkbrücke:** + - Wählen Sie `virbr0` für eine private Netzwerkbrücke oder wählen Sie eine öffentliche Brücke (z. B. `br0`), die in den **Netzwerkeinstellungen** erstellt wurde. + - (Optional) Überschreiben Sie die Standardnetzwerkbrücke für jede %%VM|vm%% in der **Erweiterten Ansicht**. +4. **PCIe ACS Override (Erweitert):** + - Schalten Sie **PCIe ACS Override** auf **Ein**, wenn Sie mehrere PCI-Geräte (wie %%GPUs|gpu-passthrough%% oder USB-Controller) verschiedenen %%VMs|vm%% zuweisen müssen. + - Diese Option teilt %%IOMMU|iommu%%-Gruppen auf und ermöglicht eine flexiblere Gerätezuweisung. + +:::warning +Diese Einstellung ist experimentell und kann die Systemstabilität beeinträchtigen. Vorsicht bei der Verwendung. +::: + +5. Klicken Sie auf **Übernehmen**, um Ihre Einstellungen zu speichern. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx new file mode 100644 index 0000000000..792e7de6cb --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx @@ -0,0 +1,3 @@ +- Radeon RX 6000 Serie ist für die Weiterleitung allgemein zuverlässig. +- Bei der RX 7000-Serie können einige ungelöste Probleme vorliegen; Bitte die [Unraid-Foren](https://forums.unraid.net/) für die neuesten Kompatibilitätsberichte überprüfen. +- Der AMD-Reset-Fehler wurde in neueren Modellen größtenteils behoben, aber es ist immer eine gute Idee, dies mit Ihrer Hardware zu bestätigen. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx new file mode 100644 index 0000000000..10e78fdeb1 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx @@ -0,0 +1,2 @@ +- Alle modernen RTX- (3000/4000-Serie) unterstützen Durchleitung und werden für die beste Leistung empfohlen. +- Quadro- und einige ältere GTX-Karten werden ebenfalls unterstützt, es ist jedoch wichtig, die aktuelle Treiber-Kompatibilität zu überprüfen. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx new file mode 100644 index 0000000000..fee0562155 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx @@ -0,0 +1,5 @@ +%%HVM|hvm%% (Hardware-Virtualisierung), auch bekannt als %%Intel VT-x|intel-vt-x%% oder %%AMD-V|amd-v%%, ermöglicht es Ihrer CPU, %%virtuelle Maschinen|vm%% mit Hardware-Beschleunigung auszuführen. + +- Erforderlich, um jede %%VM|vm%% auf Unraid zu erstellen und auszuführen. +- Bietet effiziente CPU-Virtualisierung und bessere Leistung im Vergleich zu rein softwarebasierter Virtualisierung. +- Die meisten modernen CPUs (ab 2015) beinhalten diese Funktion. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx new file mode 100644 index 0000000000..46b3ca36ea --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx @@ -0,0 +1,5 @@ +%%IOMMU|iommu%% (Ein-/Ausgabe-Speicherverwaltungseinheit, auch bekannt als Intel VT-d oder AMD-Vi) ermöglicht sicheres und effizientes Durchschleifen von Geräten zu %%VMs|vm%%. + +- Erforderlich, um PCIe-Geräte (GPUs, USB-Controller, NVMe-Laufwerke) direkt einem %%VM|vm%% zuzuweisen. +- Bietet Speicherisolierung und Schutz, um zu verhindern, dass Geräte auf nicht autorisierte Speicherbereiche zugreifen. +- Wesentlich für %%GPU-Durchleitung|gpu-passthrough%%, erweiterte Netzwerke und leistungsstarke Arbeitslasten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx new file mode 100644 index 0000000000..8ee8180eb2 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx @@ -0,0 +1,5 @@ +1. Laden Sie das [Windows 11 ISO](https://www.microsoft.com/en-us/software-download/windows11) herunter. +2. Laden Sie das ISO in Ihre `isos`-Freigabe auf Ihrem Unraid-Server hoch. +3. Ändern Sie Ihre %%VM|vm%%-Vorlage, um von dem ISO in der `isos`-Freigabe zu starten. +4. Starten Sie die %%VM|vm%% vom ISO und führen Sie die Neuinstallation durch. +5. Installieren Sie Ihre Anwendungen neu und stellen Sie Ihre Daten aus dem Backup wieder her. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx new file mode 100644 index 0000000000..80a8ae97a2 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx @@ -0,0 +1,3 @@ +1. Laden Sie den [Windows 11 Installationsassistenten](https://www.microsoft.com/en-us/software-download/windows11) herunter. +2. Führen Sie das Installationsprogramm aus und folgen Sie den Bildschirmanweisungen. +3. Starten Sie neu, wenn dazu aufgefordert. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx new file mode 100644 index 0000000000..240129da8b --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx @@ -0,0 +1,3 @@ +1. In ***Einstellungen → VM-Manager***, einen Standard-%%VirtIO|virtio%%-ISO-Pfad festlegen (z.B. `/mnt/user/isos/virtio-win.iso`). +2. Beim Erstellen einer Windows-%%VM|vm%% wird das ISO automatisch als virtuelles CD-ROM angehangen. +3. Während der Windows-Installation Treiber von der %%VirtIO|virtio%% ISO laden, wenn nach Speichercontrollern gefragt wird. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx new file mode 100644 index 0000000000..e223b1c556 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx @@ -0,0 +1,14 @@ +1. Laden Sie die [letzte stabile VirtIO-Treiber-ISO](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso) herunter und speichern Sie sie in Ihrem Unraid-`isos`-Share. + + :::tip[Überprüfung der Download-Integrität] + Laden Sie die [CHECKSUM-Datei](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/CHECKSUM) aus demselben Verzeichnis herunter, um die Integrität der ISO zu überprüfen. Damit stellen Sie sicher, dass Ihr Download vollständig ist und nicht manipuliert wurde. + ::: + +2. Bearbeiten Sie Ihre %%VM|vm%%-Einstellungen, um auf die neue ISO im `isos`-Share zu verweisen. + +3. Im Windows-Geräte-Manager: + - Klicken Sie mit der rechten Maustaste auf Geräte mit gelben Warnungen. + - Wählen Sie **Treiber aktualisieren → Auf meinem Computer suchen** + - Navigieren Sie zum %%VirtIO|virtio%% ISO-Laufwerk (normalerweise `D:\` oder `E:\`) + +4. Nach der Aktualisierung aller Treiber den Computer neu starten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx new file mode 100644 index 0000000000..934eaa9707 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx @@ -0,0 +1,140 @@ +--- +sidebar_position: 4 +sidebar_label: Unraid als VM +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Unraid als VM + +Das Ausführen von Unraid als virtuelle Maschine auf Ihrem primären Unraid-Server kann für Entwicklung, Testzwecke und Bewertungen sehr hilfreich sein. Diese Konfiguration ermöglicht Ihnen: + +- Entwickeln und testen von Plugins oder Docker-Containern, ohne Ihre Produktionsserver zu gefährden. +- Neue Unraid-Versionen evaluieren, bevor Sie Ihr Hauptsystem aktualisieren. +- Isolierte Umgebungen für Fehlersuche oder Schulungen erstellen. + +:::caution[Important Überlegungen] +- Lime Technology unterstützt diese Konfiguration offiziell nicht für Produktionsdaten. +- Virtualisierung bringt einen gewissen Overhead mit sich; erwarten Sie verringerte Leistung im Vergleich zum direkten Betrieb auf der Hardware. +- Sie benötigen einen separaten, gültigen Lizenzschlüssel für die %%VM|vm%%. +::: + +:::note\[Prerequisites] + +- Ein gültiger Unraid-Lizenzschlüssel für die %%VM|vm%% +- Ein dedizierter USB-Stick (verwenden Sie einen anderen Hersteller als das Boot-Laufwerk Ihres Hosts) +- Unraid Version 6.4.0 oder höher für die %%VM|vm%% (ältere Versionen erfordern manuelle Einrichtung) + +::: + +Um Unraid als %%VM|vm%% zum Laufen zu bringen: + +
+ 1. Bereiten Sie das Flash-Laufwerk für die VM vor - Zum Erweitern/Zusammenklappen klicken + + Die Vorbereitung Ihres Flash-Laufwerks ist entscheidend für einen nahtlosen und zuverlässigen Startprozess der %%VM|vm%%. So richten Sie Ihre %%VM|vm%% Umgebung mit einem einzigartigen und richtig konfigurierten Startgerät ein. + + 1. Verwenden Sie das [Unraid USB Creator](https://unraid.net/download) Tool auf Ihrem Desktop, um das Flash-Laufwerk vorzubereiten: + - Wählen Sie **EFI-Boot zulassen**. + - Setzen Sie einen eindeutigen Servernamen (z.B. `TowerVM`, wenn Ihr Host `Tower` ist). + - Schreiben Sie das Image auf das Flash-Laufwerk. + + 2. Konfigurationsdateien ändern: + - Benennen Sie die Flash-Laufwerk-Label von `UNRAID` in einen eindeutigen Namen um (z.B., `UNRAID-VM`). + + - Bearbeiten Sie die `syslinux/syslinux.cfg` Datei auf dem Flash-Laufwerk: + + ``` + label Unraid OS + menu default + kernel /bzimage + append unraidlabel=UNRAID-VM initrd=/bzroot + ``` + + - Nehmen Sie diese Änderung in allen Boot-Modi (GUI/Safe Mode) innerhalb der Datei vor. + + - Kopieren Sie die aktualisierte `syslinux.cfg` Datei nach `EFI/boot/syslinux.cfg` + + 3. Erstellen Sie eine Datei namens `startup.nsh` im Root des Flash-Laufwerks mit folgendem Inhalt: + + ``` + \EFI\boot\bootx64.efi + ``` + + 4. Notieren Sie den Hersteller des Flash-Laufwerks (dies benötigen Sie später für die %%VM|vm%%-Einrichtung). +
+ +
+ 1. Bereiten Sie das Flash-Laufwerk für die VM vor - Zum Ein-/Ausklappen klicken + + Die Konfiguration der Unraid %%VM|vm%% erfordert einige spezifische Einstellungen, um einen ordnungsgemäßen Betrieb sicherzustellen. + + Um die %%VM|vm%%-Vorlage zu erstellen: + + 1. Gehen Sie auf dem Host-Unraid-Server zu ***Einstellungen → VM-Manager*** und stellen Sie sicher, dass %%VM|vm%% aktiviert sind. + 2. Navigieren Sie zum Tab **VMs** und klicken Sie auf **VM hinzufügen**. + 3. Wählen Sie die **Slackware** Vorlage, da sie am nahesten zu Unraid passt. + 4. (Optional) Wenn verfügbar, ersetzen Sie das Slackware-Symbol durch das Unraid-Symbol. + 5. Benennen Sie die %%VM|vm%% (z.B., `UNRAID-VM`). + 6. (Optional) Fügen Sie eine Beschreibung hinzu, wie *"Unraid-Testumgebung - vX.XX.X."* + 7. Ressourcen zuweisen: + - CPUs: 2-4 Kerne + - RAM: 4-8 GB (setzen Sie Initial und Max auf denselben Wert) + 8. Setzen Sie **Maschinentyp** auf **Q35 (neueste)**. + 9. Setzen Sie **BIOS** auf **OVMF** und **USB-Controller** auf **3.0 (QEMU XHCI)**. + 10. Konfigurieren Sie virtuelle Festplatten: + - Fügen Sie %%vDisks|vdisk%% für Cache/Daten mit **RAW** Format und **SATA**-Bus hinzu. + - Größen unterscheiden, um eine einfache Identifikation zu ermöglichen (z.B., %%parity|parity%% > Daten > %%cache|cache%%). + 11. Grafik, Sound und Netzwerk auf deren Standardeinstellungen belassen. + 12. Unter **USB-Geräte** wählen Sie den Flash-Laufwerk nach **Hersteller**, nicht nach Label. + + :::important + Das Flash-Laufwerk der %%VM|vm%% muss von einem anderen Hersteller als das Startlaufwerk des Hosts sein. Wenn sie übereinstimmen, wird das %%VM|vm%% Laufwerk nicht sichtbar sein. + ::: +
+ +
+ 2. Richten Sie die VM auf dem Host ein - Zum Ein-/Ausklappen klicken + + Um die %%VM|vm%% nach der Konfiguration zu starten: + + 1. Deaktivieren **VM nach Erstellung starten** wenn Sie manuelle Steuerung wünschen. + 2. Klicken Sie auf **Erstellen**. + 3. Klicken Sie auf der **VMs**-Registerkarte auf das Unraid %%VM|vm%%-Symbol und wählen **Start mit Konsole (%%VNC|vnc-session%%)**. + 4. Verfolgen Sie den Startvorgang in der %%VNC|vnc-session%% Konsole und notieren Sie die %%VM|vm%%-IP-Adresse, die vor der Anmeldung angezeigt wird. +
+ +
+ 3. Erstellen und starten Sie die VM - Zum Ein-/Ausklappen klicken + + Sobald die %%VM|vm%% läuft, richten Sie es wie einen physischen Unraid-Server ein: + + 1. Greifen Sie auf das %%WebGUI|web-gui%% der %%VM|vm%% zu unter `http://[VM-IP]`. + 2. Gehen Sie zu ***Einstellungen → Identifikation***: + - Legen Sie einen eindeutigen **Servernamen** fest (z.B. `Unraid-VM`). + - Fügen Sie eine Beschreibung hinzu wie "Entwicklungsinstanz." + 3. (Optional) Gehen Sie zu ***Einstellungen → Anzeigeeinstellungen*** und wählen Sie ein anderes Farbthema, um es vom Host zu unterscheiden. + 4. Gehen Sie zu ***Einstellungen → %%SMB|samba%% Einstellungen → Arbeitsgruppeneinstellungen*** und stellen **Lokaler Master** auf *Nein*, um Konflikte zu vermeiden. + 5. Für UPS-Durchschleifung (falls der Host UPS hat): + - Gehen Sie auf ***Einstellungen → UPS*** auf der %%VM|vm%%. + - Setzen Sie **UPS-Kabel** auf *Ether*. + - Setzen Sie **UPS-Typ** auf *net*. + - Geben Sie die IP des Hosts bei **Gerät** ein. + - Konfigurieren Sie die **Laufzeit**, um die %%VM|vm%% vor dem Host herunterzufahren. + 6. Starten Sie das %%array|array%% mit Ihren konfigurierten Geräten. + 7. Installieren Sie [**Community Applications**](https://unraid.net/community/apps) für Plugin/Docker-Tests. + 8. Aktualisieren Sie die %%VM|vm%% über ***Werkzeuge → Betriebssystem aktualisieren***, genau wie einen physischen Server. +
+ +### Fehlerbehebung + +Wenn Sie einen *Ausführungsfehler* im Zusammenhang mit der USB-Flash-Vorrichtung nach der Bearbeitung der %%VM|vm%%-Einstellungen auftreten: + +1. Bearbeiten Sie die %%VM|vm%% und wechseln zur **XML-Ansicht**. +2. Suchen Sie den ``-Knoten, der das Flash-Gerät definiert (normalerweise gegen Ende). +3. Löschen Sie den gesamten `...` Block. +4. Klicken Sie auf **Aktualisieren**. +5. Bearbeiten Sie die %%VM|vm%% erneut in **Formularansicht**. +6. Wählen Sie das Flash-Laufwerk erneut unter **USB-Geräte** aus. +7. Klicken Sie erneut auf **Update**. Die %%VM|vm%% sollte jetzt normal starten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx new file mode 100644 index 0000000000..fca92aa70e --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx @@ -0,0 +1,445 @@ +--- +sidebar_position: 5 +sidebar_label: VM-Konvertierung und Migration +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# VM-Konvertierung und Migration + +Bei der Konsolidierung von Hardware, der Sicherung älterer Systeme oder dem Testen von Upgrades in einer virtuellen Umgebung müssen Sie möglicherweise eine physische Festplatte in eine %%virtuelle Maschine|vm%% auf Unraid konvertieren oder ein bestehendes System migrieren. Dieser Prozess gilt sowohl für Linux- als auch für Windows-Systeme, sodass Sie Ihre Installation als %%VM|vm%% innerhalb Ihres Unraid-Servers ausführen können. + +:::note\[Prerequisites] + +- Ihr Unraid-Server sollte die Mindestanforderungen an die [Hardware für die Virtualisierung](./overview-and-system-prep.mdx#requirements) (siehe Tabelle unten) erfüllen. +- Die Quellfestplatte muss an Ihren Unraid-Server angeschlossen sein (über SATA, USB oder als nicht zugewiesenes Gerät). +- Ensure you have enough free space in your **%%array|array%%** or **%%cache pool|cache-pool%%** to accommodate the new virtual disk image. +- Sichern Sie alle wichtigen Daten, bevor Sie mit dem Konvertierungs- oder Migrationsprozess beginnen. + +::: + +## Hardwareanforderungen + +| Komponente | Mindestanforderung | Empfohlen für beste Leistung | +| -------------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------- | +| **CPU** | 64-Bit mit Hardware-Virtualisierung (%%Intel VT-X\|intel-vt-x%%/%%AMD-V\|amd-v%%) | Multi-Core-CPU mit VT-d/AMD-Vi für Passthrough | +| **RAM** | 8 GB | 16 GB oder mehr | +| **Speicher** | SSD- oder NVMe-**%%cache pool\|cache-pool%%** mit ausreichend Platz | Dedicated NVMe %%cache pool\|cache-pool%% for %%VM\|vm%% storage | +| **Motherboard/BIOS** | %%UEFI\|uefi%% mit aktivierter Virtualisierung | %%UEFI\|uefi%% mit aktivierten %%IOMMU\|iommu%%/VT-d/AMD-Vi | + +--- + +## Eine physische Festplatte in eine VM konvertieren + +Das Migrieren eines bestehenden Linux- oder Windows-Systems in eine %%virtuelle Maschine|vm%% auf Ihrem Unraid-Server kann eine großartige Möglichkeit sein, Hardware zu sparen, Altsysteme am Laufen zu halten oder neue Upgrades sicher zu testen. + +So konvertieren Sie eine physische Festplatte in eine %%VM|vm%%: + + + +

Schritt 1: Bereiten Sie die physische Festplatte vor

+ + 1. Verbinden Sie die Quellfestplatte mit Ihrem Unraid-Server (über SATA oder USB). + 2. Melden Sie sich bei der %%WebGUI|web-gui%% (`http://tower` oder `http://tower.local`) an. + 3. Klicken Sie auf die Registerkarte **Haupt**. + 4. Starten Sie das **%%array|array%%**, falls es noch nicht läuft. + 5. Finden Sie Ihre Festplatte unter **Nicht zugewiesene Geräte**. + 6. Notieren Sie sich den Gerätebuchstaben (z. B. `sdb`, `sdc`) und die Festplattengröße. Sie benötigen mindestens diesen freien Platz auf Ihrem **%%array|array%%** oder **%%cache pool|cache-pool%%** für das neue %%virtual disk|vdisk%%. + +

Schritt 2: Erstellen Sie eine neue virtuelle Maschine

+ + Lesen Sie den [Leitfaden zum Erstellen Ihrer eigenen virtuellen Maschinen](../create-virtual-machines/vm-setup.mdx#creating-your-own-virtual-machines) mit den folgenden Ausnahmen: + + - Stellen Sie das **BIOS** auf **OVMF** ein. + Stellen Sie sicher, dass Sie die **VirtIO Drivers ISO** für [optimale Leistung](./overview-and-system-prep.mdx#set-up-virtualization-preferences) angeben. + - Store %%VM|vm%% images on a **%%cache pool|cache-pool%%** instead of an %%array|array%% for the [best performance](./overview-and-system-prep.mdx#user-shares-for-virtualization). + +

Schritt 3: Konvertieren Sie die physische Festplatte in ein %%virtuelles Festplatten-Image|vdisk%%

+ + Öffnen Sie ein Terminal ([%%SSH|ssh%%](../../system-administration/advanced-tools/command-line-interface.mdx) oder lokale Konsole) und melden Sie sich als `root` an. + + Verwenden Sie den folgenden Befehl, um die physische Festplatte in ein %%virtuelles Festplatten-Image|vdisk%% zu konvertieren: + + ``` + qemu-img convert -p -O raw /dev/sdX /mnt/user/[vdisk_share]/[vmname]/vdisk1.img + ``` + + - **/dev/sdX**: Ersetzen Sie durch den Gerätebuchstaben aus Schritt 1 (z. B. `/dev/sdb`) + - **\[vdisk\_share]**: Die Freigabe, in der Sie Ihre %%VM|vm%%-Images speichern + - **\[vmname]**: Der Name, den Sie für Ihre %%VM|vm%% möchten + + **Befehlsübersicht:** + + - `qemu-img convert`: Dieses Tool wird zur Konvertierung von Festplatten-Images verwendet. + - `-p`: Zeigt den Fortschritt als Prozentsatz an. + - `-O raw`: Sets the output format to raw (Unraid's default). + - `/dev/sdX`: Quelle ist Ihre physische Festplatte. + - `/mnt/user/[vdisk_share]/[vmname]/vdisk1.img`: Ziel für das %%virtuelle Festplatten-Image|vdisk%%. + + Warten Sie, bis der Vorgang abgeschlossen ist. Die resultierende `.img`-Datei wird die primäre Festplatte für Ihre %%VM|vm%% sein. +
+ + +

Schritt 1: Bearbeiten Sie das XML für Ihre virtuelle Maschine

+ + - Klicken Sie im %%VMs|vm%%-Tab auf das %%VM|vm%%-Symbol und wählen Sie **XML bearbeiten** aus dem Kontextmenü. + + - Scrollen Sie als nächstes im XML nach unten und finden Sie das ``-Tag für das ``, das eine ``-Datei auf `vdisk1.img` gesetzt hat. Es sollte so aussehen: + + ```xml + + + + + + + + +
+ + ``` + + - Um es zu ändern, ändern Sie das **bus**-Attribut im ``-Tag von `virtio` auf `ide`. + + - Entfernen Sie dann die gesamte `
`-Zeile für dieses ``. + + - Ihr aktualisiertes XML sollte so aussehen: + + ```xml + + + + + + + + + ``` + + - Klicken Sie abschließend auf **Aktualisieren**, um Ihre Änderungen am XML der %%virtuellen Maschine|vm%% zu speichern. + +

Schritt 2: Installieren Sie die VirtIO-Treiber innerhalb der VM (nur für Windows-Gäste)

+ + - Öffnen Sie den **Windows-Datei-Explorer** und wechseln Sie zur %%VirtIO|virtio%%-virtuellen CD-ROM, um deren Inhalt zu durchstöbern. + - Navigieren Sie zum **Balloon**-Ordner. + - Finden Sie innerhalb dieses Ordners den Unterordner für Ihre **Windows-Betriebssystemversion** (zum Beispiel `w8.1`). + - Öffnen Sie den Unterordner **amd64**. + - Klicken Sie mit der rechten Maustaste auf die **balloon.inf**-Datei und wählen Sie aus dem Kontextmenü **Installieren**. (Sie müssen die Dateierweiterungsanzeige aktivieren, um dies zu tun.) + - Wiederholen Sie diese Schritte für jeden der folgenden Ordner: + - **NetKVM** + - **vioserial** + - **viostor** + - Nachdem Sie die Treiber installiert haben, navigieren Sie zurück in das virtuelle CD-ROM und öffnen Sie den **guest-agent**-Ordner. + - Doppelklicken Sie auf **qemu-ga-x64.msi**, um den %%QEMU|qemu%%/%%KVM|kvm%%-Gastagenten zu installieren. + +

Schritt 3: Konvertieren Sie den Festplatten-Bus zurück zu VirtIO

+ + - Wenn Ihre %%VM|vm%% läuft, schalten Sie sie herunter. + - Klicken Sie im **VMs-Tab** auf das %%VM|vm%%-Symbol und wählen Sie **XML bearbeiten** aus dem Kontextmenü. + - Suchen Sie den ``-Abschnitt für `vdisk1.img` und ändern Sie `bus='ide'` zurück zu `bus='virtio'` im ``-Tag. + - Klicken Sie auf **Aktualisieren**, um Ihre Änderungen an der %%VM|vm%% zu speichern. + - Nun können Sie Ihre konvertierte %%virtuelle Maschine|vm%% starten! + + + +--- + +## Migration einer physischen Festplatte zu einer VM + +Sie können eine Windows-Installation direkt von einer physischen Festplatte in einer Unraid-virtuellen Maschine (VM) ausführen. Diese Methode hilft, ein bestehendes Windows-System zu migrieren, ohne es in ein virtuelles Festplattenabbild zu konvertieren. Eine visuelle Anleitung finden Sie im Tutorial von Spaceinvader One:\ +[Wie man Festplatten durchreicht, Disketten konvertiert und die Leistung in Unraid VMs testet (YouTube)](https://www.youtube.com/watch?v=QaB9HhpbDAI). + +:::important[Choosing Ihr Migrationsansatz] +Es gibt zwei gängige Methoden, um eine Windows-Installation in eine %%VM|vm%% in Unraid zu migrieren: + +**Physikalischer Festplattendurchlauf:** Verwendet die Originalfestplatte direkt in der %%VM|vm%%. + +- Vorteile: Schnellste Methode, keine Bildkonvertierung erforderlich. +- Nachteile: Belegt einen SATA-Port; Unraid kann die Festplatte nicht für andere Zwecke verwenden, wenn sie der VM angehängt ist. + +**Disk-Image-Konvertierung:** Dies konvertiert die physische Festplatte in ein %%virtuelles Festplatten-Image|vdisk%% (`.img`) zur Verwendung in der %%VM|vm%%. + +- Vorteile: Mehr Flexibilität, ermöglicht die Verwendung der Festplatte als Unraid-Share oder für Snapshots. +- Nachteile: Erfordert Zeit und freien Speicherplatz für den Konvertierungsprozess. + +Wählen Sie Passthrough, wenn Sie eine einfache Migration wünschen oder planen, die Platte dual zu booten. Entscheiden Sie sich für Image-Konvertierung für bessere Portabilität und Backup-Optionen. +::: + +:::note\[Prerequisites] + +- Sichern Sie Ihre Windows-Installation, bevor Sie beginnen. +- Halten Sie einen freien USB-Stick für Wiederherstellungstools bereit. +- Wählen Sie ein Hardwarevorbereitungstool aus, das es Windows ermöglicht, auf virtualisierter Hardware zu booten, indem es Treiber und die Hardwareabstraktionsschicht (HAL) ändert: + - **Microsoft Sysprep** (kostenlos und in Windows 8.1 und später integriert) + - **Acronis True Image 2025** (kommerzielle Lösung mit erweiterten Migrationsfunktionen) +- Stellen Sie sicher, dass Ihr Unraid-Server einen freien SATA- oder NVMe-Anschluss für die physische Festplatte hat. + +::: + +

Schritt 1: Bereiten Sie die Windows-Festplatte für die Migration vor

+ +Das Verschieben einer Windows-Installation auf neue Hardware, sei es physisch oder virtuell, kann aufgrund von Hardwareunterschieden zu Startfehlern führen. Befolgen Sie eine der folgenden Methoden, um Ihr Windows-System vorzubereiten: + +
Option A: Microsoft Sysprep (empfohlen - kostenlos)
+ +Sysprep ist in Windows integriert und eliminiert eindeutige Systeminformationen, um Windows für unterschiedliche Hardware vorzubereiten. + +:::note\[Before \[Sysprep ausführen] + +- Deaktivieren Sie temporär jegliche Antivirensoftware. +- Bereinigen Sie unnötige Benutzerprofile und temporäre Dateien. +- Beheben Sie problematische Microsoft Store-Anwendungen oder entfernen Sie diese, die verhindern könnten, dass Sysprep ausgeführt wird. + +::: + +1. **Sysprep ausführen:** + - Öffnen Sie die Eingabeaufforderung als Administrator. + - Navigieren Sie zum Sysprep-Verzeichnis: + + ```bash + cd C:\Windows\System32\Sysprep + ``` + - Führen Sie Sysprep mit Generalisierung aus: + ```bash + sysprep.exe /generalize /shutdown /oobe + ``` + - Das System wird die Installation generalisieren und dann herunterfahren. + +2. **Installieren Sie die Festplatte in Ihrem Unraid-Server** nach dem Herunterfahren. + +
Option B: Acronis True Image 2025 (kommerziell)
+ +Acronis True Image 2025 bietet Universal Restore, das bei der Hardware-Migration hilft. + +1. Laden Sie [Acronis True Image 2025](https://www.acronis.com/en-us/products/true-image/) herunter und installieren Sie es. +2. Erstellen Sie bootfähige Wiederherstellungsmedien mit den enthaltenen Tools: + - Wählen Sie die Windows-ähnliche Benutzeroberfläche aus. + - Wählen Sie die Architektur, die zu Ihrem Windows passt (32-Bit oder 64-Bit). +3. Booten Sie Ihr Windows-System von den Acronis-Wiederherstellungsmedien. +4. Befolgen Sie die Anweisungen auf dem Bildschirm, um Universal Restore auf Ihrer Windows-Festplatte anzuwenden. Dadurch werden Treiber und das HAL aktualisiert, um die Kompatibilität mit virtualisierter Hardware zu verbessern. +5. Fahren Sie das System herunter und installieren Sie die Festplatte in Ihrem Unraid-Server. + +

Schritt 2: Identifizieren Sie die physische Festplatte in Unraid

+ +1. Melden Sie sich bei der %%WebGUI|web-gui%% (`http://tower` oder `http://tower.local`) an. +2. Gehen Sie zur Registerkarte **Haupt**. +3. Start the %%array|array%% if it’s not already running. +4. Finden Sie Ihr Laufwerk unter **Nicht zugewiesene Geräte**. +5. Notieren Sie sich den Gerätebuchstaben (zum Beispiel `sdb`, `sdc`) für die Einstellung der %%VM|vm%%. + +

Schritt 3: Erstellen Sie eine neue virtuelle Maschine

+ +1. Gehen Sie zum **%%VMs|vm%%**-Tab im %%WebGUI|web-gui%%. Falls der Tab fehlt, überprüfen Sie, ob die Virtualisierung aktiviert wurde und die Hardwareanforderungen erfüllt sind. +2. Klicken Sie auf **VM hinzufügen**. +3. Befolgen Sie die [Anleitungen zum Erstellen eigener virtueller Maschinen](../create-virtual-machines/vm-setup.mdx#creating-your-own-virtual-machines) mit diesen Einstellungen: + - Setzen Sie das **BIOS** auf %%SeaBIOS|seabios%% (versuchen Sie %%OVMF|ovmf%%, falls %%SeaBIOS|seabios%% nicht startet). + - Lassen Sie **OS Install ISO** leer. + - Geben Sie die **VirtIO-Treiber-ISO** an, um nach dem Hochfahren eine optimale Leistung zu erzielen. + - Wählen Sie für die primäre %%virtuelle Festplatte|vdisk%% einen beliebigen Speicherort und eine Größe aus (dies wird im nächsten Schritt ersetzt). + - Deaktivieren Sie **Start VM nach der Erstellung**. + +

Schritt 4: Bearbeiten Sie das XML für Ihre virtuelle Maschine

+ +Sie müssen die XML-Konfiguration des %%VM|vm%% ändern, um Ihre physische Festplatte mit der %%virtuellen Maschine|vm%% zu verbinden. + +1. Gehen Sie zum Tab **VMs**, klicken Sie auf das %%VM|vm%%-Symbol und wählen Sie **XML bearbeiten** aus dem Kontextmenü. + +2. Scrollen Sie im XML-Dokument nach unten und finden Sie den bestehenden `` Eintrag für Ihre primäre %%virtuelle Festplatte|vdisk%%. Dieser verweist normalerweise auf eine `.img` Datei und sieht ungefähr so aus: + + ```xml + + + + + + + + +
+ + ``` + + Ersetzen Sie diesen Block durch den folgenden, wobei `sdX` der Geräteschreibbuchstabe ist, oder verwenden Sie besser `/dev/disk/by-id/[Ihre-Platten-ID]` für eine zuverlässigere Gerätzuordnung (siehe \[Unraid-Dokumente: Verwendung einer physikalischen Platte in einer VM]): + + ```xml + + + + + + + ``` + + Falls Ihre Festplatte IDE ist, ändern Sie den Bus von "SATA" zu "IDE". + + Die Verwendung von `/dev/disk/by-id/` wird gegenüber `/dev/sdX` bevorzugt, um sicherzustellen, dass die Festplattenzuweisung nach Neustarts oder Hardwareänderungen konsistent bleibt. + +3. Klicken Sie auf **Aktualisieren**, um Ihre XML-Änderungen zu speichern. + +

Schritt 5: Treiber installieren

+ +1. Starten Sie Ihre %%VM|vm%%. +2. Sobald Windows gestartet ist, öffnen Sie den Geräte-Manager, indem Sie mit der rechten Maustaste auf das Startmenü klicken und **Geräte-Manager** auswählen. +3. Suchen Sie nach Geräten, die mit einem gelben Ausrufezeichen gekennzeichnet sind (fehlende Treiber). Klicken Sie mit der rechten Maustaste auf jedes und wählen Sie **Treiber aktualisieren**. +4. Wählen Sie **Auf dem Computer nach Treibersoftware suchen**. +5. Weisen Sie es dem Laufwerk zu, auf dem die %%VirtIO|virtio%%-Treiber-ISO eingehängt ist (normalerweise D: oder E:). +6. Stellen Sie sicher, dass **Unterordner einbeziehen** aktiviert ist, und klicken Sie dann auf **Weiter**. +7. Wiederholen Sie diesen Vorgang für jedes Gerät ohne Treiber, häufig einschließlich: SCSI-Controller, Ethernet, Balloon und Serielle Geräte. + +Denken Sie daran, diese Anwendungen nach der Migration neu zu installieren, falls Sie Software verwenden, die eigene Treiber installiert (wie Antivirus-Programme). + +:::tip +Wenn Sie bei %%SeaBIOS|seabios%% mit der Nachricht „Booting from Hard Disk“ hängen bleiben, liegt es wahrscheinlich daran, dass Ihr Windows-Betriebssystem mit %%UEFI|uefi%% anstelle des traditionellen BIOS installiert wurde. In diesem Fall erstellen Sie die %%VM|vm%% mit %%OVMF|ovmf%% als BIOS-Typ anstelle von %%SeaBIOS|seabios%% neu. Die meisten modernen Windows-Installationen (Windows 8.1, 10 und 11) unterstützen %%UEFI|uefi%% und benötigen möglicherweise %%OVMF|ovmf%% zum Starten. Der Rest des Konvertierungsprozesses bleibt gleich. +::: + +--- + +## Xen zu KVM Migration + +:::info\[Historical \[Kontext] + +Unraid unterstützte %%Xen|xen-hvm%% von den frühen 6.x-Versionen bis es in Version 6.2 (September 2016) veraltet wurde und später vollständig entfernt wurde. Dieser Migrationsleitfaden ist relevant für Benutzer, die von sehr alten Unraid-Installationen (vor 2017) auf moderne Versionen aktualisieren. + +::: + +A %%Xen|xen-hvm%% hypervisor is a virtualization platform that allows multiple operating systems to run on the same hardware. In Unraid, %%Xen|xen-hvm%% was historically used for %%virtual machines|vm%%, but %%KVM|kvm%% is now the standard. Migrating from %%Xen|xen-hvm%% to %%KVM|kvm%% is essential for utilizing modern Unraid features, enabling hardware passthrough, and ensuring compatibility with current releases. + +Der Prozess der Migration einer %%VM|vm%% von %%Xen|xen-hvm%% zu %%KVM|kvm%% variiert je nachdem, ob Ihre %%VM|vm%% als paravirtualisierter (PV) oder hardware-virtualisierter (%%HVM|hvm%%) Gast eingerichtet ist. Dieser Leitfaden konzentriert sich speziell auf die Konvertierung von Windows-VMs, die die GPLPV-Treiber von Xen verwenden, da sie spezielle Handhabung erfordern. + +Always create a backup of your %%Xen|xen-hvm%% virtual disk before starting this process. And test your migration on the backup to prevent data loss. + +:::info\[Why \[Migrieren?] + +Unraid unterstützt %%Xen|xen-hvm%% ab Version 6.2 nicht mehr. %%KVM|kvm%% ist jetzt zur Verwaltung von %%virtuellen Maschinen|vm%%, Hardware-Passthrough und laufenden Updates verpflichtend. Die Migration gewährleistet, dass Ihre %%virtuellen Maschinen|vm%% sicher und mit neuen Funktionen kompatibel bleiben. + +::: + +### Verfahren zur Windows-Konvertierung + +To convert a Windows VM from %%Xen|xen-hvm%% to %%KVM|kvm%%, follow these steps. Remember to **remove any PCI device passthrough from your %%Xen|xen-hvm%% domain configuration** before you begin. These devices can be added back after the migration is complete. + +
+ Schritt 1: Bestimmen Sie, ob Ihre VM Xens GPLPV-Treiber verwendet - Klicken um zu erweitern/einzuklappen + + 1. Öffnen Sie innerhalb Ihrer %%Xen|Xen-HVM%% VM den **Windows-Geräte-Manager** (drücken Sie *Windows-Taste + X*, dann **Geräte-Manager** auswählen). + 2. Erweitern Sie **Netzwerkadapter** und überprüfen Sie den Gerätenamen. + - Wenn der Name "Xen" enthält, verwenden Sie GPLPV-Treiber. + - Wenn nicht, fahren Sie mit dem Schritt zum Neustart im %%KVM|kvm%%-Modus fort. + + :::tip + Wenn Sie keine GPLPV-Treiber verwenden, können Sie die nächsten Schritte überspringen und mit dem Abschnitt zum Neustart im %%KVM|kvm%%-Modus fortfahren. + ::: +
+ +
+ Schritt 2: Bereiten Sie Windows für die Entfernung der GPLPV-Treiber vor - Klicken um zu erweitern/einzuklappen + + 1. Öffnen Sie eine Eingabeaufforderung als Administrator (**Startmenü** → geben Sie `cmd` ein → rechtsklicken Sie auf **Eingabeaufforderung** → wählen Sie **Als Administrator ausführen**). + 2. Geben Sie den folgenden Befehl ein: + ``` + bcdedit -set loadoptions nogplpv + ``` + 3. Starten Sie Ihre VM neu. +
+ +
+ Schritt 3: Deinstallieren Sie die GPLPV-Treiber - Klicken um zu erweitern/einzuklappen + + Nach dem Neustart entfernen Sie alle %%Xen|xen-hvm%% GPLPV-Treiber manuell aus Ihrem System, indem Sie den umfassenden manuellen Entfernungsprozess im [Xen Project Wiki](https://wiki.xenproject.org/wiki/Xen_Windows_GPLPV) dokumentieren. + + :::caution + Das Entfernen von GPLPV erfordert umfangreiche Registrierungsbearbeitungen und manuelle Dateienlöschungen. Befolgen Sie die Anweisungen des Xen Project Wiki **genau**, da Fehler Systeminstabilität oder Bootfehler verursachen können. + ::: +
+ +
+ Schritt 4: Erstellen Sie eine neue KVM-Virtualisierungsmaschine - Klicken um zu erweitern/einzuklappen + + 1. Stellen Sie sicher, dass der **VM Manager** aktiviert ist: + - Gehen Sie zu ***Einstellungen → VM Manager***. + - Stellen Sie **VMs aktivieren** auf **Ja**. + - Laden Sie die neuesten **VirtIO-Treiber-ISO** für Windows herunter, indem Sie sie im Dropdown-Menü auswählen und auf **Download** klicken. + + 2. Navigieren Sie zum Tab **VMs** und klicken Sie auf **VM hinzufügen**. + + 3. Select the Windows version that matches your original %%Xen|xen-hvm%% virtual machine. + + 4. Konfigurieren Sie die Grundeinstellungen: + - **Name**: Weisen Sie Ihrer VM einen beschreibenden Namen zu. + - **VirtIO-Treiber-ISO**: Wählen Sie die gerade heruntergeladene Version aus. + + 5. Unter **Primärer vDisk-Speicherort**: + - Browse and select your existing %%Xen|xen-hvm%% virtual disk. + + 6. Fügen Sie eine **temporäre sekundäre vDisk** hinzu: + - Klicken Sie auf das grüne Plus-Symbol. + - Setzen Sie die Größe auf **1M** (dies erzwingt IDE-Bus-Kompatibilität während des ersten Starts). + - Wählen Sie ein beliebiges temporäres Verzeichnis für den Speicherort (dies wird später entfernt). + + 7. Belassen Sie die anderen Einstellungen für Grafik und Sound auf ihren Standardwerten und klicken Sie dann auf **Erstellen**. + + 8. Stoppen Sie die VM sofort zwangsweise: + - Klicken Sie auf das VM-Symbol und wählen Sie **Zwangsstopp**. + + 9. Bearbeiten Sie die VM-Konfiguration: + - Klicken Sie auf das VM-Symbol und wählen Sie **Bearbeiten**. + - Wechseln Sie zur **XML-Ansicht** mit dem Schalter in der oberen rechten Ecke. + + 10. Ändern Sie die XML der primären Festplatte: + - Suchen Sie die ``-Sektion für Ihre primäre virtuelle Festplatte. + - Entfernen Sie die gesamte `
`-Zeile. + - Ändern Sie `bus='virtio'` zu `bus='ide'` im ``-Tag. + - Klicken Sie auf **Aktualisieren**. + + :::tip[Warum die temporäre Festplatte?] + Die 1MB temporäre Festplatte zwingt Unraid, die primäre Festplatte als `hda` (IDE) anstelle von `vda` (%%VirtIO|virtio%%) zuzuweisen, was es Windows ermöglicht, ohne %%VirtIO|virtio%%-Treiber zu starten. Diese temporäre Festplatte wird nach der Installation des Treibers entfernt. + ::: +
+ +
+ Schritt 5: Installieren Sie die VirtIO-Treiber - Klicken um zu erweitern/einzuklappen + + 1. Starten Sie die VM über den **VMs**-Tab. + 2. Verbinden Sie sich über %%VNC|vnc-session%%, indem Sie auf das VM-Symbol klicken und **Start mit Konsole (VNC)** auswählen. + 3. Während des Starts: + - Windows wird neue Hardware erkennen, aber möglicherweise nicht in der Lage sein, Treiber zu installieren. + - Wählen Sie **Später neu starten**, wenn Sie dazu aufgefordert werden. + 4. Öffnen Sie den **Geräte-Manager** (drücken Sie Win+X und wählen Sie Geräte-Manager): + - Installieren Sie Treiber für jedes Gerät unter **Andere Geräte** (wie Ethernet Controller, PCI-Gerät, etc.): + 1. Klicken Sie mit der rechten Maustaste auf das Gerät und wählen Sie **Treiber aktualisieren**. + 2. Wählen Sie **Auf dem Computer nach Treibersoftware suchen**. + 3. Weisen Sie auf das %%VirtIO|virtio%%-ISO-Laufwerk hin (zum Beispiel `D:\`). + 4. Aktivieren Sie **Unterordner einbeziehen**. + 5. Wenn Sie dazu aufgefordert werden, akzeptieren Sie **Red Hat immer vertrauen**. + 5. Installieren Sie den %%QEMU|qemu%% %%guest agent|guest-agent%%: + - Öffnen Sie den Datei-Explorer und navigieren Sie zu `D:\guest-agent\`. + - Doppelklicken Sie auf `qemu-ga-x64.msi`. + 6. Fahren Sie die VM herunter. +
+ +
+ Schritt 6: Finalisieren Sie die VM-Konfiguration - Klicken um zu erweitern/einzuklappen + + 1. Bearbeiten Sie die VM: + - Entfernen Sie die temporäre sekundäre %%vDisk|vdisk%%, indem Sie auf das rote Minus-Symbol klicken. + - Confirm that the primary %%vDisk|vdisk%% points to your original %%Xen|xen-hvm%% disk. + 2. Aktualisieren Sie die VM: + - Klicken Sie auf **Aktualisieren**, um Ihre Änderungen zu speichern. + 3. Starten Sie die VM normal. + 4. Überprüfen Sie im **Geräte-Manager**, dass: + - Keine Warnsymbole erscheinen. + - Alle Geräte verwenden %%VirtIO|virtio%%-Treiber (zum Beispiel "Red Hat %%VirtIO|virtio%% Ethernet-Adapter"). + 5. (Optional) Aktivieren Sie %%VirtIO|virtio%% für eine bessere Leistung: + - Bearbeiten Sie die VM und wechseln Sie zur XML-Ansicht. + - Ändern Sie den `bus` der primären Festplatte von `ide` zu `virtio`. + - Klicken Sie auf **Aktualisieren** und starten Sie die VM neu. + + :::tip[Fehlerbehebung bei Treibern] + Wenn Sie nach der Migration Fehler bei Geräten feststellen: + + 1. Installieren Sie die %%VirtIO|virtio%%-Treiber von der ISO erneut. + 2. Überprüfen Sie Windows-Updates, die möglicherweise neuere Treiber bereitstellen. + 3. Besuchen Sie die [Red Hat VirtIO Drivers](https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/) Seite für die neuesten Versionen. + ::: +
diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx new file mode 100644 index 0000000000..85fe9aae52 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx @@ -0,0 +1,425 @@ +--- +sidebar_position: 2 +sidebar_label: VM-Einrichtung +--- + +# VM-Einrichtung + +Das Einrichten einer virtuellen Maschine (VM) auf Unraid ist eine flexible Möglichkeit, vollständige Betriebssysteme – wie Windows, Linux oder andere Plattformen – neben Ihren Containern und nativen Apps auszuführen. Egal, ob Sie neue Software testen, Legacy-Anwendungen ausführen, eine Desktop-Umgebung hosten oder Hardware-Passthrough für Spiele oder kreative Arbeiten nutzen möchten, der **VM-Manager** von Unraid macht den Prozess für alle Kenntnisstufen zugänglich. + +:::tip[New in Unraid 7.0] +Unraid 7.x bietet bedeutende Verbesserungen für %%virtuelle Maschinen (VMs)|vm%%, einschließlich: + +- %%VM|vm%%-Klone und -Snapshots +- Benutzerdefinierte %%VM|vm%%-Vorlagen +- Inline-XML-Bearbeitung/Ansicht +- Erweiterte Funktionen für GPU-Sharing und -Passthrough + +Schauen Sie sich den Abschnitt [%%VM|vm%%-Manager-Funktionen](#neues-in-unraid-7x-vm-manager) für weitere Details an. +::: + +Falls noch nicht geschehen, lesen Sie bitte die Anweisung [Übersicht & Systemvorbereitung](./overview-and-system-prep.mdx), um sicherzustellen, dass Ihre Hardware und Freigaben für die Virtualisierung bereit sind. + +## Erstellen Ihrer eigenen virtuellen Maschinen + +Mit vorbereitetem System und festgelegten Präferenzen können Sie mithilfe des %%WebGUI|web-gui%% eine neue %%virtuelle Maschine (VM)|vm%% erstellen. + +:::note[Before Sie beginnen] +- Bestätigen Sie, dass Ihre `isos`- und `domains`-Freigaben konfiguriert und zugänglich sind. Erfahren Sie hier mehr über [Share-Management](../manage-storage/shares.mdx). +- Laden Sie Ihr Betriebssystem-Installations-ISO und für Windows %%VMs|vm%% die neuesten %%VirtIO|virtio%%-Treiber-ISOs in den `isos` Share hoch. +- Entscheiden Sie, ob Sie %%GPU-Passthrough|gpu-passthrough%% oder %%VNC|vnc-session%% für die Grafik verwenden möchten. +::: + +Zum Erstellen einer grundlegenden %%VM|vm%%: + +1. Klicken Sie auf **VM hinzufügen** auf der Seite **Virtuelle Maschinen**. +2. Setzen Sie die **Vorlage** auf **Benutzerdefiniert** oder wählen Sie eine vordefinierte OS-Vorlage für gängige Distributionen. +3. Geben Sie einen **Namen** und optional eine **Beschreibung** für Ihre %%VM|vm%% ein. +4. Aktivieren Sie **Autostart**, wenn Sie möchten, dass die %%VM|vm%% automatisch mit dem %%array|array%% gestartet wird. +5. Wählen Sie den Typ des **Betriebssystems** aus. Dadurch wird auch das %%VM|vm%%-Symbol angepasst. +6. Weisen Sie der %%VM|vm%% **CPU-Kerne** zu. Sie können bis zu der Anzahl der auf Ihrem Host verfügbaren physischen Kerne zuweisen. +7. Legen Sie den **Initialspeicher** (RAM) für die %%VM|vm%% fest. Konsultieren Sie die Dokumentation Ihres Gastbetriebssystems für empfohlene Werte. +8. Wählen Sie das **OS-Installations-ISO** aus Ihrer **isos** Freigabe. +9. Konfigurieren Sie den **primären vDisk** (Ort, Größe und Typ). + - Die primäre %%vDisk|vdisk%% speichert das Betriebssystem der VM. + - Fügen Sie bei Bedarf zusätzliche %%vDisks|vdisk%% mithilfe des Pluszeichens hinzu. +10. Wählen Sie eine **Grafikkarte**: + - Wählen Sie %%VNC|vnc-session%% für den Fernzugriff oder eine physische GPU für Passthrough. + - Weisen Sie eine USB-Tastatur/Maus zu, wenn eine physische GPU verwendet wird. + - Legen Sie ein %%VNC|vnc-session%%-Passwort fest, falls gewünscht. +11. Weisen Sie eine **Soundkarte** zu (optional, aber erforderlich für HDMI-Audio über GPU). +12. Weisen Sie bei Bedarf **USB-Geräte** zu. + - Geräte müssen vor dem Start der %%VM|vm%% angeschlossen werden (USB-Hotplug wird nicht unterstützt). + - Das Unraid-USB-Flash-Gerät steht nicht zur Zuweisung zur Verfügung. +13. Klicken Sie auf **VM erstellen**. Die %%VM|vm%% startet automatisch, es sei denn, Sie deaktivieren **VM nach Erstellung starten**. + +--- + +## Benutzerdefinierte VM-Vorlagen + +Unraid 7.1+ führt Benutzer-%%VM|vm%%-Vorlagen ein, die das Speichern und Wiederverwenden Ihrer benutzerdefinierten %%VM|vm%%-Konfigurationen erleichtern. Benutzer-Vorlagen vereinfachen die %%VM|vm%%-Bereitstellung und sorgen für Konsistenz in den Setups. + +Erstellen einer Benutzervorlage: + +1. Bearbeiten Sie die %%VM|vm%%, die Sie als Vorlage speichern möchten. +2. Wählen Sie **Vorlage erstellen/ändern** und geben Sie einen Namen ein. +3. Ihre Vorlage ist jetzt im Bereich Benutzervorlagen auf dem **VM hinzufügen**-Bildschirm verfügbar. + +Um eine Benutzervorlage zu verwenden: + +- Klicken Sie auf der **VM-Seite** auf **VM hinzufügen** und wählen Sie Ihre Vorlage aus dem Abschnitt **Benutzervorlagen** aus. + +Import/Export: + +- Bewegen Sie den Mauszeiger über eine Benutzervorlage und klicken Sie auf den Pfeil, um sie auf Ihren Server zu exportieren oder herunterzuladen. +- Verwenden Sie auf einem anderen Unraid-System **Import aus Datei** oder **Hochladen**, um die Vorlage hinzuzufügen. + +--- + +## Neu in Unraid 7.x: VM-Manager + +Unraid 7.x führt eine Reihe leistungsstarker Erweiterungen für den **%%VM|vm%%-Manager** ein, die den Prozess des Ausführens und Verwalten von %%virtuellen Maschinen|vm%% vereinfachen. Diese Funktionen richten sich sowohl an Anfänger als auch an fortgeschrittene Benutzer und vereinfachen die Bereitstellung, Anpassung und Optimierung Ihrer %%VMs|vm%%. + +:::tip\[Highlights] + +- Sparen Sie Zeit mit %%VM|vm%%-Klone, Snapshots und wiederverwendbaren Vorlagen +- Optimieren Sie Leistung und Kompatibilität mit erweiterten Passthrough- und Speicheroptionen +- Genießen Sie verbesserte Sichtbarkeit und Kontrolle mit Nutzungsstatistiken und Inline-`XML`-Bearbeitung + +::: + +
+ Workflow-Verbesserungen + + - **VM-Klone & Snapshots**: Duplizieren Sie %%VMs|vm%% oder speichern/stellen Sie ihren Zustand schnell wieder her, um Tests oder Backups zu erstellen. + - **Benutzerdefinierte VM-Vorlagen**: Speichern und verwenden Sie Ihre benutzerdefinierten %%VM|vm%%-Konfigurationen mit nur wenigen Klicks. + - **Inline-XML-Ansicht/Bearbeitung**: Betrachten oder kopieren Sie das vom %%WebGUI|web-gui%% generierte `XML` sofort; wechseln Sie in den `XML`-Modus für erweiterte Bearbeitungen. + - **Autostart deaktivieren:** Wählen Sie aus, welche %%VMs|vm%% automatisch mit Ihrem %%array|array%% starten. + - **VM-Nutzungsstatistiken**: Verfolgen Sie die Ressourcennutzung pro %%VM|vm%% direkt vom Dashboard aus. +
+ +
+ Workflow-Verbesserungen + + - **PCI-Multifunktion/andere**: Weisen Sie komplexe PCI-Geräte oder Gruppen für fortgeschrittene Passthrough-Szenarien zu. + - **%%QEMU|qemu%%-Befehlszeilen-Passthrough**: Fügen Sie benutzerdefinierte %%QEMU|qemu%%-Argumente für eine Expertenstufe %%VM|vm%%-Feinabstimmung hinzu. + - **Speicherüberschreibung**: Geben Sie den Speicherort für jeden virtuellen %%Disk|vdisk%% der VM an. + - **SSD-Flag & Unmap**: Optimieren Sie die %%vDisk|vdisk%%-Leistung für SSDs und aktivieren Sie Discard/Unmap-Unterstützung. + - **`SR-IOV` für Intel-iGPU**: Teilen Sie integrierte Intel-Grafiken zwischen mehreren %%VMs|vm%%. + - **VM-Namen-Validierung für ZFS**: Verhindern Sie die Verwendung unzulässiger Zeichen in %%VM|vm%%-Namen für [%%ZFS|zfs%%-Pools](../../advanced-configurations/optimize-storage/zfs-storage.mdx). +
+ +
+ Erweiterte Hardware- und Speicheroptionen + + - **`VirGL` & `QXL` virtuelle GPUs**: Teilen Sie Intel/AMD-GPUs zwischen mehreren Linux-%%VMs|vm%% oder nutzen Sie `QXL` für Multi-Screen/Memory-Optionen. + - **%%CPU-Pinning|cpu-pinning%% optional**: Lassen Sie Unraid die CPU-Zuteilung automatisch verwalten oder pinnen Sie Kerne manuell nach Bedarf. +
+ +
+ Erweiterte Grafik- und GPU-Sharing-Optionen + + - View all graphics cards and %%VM|vm%%-assigned IP addresses in the %%VM|vm%% tab + - Unterstützung für %%QEMU|qemu%% PPC64-Ziel und `qemu:override` + - Hypervclock-Unterstützung für Windows-%%VMs|vm%% + - „Wanderbar“ an/aus für die emulierte CPU + - Timer/Offset-Konfigurationsoptionen + - Keine Keymap/nogpu-Optionen für spezifische Anwendungsfälle verfügbar + - Verbesserte Auswahl und Bearbeitung von %%VM|vm%%-Icons + - Warnungen bei der Zuweisung der primären GPU als Passthrough (kann `vBIOS` erfordern) + - Starten Sie Unraid-%%VMs|vm%% im GUI-Modus mit dem `QXL`-Videotreiber + - Verschiedene Lösungen für Pfad- und Icon-Probleme in `XML`-Ansicht +
+ +--- + +## Verwendung von virtuellen GPUs und GPU-Sharing + +Unraid unterstützt jetzt fortgeschrittenes GPU-Sharing über `VirGL` und `QXL` für Linux-%%VMs|vm%% (und einige Nvidia-GPUs mit dem `Nouveau`-Treiber). + +- Um `VirGL` zu verwenden: Stellen Sie **Grafikkarte** auf **Virtuell** und **VM-Konsolen-Video-Treiber** auf **VirtIO(3D)** ein. +- Um `QXL` zu verwenden: Stellen Sie **Grafikkarte** auf **Virtuell** und **VM-Konsolen-Video-Treiber** auf **`QXL` (beste)**. +- `VirGL` gibt kein Bild an einen physischen Monitor aus und ist nicht kompatibel mit Windows-%%VMs|vm%% oder Standard-Nvidia-Plugins. +- `QXL` unterstützt mehrere Bildschirme und konfigurierbaren Videospeicher. + +--- + +## Erweiterte Optionen + +
+ Erweitern Sie diesen Abschnitt, um Anleitungen zu erweiterten Optionen anzuzeigen + + Wechseln Sie auf der Seite **VM hinzufügen** zur **Erweiterten Ansicht**, um auf zusätzliche Einstellungen zuzugreifen. + + Hier sind die wichtigsten erweiterten Optionen, in fokussierte Abschnitte unterteilt: + + **CPU-Modus:** + + - **Host-Passthrough**: Stellt alle Host-CPU-Funktionen der %%VM|vm%% zur Verfügung, um maximale Leistung zu erzielen. + - **Emuliert**: Verwendet ein generisches CPU-Modell, reduziert Kompatibilitätsprobleme, begrenzt jedoch die Leistung. + + **Memory-Ballooning:** + + - Legen Sie einen **Maximalspeicher**-Wert fest, um dynamische Speicherzuordnung (%%memory ballooning|memory-ballooning%%) zu ermöglichen. + - Nicht verfügbar für %%VMs|vm%% mit zugewiesenen PCI-Geräten (z.B., %%GPU-Passthrough|gpu-passthrough%%). + + **Maschinentyp:** + + - **`i440fx`**: Standard für Windows-%%VMs|vm%%. Ändern Sie dies nur, wenn Sie Probleme mit %%GPU-Passthrough|gpu-passthrough%% haben. + - **`Q35`**: Standard für Linux-%%VMs|vm%% und empfohlen für die meisten modernen Betriebssysteme, insbesondere mit %%GPU-Passthrough|gpu-passthrough%%. + + **BIOS-Typ:** + + - **SeaBIOS**: Traditionelles BIOS für ältere Betriebssysteme. + - **OVMF**: %%UEFI|uefi%% BIOS erforderlich für Windows 8+, die meisten modernen Linux-Distros und %%GPU-Passthrough|gpu-passthrough%%. + + :::note + Der BIOS-Typ kann nur beim Erstellen einer neuen %%VM|vm%% festgelegt werden. + ::: + + **Hyper-V-Erweiterungen:** + + - Für Windows-%%VMs|vm%% aktivieren Sie die Hyper-V-Erweiterungen zur Verbesserung der Kompatibilität und Leistung. + + **VirtIO-Treiber-ISO:** + + - Überschreiben Sie das Standard-%%VirtIO|virtio%%-ISO bei Bedarf, insbesondere für Tests oder bei Verwendung neuerer Treiber. + + **vDisk-Typ:** + + - **`RAW`**: Beste Leistung, weniger flexibel für Snapshots. + - **`QCOW2`**: Unterstützt Snapshots, bietet aber etwas geringere Leistung. + + **VirtFS-Zuordnungen (Linux-VMs):** + + - Fügen Sie mehrere %%VirtFS|virtfs%%-(`9p`)-Freigaben für die Dateisystemintegration zwischen Host und Gast hinzu. + - Siehe die [%%QEMU|qemu%% 9p-Dokumentation](http://wiki.qemu.org/Documentation/9psetup) für Details. + + **Netzwerkeinstellungen:** + + - Ändern Sie die **Netzwerk-MAC-Adresse** oder wählen Sie eine alternative **Netzwerkbrücke** aus. + - Klicken Sie auf das Aktualisierungssymbol, um automatisch eine neue MAC-Adresse zu generieren. + - Fügen Sie bei Bedarf zusätzliche virtuelle Netzwerkschnittstellen hinzu. +
+ +:::info[Troubleshooting tipps] +- Wenn Ihre %%VM|vm%% nicht startet, überprüfen Sie Ihre ISO- und %%vDisk|vdisk%%-Pfade. +- Für %%GPU-Passthrough|gpu-passthrough%%, stellen Sie sicher, dass Ihre Hardware und BIOS-Einstellungen %%IOMMU|iommu%%/VT-d/AMD-Vi unterstützen. +- Einige USB-Geräte funktionieren möglicherweise nicht zuverlässig mit Passthrough - testen Sie und konsultieren Sie das [Unraid-Forum](https://forums.unraid.net/) für gerätespezifische Ratschläge. +::: + +--- + +## Binden von PCI-Geräten für Passthrough + +Bevor Sie eine GPU oder ein anderes PCI-Gerät einer %%virtuellen Maschine|vm%% zuweisen können, ist es wichtig, das Gerät an den **vfio-pci** Treiber zu "binden". Dieser Prozess verbirgt das Gerät vor Unraid und widmet es ausschließlich Ihrer %%VM|vm%%. + +Um ein PCI-Gerät (GPU, USB-Controller, NVMe usw.) für das Passthrough zu binden: + +1. Navigieren Sie zu ***Werkzeuge → Systemgeräte*** im %%WebGUI|web-gui%%. +2. Durchsuchen Sie die Liste aller erkannten PCI-Geräte und ihrer %%IOMMU|iommu%%-Gruppen. +3. Aktivieren Sie das Kästchen neben jedem Gerät, das Sie an **vfio-pci** binden möchten (um es vor Unraid zu verbergen). + - Beachten Sie, dass bereits von Unraid verwendete Geräte (wie Festplattencontroller und Netzwerkkarten) nicht ausgewählt werden können. + - Wenn Sie eine GPU auswählen, wählen Sie das zugehörige Soundgerät aus. +4. Klicken Sie auf **Ausgewählte an VFIO beim Booten binden**, um Ihre Änderungen zu speichern. +5. Starten Sie Ihren Server neu, damit das Binden wirksam wird. + +:::caution +Wenn Sie Hardwareänderungen vornehmen (z. B. Hinzufügen oder Entfernen von PCI-Geräten), gehen Sie zu **Systemgeräte**, um sicherzustellen, dass die richtigen Geräte noch gebunden sind. Wenn Geräte ungebunden oder falsch verbunden sind, erscheinen sie möglicherweise nicht für das Passthrough. +::: + +Nach dem Binden werden gebundene Geräte im Dropdown-Menü **Andere PCI-Geräte** beim Bearbeiten oder Erstellen einer %%VM|vm%% angezeigt. + +
+ Fehlerbehebung + + - Wenn Sie zuvor das `VFIO-PCI`-Konfigurations-Plug-in verwendet haben, deinstallieren Sie es - diese Funktionalität ist jetzt integriert. + - Um alle Bindungen zurückzusetzen, löschen Sie `/boot/config/vfio-pci.cfg` und starten Sie Ihr System neu. + - Nach dem Neustart verwenden Sie die Schaltfläche "**VFIO-PCI-Protokoll anzeigen**" auf der Seite **Systemgeräte** für erweiterte Fehlerbehebung. + - Denken Sie daran, dass Unraid möglicherweise nicht ohne GUI startet, wenn Sie Ihre einzige GPU binden. Stellen Sie sicher, dass Sie dafür planen. + - Für weitere Informationen, konsultieren Sie den [offiziellen Leitfaden im Unraid-Forum](https://forums.unraid.net/topic/93781-guide-bind-devices-to-vfio-pci-for-easy-passthrough-to-vms/). +
+ +--- + +## GPU-Passthrough für virtuelle Maschinen + +%%GPU-Passthrough|gpu-passthrough%% ermöglicht es Ihnen, eine physische Grafikkarte direkt einer %%virtuellen Maschine (VM)|vm%% zuzuweisen, wodurch nahezu native Leistung für Gaming, kreative Arbeit oder maschinelles Lernen bereitgestellt wird. + +:::info[Why GPU-Durchreichung verwenden?] +- **Leistung:** Direkter Hardwarezugriff für anspruchsvolle Anwendungen. +- **Kompatibilität:** Grafisch-intensive Workloads ausführen, die eine dedizierte GPU erfordern. +- **Flexibilität:** Verwandeln Sie Ihren Unraid-Server in eine vielseitige Workstation. +::: + +

Voraussetzungen

+ +**Hardware:** + +- CPU mit Intel VT-d oder AMD-Vi Unterstützung (%%IOMMU|iommu%% im BIOS aktiviert). +- GPU kompatibel mit Passthrough (siehe [community-getestete Hardware](https://docs.google.com/spreadsheets/d/1LnGpTrXalwGVNy0PWJDURhyxa3sgqkGXmvNCIvIMenk/edit#ggid=0)). +- Ein Motherboard, das PCIe-Geräte richtig isoliert. + +**Software:** + +- Unraid 6.9+ mit aktivierter Virtualisierung. +- %%OVMF|ovmf%% (%%UEFI|uefi%%) BIOS für %%VMs|vm%% (empfohlen gegenüber %%SeaBIOS|seabios%%). + +Um GPU-Passthrough einzurichten: + +1. Stellen Sie sicher, dass Ihre Hardware %%IOMMU|iommu%% unterstützt und im BIOS aktiviert ist. +2. Aktivieren Sie Virtualisierungsfunktionen im BIOS (Intel VT-x/VT-d oder AMD-v/AMD-vi). +3. Aktualisieren Sie Unraid auf die neueste stabile Version. +4. Weisen Sie die GPU der %%VM|vm%% im %%VM|vm%%-Erstellungs- oder Bearbeitungsbildschirm im Abschnitt Grafikkarte zu. +5. Weisen Sie eine USB-Tastatur und -Maus der %%VM|vm%% zu, wenn Sie %%GPU-Passthrough|gpu-passthrough%% verwenden. +6. Verwenden Sie %%OVMF|ovmf%% BIOS für die %%VM|vm%% für bessere Kompatibilität mit %%GPU-Passthrough|gpu-passthrough%%. +7. Starten Sie die %%VM|vm%% und überprüfen Sie, ob die GPU korrekt durchgereicht wird. + +:::note +Einige GPUs erfordern möglicherweise zusätzliche Konfigurationen oder ROM-Injection für das ordnungsgemäße Passthrough. +::: + +### Manuelle ROM-Injektion + +Einige GPUs, insbesondere bestimmte NVIDIA-Modelle, erfordern, dass eine ROM-Datei der VM manuell bereitgestellt wird, um ordnungsgemäß zu initialisieren. Dies ist häufig erforderlich, wenn die Onboard-Firmware der GPU standardmäßig nicht korrekt durchgereicht wird und Probleme wie schwarze Bildschirme oder der Ausfall beim Booten verursacht. Das manuelle Einfügen von ROM ist ein letzter Ausweg nach dem Versuch von BIOS- und VM-Konfigurationseinstellungen. + +Um ein ROM einzuspeisen: + +1. **GPU-ROM herunterladen:** + - Besuchen Sie die [TechPowerUp VGA BIOS-Datenbank](https://www.techpowerup.com/vgabios/). + - Suchen Sie Ihr GPU-Modell und laden Sie die korrekte ROM-Datei herunter. + - Speichern Sie das ROM in Ihrem Unraid-`isos` oder `domains`-Freigabe. + +2. **Bearbeiten Sie das %%VM|vm%%-XML:** + - Stoppen Sie die %%VM|vm%% und öffnen Sie deren XML-Konfiguration (**XML bearbeiten** aus dem %%VM|vm%%-Kontextmenü). + - Lokalisieren Sie den ``-Block der GPU und fügen Sie das `` Tag hinzu: + + ```xml + + + + +
+ + +
+ + ``` + +3. **Speichern und testen:** Klicken Sie auf **Aktualisieren** und starten Sie die %%VM|vm%%. + +--- + +## Häufige Probleme + +In diesem Abschnitt werden fortgeschrittene Themen und Lösungen für häufige Probleme beim Verwalten von %%virtuellen Maschinen (VMs)|vm%% auf Unraid behandelt. Erweitern Sie die folgenden Abschnitte für Schritt-für-Schritt-Anleitungen und Problemlösungstipps. + +### Einen vDisk erweitern + +
+ Klicken zum Erweitern/Reduzieren + + Wenn Ihrer %%VM|vm%% der Speicherplatz knapp wird, können Sie die Größe der %%virtuellen Festplatte (**vDisk**)|vdisk%% direkt über das %%WebGUI|web-gui%% erweitern. + + Um eine %%vDisk|vdisk%% zu erweitern: + + 1. Wechseln Sie zur Registerkarte **VMs** im %%WebGUI|web-gui%%. + 2. Stellen Sie sicher, dass die %%VM|vm%% gestoppt ist. + 3. Klicken Sie auf den Namen der VM, um deren Details zu erweitern. + 4. Suchen Sie die %%vDisk|vdisk%%, die Sie erweitern möchten. Klicken Sie auf den Wert im Feld **Kapazität**, um ihn bearbeitbar zu machen. + 5. Geben Sie die neue gewünschte Größe ein (z.B. `100G` für 100 Gigabyte) und drücken Sie **Enter**. + 6. Die neue Kapazität ist nun festgelegt. + + :::note + Sie können ein %%vDisk|vdisk%% nicht über die Unraid-Oberfläche verkleinern; nur eine Erweiterung wird unterstützt. + ::: + +

Die Partition in Ihrem Gast-Betriebssystem erweitern

+ + Nach dem Anpassen der Größe des %%vDisk|vdisk%% starten Sie Ihre %%VM|vm%%. Sie müssen die Partition im Gastsystem erweitern, um den neuen Speicherplatz zu nutzen: + + - **Windows:** Verwenden Sie das eingebaute Festplattenverwaltungstool, um Ihre Partition zu erweitern. + + - **Linux (LVM):** Verwenden Sie Werkzeuge wie `fdisk`, `pvresize`, `lvextend` und `resize2fs`, um Partitionen und logische Volumes zu erweitern. + + **Beispiel:** + + ```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 + ``` + + Passen Sie die Gerätenamen bei Bedarf an Ihre Konfiguration an. + + :::tip + Sichern Sie immer Ihre %%VM|vm%%, bevor Sie Änderungen an der Festplatte vornehmen. + ::: +
+ +### Steckenbleiben in der UEFI-Shell + +
+ Klicken zum Erweitern/Reduzieren + + Wenn Ihre %%VM|vm%% zu einer %%UEFI|uefi%%-Shell statt zu Ihrem Betriebssystem startet, können Sie den Bootprozess manuell starten: + + Geben Sie am %%UEFI|uefi%%-Shell-Befehlsprompt ein: + + ```bash + fs0: + cd efi/boot + bootx64.efi + ``` + + Die %%VM|vm%% sollte nun in Ihr Betriebssystem booten. + + :::tip + Wenn dies häufig passiert, überprüfen Sie die Startreihenfolge Ihrer VM und stellen Sie sicher, dass die richtige %%vDisk|vdisk%% oder ISO als primäres Startgerät in den VM-Einstellungen festgelegt ist. + ::: +
+ +### Schwarzer Bildschirm nach VM-Start + +
+ Klicken zum Erweitern/Reduzieren + + Wenn Ihre %%VM|vm%% startet, aber das Display leer bleibt: + + 1. **BIOS-Einstellungen überprüfen:** + - Primäre Grafik auf integrierte GPU (iGPU) setzen, nicht auf die Passthrough-GPU. + - Aktualisieren Sie das Motherboard- und GPU-BIOS auf die neuesten Versionen. + + 2. **%%VM|vm%%-Einstellungen anpassen:** + - Switch from %%SeaBIOS|seabios%% to %%OVMF|ovmf%% (%%UEFI|uefi%%) in %%VM|vm%% settings. + - Ändern Sie den **Maschinentyp** von i440fx auf Q35. + + 3. **Manuelle ROM-Injektion (letztes Mittel):** [GPU-ROM manuell injizieren](#manual-rom-injection). +
+ +### Fehler: "IOMMU für Behälter konnte nicht eingestellt werden: Operation nicht erlaubt" + +
+ Klicken zum Erweitern/Reduzieren + + Dieser Fehler weist typischerweise auf %%IOMMU|iommu%%-Gruppenkonflikte oder fehlende Interrupt-Remapping hin: + + 1. **PCIe ACS-Override aktivieren:** + - Gehen Sie zu ***Einstellungen → VM-Manager***. + - Setzen Sie **PCIe ACS Override** auf *Downstream* oder *Beides*. + - Unraid neu starten. + + 2. **Unsichere Interrupts zulassen (fortgeschritten):** + - Bearbeiten Sie `syslinux.cfg` auf Ihrem Unraid-Flash-Laufwerk: + + ```bash + append vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot + ``` + + - Verwenden Sie dies nur, wenn Sie Ihren %%VM|vm%%-Gästen voll vertrauen. + + :::note + Für detaillierte Erklärungen zu %%IOMMU|iommu%%-Gruppen empfehlen wir, [Alex Williamsons Blog](http://vfio.blogspot.com/2014/08/iommu-groups-inside-and-out.html) zu besuchen. + ::: +
diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx new file mode 100644 index 0000000000..dd6bb12f74 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx @@ -0,0 +1,287 @@ +--- +sidebar_position: 3 +sidebar_label: Windows in einer VM +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import WindowsVirtioAutomatic from './partials/windows-virtio-automatic.mdx'; +import WindowsVirtioManual from './partials/windows-virtio-manual.mdx'; +import WindowsUpgradeInPlace from './partials/windows-upgrade-in-place.mdx'; +import WindowsUpgradeCleanInstall from './partials/windows-upgrade-clean-install.mdx'; + +# Windows in einer VM + +Windows ist eines der beliebtesten Gastbetriebssysteme für Unraid-Benutzer, insbesondere für Gaming, Produktivität und Unterstützung älterer Anwendungen. Hier sind wesentliche Überlegungen zum Betrieb von Windows-VMs. + +:::caution[Before Sie beginnen] +- Microsoft beendete den Support für Windows 7 im Januar 2020, Windows 8.1 im Januar 2023 und Windows 10 im Oktober 2025. Verwenden Sie Windows 11 (oder später) oder Server 2022 (oder später) für laufende Sicherheitsupdates. +- Testen Sie immer die Stabilität von %%VM|vm%%, bevor Sie Ihre Windows-Lizenz aktivieren. +- Für %%GPU-Passthrough|gpu-passthrough%% verwenden Sie %%OVMF|ovmf%% (%%UEFI|uefi%%) BIOS mit Windows 11 oder neuer. +::: + +### Unterstützte Konfigurationen + +| Windows-Ausgabe | Empfohlenes BIOS | Maschinentyp | Anmerkungen | +| ------------------- | ------------------ | ------------------------------- | -------------------------------- | +| Windows 11 | %%OVMF\|ovmf%% TPM | %%Q35\|q35%% | Benötigt TPM 2.0 Emulation | +| Windows Server 2022 | %%OVMF\|ovmf%% | %%Q35\|q35%% | Ideal für Unternehmens-Workloads | +| Windows 10 | %%OVMF\|ovmf%% | %%Q35\|q35%% | Veraltet (EOL Oktober 2025) | +| Windows Server 2019 | %%OVMF\|ovmf%% | %%i440fx\|i440fx%%/%%Q35\|q35%% | Kompatibel, aber nicht empfohlen | + +--- + +### VirtIO-Treiberverwaltung + +Windows benötigt paravirtualisierte Treiber für eine optimale Leistung mit Unraid's Virtualisierungsstack. + +Um Treiber zu installieren oder zu aktualisieren: + + + + + + + + + + + +:::tip +Bei Verwendung von Unraid 7 oder später können Sie %%VirtIO|virtio%%-Treiber automatisch während der Windows-Installation injizieren. Aktivieren Sie dies in ***VM-Einstellungen → Erweiterte Optionen***. +::: + +--- + +### Einrichten des Ruhemodus + +Der Ruhezustand ermöglicht es Ihnen, den gesamten Status Ihrer Windows-%%VM|vm%% - einschließlich geöffneter Anwendungen und Dokumente - auf die Festplatte zu speichern. Dadurch können Sie die %%VM|vm%% ausschalten, ohne Arbeit zu verlieren. Beim Fortsetzen stellt Windows alles exakt so wieder her, wie Sie es verlassen haben, und überspringt den normalen Startvorgang. Diese Funktion ist praktisch, wenn Sie neu starten oder Ihren Unraid-Host herunterfahren müssen oder Energie sparen möchten, während Sie den Zustand Ihrer %%VM|vm%% intakt halten. + +:::note[Benefits des Ruhezustands] +- Energie sparen, indem inaktive %%VM|vm%% ausgeschaltet werden, ohne Fortschritte zu verlieren +- Arbeit schnell nach Wartung oder Updates am Host wieder aufnehmen +- Verringern Sie den Verschleiß von SSDs im Vergleich zu häufigen vollständigen Ausschaltungen und Neustarts +::: + +Um den Ruhezustand zuverlässig zu nutzen, müssen Sie den %%QEMU|qemu%%-%%Guest-Agent|guest-agent%% in Ihrer Windows-%%VM|vm%% installieren. Dieser Agent ermöglicht es Unraid, mit der %%VM|vm%% für erweiterte Vorgänge wie Ruhezustand, Herunterfahren und Live-Statistikberichterstattung zu kommunizieren. + +
+ Wie installiert man den %%QEMU|qemu%% %%Guest Agent|guest-agent%% – Klicken Sie hier zum Ein-/Ausklappen + + 1. Starten Sie Ihre Windows-%%VM|vm%% mit der eingehängten %%VirtIO|virtio%%-Treiber-ISO. + 2. Öffnen Sie den **Datei-Explorer** und navigieren Sie zu den %%VirtIO|virtio%%-Treibern. + 3. Öffnen Sie den Ordner `guest-agent`. + 4. Führen Sie `qemu-ga-x64.msi` aus, um den Agent zu installieren. (Möglicherweise wird kurz ein Befehlsfenster angezeigt; es erscheint kein Bestätigungsdialog.) +
+ +
+ Wie aktiviert man den Ruhemodus in Windows – Klicken Sie hier zum Ein-/Ausklappen + + 1. Öffnen Sie die **Systemsteuerung** und suchen Sie nach **Energieoptionen**. + 2. Klicken Sie auf **Funktion des Ein-/Ausschalters festlegen**. + 3. Klicken Sie auf **Einstellungen ändern, die momentan nicht verfügbar sind**, um Einstellungen zum Ausschalten freizuschalten. + 4. Markieren Sie die Option **Ruhezustand**. + 5. Klicken Sie auf **Änderungen speichern**. + + Die Option **Ruhezustand** wird jetzt im Windows-Energie-Menü angezeigt. +
+ +:::important[What wenn der Ruhezustand fehlschlägt?] +Falls Ihre %%VM|vm%% beim Ruhezustand oder beim Fortsetzen nicht ordnungsgemäß arbeitet, können ungespeicherte Arbeiten verloren gehen oder eine Wiederherstellung fehlgeschlagen sein. Speichern Sie immer wichtige Daten, bevor Sie den Ruhezustand aktivieren. Sollten die Probleme weiterhin bestehen, stellen Sie sicher, dass der %%QEMU|qemu%%-%%Guest-Agent|guest-agent%% installiert und aktualisiert ist und überprüfen Sie das Windows-Ereignisprotokoll auf Fehler. +::: + +--- + +### Leistungsoptimierung + +Die Optimierung Ihrer Windows-%%VM|vm%% kann die Reaktionsfähigkeit verbessern, die Festplattennutzung reduzieren und häufig auftretende Probleme mit Gerätepasseinstellungen oder dem Herunterfahren vermeiden. Diese Anpassungen sind optional und können bei Bedarf vorgenommen werden. + +#### Schnellstart deaktivieren + +Das Deaktivieren des Schnellstarts kann helfen, Probleme mit dem Gerätepasseinstellungen zu verhindern. Es stellt sicher, dass Ihre %%VM|vm%%-Hardware bei jedem Neustart korrekt initialisiert wird. Während diese Einstellung für physische PCs konzipiert ist, kann sie in einer virtuellen Umgebung häufig mehr Probleme als Vorteile verursachen. + +
+ Wie man den Schnellstart deaktiviert – Klicken Sie hier zum Ein-/Ausklappen + + 1. Öffnen Sie die **Systemsteuerung** und suchen Sie nach **Energie**. + 2. Klicken Sie auf **Funktion des Ein-/Ausschalters festlegen**. + 3. Klicken Sie auf **Einstellungen ändern, die momentan nicht verfügbar sind**. + 4. Deaktivieren Sie unter **Ausschaltoptionen** die Option **Schnellstart aktivieren**. + 5. Klicken Sie auf **Änderungen speichern**. +
+ +#### hiberfil.sys deaktivieren + +Der Ruhezustand in Windows erzeugt eine große versteckte Datei namens `hiberfil.sys`. Diese Datei kann erheblichen Speicherplatz beanspruchen und die Festplattenaktivität Ihrer %%VM|vm%% erhöhen. Wenn Sie nicht auf den Ruhezustand angewiesen sind, wird dessen Deaktivierung Speicherplatz freigeben und unnötige I/O-Aktivitäten reduzieren. + +
+ Wie man den Ruhezustand deaktiviert und hiberfil.sys entfernt – Klicken Sie hier zum Ein-/Ausklappen + + 1. Klicken Sie mit der rechten Maustaste auf die **Start**-Taste und wählen Sie **Windows Terminal (Admin)** oder **Eingabeaufforderung (Admin)**. + 2. Geben Sie ein: `powercfg /h off` + 3. Drücken Sie Enter und starten Sie Ihre %%VM|vm%% neu. Die Datei `hiberfil.sys` wird von Ihrem C:-Laufwerk entfernt. +
+ +#### Windows-Indizierung deaktivieren + +Windows Search indexing continuously scans your %%virtual machine|vm%%'s storage to catalog files for faster search results. However, on a %%virtual machine|vm%%, this can cause unnecessary disk I/O, slow down performance, and increase wear on your physical storage, especially SSDs in your [%%cache pool|cache-pool%%](../manage-storage/cache-pools.mdx). + +
+ Wie man die Windows-Indizierung deaktiviert – Klicken zum Ein-/Ausklappen + + 1. Drücken Sie **Windows + R**, um den Ausführen-Dialog zu öffnen, geben Sie `services.msc` ein und drücken Sie Enter. + 2. Im Dienstefenster scrollen Sie nach unten und klicken mit der rechten Maustaste auf **Windows Search**, dann wählen Sie **Beenden**. + 3. Doppelklicken Sie auf **Windows Search**, ändern Sie den **Starttyp** auf **Deaktiviert** und klicken Sie auf **OK**. +
+ +#### Automatische Festplattendefragmentierung deaktivieren + +Windows ist so konzipiert, dass physische Festplatten regelmäßig automatisch defragmentiert werden. Auf einer %%VM|vm%% - insbesondere bei Verwendung von SSD-Speicher oder dünnprovisionierten %%vDisks|vdisk%% - ist eine automatische Defragmentierung unnötig und kann zudem die Festplattenlebensdauer verringern und die Leistung beeinträchtigen. + +
+ Wie man die automatische Festplattendefragmentierung deaktiviert – Klicken zum Ein-/Ausklappen + + 1. Öffnen Sie den **Datei-Explorer**, klicken Sie mit der rechten Maustaste auf das C:-Laufwerk und wählen Sie **Eigenschaften**. + 2. Gehen Sie auf die Registerkarte **Tools** und klicken Sie auf **Optimieren**. + 3. Klicken Sie auf **Einstellungen ändern**. + 4. Deaktivieren Sie **Planmäßig ausführen** und klicken Sie auf **OK**. +
+ +#### Hochleistungsmodus aktivieren + +Die Energiemanagementfunktionen in Windows sind für Laptops und Desktops entwickelt, um Energie zu sparen. In einer %%VM|vm%%-Umgebung können diese Funktionen die Leistung unnötig drosseln oder Ihre %%VM|vm%% in den Ruhezustand versetzen, was sie weniger reaktionsschnell und schwerer zu verwalten macht. + +Die Aktivierung des Modus **Hochleistung** stellt sicher, dass Ihre %%VM|vm%% jederzeit mit voller Geschwindigkeit läuft und weniger wahrscheinlich Pausen oder unerwartete Aussetzungen auftreten. + +
+ Wie man den Hochleistungsmodus aktiviert – Klicken zum Ein-/Ausklappen + + 1. Öffnen Sie die **Systemsteuerung** und suchen Sie nach "Energie". + 2. Klicken Sie auf **Energieplan auswählen**. + 3. Wählen Sie **Hochleistung** unter **Bevorzugte Pläne** aus. +
+ +#### Zugriff auf Remote-Desktop aktivieren + +Das Remote-Desktop-Protokoll (RDP) ermöglicht Ihnen den Zugriff auf Ihre Windows-%%VM|vm%% von einem anderen Gerät aus. Es bietet bessere Leistung und Kompatibilität im Vergleich zu %%VNC|vnc-sitzung%%. Beachten Sie, dass RDP nur auf Windows Professional- und Enterprise-Editionen unterstützt wird. Außerdem muss Ihr Windows-Benutzerkonto **ein Passwort** besitzen. + +:::caution +RDP ist auf den Windows Home-Editionen nicht verfügbar. Setzen Sie immer ein sicheres Passwort für Ihr Windows-Benutzerkonto, bevor Sie RDP aktivieren. +::: + +
+ Wie man den Remote-Desktop-Zugriff (RDP) aktiviert – Klicken zum Ein-/Ausklappen + + Um RDP-Zugriff zu aktivieren, folgen Sie diesen Schritten: + + 1. Drücken Sie **Windows + I**, um die Einstellungen zu öffnen, navigieren Sie dann zu ***System → Info*** und klicken Sie auf **Erweiterte Systemeinstellungen**. + 2. Im Fenster Systemeigenschaften klicken Sie auf die Registerkarte **Remote**, dann wählen Sie **Remote Desktop aktivieren**. + 3. Klicken Sie auf **OK**, um die Änderungen zu bestätigen. + 4. Von Ihrem Client-Gerät aus verwenden Sie einen Microsoft RDP-Client, um sich mit der **IP-Adresse der %%VM|vm%%** (nicht mit dem Unraid-Server) zu verbinden. + + :::tip + Offizielle Microsoft RDP-Clients sind für Windows, Mac, Android und iOS verfügbar. Stellen Sie sicher, dass Ihr %%VM|vm%% in einem Netzwerkbridge ist, das LAN-Zugriff ermöglicht. + ::: +
+ +#### HDMI-Audio mit MSI-Interrupts beheben + +Wenn Sie Probleme mit HDMI-Audio in einer Windows-%%VM|vm%% haben, die %%GPU Passthrough|gpu-passthrough%% verwendet (was häufig bei NVIDIA-Grafikkarten auftritt), kann die Aktivierung von Message Signaled Interrupts (MSI) hilfreich sein. MSI verbessert die Art und Weise, wie Interrupts für durchgereichte Geräte verwaltet werden. + +
+ Wie aktiviert man MSI-Interrupts – Klicken zum Ein-/Ausklappen + + :::caution + Sichern Sie Ihre %%VM|vm%%, bevor Sie Änderungen an der Registrierung vornehmen. Falsche Modifikationen können Systeminstabilität verursachen. + ::: + + 1. **MSI-Fähigkeit überprüfen:** + - Starten Sie Ihre %%VM|vm%% mit aktiviertem %%GPU-Passthrough|gpu-passthrough%%. + - Greifen Sie über [Webterminal oder SSH](../../system-administration/advanced-tools/command-line-interface.mdx) auf Unraid zu. + - Führen Sie den Befehl `lspci -v -s 01:00.0` aus (ersetzen Sie `01:00.0` durch die PCI-Adresse Ihrer GPU). + - Suchen Sie nach der Zeile: `Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+`. + + 2. **MSI in Windows einschalten:** + - Wenn MSI `Enable-` anzeigt, folgen Sie [Microsofts Anleitung](https://learn.microsoft.com/de-de/windows-hardware/drivers/kernel/enabling-message-signaled-interrupts-in-the-registry) oder nutzen Sie das [MSI Mode Utility](https://forums.guru3d.com/threads/windows-line-based-vs-message-signaled-based-interrupts-msi-tool.378044/), um die Windows-Registrierungseinstellungen zu ändern. + - Starten Sie die %%VM|vm%% nach den Änderungen neu. + + Für weitere technische Details siehe [VFIO-Interrupts erklärt](https://vfio.blogspot.com/2014/09/vfio-interrupts-and-how-to-coax-windows.html). +
+ +--- + +### Upgrade zu Windows 11 + +Windows 11 erfordert TPM 2.0 und sicheren Start. Das **OVMF-TPM-BIOS** von Unraid bietet den virtuellen TPM-Support, der für diese Anforderungen benötigt wird. + +:::important[Before aktualisierung] +- Erstellen Sie eine vollständige Sicherung Ihrer %%VM|vm%%. +- Stellen Sie sicher, dass Unraid Version 6.10 oder später ausgeführt wird. +- Überprüfen Sie, ob Ihre Windows 10 %%VM|vm%% die [Systemanforderungen von Windows 11](https://www.microsoft.com/en-us/windows/windows-11-specifications) erfüllt. +::: + +Um TPM-Unterstützung hinzuzufügen: + +1. Fahren Sie Ihren Windows 10 %%VM|vm%% herunter. +2. Bearbeiten Sie die %%VM|vm%%-Einstellungen. +3. Ändern Sie das **BIOS** von *%%OVMF|ovmf%%* zu *%%OVMF|ovmf%%-TPM*. +4. Speichern Sie die Änderungen und starten Sie die %%VM|vm%%. + +#### Upgrade-Methoden + + + + + + + + + + + +## Erweitern von Windows-VM-vDisk-Partitionen + +:::caution[Data Verlustrisiko] +Das Erweitern oder Ändern von %%vDisk|vdisk%%- und Partitionslayouts kann zu irreversiblen Datenverlusten führen, wenn es nicht sorgfältig durchgeführt wird. Erstellen Sie immer ein vollständiges Backup oder einen Schnappschuss Ihrer %%VM|vm%%, bevor Sie fortfahren. +::: + +Nachdem Sie Ihren %%vDisk|vdisk%% gemäß den oben beschriebenen Schritten unter [Erweiterung eines vDisk](../create-virtual-machines/vm-setup.mdx#expand-a-vdisk) erweitert haben, kann es vorkommen, dass die Standard-Wiederherstellungspartition von Windows Sie daran hindert, Ihre Systempartition (C:) einfach zu erweitern, um den neuen Speicherplatz zu nutzen. Um dieses Problem zu lösen, müssen Sie die Wiederherstellungspartition löschen und dann das Windows-Datenträgerverwaltungsprogramm verwenden, um die Partition zu erweitern. + +
+ ![Resize vDisk 2](/img/Resize_vdisk_2.png) +
+ +Nachdem Sie die anfängliche %%vDisk|vdisk%%-Erweiterung abgeschlossen haben: + +1. Starten Sie Ihre Windows-VM. +2. **Öffnen Sie die Eingabeaufforderung:** Drücken Sie die Windows-Taste, tippen Sie `cmd` ein und drücken Sie Enter. +3. **Starten Sie diskpart:** Geben Sie `diskpart` ein und drücken Sie Enter. +4. **Listen Sie die Datenträger auf:** Geben Sie `list disk` ein und drücken Sie Enter. +5. **Wählen Sie den erweiterten Datenträger aus:** Geben Sie `select disk #` ein und ersetzen Sie `#` durch die richtige Datenträgernummer. +6. **Listen Sie die Partitionen auf:** Geben Sie `list partition` ein und drücken Sie Enter. +7. **Identifizieren Sie die Wiederherstellungspartition:** Suchen Sie nach der Wiederherstellungspartition, die nach Ihrer primären Partition kommt. +8. **Wählen und löschen Sie die Wiederherstellungspartition:** + - Geben Sie `select partition #` ein und ersetzen Sie `#` durch die Nummer der Wiederherstellungspartition. + - Geben Sie `delete partition override` ein und drücken Sie Enter. +9. **Erweitern Sie die C:-Partition:** + - Klicken Sie mit der rechten Maustaste auf das Startmenü und wählen Sie **Datenträgerverwaltung**. + - Klicken Sie mit der rechten Maustaste auf die Partition, die Sie erweitern möchten (normalerweise C:), und wählen Sie **Volume erweitern...**. + - Folgen Sie den Aufforderungen, um den nicht zugewiesenen Speicherplatz zu nutzen. + +
+
+ vDisk 3 anpassen +
+ +
+ vDisk 4 anpassen +
+
+ +:::tip +Sie müssen die Wiederherstellungspartition nur entfernen, wenn sie den Zugriff auf angrenzenden freien Speicherplatz blockiert. Wenn der nicht zugeordnete Speicherplatz bereits neben Ihrer C:-Partition liegt, können Sie ihn erweitern, ohne etwas zu löschen. +::: + +:::warning +Änderungen an Festplattenpartitionen sind dauerhaft und können nicht rückgängig gemacht werden. Stellen Sie sicher, dass Ihre Daten sicher gesichert sind, bevor Sie Partitionen löschen. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json new file mode 100644 index 0000000000..6513a26f69 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Erfahrung anpassen", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/image.png b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/image.png new file mode 100644 index 0000000000000000000000000000000000000000..1fc01b17c6607b200175785113b5810c2f0454ef GIT binary patch literal 562 zcmV-20?qx2P)3>* zO-~b16o${(X{UGQeoUoPkmG!bH@ z#iFH&@ejCiVQ}rrwg17rMiUXP8N`+tIC&N)Ie8ZEn*;2qL70vYXcv<@c<_IBP*vuU z3Ah#T;4Xkn!~b*Dx^XT9qCzPH3A+$c83TlAZm6%CAE-`8s@4HFCqs|U$9OHbQ_Gby zhKy+?8@@26%a{U)%B#z9{$`f9ihOJ4fc6Z3UEE!>c(d^J@#Ij@zqe+6x^qVG5&*Z- zSTgy`{Db+ys}n{g8?I!-*CvenbA!B=`}I7xkkoxD`~GxldnI||uds2+t8J(>F0$*9IcV>Qn!CM?02_Dot7}6 zvHqS+td~;O=l6ZSo90`^Wh*iq^rxeN4w+c*aL`XE1C=p^se3=4%S&|4_vPW)#Z(Xk z*)5YUh + ![Languages - Community Apps](/img/languages_CA.png) + + +4. Suchen Sie Ihr bevorzugtes Sprachpaket und klicken Sie auf den ![Download](/img/download_button_icon.png) **Download**-Knopf. +5. Das Sprachpaket wird installiert und steht zur Auswahl. + +Sie können auch die Suchleiste in den Community Applications verwenden, um Sprachpakete zu finden. + +:::tip[How zurück zu Englisch wechseln] +Um zum Englischen zurückzukehren, klicken Sie im oberen rechten Bereich der %%WebGUI|web-gui%% auf den Umschalter ![Wechsel-Toggle](/img/switch_toggle_icon.png) **Wechsel-Toggle**. Dieser Knopf wechselt zwischen Englisch und Ihrer zuletzt ausgewählten Sprache. +::: + +## Entwickleranforderungen für die Unterstützung mehrerer Sprachen + +Um mehrsprachige Unterstützung in Ihrem Unraid-Plugin zu aktivieren, stellen Sie bitte sicher, dass Ihr Plugin die folgenden Anforderungen erfüllt: + +- Verwenden Sie die integrierten Sprachfunktionen von Unraid für alle benutzerbezogenen Texte. +- Stellen Sie eine englische Übersetzungs-Masterdatei als Referenz für Community-Übersetzer bereit. +- Erlauben Sie Community-Mitgliedern, Übersetzungen für andere unterstützte Sprachen beizutragen. + +Obwohl es keine strikte Anforderung für Plugins gibt, mehrere Sprachen zu unterstützen, verbessert dies die Zugänglichkeit und Benutzerfreundlichkeit für die globale Unraid-Community. Plugins ohne Mehrsprachigkeit funktionieren trotzdem, aber alle Interface-Texte erscheinen auf Englisch (oder in der vom Entwickler kodierten Sprache). + +:::note +Wenn Sie Hilfe benötigen oder zu Übersetzungen beitragen möchten, besuchen Sie den [Mehrsprachigen Abschnitt der Unraid-Foren](https://forums.unraid.net/forum/75-multi-language-section/), um sich mit anderen Benutzern auszutauschen, die Ihre Sprache sprechen. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx new file mode 100644 index 0000000000..5556193d81 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx @@ -0,0 +1,3 @@ +1. Starten Sie Ihren Unraid-Server neu. +2. Wählen Sie im Boot-Menü den **Unraid OS Abgesicherten Modus**. +3. Drücken Sie die Eingabetaste, um fortzufahren. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx new file mode 100644 index 0000000000..4cf5902305 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx @@ -0,0 +1,5 @@ +Bevorzugt, da es nicht einmal ein mit Ihrem Server verbundenes Display erfordert. + +1. Gehen Sie im **%%WebGUI|web-gui%%** zu ***Main → Array Operation***. +2. Aktivieren Sie das **Neustart im abgesicherten Modus**-Feld. +3. Klicken Sie auf **Neustart**, um Ihren Server direkt im Abgesicherten Modus neu zu starten - keine Tastatur oder Monitor erforderlich. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx new file mode 100644 index 0000000000..addb8d31a8 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx @@ -0,0 +1,69 @@ +--- +sidebar_position: 1 +sidebar_label: Plugins +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import SafeModePreferred from './partials/safe-mode-preferred.mdx'; +import SafeModeAlternative from './partials/safe-mode-alternative.mdx'; + +# Plugins + +Plugins sind Softwareerweiterungen, die sich direkt in das Unraid OS integrieren. Sie ermöglichen es Ihnen, die Systemfunktionen zu erweitern oder erweiterte Funktionalitäten hinzuzufügen. + +:::tip +Immer wenn möglich, verwenden Sie [Docker-Container](../run-docker-containers/overview.mdx) für Anwendungen oder Dienste. Für Funktionen, die eine direkte Integration mit dem Unraid OS erfordern, reservieren Sie Plugins. +::: + +## Wann man Plugins verwendet + +Plugins sind für folgende Situationen geeignet: + +- Systemdienste oder Erweiterungen auf Systemebene, die direkten Zugriff auf Unraid OS oder das %%WebGUI|web-gui%% benötigen. +- Funktionen, die nicht als Docker-Container bereitgestellt werden können. + +Es wird empfohlen, Plugins für allgemeine Anwendungen zu vermeiden, die sicher in isolierten Containern ausgeführt werden können. + +## Plugin-Überlegungen + +Bevor Sie ein Plugin installieren, denken Sie an diese Aspekte: + +| Vorteile | Nachteile | +| ----------------------------------------------------------------- | ----------------------------------------------------------------- | +| Tiefe Integration mit Unraid OS und der %%WebGUI\|web-gui%% | Kann Systeminstabilität verursachen, insbesondere nach OS-Updates | +| Ermöglicht Funktionen auf Hardware- und Speicherebene | Voller Dateisystemzugriff erhöht Sicherheitsrisiken | +| Oft Open Source für Transparenz | Erfordert manuelle Wartung und Kompatibilitätsprüfungen | +| Notwendig für einige erweiterte Speicher- oder Netzwerkfunktionen | | + +:::important[Security Überlegungen] +- Installieren Sie nur Plugins von vertrauenswürdigen Quellen oder bekannten Entwicklern. +- Recherchieren Sie jedes Plugin vor der Installation; überprüfen Sie das Feedback der Community und die Aktualisierungshistorie. +- Halten Sie Plugins auf dem neuesten Stand und überprüfen Sie regelmäßig die installierten Plugins auf Kompatibilität. +::: + +## Plugins verwalten + +Sie können Plugins über die Registerkarte **Plugins** im Unraid **%%WebGUI|web-gui%%** verwalten. + +Wenn ein Plugin in den **[Community Applications](../run-docker-containers/community-applications.mdx)** verfügbar ist, wird empfohlen, es aus der Registerkarte **Apps** zu installieren, um zusätzliche Überprüfungen und Kompatibilitätschecks durchzuführen. + +:::note +Da Unraid sich ständig weiterentwickelt, können einige Plugin-Funktionen in das Basis-OS aufgenommen werden. Die Community-Anwendungen bieten nur Plugins an, die mit Ihrer aktuellen Version kompatibel sind, aber sie entfernen nicht automatisch bereits installierte inkompatible Plugins. Bevor Sie Unraid aktualisieren, lesen Sie die Versionshinweise der Zielversion, um spezielle Hinweise zu Ihren installierten Plugins zu überprüfen. +::: + +## Problemlösung im abgesicherten Modus + +Wenn Ihr System nach der Installation oder Aktualisierung von Plugins instabil wird, können Sie Probleme mit dem **Abgesicherten Modus** beheben. Der Abgesicherte Modus lädt nur die wesentlichen Komponenten und deaktiviert alle Plugins. + +So starten Sie im abgesicherten Modus: + + + + + + + + + + diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json new file mode 100644 index 0000000000..be59441e53 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Speicher verwalten", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx new file mode 100644 index 0000000000..5dfa366388 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx @@ -0,0 +1,119 @@ +--- +sidebar_position: 5 +sidebar_label: Apple Time Machine +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Apple Time Machine + +Apples Time Machine ist ein Sicherungstool, das bei jedem Mac enthalten ist. Es erleichtert den Schutz Ihrer Dateien, Anwendungen und Systemeinstellungen, indem es sie automatisch sichert. Indem Sie Time Machine mit Ihrem Unraid-Server verbinden, können Sie diese Sicherungen sicher auf Ihrer eigenen Hardware speichern. Diese Einrichtung gibt Ihnen nicht nur mehr Kontrolle, sondern ermöglicht auch eine einfachere Skalierbarkeit und zusätzlicher Seelenfrieden. + +::::note[macOS kompatibilität] +This guide applies to macOS Ventura (13.x), Sonoma (14.x), and Sequoia (15.x) versions. Some features, such as %%SMB|samba%% enhancements and Time Machine support over %%SMB|samba%%, require macOS versions that support these protocols. + +Für die besten Ergebnisse sollten Sie Ihren Mac auf die neueste mit Ihrer Hardware kompatible macOS-Version aktualisieren. +:::caution[macOS Sequoia (15.x)-Überlegungen] +Einige Nutzer berichten von sporadischen Problemen mit Time Machine und Netzlaufwerken auf macOS Sequoia. Sollte es bei Ihnen zu Backup-Fehlern kommen, ziehen Sie in Betracht, den [Time Machine Docker-Container](https://unraid.net/community/apps?q=time+machine#r) als Alternative zu nutzen. +::: +:::: + +::: + +::: + +::: + +::: + +## Erstellen einer Time Machine-Freigabe + +:::caution[Before Sie beginnen] +Stellen Sie sicher, dass **%%SMB|samba%%** im %%WebGUI|web-gui%% aktiviert ist: + +1. Gehen Sie zu ***Einstellungen → SMB*** unter „Netzwerkdienste“. +2. Setzen Sie **%%SMB|samba%% aktivieren** auf **Ja** (Sie müssen das %%array|array%% anhalten, um dies zu ändern). +3. Setzen Sie **Erweiterte macOS-Interoperabilität** auf **Ja**. + +
+ ![Erweiterte MacOS-Interoperabilität](/img/enhancedmacos.png) +
+::: + +Um eine Time Machine-Freigabe zu erstellen: + +1. Gehen Sie im %%WebGUI|web-gui%% zu **Shares** und klicken Sie auf **%%user share|user-share%% hinzufügen**. + +2. Konfigurieren Sie die folgenden Einstellungen: + + | Einstellung | Beschreibung | + | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | **%%Benutzerfreigabe\|benutzerfreigabe%% Name** | Benennen Sie Ihren %%user share\|user-share%% (z. B. Time Machine). | + | **Mindestfreier Speicherplatz** | Setze auf **1** (1 KB) für beste Ergebnisse. Dies verhindert, dass Time Machine fehlschlägt, wenn die Festplatten die Kapazität erreichen. | + | **Eingeschlossene Festplatte(n)** | Wählen Sie die Festplatte(n) im %%array\|array%% aus, die für die Time Machine %%user share\|user-share%% verwendet werden sollen. | + | **Copy-on-write aktivieren** | Lassen Sie es auf **Auto** für beste Leistung. | + | **%%SMB\|samba%% Export** | Setzen Sie auf **Ja (Time Machine)**, um die Unterstützung für Time Machine zu aktivieren. | + | **Time Machine-Volume-Größe** | Setzen Sie auf die gewünschte maximale Größe oder lassen Sie es ungesetzt. Wenn Sie den freien Speicherplatz nicht auf 1 festlegen, wenden Sie zuerst die Freigabe an, bearbeiten Sie anschließend erneut und setzen Sie die Volume-Größe auf kleiner als den berechneten minimalen freien Speicherplatz, der angezeigt wird. | + | **Sicherheitseinstellungen** | Konfigurieren Sie die %%SMB\|samba%% Sicherheitsparameter nach Wunsch. | + +3. Klicken Sie auf **Anwenden**, um die %%usershare|user-share%% zu erstellen. + +Für weitere Details zum Erstellen und Verwalten von Freigaben siehe [Benutzerfreigaben](./shares.mdx). + +## Vom macOS aus verbinden + +Um sich von Ihrem Mac mit Ihrer %%usershare|user-share%% zu verbinden: + +1. Drücken Sie im **Finder** **Command + K**, um das Fenster „Mit Server verbinden“ zu öffnen. +2. Enter the %%SMB|samba%% address of your Unraid server. For example, use the format `smb://[server-ip]/[Time Machine share name]` and click **Connect**. +3. Wenn Sie dazu aufgefordert werden, geben Sie Ihren Unraid-Benutzernamen und Ihr Passwort ein, das Zugriff auf die Freigabe hat, und klicken Sie dann auf **Verbinden**. +4. Öffnen Sie **Systemeinstellungen**, wenn Sie macOS Ventura 13.0 oder neuer verwenden, oder **Systemeinstellungen**, wenn Sie macOS Monterey 12.x oder früher verwenden. Navigieren Sie dann zu **Time Machine**. +5. Klicken Sie auf **Datenträger auswählen** oder **Sicherungsdatenträger hinzufügen**, wählen Sie Ihre Unraid Time Machine %%usershare|user-share%% aus, und klicken Sie dann auf **Disk verwenden**. +6. (Optional) Wenn Sie Ihre Sicherung mit einem Passwort sichern möchten, aktivieren Sie **Verschlüsselung**. +7. Falls Sie dazu aufgefordert werden, bestätigen Sie die Verbindung und geben Sie ggf. erneut die Unraid %%root user|root-user%%-Anmeldedaten ein. +8. Time Machine startet automatisch das initiale Backup. Beachten Sie, dass das erste Backup einige Zeit in Anspruch nehmen kann, aber zukünftige Backups schneller sind, da sie inkrementell sind. + +:::tip +Für mehr Kontrolle über die Sicherungsplanung und -optionen ziehen Sie ein Drittanbieter-Tool wie [Time Machine Editor](https://tclementdev.com/timemachineeditor/) in Betracht. + +
+ ![Time Machine Editor](/img/TimeMachineEditor.png) +
+::: + +## Mehrere Time Machine-Setups + +:::tip +Für Familien oder Umgebungen mit mehreren Macs bietet diese Methode eine klare Trennung von Backups, verbessert die Sicherheit und vereinfacht die Verwaltung. +::: + +Um separate Backups für verschiedene Benutzer oder Macs auf Ihrem Unraid-Server zu erstellen: + +1. **Erstellen Sie einzigartige Unraid %%root user|root-user%%-Konten** für jede Person oder jeden Mac, die Daten sichern möchten. Zum Beispiel Benutzer namens `larry`, `curly` und `moe`. Dies stellt sicher, dass jeder Benutzer seine eigene Identität und Berechtigungen hat. + +2. **Erstellen Sie individuelle Time Machine %%user shares|user-share%%** für jeden Benutzer und benennen Sie diese klar, um mit dem Benutzer übereinzustimmen, beispielsweise `tm-larry`, `tm-curly` und `tm-moe`. Die Trennung der Freigaben hilft bei der Verwaltung von Speicher und Zugriff für jeden Benutzer. + +3. **Weisen Sie geeignete Benutzerberechtigungen** für jede %%usershare|user-share%% zu: + - Set the %%user share|user-share%%'s %%SMB|samba%% security settings to ensure that only the corresponding user has access. + - Stellen Sie sicher, dass nur der beabsichtigte Benutzer auf seine Time Machine %%user-share|user-share%% lesend und schreibend zugreifen kann. + +4. **Konfigurieren Sie Time Machine auf jedem Mac**, um sich mit seiner vorgesehenen %%user-share|user-share%% zu verbinden: + - On each Mac, connect to the Unraid server using the %%SMB|samba%% path for their specific %%user share|user-share%% (e.g., `smb://unraid-server/tm-larry`). + - Befolgen Sie die üblichen Schritte zum Einrichten von Time Machine, um die %%usershare|user-share%% als Sicherungsdisk auszuwählen. + +5. **Überwachen und verwalten Sie die Speichernutzung**: + - Sie können optional Volumengrößenlimits für jede Time Machine %%user-share|user-share%% einstellen, um zu verhindern, dass ein Benutzer zu viel Speicherplatz einnimmt. + - Überprüfen Sie regelmäßig die Nutzung und passen Sie die Quoten bei Bedarf an. + +Weitere Informationen zum Benutzer- und Sicherheitsmanagement finden Sie unter [Benutzerverwaltung](../../system-administration/secure-your-server/user-management.mdx). + +## Fehlerbehebung + +Wenn Time Machine-Sicherungen fehlschlagen oder unzuverlässig werden: + +1. **Versuchen Sie den Time Machine Docker-Container**: [Verfügbar über Community-Anwendungen](https://unraid.net/community/apps?q=time+machine#r), diese Option kann stabilere Sicherungen bereitstellen als direkte %%SMB|samba%% %%user-share|user-share%%. +2. **Überprüfen Sie die macOS-Firewall**: Deaktivieren Sie vorübergehend die Firewall, um zu sehen, ob Verbindungen blockiert werden. +3. **Erstellen Sie ein frisches Sicherungsziel**: Löschen und erneuern Sie die Time Machine %%user-share|user-share%%, falls die Probleme weiterhin bestehen. + +Für zusätzliche Hilfe bei der Fehlerbehebung siehe [Fehlerbehebung](../../troubleshooting/troubleshooting.mdx) oder besuchen Sie die [Unraid-Foren](https://forums.unraid.net/). diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx new file mode 100644 index 0000000000..d048c06f22 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx @@ -0,0 +1,977 @@ +--- +sidebar_position: 2 +sidebar_label: Arraykonfiguration +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import AddDataDiskParityProtected from './partials/add-data-disk-parity-protected.mdx'; +import AddDataDiskNoParity from './partials/add-data-disk-no-parity.mdx'; +import ParitySwapWhat from './partials/parity-swap-what.mdx'; +import ParitySwapWhen from './partials/parity-swap-when.mdx'; +import RemoveDataDiskStandard from './partials/remove-data-disk-standard.mdx'; +import RemoveDataDiskParityPreserve from './partials/remove-data-disk-parity-preserve.mdx'; +import ArrayCheckParity from './partials/array-check-parity.mdx'; +import ArrayCheckRead from './partials/array-check-read.mdx'; +import TroubleshootMissingDisks from './partials/troubleshoot-missing-disks.mdx'; +import TroubleshootDeviceLimit from './partials/troubleshoot-device-limit.mdx'; +import TroubleshootLicenseIssues from './partials/troubleshoot-license-issues.mdx'; +import TroubleshootKeyServer from './partials/troubleshoot-key-server.mdx'; +import TroubleshootWithdrawnRelease from './partials/troubleshoot-withdrawn-release.mdx'; + +# Arraykonfiguration + +Unraid's storage system combines flexibility with data protection through its %%array|array%% and %%cache|cache%% architecture. The %%array|array%% manages your primary storage with optional %%parity|parity%% protection, while cache pools accelerate performance. + +Im Folgenden sind einige wichtige Prinzipien der Array-Konfiguration aufgeführt: + +
+ Verwenden Sie immer Ihr(e) größte(n) Laufwerk(e) für die Parität. + + When you add more disks to your %%array|array%% later, remember that you can't use a data disk that's larger than your %%parity disks|parity-drives%%. It's a good idea to buy the biggest hard drive for your %%parity disks|parity-drives%% at the start. This way, you won't be limited by smaller sizes when expanding later. + + If you use two %%parity disks|parity-drives%%, they can be different sizes. However, keep in mind that no disk in your %%array|array%% can be larger than the smallest %%parity disks|parity-drives%% you have. +
+ +
+ Verwenden Sie keine SSDs im Array - Bewahren Sie diese für Pools oder unangewiesene Geräte auf. + + Unraid does not support TRIM or Discard operations for SSDs in the main array. Over time, this will cause SSD performance to degrade if they are used as array members. For best results, use SSDs in %%cache pools|cache-pool%% or as unassigned devices, where these features are supported and long-term performance is maintained. Most modern SSDs, including NVMe, work well in these roles. +
+ +
+ Die Verwendung eines Caches wird die Schreibgeschwindigkeit des Arrays verbessern. + + Instead of writing directly to the main storage, data is first sent to a dedicated disk or a group of disks. This data is then moved to the main storage at scheduled times, usually once a day at 3:40 AM. The great thing is that data saved to the %%cache|cache%% still appears through your %%user shares|user-share%%, so you don't have to change how you access your files. +
+ +
+ Ein Cache-Pool hilft, Ihre zwischengespeicherten Daten zu sichern. + + Using only one cache device puts your cached data at risk until it is moved to the main array. To protect your data at all times, use multiple devices configured as a %%cache pool|cache-pool%%. This setup provides redundancy for cached data, reducing the chance of data loss due to a cache device failure. +
+ +
+ SSD-Cache-Geräte sind ideal für Apps und virtuelle Maschinen. + + Using SSDs helps applications and virtual machines (VMs) run faster because they can access data more quickly. SSDs work well in a %%cache pool|cache-pool%%, giving you an excellent mix of speed, efficiency, and data security. +
+ +
+ Verschlüsselung ist standardmäßig deaktiviert. + + Wenn Sie die Verschlüsselung auf Ihrem System verwenden möchten, müssen Sie das Laufwerk mit einem verschlüsselten Dateisystemtyp neu formatieren - dabei werden alle vorhandenen Daten auf dem Laufwerk gelöscht. Bevor Sie die Verschlüsselung aktivieren, verschieben Sie Ihre Daten von der Festplatte, ändern Sie das Dateisystem in eine verschlüsselte Option, formatieren Sie die Festplatte und verschieben Sie dann Ihre Daten zurück. Weitere Einzelheiten finden Sie unter [How to encrypt a drive in Unraid](../../system-administration/secure-your-server/securing-your-data.mdx#how-to-encrypt-a-drive-in-unraid). + + Bedenken Sie, dass die Verwendung von Verschlüsselung die Wiederherstellung von Daten erschweren kann, wenn etwas schief läuft. Verwenden Sie sie daher nur, wenn Sie sie wirklich benötigen. +
+ +:::info[Disk Erkennung und Anschlusserkennung] +Unraid identifiziert Festplatten anhand ihrer Seriennummern und Größen, nicht basierend auf den spezifischen SATA-Ports, an die sie angeschlossen sind. Das bedeutet, dass Sie die Laufwerke zwischen verschiedenen SATA-Ports wechseln können, ohne die Zuweisungen in Unraid zu beeinflussen. Diese Funktion ist besonders nützlich bei der Fehlerbehebung von Hardwareproblemen, wie dem Auffinden eines fehlerhaften Ports oder dem Ersetzen von unzuverlässigen Strom- oder SATA-Kabeln. +::: + +:::caution +Ihr Array wird nicht gestartet, wenn Sie mehr Geräte zuweisen oder anschließen, als Ihr Lizenzschlüssel erlaubt. +::: + +## Array starten/stoppen + +Wenn Ihr System hochfährt, startet es normalerweise automatisch die Festplattenablage. Wenn Sie jedoch kürzlich die Festplattenkonfiguration geändert haben, wie z.B. das Hinzufügen einer neuen Festplatte, bleibt die Ablage ausgeschaltet, um Ihnen die Möglichkeit zu geben, Ihre Konfiguration zu überprüfen. + +:::caution +Beachten Sie, dass Sie die Ablage zuerst stoppen müssen, um Anpassungen vorzunehmen. Beim Stoppen werden alle Docker-Container und Netzwerkeinfreigaben vollständig gestoppt, VMs heruntergefahren oder in den Ruhezustand versetzt, und Ihre Speichermedien werden ausgehängt. Ihre Daten und Anwendungen sind unzugänglich, bis Sie die Ablage erneut starten. +::: + +So starten oder stoppen Sie das Array: + +1. Klicken Sie auf die Registerkarte **Haupt**. +2. Navigieren Sie zum Abschnitt **Array-Betrieb**. +3. Klicken Sie auf **Start** oder **Stopp**. Möglicherweise müssen Sie das Kontrollkästchen aktivieren, das besagt "Ja, ich möchte dies tun", bevor Sie fortfahren. + +--- + +## Array-Betrieb + +Unraid bietet mehrere Wartungs- und Konfigurationsoptionen für Ihre Speicherablage. Zu den wichtigsten Operationen gehören: + +import DocCardList from '@theme/DocCardList'; + + + +--- + +### Festplatten hinzufügen + +#### Neue Festplatten einrichten + +1. Gehen Sie zu ***Main → Array Devices*** in der Benutzeroberfläche. +2. Wählen Sie den Steckplatz, an dem Sie die Festplatte hinzufügen möchten, und wählen Sie die Festplatte aus der Dropdown-Liste. +3. Standardmäßig werden neue Festplatten der Ablage mit %%XFS|xfs%% formatiert. Wenn Sie stattdessen %%ZFS|zfs%% oder %%BTRFS|btrfs%% verwenden möchten, wählen Sie Ihr bevorzugtes Dateisystem aus dem Dropdown-Menü. + +:::tip[Hot-Swap Feature] +Wenn Sie moderne mit Unraid kompatible Hardware verwenden, können Sie Festplatten austauschen, ohne den Server herunterzufahren. Diese Funktion, bekannt als Hot-Swap, ist seit Anbeginn in LimeTech-Servern verfügbar. +::: + +#### Clear vs. Pre-Clear + +Unraid benötigt Festplatten im gelöschten Zustand - vollständig mit Nullen gefüllt und mit einer speziellen Signatur versehen - bevor sie in eine Parity-geschützte Ablage aufgenommen werden. Dieser Prozess gewährleistet die Parity-Integrität und hält die Ablage während der Festplattenvorbereitung online. + +Clearance is mandatory when adding a data disk to a %%parity|parity%%-protected array. If you are adding a %%parity disk|parity-drives%% or working with an array that does not use %%parity|parity%%, clearance is not required. + +Der eingebaute Löschvorgang schreibt Nullen im Hintergrund auf die Festplatte, sodass die Ablage verfügbar bleibt. Sobald der Vorgang abgeschlossen ist, muss die Festplatte vor der Verwendung formatiert werden. Diese Methode ist effizient, erfordert keine Drittanbieter-Tools und eignet sich ideal für schnelle Erweiterungen. + +Für einen gründlicheren Ansatz führt das Pre-Clear-Verfahren - verfügbar über Plugins wie [Unassigned Devices Preclear](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=enable%20destructive%20mode.-,Unassigned%20Devices%20Preclear,-dlandon) - ein Vorlesen zur Überprüfung auf fehlerhafte Sektoren durch, nullt die Festplatte und überprüft dann die Integrität mit einem Nachlesen. Dieser zusätzliche Schritt hilft, frühe Festplattendefekte zu erkennen, benötigt jedoch deutlich mehr Zeit und erfordert die manuelle Installation des Plugins. + +**Faustregel:** Verwenden Sie den integrierten Löschvorgang für schnelle Ergänzungen zu Ihrem Array oder wählen Sie Pre-Clear, wenn Sie umfangreiche Tests der Festplattengesundheit durchführen möchten, bevor Sie eine Festplatte in Betrieb nehmen. + +

Clear vs. Pre-Clear Vergleich

+ +
+ | | Löschen | Pre-Clear | + | ---------------------------- | ----------------------------------------- | -------------------------------------------------------- | + | **Zweck** | Gewährleistet grundlegende Kompatibilität | Testet das Laufwerk und bereitet es zur Nutzung vor | + | **Geschwindigkeit** | Funktioniert schnell | Viel langsamerer Vorgang | + | **Auswirkung auf das Array** | Läuft im Hintergrund | Erfordert die Entfernung der Festplatte aus dem Gebrauch | + | **Am besten geeignet für** | Ideal für schnelle Erweiterungen | Vorteilhaft für die Überprüfung neuer Festplatten | +
+ +**Clear** bereitet eine Festplatte schnell zur Nutzung vor, macht sie mit Ihrem System kompatibel und ermöglicht es Ihnen, Speicher in wenigen Stunden hinzuzufügen. + +**Pre-Clear** dauert länger, bietet aber einen gründlichen Test und stellt sicher, dass eine neue Festplatte zuverlässig ist, bevor sie Teil Ihres Arrays wird. + +:::caution[Critical Note] +Vermeiden Sie es, eine vorgeklärte Festplatte zu formatieren, bevor Sie sie dem Array hinzufügen, da dies die Clearance-Signatur entfernt. +::: + +#### Daten-Festplatten hinzufügen + +Das Hinzufügen von Datenfestplatten ist eine großartige Möglichkeit, den Speicherplatz Ihrer Unraid-Ablage zu vergrößern. Indem Sie mehr Festplatten hinzufügen, können Sie mehr Dateien, Anwendungen und Backups aufbewahren und gleichzeitig Ihre Daten schützen. + +:::important[Important Note:] +When adding a new data disk, it must be the same size or smaller than your current %%parity disks|parity-drives%%. If you want to use a larger disk, you'll need to replace the %%parity disks|parity-drives%% first with the larger one, then use the old %%parity disks|parity-drives%% as a data disk. +::: + +
+ So fügen Sie eine Datenfestplatte hinzu + + ```mdx-code-block + + + + + + + + + + + ``` +
+ +#### Paritätsfestplatten hinzufügen + +%%Parity disks|parity-drives%% are a helpful feature that provide an extra layer of protection for your data. They allow your storage system to recover information if a hard drive fails. While using %%parity disks|parity-drives%% is optional, it's highly recommended to keep your data safe. + +:::important\[Requirements] + +- **Einzelparität:** Die Festplatte muss mindestens so groß sein wie Ihre größte Datenfestplatte. +- **Dual Parity:** Both %%parity disks|parity-drives%% must also be at least the size of your largest data drive, but they can be different sizes from each other. + +::: + +Adding a %%parity disk|parity-drives%% is similar to adding a data disk, but there's one important step to keep in mind: + +1. After you select the %%parity disk|parity-drives%% and start your storage array, a process called **parity calculation** begins. +2. Während dieses Vorgangs können Sie weiterhin auf Ihre Dateien zugreifen. Allerdings könnte das System etwas langsamer laufen, da es an der Berechnung der Parität arbeitet. + +
+ Im Detail: Was ist Parität und warum ist sie wichtig? - Klicken, um zu erweitern/zu verkleinern + + %%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. + + Unraid verwendet diese Echtzeit-Parität für zwei primäre Zwecke: + + - Daten wiederherstellen, wenn ein Laufwerk ausfällt + - Fehler korrigieren, wenn ein defekter Sektor gefunden wird + + Diese Funktion ermöglicht es Ihnen, Ihre Daten sicher zu schützen, auch wenn Festplatten im Laufe der Zeit ausfallen werden. +
+ +
+ Im Detail: Wie funktioniert Unraid Parität? - Klicken, um zu erweitern/zu verkleinern + + Unraid works with a special bit called the *parity bit*, which is stored for each bit position across all data disks and is 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, a process known as even parity. + + Unraid verwendet diese Echtzeit-Parität für zwei primäre Zwecke: + + - Unraid verwendet die XOR (exklusive ODER) Operation für diese Berechnung. + - Zum Beispiel, wenn Sie vier Laufwerke haben und deren 57. Bits sind 1, 1, 1, 1, dann ist das Paritätsbit für diese Position 0 (weil 1 + 1 + 1 + 1 + 0 = gerade). + - Wenn die 57. Bits jedoch 1, 0, 0, 0 sind, wird die %%parity|parity%% für diese Position 1 sein (um sicherzustellen, dass die Summe gerade bleibt). + + Beim Hinzufügen eines neuen Laufwerks löscht Unraid es zuerst, indem es Nullen auf alle Bits schreibt. Dadurch kann es schnell in die geschützte Ablage einbezogen werden, da das Schreiben von Nullen die aktuellen Paritätsberechnungen nicht beeinträchtigt. +
+ +
+ Im Detail: Wie funktioniert die Parität bei Unraid? - Klicken zum Erweitern/Zusammenklappen + + Unraid works with a special bit called the *parity bit*, which is stored for each bit position across all data disks and is 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, a process known as even parity. + + - It reads all remaining drives, including the %%parity disk|parity-drives%%. + - Er wendet die gerade %%parity|parity%% an, um die fehlenden Daten zu rekonstruieren. + + Zum Beispiel, wenn Laufwerk 2 ausfällt: + + - If the related bits are 1, 1, 1 (in addition to the %%parity|parity%%), Unraid calculates: 1 + x + 1 + 1 + 0 = even. Here, x must be 1 to maintain an even total. + - Wenn die Bits 1, x, 0, 0, 1 = gerade anzeigen, wird x 0 sein. + + This %%parity|parity%% feature allows Unraid to "simulate" the missing disk. You can continue using the array as if the drive were still functional. Once you install a new drive in the failed slot, Unraid will recreate all the missing data based on the current state of %%parity|parity%% and the other disks. + + To ensure ongoing protection and effective recovery, it's important to run regular %%parity checks|parity-check%%. +
+ +
+ Im Detail: Wie werden Daten mit Parität rekonstruiert? - Klicken zum Erweitern/Zusammenklappen + + Your %%parity disk|parity-drives%% must be **equal to or larger than your largest data disk**. For instance: + + - If your largest data disk is 10TB, your %%parity disk|parity-drives%% should be at least 10TB. + - You can use various other data disk sizes freely, as long as none exceeds the size of the %%parity disk|parity-drives%%. +
+ +
+ Wie groß muss meine Paritätsfestplatte sein? - Klicken zum Erweitern/Zusammenklappen + + Writing to a %%parity|parity%%-protected array involves four disk operations for each write: reading data, reading %%parity|parity%%, writing data, and writing %%parity|parity%%. This process requires a full rotation from each affected drive, so the overall write speed is limited by the slowest drive involved in the operation. + + Adding a faster %%parity disk|parity-drives%% won't necessarily improve write speeds unless you're writing to multiple slow data disks simultaneously, allowing the %%parity disk|parity-drives%% to handle the load. Typically, the write speed is constrained by the slowest data drive being written to. +
+ +
+ Im Detail: Wie beeinflusst die Parität die Schreibgeschwindigkeit? - Klicken zum Erweitern/Zusammenklappen + + Dual %%parity|parity%% enables recovery from **two simultaneous disk failures**. In Unraid, the second %%parity disk|parity-drives%% doesn't simply mirror the first. Instead: + + - **Parity 1:** Employs standard XOR (even) %%parity|parity%% calculations. + - **Parity 2:** Utilizes a more complex algorithm (Galois field, rather than Reed-Solomon as in traditional %%RAID 6|raid6%%), allowing Unraid to rebuild from any two missing disks at the same time. This feature is significant for larger arrays, where the risk of multiple failures increases. Dual %%parity|parity%% significantly boosts resilience without the added overhead of mirrored redundancy. +
+ +:::caution\[Remember] + +When setting up a new data storage system, add your data disks **first**, making sure they all use a compatible file system. **After** placing your data disks, you can add a %%parity disk|parity-drives%% to protect against drive failures. + +Once your %%parity disk|parity-drives%% is added, remember that any new disk you want to include in the array must be cleared (zeroed) before it's integrated. This is to ensure that the %%parity|parity%% remains valid and continues to protect your data. + +::: + +#### Paritätslaufwerke aktualisieren + +Sie können Ihr %%parity disk|parity-drives%% Gerät auf ein größeres Gerät aufrüsten, um größere Festplatten im Array zu verwenden, oder ein zusätzliches %%parity disk|parity-drives%% hinzufügen. + +:::caution +If you're planning to take the following steps and only have one %%parity disk|parity-drives%%, keep these points in mind: + +- Ihre Daten sind ungeschützt, bis der %%parity|parity%% Wiederherstellungsprozess abgeschlossen ist. Wenn während dieser Zeit eine Datenplatte ausfällt, könnten Sie die Informationen auf dieser Platte verlieren. +- Wenn Sie bereits eine ausgefallene Festplatte im System haben, können Sie durch diese Schritte diese nicht mehr neu aufbauen. In diesem Fall sollten Sie das **Paritätstausch**-Verfahren befolgen. +::: + +So entfernen Sie ein Paritätslaufwerk: + +1. **Stoppen Sie das Array:** Verwenden Sie das %%WebGUI|web-gui%%, um das Array zu stoppen. + +:::tip +Wenn Ihr Server Hot-Swap unterstützt, müssen Sie nicht herunterfahren, um Festplatten zu wechseln. Sie können die Schritte 2 und 4 sicher überspringen. +::: + +2. **Schalten Sie den Server aus:** Schalten Sie Ihren Server aus, um Hardwareänderungen sicher vorzunehmen. +3. **Installieren Sie das neue %%parity disk|parity-drives%%:** Setzen Sie das neue, größere %%parity disk|parity-drives%% in Ihren Server ein. +4. **Schalten Sie den Server ein:** Schalten Sie den Server wieder ein. +5. **Weisen Sie die neue Festplatte zu:** Gehen Sie im Menü zur Paritätsslot und weisen Sie die neue Festplatte zu, indem Sie die alte ersetzen. +6. **Starten Sie das Array:** Verwenden Sie das %%WebGUI|web-gui%%, um das Array erneut zu starten. + +Sobald das Array wieder läuft, beginnt Unraid damit, die %%parity|parity%% auf der neuen Festplatte aufzubauen. Sie können während dieser Zeit weiterhin auf Ihre Daten zugreifen, aber bedenken Sie, dass es etwas langsamer sein könnte, bis der Vorgang abgeschlossen ist. Sobald der %%parity|parity%% Aufbau abgeschlossen ist, sind Ihre Daten wieder geschützt! + +:::important[Important Tipps] +- **Behalten Sie die alte Festplatte:** Entfernen Sie die alte %%parity disk|parity-drives%% nicht, bis der neue %%parity|parity%% Aufbau abgeschlossen ist. Wenn während des Upgrades eine Datenplatte ausfällt, kann Ihnen die alte Festplatte bei der Datenwiederherstellung helfen. + +- **Duale Parität Benutzer:** Wenn Sie zwei %%parity disks|parity-drives%% haben, aktualisieren Sie diese nacheinander für zusätzliche Sicherheit. + +- **Repurpose the old disk:** After the upgrade, you can use the old %%parity disk|parity-drives%% as a data disk if it still meets your storage needs. +::: + +--- + +### Laufwerke ersetzen + +Möglicherweise müssen Sie aus zwei Hauptgründen Laufwerke in Ihrem Array ersetzen: + +1. [**Kapazitätsupgrade**](#upgrading-capacity): Ihr Speicherplatz ist fast voll, und Sie möchten größere Festplatten verwenden. +2. [**Ausfall oder Stilllegung**](#replacing-faileddisabled-disks): Eine Festplatte ist ausgefallen oder wird nicht mehr unterstützt. + +Obwohl der Prozess zum Austausch von Disks in beiden Fällen ähnlich ist, sei vorsichtig, da es ein Risiko von Datenverlusten während des Austauschs gibt. Paritätsgeräte helfen, Ihre Daten zu schützen; ein Paritätsgerät kann gegen den Ausfall eines einzelnen Laufwerks sichern, während zwei Geräte gegen Datenverlust schützen können, wenn zwei Laufwerke ausfallen. Seien Sie sich des Schutzniveaus während der Disk-Ersetzungen immer bewusst. + +#### Kapazität erweitern + +Wenn Sie Ihr Datenlaufwerk gegen ein größeres austauschen, beachten Sie Folgendes: + +- **Nicht-montierbare Disks:** Beheben Sie alle nicht montierbaren Disks vor dem Upgrade. Ein nicht montierbarer Status wird während des Wiederaufbaus nicht behoben. + +- **Risiken bei Einzelparität:** Wenn Sie eine Einzelparität haben, besteht das Risiko eines Datenverlusts, wenn ein anderes Laufwerk während des Upgrades ausfällt. Suchen Sie Rat in Foren, falls dies geschieht. + +- **Schutz durch Dualparität:** Mit Dualparität sind Sie sicher vor Datenverlust, wenn ein Laufwerk ausfällt, während ein einzelnes Laufwerk aufgerüstet wird. Sie können auch zwei Laufwerke gleichzeitig aufrüsten, beachten Sie jedoch, dass dies das Risiko erhöht, da Sie keinen Schutz vor einem weiteren Laufwerksausfall haben. + +- **Sichern Sie die alte Disk:** Behalten Sie die Originaldisk solange intakt, bis das Upgrade erfolgreich bestätigt wurde. Dies bietet Ihnen eine Rückfalloption, falls etwas schiefgeht. + +:::warning +Der Austausch von Festplatten birgt immer ein gewisses Risiko. Fällt während des Upgrades eine weitere Festplatte aus, insbesondere bei nur einer Parität, kann es zu Datenverlust kommen. Überprüfen Sie immer den Zustand Ihrer Festplatten, bevor Sie den Prozess starten, und stellen Sie sicher, dass Sie die alte Festplatte intakt lassen, bis das Upgrade abgeschlossen und Ihre Daten als sicher bestätigt sind. +::: + +Um eine vorhandene Datenfestplatte aufzurüsten: + +1. **Führen Sie eine Paritätsprüfung durch:** Stellen Sie zunächst die Integrität Ihrer Daten sicher, indem Sie eine %%parity check|parity-check%% durchführen. Gehen Sie zu [***Werkzeuge → Paritätsprüfung***](#checking-array-devices) und stellen Sie sicher, dass es **keine Fehler** gibt. Wenn die Parität nicht gültig ist, wird das Wiederherstellen der Festplatte ihr Dateisystem beschädigen. + +2. **Stoppen Sie das Array:** Als Nächstes sollten Sie das Array stoppen. Navigieren Sie zu ***Main → Array Operation*** und wählen Sie **Stop**. + +3. **Weisen Sie die Zielplatte zu:** Sobald das Array gestoppt ist, suchen Sie die Festplatte, die Sie ersetzen möchten. Entfernen Sie sie aus ihrem Steckplatz in ***Main → Array Devices***. + +4. **Starten Sie das Array:** Starten Sie nun das Array erneut. Unraid wird die fehlende Festplatte mithilfe der vorhandenen Paritäts- und Datenträger emulieren. Sie haben zwei Modi zur Auswahl: + - **%%Wartungsmodus|maintenance-mode%%:** Dieser Modus verhindert jegliche Schreibvorgänge auf die %%emulierte Festplatte|emulated-disk%%. + - **Normaler Modus:** Wenn Sie Lese-/Schreibzugriff auf die %%emulierte Festplatte|emulated-disk%% benötigen, wählen Sie diese Option. + +:::note +Das Starten des Arrays im Normalmodus ist an diesem Punkt optional. Sie können es verwenden, um zu überprüfen, ob die emulierte Festplatte gemountet wird und die Daten korrekt aussehen, bevor Sie fortfahren, aber es ist nicht erforderlich für den Upgrade-Prozess. +::: + +5. **Stoppen Sie das Array erneut:** Das Array sollte nun anzeigen, dass die nicht zugeordnete Festplatte fehlgeschlagen ist. Stoppen Sie das Array noch einmal. + +6. **Weisen Sie die Ersatzplatte zu:** Setzen Sie Ihre neue, größere Festplatte in den freien Steckplatz im Array ein. + +7. **Starten Sie das Array zum Wiederaufbau:** Starten Sie abschließend das Array erneut. Unraid wird nun den Inhalt des %%emulierten Laufwerks|emulated-disk%% auf die neue Festplatte wiederherstellen. Das Dateisystem passt sich automatisch an, um die volle Kapazität der größeren Festplatte zu nutzen. + +#### Fehlerhafte/deaktivierte Festplatten ersetzen + +
+ Was ist eine ausgefallene/deaktivierte Festplatte? + + Eine ausgefallene oder deaktivierte Festplatte ist eine, die Unraid nicht mehr zum Schreiben von Daten verwendet. Das liegt normalerweise an einem Schreibfehler. Beachten Sie, dass dies nicht immer bedeutet, dass die Festplatte selbst defekt ist; manchmal kann es an schlechten Verbindungen, Stromproblemen oder nur einem vorübergehenden Fehler liegen. + + Einige Anzeichen hierfür sind: + +
+ ![Rotes "X" zeigt Schreibfehler](/img/Diskfailureindicator.png) +

*Dieses rote "X" zeigt, welche Festplatte ersetzt werden muss.*

+
+ +
+ +
+ ![Fehlermeldungsbenachrichtigung](/img/Diskfailurenotification.png) +

*Achten Sie auf diese Warnungen.*

+
+ +
+ +
+ Klicken Sie, um zu sehen, wie verschiedene Paritätskonfigurationen mit Ausfällen umgehen + + | Ausfallszenario | Keine Parität | Einzelparität | Doppelte Parität | + | --------------- | ------------- | ------------- | ---------------- | + + \| **1 Festplattenausfall** | Datenverlust | Wiederherstellbar | Wiederherstellbar | + \| **2 Festplattenausfälle** | Datenverlust | Datenverlust | Wiederherstellbar | + + :::tip[Tipps für sichere Wiederherstellungen] + - **Für Einzelparität:** Sie können nur eine Festplatte gleichzeitig ersetzen. Wenn eine andere Festplatte während der Wiederherstellung ausfällt, könnten Sie Daten verlieren. + - **Für Dualparität:** Sie können ein oder zwei Festplatten gleichzeitig ersetzen, aber seien Sie vorsichtig, wenn mehr als zwei Festplatten ausfallen. + ::: + + :::wichtig + Wenn Sie auf eine Situation stoßen, in der **mehr Festplatten ausfallen, als Ihre Parität schützen kann:** + + 1. **Stoppen Sie sofort alle Schreibvorgänge**, um weiteren Datenverlust zu verhindern. + 2. Suchen Sie Hilfe, indem Sie Ihr Problem im [Unraid-Forum](https://forums.unraid.net/) zusammen mit Diagnosedaten posten. + 3. **Versuchen Sie keinen Wiederaufbau**, bis Sie Rat erhalten haben - konzentrieren Sie sich zuerst darauf, Ihre Daten zu retten. + ::: +
+
+ +
+ Wie man das Problem diagnostiziert + + Um das Problem zu diagnostizieren, beginnen Sie mit der Überprüfung des %%syslog|syslog%% und der %%SMART-Berichte|smart-report%%: + + - Wenn das %%syslog|syslog%% zeigt, dass das Laufwerk zurückgesetzt wurde, könnte es ein Problem mit der Verbindung oder den Kabeln geben. + - %%SMART reports|smart-report%% can help assess the drive's health, but the best way to check is by running a %%SMART|smart%% extended test. If it completes without errors, the drive is likely fine. + - Wenn Sie %%CRC-Fehler|crc-errors%% sehen, deutet dies normalerweise auf Probleme mit der Verkabelung hin. Beobachten Sie diese Fehler, da sie sich im Laufe der Zeit ansammeln und nicht zurückgesetzt werden. + + :::tip + Um über Festplattenprobleme informiert zu bleiben, [aktivieren Sie Benachrichtigungen](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#notification-settings) in Unraid. Auf diese Weise werden Sie sofort alarmiert, wenn etwas schiefgeht, wodurch das Risiko für Ihre Daten verringert wird. + ::: +
+ +
+ Was ist Emulation? + + Wenn eine Festplatte deaktiviert ist, wird Unraid ihre Parität und andere funktionierende Festplatten verwenden, um die ausgefallene Festplatte zu emulieren. Dies bedeutet, dass Ihr System weiterhin arbeitet und Sie auf die auf der %%emulierten Festplatte|emulierte-Festplatte%% gespeicherten Daten zugreifen können: + + - Unraid wird nicht mehr auf das physische Laufwerk schreiben und alle Updates werden stattdessen in der Parität und der Emulation gespeichert. + - Bevor Sie das ausgefallene Laufwerk ersetzen, können Sie Daten vom %%emulierten Laufwerk|emulated-disk%% überprüfen und wiederherstellen, was das physische Laufwerk intakt für eine potenzielle Wiederherstellung hält. + - Falls Sie nicht auf das %%emulierte Laufwerk|emulated-disk%% zugreifen können, muss das Dateisystem vor jedem Neuaufbau repariert werden, da das Reparieren des Dateisystems schneller und effektiver als ein Neuaufbau ist. +
+ +
+ Was ist eine ausgefallene/deaktivierte Festplatte? + + Eine ausgefallene oder deaktivierte Festplatte ist eine, die Unraid nicht mehr zum Schreiben von Daten verwendet. Das liegt normalerweise an einem Schreibfehler. Beachten Sie, dass dies nicht immer bedeutet, dass die Festplatte selbst defekt ist; manchmal kann es an schlechten Verbindungen, Stromproblemen oder nur einem vorübergehenden Fehler liegen. + + While it's not mandatory, many users choose to pre-clear new drives to test them and help prevent early failure. You can do this with the Preclear plugin, a %%SMART|smart%% extended test, or manufacturer tools. + + :::warnung + Wenn Sie versuchen, mit einer nicht montierbaren %%emulierten Festplatte|emulierte-Festplatte%% wiederherzustellen, wird die neue Festplatte ebenfalls nicht montierbar. Reparieren Sie immer das Dateisystem, bevor Sie einen Wiederaufbau versuchen. + ::: +
+ +Wenn eine Festplatte in Ihrem Unraid-System ausgefallen oder deaktiviert ist, keine Sorge! Sie können sie ersetzen und Ihre Daten wiederherstellen. Folgen Sie einfach diesen einfachen Schritten. Denken Sie daran, dass Sie eine neue Festplatte benötigen, die die gleiche Größe oder größer als die zu ersetzende Festplatte hat, aber nicht größer als Ihre kleinste %%parity disk|parity-drives%% sein darf. + +:::important +Bevor Sie beginnen, stellen Sie sicher, dass keine Festplattenfehler oder Warnungen vorliegen. Unraid muss in der Lage sein, alle verbleibenden Festplatten ohne Probleme zu lesen, damit der Wiederaufbau korrekt funktioniert. Wenn eine andere Festplatte ausfällt, könnte dies zu Datenverlust führen. +::: + +Um eine Festplatte zu ersetzen und neu zu bauen: + +1. **Stoppen Sie die Array:** + + - Melden Sie sich beim Unraid %%WebGUI|web-gui%% (der Webschnittstelle) an. + - Finden Sie die Option, das Array zu stoppen. Dies ist notwendig, bevor Sie irgendwelche Festplatten wechseln können. + +:::tip +Wenn Ihr Server einen Hot-Swap unterstützt, können Sie den nächsten Schritt überspringen und nur das Array stoppen. +::: + +2. **Schalten Sie Ihren Server aus** (nur wenn **kein** Hot-Swap genutzt wird): + - Falls Ihr Server Hot-Swap nicht unterstützt, müssen Sie ihn komplett herunterfahren. + +3. **Ersetzen Sie die ausgefallene Festplatte:** + - Entfernen Sie die alte, ausgefallene Festplatte aus Ihrem Server. + - Setzen Sie die neue Festplatte ein. Beachten Sie nur, dass sie mindestens die gleiche Größe wie die alte Festplatte haben muss, aber nicht größer sein darf als Ihre kleinste %%parity disk|parity-drives%%. + +4. **Schalten Sie den Server ein** (falls Sie ihn heruntergefahren haben): + - Schalten Sie Ihren Server wieder ein, wenn Sie ihn heruntergefahren haben. + +5. **Weisen Sie die neue Festplatte zu:** + - Gehen Sie zurück zur Unraid %%WebGUI|web-gui%%. + - Finden Sie den Slot für die ausgefallene Festplatte und weisen Sie Ihre neue Festplatte diesem Slot zu. + +6. **Bestätigen Sie Ihre Aktion:** + - Sie sehen ein Bestätigungsfenster. Markieren Sie das Kästchen mit der Aufschrift **Ja, ich möchte das tun** und bestätigen Sie. + +7. **(Optional) Wählen Sie %%Wartungsmodus|maintenance-mode%%:** + - Sie können den %%Wartungsmodus|maintenance-mode%% wählen, was den Wiederherstellungsprozess beschleunigen kann. Während dieser Zeit haben Sie jedoch keinen Zugriff auf das Array. + - Wenn Sie den %%Wartungsmodus|maintenance-mode%% wählen, klicken Sie sicher auf **Sync**, um den Neuaufbau zu starten. + +8. **Starten Sie den Neuaufbau:** + - Klicken Sie auf **Start**, um den Vorgang zu beginnen. Unraid wird Ihre Daten vom %%emulierten Laufwerk|emulated-disk%% auf die neue Festplatte kopieren. + - Falls Ihre neue Festplatte größer ist, wird Unraid den zusätzlichen Speicherplatz für Sie verwalten. + +:::warning +Wenn Unraid Sie während des Wiederaufbaus auffordert, die neue Festplatte zu formatieren, **tun Sie es nicht**. Das Formatieren löscht alle Daten und macht eine Wiederherstellung unmöglich. +::: + +

Was Sie während des Neuaufbaus erwarten können

+ +- Das Array wird während der Wiederherstellung weiterhin verfügbar sein (es sei denn, Sie sind im %%Wartungsmodus|maintenance-mode%%), aber es könnte langsamer laufen. +- Der Neuaufbau kann mehrere Stunden dauern, abhängig von Ihrer Festplattengröße und Systemnutzung. +- Die neue Festplatte wird das gleiche Dateisystem wie das Original haben. +- Wenn die alte Festplatte aufgrund von Dateisystemproblemen nicht einbindbar war, wird auch die neue Festplatte nicht einbindbar sein. Bitte lösen Sie alle Dateisystemprobleme, bevor Sie mit dem Wiederaufbau beginnen. + +:::note[Additional anmerkungen] +- Der Neuaufbauprozess ändert nicht das Dateiformat der Festplatte; er stellt lediglich ihre vorherige Form wieder her. +- Überprüfen Sie immer die Gesundheit jeder Festplatte, bevor Sie einen Neuaufbau starten, um potenzielle Probleme zu vermeiden. +::: + +#### Paritätstausch + +```mdx-code-block + + + + + + + + + + +``` + +
+ Beispielszenario + + Sie haben eine Unraid-Konfiguration mit einer **2 TB Paritätsfestplatte** und einer **1 TB Datenfestplatte** und möchten die 1 TB Festplatte durch eine **4 TB Festplatte** ersetzen. + + Zuerst ordnen Sie das neue 4TB-Laufwerk als Paritätslaufwerk zu, das das 2TB-Laufwerk ersetzen wird. Dann verschieben Sie das ursprüngliche 2TB-Laufwerk in den Datenslot und entfernen das 1TB-Laufwerk vollständig. + + Nach diesen Änderungen haben Sie ein 4TB-Laufwerk als neues Parität, das sicherstellt, dass Sie zukünftig Datenlaufwerke bis zu 4TB hinzufügen können. Das 2TB-Laufwerk beherbergt nun Ihre vorhandenen Daten, während das 1TB-Laufwerk anderweitig verwendet werden kann. + + Dieser Tausch hält Ihre Daten sicher und Ihr Array geschützt, wodurch zukünftige Upgrades möglich werden. +
+ +:::important\[Prerequisites] + +- Bevor Sie beginnen, stellen Sie sicher, dass das zu ersetzende Datenlaufwerk deaktiviert ist. Wenn die Festplatte ausgefallen ist (zeigt einen roten Indikator), ist sie bereits deaktiviert. Wenn die Festplatte in Ordnung ist, Sie sie jedoch ersetzen möchten, weisen Sie das Laufwerk ab und starten Sie das Array einmal ohne es, um Unraid zu zwingen, es als deaktiviert zu markieren. +- Wenn Ihre Ersatzdatenfestplatte nicht größer als Ihre Paritätsfestplatte ist, verwenden Sie das Standardverfahren [Ersetzen einer Datenfestplatte](#replacing-faileddisabled-disks). +- Dieses Verfahren ist nur für den Austausch von Festplatten in einer Unraid-Ablage erforderlich, wenn eine Festplatte größer als die aktuelle Paritätsfestplatte eingesetzt wird. Wenn Sie lediglich Ihre Paritätsfestplatte aufrüsten müssen, entfernen Sie einfach die alte Paritätsfestplatte, fügen Sie die neue hinzu und starten Sie das System. Die Parität wird automatisch neu aufgebaut. + +::: + +:::warning\[Warnings] + +- Überprüfen Sie immer den Gesundheitszustand aller Laufwerke mithilfe von %%SMART-Berichten|smart-report%%, bevor Sie einen %%parity swap|parity-swap%% durchführen. Dieser Vorgang erhöht das Risiko eines Datenverlusts, wenn ein weiteres defektes oder gesundes Laufwerk dabei ist. +- Beräumen Sie die neue Festplatte, falls möglich. Obwohl nicht erforderlich, reduziert das Bereinigen die Belastung der Festplatte und das Risiko eines Frühausfalls. +- Identifizieren Sie vor Beginn korrekt alle Festplatten. Notieren Sie sich die Modellnummern und die letzten vier Zeichen jeder Seriennummer, um Fehler bei der Zuweisung zu vermeiden. + +::: + +Um einen Paritätstausch durchzuführen: + +:::note +Wenn die zu ersetzende Festplatte bereits deaktiviert (ausgefallen) ist, müssen Sie möglicherweise die Schritte 1–4 nicht ausführen. Wenn Sie das neue Ersatzlaufwerk bereits installiert haben (z. B. nach dem Preclear), können Sie die Schritte 5–8 überspringen. +::: + +1. ::: +2. **Weisen Sie das alte Datenlaufwerk nicht zu,** falls es noch zugewiesen ist. Wenn das Laufwerk zuvor gesund war, sehen Sie möglicherweise Fehlerbenachrichtigungen für eine fehlende Festplatte - dies wird erwartet. +3. **Starten Sie das Array.** Wenn Sie aufgefordert werden, überprüfen Sie das Kästchen zur Bestätigung Ihrer Aktion. Das Datenlaufwerk sollte nun als "Nicht installiert" angezeigt werden. +4. Das Datenlaufwerk sollte nun als "Nicht installiert" angezeigt werden. +5. **Server herunterfahren.** + + :::tip + Wenn Ihr System **Hot-Swap** unterstützt, müssen Sie nicht herunterfahren, um Festplatten zu entfernen oder zu installieren. Stellen Sie nur sicher, dass das Array gestoppt ist, bevor Sie Hardwareänderungen vornehmen. + ::: + +::: + +6. *(Optional)* **Entfernen Sie das alte Laufwerk.** Möglicherweise möchten Sie es für Tests oder Umwidmung installiert lassen. +7. **Installieren Sie das neue Laufwerk.** Ein Pre-Clearing wird dringend empfohlen, aber eine Formatierung ist nicht erforderlich. +8. **Schalten Sie den Server ein.** +9. **Stoppen Sie das Array**, wenn es automatisch gestartet wurde. Wenn Sie eine Meldung über das erneute Einhängen von Festplatten-Freigaben sehen, deaktivieren Sie die Docker- und/oder VM-Services in den Einstellungen, starten Sie neu und versuchen Sie es erneut. +10. **Weisen Sie das Paritätslaufwerk neu zu.** +11. **Weisen Sie das neue Laufwerk dem Paritätsslot zu.** Sie können Fehlerbenachrichtigungen erhalten - dies ist normal. +12. **Weisen Sie das alte %%parity drive|parity-drives%% dem Datenplatz zu** der ersetzten Festplatte. Sowohl die Parität als auch die ersetzte Datenfestplatte sollten nun blaue Statusanzeigen zeigen. +13. **Gehen Sie zu *Haupt → Array-Betrieb.*** Sie sollten eine **Kopieren** Schaltfläche sehen und eine Meldung, dass „Kopieren wird die Paritätsinformationen auf das neue %%parity disk|parity-drives%% kopieren.” +14. **Bestätigen und starten Sie den Kopiervorgang.** Bestätigen Sie das Kästchen und klicken Sie auf **Kopieren**. Das Array wird während dieses Vorgangs nicht verfügbar sein. + +- Der Kopiervorgang kann viele Stunden dauern, je nach Festplattengröße. Wenn er abgeschlossen ist, wird das Array gestoppt und ist bereit für einen Datenwiederaufbau. + +15. Wenn die Fertigstellung der Array wird gestoppt und bereit für einen Daten-Neuaufbau sein. + - Bestätigen Sie Ihre Aktion, falls Sie dazu aufgefordert werden. Das Array ist nun gestartet, und die Daten werden auf der neuen Datenfestplatte rekonstruiert. + - Sie können das Array während des Neuaufbaus verwenden, sollten aber für beste Leistung die Nutzung einschränken. + - Der Neuaufbauprozess wird auch mehrere Stunden dauern. + +:::warning +Formatieren Sie niemals ein Laufwerk während dieses Prozesses. Das Formatieren löscht alle Daten und aktualisiert die Parität, wodurch eine Wiederherstellung unmöglich wird. +::: + +Nach Abschluss haben Sie eine größere Paritätsfestplatte und eine ersetzte Datenplatte. Viele Benutzer führen anschließend eine %%parity check|parity-check%% durch, um zusätzliche Sicherheit zu gewinnen, obwohl dies optional ist. + +--- + +### So entfernen Sie eine %%Paritätenfestplatte|parity-drives%%: + +Es kann eine Zeit kommen, in der Sie eine Festplatte aus Ihrem Unraid-Array entfernen möchten. Ob Sie Energie sparen, ein altes oder unzuverlässiges Laufwerk außer Betrieb nehmen oder Hardware für eine andere Nutzung umfunktionieren möchten, der Prozess ist relativ einfach. + +#### Entfernen von Paritätsplatten + +If you find that you no longer need the level of %%parity|parity%% protection in your setup, you can remove a %%parity disk|parity-drives%% whenever you want. + +Um eine %%parity drives|parity-drives%% zu entfernen: + +1. **Den Array stoppen:** Beginnen Sie mit dem Zugriff auf die WebGUI und stoppen Sie den Array. +2. **Unassign the %%parity drives|parity-drives%%:** Locate the %%parity drives|parity-drives%% slot and set it to "Unassigned." +3. **Starten Sie das Array:** Starten Sie das Array schließlich neu, um die Änderungen zu bestätigen und die %%parity drives|parity-drives%% erfolgreich aus der Konfiguration zu entfernen. + +:::warning +Before you make any changes, please keep this in mind: If you already have any failed data drives in your array, removing a %%parity disk|parity-drives%% can decrease the number of failures Unraid can handle without risking data loss. + +- Mit doppelter Parität können Sie von einem einzelnen ausgefallenen Laufwerk wiederherstellen, aber beachten Sie, dass Sie einen weiteren Ausfall während des Wiederherstellungsprozesses nicht überleben werden. +- Mit einfacher Parität verlieren Sie jegliche Redundanz, was bedeutet, dass zusätzliche Laufwerkausfälle zum Datenverlust führen können. +::: + +#### Entfernen von Datenträgern + +Removing a data disk is a straightforward process, but it's important to remember that you'll need to perform a %%parity|parity%% sync afterwards. Until this sync is complete, there's a risk of data loss if another disk fails. + +Sie können zwischen zwei Methoden wählen, um einen Datenträger zu entfernen: + +1. **Standardmethode** - Empfohlen für die meisten Benutzer. +2. **Paritätserhaltende Methode** - Geeignet für fortgeschrittene Benutzer, die die Parität während des Entfernens beibehalten möchten. + +```mdx-code-block + + + + + + + + + + +``` + +--- + +### Array-Geräte überprüfen + +Regelmäßige Überprüfungen Ihres Unraid-Arrays sind entscheidend zur Sicherstellung der Datenintegrität und zur Identifizierung potenzieller Probleme, bevor sie zu Datenverlust führen. Sie können eine Überprüfung mit der **Prüfen** Schaltfläche unter ***Array-Betriebe*** initiieren. Abhängig von Ihrer Array-Konfiguration erlaubt diese Schaltfläche es Ihnen, entweder eine %%parity check|parity-check%% oder eine %%read check|read-check%% durchzuführen. + +
+ ![Die Schaltfläche "Prüfen" ermöglicht Paritäts- und Leseprüfungen](/img/Check_button.PNG) +
+ +Der Einfachheit halber können Sie diese Überprüfungen so planen, dass sie in Intervallen, die Ihnen passen, automatisch ausgeführt werden, indem Sie zu ***Einstellungen → Zeitplanung*** navigieren. Es ist ratsam, automatisierte, nicht korrigierende Überprüfungen monatlich oder vierteljährlich durchzuführen, um die laufende Gesundheit Ihrer Daten sicherzustellen. + +#### Paritäts- & Leseprüfungen + +```mdx-code-block + + + + + + + + + + +``` + +#### Verlauf prüfen + +Immer wenn das System eine %%parity check|parity-check%% oder eine %%read check|read-check%% durchführt, wird protokolliert, was passiert ist. Sie können diese Informationen leicht einsehen, indem Sie auf die **Historie** Schaltfläche unter ***Array-Betriebe*** in der Oberfläche klicken. + +Für diejenigen, die tiefer eintauchen wollen, werden alle diese Protokolle in einer Textdatei im `config` Verzeichnis Ihres Unraid-USB-Laufwerks gespeichert. + +--- + +### Laufwerke herunter oder hoch drehen + +Unraid allows you to control the power states of your hard drives. You can easily %%spin them up or down|spin-state%%, and manage SSDs to be active or in standby. This helps save energy, extend the life of your drives, and reduce noise when the disks are not being used. + +

Warum runter- oder hochdrehen?

+ +- **Hinunterdrehen:** Wenn Sie Laufwerke haben, die nicht oft benutzt werden, kann das Hinunterdrehen Energie sparen und ihre Lebensdauer verlängern. +- **Hochdrehen:** Wenn Sie wissen, dass Sie bald Dateien benötigen, kann das Hochdrehen der Festplatten im Voraus die Wartezeiten verkürzen. + +

Wie man Drehzustände kontrolliert

+ +Sie können die Drehzustände der Festplatten über den **Main**-Tab im WebGUI steuern: + +1. **Gehen Sie zum Main-Tab** und suchen Sie Ihre Array-Geräte +2. **Finden Sie die Drehkontrolltasten** – jede Festplatte zeigt entweder an: + - Klicken Sie auf die 🔘-Schaltfläche, um **hochzudrehen**, wenn die Festplatte derzeit heruntergedreht ist. + - Klicken Sie auf die 🟢-Schaltfläche, um **runterzudrehen**, wenn die Festplatte derzeit dreht. +3. **Klicken Sie auf die entsprechende Schaltfläche** für die gewünschte Aktion: + - Klicken Sie auf **Runterdrehen** 🟢, um eine inaktive Festplatte abzuschalten und Energie zu sparen. + - Klicken Sie auf **Hochdrehen** 🔘, um eine derzeit heruntergedrehte Festplatte hochzufahren. + +Denken Sie daran, dass eine Festplatte, die gerade zugegriffen wird (z. B. wenn Sie eine Datei öffnen), aktiv bleibt und eine Runterdreh-Anfrage ignoriert. + +Wenn eine Festplatte heruntergefahren ist, wird ihre Temperatur in der %%WebGUI|web-gui%% nicht angezeigt. Sobald jedoch eine Anwendung oder ein Benutzer darauf zugreift, wird sie automatisch hochgefahren. + +:::tip +Verwenden Sie die Drehkontrollen, um Energie zu sparen und den Verschleiß Ihrer Laufwerke zu reduzieren. Denken Sie daran, dass Festplatten, die aktiv genutzt werden, eingeschaltet bleiben, bis alle Aufgaben abgeschlossen sind. +::: + +--- + +### Array-Konfiguration zurücksetzen + +Das Zurücksetzen Ihrer Array-Konfiguration ist ein wichtiger Schritt, der sorgfältig durchgeführt werden sollte. Dieser Prozess ist normalerweise erforderlich, wenn eine Festplatte entfernt, ein neues Array-Layout erstellt oder Festplattenzuweisungsprobleme behoben werden. Beachten Sie bitte, dass diese Aktion den Datenschutz und die Parität beeinflussen kann. Gehen Sie daher nur dann vor, wenn es wirklich nötig ist. + +Häufige Gründe, um Ihr Array zurückzusetzen, sind: + +- **Entfernen oder Ersetzen von Festplatten:** Wenn Sie Festplatten aus Ihrem Array entfernen oder austauschen müssen. +- **Neubeginn:** Wenn Sie ein völlig neues Layout für Ihr Array erstellen wollen. +- **Behebung von Zuordnungsfehlern:** Um Probleme bei der aktuellen Zuordnung von Festplatten zu korrigieren. +- **Wiederherstellung von Konfigurationsproblemen:** Bei Herausforderungen mit Ihrer bestehenden Konfiguration. + +
+ ![Das Zurücksetzen Ihrer Festplattenkonfiguration kann über die neue Konfigurationsseite erfolgen](/img/Newconfig.png) +
+ +Um Ihre Array-Konfiguration zurückzusetzen: + +1. Gehen Sie auf die **Werkzeuge**-Seite und klicken Sie auf **Neue Konfig**. +2. Sie können einige der bestehenden Festplattenzuordnungen beibehalten, wenn Sie nur geringfügige Anpassungen vornehmen möchten. Dies kann Zeit sparen und die Wahrscheinlichkeit von Fehlern minimieren. +3. Bestätigen Sie Ihre Wahl, indem Sie das Kästchen markieren und dann auf **Anwenden** klicken. +4. Kehren Sie zum **Main** Tab zurück. Nach dem Anwenden der Änderungen wird Ihre Konfiguration zurückgesetzt. +5. Nehmen Sie alle erforderlichen Änderungen an Ihrer Konfiguration vor, indem Sie Festplatten zuweisen oder freigeben, wie es angemessen ist. +6. Starten Sie das Array im Normal- oder Wartungsmodus, um Ihre Updates abzuschließen. + +:::important +- **Datenspeicherung:** Unraid wird versuchen, zuvor benutzte Laufwerke zu erkennen und Daten so weit wie möglich zu erhalten. +- **Auswirkung auf die Parität:** Das Entfernen eines Datenträgers macht die Parität immer ungültig, es sei denn, dieser Datenträger wurde vor der Entfernung genullt. +- **Neusortierung von Festplatten:** Das Ändern der Reihenfolge von Festplatten beeinflusst die Parität1 nicht, kann jedoch die Parität2 ungültig machen. +::: + +:::caution +Wenn Sie die **Start**-Schaltfläche sehen, gibt es ein Kontrollkästchen mit der Aufschrift **Parität ist gültig**. Markieren Sie dieses Kontrollkästchen nur, wenn Sie sich sicher sind, dass es korrekt ist, oder wenn ein erfahrener Unraid-Benutzer Ihnen dies während der Wiederherstellung empfohlen hat. Ein fehlerhaftes Markieren dieser Option kann zu Datenverlust führen. + +Verwenden Sie **Neue Konfiguration** nicht, wenn Ihr Ziel der Wiederaufbau einer Festplatte ist. Das Durchführen einer neuen Konfiguration löscht den erforderlichen Ablagenverlauf für einen Wiederaufbau, und Unraid wird danach nicht mehr anbieten, die Festplatte wieder aufzubauen. Befolgen Sie stattdessen die Prozedur zum Wiederaufbau der Festplatte. +::: + +#### Rückgängigmachen eines Resets + +Falls Sie feststellen, dass Sie ein Zurücksetzen rückgängig machen müssen: + +1. Zugriff auf Ihr Flash-Gerät über das Netzwerk (SMB). +2. Suchen und öffnen Sie den `config`-Ordner. +3. Benennen Sie die Datei `super.old` in `super.dat` um. +4. Starten Sie Ihren Server neu und Ihre vorherige Array-Konfiguration sollte wiederhergestellt sein. + +--- + +### Statusberichte + +Unraid bietet Statusberichte, die Ihnen helfen, den Zustand Ihres Speichera arrays im Blick zu behalten. Diese Berichte sind eine schnelle Möglichkeit, zu überprüfen, ob einer Ihrer Datenträger deaktiviert ist oder Probleme mit dem Lesen oder Schreiben von Daten hat. + +- **Aktueller Status:** Statusberichte zeigen den aktuellen Zustand Ihres Arrays an. Es ist wichtig zu beachten, dass diese Informationen nach einem Neustart Ihres Systems zurückgesetzt werden. Sie speichern also keine Historie vergangener Probleme. + +- **Keine historischen Daten:** Wenn Sie sehen möchten, was vor einem Neustart passiert ist, müssen Sie an anderer Stelle nachsehen, da diese Berichte keine vergangenen Zustände speichern. + +:::important +Denken Sie daran, dass die Statusberichte keine %%SMART|smart%% Daten enthalten. %%SMART-Berichte|smart-report%% geben Ihnen eine detailliertere Ansicht des Gesundheitszustands einzelner Festplatten. Auch wenn Ihr Statusbericht zeigt, dass alles in Ordnung ist, ist es dennoch ratsam, die %%SMART-Berichte|smart-report%% regelmäßig zu überprüfen, um potenzielle Probleme frühzeitig zu erkennen. +::: + +--- + +## Array-Schreibmodi + +Unraid bietet verschiedene Schreibmodi zum Verwalten von Array-Operationen, die jeweils ihre eigenen Vor- und Nachteile in Bezug auf Geschwindigkeit, Stromverbrauch und Laufwerksverschleiß haben. Zu wissen, wie diese Modi funktionieren, zusammen mit der Rolle eines Cache-Laufwerks oder Pools, kann Ihnen helfen, Ihren Server optimal an Ihre Anforderungen anzupassen. + +**Schreibmodi auf einen Blick** + +| Schreibmodus | Geschwindigkeit (typisch) | Energieverbrauch | Wenn Laufwerke hochfahren | Datenschutz | Beste Einsatzmöglichkeit | +| -------------------------------- | ---------------------------------------- | ---------------- | ---------------------------- | ----------------- | ------------------------------------------------------------------------------------ | +| Lesen/Modifizieren/Schreiben | 20–40 MB/s | Niedrig | Nur Parität und Ziellaufwerk | Ja | Die meisten Arbeitslasten, Energieeinsparungen, kleine Schreibvorgänge | +| Turbo-Schreiben (Rekonstruktion) | 40–120 MB/s | Hoch | Alle Laufwerke | Ja | Große Dateiübertragungen, Array-Wiederherstellungen, %%parity checks\|parity-check%% | +| Cache-Schreiben (SSD/NVMe) | 50–110 MB/s (SSD), 250–900 MB/s (NVMe)\* | Variiert | Nur Cache-Laufwerke | Nein (bis bewegt) | Apps, VMs, häufiges Schreiben, Maximieren der Geschwindigkeit | + +

Lesen/Modifizieren/Schreiben

+ +
+ Klicken zum Erweitern/Reduzieren + +

How it works

+ This mode reads the existing data and the parity, calculates the new parity, and then writes the updated data. Only the %%parity drive|parity-drives%% and the target data drive spin up, which results in lower power usage and less wear on the drives. However, it can be slower due to the additional read/write cycles. + +

Wann zu verwenden

+ + - Jederzeit, besonders wenn Sie Energieeinsparungen wünschen und Leerlaufzeit der Laufwerke nutzen möchten. + - Ideal für kleine oder seltene Schreibvorgänge. +
+ +

Turbo Write (Rekonstruktionsschreiben)

+ +
+ Klicken zum Erweitern/Reduzieren + + Turbo Write, auch bekannt als Reconstruct Write, ist eine Funktion, die darauf abzielt, die Schreibgeschwindigkeit Ihres Unraid-Arrays zu erhöhen. Es funktioniert, indem alle Datenträger gelesen und die Parität gleichzeitig aktualisiert werden. Dieser Vorgang eliminiert die Verzögerungen, die durch das Warten auf die Drehung der Platten im Standard-Schreibmodus entstehen. Es ist jedoch wichtig zu beachten, dass alle Array-Laufwerke in Betrieb und funktionstüchtig sein müssen, damit dies effektiv funktioniert. + +

Wie es funktioniert

+ + - Wenn Sie neue Daten schreiben, liest Unraid von allen anderen Datenlaufwerken und berechnet gleichzeitig die Parität neu. Sowohl die neuen Daten als auch die aktualisierte Parität werden zusammen geschrieben. + - Alle Laufwerke im Array müssen betriebsbereit und aktiv drehend sein. + - Diese Methode verbessert die Schreibgeschwindigkeit erheblich im Vergleich zum Standard-Schreibmodus. + +

Wann sollte Turbo-Schreiben verwendet werden?

+ + - Nutzen Sie Turbo-Schreiben, wenn Sie große, sequentielle Dateien auf das Array übertragen. + - Es ist effektiv während Array-Wiederherstellungen oder %%parity checks|parity-check%%, da alle Laufwerke bereits laufen. + - Dieser Modus ist sehr nützlich, wenn es wichtig ist, die Schreibzeit zu minimieren, und Sie können bestätigen, dass alle Laufwerke funktionsfähig sind. + +

Wann sollte man Turbo-Schreiben vermeiden?

+ + - Vermeiden Sie diesen Modus, wenn Sie möchten, dass Ihre Laufwerke während der Leerlaufzeiten energieeinsparend herunterfahren. + - Turbo-Schreiben ist nicht ideal für kleine oder seltene Schreiboperationen, da es dazu führt, dass alle Laufwerke für jede Schreibvorgang hochfahren, was den Energieverbrauch und den Verschleiß der Laufwerke erhöht. + - Wenn Sie vermuten, dass eine Festplatte fehlerhaft ist oder unzuverlässig, ist es am besten, Turbo-Schreiben zu meiden, da es darauf angewiesen ist, dass jedes Laufwerk betriebsbereit ist. + + :::info + Turbo Write eignet sich am besten für Massenoperationen und Szenarien, die einen hohen Durchsatz erfordern. Es ist jedoch möglicherweise nicht die beste Wahl für alltägliche Aufgaben, wenn Sie auf Energieeinsparungen und die Minimierung des Laufwerksverschleißes fokussiert sind. + ::: +
+ +

Cache-Schreiben

+ +
+ Klicken zum Erweitern/Reduzieren + +

Wie es funktioniert

+ + Data is written first to a fast SSD or NVMe %%cache|cache%% and can then be moved to the main array later by a process called the %%Mover|mover%%. The speeds vary: + + - SSD: 50–110 MB/s + - NVMe: 250–900 MB/s (kann 10GbE-Netzwerke nutzen) + + Sobald die Daten in das Array verschoben werden, werden sie durch die Parität geschützt. + +

Wann sollte man Cache-Schreiben verwenden?

+ + - Für Freigaben mit häufigen Schreiboperationen, wie Anwendungen, virtuelle Maschinen oder Downloads. + - Um die Leistung zu verbessern und gespürte Schreibverzögerungen zu reduzieren. + +

Leistungserwartungen

+ + - Ohne Cache-Laufwerk: Durchschnittlich 20–30 MB/s, mit Spitzen bis zu 40 MB/s. + - Mit SSD-Cache: 50–110 MB/s. + - Mit NVMe-Cache: 250–900 MB/s, abhängig von Netzwerk- oder Laufwerkseinschränkungen. + + :::tip + Erwägen Sie die Verwendung eines Cache-Pools (mehrere Geräte) für zusätzliche Redundanz und Datenschutz, bevor der %%Mover|Mover%% läuft. + ::: +
+ +:::info\[Automated Lösungen + +- Der **Auto**-Modus (eine zukünftige Funktion) wird Turbo-Schreiben nur dann aktivieren, wenn alle Laufwerke bereits drehen. +- Community-Plugins ("Turbo Write" im Apps-Tab suchen) bieten möglicherweise erweiterte Automatisierungs- oder Planungsoptionen. + +::: + +Um den Schreibmodus zu ändern: + +1. Navigieren Sie zu ***Einstellungen → Laufwerkseinstellungen***. +2. Suchen Sie **Tunable (md\_write\_method)**. +3. Wählen Sie Ihren bevorzugten Modus: + - **Lesen/Modifizieren/Schreiben** (Standard) + - **Rekonstruieren Schreiben** (Turbo Write) + - **Auto** (zukünftige Funktion) +4. Klicken Sie auf **Anwenden**, um Ihre Wahl zu bestätigen. + +:::important\[Quick Zusammenfassung + +- Verwenden Sie **Turbo Write**, wenn Sie Geschwindigkeit benötigen, beachten Sie jedoch, dass der Stromverbrauch und das Hochfahren der Laufwerke zunehmen. +- Nutzen Sie **Cache-Schreiben** für optimale Leistung, insbesondere mit SSD oder NVMe-Laufwerken. +- Für die meisten Benutzer bietet der Standard-Schreibmodus das beste Gleichgewicht, es sei denn, Sie benötigen speziell höhere Geschwindigkeiten. + +::: + +--- + +## Lese-Modi + +Bei der Verwendung von Unraid wird die Geschwindigkeit, mit der Sie Dateien lesen können, hauptsächlich durch das individuelle Laufwerk bestimmt, das jede Datei hält. Im Gegensatz zu herkömmlichen %%RAID|raid%%-Systemen, die mehrere Laufwerke kombinieren, um die Leistung zu verbessern, speichert Unraid jede Datei auf einer einzigen Festplatte. Dies bedeutet, dass die Lesegeschwindigkeit nicht durch die kombinierten Geschwindigkeiten mehrerer Laufwerke erhöht wird. + +

Leistungserwartungen

+ +- **Typische einzelne Festplatte:** 70–250 MB/s (abhängig vom Laufwerksmodell, Alter und Datensatzstandort) +- **Typische SATA SSD:** 400–550 MB/s +- **NVMe SSD (in einem Pool):** 250–7.000 MB/s (PCIe-Generation und Netz-/PCIe-Beschränkungen gelten; z. B. 10 GbE-Netzwerk begrenzt auf \~1.100 MB/s) + +:::note\[Special Fälle + +- Wenn ein Datenträger deaktiviert ist und seine Daten rekonstruiert werden, verwendet Unraid die verbleibenden Laufwerke zusammen mit den Paritätsinformationen, um die Daten wiederherzustellen. Während dieses Prozesses kann die Lesegeschwindigkeit auf 30–60 MB/s oder sogar weniger sinken, abhängig von der langsamsten Festplatte in Ihrem System. +- Any ongoing operations in the array, such as a %%parity check|parity-check%% or rebuilding a drive, can also affect read performance. This is due to increased movement of the drive heads and overall contention for resources. + +::: + +--- + +## Cache-Pools + +%%Cache-Pools|cache-pool%% in Unraid bieten erhebliche Vorteile, insbesondere für schreibintensive Aufgaben, virtuelle Maschinen (VMs) und Docker-Container. Diese Pools arbeiten separat vom Hauptarray und können mit mehreren Laufwerken entweder mit dem %%BTRFS|btrfs%% oder %%ZFS|zfs%% Dateisystem eingerichtet werden, wobei verschiedene %%RAID|raid%% Konfigurationen zur Geschwindigkeits- und Datensicherheit unterstützt werden. + +

Cache-Pools vs. Hauptarray

+ +| Funktion | Cache-Pool (BTRFS) | Cache-Pool (ZFS) | Hauptarray (Unraid) | +| --------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | +| **Lesegeschwindigkeit** | SSD: 400–550 MB/s, NVMe: 250–7.000 MB/s\* | SSD: 400–550 MB/s, NVMe: 250–7.000 MB/s\* | HDD: 70–250 MB/s (pro Festplatte) | +| **Schreibgeschwindigkeit** | SSD: 400–550 MB/s, NVMe: 250–7.000 MB/s\* | SSD: 400–550 MB/s, NVMe: 250–7.000 MB/s\* | 20–120 MB/s (abhängig vom Paritätsmodus) | +| **Datenschutz** | %%RAID 1\|raid1%%/%%RAID 10\|raid10%%; %%RAID 5\|raid5%%/%%RAID 6\|raid6%% (experimentell, nicht für kritische Daten) | %%RAID 1\|raid1%%/%%RAID 10\|raid10%%; %%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%%/%%RAIDZ3\|raidz3%% (stabil, produktionsbereit) | Paritätsbasiert, Dateisystemunabhängig | +| **Erweiterung** | Mischen von Laufwerksgrößen; Geräte dynamisch hinzufügen/entfernen | Unterstützung für das Hinzufügen/Entfernen von Geräten beschränkt; kein Entfernen aus RAIDZ; Hinzufügen eines Einzellaufwerks zur Erweiterung eines einzel-VDEV RAIDZ in Unraid 7.2 | Laufwerke hinzufügen, aber kein Striping oder Leistungsskalierung | +| **Wiederherstellungskomplexität** | Higher risk of data loss; %%BTRFS\|btrfs%% tools required | Höheres Risiko von Datenverlusten; %%ZFS\|zfs%%-Werkzeuge erforderlich | Einfachere paritätsbasierte Wiederherstellungen | +| **Am besten geeignet für** | Apps, VMs, häufige Schreibvorgänge | Apps, VMs, häufige Schreibvorgänge, Unternehmens-Workloads | Massenspeicher, Mediatheken | + +\*Die tatsächlichen NVMe-Geschwindigkeiten hängen von der PCIe-Generation, Kühlung und Netzwerkbandbreite ab (z. B. 10 GbE begrenzt auf \~1.100 MB/s).\* + +

Vorteile von Cache-Pools

+ +- **Höhere Leistung:** NVME-Pools können 10GbE/40GbE Netzwerke sättigen (1.100–3.500 MB/s). +- **Flexibles RAID:** Sowohl %%BTRFS|btrfs%% als auch %%ZFS|zfs%% unterstützen %%RAID 1|raid1%%/%%RAID 10|raid10%% für Redundanz ohne übereinstimmende Laufwerksgrößen. +- **Niedrige Latenz:** Ideal für Datenbanken, VMs und Docker-Container. +- **Vorteile von ZFS:** %%ZFS|zfs%% bietet Unternehmens-Features wie Datenintegritätsprüfung, Komprimierung und Snapshots. + +

Nachteile von Cache-Pools

+ +- **Kein Paritätsschutz:** Daten sind ungeschützt, bis sie ins Array verschoben werden. +- **Wiederherstellungsrisiken:** %%BTRFS|btrfs%% %%RAID 5|raid5%%/%%RAID 6|raid6%% ist instabil; Einzellaufwerk-Pools fehlen Redundanz. +- **ZFS-Anforderungen:** %%ZFS|zfs%% benötigt mehr RAM und hat strengere Hardwarevoraussetzungen als %%BTRFS|btrfs%%. + +For more detailed information about %%cache pools|cache-pool%%, including how to set them up, manage them, and advanced features, check the [Cache pools](./cache-pools.mdx) page. + +--- + +## Fehlerbehebung + +### Fehlerbehebung bei Array-Startproblemen + +Wenn Ihr Array nicht startet, folgen Sie diesen Schritten, um häufige Probleme zu identifizieren und zu beheben. Suchen Sie nach Fehlermeldungen unter ***Hauptmenü → Array-Betrieb***. + +```mdx-code-block + + + + + + + + + + + + + + + + + + + + + + +``` + +### Festplattenausfall während eines Wiederaufbaus + +Wenn während des Wiederaufbaus einer Festplatte eine zweite Festplatte ausfällt, hängt das weitere Vorgehen von Ihrer Paritätskonfiguration ab. + +

Einzelnes %%parity disk|parity-drives%%

+ +Wenn während des Wiederaufbaus einer anderen Festplatte eine Festplatte ausfällt, wird der Wiederaufbau gestoppt, da die Daten nicht genau wiederhergestellt werden können. Leider können Sie Ihre Daten in dieser Situation nicht wiederherstellen. + +

Duales %%parity disk|parity-drives%%

+ +Wenn Sie zwei %%parity drives|parity-drives%% haben, haben Sie mehr Möglichkeiten: + +- Sie können warten, bis der erste Neuaufbau abgeschlossen ist, und sich dann mit der zweiten fehlgeschlagenen Festplatte befassen. +- Oder Sie können den aktuellen Wiederaufbau stoppen, die zweite ausgefallene Festplatte ersetzen und dann das Array starten, um beide Festplatten gleichzeitig wieder aufzubauen. + +Wenn der erste Wiederaufbau fast abgeschlossen ist, ist es normalerweise besser, ihn fertigstellen zu lassen. Wenn er gerade erst begonnen hat, könnte es schneller sein, beide zusammen wiederherzustellen. + +:::warning +Der Wiederaufbau von Festplatten belastet alle Laufwerke stark, was die Chance auf neue Ausfälle erhöht. Überprüfen Sie immer die Laufwerkgesundheit mithilfe der %%SMART-Berichte|smart-report%%, bevor Sie mit einem Wiederaufbau beginnen. +::: + +:::info\[Rebuild Zeit + +Seien Sie darauf vorbereitet, dass der Wiederherstellungsprozess mehrere Stunden dauern kann. Die Dauer kann je nach Festplattengröße und Systemauslastung variieren. Größere Festplatten und ausgelastete Systeme benötigen möglicherweise länger. + +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx new file mode 100644 index 0000000000..a51e64b23c --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx @@ -0,0 +1,390 @@ +--- +sidebar_position: 3 +sidebar_label: Cache-Pools +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RemoveDiskGui from './partials/remove-disk-gui.mdx'; +import RemoveDiskCommandLine from './partials/remove-disk-command-line.mdx'; +import PoolSingleDeviceMode from './partials/pool-single-device-mode.mdx'; +import PoolMultiDeviceMode from './partials/pool-multi-device-mode.mdx'; +import MovePoolToArray from './partials/move-pool-to-array.mdx'; +import MoveArrayToPool from './partials/move-array-to-pool.mdx'; +import MoveBetweenPoolsUsingMover from './partials/move-between-pools-using-mover.mdx'; +import MoveBetweenPoolsManual from './partials/move-between-pools-manual.mdx'; + +# Cache-Pools + +In Unraid, a %%cache pool|cache-pool%% is a collection of one or more drives, typically SSDs or high-speed HDDs. These drives temporarily store data before it's moved to your main [%%array|array%%](./array-configuration.mdx). Using %%cache pools|cache-pool%% can significantly enhance write speeds, protect your data, and provide dedicated storage for specific tasks like running Docker containers or [%%virtual machines|vm%%](../create-virtual-machines/overview-and-system-prep.mdx). + +%%Cache-Pools|cache-pool%% bieten mehrere Vorteile, die sie zu einer wertvollen Ergänzung Ihres Unraid-Setups machen, wie z. B.: + +1. **Faster write speeds:** %%Cache pools|cache-pool%% allow you to quickly write data to faster drives before it gets transferred to the main %%array|array%%. This greatly enhances perceived performance when saving files. + +2. **Data protection for cached files:** By using multiple drives in a %%cache pool|cache-pool%% (like setting them up in %%RAID 1|raid1%%), you add redundancy. This means your cached data is protected from drive failure before it even reaches the main %%array|array%%. + +3. **Optimized storage for applications:** Storing applications like Docker containers or %%virtual machines|vm%% on a %%cache pool|cache-pool%% improves their performance, reduces wear on your main %%array|array%%, and minimizes the time it takes to access frequently-used files. + +4. **Flexible and dedicated storage:** With multiple %%cache pools|cache-pool%%, you can assign specific pools for different tasks. For instance, you could have one pool dedicated to downloads and another for %%virtual machines|vm%%, reducing competition for resources and boosting efficiency. + +:::info[Keep im Sinn] +- **Multiple pools:** You can create and name different %%cache pools|cache-pool%%, tailoring them to match your specific needs. +- **SSD vs. HDD:** SSDs bieten hohe Geschwindigkeit, während Sie HDDs für große, sequentielle Datenlasten nutzen können. HDDs tragen zudem dazu bei, die Lebensdauer Ihrer SSDs zu verlängern. +- **Redundancy matters:** To protect your data, use more than one drive in a %%cache pool|cache-pool%%. A single drive pool won't protect you from potential drive failure. +- **File system choice:** The default file system for %%cache pools|cache-pool%% is %%BTRFS|btrfs%%, which supports various %%RAID|raid%% options for added redundancy and flexibility. For more details on file system selection, see [File systems](./file-systems.mdx). +- **%%Mover|mover%% integration:** Data written to a %%cache pool|cache-pool%% is automatically transferred to your main %%array|array%% based on a schedule you set. This keeps your [%%user shares|user-share%%](./shares.mdx) organized and easy to manage. +- **Application performance:** By placing Docker containers, app data, and %%VM|vm%% disks on a %%cache pool|cache-pool%%, you enhance access speed and minimize strain on your main storage. +::: + +--- + +## Pool-Modi + +Unraid %%cache pools|cache-pool%% can operate in two main modes: **single device mode** and **multi-device mode**. Knowing the difference between these modes will help you find the right balance between performance, flexibility, and data protection for your needs. + + + + + + + + + + + +Common tasks for the %%cache pool|cache-pool%% include: + +- Backing up your pool to the %%array|array%% +- Wechseln zwischen Einzel- und Mehrgerätmodi +- Hinzufügen von Datenträgern zu einem Pool +- Ersetzen von Datenträgern in einem Pool + +## Sichern Ihres Cache-Pools auf das Array + +Backing up your %%cache pool|cache-pool%% to the main %%array|array%% is a crucial step before making any upgrades, reformatting, or replacing your cache devices. This process ensures that important data - like Docker containers, app data, and %%virtual machine|vm%% files - are securely stored on the main %%array|array%%, minimizing the risk during maintenance. + +

Why back up your %%cache pool|cache-pool%%?

+ +- **Datenschutz:** Schützen Sie Ihre wichtigen Dateien, bevor Sie Hardwareänderungen oder Upgrades durchführen. +- **Verhinderung von versehentlichem Verlust:** Reduzieren Sie das Risiko von Datenverlusten beim Formatieren oder Ersetzen von Geräten. +- **Einfache Wiederherstellung:** Stellen Sie sicher, dass Sie Ihre Anwendungs- und %%Virtuelle Maschinen|vm%%-Daten nach der Wartung schnell wiederherstellen können. + +:::important +Dieser Prozess stoppt alle Docker-Container und %%virtuellen Maschinen|vm%%, planen Sie daher einige Ausfallzeiten ein und benachrichtigen Sie die Benutzer bei Bedarf. Weitere Informationen zur Verwaltung von Docker-Containern finden Sie unter [Verwalten und Anpassen von Containern](../run-docker-containers/managing-and-customizing-containers.mdx). +::: + +To back up your %%cache pool|cache-pool%%: + +1. **Stoppen Sie alle laufenden Docker-Container und %%Virtuelle Maschinen|vm%%**: Dies ist entscheidend für einen reibungslosen Sicherungsprozess. +2. **Deaktivieren Sie %%Virtuelle Maschinen|vm%%:** + - Gehen Sie zu ***Einstellungen → VM-Manager***. + - Schalten Sie %%VMs|vm%% aus und klicken Sie auf **Anwenden**. +3. **Docker deaktivieren:** + - Navigieren Sie zu ***Einstellungen → Docker***. + - Docker ausschalten und auf **Anwenden** klicken. +4. **Freigabespeicher und Mover-Aktion festlegen (Cache → Array):** + - Gehen Sie zur **Shares**-Registerkarte. + - For each %%user share|user-share%% you want to move, set **Primary storage** to the source %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. + - Setzen Sie die **Mover-Aktion** auf **Cache → Array**. +5. **Check space on the %%array|array%%**: Ensure there's enough free space for your files. +6. **Move files to the %%array|array%%**: From the **Main** page, click **Move Now**. This transfers files from the %%cache pool|cache-pool%% to the %%array|array%% based on the Mover action. +7. **Verify your pool is empty**: Once the %%Mover|mover%% has finished, check that there are no remaining files in the %%cache pool|cache-pool%%. + +:::note +Denken Sie daran, dass Dateien, die sich direkt auf dem Pool-Gerät befinden (nicht Teil einer Freigabe), manuell verschoben werden müssen. +::: + +### Dateien im Cache-Pool wiederherstellen + +After you've completed your maintenance or replaced your device, you can restore files from the %%array|array%% back to the %%cache pool|cache-pool%% by following these steps: + +1. **Freigabespeicher und Mover-Aktion festlegen (Array → Cache):** + - Gehen Sie zur **Shares**-Registerkarte. + - For each %%user share|user-share%% you want to restore, set **Primary storage** to the destination %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. + - Setzen Sie **Mover-Aktion** auf **Array → Cache**. +2. **Check space on the pool**: Make sure there's enough free space on the %%cache pool|cache-pool%%. +3. **Move files back to the pool**: Go to the **Main** page and click **Move Now** to transfer files back to the %%cache pool|cache-pool%%. +4. **Verify content in the pool**: After the move completes, check that your %%cache pool|cache-pool%% contains the expected files and that the shares are empty on the %%array|array%%. +5. **Docker reaktivieren:** Navigieren Sie zu ***Einstellungen → Docker*** und schalten Sie Docker wieder ein, dann klicken Sie auf **Anwenden**. +6. **%%Virtuelle Maschinen|vm%% reaktivieren:** Gehen Sie zu ***Einstellungen → VM-Manager*** und schalten Sie %%VMs|vm%% wieder ein, dann klicken Sie auf **Anwenden**. +7. **Docker-Container und %%VMs|vm%% neu starten:** Starten Sie abschließend alle Docker-Container oder %%Virtuelle Maschinen|vm%%, die Sie erneut ausführen möchten. + +--- + +## Wechsel in den Multi-Gerät-Modus + +Die %%Cache-Pools|cache-pool%% in Unraid können von einem Einzelgerät auf mehrere Geräte erweitert werden, was eine erhöhte Kapazität und Redundanz ermöglicht. Um den Mehrgerätemodus zu nutzen, muss Ihr Pool als %%BTRFS|btrfs%% oder %%ZFS|zfs%% formatiert sein. + +### Umwandlung eines Pools in BTRFS oder ZFS + +If your %%cache pool|cache-pool%% isn't already formatted as %%BTRFS|btrfs%% or %%ZFS|zfs%%, follow these simple steps: + +1. **Sichern Sie Ihre Daten**: Stellen Sie zuerst sicher, dass Sie alle wichtigen Inhalte sichern. (Siehe [Sichern Ihres Cache-Pools auf das Array](#backing-up-your-cache-pool-to-the-array)) +2. **Stop the %%array|array%%**: Make sure to stop the %%array|array%% to begin the conversion process. +3. **Ändern Sie das Dateisystem:** Klicken Sie im **Main**-Tab auf den Pool und wählen Sie **BTRFS** oder **ZFS** als Dateisystemformat aus. +4. **Start the %%array|array%%**: After changing the format, start the %%array|array%%. +5. **Formatieren Sie den Pool**: Der Pool wird als **unmountable** angezeigt und bietet die Möglichkeit zur Formatierung. Bestätigen Sie und klicken Sie auf die **Formatieren**-Taste. +6. **Abschließende Formatierung**: Sobald die Formatierung abgeschlossen ist, haben Sie ein %%BTRFS|btrfs%% oder %%ZFS|zfs%% Pool, obwohl es zu diesem Zeitpunkt nur ein Gerät enthalten wird. +7. **Fügen Sie bei Bedarf zusätzliche Laufwerke hinzu:** Sie können nun mehr Laufwerke zu Ihrem Pool hinzufügen, wenn Sie möchten. +8. **Stellen Sie Ihre Daten wieder her:** Befolgen Sie abschließend die Wiederherstellungsschritte aus dem Sicherungsverfahren, um Ihre Daten zurück in den Pool zu übertragen. + +### Hinzufügen von Laufwerken zur Erstellung eines Mehrgerätepools + +Sobald Ihr Pool als %%BTRFS|btrfs%% oder %%ZFS|zfs%% formatiert ist, können Sie weitere Laufwerke für Redundanz und zur Speichererweiterung hinzufügen. + +So fügen Sie weitere Laufwerke für Redundanz hinzu: + +1. **Stop the %%array|array%%**: Again, start by stopping the %%array|array%%. +2. **Weisen Sie zusätzliche Laufwerke zu:** Im **Main**-Tab können Sie ein oder mehrere neue Geräte Ihrem Pool zuweisen. +3. **Start the %%array|array%%**: Once the drives are assigned, start the %%array|array%%. +4. **Automatische Balance/wiederherstellen:** Unraid wird die neuen Geräte automatisch in den Pool integrieren und eine **Balance** (%%BTRFS|btrfs%%) oder **Resilver** (%%ZFS|zfs%%) einleiten, um Daten über die Geräte zu verteilen und zu schützen. +5. **Fortschritt überwachen:** Im **Main**-Tab klicken Sie auf das erste Pool-Gerät, dann überprüfen Sie den **Balance-Status** (für %%BTRFS|btrfs%%) oder **zpool-Status** (für %%ZFS|zfs%%), um den Fortschritt zu verfolgen und zu bestätigen, dass das neue Gerät erfolgreich hinzugefügt wurde. +6. **Pool jetzt im Mehrgerätmodus:** Sobald das Balancing abgeschlossen ist, wird Ihr Pool im **Mehrgerätmodus** mit erhöhter Kapazität und Redundanz betrieben. + +:::tip +Sie können den [BTRFS-Disknutzungsrechner](http://carfax.org.uk/btrfs-usage/) verwenden, um den verfügbaren Speicherplatz und die Redundanz basierend auf Ihrem gewählten %%RAID|raid%%-Level und den Gerätegrößen zu schätzen. +::: + +--- + +## Hinzufügen von Datenträgern zu einem Pool + +Wenn Ihr Speicherbedarf wächst, möchten Sie vielleicht Ihren Cache-Pool durch das Hinzufügen zusätzlicher Festplatten erweitern. Dieser Prozess ermöglicht Ihnen, sowohl die Kapazität als auch die Leistung zu erhöhen und gleichzeitig den Datenschutz durch RAID-Konfigurationen zu gewährleisten. + +:::note +Wenn Sie Festplatten zu Ihrem Pool hinzufügen möchten, stellen Sie sicher, dass Ihr Pool bereits als %%BTRFS|btrfs%% oder %%ZFS|zfs%% formatiert ist. Falls nicht, müssen Sie ihn zuerst formatieren, wie im [vorherigen Abschnitt](#converting-a-pool-to-btrfs-or-zfs) erklärt. +::: + +Zum Hinzufügen einer Festplatte zu einem Pool: + +1. **Stop the %%array|array%%**: Begin by stopping the current %%array|array%% to ensure the process goes smoothly. +2. **Öffnen Sie den Hauptbereich**: Gehen Sie zum Tab **Haupt** im %%WebGUI|web-gui%%. Hier verwalten Sie Ihre Festplatten. +3. **Finden Sie den Pool-Devices-Bereich**: Scrollen Sie nach unten, bis Sie den *Pool Devices* Bereich sehen. Hier können Sie Änderungen an Ihrer Festplattenkonfiguration vornehmen. +4. **Passen Sie die Anzahl der Slots an**: Stellen Sie **Slots** genau auf die Anzahl der zusätzlichen Geräte, die Sie hinzufügen, ein. Sie können keine zusätzlichen leeren Slots lassen; das Array startet nicht mit ungenutzten Pool-Slots. +5. **Weisen Sie Ihre Geräte zu:** Wählen Sie aus, welche Geräte (Datenträger) Sie dem Pool hinzufügen möchten, und weisen Sie sie den verfügbaren Steckplätzen zu. +6. **Start the %%array|array%%**: After you've assigned your devices, start the %%array|array%% again to enable these changes. + +--- + +## Entfernen von Datenträgern aus einem Pool + +Removing a disk from a %%BTRFS|btrfs%% or %%ZFS|zfs%% multi-device %%cache pool|cache-pool%% can help you reclaim hardware, replace a failing drive, or reconfigure your storage. This process is only possible if your pool is set up for redundancy (like %%RAID 1|raid1%% for both data and metadata) and the remaining devices have enough space to hold all of your data. + + + + + + + + + + + +### Ändern von Pool-RAID-Leveln + +%%BTRFS|btrfs%% provides the ability to change %%RAID|raid%% levels for %%cache pools|cache-pool%% dynamically, allowing you to adjust settings without stopping the %%array|array%% or losing any data. This flexibility lets you optimize for performance, redundancy, or storage efficiency as your requirements change. + +

Unterstützte %%RAID|raid%% Level

+ +| %%RAID\|raid%% Level | Datenschutz | Speichereffizienz | Anwendungsfall | +| -------------------- | ------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------- | +| Single | Keine | 100% | Temporäre Speicherung oder nicht-kritische Daten, bei denen keine Redundanz erforderlich ist. | +| %%RAID 0\|raid0%% | Keine | 100% | Maximiert Leistung und Kapazität, aber nicht für kritische Daten empfohlen. | +| %%RAID 1\|raid1%% | 1 Festplattenfehler | 50% | Standard für Unraid Pools. Ideal für Docker/%%VM\|vm%% Speicherung und kritische Daten. | +| %%RAID 10\|raid10%% | 1 Festplattenfehler | 50% | Kombiniert die Geschwindigkeit von %%RAID 0\|raid0%% mit der Redundanz von %%RAID 1\|raid1%% für Hochleistungsbedürfnisse. | +| %%RAID 5\|raid5%%\* | 1 Festplattenfehler | 67-94% | **Experimentell.** Balanciert Kapazität und Redundanz für große Medienlager. | +| %%RAID 6\|raid6%%\* | 2 Festplattenfehler | 50-88% | **Experimentell.** Bietet zusätzlichen Schutz für Archivspeicher mit großen Festplatten. | + +:::important +%%RAID 5|raid5%% and %%RAID 6|raid6%% are considered experimental in %%BTRFS|btrfs%%. %%ZFS|zfs%% provides more mature support for these %%RAID|raid%% levels. Use with caution and ensure you have backups. Avoid using experimental %%RAID|raid%% levels for critical data. +::: + +So ändern Sie das %%RAID|raid%% Level eines Pools: + +1. **Start the %%array|array%%** in normal mode if it is not already running. +2. **Klicken Sie auf den Poolnamen** in der Registerkarte **Main**. +3. **Zum Balance-Status scrollen**: Sehen Sie sich die aktuellen %%RAID|raid%% Level für Daten und Metadaten an. +4. **Wählen Sie das neue %%RAID|raid%% Profil**: Wählen Sie aus einem Dropdown-Menü vordefinierter Profile aus. +5. **Starten Sie den Balance-Vorgang**: Klicken Sie auf **Balance**, um die Konvertierung zu starten. + +
+ ![Umwandlung von %%RAID 1|raid1%% zu Einzelprofil](/img/Btrfs-raid1.jpg) +

*Beispiel: Umwandlung von %%RAID 1|raid1%% zu Einzelprofil*

+
+ +6. **Fortschritt überwachen**: Balance-Vorgänge können je nach Datenmenge im Pool, Laufwerksgeschwindigkeit und der Komplexität des ausgewählten %%RAID|raid%% Levels mehrere Stunden bis Tage dauern. + +
+ Probleme bei Balancevorgängen bei Blockaden beheben - Klicken zum Erweitern/Zusammenklappen + + Wenn ein Balance-Vorgang festzustecken scheint oder nicht reagiert, befolgen Sie diese Schritte: + + 1. **Überprüfen Sie die Protokolle**: Gehen Sie zu ***Werkzeuge → Protokolle*** und filtern Sie nach `btrfs` Einträgen. + 2. **Stoppen und Fortsetzen des Vorgangs**: + - Klicken Sie auf **Balance abbrechen**. + - Restart the %%array|array%%. + - Initiieren Sie den Balance-Vorgang erneut. + 3. **Verify disk health**: Run %%SMART|smart%% tests on all devices in the pool. For more information on disk health monitoring, see [SMART reports and disk health](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx). + 4. **Freien Speicherplatz überprüfen**: Stellen Sie sicher, dass im Pool mindestens 10-15 % freier Speicherplatz verfügbar ist. + 5. **Diagnosen posten**: Teilen Sie die Logs im [Unraid-Forum](https://forums.unraid.net/), wenn Probleme weiterhin bestehen. Für Anweisungen zur Erfassung von Diagnosen siehe [Diagnosen und Logs erfassen](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx). +
+ +Für erweiterte %%BTRFS|btrfs%% Konfigurationsdetails siehe das [BTRFS-Wiki](https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices). + +--- + +## Festplatte in einem Pool ersetzen + +Das Ersetzen einer Festplatte in Ihrem %%cache pool|cache-pool%% ist eine wichtige Aufgabe, die dazu beiträgt, die Leistung und Zuverlässigkeit Ihres Speichersystems aufrechtzuerhalten. + +:::note\[Prerequisites] + +- **Check your pool configuration:** Make sure your pool is set up with a redundant %%RAID|raid%% profile, like %%RAID 1|raid1%%. You can do this by going to ***Main → Pool → Balance Status*** (for %%BTRFS|btrfs%%) or ZFS pool status (for %%ZFS|zfs%%) in your management interface. +- **Die richtige Ersatzfestplatte wählen:** Die neue Festplatte muss gleich groß oder größer als die zu ersetzende sein. +- **Hot-Swap-Fähigkeit:** Wenn Ihre Hardware Hot-Swapping unterstützt, müssen Sie Ihr System nicht herunterfahren, um die Festplatte zu ersetzen. + +::: + +Zum Ersetzen einer Festplatte in einem Pool: + +1. **Stop the %%array|array%%**: Go to the **Main** tab, find the **Array Operation** section, and click the **Stop** button. This will safely halt the %%array|array%% to prepare for disk replacement. +2. **(Optional) Entfernen Sie die alte Festplatte**: Wenn Sie nicht über ein hot-swap-fähiges Setup verfügen, müssen Sie die alte Festplatte physisch abklemmen. Stellen Sie sicher, dass Sie dies sorgfältig tun, um Schäden zu vermeiden. +3. **Installieren Sie die Ersatzfestplatte**: Setzen Sie die neue Festplatte in Ihr System ein. Stellen Sie sicher, dass sie richtig angeschlossen und gesichert ist. +4. **Aktualisieren Sie das %%WebGUI|web-gui%%**: Gehen Sie zurück zur Registerkarte **Main** und aktualisieren Sie die Seite, damit das System Ihre neue Festplatte erkennt. +5. **Weisen Sie die neue Festplatte zu**: Sobald sie erkannt wurde, finden Sie den Pool-Slot, in dem die alte Festplatte war, und weisen der neuen Festplatte diesen Slot zu. +6. **Start the %%array|array%%**: Click the **Start** button to begin the process of integrating the new disk into the %%array|array%%. +7. **Überwachen Sie den Wiederaufbau**: Das System wird automatisch mit der Rekonstruktion der Daten auf die neue Festplatte beginnen. Sie können den Fortschritt im %%WebGUI|web-gui%% beobachten. + +:::important\[Timing] + +Der Wiederaufbau kann einige Zeit in Anspruch nehmen, je nach Größe der Festplatte und aktueller Systemlast. Beispielsweise kann der Wiederaufbau eines 4TB-SSDs in einem %%RAID 1|raid1%%-Setup etwa 3-6 Stunden dauern. Es ist ratsam, dies zu planen, wenn Sie dem System erlauben können, ungestört zu arbeiten. + +::: + +--- + +## Mindestfreier Speicherplatz für einen Cache-Pool + +Setting a minimum free space for your %%cache pool|cache-pool%% can provide better control over file placement, especially when dealing with large files like high-resolution videos. This setting helps Unraid know when to stop writing to the pool and start writing directly to the larger storage %%array|array%%, avoiding interruptions or data corruption. + +:::tip\[Example] + +Wenn Sie häufig Dateien um die 10 GB herunterladen, legen Sie den Mindestfreien Speicherplatz auf mindestens 10 GB fest, idealerweise 20 GB, um Anpassungen zu ermöglichen. + +::: + +Sie können den Minimumfreier Speicherplatz aufrufen, indem Sie auf den Poolnamen in der Registerkarte **Main** klicken und zu den **Individuellen Pooleinstellungen** gehen. + +

Wie es funktioniert

+ +- Wenn Sie eine Datei in ein Freigabe laden, das einen Pool umfasst, respektiert Unraid die erste angezeigte Einstellung (entweder den Mindestfreien Speicherplatz der Freigabe oder den des Pools, je nachdem, welcher zuerst erreicht wird). +- Die Mindestfreier Speicherplatz-Einstellung sagt Unraid, dass der %%cache pool|cache-pool%% nicht mehr verwendet werden soll, wenn der freie Speicherplatz unter diese Menge fällt. +- If your share uses a %%cache pool|cache-pool%% as **Primary storage**, files go to the pool until it reaches the minimum free space, then they are sent directly to the %%array|array%%. +- If set to use a %%cache pool|cache-pool%% exclusively (no **Secondary storage**), this setting is not applied. +- If set to use only the %%array|array%% as **Primary storage**, files go straight to the %%array|array%%. + +:::tip[Use Fallbeispiel] +Die Medienshare hat eine Freigrenze von 20 GB, was für die Dateien in diesem Share passend ist. Wenn Sie jedoch den Pool auch für eine VM verwenden und für den Fall, dass die VDisk wächst, ein Polster lassen möchten, könnten Sie die Pool-Grenze auf 50 GB setzen. So wird jeder Übertrag an das Medienshare nach dem Pool bei weniger als 50 GB freiem Platz direkt an das Array geleitet. +::: + +:::tip[Best Praxis] +Setzen Sie den Mindestfreiraum auf mindestens die Größe der größten Datei, die Sie erwarten, vorzugsweise das Doppelte dieser Größe. Wenn Ihre größte Datei beispielsweise 30 GB groß ist, setzen Sie das Minimum auf 60 GB. +::: + +:::caution +**Setzen Sie den Mindestfreiraum nicht auf 0.** Dies kann zu Festplattenvolllauf-Fehlern führen. Verwenden Sie immer einen vernünftigen Wert. +::: + +--- + +## Dateien zwischen einem Pool und dem Array verschieben + +There are times when you may need to move files between your %%cache pool|cache-pool%% and the main %%array|array%%, such as when preparing for maintenance, upgrading hardware, or optimizing performance. Unraid provides a built-in tool called %%Mover|mover%% to automate this process for [%%user shares|user-share%%](./shares.mdx). + +:::tip +Deaktivieren Sie beim Verschieben von Dateien mit dem %%Mover|mover%% immer Docker- und %%VM|vm%%-Dienste. Dadurch wird verhindert, dass offene Dateien während der Übertragung übersprungen werden. +::: + + + + + + + + + + + +
+ Warum landen Dateien manchmal im falschen Pool oder Cache? - Klicken, um zu erweitern/zuklappen + + When you move files between [%%user shares|user-share%%](./shares.mdx) at the Linux level (for example, using `mv` or within a Docker container), Linux tries to optimize the operation. If both the source and destination appear on the same mount point (`/mnt/user`), Linux might rename the file instead of moving it. This can result in files remaining on the original disk or pool, even if the share's "Use cache" setting is set to "No." + + Um sicherzustellen, dass Dateien wie beabsichtigt verschoben werden, erwägen Sie folgende Optionen: + + - Verwenden Sie das %%Mover|mover%%-Werkzeug. + - Dateien kopieren und dann die Originale löschen. + - Dateien über das Netzwerk verschieben. + + Diese Methoden helfen, zu verhindern, dass Dateien im falschen Verzeichnis landen. +
+ +--- + +## Mehrere Pools + +Unraid erlaubt es Ihnen, bis zu 35 separate Speicher-Pools zu erstellen und zu verwalten, jeder mit bis zu 60 Geräten. Mehrfache Pools bieten Ihnen die Flexibilität, Speicher für unterschiedliche Aufgaben zuzuweisen, die Leistung zu verbessern und die Redundanz an Ihre Bedürfnisse anzupassen. Jeder Pool kann ein anderes Dateisystem, %%RAID|raid%%-Level und Gerätetyp (SSD, HDD, NVMe usw.) verwenden. + +

Warum mehrere Pools verwenden?

+ +- **Leistung optimieren:** Separate Pools für %%VMs|vm%%, Docker-Container, Downloads oder Medien können die Geschwindigkeit erhöhen und Konflikte reduzieren. +- **Daten schützen:** Weisen Sie jedem Pool unterschiedliche %%RAID|raid%%-Level oder Dateisysteme zu, um maßgeschneiderte Redundanz- und Backup-Optionen zu erhalten. +- **Arbeitslasten isolieren:** Halten Sie kritische Anwendungen auf schnelleren, redundanten Pools und speichern Sie Massendaten auf größeren, kosteneffizienten Geräten. +- **Flexible Verwaltung:** Sie können Pools unabhängig erweitern, reduzieren oder formatieren, ohne andere zu beeinflussen. + +

Gemeinsame Anwendungsfälle

+ +| Anwendungsfall | Konfigurationsbeispiel | Vorteil | +| --------------------------- | ----------------------------------------------------------------------------- | ---------------------------------------- | +| Leistungsstarke %%VMs\|vm%% | NVMe SSD-Pool, %%RAID 1\|raid1%%, %%BTRFS\|btrfs%% oder %%ZFS\|zfs%% | Schnelle I/O mit Redundanz | +| Docker/Appdata-Speicher | SSD-Pool, %%RAID 1\|raid1%%, %%BTRFS\|btrfs%% oder %%ZFS\|zfs%% | Schneller Zugriff und Datenschutz | +| Massenmedien-Downloads | Großer HDD-Pool, %%RAID 0\|raid0%% oder Einzel, %%XFS\|xfs%%/%%BTRFS\|btrfs%% | Hohe Kapazität mit weniger Redundanz | +| Projekt-/Team-Isolation | Separate Pools für jedes Team/Projekt | Reduziert Ressourcenkonflikte | +| Snapshots und Backup-Ziele | %%ZFS\|zfs%%-Pool, %%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%% (mehrere Geräte) | Unterstützt native Snapshots und Backups | + +:::info[Supported Dateisysteme] +- %%BTRFS|btrfs%%: Am besten für Multi-Device-Pools (unterstützt %%RAID 0|raid0%%, %%RAID 1|raid1%%, %%RAID 10|raid10%%, %%RAID 5|raid5%%, %%RAID 6|raid6%%). +- %%ZFS|zfs%%: Hervorragend für sowohl Einzel- als auch Mehrgerät-Pools (Unraid 6.12+), mit ausgereifter Unterstützung für %%RAIDZ1|raidz1%% und %%RAIDZ2|raidz2%%. Für erweiterte ZFS-Funktionen und Konfigurationen siehe [ZFS-Speicher](../../advanced-configurations/optimize-storage/zfs-storage.mdx). +- %%XFS|xfs%%: Geeignet für Einzelgeräte-Pools. +::: + +When accessing a [%%user share|user-share%%](./shares.mdx) from multiple pools and %%array|array%% disks, Unraid merges the directory listings in this order: + +1. Pool dem Share zugewiesen +2. %%Array|array%%-Festplatten (disk1, disk2, ..., disk28) +3. Andere Pools (in dieser Reihenfolge) + +### Dateien zwischen Pools verschieben + +Unraid erlaubt keinen direkten Dateitransfer zwischen Pools über das %%WebGUI|web-gui%%, aber Sie können es mit dem %%Mover|mover%%-Werkzeug oder über die Befehlszeile tun. + +:::note\[Remember] + +Wenn einer der Dateien zu einem Docker-Container und/oder %%VM|vm%% gehört, müssen die Dienste deaktiviert sein, damit die Dateien erfolgreich verschoben werden können. + +::: + + + + + + + + + + + +:::warning +If you remove a device from a %%BTRFS|btrfs%% or %%ZFS|zfs%% pool and move it to a new pool, Unraid will erase all data on it when the %%array|array%% restarts. Always back up important data before changing pool configurations. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx new file mode 100644 index 0000000000..50c6744a24 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx @@ -0,0 +1,476 @@ +--- +sidebar_position: 4 +sidebar_label: Dateisysteme +--- + +# Dateisysteme + +### Auswahl eines Dateisystemtyps + +Die Wahl des richtigen Dateisystems für Ihr Unraid-%%array|array%% oder %%cache pool|cache-pool%% ist entscheidend. Es hilft Ihnen, ein Gleichgewicht zwischen Leistung, Datenschutz und erweiterten Funktionen zu erreichen. Unraid unterstützt mehrere moderne Linux-Dateisysteme, von denen jedes seine eigenen Stärken und spezifischen Anwendungsfälle hat: + +| Dateisystem | Datenschutz | Speichereffizienz | Erweiterte Funktionen | Bester Anwendungsfall | +| ---------------- | ------------------------------------------------------------------------------------------ | ------------------------------------- | ---------------------------------------------------------------- | ----------------------------------------------------------------- | +| %%XFS\|xfs%% | Keine eingebaute Redundanz | 100% | Robust gegen Korruption | Standard für Array-Laufwerke; hohe Zuverlässigkeit | +| %%ZFS\|zfs%% | %%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%%/%%RAIDZ3\|raidz3%%, Spiegel, usw. | Variiert je nach %%RAID\|raid%%-Level | %%Checksums\|checksum%%, %%Snapshots\|snapshot%%, %%RAID\|raid%% | Multigeräte-Pools, %%VMs\|vm%%, Docker, fortgeschrittene Benutzer | +| %%BTRFS\|btrfs%% | %%RAID 0\|raid0%%/%%RAID 1\|raid1%%/%%10\|raid10%%/%%5\|raid5%%/%%6\|raid6%%, Spiegelungen | Variiert je nach %%RAID\|raid%%-Level | %%Checksums\|checksum%%, %%Snapshots\|snapshot%%, %%RAID\|raid%% | Multigeräte-Pools, gemischte SSD/HDD, flexible Pools | + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import FileSystemXfs from './partials/file-system-xfs.mdx'; +import FileSystemZfs from './partials/file-system-zfs.mdx'; +import FileSystemBtrfs from './partials/file-system-btrfs.mdx'; +import BtrfsBalance from './partials/btrfs-balance.mdx'; +import BtrfsScrub from './partials/btrfs-scrub.mdx'; +import FsCheckCliXfs from './partials/fs-check-cli-xfs.mdx'; +import FsCheckCliBtrfs from './partials/fs-check-cli-btrfs.mdx'; +import FsCheckCliZfs from './partials/fs-check-cli-zfs.mdx'; +import FsRepairCliXfs from './partials/fs-repair-cli-xfs.mdx'; +import FsRepairCliBtrfs from './partials/fs-repair-cli-btrfs.mdx'; +import FsRepairCliZfs from './partials/fs-repair-cli-zfs.mdx'; + + + + + + + + + + + + + + + +:::note[Additional Anmerkungen] +- Mixing different file system types in your Unraid system is perfectly acceptable; the Unraid %%parity|parity%% system works independently of the file system used. +- Immer innerhalb von Unraid formatieren und partitionieren, um Kompatibilität zu gewährleisten. +- Linux-Systeme können diese Dateisysteme nativ lesen; Windows und macOS benötigen jedoch zusätzliche Software für den Zugriff. +- Sie können verschlüsseln Laufwerke für erhöhte Sicherheit, aber beachten Sie, dass verschlüsselte Laufwerke bei einer Beschädigung Herausforderungen für die Wiederherstellung darstellen können. +- Für Übertragungslaufwerke oder externe Geräte wird empfohlen, das **[Nicht zugewiesene Geräte](#using-the-unassigned-devices-plugins)** Plugin zu verwenden, welches zusätzliche Dateisysteme unterstützt. +::: + +:::tip[Still Brauchen Sie Hilfe bei der Auswahl?] +- **Für Array-Laufwerke:** %%XFS|xfs%% ist in der Regel die beste Wahl für die meisten Benutzer. +- **Für Hochleistung oder erweiterte Funktionen:** Wählen Sie %%ZFS|zfs%% oder %%BTRFS|btrfs%% für %%cache pools|cache-pool%% oder Mehrgerätelayouts. +- **Für gemischte oder erweiternde Pools:** %%BTRFS|btrfs%% ist ideal, wenn Sie unterschiedliche Laufwerksgrößen verwenden oder Geräte einfach hinzufügen oder entfernen möchten. + +If you're uncertain, starting with the defaults is a good approach: use %%XFS|xfs%% for %%array|array%% drives and %%BTRFS|btrfs%% for %%cache pools|cache-pool%%. +::: + +--- + +## Festlegen eines Dateisystemtyps + +Beim Hinzufügen eines neuen Laufwerks zu Unraid können Sie den Dateisystemtyp auswählen, der am besten zu Ihren Anforderungen passt. Das Dateisystem bestimmt, wie Daten auf der Festplatte organisiert und geschützt werden. + +So setzen Sie den Dateisystemtyp: + +1. **Standard global festlegen:** + - Navigate to ***Settings → Disk Settings*** to set the default file system for new %%array|array%% drives only. + - Unraid defaults to %%XFS|xfs%% for %%array|array%% drives. + - **Hinweis:** Es gibt derzeit keine globale Standardeinstellung für %%cache pools|Cache-Pools%%. Sie werden immer auf %%BTRFS|btrfs%% gesetzt, wenn sie auf "Auto" eingestellt sind. + +2. **Dateisystem für ein einzelnes Laufwerk festlegen:** + - Stoppen Sie das %%array|array%%. + - Klicken Sie auf das Laufwerk im **Haupt** Tab. + - Wählen Sie den gewünschten Dateisystemtyp aus dem Dropdown-Menü. + - Wenn Sie **Auto** wählen, verwendet Unraid den globalen Standard. + - Für Mehrgerätige %%cache pools|cache-pool%% werden nur %%BTRFS|btrfs%% oder %%ZFS|zfs%% unterstützt. + +--- + +## Erstellen eines Dateisystems (Formatierung) + +Bevor Sie eine neue Festplatte in Unraid verwenden, müssen Sie sie mit dem ausgewählten Dateisystem formatieren. **Denken Sie daran, dass durch das Formatieren alle vorhandenen Inhalte auf dem Laufwerk gelöscht werden.** + +Um mit der Formatierung zu beginnen: + +1. **Starten Sie das %%array|Array%%**. +2. **Nicht einbindbare Laufwerke identifizieren:** Laufwerke, die nicht erkannt werden, erscheinen als **nicht einbindbar**. +3. **Laufwerkauswahl überprüfen:** Überprüfen Sie, ob alle nicht gebundenen Laufwerke die sind, die Sie formatieren möchten. +4. **Bestätigen und formatieren:** Kreuzen Sie das Kästchen zur Bestätigung an, lesen Sie den Warnhinweis sorgfältig durch und klicken Sie auf **Formatieren**. +5. **Überwachen Sie den Prozess**: Der Formatierungsprozess beginnt. Für neue Festplatten schreibt Unraid zunächst die Partitionstabelle neu. +6. **Warten Sie auf den Abschluss**: Das Formatieren dauert in der Regel nur ein paar Minuten. Wenn Sie keinen Fortschritt sehen, aktualisieren Sie den **Main**-Reiter. + +Sobald die Formatierung abgeschlossen ist, ist das Laufwerk bereit zur Dateispeicherung. + +--- + +## Ändern eines Dateisystemtyps + +Möglicherweise möchten Sie den Dateisystemtyp auf einem bestimmten Laufwerk ändern, um neue Funktionen zu nutzen oder um die Kompatibilität mit Ihren anderen Laufwerken zu gewährleisten. + +:::warning +Das Ändern des Dateisystemtyps wird **alle vorhandenen Daten** auf dem Laufwerk löschen. Sichern Sie daher immer alle wichtigen Dateien, bevor Sie fortfahren. +::: + +Um den Dateisystemtyp eines bestimmten Laufwerks zu ändern: + +1. **Stoppen Sie das Array**: Beginnen Sie damit, Ihr %%array|array%% zu stoppen, um sicherzustellen, dass während der Änderung keine Operationen stattfinden. +2. **Wählen Sie das Laufwerk aus:** Klicken Sie im **Haupt** Tab auf das Laufwerk, dessen Format Sie ändern möchten. +3. **Wählen Sie das neue Dateisystem**: Wählen Sie im Dropdown-Menü das gewünschte Dateisystemformat aus. Wenn Sie mehrere Laufwerke ändern möchten, wiederholen Sie diesen Schritt für jedes. +4. **Starten Sie das Array**: Sobald Sie die neuen Dateisysteme ausgewählt haben, starten Sie Ihr %%array|array%% erneut. +5. **Formatieren Sie unmontierbare Laufwerke**: Unter dem **Main**-Reiter wird eine Option zum Formatieren unmontierbarer Laufwerke angezeigt. Überprüfen Sie die Liste und stellen Sie sicher, dass nur die Laufwerke enthalten sind, die Sie ändern möchten. +6. **Bestätigen und formatieren:** Kreuzen Sie das Bestätigungsfeld an, um die Änderung zu bestätigen, und klicken Sie dann auf die Schaltfläche **Formatieren**, um fortzufahren. +7. **Warten Sie, bis der Vorgang beendet ist**: Das Formatieren dauert normalerweise nur ein paar Minuten. Wenn Sie feststellen, dass der Status nicht aktualisiert wird, können Sie den **Main**-Reiter aktualisieren, um den Fortschritt zu überprüfen. + +Sollten Sie auf Probleme stoßen, besuchen Sie gerne die [Unraid-Foren](https://forums.unraid.net/). Fügen Sie die ZIP-Datei mit den Systemdiagnosen (zu finden unter ***Tools → Diagnosen***) zur Unterstützung bei. + +--- + +## Konvertierung in einen neuen Dateisystemtyp + +:::important +Ab Unraid 7.2 warnt die ***Main***-Seite, wenn irgendwelche Array- oder Pool-Laufwerke in Legacy-Dateisystemen formatiert sind: + +- Alle in ReiserFS formatierten Laufwerke müssen so schnell wie möglich auf ein anderes Dateisystem migriert werden, da sie in einer zukünftigen Version von Unraid (voraussichtlich Unraid 7.3) nicht mehr nutzbar sein werden. +- Alle Laufwerke, die in einer älteren Version von XFS formatiert sind, müssen vor 2030 migriert werden. +::: + +Dieser Prozess ist besonders häufig bei Nutzern, die vom veralteten ReiserFS (in älteren Unraid-Versionen verwendet) zu %%XFS|xfs%% oder %%BTRFS|btrfs%% wechseln, gilt aber für jede Dateisystemkonvertierung. + +:::important +This process requires temporarily moving your data to another location. Make sure you have enough free space elsewhere in your %%array|array%% or on an external device before you begin. +::: + +Um sicher in einen neuen Dateisystemtyp zu konvertieren: + +1. **Copy all data off the drive**: Move your files to another location. This could be another drive in your %%array|array%%, a %%cache pool|cache-pool%%, or an external backup. + - Vor Unraid 7.0 müssen Sie die Dateien manuell verschieben + - Ab Unraid 7.0 können Sie Dateien [verwenden Sie 'Mover', um eine Array-Festplatte zu leeren](../../release-notes/7.0.0.md#using-mover-to-empty-an-array-disk) über die Befehlszeile auf andere Array-Laufwerke verschieben + - Ab Unraid 7.2 können Sie eine Array-Festplatte über das WebGUI auf andere Array-Laufwerke leeren: + - Navigieren Sie zu ***Haupt → Array-Betrieb*** und stoppen Sie das Array + - Navigieren Sie zu ***Einstellungen → Globale Freigabeeinstellungen***. Wählen Sie im Bereich **Leeren von Festplatte(n)** die zu leerende(n) Festplatte(n) aus und **Anwenden**. Hinweis: Dieser Status wird automatisch entfernt, wenn das Array gestoppt wird. + - Navigieren Sie zu ***Haupt → Array-Betrieb*** und starten Sie das Array + - Klicken Sie auf ***Haupt → Array-Betrieb*** auf **Verschieben** (oder warten Sie, bis der Mover über seinen normalen Zeitplan läuft) + - Mover leert die Festplatte gemäß Ihren Freigabeeinstellungen. Beachten Sie, dass Dateien im Stammverzeichnis des Laufwerks außerhalb jeglicher Freigaben liegen und nicht verschoben werden. + - Überprüfen Sie ***Werkzeuge → Systemprotokoll*** auf Nachrichten über Dateien, die aufgrund von Verwendung oder mangelndem Speicherplatz nicht verschoben werden konnten. + - Navigieren Sie zu ***Haupt → Array-Geräte*** und durchsuchen Sie das Laufwerk, um zu bestätigen, dass es leer ist. Fahren Sie nur fort, wenn Sie sicher sind, dass das Laufwerk leer ist. +2. **Dateisystemtyp ändern**: Folgen Sie dem Verfahren zum [Ändern eines Dateisystemtyps](#changing-a-file-system-type). Dadurch wird das Laufwerk formatiert und alle Inhalte gelöscht, sodass Sie ein neues leeres Laufwerk im neuen Format erhalten. +3. **Daten zurückkopieren**: (Optional) Je nachdem, wohin Sie die Dateien verschoben haben, möchten Sie sie möglicherweise zurück auf das neu formatierte Laufwerk verschieben. +4. **Wiederholen Sie bei Bedarf:** Wenn Sie mehr als ein Laufwerk umwandeln möchten, wiederholen Sie diese Schritte für jedes Laufwerk und übertragen Sie die Daten nach Bedarf. + +:::note\[Timing] + +Der Prozess kann je nach Datenmenge und Geschwindigkeit Ihrer Laufwerke mehrere Stunden dauern. Die meiste Zeit wird mit dem Kopieren von Dateien verbracht, was unbeaufsichtigt ablaufen kann. + +::: + +--- + +## Neusformatiert eines Laufwerks + +Ein Laufwerk in Unraid neu zu formatieren, löscht alle Ihre Daten und erstellt ein neues leeres Dateisystem. Dieser Prozess ist nützlich, um anhaltende Dateisystemfehler zu beheben oder mit einem neuen Format von vorne zu beginnen. + +:::warning +Neuverformungen löscht permanent alle Daten auf dem Laufwerk. Sichern Sie immer wichtige Dateien, bevor Sie beginnen. +::: + +Um Ihre Festplatte **sicher** neu zu formatieren: + +1. **Stoppen Sie die Array**. +2. **Ändern Sie den Dateisystemtyp:** + - Gehen Sie zum **Haupt** Tab und klicken Sie auf das Laufwerk, das Sie neu formatieren möchten. + - Wählen Sie einen anderen Dateisystemtyp (zum Beispiel Wechsel von %%XFS|xfs%% zu %%BTRFS|btrfs%%). + - Starten Sie das %%array|array%%, und das Laufwerk wird als **nicht einbindbar** angezeigt. + - Wenn Sie dazu aufgefordert werden, formatieren Sie das Laufwerk. +3. **(Optional) Wechseln Sie zurück zum ursprünglichen Dateisystemtyp:** + - Stoppen Sie das %%array|array%% erneut. + - Ändern Sie den Dateisystemtyp zurück zu Ihrem bevorzugten Typ. + - Starten Sie das %%array|array%% und formatieren Sie das Laufwerk erneut. + +Dieser einfache Prozess stellt sicher, dass das Laufwerk vollständig gelöscht und nach Ihren Wünschen formatiert wird. Der Formatierungsprozess dauert normalerweise nur ein paar Minuten. + +### Neues Format eines Cache-Laufwerks + +Sometimes, you'll need to reformat a %%cache|cache%% drive for the following reasons: + +- Um den Dateisystemtyp zu ändern (zum Beispiel Wechsel von %%BTRFS|btrfs%% zu %%XFS|xfs%% oder umgekehrt) +- Um anhaltende Dateisystemfehler zu beheben +- Um frisch für neue Workloads zu starten + +

Empfohlene Vorgehensweise für das Neuformatieren eines Cache-Laufwerks

+ +1. **Stoppen Sie die Array**. +2. **Deaktivieren Sie Docker- und %%VM|vm%%-Dienste** unter **Einstellungen**. +3. **Starten Sie das Array** (dies verhindert, dass die Docker- und VM-Tabs erscheinen). + +Um Daten vom Cache zu verschieben: + +4. **Set share storage and Mover action (cache → array)**: For each share that has files in the %%cache|cache%%, set **Primary storage** to the source %%cache|cache%% pool and **Secondary storage** to the %%array|array%%. Set **Mover action** to **cache → array**. + - Notieren Sie alle Änderungen von Freigaben und deren ursprünglichen Einstellungen. +5. **Run %%Mover|mover%%**: Run %%Mover|mover%% from the **Main** tab. Wait for it to finish and ensure that the %%cache|cache%% is empty. + - Sollten Dateien verbleiben, stoppen Sie und prüfen Sie die Foren für Hilfe. + +Um das Cache-Laufwerk neu zu formatieren: + +6. **Stoppen Sie die Array**. +7. **Stellen Sie das Cache-Laufwerksformat ein** (wählen Sie zwischen %%XFS|xfs%% oder %%BTRFS|btrfs%%). + - Für ein Einzellaufwerks-%%cache|cache%% wird %%XFS|xfs%% empfohlen. + - Note that %%XFS|xfs%% is only available if you have one %%cache|cache%% slot. +8. **Starten Sie die Array**. +9. **Formatieren Sie das Cache-Laufwerk**: + - Confirm that only the %%cache|cache%% drive is listed as unmountable. + - Fahren Sie mit der Formatierung des Laufwerks fort. + +Um Daten und Einstellungen wiederherzustellen: + +10. **Freigabeeinstellungen wiederherstellen:** Stellen Sie für jede von Ihnen geänderte Freigabe die **Primärspeicherung** und **Sekundärspeicherung** auf ihre ursprünglichen Werte zurück. +11. **Move data back (array → cache)**: Set **Primary storage** to the destination %%cache|cache%% pool and **Secondary storage** to the %%array|array%% for each share you changed. Set **Mover action** to **array → cache**, then run the %%Mover|mover%% again to move your data back to the %%cache|cache%%. +12. **Stoppen Sie die Array**. +13. **Erneutes Aktivieren von Docker- und %%VM|vm%%-Diensten**. +14. **Starten Sie die Array**. + +:::note\[Timing] + +Die Zeit, die das Verschieben von Daten mit dem %%Mover|mover%% und das Formatieren des Laufwerks in Anspruch nimmt, kann je nach Datenmenge und Laufwerksgeschwindigkeit von mehreren Minuten bis zu mehreren Stunden variieren. + +::: + +--- + +## BTRFS-Aktionen + +Maintaining your %%BTRFS|btrfs%% pools in Unraid is essential for keeping them running well and ensuring your data stays safe. Two key tools you’ll want to use regularly are **Balance** and **Scrub**. These operations help solve space allocation problems, optimize your storage use, and protect your data from hidden corruption. + +Schauen wir uns an, was jede Operation macht und wann sie verwendet wird: + + + + + + + + + + + +:::tip +Sowohl **Balance** als auch **Scrub** können bei laufendem System durchgeführt werden, jedoch beachten Sie, dass die Leistung während dieser Operationen beeinträchtigt werden kann. Sie können den Fortschritt im %%WebGUI|web-gui%% überwachen. +::: + +For more details on advanced %%BTRFS|btrfs%% features, check out the [official BTRFS documentation](https://btrfs.readthedocs.io/en/latest/Introduction.html). + +--- + +## Nicht zugewiesene Laufwerke + +Unassigned drives are storage devices connected to your Unraid server that aren't part of the main %%array|array%% or any %%cache pool|cache-pool%%. You can use these drives to transfer files, create backups, or provide fast storage for %%virtual machines|vm%%. + +:::note +Alle Laufwerke, die mit Ihrem Server verbunden sind, wenn das %%array|array%% gestartet wird, zählen zu Ihrem Unraid Attached Devices-Lizenzlimit, auch wenn sie nicht dem %%array|array%% oder einem Pool zugewiesen sind. +::: + +

Häufige Anwendungen für nicht zugewiesene Laufwerke

+ +- Verbindungen für einfache Dateitransfers oder Backups herstellen. +- Einsatz von dedizierten Laufwerken für leistungsintensive Aufgaben wie das Ausführen von %%virtuellen Maschinen|vm%% oder temporärer Datenspeicherung. + +### Verwendung der Plugins für nicht zugewiesene Geräte + +Um das Beste aus Ihren nicht zugewiesenen Laufwerken herauszuholen, sollten Sie die folgenden Plugins vom **Apps**-Tab installieren: + +- **[Unassigned Devices](https://unraid.net/community/apps?q=dlandon\&r=0#:~:text=and%20iso%20files.-,Unassigned%20Devices,-dlandon):** Dieses Plugin ermöglicht es Ihnen, Laufwerke mit Dateisystemen, die von Unraid unterstützt werden, wie %%XFS|xfs%%, %%BTRFS|btrfs%% oder NTFS, zu mounten, freizugeben und zu verwalten. + +- **[Unassigned Devices Plus](https://unraid.net/community/apps?q=dlandon\&r=0#:~:text=and%20iso%20files.-,Unassigned%20Devices%20Plus,-\(Addon\)):** Diese Erweiterung bietet Unterstützung für zusätzliche Dateisysteme, einschließlich ExFAT und HFS+. + +Diese Plugins ermöglichen: + +- Einfaches Mounten und Unmounten von Laufwerken über die Unraid-Weboberfläche. +- Teilen von nicht zugewiesenen Laufwerken über das Netzwerk. +- Automatisierung des Mount-Vorgangs beim Serverstart. +- Formatieren oder Löschen von Laufwerken für die zukünftige Nutzung. +- Sicheres Entfernen von USB- oder externen Laufwerken ohne Probleme. + +Für weitere Details zur Installation und Verwaltung von Plugins, schauen Sie sich [Plugins](../customize-your-experience/plugins.mdx) an. + +--- + +## Fehlerbehebung + +### Laufwerk wird als nicht mountbar angezeigt + +Wenn Sie sehen, dass ein Laufwerk in Unraid als **nicht mountbar** angezeigt wird, könnte dies an einem der beiden Hauptgründe liegen: + +1. **Neues Laufwerk hinzugefügt**: Wenn Sie gerade ein neues Laufwerk zu Ihrer Konfiguration hinzugefügt haben, wird es als nicht montierbar angezeigt, bis Sie es formatieren. Das Formatieren erzeugt ein Dateisystem, das es dem Laufwerk ermöglicht, Dateien zu speichern. Die Schritte zum Formatieren eines Laufwerks finden Sie [hier](#creating-a-file-system-formatting). + +2. **Dateisystemprobleme**: Wenn ein zuvor funktionierendes Laufwerk plötzlich als nicht montierbar erscheint, hat es vermutlich ein Dateisystemproblem. Dies kann durch unerwartete Abschaltungen, Probleme beim Schreiben von Daten oder eine als deaktiviert markierte Festplatte (die im %%WebGUI|web-gui%% als rotes 'x' angezeigt wird) verursacht werden. + +:::important +Do not format an unmountable drive unless you are okay with losing all the data on it. Formatting will erase everything and update the %%parity|parity%% information, making recovery impossible. Always try to fix the file system first. +::: + +Wenn Ihr Laufwerk nicht montierbar ist: + +1. **Identifizieren Sie die Situation**: Bestimmen Sie, ob es sich um ein neues oder ein zuvor funktionierendes Laufwerk handelt. +2. **Für neue Laufwerke**: Formatieren Sie das Laufwerk, um ein neues Dateisystem zu erstellen (siehe die [Formatierungsschritte](#creating-a-file-system-formatting)). +3. **Für zuvor funktionierende Laufwerke**: Führen Sie eine Dateisystemprüfung oder -reparatur durch (siehe [Dateisystemüberprüfung](#checking-a-file-system)). Vermeiden Sie das Formatieren, wenn Sie die Daten behalten möchten. + +:::note +Wenn ein Laufwerk sowohl nicht montierbar als auch deaktiviert ist (rotes 'x'), führen Sie zuerst die Dateisystemprüfung/-reparatur auf dem **emulierten** Laufwerk durch. Wenn das emulierte Laufwerk ebenfalls nicht montierbar ist und Sie versuchen, es wiederherzustellen, wird das neue Laufwerk ebenfalls nicht montierbar sein. +::: + +Die Behebung des Dateisystems dauert in der Regel weniger Zeit als der Neuaufbau des Laufwerks, sodass Sie auf Ihre Daten zugreifen können, ohne etwas zu verlieren. Denken Sie daran, dass der Neuaufbau eines Laufwerks **nicht** Dateisystemprobleme behebt; er stellt lediglich sicher, dass das physische Laufwerk dem emulierten entspricht und alle bestehenden Probleme mitübernimmt. + +:::important[Why Ist Parität nicht genug?] +Während %%parity|Parität%% beim Wiederherstellen eines ausgefallenen Laufwerks hilft, kann es keine Dateisystemprobleme beheben. Wenn das Dateisystem beschädigt ist, wird %%parity|Parität%% diese Beschädigung einfach auf das neue Laufwerk replizieren. + +Wenn Sie unsicher sind: + +- Laden Sie Ihre Systemprotokolle herunter, indem Sie zu ***Tools → Diagnosen*** navigieren. +- Für fachkundige Hilfe posten Sie Ihr Problem zusammen mit den Diagnosen im [Unraid-Forum](https://forums.unraid.net/). +::: + +:::note[Just Um es noch einmal zu sagen] +- Formatieren Sie nur nicht montierbare Laufwerke, wenn sie neu sind oder wenn Sie alle Daten löschen möchten. +- Verwenden Sie die Dateisystemprüfung/-reparatur, um beschädigte Dateien zu beheben; verlassen Sie sich nicht auf %%parity|parity%%, um diese Probleme zu lösen. +- Für %%cache pools|cache-pool%% mit mehreren Laufwerken sollten Sie entweder %%BTRFS|btrfs%% oder %%ZFS|zfs%% verwenden. +- Überprüfen Sie immer doppelt, bevor Sie Laufwerke formatieren oder reparieren, um versehentlichen Datenverlust zu vermeiden. +::: + +--- + +### Überprüfen eines Dateisystems + +Wenn ein zuvor ohne Probleme gemountetes Laufwerk jetzt als **nicht mountierbar** angezeigt wird, deutet dies typischerweise auf eine Dateisystemkorruption hin. Dies kann durch einen unsaubere Abschaltung, einen fehlgeschlagenen Schreibvorgang oder die Deaktivierung der Festplatte im %%WebGUI|web-gui%% verursacht werden. Das Überprüfen und Reparieren des Dateisystems ist in der Regel schneller und sicherer als ein vollständiger Wiederaufbau, daher wird empfohlen, dies vor dem Formatieren oder Wiederaufbau des Laufwerks zu versuchen. + +:::important +If the %%WebGUI|web-gui%% suggests formatting an unmountable drive, do not format unless you intend to erase all data. Formatting will destroy the contents of the drive and update %%parity|parity%%, making recovery impossible. +::: + +

Vorbereitung für die Prüfung oder Reparatur

+ +1. **Festplattensystemtyp identifizieren:** + - Navigieren Sie zum **Haupt**-Tab und wählen Sie Ihre Festplatte (z.B. Disk 3, Cache) aus. + - Finden Sie den **Dateisystemtyp** (sollte %%XFS|xfs%%, %%BTRFS|btrfs%% oder %%ZFS|zfs%% sein). + +2. **Starten Sie das Array im richtigen Modus**: + - Für **%%XFS|xfs%%** starten Sie das %%array|array%% im **%%Wartungsmodus|maintenance-mode%%**. + - Für **%%BTRFS|btrfs%%** starten Sie das %%array|array%% im **Normalmodus** für einen %%scrub|scrub%% oder im **%%Wartungsmodus|maintenance-mode%%** für eine Reparatur. + - Für **%%ZFS|zfs%%**, siehe den %%ZFS|zfs%%-Abschnitt unten. + +3. **Emulierte Laufwerke handhaben**: Wenn das Laufwerk deaktiviert und emuliert ist, führen Sie die Überprüfung/Reparatur auf dem %%emulierten Laufwerk|emulated-disk%% durch, bevor Sie einen Wiederaufbau versuchen. Ist das %%emulierte Laufwerk|emulated-disk%% nicht montierbar, wird auch das wiederhergestellte Laufwerk nicht montierbar sein. + +

Häufige Fehlermeldungen

+ +| Nachricht | Bedeutung / Aktion | +| --------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | +| **Superblock hat eine schlechte magische Zahl** | Schwere Beschädigung; versuchen Sie, das Dateisystem zu reparieren. | +| **Dateisystem ist schmutzig** | Unsauberer Shutdown; führen Sie eine Dateisystemprüfung durch. | +| **Metadatabeschädigung erkannt** | Dateisystemstrukturen sind beschädigt; initialisieren Sie eine Reparatur. | +| **Kein gültiges %%BTRFS\|btrfs%% gefunden** | Festplatte gehört möglicherweise nicht zu einem gültigen Pool; überprüfen Sie die Pool-Zuweisungen. | +| **Mount: falscher FS-Typ, schlechte Option, etc.** | Falsche Auswahl des Dateisystems oder die Festplatte ist nicht formatiert. | +| **Kann /dev/mdX nicht mounten: Struktur muss gereinigt werden** | Dateisystem ist beschädigt; führen Sie eine Reparatur durch. | + +#### Über das WebGUI + +1. **Start the array**: Start the %%array|array%% in the correct mode (refer to the steps above). +2. **Wählen Sie die Festplatte aus:** Gehen Sie zum **Haupt**-Tab und wählen Sie die Festplatte, die Sie überprüfen möchten. +3. **Zugriff auf Prüfen-Optionen:** Scrollen Sie zu **Prüfen Sie den Status des Dateisystems**. +4. **Für XFS (Unraid 7.0+)**: Sie sehen eine **PRÜFEN**-Schaltfläche ohne Optionen zum Eingeben. Das System bestimmt automatisch die notwendigen Aktionen anhand der Prüfergebnisse. +5. **Für andere Dateisysteme:** Geben Sie alle notwendigen Optionen ein (für Details siehe **Hilfe** oben rechts). +6. **Starten Sie die Überprüfung:** Klicken Sie auf **Prüfen**, um den Prozess zu starten. +7. **Fortschritt überwachen**: Überwachen Sie den Fortschritt im Ausgabefeld. Verwenden Sie **Aktualisieren** bei Bedarf. +8. **Ergebnisse überprüfen**: Überprüfen Sie die Ergebnisse. Wenn Sie unsicher sind, kopieren Sie die Ausgabe und veröffentlichen Sie sie in den [Foren](https://forums.unraid.net/) um Rat zu erhalten. + +#### XFS Automatischer Reparatur-Workflow (Unraid 7.0+) + +Ab Unraid 7.0 ist die Reparatur des XFS-Dateisystems nun vollständig im WebGUI automatisiert: + +1. **Erste Überprüfung**: Klicken Sie auf **PRÜFEN** (keine Optionen erforderlich) +2. **Prüfergebnisse**: + - **Keine Beschädigung erkannt**: Zeigt "keine Dateisystembeschädigung erkannt" an und der **PRÜFEN**-Button bleibt + - **Beschädigung erkannt**: Zeigt "Dateisystembeschädigung erkannt" an und ein **FIX**-Button erscheint +3. **Reparaturvorgang**: Klicken Sie auf **FIX**, um das Dateisystem automatisch zu reparieren +4. **Zusätzliche Aktionen**: Falls erforderlich, kann ein **ZERO LOG**-Button erscheinen +5. **Abschluss**: Zeigt "Dateisystem repariert" an, wenn der Prozess abgeschlossen ist + +Dieses automatisierte System eliminiert die Notwendigkeit für Benutzer, manuell Reparaturoptionen einzugeben, und stellt sicher, dass die korrekte Reparatursequenz eingehalten wird. + +#### Über die Befehlszeile + + + + + + + + + + + + + + + +:::tip +- Dateisystemreparaturen sind im Allgemeinen schneller als ein vollständiger Wiederaufbau und können den Zugriff ohne Datenverlust wiederherstellen. +- Wiederaufbau einer Festplatte löst **nicht** die Dateisystembeschädigung; führen Sie immer zuerst eine Überprüfung oder Reparatur durch. +- Wenn Sie Zweifel haben, posten Sie Ihre Diagnosen und Fehlermeldungen im Unraid [Forums](https://forums.unraid.net/) für fachkundigen Rat. +::: + +--- + +### Reparatur eines Dateisystems + +Wenn eine Überprüfung Ihres Dateisystems Fehler findet, müssen Sie möglicherweise eine Reparatur durchführen, um wieder Zugriff auf Ihre Daten zu erhalten. Reparaturen dauern normalerweise weniger Zeit als ein vollständiger Wiederaufbau, aber es ist wichtig, den Ausgabe sorgfältig zu lesen und bei Unsicherheiten Hilfe in den [Foren](https://forums.unraid.net/) zu suchen. + +:::note\[Timing] + +Reparaturen können je nach Größe oder starkem Schaden des Dateisystems von mehreren Minuten bis zu mehreren Stunden dauern. Der Fortschritt mag langsam erscheinen, aber Sie können die Aktivität überprüfen, indem Sie die Lese-/Schreibstatistiken auf der Hauptseite betrachten. + +::: + +

Vorbereitung zur Reparatur

+ +1. **Identifizieren Sie den Dateisystemtyp**: Gehen Sie zum **Main** Tab, klicken Sie auf die Festplatte und finden Sie heraus, welchen Typ von Dateisystem es ist (%%XFS|xfs%%, %%BTRFS|btrfs%% oder %%ZFS|zfs%%). + +2. **Starten Sie das Array im richtigen Modus**: + + - **Für %%XFS|xfs%%:** Verwenden Sie den **%%Wartungsmodus|maintenance-mode%%**. + - **Für %%BTRFS|btrfs%%:** Verwenden Sie den **Normalmodus** für ein %%scrub|scrub%%; verwenden Sie den **%%Wartungsmodus|maintenance-mode%%** für eine Reparatur. + - **For %%ZFS|zfs%%:** Use **Normal mode** and run a %%scrub|scrub%% to check for errors. See the [ZFS storage page](../../advanced-configurations/optimize-storage/zfs-storage.mdx) for guidance on %%ZFS|zfs%% pool maintenance and repair procedures. + +3. **Behandeln Sie emulierte Festplatten**: Wenn die Festplatte deaktiviert und emuliert ist, führen Sie die Reparatur auf dem %%emulierte Festplatte|emulated-disk%% durch, bevor Sie versuchen, einen Wiederaufbau durchzuführen. + +#### Über das WebGUI + +1. **Start the array**: Start the %%array|array%% in the correct mode (refer to the section above). +2. **Wählen Sie die Festplatte aus**: Gehen Sie zum **Main** Tab und klicken Sie auf die Festplatte, die Sie reparieren möchten. +3. **Zugriff auf Reparaturoptionen**: Blättern Sie zu **Dateisystemstatus überprüfen**. +4. **Für XFS (Unraid 7.0+)**: Der Reparaturprozess ist vollständig automatisiert. Klicken Sie auf **PRÜFEN**, dann auf **FIXIEREN**, wenn Korruption erkannt wird, und **LOG ZERREN**, wenn Sie dazu aufgefordert werden. +5. **Für andere Dateisysteme**: Entfernen Sie alle Optionen, die den Prozess nur im Prüfungsmodus ausführen würden (wie `--readonly` für %%BTRFS|btrfs%%). +6. **Fügen Sie vorgeschlagene Optionen hinzu**: Falls aufgefordert, fügen Sie die vorgeschlagenen Optionen entsprechend der Prüfausgabe hinzu. +7. **Starten Sie die Reparatur**: Klicken Sie auf **Check**, um die Reparatur zu beginnen. +8. **Fortschritt überwachen**: Behalten Sie den Fortschritt im Ausgabefeld im Auge. Verwenden Sie **Aktualisieren**, falls nötig. +9. **Nach verlorenen Dateien suchen**: Wenn Sie nach der Reparatur einen `lost+found`-Ordner bemerken, enthält dieser möglicherweise Dateien oder Ordner, die nicht vollständig wiederhergestellt werden konnten. Verwenden Sie Backups oder den Linux-`file`-Befehl, um bei Bedarf den Inhalt zu identifizieren. + +:::info +Wenn Sie unsicher bezüglich der Ausgabe sind, kopieren und teilen Sie sie in den [Unraid-Foren](https://forums.unraid.net/) für professionelle Hilfe. Verwenden Sie die Codeformatierungsoption, um sie lesbar zu halten. +::: + +#### Über die Befehlszeile + + + + + + + + + + + + + + + +:::info[After die Reparatur] +- Stop and restart the %%array|array%% in **Normal mode**. +- Das Laufwerk sollte jetzt gemountet und zugänglich sein. +- Wenn Sie einen `lost+found`-Ordner sehen, überprüfen Sie dessen Inhalt auf wichtige Dateien. +::: + +Wenn Sie die Reparaturausgabe nicht verstehen oder der Prozess fehlschlägt, teilen Sie Ihre Diagnosen und das Reparaturlog im [Unraid Forum](https://forums.unraid.net/) für weitere Unterstützung. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx new file mode 100644 index 0000000000..31fbbb36a5 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx @@ -0,0 +1,21 @@ +Um eine Datenfestplatte zu einem Array ohne Paritätsschutz hinzuzufügen: + +1. **Halten Sie das Array an:** Verwenden Sie das Unraid %%WebGUI|WebGUI%%, um das Array anzuhalten. + +2. **Schalten Sie Ihren Server aus:** Fahren Sie Ihren Server sicher herunter. + +3. **Installieren Sie die neuen Festplatte(n):** Fügen Sie die neue(n) Festplatte(n) physisch hinzu. + +4. **Schalten Sie den Server wieder ein:** Starten Sie Ihren Server erneut. + +5. **Weisen Sie die neuen Festplatten zu:** Verwenden Sie das %%WebGUI|WebGUI%%, um die neuen Festplatten den verfügbaren Datenslots zuzuweisen. + +6. **Starten Sie das Array:** Starten Sie das Array erneut. + + - The clearing step is skipped entirely when there is no %%parity disk|parity-drives%% in the array. + +7. **Formatieren Sie die Festplatte:** Die neue Festplatte wird im %%WebGUI|web-gui%% als nicht einhängefähig angezeigt. Sie werden aufgefordert, sie zu formatieren. + +:::important +Überprüfen Sie immer die Seriennummer doppelt, um sicherzustellen, dass Sie die richtige Festplatte formatieren. Formatieren löscht alles auf dieser Festplatte, und dieser Vorgang kann nicht rückgängig gemacht werden. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx new file mode 100644 index 0000000000..d579cb40fb --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx @@ -0,0 +1,30 @@ +Um eine Datenfestplatte zu einem durch Parität geschützten Array hinzuzufügen: + +1. **Halten Sie das Array an:** Verwenden Sie das Unraid %%WebGUI|WebGUI%%, um das Array anzuhalten. + +2. **Schalten Sie Ihren Server aus:** Fahren Sie Ihren Server sicher herunter. + +3. **Installieren Sie die neuen Festplatte(n):** Fügen Sie die neue(n) Festplatte(n) physisch hinzu. + +4. **Schalten Sie den Server wieder ein:** Starten Sie Ihren Server erneut. + +5. **Weisen Sie die neuen Festplatten zu:** Verwenden Sie das %%WebGUI|WebGUI%%, um die neuen Festplatten den verfügbaren Datenslots zuzuweisen. + +6. **Starten Sie das Array:** Starten Sie das Array erneut. + + - Unraid wird automatisch eine **Löschoperation** auf der neuen Festplatte starten. Dies füllt die Festplatte mit Nullen und stellt sicher, dass sie gebrauchsfertig ist und gleichzeitig die Datenintegrität gewahrt ist. + - Die Löschoperation findet im Hintergrund statt, sodass Sie weiterhin auf Ihr Array zugreifen können. Die neue Festplatte ist jedoch erst nutzbar, wenn der Vorgang abgeschlossen und die Festplatte formatiert ist. + - Wenn Sie die Festplatte bereits vorgeklärt haben, überspringt Unraid diesen Schritt, da erkannt wird, dass sie bereits einsatzbereit ist. + +7. **Nach Abschluss der Löschung:** Sobald der Löschvorgang abgeschlossen ist, wird die Festplatte im %%WebGUI|web-gui%% als nicht einhängbar angezeigt. Sie werden aufgefordert, sie zu formatieren. + +:::important +Überprüfen Sie immer die Seriennummer doppelt, um sicherzustellen, dass Sie die richtige Festplatte formatieren. Formatieren löscht alles auf dieser Festplatte, und dieser Vorgang kann nicht rückgängig gemacht werden. +::: + +8. **Bestätigen Sie das Format:** Aktivieren Sie das Bestätigungsfeld und klicken Sie auf die Schaltfläche **Formatieren**. Unraid wird Sie über die Konsequenzen dieser Aktion warnen. +9. **Formatierungsvorgang:** Die Formatierung wird einige Minuten dauern. Sobald sie abgeschlossen ist, wird die Festplatte als eingebunden und einsatzbereit angezeigt. Ein kleiner Anteil des genutzten Speicherplatzes aufgrund des Dateisystem-Overheads ist normal. + +:::note +Sie können mehrere Festplatten hinzufügen, aber diese sind erst nutzbar, wenn alle von ihnen gelöscht und formatiert wurden. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx new file mode 100644 index 0000000000..897a4e4565 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx @@ -0,0 +1,59 @@ +A %%parity check|parity-check%% is essential when your array includes at least one assigned parity device. During this process, all data disks are read simultaneously. The system recalculates the parity and compares it to the information stored on your %%parity disk(s)|parity-drives%%. + +
+ Im Detail: Paritätssynchronisation vs. Paritätsprüfung - Was ist der Unterschied? - Klicken, um zu erweitern/zusammenzufalten + + A %%parity|parity%% sync reads all data disks and creates %%parity|parity%% from scratch, saving the results on the %%parity drives|parity-drives%%. This process typically happens when you add or replace a %%parity drives|parity-drives%% or after significant configuration changes. + + A %%parity check|parity-check%% reads all data disks along with the %%parity drives|parity-drives%%. It recalculates the %%parity|parity%% values and compares them to the stored values. There are two modes for running a %%parity check|parity-check%%: + + - **Korrigierend (CORRECT):** Wenn es eine Abweichung findet, aktualisiert es das %%parity disk|parity-drives%% und protokolliert das Ereignis. + - **Nicht korrigierend (NOCORRECT):** Protokolliert nur gefundene Fehler, ohne die Parität zu aktualisieren. + + To avoid excessive logging, only the first 100 addresses with errors are reported during a %%parity check|parity-check%%. These mismatches are referred to as **sync errors** and indicate where the parity does not align with the data, typically due to issues such as sudden power losses or hardware problems. Each sync error is counted in 4KiB blocks - this is the system's I/O unit size (known as the Linux page size). +
+ +
+ Im Detail: Was bedeutet "gültig" für Paritäts- und Arrayscheiben? - Klicken, um zu erweitern/zusammenzufalten + + A **valid %%parity disk|parity-drives%%** indicates that after the last successful %%parity|parity%% sync, Unraid recognized the %%parity|parity%% as "good," meaning it's suitable for data recovery if a disk fails. The "valid" status applies to every disk in the array, not just the %%parity|parity%% one. If all disks except one are valid, Unraid can reconstruct the missing or failed disk's data using %%parity|parity%%. + + Unraid maintains the %%parity disk|parity-drives%%'s "valid" status even when some sync errors occur following a non-correcting check. This ensures that you can still recover a failed disk. If the %%parity|parity%% were marked as invalid, you would risk having two invalid disks after just one additional failure, leading to potential data loss. +
+ +While a %%parity check|parity-check%% is in progress, you can still use the array. However, be aware that performance may slow down due to drive contention, as both file operations and the check will compete for resources. + +Normalerweise wird Unraid die %%parity disk|parity-drives%% aktualisieren um mit den errechneten Daten übereinzustimmen und den Sync-Fehlerzähler zu erhöhen, wenn der %%parity check|parity-check%% Fehler identifiziert. + +:::tip +Wenn Sie bevorzugen, eine Prüfung durchzuführen, ohne Korrekturen vorzunehmen, deaktivieren Sie einfach **Korrekturen auf Parität schreiben** bevor Sie beginnen. Auf diese Weise werden Fehler gemeldet, aber nicht behoben. +::: + +:::important +After an "Unsafe Shutdown"—when the array is restarted without being properly stopped—Unraid automatically initiates a %%parity check|parity-check%% using the mode configured under **Settings → Scheduler → Parity Check** (non-correcting by default). To change how the automatic check runs, open **Settings → Scheduler → Parity Check** and adjust the options there. Unexpected power loss is the most common trigger for an unsafe shutdown, so using an uninterruptible power supply (UPS) is strongly recommended to protect your data. +::: + +

Was sind Paritätsfehler?

+ +%%Parity|parity%% errors happen when the %%parity|parity%% information your system calculates doesn't match what's stored on your %%parity drives|parity-drives%%. This mismatch can arise from several issues, including: + +- Plötzlicher Stromausfall oder unsichere Shutdowns +- Fehlgeschlagene Laufwerke oder Datenträgerfehler +- Probleme mit Kabeln oder Verbindungen +- Unsaubere Shutdowns oder unerwartete Systemabstürze + +When %%parity|parity%% errors occur, either the %%parity drives|parity-drives%% or the data disks could be out of sync. Ideally, a %%parity check|parity-check%% should report zero errors so everything functions correctly. + +

What to do if you encounter %%parity|parity%% errors

+ +Wenn Ihr %%parity check|parity-check%% Fehler aufdeckt: + +1. **Untersuchen Sie das Problem:** Beginnen Sie mit dem Überprüfen der %%SMART-Berichte|SMART-Reports%%, die detaillierte Informationen über den Gesundheitszustand Ihrer Festplatten bieten. Achten Sie auf Hinweise auf Festplatten- oder Verbindungsprobleme. +2. **Hilfe in unseren Foren suchen:** Wenn Sie das Problem nicht selbst lösen können, ziehen Sie in Betracht, Rat in den Unraid-Foren einzuholen. Die Community kann wertvolle Einblicke und Vorschläge basierend auf ihren Erfahrungen bieten. +3. **Führen Sie eine weitere Prüfung durch:** Nachdem Sie Hardwareprobleme behoben haben, ist es eine gute Idee, eine weitere %%parity check|parity-check%% durchzuführen, um sicherzustellen, dass alles wieder in Ordnung ist. + +:::info\[Rebuild Zeit + +Remember that %%parity checks|parity-check%% can take several hours, depending on the size of your disks and the activity level of your system. For the best results, schedule these checks during times of low system usage. + +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx new file mode 100644 index 0000000000..82342cd24d --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx @@ -0,0 +1,38 @@ +Eine %%Lesekontrolle|read-check%% ist eine wichtige Aufgabe, die unter bestimmten Bedingungen durchgeführt werden sollte, um die Gesundheit Ihres Speicherarrays sicherzustellen. Diese Überprüfung ist notwendig, **wenn Ihrem Array keine Paritätsgeräte zugewiesen sind** oder **wenn Sie mehr deaktivierte Laufwerke als verfügbare Paritätslaufwerke haben**. + +Während einer %%Lesekontrolle|read-check%% wird jeder Sektor jeder Festplatte im Array untersucht. Ziel ist es, zu überprüfen, ob auf alle Daten zugegriffen werden kann und ob es nicht wiederherstellbare Lesefehler gibt. + +
+ ![Die Historie lässt Sie Statistiken zu Ihren Leseprüfungen überprüfen](/img/History_button.PNG) +
+ +

Warum Leseprüfungen wichtig sind

+ +Lesekontrollen sind unerlässlich, um die Gesundheit Ihrer Festplatten zu überwachen, insbesondere in Konfigurationen ohne Paritätsschutz. Wenn eine Festplatte während der Überprüfung auf einen nicht wiederherstellbaren Lesefehler stößt, können die betroffenen Daten nicht wiederhergestellt werden, was zu Datenverlust führen könnte. Daher ist es von entscheidender Bedeutung, die Ergebnisse dieser Prüfungen im Auge zu behalten und rechtzeitig zu reagieren, wenn Fehler gemeldet werden. + +Sie können auch die Historie von %%read check|read-check%%-Operationen in der Unraid-Oberfläche überprüfen, was Ihnen dabei hilft, Trends oder wiederkehrende Probleme im Laufe der Zeit zu erkennen. + +

Wann man eine Leseprüfung durchführen sollte

+ +Erwägen Sie einen %%read check|read-check%% in den folgenden Situationen durchzuführen: + +- **Keine Paritätsgeräte zugeordnet:** Wenn Ihr Array keinen Paritätsschutz bietet. +- **Überprüfung der Laufwerksintegrität:** Um die Integrität jedes Laufwerks zu bestätigen, ohne Korrekturen vorzunehmen. +- **Nach Beseitigung von Hardwareproblemen:** Nachdem Hardwareprobleme behoben wurden, um sicherzustellen, dass alle Laufwerke gesund sind. + +

Was zu tun ist, wenn Fehler gefunden werden

+ +Wenn Ihre %%read check|read-check%% Fehler meldet, sind hier einige Schritte, die Sie befolgen sollten: + +1. **Überprüfen Sie die SMART-Berichte::** Überprüfen Sie die %%SMART-Berichte|smart-report%% der betroffenen Laufwerke, um den Gesundheitszustand zu verstehen. +2. **Verbindungen prüfen:** Stellen Sie sicher, dass physische Verbindungen und Kabel sicher sind. +3. **Erwägen Sie den Austausch:** Wenn ein Laufwerk kontinuierlich Fehler zeigt, denken Sie über einen Austausch nach. +4. **Sichern Sie kritische Daten:** Verschieben Sie wichtige Daten so schnell wie möglich von Datenträgern, die Fehler melden, um Datenverluste zu vermeiden. + +:::warning +Ohne Paritätsschutz führt jeder nicht wiederherstellbare Lesefehler zu dauerhaftem Datenverlust für die betroffenen Dateien oder Sektoren. +::: + +:::tip +Um die Gesundheit Ihrer Festplatten zu erhalten, ist es ratsam, **regelmäßige %%Leseprüfungen|read-check%% zu planen**, insbesondere wenn Ihr Array keinen Paritätsschutz hat. Diese proaktive Maßnahme hilft Ihnen, potenzielle Probleme frühzeitig zu erkennen und Ihre Daten zu schützen. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx new file mode 100644 index 0000000000..87fe70d59c --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx @@ -0,0 +1,19 @@ +The **Balance** operation redistributes data and metadata chunks across your %%BTRFS|btrfs%% pool. This process helps free up space, resolves allocation issues, and can fix “no space left on device” errors even when space seems available. + +

Wann man Balance ausführen sollte

+ +- Wenn Sie mit "Kein Platz mehr auf Gerät"-Fehlern konfrontiert werden, jedoch freier Speicherplatz vorhanden ist. +- Nach dem Hinzufügen oder Entfernen von Laufwerken in einem Pool. +- Um den Platzverbrauch zu optimieren und die Leistung zu verbessern. + +

Wie man Balance ausführt

+ +1. **Zugriff auf den Pool:** Im %%WebGUI|web-gui%% auf den Pool im **Haupt**-Tab klicken und **Balance** wählen. +2. **Parameter hinzufügen (optional):** Optional Parameter für die erweiterte Nutzung hinzufügen (für Details siehe Unraid Hilfe). +3. **Prozess starten:** Klicken Sie auf **Start**, um den Prozess zu beginnen. + +:::note\[Timing] + +Balance-Aktionen können je nach Poolgröße und Datenmenge einige Minuten bis zu mehreren Stunden dauern. + +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx new file mode 100644 index 0000000000..474ba8b4ef --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx @@ -0,0 +1,23 @@ +Die **Scrub**-Operation liest alle Daten und Metadaten, überprüft die Integrität der Prüfsummen und repariert beschädigte Blöcke mithilfe verfügbarer redundanter Kopien. Das Scrubbing hilft dabei, stille Datenbeschädigungen, bekannt als "Bit Rot", zu identifizieren und zu beheben, bevor sie zu einem größeren Problem werden. + +

Wann man Scrub ausführen sollte

+ +- Als Teil der regelmäßigen Wartung (siehe empfohlener Zeitplan unten). +- Nach unsauberen Shutdowns oder wenn Sie Korruption vermuten. +- Häufiger auf Pools mit hoher Nutzung. + +

Empfohlener Zeitplan

+ +- Hoch genutzte Pools: **Einmal pro Woche** +- Alle anderen Pools: **Einmal pro Monat** + +

Wie man Scrub ausführt

+ +1. **Zugriff auf den Pool**: Im %%WebGUI|web-gui%% auf den Pool im **Haupt**-Tab klicken und **Scrub** wählen. +2. **Starten Sie den Prozess**: Klicken Sie auf **Start**, um den Prozess zu starten. + +:::note\[Timing] + +Bereinigungsvorgänge sind in der Regel schneller als ein vollständiger Festplattenscan, da sie nur die zugewiesenen Daten überprüfen. Abhängig von der Poolgröße und Nutzung kann dies von wenigen Minuten bis zu mehreren Stunden dauern. + +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx new file mode 100644 index 0000000000..4bb7b1b68c --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx @@ -0,0 +1,5 @@ +%%BTRFS|btrfs%% provides flexible %%RAID|raid%% support, %%checksums|checksum%% for data integrity, and efficient management of mixed-size drives in pools. It serves as the default file system for %%cache pools|cache-pool%% and supports both single-device and multi-device configurations. + +- **Datenschutz:** Unterstützt %%RAID 0|raid0%%/%%1|raid1%%/%%10|raid10%%/%%5|raid5%%/%%6|raid6%% (beachten Sie, dass %%RAID 5|raid5%%/%%6|raid6%% noch experimentell sind). +- **Leistung:** Gut, mit Flexibilität für Erweiterung und Verkleinerung. +- **Am besten geeignet für:** %%Cache pools|cache-pool%%, insbesondere wenn Sie planen, SSDs und HDDs zu mischen oder eine einfache Möglichkeit zur Erweiterung benötigen. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx new file mode 100644 index 0000000000..be683b91cd --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx @@ -0,0 +1,5 @@ +**%%XFS|xfs%%** is the default file system for %%array|array%% drives in Unraid. It’s known for its robustness and ability to recover from corruption after unexpected shutdowns or crashes. Each drive formatted with %%XFS|xfs%% acts as a self-contained file system, making data recovery straightforward on any Linux system. + +- **Datenschutz:** Keine integrierte Redundanz; verlässt sich auf die %%parity|parity%% von Unraid für den Schutz. +- **Leistung:** Konsistent und zuverlässig. +- **Besonders geeignet für:** Array-Laufwerke, besonders wenn Stabilität und einfache Datenwiederherstellung Priorität haben. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx new file mode 100644 index 0000000000..273b6a4bb7 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx @@ -0,0 +1,7 @@ +%%ZFS|zfs%% is a modern file system that comes with advanced features such as %%checksums|checksum%% to detect %%bit rot|bit-rot%%, %%snapshots|snapshot%% for backups, and native %%RAID|raid%% support options like %%RAIDZ1|raidz1%%/%%RAIDZ2|raidz2%%/%%RAIDZ3|raidz3%% and mirrors. %%ZFS|zfs%% can be utilized for both single-device and multi-device pools in Unraid 6.12 and later. + +- **Datenschutz:** Unterstützt verschiedene %%RAID|raid%%-Level für Redundanz. +- **Leistung:** Hervorragend, besonders bei Multigeräte-Pools. +- **Am besten geeignet für:** Hochleistungsumgebungen, %%virtual machines|vm%%, Docker oder wenn erweiterte Funktionen wie %%snapshots|snapshot%% erforderlich sind. + +Für einen tiefen Einblick in %%ZFS|zfs%%-Funktionen, -Konfigurationen und Best-Practices besuchen Sie unseren speziellen Abschnitt zu [ZFS-Speicher](../../../advanced-configurations/optimize-storage/zfs-storage.mdx). diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx new file mode 100644 index 0000000000..49a621e8f5 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx @@ -0,0 +1,10 @@ +Um ein %%BTRFS|btrfs%% Dateisystem über die Befehlszeile zu überprüfen: + +- Um einen %%scrub|scrub%% (der viele Fehler automatisch überprüft und repariert) durchzuführen, starten Sie den %%array|array%% im **Normalmodus** und führen Sie aus: `btrfs scrub start /mnt/diskX` +- Für einen Nur-Lese-Check starten Sie den %%array|array%% im **%%Wartungsmodus|maintenance-mode%%** und führen Sie aus: `btrfs check --readonly /dev/mdXp1` +- Ersetzen Sie `X` durch die Festplattennummer. +- Für Laufwerke, die nicht im %%array|array%% sind: `btrfs check --readonly /dev/sdX1` + +:::warning +Running this command on an %%array|array%% disk outside of **%%Maintenance Mode|maintenance-mode%%** will invalidate %%parity|parity%%. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx new file mode 100644 index 0000000000..3bc544434f --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx @@ -0,0 +1,12 @@ +Um ein %%XFS|xfs%% Dateisystem über die Befehlszeile zu überprüfen: + +- Starten Sie das %%array|array%% im **%%Wartungsmodus|maintenance-mode%%**. +- Führen Sie folgenden Befehl aus: `xfs_repair -v /dev/mdXp1` +- Ersetzen Sie `X` durch die Festplattennummer (e.g., `/dev/md1p1`). +- Für verschlüsselte %%XFS|xfs%%, verwenden Sie `/dev/mapper/mdXp1`. +- Für nicht im %%array|array%% befindliche Laufwerke: `xfs_repair -v /dev/sdX1` +- Stellen Sie sicher, dass Sie den richtigen Gerätebezeichner verwenden. + +:::warning +Running this command on an %%array|array%% disk outside of **%%Maintenance Mode|maintenance-mode%%** will invalidate %%parity|parity%%. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx new file mode 100644 index 0000000000..44d367e322 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx @@ -0,0 +1,25 @@ +Um ein %%ZFS|zfs%% Dateisystem über die Befehlszeile zu überprüfen: + +

Empfohlene Methode

+ +%%ZFS|zfs%% uses **scrubbing** instead of traditional filesystem checks like `fsck`. A %%scrub|scrub%% examines all data in the pool to verify checksums and automatically repairs any corruption found on redundant configurations. + +- Start the %%array|array%% in **Normal mode** and run: `zpool scrub poolname` + - Ersetzen Sie `poolname` durch den tatsächlichen %%ZFS|zfs%%-Poolnamen. + +

Pool-Status überprüfen

+Um den aktuellen Zustand und den Fortschritt eines laufenden %%scrub|scrub%% zu sehen, verwenden Sie den Befehl: `zpool status -v poolname` + +This command shows detailed information about pool health, any errors, and %%scrub|scrub%% progress. + +

Zusätzliche %%ZFS|zfs%% Befehle

+ +- Um einen %%scrub|scrub%% zu unterbrechen: `zpool scrub -p poolname` +- Um einen %%scrub|scrub%% zu stoppen: `zpool scrub -s poolname` +- Um alle Pools aufzulisten: `zpool list` + +:::info +%%ZFS|zfs%% erfordert oder unterstützt keine traditionellen `fsck`-Utilities. Die transaktionale Natur von %%ZFS|zfs%% bedeutet, dass es atomar von einem konsistenten Zustand in einen anderen übergeht, wodurch das Scrubbing die bevorzugte Methode zur Integritätsprüfung wird. +::: + +Für eine umfassende Anleitung zu %%ZFS|zfs%% Dateisystemen besuchen Sie den speziellen [ZFS-Speicherabschnitt](../../../advanced-configurations/optimize-storage/zfs-storage.mdx). diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx new file mode 100644 index 0000000000..37aa0c18cc --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx @@ -0,0 +1,12 @@ +- Um ein %%scrub|scrub%% durchzuführen (was viele Fehler automatisch erkennt und repariert), starten Sie das %%array|array%% im **Normalmodus** und führen Sie aus: `btrfs scrub start /mnt/diskX`. +- Für eine vollständige Reparatur starten Sie das %%array|array%% im **%%Wartungsmodus|maintenance-mode%%** und führen Sie aus: `btrfs check --repair /dev/mdXp1`. Verwenden Sie `--repair` nur, wenn es von den [Foren](https://forums.unraid.net/) oder Dokumentationen geraten wird, da es manchmal zu weiteren Problemen führen kann. + +:::caution[Use `--repair` mit Vorsicht verwenden] +Die Option `--repair` kann manchmal Datenverlust verursachen oder die Beschädigung verschlimmern, wenn sie falsch verwendet wird. Benutzen Sie sie nur, wenn: + +- Sie das [Unraid Forum](https://forums.unraid.net/) für Ihren spezifischen Fehler konsultiert haben +- Sie ein aktuelles Backup Ihrer Daten haben +- Sie die Risiken verstehen + +For most %%BTRFS|btrfs%% issues, try running a `scrub` first (which is safer) or seek expert advice before attempting repairs. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx new file mode 100644 index 0000000000..b5f9a6f50c --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx @@ -0,0 +1,9 @@ +- Starten Sie das %%array|array%% im **%%Wartungsmodus|maintenance-mode%%**. +- Führen Sie den folgenden Befehl aus: `xfs_repair /dev/mdXp1`. Ersetzen Sie `X` mit der Laufwerksnummer (z.B. `/dev/md1p1`). +- Für verschlüsselte %%XFS|xfs%%, verwenden Sie: `/dev/mapper/mdXp1`. +- Wenn Sie zur Verwendung von `-L` aufgefordert werden, führen Sie den Befehl erneut so aus: `xfs_repair -L /dev/mdXp1`. Dies ist in der Regel sicher und notwendig, um die Reparatur abzuschließen. +- Für Laufwerke, die nicht Teil des %%array|Array%% sind: `xfs_repair /dev/sdX1`. + +:::caution +Running this command on an %%array|array%% disk outside of **%%Maintenance Mode|maintenance-mode%%** will invalidate parity. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx new file mode 100644 index 0000000000..2354668aba --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx @@ -0,0 +1,18 @@ +%%ZFS|zfs%%-Pools bieten integrierte Integritätsprüfung und Selbstheilungsfunktionen, die häufig den Bedarf an traditionellen Dateisystemreparaturen eliminieren. + +

Für %%ZFS|zfs%% Pools

+ +- **Überprüfen Sie die Poolgesundheit:** Verwenden Sie den Befehl `zpool status poolname`, um den Status Ihres Pools zu sehen. +- **Führen Sie einen Scrub durch:** Führen Sie `zpool scrub poolname` aus. Dieser Befehl erkennt und repariert automatisch alle Beschädigungen. +- **Fehler löschen:** Nachdem zugrunde liegende Probleme behoben wurden, führen Sie `zpool clear poolname` aus, um den Fehlerstatus zu löschen. + +

Für %%ZFS|zfs%% Festplatten im Array

+ +- **Überprüfen Sie die Datensatzgesundheit:** Verwenden Sie `zfs list -o name,health`, um die Gesundheit Ihrer Datensätze zu überprüfen. +- **Führen Sie einen `Scrub` aus:** Sie können auch `zpool scrub poolname` für alle Festplatten ausführen, die zu einem bestimmten Pool gehören. + +%%ZFS|zfs%% erkennt und behebt automatisch Datenbeschädigungen, wenn Redundanz verfügbar ist, zum Beispiel in Spiegel- oder %%RAIDZ1|raidz1%%/ %%RAIDZ2|raidz2%%/%%RAIDZ3|raidz3%%-Konfigurationen. Im Gegensatz zu traditionellen Dateisystemen erfordert %%ZFS|zfs%% in der Regel keine manuellen Reparaturbefehle, da es kontinuierlich die Datenintegrität mit Prüfsummen überwacht. + +:::tip +Für ein umfassendes Verständnis des %%ZFS|zfs%%-Managements, der Fehlerbehebung und fortschrittlicher Reparaturszenarien, beziehen Sie sich auf die spezielle [ZFS-Speicherseite](../../../advanced-configurations/optimize-storage/zfs-storage.mdx) für detaillierte Anleitungen und Best Practices. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx new file mode 100644 index 0000000000..488fc910b1 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx @@ -0,0 +1,12 @@ +:::info[Common einsatzgebiet] +Moving files back to the %%cache pool|cache-pool%% after maintenance or when you've added a new cache device to improve performance. +::: + +To move files from the %%array|array%% to a pool: + +1. **Docker und %%VM|vm%% Dienste deaktivieren**: Gehen Sie zu **Einstellungen** und schalten Sie Docker und %%VM|vm%% Manager aus, um zu verhindern, dass geöffnete Dateien stören. +2. **Set share storage and Mover action (array → cache)**: In the **Shares** tab, for each share you want to move (like `appdata` or `system`), set **Primary storage** to the destination %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. Set **Mover action** to **array → cache**. +3. **Run the %%Mover|mover%%**: Go to the **Main** tab and click **Move Now** to start moving files from the %%array|array%% to the %%cache pool|cache-pool%%. +4. **Verify the move**: After the %%Mover|mover%% finishes, check that the files are now on the %%cache pool|cache-pool%%. +5. **Docker und %%VM|vm%% Dienste wieder aktivieren**: Sobald der Vorgang abgeschlossen ist, schalten Sie Docker und %%VM|vm%% Manager in **Einstellungen** wieder ein. +6. **(Optional) Set share to use %%cache pool|cache-pool%% exclusively**: If you want all files for a share to remain on the %%cache pool|cache-pool%%, set the **Primary storage** to your %%cache pool|cache-pool%% and **Secondary storage** to **None** for that share. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx new file mode 100644 index 0000000000..b42e106f3f --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx @@ -0,0 +1,8 @@ +1. **Docker und %%VM|vm%% Dienste** wie oben beschrieben deaktivieren. +2. Verwenden Sie `rsync` oder `mv`-Befehle, um Dateien zwischen Einhängepunkten zu übertragen (z.B. von `/mnt/pool1/share` zu `/mnt/pool2/share`). +3. Überprüfen Sie die Dateien, bevor Sie sie aus dem originalen Pool löschen. +4. Docker und %%VM|vm%% Dienste wieder aktivieren. + +:::caution +Überprüfen Sie immer Ihre Dateipfade und verwenden Sie die richtigen Share-Namen, um Datenverlust zu vermeiden. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx new file mode 100644 index 0000000000..c81e4e4d39 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx @@ -0,0 +1,16 @@ +1. **Docker und %%VM|vm%% Dienste deaktivieren**: Gehen Sie zu **Einstellungen** und schalten Sie Docker und %%VM|vm%% Manager aus, um offene Dateien zu vermeiden. +2. **Verschiebe Dateien von pool1 zum %%array|array%% (Cache → Array)**: + - Gehe zum Tab **Freigaben**. Für jede Freigabe, die derzeit auf pool1 liegt, setze **Primäres Speichermedium** auf pool1 und **Sekundäres Speichermedium** auf das %%array|array%%. + - Setzen Sie die **Mover-Aktion** auf **Cache → Array**. + - Im Tab **Haupt** klicke auf **Jetzt verschieben**, um %%Mover|mover%% auszuführen. Warte, bis es fertig ist. +3. **Verschiebe Dateien von dem %%array|array%% zu pool2 (Array → Cache)**: + - Im Tab **Freigaben** setze **Primäres Speichermedium** auf pool2 und **Sekundäres Speichermedium** auf das %%array|array%% für jede Freigabe. + - Setzen Sie **Mover-Aktion** auf **Array → Cache**. + - Im Tab **Haupt** klicke erneut auf **Jetzt verschieben**. Dateien werden vom %%array|array%% zu pool2 verschoben. +4. **Docker und %%VM|vm%% Dienste wieder aktivieren** (falls nötig). + +:::note\[Timing] + +Das Verschieben großer Datenschätze kann Stunden dauern, abhängig von Dateigröße und Geräteschnelligkeit. + +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx new file mode 100644 index 0000000000..3365c17162 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx @@ -0,0 +1,11 @@ +:::info[Common einsatzgebiet] +Bevor Sie Wartungen oder Upgrades durchführen, verschieben Sie Dateien vom %%cache pool|cache-pool%% auf das %%array|array%%, um sicherzustellen, dass Ihre Daten sicher sind. +::: + +Um Dateien von Ihrem Pool auf das %%array|array%% zu verschieben: + +1. **Deaktivieren Sie Docker- und %%VM|vm%%-Dienste**: Gehen Sie zu **Einstellungen** und schalten Sie Docker und den %%VM|vm%% Manager aus. Dadurch wird verhindert, dass Dateien geöffnet bleiben, sodass der %%Mover|mover%% alles reibungslos übertragen kann. +2. **Einstellen von Share-Speicher und Mover-Aktion (Cache → Array)**: Gehen Sie im Tab **Shares** vor und setzen Sie für jeden zu bewegenden Share (wie `appdata` oder `system`) **Primary storage** auf den Quell-%%cache pool|cache-pool%% und **Secondary storage** auf das %%array|array%%. Setzen Sie die **Mover action** auf **cache → array**. +3. **Führen Sie den %%Mover|mover%% aus**: Gehen Sie zum **Haupt**tab und klicken Sie auf **Jetzt verschieben**, um Dateien vom %%cache pool|cache-pool%% auf das %%array|array%% zu übertragen. +4. **Verifikation des Vorgangs**: Nachdem der %%Mover|mover%% fertig ist, überprüfen Sie, ob die Dateien verschoben wurden, indem Sie auf das Ordnersymbol neben dem Cache-Eintrag auf der **Haupt**-Registerkarte klicken. +5. **Re-enable Docker and %%VM|vm%% services**: Once all files are on the %%array|array%%, you can safely turn these services back on. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx new file mode 100644 index 0000000000..400fc3fab7 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx @@ -0,0 +1 @@ +Ein %%parity swap|parity-swap%% ist ein spezielles Verfahren in Unraid, das verwendet wird, wenn Sie eine Datenfestplatte durch eine Festplatte ersetzen müssen, die größer als Ihre aktuelle Paritätsfestplatte ist. Der Vorgang verschiebt Ihre aktuelle Paritätsfestplatte in den Daten-Slot, dann wird eine neue, größere Festplatte als neue Paritätsfestplatte installiert. Dies stellt sicher, dass Ihr Array geschützt bleibt und ermöglicht in Zukunft größere Datenlaufwerke. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx new file mode 100644 index 0000000000..932fa505db --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx @@ -0,0 +1 @@ +Verwenden Sie einen %%parity swap|parity-swap%%, wenn Ihr neuer Datenlaufwerk größer ist als Ihre aktuelle Paritätsplatte. Dies ist nicht erforderlich, wenn Ihr neuer Datenlaufwerk gleich groß oder kleiner als Ihre Paritätsplatte ist. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx new file mode 100644 index 0000000000..75cd808336 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx @@ -0,0 +1,5 @@ +When you set up a %%cache pool|cache-pool%% with more than one device, it enters **multi-device mode**. Here's what you should know: + +- **Datenschutz:** Dieser Modus nutzt %%BTRFS|btrfs%% oder %%ZFS|zfs%%, um Daten über Geräte hinweg zu spiegeln und so Ihre zwischengespeicherten Daten vor Laufwerksausfällen zu schützen. Sie können ein Gerät verlieren, ohne Daten zu verlieren. +- **Mix and Match:** Sie können Geräte unterschiedlicher Größen und Typen hinzufügen oder entfernen, einschließlich der Kombination von SSDs und HDDs. +- **Kapazitätsmanagement:** Verwenden Sie den [BTRFS Speicherplatzrechner](http://carfax.org.uk/btrfs-usage/), um abzuschätzen, wie viel Platz Sie basierend auf dem %%RAID|raid%%-Level und den Größen der verwendeten Geräte haben werden. Für %%ZFS|zfs%%-Pools nutzen Sie den [ZFS Storage Guide](../../../advanced-configurations/optimize-storage/zfs-storage.mdx) für Konfigurationsdetails. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx new file mode 100644 index 0000000000..236e152b65 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx @@ -0,0 +1,10 @@ +In **single device mode**, your %%cache pool|cache-pool%% consists of only one device. This means: + +- **No redundancy:** If the device fails, any data stored on it that hasn't been transferred to your %%array|array%% will be lost. +- **Dateisystemoptionen:** Sie können andere Dateisysteme als %%BTRFS|btrfs%% verwenden, wie %%XFS|xfs%% oder %%ZFS|zfs%%. + +:::important +If you choose a non-%%BTRFS|btrfs%% or non-%%ZFS|zfs%% file system in single device mode and later decide to add more devices to the pool, you will need to reformat the device as %%BTRFS|btrfs%% or %%ZFS|zfs%% first. That's why %%BTRFS|btrfs%% is the default file system for %%cache pools|cache-pool%%, even when using just one device. Both %%BTRFS|btrfs%% and %%ZFS|zfs%% support adding devices later to create mirrored pools. For more information on file system selection and compatibility, see [File systems](../file-systems.mdx). +::: + +Der Einzelgeräte-Modus ist unkompliziert. Sie können das Gerät einfach hinzufügen oder entfernen, haben jedoch keine Optionen für erweiterte Funktionen wie Redundanz oder Erweiterung. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx new file mode 100644 index 0000000000..84a654b77b --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx @@ -0,0 +1,76 @@ +Die Paritätsbewahrungsmethode ermöglicht es Ihnen, eine Datenplatte aus Ihrem Unraid-Array zu entfernen, ohne den Paritätsschutz zu verlieren. Dieser Vorgang erfordert sorgfältige Vorbereitung und technisches Wissen und wird nur fortgeschrittenen Anwendern empfohlen. + +

Was diese Methode macht

+ +Diese Methode setzt die Datenplatte, die Sie entfernen möchten, effektiv auf Null zurück, sodass Ihre Parität intakt bleibt. Da eine mit Nullen gefüllte Platte die Parität nicht beeinflusst, bleibt Ihr Array während des gesamten Verfahrens geschützt. + +

Wann man diese Methode verwendet

+ +Use the %%parity|parity%%-preserve method to remove a data disk while keeping your %%parity|parity%% valid safely. This is especially useful to avoid a full %%parity|parity%% sync after removal. Please ensure that the disk you're removing is healthy. + +:::important\[Prerequisites] + +Bevor Sie beginnen, stellen Sie sicher, dass Sie die folgenden Bedingungen erfüllen: + +- Diese Methode erlaubt es Ihnen, jeweils nur einen Datenträger zu entfernen. +- Bitte beachten Sie, dass es keine offizielle Unterstützung von LimeTech für diesen Prozess gibt; gehen Sie mit Vorsicht vor. + +::: + +:::warning +Diese Methode löscht alle Daten auf der ausgewählten Platte. Bitte überprüfen Sie, ob alle wichtigen Daten verschoben wurden, bevor Sie fortfahren. +::: + +Um einen Datenträger mit der paritätserhaltenden Methode zu entfernen: + +1. **Starten Sie den Array im Wartungsmodus:** Klicken Sie auf die Festplatte, die Sie entfernen möchten, und klicken Sie dann auf die Schaltfläche **Löschen**. Dadurch wird das Dateisystem vom Gerät gelöscht, während die Parität erhalten bleibt, und dann den Array stoppen. +2. **Starten Sie das Array:** Starten Sie das Array im Normalmodus; die zu löschende Platte wird nicht eingehängt, aber die verbleibenden Platten bleiben während des Vorgangs online. +3. **Array-Zuweisungen aufzeichnen:** Notieren Sie Ihre Array-Zuweisungen, insbesondere das %%parity drive|parity-drives%%, als Sicherheitsmaßnahme. +4. **(Optional) Turbo Write aktivieren:** Für schnelleres Zurücksetzen auf Null aktivieren Sie Reconstruct Write ("Turbo Write") in **Einstellungen → Festplattenspeicher** , aber nur, wenn alle Laufwerke gesund sind. +5. **Setzen Sie den Datenträger auf Null:** Verwenden Sie die alternative Kommandozeilen-Methode unten, um den Datenträger manuell auf Null zu setzen. +6. **Stoppen Sie das Array:** Sobald das Zurücksetzen abgeschlossen ist, stoppen Sie das Array. +7. **Array-Konfiguration zurücksetzen:** Behalten Sie alle aktuellen Zuweisungen bei, wenn Sie die Array-Konfiguration zurücksetzen. +8. **Weisen Sie den Datenträger ab:** Weisen Sie den Datenträger, den Sie entfernen möchten, ab und überprüfen Sie alle Zuweisungen, insbesondere das %%parity drive|parity-drives%%. +9. **Bestätigen Sie den Paritätsstatus:** Markieren Sie das Kästchen, das anzeigt, dass die "Parität bereits gültig" ist. +10. **Starten Sie das Array erneut:** Starten Sie das Array, um den Entfernen-Prozess abzuschließen. +11. **(Optional) Parität überprüfen:** Sie können anschließend einen korrigierenden %%parity check|parity-check%% durchführen, um die Paritätsintegrität sicherzustellen. + +
+ **Alternative Kommandozeilen-Methode für das Zurücksetzen eines Datenträgers auf Null** + + Wenn Sie sich mit der Linux-Kommandozeile wohlfühlen, können Sie Ihren Datenträger mit den folgenden Anweisungen manuell auf Null setzen. Achten Sie darauf, den Befehl zu wählen, der Ihrer Version von Unraid entspricht. + + Da das Zurücksetzen eines Datenträgers auf Null mehrere Stunden dauern kann, wird empfohlen, etwas wie das [Tmux Terminal Manager TTM Plugin](https://forums.unraid.net/topic/183427/plugin-tmux-terminal-manager-ttm/) zu verwenden, um die Befehle einzugeben und sicherzustellen, dass die Sitzung fortgesetzt wird. + + **Für Unraid 6.12 oder später:** + + 1. Trennen Sie zunächst den Datenträger: + ```bash + umount /mnt/diskX + ``` + 2. Setzen Sie den Datenträger mit dem folgenden Befehl auf Null zurück: + ```bash + dd bs=1M if=/dev/zero of=/dev/mdXp1 status=progress + ``` + + **Für Unraid 6.11 und früher:** + + 1. Beginnen Sie, indem Sie den Datenträger ausbinden: + ```bash + umount /mnt/diskX + ``` + 2. Verwenden Sie anschließend diesen Befehl, um den Datenträger auf Null zu setzen: + ```bash + dd bs=1M if=/dev/zero of=/dev/mdX status=progress + ``` + + :::note + Denken Sie daran, `X` durch die spezifische Nummer der Datenfestplatte zu ersetzen, die Sie entfernen möchten. + ::: + + :::caution + Überprüfen Sie vor der Ausführung dieser Befehle die Laufwerksnummer, um zu vermeiden, versehentlich Daten auf der falschen Festplatte zu löschen. + ::: + + Zögern Sie nicht, sich an die [Unraid-Foren](https://forums.unraid.net/) zu wenden. Dort können Sie hilfreiche Ressourcen und Unterstützung aus der Community finden. +
diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx new file mode 100644 index 0000000000..9ca7856e32 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx @@ -0,0 +1,13 @@ +Diese Methode ist ideal für Benutzer, die einen einfachen Weg suchen, um einen Datenträger zu entfernen. + +1. **Stoppen Sie das Array:** Beginnen Sie damit, das Array anzuhalten, um die Festplatte sicher zu entfernen. +2. **(Optional) Dokumentieren Sie Ihre Plattenzuordnungen:** Ziehen Sie in Betracht, einen Screenshot Ihrer aktuellen Plattenzuordnungen auf der Hauptregisterkarte zu erstellen. +3. **Setzen Sie die Array-Konfiguration zurück:** Verwenden Sie die [Array-Konfiguration zurücksetzen](#reset-the-array-configuration) Anweisung. Wählen Sie unbedingt die Option, alle aktuellen Zuordnungen beizubehalten. +4. **Weisen Sie den Datenträger ab:** Identifizieren Sie den Datenträger, den Sie entfernen möchten, und weisen Sie ihn ab. +5. **Starten Sie das Array:** Starten Sie das Array nach dem Abweisen des Datenträgers erneut, aber markieren Sie nicht das Feld „Parität ist gültig“. + +Once you start the array, a %%parity|parity%% sync will initiate if you have a %%parity disk|parity-drives%% assigned. Keep in mind that the array will be vulnerable to data loss until this sync completes. + +:::tip +Move any important data off the disk before removal. The %%parity|parity%% sync process may take several hours, depending on disk size and system activity. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx new file mode 100644 index 0000000000..0c3dbe9676 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx @@ -0,0 +1,49 @@ +Wenn Sie mit der Befehlszeile vertraut sind, bietet Ihnen diese Methode mehr Kontrolle und kann nützlich sein, wenn die %%WebGUI|web-gui%%-Option nicht verfügbar ist. Weitere Informationen zur Verwendung der Befehlszeilenschnittstelle finden Sie im Abschnitt [Befehlszeilenschnittstelle](../../../system-administration/advanced-tools/command-line-interface.mdx). + +:::note[Before Sie beginnen] +- Stellen Sie sicher, dass das %%RAID|raid%%-Profil Ihres Pools das Entfernen von Geräten erlaubt; Sie können kein Gerät aus einem 2-Geräte-%%RAID 1|raid1%%-Pool entfernen, ohne es vorher in ein Einzelprofil zu ändern. +- Überprüfen Sie, ob die verbleibenden Geräte genügend Platz für Ihre Daten haben. +::: + +Um eine Festplatte über die Kommandozeile zu entfernen: + +1. **Öffnen Sie eine Terminal-Sitzung**: Stellen Sie sicher, dass %%array|array%% läuft und öffnen Sie Ihre Befehlszeilenschnittstelle. + +2. **Gerät entfernen**: Geben Sie den untenstehenden Befehl ein, wobei Sie `X` durch den Buchstaben ersetzen, der dem zu entfernenden Laufwerk entspricht (wie auf der Main-Registerkarte angezeigt): + + ```bash + btrfs device remove /dev/sdX1 /mnt/cache + ``` + + - Für verschlüsselte Geräte verwenden: `/dev/mapper/sdX1`. + - Für NVMe-Geräte verwenden Sie: `nvmeXn1p1`. + +3. **Warten Sie auf den Abschluss**: Das Gerät wird entfernt, sobald der Cursor zurückkehrt. + +4. **Unraid "vergessen" das gelöschte Mitglied**: + - Stoppen Sie das %%array|array%%. + - Weisen Sie alle Poolgeräte aus. + - Starten Sie %%array|array%% (Unraid wird die Pool-Konfiguration löschen). + - If any Docker/%%VM|vm%% services use this pool, disable them before starting the %%array|array%% to prevent Unraid from recreating images elsewhere. + +5. **Geräte neu zuweisen**: Stoppen Sie %%array|array%% erneut, weisen Sie alle verbleibenden Pool-Mitglieder außer dem entfernten Gerät neu zu und starten Sie dann %%array|array%%. + +**So entfernen Sie mehrere Geräte**: + +Sie können dies mit einem Befehl tun: + +```bash +btrfs device remove /dev/sdX1 /dev/sdY1 /mnt/cache +``` + +Beachten Sie jedoch, dass die Entfernung trotzdem nacheinander erfolgt. + +:::note\[Timing] + +Ähnlich wie bei der %%WebGUI|web-gui%% Methode kann das Entfernen von Geräten und das Neuausbalancieren je nach Datenmenge und Geräteschnelligkeit mehrere Stunden dauern. + +::: + +:::important +Wenn Sie nur ein Gerät im Pool übrig haben, müssen Sie das %%RAID|raid%%-Profil zu **Einzel** konvertieren, um sicherzustellen, dass alles korrekt funktioniert. Für weitere Anweisungen beachten Sie bitte den Abschnitt [Ändern des Pool-RAID-Levels auf Einzel](#changing-pool-raid-levels). +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx new file mode 100644 index 0000000000..9d6a1bd6fc --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx @@ -0,0 +1,18 @@ +:::note[Before Sie beginnen] +- Sie können mit der GUI nur ein Laufwerk gleichzeitig entfernen. +- Stellen Sie sicher, dass Ihr Pool ein redundantes %%RAID|raid%%-Profil verwendet (wie %%RAID 1|raid1%% für sowohl Daten als auch Metadaten). +- To check your pool's %%RAID|raid%% level, navigate to the Main tab and click on the pool. Scroll down to the Balance Status section (for %%BTRFS|btrfs%%) or ZFS pool status (for %%ZFS|zfs%%). +::: + +Um eine Festplatte über das %%WebGUI|web-gui%% zu entfernen: + +1. **Stoppen Sie das %%array|array%%**: Gehen Sie zur **Main**-Registerkarte und suchen Sie die Option zum Stoppen Ihres %%array|array%%. +2. **Den Pool-Laufwerk unzuweisen**: Finden Sie das Laufwerk, das Sie entfernen möchten, und weisen Sie es auf der Registerkarte **Main** aus. +3. **Starten Sie das %%array|array%%**: Starten Sie das %%array|array%% neu, um die Änderungen anzuwenden. +4. **Entfernung überprüfen**: Klicken Sie auf das erste Poolgerät in der Registerkarte **Main**, dann überprüfen Sie den **Balance Status** (für %%BTRFS|btrfs%%) oder **Zpool Status** (für %%ZFS|zfs%%), um sicherzustellen, dass das Gerät ordnungsgemäß entfernt wurde. + +:::note\[Timing] + +Bedenken Sie, dass das Entfernen eines Laufwerks und das Neuausbalancieren des Pools mehrere Stunden dauern kann, abhängig von der Datenmenge und den Geschwindigkeiten Ihres Geräts. + +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx new file mode 100644 index 0000000000..2b0bb102e4 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx @@ -0,0 +1,3 @@ +1. Die **Cache-Benutzer**-Einstellung der Freigabe auf *Bevorzugt* setzen. +2. Der **%%Mover|mover%%** läuft automatisch gemäß Ihrem Zeitplan, um Dateien zu verschieben, und manuelle Läufe sind optional. +3. Nachdem die Dateien verschoben wurden, können Sie die **Cache-Benutzer**-Einstellung auf *Nein* ändern, wenn Sie es bevorzugen. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx new file mode 100644 index 0000000000..6207a0694e --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx @@ -0,0 +1,3 @@ +1. In den Freigabeeinstellungen **Primärspeicher** auf *Cache* und **Sekundärspeicher** auf *Array* setzen. +2. Die **Mover-Aktion** auf *Array -> Cache* setzen. +3. Der **%%Mover|mover%%** wird automatisch gemäß Ihrem Zeitplan laufen, um Dateien zu verschieben, mit manuellen Läufen als Option. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx new file mode 100644 index 0000000000..e4e88361e0 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx @@ -0,0 +1,3 @@ +1. Die **Cache-Benutzer**-Einstellung der Freigabe auf *Ja* ändern. +2. Der **%%Mover|mover%%** überträgt Dateien automatisch nach Ihrem Zeitplan. Manuelle Ausführungen sind optional. +3. Nachdem die Dateien verschoben wurden, können Sie die **Cache-Benutzer**-Einstellung auf *Nur* ändern, wenn Sie möchten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx new file mode 100644 index 0000000000..d5db2bf550 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx @@ -0,0 +1,3 @@ +1. In den Freigabeeinstellungen **Primärspeicher** auf *Cache* und **Sekundärspeicher** auf *Array* setzen. +2. Die **Mover-Aktion** auf *Cache -> Array* setzen. +3. Der **%%Mover|mover%%** läuft automatisch gemäß Ihrem Zeitplan, um Dateien zu übertragen. Manuelle %%Mover|mover%% Ausführungen sind möglich, aber nicht erforderlich. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx new file mode 100644 index 0000000000..b859216cd9 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx @@ -0,0 +1,12 @@ +Unraid verwendet den **%%Mover|mover%%**, um die Dateiplatzierung zwischen dem %%cache|cache%% und %%array|array%% zu verwalten, gesteuert durch die Einstellung **Cache für neue Dateien verwenden** für jede Freigabe: + +- **Ja:** Neue Dateien gehen in den %%cache|cache%%, wenn Platz vorhanden ist; andernfalls in das %%array|array%%. %%Mover|mover%% transferiert Dateien vom %%cache|cache%% ins %%array|array%%. +- **Nein:** Neue Dateien gehen direkt ins %%array|array%%. %%Mover|mover%% macht nichts für diesen Share. +- **Nur:** Neue Dateien werden nur in den %%cache|cache%% geschrieben. Wenn nicht genug Platz vorhanden ist, schlägt das Schreiben fehl. %%Mover|mover%% bewegt keine Dateien vom %%array|array%% zum %%cache|cache%%. +- **Bevorzugt:** Neue Dateien gehen in den %%cache|cache%%, wenn Platz vorhanden ist; andernfalls in das %%array|array%%. %%Mover|mover%% versucht, Dateien vom %%array|array%% zurück in den %%cache|cache%% zu verschieben, wann immer möglich. + +Diese Einstellung ist die Standardeinstellung für `appdata` und `system`-Freigaben zur Verbesserung der Docker- und VM-Leistung. + +:::note +Ab Version Unraid 6.9 können mehrere %%pools|cache-pool%% erstellt und als %%cache|cache%% verwendet werden. Jeder dieser %%pools|cache-pool%% kann unabhängig von seinem Namen als %%cache|cache%% fungieren. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx new file mode 100644 index 0000000000..45ea950397 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx @@ -0,0 +1,23 @@ +Die Einstellung **Primärspeicher** bestimmt, wo neue Dateien für einen Freigabebereich zunächst gespeichert werden – dies kann der **%%cache|cache%%**, das **%%array|array%%** oder ein benannter **%%pool|cache-pool%%** sein. Die Einstellung **Sekundärspeicher** gibt einen alternativen Speicherort für neue Dateien und Ordner an, wenn der Primärspeicher unter den Schwellenwert **Mindestfreier Speicherplatz** fällt. + +Die **%%Mover|mover%%**-Funktion überträgt automatisch Dateien zwischen Primär- und Sekundärspeicher basierend auf Ihrem Zeitplan und gewährleistet optimale Leistung sowie Speichernutzung. + +
+ ![Primär zu Sekundär Speicher](/img/primarytosecondarystorage.png) +
+ +:::note +If you select the %%array|array%% for primary or secondary storage, you must also configure its **%%allocation method|allocation-method%%**, **%%split level|split-level%%**, and any **%%included or excluded disks|included-or-excluded-disks%%**. These settings do not apply to %%pools|cache-pool%%. +::: + +**Primärspeicher-Dropdown:** + +- Diese Einstellung ist für jede Freigabe erforderlich. +- Sie müssen ein Primärspeichergerät oder %%pool|cache-pool%% auswählen (Standard ist **Cache**). +- Sie können jeden benannten %%pool|cache-pool%% oder das %%array|array%% wählen. + +**Sekundärspeicher-Dropdown:** + +- **None:** Kein Sekundärspeicher ist für die Freigabe festgelegt (optional). +- Wenn der Primärspeicher ein %%pool|cache-pool%% ist, stehen **None**, **Array** und **Ein anderer Pool** zur Verfügung. +- If the primary storage is the **Array**, **None** and any eligible %%pools|cache-pool%% are available. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx new file mode 100644 index 0000000000..aa2a3f4d6d --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx @@ -0,0 +1,18 @@ +**Nachricht:** +`Zu viele angeschlossene Geräte. Bitte ziehen Sie in Betracht, Ihren Registrierungsschlüssel zu aktualisieren.` + +![Gerätelimit-Fehler](/img/Toomanydevices.png) + +Die Regeln für die Verbindung von Speicher gelten nur, bevor der Array gestartet wird. Nach dem Start des Arrays können Sie mehr Speicher hinzufügen, einschließlich USB-Laufwerken für virtuelle Maschinen. Seien Sie jedoch darauf aufmerksam, dass Unraid derzeit die Anzahl der angeschlossenen Speichergeräte auf die [**Starter-Lizenzstufe**](https://unraid.net/pricing) +(6 Geräte-Grenze) beschränkt. + +:::tip +Die maximale Anzahl gilt für alle Geräte außer dem Boot-USB. +::: + +Um diesen Fehler zu beheben: + +1. Stoppen Sie die Array. +2. Entfernen Sie alle unnötigen Speichergeräte. +3. Starten Sie das Array. +4. Anschließend Geräte für die Verwendung mit **Unzugewiesene Geräte** wieder anschließen. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx new file mode 100644 index 0000000000..41f7900909 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx @@ -0,0 +1,6 @@ +**Nachricht:** +`Kann keinen Kontakt zum Key-Server herstellen` + +Wenn Sie eine Testlizenz haben, wird eine Nachricht angezeigt, die darauf hinweist, dass Sie den Unraid-Lizenzserver kontaktieren müssen, um Ihr Array zu starten. Wenn Sie jedoch eine bezahlte Lizenz haben, können Sie das Array ohne zusätzliche Schritte starten. + +Für Testbenutzer versucht Ihr Server beim ersten Start eine Verbindung zum Lizenz-Servers herzustellen, um Ihre Lizenz zu überprüfen. Wenn er innerhalb von 30 Sekunden keine Verbindung herstellen kann, wird das Array nicht gestartet. Aber keine Sorge! Jedes Mal, wenn Sie das %%WebGUI|web-gui%% aktualisieren oder darin navigieren, wird erneut versucht, Ihre Lizenz schnell zu validieren. Sobald die Validierung erfolgreich ist, muss Ihr Server nicht erneut überprüfen, es sei denn, Sie starten ihn neu. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx new file mode 100644 index 0000000000..1e01898e02 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx @@ -0,0 +1,23 @@ +**Nachricht:** +`Ungültiger oder fehlender Registrierungsschlüssel.` + +![Fehlender Schlüssel](/img/Invalidormissingkey.png) + +Ein gültiger Registrierungsschlüssel ist erforderlich, um das Array zu starten. Um einen zu kaufen oder einen Testschlüssel zu erhalten: + +1. Gehen Sie zu ***Werkzeuge → Registrierung***. +2. Klicken Sie auf **Testschlüssel erhalten** oder **Kauf-Schlüssel**. +3. Den Schlüssel installieren, indem Sie zu **Registrierung** zurückkehren, ihn in das Feld einfügen und auf die Schaltfläche **Schlüssel installieren** klicken. + +:::note[Trial Test- vs. bezahlte Lizenzen] +- **Testlizenz:** Volle Unraid-Zugriff für 30 Tage, genau wie die höheren Lizenzstufen. Sie können unbegrenzt viele Speichergeräte verwenden, aber Sie benötigen eine Internetverbindung, um den Start zu initiieren. [Starten Sie hier eine neue Testphase.](https://unraid.net/getting-started) +- **Bezahlte Lizenz:** Diese gehört für immer Ihnen! Es gibt jedoch Einschränkungen hinsichtlich der Anzahl der Geräte, die je nach gewähltem Plan (**Starter**, **Unleashed** oder **Lifetime**) variieren. Nach der Aktivierung müssen Sie keine Internetverbindung mehr herstellen. +::: + +:::tip +Wenn Sie einen "ungültigen Schlüssel"-Fehler sehen, könnte das bedeuten, dass Ihre Testversion **abgelaufen** ist. Um Unraid weiter zu verwenden, können Sie [hier eine Lizenz erwerben](https://unraid.net/pricing). +::: + +:::caution[Blacklisted USB-Flash-Geräte] +Wenn Ihr Server online ist und Ihre Testversion noch nicht abgelaufen ist, könnte Ihr USB-Flash-Laufwerk eine %%GUID|guid%% haben, die keinen Schlüssel registrieren kann. Dies kann passieren, wenn die %%GUID|guid%% nicht einzigartig ist oder bereits von jemand anderem registriert wurde. Die Verwendung eines SD-Kartenlesers über USB kann ebenfalls zu diesem Problem führen, da er oft eine generische %%GUID|guid%% hat. Wenn Ihr USB-Flash-Laufwerk **auf der Schwarzen Liste** steht, kann es nicht mehr verwendet werden, und Sie müssen ein anderes Gerät für Ihre Unraid-Server-OS-Installation finden. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx new file mode 100644 index 0000000000..a92fa20e79 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx @@ -0,0 +1,9 @@ +**Nachricht:** +`Zu viele falsche und/oder fehlende Festplatten!` + +![Einzel-Paritätsfehler](/img/Toomanywrong.png) + +With **one %%parity drive|parity-drives%%**, you can only have **one** missing disk. With two %%parity drives|parity-drives%%, **two** disks can be missing and you can still start the array, and so on. Parity helps until you can replace the missing disk. + +**Was zu tun ist:** +Ersetzen Sie die fehlende Festplatte. Bei Konfigurationen mit doppelter Parität ersetzen Sie die fehlenden Festplatten nacheinander. Wenn Sie die Daten nicht wiederherstellen können (oder wenn in einer doppelten Paritätskonfiguration mehr als 2 Festplatten ausfallen), gehen Sie zu ***Tools → Neues Konfig***, um das Neue Konfig-Verfahren durchzuführen. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx new file mode 100644 index 0000000000..6c96040a8f --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx @@ -0,0 +1,11 @@ +**Nachricht:** `Diese Unraid-Version wurde zurückgezogen.` + +Wenn Sie diese Meldung sehen, bedeutet das, dass Sie eine Beta- oder Release-Kandidatversion von Unraid verwenden, die nicht für den regelmäßigen Gebrauch freigegeben ist. + +Um dies zu beheben: + +1. Öffnen Sie Unraid. +2. Gehen Sie zu ***Tools → OS aktualisieren***. +3. Installieren Sie die neueste stabile Version. + +Sobald die Aktualisierung abgeschlossen ist, starten Sie Ihren Server neu, um ihr Array zu starten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx new file mode 100644 index 0000000000..245ea30d27 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx @@ -0,0 +1,613 @@ +--- +sidebar_position: 1 +sidebar_label: Freigaben +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import SharesPrimaryStorage612 from './partials/shares-primary-storage-612.mdx'; +import SharesPrimaryStorage611 from './partials/shares-primary-storage-611.mdx'; +import SharesCacheToArray612 from './partials/shares-cache-to-array-612.mdx'; +import SharesCacheToArray611 from './partials/shares-cache-to-array-611.mdx'; +import SharesArrayToCache612 from './partials/shares-array-to-cache-612.mdx'; +import SharesArrayToCache611 from './partials/shares-array-to-cache-611.mdx'; + +# Freigaben + +A key feature of Unraid is the management of shares. Shares are folders or drives on your Unraid server that can be accessed over a network. You can create as many shares as you want on your Unraid server. These shares can be secured, and their configuration determines how data is written and distributed across your %%array|array%% or named %%pool|cache-pool%% of drives. + +Unraid bietet zwei Arten von Freigaben, um Ihr Datenmanagement zu optimieren: + +- [**Benutzerfreigaben**](#user-shares): Diese verwenden **Linux FUSE** und repräsentieren Ordner innerhalb des umfassenderen Dateisystems. +- [**Festplattenfreigaben**](#disk-shares): Diese teilen die gesamte Festplatte mit dem Dateisystem des Laufwerks. + +
+ ![Benutzerfreigaben vs. Festplattenfreigaben](/img/usersharesvsdiskshares.png) +
+ +Es ist wichtig, sich daran zu erinnern, dass beide Freigabetypen unterschiedliche Ansichten desselben zugrunde liegenden Dateisystems präsentieren; jede Datei oder jeder Ordner, der in einer %%user share|user-share%% sichtbar ist, wird auch unter der Festplattenfreigabe für das jeweilige physische Laufwerk angezeigt. + +Wenn Sie Dienste wie Docker oder VM-Manager starten, erstellt Unraid automatisch einen [Satz von Standardbenutzerfreigaben](#default-shares), die darauf ausgelegt sind, gängige Plugins, Docker-Container und **virtuelle Maschinen (VMs)** zu unterstützen. Sie können bei Bedarf bequem zusätzliche Freigaben für Ihre persönlichen Daten erstellen. + +:::note +To manage your shares, simply navigate to the **Shares** tab in the WebGUI. Here, you can easily enable or disable shares through ***Settings → Global Share Settings***. By default, %%user shares|user-share%% are enabled, providing a straightforward starting point for your file organization. +::: + +--- + +## Benutzerfreigaben + +%%User shares|user-share%% provide an aggregated view of top-level folders with the same name across **%%cache|cache%%** and **array drives**. The share name corresponds to the folder name, creating a unified network-accessible view that spans multiple drives. It's important to note that while directories appear merged, individual files remain stored on a single drive. + +### Verwaltung von Benutzerfreigaben + +Sie können auf %%Benutzer-Freigaben|user-share%% über die **Shares**-Registerkarte im **WebGUI** zugreifen und diese verwalten. Diese Schnittstelle ermöglicht es Ihnen: + +- Alle vorhandenen Freigaben prüfen +- Neue Freigaben erstellen +- Vorhandene Freigaben ändern oder löschen + +Jeder auf einem Laufwerk manuell erstellte Ordner auf oberster Ebene wird automatisch als Benutzerfreigabe erkannt und erhält standardmäßige Attribute. + +### Dateisystemstruktur + +At the Linux level, %%User shares|user-share%% are accessible under `/mnt/user`, which combines files from both the %%array|array%% and %%pools|cache-pool%%. This logical view overlays the physical file system, meaning files are also visible through **Disk Shares** at the drive level. + +:::warning +The deprecated `/mnt/user0` mount point (which excludes %%pool|cache-pool%% files) may be removed in future Unraid releases. +::: + +### Speicherzuweisung + +The physical drive that stores a file is determined by share settings such as **%%Allocation Method|allocation-method%%**, **%%Included/Excluded Disks|included-or-excluded-disks%%**, and **%%Split Level|split-level%%**. Changes to these settings will affect only new files; existing files will remain untouched unless moved manually. + +:::caution\[Critical] + +**Nicht %%User Shares|user-share%% und %%Disk Shares|disk-share%% mischen** + +Kopieren oder verschieben Sie niemals Dateien direkt zwischen einer **Benutzerfreigabe** und einer **Laufwerksfreigabe** (zum Beispiel zwischen `/mnt/user/share` und `/mnt/disk1/share`) – besonders wenn die Ordnernamen gleich sind. Dies kann zu Dateikorruption oder permanentem Datenverlust führen. + +Für sichere Dateiverwaltungspraktiken und weitere Details siehe die untenstehenden [Richtlinien für Festplattenfreigaben](#disk-share-guidelines). + +::: + +### Eine Freigabe hinzufügen + +Bevor Sie eine Freigabe erstellen, überlegen Sie, wie Sie sie nutzen werden, Ihre Leistungsanforderungen, Sicherheit und wo Dateien gespeichert werden sollen. + +Um eine Freigabe hinzuzufügen: + +1. **Prozess starten:** Gehen Sie zur Registerkarte **Shares** und klicken Sie auf **Share hinzufügen**. + +2. **Einen Freigabenamen wählen:** Wählen Sie einen eindeutigen Namen für Ihre Freigabe, wie `Media` oder `Dokumente`. + +:::important[Share name] +Auch wenn Netzfreigaben (%%SMB|Samba%%) sich nicht um Groß- und Kleinschreibung kümmern (z.B. `MEDIA` ist dasselbe wie `media`), tun Linux-Dateisysteme dies. Vermeiden Sie die Verwendung von Namen, die nur in der Groß- und Kleinschreibung unterschiedlich sind, um Probleme zu vermeiden. +::: + +3. **Optionale Einstellungen:** + - **Kommentare:** Schreiben Sie eine kurze Beschreibung, um Ihre Freigabe zu identifizieren (z.B. "Familienfotos"). + - **Mindestfreier Speicherplatz:** Legen Sie eine Mindestmenge an freiem Speicherplatz fest (z.B. `50GB` für große Dateien). (Für weitere Details siehe [Mindestfreier Speicherplatz](#minimum-free-space)) + +4. **Speicherorte wählen:** + + - **Primärspeicher:** Wählen Sie, wo die Freigabe zunächst gespeichert wird (z.B. **%%cache|cache%%**, **%%array|array%%** oder ein bestimmter %%pool|cache-pool%%). + - **Sekundärspeicher:** Legen Sie einen Überlaufplatz fest, der genutzt werden kann, wenn der Primärspeicher voll ist, und der auch als Endziel für die Freigabe dient, sobald der %%Mover|mover%% läuft. + + (Für weitere Details siehe [Primär- und Sekundärspeicher](#primary-and-secondary-storage).) + +5. **Datenregeln festlegen:** + - **%%Zuweisungsmethode|Zuweisungsmethode%%:** Wählen Sie, wie Daten gespeichert werden sollen – Optionen beinhalten High-Water, Fill-Up oder Most-Free. (Für weitere Details siehe [Zuweisungsmethode](#allocation-method).) + - **%%Split Level|Split-Level%%:** Bestimmen Sie, wie Ordner organisiert werden sollen. (Für weitere Details siehe [Split Level](#split-level).) + +6. **Laufwerke verwalten:** + + - **Enthaltene Festplatten:** Wählen Sie spezifische Laufwerke zum Einbeziehen (z.B. `disk1,disk2`). + - **Ausgeschlossene Festplatten:** Geben Sie alle Laufwerke an, die Sie nicht einbeziehen möchten (wie ältere Laufwerke). + + (Für weitere Details siehe [Ein- oder ausgeschlossene Festplatten](#included-or-excluded-disks).) + +:::tip +Sie können entweder **Eingeschlossene** oder **Ausgeschlossene Festplatten** konfigurieren, aber nicht beide gleichzeitig. +::: + +7. **Mover-Einstellungen (falls erforderlich)** + + - **Beweger Aktion:** Bestimmen Sie die Richtung der Datenbewegung (entweder *Primär → Sekundär* oder *Sekundär → Primär*). + + (Für weitere Details siehe [Verschieben von Dateien zwischen Cache und Array](#moving-files-between-cache-and-array).) + +8. **Prozess abschließen:** Klicken Sie auf **Share hinzufügen**, um das Einrichten Ihrer neuen Freigabe abzuschließen. + +:::important +Standardmäßig wird eine neue Freigabe nicht über das Netzwerk freigegeben. Sie müssen den [Netzwerkzugang](../../system-administration/secure-your-server/security-fundamentals.mdx#managing-network-visibility-of-shares) konfigurieren, nachdem die Freigabe erstellt wurde. +::: + +### Eine Freigabe löschen + +:::important +Um Datenverlust zu vermeiden, können Freigaben, die Daten enthalten, nicht gelöscht werden. Daher sollten Sie zuerst alle Inhalte in der Freigabe löschen oder verschieben. Überprüfen Sie immer doppelt, ob die Freigabe leer ist, bevor Sie mit der Entfernung fortfahren, um einen sicheren Prozess zu gewährleisten. +::: + +**Freigaben mit Daten** + +Für Freigaben mit Daten: + +1. **Leer Sie zuerst die Freigabe:** + - Verwenden Sie den integrierten **Dateimanager**, der über die Systemverknüpfungen (***Tools → Dateimanager***) zugänglich ist, oder klicken Sie auf das ![Dateimanager](/img/filemanager.png) Symbol oben rechts. + - Finden Sie Ihre Freigabe unter **Shares** und klicken Sie auf das **Durchsuchen**-Symbol. + - Löschen oder verschieben Sie alle Dateien mit dem Dateimanager. + +
+ Kommandozeilenbenutzung (fortgeschritten) + + 1. **Öffnen Sie das Terminal:** Verwenden Sie das **Web Terminal** (***Tools → Terminal***) oder verbinden Sie sich über %%SSH|ssh%%. + + 2. **Dateien löschen:** + Führen Sie diesen Befehl aus und ersetzen Sie `[share_name]` durch den Namen Ihres Freigabeordners: + + ``` + rm -rf /mnt/user/[share_name]/* + ``` + + 3. **Freigabe löschen:** Folgen Sie den Schritten zum Löschen einer leeren Freigabe oben. + + :::vorsicht + - Der Befehl `rm -rf` löscht Dateien dauerhaft. Überprüfen Sie vor der Verwendung doppelt. + - Stellen Sie sicher, dass keine Docker- oder VM-Dienste die Freigabe verwenden, bevor Sie sie löschen + ::: +
+ +:::note[Alternative Methode] +Wenn Sie auf die Freigabe über das Netzwerk zugreifen können: + +- Verwenden Sie **Windows Explorer** (%%SMB|samba%%) oder **macOS Finder** (%%AFP|AFP%%/%%SMB|samba%%), um sich mit der Freigabe zu verbinden. +- Löschen Sie die Dateien manuell und entfernen Sie dann die Freigabe über das **WebGUI**. +::: + +2. **Freigabe löschen:** + - Gehe zurück zu **Freigaben** und klicke auf die jetzt leere Freigabe. + - Aktivieren Sie das **Löschen**-Feld und klicken Sie auf **Löschen**. + - Bestätigen und klicken Sie auf **Fertig**. + +#### Eine leere Freigabe löschen + +1. Gehen Sie zur **Shares**-Registerkarte. +2. Klicken Sie auf die Freigabe, die Sie löschen möchten. +3. Aktivieren Sie das Kontrollkästchen neben **Löschen**. Die Schaltfläche wird zu **Löschen**. +4. Klicken Sie auf **Löschen**. +5. Bestätigen Sie die Löschung und klicken Sie auf **Fertig**. + +--- + +## Freigabeneinstellungen + +### Mindestfreier Speicherplatz + +The **Minimum Free Space** setting works in conjunction with the **%%allocation method|allocation-method%%** and **%%split level|split-level%%** to determine where new files are stored. This setting specifies the amount of free space that must remain on a drive for it to be considered eligible for new file writes. If a drive’s free space falls below this threshold, Unraid will stop placing new data on that drive, provided that the **%%split level|split-level%%** permits splitting to another disk. + +
+ Wie es funktioniert - Klicken zum Erweitern/Reduzieren + + Beim Übertragen einer Datei (z. B. `file.eg`) wählt Unraid eine Festplatte basierend auf den verfügbaren Einstellungen aus, kann jedoch die endgültige Größe der Datei nicht vorhersagen. Wenn die gewählte Festplatte während der Übertragung keinen Speicherplatz mehr hat, schlägt der Vorgang mit einem "Datenträger voll"-Fehler fehl. Um dies zu verhindern, stellen Sie den **Mindestfreier Speicherplatz** auf einen Wert ein, der größer als Ihre größte Datei ist. Dies stellt sicher, dass Unraid Festplatten vermeidet, die nicht die gesamte Datei aufnehmen können. +
+ +

Empfehlungen

+ +Setzen Sie diesen Wert auf **das Doppelte der Größe Ihrer größten Datei**. Zum Beispiel: + +- Wenn Ihre größte Datei 8GB ist, setzen Sie den Mindestfreier Speicherplatz auf 16GB. + +Dieser Puffer berücksichtigt Schwankungen in Dateigrößen und hilft, Übertragungsfehler zu verhindern. + +

Konfiguration

+ +- Geben Sie den Wert in KB, MB, GB oder TB ein (z.B. `50GB`). +- Neue %%user shares|user-share%% standardmäßig auf 10% der Gesamtkapazität der Festplatte. + +:::warning +Always configure **Minimum Free Space** when using the *fill-up* %%allocation method|allocation-method%%. If you do not set it, you may encounter "disk full" errors during write operations. +::: + +:::caution +There is a separate **Minimum Free Space** setting for **%%cache pools|cache-pool%%**. You can access this by going to the **Main** tab and clicking on a %%pool|cache-pool%%. Make sure to set this value higher than your largest file to avoid overfilling, especially for shares configured with *Yes* or *Prefer* cache modes. +::: + +

Einschränkungen

+ +- Unraid prioritizes **%%split level|split-level%%** rules over free space settings. If splitting is not allowed, files may still fill up a disk regardless of the free space threshold. +- Das Aktualisieren vorhandener Dateien (zum Beispiel beim Wachstum von Sicherungsdateien) löst keine Neuverteilung aus, was im Laufe der Zeit zu "Festplatte voll"-Fehlern führen kann. + +Für detailliertere Anleitungen verwenden Sie das **Hilfe**-Symbol im **WebGUI** während der Konfiguration Ihrer Freigaben. + +--- + +## Primäres und Sekundäres Speicher + +Unraid’s storage management lets you control where new files are written and how data moves between %%pools|cache-pool%%, %%cache|cache%%, and the %%array|array%%. The options and terminology differ between Unraid 6.12+ and earlier versions. + + + + + + + + + + + +--- + +### Dateien zwischen Cache und Array verschieben + +Unraid provides a straightforward way to manage file placement between **%%cache pools|cache-pool%%** and the **%%array|array%%**, allowing you to optimize performance and manage your data effectively. The key is to set up your share settings based on your preferred data flow and let the **%%Mover|mover%%** handle file transfers automatically according to its schedule. + +:::tip[Scheduling the Mover] +You can configure the [**%%Mover|mover%%** schedule](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#scheduler) by going to **Settings → Scheduler → Mover Settings**. Running it automatically during off-peak hours helps move files between the %%cache|cache%% and %%array|array%% without requiring manual action. +::: + +#### Cache zum Array + +*Use case:* Moving files from your high-speed %%cache|cache%% to the %%array|array%% for long-term storage. + + + + + + + + + + + +#### Array zum Cache + +*Use case:* Improving performance for Docker containers and VMs by moving files to the %%cache|cache%%. + + + + + + + + + + + +:::tip[Enabling Mover-Protokoll für die Fehlerbehebung aktivieren] +Wenn Sie Probleme mit Dateibewegungen haben, können Sie durch die Seite ***Einstellungen → Zeitplan → Mover-Einstellungen*** die **Mover-Protokollierung** aktivieren. Dies protokolliert jede verschobene Datei und kann in ***Tools → Systemprotokoll*** eingesehen werden. +::: + +:::caution[Critical Kritische Schritte für beide Richtungen] +- Make sure your %%parity|parity%% is valid before moving files from the %%array|array%% to the %%cache|cache%%. +- Wenn Sie mit großen Datensätzen arbeiten, überwachen Sie die %%Mover|mover%%-Aktivität über die Protokolle. +- Wenn Dateien scheinbar "feststecken", sollten Sie in Betracht ziehen, Docker und den VM-Manager vorübergehend zu deaktivieren und den %%Mover|mover%% manuell über ***Hauptnavigation → Array-Betrieb → Verschieben*** auszuführen. +::: + +--- + +### Zuweisungsprofil + +Wenn Sie eine neue Benutzerfreigabe erstellen oder eine Datei oder einen Ordner darin hinzufügen, muss das System entscheiden, wo diese Daten gespeichert werden. In der Regel wird die Datenplatte gewählt, die am meisten freien Speicherplatz hat. Sie können jedoch anpassen, wie diese Entscheidung mithilfe bestimmter Einstellungen getroffen wird. + +Es gibt drei einfache Optionen, die Sie auswählen können, wie das System den Speicherplatz für Ihre Benutzerfreigabe zuteilt: + + + +

Wie es funktioniert

+ + Die **High-Water**-Methode füllt Festplatten schrittweise mit "Schaltpunkten" basierend auf der Hälfte der Kapazität des größten Laufwerks. Dies balanciert die Festplattennutzung aus, hält zusammengehörige Dateien zusammen und minimiert das Hochdrehen der Festplatten. + +

Beispiel mit 8TB, 3TB und 2TB Laufwerken

+ + 1. **Erster Durchgang:** Fülle 8TB-Laufwerk, bis 4TB frei bleiben (die Hälfte von 8TB). + 2. **Zweiter Durchgang:** Fülle 8TB/3TB-Laufwerke, bis 2TB frei bleiben. + 3. **Dritter Durchgang:** Fülle alle Laufwerke, bis 1TB frei bleibt. + +

Am besten für:

+ + - Medienserver (z.B. Plex) + - Szenarien, in denen das Halten von Dateien auf weniger Festplatten die Effizienz beim Ausschalten verbessert + - Arrays mit gemischten Laufwerksgrößen + + :::Hinweis + High-Water ist die Standardmethode und funktioniert gut für die meisten Benutzer. Es reduziert das Rattern der Festplatten im Vergleich zu "Most-free." + ::: +
+ + +

Wie es funktioniert

+ + Die **Most-free**-Methode wählt die Festplatte mit dem meisten freien Speicherplatz für jede neue Datei aus. Dies maximiert die Speichereffizienz, erhöht jedoch das Rattern der Festplatten. + +

Leistungs-Auswirkungen

+ + - Häufige Laufwerkswechsel halten mehrere Laufwerke eingeschaltet + - May reduce %%parity|parity%% write speeds due to overlapping operations + +

Am besten für:

+ + - Workflows mit hohem Durchsatz (z.B. Videobearbeitung) + - Temporary or %%cache|cache%%-like data + - Arrays, bei denen die Leistung höher bewertet wird als Energieeinsparungen + + :::tip + Combine with **%%split level|split-level%%** settings to group related files despite frequent disk switching. + ::: +
+ + +

Wie es funktioniert

+ + Die **Auffüllmethode** schreibt der Reihe nach auf Laufwerke, bis sie die **Mindestfreiraum**-Schwelle erreichen, dann auf das nächste Laufwerk. + +

Anforderungen

+ + - Immer **Mindestfreiraum** festlegen (z.B. 2x größte Dateigröße) + - **Split-Level** konfigurieren, um Dateigruppierung zu steuern + +

Am besten für:

+ + - Statische Datenarchive + - Benutzer, die manuelle Laufwerksverwaltung bevorzugen + - Arrays mit identischen Laufwerksgrößen + + :::Achtung + Ohne konfigurierten **Mindestfreier Speicherplatz** treten "Datenträger voll"-Fehler auf, wenn eine Festplatte fast voll ist. + ::: +
+
+ +--- + +### Teilungsstufe + +The **Split Level** setting in Unraid helps manage how files and folders are organized across multiple disks. It determines how deep folder structures can go on different disks while keeping certain files together. The %%split level|split-level%% is numbered starting from 1, where the top level (the main share) is considered level 1. + + + +

Verhalten

+ + Unraid creates any required folders on the selected disk, regardless of folder depth. New files and folders are placed based on %%allocation method|allocation-method%% and available space, even if their parent directories do not already exist on that disk. + +

Anwendungsfall

+ + Am besten für allgemeine Datenshares geeignet, bei denen die Ordnerstruktur nicht entscheidend ist, wie Downloads oder gemischte Medienbibliotheken. Bietet maximale Flexibilität bei der Dateiablage und Festplattennutzung. +
+ + +

Verhalten

+ + Unraid erstellt nur untergeordnete erste Ordnerebenen auf einer Festplatte, wenn sie noch nicht vorhanden sind. Für tiefere Ordner werden neue Dateien und Ordner auf der Festplatte platziert, auf der das übergeordnete Verzeichnis existiert. + +

Anwendungsfall

+ + Ideal für Medienbibliotheken (z. B. Filme/Titel), bei denen alle Dateien für einen bestimmten Unterordner (wie ein Film oder eine TV-Serie) zusammen auf derselben Festplatte bleiben sollen. +
+ + +

Verhalten

+ + Sie geben an, wie viele Verzeichnisebenen (N) Unraid automatisch verwaltet. Für Ordner auf oder über Ebene N kann Unraid diese bei Bedarf erstellen. Für tiefere Ebenen werden neue Dateien auf der Festplatte platziert, auf der das übergeordnete Verzeichnis vorhanden ist. + +

Anwendungsfall

+ + Nützlich für komplexe Ordnerstrukturen, wie verschachtelte Projektverzeichnisse, bei denen verwandte Inhalte über die oberste Ebene hinweg gruppiert bleiben sollen. +
+ + +

Verhalten

+ + Unraid legt neue Dateien oder Ordner nur auf Festplatten ab, auf denen das übergeordnete Verzeichnis bereits existiert. Es werden keine neuen Verzeichnisse automatisch erstellt. + +

Anwendungsfall

+ + Am besten für fortgeschrittene Benutzer, die vollständige manuelle Kontrolle über die Dateianordnung wünschen oder für Archivdaten, bei denen die Ordnerstruktur fest bleiben muss. +
+
+ +:::important +Wenn es Konflikte zwischen **Mindestfreier Speicherplatz**, **Ebenenaufteilung** und **%%Zuweisungsmethode|Zuweisungsmethode%%** gibt, erhält die Einstellung **Ebenenaufteilung** Priorität. Dies kann zu "Kein Speicherplatz mehr"-Fehlern führen, auch wenn auf anderen Laufwerken noch Speicher verfügbar ist. +::: + +--- + +### Eingeschlossene oder ausgeschlossene Laufwerke + +Diese Einstellungen helfen Ihnen zu verwalten, welche Laufwerke Dateien für Ihre Freigabe halten können. Sie können entweder bestimmte Festplatten einbeziehen oder bestimmte ausschließen – nur nicht beides gleichzeitig tun! Wenn Sie keine spezifischen Festplatten auswählen, werden alle Laufwerke verwendet, die in ***Einstellungen → Globale Freigabeeinstellungen*** erlaubt sind. + +Unraid first checks any included disks, then looks at excluded disks to determine where to store a file. After that, it uses the %%split level|split-level%% and %%allocation method|allocation-method%% to select an appropriate disk. + +
+ ![Logik der Laufwerksauswahl](/img/diskselectionlogic.png) +
+ +:::important +The settings for %%included and excluded disks|included-or-excluded-disks%% only affect where new files can be saved. Any existing files in folders that match your share name will still be accessible for reading, even if they’re on a different disk. +::: + + + +

Verhalten

+ + Unraid berücksichtigt nur die aufgeführten Festplatten bei der Entscheidung, wo neue Dateien für die Freigabe platziert werden sollen. Alle anderen Festplatten werden für neue Schreibvorgänge ignoriert, aber auf anderen Festplatten bereits vorhandene Dateien bleiben weiterhin lesbar. + +

Anwendungsfall

+ + Verwenden Sie diese Einstellung, wenn Sie eine Freigabe auf bestimmte Festplatten beschränken möchten, z. B. um wichtige Dokumente auf neueren oder größeren Laufwerken zu speichern, oder um eine Mediathek aus Leistungs- oder Organisationsgründen auf bestimmte Festplatten zu isolieren. +
+ + +

Verhalten

+ + Unraid verwendet alle berechtigten Festplatten mit Ausnahme der hier aufgeführten, wenn es darum geht, neue Dateien für die Freigabe zu platzieren. Wie bei eingeschlossenen Festplatten bleiben auf ausgeschlossenen Festplatten bereits vorhandene Dateien für das Lesen weiterhin zugänglich. + +

Anwendungsfall

+ + Verwenden Sie diese Einstellung, um eine Freigabe davon abzuhalten, bestimmte Festplatten zu nutzen, z. B. ältere Laufwerke, langsamere Festplatten oder Festplatten, die für andere Datentypen reserviert sind, auszuschließen. +
+
+ +--- + +### Standardfreigaben + +Wenn Sie Unraid mit **Docker** oder **Virtuellen Maschinen (VMs)** verwenden, erstellt es automatisch einige Standardfreigaben. + +:::important +Diese Freigaben werden erst erstellt, nachdem Sie die jeweiligen Dienste (Docker oder VM-Manager) gestartet haben. Wenn Sie diese Freigaben nicht sehen, stellen Sie sicher, dass Docker und/oder der VM-Manager aktiviert und ausgeführt sind. +::: + +Sie müssen diese Freigaben nicht verwenden, wenn Sie nicht möchten, und Sie können sie entfernen, wenn Sie es bevorzugen, aber wir empfehlen normalerweise, sie zur Bequemlichkeit zu behalten. Diese Freigaben helfen, die Dinge zu organisieren und machen es einfacher, Unterstützung zu erhalten, wenn Probleme auftreten. + +Hier ist eine kurze Übersicht darüber, wofür jede Standardfreigabe ist: + +- `appdata`: Hier werden alle Arbeitsdateien für Ihre Docker-Container gespeichert. Normalerweise hat jeder Docker-Container seinen eigenen Ordner hier. +- `system`: Diese Freigabe enthält die wesentlichen Dateien für Ihre Docker-Apps und die XML-Vorlagen für Ihre VMs. +- `Domains`: Diese Freigabe ist für die Speicherung von virtuellen Festplattenbildern (vdisk) vorgesehen, die Ihre VMs verwenden. +- `isos`: Hier können Sie CD-ISO-Images speichern, die Sie mit Ihren VMs verwenden möchten. + +:::important +Es ist am besten, die Berechtigungen für die meisten dieser Standardfreigaben nicht zu ändern, da dies zu Problemen mit der Funktionsweise von Docker-Containern und VMs führen könnte. Die einzige Freigabe, bei der das Ändern der Berechtigungen empfohlen wird, ist die `isos`-Freigabe, da diese über das Netzwerk zugänglich ist, um neue ISO-Dateien für virtuelle Maschinen hinzuzufügen. +::: + +--- + +## Laufwerksfreigaben + +Disk shares are simply individual drives or %%pools|cache-pool%% of drives within your Unraid system that can be accessed over the network. By default, these shares are turned off, but you can easily enable them in the ***Settings → Global Share Settings*** section. + +Um die Sicherheit zu gewährleisten, stellen Sie sicher, dass die [Benutzerzugriffsberechtigungen](../../system-administration/secure-your-server/user-management.mdx) für diese Freigaben angemessen gesetzt sind. Dies ist besonders wichtig, wenn Sie mehrere Benutzer haben, die auf Ihr Netzwerk zugreifen. + +Um Laufwerksfreigaben zu aktivieren: + +1. Gehen Sie zu **Einstellungen**. +2. Klicken Sie auf **Globale Freigabeeinstellungen**. +3. Aktivieren Sie Laufwerksfreigaben, um sie in Ihrem Netzwerk sichtbar zu machen. + +Once you enable them, you'll notice disk shares in the Unraid GUI under a section labeled **Disk Shares** in the **Shares** tab. Each drive in your %%array|array%% can be accessed like this: + +- **Einzelne Laufwerke:** Diese erscheinen als `/mnt/diskX`, wobei X die Laufwerksnummer ist (z.B. `disk1`, `disk2` usw.). +- **Pools of drives:** If you have multiple drives grouped together, they will show up as `/mnt/pool-name`. The most common %%pools|cache-pool%% is called `cache`, but you can name your %%pools|cache-pool%% however you like. + +:::important +Das Unraid-Flash-Gerät, das Ihre Unraid-Einstellungen speichert, wird nicht als Disk-Share behandelt. Wenn Sie möchten, dass es über das Netzwerk zugänglich ist, können Sie es als "Flash"-Freigabe einrichten. Dieses Gerät ist unter `/boot` in Linux eingehängt. + +Aus Sicherheitsgründen ist es am besten, Ihre Freigaben im *Privat*-Modus zu halten und nur vertrauenswürdigen Benutzern Zugriff zu gewähren. +::: + +### Leitlinien für Laufwerksfreigaben + +:::danger[Important Erinnerung] +**Niemals Dateien direkt zwischen einem Nutzer-Share und einem Datenträger-Share kopieren**, wenn ihre Ordnernamen gleich sind. Dies könnte dazu führen, dass Dateien beschädigt oder gelöscht werden, was zu einem dauerhaften Datenverlust führen kann. +::: + +**Benutzerfreigaben** und **Laufwerksfreigaben** sehen in der Oberfläche möglicherweise unterschiedlich aus, können jedoch auf dieselben Dateien auf der Festplatte verweisen. Linux-Befehle wie `cp` oder `rsync` können nicht immer den Unterschied feststellen, wodurch versehentlich Dateien überschrieben oder gelöscht werden können. + +**Tipps für sicheres Kopieren** + +1. **Bleiben Sie bei einer Art von Freigabe:** + - Only copy files between either %%user shares|user-share%% OR disk shares, not both at the same time. + - *Beispiel:* Um eine Datei von einer Benutzerfreigabe zu einer anderen zu kopieren: `cp /mnt/user/share1/file /mnt/user/share2/file` + +2. **Externe Laufwerke sicher verwenden:** + - Schließen Sie externe Laufwerke mit dem **[Unassigned Devices Plugin](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon)** an, um Probleme zu vermeiden. + - Copy files from `/mnt/disks/` instead of from the main %%array|array%% or %%cache|cache%% paths. + +3. **Überprüfen Sie Ihre Kopien:** Beim Verschieben von Dateien lokal können Sie `rsync -c` verwenden, um zu überprüfen, ob die Dateien korrekt kopiert wurden. + +4. **Don’t mix share types:** Avoid using paths that mix %%user shares|user-share%% and disk shares, such as `/mnt/user/share/` with `/mnt/disk1/share/` in the same command. + +--- + +## Dateien von einer Netzwerkfreigabe übertragen + +Es gibt mehrere Tools, mit denen Sie Dateien von einer Windows- oder Linux-Freigabe auf Ihren Unraid-Server kopieren können. Um die Dinge einfach und zuverlässig zu halten, beginnen Sie mit dem integrierten Unraid-Dateiverwaltungstool, bevor Sie sich für Drittanbieteroptionen entscheiden. + +### Verwendung von Midnight Commander (integriert) + +Unraid enthält **Midnight Commander** (`mc`), einen textbasierten Dateimanager mit zwei Fenstern. Sie können darauf über das [Web-Terminal](../../system-administration/advanced-tools/command-line-interface.mdx) zugreifen. + +1. **Öffnen Sie das Web-Terminal:** Diese Option finden Sie im Menü oben rechts der Unraid %%WebGUI|web-gui%%. +2. **Midnight Commander starten:** + + ```bash + mc + ``` + + Diese Benutzeroberfläche bietet Navigation per Drag-and-Drop zwischen lokalen Freigaben und eingebundenen Netzwerkpfaden. +3. **Eine Netzwerkfreigabe einbinden** (falls noch nicht geschehen): + + ```bash + mkdir /work + mount -t cifs //workstation/share /work -o username=youruser,password=yourpassword,iocharset=utf8 + ``` + + - Ersetzen Sie `workstation`, `share` und `youruser` durch die entsprechenden Werte. + - Die Option `iocharset=utf8` hilft, internationale Dateinamen beizubehalten. +4. **Verwenden Sie die MC-Fenster** um Dateien zwischen `/work` (die Netzwerkfreigabe) und jeder `/mnt/user/` oder `/mnt/diskX` Freigabe zu übertragen. +5. **Danach aufräumen:** + + ```bash + umount /work + rmdir /work + ``` + +Midnight Commander läuft vollständig innerhalb des integrierten Systems, erfordert keine zusätzliche Installation. Es ist für die meisten Übertragungsbedürfnisse geeignet, einschließlich solcher mit Unicode-Dateinamen, und bewahrt Dateiattribute, wenn sowohl Quelle als auch Ziel dies unterstützen. + +### Verwendung von Krusader + +Wenn Sie eine grafische Benutzeroberfläche bevorzugen, können Sie Docker-Container wie [Krusader](https://unraid.net/community/apps?q=krusader#r:~:text=batch%20renaming%2C%20etc.-,Krusader,-Productivity%2C%20Tools) als Drittanbieter-Lösung verwenden. + +1. **Krusader installieren:** + - Navigieren Sie zur **Apps**-Registerkarte (Community Applications). + - Suchen und installieren Sie den **Krusader** Docker-Container. +2. **Krusader starten:** Starten Sie den Container und greifen Sie von der **Docker**-Registerkarte auf seine WebUI zu. +3. **Connect to remote shares** within Krusader, and use drag-and-drop or copy-paste to transfer files between the network share and your Unraid %%array|array%%. + +:::info +Andere beliebte Dateimanager-Container umfassen [**Double Commander**](https://unraid.net/community/apps?q=double+commander#r:~:text=of%201%20App-,doublecommander,-Tools%20/%20Utilities%2C) und [**CloudCommander**](https://unraid.net/community/apps?q=cloudcommander#r:~:text=of%201%20App-,CloudCommander,-Tools%20/%20Utilities%2C), die beide über Community Applications verfügbar sind. +::: + +### Kommandozeilen-Methoden + +Für fortgeschrittene Benutzer oder solche, die Automatisierung nutzen, können Sie auch Kommandozeilen-Übertragungsmethoden verwenden. + +
+ Klicken, um die Anweisungen zur Kommandozeile zu erweitern + + 1. **Öffnen Sie das Terminal** (Web Terminal oder %%SSH|ssh%% als `root`). + + 2. **Eine Netzwerkfreigabe erstellen und einbinden:** + + ```bash + mkdir /work + mount -t cifs //workstation/share /work -o username=youruser,password=yourpassword,iocharset=utf8 + ``` + + 3. **Dateien kopieren:** + - Sie können `cp` verwenden: + + ```bash + cp -r /work/* /mnt/disk1 + ``` + + - Oder verwenden Sie `rsync` für detaillierten Fortschritt: + + ```bash + rsync -av --progress /work/ /mnt/disk1/ + ``` + + 4. **Die temporären Verzeichnisse aushängen und löschen:** + + ```bash + umount /work + rmdir /work + ``` +
+ +:::caution +Beim Übertragen von Dateien mit speziellen oder internationalen Zeichen mounten Sie die Freigabe immer mit der Option `iocharset=utf8`. Andernfalls können falsche Dateinamen oder unlesbare Dateien auf anderen Plattformen resultieren. + +Wenn Sie auch Dateien als `root` über das Terminal kopieren, können sie restriktive Berechtigungen haben. Wenn dies der Fall ist, verwenden Sie das **Neuer-Berechtigungen-Tool** im **Tools**-Menü im WebGUI oder die **Docker Safe New Perms**, wenn Sie es mit Docker-beteiligten Freigaben zu tun haben, um Berechtigungen zurückzusetzen und sicherzustellen, dass alle Benutzer Netzwerkzugang haben. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json new file mode 100644 index 0000000000..0fb4ca363c --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Docker-Container ausführen", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx new file mode 100644 index 0000000000..46fdd446cb --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx @@ -0,0 +1,144 @@ +--- +sidebar_position: 2 +sidebar_label: Community-Anwendungen +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CommunityAppsInstalling from './partials/community-apps-installing.mdx'; +import CommunityAppsRemoving from './partials/community-apps-removing.mdx'; +import CommunityAppsReinstalling from './partials/community-apps-reinstalling.mdx'; + +# Community-Anwendungen + +Community-Anwendungen bieten einen kuratierten Katalog von über 2.000 kostenlosen Docker-Containern und Plugins, die von der Unraid-Community gewartet werden. Jeder Container oder jedes Plugin ermöglicht es Ihrem Server, neue Aufgaben zu übernehmen, wie z. B. den Betrieb eines Medienservers, eines dynamischen DNS-Clients oder einer Backup-Lösung. + +- **Docker-Container** sind leichte Pakete, die alles enthalten, was zum Ausführen einer Anwendung erforderlich ist, und sie von Ihrem %%array|array%% und %%cache pool|cache-pool%% isoliert halten. Erfahren Sie mehr über [Array-Konfiguration](../manage-storage/array-configuration.mdx) und [Cache-Pools](../manage-storage/cache-pools.mdx). +- **Plugins** verbessern das Unraid-Betriebssystem selbst. Für weitere Informationen über Plugins besuchen Sie bitte die Seite [Plugins](../customize-your-experience/plugins.mdx). + +:::caution +Lime Technology liefert oder unterstützt Community-Anwendungen nicht direkt. Das Community Applications-Team führt eine grundlegende Prüfung und Moderation durch, es ist jedoch wichtig, die Dokumentation und Support-Ressourcen vor der Installation jeder Anwendung zu überprüfen. +::: + +## Wie Community-Anwendungen funktioniert + +Das Plugin für Community-Anwendungen fügt der Unraid %%WebGUI|web-gui%% einen **Apps**-Tab hinzu, der eine app-store-ähnliche Oberfläche bietet. Sie können Anwendungen nach Kategorie oder Schlüsselwort durchsuchen, suchen und filtern. Jede Liste gibt klar an, ob es sich um einen Docker-Container oder ein Plugin handelt. + +Einträge enthalten Bezeichnungen wie: + +- **Beta:** Die Anwendung befindet sich in aktiver Entwicklung und kann Fehler enthalten. +- **Installiert:** Die Anwendung ist derzeit auf Ihrem Server installiert. +- **Aktualisiert:** Eine neuere Version ist verfügbar. +- **Monatliches CA-Spotlight:** Von dem Moderationsteam aufgrund von Qualität oder Beliebtheit hervorgehoben. + +Ein Klick auf eine App bietet weitere Details, Support-Links und Installationsoptionen. + +--- + +## Installation des Plugins + +Um das Community-Anwendungs-Plugin zu installieren: + +1. Öffnen Sie die %%WebGUI|web-gui%% und gehen Sie zum **Plugins**-Tab. +2. Klicken Sie auf **Installieren**. + +
+ ![Community-Anwendungen installieren](/img/ca_installation.png) +
+ +3. Sobald die Installation abgeschlossen ist, aktualisieren Sie die Seite. Der Bildschirm öffnet automatisch den **Apps**-Tab und führt Sie in Community-Anwendungen ein. + +:::tip +Bevor Sie installieren, sollten Sie in Erwägung ziehen, Ihr Flash-Laufwerk zu sichern, um Ihre Konfiguration zu schützen. Siehe [Sichern Sie Ihr Flash-Laufwerk](../../system-administration/secure-your-server/secure-your-flash-drive.mdx) für Sicherungsanweisungen. +::: + +--- + +## Verwaltung von Anwendungen + + + + + + + + + + + + + + + +## Support für Anwendungen + +Wenn Sie Docker-Container und Plugins verwenden, werden die meisten mit speziellen Support-Ressourcen geliefert, die Ihnen helfen. Es gibt mehrere einfache Möglichkeiten, auf diese Support-Optionen zuzugreifen: + +- **Apps-Tab**: Klicken Sie auf den **Apps**-Tab und filtern Sie nach **Installierte Apps**. Suchen Sie dort die App und wählen Sie **Support**. + +- **Dashboard- oder Docker-Tabs**: Gehen Sie zu den **Dashboard**- oder **Docker**-Tabs, klicken Sie auf das Symbol des Containers, den Sie verwenden, und wählen Sie **Support**. + +- **Plugins-Tab**: Im **Plugins**-Tab hat jedes Plugin in seiner Zusammenfassung einen **Support-Thread**-Link für einen schnellen Zugriff. + +:::tip[Support preferences] +Bei der Nutzung der Support-Optionen suchen Sie nach diesen Dropdown-Optionen: + +- **Discord**: Wenn verfügbar, ist Discord in der Regel der bevorzugte Support-Kanal der Betreuer gegenüber dem Forum. +- **Projekt**: Fragen zur Anwendung selbst werden am besten über die offiziellen Kanäle des Projekts beantwortet. +::: + +Diese Ressourcen verbinden Sie mit Community-Foren und Entwicklerdiskussionen, wo Sie Hilfe finden, Probleme beheben und auf dem Laufenden bleiben können. + +--- + +## Aktualisierungen von Anwendungen (Aktionscenter) + +Das **Action Center** befindet sich im **Apps**-Tab in der %%WebGUI|web-gui%% und dient als zentrales Hub für die Verwaltung des Anwendungsstatus. Es bietet Informationen über: + +- **Updates verfügbar**: Anwendungen, die neuere Versionen zur Installation bereit haben +- **Veraltete Anwendungen**: Anwendungen, die nicht mehr gepflegt oder empfohlen werden +- **Inkompatible Anwendungen**: Anwendungen, die möglicherweise nicht mit Ihrer aktuellen Unraid-Version funktionieren +- **Gesperrte Anwendungen**: Anwendungen, die aus Sicherheits- oder Kompatibilitätsgründen aus dem Katalog entfernt wurden + +Wenn Sie auf das Action Center zugreifen, sehen Sie Warnungen für alle Anwendungen, die Aufmerksamkeit erfordern. Um eine Anwendung zu aktualisieren, klicken Sie auf Aktionen für die App, die aktualisiert werden muss, und wählen Sie dann **Aktualisieren**, um das Aktualisierungsskript auszuführen. Regelmäßige Updates sind wichtig, um die Sicherheit, Stabilität und Kompatibilität Ihrer Unraid-Installation zu gewährleisten. Weitere Informationen finden Sie unter [Unraid aktualisieren](../../system-administration/maintain-and-update/upgrading-unraid.mdx). + +--- + +## Eigene Anwendungen beitragen + +Das **Community Applications**-Ökosystem lebt von Beiträgen der Unraid-Community. Ob Sie Anwendungen oder Plugins entwickeln, Ihre Arbeit kann anderen helfen, ihre Unraid-Server zu verbessern. Nachfolgend finden Sie Richtlinien zum Einreichen Ihrer Kreationen, basierend auf den [offiziellen Richtlinien](https://forums.unraid.net/topic/87144-ca-application-policies-notes/). + +### Einreichungsvoraussetzungen + +Um Qualität und Wartungsfähigkeit zu gewährleisten, müssen alle Einreichungen: + +- Einen dedizierten Support-Thread im [Unraid-Forum](https://forums.unraid.net/) enthalten. +- Klare Dokumentation für Installation, Konfiguration und Fehlerbehebung bereitstellen. +- Open-Source-Lizenzen verwenden, es sei denn, die Anwendung erfordert proprietäre Komponenten. +- Konflikte mit der Kernfunktionen von Unraid oder bestehenden Community-Anwendungen vermeiden. + +Beiträge werden vom Moderationsteam der Community-Anwendungen überprüft, das eine grundlegende Überprüfung auf Sicherheit, Funktionalität und Einhaltung der Unraid-Designprinzipien durchführt. + +### Wartungserwartungen + +Entwickler, die Anwendungen in Community Applications veröffentlichen, werden erwartet, dass sie ihre Projekte pflegen, um die Kompatibilität und Zuverlässigkeit für die Unraid-Community sicherzustellen. Dieser Abschnitt umreißt die laufenden Verantwortlichkeiten, die zur Aufrechterhaltung der Qualität der verfügbaren Anwendungen beitragen. + +Einmal veröffentlicht, werden Entwickler erwartet: + +- Anwendungen regelmäßig zu aktualisieren, um die Kompatibilität mit neuen Unraid-Releases zu gewährleisten. +- Support-Anfragen in ihren Forum-Threads zu beantworten. +- Beta- oder experimentelle Versionen deutlich zu kennzeichnen. +- Benachrichtigen Sie das Moderationsteam, wenn Sie die Unterstützung für eine Anwendung einstellen. + +:::note +Das Moderationsteam behält sich das Recht vor, Anwendungen zu entfernen, die mit aktuellen Unraid-Versionen unvereinbar werden oder keinen laufenden Support haben. Bei zeitkritischen Sicherheitsupdates können sie vorübergehend die Wartung verlassener Projekte übernehmen. +::: + +### Veröffentlichungsworkflow + +Wenn Sie ein Entwickler sind, der daran interessiert ist, zur Unraid-Community beizutragen, indem Sie Ihre Anwendung veröffentlichen, stellt dieser Workflow sicher, dass die Qualitätskontrolle gewährleistet ist und den Nutzern zuverlässige, gut dokumentierte Anwendungen zur Verfügung gestellt werden. + +1. Bereiten Sie die Vorlagendateien und die Dokumentation Ihrer Anwendung vor. +2. Erstellen Sie einen Support-Thread im [Unraid-Forum](https://forums.unraid.net/). +3. Senden Sie Ihre Bewerbung über das [Community Applications-Einreichungsformular](https://form.asana.com/?k=qtIUrf5ydiXvXzPI57BiJw\&d=714739274360802). +4. Das Moderationsteam überprüft Einreichungen in der Regel innerhalb von 48 Stunden. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx new file mode 100644 index 0000000000..885553de73 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx @@ -0,0 +1,234 @@ +--- +sidebar_position: 3 +sidebar_label: Verwalten und Anpassen von Containern +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import DockerNetworkType from './partials/managing-and-customizing-containers/network-type.mdx'; +import DockerVolumeMappings from './partials/managing-and-customizing-containers/volume-mappings.mdx'; +import DockerPortMappings from './partials/managing-and-customizing-containers/port-mappings.mdx'; +import DockerEnvironmentVariables from './partials/managing-and-customizing-containers/environment-variables.mdx'; +import DockerCommandStart from './partials/managing-and-customizing-containers/command-start.mdx'; +import DockerCommandStop from './partials/managing-and-customizing-containers/command-stop.mdx'; +import DockerCommandRestart from './partials/managing-and-customizing-containers/command-restart.mdx'; +import DockerCommandStatus from './partials/managing-and-customizing-containers/command-status.mdx'; +import DockerCommandLogs from './partials/managing-and-customizing-containers/command-logs.mdx'; + +# Verwalten und Anpassen von Containern + +:::caution\[Disclaimer] + +Diese Seite wurde erstellt, um Benutzern aller Fähigkeitsstufen zu helfen, Docker-Container auf Unraid OS optimal zu nutzen. Die Tipps und Best Practices stammen vom Unraid-Team, das sicherstellt, dass sie auf die Bedürfnisse der meisten Benutzer zugeschnitten sind. Bedenken Sie jedoch, dass sich Docker ständig weiterentwickelt. Daher ist es immer eine gute Idee, die [offizielle Docker-Dokumentation](https://docs.docker.com/) zu konsultieren, um die neuesten Funktionen, erweiterte Konfigurationen oder Problemlösungen zu finden, die über die Abdeckung von Unraid hinausgehen. + +::: + +Bevor Sie einen Docker-Container in Unraid anpassen, ist es hilfreich, die grundlegenden Konfigurationsoptionen zu verstehen. Jedes [Containervorlage](./community-applications.mdx) bietet eine benutzerfreundliche Oberfläche zur Einrichtung von Netzwerk, Speicher und Umgebungsvariablen, sodass Sie das Verhalten des Containers Ihren Bedürfnissen anpassen können, ohne komplexe Befehlszeilenwerkzeuge zu verwenden. + + + + + + + + + + + + + + + + + + + +## Container erstellen und starten + +Sobald Sie das Netzwerk, die Volumen-Zuordnungen, die Port-Zuordnungen und die Umgebungsvariablen Ihres Containers konfiguriert haben, sind Sie bereit, Ihren Docker-Container zu erstellen und zu starten. Dieser Abschnitt führt Sie durch den Erstellungsprozess, erklärt, wie Sie die Startreihenfolge und Abhängigkeiten verwalten und gibt Tipps für die erweiterte Startanpassung. + +### Container erstellen + +Nachdem Sie Ihre Konfigurationseinstellungen in der Container-Vorlage überprüft haben: + +1. Klicken Sie auf **Erstellen**, um den Download zu starten und den Container einzurichten. + - Vermeiden Sie es, Ihr Browserfenster zu schließen oder die Seite zu wechseln, bis der Prozess abgeschlossen ist. + - Der erste Download eines neuen Repositories kann länger dauern als nachfolgende Downloads. +2. Sobald der Prozess abgeschlossen ist, klicken Sie auf **Fertig**, um zur Docker-Seite zurückzukehren, wo Sie weitere Container verwalten oder hinzufügen können. + +### Startreihenfolge planen + +Einige Container sind von anderen abhängig, um korrekt zu funktionieren. Beispielsweise könnte eine Anwendung zuerst einen Datenbankcontainer benötigen, oder ein Dienst könnte einen [%%VPN|vpn-tunnel%%-Container](../../system-administration/secure-your-server/tailscale.mdx) aktiviert haben müssen, bevor er startet. + +:::important[Plan Ihren Start] +- Identifizieren Sie Container, die grundlegende Dienste bieten (wie Datenbanken, %%VPNs|vpn-tunnel%% oder Speichergateways). +- Stellen Sie sicher, dass abhängige Container erst gestartet werden, nachdem ihre Voraussetzungen laufen und bereit sind. +- Überprüfen Sie die Dokumentation für jeden Container, um spezifische Startanforderungen zu verstehen. +::: + +--- + +## Erweiterter Container-Start + +Unraid bietet Ihnen flexible Kontrolle darüber, welche Container automatisch und in welcher Reihenfolge starten. Dies ist besonders nützlich, wenn Sie Container haben, die von anderen abhängig sind (wie ein Datenbank- oder %%VPN|vpn-tunnel%%-Dienst). + +Um sicherzustellen, dass ein Container automatisch startet, wenn das %%array|array%% startet: + +1. Gehen Sie auf der %%WebGUI|web-gui%%-Karte zur **Docker**-Registerkarte. +2. Schalten Sie den **Automatisch-Starten**-Schalter auf **EIN** für jeden Container, den Sie automatisch starten möchten. + +### Anpassung der Startreihenfolge und Verzögerungen + +Standardmäßig startet Unraid alle Autostart-Container so schnell wie möglich in der Reihenfolge, in der sie auf der Docker-Registerkarte erscheinen. Sie können diese Reihenfolge anpassen und Wartezeiten zwischen den Container-Starts hinzufügen: + +1. Auf der **Docker**-Registerkarte entsperren Sie die Container-Liste mit dem Vorhängeschloss-Symbol. +2. Ziehen und ablegen, um die Reihenfolge der Container zu ändern. +3. Wechseln Sie oben rechts mit dem Schalter zur **Erweiterten Ansicht**. +4. Geben Sie in der **AutoStart**-Spalte eine Wartezeit (in Sekunden) in das **Warte**-Feld für alle Container ein, die zusätzliche Zeit benötigen, bevor der nächste startet. + - Benutzen Sie Versuch und Irrtum, um die besten Wartezeiten für Ihr Setup zu bestimmen. + +:::tip +Das Festlegen der korrekten Reihenfolge und Wartezeiten ist besonders wichtig für Container, die von Diensten anderer abhängen (beispielsweise das Starten einer Datenbank vor einer App, die sie verwendet, oder eines %%VPN|vpn-tunnel%% vor abhängigen Apps). +::: + +### Testen Ihrer Startsequenz + +Während Unraid keine spezielle "Test-Startsequenz"-Funktion besitzt, können Sie Ihre Startreihenfolge simulieren und überprüfen: + +1. Aus allen Containern von der **Docker**-Registerkarte stoppen. +2. Starten Sie jeden Container manuell in der geplanten Reihenfolge mit dem **Start**-Knopf. +3. Überwachen Sie die Containerprotokolle und das Anwendungsverhalten, um sicherzustellen, dass die Abhängigkeiten erfüllt sind und die Dienste wie erwartet initialisieren. +4. Passen Sie bei Bedarf die Startreihenfolge oder die Wartezeiten an. + +:::important +Testen Sie Ihre Startsequenz erneut, nachdem Sie Container-Abhängigkeiten geändert oder neue Dienste hinzugefügt haben, besonders wenn Ihr Setup auf einem bestimmten Startzeitpunkt basiert. +::: + +--- + +## Ihre Container verwalten + +Sobald Sie Ihren Docker-Container erstellt und gestartet haben, ist die Verwaltung über die %%WebGUI|web-gui%% einfach. Dieser Leitfaden erläutert die Verwendung des Kontextmenüs, das Verständnis von Container-Gesundheitsindikatoren und den Zugriff auf Volumen-Zuordnungen innerhalb Ihres Containers. + +Um auf das Kontextmenü des Containers zuzugreifen, wechseln Sie zur **Docker**- oder **Dashboard**-Registerkarte und klicken auf das Container-Icon, das Sie verwalten möchten. Dieses Menü bietet einfachen Zugriff auf häufige Aktionen: + +
+ ![Docker-Leitfaden - Steuerung](/img/Dockerguide-controlling.png) +
+ +| Option | Beschreibung | +| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| **WebUI** | Öffnet die Webschnittstelle des Containers in einem neuen Browser-Tab (falls verfügbar). | +| **Konsole** | Öffnet eine Kommandozeilenschnittstelle, um direkt mit dem Container zu interagieren. | +| **Stopp** | Stoppt den laufenden Container. | +| **Pause** | Pausiert den Container und hält vorübergehend alle Prozesse an. | +| **Neustart** | Startet den Container neu und wendet alle Konfigurationsänderungen an. | +| **Protokolle** | Zeigt die Protokollausgabe des Containers zur Fehlerbehebung an. | +| **Bearbeiten** | Ändern Sie die Container-Einstellungen, wie Port- oder Volumen-Zuordnungen. Änderungen werden sofort nach dem Speichern wirksam. | +| **Entfernen** | Löscht den Container. Sie können auswählen, nur den Container zu entfernen oder auch dessen Image zu löschen. | +| **Projektseite** | Öffnet die Projektseite des Containers für Dokumentation und Support. | +| **Support** | Bietet Zugang zu Hilfs- und Unterstützungsressourcen für den Container. | +| **Weitere Infos** | Zeigt zusätzliche Informationen über den Container und seine Konfiguration an. | + +### Gesundheitsindikator + +Es befindet sich ein farbiger Gesundheitsindikator neben dem Symbol jedes Containers: + +- 🟢 **Gesund**: Zeigt an, dass der Container läuft und wie erwartet reagiert. +- 🟡 **Ungesund**: Der Container läuft, hat aber seine Gesundheitsprüfung nicht bestanden. Untersuchen Sie die Protokolle oder Container-Einstellungen für weitere Informationen. +- ⚪ **Keine Gesundheitsprüfung**: Dies bedeutet, dass keine Gesundheitsprüfung für den Container konfiguriert ist. Das ist bei vielen Apps üblich und nicht unbedingt ein Problem. + +:::note +Gesundheitschecks werden vom Container-Author definiert und müssen möglicherweise nicht für alle Images vorhanden sein. +::: + +--- + +## Volume-Mappings innerhalb eines Containers + +Beim Konfigurieren Ihrer Anwendung über ihre Weboberfläche beziehen Sie sich auf den **Container-Pfad**, den Sie während der Konfiguration eingerichtet haben - nicht den Host-Pfad. + +Zum Beispiel, wenn Sie `/mnt/user/media` auf dem Host zu `/unraid_media` im Container zugeordnet haben, sollten Sie in den Einstellungen der Anwendung `/unraid_media` verwenden. + +

Beispielszenarien

+ +Hier sind einige Beispiele für häufige Pfadzuordnungskonfigurationen, die Benutzer häufig benötigen, wenn sie Docker-Container einrichten. Sie zeigen, wie man zwischen dem Host-Dateisystem-Pfad von Unraid und den internen Pfaden des Containers übersetzt, um Anwendungen korrekt zu konfigurieren. + +- **Medienserver:** + Host-Pfad: `/mnt/user/media`\ + Container-Pfad: `/unraid_media` + + Stellen Sie in der App den Speicherort Ihrer Medienbibliothek auf `/unraid_media` ein. + +- **Appdata-Speicher:** + Host-Pfad: `/mnt/user/appdata/myapp`\ + Container-Pfad: `/config` + + Verwenden Sie in der App `/config` für die Konfigurationsspeicherung. + +- **Multiple %%user shares|user-share%%:** + Host path: `/mnt/user/media` → Container path: `/media`\ + Host path: `/mnt/user/data` → Container path: `/data` + + Verweisen Sie in der Anwendung bei Bedarf auf `/media` oder `/data`. + +:::important[Best Praxis] +Verwenden Sie immer den restriktivsten [Zugriffsmodus](../manage-storage/shares.mdx) (nur lesen oder lesen/schreiben), der Ihren Container ordnungsgemäß funktionieren lässt. +::: + +--- + +## Planung von Start und Stopp + +Unraid unterstützt nativ keine zeitgesteuerten Start- oder Stopp-Aktionen für **Docker-Container**, aber Sie können diesen Prozess ganz einfach mit dem [**User Scripts plugin**](../customize-your-experience/plugins.mdx) automatisieren. Dieses leistungsstarke Tool ermöglicht es Ihnen, benutzerdefinierte Skripte nach einem Zeitplan auszuführen, sodass Sie Ihre Container automatisch steuern können. + +### Benutzerskripte-Plugin + +Das **User Scripts plugin** ermöglicht es Ihnen, benutzerdefinierte Shell-Skripte direkt über die %%WebGUI|web-gui%% zu erstellen, zu verwalten und zu planen. Sie können es für verschiedene Automatisierungsaufgaben verwenden, z. B. zum Starten oder Stoppen von Containern, zum Sichern von Daten oder zum Ausführen von Wartungsroutinen. + +- Installieren Sie das Plugin über die **Apps**-Registerkarte, wenn Sie dies noch nicht getan haben. +- Greifen Sie über ***Einstellungen → Benutzerskripte*** darauf zu, um Ihre Skripte zu erstellen und zu verwalten. + +Um mehr über Plugins zu erfahren, schauen Sie sich [Plugins](../customize-your-experience/plugins.mdx) an. + +### Planung von Containeraktionen + +Um das Starten oder Stoppen Ihrer Container nach einem Zeitplan zu automatisieren: + +1. Installieren Sie das **Benutzer-Skripte Plugin** aus dem **Apps**-Tab. +2. Navigieren Sie zu ***Einstellungen → Benutzer-Skripte***. +3. Erstellen Sie ein neues Skript für jeden einzigartigen Zeitplan. Sie können Befehle für mehrere Container in einem einzigen Skript einschließen, wenn sie denselben Zeitplan teilen. +4. Legen Sie den Zeitplan mit dem Dropdown-Menü fest oder verwenden Sie einen benutzerdefinierten `cron`-Ausdruck für komplexere Zeitoptionen. +5. Klicken Sie auf **Anwenden**, um Ihr Skript zu speichern und zu aktivieren. + +:::tip +Cron-Ausdrücke ermöglichen eine flexible Planung über die integrierten Optionen hinaus. Beispielsweise führt `0 3 * * 1` Ihr Skript jeden Montag um 3:00 Uhr aus. +::: + +### Befehl Beispiele + + + + + + + + + + + + + + + + + + + + + + + +:::tip +Sie finden den Containernamen auf dem Docker-Tab oder indem Sie den `docker run`-Befehl im Konfigurationsbildschirm des Containers anzeigen. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx new file mode 100644 index 0000000000..1cc0503e08 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx @@ -0,0 +1,48 @@ +--- +sidebar_position: 1 +sidebar_label: Übersicht +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Übersicht + +Docker allows you to run Linux applications in isolated environments known as "containers." On Unraid, Docker is the ideal method for deploying and managing a wide variety of applications without concerns about compatibility or system conflicts. This approach transforms your Unraid server into a flexible %%application server|application-server%%, enabling you to run popular apps like **Plex**, **Home Assistant**, and many more directly on your system. + +Wenn Sie mehr über die grundlegende Technologie von Docker erfahren oder eine fortgeschrittene Nutzung erkunden möchten, sehen Sie sich die [offizielle Docker-Dokumentation](https://docs.docker.com/) an. + +## Wie Unraid Docker verwendet + +Unraids Docker-Integration ist so konzipiert, dass sie benutzerfreundlich für jeden ist. Jede Anwendung läuft in ihrem eigenen Container, was sicherstellt, dass Updates oder Änderungen Ihr Unraid-Betriebssystem oder andere Anwendungen nicht beeinflussen. Unraid nutzt einen dedizierten `appdata` Anteil, um die Einstellungen und Arbeitsdateien jedes Containers zu speichern. Dies hält Ihre Anwendungsdaten organisiert und erleichtert Backups und Migrationen. + +
+ **Unter der Haube:** Erweitern Sie, um mehr über die Implementierung von Docker-Containern in Unraid zu erfahren + + Unraid verwendet Docker, um separate Umgebungen zum Ausführen von Linux-basierten Anwendungen zu erstellen. Jeder Docker-Container arbeitet unabhängig vom Unraid-Betriebssystem und anderen Containern, was sowohl die Stabilität als auch die Kompatibilität erhöht. + +

Implementierungsdetails

+ + - **Storage:** All the data and programs for each container are stored in a single %%virtual disk image|virtual-disk-images%% file called `docker.img`. By default, this file is found in the `system` %%user share|user-share%%, which usually utilizes the %%cache pool|cache-pool%% for better speed. + - **File system:** The `docker.img` file uses the %%BTRFS|btrfs%% file system and is mounted internally by Unraid. For more information on file systems, see [File systems](../manage-storage/file-systems.mdx). + - **Konfiguration:** Wenn Sie einen Container einrichten, speichert Unraid Ihre Konfiguration als %%VM XML-Vorlage|vm-xml-templates%% auf dem Flash-Laufwerk. Dies erleichtert die Neuinstallation oder Wiederherstellung von Containern mit Ihren bevorzugten Einstellungen. + - **Vorlagen:** Viele beliebte Container bringen fertig konfigurierte Vorlagen mit, was die Ersteinrichtung vereinfacht. + - **Performance:** Es ist ratsam, `docker.img` auf dem %%cache pool|cache-pool%% zu speichern (falls vorhanden), um die beste Leistung zu erzielen. + - **Einschränkungen:** Unraid unterstützt Docker Compose nicht nativ. Für komplexere Setups sehen Sie sich die [offizielle Docker Compose-Dokumentation](https://docs.docker.com/compose/) an. + + :::tip + Die meisten Benutzer müssen nicht direkt mit der Datei `docker.img` interagieren. Da jedoch ihre Rolle hilfreich sein kann, um Probleme zu beheben oder Lognachrichten besser zu verstehen. + ::: +
+ +## Community-Anwendungen (Plugin) + +Das Community Applications Plugin ist die einfachste und beliebteste Möglichkeit, sowohl Docker-Container als auch Plugins auf Ihrem Unraid-Server zu entdecken, zu installieren und zu verwalten. Es bietet eine App-Store-ähnliche Erfahrung direkt im Unraid %%WebGUI|web-gui%%, wodurch es einfach ist, eine Vielzahl von von der Community gepflegten Anwendungen zu durchsuchen und bereitzustellen. + +Für eine vollständige Anleitung zur Installation und Nutzung des Community-Anwendungen-Plugins, einschließlich erweiterter Funktionen und Problemlösungen, siehe [Community-Anwendungen](./community-applications.mdx). + +:::note[Notes und Unterstützung] +- Die meisten Container in den Community-Anwendungen werden von den breiteren Unraid- und Docker-Communitys gepflegt. +- Bei Fragen zu einem bestimmten Container lesen Sie bitte die Dokumentation oder suchen Sie im Support-Thread im **Apps**-Tab. +- Lime Technology bietet Unterstützung für das Docker-Subsystem selbst, unterstützt jedoch keine einzelnen Community-Container. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx new file mode 100644 index 0000000000..af20cc0968 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx @@ -0,0 +1,17 @@ +Um einen Docker-Container oder ein Plugin zu installieren, klicken Sie einfach auf die Schaltfläche **Installieren** auf der Kachel oder dem Informationsfeld der Anwendung, die sich auf der Registerkarte **Apps** des %%WebGUI|web-gui%% befindet. Dies startet den Installationsvorgang. + +
+
+ ![Anwendung installieren](/img/CA_Tile1.png) +
+ +
+ ![Beispiel für eine Anwendungskachel](/img/CA_Tile3.png) +
+
+ +Lassen Sie das Installationsfenster geöffnet, bis der Prozess vollständig abgeschlossen ist. + +:::tip[Security Hinweis] +Bevor Sie installieren, nehmen Sie sich einen Moment Zeit, um die Beschreibung der Anwendung zu lesen. Überprüfen Sie den Ruf des Entwicklers und stellen Sie sicher, dass das Quell-Repository vertrauenswürdig ist. Es ist am besten, Anwendungen von bekannten Entwicklern oder solchen mit aktiven Support-Threads auszuwählen. Seien Sie immer vorsichtig bei der Gewährung von Zugriff auf Ihre %%array|array%%, %%cache pool|cache-pool%% oder andere sensible Daten. Erfahren Sie mehr über [Sicherheitsgrundlagen](../../../system-administration/secure-your-server/security-fundamentals.mdx). +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx new file mode 100644 index 0000000000..9751d9de9a --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx @@ -0,0 +1,9 @@ +Wenn Sie einen Docker-Container oder ein Plugin neu installieren müssen (zum Beispiel, wenn Ihre `docker.img`-Datei beschädigt ist), vereinfacht "Community Applications" dies für Sie. Alle Anwendungseinstellungen werden als Docker-Template-XML-Dateien in `/boot/config/plugins/dockerMan/templates-user` gespeichert. Weitere Informationen zum Docker Template XML-Schema und benutzerdefinierten Tags finden Sie in der [Docker Template XML Schema-Dokumentation](https://forums.unraid.net/topic/38619-docker-template-xml-schema/) in den Unraid-Foren. + +Um eine Anwendung erneut zu installieren: + +1. Gehen Sie zum **Apps**-Tab in der %%WebGUI|web-gui%%. +2. Wählen Sie den **Vorherige Apps**-Filter. +3. Finden Sie die Anwendung, die Sie erneut installieren möchten, und folgen Sie den Anweisungen. + +Ihre gespeicherten Einstellungen werden automatisch wiederhergestellt, was eine schnelle und einfache Wiederherstellung ermöglicht. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx new file mode 100644 index 0000000000..298eb30028 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx @@ -0,0 +1,4 @@ +Um eine Anwendung zu entfernen: + +1. Verwenden Sie den **Installierte Apps**-Filter im **Apps**-Reiter. Dies zeigt Ihnen alle installierten Docker-Container und Plugins als Kacheln an. +2. Klicken Sie auf **Aktionen** und wählen Sie **Deinstallieren** für die Anwendung, die Sie entfernen möchten. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx new file mode 100644 index 0000000000..2abcddf81a --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx @@ -0,0 +1,7 @@ +Um die Protokolle eines Containers anzuzeigen (hilfreich zur Fehlerbehebung): + +``` +docker logs "container-name" +``` + +Dies zeigt die letzten Protokollausgaben für den angegebenen Container an. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx new file mode 100644 index 0000000000..ea1f36f1e6 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx @@ -0,0 +1,7 @@ +Um einen Container neu zu starten (nützlich nach Konfigurationsänderungen oder zur Fehlerbehebung): + +``` +docker restart "container-name" +``` + +Ersetzen Sie `"container-name"` durch den tatsächlichen Namen, wie er auf dem Docker-Tab angezeigt wird. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx new file mode 100644 index 0000000000..c480b75916 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx @@ -0,0 +1,7 @@ +Um einen Container zu starten, verwenden Sie den Befehl: + +``` +docker start "container-name" +``` + +Ersetzen Sie `"container-name"` durch den tatsächlichen Namen, wie er auf dem Docker-Tab angezeigt wird. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx new file mode 100644 index 0000000000..58431332df --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx @@ -0,0 +1,7 @@ +Um zu überprüfen, ob ein Container läuft: + +``` +docker ps --filter "name=container-name" +``` + +Dies wird den Container auflisten, wenn er gerade läuft. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx new file mode 100644 index 0000000000..32049c3580 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx @@ -0,0 +1,7 @@ +Um einen Container zu stoppen, verwenden Sie den Befehl: + +``` +docker stop "container-name" +``` + +Ersetzen Sie `"container-name"` durch den tatsächlichen Namen, wie er auf dem Docker-Tab angezeigt wird. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx new file mode 100644 index 0000000000..e6bdec4487 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx @@ -0,0 +1,25 @@ +Umgebungsvariablen können das Verhalten Ihres Docker-Containers zur Laufzeit anpassen. Sie ermöglichen es Ihnen, Schlüssel-Wert-Paare zu übergeben, die Ihre containerisierte Anwendung lesen und verwenden kann. + +

Häufige Anwendungsfälle für Umgebungsvariablen

+ +- Die Zeitzone festlegen +- Benutzer- und Gruppen-IDs konfigurieren +- Sprachpräferenzen angeben +- Anwendungsspezifische Einstellungen wie API-Schlüssel oder Feature-Flags anpassen + +

Umgebungsvariablen im %%WebGUI|web-gui%% verwalten

+ +- Sie können Umgebungsvariablen im Konfigurationsbildschirm des Containers über das %%WebGUI|web-gui%% hinzufügen, bearbeiten oder entfernen. +- Viele Container-Vorlagen sind bereits mit allgemeinen Umgebungsvariablen versehen, aber Sie können jederzeit weitere hinzufügen, wenn nötig. +- Stellen Sie sicher, dass Sie die spezifische Dokumentation der Anwendung überprüfen, um zu wissen, welche Umgebungsvariablen verfügbar sind und welche Werte gültig sind. + +:::info[Examples von Umgebungsvariablen] +- `TZ=America/New_York`: Dies setzt die Zeitzone des Containers. +- `PUID=99` und `PGID=100`: Diese setzen die Benutzer- und Gruppen-IDs für Dateiberechtigungen. +- `UMASK=022`: Dies steuert die standardmäßigen Dateiberechtigungen für erstellte Dateien. +- `API_KEY=your_api_key_here`: Dies könnte von einer Anwendung zur Authentifizierung mit einem externen Dienst verwendet werden. +::: + +:::tip +Verwenden Sie Umgebungsvariablen, um das Hardcoding von sensiblen oder umgebungsspezifischen Informationen in Ihren Containerabbildern zu vermeiden. Diese Praxis erhöht die Portabilität und Sicherheit Ihrer Container. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx new file mode 100644 index 0000000000..e46d22b3f5 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx @@ -0,0 +1,17 @@ +Unraid unterstützt mehrere Docker-Netzwerkmodi. Der gewählte Netzwerktyp bestimmt, wie Ihr Container mit anderen Geräten und Containern kommuniziert: + +- **Bridge (Standard):** Der Container wird in ein internes Docker-Netzwerk eingebunden. Nur explizit zugewiesene Ports sind von Ihrem Unraid-Server oder LAN aus zugänglich. Dies ist die sicherste und gängigste Option für die meisten Anwendungen. + +- **Host:** Der Container teilt den Netzwerkstapel des Unraid-Servers. Es können beliebige verfügbare Ports verwendet werden, aber Sie müssen sicherstellen, dass keine Portkonflikte mit anderen Diensten entstehen. Verwenden Sie diesen Modus nur, wenn die Anwendung direkten Netzwerkzugriff benötigt. + +- **None:** Der Container hat keinen Netzwerkzugang. \*\*Verwenden Sie dies für isolierte Arbeitslasten, die keine Netzwerkverbindung erfordern. + +- **Benutzerdefiniert (macvlan/ipvlan):** Der Container erhält eine eigene IP-Adresse in Ihrem LAN und erscheint als separates Gerät. Dies ist nützlich für fortgeschrittene Szenarien, kann jedoch zusätzliche Konfigurationen in Ihrer Netzwerkumgebung erfordern. + +:::tip +Der in der Container-Vorlage angegebene Standardnetzwerktyp wird für die meisten Benutzer empfohlen. +::: + +:::caution[Wi-Fi und Docker Netzwerkbeschränkungen] +Docker hat eine Einschränkung, die es verhindert, dass es an zwei Netzwerken teilnehmen kann, die dasselbe Subnetz teilen. Wenn Sie zwischen einer kabelgebundenen und einer drahtlosen Verbindung wechseln, müssen Sie Docker neu starten und alle vorhandenen Container neu konfigurieren, um das neue Interface zu nutzen. Diese [Netzwerkkonfiguration](/unraid-os/system-administration/secure-your-server/securing-your-connection) erfordert eine Neukonfiguration der Container. +::: diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx new file mode 100644 index 0000000000..ada5247ed8 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx @@ -0,0 +1,11 @@ +Port-Zuordnungen bestimmen, wie der Netzwerkverkehr von Ihrem Unraid-Server zum Container geleitet wird. + +- **Bridge-Netzwerk:** Sie können interne Container-Ports auf unterschiedliche Host-Ports abbilden. Wenn beispielsweise drei Container intern Port 8000 verwenden, können Sie sie auf dem Host auf 8000, 8001 und 8002 abbilden. + +- **Host-Netzwerk:** Der Container kann jeden verfügbaren Port verwenden. Vermeiden Sie es, mehrere Container mit dem gleichen Port auszuführen, um Konflikte zu verhindern. + +:::important +Ändern Sie nur den Host-Portwert. Ändern Sie den Container-Port nur, wenn Sie wissen, dass die Anwendung ihn unterstützt. +::: + +Die meisten Vorlagen bieten sinnvolle Standardwerte, aber Sie können Port-Zuordnungen hinzufügen oder anpassen. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx new file mode 100644 index 0000000000..4d6a7f9ac7 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx @@ -0,0 +1,17 @@ +Volumenabbildungen bestimmen, wie Ihr Container auf Dateien auf Ihrem Unraid-Server zugreift. Jede Abbildung verknüpft einen Ordner innerhalb des Containers (Containerpfad) mit einem Ordner auf Ihrem Unraid-Server (Host-Pfad). + +- **Container-Pfad:** Das Verzeichnis im Container (z.B. `/config` oder `/unraid_media`). +- **Host-Pfad:** Das Verzeichnis auf Ihrem Unraid-Server (z.B. `/mnt/user/appdata/myapp`). +- **Zugriffsmodus:** Steuert Berechtigungen - Nur-Lesezugriff oder Lese-/Schreibzugriff. Verwenden Sie den restriktivsten Modus, der die Funktion des Containers noch ermöglicht. + +:::tip[Best Praxis] +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. +::: + +:::note +- Pfade sind case-sensitiv. +- Containerpfade sollten mit einem `/` beginnen. +- Wenn ein nicht zugewiesenes Gerät als Host-Pfad verwendet wird, setzen Sie den Zugriffsmodus auf eine "Slave"-Option, um eine ordnungsgemäße Erkennung sicherzustellen. +- Host-Pfade werden automatisch erstellt, wenn sie nicht existieren, sobald der Container startet. +- Unerwartete Ordner, die auf Ihrem Server erscheinen, können auf eine falsch konfigurierte Zuordnung hinweisen. +::: diff --git a/i18n/de/docusaurus-theme-classic/footer.json b/i18n/de/docusaurus-theme-classic/footer.json new file mode 100644 index 0000000000..155df08e8b --- /dev/null +++ b/i18n/de/docusaurus-theme-classic/footer.json @@ -0,0 +1,54 @@ +{ + "link.title.Documentation": { + "message": "Dokumentation", + "description": "The title of the footer links column with title=Documentation in the footer" + }, + "link.title.Community": { + "message": "Gemeinschaft", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "Mehr", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Home": { + "message": "Startseite", + "description": "The label of footer link with label=Home linking to /" + }, + "link.item.label.Contribute on Github": { + "message": "Mitwirken auf Github", + "description": "The label of footer link with label=Contribute on Github linking to https://github.com/unraid/docs" + }, + "link.item.label.Forums": { + "message": "Foren", + "description": "The label of footer link with label=Forums linking to https://forums.unraid.net" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.unraid.net/" + }, + "link.item.label.Unraid Home": { + "message": "Unraid Startseite", + "description": "The label of footer link with label=Unraid Home linking to https://unraid.net" + }, + "link.item.label.Unraid Connect": { + "message": "Unraid Verbinden", + "description": "The label of footer link with label=Unraid Connect linking to https://connect.myunraid.net" + }, + "link.item.label.Newsletter": { + "message": "Newsletter", + "description": "The label of footer link with label=Newsletter linking to https://newsletter.unraid.net" + }, + "link.item.label.Blog": { + "message": "Blog", + "description": "The label of footer link with label=Blog linking to https://unraid.net/blog" + }, + "copyright": { + "message": "Urheberrecht © 2005-2025 Lime Technology, Inc.
Unraid® ist ein eingetragenes Warenzeichen von Lime Technology, Inc.
", + "description": "The footer copyright" + }, + "logo.alt": { + "message": "Unraid Logo", + "description": "The alt text of footer logo" + } +} diff --git a/i18n/de/docusaurus-theme-classic/navbar.json b/i18n/de/docusaurus-theme-classic/navbar.json new file mode 100644 index 0000000000..f5f538f94d --- /dev/null +++ b/i18n/de/docusaurus-theme-classic/navbar.json @@ -0,0 +1,26 @@ +{ + "title": { + "message": "Unraid-Dokumentation", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Mein Seitenlogo", + "description": "The alt text of navbar logo" + }, + "item.label.More": { + "message": "Mehr", + "description": "Navbar item with label More" + }, + "item.label.Unraid Home": { + "message": "Unraid Startseite", + "description": "Navbar item with label Unraid Home" + }, + "item.label.Forums": { + "message": "Foren", + "description": "Navbar item with label Forums" + }, + "item.label.Docs Github": { + "message": "Dokumente auf Github", + "description": "Navbar item with label Docs Github" + } +} diff --git a/i18n/es/code.json b/i18n/es/code.json new file mode 100644 index 0000000000..002f2d9293 --- /dev/null +++ b/i18n/es/code.json @@ -0,0 +1,476 @@ +{ + "theme.NotFound.title": { + "message": "Página no encontrada", + "description": "The title of the 404 page" + }, + "theme.NotFound.p1": { + "message": "No pudimos encontrar lo que estabas buscando.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "Por favor, contacta al propietario del sitio que te vinculó a la URL original y háblale sobre su enlace roto.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.ErrorPageContent.title": { + "message": "Esta página falló.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Desplazarse hacia arriba", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "Archivo", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "Archivo", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "Navegación de página de publicación de blog", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "Publicación más reciente", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "Publicación anterior", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "Navegación de página de lista de blogs", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "Entradas más recientes", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "Entradas anteriores", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.tags.tagsPageLink": { + "message": "Ver todas las etiquetas", + "description": "The label of the link targeting the tag list page" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Migas de pan", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.DocCard.categoryDescription.plurals": { + "message": "1 ítem|{count} ítems", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.colorToggle.ariaLabel": { + "message": "Cambiar entre modo oscuro y claro (actualmente {mode})", + "description": "The ARIA label for the color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "modo oscuro", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "modo claro", + "description": "The name for the light color mode" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Páginas de documentos", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "Anterior", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "Siguiente", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "Un documento etiquetado|{count} documentos etiquetados", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} con \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "Versión: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "Esta es la documentación no publicada para la versión {versionLabel} de {siteTitle}.", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "Esta es la documentación de {siteTitle} versión {versionLabel}, que ya no se mantiene activamente.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "Para documentación actualizada, consulta la {latestVersionLink} ({versionLabel}).", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "última versión", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "Editar esta página", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "Enlace directo a {heading}", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " el {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " por {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "Última actualización{atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "Versiones", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "Cerrar", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.tags.tagsListLabel": { + "message": "Etiquetas:", + "description": "The label alongside a tag list" + }, + "theme.admonition.caution": { + "message": "precaución", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.admonition.danger": { + "message": "peligro", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "información", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.note": { + "message": "nota", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "consejo", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.warning": { + "message": "advertencia", + "description": "The default label used for the Warning admonition (:::warning)" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "Navegación de entradas recientes del blog", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.CodeBlock.copied": { + "message": "Copiado", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copiar código al portapapeles", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copy": { + "message": "Copiar", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "Alternar ajuste de palabras", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.DocSidebarItem.expandCategoryAriaLabel": { + "message": "Expandir categoría del menú lateral '{label}'", + "description": "The ARIA label to expand the sidebar category" + }, + "theme.DocSidebarItem.collapseCategoryAriaLabel": { + "message": "Colapsar categoría del menú lateral '{label}'", + "description": "The ARIA label to collapse the sidebar category" + }, + "theme.NavBar.navAriaLabel": { + "message": "Principal", + "description": "The ARIA label for the main navigation" + }, + "theme.blog.post.readMore": { + "message": "Leer más", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "Leer más sobre {title}", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Idiomas", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "En esta página", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.blog.post.readingTime.plurals": { + "message": "Un minuto de lectura|{readingTime} minutos de lectura", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.breadcrumbs.home": { + "message": "Página principal", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Colapsar menú lateral", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "Colapsar menú lateral", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Menú lateral de documentos", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Cerrar barra de navegación", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← Volver al menú principal", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Alternar barra de navegación", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expandir menú lateral", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "Expandir menú lateral", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.SearchBar.seeAll": { + "message": "Ver todos los {count} resultados" + }, + "theme.SearchPage.documentsFound.plurals": { + "message": "Un documento encontrado|{count} documentos encontrados", + "description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.SearchPage.existingResultsTitle": { + "message": "Resultados de búsqueda para \"{query}\"", + "description": "The search page title for non-empty query" + }, + "theme.SearchPage.emptyResultsTitle": { + "message": "Buscar en la documentación", + "description": "The search page title for empty query" + }, + "theme.SearchPage.inputPlaceholder": { + "message": "Escribe tu búsqueda aquí", + "description": "The placeholder for search page input" + }, + "theme.SearchPage.inputLabel": { + "message": "Buscar", + "description": "The ARIA label for search page input" + }, + "theme.SearchPage.algoliaLabel": { + "message": "Búsqueda por Algolia", + "description": "The ARIA label for Algolia mention" + }, + "theme.SearchPage.noResultsText": { + "message": "No se encontraron resultados", + "description": "The paragraph for empty search result" + }, + "theme.SearchPage.fetchingNewResults": { + "message": "Recuperando nuevos resultados...", + "description": "The paragraph for fetching new search results" + }, + "theme.SearchBar.label": { + "message": "Buscar", + "description": "The ARIA label and placeholder for search button" + }, + "theme.SearchModal.searchBox.resetButtonTitle": { + "message": "Borrar la consulta", + "description": "The label and ARIA label for search box reset button" + }, + "theme.SearchModal.searchBox.cancelButtonText": { + "message": "Cancelar", + "description": "The label and ARIA label for search box cancel button" + }, + "theme.SearchModal.startScreen.recentSearchesTitle": { + "message": "Recientes", + "description": "The title for recent searches" + }, + "theme.SearchModal.startScreen.noRecentSearchesText": { + "message": "No hay búsquedas recientes", + "description": "The text when no recent searches" + }, + "theme.SearchModal.startScreen.saveRecentSearchButtonTitle": { + "message": "Guardar esta búsqueda", + "description": "The label for save recent search button" + }, + "theme.SearchModal.startScreen.removeRecentSearchButtonTitle": { + "message": "Eliminar esta búsqueda de la historia", + "description": "The label for remove recent search button" + }, + "theme.SearchModal.startScreen.favoriteSearchesTitle": { + "message": "Favorito", + "description": "The title for favorite searches" + }, + "theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle": { + "message": "Eliminar esta búsqueda de favoritos", + "description": "The label for remove favorite search button" + }, + "theme.SearchModal.errorScreen.titleText": { + "message": "No se pueden obtener resultados", + "description": "The title for error screen of search modal" + }, + "theme.SearchModal.errorScreen.helpText": { + "message": "Podrías querer revisar tu conexión de red.", + "description": "The help text for error screen of search modal" + }, + "theme.SearchModal.footer.selectText": { + "message": "para seleccionar", + "description": "The explanatory text of the action for the enter key" + }, + "theme.SearchModal.footer.selectKeyAriaLabel": { + "message": "Tecla Enter", + "description": "The ARIA label for the Enter key button that makes the selection" + }, + "theme.SearchModal.footer.navigateText": { + "message": "para navegar", + "description": "The explanatory text of the action for the Arrow up and Arrow down key" + }, + "theme.SearchModal.footer.navigateUpKeyAriaLabel": { + "message": "Tecla de flecha arriba", + "description": "The ARIA label for the Arrow up key button that makes the navigation" + }, + "theme.SearchModal.footer.navigateDownKeyAriaLabel": { + "message": "Tecla de flecha abajo", + "description": "The ARIA label for the Arrow down key button that makes the navigation" + }, + "theme.SearchModal.footer.closeText": { + "message": "para cerrar", + "description": "The explanatory text of the action for Escape key" + }, + "theme.SearchModal.footer.closeKeyAriaLabel": { + "message": "Tecla Escape", + "description": "The ARIA label for the Escape key button that close the modal" + }, + "theme.SearchModal.footer.searchByText": { + "message": "Buscar por", + "description": "The text explain that the search is making by Algolia" + }, + "theme.SearchModal.noResultsScreen.noResultsText": { + "message": "Sin resultados para", + "description": "The text explains that there are no results for the following search" + }, + "theme.SearchModal.noResultsScreen.suggestedQueryText": { + "message": "Intenta buscar", + "description": "The text for the suggested query when no results are found for the following search" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsText": { + "message": "¿Crees que esta consulta debería devolver resultados?", + "description": "The text for the question where the user thinks there are missing results" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsLinkText": { + "message": "Infórmanos.", + "description": "The text for the link to report missing results" + }, + "theme.SearchModal.placeholder": { + "message": "Buscar documentos", + "description": "The placeholder of the input of the DocSearch pop-up modal" + }, + "theme.IdealImageMessage.loading": { + "message": "Cargando...", + "description": "When the full-scale image is loading" + }, + "theme.IdealImageMessage.load": { + "message": "Haz click para cargar{sizeMessage}", + "description": "To prompt users to load the full image. sizeMessage is a parenthesized size figure." + }, + "theme.IdealImageMessage.offline": { + "message": "Tu navegador está sin conexión. Imagen no cargada", + "description": "When the user is viewing an offline document" + }, + "theme.IdealImageMessage.404error": { + "message": "404. Imagen no encontrada", + "description": "When the image is not found" + }, + "theme.IdealImageMessage.error": { + "message": "Error. Haz click para recargar", + "description": "When the image fails to load for unknown error" + }, + "theme.blog.post.plurals": { + "message": "Una publicación|{count} publicaciones", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} etiquetados con \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.blog.author.pageTitle": { + "message": "{authorName} - {nPosts}", + "description": "The title of the page for a blog author" + }, + "theme.blog.authorsList.pageTitle": { + "message": "Autores", + "description": "The title of the authors page" + }, + "theme.blog.authorsList.viewAll": { + "message": "Ver todos los autores", + "description": "The label of the link targeting the blog authors page" + }, + "theme.blog.author.noPosts": { + "message": "Este autor aún no ha escrito ninguna publicación.", + "description": "The text for authors with 0 blog post" + }, + "theme.contentVisibility.unlistedBanner.title": { + "message": "Página no listada", + "description": "The unlisted content banner title" + }, + "theme.contentVisibility.unlistedBanner.message": { + "message": "Esta página no está listada. Los motores de búsqueda no la indexarán y solo los usuarios que tengan un enlace directo pueden acceder a ella.", + "description": "The unlisted content banner message" + }, + "theme.contentVisibility.draftBanner.title": { + "message": "Página de borrador", + "description": "The draft content banner title" + }, + "theme.contentVisibility.draftBanner.message": { + "message": "Esta página es un borrador. Solo será visible en desarrollo y será excluida de la compilación de producción.", + "description": "The draft content banner message" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "Intenta de nuevo", + "description": "The label of the button to try again rendering when the React error boundary captures an error" + }, + "theme.common.skipToMainContent": { + "message": "Saltar al contenido principal", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsPageTitle": { + "message": "Etiquetas", + "description": "The title of the tag list page" + }, + "theme.colorToggle.ariaLabel.mode.system": { + "message": "modo sistema", + "description": "The name for the system color mode" + }, + "theme.navbar.mobileDropdown.collapseButton.expandAriaLabel": { + "message": "Expandir el menú desplegable", + "description": "The ARIA label of the button to expand the mobile dropdown navbar item" + }, + "theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel": { + "message": "Colapsar el menú desplegable", + "description": "The ARIA label of the button to collapse the mobile dropdown navbar item" + } +} diff --git a/i18n/es/docusaurus-plugin-content-blog/options.json b/i18n/es/docusaurus-plugin-content-blog/options.json new file mode 100644 index 0000000000..18375b3a3f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-blog/options.json @@ -0,0 +1,14 @@ +{ + "title": { + "message": "Blog", + "description": "The title for the blog used in SEO" + }, + "description": { + "message": "Blog", + "description": "The description for the blog used in SEO" + }, + "sidebar.title": { + "message": "Publicaciones recientes", + "description": "The label for the left sidebar" + } +} diff --git a/i18n/es/docusaurus-plugin-content-docs/current.json b/i18n/es/docusaurus-plugin-content-docs/current.json new file mode 100644 index 0000000000..b60007c3bd --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,130 @@ +{ + "version.label": { + "message": "Siguiente", + "description": "The label for version current" + }, + "sidebar.unraidSidebar.category.Unraid OS": { + "message": "Unraid OS", + "description": "The label for category Unraid OS in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Getting started with Unraid": { + "message": "Comenzando con Unraid", + "description": "The label for category Getting started with Unraid in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Set up Unraid": { + "message": "Configurar Unraid", + "description": "The label for category Set up Unraid in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Explore the user interface": { + "message": "Explorar la interfaz de usuario", + "description": "The label for category Explore the user interface in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Using Unraid to": { + "message": "Usando Unraid para", + "description": "The label for category Using Unraid to in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Manage storage": { + "message": "Gestionar almacenamiento", + "description": "The label for category Manage storage in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Run Docker containers": { + "message": "Ejecutar contenedores Docker", + "description": "The label for category Run Docker containers in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Create virtual machines": { + "message": "Crear máquinas virtuales", + "description": "The label for category Create virtual machines in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Customize your experience": { + "message": "Personalizar tu experiencia", + "description": "The label for category Customize your experience in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.System administration": { + "message": "Administración de sistemas", + "description": "The label for category System administration in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Monitor performance": { + "message": "Monitorear rendimiento", + "description": "The label for category Monitor performance in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Maintain and update": { + "message": "Mantener y actualizar", + "description": "The label for category Maintain and update in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Secure your server": { + "message": "Asegurar tu servidor", + "description": "The label for category Secure your server in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Advanced tools": { + "message": "Herramientas avanzadas", + "description": "The label for category Advanced tools in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Advanced configurations": { + "message": "Configuraciones avanzadas", + "description": "The label for category Advanced configurations in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Optimize storage": { + "message": "Optimizar almacenamiento", + "description": "The label for category Optimize storage in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Troubleshooting": { + "message": "Solución de problemas", + "description": "The label for category Troubleshooting in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Common issues": { + "message": "Problemas comunes", + "description": "The label for category Common issues in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Diagnostics": { + "message": "Diagnósticos", + "description": "The label for category Diagnostics in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Release notes": { + "message": "Notas de la versión", + "description": "The label for category Release notes in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Release notes.link.generated-index.description": { + "message": "Notas de la versión de Unraid", + "description": "The generated-index page description for category Release notes in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.7.2": { + "message": "7.2", + "description": "The label for category 7.2 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.7.1": { + "message": "7.1", + "description": "The label for category 7.1 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.7.0": { + "message": "7.0", + "description": "The label for category 7.0 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.12": { + "message": "6.12", + "description": "The label for category 6.12 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.11": { + "message": "6.11", + "description": "The label for category 6.11 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.10": { + "message": "6.10", + "description": "The label for category 6.10 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.9": { + "message": "6.9", + "description": "The label for category 6.9 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Unraid Connect": { + "message": "Conectar Unraid", + "description": "The label for category Unraid Connect in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Unraid API": { + "message": "API de Unraid", + "description": "The label for category Unraid API in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Contribute": { + "message": "Contribuir", + "description": "The label for category Contribute in sidebar unraidSidebar" + } +} diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/API/_category_.json new file mode 100644 index 0000000000..91839d57c0 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "API de Unraid", + "position": 4 +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx b/i18n/es/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx new file mode 100644 index 0000000000..1b27d6dd51 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx @@ -0,0 +1,100 @@ +# Flujo de Autorización de Clave API + +Este documento describe el flujo de creación de claves API de autoservicio para aplicaciones de terceros. + +## Visión General + +Las aplicaciones pueden solicitar acceso a la API de un servidor Unraid redirigiendo a los usuarios a una página de autorización especial donde los usuarios pueden revisar los permisos solicitados y crear una clave API con un solo clic. + +## Flujo + +1. **La aplicación inicia la solicitud**: La aplicación redirige al usuario a: + + ``` + https://[unraid-server]/ApiKeyAuthorize?name=MyApp&scopes=docker:read,vm:*&redirect_uri=https://myapp.com/callback&state=abc123 + ``` + +2. **Autenticación del usuario**: Si no ha iniciado sesión, el usuario es redirigido para iniciar sesión primero (autenticación estándar de Unraid) + +3. **Pantalla de consentimiento**: El usuario ve: + - Nombre y descripción de la aplicación + - Permisos solicitados (con casillas de verificación para aprobar/denegar ámbitos específicos) + - Campo de nombre de la clave API (rellenado previamente) + - Botones Autorizar y Cancelar + +4. **Creación de la clave API**: Tras la autorización: + - La clave API se crea con los ámbitos aprobados + - La clave se muestra al usuario + - Si se proporciona `redirect_uri`, el usuario es redirigido con la clave + +5. **Llamada de retorno**: La aplicación recibe la clave API: + ``` + https://myapp.com/callback?api_key=xxx&state=abc123 + ``` + +## Parámetros de consulta + +- `name` (requerido): Nombre de la aplicación solicitante +- `description` (opcional): Descripción de la aplicación +- `scopes` (requerido): Lista de ámbitos solicitados separados por comas +- `redirect_uri` (opcional): URL para redirigir tras la autorización +- `state` (opcional): Valor opaco para mantener el estado + +## Formato del ámbito + +Los ámbitos siguen el patrón: `recurso:acción` + +### Ejemplos: + +- `docker:read` - Acceso de lectura a Docker +- `vm:*` - Acceso completo a las VMs +- `system:update` - Acceso de actualización al sistema +- `role:viewer` - Acceso como rol de espectador +- `role:admin` - Acceso como rol de administrador + +### Recursos Disponibles: + +- `docker`, `vm`, `system`, `share`, `user`, `network`, `disk`, etc. + +### Acciones Disponibles: + +- `create`, `read`, `update`, `delete` o `*` para todas + +## Consideraciones de Seguridad + +1. **Se requiere HTTPS**: Las URIs de redirección deben usar HTTPS (excepto localhost para desarrollo) +2. **Consentimiento del usuario**: Los usuarios aprueban explícitamente cada permiso +3. **Basado en sesión**: Utiliza la sesión de autenticación existente de Unraid +4. **Visualización única**: Las claves API se muestran una vez y deben guardarse de forma segura + +## Ejemplo de Integración + +```javascript +// JavaScript example +const unraidServer = 'tower.local'; +const appName = 'My Docker Manager'; +const scopes = 'docker:*,system:read'; +const redirectUri = 'https://myapp.com/unraid/callback'; +const state = generateRandomState(); + +// Store state for verification +sessionStorage.setItem('oauth_state', state); + +// Redirect user to authorization page +window.location.href = + `https://${unraidServer}/ApiKeyAuthorize?` + + `name=${encodeURIComponent(appName)}&` + + `scopes=${encodeURIComponent(scopes)}&` + + `redirect_uri=${encodeURIComponent(redirectUri)}&` + + `state=${encodeURIComponent(state)}`; + +// Handle callback +const urlParams = new URLSearchParams(window.location.search); +const apiKey = urlParams.get('api_key'); +const returnedState = urlParams.get('state'); + +if (returnedState === sessionStorage.getItem('oauth_state')) { + // Save API key securely + saveApiKey(apiKey); +} +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/cli.mdx b/i18n/es/docusaurus-plugin-content-docs/current/API/cli.mdx new file mode 100644 index 0000000000..fd11f15ac8 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/cli.mdx @@ -0,0 +1,212 @@ +--- +title: Referencia de CLI +description: Referencia completa para todos los comandos CLI de la API de Unraid +sidebar_position: 4 +--- + +# Comandos CLI + +:::info\[Command Estructura + +All commands follow the pattern: `unraid-api [options]` + +::: + +## 🚀 Gestión de Servicios + +### Iniciar + +```bash +unraid-api start [--log-level ] +``` + +Inicia el servicio de API de Unraid. + +Opciones: + +- `--log-level`: Establecer nivel de registro (trace|debug|info|warn|error|fatal) + +Alternativa: También puedes establecer el nivel de registro usando la variable de entorno `LOG_LEVEL`: + +```bash +LOG_LEVEL=trace unraid-api start +``` + +### Detener + +```bash +unraid-api stop [--delete] +``` + +Detiene el servicio de API de Unraid. + +- `--delete`: Opcional. Eliminar el directorio principal de PM2 + +### Reiniciar + +```bash +unraid-api restart [--log-level ] +``` + +Reinicia el servicio de API de Unraid. + +Opciones: + +- `--log-level`: Establecer nivel de registro (trace|debug|info|warn|error|fatal) + +Alternativa: También puedes establecer el nivel de registro usando la variable de entorno `LOG_LEVEL`: + +```bash +LOG_LEVEL=trace unraid-api restart +``` + +### Registros + +```bash +unraid-api logs [-l ] +``` + +Ver los registros de la API. + +- `-l, --lines`: Opcional. Número de líneas para mostrar (predeterminado: 100) + +## ⚙️ Comandos de Configuración + +### Configuración + +```bash +unraid-api config +``` + +Muestra los valores de configuración actuales. + +### Cambiar Entorno + +```bash +unraid-api switch-env [-e ] +``` + +Cambiar entre entornos de producción y pruebas. + +- `-e, --environment`: Opcional. Entorno de destino (producción|pruebas) + +### Modo Desarrollador + +:::tip[Web Gestión de Web GUI] +También puedes gestionar opciones de desarrollador a través de la interfaz web en **Configuraciones** → **Acceso de Gestión** → **Opciones de Desarrollador** +::: + +```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 --enable-modal # Enable modal testing tool +unraid-api developer --disable-modal # Disable modal testing tool +``` + +Configura las características del desarrollador para la API: + +- **Sandbox GraphQL**: Habilitar/deshabilitar sandbox de Apollo GraphQL en `/graphql` +- **Herramienta de Pruebas Modal**: Habilitar/deshabilitar pruebas de interfaz modal en el menú de Unraid + +## Gestión de Claves API + +:::tip[Web Gestión de Web GUI] +También puedes gestionar las claves de API a través de la interfaz web en **Configuraciones** → **Acceso de Gestión** → **Claves API** +::: + +### Comandos de Clave API + +```bash +unraid-api apikey [options] +``` + +Crear y gestionar claves API mediante CLI. + +Opciones: + +- `--name `: Name of the key +- `--create`: Crear una nueva clave +- `-r, --roles `: Lista separada por comas de funciones +- `-p, --permissions `: Comma-separated list of permissions +- `-d, --description `: Description for the key + +## Gestión de SSO (Inicio de Sesión Único) + +:::info[OIDC Configuración] +Para la configuración del proveedor OIDC/SSO, consulta la interfaz web en **Configuraciones** → **Acceso de Gestión** → **API** → **OIDC** o consulta la guía [Configuración del Proveedor OIDC](./oidc-provider-setup.mdx). +::: + +### Comando Base de SSO + +```bash +unraid-api sso +``` + +#### Agregar Usuario SSO + +```bash +unraid-api sso add-user +# or +unraid-api sso add +# or +unraid-api sso a +``` + +Agregar un nuevo usuario para autenticación SSO. + +#### Eliminar Usuario SSO + +```bash +unraid-api sso remove-user +# or +unraid-api sso remove +# or +unraid-api sso r +``` + +Eliminar un usuario (o todos los usuarios) de SSO. + +#### Listar Usuarios SSO + +```bash +unraid-api sso list-users +# or +unraid-api sso list +# or +unraid-api sso l +``` + +Listar todos los usuarios SSO configurados. + +#### Validar Token SSO + +```bash +unraid-api sso validate-token +# or +unraid-api sso validate +# or +unraid-api sso v +``` + +Valida un token SSO y devuelve su estado. + +## Generación de Informes + +### Generar Informe + +```bash +unraid-api report [-r] [-j] +``` + +Generar un informe del sistema. + +- `-r, --raw`: Mostrar salida en crudo de comando +- `-j, --json`: Mostrar salida en formato JSON + +## Notas + +1. La mayoría de los comandos requieren permisos apropiados para modificar el estado del sistema +2. Algunos comandos requieren que la API esté en ejecución o detenida. +3. Guarda las claves de la API de forma segura ya que proporcionan acceso al sistema +4. Los cambios de configuración de SSO pueden requerir un reinicio del servicio diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx b/i18n/es/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx new file mode 100644 index 0000000000..8d65fcd561 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx @@ -0,0 +1,241 @@ +--- +title: Usando la API de Unraid +description: Aprenda cómo interactuar con su servidor Unraid a través de la API GraphQL +sidebar_position: 2 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ManageApiKeysGui from './partials/manage-api-keys-gui.mdx'; +import ManageApiKeysCli from './partials/manage-api-keys-cli.mdx'; + +# Usando la API de Unraid + +:::tip[Quick Iniciar] +La API de Unraid proporciona una potente interfaz GraphQL para gestionar su servidor. Esta guía cubre la autenticación, las consultas comunes y las mejores prácticas. +::: + +La API de Unraid ofrece una interfaz GraphQL que le permite interactuar con su servidor Unraid. Esta guía le ayudará a comenzar a explorar y utilizar la API. + +## 🎮 Habilitación del Sandbox de GraphQL + +### Método GUI Web (Recomendado) + +:::info[Preferred Método] +Usar la GUI Web es la forma más fácil de habilitar el sandbox de GraphQL. +::: + +1. Navegue a **Configuración** → **Acceso de Administración** → **Opciones de Desarrollador** +2. Habilite el interruptor **Sandbox de GraphQL** +3. Acceda al playground de GraphQL navegando a: + + ```txt + http://YOUR_SERVER_IP/graphql + ``` + +### Método CLI + +Alternativamente, puede habilitar el modo desarrollador usando la CLI: + +```bash +unraid-api developer --sandbox true +``` + +O use el modo interactivo: + +```bash +unraid-api developer +``` + +## 🔑 Autenticación + +:::warning[Required para la mayoría de las operaciones] +La mayoría de las consultas y mutaciones requieren autenticación. Siempre incluya las credenciales apropiadas en sus solicitudes. +::: + +Puede autenticarse usando: + +1. **Claves API** - Para acceso programático +2. **Cookies** - Automáticamente al iniciar sesión en la WebGUI +3. **SSO/OIDC** - Cuando se configura con proveedores externos + +### Gestión de Claves API + + + + + + + + + + + +### Usando Claves API + +La clave API generada debe incluirse en sus solicitudes GraphQL como un encabezado: + +```json +{ + "x-api-key": "YOUR_API_KEY" +} +``` + +## 📊 Esquemas Disponibles + +La API proporciona acceso a varios aspectos de su servidor Unraid: + +### Información del Sistema + +- Consultar detalles del sistema incluyendo CPU, memoria e información del SO +- Monitorear el estado y salud del sistema +- Acceder a información de placa base y hardware + +### Gestión de Arreglos + +- Consultar estado y configuración del arreglo +- Gestionar operaciones del arreglo (iniciar/detener) +- Monitorear estado y salud del disco +- Realizar comprobaciones de paridad + +### Gestión Docker + +- Listar y gestionar contenedores Docker +- Monitorear el estado del contenedor +- Gestionar redes Docker + +### Acceso Remoto + +- Configurar y gestionar configuraciones de acceso remoto +- Manejar configuración SSO +- Gestionar orígenes permitidos + +### 💻 Consultas de Ejemplo + +#### Verificar Estado del Sistema + +```graphql +query { + info { + os { + platform + distro + release + uptime + } + cpu { + manufacturer + brand + cores + threads + } + } +} +``` + +#### Monitorear Estado del Arreglo + +```graphql +query { + array { + state + capacity { + disks { + free + used + total + } + } + disks { + name + size + status + temp + } + } +} +``` + +#### Listar Contenedores Docker + +```graphql +query { + dockerContainers { + id + names + state + status + autoStart + } +} +``` + +## 🏗️ Tipos de Esquema + +La API incluye varios tipos fundamentales: + +### Tipos Base + +- `Node`: Interfaz para objetos con IDs únicos - por favor, vea [Identificación de Objeto](https://graphql.org/learn/global-object-identification/) +- `JSON`: Para datos JSON complejos +- `DateTime`: Para valores de marca de tiempo +- `Long`: Para enteros de 64 bits + +### Tipos de Recursos + +- `Array`: Gestión de arreglos y discos +- `Docker`: Gestión de contenedores y redes +- `Info`: Información del sistema +- `Config`: Configuración de servidor +- `Connect`: Configuración de acceso remoto + +### Acceso Basado en Roles + +Roles disponibles: + +- `admin`: Acceso completo +- `connect`: Características de acceso remoto +- `guest`: Acceso de solo lectura limitado + +## ✨ Mejores Prácticas + +:::tip[Pro Consejos] +1. Use the Apollo Sandbox to explore the schema and test queries +2. Empieza con consultas pequeñas y gradualmente agrega campos según sea necesario +3. Monitoree la complejidad de su consulta para mantener el rendimiento +4. Use roles y permisos apropiados para sus claves API +5. Mantenga sus claves API seguras y rótelas periódicamente +::: + +## ⏱️ Limitación de Tasa + +:::caution[Rate Límites] +La API implementa la limitación de tasas para prevenir abusos. Asegúrese de que sus aplicaciones manejen adecuadamente las respuestas de limitación de tasas. +::: + +## 🚨 Manejo de Errores + +La API devuelve errores estándar de GraphQL en el siguiente formato: + +```json +{ + "errors": [ + { + "message": "Error description", + "locations": [...], + "path": [...] + } + ] +} +``` + +## 📚 Recursos Adicionales + +:::info[Learn Más] +- 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`. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/images/advanced-rules.png b/i18n/es/docusaurus-plugin-content-docs/current/API/images/advanced-rules.png new file mode 100644 index 0000000000000000000000000000000000000000..dd60e6dc0d62443c8e07980846f7762929219f87 GIT binary patch literal 103268 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

=TL8t|d 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 I(gxoD3n!4utN;K2 literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/images/button-customization.png b/i18n/es/docusaurus-plugin-content-docs/current/API/images/button-customization.png new file mode 100644 index 0000000000000000000000000000000000000000..516cd0c3cd9d703315129c918a2dea2e13392439 GIT binary patch literal 97812 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 Q*BOAo)78&qol`;+04(}33;+NC literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/images/default-unraid-provider.png b/i18n/es/docusaurus-plugin-content-docs/current/API/images/default-unraid-provider.png new file mode 100644 index 0000000000000000000000000000000000000000..8d1f3227d6d04960a730ec48fa864ccd5243f78e GIT binary patch literal 131176 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 + +## 🌟 Características Clave + +:::info[Core Capacidades] +La API proporciona: + +- **Interfaz GraphQL**: API moderna y flexible, con tipos robustos +- **Autenticación**: Múltiples métodos incluidos API keys, cookies de sesión y SSO/OIDC +- **Cobertura Integral**: Acceso a información del sistema, gestión de arrays y operaciones de Docker +- **Herramientas para Desarrolladores**: Sandbox de GraphQL integrado configurable mediante interfaz web o CLI +- **Acceso Basado en Roles**: Control granular de permisos +- **Gestión Web**: Gestione API keys y configuraciones a través de la interfaz web +::: + +## 🚀 Comience + + + + + + + + + + + +Para instrucciones de uso detalladas, vea la referencia de [CLI Commands](./cli). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx b/i18n/es/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx new file mode 100644 index 0000000000..e895206b4f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx @@ -0,0 +1,415 @@ +--- +title: Configuración del proveedor OIDC +description: Configurar proveedores OIDC (OpenID Connect) para la autenticación SSO en la API de Unraid +sidebar_position: 3 +--- + +# Configuración del proveedor OIDC + +:::info[What ¿Qué es OIDC?] +OpenID Connect (OIDC) es un protocolo de autenticación que permite a los usuarios iniciar sesión utilizando sus cuentas existentes de proveedores como Google, Microsoft o su proveedor de identidad corporativo. Habilita el inicio de sesión único (SSO) para una autenticación sin interrupciones y segura. +::: + +Esta guía le guía a través de la configuración de proveedores OIDC (OpenID Connect) para la autenticación SSO en la API de Unraid utilizando la interfaz web. + +## 🚀 Inicio Rápido + +
+ Navegando a la Configuración de OIDC + + 1. Navega a la interfaz web de tu servidor Unraid + 2. Ve a **Configuración** → **Acceso de Gestión** → **API** → **OIDC** + 3. Verás pestañas para diferentes proveedores - haz clic en el botón **+** para añadir un nuevo proveedor +
+ +### Descripción general de la Interfaz de Proveedores OIDC + +![Página de inicio de sesión con opciones SSO](/img/api/sso-with-options.png) +*Página de inicio de sesión mostrando el formulario de inicio de sesión tradicional con opciones SSO - botones "Iniciar sesión con Unraid.net" e "Iniciar sesión con Google"* + +La interfaz incluye: + +- **Pestañas de Proveedores**: Cada proveedor configurado (Unraid.net, Google, etc.) aparece como una pestaña +- **Botón Añadir Proveedor**: Haz clic en el botón **+** para añadir nuevos proveedores +- **Desplegable de Modo de Autorización**: Alternar entre modos "simple" y "avanzado" +- **Sección de Autorización Simple**: Configura dominios de correo permitidos y direcciones específicas +- **Botones Añadir Elemento**: Haz clic para añadir múltiples reglas de autorización + +## Entendiendo los Modos de Autorización + +La interfaz ofrece dos modos de autorización: + +### Modo Simple (Recomendado) + +El modo simple es la forma más fácil de configurar la autorización. Usted puede: + +- Permitir dominios de correo específicos (por ejemplo, @empresa.com) +- Permitir direcciones de correo específicas +- Configurar quién puede acceder a tu servidor Unraid con una configuración mínima + +**Cuándo usar el Modo Simple:** + +- Deseas permitir a todos los usuarios de tu dominio corporativo +- Tienes una lista pequeña de usuarios específicos +- Eres nuevo en la configuración de OIDC + +
+ Modo Avanzado + + El modo avanzado ofrece un control granular utilizando reglas basadas en claims. Usted puede: + + - Crear reglas de autorización complejas basadas en claims de JWT + - Usar operadores como equals, contains, endsWith, startsWith + - Combinar múltiples condiciones con lógica OR/AND + - Elegir si CUALQUIER regla debe pasar (modo OR) o TODAS las reglas deben pasar (modo AND) + + **Cuándo usar el Modo Avanzado:** + + - Necesitas verificar membresías de grupos + - Deseas verificar múltiples claims (por ejemplo, dominio de correo Y estado verificado) + - Tienes requisitos de autorización complejos + - Necesitas un control detallado sobre cómo se evalúan las reglas +
+ +## Reglas de Autorización + +![Configuración de Reglas de Autorización](/img/api/advanced-rules.png) +*Reglas avanzadas de autorización mostrando configuración de claims de JWT con operador de endsWith para control de acceso basado en dominio* + +### Ejemplos de Modo Simple + +#### Permitir Dominio Corporativo + +En Autorización Simple: + +- **Dominios de Correo Permitidos**: Ingresar `empresa.com` +- Esto permite a cualquier persona con correo @empresa.com + +#### Permitir Usuarios Específicos + +- **Direcciones de Correo Específicas**: Añadir correos individuales +- Haz clic en **Añadir Elemento** para añadir múltiples direcciones + +
+ Ejemplos de Modo Avanzado + + #### Modo de Reglas de Autorización + + Al usar múltiples reglas, puedes elegir cómo son evaluadas: + + - **Modo OR** (predeterminado): El usuario está autorizado si CUALQUIER regla pasa + - **Modo AND**: El usuario está autorizado solo si TODAS las reglas pasan + + #### Correo de Dominio con Verificación (Modo AND) + + Para requerir tanto el dominio del correo como la verificación: + + 1. Configura **Modo de Reglas de Autorización** a `AND` + 2. Añadir dos reglas: + - Regla 1: + - **Claim**: `email` + - **Operador**: `endsWith` + - **Valor**: `@empresa.com` + - Regla 2: + - **Claim**: `email_verified` + - **Operador**: `equals` + - **Valor**: `true` + + Esto asegura que los usuarios deben tener tanto un correo de la empresa COMO una dirección de correo verificada. + + #### Acceso Basado en Grupos (Modo OR) + + Para permitir el acceso a múltiples grupos: + + 1. Configura **Modo de Reglas de Autorización** a `OR` (predeterminado) + 2. Agrega reglas para cada grupo: + - **Claim**: `groups` + - **Operador**: `contains` + - **Valor**: `admins` + O añada otra regla: + - **Claim**: `groups` + - **Operador**: `contains` + - **Valor**: `developers` + + Los usuarios en el grupo `admins` O `developers` serán autorizados. + + #### Múltiples Dominios + + - **Claim**: `email` + - **Operador**: `endsWith` + - **Valores**: Añadir múltiples dominios (por ejemplo, `empresa.com`, `filial.com`) + + #### Autorización Compleja (Modo AND) + + Para seguridad estricta que requiere múltiples condiciones: + + 1. Configura **Modo de Reglas de Autorización** a `AND` + 2. Añadir múltiples reglas que TODAS deben pasar: + - El correo debe ser del dominio de la empresa + - El correo debe estar verificado + - El usuario debe estar en un grupo específico + - La cuenta debe tener 2FA habilitado (si el claim está disponible) +
+ +
+ Detalles de la Interfaz de Configuración + + ### Pestañas de Proveedores + + - Cada proveedor configurado aparece como una pestaña en la parte superior + - Haz clic en una pestaña para cambiar entre configuraciones de proveedores + - El botón **+** a la derecha añade un nuevo proveedor + + ### Desplegable de Modo de Autorización + + - **simple**: Mejor para la autorización basada en correo (recomendado para la mayoría de los usuarios) + - **avanzado**: Para reglas complejas basadas en claims utilizando claims de JWT + + ### Campos de Autorización Simple + + Cuando el modo "simple" está seleccionado, verás: + + - **Dominios de Correo Permitidos**: Ingresa dominios sin @ (por ejemplo, `empresa.com`) + - Texto de ayuda: "Usuarios con correos que terminan en estos dominios pueden iniciar sesión" + - **Direcciones de Correo Específicas**: Añadir direcciones de correo individuales + - Texto de ayuda: "Solo estas direcciones de correo exactas pueden iniciar sesión" + - Botones **Añadir Elemento** para añadir múltiples entradas + + ### Campos de Autorización Avanzada + + Cuando el modo "avanzado" está seleccionado, verás: + + - **Modo de Reglas de Autorización**: Elige `OR` (cualquier regla pasa) o `AND` (todas las reglas deben pasar) + - **Reglas de Autorización**: Añadir múltiples reglas basadas en claims + - **Para cada regla**: + - **Claim**: El claim de JWT a verificar + - **Operador**: Cómo comparar (equals, contains, endsWith, startsWith) + - **Valor**: Qué coincidir + + ### Elementos Adicionales de la Interfaz + + - **Habilitar Sandbox de Desarrollador**: Toggle para habilitar el sandbox de GraphQL en `/graphql` + - La interfaz utiliza un tema oscuro para mejor visibilidad + - Los indicadores de validación de campos ayudan a garantizar una configuración correcta +
+ +### URI de Redirección Requerida + +:::caution[Important Configuración] +Todos los proveedores deben configurarse con este formato exacto de URI de redirección: +::: + +```bash +http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback +``` + +:::tip +Reemplaza `TU_IP_UNRAID` con la dirección IP actual de tu servidor (por ejemplo, `192.168.1.100` o `tower.local`). +::: + +### Formato de URL del Emisor + +El campo **URL del Emisor** acepta ambos formatos, pero **se recomienda encarecidamente el URL base** por seguridad: + +- **URL Base** (recomendado): `https://accounts.google.com` +- **URL completa de descubrimiento**: `https://accounts.google.com/.well-known/openid-configuration` + +**⚠️ Nota de Seguridad**: Siempre use el formato de URL base cuando sea posible. El sistema agrega automáticamente `/.well-known/openid-configuration` para el descubrimiento OIDC. Usar la URL completa de descubrimiento directamente desactiva importantes verificaciones de validación del emisor y no es recomendable según la especificación de OpenID Connect. + +**Ejemplos de URLs base correctas:** + +- Google: `https://accounts.google.com` +- Microsoft/Azure: `https://login.microsoftonline.com/YOUR_TENANT_ID/v2.0` +- Keycloak: `https://keycloak.example.com/realms/YOUR_REALM` +- Authelia: `https://auth.yourdomain.com` + +## ✅ Probando Tu Configuración + +![Página de inicio de sesión con Botones SSO](/img/api/sso-with-options.png) +*Página de inicio de sesión de Unraid mostrando tanto la autenticación de usuario/contraseña tradicional como opciones SSO con botones personalizados de proveedores* + +1. Guarda la configuración de tu proveedor +2. Cerrar sesión (si estás conectado) +3. Navegar a la página de inicio de sesión +4. El botón de tu proveedor configurado debería aparecer +5. Haz clic para probar el flujo de inicio de sesión + +## 🔧 Resolución de Problemas + +### Problemas Comunes + +#### Error de "Proveedor no encontrado" + +- Asegúrate de que la URL del Emisor sea correcta +- Verifica que el proveedor soporte el descubrimiento OIDC (/.well-known/openid-configuration) + +#### "Autorización fallida" + +- En el Modo Simple: Verifica que los dominios de correo estén ingresados correctamente (sin @) +- En el Modo Avanzado: + - Verifica que los nombres de claims coincidan exactamente con lo que tu proveedor envía + - Comprueba si el Modo de Reglas de Autorización está configurado correctamente (OR vs AND) + - Asegúrate de que todos los claims requeridos estén presentes en el token +- Habilita el registro de depuración para ver los claims reales y la evaluación de reglas + +#### "URI de redirección inválido" + +- Asegúrate de que el URI de redirección en tu proveedor coincida exactamente +- Incluye el puerto correcto si estás usando una configuración no estándar +- Verifica que el protocolo de URI de redirección coincida con la configuración de tu servidor (HTTP o HTTPS) + +#### No se puede ver el botón de inicio de sesión + +- Verifica que al menos una regla de autorización esté configurada +- Verifica que el proveedor esté habilitado/guardado + +### Modo de Depuración + +Para solucionar problemas: + +1. Habilitar registro de depuración: + +```bash +LOG_LEVEL=debug unraid-api start --debug +``` + +2. Verificar logs para: + +- Claims recibidos del proveedor +- Evaluación de reglas de autorización +- Errores de validación de tokens + +## 🔐 Mejores prácticas de seguridad + +1. **Usar Modo Simple para la autorización** - Previene configuraciones excesivamente permisivas y reduce el riesgo de errores de configuración +2. **Ser específico con la autorización** - No uses reglas demasiado amplias +3. **Rotar secretos regularmente** - Actualiza los secretos del cliente periódicamente +4. **Probar exhaustivamente** - Verifica que solo los usuarios autorizados puedan acceder + +## 💡 ¿Necesitas ayuda? + +- Consulta la documentación OIDC del proveedor +- Revisa los registros de la API de Unraid para obtener mensajes de error detallados +- Asegúrate de que tu proveedor soporte el descubrimiento estándar de OIDC +- Verifica la conectividad de red entre Unraid y el proveedor + +## 🏢 Configuración específica del proveedor + +### Proveedor Unraid.net + +El proveedor Unraid.net está integrado y preconfigurado. Solo necesita configurar las reglas de autorización en la interfaz. + +**Configuración:** + +- **URL del emisor**: Preconfigurado (proveedor integrado) +- **ID/Secreto del Cliente**: Preconfigurado (proveedor integrado) +- **URI de redirección**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +:::tip[Redirect Protocolo URI] +**Haga coincidir el protocolo con la configuración de su servidor:** Use `http://` si accede a su servidor Unraid sin SSL/TLS (típico para acceso a red local). Use `https://` si ha configurado SSL/TLS en su servidor. Algunos proveedores OIDC (como Google) requieren HTTPS y no aceptarán URIs de redirección HTTP. +::: + +Configura reglas de autorización usando Modo Simple (dominios/correos electrónicos permitidos) o Modo Avanzado para requisitos complejos. + +### Google + +
+ 📋 Pasos de configuración + + Configura las credenciales OAuth 2.0 en [Google Cloud Console](https://console.cloud.google.com/): + + 1. Ve a **APIs y servicios** → **Credenciales** + 2. Haz clic en **Crear credenciales** → **ID de cliente OAuth** + 3. Elige **Aplicación web** como el tipo de aplicación + 4. Agrega tu URI de redirección a **URIs de redirección autorizados** + 5. Configura la pantalla de consentimiento OAuth si se solicita +
+ +**Configuración:** + +- **URL del Emisor**: `https://accounts.google.com` +- **ID/Secreto del Cliente**: Desde tus credenciales de cliente OAuth 2.0 +- **Ámbitos requeridos**: `openid`, `profile`, `email` +- **URI de redirección**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +:::warning[Google Requisitos de dominio] +**Google requiere nombres de dominio válidos para los URIs de redirección OAuth.** No se aceptan direcciones IP locales y dominios `.local`. Para usar Google OAuth con su servidor Unraid, necesitará: + +- **Opción 1: Proxy inverso** - Configura un proxy inverso (como NGINX Proxy Manager o Traefik) con un nombre de dominio válido que apunte a tu API de Unraid +- **Opción 2: Tailscale** - Usa Tailscale para obtener un dominio `*.ts.net` válido que Google aceptará +- **Opción 3: DNS dinámico** - Usa un servicio de DNS dinámico para obtener un nombre de dominio público para tu servidor + +Recuerda actualizar tu URI de redirección tanto en Google Cloud Console como en la configuración OIDC de tu Unraid para usar el dominio válido. +::: + +Para los dominios de Google Workspace, usa Modo Avanzado con la propiedad `hd` para restringir el acceso al dominio de tu organización. + +### Authelia + +Configura el cliente OIDC en tu `configuration.yml` de Authelia con el ID de cliente `unraid-api` y genera un secreto con hash usando el comando hash-password de Authelia. + +**Configuración:** + +- **URL del Emisor**: `https://auth.yourdomain.com` +- **ID de Cliente**: `unraid-api` (o según configurado en Authelia) +- **Secreto del Cliente**: Tu secreto sin cifrar +- **Ámbitos requeridos**: `openid`, `profile`, `email`, `groups` +- **URI de redirección**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Usa Modo Avanzado con la propiedad `groups` para autorización basada en grupos. + +### Microsoft/Azure AD + +Registrar una nueva aplicación en [Azure Portal](https://portal.azure.com/) bajo Azure Active Directory → Registros de la aplicación. Anote el ID de la aplicación, cree un secreto de cliente y anote su ID de arrendatario. + +**Configuración:** + +- **URL del Emisor**: `https://login.microsoftonline.com/YOUR_TENANT_ID/v2.0` +- **ID de Cliente**: Tu ID de aplicación (cliente) +- **Secreto del Cliente**: Secreto de cliente generado +- **Ámbitos requeridos**: `openid`, `profile`, `email` +- **URI de redirección**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Las reglas de autorización pueden configurarse en la interfaz usando dominios de correo electrónico o propiedades avanzadas. + +### Keycloak + +Crea un nuevo cliente confidencial en el Console de Administración de Keycloak con el protocolo `openid-connect` y copia el secreto del cliente desde la pestaña de Credenciales. + +**Configuración:** + +- **URL del Emisor**: `https://keycloak.example.com/realms/YOUR_REALM` +- **ID de Cliente**: `unraid-api` (o según configurado en Keycloak) +- **Secreto del Cliente**: De la pestaña Credenciales de Keycloak +- **Ámbitos requeridos**: `openid`, `profile`, `email` +- **URI de redirección**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Para autorización basada en roles, usa Modo Avanzado con propiedades `realm_access.roles` o `resource_access`. + +### Authentik + +Crea un nuevo Proveedor OAuth2/OpenID en Authentik, luego crea una aplicación y vincúlala al proveedor. + +**Configuración:** + +- **URL del Emisor**: `https://authentik.example.com/application/o//` +- **ID de Cliente**: De la configuración del proveedor Authentik +- **Secreto del Cliente**: De la configuración del proveedor Authentik +- **Ámbitos requeridos**: `openid`, `profile`, `email` +- **URI de redirección**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Las reglas de autorización pueden configurarse en la interfaz. + +### Okta + +Crea una nueva aplicación web OIDC en el Console de Administración de Okta y asigna los usuarios o grupos apropiados. + +**Configuración:** + +- **URL del Emisor**: `https://YOUR_DOMAIN.okta.com` +- **ID de Cliente**: De la configuración de la aplicación Okta +- **Secreto del Cliente**: De la configuración de la aplicación Okta +- **Ámbitos requeridos**: `openid`, `profile`, `email` +- **URI de redirección**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Las reglas de autorización pueden configurarse en la interfaz usando dominios de correo electrónico o propiedades avanzadas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx b/i18n/es/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx new file mode 100644 index 0000000000..684a15b4a6 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx @@ -0,0 +1,5 @@ +1. Instale el plugin Unraid Connect desde Aplicaciones de Comunidad +2. No se requiere login en Unraid Connect para acceso local a la API +3. Configure la configuración del plugin +4. Habilitar el GraphQL Sandbox +5. ¡Comience a explorar la API! diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx b/i18n/es/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx new file mode 100644 index 0000000000..c80da4a329 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx @@ -0,0 +1,5 @@ +1. La API ya está instalada y funcionando +2. Acceda a configuraciones en **Settings** → **Management Access** → **API** +3. Habilite el GraphQL Sandbox para desarrollo +4. Cree su primera API key +5. ¡Comience a realizar consultas GraphQL! diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx b/i18n/es/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx new file mode 100644 index 0000000000..db3285eba0 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx @@ -0,0 +1,12 @@ +También puede usar la CLI para crear una clave API: + +```bash +unraid-api apikey --create +``` + +Siga las indicaciones para establecer: + +- Nombre +- Descripción +- Roles +- Permisos diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx b/i18n/es/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx new file mode 100644 index 0000000000..8351f1cf5b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx @@ -0,0 +1,6 @@ +Navegue a **Configuración** → **Acceso de Administración** → **Claves API** en su interfaz web Unraid para: + +- Ver claves API existentes +- Crear nuevas claves API +- Gestionar permisos y roles +- Revocar o regenerar claves diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx b/i18n/es/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx new file mode 100644 index 0000000000..24e69fcf7c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx @@ -0,0 +1,250 @@ +--- +title: Gestión programática de Claves API +description: Crear, usar y eliminar claves API de manera programática para flujos de trabajo automatizados. +sidebar_position: 4 +--- + +# Gestión programática de Claves API + +Esta guía explica cómo crear, usar y eliminar claves API programáticamente usando el CLI de la API de Unraid, permitiendo flujos de trabajo automatizados y scripts. + +## Visión General + +El comando `unraid-api apikey` admite modos tanto interactivos como no interactivos, lo que lo hace adecuado para: + +- Scripts de despliegue automatizado +- Canales de CI/CD +- Provisión de acceso temporal +- Flujos de trabajo de infraestructura como código + +:::tip[Quick Iniciar] +Salte a la [Ejemplo Completo del Flujo de Trabajo](#complete-workflow-example) para ver todo en acción. +::: + +## Creación Programática de Claves API + +### Creación Básica con Salida en JSON + +Use la bandera `--json` para obtener una salida legible por máquina: + +```bash +unraid-api apikey --create --name "workflow key" --roles ADMIN --json +``` + +**Salida:** + +```json +{ + "key": "your-generated-api-key-here", + "name": "workflow key", + "id": "generated-uuid" +} +``` + +### Creación Avanzada con Permisos + +```bash +unraid-api apikey --create \ + --name "limited access key" \ + --permissions "DOCKER:READ_ANY,ARRAY:READ_ANY" \ + --description "Read-only access for monitoring" \ + --json +``` + +### Gestión de Claves Existentes + +Si ya existe una clave con el mismo nombre, use `--overwrite`: + +```bash +unraid-api apikey --create --name "existing key" --roles ADMIN --overwrite --json +``` + +:::warning[Key Reemplazo] +La bandera `--overwrite` reemplazará permanentemente la clave existente. La clave antigua será invalidada inmediatamente. +::: + +## Eliminación Programática de Claves API + +### Eliminación No Interactiva + +Eliminar una clave por nombre sin confirmaciones: + +```bash +unraid-api apikey --delete --name "workflow key" +``` + +**Salida:** + +``` +Successfully deleted 1 API key +``` + +### Salida en JSON para Eliminación + +Utilice la bandera `--json` para obtener confirmación de eliminación legible por máquina: + +```bash +unraid-api apikey --delete --name "workflow key" --json +``` + +**Salida de Éxito:** + +```json +{ + "deleted": 1, + "keys": [ + { + "id": "generated-uuid", + "name": "workflow key" + } + ] +} +``` + +**Salida de Error:** + +```json +{ + "deleted": 0, + "error": "No API key found with name: nonexistent key" +} +``` + +### Gestión de Errores + +Cuando la clave especificada no existe: + +```bash +unraid-api apikey --delete --name "nonexistent key" +# Output: No API keys found to delete +``` + +**Salida de Error en JSON:** + +```json +{ + "deleted": 0, + "message": "No API keys found to delete" +} +``` + +## Ejemplo Completo de Flujo de Trabajo + +Aquí hay un ejemplo completo para la provisión de acceso temporal: + +```bash +#!/bin/bash +set -e + +# 1. Create temporary API key +echo "Creating temporary API key..." +KEY_DATA=$(unraid-api apikey --create \ + --name "temp deployment key" \ + --roles ADMIN \ + --description "Temporary key for deployment $(date)" \ + --json) + +# 2. Extract the API key +API_KEY=$(echo "$KEY_DATA" | jq -r '.key') +echo "API key created successfully" + +# 3. Use the key for operations +echo "Configuring services..." +curl -H "Authorization: Bearer $API_KEY" \ + -H "Content-Type: application/json" \ + -d '{"provider": "azure", "clientId": "your-client-id"}' \ + http://localhost:3001/graphql + +# 4. Clean up (always runs, even on error) +trap 'echo "Cleaning up..."; unraid-api apikey --delete --name "temp deployment key"' EXIT + +echo "Deployment completed successfully" +``` + +## Referencia de Comandos + +### Opciones del Comando de Creación + +| Bandera | Descripción | Ejemplo | +| ----------------------- | ------------------------------ | --------------------------------- | +| `--name ` | Nombre de la clave (requerido) | `--name "mi clave"` | +| `--roles ` | Roles separados por comas | `--roles ADMIN,VIEWER` | +| `--permissions ` | Pares de recurso:acción | `--permissions "DOCKER:READ_ANY"` | +| `--description ` | Descripción de la clave | `--description "clave CI/CD"` | +| `--overwrite` | Reemplazar clave existente | `--overwrite` | +| `--json` | Salida legible por máquina | `--json` | + +### Roles Disponibles + +- `ADMIN` - Acceso total al sistema +- `CONNECT` - Funciones de Unraid Connect +- `VIEWER` - Acceso de solo lectura +- `GUEST` - Acceso limitado + +### Recursos y Acciones Disponibles + +**Recursos:** `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` + +**Acciones:** `CREATE_ANY`, `CREATE_OWN`, `READ_ANY`, `READ_OWN`, `UPDATE_ANY`, `UPDATE_OWN`, `DELETE_ANY`, `DELETE_OWN` + +### Opciones del Comando de Eliminación + +| Bandera | Descripción | Ejemplo | +| --------------- | --------------------------- | ------------------- | +| `--delete` | Habilitar modo eliminación | `--delete` | +| `--name ` | Clave a eliminar (opcional) | `--name "mi clave"` | + +**Nota:** Si se omite `--name`, el comando se ejecuta de manera interactiva. + +## Mejores Prácticas + +:::info[Security Mejores Prácticas] +**Permisos Mínimos** + +- Usar permisos específicos en lugar del rol ADMIN cuando sea posible +- Ejemplo: `--permissions "DOCKER:READ_ANY"` en lugar de `--roles ADMIN` + +**Gestión del Ciclo de Vida de las Claves** + +- Siempre limpiar claves temporales después de su uso +- Almacenar claves API de forma segura (variables de entorno, gestión de secretos) +- Utilizar nombres y descripciones descriptivos para el rastro de auditoría +::: + +### Gestión de Errores + +- Verificar códigos de salida (`$?`) después de cada comando +- Usar `set -e` en scripts bash para fallar rápidamente +- Implementar limpieza adecuada con `trap` + +### Nomenclatura de Claves + +- Usar nombres descriptivos que incluyan propósito y fecha +- Los nombres deben contener solo letras, números y espacios +- Se admiten letras Unicode + +## Solución de problemas + +### Problemas Comunes + +:::note[Common Mensajes de Error] +**"El nombre de la clave API debe contener solo letras, números y espacios"** + +- **Solución:** Elimine caracteres especiales como guiones, guiones bajos o símbolos + +**"Una clave API con el nombre 'x' ya existe"** + +- **Solución:** Use la bandera `--overwrite` o elija un nombre diferente + +**"Por favor, añada al menos un rol o permiso a la clave"** + +- **Solución:** Especifique ya sea `--roles` o `--permissions` (o ambos) +::: + +### Modo de Depuración + +Para resolución de problemas, ejecute con registro de depuración: + +```bash +LOG_LEVEL=debug unraid-api apikey --create --name "debug key" --roles ADMIN +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx b/i18n/es/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx new file mode 100644 index 0000000000..ec5b760d46 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx @@ -0,0 +1,171 @@ +--- +title: Hoja de Ruta y Características +description: Estado actual y características futuras para la API de Unraid +sidebar_position: 10 +--- + +# Hoja de Ruta y Características + +:::info[Development Estado] +Esta hoja de ruta describe las funciones completadas y planificadas para el Unraid API. Las características y los plazos pueden cambiar según las prioridades de desarrollo y los comentarios de la comunidad. +::: + +## Leyenda del Estado de Características + +| Estado | Descripción | +| ------------------------- | ---------------------------------------------- | +| ✅ **Hecho** | La característica está completa y disponible. | +| 🚧 **En progreso** | Actualmente en desarrollo activo. | +| 📅 **Planificado** | Programado para desarrollo futuro. | +| 💡 **Bajo Consideración** | Siendo evaluado para posible inclusión futura. | + +## Infraestructura Principal + +### Características Completadas ✅ + +| Característica | Disponible Desde | +| ------------------------------------------- | ------------------ | +| **Mejoras al Entorno de Desarrollo de API** | v4.0.0 | +| **Incluir API en Unraid OS** | Unraid v7.2-beta.1 | +| **Separar API del Complemento Connect** | Unraid v7.2-beta.1 | + +### Características Futuras 📅 + +| Característica | Cronograma Objetivo | +| ----------------------------------------------------- | -------------------------------------------------------------------------------- | +| **Hacer API Código Abierto** | Completado — código abierto enero 2025 ([GitHub](https://github.com/unraid/api)) | +| **Herramientas para Desarrolladores de Complementos** | Q2 2025 | + +## Seguridad y Autenticación + +### Características Completadas ✅ + +| Característica | Disponible Desde | +| --------------------------------------- | ------------------ | +| **Reescritura del Sistema de Permisos** | v4.0.0 | +| **Soporte OIDC/SSO** | Unraid v7.2-beta.1 | + +### En Desarrollo 🚧 + +- **Biblioteca de Componentes de Interfaz de Usuario** - Componentes de seguridad mejorados para la IU + +## Mejoras en la Interfaz de Usuario + +### Características Planificadas 📅 + +| Característica | Cronograma Objetivo | Descripción | +| ------------------------------------------- | ------------------- | -------------------------------------------------------------- | +| **Nuevas Páginas de Configuración** | Q2 2025 | Interfaz de configuración modernizada con mejora en UX | +| **Creador de Temas Personalizados** | Q2-Q3 2025 | Permitir a los usuarios crear y compartir temas personalizados | +| **Nueva Interfaz de Configuración Connect** | Q1 2025 | Rediseño de la configuración de Unraid Connect | + +## Gestión de Arreglos + +### Características Completadas ✅ + +| Característica | Disponible Desde | +| --------------------------------- | ---------------- | +| **Monitor de Estado del Arreglo** | v4.0.0 | + +### Características Planificadas 📅 + +| Característica | Cronograma Objetivo | Descripción | +| -------------------------------------------------- | ------------------- | ------------------------------------------------- | +| **Interfaz de Creación de Pool de Almacenamiento** | Q2 2025 | Flujo de trabajo de creación de pool simplificado | +| **Interfaz de Estado de Pool de Almacenamiento** | Q2 2025 | Monitoreo de salud del pool en tiempo real | + +## Integración Docker + +### Características Completadas ✅ + +| Característica | Disponible Desde | +| -------------------------------------------- | ---------------- | +| **Monitor de Estado de Contenedores Docker** | v4.0.0 | + +### Características Planificadas 📅 + +| Característica | Cronograma Objetivo | Descripción | +| ---------------------------------------------------- | ------------------- | --------------------------------------------- | +| **Nuevo Diseño de Interfaz de Estado de Docker** | Q3 2025 | Interfaz moderna para gestión de contenedores | +| **Nueva Interfaz de Estado de Docker** | Q3 2025 | Implementación de nuevo diseño | +| **Interfaz de Configuración de Contenedores Docker** | Q3 2025 | Despliegue simplificado de contenedores | +| **Soporte Docker Compose** | Por determinar | Soporte nativo para docker-compose.yml | + +## Gestión de Comparticiones + +### Características Completadas ✅ + +| Característica | Disponible Desde | +| --------------------------------------------------------- | ---------------- | +| **Monitor de Estado de Comparticiones del Arreglo/Cache** | v4.0.0 | + +### Bajo Consideración 💡 + +- **Creación y Configuración de Comparticiones de Almacenamiento** - Opciones mejoradas de configuración de comparticiones +- **Interfaz de Gestión de Comparticiones de Almacenamiento** - Panel de gestión unificada de comparticiones + +## Sistema de Plugins + +### Características Planificadas 📅 + +| Característica | Cronograma Objetivo | Descripción | +| ----------------------------------------- | ------------------- | --------------------------------------- | +| **Nueva Interfaz de Plugins** | Q3 2025 | Rediseño de microgestión de plugins | +| **Interfaz de Gestión de Plugins** | Por determinar | Configuración avanzada de plugins | +| **Herramientas de Desarrollo de Plugins** | Por determinar | SDK y herramientas para desarrolladores | + +## Notificaciones + +### Características Completadas ✅ + +| Característica | Disponible Desde | +| ------------------------------ | ---------------- | +| **Sistema de Notificaciones** | v4.0.0 | +| **Interfaz de Notificaciones** | v4.0.0 | + +--- + +## Lanzamientos Recientes + +:::info[Full Historial de versiones] +Para una lista completa de todos los lanzamientos, registros de cambios y enlaces de descarga, visite la página de [Lanzamientos en GitHub de la API de Unraid](https://github.com/unraid/api/releases). +::: + +### Aspectos Destacados de Unraid v7.2-beta.1 + +- 🎉 **API incluida en Unraid OS** - Integración nativa +- 🔐 **Soporte OIDC/SSO** - Autenticación empresarial +- 📦 **API Independiente** - Separada del complemento Connect + +### Aspectos Destacados de v4.0.0 + +- 🛡️ **Reescritura del Sistema de Permisos** - Seguridad mejorada +- 📊 **Monitoreo Integral** - Estado de Arreglo, Docker y Comparticiones +- 🔔 **Sistema de Notificaciones** - Alertas y notificaciones en tiempo real +- 🛠️ **Entorno de Desarrollo** - Herramientas de desarrollo mejoradas + +## Comentarios de la Comunidad + +:::tip[Have ¿Una solicitud de función?] +¡Comentarios de la comunidad recibidos; API de código abierto en enero de 2025! Por favor envíe solicitudes de funciones y comentarios a través de: + +- [Unraid Forums](https://forums.unraid.net) +- [Problemas en GitHub](https://github.com/unraid/api/issues) - ¡La API ahora es de código abierto! +::: + +## Soporte de Versión + +| Versión de Unraid | Versión de API | Estado de Soporte | +| ------------------- | ----------------------- | ----------------- | +| Unraid v7.2-beta.1+ | Última | ✅ Activo | +| 7.0 - 7.1.x | v4.x a través de Plugin | ⚠️ Limitado | +| 6.12.x | v4.x a través de Plugin | ⚠️ Limitado | +| \< 6.12 | No Soportado | ❌ EOL | + +:::warning[Legacy Soporte] +Las versiones anteriores a Unraid 7.2 requieren que la API se instale a través del complemento Unraid Connect. Algunas características pueden no estar disponibles en versiones más antiguas. +::: + +:::tip[Pre-release Versiones] +Siempre puede instalar el complemento Unraid Connect para acceder a versiones pre-lanzamiento de la API y obtener acceso anticipado a nuevas características antes de que se incluyan en los lanzamientos de Unraid OS. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/contribute/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/contribute/_category_.json new file mode 100644 index 0000000000..1ef1e3c50b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/contribute/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Contribuir", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx b/i18n/es/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx new file mode 100644 index 0000000000..155296a31c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx @@ -0,0 +1,161 @@ +--- +sidebar_position: 1 +sidebar_label: Guía de estilo +--- + +# Guía de estilo de Unraid Docs + +El SO Unraid está moldeado por el equipo de LimeTech y la comunidad de Unraid. Nuestra documentación busca ser completa, precisa y actual. Como nuestros usuarios provienen de diversos orígenes en todo el mundo, esta guía establece la base para una escritura consistente y clara en toda la documentación de Unraid. + +--- + +## Convenciones de escritura + +### Estilo y tono + +Nuestro tono busca un equilibrio entre amistoso y formal, con el objetivo de obtener un contenido detallado y preciso con el que los usuarios puedan identificarse. + +- Utilice instrucciones formales y directas cuando la acción esté establecida y no deje lugar a desviaciones. +- Use un tono conversacional y explicativo al proporcionar contexto o escenarios para hacer que el contenido sea más accesible. + +Como contribuyente, considere el contexto y la audiencia al elegir su tono. + +:::important +Debido a que Unraid OS tiene una audiencia global, evitamos la jerga, el slang o los modismos. Estos pueden confundir a los hablantes no nativos de inglés y complicar el proceso de traducción. +::: + +### Audiencia: Escribe para todos los niveles + +Nuestros lectores van desde expertos en Linux que entienden los sistemas internos hasta principiantes que exploran Unraid por primera vez. + +Escriba de manera clara e inclusiva para que tanto expertos como novatos puedan seguir sin problemas. + +### El método ABC: precisión, brevedad, claridad + +Priorizamos: + +- **Precisión**: Asegurar que el contenido sea correcto y completamente probado. +- **Brevedad**: Ser conciso sin sacrificar detalles necesarios. +- **Claridad**: Usar un lenguaje sencillo y estructurar el contenido para facilitar su comprensión. + +--- + +## Sintaxis + +Los documentos de Unraid utilizan el formato Markdown combinado con estilos de texto específicos para que los usuarios puedan identificar rápidamente los elementos del interfaz y navegar por el WebGUI. + +| Tipo de elemento | Convención de estilo | Sintaxis Markdown | Ejemplo / Descripción | +| ---------------------------- | ----------------------------- | ------------------------------- | -------------------------------------------------- | +| Nombre de la opción o botón | Negrita | `**texto**` | Selecciona **Hecho** | +| Valor de entrada del usuario | Cursivas | `*texto*` | Ingrese un valor de *50gb* | +| Ruta de navegación | Negrita + cursivas; use → | `***nav1 → nav2***` | ***Configuraciones → Configuraciones de Disco*** | +| Etiqueta de pestaña | Negrita | **nombre\_pesta\ña** | Nombre de una pestaña para seleccionar | +| Etiqueta del checkbox | Negrita | **etiqueta\_de\_casilla** | Etiqueta de una opción de checkbox | +| Opción de menú desplegable | Cursivas | *opción\_del\_desplegable* | Opción seleccionable dentro deun menú desplegable | +| Título de diálogo | Encabezado 3 | `### Título del Diálogo` | Título para ventanas de diálogo emergentes | +| Texto de ayuda | Cursivas en línea | *texto de ayuda* | Explicación breve que se muestra al pasar el ratón | +| Elemento del menú | Negrita + cursivas | ***Menú → Submenú → Elemento*** | Navegación a través de menús anidados | +| Salida de CLI y sistema | Monoespacio (código en línea) | `` `texto` `` | Navega a `http://tower.local` | +| Mensaje de error | Monoespacio (código en línea) | `` `Error: mensaje` `` | Cadenas de error exactas o registros | +| Título del documento | Encabezado 1 | `# Encabezado` | (se muestra como) `

Encabezado

` | +| Sección del documento | Encabezado 2 | `## Encabezado` | (se muestra como) `

Encabezado

` | +| Subsección del documento | Encabezado 3 | `### Encabezado` | (se muestra como) `

Encabezado

` | + +:::note +Cada nivel de encabezado 2 (`##`) y menor aparece en la barra lateral de la Tabla de Contenidos (TOC) para facilitar la navegación. +::: + +--- + +## Formato para listas y tablas + +El uso eficaz de elementos estructurados, como listas y tablas, mejora la claridad de la información, facilita la comprensión y soporta referencias rápidas. + +### Listas + +Las listas ayudan a los usuarios a absorber, recordar y seguir puntos o pasos clave. Hay dos tipos principales, cada uno con casos de uso claros: + +- **Listas no ordenadas** (puntos): Úselas para agrupar elementos relacionados sin implicar un orden. + *Ejemplo:* "Lista de herramientas comunes de Unraid OS." + +- **Listas ordenadas** (numeradas): Úselas para mostrar una secuencia o procedimiento requerido. + *Ejemplo:* "Para iniciar el %%array|array%%..." + +:::tip[Best prácticas] +- Trate de introducir la lista con una frase clara finalizando en dos puntos. +- Utiliza de 4 a 6 elementos como máximo en una lista no ordenada para facilitar el escaneo y la memorización. Las listas más largas pueden ser mejor como una tabla. +::: + +### Tablas + +Las tablas son una excelente manera de organizar datos relacionados agrupando la información en filas y columnas, lo cual facilita una comparación más rápida y precisa. + +:::tip[Best prácticas] +- Utilice tablas para múltiples puntos de datos relacionados que se beneficien de una comparación lado a lado. +- Evite las tablas con solo 1 o 2 celdas; en su lugar, utilice listas con viñetas o frases. +- Introduzca la tabla con una frase que explique su propósito y contenido. +::: + +--- + +## Abreviaturas, acrónimos y siglas + +Para reducir la confusión a los lectores, siga estos principios respecto a las abreviaturas: + +- **Abreviaturas** son formas abreviadas de palabras que generalmente son innecesarias en los documentos de Unraid a menos que sean universalmente reconocidas. +- **Acrónimos** crean nuevas palabras a partir de las iniciales de otras palabras (por ejemplo, %%RAID|raid%%). +- **Siglas** usan iniciales que se pronuncian individualmente (por ejemplo, OS, %%ZFS|zfs%%). + +**Recomendaciones:** + +- Prefiera acrónimos o siglas preexistentes bien conocidos que sean familiares para su audiencia. +- Evite crear nuevas abreviaturas solo por el hecho de ser breve. +- Siempre escriba por completo acrónimos o siglas poco comunes la primera vez que se utilicen, seguido de la abreviatura entre paréntesis. + *Ejemplo:* Disco de Máquina Virtual (VMDK) + +--- + +## Hipervínculos a otros documentos o sitios + +El enlace estratégico permite a los lectores explorar temas relacionados y mejora su comprensión. Utilice estas pautas para un hiperenlace práctico y accesible. + +### Pautas para el texto del enlace + +- El texto del enlace debe describir claramente el destino, ayudando a todos los lectores a entender el propósito del enlace. +- Evite textos de enlace vagos como "Haga clic aquí" o "Leer más", ya que carecen de contexto. +- Evite usar URLs visibles como texto de enlace en línea. + +### Formato de enlaces + +- Utilice enlaces en línea de Markdown: + +``` +You can also check our [getting started guide](../unraid-os/getting-started/quick-start-guide.mdx). +``` + +- Siempre enlace al recurso más relevante y autorizado disponible. + +### Añadiendo terminología del glosario + +Unraid Docs utiliza un sistema centralizado de glosario para garantizar la consistencia y accesibilidad de los términos técnicos. Las entradas del glosario se mantienen en el archivo `glossary.yaml` ubicado en el directorio raíz. + +Para agregar o actualizar un término: + +1. Edite `glossary.yaml` usando la siguiente plantilla: + +``` +GlossaryTerm: + term: Display Name + def: Full definition text. + link:
Optional detailed link +``` + +2. Para agregar funcionalidad de ayuda emergente, haga referencia al término en la documentación usando la sintaxis: + + ``` + %%Term|GlossaryTerm%% + ``` + + ...donde el lado izquierdo de la barra es el texto que desea que se muestre, mientras que el lado derecho es la entrada de término correspondiente del archivo YAML. + +3. 3. La [página del glosario](../glossary.mdx) se actualizará automáticamente para incluir nuevos términos. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/docs-home.mdx b/i18n/es/docusaurus-plugin-content-docs/current/docs-home.mdx new file mode 100644 index 0000000000..cda8cf628c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/docs-home.mdx @@ -0,0 +1,55 @@ +--- +slug: / +sidebar_position: 0 +--- + +import Term from "@lunaticmuch/docusaurus-terminology/components/tooltip.js"; + +# Documentos de Unraid + +¡Bienvenido a la documentación oficial de Unraid! Este recurso integral está diseñado para ayudarte a sacar el máximo provecho de tu servidor Unraid, tanto si estás configurando tu primer sistema como si estás gestionando un entorno de homelab complejo. + +## Comenzando + +Si eres nuevo en Unraid, recomendamos comenzar con estas guías esenciales: + +- **[¿Qué es Unraid?](unraid-os/getting-started/what-is-unraid.mdx)** - Aprende sobre las características principales y beneficios de Unraid +- **[Configurar Unraid](unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx)** - Guía completa de configuración desde la instalación hasta el primer arranque +- **[Recorrido por el WebGUI](./unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx)** - Navega con confianza por el WebGUI + +## ¿Necesitas ayuda? + +### Foros de la comunidad + +Los [Foros de Unraid](https://forums.unraid.net/) son el corazón de la comunidad Unraid. Aquí encontrarás: + +- Discusión de usuarios y resolución de problemas +- Soporte de plugins y contenedores Docker +- Recomendaciones de hardware y discusiones de compatibilidad +- Soluciones y alternativas desarrolladas por la comunidad + +### Recursos oficiales + +- **[Página de inicio de Unraid](https://unraid.net/)** - Información del producto, descargas y licencias +- **[Aplicaciones de la comunidad](https://unraid.net/community/apps)** - Explora e instala plugins y contenedores Docker +- **[Unraid Connect](https://connect.myunraid.net/)** - Panel de gestión remota + +### Opciones de soporte + +- **Soporte de la comunidad**: Publica preguntas en los [foros](https://forums.unraid.net/) +- **Documentación**: Usa la función de búsqueda y navegación para encontrar respuestas +- **Soporte de plugins**: Verifica los hilos individuales de plugins en la sección [Aplicaciones de la Comunidad](https://forums.unraid.net/forum/89-community-applications/) + +## Términos del glosario + +A lo largo de esta documentación, notarás términos formateados como %%WebGUI|web-gui%%. Estos son términos del glosario que proporcionan definiciones y explicaciones rápidas. + +Para usarlos, pasa el cursor sobre los términos del glosario para ver tooltips con las definiciones. Puedes ver todo el glosario en la [página del Glosario](glossary.mdx) + +## Contribuyendo + +¿Encontraste un error o tienes una sugerencia? La documentación es de código abierto y está alojada en [GitHub](https://github.com/unraid/docs). ¡Agradecemos las contribuciones de la comunidad! + +--- + +**¿Listo para sumergirte?** Comienza con la sección de [Primeros Pasos](unraid-os/getting-started/what-is-unraid.mdx), o utiliza la función de búsqueda para encontrar información específica. Si no puedes encontrar lo que estás buscando, ¡los [Foros de Unraid](https://forums.unraid.net/) siempre están ahí para ayudarte! diff --git a/i18n/es/docusaurus-plugin-content-docs/current/glossary.mdx b/i18n/es/docusaurus-plugin-content-docs/current/glossary.mdx new file mode 100644 index 0000000000..5ee25c8654 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/glossary.mdx @@ -0,0 +1,8 @@ +--- +sidebar_position: 999 +sidebar_label: Glosario +--- + +# Glosario + +%%RemarkAutoGlossary::list\_all%% diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json new file mode 100644 index 0000000000..a49a7c8f22 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Conectar Unraid", + "position": 2, + "link": { + "type": "generated-index" + } +} diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx new file mode 100644 index 0000000000..e1dd1e493b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx @@ -0,0 +1,116 @@ +--- +sidebar_position: 2 +sidebar_label: Copia de seguridad flash automatizada +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Copia de seguridad flash automatizada + +Hacer una copia de seguridad de su unidad flash de Unraid es crucial para una rápida recuperación de problemas como fallos de hardware, eliminaciones accidentales o corrupción de datos. Mientras que las copias de seguridad locales (como copiar su unidad flash a otro dispositivo USB o recurso compartido de red) permiten un fácil acceso y control, pueden ser vulnerables al robo, incendio o fallos de hardware que pueden afectar a toda su configuración. Por otro lado, las copias de seguridad en la nube proporcionan un almacenamiento seguro fuera del sitio para su configuración, protegiendo contra desastres locales y permitiendo la recuperación desde cualquier lugar. + +A diferencia de las copias de seguridad tradicionales que se centran en los datos de usuario, %%VMs|vm%% o contenedores de Docker, las copias de seguridad flash preservan específicamente la configuración de su sistema operativo Unraid, la licencia y los ajustes del sistema. Este enfoque le permite restaurar las operaciones de su servidor rápidamente sin tener que empezar de cero. Unraid Connect permite copias de seguridad automáticas en la nube de la configuración de su sistema operativo. Si su dispositivo flash falla, puede restaurar rápidamente su última copia de seguridad con la herramienta [Unraid USB Flash Creator](https://unraid.net/download). + +La copia de seguridad flash es completamente opcional al usar Unraid Connect. + +:::tip +Utilice tanto métodos de respaldo local como en la nube para una protección máxima. Las copias de seguridad en la nube proporcionan una capa adicional de resistencia que las soluciones solo locales no pueden ofrecer. +::: + +## Recopilación de datos y privacidad + +
+ Haz clic para ver qué datos se recopilan y cómo los manejamos + + Unraid Connect toma en serio tu privacidad y datos al usar la copia de seguridad flash: + +

Propósito

+ + La copia de seguridad rápida solo conserva los archivos de configuración necesarios para restaurar tu entorno del SO Unraid. Esto te ayuda a recuperarte rápidamente y mantener la continuidad del servicio en caso de que tu dispositivo flash presente una falla. + +

Datos recolectados

+ + La copia de seguridad incluye solo archivos de configuración, asegurando que la información sensible, como contraseñas y claves de %%WireGuard|wireguard%%, esté excluida. Los archivos XML de plantillas de Docker pueden ser parte de la copia de seguridad y podrían contener credenciales específicas de la aplicación. + +

Retención de datos

+ + Solo se conserva la última copia de seguridad. Si una copia de seguridad excede ciertos límites—específicamente, si los archivos individuales superan los 10 MB o el tamaño total del repositorio excede los 100 MB—será eliminada y recreada. Las copias de seguridad también se eliminan cuando desactivas la función de copia de seguridad rápida o después de un periodo específico de inactividad. + +

Compartición de datos

+ + Los datos de la copia de seguridad rápida nunca se comparten con terceros. Se almacenan exclusivamente para proporcionarte servicios de respaldo y restauración. +
+ +## Habilitación de la copia de seguridad flash + +Unraid Connect excluye datos sensibles, como contraseñas de cuentas y claves de %%WireGuard|wireguard%%, de las copias de seguridad hasta que la encriptación completa esté disponible. Sin embargo, los archivos XML de las plantillas de Docker (que podrían contener credenciales de aplicaciones) están incluidos. Se están desarrollando soluciones de encriptación. + +Para activar la copia de seguridad flash: + +1. Ve a ***Configuración → Acceso de Gestión → API de Unraid***. + +
+ ![Activar copia de seguridad flash](/img/flashbackupbutton.png) +
+ +2. Bajo **Copia de seguridad flash**, haz clic en **Activar**. +3. Espere a que se complete la activación y la copia de seguridad inicial. El estado mostrará **Activado: Actualizado** cuando haya finalizado. + +Después de la activación, cualquier cambio de configuración se respaldará automáticamente en la nube en 1-2 minutos. + +:::important +Las copias de seguridad no incluyen los archivos `config/shadow` o `config/smbpasswd`. Las cuentas de usuario se conservan, pero no las contraseñas. Deberá restablecer todas las contraseñas de los usuarios, incluida la contraseña de root, después de la restauración. Las claves de %%WireGuard|wireguard%% también están excluidas. +::: + +La copia de seguridad de flash está diseñada para almacenar archivos de configuración esenciales, no una copia completa de su unidad flash. No realiza copias de seguridad de archivos transitorios (como registros) o binarios de aplicaciones. Las configuraciones de plugins están incluidas, pero los archivos de aplicaciones deberán descargarse nuevamente al inicio. Se realizan copias de seguridad de archivos individuales de hasta 10 MB; si la copia de seguridad total excede los 100 MB, se eliminará y recreará. + +## Restauración de copia de seguridad flash + +Para restaurar tu configuración: + +1. Inicia sesión en Unraid Connect. +2. Selecciona **Detalles** en el Tablero. +3. Haz clic en **Generar copia de seguridad flash** desde el mosaico de copia de seguridad flash. +4. El sistema crea un archivo zip que contiene tu configuración del sistema operativo y versión de lanzamiento. +5. Haz clic en **Descargar copia de seguridad flash** para obtener el archivo zip. +6. Usa el [Creador de Flash USB de Unraid](https://unraid.net/download) para restaurar la copia de seguridad en una nueva unidad flash. + +### Pasos después de la restauración + +Después de iniciar con la unidad flash restaurada: + +- Re-activa la copia de seguridad flash en ***Configuración → Acceso de Gestión → API de Unraid***. +- Restablece las contraseñas para todos los usuarios (incluyendo la raíz) en la página de Usuarios. +- Para cada %%VPN Tunnel|vpn-tunnel%% y par en ***Configuración → Gestor de VPN***, genera nuevas claves y descarga las configuraciones de cliente actualizadas. +- Si el acceso a Internet no está disponible inmediatamente después de arrancar, reinstale los plugins a través de ***Apps → Previous Apps*** una vez que se restablezca la conectividad. Los archivos de configuración estarán listos para su uso. + +## Desactivación de la copia de seguridad flash + +Para desactivar la copia de seguridad flash: + +1. En ***Configuración → Acceso de Gestión → API de Unraid***, haz clic en **Desactivar** para la copia de seguridad flash. +2. En el cuadro de diálogo de confirmación, marque **También eliminar la copia de seguridad en la nube** si desea eliminar su copia de seguridad inmediatamente. De lo contrario, las copias de seguridad se eliminarán automáticamente después de un período de inactividad. + +## Privacidad y seguridad + +### Cifrado de copia de seguridad + +Actualmente, las copias de seguridad de flash se almacenan en la nube sin encriptación. Como precaución, los datos sensibles, incluidas todas las contraseñas de usuario y root, así como todas las claves de %%WireGuard|wireguard%%, nunca se incluyen en la copia de seguridad. + +### Política de datos sensibles + +Para proteger tu privacidad, nunca se almacenan en copias de seguridad en la nube los siguientes elementos: + +- Contraseñas de cuentas de usuario o raíz de Unraid +- Claves %%WireGuard|wireguard%% públicas, privadas o compartidas + +:::note\[Reminder] + +El respaldo de flash es solo para la recuperación de configuraciones. Siempre incorpore estrategias de respaldo adicionales para sus datos y secretos críticos. + +::: + +--- + +\* *"%%WireGuard|wireguard%%" y el logotipo de "%%WireGuard|wireguard%%" son marcas registradas de Jason A. Donenfeld.* diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx new file mode 100644 index 0000000000..49836256cd --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx @@ -0,0 +1,234 @@ +--- +sidebar_position: 1 +sidebar_label: Visión general y configuración +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ConnectChangeBanner from './partials/customization/change-banner.mdx'; +import ConnectRearrangeDashboard from './partials/customization/rearrange-dashboard.mdx'; +import ConnectSwitchThemes from './partials/customization/switch-themes.mdx'; + +# Resumen y configuración de Unraid Connect + +**Unraid Connect** es un complemento habilitado para la nube diseñado para mejorar la experiencia de su servidor Unraid OS. Facilita la gestión, el monitoreo y el mantenimiento del servidor como nunca antes, llevando la comodidad de la nube directamente a su laboratorio en casa o entorno empresarial. + +Unraid Connect funciona sin problemas con Unraid OS, mejorando la experiencia de su servidor sin alterar sus funciones principales. Puede considerar Unraid Connect como su centro de mando remoto. Expande las capacidades de su servidor Unraid proporcionando acceso seguro basado en la web y funciones avanzadas, sin importar dónde se encuentre. + +Con Unraid Connect, puedes: + +- Acceder y gestionar tu servidor Unraid de manera remota desde cualquier dispositivo, en cualquier parte del mundo. +- Monitorear en tiempo real la salud del servidor y el uso de los recursos, incluyendo el estado del almacenamiento, red y contenedores Docker. +- Realizar y programar copias de seguridad online seguras para proteger tu configuración e información de licencias. +- Recibir notificaciones sobre la salud del servidor, estado del almacenamiento y eventos críticos. +- Utilizar acceso remoto dinámico y enlaces profundos del servidor para navegar hacia páginas de gestión específicas o solucionar problemas rápidamente. +- Gestionar múltiples servidores desde un solo tablero, perfecto para usuarios con más de un sistema Unraid. + +Unraid Connect es más que solo un complemento; es una extensión esencial de la plataforma Unraid, diseñada para maximizar el valor, seguridad y conveniencia de tu inversión en Unraid OS. + +[**Haz clic aquí para sumergirte en Unraid Connect!**](https://connect.myunraid.net) + +## Recopilación de datos y privacidad + +
+ Haz clic para ver qué datos se recopilan y cómo los manejamos + + Unraid Connect prioriza tu privacidad y transparencia. Esto es lo que necesitas saber sobre cómo manejamos tus datos: + +

Qué datos se recopilan y por qué

+ + Cuando tu servidor se conecta a Unraid.net, establece una conexión segura con nuestra infraestructura y transmite solo los datos necesarios requeridos para una experiencia fluida en el Panel de Unraid Connect. Esto incluye: + + - Nombre del servidor, descripción e icono + - Detalles del archivo clave y número de identificación %%GUID|guid%% + - URL de acceso local e IP LAN (solo si se instala un certificado) + - URL de acceso remoto e IP WAN (si se activa el acceso remoto) + - Versión de Unraid instalada y tiempo de actividad + - Versión del complemento Unraid Connect y versión/tiempo de actividad del unraid-api + - Tamaño y uso del %%Array|array%% (solo números, sin detalles de archivos) + - Número de contenedores Docker y %%VMs|vm%% instaladas y en ejecución + + Usamos estos datos únicamente para habilitar las funciones de Unraid Connect, como monitoreo remoto, gestión y notificaciones. No se usan para publicidad o perfilado. + +

Política de retención de datos

+ + - Solo conservamos la actualización más reciente de tu servidor; no se almacena ningún dato pasado. + - Los datos se retienen mientras tu servidor esté registrado y usando Unraid Connect. + - Para eliminar tus datos, simplemente desinstala el complemento y elimina cualquier certificado %%SSL|ssl%% emitido a través de Let's Encrypt. + +

Compartición de datos

+ + - Tus datos **no se comparten con terceros** a menos que sea necesario para los servicios de Unraid Connect, como la provisión de certificados a través de Let's Encrypt. + - No recopilamos ni compartimos ningún contenido del usuario, detalles de archivos o información personal más allá de lo especificado anteriormente. + + Para más detalles, consulta nuestra página de [Políticas](https://unraid.net/policies) +
+ +## Instalación + +Unraid Connect está disponible como un plugin que requiere Unraid OS 6.10 o posterior. Antes de comenzar, asegúrese de que su servidor esté conectado a Internet y tenga instalado el plugin [Community Applications](../unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx). + +Para instalar Unraid Connect: + +1. Navega a la pestaña **Apps** en el WebGUI de Unraid. +2. Busque **Unraid Connect** y proceda a instalar el plugin. Espere a que la instalación se complete completamente antes de cerrar el diálogo. +3. En la esquina superior derecha de tu WebGUI de Unraid, haz clic en el logotipo de Unraid y selecciona **Iniciar sesión**. + +
+ ![Icono de Unraid Connect](/img/icon_unraidconnect.png) +
+ +4. Inicia sesión con tus credenciales de Unraid.net o crea una nueva cuenta si es necesario. +5. Sigue las instrucciones en pantalla para registrar tu servidor con Unraid Connect. +6. Después del registro, puedes acceder al [Tablero de Unraid Connect](https://connect.myunraid.net) para una gestión centralizada. + +:::note +Unraid Connect requiere un certificado de myunraid.net para la gestión remota segura y el acceso. Para provisionar un certificado, ve a ***Configuración → Gestión de Acceso*** en el WebGUI y haz clic en **Provisión** en la sección de Certificados. +::: + +## Panel de Control + +El **Tablero de Unraid Connect** ofrece una vista centralizada, basada en la nube, de todos tus servidores Unraid registrados, con funciones como: + +- **Mis servidores:** Todos los servidores vinculados aparecen en una barra lateral y como fichas interactivas para una fácil selección. +- **Estado (de un vistazo):** Rápidamente verás qué servidores están en línea o fuera de línea, junto con su versión de Unraid OS, tipo de licencia y actividad reciente. +- **Salud y alertas:** Indicadores visuales muestran la salud del servidor, notificaciones y estado de actualización. + +Cuando hagas clic en **Detalles** en un servidor, verás: + +- **En línea/Fuera de línea:** Estado de conectividad en tiempo real. +- **Tipo de licencia:** Starter, Unleashed o Lifetime. +- **Tiempo de actividad:** Duración que el servidor ha estado funcionando. +- **Versión de Unraid OS:** Versión actual y disponibilidad de actualizaciones. +- **Almacenamiento:** Espacio total y libre en todos los arrays y pools. +- **Métricas de salud:** Uso de CPU, uso de memoria y temperatura (si es compatible). +- **Notificaciones:** Alertas de hardware/software, advertencias y errores. +- **Copia de seguridad flash:** Estado y fecha de la última copia de seguridad exitosa. + +--- + +## Gestionando tu servidor de forma remota + +:::tip +Para utilizar todas las funciones de gestión, provisiona un certificado myunraid.net bajo ***Configuración → Gestión de Acceso*** en tu servidor. +::: + +Con un certificado **myunraid.net** válido, Unraid Connect habilita la gestión remota segura de servidores directamente desde la interfaz web de Connect. + +Las funciones de gestión remota incluyen: + +- **Acceso remoto al WebGUI:** Accede al WebGUI desde cualquier lugar. +- **Controles del array:** Iniciar o detener %%array|array%%s y gestionar pools de almacenamiento. +- **Gestión de Docker y VM:** Ver, iniciar, detener, y controlar contenedores y %%VM|vm%%s. +- **Paridad y Limpieza:** Inicia trabajos de verificación de %%paridad|parity-check%% o limpieza %%ZFS|zfs%%/%%BTRFS|btrfs%% +- **Copia de seguridad flash:** Iniciar y monitorear copias de seguridad del dispositivo flash en la nube. +- **Diagnósticos:** Descargar un zip de diagnósticos para soporte +- **Notificaciones:** Revisar y reconocer alertas del sistema. +- **Controles del servidor:** Reiniciar o apagar tu servidor de forma remota. +- **Gestión de usuarios:** Gestionar el acceso y registro de cuentas Unraid.net. + +Puedes manejar múltiples servidores desde cualquier dispositivo: teléfono, tableta o computadora, con una sola ventana del navegador. + +--- + +## Enlaces profundos + +El enlace profundo en Unraid Connect te permite saltar directamente a secciones específicas de tu WebGUI de Unraid con un solo clic. Simplemente haz clic en cualquiera de los botones de enlace circulares (abajo) en la interfaz de Connect para ir directamente a la página de gestión relevante para tu servidor. + +
+ ![Enlaces profundos](/img/Deep-linking.png) +
+ +--- + +## Personalización + +Unraid Connect ofrece una experiencia de tablero flexible, permitiéndote personalizar la vista y apariencia de tu servidor. Las opciones de personalización están organizadas a continuación para una fácil referencia. + + + + + + + + + + + + + + + +--- + +## Gestión de licencias + +Gestionar tus licencias en Unraid Connect es fácil. Bajo la sección **Mis Claves**, puedes: + +- Ver o volver a emitir una clave a un nuevo USB. +- Actualizar tu nivel de licencia directamente desde la UI de Connect. +- Descargar archivos de clave de registro para respaldo o transferencia. +- Revisar el estado y vencimiento de la licencia (si corresponde). + +
+ ![Mis Claves](/img/mykeys.png) +
+ +No necesitas salir de la interfaz Connect para gestionar o actualizar tus licencias. + +--- + +## Localización del idioma + +Unraid Connect admite múltiples idiomas para satisfacer a una base de usuarios global. Puedes cambiar tu preferencia de idioma a través del selector de idioma en la interfaz de Connect. + +Para cambiar tu preferencia de idioma: + +1. Abre la UI de Connect. +2. Ve al selector de idiomas. + +
+ ![Selector de idioma](/img/languageselector.png) +
+ +3. Selecciona tu idioma preferido de la lista. + +La interfaz se actualizará automáticamente para reflejar tu selección. + +--- + +## Cierre de sesión + +Puedes cerrar sesión de Unraid Connect en cualquier momento desde ***Configuración → Gestión de Acceso → Unraid Connect → Estado de cuenta*** haciendo clic en el botón **Cerrar sesión**. + +Cuando cierres la sesión: + +- Tu servidor sigue listado en el panel de Connect, pero pierdes acceso a las funciones de gestión remota. +- El acceso remoto, las copias de seguridad flash en la nube y otras funciones de Unraid Connect se deshabilitarán para ese servidor. +- Aún puedes descargar tus claves de registro, pero no puedes gestionar o monitorear el servidor de forma remota hasta que vuelvas a iniciar sesión. +- Cerrar sesión **no** desconecta tu servidor de la red local ni afecta el acceso local. + +--- + +## Desinstalación del complemento + +Cuando desinstalas el complemento Unraid Connect: + +- Todos los archivos de copia de seguridad flash serán desactivados y eliminados de tu flash drive local. +- Las copias de seguridad en la nube están marcadas para ser eliminadas de los servidores Unraid; se retendrán durante 30 días, después de los cuales se purgarán permanentemente. Para una eliminación inmediata, [desactiva la Copia de Seguridad Flash](./automated-flash-backup.mdx) antes de desinstalar. +- El acceso remoto será deshabilitado. Asegúrate de eliminar cualquier regla relacionada con el reenvío de puertos de tu router. +- Tu servidor se cerrará la sesión de Unraid.net. + +:::note +Desinstalar el plugin **no** revierte la URL de tu servidor de `https://yourpersonalhash.unraid.net` a `http://computername`. Si deseas cambiar la URL de acceso, consulta [Deshabilitando SSL para acceso local](../unraid-os/system-administration/secure-your-server/securing-your-connection.mdx#disabling-ssl-for-local-access). +::: + +--- + +## Errores de conexión + +Si encuentras errores de conexión en Unraid Connect, [abre un terminal](../unraid-os/system-administration/advanced-tools/command-line-interface.mdx) desde el WebGUI y ejecuta: + +``` +unraid-api restart +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx new file mode 100644 index 0000000000..efa2f14c21 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx @@ -0,0 +1 @@ +Para mostrar la imagen de banner de su servidor en el panel de Connect, cargue o seleccione una imagen de banner desde su %%WebGUI|web-gui%% en ***Configuración → Configuración de Pantalla → Banner***. Este banner aparecerá automáticamente en el panel de Connect para ese servidor. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx new file mode 100644 index 0000000000..685e2cb03a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx @@ -0,0 +1 @@ +Puede personalizar el diseño de su panel arrastrando y soltando mosaicos de servidores. En el panel de Connect, haga clic en el botón hamburguesa (≡) en cualquier mosaico para reorganizar su posición. Esto le permite priorizar la información y los servicios más importantes para usted. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx new file mode 100644 index 0000000000..562d770801 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx @@ -0,0 +1 @@ +Cambie entre el modo oscuro y claro haciendo clic en el ícono de Sol o Luna en el extremo derecho de la interfaz Connect. Su preferencia de tema se aplicará instantáneamente en todo el panel de Connect para una experiencia consistente. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx new file mode 100644 index 0000000000..d4226839df --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx @@ -0,0 +1,5 @@ +**Acceso remoto dinámico** proporciona acceso seguro bajo demanda a tu %%WebGUI|web-gui%%. + +- **El acceso se habilita solo cuando lo necesitas.** El %%WebGUI|web-gui%% permanece cerrado a internet por defecto, minimizando la superficie de ataque. +- **Funciona con %%UPnP|upnp%% o reenvío manual de puertos.** +- **Abre y cierra automáticamente el acceso** a través del panel de Connect o API, con sesiones limitadas por tiempo para mayor seguridad. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx new file mode 100644 index 0000000000..19b56f600d --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx @@ -0,0 +1,4 @@ +**Acceso remoto estático** mantiene tu %%WebGUI|web-gui%% continuamente disponible desde internet. + +- **El servidor siempre es accesible desde internet** en el puerto configurado. +- **Mayor riesgo:** El %%WebGUI|web-gui%% está expuesto al tráfico WAN en todo momento, aumentando la vulnerabilidad potencial. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx new file mode 100644 index 0000000000..66a244bd79 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx @@ -0,0 +1,155 @@ +--- +sidebar_position: 3 +sidebar_label: Acceso remoto +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RemoteAccessDynamic from './partials/remote-access/dynamic.mdx'; +import RemoteAccessStatic from './partials/remote-access/static.mdx'; + +# Acceso remoto + +Desbloquea acceso seguro basado en navegador a tu %%WebGUI|web-gui%% de Unraid desde cualquier lugar con acceso remoto. Esta función es ideal para gestionar tu servidor cuando estás fuera de casa, no se requiere configuración complicada de redes o %%VPN Tunnel|vpn-tunnel%%. Para necesidades más avanzadas, como conectar a contenedores Docker o acceder a unidades de red, un %%VPN Tunnel|vpn-tunnel%% sigue siendo la solución recomendada. + +:::important[Security recordatorio] +Antes de habilitar el acceso remoto, asegúrese de que su contraseña de root sea segura y única. Actualícela en la página de **Usuarios** si es necesario. Además, mantenga su Unraid OS actualizado a la última versión para protegerlo contra vulnerabilidades de seguridad. [Más información sobre la actualización de Unraid aquí](../unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx). +::: + +El acceso remoto a través de Unraid Connect proporciona: + +- **Conveniencia** - Accede rápidamente a la interfaz de gestión de tu servidor desde cualquier lugar, utilizando una conexión segura y gestionada en la nube. +- **Seguridad** - Los modos de acceso dinámico limitan la exposición al permitir el acceso a Internet solo cuando es necesario, lo que ayuda a reducir los riesgos de ataques automatizados. +- **Simplicidad** - No hay necesidad de configuración manual de reenvío de puertos o de cliente VPN para tareas de gestión básicas. + +:::tip +Para un acceso completo a la red o para casos de uso avanzados, considere configurar [Tailscale](../unraid-os/system-administration/secure-your-server/tailscale.mdx) o una solución VPN. +::: + +--- + +## Configuración inicial + +Para habilitar el acceso remoto: + +1. En el Unraid %%WebGUI|web-gui%%, navega a ***Configuraciones → Acceso de Gestión***. +2. Verifique el **puerto HTTPS** (por defecto: 443). Si este puerto está en uso (por ejemplo, por Docker), seleccione un puerto no utilizado por encima de 1000 (como 3443, 4443 o 5443). +3. Haz clic en **Aplicar** si cambiaste alguna configuración. +4. Debajo de **archivo de certificado firmado por CA**, haz clic en **Proveer** para generar un certificado confiable. + +Tu servidor Unraid estará listo para aceptar conexiones remotas seguras a través del %%WebGUI|web-gui%%, usando el puerto configurado y un certificado confiable. + +--- + +## Eligiendo un tipo de acceso remoto + +Unraid Connect ofrece dos modos: + + + + + + + + + + + +| Característica | Acceso remoto dinámico | Acceso remoto estático | +| -------------------------------------- | -------------------------------------- | ------------------------------------- | +| %%WebGUI\|web-gui%% abierto a internet | Solo cuando se habilita | Siempre | +| Superficie de ataque | Minimizado | Maximizado | +| Automatización | Apertura/cierre automático vía Connect | Configuración manual, siempre abierto | +| Soporte para %%UPnP\|upnp%% | Sí | Sí | +| | **Recomendado para la mayoría** | | + +## Configuración del acceso remoto dinámico + +Para configurar el acceso remoto dinámico: + +1. En ***Configuraciones → Acceso de Gestión → API de Unraid***, selecciona una opción dinámica del menú desplegable de Acceso Remoto: + - **Dinámico - UPnP:** Usa %%UPnP|upnp%% para abrir y cerrar un puerto aleatorio automáticamente (requiere %%UPnP|upnp%% habilitado en tu router). + - **Dinámico - Reenvío de puerto manual:** Requiere que reenvíes el puerto seleccionado en tu router manualmente. + +2. Navega a [Unraid Connect](https://connect.myunraid.net/), y dirígete a la página de gestión o de detalles del servidor. + +3. La tarjeta **Acceso remoto dinámico** mostrará un botón si tu servidor no es actualmente accesible desde tu ubicación. + +4. Haga clic en el botón para habilitar el acceso WAN. Si usa %%UPnP|upnp%%, se crea un nuevo arrendamiento de reenvío de puertos (típicamente por 30 minutos) y se renueva automáticamente mientras está activo. + +5. La tarjeta mostrará el estado actual y el estado de %%UPnP|upnp%%. + +6. Después de 10 minutos de inactividad, o si hace clic en **Desactivar acceso remoto**, el acceso a internet se revoca automáticamente. Los arrendamientos de %%UPnP|upnp%% también se eliminan. + +--- + +## Usando UPnP (Universal Plug and Play) + +%%UPnP|upnp%% automatiza el reenvío de puertos, simplificando el acceso remoto sin requerir configuración manual del router. + +Para configurar %%UPnP|upnp%%: + +1. **Habilita %%UPnP|upnp%% en tu router.** + Asegúrate de que tu router sea compatible con %%UPnP|upnp%% y verifica que esté habilitado en la configuración del router. + +2. **Habilita %%UPnP|upnp%% en Unraid.** + Navega a ***Configuración → Acceso al Management*** y cambia **Usar %%UPnP|upnp%%** a **Sí**. + +3. **Selecciona %%UPnP|upnp%% en Unraid Connect.** + En la página de configuración de Unraid Connect, elige la opción de acceso remoto como %%UPnP|upnp%% (selecciona ya sea Dinámico o Siempre Activo) y luego haz clic en **Aplicar**. + +4. **Verifica el reenvío de puertos (solo Siempre Activo).** + Haz clic en el botón **Comprobar**. Si tiene éxito, verás el mensaje, "Tu servidor Unraid es accesible desde Internet". + + Para el reenvío dinámico, necesitas hacer clic en **Habilitar Acceso Remoto Dinámico** en [Unraid Connect](https://connect.myunraid.net/) para permitir el acceso. + +:::caution\[Troubleshooting] + +Si la configuración cambia de %%UPnP|upnp%% a Reenvío de Puertos Manual al recargar, Unraid podría no poder comunicarse con su router. Verifique que %%UPnP|upnp%% esté habilitado y considere actualizar el firmware de su router. + +::: + +--- + +## Usando reenvío de puerto manual + +El reenvío de puerto manual proporciona un mayor control y es compatible con la mayoría de los routers. + +Para configurar el reenvío de puerto manual: + +1. **Elige un puerto WAN:** Elige un número de puerto aleatorio por encima de 1000 (por ejemplo, 13856 o 48653), en lugar de usar el puerto por defecto 443. + +2. **Aplica configuraciones en Unraid:** Haz clic en **Aplicar** para guardar el puerto que seleccionaste. + +3. **Configure su router:** Establezca una regla de reenvío de puertos en su router, direccionando su puerto WAN elegido al puerto HTTPS de su servidor. La interfaz de Unraid proporciona los puertos correctos y la dirección IP. + + Algunos routers pueden requerir que el puerto WAN y el puerto HTTPS coincidan. Si es así, use el mismo número alto y aleatorio para ambos. + +4. **Verifique el reenvío de puertos (Solo Siempre Encendido):** Presione el botón **Verificar**. Si todo es correcto, verá “Su servidor Unraid es accesible desde Internet.” + + Para el reenvío dinámico, asegúrate de hacer clic en **Habilitar Acceso Remoto Dinámico** en [Unraid Connect](https://connect.myunraid.net/) para habilitar el acceso. + +5. **Accede a tu servidor:** Inicia sesión en [Unraid Connect](https://connect.myunraid.net/) y haz clic en el enlace **Gestionar** para conectar con tu servidor de forma remota. + +--- + +## Habilitar acceso local seguro + +El acceso local seguro asegura que todas las conexiones a tu Unraid %%WebGUI|web-gui%%, incluso dentro de tu red doméstica u oficina, se cifren usando HTTPS, protegiendo así cualquier información sensible, como credenciales de inicio de sesión y datos de configuración. + +Beneficios del acceso local seguro incluyen: + +- **Cifrado** - Todos los datos intercambiados entre tu navegador y el servidor están protegidos. +- **Consistencia** - Usa la misma URL segura para acceso tanto local como remoto. +- **Cumplimiento** - Cumple con las mejores prácticas de seguridad para proteger interfaces administrativas. + +Para habilitar el acceso local seguro: + +1. Ve a ***Configuraciones → Acceso de Gestión***. +2. En la sección de **certificado firmado por CA**, verifica las advertencias de Rebobinado DNS. + - Si no se muestran advertencias, configura **Usar SSL/TLS** a **Estricto**. + - Si hay advertencias, revisa [Protección Contra Rebobinado DNS](../unraid-os/system-administration/secure-your-server/securing-your-connection.mdx#dns-rebinding-protection). + +:::important +Con %%SSL|ssl%%/%%TLS|tls%% configurado en Estricto, los dispositivos clientes deben resolver el nombre DNS de su servidor. Si su conexión a Internet falla, el acceso al %%WebGUI|web-gui%% puede perderse. Consulte [Acceder a su servidor cuando DNS está caído](../unraid-os/system-administration/secure-your-server/securing-your-connection.mdx#accessing-your-server-when-dns-is-down) para pasos de recuperación. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/_category_.json new file mode 100644 index 0000000000..a732ac293f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Unraid OS", + "position": 1, + "link": { + "type": "generated-index" + } +} diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json new file mode 100644 index 0000000000..5b45e600dc --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Configuraciones avanzadas", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json new file mode 100644 index 0000000000..71e6e28bac --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Optimizar almacenamiento", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000..795844d0e2 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx @@ -0,0 +1,342 @@ +--- +sidebar_position: 1 +sidebar_label: Almacenamiento ZFS +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Almacenamiento ZFS + +:::important[Special gracias] +Nos gustaría expresar nuestro agradecimiento a Ed Rawlings ([Spaceinvader One](https://www.youtube.com/c/SpaceinvaderOne)) por la experiencia y orientación de la que se ha adaptado esta documentación de almacenamiento %%ZFS|zfs%%. Sus tutoriales e ideas han ayudado a innumerables usuarios de Unraid a dominar técnicas de almacenamiento avanzadas. Apreciamos sus continuas contribuciones a la comunidad de Unraid. +::: + +%%ZFS|zfs%% aporta integridad de datos avanzada, configuraciones de almacenamiento flexibles y alto rendimiento a tu sistema Unraid. Esta guía explica los conceptos básicos de %%ZFS|zfs%% y te guía en la gestión de pools %%ZFS|zfs%% directamente desde el %%WebGUI|web-gui%% de Unraid. Ya sea que estés configurando un nuevo almacenamiento %%ZFS|zfs%% o integrando un pool existente, encontrarás los pasos y contexto que necesitas para comenzar con confianza. + +--- + +## ¿Por qué ZFS? + +%%ZFS|zfs%% es un sistema de archivos moderno y un administrador de volúmenes diseñado para proteger sus datos, prevenir la corrupción y simplificar la gestión de almacenamiento. + +Con %%ZFS|zfs%%, obtienes: + +- Verificaciones automáticas de integridad de datos y autoreparación +- Soporte integrado para %%RAID|raid%% (espejos, RAIDZ) +- %%Snapshots|snapshot%% y clones para copias de seguridad y restablecimientos fáciles +- %%ZFS|zfs%% envía/recibe para una replicación eficiente +- Compresión en tiempo real + +Unraid supports %%ZFS|zfs%% for any storage pool. You can create a new %%ZFS|zfs%% pool, import one from another system, or use Unraid’s unique hybrid %%ZFS|zfs%% setup: add a %%ZFS|zfs%%-formatted disk directly to the Unraid %%array|array%% (not a pool) and combine %%ZFS|zfs%% features with Unraid’s %%parity|parity%% protection. + +:::info\[Example] + +Puede usar %%snapshots|snapshot%% de %%ZFS|zfs%% y replicación en un solo disco como un objetivo de copia de seguridad, o replicar un pool rápido %%ZFS|zfs%% SSD a un disco %%ZFS|zfs%% en la %%array|array%% protegido por la %%parity|parity%% de Unraid, obteniendo lo mejor de ambos mundos. + +::: + +
+ ![](/img/zfs1.png) +
+ +:::note +The hybrid %%ZFS|zfs%%-in-array approach is helpful for specific backup or replication scenarios but is not a replacement for a full %%ZFS|zfs%% pool. %%ZFS|zfs%% disks in the %%array|array%% are managed individually; you do not get the combined performance, redundancy, or self-healing of a true multi-disk %%ZFS|zfs%% pool. For full %%ZFS|zfs%% functionality, always use dedicated %%ZFS|zfs%% pools. +::: + +### Pools, vdevs y redundancia + +Un pool %%ZFS|zfs%% (llamado "zpool") está compuesto por uno o más vdevs (dispositivos virtuales). Cada vdev es un grupo de discos físicos con su propio nivel de redundancia. %%ZFS|zfs%% escribe datos a través de vdevs, pero cada vdev es responsable de su tolerancia a fallos. + +:::caution +La redundancia siempre es por vdev. Si alguno falla, todo el pool falla, incluso si otros vdevs están saludables. ¡Planifica tus vdevs con cuidado! +::: + +
+ ![](/img/zfs2.png) +
+ +--- + +## Creación de un grupo ZFS + +Para crear un grupo %%ZFS|zfs%% usando el %%WebGUI|web-gui%%: + +1. Detenga el %%array|array%%. +2. Haga clic en **Agregar Grupo**. + +
+ ![](/img/zfs3.png) +
+ +3. Elija un nombre para su grupo (por ejemplo, `raptor`). +4. Configure el número de ranuras para coincidir con el número de discos que desea en sus vdev(s) de datos primarios. + +:::note +Esta cantidad inicial de ranuras es solo para vdevs de datos. Los vdevs de soporte (como unidades de registro o caché) se pueden agregar por separado después de crear el pool. +::: + +
+ ![](/img/zfs4.png) +
+ +5. Asigne discos al grupo (el orden de los discos no importa). + +
+ ![](/img/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) +
+ +8. Elija su perfil de asignación: esto determina la redundancia y el rendimiento de su grupo. + +:::tip +Antes de finalizar, revise las secciones sobre perfiles de asignación y topología para tomar una decisión informada. +::: + +
+ ![](/img/zfs7.png) +
+ +
+ ![](/img/zfs8.png) +
+ +9. Habilite la compresión si lo desea (recomendado para la mayoría de las cargas de trabajo). +10. Haga clic en **Hecho**, luego inicie el %%array|array%%. + +--- + +## Agregar un disco ZFS al array (Configuración híbrida) + +Puede agregar un disco %%ZFS|zfs%% independiente a su %%array|array%% de Unraid (no un grupo %%ZFS|zfs%%) para combinar características de %%ZFS|zfs%% con la protección de %%paridad|parity%% de Unraid. + +:::info[What this enables] +- **Protección de paridad:** El disco %%ZFS|zfs%% está protegido por la %%parity|parity%% de la %%array|array%% de Unraid, asegurando que sus datos estén seguros contra fallos de disco simples (o múltiples, dependiendo de sus %%parity drives|parity-drives%%). + +- **Integridad de datos:** %%ZFS|zfs%% proporciona verificaciones de integridad a nivel de bloque (sumas de verificación). Aunque un solo disco no puede autocorregir la corrupción por bit, %%ZFS|zfs%% detectará la corrupción y te alertará, permitiendo restaurar desde una copia de seguridad antes de que ocurra una pérdida de datos silenciosa. + +- **Características de %%ZFS|zfs%%:** Puedes utilizar %%snapshots|snapshot%% de %%ZFS|zfs%% y replicarlos en este disco, haciéndolo ideal para objetivos de respaldo, conjuntos de datos específicos o escenarios donde deseas características de %%ZFS|zfs%% junto con el almacenamiento tradicional de Unraid. +::: + +Para añadir un disco %%ZFS|zfs%% al %%array|array%%: + +1. Vaya a la pestaña **Principal** en el %%WebGUI|web-gui%%. +2. Detenga el %%array|array%%. +3. Haga clic en una ranura vacía bajo **Dispositivos del Array**. +4. Seleccione el disco que desea agregar. + +
+ ![](/img/zfs9.png) +
+ +5. Bajo **Sistema de archivos**, elija `zfs` o `zfs-encrypted`. + +
+ ![](/img/zfs10.png) +
+ +6. Haga clic en **Aplicar**. +7. Inicie el %%array|array%% y permita que el disco sea formateado si es necesario. + +--- + +## Elegir un perfil de asignación + +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) +
+ +| Perfil | Redundancia | Rendimiento | Expansión | Eficiencia Espacial | Caso de uso típico | +| ------ | ------------------------------ | ---------------------------------------------------------------------------------------- | -------------------- | ------------------- | ------------------------------------------------------- | +| Raya | Ninguno | Rápido, pero arriesgado | Agregar más discos | 100% | Almacenamiento temporal/de raspado | +| Espejo | 1:1 (estilo %%RAID 1\|raid1%%) | Excelente para E/S aleatoria | Agregar más espejos | 50% | Alto rendimiento, fácil expansión | +| RAIDZ1 | 1 disco por vdev | Rápido para archivos grandes. No ideal para pequeñas escrituras o escrituras aleatorias. | Agregar nuevos vdevs | Alta | Uso general, tolerancia a fallas de 1 disco | +| RAIDZ2 | 2 discos por vdev | Como Z1, pero con escrituras un poco más lentas (paridad adicional) | Agregar nuevos vdevs | Moderado | Datos importantes, tolerancia a fallas de 2 discos | +| RAIDZ3 | 3 discos por vdev | Como Z2, con más sobrecarga de escritura (para máxima seguridad) | Agregar nuevos vdevs | Inferior | Crítico para la misión, tolerancia a fallas de 3 discos | + +:::important[How to choose] +- Use **Espejo** si quiere el mejor rendimiento y expansión fácil y flexible, y está de acuerdo en utilizar más espacio en disco para la redundancia. +- Elija **RAIDZ1/2/3** si desea maximizar el espacio utilizable y almacenar archivos grandes, pero tenga en cuenta que la expansión es menos flexible y el rendimiento de escrita aleatoria es inferior. +- **Raya** solo es adecuada para datos no críticos y temporales; si falla un disco, se pierde todo. +::: + +--- + +## Topología y expansión + +Cómo agrupar discos en vdevs afecta tanto la seguridad de los datos como la velocidad. + +
+ ![](/img/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. +- Obtendrás un mejor rendimiento paralelo si divides los discos en múltiples vdevs RAIDZ1 más pequeños. Cuidado; si fallan dos discos en el mismo vdev, perderás todo el pool. +- %%ZFS|zfs%% stripes data across vdevs, not individual disks, so more vdevs can lead to better performance for workloads with many small files or random I/O. +- Expandir un grupo %%ZFS|zfs%% generalmente significa agregar un nuevo vdev con la misma disposición, no solo un disco. + +:::tip +Planifica la disposición de tu pool para que se ajuste a tus necesidades y crecimiento futuro. A diferencia del %%array|array%% de Unraid, no puedes agregar un solo disco a un vdev existente usando el %%WebGUI|web-gui%%. +::: + +--- + +## Compresión y RAM + +%%ZFS|zfs%% ofrece características avanzadas que pueden mejorar significativamente la eficiencia y rendimiento del almacenamiento en Unraid. Dos temas de interés común son la compresión y los requisitos de memoria. + +La compresión %%ZFS|zfs%% es transparente: opera en segundo plano, reduciendo los datos antes de que lleguen al disco. + +Esto ofrece dos beneficios importantes: + +- **Uso reducido del disco:** Se consume menos espacio de almacenamiento. +- **Mejor rendimiento:** Escribir y leer menos datos puede llevar a operaciones más rápidas, especialmente en CPUs modernas. + +
+ ![](/img/zfs13.png) +
+ +:::tip +Habilita la compresión %%ZFS|zfs%% para la mayoría de los pools %%ZFS|zfs%% en Unraid. Es segura, eficiente, y rara vez impacta en la compatibilidad o estabilidad. +::: + +
+ El mito de la RAM de ZFS - Haga clic para expandir/contraer + + Puede que hayas encontrado el consejo desactualizado: “%%ZFS|zfs%% requiere 1 GB de RAM por 1 TB de almacenamiento.” Esto ya no es aplicable para la mayoría de los usuarios. %%ZFS|zfs%% utiliza RAM para su Caché de Reemplazo Adaptativo (ARC), lo que acelera las lecturas a las que se accede con frecuencia. + + 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) +
+
+ +:::info +%%ZFS|zfs%% escala bien con la memoria disponible. Más RAM puede mejorar el rendimiento de la caché, pero %%ZFS|zfs%% funciona de manera confiable con hardware modesto. No dejes que recomendaciones antiguas te impidan utilizar %%ZFS|zfs%% en Unraid. +::: + +--- + +## Importando grupos ZFS creados en otros sistemas + +Unraid puede importar grupos %%ZFS|zfs%% creados en otras plataformas sin grandes complicaciones. + +
+ Cómo importar un grupo ZFS - Haga clic para expandir/contraer + + 1. **Detenga el array:** Asegúrese de que su %%array|array%% de Unraid esté detenido. + 2. **Añadir una nueva piscina:** Haz clic en **Añadir Piscina**. + 3. **Asigne todas las unidades:** + - Configure **Número de ranuras de datos** al número total de unidades en su grupo %%ZFS|zfs%% (incluidos los vdevs de datos y los vdevs de soporte). + - Asigna cada disco a la ranura correcta. + - *Ejemplo:* Para un pool con un vdev espejado de 4 unidades y un vdev L2ARC de 2 unidades, configure 6 ranuras y asigne las seis unidades. + 4. **Configure el sistema de archivos a "Auto":** Haga clic en el nombre del grupo (por ejemplo, `raptor`) y configure **Sistema de Archivos** en **Auto**. + 5. **Finalice e inicie el array:** Haga clic en **Hecho**, luego inicie el %%array|array%%. + + :::info[Detección automática] + Unraid detectará e importará automáticamente el pool %%ZFS|zfs%%. Los vdevs de soporte (como el registro, caché/L2ARC, especiales/deduplicación) se listan bajo **Subpools** en el %%WebGUI|web-gui%%. No es necesario agregar subpools por separado después de iniciar la importación. Unraid los importará automáticamente junto con los discos de datos principales cuando todos los discos requeridos sean asignados. + ::: + + Después de importar, se recomienda encarecidamente ejecutar un %%scrub|scrub%% para verificar la integridad de los datos. + + - Haz clic en el nombre del pool (por ejemplo, `raptor`) para abrir su configuración. + - En **Estado del Pool**, verifica el estado y haz clic en **Scrub**. + +
+ ![](/img/zfs15.png) +
+
+ +--- + +## Vdevs de soporte (subpools) + +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) +
+ +| Vdev de soporte (subpool) | Propósito | Riesgos/Notas | +| ------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | +| Vdev especial | Almacena metadatos y archivos pequeños | El pool se vuelve ilegible si se pierde. | +| Vdev de deduplicación | Permite la deduplicación | Requiere grandes cantidades de RAM; arriesgado para la mayoría de los usuarios. Evita a menos que tengas necesidades expertas. | +| Vdev de log (SLOG) | Mejora el rendimiento de escritura síncrona | Opcional. Solo beneficioso para ciertas cargas de trabajo. | +| Vdev de cache (L2ARC) | Proporciona cache de lectura basado en SSD | Opcional. Puede mejorar las velocidades de lectura para grandes conjuntos de trabajo. | +| Vdev de repuesto | No soportado en Unraid (a partir de la versión 7.1.2) | | + +:::caution +La mayoría de los usuarios de Unraid deberían evitar los vdevs de soporte / subpools a menos que tengan una necesidad específica y bien entendida. Están diseñados para cargas de trabajo especializadas y pueden introducir complejidad o riesgo si se usan incorrectamente. +::: + +--- + +## Unidades de soporte críticas de vdev no asignadas durante la importación + +Cuando importas un pool %%ZFS|zfs%% en Unraid, necesitas asignar cada disco de tu pool original, incluidos aquellos usados para vdevs de soporte, a las ranuras del pool. Unraid reconocerá automáticamente el papel de cada disco (datos, registro, caché, especial o deduplicación) una vez que se inicie el %%array|array%%. No necesitas especificar manualmente qué propósito servirá cada disco. + +Si olvidas incluir una unidad que formaba parte de un vdev de soporte durante la importación, el resultado dependerá de la función del vdev: + +| Tipo de vdev | Si falta una unidad durante la importación | Resultado | +| -------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | +| Vdev especial o de deduplicación | El pool no se importará o será inutilizable | These vdevs store critical metadata or deduplication tables. Without them, %%ZFS\|zfs%% cannot safely mount the pool. | +| Vdev de log (SLOG) | El pool se importa, pero el rendimiento de escritura síncrona disminuye. | El pool sigue siendo accesible, pero puedes notar un menor rendimiento en los flujos de trabajo que dependen de escrituras síncronas. | +| Vdev de cache (L2ARC) | El pool se importa, pero se pierde el cache de lectura | El pool funciona normalmente, pero se pierde el aumento de rendimiento de la caché L2ARC. No se pierde ningún dato. | + +:::tip +Always assign every physical drive from your original %%ZFS|zfs%% pool, including all support vdevs, when importing into Unraid. This ensures smooth detection and integration. For new pools created in Unraid, support vdevs are optional and generally not needed for most users. +::: + +--- + +## Expansión de almacenamiento + +%%ZFS|zfs%% es poderoso, pero es importante entender cómo funciona su expansión de almacenamiento - especialmente si estás planificando un crecimiento futuro. + +Históricamente, los vdevs %%ZFS|zfs%% tienen un ancho fijo. No puedes agregar un disco a un vdev RAIDZ existente para hacerlo más grande. + +Formas de expandir tu pool incluyen: + +- **Agregando un nuevo vdev:** Haz crecer tu pool agregando otro vdev (como un nuevo espejo o grupo RAIDZ). Esto aumenta la capacidad, pero debes agregar discos en conjuntos que coincidan con la configuración del vdev. +- **Reemplazo de discos con otros más grandes:** Cambia cada disco en un vdev, uno a la vez, por uno más grande. Consulta [reemplazo de discos](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-faileddisabled-disks) para procedimientos detallados. Después de reemplazar y resolver todos los discos, la capacidad del vdev aumenta. +- **Crear un nuevo pool:** Iniciar un nuevo pool de %%ZFS|zfs%% mantiene las cosas organizadas e independientes para diferentes tipos de datos o cargas de trabajo. + +:::tip[Planning ahead] +Antes de construir tu pool, considera cuánto almacenamiento necesitarás, no solo hoy, sino en el futuro. %%ZFS|zfs%% recompensa la buena planificación, especialmente si quieres evitar actualizaciones disruptivas más adelante. +::: + +--- + +## Usar pools ZFS en un servidor Unraid existente + +Si estás ejecutando un %%array|array%% tradicional de Unraid y quieres añadir pools de %%ZFS|zfs%%, aquí hay algunas formas efectivas de integrarlos: + +| Caso de uso | Descripción | Detalles / Ejemplos | +| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- | +| Pool SSD/NVMe rápido para appdata y Docker | Almacena la parte de appdata para contenedores y bases de datos rápidos y receptivos. Esto admite %%snapshot\|snapshot%%s para retrocesos fáciles y también puede alojar %%VM\|vm%%s para I/O alto. | Muchos usuarios eligen un espejo %%ZFS\|zfs%% de 2 discos para esto. Es fácil de expandir y ofrece un rendimiento sólido. | +| Pool ZFS para datos importantes | Utiliza un espejo %%ZFS\|zfs%% o un pool RAIDZ2 para archivos insustituibles como fotos, registros fiscales y datos de %%user share\|user-share%%. %%ZFS\|zfs%% verifica la corrupción y se autocorrige con redundancia. | Esta configuración protege datos críticos con comprobaciones de integridad automáticas y capacidades de auto-saneamiento. | +| Objetivo de respaldo o replicación diaria | Usa un disco %%ZFS\|zfs%% (incluso dentro del %%array\|array%% de Unraid) como objetivo de replicación. Puedes replicar otros pools localmente o desde otro servidor Unraid. | Utiliza `zfs send/receive` o herramientas como Syncoid para respaldos y restauraciones rápidas y confiables. | +| %%Snapshot\|snapshot%%-based recovery pool | Mantén %%snapshot\|snapshot%%s de punto en el tiempo de datos o contenedores críticos. Los %%snapshot\|snapshot%%s se pueden programar automáticamente y son eficientes en espacio. | Esta función permite una rápida recuperación de eliminaciones accidentales o errores de configuración. | + +## Evitar errores comunes de ZFS + +%%ZFS|zfs%% es un sistema de archivos potente, pero existen varios escollos comunes que pueden socavar sus beneficios. Es importante tener en cuenta los siguientes puntos antes de configurar tu pool para una experiencia más fluida: + +- **Desajuste de tamaño de disco en RAIDZ:** %%ZFS|zfs%% trata todos los discos en un vdev RAIDZ como del tamaño del más pequeño. Para asegurar la mejor eficiencia, utiliza siempre discos de tamaño idéntico dentro de cada vdev. + +- **Expansión de vdevs RAIDZ a través del %%WebGUI|web-gui%%:** Mientras que Unraid 7.1.x y versiones más nuevas soportan la expansión de RAIDZ vía la línea de comandos, esta característica aún no está disponible en el %%WebGUI|web-gui%%. Por el momento, expande a través del CLI o añade nuevos vdevs a través del GUI. + +- **%%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. + +- **Desduplicación sin la RAM adecuada:** La desduplicación requiere mucha memoria, y habilitarla sin suficiente RAM puede impactar severamente el rendimiento. Solo habilita la desduplicación si entiendes completamente los requisitos. + +- **La redundancia de vdev es local:** La redundancia en %%ZFS|zfs%% es local a cada vdev y no se comparte en todo el pool. Asegúrate de planificar la disposición de tus vdevs para lograr el nivel de resiliencia que necesitas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx new file mode 100644 index 0000000000..06e71c2429 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx @@ -0,0 +1,12 @@ +--- +sidebar_position: 7 +title: Historial de versiones +--- + +import {VersionsTable} from '@site/src/components/VersionsTable'; + +# Historial de versiones + +¿Necesitas el Creador USB? [Comenzando con Unraid](https://unraid.net/getting-started) + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json new file mode 100644 index 0000000000..5e630eb659 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Comenzando con Unraid", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json new file mode 100644 index 0000000000..87cc420730 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Explorar la interfaz de usuario", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx new file mode 100644 index 0000000000..6583627621 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx @@ -0,0 +1,21 @@ +--- +sidebar_position: 1 +sidebar_label: Características claves +--- + +# Características claves + +Puedes gestionar tu sistema Unraid utilizando una [interfaz web](./tour-the-web-gui.mdx) intuitiva, conocida como %%WebGUI|web-gui%%. Esta interfaz proporciona controles básicos para tareas comunes y también ofrece opciones de ajuste avanzadas para usuarios experimentados. Unraid selecciona automáticamente los ajustes predeterminados que son adecuados para la mayoría de los usuarios, pero también te permite personalizar estos ajustes para cumplir con tus necesidades específicas. + +Este diseño hace que Unraid sea fácil de usar donde la simplicidad es más importante y ajustable donde la personalización es crítica. Las funciones de gestión simplificadas incluyen: + +- **[Vista del Panel de Control](./tour-the-web-gui.mdx#1-dashboard)** - El panel proporciona una vista detallada y en tiempo real de su sistema, mostrando indicadores de salud del disco, temperaturas, uso de recursos y estados de aplicación. +- **[Operación del Array](./tour-the-web-gui.mdx#2-main)** - Administra tu %%array|array%% sin esfuerzo. \*\*\[Puedes asignar dispositivos para usar en el %%array|array%% o en el %%cache|cache%%, activar y desactivar individualmente los discos, iniciar y detener el %%array|array%%, e incluso realizar %%parity checks|parity-check%% al vuelo, todo desde una sola página. +- **[Gestión de Comparticiones](../../using-unraid-to/manage-storage/shares.mdx)** - Configurar comparticiones en Unraid es sencillo. Solo dale un nombre a la compartición, aplica opcionalmente políticas de acceso y distribución, y haz clic en “¡Crear!” +- **[Ajuste de Discos](../set-up-unraid/customize-unraid-settings.mdx#disk-settings)** - Controle cómo y cuándo los dispositivos reducen su velocidad, seleccione el formato del sistema de archivos predeterminado y ajuste otras configuraciones avanzadas para reducir el desgaste y el consumo de energía en sus dispositivos. +- **[Controles de Red](../set-up-unraid/customize-unraid-settings.mdx#network-settings)** - Habilite %%NIC bonding|nic-bonding%% y %%bridging|nic-bridging%%, configure servidores de hora y ajuste configuraciones de red adicionales. +- **[Apagado Seguro APC UPS](../set-up-unraid/customize-unraid-settings.mdx#ups-settings)** - Cuando está conectado a un APC UPS, Unraid puede apagar el sistema de manera segura en caso de una pérdida de energía. +- **[Notificaciones del Sistema](../set-up-unraid/customize-unraid-settings.mdx#notification-settings)** - Unraid puede alertarlo sobre eventos importantes a través de la consola de administración web, así como por correo electrónico y otros sistemas de notificación. +- **[Programador de Tareas](../set-up-unraid/customize-unraid-settings.mdx#scheduler)** - Especifica cuándo realizar automáticamente %%parity checks|parity-check%% y con qué frecuencia el script %%Mover|mover%% debería transferir archivos del %%cache|cache%% al %%array|array%%. +- **[Contenedores Docker](../../using-unraid-to/run-docker-containers/overview.mdx)** - Gestiona los controles de aplicaciones desde una sola interfaz. Agrega aplicaciones con un mínimo esfuerzo utilizando plantillas proporcionadas por la comunidad. +- **[Máquinas Virtuales](../../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx)** - Elija entre imágenes de %%máquinas virtuales|vm%% pre-creadas o cree sus propias %%VMs|vm%% personalizadas desde cero. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx new file mode 100644 index 0000000000..45723083a1 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx @@ -0,0 +1,120 @@ +--- +sidebar_position: 2 +--- + +# Recorrido por el WebGUI + +El %%WebGUI|web-gui%% es la interfaz principal para gestionar y configurar su servidor Unraid. Proporciona acceso a todas las características del sistema, herramientas de monitoreo y opciones de configuración a través de una barra de navegación organizada y pantallas de fácil uso. Este diseño está pensado para ayudarlo a gestionar eficientemente el almacenamiento, los usuarios, las aplicaciones y la configuración del sistema desde cualquier navegador web. + +## La Barra de Navegación + +La barra de navegación horizontal ofrece a los usuarios acceso a las áreas funcionales principales del sistema Unraid. Puede personalizarla con complementos para añadir menús y opciones adicionales, disponibles en la [sección de aplicaciones comunitarias](../../using-unraid-to/run-docker-containers/community-applications.mdx). + +![Barra de Navegación - Anotada](/img/navbar3.png) + +### 1. Tablero + +La pestaña **Tablero** proporciona monitoreo en tiempo real de los componentes de hardware y software en su servidor Unraid. Muestra varios aspectos de la gestión, como identificación del sistema, CPU, RAM, almacenamiento, información de red, Contenedores, %%VMs|vm%%, usuarios y recursos compartidos, en una cuadrícula de mosaicos. +![Pestaña del Tablero](/img/dashboard.png) +Puede mejorar el Tablero con complementos de la [sección de aplicaciones comunitarias](../../using-unraid-to/run-docker-containers/community-applications.mdx). + +### 2. Principal + +La pantalla **Principal** permite la gestión eficiente de su almacenamiento Unraid y operaciones de disco. Puede configurar su %%array|array%%, %%cache pools|cache-pool%% y dispositivos flash, así como gestionar almacenamiento USB y dispositivos no asignados, incluidas las particiones remotas. Muestra información clave sobre cada dispositivo de almacenamiento, como salud, capacidad y sistemas de archivos. +![Pestaña Principal](/img/maintab.png) +Al final, la sección de Operación del Array ofrece opciones de mantenimiento para mantener su %%array|array%% funcionando sin problemas. + +### 3. Recursos compartidos + +La pestaña **Comparticiones** está dividida en [Comparticiones de Usuario](../../using-unraid-to/manage-storage/shares.mdx#user-shares) y [Comparticiones de Disco](../../using-unraid-to/manage-storage/shares.mdx#disk-shares). + +Puedes acceder a información detallada y opciones de gestión para cada compartición seleccionando su nombre. + +### 4. Usuarios + +La pantalla **Usuarios** permite la gestión de todas las cuentas de usuario en el servidor Unraid, tal como se detalla en la sección de [Gestión de Usuarios](../../system-administration/secure-your-server/user-management.mdx). + +![Pestaña de Usuarios](/img/userstab.png) + +### 5. Configuraciones + +La pantalla **Configuraciones** te permite gestionar todas las configuraciones del sistema en tu servidor Unraid, incluyendo: + +- **Configuraciones del Sistema**: Configura parámetros y comportamientos de los componentes principales de Unraid. +- **Servicios de Red**: Configura varios protocolos de comunicación y ajusta tu %%Wireguard|wireguard%% %%VPN|vpn-tunnel%%. +- **Preferencias del Usuario**: Ajusta preferencias individuales, como notificaciones y configuraciones de pantalla. +- **Utilidades del Usuario**: Gestiona utilidades individuales que has añadido mediante plugins. + +![Pestaña de Configuraciones](/img/settingstab.png) + +### 6. Complementos + +La pantalla **Plugins** muestra todos los plugins instalados en tu servidor Unraid. + +![Pestaña de Plugins](/img/pluginstab.png) + +:::note +Para los pasos de instalación de plugins, consulta [Aplicaciones de la Comunidad](../../using-unraid-to/run-docker-containers/community-applications.mdx). +::: + +### 7. Docker + +La pantalla **Docker** muestra todos los contenedores instalados desde [Aplicaciones de la Comunidad](../../using-unraid-to/run-docker-containers/community-applications.mdx). Puedes lanzar, detener y configurar cada contenedor, incluidas sus configuraciones de inicio automático. + +:::note +Para obtener detalles sobre la ejecución de contenedores Docker, consulta [Ejecutar contenedores Docker](../../using-unraid-to/run-docker-containers/overview.mdx). +::: + +### 8. VMs + +La pantalla de **VMs** te permite gestionar %%máquinas virtuales (VMs)|vm%% en tu servidor Unraid. Muestra todas tus %%VMs|vm%% creadas junto con sus atributos principales, como asignación de CPU, %%asignación de vDisk|vdisk-allocation%%, y configuraciones de tarjeta gráfica. + +:::note +This option will **only** appear in the Navigation Bar if your Unraid server meets the %%hardware virtualization|hvm%% requirements. +::: + +### 9. Apps + +La pantalla **Aplicaciones**, o "Aplicaciones de la Comunidad," es la fuente oficial de aplicaciones para Unraid. + +![Pestaña de Aplicaciones](/img/appstab.png) + +Proporciona plugins y contenedores Docker de la comunidad que mejoran la funcionalidad de Unraid más allá de un NAS básico. Para más detalles, consulta la sección de [Aplicaciones de la Comunidad](../../using-unraid-to/run-docker-containers/community-applications.mdx). + +### 10. Herramientas + +La pantalla **Herramientas** ofrece varias herramientas para gestionar Unraid OS, personalizar el aspecto del %%WebGUI|web-gui%% y actualizaciones del sistema. + +![Pestaña de Herramientas](/img/toolstab.png) + +### 11. Atajos del Sistema + +La sección **Atajos del Sistema** proporciona acceso rápido a funciones y herramientas esenciales de Unraid directamente desde la barra de navegación. + +![Atajos del Sistema](/img/systemshortcuts.png) + +La barra de navegación muestra atajos a las funciones de Unraid, tales como: + +- ![Cerrar sesión](/img/logout.png) **Cerrar sesión :** Salir del servidor Unraid. +- ![Terminal](/img/terminal.png) **Terminal:** Abre una ventana de terminal. +- ![Administrador de Archivos](/img/filemanager.png) **Administrador de Archivos:** Accede al administrador de archivos integrado. +- ![Comentarios](/img/feedback.png) **Comentarios:** Envía comentarios, informa problemas o deja comentarios. +- ![Info](/img/infoicon.png) **Info:** Ver un resumen de los atributos de tu servidor. +- ![Log](/img/logicon.png) **Log:** Ver una lista de eventos del sistema. +- ![Ayuda](/img/helpicon.png) **Ayuda:** Activa la ayuda para la pantalla actual. +- ![Notificaciones](/img/notificationicon.png) **Notificaciones:** Ver alertas del sistema, advertencias y avisos. + +### 12. Opciones de Cuenta + +En la esquina superior derecha del %%WebGUI|web-gui%%, junto al nombre de tu servidor, se encuentra el menú hamburguesa (☰) para **Opciones de Cuenta**. Este menú te permite gestionar tu cuenta de Unraid, acceder a [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx), actualizar tu clave de licencia y cerrar sesión. + +Si estás en modo de prueba, también puedes canjear tu clave de licencia aquí para activar Unraid como Starter, Unleashed, o Lifetime. + +### 13. Barra de Estado + +![Status Bar](/img/status-bar2.png) +The **Status Bar** at the bottom of the %%WebGUI|web-gui%% shows the current state of your %%array|array%% and the status of ongoing operations like %%Mover|mover%% or %%parity checks|parity-check%%. Some plugins also display important information, like system temperatures. + +--- + +\* *"%%WireGuard|wireguard%%" y el logotipo de "%%WireGuard|wireguard%%" son marcas registradas de Jason A. Donenfeld.* diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json new file mode 100644 index 0000000000..e43a42f201 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Configurar Unraid", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx new file mode 100644 index 0000000000..3fcaa6fa00 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx @@ -0,0 +1,87 @@ +--- +sidebar_position: 4 +sidebar_label: Complete tus elementos esenciales posteriores a la configuración +--- + +# Complete tus elementos esenciales posteriores a la configuración + +¡Felicitaciones por tu configuración inicial! + +Ahora, es hora de explorar algunos aspectos importantes que mejorarán la funcionalidad y seguridad de tu servidor. + +## Haz una copia de tu dispositivo flash + +Siempre haga una copia de seguridad de su dispositivo flash de Unraid después de realizar cambios significativos en la configuración. Se recomiendan encarecidamente las copias de seguridad regulares. + +Para respaldar tu dispositivo flash, ve a la pestaña **Principal**, selecciona el dispositivo y haz clic en **Copia de seguridad Flash**. + +:::warning +Guarda copias de seguridad fuera del %%array|array%% de Unraid para un fácil acceso si el %%array|array%% no está operativo. [Obtén más información sobre la gestión de dispositivos flash aquí](../../system-administration/maintain-and-update/changing-the-flash-device.mdx). +::: + +:::note +Alternativamente, utiliza el plugin [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) para copias de seguridad automáticas en los servidores en la nube de LimeTech. +::: + +## Utiliza la ayuda integrada + +Unraid proporciona texto de ayuda extensivo para configuraciones en el %%WebGUI|web-gui%%. Actívalo haciendo clic en el ícono de ![Ayuda](/img/helpicon.png) en la esquina superior derecha. También puedes alternar la ayuda en campos individuales haciendo clic en sus nombres. La ayuda del %%WebGUI|web-gui%% generalmente ofrecerá la información de ayuda más actualizada. + +
+ ![Ayuda integrada](/img/toolbar.png) +
+ +## Revisar las mejores prácticas de seguridad + +Dado que tu servidor Unraid contiene datos valiosos, es prudente revisar las [mejores prácticas de seguridad](../../system-administration/secure-your-server/security-fundamentals.mdx) en la documentación para evitar posibles ataques y proteger tu información. + +## Conectar Unraid + +[Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) es un plugin para Unraid que se encuentra en la sección Aplicaciones de la Comunidad. Con Unraid Connect, puedes gestionar todas tus instancias de servidor a través de un [panel unificado](https://connect.myunraid.net/). + +![Panel Unraid Connect](/img/unraidconnectdashboard.png) + +Unraid Connect utiliza tus credenciales de Unraid.net para la gestión de accesos y se comunica con nuestros servidores en la nube a través de una conexión segura. + +Para obtener más información sobre cómo manejamos tus datos, consulta la sección de [Privacidad](../../../unraid-connect/overview-and-setup.mdx#data-collection-and-privacy) en nuestra documentación de Unraid Connect. + +## Vincula tu clave de licencia a tu cuenta + +Si tienes una clave de licencia de Unraid existente pero aún no la has vinculado a tu cuenta de Unraid.net, puedes hacerlo para habilitar funciones adicionales y una gestión de licencias más fácil. + +Los beneficios de vincular tu clave de licencia incluyen: + +- **Gestión centralizada:** Visualiza y gestiona todas tus licencias desde tu cuenta de Unraid.net +- **Acceso fácil:** Descarga tus archivos de licencia desde cualquier lugar +- **Soporte mejorado:** Experiencia de soporte optimizada con información de cuenta vinculada +- **Acceso a prerrelanzamientos:** Descarga versiones beta y candidatas de lanzamiento si eres elegible + +Para vincular tu clave de licencia: + +1. **Desde el WebGUI:** + - Ve a ***Herramientas → Registro*** en el WebGUI de tu servidor Unraid + - Haz clic en **Iniciar sesión en Unraid.net** si aún no lo has hecho + - Tu clave de licencia se vinculará automáticamente a tu cuenta + +2. **Desde el portal de la cuenta:** + - Visita [account.unraid.net/keys](https://account.unraid.net/keys) + - Inicia sesión con tus credenciales de Unraid.net + - Haz clic en **Vincular clave existente** y sigue las indicaciones + +3. **Durante la configuración del servidor:** + - Si estás configurando un nuevo servidor con una licencia existente, puedes iniciar sesión en tu cuenta de Unraid.net durante la configuración inicial + - Tu licencia se vinculará automáticamente + +:::note +Vincular tu clave de licencia a tu cuenta es un proceso único. Una vez vinculada, puedes gestionar tu licencia desde el WebGUI o tu portal de cuenta en línea. +::: + +:::important +Si tienes problemas para vincular tu clave de licencia, asegúrate de que: + +- El correo electrónico de tu cuenta de Unraid.net coincida con el correo electrónico asociado con la compra de tu licencia +- Estás usando el archivo de clave de licencia correcto +- Tu servidor tiene acceso a internet para la verificación de la cuenta +::: + +Para obtener más información detallada sobre la gestión de licencias, consulta las [preguntas frecuentes sobre licencias](../../troubleshooting/licensing-faq.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx new file mode 100644 index 0000000000..f0235db63a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx @@ -0,0 +1,89 @@ +--- +sidebar_position: 3 +sidebar_label: Configura tu matriz +--- + +# Configura tu matriz + +Después de instalar su clave de registro, el siguiente paso es configurar su almacenamiento asignando dispositivos al %%array|array%% y **dispositivos de agrupación**. Esta configuración determina cómo el sistema operativo Unraid gestiona sus datos, los protege con %%parity|parity%% y optimiza el rendimiento con %%cache pools|cache-pool%%. + +:::important +Si tienes dificultades con alguna parte de la instalación de Unraid, asegúrate de consultar nuestro [FAQ de Instalación](../../troubleshooting/faq.mdx#installation)! +::: + +## Asignar Discos de Paridad y Datos + +Usarás la pestaña **Principal** en el Unraid %%WebGUI|web-gui%% para asignar y revisar dispositivos, incluidos %%array|array%% y las asignaciones de pool junto con cualquier dispositivo no asignado y tu dispositivo de arranque (el **dispositivo USB flash**). + +![Configurando la matriz](/img/configuringarray1.png) + +### Roles de Dispositivos + +Unraid OS utiliza discos para varios propósitos: + +- **Dispositivos de Matriz**, que se dividen en dos categorías: + - **Dispositivos de Paridad:** Proporcionan tolerancia a fallos, permitiendo la recuperación de datos si un disco de datos falla. Puedes asignar hasta dos discos de paridad. + - **Dispositivos de Datos:** Almacenan tus comparticiones y carpetas personalizadas, así como cualquier archivo que agregues, como archivos multimedia. + +- **Dispositivos de Pool:** Unidades de alto rendimiento usadas principalmente como una **caché**, almacenando archivos temporalmente para mejorar el rendimiento antes de transferirlos al %%array|array%%. + +- **Dispositivo de Arranque:** El dispositivo USB flash que contiene Unraid OS, que inicia tu servidor. + +
+ Recomendaciones de asignación de discos + + Estas recomendaciones de asignación de discos están elaboradas para optimizar tu %%array|array%% de Unraid, mejorando el rendimiento, la protección de datos y la expansión futura. Al seguir estas indicaciones, puedes maximizar eficazmente tus dispositivos de almacenamiento y evitar problemas comunes de configuración. + + 1. **Select the largest %%parity device|parity-drives%%:** + Always choose the largest available storage device as your %%parity device|parity-drives%%(s). When expanding your %%array|array%%, data disks must be equal to or smaller than your %%parity device|parity-drives%%(s). You should purchase the largest **HDD** for your initial %%parity device|parity-drives%% to avoid future limitations. For dual %%parity disks|parity-drives%%, each parity disk must be greater than or equal to the largest data disk. + + 2. **Utiliza HDDs para el %%array|array%% y unidades SSD/NVMe para los pools:** + Para un rendimiento óptimo, usa **HDDs** como los principales dispositivos de almacenamiento en el %%array|array%% para almacenamiento general y protección de %%paridad|parity%%. Asigna unidades **SSD** o **NVMe** a un %%cache pool|cache-pool%% o un pool dedicado para mejorar las operaciones de lectura y escritura de alta velocidad. Esta configuración mejora el rendimiento general aprovechando las fortalezas de cada tipo de unidad. + + 3. **Protect cached data with a %%multi-device pool|multi-device-pool%%:** + To safeguard cached data, assign more than one device to the %%cache pool|cache-pool%%. A single device does not offer protection from data loss. %%Cache pools|cache-pool%% can be expanded on demand. + + :::warning + El soporte para SSD es experimental en el %%array|array%%. Algunos SSDs pueden no funcionar bien debido a variaciones en la implementación de %%TRIM/Discard|trim-discard%%, lo que podría llevar a resultados indeseables. Esto no aplica a los %%cache pools|cache-pool%%. [Aprende más sobre las opciones de sistemas de archivos aquí](../../using-unraid-to/manage-storage/file-systems.mdx). + ::: + + :::note + Los pools basados en SSD son óptimos para aplicaciones y máquinas virtuales, aprovechando el rendimiento de SSD para interacciones más rápidas. [Aprende más sobre la ejecución de aplicaciones aquí](../../using-unraid-to/run-docker-containers/overview.mdx). + ::: +
+ +:::important +Su %%array|array%% no se iniciará si excede el número de dispositivos de almacenamiento permitidos por su clave de licencia. +::: + +## Iniciar y formatear la matriz + +Después de asignar todos sus dispositivos, haga clic en el botón **Iniciar** debajo de la **Operación de Array** para montarlos e iniciar el %%array|array%%. + +
+ ![Inicio de Operación de Matriz](/img/arrayoperation_start.png) +
+ +New devices will appear as *Unformatted* and cannot be used until formatted. Unraid defaults to the %%XFS|xfs%% filesystem for array devices. For %%cache pools|cache-pool%%, %%BTRFS|btrfs%% is always used by default when using auto mode, but you can choose your desired filesystem when adding devices to a pool. You can change the default filesystem for the array in ***Settings → System Settings → Disk Settings***. + +Para formatear tus dispositivos, marca la casilla **Formatear** bajo **Operación de Matriz**, lee el aviso cuidadosamente y haz clic en el botón **Formatear**. + +Una sincronización de paridad se ejecutará en segundo plano para proteger el %%array|array%% incluso antes de que se complete el formateo. El %%array|array%% funcionará en un estado no protegido hasta que la sincronización finalice, por lo que es mejor esperar antes de agregar datos. + +### Cambiar sistemas de archivos en discos existentes + +Para cambiar el sistema de archivos de un disco existente: + +1. **Respalda tus datos**: Reformatear borrará todos los datos del disco. +2. **Detén el array**. +3. **Haz clic en el disco** y cambia el tipo de sistema de archivos (e.g., %%XFS|xfs%%, %%BTRFS|btrfs%%). +4. **Inicia la matriz** y marca la casilla **Formatear** bajo **Operación de Matriz**. +5. **Haz clic en Formatear** para aplicar el nuevo sistema de archivos. + +:::caution +Reformatear un disco borrará todos sus datos. Para configuraciones %%RAID|raid%%, verifique la %%paridad|parity%% para evitar la pérdida de datos durante las reconstrucciones. Use el [Plugin de Dispositivos No Asignados](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon) para hacer una copia de seguridad de sus archivos antes de reformatear. +::: + +:::info +Puedes detener la matriz, apagar o reiniciar usando los botones respectivos en la misma sección **Operación de Matriz** en la pestaña **Principal**. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx new file mode 100644 index 0000000000..88e0bc9249 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx @@ -0,0 +1,80 @@ +--- +sidebar_position: 1 +sidebar_label: Crea tu medio de arranque +--- + +# Crea tu medio de arranque + +Unraid OS está instalado en una unidad flash USB, que actúa como el dispositivo de arranque para tu servidor. Puedes crear este medio de arranque utilizando nuestro [Método de instalación automatizada](./create-your-bootable-media.mdx#automated-install-method) recomendado con nuestra herramienta [Creador de flash USB](https://unraid.net/download) o siguiendo el [Método de instalación manual](./create-your-bootable-media.mdx#manual-install-method). En ambos casos, necesitarás una unidad flash USB de alta calidad (entre 4 y 32 GB) que tenga un %%GUID|guid%% único. + +## Método de instalación automática + +El método de instalación automatizado es la mejor manera de configurar Unraid OS. Simplifica el proceso, reduce errores y garantiza que tu unidad flash USB esté lista para la mayoría de configuraciones de hardware. Este método ofrece el camino más rápido y confiable para una instalación exitosa para la mayoría de los usuarios. + +1. **Prepare su dispositivo USB:** + Inserte una memoria USB de alta calidad en su computadora. + +2. **Descargue el Creador de USB de Unraid e instale el sistema operativo Unraid en la unidad.** + [Windows](https://releases.unraid.net/dl/stable/usb-creator.exe) | [Mac](https://releases.unraid.net/dl/stable/usb-creator.dmg) | [Linux](https://releases.unraid.net/dl/stable/usb-creator.deb) + +3. **Complete la configuración:** + Personalice el nombre de su servidor y la configuración de red. + +4. **Expulsar e instalar:** + Retire el USB de forma segura e insértelo en su servidor. + +5. **Configura los ajustes de BIOS de tu servidor** + - Establece el dispositivo de arranque en la unidad flash USB. + - Enable %%hardware virtualization|hvm%% features, including %%IOMMU|iommu%%. (See [HVM & IOMMU configuration](../../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx#hvm--iommu-what-they-enable) for details.) + +6. **Inicie en Unraid OS:** + Guarde la configuración del BIOS, luego salga para iniciar en Unraid OS. + +## Método de instalación manual + +El método de instalación manual está diseñado para situaciones donde la herramienta de Creador de Flash USB no está disponible o es incompatible con tu hardware. Este enfoque proporciona control completo sobre el formato y el proceso de configuración, lo que lo hace ideal para usuarios avanzados o para solucionar problemas específicos con un dispositivo USB. + +### Prepara tu dispositivo USB + +1. Conecta el dispositivo flash USB. +2. Formatearlo a FAT32 (**no** ex-FAT o NTFS). +3. Establece la etiqueta de volumen a `UNRAID` (sensible a mayúsculas, todo en mayúsculas). + +:::important +En Windows, las unidades mayores de 32 GB no se pueden formatear como FAT32 usando las herramientas de formateo integradas (por defecto se usan exFAT). Para unidades mayores de 32 GB, necesitarás usar una herramienta de terceros como [Rufus](https://rufus.ie/es/) para formatear como FAT32. +::: + +### Descargar y extraer + +1. Ve al [Archivo de Descargas de Unraid](../../download_list.mdx) y descarga el archivo ZIP de la versión elegida. +2. Extrae el contenido del ZIP al dispositivo USB. +3. Confirma que los archivos han sido copiados. + +### Haz el dispositivo USB arrancable + +:::note +Esta sección solo es necesaria para habilitar el arranque heredado. Si estás configurando para el arranque UEFI, no es necesario ejecutar estos scripts. +::: + +Ejecuta el script apropiado para tu sistema operativo: + +**Windows 7 o posterior:** + +- Haga clic derecho en `make_bootable` y seleccione **Ejecutar como administrador**. + +**Mac:** + +- Haga doble clic en `make_bootable_mac` e ingrese su contraseña de administrador. + +**Linux:** + +- Copie `make_bootable_linux` a su disco duro. +- Desmonta la unidad USB. +- En la terminal, ejecute: + ``` + sudo bash ./make_bootable_linux + ``` + +:::note +El dispositivo flash puede desaparecer y reaparecer brevemente varias veces durante este proceso. Esto es normal. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx new file mode 100644 index 0000000000..544105c1b0 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx @@ -0,0 +1,224 @@ +--- +sidebar_position: 5 +sidebar_label: Personalizar configuraciones de Unraid +--- + +# Personalizar configuraciones de Unraid + +Unraid OS funciona automáticamente pero permite mayor personalización de configuraciones como dirección IP, nombre del host, ajustables de disco, y más a través de la pestaña **Configuraciones** en el **%%WebGUI|web-gui%%** de Unraid. + +:::tip[Tailscale integración] +**Tailscale** es un complemento opcional que puedes instalar mediante la pestaña **Apps** buscando "Tailscale". Proporciona acceso remoto seguro a tu red y agrega una sección de **Tailscale** a tus **Settings** para mejorar las capacidades de gestión remota. +::: + +
+ ![Barra de herramientas - Configuraciones](/img/toolbar_settings.png) +
+ +No olvides: el %%WebGUI|web-gui%% incluye ayuda integrada. Para acceder a la ayuda de un campo específico, haz clic en el aviso junto a él, o utiliza el ícono de **Help** ![Help icon](/img/helpicon.png) en la parte superior derecha de la interfaz para activar la ayuda en todos los campos. + +## Configuraciones del Sistema + +**Configuraciones del Sistema** te permiten configurar funcionalidades clave como red, compartición, %%VM|vm%% y ajustes de disco. + +### Fijación de CPU + +El %%CPU Pinning|cpu-pinning%% te permite asignar núcleos de CPU específicos a %%VMs|vm%% (Máquinas Virtuales) o contenedores Docker. Esto es especialmente importante para cargas de trabajo sensibles al rendimiento, como %%VMs|vm%% de juegos. Incluso si asignas manualmente contenedores Docker para evitar conflictos con tus %%VM|vm%% de juegos, el sistema operativo del host aún puede utilizar esos núcleos para tareas como gestionar el %%WebGUI|web-gui%%, ejecutar una %%parity check|parity-check%%, o realizar operaciones %%BTRFS|btrfs%%. + +- Cuando fijas un núcleo a un %%VM|vm%% o contenedor Docker, ese núcleo se asigna al %%VM|vm%% o contenedor. Sin embargo, el sistema operativo Unraid todavía puede acceder a él para tareas rutinarias. +- Cuando aíslas un núcleo, se dedica al %%VM|vm%% o contenedor y ya no está accesible para el sistema operativo Unraid. +- Puedes fijar núcleos sin necesidad de reiniciar tu servidor, pero aplicar cambios de aislamiento de CPU sí requiere reiniciar el sistema. + +### Fecha y Hora + +En esta página, puedes configurar tu zona horaria y activar el uso de hasta cuatro servidores NTP. Debes ajustar Unraid para que coincida con tu zona horaria para una cronometraje preciso. + +
+ ![Barra de herramientas - Configuraciones](/img/date-time.png) +
+ +### Configuraciones de Disco + +Puedes modificar configuraciones adicionales para tus dispositivos de disco en esta página. Activa tu %%array|array%% para iniciarse automáticamente al encender, ajusta los %%spin-down timers|spin-down-timers%% de disco, e incluso cambia configuraciones avanzadas de controladores como la %%SMART polling frequency|smart-polling%%. + +
+
+ Configuraciones de Disco +
+ +
+ Configuraciones SMART Globales +
+
+ +### Docker + +Los contenedores Docker permiten integrar aplicaciones Linux preconfiguradas en tu servidor Unraid. Para más detalles, consulta la página [Docker Management](../../using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx). + +
+ ![Configuraciones - Docker](/img/settings-docker.png) +
+ +### Identificación + +Unraid predetermina el nombre de host `tower`, pero puedes cambiarlo aquí. También puedes agregar una descripción o un número de modelo para tu sistema. + +
+ ![Configuraciones - Identificación](/img/settings-identification.png) +
+ +### Acceso de gestión + +Puedes configurar varias opciones de acceso para tu servidor Unraid, incluido habilitar Telnet o %%SSH|ssh%%, establecer puertos para %%SSL|ssl%%/%%TLS|tls%%, HTTP, y HTTPS, y definir la página de inicio predeterminada de Unraid. Para información detallada sobre cómo asegurar tu %%WebGUI|web-gui%% con certificados %%SSL|ssl%%, consulta [Asegurando tu conexión](../../system-administration/secure-your-server/securing-your-connection.mdx). + +
+ ![Configuraciones - Acceso de Gestión](/img/settings-management-access.png) +
+ +### Configuraciones de Red + +Por defecto, Unraid intenta obtener una dirección IP de un servidor DHCP en tu red local, generalmente proporcionada por tu router. En esta página, puedes configurar una dirección IP estática, configurar %%bonding|nic-bonding%%, %%bridging|nic-bridging%%, o explorar otras opciones. Aunque se recomienda establecer una IP estática, no es necesario para usar Unraid. + +
+ ![Configuraciones de Red](/img/settings-network.png) +
+ +### Modo de Energía + +La configuración de **Power Mode** te permite optimizar tu servidor Unraid para eficiencia energética, operación balanceada o máximo rendimiento. Puedes elegir entre modos disponibles: **Mejor eficiencia energética**, **Operación balanceada**, o **Mejor rendimiento** para que coincidan con tus preferencias de trabajo y energía. Ajustar Power Mode puede ayudar a reducir el consumo de energía, disminuir las temperaturas del sistema o proporcionar recursos adicionales para tareas exigentes. + +Los cambios surten efecto inmediatamente y no requieren un reinicio del sistema. + +
+ ![Modo de Energía](/img/settings-powermode.png) +
+ +### Configuraciones Globales de Compartición + +Las %%User shares|user-share%% pueden simplificar en gran medida la organización y el acceso de contenido a través de múltiples discos en el %%array|array%%. Tienes la opción de especificar qué discos están permitidos para participar en %%user shares|user-share%% a través de configuraciones globales de inclusión o exclusión. + +
+ ![Configuraciones Globales de Compartición](/img/settings-globalshare.png) +
+ +### Configuraciones de UPS + +Unraid se puede conectar a un UPS (Suministro Ininterrumpido de Energía) APC (o compatible) para permitir que el sistema se apague de forma segura durante una pérdida de energía mientras aún recibe energía de batería. Puedes configurar la conexión del UPS y establecer políticas para el comando de apagado en esta página. + +
+ ![Configuraciones de UPS](/img/settings-ups.png) +
+ +### Gestor de VM + +Las **máquinas virtuales** (VMs) pueden convertir tu servidor en un escritorio o reproductor multimedia, y ejecutar aplicaciones no diseñadas para Linux. Para detalles sobre la gestión de %%VMs|vm%% en Unraid, consulta [VM setup](../../using-unraid-to/create-virtual-machines/vm-setup.mdx). + +
+ ![Gestor de VM](/img/settings-vmmanager.png) +
+ +## Servicios de Red + +**Network Services** let you configure network communication protocols on your Unraid server, which are essential for user and disk shares. You can also enable an %%FTP|ftp%% server, a logging server, and set up a %%VPN|vpn-tunnel%% for secure remote access. + +### NFS (Sistema de Archivos de Red) + +El soporte de NFSv4 está disponible en Unraid. Puedes habilitarlo o deshabilitarlo para las %%user shares|user-share%% y ajustar el `fuse_remember` ajustable para ayudar a resolver errores de *NFS Stale File Handle*. + +
+ ![NFS](/img/settings-nfs.png) +
+ +### SMB (Bloque de Mensajes del Servidor) + +El protocolo SMB es usado por clientes de Microsoft Windows. Desde esta página, puedes habilitarlo, definir un grupo de trabajo, o unirte a un dominio de Active Directory. + +
+ ![SMB](/img/settings-smb.png) +
+ +### FTP (Protocolo de Transferencia de Archivos) + +Los usuarios pueden conectarse vía %%FTP|ftp%% solo si son agregados al campo de **FTP users** en esta página. Si no se agregan usuarios, el servicio %%FTP|ftp%% no iniciará. + +
+ ![FTP](/img/settings-ftp.png) +
+ +### Servidor Syslog + +El %%Syslog server|syslog-server%% almacena permanentemente tu registro del sistema, lo cual es útil para la resolución de problemas ya que Unraid borra el registro después de cada reinicio. + +
+ ![Servidor Syslog](/img/settings-syslog.png) +
+ +### Tailscale + +:::note +La sección Tailscale solo está disponible si has instalado el plugin Tailscale. +::: + +La sección %%Tailscale|tailscale%% permite el acceso remoto seguro mediante el %%VPN|vpn-tunnel%% %%Tailscale|tailscale%%. Aquí, puedes iniciar sesión para conectar tu servidor Unraid a tu %%Tailnet|tailnet%%, ver la dirección IP y nombre de host asignado, y habilitar o deshabilitar la conectividad %%Tailscale|tailscale%%. + +También puedes configurar tu servidor como un %%Subnet Router|subnet-routing%% para dispositivos locales o como un Nodo de Salida para redirigir el tráfico de Internet. Esta sección permite la gestión de rutas anunciadas, el estado del nodo de salida, opciones de integración con contenedores Docker, y el monitoreo del estado de conexión para la resolución de problemas. + +
+ ![Configuraciones de Tailscale](/img/settings-tailscale.png) +
+ +### Gestor de VPN + +Puedes establecer una conexión %%VPN|vpn-tunnel%% a tu servidor Unraid utilizando [%%Wireguard|wireguard%%](https://www.wireguard.com/) para conexiones de internet seguras. + +
+ ![Gestor de VPN](/img/settings-vpnmanager.png) +
+ +## Preferencias del Usuario + +Las Preferencias del Usuario te permiten configurar varios aspectos de tus interacciones con Unraid OS, incluyendo notificaciones, configuraciones de display, personalización de UI, y el horario del %%Mover|mover%%. + +### Confirmaciones + +Puedes habilitar/deshabilitar el requisito de confirmaciones al realizar varias tareas desde esta ubicación. + +
+ ![Confirmaciones](/img/settings-confirmations.png) +
+ +### Configuraciones de Consola + +Te permite personalizar la consola del sistema local. Puedes seleccionar el diseño del teclado, ajustar el tiempo de espera de apagado de pantalla, y habilitar o deshabilitar el historial persistente de Bash a lo largo de los reinicios. Estas opciones mejoran tu experiencia al usar Unraid con un monitor y teclado conectados. + +
+ ![Configuraciones de Consola](/img/settings-console.png) +
+ +### Configuración de pantalla + +Personaliza la apariencia del %%WebGUI|web-gui%% de Unraid en esta página ajustando el formato de fecha y hora, formato numérico, y alternando entre vistas con pestañas y sin pestañas. También puedes seleccionar la unidad de temperatura y elegir entre diferentes temas para la interfaz de usuario. + +
+ ![Configuraciones de Pantalla](/img/settings-display.png) +
+ +### Configuraciones de Notificaciones + +Puedes configurar notificaciones del navegador y por correo electrónico en esta página, suscribiéndote a distintos tipos y configurando alertas personalizadas para valores de atributo %%SMART|smart%%. + +
+ ![Configuraciones de Notificaciones](/img/settings-notifications.png) +
+ +### Programador + +The Scheduler settings page allows you to easily configure the frequency for automated tasks including %%parity checks|parity-check%%, the cache %%Mover|mover%%, and %%TRIM/Discard|trim-discard%% operations for SSDs. + +## Utilidades del Usuario + +Los complementos de terceros se muestran aquí, ampliando la funcionalidad de Unraid y dándote más control sobre tu servidor. Por ejemplo, el [Complemento de Aplicaciones de la Comunidad](../../using-unraid-to/run-docker-containers/community-applications.mdx) está incluido. Otros complementos ofrecen características para monitoreo del sistema, mantenimiento, gestión de almacenamiento y copias de seguridad `appdata`. + +--- + +\* *"%%WireGuard|wireguard%%" y el logotipo de "%%WireGuard|wireguard%%" son marcas registradas de Jason A. Donenfeld.* diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx new file mode 100644 index 0000000000..d223c217db --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx @@ -0,0 +1,100 @@ +--- +sidebar_position: 2 +sidebar_label: Desplegar & configurar Unraid OS +--- + +# Desplegar & configurar Unraid OS + +After booting Unraid OS for the first time, you'll use the %%WebGUI|web-gui%% to complete your system configuration. This interface lets you manage your server, set up storage, configure user shares, and control features like %%hardware virtualization|hvm%% and Docker containers. + +:::info\[Localize] + +Puede ser más fácil para los usuarios seguir esta guía después de configurar sus preferencias de idioma. Consulta [Soporte multilingüe](../../using-unraid-to/customize-your-experience/multi-language-support.mdx) para hacer el %%WebGUI|web-gui%% más accesible en tu idioma preferido. + +::: + +## Conéctate al WebGUI de Unraid + +Puedes conectarte al %%WebGUI|web-gui%% de dos maneras: + +- **Modo GUI:** Inicia Unraid en modo GUI e inicia sesión usando un teclado y pantalla conectados al servidor. Usa `root` como nombre de usuario sin contraseña inicial. +- **Navegador Web:** En otro dispositivo de tu red local, visita `http://tower.local`. Si estableciste un nombre de host diferente, usa eso en lugar de `tower` (es decir, para el nombre de host `unraidserver`, visitarías `http://unraidserver.local`). %%mDNS|mdns%% maneja la resolución de estas direcciones `.local`. + +:::important +El servidor Unraid es accesible en tu LAN tan pronto como inicie completamente. Puedes encontrar la dirección IP en la lista de clientes DHCP de tu router o utilizando una herramienta de escaneo de red. +::: + +## Configura una contraseña root + +Cuando accedas al %%WebGUI|web-gui%% por primera vez, se te pedirá crear una contraseña segura para el %%root user|root-user%%. + +Asegúrate de que tu contraseña sea: + +- Única +- Al menos 8 caracteres de longitud. (Aunque, la mejor práctica recomienda 12+ para las contraseñas más seguras) +- Una mezcla de letras, números, y caracteres especiales + +Recomendamos usar un gestor de contraseñas para el almacenamiento seguro. + +
+ ![Configurar contraseña root](/img/Set_root_password.png) +
+ +:::tip +Si olvidas tu contraseña de root, puedes restablecerla siguiendo la guía [Restablece tu contraseña](../../system-administration/secure-your-server/user-management.mdx#reset-your-password). También puedes actualizar tu contraseña en la página de Usuarios del %%WebGUI|web-gui%%. +::: + +## Registra tu clave de licencia + +Después de configurar tu contraseña root, inicia sesión en tu cuenta de Unraid.net para obtener una clave de licencia: + +1. En el %%WebGUI|web-gui%%, dirígete a la sección **Empezar**. + +
+ ![Empezar](/img/Upc_get_started.png) +
+ +2. Inicia sesión o crea una cuenta, después de lo cual se instalará automáticamente una clave de prueba. + +
+ ![Instalar clave de prueba](/img/Upc_install_trial_key.png) +
+ + Este proceso te permite gestionar tus claves de licencia de Unraid OS, obtener nuevas claves, recuperar las perdidas, o actualizar tu licencia. + +:::important +Para detalles sobre tu licencia, visita ***Herramientas → Registro*** en el %%WebGUI|web-gui%%. +::: + +## Recomendaciones para el BIOS + +Antes de desplegar Unraid OS, es importante verificar la configuración de BIOS y del controlador de almacenamiento de tu sistema. A continuación, puedes encontrar una lista de verificación para ayudar a garantizar la compatibilidad, estabilidad y acceso a características clave. + +
+ Haz clic para expandir nuestra lista de verificación del BIOS y del Controlador de Almacenamiento + + Una configuración adecuada del BIOS y del controlador de almacenamiento es vital para un despliegue estable de Unraid OS. Usa esta lista de verificación antes de tu primer inicio. + + ### Configuraciones Básicas + + ✅ Establecer el dispositivo de arranque primario en la unidad flash USB.\n✅ Configurar el controlador de almacenamiento al modo **%%AHCI|ahci%%** con conexiones SATA.\n✅ Configurar el controlador en modo **%%HBA|hba-mode%%** (no **%%RAID|raid%%**).\n✅ Desactivar **Arranque Seguro** ya que no es compatible con Unraid OS. + + ### Configuraciones Avanzadas + + ✅ Enable **%%hardware virtualization|hvm%%** features (e.g., **%%Intel VT-x|intel-vt-x%%** or **%%AMD-V|amd-v%%**) for **%%virtual machines (VMs)|vm%%**.\ + ✅ Enable **%%IOMMU|iommu%%** support (Intel VT-d or AMD-Vi) for PCI device assignment to VMs. + + ### Consejos para Solucionar Problemas + + Si Unraid OS no se inicia, intenta: + + ✅ Ajustar el orden de arranque a: **Forced-FDD**, **USB-HDD**, **USB-ZIP**.\n✅ Deshabilitar el soporte USB 2.0/3.0.\n✅ Alternar cualquier característica de Arranque Rápido.\n✅ Alternar el soporte para teclado USB. + + Para más asistencia, visita el [foro de soporte general de Unraid](https://forums.unraid.net/). + + :::important + Muchas placas base limitan la selección de dispositivos de arranque a 12 discos duros. Si tu unidad flash USB se reconoce como disco duro, es posible que no puedas arrancar desde ella después de instalar 12 discos duros físicos. Configura la BIOS para tratar la unidad flash como un dispositivo extraíble siempre que sea posible. + + Si utiliza un HBA adicional, es posible desactivar el soporte de INT 13h para evitar que sus unidades conectadas aparezcan en la lista de dispositivos de arranque; esto le ayudará a mantenerse dentro del límite de 12 discos. + ::: +
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx new file mode 100644 index 0000000000..d95923736a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx @@ -0,0 +1,31 @@ +--- +sidebar_position: 2 +sidebar_label: Unraid.net +--- + +# Unraid.net + +Una cuenta de Unraid.net es tu punto de acceso a los servicios en línea de Unraid, incluyendo [foros](https://forums.unraid.net/), [Unraid Connect](../../unraid-connect/overview-and-setup.mdx), y gestión de licencias. Aunque no es necesaria para las funciones básicas del servidor, tener una cuenta brinda varios beneficios como la gestión simplificada de licencias, acceso a versiones preliminares y soporte mejorado. + +#### Los beneficios de una cuenta de Unraid.net incluyen: + +- **%%Single Sign-On (SSO)|sso%%:** Access Unraid's systems with one set of credentials. +- **Gestión de licencias:** Administra fácilmente tus claves de licencia y registros de servidores. +- **Acceso a Prelanzamientos:** Descarga y prueba versiones preliminares de Unraid. +- **Soporte mejorado:** Participa en los foros y recibe actualizaciones en tu cuenta. +- **Autenticación segura:** Disfruta de un inicio de sesión seguro con opciones para la autenticación multifactor (MFA). + +### Tu cuenta y los datos que se almacenan + +Unraid.net utiliza un sistema de %%SSO|sso%% en account.unraid.net para autenticación segura a través de %%AWS Cognito|aws-cognito-oauth%%. Tus datos se almacenan de forma segura y cifrada. La base de datos del grupo de usuarios de %%AWS Cognito|aws-cognito-oauth%% retiene la siguiente información para los usuarios registrados: + +| Tipo de Datos | Descripción | +| ---------------------------------------- | --------------------------------------------------------------- | +| ID de Usuario | Identificador único para tu cuenta | +| Nombre de usuario | Tu nombre de usuario de Unraid.net elegido | +| Dirección de correo electrónico | Utilizado para comunicación y recuperación de cuentas | +| ID del Foro de Unraid | Vincula tu cuenta a la actividad del foro | +| Autorización de prelanzamiento | Indica si puedes descargar versiones preliminares de Unraid | +| %%Hash de contraseña\|hash%% | Versión de tu contraseña segura, con sal, unidireccional (hash) | +| Detalles de MFA | Información para autenticación multifactor | +| Información %%SSO\|sso%% de Google/Apple | Atributos de inicio de sesión de terceros (si se utilizan) | diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx new file mode 100644 index 0000000000..0bad0485ac --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx @@ -0,0 +1,186 @@ +--- +sidebar_position: 1 +sidebar_label: ¿Qué es Unraid? +--- + +# ¿Qué es Unraid? + +Unraid is an embedded operating system designed to give you complete control over your hardware. It functions as a robust network-attached storage (NAS) system, an %%application server|application-server%%, and a host for %%virtual machines (VMs)|vm%%. + +Unraid se instala en una unidad flash USB y arranca desde ella, cargándose en un sistema de archivos raíz en RAM. Utiliza un moderno kernel de Linux con controladores de hardware actualizados, permitiéndole funcionar en casi cualquier sistema x86\_64 de 64 bits mientras mantiene un mínimo de uso de memoria. Toda la configuración del sistema operativo se almacena en la unidad flash y se carga simultáneamente con el sistema operativo. + +Unraid cuenta con una [interfaz web fácil de usar](./explore-the-user-interface/tour-the-web-gui.mdx) para una gestión sencilla. Ofrece controles básicos para tareas comunes y configuraciones avanzadas para usuarios experimentados. Aunque sus valores predeterminados son adecuados para la mayoría de las personas, también permite personalización. Esta combinación de simplicidad y flexibilidad te ayuda a almacenar, proteger, compartir y disfrutar tu contenido de manera efectiva. + +**Las capacidades fundamentales de Unraid se encuentran en tres áreas principales:** + +
+

NAS definido por software

Permitiendo a los usuarios compartir capacidad de almacenamiento por una red de manera eficiente.
+ + ### Arreglos y Paridad + + Unraid proporciona una solución simple y flexible para convertir cualquier sistema compatible con 64 bits en un dispositivo de Almacenamiento Conectado a la Red (NAS). Puede manejar una variedad de unidades, ya sea que se conecten a través de IDE, SATA o SAS, y admite diferentes tamaños de unidades. Esto significa que puedes agregar nuevas unidades una a la vez a medida que tus necesidades de almacenamiento crecen, sin tener que reorganizar tus datos existentes cuando expandes tu configuración. + + The main job of an Unraid %%array|array%% is to organize and protect the data stored across several drives. It does this by using up to two special drives called %%parity drive|parity-drives%%s. These %%parity drive|parity-drives%%s are important because they help reconstruct your data if one of the other drives fails. In fact, with just one %%parity drive|parity-drives%%, you can protect all the other drives in your %%array|array%%, keeping your data safe. Plus, you can mix different sized drives and easily expand your storage over time, making Unraid a user-friendly option for anyone looking to manage their data effectively. + +
+ Cómo funciona la paridad - Haz clic para expandir/contraer + + En Unraid, la información de %%parity|paridad%% se actualiza en tiempo real. Para entender cómo funciona esto, imagina el contenido de un disco duro como un largo flujo de bits, donde cada bit es un cero o un uno. Sumando los valores del bit n en todos los discos y determinando si esa suma es par o impar, el bit de %%parity|paridad%% correspondiente se puede ajustar en consecuencia. Si un disco de datos falla, esta información de %%parity|paridad%% permite una determinación precisa de los valores exactos de los bits, facilitando una reconstrucción precisa en el disco de reemplazo. + + Por ejemplo: + +
+ ![Sin Paridad](/img/No_parity_500px.png) +
+ + En la imagen de arriba, tres discos contienen flujos de bits que varían según el tamaño del dispositivo. Estos discos no están protegidos, por lo que si uno falla, se perderán los datos. Para protegerse contra fallos, necesitamos un cuarto disco como %%parity disk|disco de paridad%%, que debe ser igual o mayor que el disco de datos más grande. + + Para establecer los bits de %%parity|paridad%%, encontramos el total para cada columna. Si la suma es par, el bit de %%parity|paridad%% es 0; si es impar, el bit de %%parity|paridad%% es 1. + + Aquí está la misma imagen que antes, pero con %%paridad|parity%% calculada por cuadro: + +
+ ![Paridad](/img/Parity@500px.png) +
+ + Supongamos que el disco 2 en nuestro ejemplo ha fallado y se ha comprado un nuevo disco para reemplazarlo: + +
+ ![Falla del Disco](/img/Drive_failure@500px.png) +
+ + Para reconstruir los datos en el nuevo disco, determinamos el bit faltante en lugar de calcular el bit de %%parity|paridad%%. Para la columna 1, la suma es 0, por lo que el bit faltante es 0. Para la columna 6, con una suma de 1, el bit faltante es 1. + + Reconstruir un disco usando %%paridad|parity%% protege contra la pérdida de datos y ofrece tolerancia a fallos, garantizando el acceso completo al sistema incluso si un disco falla. +
+ + ### User shares + + Unraid es diferente de la mayoría de los sistemas %%RAID|raid%% porque guarda los datos en discos individuales en lugar de combinarlos en uno solo. Como %%root user|usuario root%%, puedes crear %%user shares|comparticiones de usuario%%, que son como carpetas de nivel superior que recopilan archivos de varios discos en la %%array|matriz%% o %%cache pool|pool de cache%%. Esto significa que no necesitas preocuparte por qué disco específico almacena tus archivos; están organizados para ti. + + También puedes personalizar estas comparticiones para incluir o excluir ciertos discos y decidir cómo se distribuyen los archivos en tu almacenamiento. Además, puedes gestionar cómo los usuarios acceden a las comparticiones configurando opciones de red, como %%SMB|samba%% y %%NFS|nfs%%, y aplicando ajustes de seguridad. Para mantener los datos privados seguros, puedes crear cuentas de usuario y establecer límites de acceso para personas de confianza. + + ```mdx-code-block + +
+
+ User shares distribution example + +
User shares - Distribution
+
+ +
+ User shares distribution example larger + +
User shares - Access
+
+
+ + ``` + + ### Entendiendo las Unidades de Caché + + Una de las características destacadas de Unraid es el %%cache drive|disco de cache%%, que ayuda a acelerar la transferencia de datos. Cuando utilizas un %%cache drive|disco de cache%% junto a tres o más discos, puedes escribir datos hasta **tres veces más rápido**. Cuando guardas archivos en una %%user shares|compartición de usuario%% con un %%cache drive|disco de cache%%, los datos primero se almacenan en el %%cache drive|disco de cache%%. Esto permite una escritura rápida, y luego, un proceso llamado %%Mover|mover%% transfiere los datos al %%array|matriz%% de almacenamiento principal, a menudo durante la noche, liberando espacio en el %%cache drive|disco de cache%%. + + Para mayor seguridad de los datos, puedes configurar un %%cache pool|pool de cache%% con múltiples discos. Esta configuración no solo incrementa el espacio de almacenamiento, sino que también utiliza tecnologías como %%ZFS|zfs%% o %%BTRFS|btrfs%% para proporcionar protección adicional para tus datos, similar a %%RAID 1|raid1%%. En general, la gestión de comparticiones y %%cache drives|discos de cache%% de Unraid crea una solución de almacenamiento flexible, eficiente y segura. + + [Aprende más sobre cómo configurar comparticiones y caché aquí.](../using-unraid-to/manage-storage/array-configuration.mdx) + +
+ ![Cómo funciona la captura de datos con Cache Pool](/img/Cache-pool.gif) +
+
+ +
+

Servidor de Aplicaciones

Facilitando la ejecución de aplicaciones contenedorizadas.
+ + Unraid transforma tu solución de almacenamiento en un %%application server|servidor de aplicaciones%% versátil a través de la contenedorización de Docker. Este enfoque supera las limitaciones tradicionales de NAS al mismo tiempo que mantiene la estabilidad del sistema y la facilidad de uso. + + Las soluciones tradicionales de NAS presentan tres desafíos clave para el alojamiento de aplicaciones: + + 1. **Problemas de compatibilidad de sistemas operativos** - Incapacidad para ejecutar aplicaciones diseñadas para diferentes sistemas operativos. + 2. **Gestión compleja del ciclo de vida** - Experiencias de instalación difíciles pueden dejar artefactos residuales después de la eliminación. + 3. **Conflicto de aplicaciones** - Los componentes del software pueden interferir entre ellos o con las operaciones del sistema. + + El uso de Docker por parte de Unraid aborda estos desafíos de tres maneras clave: + + 1. **Independencia del SO** - Cada contenedor se ejecuta en su propio entorno Linux, eliminando problemas de compatibilidad con el sistema operativo anfitrión. + 2. **Implementación basada en imágenes** - Paquetes de aplicaciones preconfigurados permiten la instalación con un solo clic y la desinstalación completa de aplicaciones. + 3. **Aislamiento de procesos** - Las aplicaciones en contenedores operan en espacios de usuario separados, evitando cualquier conflicto entre los software. + + Los contenedores de Docker te permiten ejecutar aplicaciones en entornos aislados y ligeros sin la sobrecarga asociada con las %%virtual machines|máquinas virtuales%%. Unraid simplifica el uso de Docker proporcionando acceso a miles de aplicaciones preconfiguradas a través de [Docker Hub](https://hub.docker.com/) y [Community Applications](../using-unraid-to/run-docker-containers/community-applications.mdx). Este enfoque contenedorizado permite a los usuarios de Unraid ejecutar múltiples aplicaciones simultáneamente sin problemas de compatibilidad. También ayuda a mantener el sistema organizado mediante el uso de paquetes de aplicaciones auto-contenidos y facilita la mejora de las capacidades del servidor a través del ecosistema de Docker. + + :::note + Para configuraciones avanzadas de Docker, consulta [Ejecutar contenedores Docker](../using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx). + ::: +
+ +
+

Plataforma de Virtualización

Ejecución de máquinas virtuales con rendimiento cercano al hardware nativo.
+ + Unraid funciona como un anfitrión de virtualización, usando un %%hypervisor|hypervisor%% para asignar recursos de forma segura a los huéspedes virtualizados. Esto te permite ejecutar diversas aplicaciones en entornos aislados, yendo más allá del simple almacenamiento conectado a la red. + + :::tip + Para utilizar la virtualización de hardware en Unraid, asegúrate de que tu CPU, chipset, BIOS y controladores de dispositivos sean compatibles. Una lista completa de requisitos está disponible en la [guía de configuración de VM](../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx). Si tu servidor no cumple con estos requisitos, el menú %%VMs|vm%% estará deshabilitado en el %%WebGUI|web-gui%% de Unraid. + ::: + +
+ Beneficios de Usar Máquinas Virtuales (VMs) - Haz clic para expandir/contraer + + Aunque los contenedores Docker son populares para aplicaciones basadas en Linux, las %%VMs|vm%% mejoran la flexibilidad y eficiencia de la configuración de tu servidor Unraid y ofrecen ventajas distintivas en tu servidor Unraid: + + - **Aislamiento:** Las %%VMs|vm%% se ejecutan de manera independiente en entornos separados, asegurando que la falla de una no afecte a las demás. + + - **Consolidación:** Consolida múltiples servidores físicos en una sola máquina Unraid, reduciendo las necesidades de hardware y simplificando el mantenimiento. + + - **Asignación de Recursos:** Unraid te permite asignar recursos específicos de CPU, memoria, almacenamiento y red a cada %%VM|vm%%, asegurando que las cargas de trabajo críticas reciban los recursos necesarios. + + - **Pruebas y Desarrollo:** Las %%VMs|vm%% permiten la creación y prueba fácil de software en diferentes entornos sin requerir múltiples máquinas físicas. + + - **Seguridad:** El aislamiento de las %%VMs|vm%% mejora la seguridad, dificultando la propagación de malware entre ellas. + + - **Soporte de Aplicaciones Legado:** Las %%VMs|vm%% te permiten ejecutar aplicaciones o sistemas operativos antiguos que pueden no ser compatibles con hardware moderno. + + - **Aislamiento de Recursos:** Cada %%VM|vm%% puede tener recursos dedicados, previniendo problemas de rendimiento entre %%VMs|vm%%. + + - **Exceso de Recursos:** Puedes ejecutar más %%VMs|vm%% de las que los recursos físicos permiten típicamente, entendiendo que no todas utilizarán completamente sus asignaciones al mismo tiempo. +
+ +
+ Soporte de Dispositivos Asignables para Virtualización - Haz clic para expandir/contraer + + Unraid's %%KVM|kvm%%-based virtualization uses modern tools for flexible hardware assignment while maintaining host stability. + + Los componentes clave incluyen: + + **Tecnologías centrales** + + - %%QEMU|qemu%% y %%libvirt|libvirt%%: Manejan ciclos de vida de %%VM|maquina virtual%%. + - Passthrough de dispositivo %%VFIO|vfio%%: Proporciona acceso directo al hardware. + - %%VirtIO|virtio%% y %%VirtFS|virtfs%%: Optimizar el rendimiento de almacenamiento y red. + - %%OVMF|ovmf%%: Soporta %%UEFI|uefi%% y Arranque Seguro. + + **Recursos asignados** + + - **Computación:** Núcleos de CPU dedicados a través de %%CPU pinning|fijación-de-cpu%%. + - **Memoria:** RAM aislada. + - **Almacenamiento:** Discos virtuales optimizados para SSD vía %%VirtIO|virtio%%. + - **Periféricos:** Paso completo de dispositivo PCI/USB, incluyendo soporte de %%GPU passthrough|passthrough-gpu%%. + + **Flexibilidad de la plataforma** + + - Soporta tipos de máquinas %%i440fx|i440fx%% y %%Q35|q35%%. + - Compatible con cargas de trabajo %%Xen HVM|xen-hvm%% y %%Xen PV|xen-pv%%. + - Habilita la virtualización de hardware %%Intel VT-x|intel-vt-x%% y %%AMD-V|amd-v%%. + +
+ ![Recursos asignables](/img/KVM@2x.png) +
+
+ + Para los pasos de configuración de %%VM|vm%%, consulta [Crear máquinas virtuales](../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx). + + :::caution + El %%GPU passthrough|passthrough de GPU%% requiere hardware compatible (consulta [configuración de VM](../using-unraid-to/create-virtual-machines/vm-setup.mdx)). + ::: +
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md new file mode 100644 index 0000000000..743eca186d --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md @@ -0,0 +1,931 @@ +## Versión 6.10.0 2022-05-07 + +Resumen de Cambios y Nuevas Funcionalidades + +### Complemento UPC y My Servers + +La característica nueva más visible se encuentra en la esquina superior derecha del encabezado del WebGUI. La llamamos el *Componente de Perfil de Usuario*, o UPC. El UPC permite a un usuario gestionar mejor sus llaves de registro e instalar el complemento opcional *Mis Servidores*. + +*Mis Servidores* es como llamamos a nuestro conjunto de servicios y características basados en la nube que se integran con tu(s) servidor(es) Unraid. Después de instalar el complemento *Mis Servidores*, se le pedirá que inicie sesión en su servidor con una cuenta existente de Unraid.net o que cree una nueva cuenta de Unraid.net. Una vez instalado, aquí están algunas de las características de *Mis Servidores*: + +- *Estado en tiempo real* - con el complemento instalado, cada azulejo de servidor en el *Tablero de Mis Servidores* mostrará el estado en tiempo real, como si el servidor está en línea o fuera de línea, utilización de almacenamiento y otra información. +- Enlace de acceso local: este es un enlace directo al WebGUI del servidor en + su LAN. +- Enlace de Acceso Remoto - **si está habilitado**, se muestra un enlace en el *Tablero de Mis Servidores* para levantar una WebGUI de servidor de forma remota y a través de Internet. +- Copia de seguridad automática del flash: a cada servidor registrado se le proporciona un repositorio git privado inicialmente poblado con el contenido de su dispositivo de arranque USB (excepto ciertos archivos que contienen información privada como contraseñas). Posteriormente, se comprometen automáticamente los cambios de configuración. Se proporciona un enlace para descargar un archivo zip personalizado que puede utilizarse como entrada para la herramienta de Creador de Flash USB para mover su configuración a un nuevo dispositivo flash USB. +- Notificación de actualizaciones críticas relacionadas con la seguridad. En el caso de que se descubra y solucione una vulnerabilidad de seguridad grave, enviaremos una notificación a todas las direcciones de correo electrónico asociadas con servidores registrados. +- Privilegios de publicación en un nuevo conjunto de foros de My Servers. + +Los servidores con sesión iniciada mantienen una conexión websocket con un servidor proxy de Lime Technology basado en la nube con el propósito de retransmitir el estado en tiempo real. Consulte la sección de Privacidad de Mis Servidores para más información. + +### Cambios en la Seguridad + +Ahora es **obligatorio** definir una contraseña de *root* y cambiar la contraseña del usuario *root* cerrará sesión en todas las sesiones del navegador WebGUI. + +También creamos una división en la página de Usuarios para distinguir *root* de otros nombres de usuario. La página de edición de usuario *root* incluye un cuadro de texto para pegar claves SSH autorizadas. + +Para las nuevas configuraciones, la configuración de exportación predeterminada del compartido *flash* es No. + +Para nuevas configuraciones, SMBv1 está deshabilitado de manera predeterminada. + +Para nuevas configuraciones, telnet y ssh están deshabilitados de manera predeterminada. + +Para todas las nuevas comparticiones de usuario, la configuración de exportación predeterminada es No. + +Eliminamos ciertas cadenas de Diagnósticos, como contraseñas encontradas en el archivo 'go'. + +#### Cambio a certificados SSL de Let's Encrypt wildcard. + +A partir de esta versión, **ya no emitimos nuevos certificados SSL de host único** (a los que llamamos certificados heredados). En su lugar, todos los nuevos certificados SSL de Unraid.net son **certificados comodín** (aún proporcionados por Let's Encrypt). + +La URL utilizada para acceder a su servidor haciendo uso de un certificado wildcard +tiene esta forma: + +- `https://[lan-ip].[hash].myunraid.net` + +donde, + +- `[lan-ip]` es la dirección IP LAN de su servidor con los puntos cambiados a + guiones +- `[hash]` es una cadena hexadecimal de 40 caracteres (160 bits) única para este + servidor (y diferente de un `[hash]` similar en certificados heredados) + +ejemplo: + +- `https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net` + +Agregamos un nuevo servidor DDNS que escucha en "myunraid.net". Este servidor extrae `[lan-ip]` del nombre de dominio y devuelve la dirección IP donde los guiones se cambian nuevamente por puntos. Hay varios beneficios de este enfoque tanto para nuestros usuarios como para nosotros: + +- Elimina los retrasos de propagación de DNS cuando primero *provisionas* un certificado o cuando una dirección IP LAN del servidor (o dirección IP WAN) cambia. Dado que el nombre de dominio incluye la dirección IP, cualquier cambio de dirección IP también cambia el nombre de dominio, por lo tanto no se almacenará en caché DNS intermedia alguna. También cambiamos el TTL de 1 hora a 7 días reduciendo aún más la sobrecarga y aliviando problemas donde el internet de alguien queda inactivo por períodos breves. +- Ya no es necesario que el servidor actualice activamente un + servidor DDNS. +- Mejora la privacidad ya que su dirección IP WAN de acceso remoto no puede + determinarse simplemente anteponiendo "www" a su URL de acceso local. +- Mueve la funcionalidad de DNS del dominio 'unraid.net' al aislarla en el dominio 'myunraid.net'. + +En lanzamientos anteriores, el código que *provisiona* (asigna y descarga) un certificado SSL Unraid.net primero probaría si la *Protección contra Rebinding DNS* se imponía en la LAN del usuario; y, de ser así, no proporcionaría el certificado. Dado que hay otros usos para un certificado LE, cambiamos el código para que *provisionar* siempre proceda. Luego, cambiamos la lógica detrás de la selección *Auto* de la configuración "Usar SSL/TLS" en la página de Acceso de Gestión. Ahora solo es posible seleccionar Auto si tanto un certificado LE ha sido proporcionado como si no se aplica Protección contra Rebinding DNS. Este es un cambio sutil pero permite ciertas características de *Mis Servidores*, como Acceso Remoto. + +Al actualizar, deberá modificar cualquier marcador de servidor con la nueva URL. Alternativamente, si ha instalado el complemento *Mis Servidores*, se incluye un enlace de acceso local para cada servidor en su Tablero. Si no ha instalado el complemento Mis Servidores, ya que no hay un demonio de actualización de DDNS, recomendamos configurar un arrendamiento DHCP estático, o asignar una dirección IP estática para su servidor. Finalmente, configuramos nginx de tal manera que las URL's: + +- `http://./` + +o + +- `https://./` + +redirigirán a `https://[lan-ip].[hash].myunraid.net` + +Más información, incluidos casos de uso, se puede encontrar en la Documentación [aquí](../system-administration/secure-your-server/securing-your-connection.mdx). + +### Virtualización + +Tanto libvirt como qemu han sido actualizados. Además, qemu ha sido compilado con soporte OpenGL y emulación ARM (experimental). + +#### Soporte para Windows 11 + +Para apoyar Windows 11, que requiere TPM y arranque seguro, hemos añadido emulación de TPM y un template de VM de "Windows 11" que selecciona automáticamente el BIOS OVMF compatible con TPM. También, aquí están las instrucciones para actualizar una VM de Windows 10 a Windows 11. Un agradecimiento especial a [@ich777](https://forums.unraid.net/profile/72388-ich777/) quien investigó y determinó qué cambios y componentes eran necesarios para proporcionar esta funcionalidad. + +### Docker + +#### Etiquetas de Docker + +- Se agregan etiquetas de Docker para permitir a las personas que utilizan Docker compose hacer + uso de iconos y acceso GUI. +- Mire la salida de un comando 'run' de Docker para ver exactamente qué etiquetas + se utilizan + +#### Redes personalizadas de Docker + +- Está disponible un nuevo ajuste para redes personalizadas. Originalmente, las redes personalizadas se crean utilizando el modo macvlan, y este modo se mantiene al actualizar a la versión 6.10 +- Se introduce el nuevo modo ipvlan para combatir las fallas que algunas personas experimentan al usar el modo macvlan. Si ese es su caso, cambie al modo ipvlan y pruebe. El cambio de modo no requiere reconfigurar nada en el nivel de Docker, internamente todo se maneja. + +#### Red de puentes de Docker (docker0) + +- docker0 ahora admite IPv6. Esto se implementa asignando a docker0 una subred IPv6 privada (fd17::/64), similar a lo que se hace para IPv4 y utilizando la traducción de red para comunicarse con el exterior. +- Los contenedores conectados a la red de puentes ahora tienen conectividad tanto IPv4 como + IPv6 (por supuesto, el sistema debe tener IPv6 configurado en + la configuración de red). +- Además, se realizan varias mejoras en la implementación de IPv6 + para manejar mejor el uso (o no uso) de IPv6 + +### WireGuard + +El complemento de WireGuard se ha integrado en WebGUI, es decir, no se necesita el complemento. Si había instalado el complemento previamente, se desinstalará y moverá a la página "Errores de Instalación de Plug-in/Archivo de Plug-in". No se necesita realizar ninguna acción a menos que quiera presionar el botón Eliminar para quitarlo de esa página. Sus túneles y configuraciones de WireGuard se conservarán. [Consulte esta publicación para comenzar con WireGuard](https://forums.unraid.net/topic/84226-wireguard-quickstart/). + +El experto en redes residente [@bonienl](https://forums.unraid.net/profile/2736-bonienl/) ha agregado la capacidad de vincular una interfaz de red virtual de WireGuard a un contenedor de Docker. Un uso de esta función es configurar una VPN habilitada para WireGuard que luego puede ser utilizada exclusivamente por ese contenedor, mientras que su servidor principal utiliza la interfaz de red LAN normal. [Por favor refiérase a esta publicación para detalles adicionales.](https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381) + +### Núcleo de Linux + +Actualizado al núcleo de Linux 5.15.x LTS que incluye mitigaciones de vulnerabilidad llamadas *Sequoia* y *Dirty Pipe*. + +**Los controladores GPU en árbol** ahora se cargan de forma predeterminada si se detecta +el hardware correspondiente: + +- amdgpu +- ast +- i915 +- radeon + +Estos controladores son necesarios principalmente para el gráfico integrado en placas base utilizado en modo *arranque GUI*. La carga de un controlador puede estar prohibida creando el archivo apropiado nombrado después del controlador: + +`echo "blacklist i915" > /boot/config/modprobe.d/i915.conf` + +Alternativamente, el dispositivo puede estar completamente aislado de Linux a través de la página de Dispositivos del Sistema. Tenga en cuenta que en las versiones del sistema operativo Unraid 6.9, los controladores GPU integrados están automáticamente en lista negra y para habilitar la carga de un controlador debe crear un archivo "conf" vacío. Después de actualizar a Unraid OS 6.10, puede eliminar esos archivos, o dejarlos tal cual. Este cambio se realizó para mejorar en gran medida la experiencia de *GUI de Escritorio* para nuevos usuarios. + +**Otros cambios en el kernel:** + +- Agregado soporte para Intel GVT-g, lo que te permite dividir tu iGPU Intel i915 en múltiples GPUs virtuales y transferirlas a múltiples VM, utilizando el plug-in *Intel-GVT-g* de [@ich777](https://forums.unraid.net/profile/72388-ich777/). +- Agregado soporte para gnif/vendor-reset. Esto simplifica el plug-in *AMD Vendor Reset* de [@ich777](https://forums.unraid.net/profile/72388-ich777/), que permite a los usuarios que sus tarjetas de video AMD se reinicien adecuadamente. +- Agregado el llamado "add-relaxable-rmrr-5\_8\_and\_up.patch" modificado para nuestro núcleo: + [https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5\_8\_and\_up.patch](https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch) + Gracias a [@ich777](https://forums.unraid.net/profile/72388-ich777/) por señalar esto. +- Se habilitaron opciones adicionales del kernel ACPI. +- Se habilitaron módulos del kernel TPM (aún no utilizados) - note que esto es para + Unraid host utilizando TPM físico, no el soporte TPM emulado para + máquinas virtuales. +- Soporte para adaptadores de Ethernet USB basada en Realtek RTL8152/RTL8153. +- Se habilitó el soporte NFSv4. + +### Paquetes base + +Prácticamente todo el conjunto de paquetes base ha sido actualizado. + +Para SMB: La versión 4.15 de Samba SMB3 multi-canal ya no está marcada como "experimental", sin embargo, está **desactivada** de forma predeterminada. Puede habilitarse en la página de Configuración/Configuración SMB. Algunos usuarios han informado de problemas con SMB3 multi-canal en conjunto con ciertas configuraciones de vínculo de red. + +Por petición, agregamos el paquete mcelog. Con la inclusión de este paquete, si tiene un procesador AMD puede ver este mensaje de error en el registro del sistema: + +`mcelog: ERROR: AMD Processor family 23: mcelog no es compatible con este procesador. Por favor use el módulo edac_mce_amd en su lugar.` + +No estamos seguros de qué hacer con esto. Aparentemente, mcelog está siendo reemplazado por rasdaemon. Esto es algo que necesitamos investigar más. + +### Otras mejoras + +Otras mejoras que tal vez no sean tan obvias de detectar a partir de las +notas de la versión y algunas de estas mejoras son internas y no son realmente +visibles: + +**Modelo basado en eventos** para obtener información del servidor y actualizar el +WebGUI en tiempo real + +- La ventaja de este modelo es su escalabilidad. Se pueden abrir múltiples navegadores simultáneamente al WebGUI sin mucho impacto. +- Además, las sesiones de navegador obsoletas ya no crearán errores CSRF. +- Las personas que mantienen su navegador abierto las 24 horas del día, + los 7 días de la semana, encontrarán que el WebGUI permanece + sensible en todo momento. +- La información del estado consistente se mantiene a través de todas las instancias + del navegador abiertas a un servidor en particular. + +**Página de complementos** + +- La página de complementos ahora carga información en dos pasos. Primero, se crea la lista de complementos y luego se recupera el campo de estado del complemento, que consume más tiempo, en segundo plano. El resultado es una página de complementos que carga más rápido, especialmente cuando tienes muchos complementos instalados + +**Gráficos del tablero** + +- El panel ahora tiene dos gráficos disponibles. El gráfico de CPU se muestra por defecto, mientras que el gráfico de RED es una nueva opción bajo Interfaz (vea la selección 'Información General') +- El gráfico de CPU también puede ser ocultado en caso de que no se desee. +- Ambos gráficos tienen una línea de tiempo configurable, que por defecto es de 30 + segundos y puede cambiarse independientemente para cada gráfico para ver una + historia más larga o más corta. +- Los gráficos se actualizan en tiempo real y son útiles para observar el + comportamiento del servidor bajo diferentes circunstancias. + +**Mejoras en el programador** + +- Ahora puede dividir una verificación de paridad en piezas más pequeñas y dejarla correr durante varios días o semanas. Por ejemplo, se puede realizar una verificación en un marco de tiempo de 01:00 am a 06:00 am durante varios días seguidos hasta que se complete. De esta manera, una larga verificación de paridad no interferirá con las actividades diarias normales, como ver una película. +- Se agregó la capacidad de programar operaciones de + 'balanceo' y 'examinación' del grupo y calcular si se recomienda un + balance completo. + +**El navegador Firefox integrado** disponible en el modo de arranque *GUI* está construido como un AppImage y se encuentra en el sistema de archivos comprimido *bzfirmware*. Esto ahorra aproximadamente 60MB de RAM. + +**Instalación simplificada del complemento de Aplicaciones de la Comunidad.** El WebGUI incluye automáticamente el elemento del menú Aplicaciones, y si CA no está ya instalado, la página ofrece un botón de Instalación. No es necesario buscar el enlace del complemento. + +**Aumentamos el tamaño de la fuente en el Terminal** y solucionamos el problema con macOS *Monterey*. El tamaño de la fuente del Terminal es configurable a través de la página de Configuración/Configuración de Pantalla. + +**Mover** creará un archivo '.partial' y luego lo renombrará al completarlo. + +**El arranque del sistema** verificará los sha256sums del archivo bz al arrancar para asegurar que no haya corrupción. + +Para las cookies gestionadas por WebGUI, se cambió el atributo de la cookie sameSite de 'estricta' a 'laxa'. Este cambio se realizó para resolver un problema con la ventana de Terminal que no se abría en Safari. + +**Se añadieron los agentes de notificación ServerChan y Pushplus**, gracias a [@ludoux](https://forums.unraid.net/profile/168579-ludoux/) + +**Los Repositorios de Plantillas** fueron eliminados, vea [este post para información sobre sus reemplazos](https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265) + +### Otros Arreglos de Errores + +- Cambiamos a una versión mejor mantenida del componente del servidor WSD llamada wsdd2 en un esfuerzo por eliminar instancias donde el daemon wsd comenzaría a consumir 100% de un núcleo de CPU. +- Se corrigió un problema donde no se podía crear una imagen docker en un nombre de compartición que contiene un espacio. +- Se corrigió un problema donde 'mover' no se movía a un nombre de grupo que contiene un espacio. +- Se corrigió un problema en el sistema de archivos [User Share](../using-unraid-to/manage-storage/shares.mdx#user-shares) donde no se respetaban los permisos. +- Se corrigió que los marcos jumbo no funcionaban. +- sysctl: manejar net.netfilter.nf\_conntrack\_count si se excede el máximo (aumentar el ajuste a 131072) - agradecimiento al Miembro de la Comunidad [@DieFalse](https://forums.unraid.net/profile/77686-diefalse/) +- Corregido el error encontrado por [@thohell](https://forums.unraid.net/profile/12113-thohell/) donde md\_sync\_limit no se respetaba para limitar el uso de caché stripe\_head cuando había otra E/S activa. + El efecto de esta corrección es disminuir drásticamente las operaciones de sincronización de paridad si otras E/S están sucediendo (como reproduciendo un video). Se puede ajustar el estrangulamiento de las operaciones de sincronización de paridad cambiando el valor en 'Configuración/Configuración de Disco/Conmutable (md\_sync\_limit)'. +- Se corrigieron casos de esquina en el reemplazo de dispositivos de pool btrfs. Nota importante: si 'desasigna' un dispositivo de un pool de dispositivos múltiples btrfs, y ese dispositivo todavía está presente físicamente, al iniciar el array, **borrará** el encabezado LUKS en el dispositivo si está presente, y **eliminará** la estructura de particiones, borrando así efectivamente todos los datos contenidos en el dispositivo. Esto es necesario para convencer a btrfs de que ya no use el dispositivo y para liberarlo para su asignación a otro pool. +- Se corrigió un error donde al reemplazar un dispositivo en un grupo de dispositivos múltiples btrfs, aún se etiquetaría el dispositivo antiguo como faltante. +- Se corrigió un problema donde al conectar un dispositivo en caliente en un servidor con unidades SAS apagadas podría causar que las unidades SAS aparezcan como desasignadas. +- Se corrigió un problema donde el servidor desaparecería de la Red de Windows después del inicio de docker y/o VM. +- Se corrigió la regresión del controlador md/unraid que confundía a XFS, haciéndole pensar que se había realizado una reducción en línea. +- Corregido: Evitar que Unraid se cuelgue cuando el array se detiene, mientras las VMs están en estado pausado o suspendido. +- Numerosos otros pequeños arreglos y mejoras de errores. + +## Registro de cambios vs. Unraid OS 6.9.2 + +#### Distro base + +- aaa\_base: versión 15.0 +- aaa\_glibc-solibs: versión 2.33 +- aaa\_libraries: versión 15.0 +- acl: versión 2.3.1 +- acpid: versión 2.0.33 +- apcupsd: versión 3.14.14 +- at: versión 3.2.3 +- attr: versión 2.5.1 +- avahi: versión 0.8 +- bash: versión 5.1.016 +- beep: versión 1.3 +- bin: versión 11.1 +- bind: versión 9.16.27 +- bluez-firmware: versión 1.2 +- bridge-utils: versión 1.7.1 +- brotli: versión 1.0.9 +- btrfs-progs: versión 5.16 +- bzip2: versión 1.0.8 +- ca-certificates: versión 20220403 +- celt051: versión 0.5.1.3 +- cifs-utils: versión 6.14 +- coreutils: versión 9.0 +- cpio: versión 2.13 +- cpufrequtils: versión 008 +- cracklib: versión 2.9.7 +- cryptsetup: versión 2.4.3 +- curl: versión 7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775 CVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780 CVE-2022-27781 CVE-2022-27782 CVE-2022-30115) +- cyrus-sasl: versión 2.1.27 +- db48: versión 4.8.30 +- dbus: versión 1.12.20 +- dcron: versión 4.5 +- devs: versión 2.3.1 +- dhcpcd: versión 9.4.1 +- diffutils: versión 3.8 +- dmidecode: versión 3.3 +- dnsmasq: versión 2.86 +- docker: versión 20.10.14 (CVE-2022-24769) +- dosfstools: versión 4.2 +- e2fsprogs: versión 1.46.5 +- ebtables: versión 2.0.11 +- eject: versión 2.1.5 +- elogind: versión 246.10 +- elvis: versión 2.2\_0 +- etc: versión 15.0 +- ethtool: versión 5.16 +- eudev: versión 3.2.11 +- file: versión 5.41 +- findutils: versión 4.8.0 +- flex: versión 2.6.4 +- floppy: versión 5.5 +- fuse3: versión 3.10.5 +- gawk: versión 5.1.1 +- gdbm: versión 1.22 +- genpower: versión 1.0.5 +- getty-ps: versión 2.1.0b +- git: versión 2.35.3 (CVE-2022-24765) +- glib2: versión 2.70.3 +- glibc: versión 2.33 +- glibc-zoneinfo: versión 2022a +- gmp: versión 6.2.1 +- gnutls: versión 3.7.2 +- gptfdisk: versión 1.0.8 +- grep: versión 3.7 +- gzip: versión 1.12 (CVE-2022-1271) +- hdparm: versión 9.63 +- hostname: versión 3.23 +- htop: versión 3.1.2 +- icu4c: versión 69.1 +- inetd: versión 1.79s +- infozip: versión 6.0 +- inih: versión 53 +- inotify-tools: versión 3.20.11.0 +- iproute2: versión 5.16.0 +- iptables: versión 1.8.7 +- iputils: versión 20211215 +- irqbalance: versión 1.7.0 +- jansson: versión 2.14 +- jemalloc: versión 5.2.1 +- jq: versión 1.6 +- json-c: versión 0.15\_20200726 +- json-glib: versión 1.6.6 +- kbd: versión 1.15.3 +- keyutils: versión 1.6.3 +- kmod: versión 29 +- krb5: versión 1.19.2 +- lbzip2: versión 2.5 +- less: versión 590 +- libaio: versión 0.3.112 +- libarchive: versión 3.6.1 +- libcap-ng: versión 0.8.2 +- libcgroup: versión 0.41 +- libdaemon: versión 0.14 +- libdrm: versión 2.4.109 +- libedit: versión 20210910\_3.1 +- libepoxy: versión 1.5.9 +- libestr: versión 0.1.9 +- libevent: versión 2.1.12 +- libfastjson: versión 0.99.9 +- libffi: versión 3.3 +- libgcrypt: versión 1.9.4 +- libgpg-error: versión 1.44 +- libgudev: versión 237 +- libidn: versión 1.38 +- libjpeg-turbo: versión 2.1.2 +- liblogging: versión 1.0.6 +- libmnl: versión 1.0.4 +- libnetfilter\_conntrack: versión 1.0.8 +- libnfnetlink: versión 1.0.1 +- libnftnl: versión 1.2.1 +- libnl3: versión 3.5.0 +- libpcap: versión 1.10.1 +- libpciaccess: versión 0.16 +- libpng: versión 1.6.37 +- libpsl: versión 0.21.1 +- libseccomp: versión 2.5.1 +- libssh: versión 0.9.6 +- libssh2: versión 1.10.0 +- libtasn1: versión 4.18.0 +- libtirpc: versión 1.3.2 +- libtpms: versión 0.9.0 +- libunistring: versión 0.9.10 +- libunwind: versión 1.6.2 +- libusb: versión 1.0.24 +- libusb-compat: versión 0.1.7 +- libuv: versión 1.41.0 +- libvirt: versión 8.2.0 +- libvirt-php: versión 0.5.6a +- libwebp: versión 1.2.2 +- libwebsockets: versión 4.2.0 +- libx86: versión 1.1 +- libxml2: versión 2.9.14 (CVE-2022-29824) +- libxslt: versión 1.1.35 +- libzip: versión 1.8.0 +- lm\_sensors: versión 3.6.0 +- lmdb: versión 0.9.29 +- logrotate: versión 3.18.1 +- lshw: versión B.02.19.2 +- lsof: versión 4.94.0 +- lsscsi: versión 0.32 +- lvm2: versión 2.03.13 +- lz4: versión 1.9.3 +- lzip: versión 1.22 +- lzo: versión 2.10 +- mc: versión 4.8.27 +- mcelog: versión 180 +- miniupnpc: versión 2.1 +- mpfr: versión 4.1.0 +- nano: versión 6.0 +- ncompress: versión 5.0 +- ncurses: versión 6.3 +- net-tools: versión 20181103\_0eebece +- nettle: versión 3.7.3 +- network-scripts: versión 15.0 +- nfs-utils: versión 2.5.4 +- nghttp2: versión 1.46.0 +- nginx: versión 1.21.6 +- nss-mdns: versión 0.14.1 +- ntfs-3g: versión 2021.8.22 +- ntp: versión 4.2.8p15 +- numactl: versión 2.0.13 +- oniguruma: versión 6.9.7.1 +- openssh: versión 8.8p1 +- openssl: versión 1.1.1o (CVE-2022-1292) +- openssl-solibs: versión 1.1.1o (CVE-2022-1292) +- p11-kit: versión 0.24.1 +- pam: versión 1.5.2 +- patch: versión 2.7.6 +- pciutils: versión 3.7.0 +- pcre: versión 8.45 +- pcre2: versión 10.39 +- php: versión 7.4.29 (CVE-2021-21708) +- pixman: versión 0.40.0 +- pkgtools: versión 15.0 +- procps-ng: versión 3.3.17 +- pv: versión 1.6.6 +- qemu: versión 6.2.0 +- qrencode: versión 4.1.1 +- reiserfsprogs: versión 3.6.27 +- rpcbind: versión 1.2.5 +- rsync: versión 3.2.3 +- rsyslog: versión 8.2102.0 +- samba: versión 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336 + CVE-2021-44141 CVE-2021-441412 CVE-2022-0336) +- sdparm: versión 1.12 +- sed: versión 4.8 +- sg3\_utils: versión 1.47 +- shadow: versión 4.8.1 +- smartmontools: versión 7.3 +- spice: versión 0.15.0 +- sqlite: versión 3.37.2 +- ssmtp: versión 2.64 +- sudo: versión 1.9.9 +- swtpm: versión 0.7.3 (CVE-2022-23645) +- sysfsutils: versión 2.1.0 +- sysvinit: versión 2.99 +- sysvinit-scripts: versión 15.0 +- talloc: versión 2.3.2 +- tar: versión 1.34 +- tcp\_wrappers: versión 7.6 +- tdb: versión 1.4.6 +- telnet: versión 0.17 +- tevent: versión 0.11.0 +- traceroute: versión 2.1.0 +- tree: versión 1.8.0 +- ttyd: versión 20211023 +- usbredir: versión 0.8.0 +- usbutils: versión 014 +- utempter: versión 1.2.0 +- util-linux: versión 2.37.4 +- vbetool: versión 1.2.2 +- vsftpd: versión 3.0.5 +- wayland: versión 1.20.0 +- wget: versión 1.21.2 +- which: versión 2.21 +- wireguard-tools: versión 1.0.20210914 +- wsdd2: versión 20111022 +- xfsprogs: versión 5.13.0 +- xxHash: versión 0.8.1 +- xz: versión 5.2.5 (CVE-2022-1271) +- yajl: versión 2.1.0 +- zlib: versión 1.2.12 +- zstd: versión 1.5.2 + +#### Incluido con modo GUI + +- adwaita-icon-theme: versión 40.1.1 +- at-spi2-atk: versión 2.38.0 +- at-spi2-core: versión 2.42.0 +- atk: versión 2.36.0 +- cairo: versión 1.16.0 +- dbus-glib: versión 0.112 +- freetype: versión 2.11.1 +- fribidi: versión 1.0.11 +- gd: versión 2.3.3 +- gdk-pixbuf2: versión 2.42.6 +- graphite2: versión 1.3.14 +- gtk+3: versión 3.24.31 +- harfbuzz: versión 3.2.0 +- hicolor-icon-theme: versión 0.17 +- libtiff: versión 4.3.0 +- libxkbcommon: versión 1.3.1 +- pango: versión 1.48.11 +- shared-mime-info: versión 2.1 +- startup-notification: versión 0.12 +- appres: versión 1.0.5 +- dejavu-fonts-ttf: versión 2.37 +- editres: versión 1.0.7 +- encodings: versión 1.0.5 +- fontconfig: versión 2.13.92 +- freeglut: versión 3.2.1 +- glew: versión 2.2.0 +- glu: versión 9.0.2 +- libICE: versión 1.0.10 +- libSM: versión 1.2.3 +- libX11: versión 1.7.3.1 +- libXau: versión 1.0.9 +- libXaw: versión 1.0.14 +- libXcomposite: versión 0.4.5 +- libXcursor: versión 1.2.0 +- libXdamage: versión 1.1.5 +- libXdmcp: versión 1.1.3 +- libXevie: versión 1.0.3 +- libXext: versión 1.3.4 +- libXfixes: versión 6.0.0 +- libXfont: versión 1.5.2 +- libXfont2: versión 2.0.5 +- libXfontcache: versión 1.0.5 +- libXft: versión 2.3.4 +- libXi: versión 1.8 +- libXinerama: versión 1.1.4 +- libXmu: versión 1.1.3 +- libXpm: versión 3.5.13 +- libXrandr: versión 1.5.2 +- libXrender: versión 0.9.10 +- libXres: versión 1.2.1 +- libXt: versión 1.2.1 +- libXtst: versión 1.2.3 +- libXxf86dga: versión 1.1.5 +- libXxf86misc: versión 1.0.4 +- libXxf86vm: versión 1.1.4 +- libdmx: versión 1.1.4 +- libevdev: versión 1.12.0 +- libfontenc: versión 1.1.4 +- libglvnd: versión 1.3.3 +- libpthread-stubs: versión 0.4 +- libxcb: versión 1.14 +- libxkbfile: versión 1.1.0 +- libxshmfence: versión 1.3 +- listres: versión 1.0.4 +- mkfontscale: versión 1.2.1 +- mtdev: versión 1.1.6 +- sessreg: versión 1.1.2 +- setxkbmap: versión 1.3.2 +- transset: versión 1.0.2 +- xauth: versión 1.1.1 +- xcb-util: versión 0.4.0 +- xdpyinfo: versión 1.3.2 +- xdriinfo: versión 1.0.6 +- xev: versión 1.2.4 +- xf86-input-evdev: versión 2.10.6 +- xf86-input-keyboard: versión 1.9.0 +- xf86-input-mouse: versión 1.9.3 +- xf86-input-synaptics: versión 1.9.1 +- xf86-video-ast: versión 1.1.5 +- xf86-video-mga: versión 2.0.0 +- xf86-video-vesa: versión 2.5.0 +- xhost: versión 1.0.8 +- xinit: versión 1.4.1 +- xkbcomp: versión 1.4.5 +- xkbevd: versión 1.1.4 +- xkbutils: versión 1.0.4 +- xkeyboard-config: versión 2.34 +- xkill: versión 1.0.5 +- xload: versión 1.1.3 +- xlsatoms: versión 1.1.3 +- xlsclients: versión 1.1.4 +- xmessage: versión 1.0.5 +- xmodmap: versión 1.0.10 +- xorg-server: versión 1.20.14 +- xprop: versión 1.2.5 +- xrandr: versión 1.5.1 +- xrdb: versión 1.2.1 +- xrefresh: versión 1.0.6 +- xset: versión 1.2.4 +- xsetroot: versión 1.1.2 +- xsm: versión 1.0.4 +- xtrans: versión 1.4.0 +- xwd: versión 1.0.8 +- xwininfo: versión 1.1.5 +- xwud: versión 1.0.5 +- imlib2: versión 1.7.1 +- fluxbox: versión 1.3.7 +- slim: versión 1.3.6 +- vte3: versión 0.50.2 +- sakura: versión 3.5.0 +- xclock: versión 1.0.9 +- xterm: versión 370 +- hwloc: versión 2.2.0 + +#### Núcleo de Linux + +- versión: 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910 + CVE-2022-0847) +- parche: "drm/i915/gen11: Moviendo WAs a icl\_gt\_workarounds\_init()" +- parche: "add-relaxable-rmrr-5\_8\_and\_up.patch" modificado para este núcleo +- características añadidas: + - varias configuraciones CONFIG relacionadas con ACPI + - CONFIG\_TCG\_TPM y controladores de chip TPM asociados + - CONFIG\_NFS\_V4: Soporte cliente NFS para la versión 4 de NFS + - CONFIG\_NFSD\_V4: Soporte servidor NFS para la versión 4 de NFS + - CONFIG\_USB\_RTL8152: Adaptadores Ethernet USB basados en Realtek RTL8152/RTL8153 + - CONFIG\_USB\_NET\_AQC111: Soporte de controladores Aquantia AQtion USB a 5/2.5GbE + - CONFIG\_USB4: Soporte unificado para USB4 y Thunderbolt + - CONFIG\_USB4\_NET: Redes sobre USB4 y cables Thunderbolt + - CONFIG\_DRM\_I915\_GVT: Habilitar soporte de virtualización gráfica Intel GVT-g del anfitrión + - CONFIG\_DRM\_I915\_GVT\_KVMGT: Habilitar soporte KVM/VFIO para Intel GVT-g + - CONFIG\_VFIO\_MDEV: Marco de controlador de dispositivo mediado + - CONFIG\_VFIO\_MDEV\_DEVICE: Controlador VFIO para dispositivos mediatos + - CONFIG\_FTRACE: Trazadores + - CONFIG\_FUNCTION\_TRACER: Trazador de Funciones del Núcleo + - CONFIG\_KPROBES: Kprobes + - CONFIG\_DEBUG\_KERNEL: Depuración del núcleo + - CONFIG\_KALLSYMS\_ALL: Incluir todos los símbolos en kallsyms + - CONFIG\_ISCSI\_TCP: Iniciador iSCSI sobre TCP/IP (por Miembro de la Comunidad [@ich777](https://forums.unraid.net/profile/72388-ich777/)) + - CONFIG\_GIGABYTE\_WMI: Controlador de temperatura WMI de Gigabyte +- Opciones de BPF kernel (solicitud del usuario): + - CONFIG\_BPF\_SYSCALL: Habilitar la llamada al sistema bpf() + - CONFIG\_BPF\_JIT: Habilitar compilador BPF Just In Time + - CONFIG\_BPF\_JIT\_ALWAYS\_ON: Habilitar permanentemente BPF JIT y eliminar el intérprete BPF + - CONFIG\_NET\_CLS\_BPF: Clasificador basado en BPF + - CONFIG\_NET\_CLS\_ACT: Acciones + - CONFIG\_NET\_ACT\_BPF: Acción basada en BPF + - CONFIG\_IKHEADERS: Habilitar encabezados del núcleo a través de /sys/kernel/kheaders.tar.xz + - CONFIG\_NET\_SCH\_SFQ: Cola de Justicia Estocástica (SFQ) + - CONFIG\_NET\_ACT\_POLICE: Policía de tráfico + - CONFIG\_NET\_ACT\_GACT: Acciones genéricas + - CONFIG\_GACT\_PROB: Soporte de probabilidad + - CONFIG\_NET\_SCH\_INGRESS: Ingress/qudisc de acción de clasificador + - CONFIG\_CGROUP\_BPF: Soporte para programas eBPF adjuntos a cgroups +- md/unriad: versión 2.9.22 + - arreglo: md\_sync\_limit estaba siendo ignorado + +#### Gestión + +- mejor soporte IPv6 +- diagnósticos: añadir valores bz\*.sha256 +- diagnósticos: Mejora en la anonimización +- diagnósticos: Anonimizar mover +- diagnósticos: mejores listados de paquetes en folders.txt +- diagnósticos: no anonimizar direcciones 169.254.x.x +- nuevos valores predeterminados de emhttp: + - contraseña de root requerida + - nuevas acciones creadas no exportadas por defecto + - compartición predeterminada 'flash' no exportada por defecto + - ssh, telnet: desactivados por defecto + - NetBIOS desactivado por defecto + - WSD habilitado por defecto (y usando paquete 'wsdd2' actualizado) + - Mejorada la interoperabilidad de macOS habilitada por defecto + - para 'dominios' y acciones 'sistema', cambiar la configuración del + defecto de 'Habilitar Copia-sobre-escritura' de 'No' a 'Auto' + - cambiar valor predeterminado ajustable de poll\_attributes de 30 min a 30 seg. +- emhttpd: agregar el nombre reservado 'rootshare' +- emhttpd: corregir regresión: las acciones de usuario deben estar habilitadas por defecto +- emhttpd: minimizar la información transmitida por la función UpdateDNS +- emhttpd: usar shfs ioctl para invalidar la información de compartir en caché de shfs cuando + la configuración de compartir cambia +- emhttpd: arreglar manejo incorrecto de contadores de lectura/escritura de dispositivos no asignados +- emhttpd: arreglar a veces el nombre incorrecto de dispositivo asignado a dispositivos no + asignados conectados en caliente +- emhttpd: corregir caso de reemplazo btrfs +- emhttpd: arreglar el dispositivo de grupo btrfs reemplazado que todavía muestra 'faltante' +- emhttpd: eliminar todas las sesiones de PHP cuando se cambia la contraseña de root (cerrar + sesión de todos) +- emhttpd: corregir el manejo del estado del dispositivo para grupos de una sola ranura +- emhttpd: colapsar múltiples guiones bajos dentro de los enlaces simbólicos de nvme /dev/disk/by-id a un solo guión bajo +- firefox: versión 91.0.r20210823123856 (AppImage) +- movedor: arreglar error que no mueve acciones con espacios incrustados +- movedor: agregar sufijo '.partial' al nombre del archivo cuando mudanza está en progreso +- rc.docker: arreglar condición de carrera de red de inicio +- rc.libvirt: Evitar que Unraid se congele cuando el array está detenido, mientras + las VMs están en estado pausado o suspendido +- rc.libvirt: prueba la existencia de una VM antes de agregarla a la lista de NOMBRES +- rc.mcelog: mcelog añadido a la distribución base +- rc.nginx: cambiar fastcgi\_read\_timeout de 120s a 640s +- rc.nginx: eliminar carga lateral ttyd +- rc.nginx: soporte para certificados wildcard de Lets Encrypt +- rc.nginx: soporte para certificados wildcard autofirmados personalizados +- rc.nginx: cambio de sujeto de certificado autofirmado de "unRAID" a "Unraid" +- rc.nginx: ignorar mayúsculas al procesar campo de Asunto para certificados + autofirmados +- rc.nginx: eliminar bloque de servidor predeterminado que devuelve 404 para https si USE\_SSL==no y no hay certificado firmado por CA +- rc.samba: desactivar SMB Multi Canal por defecto; añadir control a la página + de Configuración/Configuración SMB +- rc.S: comprobar sha256 de archivo bz durante el inicio inicial +- shfs: corregir error donde permisos siendo ignorados + ('default\_permissions' faltaban en el comando de montaje) +- sysctl: manejar net.netfilter.nf\_conntrack\_count si se excede el máximo + (aumentar ajuste a 131072) +- ttyd: arreglar texto confuso en ventanas de terminal de Firefox local +- upgradepkg: no actualizar si el paquete existente es más nuevo +- wsdd2: escuchar solo en la interfaz activa por defecto (br0, bond0 o + eth0) +- WebGUI: Integrar UPC de cabecera +- WebGUI: Añadir enlace de Apps para instalar CA +- WebGUI: Añadir referencia interna de contenedor +- WebGUI: Añadir nueva configuración "Tamaño de fuente de la terminal" +- WebGUI: Añadir agente de notificaciones para Pushplus +- WebGUI: Añadir agente de notificaciones para ServerChan +- WebGUI: Añadir protección de carpeta 'root' al árbol de archivos +- WebGUI: Añadir seguimiento después del apagado del sistema +- WebGUI: Añadir vmxnet3 y e1000 a NICs disponibles para VMs +- WebGUI: Añadida referencia "Usuario 'root'" en la página de + Acceso de Gestión +- WebGUI: Añadida notificación cuando falla la instalación de un plugin +- WebGUI: Se agregó: Verificación de paridad acumulativa. Esto permite dividir una verificación de paridad en múltiples ventanas de tiempo. +- WebGUI: Ajustado resaltado de fila en página principal y de acciones para + mejor acomodar a personas con discapacidad del color +- WebGUI: Permitir a CA obtener toda la información de docker sin tener que + descargar íconos si no están presentes +- WebGUI: Permitir a todos los agentes de notificación enviar enlaces +- WebGUI: Permitir reglas locales en rsyslog.conf +- WebGUI: Permitir ventanas simultáneas de registro y consola para contenedores +- WebGUI: Mostrar siempre "WebUI" para URLs especificadas por el usuario +- WebGUI: Programador de balance y limpieza de BTRFS +- WebGUI: BTRFS balance: corregir mensaje de recomendación cuando el volumen está vacío +- WebGUI: Mejor sincronización de arrays cuando múltiples sesiones están abiertas +- WebGUI: Mejor traducción de variables de contenedor docker +- WebGUI: Correcciones menores de CSS +- WebGUI: Cambiar el estado de Paridad del Tablero a inválido y no emulado +- WebGUI: Cambiar el cambio de página para adaptarse mejor a Safari en dispositivos móviles +- WebGUI: Cambiar notificación de sincronización de paridad de error a nivel de aviso +- WebGUI: Cambiar selección de cabecera para mejor soporte de Android +- WebGUI: Comprobar si el flash está offline / verificación rápida de corrupción +- WebGUI: Limpiar carpeta de estilos +- WebGUI: Comprimir nombres de compartir largos en menús desplegables +- WebGUI: ContextMenu: opción añadida "botón": por defecto "izquierda" (comportamiento actual), otras opciones son "derecha" y "ambos" +- WebGUI: Convertir sondeo de notificación a Nchan +- WebGUI: Crear favicon.ico +- WebGUI: Crear entrada en syslog cuando un usuario cierra sesión +- WebGUI: Tablero: añadir gráfico de CPU y RED +- WebGUI: Tablero: corregir color de barra cuando se desactiven umbrales de disco +- WebGUI: Tablero: separar detalles de cpu y vista de gráfico +- WebGUI: Eliminar DockerRepositories.page ver este post para más información sobre + sus + reemplazos +- WebGUI: Device\_list reemplazar icono .png con icono de fuente +- WebGUI: Diagnósticos corregir error de versión máxima de complemento obsoleto +- WebGUI: Diagnósticos: Añadir resumen de compartir +- WebGUI: Diagnósticos: Incluir versiones actuales de complementos +- WebGUI: Diagnósticos: Quitar líneas de go que contengan contraseñas etc +- WebGUI: Diagnósticos: Renovar anonimización +- WebGUI: Diagnósticos: añadir registro DHCP +- WebGUI: Diagnósticos: agregar comprobación para Protección de Reforzamiento de DNS +- WebGUI: Diagnósticos: añadir detalles de URL +- WebGUI: Diagnósticos: privatizar IPs enrutables +- WebGUI: Configuraciones de Visualización: añadir "showBannerGradient" +- WebGUI: No resaltar falso positivo error ERST +- WebGUI: Mejoras de carga de página Docker +- WebGUI: Configuraciones de Docker: suprimir ajustes preestablecidos de navegador +- WebGUI: Advertencia de utilización de Docker solo cuando archivo de imagen +- WebGUI: Docker: Añadir Categoría de Red / Privacidad +- WebGUI: Docker: Añadir crypto como categoría +- WebGUI: Docker: No actualizar plantillas de usuario instaladas +- WebGUI: Docker: Corregir caché incorrecto al eliminar / recrear imagen +- WebGUI: Docker: Manejar caso extremo con el botón de regreso del navegador dentro de CA en ciertas circunstancias poco probables +- WebGUI: Docker: Ignorar referencias de icono a signo de interrogación predeterminado +- WebGUI: Docker: Guardar plantillas solo como v2 +- WebGUI: Docker: Silenciar errores de PHP al editar una plantilla si existe corrupción +- WebGUI: Docker: Soportar etiqueta de CA +- WebGUI: Docker: Soportar ReadMe en menús contextuales +- WebGUI: Docker: añadir descripción a todas las redes personalizadas +- WebGUI: Docker: añadir ruta para acceso remoto WireGuard: + - "El acceso del anfitrión a las redes personalizadas" debe estar habilitado para permitir el acceso + - Los contenedores con red 'br0' pueden ser accedidos remotamente por + WireGuard sin necesidad de configurar rutas estáticas en el + enrutador de casa (puerta de enlace) +- WebGUI: Docker: añadir unidad de tiempo en configuraciones +- WebGUI: Docker: añadir descripción de WireGuard en la selección de red +- WebGUI: Docker: comprimir nombres de autores muy largos +- WebGUI: Docker: corregir posible congelamiento del GUI cuando múltiples pantallas están abiertas +- WebGUI: Docker: corregir superposición de pantalla de ID de contenedor +- WebGUI: Docker: corregir que el spinner no desaparece después de intentar desinstalar un contenedor inexistente +- WebGUI: Docker: corregido árbol de archivos a veces no visible +- WebGUI: Docker: corregido el diseño del encabezado causa un espacio +- WebGUI: Docker: corregido visualización de lista en modo de vista fija +- WebGUI: Docker: corregida eliminación de plantillas cuando no existen contenedores +- WebGUI: Docker: ajustar ventana emergente para que encaje en la ventana del navegador +- WebGUI: Docker: optimizado menú contextual +- WebGUI: Docker: procesar colores ANSI bash en visualización de registro web +- WebGUI: Docker: quitar botón de cerrar en ventana emergente +- WebGUI: Docker: optimización de traducción +- WebGUI: Docker: la ventana de actualización usa el color del tema seleccionado +- WebGUI: Editar/Añadir Contenedor: Corregir error de consola del navegador +- WebGUI: Habilitar/Deshabilitar prueba extendida SMART dependiendo de la configuración de retraso de apagado +- WebGUI: Comprobación de errores etc en puertos para servidor de syslog +- WebGUI: Escapar comillas dobles en entrada de texto enviar +- WebGUI: Ampliar selección de icono de tipo de archivo +- WebGUI: Ampliar ipaddr() con protocolo: el protocolo por defecto es ipv4 en caso de ipv4 + ipv6 +- WebGUI: Corregir modelo de CPU a veces no presente +- WebGUI: Corregir error PHP al calcular nivel de balance +- WebGUI: Corregir verificación de corrupción después de emitir un Nuevo Config +- WebGUI: Corregir csrf-token faltante en Notify +- WebGUI: Corrige falsos positivos de monitor +- WebGUI: Corregir visualización de conexión de red +- WebGUI: Corregir visualización de pools en la página principal cuando se ha creado un pool vacío +- WebGUI: Corrige error de regresión para temas auzre y gray +- WebGUI: Corregir barra lateral de temas azure/gray en Firefox +- WebGUI: Corregir: Mejoras en revisiones de DNS Rebinding +- WebGUI: Corregidos errores de PHP para cálculos de compartir y disco +- WebGUI: Corrección de horario de balance/scrub no guardado cuando el nombre del dispositivo tiene "-" en él +- WebGUI: Corrección de campo de comentarios solo para discos seleccionados +- WebGUI: Corrección de duración + velocidad de paridad cuando está en pausa/reanudación +- WebGUI: Corregir configuraciones de temperatura smart a veces no posible +- WebGUI: Corregido: issue de compartir VM 9p +- WebGUI: Corregido: botones no funcionan en información de dispositivo cuando no hay dispositivo presente +- WebGUI: Corregido: falta atributo samesite en cookies +- WebGUI: Corregido: historial de paridad a veces procesado incorrectamente +- WebGUI: Corregido: condición de carrera cuando el array está detenido y se cambian las asignaciones de dispositivos +- WebGUI: Corregido: configuraciones específicas de disco solo para dispositivos en pool +- WebGUI: Corregido: cálculo de velocidad de verificación de paridad +- WebGUI: Corregido: el spinner permanece visible después del comando docker +- WebGUI: Correcciones y mejoras en la función Buscar +- WebGUI: Actualización de archivos de fuente: +- Ajustar configuraciones de CSS + - Limpiar archivos de fuentes, usar solo formato woff + - Restaurar fuente clear-sans +- Actualizar fuente bitstream + - bitstream → source code pro + - clear-sans → source sans pro +- WebGUI: Forzar creación de contraseña root +- WebGUI: Resaltar fila seleccionada al pasar sobre arrays o compartidos +- WebGUI: Mejora de detección y manejo de procesos en segundo plano +- WebGUI: Mejora del formato de páginas de plugins obsoletas y con errores +- WebGUI: Incluir enlaces en notificaciones por email y agente de Discord +- WebGUI: Dejar que la configuración "showBannerGradient" por defecto sea "sí" +- WebGUI: Limitar la anchura de la ventana emergente en monitores ultrawide +- WebGUI: Registrar fallos de descarga de iconos docker +- WebGUI: Reducir la frecuencia de actualización de la función monitor para adaptarse mejor a dispositivos móviles +- WebGUI: Página principal - reducir la frecuencia de actualización de la tabla para una mejor respuesta de los enlaces +- WebGUI: Hacer visible la marca registrada WireGuard en la página "completa" +- WebGUI: Hacer que los enlaces en el texto de ayuda destaquen (rojo) +- WebGUI: Gestión: corregir comprobación de puertos en uso +- WebGUI: Actualizaciones y correcciones misceláneas +- WebGUI: Mover botón de inicio debajo del campo de cifrado +- WebGUI: NFS: corregir copia de hostList después de operación de LECTURA +- WebGUI: Nchan: Usar canales multiplexados y añadir reporte de errores +- WebGUI: Solo permitir archivos png para ser subidos como imagen de usuario +- WebGUI: Abrir ventana de terminal con tamaño dinámico +- WebGUI: Verificación de paridad: permitir encendido/apagado cuando la operación está en pausa +- WebGUI: Verificación de paridad: reintroducir botón de Hecho cuando finaliza +- WebGUI: Mejoras en la operación de paridad: + - Añadir acción de limpieza de disco + - Añadir acción de operación de paridad a vista de historial + - Añadida columna "tamaño" al historial de paridad + - Ajuste de CSS en atributos SMART + - Cálculos correctos para reconstrucción de datos menor que paridad + - Separar Sincronización de Paridad y Reconstrucción de Datos como acciones individuales + - Mostrar botones adicionales en estado de Array Detenido + - Mejoras textuales + - Usar actualizaciones de Nchan para copiar/progreso de limpieza +- WebGUI: Paridad: tiempo de duración mostrado excluyendo tiempo inactivo +- WebGUI: Gestor de complementos: corregir selección de rama innecesariamente deshabilitada +- WebGUI: Mejoras en la carga de página de Plugins +- WebGUI: Endurecimiento proactivo de seguridad de scripts +- WebGUI: Relajar lógica de detección SMART +- WebGUI: Relajar la frecuencia de actualización un poco +- WebGUI: Quitar detección de errores de Nchan (Confiar en la reconexión automática de Nchan para restablecer conexiones cuando la comunicación es lenta) +- WebGUI: Eliminar extensiones de fuentes obsoletas: eot, svg, ttf +- WebGUI: Reemplazar scripts de sondeo con interfaz Nchan basada en eventos +- WebGUI: Revertir a capitalización por defecto de nombres de dispositivos +- WebGUI: Archivos revisados de filedrop.js +- WebGUI: Hacer clic-derecho o pulsación-prolongada en un elemento de menú debería abrir el menú seleccionado +- WebGUI: Claves autorizadas de SSH UI +- WebGUI: Establecer frecuencia de actualización de la página principal a 1s para una mejor compatibilidad con dispositivos móviles +- WebGUI: Compartidos: corregir cálculo de tamaño incorrecto +- WebGUI: Mostrar IP en la Página del Administrador de VM +- WebGUI: Mostrar acceso de gestión y grupos de acceso compartido para usuarios +- WebGUI: Mostrar advertencia cuando javascript está deshabilitado +- WebGUI: Se requiere inicio de sesión para proveer/renovar certificado Unraid LE SSL +- WebGUI: Silenciar error PHP en la página syslinux si falta la unidad flash +- WebGUI: Soportar futuro T2FA +- WebGUI: Soportar multilingüe en visualización de árbol de archivos +- WebGUI: Suprimir las direcciones anycast de IPv6 en la tabla de enrutamiento +- WebGUI: Suprimir rutas IPv6 no relevantes en la tabla de enrutamiento +- WebGUI: Adiciones de dispositivos del sistema +- WebGUI: Información del sistema: corregir traducción +- WebGUI: Soporte de traducción (Unraid.net) +- WebGUI: Traducciones: corregir creación de sesiones vacías +- WebGUI: Actualizar Créditos.page +- WebGUI: Actualizar DashStats.page +- WebGUI: Actualizar FileTree.php +- WebGUI: Actualizar la GUI con el último texto de ayuda +- WebGUI: Actualizar configuraciones smtp de Outlook/Hotmail +- WebGUI: Actualizar texto de alerta +- WebGUI: Actualizar archivos css para usar solo formatos woff y woff2 +- WebGUI: UpdateDNS para preferir IPv4 primero y luego IPv6 +- WebGUI: Actualizado la fuente bitstream para admitir más idiomas +- WebGUI: Actualizar texto de ayuda para la configuración de Pantalla y Docker +- WebGUI: Utilizar verificación en segundo plano para corrupción flash +- WebGUI: Usar https para verificación de conectividad a Internet +- WebGUI: Utilizar vista con pestañas para la página de información del dispositivo +- WebGUI: Usar ttyd para ventanas de registro +- WebGUI: Administrador de VM: agregar enlace de descarga virtio-win-0.1.208.iso +- WebGUI: Administrador de VM: añadido plantilla de Windows 11 y OVMF TPM +- WebGUI: Actualización de estilo del editor de VM +- WebGUI: VM: corregir selección de ruta faltante (para archivo de firmware de GPU) +- WebGUI: VMs: actualizar automáticamente la lista de iso virtio-win +- WebGUI: VMs: menú contextual optimizado +- WebGUI: Validar puertos de WebGUI antes de aplicar +- WebGUI: Validar destino de descargas de ISO de VirtIO +- WebGUI: Al ver el código fuente, identifica qué archivo .page es responsable +- WebGUI: WireGuard integrado +- WebGUI: Actualizaciones de WireGuard: + - Agregar enrutamiento de túnel para contenedores docker + - Hacer que el túnel WG esté disponible automáticamente para los contenedores (red personalizada) + - Hacer que el archivo de configuración de importación de proveedores de VPN sea más robusto. + - Acceso túnel VPN para docker + - Acceso túnel VPN para el sistema +- WebGUI: WireGuard: Agregar advertencia cuando la eliminación del túnel falla +- WebGUI: WireGuard: Introducir nuevos modos de red: +- WebGUI: WireGuard: agregar lógica para recrear redes después de reiniciar +- WebGUI: WireGuard: manejo adecuado de túneles ipv4 + ipv6 corregido +- WebGUI: WireGuard: preconfigurar servidor DNS del par con "Acceso túnel remoto" +- WebGUI: WireGuard: usar kill switch cuando el túnel está inactivo +- WebGUI: WireGuard: configuraciones de nginx del usuario y api de unraid.net +- WebGUI: WireGuard: advertir cuando está conectado directamente con IP pública +- WebGUI: WireGuard: corregir función de importación para aceptar todas las claves +- WebGUI: WireGuard: hacer que la interfaz de gestión sea seleccionable: +- WebGUI: WireGuard: hacer que la interfaz de gestión sea seleccionable: + - Por defecto a eth0 - expansión futura +- WebGUI: WireGuard: eliminar ListenPort de la entrada de archivo: + - ListenPort debe ser único, dejar que WG genere un puerto local aleatorio en su lugar +- WebGUI: mejoras en la barra de desplazamiento css +- WebGUI: diagnósticos: corregir: anonimizar las urls myunraid.net +- WebGUI: Seguridad de dockerMan: Eliminar etiquetas HTML de elementos de configuración +- WebGUI: dockerMan: eliminar HTML de descripciones +- WebGUI: corregir: bloqueos de contraseña no se están despejando adecuadamente +- WebGUI: corregir: eliminar mensaje de reautenticación de notificaciones por correo electrónico +- WebGUI: mejorar: Resaltar fila seleccionada al pasar sobre array o compartidos +- WebGUI: jQuery: versión 3.6.0 +- WebGUI: presentar sujeto de certificado firmado por CA como un enlace +- WebGUI: privatizar host en diagnósticos +- WebGUI: refactorizar UpdateDNS.php: anonimizar salida detallada por defecto, otras mejoras +- WebGUI: eliminar página esqueleto 'Mis Servidores' +- WebGUI: requerir inicio de sesión para aprovisionar certificado +- WebGUI: soportar SSL simultáneo en LAN con certificado autofirmado y SSL basado en DNS con certificado de Lets Encrypt +- WebGUI: varias correcciones multilingüísticas + +["WireGuard" y el logo "WireGuard" son marcas registradas de Jason A. Donenfeld.](https://www.wireguard.com/) + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md new file mode 100644 index 0000000000..0f7171db39 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md @@ -0,0 +1,19 @@ +## Versión 6.10.1 2022-05-21 + +Algunos usuarios inician desde una partición USB diferente a "1". Es decir, en lugar de /dev/sda1, algunos usuarios tienen /dev/sda2 configurada como etiqueta de volumen UNRAID e incluso hay usuarios que no tienen particiones en absoluto en el flash. En este caso, inicia desde y monta /dev/sda en /boot. + +Un cambio en 6.10.0 en la detección del dispositivo de arranque con la etiqueta UNRAID introdujo una regresión donde solo se consideraba la partición 1, dejando a esos usuarios incapaces de completar la secuencia de arranque. + +Esto se ha corregido en 6.10.1, y este es el único cambio funcional en 6.10.1 respecto a 6.10.0. + +## Registro de cambios vs. Unraid OS 6.10.0 + +#### Gestión + +- inicio: corregir regresión: soporte arranque desde USB que no sea la partición 1 + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md new file mode 100644 index 0000000000..c0807dfe1d --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md @@ -0,0 +1,95 @@ +## Versión 6.10.2 2022-05-27 + +### Posible corrupción de datos con el controlador tg3 cuando Intel VT-d está habilitado + +La combinación del kernel Linux 5.15, el controlador tg3 y el Intel VT-d habilitado parece estar causando corrupción de datos. Esto ha sido verificado en varias plataformas que incluyen una NIC Broadcom NetXtreme Gigabit Ethernet (nota: puede haber otras). Este lanzamiento incluye la siguiente solución alternativa: + +Muy temprano en el inicio del servidor (rc.S) si se detecta que Intel VT-d está habilitado, +entonces el script incondicionalmente creará el archivo: + +`/etc/modprobe.d/tg3.conf` + +con el siguiente contenido: + +`lista negra tg3` + +Por lo tanto, por defecto si VT-d está habilitado, es decir, no se ha deshabilitado ni en la BIOS ni a través del kernel "intel\*iommu=off", entonces vamos a poner en la lista negra el controlador tg3 en todas las plataformas. ¿Qué pasa si alguien tiene una plataforma donde el tg3 no les causa ningún problema con VT-d activado? En este caso, deben crear un archivo vacío en su dispositivo flash: + +`config/modprobe.d/tg3.conf` + +Cuando la secuencia de inicio continúe, llegará al punto donde +se ejecuta: + +`instalar -p -m 0644 /boot/config/modprobe.d/* /etc/modprobe.d` + +Un archivo *en blanco* tg3.conf almacenado en el flash efectivamente +des-lista negra. + +Habrá usuarios que perderán la conectividad de red porque su NIC está en la lista negra. Si está usando una plataforma problemática, debe ingresar a su BIOS y deshabilitar VT-d. Si esta es una plataforma sin problemas, entonces necesitará crear el archivo tg3.conf en blanco en su directorio flash config/modprobe.d. + +Puede llevar algún tiempo identificar e integrar una solución adecuada para este +problema, en cuyo punto eliminaremos el código de auto-listado en negro. + +#### Cómo deshabilitar Intel VT-d en HP MicroServer Gen 8 con un E3-1265LV2 + +Reinicie el servidor y luego: + +- Durante el arranque, presione F9 para entrar en la BIOS. +- Una vez cargada la BIOS, ingrese al menú de Opciones del sistema → Opciones del procesador → Intel(R) VT-d +- Póngalo en deshabilitado +- Presione Esc para volver al menú principal nuevamente +- Presione F10 para salir de la BIOS y guardar + +El servidor debería arrancar de nuevo como normal. Sombrero de punta al miembro de la Comunidad [Oceanic por las instrucciones](https://forums.unraid.net/topic/124108-unraid-os-version-6102-available/#comment-1132042). + +### Cambios relacionados con seguridad + +- El navegador Firefox ha sido actualizado a la versión 100.0.2 para abordar una vulnerabilidad de seguridad muy grave. Si usa Firefox, también le sugerimos actualizar en todas las plataformas. +- Hemos solucionado un problema donde el inicio de sesión en WebGUI podía aceptar una contraseña de un + usuario que no fuera 'root', si ese nombre de usuario incluía la cadena + 'root'. +- El kernel de Linux fue actualizado a 5.15.43 para abordar una vulnerabilidad de "evasión + de seguridad". + +### Otros cambios + +- En la página de Acceso a la Gestión, para la configuración "Usar SSL/TLS" cambiamos la palabra "Auto" a "Estricta" en el menú desplegable. Esto describe mejor la acción de esta configuración. +- El administrador de Docker ahora usa la etiqueta Docker para iconos como respaldo. +- El administrador de VM ahora ofrece la opción de usar redes LibVirt además de puentes sin tener que editar el XML del VM. +- Mejorado el manejo de certificados SSL personalizados. +- \[6.10.1] Fic error de regresión: soporte de arranque USB flash desde una partición que no sea la número 1 +- otros arreglos de errores variados + +## Registro de cambios vs. Unraid OS 6.10.1 + +#### Distro base + +- firefox AppImage: versión: 100.0.r20220519220738 (CVE-2022-1802 + CVE-2022-1529) + +#### Núcleo de Linux + +- versión 5.15.43-Unraid (CVE-2022-21499) + +#### Gestión + +- nginx: evitar agregar el número de puerto predeterminado a las URLs de redirección +- nginx: archivo de certificación autofirmado: aceptar nombre común y todos los nombres alternativos +- inicio: solucionar múltiples interfaces de red asignadas con la misma dirección MAC +- inicio: lista negra tg3 por defecto si Intel VT-d está habilitado +- WebGUI: Acceso de gestión: Configuración de usar SSL/TLS: cambiar la palabra 'Auto' a 'Estricto' +- WebGUI: Corregido: smGlue no incluido al seleccionar un controlador +- WebGUI: Corregido: permitir nombres de compartir con ampersand incrustado +- WebGUI: agregar soporte de terminal LXC (para el Plugin LXC) +- WebGUI: la interfaz web de Docker ahora usa la etiqueta Docker para iconos como respaldo +- WebGUI: Administrador de VM: soporte para redes libvirt (hacer redes libvirt accesibles vía gui) +- WebGUI: corregir problema donde el inicio de sesión 'root' funciona con contraseña de + otro nombre de usuario que incluye la cadena 'root' +- WebGUI: Corrección de ortografía en la página de actualización del sistema operativo: warninging → warning +- WebGUI: revisión del texto de ayuda: correcciones menores + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md new file mode 100644 index 0000000000..b4ee81c12a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md @@ -0,0 +1,53 @@ +## Versión 6.10.3 2022-06-14 + +### Mejoras + +Resuelto el problema de corrupción de datos que podía ocurrir en algunas plataformas, notablemente en HP Microserver Gen8/9, cuando Intel VT-d estaba habilitado. +Esto se solucionó cambiando el modo de operación por defecto del IOMMU del kernel de Linux de "Traducción DMA" a "Paso a través". + +- También se eliminó la lista negra de 'tg3' cuando Intel VT-d estaba habilitado. Esto se añadió por precaución porque todos los primeros + informes de corrupción de datos involucraban plataformas que también (por coincidencia) utilizaban el controlador de red 'tg3'. Si creó un + archivo en blanco 'config/modprobe.d/tg3.conf', puede eliminarlo. + +**Autores de complementos:** Un archivo de complemento puede incluir una etiqueta `` que muestra un mensaje con formato markdown cuando hay una nueva versión disponible. +Úsalo para dar instrucciones o advertencias a los usuarios antes de que se realice la actualización. + +Se volvió a añadir la codificación de color en las ventanas de registro. + +### Corrección de errores + +Resolver problema al detectar Mellanox NIC. + +Correcciones de bugs diversos en la WebGUI + +## Registro de cambios vs. Unraid OS 6.10.2 + +### Distro base + +- sin cambios + +### Núcleo de Linux + +- versión 5.15.46-Unraid +- CONFIG\_IOMMU\_DEFAULT\_PASSTHROUGH: Passthrough + +### Gestión + +- inicio: mejorar la detección de dispositivos de red +- WebGUI: Se añadió codificación de color en archivos de registro +- WebGUI: En caso de corrupción del flash, intente la prueba de nuevo +- WebGUI: Se mejoró la lectura de syslog +- WebGUI: Se añadió ajuste de tamaño de registro al ver syslog +- WebGUI: Administrador de complementos: agregar función de mensaje ALERT +- WebGUI: Añadir icono INFO al banner +- WebGUI: Se añadieron traducciones a la página PageMap +- WebGUI: Corrección: la verificación de paridad sin corrección realmente corregía si se instalaba el paquete de idioma no inglés +- WebGUI: Temas actualizados de azure/gray + - Mejor apoyo para Firefox + - Mover los indicadores de utilización y notificación a la derecha + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md new file mode 100644 index 0000000000..51ca847746 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md @@ -0,0 +1,315 @@ +## Versión 6.11.0 2022-09-23 + +### Mejoras + +- Con esta versión, ha habido muchas actualizaciones del paquete base, incluidas varias mitigaciones de CVE. + +- La actualización del kernel de Linux incluye mitigaciones para [vulnerabilidades de datos obsoletos MMIO del procesador](https://lwn.net/Articles/898011/). + +- El sistema de complementos ha sido reestructurado para que la instalación de complementos pueda proceder en segundo plano. Esto alivia el problema donde un usuario podría pensar que la instalación se ha bloqueado y cerrar la ventana, cuando en realidad no se ha bloqueado. + +- Muchas otras mejoras de WebGUI. + +- Se agregó soporte para especificar puertos VNC personalizados en el editor de formularios del administrador de VM. El número de puerto personalizado especificado mediante el editor XML se preservará al cambiar al editor basado en formularios. + +- La desaceleración para dispositivos no rotacionales ahora coloca esos dispositivos en modo de espera si es compatible con el dispositivo. Del mismo modo, cualquier operación de entrada/salida restaurará el funcionamiento normal. + +- Mostrar capacidades del dispositivo NVMe obtenidas de la información SMART. + +- Añadidas opciones CONFIG necesarias del kernel para soportar Sr-iov con tarjetas mellanox connectx4+. + +- Se integró el plugin Dynamix SSD Trim en Unraid OS WebGUI. + +- Soporte preliminar para cgroup2. Pasa 'unraidcgroup2' en la línea de complemento de syslinux para activarlo. + +- Incluido perl en la distribución base. + +### Corrección de errores + +- Se corrigió un problema en el administrador de VM donde el registro de VM no se puede abrir cuando el nombre de VM tiene un carácter '#' incrustado. + +- Se corrigió un problema donde la pausa/reanudación de la verificación de paridad en el horario estaba rota. + +- Se corrigió un problema al instalar claves de registro. + +- Actualizado 'samba' para abordar mitigaciones de seguridad. También debería eliminar el mensaje del kernel + que se queja de "Intento de establecer un bloqueo LOCK\_MAND a través de flock(2)." + +- Se corrigió un problema al cambiar de la rama 'test' a 'next'. + +- Dejar de intentar bajar dispositivos que no soportan el modo de espera. + +- Corregido problema de unión a AD causado por biblioteca cyras-sasl desactualizada + +- No inicie el demonio de mcelog si la CPU no es compatible (la mayoría de los procesadores AMD). + +- Solucionar problema donde nginx no reconoce la renovación del certificado SSL. + +- wireguard: verificar la accesibilidad de la puerta de enlace (siguiente salto) antes de iniciar el túnel WG. + +- Ignorar las cadenas "ERROR:" mezcladas en la salida del comando "btrfs filesystem show". Esto resuelve el problema donde libblkid podría etiquetar un disco de paridad como si tuviera un sistema de archivos btrfs porque el lugar donde busca el "número mágico" coincide con btrfs. Los comandos posteriores "btrfs fi" intentarán leer metadatos btrfs de este dispositivo, lo cual falla porque realmente no existe un sistema de archivos btrfs allí. + +- Se corrigió un error en el motor que impedía mover archivos del array de unRAID a un pool de caché (modo Prefer) si el nombre del recurso compartido contiene un espacio. + +## Registro de cambios vs. Unraid OS 6.10.3 + +#### Gestión + +- Agregar verificaciones sha256 de archivos descomprimidos en unRAIDServer.plg. +- bash: en /etc/profile omitir "." (directorio actual) del PATH +- docker: no llame a 'docker stop' si no hay contenedores en ejecución +- emhttpd: mejorar el soporte de espera (spinning) +- mover: corregido el problema que impedía mover archivos del array a la caché si el nombre del recurso compartido contiene un espacio +- rc.nginx: habilitar OCSP stapling en certificados que incluyen una URL de respondedor OCSP +- rc.nginx: comprimir archivos de fuentes 'woff' e instruir al navegador para caché +- rc.wireguard: mejorar la resolución de problemas para la autoinicio de WireGuard +- rc.S: soporte de carga temprana de módulos de controladores de plugin +- SMB: corregidos los ajustes de 'fruit' para el dispositivo de arranque USB Flash +- SMB: eliminar soporte NTLMv1 ya que ha sido removido del kernel de Linux +- SMB: (temporalmente) mover configuraciones de vfs\_fruit a un archivo separado /etc/samba/smb-fruit.conf +- SMB: (temporalmente) eliminar líneas de advertencia Samba 'idmap\_hash está obsoleto' +- inicio: Evitar instalar versiones degradadas de paquetes que puedan existir en /boot/extra +- upc: versión v1.3.0 +- WebGUI: Actualización del sistema de plugins + - Separación de operaciones de frontend y backend + - Usar nchan como canal de comunicación + - Permitir que la ventana se cierre mientras el backend continúa + - Usar SWAL como gestor de ventanas + - Agregar capacidad de eliminación múltiple en la página de Plugins + - Agregar actualización de todos los plugins con detalles +- WebGUI: docker: usar la etiqueta de docker como fuente principal para WebUI + - Esto hace que la etiqueta docker "net.unraid.docker.webui" sea la fuente primaria al analizar la dirección de la interfaz web. Si falta la etiqueta docker, se usará en su lugar el valor de la plantilla. +- WebGUI: Actualizar Créditos.page +- WebGUI: Administrador de VM: Corregir el registro de VM no puede abrirse cuando el nombre de VM tiene un '#' incrustado +- WebGUI: Página de Acceso a la Gestión: agregar detalles para certificados autofirmados +- WebGUI: Verificación de paridad: corregir error de regresión +- WebGUI: Eliminar la creación de sesiones en scripts +- WebGUI: Actualizar regex de clave ssh + - Añadir soporte para ed25519/sk-ed25519 + - Eliminar soporte para ecdsa (inseguro) + - Usar regex adecuado para verificar tipos de claves válidas +- WebGUI: actualizaciones misceláneas de estilo +- WebGUI: Acceso de gestión: siempre debe estar habilitada la configuración del puerto HTTP +- WebGUI: Corrección: preservar configuraciones de puertos VNC +- WebGUI: Corregir error de regresión en el sistema de plugins +- WebGUI: Corregir problema al instalar claves de registro +- WebGUI: Resaltar selección de caja cuando se selecciona imagen personalizada +- WebGUI: corregir(upc): verificación de error de regresión apiVersion v1.4.2 +- WebGUI: Actualizar páginas de capacidades de Discos para unidades NVME +- WebGUI: tarea(upc): v1.6.0 +- WebGUI: Sistema de plugins y actualización de docker +- WebGUI: Información del sistema - actualización de estilo +- WebGUI: Plugins: mantener los botones de encabezado en la misma posición +- WebGUI: Evitar desbordamiento en tamaño de contenedor para bajas resoluciones +- WebGUI: Administrador de VM: Agregar orden de inicio a la GUI y función de conexión rápida de CD +- WebGUI: Administrador de Docker: añadir capacidad para especificar shell con etiqueta de contenedor. +- WebGUI: corrección: url del agente de notificación de Discord +- WebGUI: Suprimir ícono de información en el mensaje de banner cuando no hay información disponible. +- WebGUI: Añadir mensaje de SpinDown y usar -n para identidad si es unidad scsi. +- WebGUI: Corregir prueba SAS +- WebGUI: Corrección de actualizaciones múltiples de plugins +- WebGUI: Mejoras en la visualización de UPS: + - Añadir ícono para cada categoría + - Añadir traducción en la sección UPS del tablero + - Añadir valor de voltaje/frecuencia de salida + - Añadir coloración dependiendo de la configuración + - Normalizar unidades + - Actualizar casi en tiempo real + - Añadido campo de modelo de UPS +- WebGUI: JQuery: versión 3.6.1 +- WebGUI: JQueryUI: versión 1.13.2 +- WebGUI: mejorada la "eliminación de caché" en las urls de archivos de fuentes +- WebGUI: Corregido: color de texto a veces incorrecto en ventana emergente de docker +- WebGUI: Corregido: mostrar errores de lectura durante la Verificación de Lectura +- WebGUI: Administrador de VM: Añadir política de inicio de USB; añadir soporte para USB perdido +- WebGUI: Docker: corregido error de javascript cuando no existen contenedores +- WebGUI: añadido diagnóstico de sistema de terceros + - añadido diagnóstico para paquetes de plugins de terceros + - añadido diagnóstico para dispositivos /dev/dri + - añadido diagnóstico para dispositivos /dev/dvb + - añadido diagnóstico para dispositivos nvidia + +#### Núcleo de Linux + +- versión 5.19.9 (CVE-2022-21123 (CVE-2022-21123 CVE-2022-21125 CVE-2022-21166) +- md/unraid: versión 2.9.24 +- CONFIG\_IOMMU\_DEFAULT\_PASSTHROUGH: Passthrough +- CONFIG\_VIRTIO\_IOMMU: Controlador Virtio IOMMU +- CONFIG\_X86\_AMD\_PSTATE: Controlador P-State de procesador AMD +- CONFIG\_FIREWIRE: Pila de controladores FireWire +- CONFIG\_FIREWIRE\_OHCI: Controladores OHCI-1394 +- CONFIG\_FIREWIRE\_SBP2: Dispositivos de almacenamiento (protocolo SBP-2) +- CONFIG\_FIREWIRE\_NET: Red IP sobre 1394 +- CONFIG\_INPUT\_UINPUT: Soporte de controlador a nivel de usuario +- CONFIG\_INPUT\_JOYDEV: Interfaz de joystick +- CONFIG\_INPUT\_JOYSTICK: Joysticks/Gamepads +- CONFIG\_JOYSTICK\_XPAD: Soporte para gamepad de X-Box +- CONFIG\_JOYSTICK\_XPAD\_FF: Soporte de vibración para gamepad de X-Box +- CONFIG\_JOYSTICK\_XPAD\_LEDS: Soporte de LED para el controlador Xbox360 'BigX' LED +- CONFIG\_MLX5\_TLS: Soporte para TLS Connect-X de Mellanox Technologies +- CONFIG\_MLX5\_ESWITCH: Soporte MLX5 SRIOV E-Switch de Mellanox Technologies +- CONFIG\_MLX5\_CLS\_ACT: Soporte de acción de clasificador TC de MLX5 +- CONFIG\_MLX5\_TC\_SAMPLE: Soporte de descarga de muestra TC de MLX5 +- CONFIG\_MLXSW\_SPECTRUM: Soporte para la familia Spectrum de Mellanox Technologies +- CONFIG\_NET\_SWITCHDEV: Soporte para dispositivos de conmutación (y similares a conmutadores) +- CONFIG\_TLS: Soporte para Seguridad de la Capa de Transporte (Transport Layer Security) +- CONFIG\_TLS\_DEVICE: Descarga de Seguridad de la Capa de Transporte HW +- CONFIG\_TLS\_TOE: Bypass de la pila TCP de Seguridad de la Capa de Transporte +- CONFIG\_VMD: Controlador de Dispositivo de Gestión de Volumen Intel +- añadidos controladores adicionales de sensores: + - CONFIG\_AMD\_SFH\_HID: Hub de Fusión de Sensores AMD + - CONFIG\_SENSORS\_AQUACOMPUTER\_D5NEXT: Bomba de refrigeración por agua Aquacomputer D5 Next + - CONFIG\_SENSORS\_MAX6620: Controlador de ventilador Maxim MAX6620 + - CONFIG\_SENSORS\_NZXT\_SMART2: Controlador RGB y de Ventilador NZXT/Dispositivo Inteligente v2 + - CONFIG\_SENSORS\_SBRMI: Sensor SB-RMI emulado + - CONFIG\_SENSORS\_SHT4x: Sensores de humedad y temperatura Sensiron. SHT4x y compatibles. + - CONFIG\_SENSORS\_SY7636A: Silergy SY7636A + - CONFIG\_SENSORS\_INA238: Texas Instruments INA238 + - CONFIG\_SENSORS\_TMP464: Texas Instruments TMP464 y compatibles + - CONFIG\_SENSORS\_ASUS\_WMI: ASUS WMI X370/X470/B450/X399 + - CONFIG\_SENSORS\_ASUS\_WMI\_EC: ASUS WMI B550/X570 + - CONFIG\_SENSORS\_ASUS\_EC: Sensores EC de ASUS +- parche: añadir referencia al firmware faltante en drivers/bluetooth/btrtl.c + - rtl8723d\_fw\.bin + - rtl8761b\_fw\.bin + - rtl8761bu\_fw\.bin + - rtl8821c\_fw\.bin + - rtl8822cs\_fw\.bin + - rtl8822cu\_fw\.bin +- CONFIG\_BPF\_UNPRIV\_DEFAULT\_OFF: Deshabilitar BPF sin privilegios por defecto +- parche: solución para Team Group MP33 M.2 2280 1TB NVMe (IDs de nsid duplicados a nivel global) +- activar todas las opciones del núcleo IPv6: + - CONFIG\*INET6\*\\ + - CONFIG\*IPV6\*\\ +- CONFIG\_RC\_CORE: Soporte de Control Remoto +- CONFIG\_SFC\_SIENA: Soporte para Solarflare SFC9000 +- CONFIG\_SFC\_SIENA\_MCDI\_LOGGING: Soporte de registro de MCDI para la familia Solarflare SFC9000 +- CONFIG\_SFC\_SIENA\_MCDI\_MON: Soporte hwmon para la familia Solarflare SFC9000 +- CONFIG\_SFC\_SIENA\_SRIOV: Soporte SR-IOV para la familia Solarflare SFC9000 +- CONFIG\_ZRAM: Soporte para dispositivos de bloque de RAM comprimidos +- CONFIG\_ZRAM\_DEF\_COMP\_LZ4: Compresor de RAM predeterminado (lz4) +- activar todas las opciones del núcleo EDAC + - CONFIG\_EDAC: Informe de EDAC (Detección y Corrección de Errores) + - CONFIG\*EDAC\*\\ + +#### Distro base + +- aaa\_base: versión 15.1 +- aaa\_glibc-solibs: versión 2.36 +- aaa\_libraries: versión 15.1 +- at: versión 3.2.3 +- bind: versión 9.18.6 +- btrfs-progs: versión 5.19.1 +- ca-certificates: versión 20220622 +- cifs-utils: versión 7.0 +- coreutils: versión 9.1 +- cracklib: versión 2.9.8 +- cryptsetup: versión 2.5.0 +- curl: versión 7.85.0 +- cyrus-sasl: versión 2.1.28 +- dbus: versión 1.14.0 +- dhcpcd: versión 9.4.1 +- dmidecode: versión 3.4 +- docker: versión 20.10.17 (CVE-2022-29526 CVE-2022-30634 CVE-2022-30629 CVE-2022-30580 CVE-2022-29804 CVE-2022-29162 CVE-2022-31030) +- etc: versión 15.1 +- ethtool: versión 5.19 +- eudev: versión 3.2.11 +- file: versión 5.43 +- findutils: versión 4.9.0 +- firefox: versión 105.0.r20220922151854-x86\_64 (AppImage) +- fuse3: versión 3.12.0 +- gawk: versión 5.2.0 +- gdbm: versión 1.23 +- git: versión 2.37.3 +- glib2: versión 2.72.3 +- glibc: versión 2.36 +- glibc-zoneinfo: versión 2022c +- gnutls: versión 3.7.7 +- gptfdisk: versión 1.0.9 +- grep: versión 3.8 +- gzip: versión 1.12 +- hdparm: versión 9.65 +- htop: versión 3.2.1 +- icu4c: versión 71.1 +- inotify-tools: versión 3.22.6.0 +- iperf3: versión 3.11 +- iproute2: versión 5.19.0 +- iptables: versión 1.8.8 +- jemalloc: versión 5.3.0 +- json-c: versión 0.16\_20220414 +- json-glib: versión 1.6.6 +- kmod: versión 30 +- krb5: versión 1.20 +- libaio: versión 0.3.113 +- libarchive: versión 3.6.1 +- libcap-ng: versión 0.8.3 +- libcgroup: versión 3.0.0 +- libdrm: versión 2.4.113 +- libepoxy: versión 1.5.10 +- libffi: versión 3.4.2 +- libgcrypt: versión 1.10.1 +- libgpg-error: versión 1.45 +- libidn: versión 1.41 +- libjpeg-turbo: versión 2.1.4 +- libmnl: versión 1.0.5 +- libnetfilter\_conntrack: versión 1.0.9 +- libnfnetlink: versión 1.0.2 +- libnftnl: versión 1.2.3 +- libnl3: versión 3.7.0 +- libpng: versión 1.6.38 +- libssh: versión 0.10.4 +- libtasn1: versión 4.19.0 +- libtirpc: versión 1.3.3 +- liburcu: versión 0.13.1 +- libusb: versión 1.0.26 +- libwebp: versión 1.2.4 +- libxml2: versión 2.9.14 +- libxslt: versión 1.1.36 +- libzip: versión 1.9.2 +- logrotate: versión 3.20.1 +- lsof: versión 4.95.0 +- lzip: versión 1.23 +- mc: versión 4.8.28 +- mcelog: versión 189 +- nano: versión 6.4 +- nfs-utils: versión 2.6.2 +- nghttp2: versión 1.49.0 +- nginx: versión 1.22.0 +- ntfs-3g: versión 2022.5.17 +- ntp: versión 4.2.8p15 +- oniguruma: versión 6.9.8 +- openssh: versión 9.0p1 +- openssl: versión 1.1.1q (CVE-2022-1292 CVE-2022-2097 CVE-2022-2274) +- openssl-solibs: versión 1.1.1q (CVE-2022-1292) +- p11-kit: versión 0.24.1 +- pciutils: versión 3.8.0 +- pcre2: versión 10.40 +- perl: versión 5.36.0 +- php: versión 7.4.30 (CVE-2022-31625 CVE-2022-31626) +- pkgtools: versión 15.1 +- rpcbind: versión 1.2.6 +- rsync: versión 3.2.6 +- samba: versión 4.17.0 (CVE-2022-2031 CVE-2022-32744 CVE-2022-32745 CVE-2022-32746 CVE-2022-32742) +- sqlite: versión 3.39.3 +- sudo: versión 1.9.11p3 +- sysfsutils: versión 2.1.1 +- sysstat: versión 12.6.0 +- sysvinit-scripts: versión 15.1 +- talloc: versión 2.3.4 +- tar: versión 1.34 +- tevent: versión 0.13.0 +- tree: versión 2.0.2 +- util-linux: versión 2.38.1 +- wayland: versión 1.21.0 +- wget: versión 1.21.3 +- xfsprogs: versión 5.18.0 +- xz: versión 5.2.6 +- zlib: versión 1.2.12 + +["WireGuard" y el logo "WireGuard" son marcas registradas de Jason A. Donenfeld.](https://www.wireguard.com/) + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md new file mode 100644 index 0000000000..b4c20b695b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md @@ -0,0 +1,93 @@ +## Versión 6.11.1 2022-10-06 + +### Mejoras + +Actualizados tanto qemu como libvirt a las últimas versiones: + +- Agregado soporte para ppc, riscv32/riscv64 y aarch64. + +Actualizado docker a v20.10.18 y mejorada la red: + +- Cuando se utiliza DHCP, espere a la asignación de IPv4 antes de continuar durante el arranque del sistema, esto evita una posible condición de carrera durante el inicio cuando el acceso del host a redes personalizadas está habilitado. +- Permitir que las redes definidas por el usuario se vuelvan a conectar al iniciar el servicio de Docker. Ahora, todas las redes definidas se volverán a conectar automáticamente. + +Mejoras en el Administrador de VM: + +- Implementada la opción para usar Virtiofs para mapear compartidos del host Unraid en una VM. +- Añadido cliente html Spice para Máquinas Virtuales (experimental). + +### Correcciones de errores notables + +- Corregido el problema donde al abrir ciertas páginas, por ejemplo, el Tablero, se generan escrituras innecesarias en el dispositivo de arranque USB Flash. + +- Se solucionó el problema de que los contenedores de Docker podían acceder a Internet cuando el túnel WG no se iniciaba automáticamente al arrancar el sistema. **Se recomienda a los usuarios regenerar las configuraciones del WG.** Esto se puede hacer, por ejemplo, haciendo clic en un campo para cambiar un valor y luego cambiarlo de nuevo para que el botón Aplicar se encienda. Luego, haga clic en Aplicar. + +- Corregido el problema donde se muestran ventanas emergentes vacías con ciertos navegadores y dispositivos. + +- Restaurada la autenticación "NTLMv1" para conexiones SMB entrantes. + +## Registro de Cambios vs. Unraid OS 6.11.0 + +#### Distro base + +- acpid: versión 2.0.34 +- bash: versión 5.2.000 +- bind: versión 9.18.7 +- ca-certificates: versión 20220922 +- dbus: versión 1.14.2 +- dnsmasq: versión 2.87 +- docker: versión 20.10.18 (CVE-2022-27664 CVE-2022-32190 CVE-2022-36109) +- git: versión 2.38.0 +- glib2: versión 2.72.4 +- glibc-zoneinfo: versión 2022d +- gnutls: versión 3.7.8 +- harfbuzz: versión 5.2.0 +- intel-microcode: versión 20220809 +- libXtst: versión 1.2.4 +- libXxf86vm: versión 1.1.5 +- libffi: versión 3.4.3 +- libvirt: versión 8.7.0 +- libvirt-php: versión 0.5.6 +- lsof: versión 4.96.3 +- nghttp2: versión 1.50.0 +- pango: versión 1.50.11 +- qemu: versión 7.1.0 (construido agregando soporte para ppc, riscv32/64, reemplazo de arm por aarch64) +- sqlite: versión 3.39.4 +- xterm: versión 373 +- xz: versión 5.2.7 + +#### Núcleo de Linux + +- versión 5.19.14 +- CONFIG\_DRM\_MGAG200: Matrox G200 +- CONFIG\_X86\_SGX: Extensiones de Guardia de Software (SGX) +- CONFIG\_X86\_SGX\_KVM: Virtualización de Extensiones de Guardia de Software (SGX) +- CONFIG\_CRYPTO\_ZSTD: Algoritmo de compresión Zstd +- md/unraid: versión 2.9.25 +- parche: silenciar los avisos de "bloque de todos ceros" y "tiene encabezado corrupto" de EDID +- parche: añadir peculiaridades de NVMe para dispositivos no conformes reportados por usuarios + +#### Gestión + +- WebGUI: Administrador de VM: Actualizar Opciones de GUI + - Incluir 9P y Virtiofs + - Eliminar la opción de 9P para Windows. + - Actualizar XML si virtiofs y Windows además de Linux. + - Actualizar Opciones de GUI de Compartidos de VM +- WebGUI: Corregido: visualización incorrecta de retroalimentación en la página de VM +- WebGUI: Tablero: almacene datos de gráficos en archivo en lugar de cookie +- WebGUI: Pida al usuario que proporcione diagnósticos antes de degradar el OS +- WebGUI: Cliente HTML Spice además de VNC. +- WebGUI: mejorar el manejo de archivos de configuración estilo Windows +- WebGUI: WireGuard: añadir nombre de interfaz explícito en el enrutamiento +- WebGUI: SWAL: interceptar el botón "esc" para detener nchan al cerrar la ventana. +- WebGUI: nchan: ejecución de comando retrasado + - Esto evita una ventana emergente vacía en ciertos navegadores y dispositivos. + +["WireGuard" y el logo "WireGuard" son marcas registradas de Jason A. Donenfeld.](https://www.wireguard.com/) + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md new file mode 100644 index 0000000000..ce1fdc3d7e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md @@ -0,0 +1,110 @@ +## Versión 6.11.2 2022-11-04 + +Esta versión se centra en la corrección de errores y mejoras menores. Tenga en cuenta que hay importantes medidas de mitigación de seguridad en Samba, se recomienda a todos los usuarios actualizar. + +### Gestor de VM + +Si inicia una máquina virtual desde un dispositivo USB físico conectado, hay una nueva configuración llamada **Habilitar inicio USB** que debe estar configurada en **Sí**. Esto se debe al cambio de función en el último componente de OVMF. + +Cambios: + +- Agregar orden de arranque para USB y opción de inicio USB. Usando el campo 'orden de arranque', la máquina virtual puede arrancar desde un controlador/dispositivo NVMe conectado. +- Añadir mapeo de compartición virtiofs/9p Unraid. +- Corrección de error de conexión en caliente de CD. +- Corregir conexión en caliente dentro de plantillas. +- Corregir cambio de passthru a CPU personalizada. +- Prueba para el agente huésped para suprimir mensaje de error en el registro de libvirt, y mostrar texto para huésped no activo o agente huésped no instalado. +- Corregir la imposibilidad de cambiar configuración de HyperV. +- Añadir opción 'comenzar con consola'. +- OVMF para QEMU: versión edk2-estable202208 + +### WireGuard + +Cambios: + +- Se corrigió el problema al configurar túneles si se usaban configuraciones de red.cfg predeterminadas. +- Corregir error tipográfico al configurar rutas. + +### Administrador de complementos + +Cambios: + +- Si los archivos del complemento no se pueden leer desde la URL CDN, retroceder a la URL no CDN. +- Aplicar que los archivos de complemento deben terminar en '.plg'. +- Corregir fallo en el post hook cuando falla la descarga del complemento. +- Ajustar los parámetros de wget para evitar que quede colgado indefinidamente. + +### Programador + +Para las verificaciones de paridad programadas, cambie el modo predeterminado a No corregir. En caso de que haya problemas con el disco durante una verificación de paridad, sería más seguro que el valor predeterminado sea no corregido. Si se detectan errores de sincronización, el usuario puede analizar el registro y actuar en consecuencia. + +### Varios. WebGUI + +Cambios: + +- DashStats: Las estadísticas de red entrante están fuera de lugar cuando el valor numérico es xxx.x. +- Docker: Agregar/aclarar Ayuda a la configuración de Red Personalizada de Docker. +- Docker: Corrija la aberración de la pantalla en imágenes huérfanas. +- Atributos SMART: aclarar el mensaje: "No se pueden leer atributos" a "Atributos no disponibles" +- EditarCompartir/ListaCompartir: mostrar grupo no definido cuando el grupo compartido no está definido. + +### Núcleo de Linux + +- versión 5.19.17 +- parche: correcciones adicionales NVMe BOGUS\_NID para dispositivos no conformes reportados por los usuarios +- soporte de sonido: + - CONFIG\_SOUND: Soporte para tarjeta de sonido + - CONFIG\_SND: Arquitectura Avanzada de Sonido para Linux + - CONFIG\_SND\_OSSEMUL: Habilitar Emulación OSS + - CONFIG\_SND\_PCM\_OSS: API OSS PCM (audio digital) + - CONFIG\_SND\_HRTIMER: Soporte backend para temporizador de alta resolución + - CONFIG\_SND\_SUPPORT\_OLD\_API: Soporte para API ALSA antigua + - CONFIG\_SND\_PROC\_FS: Soporte para FS Procesos de Sonido +- CONFIG\_IPV6: El protocolo IPv6 (cambio de módulo a integrado) + +### Distro Base + +Actualizaciones de paquetes, incluidas mitigaciones de CVE: + +- bash: versión 5.2.002 +- bind: versión 9.18.8 (CVE-2022-38178 CVE-2022-38178 CVE-2022-3080 CVE-2022-2795) +- btrfs-progs: versión 6.0 +- curl: versión 7.86.0 +- dbus: versión 1.14.4 +- freeglut: versión 3.4.0 +- git: versión 2.38.1 (CVE-2022-39253 CVE-2022-39260) +- glibc-zoneinfo: versión 2022e +- harfbuzz: versión 5.3.1 +- icu4c: versión 72.1 +- iproute2: versión 6.0.0 +- kernel-firmware: versión 20221017\_48407ff +- less: versión 608 +- libXmu: versión 1.1.4 +- libXrender: versión 0.9.11 +- libedit: versión 20221009\_3.1 +- libffi: versión 3.4.4 +- libgpg-error: versión 1.46 +- libpciaccess: versión 0.17 +- libunistring: versión 1.1 +- libxkbfile: versión 1.1.1 +- libxshmfence: versión 1.3.1 +- lsof: versión 4.96.4 +- nginx: versión 1.22.1 +- openssh: versión 9.1p1 +- php: versión 7.4.32 +- pixman: versión 0.42.0 +- rsync: versión 3.2.7 +- samba: versión 4.17.2 (CVE-2021-20251 CVE-2022-3437 CVE-2022-3592) +- sudo: versión 1.9.12 +- tree: versión 2.0.4 +- configuración de teclado x: versión 2.37 +- xterm: versión 375 +- zlib: versión 1.2.13 (CVE-2022-37434) + +["WireGuard" y el logo "WireGuard" son marcas registradas de Jason A. Donenfeld.](https://www.wireguard.com/) + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md new file mode 100644 index 0000000000..86694cc1e3 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md @@ -0,0 +1,36 @@ +## Versión 6.11.3 2022-11-08 + +Este lanzamiento se centra en correcciones de errores y mejoras menores. En particular, necesitamos revertir una biblioteca base debido a un error que impide formatear dispositivos de más de 2 TB. + +### Gestión + +- Revertido 'libpopt.so.0.0.1' para solucionar un error de 'sgdisk' utilizado para formatear dispositivos de más de 2 TB. +- Arreglado problema donde la configuración de descripción para el usuario 'root' no se mantenía tras reinicios. +- Arreglar el problema de que a veces la ventana de información se abre vacía. + +### Gestor de VM + +- Establecer valores correctos al editar para arranque USB y corrección de selección de compartir. +- Agregar orden de arranque NIC. + +### Distro Base + +- gptfdisk: versión 1.0.8 (revertida desde la versión 1.0.9) +- libXext: versión 1.3.5 +- libXinerama: versión 1.1.5 +- libdrm: versión 2.4.114 +- libedit: versión 20221030\_3.1 +- mcelog: versión 190 +- ntfs-3g: versión 2022.10.3 +- openssl: versión 1.1.1s +- openssl-solibs: versión 1.1.1s +- pixman: versión 0.42.2 +- sessreg: versión 1.1.3 +- sudo: versión 1.9.12p1 +- xsetroot: versión 1.1.3 + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md new file mode 100644 index 0000000000..27b76d1f77 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md @@ -0,0 +1,60 @@ +## Versión 6.11.4 2022-11-18 + +Esta versión se centra en la corrección de errores y mejoras menores. + +### Diagnósticos + +- Corregir la información compartida en Diagnósticos. + +### Docker + +- docker: versión 20.10.21 (CVE-2022-39253 CVE-2022-2879 CVE-2022-2880 CVE-2022-41715) +- Solución: mensaje "por favor espere" después de eliminar una imagen huérfana. +- Configurar IPVLAN como predeterminado para nuevas instalaciones. + +### Samba + +- samba: versión 4.17.3 (CVE-2022-42898) +- Establecer el valor predeterminado de "archivos máximos abiertos" al valor de 'ulimit -n' que actualmente está configurado en 40960. + +### Gestor de VM + +- Permitir que los dispositivos PCI de red tengan orden de arranque. +- Cambiar al uso de libvirt\_domain\_interface\_addresses que ha estado disponible durante mucho tiempo pero no estaba documentado en el manual de la API. Usar esta función evita que se escriban advertencias contaminadas en el registro, por ejemplo: "Domain id=4 está contaminado: comando-ga-personalizado". +- Corrección para Renombrar VM. + +### Varios + +- Se corrigió un problema que impedía el inicio automático del array con una clave de prueba. +- Corregido el problema de codificación cuando las contraseñas contienen caracteres UTF-8 de varios bytes. +- Historial de paridad: agregar día de la semana a la fecha. +- Compartir: Solución: no permitir la creación de nombres compartidos ocultos. +- Página principal: reiniciar las estadísticas de transferencia de disco al abrir una nueva sesión del navegador. +- Página de acceso de gestión: mensajes mejorados para SSL +- Firefox: versión 107.0.r20221110173214 (AppImage) +- Al cerrar todas las sesiones del navegador, detener procesos en segundo plano innecesarios. + +### Distro Base + +- bash: versión 5.2.009 +- btrfs-progs: versión 6.0.1 +- gdk-pixbuf2: versión 2.42.10 +- glibc-zoneinfo: versión 2022f +- intel-microcode: versión 20221108 +- libX11: versión 1.8.2 +- libnftnl: versión 1.2.4 +- nghttp2: versión 1.51.0 +- php: versión 7.4.33 (CVE-2022-31630 CVE-2022-37454) +- sed: versión 4.9 +- sysstat: versión 12.7.1 +- xkbevd: versión 1.1.5 +- xkill: versión 1.0.6 +- xlsatoms: versión 1.1.4 +- xlsclients: versión 1.1.5 +- xz: versión 5.2.8 + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md new file mode 100644 index 0000000000..70c912953e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md @@ -0,0 +1,13 @@ +## Versión 6.11.5 2022-11-20 + +Esta versión revierte un cambio que modificó el archivo equivocado. Esto resultó en no poder seleccionar el tipo de red personalizada de \\"macvlan\\" de Docker. Las nuevas instalaciones solo tendrán seleccionado 'ipvlan' por defecto. + +### Docker + +- corrección: Establecer IPVLAN como predeterminado solo para nuevas instalaciones. + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md new file mode 100644 index 0000000000..5f58e2808c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md @@ -0,0 +1,578 @@ +# Versión 6.12.0 2023-06-14 + +## Notas de actualización + +Al iniciar el sistema, si todos los dispositivos PCI especificados en `config/vfio-pci.cfg` no se vinculan correctamente, se impedirá el autoinicio de la VM. Todavía puede iniciar VMs individuales. Esto es para evitar un bloqueo del host Unraid si los IDs de hardware PCI cambiaron debido a una actualización del kernel o cambio físico del hardware. Para restaurar el autoinicio de la VM, examine `/var/log/vfio-pci-errors` y elimine los IDs PCI problemáticos del archivo `config/vfio-pci.cfg` y reinicie. + +Si retrocede de 6.12 a 6.11.5 o anterior, debe forzar la actualización de todos sus contenedores Docker y arrancarlos manualmente después de degradar la versión. Esto es necesario debido al cambio subyacente a cgroup v2 a partir de 6.12.0-rc1. + +Linux [Multi-Gen LRU](https://lwn.net/Articles/856931/) es una característica relativamente nueva ahora incluida, pero no habilitada por defecto. Puede habilitar agregando esta línea a su archivo 'config/go': + +`echo y > /sys/kernel/mm/lru_gen/enabled` + +Si regresa de la versión 6.12 a la 6.11.5 o anterior, es posible que deba eliminar esa línea. + +Si creó algún zpool utilizando la versión 6.12.0-beta5, por favor elimine esos pools y regréselos a su estado original. + +### Complementos obsoletos/rotos + +Hay algunos complementos que se sabe que son incompatibles con Unraid 6.12, y al arrancar no se instalarán. Recibirá una notificación por cada complemento afectado y podrá revisar la lista yendo a **Plugins/Errores de Instalación de Archivos de Plugins**. + +- versión disklocation-master 2022.06.18 (`Ubicación de Disco` por olehj, rompe el tablero) + - Actualice este complemento antes de actualizar el SO +- versión plexstreams 2022.08.31 (`Plex Streams` por dorgan, rompe el tablero) + - Actualice este complemento antes de actualizar el SO +- versión corsairpsu 2021.10.05 (`Estadísticas de Corsair PSU` por Fma965, rompe el tablero) + - Actualice este complemento antes de actualizar el SO +- versión gpustat 2022.11.30a (`Estadísticas de GPU` por b3rs3rk, rompe el tablero) + - Cambiar a `Estadísticas de GPU` por SimonF +- versión ipmi 2021.01.08 (`Herramientas IPMI` por dmacias72, rompe el tablero) + - Cambiar a `IPMI Tools` por SimonF +- versión nut 2022.03.20 (`NUT - Herramientas de UPS en Red` por dmacias72, rompe el tablero) + - Cambiar a `NUT - Herramientas de UPS en Red` por SimonF +- versión NerdPack 2021.08.11 (`Herramientas Nerd` por dmacias72) + - Cambiar a `Herramientas Nerd` por UnRAIDES +- versión upnp-monitor 2020.01.04c (`Monitor UPnP` por ljm42, no compatible con PHP 8) +- versión ZFS-companion 2021.08.24 (`ZFS-Companion` por campusantu, rompe el tablero) + +Algunos de los complementos afectados han sido asumidos por diferentes desarrolladores, recomendamos que vaya a la página de **Aplicaciones** y busque reemplazos. Por favor, haga preguntas específicas de complementos en el hilo de soporte para ese complemento. + +### Problemas conocidos + +#### Bloqueos relacionados con el controlador i915 + +Nota: esto ya no es un problema desde Unraid [6.12.6](6.12.6.md#bug-fixes-and-improvements). + +Somos conscientes de que algunos sistemas Intel Rocket Lake de 11ª generación están experimentando bloqueos relacionados con el i915 iGPU. Si su sistema Rocket Lake falla bajo Unraid 6.12.0-6.12.5, abra un terminal web y escriba esto, luego reinicie: + +`echo "options i915 enable_dc=0" >> /boot/config/modprobe.d/i915.conf` + +Configurar esta opción puede resultar en un uso de energía más alto, pero puede resolver este problema para estas GPUs. + +#### Trazas de llamadas relacionadas con macvlan + +Si está recibiendo rastros de llamadas relacionados con macvlan, como primer paso le recomendamos navegar a ***Configuración > Docker***, cambiar a vista avanzada y cambiar el **tipo de red personalizada de Docker** de **macvlan** a **ipvlan**. Esta es la configuración predeterminada con la que Unraid ha funcionado desde la versión 6.11.5 y debería funcionar para la mayoría de los sistemas. + +Sin embargo, algunos usuarios han reportado problemas con el reenvío de puertos desde ciertos enrutadores (Fritzbox) y funcionalidad reducida con herramientas avanzadas de gestión de red (Ubiquity) cuando están en modo ipvlan. + +En la versión 6.12.0, el [método de segmentación de docker de dos NIC](https://forums.unraid.net/topic/137048-guide-how-to-solve-macvlan-and-ipvlan-issues-with-containers-on-a-custom-network/) es un menú viable, pero nuestra recomendación es actualizar a Unraid [6.12.4](6.12.4.md) que tiene una mejor solución. + +#### Plex + +Si los contenedores Docker tienen problemas al iniciar después de un tiempo, y está ejecutando Plex, vaya a la configuración de su contenedor Docker de Plex, +cambie a la vista avanzada y agregue esto a los Parámetros adicionales: `--no-healthcheck` + +### Deshacer cambios + +Vea los comentarios bajo [Notas de actualización](#upgrade-notes) + +## Pools ZFS + +Nuevo en esta versión es la capacidad de crear un sistema de archivos ZFS en un pool definido por el usuario. También puede formatear cualquier dispositivo de datos en el array de unRAID con un sistema de archivos ZFS de un solo dispositivo. Para obtener una buena visión general de ZFS, consulte [este artículo](https://arstechnica.com/information-technology/2020/05/zfs-101-understanding-zfs-storage-and-performance/). + +Estamos dividiendo la implementación completa de ZFS en dos entregas de Unraid OS. Soporte inicial en esta versión incluye: + +- Soporte para raid0, espejo, raidz1, raidz2 y perfiles raíz raidz3. Hasta un espejo de 4 vías en un vdev de espejo. Múltiples grupos vdev. +- Soporte para la eliminación de dispositivos individuales: si el dispositivo sigue presente en el servidor, se utiliza 'wipefs' para borrar la tabla de particiones. +- Soporte para reemplazar un dispositivo único perdido por un nuevo dispositivo del mismo o mayor tamaño. +- Soporte para el recorte programado de pools ZFS. +- Soporte para cambiar el nombre del pool. +- Los nombres de los 'pools' deben comenzar con una letra minúscula y solo contener letras minúsculas, dígitos, guión bajo + y guión. Los nombres de los 'pools' no deben terminar con un dígito. +- Un 'vdev' no raíz no se puede configurar en esta versión, sin embargo, pueden ser importados. Nota: los 'pools' híbridos importados pueden no ser + extendidos en esta versión. +- Los 'pools' creados en otros sistemas pueden o no importarse dependiendo de cómo se haya creado el 'pool'. Una futura actualización + permitirá importar 'pools' desde cualquier sistema. + +Un pool ZFS tiene tres variables: + +- Perfil: la organización de datos de raíz: raid0, espejo (hasta 4 vías), raidz1, raidz2, raidz3 +- Ancho: el número de dispositivos por vdev de raíz +- Grupos: el número de vdev de raíz en el pool + +En el momento de la creación del pool ZFS, la WebGUI presentará todas las opciones de topología basadas en el número de dispositivos asignados al pool. + +Tratamiento especial para espejos de una sola vdev de raíz: + +- Un pool ZFS de un solo dispositivo se puede convertir a un espejo de múltiples dispositivos agregando hasta 3 dispositivos adicionales en una sola operación. +- Un espejo de 2 dispositivos puede incrementarse a 3 dispositivos añadiendo un dispositivo adicional; de manera similar, un espejo de 3 dispositivos puede ser + incrementado a un espejo de 4 dispositivos añadiendo un dispositivo adicional. + +Para agregar un vdev raíz adicional, debe asignar el 'ancho' número de nuevos dispositivos al pool al mismo tiempo. El nuevo vdev se creará con el mismo 'perfil' que los vdev existentes. Se proporcionará flexibilidad adicional en la adición/ampliación de vdevs en una actualización futura. + +Los pools creados con el complemento **steini84** se pueden importar de la siguiente manera: Primero, cree un nuevo pool con el número de ranuras correspondiente al número de dispositivos en el pool que desea importar. A continuación, asigne todos los dispositivos al nuevo pool. Al iniciar el array, el pool debe ser reconocido, aunque ciertas topologías de zpool pueden no ser reconocidas (por favor informe). Tenga en cuenta que solo los pools que usan la partición #1 pueden importarse en esta versión, por ejemplo, esta salida de `lsblk`: + +```bash +# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS +sdb 8:16 0 7.3T 0 disk +├─sdb1 8:17 0 2G 0 part +└─sdb2 8:18 0 7.3T 0 part +``` + +indica que la segunda partición (`sdb2`) del disco está siendo utilizada para datos, y **no puede** ser importada. + +Las topologías mixtas no son compatibles. Por ejemplo, un pool con un vdev root espejo y un vdev root raidz no es reconocido. + +Autotrim se puede configurar como **on** o **off** (excepto para volúmenes ZFS de un solo dispositivo en la matriz unRAID). + +La compresión se puede configurar como **activado** o **desactivado**, donde **activado** selecciona **lz4**. Una actualización futura permitirá especificar otros algoritmos/niveles. + +Al crear un nuevo pool ZFS, puede elegir **zfs - cifrado**, el cual, al igual que otros volúmenes cifrados, aplica cifrado a nivel de dispositivo a través de LUKS. El cifrado nativo de ZFS no es compatible en este momento. + +Durante el arranque del sistema, el archivo /etc/modprobe.d/zfs.conf se genera automáticamente para limitar el ZFS ARC a 1/8 de la memoria instalada. Esto se puede anular si es necesario creando un archivo personalizado 'config/modprobe.d/zfs.conf'. Una futura actualización incluirá la capacidad de configurar el ARC a través de WebGUI, incluyendo el ajuste automático según la presión de memoria, por ejemplo, arranque/detención de VMs. + +Los shares de nivel superior en un pool ZFS se crean como datasets en lugar de directorios ordinarios. + +## Cambio conceptual en el almacenamiento compartido + +Nuevo en esta versión es un cambio conceptual en la manera en que se asigna el almacenamiento a los compartidos. El concepto antiguo de almacenamiento principal siendo el array de unRAID con un "Cache" opcional es confuso para muchos usuarios nuevos, especialmente desde que *cache* tiene un significado específico en ZFS. + +Como se describe a continuación, hemos introducido el concepto de un *compartido exclusivo*. Esto es simplemente un compartido donde todos los datos existen en un único pool nombrado. En este caso, el sistema de archivos del compartido de usuario basado en FUSE devuelve un **symlink** al directorio del compartido real en el pool. Todas las operaciones dentro del compartido, incluyendo la transferencia de datos, por lo tanto, omiten FUSE, lo que resulta en un mayor rendimiento. Esta característica está principalmente dirigida a maximizar el I/O para pools ZFS grandes y ráfagos accedidos a través de una red rápida. + +Este es un cambio solo de front-end; los shares existentes se verán con esta nueva estructura automáticamente al actualizar, +y automáticamente volverán al estilo anterior si retrocede a una versión anterior. + +La configuración de las opciones de almacenamiento para un share se especifica usando dos entradas: + +- Almacenamiento primario +- Almacenamiento secundario + +El almacenamiento primario es donde se crean **nuevos** archivos/carpetas. Si el almacenamiento primario está por debajo del ajuste de Espacio Libre Mínimo, entonces se crearán nuevos archivos y carpetas en el almacenamiento secundario, si está configurado. + +Cada entrada presenta un menú desplegable que lista "matriz", "ninguno" y cada pool nombrado como una selección según algunas reglas de configuración: + +Para el menú desplegable de almacenamiento primario: + +- se omite la opción "ninguno", es decir, se debe seleccionar almacenamiento primario +- se puede seleccionar cualquier pool nombrado +- Se puede seleccionar "Matriz" (lo que significa la matriz unRAID) + +Para el menú desplegable de almacenamiento secundario: + +- se incluye la opción "ninguno", es decir, el almacenamiento secundario es opcional +- si el almacenamiento primario es un nombre de pool, entonces las únicas opciones son "ninguna" y "Array". En el futuro, otros pools también se listarán aquí. +- si el almacenamiento primario es "Matriz", entonces solo aparece "ninguno" como opción + +Cuando se selecciona "Matriz" para almacenamiento primario o secundario, se despliega un conjunto de configuraciones adicionales: + +- Método de asignación +- Disco(s) incluido(s) +- Disco(s) excluido(s) +- Nivel de división + +Cuando se selecciona un pool nombrado *btrfs* para almacenamiento primario o secundario, se despliega una configuración adicional: + +- Habilitar escritura sobre la marcha + +Cuando un pool llamado *ZFS* se selecciona para el almacenamiento primario o secundario, no hay configuraciones adicionales en este momento pero podría haber algunas en el futuro. Por ejemplo, dado que un compartido se crea como un conjunto de datos ZFS, podría tener una configuración de compresión diferente a la del pool padre si necesitamos implementar esto. + +### Acción del Movedor + +Cuando hay almacenamiento secundario configurado para un share, se habilita la configuración de "Acción del Mover" permitiendo al usuario +seleccionar la dirección de transferencia del mover: + +- Primario a Secundario (predeterminado) +- Secundario a Primario + +### Shares Exclusivos + +Añadimos un nuevo ajuste: "Configuraciones/Configuraciones Globales de Compartición/Permitir Comparticiones Exclusivas" \[Sí/No] por defecto: No. Si se establece en Sí +y si el almacenamiento principal para una compartición es un 'pool' y el almacenamiento secundario se establece en "ninguno", entonces se crea un enlace simbólico +en /mnt/user/*compartición* apuntando directamente al directorio de compartición del 'pool'. (Se realiza una verificación adicional para asegurar que la compartición no exista +en otros volúmenes). + +Hay una nueva bandera de estado, 'Acceso exclusivo' que se establece en 'Sí' cuando hay un symlink en lugar; y, 'No' en caso contrario. Los compartidos exclusivos también se indican en la página de Compartidos. + +La ventaja de configurar symlinks es que el I/O pasa por alto el sistema de archivos de share de usuario basado en FUSE (shfs) lo cual puede incrementar significativamente +el rendimiento. + +Hay algunas restricciones: + +- Se ignoran las configuraciones de Espacio Libre Mínimo tanto del share como del pool al crear nuevos archivos en un share exclusivo. +- Si se exporta una compartición por NFS, no puede ser exclusiva, es decir, no se crea el enlace simbólico. Esto se debe a que los enlaces simbólicos + se resuelven en el cliente NFS, no en el servidor. Esperamos eliminar esta restricción en una futura actualización. + +### Botón Limpiar + +Apareciendo en la página de Compartidos, un botón llamado LIMPIAR, cuando está habilitado indica que hay archivos config/share/*compartido*.cfg para compartidos que no existen. Al hacer clic en este botón, esos archivos se eliminarán. + +## Otras mejoras + +### btrfs + +Autotrim se puede configurar como **on** o **off** +cuando se utiliza en un pool. + +La compresión se puede configurar como **activada** o **desactivada**. **activada** selecciona **zstd**. Actualización futura para permitir especificar otros algoritmos/niveles. + +### xfs + +Autotrim se puede configurar como **on** o **off** cuando se utiliza como un pool de un solo slot. + +### Docker + +Es posible configurar el **Docker data-root** para que se ubique en un directorio en un pool de almacenamiento ZFS. En este caso, Docker utilizará el controlador de almacenamiento 'zfs'. Este controlador crea un conjunto de datos separado para cada capa de imagen. Debido a esto, aquí está nuestra recomendación para configurar Docker usando **directorio**: + +Primero, cree un share de usuario **docker** configurado de la siguiente manera: + +- Nombre del share: **docker** +- Almacenamiento primario: ***nombre de su grupo ZFS*** +- Almacenamiento secundario: **ninguno** + +A continuación, en la página de **configuración de Docker**: + +- Habilitar Docker: **Sí** +- Raíz de datos de Docker: **directorio** +- Directorio de Docker: **/mnt/user/docker** + +Si alguna vez necesita eliminar el estado persistente de Docker, entonces abra la página de configuraciones de Docker y ajuste **Habilitar docker** a **No** y haga clic en **Aplicar**. Después de que docker se haya apagado haga clic en la casilla de **Eliminar directorio** y luego en **Eliminar**. Esto resultará en la eliminación no solo de los varios archivos y directorios, sino también de todas las capas almacenadas como conjuntos de datos. + +Antes de habilitar Docker nuevamente, asegúrese de recrear primero el **compartir docker** como se describió anteriormente. + +#### Otros cambios de Docker + +- CreateDocker: cambió la etiqueta **Docker Hub URL** a **Registry URL** debido a GHCR y otros nuevos + registros de contenedores que se están volviendo cada vez más populares. +- Respeta la configuración de usuario del tiempo de espera de parada. +- Aceptar imágenes en formato OCI. +- Agregar opción para deshabilitar readmore-js en la tabla de contenedores. +- Corrección: la consola de contenedores de Docker no usará bash si está seleccionado. +- Solucionar el problema de la detección de apagado correcto de Docker. +- rc.docker: dar 30 seg a dockerd en lugar de 15 para iniciar. + +### Gestor de VM + +Si habilita el copiar/pegar para consolas virtuales, necesita instalar software adicional en el cliente además del agente QEMU si se ha instalado. [Aquí está la ubicación](https://www.spice-space.org/download.html) para spice-vdagent tanto para Windows como para Linux. Tenga en cuenta que la función de copiar/pegar no funcionará con el visor web spice, necesita usar el visor virt. + +#### Otros cambios en VM + +- Agregar opción Serial a vdisk. +- Corrección de error de Spice para usuarios con puertos GUI no estándar definidos. +- OVMF para QEMU: versión stable202302 +- Corrección para el texto del bus. +- Habilitar la opción de copiar y pegar para consolas virtuales. +- Actualización del procesamiento de copia de seguridad de memoria para Virtiofs. +- Corregir bloqueo cuando no hay VMs presentes. +- Agregar soporte para el modelo de red rtl8139. +- corregir omisión de traducción. +- agregó bloqueo/desbloqueo para elementos ordenables. +- Corrección para Spice Mouse si se habilita copiar y pegar. +- Permitir que la página se cargue incluso cuando los dispositivos PCI parecen faltar o están mal asignados. +- Hacer opciones del visor remoto y consola web seleccionables. +- Opción para descargar el archivo .vv e iniciar el visor remoto si el navegador está configurado para abrir el archivo .vv cuando se descarga. +- Agregar soporte para consola de visor remoto. +- Quitar-bloqueo-posix='on'-flock='on'/- +- Corregir VM marcada como Autoinicio que no arranca tras el inicio manual de una matriz. +- Corrección para memoria máxima > 1TB. +- Corregir problemas con cargas de página de VM si los usuarios han eliminado el pinning de vcpu. +- ovmf-stable: versión 202305 (build 3). +- corregido el asunto de la notificación. + +### Panel de Control + +El Tablero WebGUI ha sido rediseñado y ahora es posible mover elementos (azulejos) hacia arriba y abajo y entre columnas. Esto permite al usuario organizar los azulejos de cualquier manera que desee. Hay un pequeño icono de **candado** en la barra de menú que debe hacer clic para habilitar esta función: + +- Verde es el estado normal (la página está bloqueada) +- Rojo es el estado de atención (la página está desbloqueada) + +Nota: El icono de **bloqueo** también aparece en las páginas de Docker y VM y se debe hacer clic para reorganizar el orden de inicio. + +### Mejoras en la red + +Añadimos una nueva sección: Configuración/Configuraciones de red/Interfaz Extra + +Esta nueva sección permite al usuario definir qué interfaces son usadas por los servicios de Unraid. Por defecto, todas las interfaces regulares con una dirección IP están incluidas en la lista de interfaces de escucha. + +Los túneles de la función WireGuard incorporada en Unraid se agregan o eliminan automáticamente de la lista cuando los túneles Wireguard se activan o desactivan. El usuario puede excluir estos túneles de la lista de interfaces de escucha. + +Para usar la interfaz Tailscale o Zerotier, se requiere agregar el nombre de la interfaz o la dirección IP de la comunicación a la lista de interfaces de escucha incluidas. **Importante:** Es imperativo que el contenedor de Tailscale o Zerotier esté en funcionamiento antes de que la interfaz sea agregada a la lista. Para obtener más información, consulte [esta publicación del foro de la comunidad](https://forums.unraid.net/bug-reports/prereleases/unraid-os-version-6120-rc7-available-r2427/?tab=comments#comment-24235). + +#### Otros cambios en la red + +- Soporte para interfaces personalizadas (ej. túnel VPN Tailscale o túnel L2 zerotier) +- create\_network\_ini - reiniciar smb cuando se realizan cambios en la red +- rc.inet1 - agregar procesamiento de iptables a las interfaces puente para hacerlas funcionar de manera similar a las interfaces macvlan +- rc.avahidaemon - permitir que el servicio escuche solo en interfaces regulares que tengan una dirección IP, esto incluye la interfaz principal + establecer soporte ipv4 / ipv6 +- rc.docker - suprimir la dirección de enlace-local de ipv6 para docker0 e interfaces shim cuando se configuré únicamente como ipv4 +- rc.samba - permitir que el servicio smb, nmb escuche solo en interfaces regulares que tengan una dirección IP, esto incluye la interfaz principal + establecer soporte ipv4 / ipv6 (también para wsdd2) +- rc.ssh - escuchar solo en interfaces regulares que tengan una dirección IP, esto incluye la interfaz principal + establecer soporte ipv4 / ipv6 +- Solucionar problema donde /etc/resolve.conf puede ser eliminado al cambiar el servidor DNS entre automático/estático. +- Corregir error en el manejo del campo de descripción. +- corregir nginx reconociendo la dirección IP de servidores dhcp lentos + +### Otras mejoras/Correcciones de errores + +- Se aumentó el número máximo de dispositivos por pool de 30 a 60. En una versión futura eliminaremos el máximo superior por completo. +- webTerminal: Para mejorar la legibilidad, se cambió el color de fondo en los listados de directorios donde 'w+o' está configurado. También se cambió + el motor de renderizado de webgl a canvas para mitigar el problema con las últimas versiones de Chrome. +- Archivo de deriva de ntp fix save/restore desde el directorio persistente 'config' de USB flash. +- Se eliminó el archivo extraviado /root/.config/remmina +- Edición de compartición: advertir cuando se usa un nombre ZFS no válido +- Edición de compartición: permitir nombres de una letra +- Agregar [Agente Pushbits](https://github.com/pushbits/server) para integración de Matrix/Synapse. +- cgroup2 ahora es predeterminado +- las imágenes de loopback ya no montadas usando directio +- nuevo script newperms restringido a operar solo en /mnt/. +- upgradepkg parcheado para prevenir la sustitución de un paquete existente por una versión más antigua. +- la información actual de bus/dispositivo PCI guardada en el archivo '/boot/previous/hardware' al actualizar el OS de Unraid. +- NFS: habilitar transporte UPD +- emhttp: corregir las cadenas del registro del sistema del grupo de caché (nulo) +- emhttp: corregir la muestra del grupo de caché de tamaño de dispositivo incorrecto para un dispositivo de reemplazo seleccionado +- mover: corregir manejo incorrecto de enlaces simbólicos +- mover: corregir el formato de las entradas del registro del sistema del movimiento diferente de las versiones anteriores +- plugin: Mostrar el comando Run retval en el mensaje de error +- shfs: ignorar directorios ocultos de nivel superior (nombres que comienzan con '.') +- terminal: OpenTerminal: cambiar la señal de terminación (detención forzosa) +- actualizar el OS de Unraid: verificar actualizaciones anteriores sin reiniciar +- WebGUI: soporte para PHP8, aumentar la memoria máxima de PHP de 128M a 256M +- WebGUI: ManagementAccess: Desactivar los botones de Provisión/Renovación/Actualización cuando no hay IP en eth0 +- WebGUI: ManagementAccess: Soporte para direcciones IP locales de wireguard en combinación con el certificado SSL myservers.unraid.net +- WebGUI: Mover el icono "ver" en la página principal y de comparticiones a la izquierda +- WebGUI: Mantener ocultas las banderas desestimadas durante un mes +- WebGUI: Dashboard: corregir error de regresión en "selecciona caso" +- WebGUI: Dashboard: hacer que los elementos se puedan mover entre columnas +- WebGUI: Dashboard: API para agregar azulejos personalizados +- WebGUI: Dashboard: reorganizar la información del procesador +- WebGUI: Dashboard: reorganizar la información de UPS +- WebGUI: Dashboard: reorganizar la información de memoria +- WebGUI: Dashboard: reajuste del encabezado de VPN +- WebGUI: Dashboard: reordenaciones de encabezado +- WebGUI: Añadir jqueryUI touch punch para dispositivos móviles +- WebGUI: Cambiar ID a CLASS para elementos que ocurren más de una vez +- WebGUI: Hacer el encabezado en temas blanco y negro desplazables + - Cuando hay más elementos presentes que espacio en pantalla, el usuario ahora puede desplazarse por ellos (anteriormente estos elementos eran invisibles) +- WebGUI: Panel de control y Docker: introducir el botón de bloqueo para elementos ordenables + - Por defecto, los elementos ordenables están bloqueados, lo que permite a los dispositivos móviles desplazarse por la página. A pedido, los elementos pueden hacerse ordenables. +- WebGUI: Usuarios: añadir icono a la barra de título +- WebGUI: Herramientas: nueva función -> Configuraciones de PHP + - Ver información de PHP + - Configurar la notificación de errores + - Abrir LOG para ver errores en tiempo real +- WebGUI: Información del sistema: corregir lectura de puertos inactivos +- WebGUI: Plugin: Incluir el comando real que se ejecuta +- WebGUI: Información del sistema: mejora de caché +- WebGUI: Información del sistema: mejora de memoria +- WebGUI: Información del dispositivo: deshabilitar botones cuando se está ejecutando una operación de borrado +- WebGUI: Docker: correcciones del árbol de archivos +- WebGUI: Dashboard: corregido mostrar alarma de calor por grupo +- WebGUI: Notificaciones: operación revisada + - Cerrar automáticamente nuevas notificaciones después de 3 segundos + - Corregir notificaciones que reaparecen después del cierre +- WebGUI: Lista de Dispositivos: añadir tipo de sistema de archivos en estado offline +- WebGUI: Añadir agente de notificación para Bark +- WebGUI: Principal: ocultar icono de navegación cuando el disco no está montado +- WebGUI: Diagnósticos: añadir información btrfs y zfs adicional +- WebGUI: Dashboard: añadir uso de memoria ZFS +- WebGUI: Nuevos Permisos revisados + - Seleccionar ya sea discos o comparticiones (no ambos) +- WebGUI: Añadir testparm a diagnósticos +- WebGUI: Soporte para nuevo punto de montaje reservado UD de /mnt/addons +- WebGUI: corregir problema al mostrar Atributos cuando la pantalla de temperatura está configurada en Fahrenheit +- WebGUI: Cambios en el Panel de control: + - bloquear completamente el Panel de control: La edición/movilización solo se vuelve posible al desbloquear la página + - Una columna vacía se rellena cuando los azulejos respectivos se hacen visibles de nuevo, no es necesario restablecer todo + - se agregó un "indicador de movimiento" visual en la página de Docker y VM, para hacer más claro que las filas pueden moverse ahora. + - cambiar la forma del cursor cuando el movimiento está habilitado + - usar el título del azulejo como índice +- WebGUI: corregir: mensajes emergentes de cuenta local de Firefox no funcionan +- WebGUI: La prueba SMART no se puede ejecutar en un disco UD porque no hay selección de retraso de apagado +- WebGUI: el pie de página de estado atascado en "Iniciando servicios" al aplicar cambios de configuración del compartimiento. +- WebGUI: Corregir diseño de tabla para imágenes huérfanas +- WebGUI: Plugin: No mostrar botón de actualización si no es compatible +- WebGUI: Plugin: Mejorar la detección de porcentaje de wget +- WebGUI: OpenTerminal: limitar clientes +- WebGUI: Menú contextual: colocación automática de triángulos +- WebGUI: Panel de control: corregir advertencias de grupo +- WebGUI: Permitir prueba SMART larga para UD +- WebGUI: Leer tipo de procesador desde /proc/cpuinfo +- WebGUI: CSS: resolver problema de barra de desplazamiento en Firefox +- WebGUI: Agregar compartición: corregir comprobación de nombre de compartición oculta +- WebGUI: Configuraciones de visualización: agregar valores predeterminados faltantes +- WebGUI: Operación de Array: prevenir doble clic en el botón de inicio +- WebGUI: DeviceInfo: mostrar shareFloor con unidades +- WebGUI: DeviceInfo: se añadió cálculo automático del piso +- WebGUI: Mensaje de ajustes automáticos añadido +- WebGUI: Shares: se añadió icono de información +- WebGUI: Página de DeviceInfo y Shares actualizada +- WebGUI: Corregir aberración de visualización de red. +- WebGUI: Autocompletar espacio libre mínimo para nuevos compartidos +- WebGUI: feat(upc): actualizar a v3 para conectar +- WebGUI: Cálculo de tamaño de Share/Pool: mostrar y permitir valores en porcentaje +- wireguard: añadir soporte SSL para direcciones IP de túnel WG (sólo cerficados wildcard de myunraid.net) +- wireguard: corregir problema de nginx cuando configuración de WireGuard es parcial + +### Liberar diferencias de archivos *bz* + +Unraid OS está compuesto por un conjunto de 5 archivos denominados *bz* en la raíz del dispositivo de arranque USB Flash: + +- bzimage - el núcleo de Linux +- bzroot - el sistema de archivos raíz, sin la consola de escritorio +- bzroot-gui - archivos adicionales necesarios para la consola de escritorio +- bzmodules - módulos (controladores) asociados con el núcleo de Linux +- bzfirmware - firmware de dispositivo requerido por ciertos módulos + +A partir de la versión 6.12, el contenido de estos archivos ha sido reorganizado: + +- bzimage - el núcleo de Linux (igual que antes) +- bzroot - el sistema de archivos raíz excluyendo el árbol de directorios /usr +- bzroot-gui - un único archivo que auto-inicia la consola de escritorio (para compatibilidad) +- bzmodules - módulos (controladores) asociados con el núcleo de Linux y firmware de dispositivo requerido por ciertos módulos +- bzfirmware - el directorio /usr y todos los archivos contenidos en él, incluyendo la consola de escritorio + +Estos cambios aceleran el proceso de arranque y liberan casi 1G de RAM. También nos permite agregar más "cosas" al Unraid OS en el futuro sin requerir más RAM. Finalmente, cuando se inicia en modo **no-GUI**, el escritorio se puede iniciar iniciando sesión en la consola y escribiendo el comando 'slim'. + +#### Actualización manual + +La actualización manual se refiere a actualizar el Unraid OS en su dispositivo de arranque USB flash sin usar la función **Herramientas/Actualizar OS**. Normalmente uno haría una de las siguientes opciones: + +- abrir una ventana de Terminal, obtener el archivo zip de la versión, descomprimir la versión, y luego 'cp' los archivos *bz* a la raíz del dispositivo de arranque. + +o + +- exportar el compartido 'flash' en su red y arrastrar los archivos *bz* desde un PC directamente al flash. + +Cualquiera de los métodos, comenzando con la versión 6.12 **puede fallar** porque el archivo *bzfirmware* será sobrescrito mientras esté montado - no es bueno. + +Para evitar esto, primero debe crear un directorio temporal en el dispositivo flash y luego 'mv' (o arrastrar) todos los archivos *bz* existentes en este directorio temporal. Ahora puede copiar los nuevos archivos *bz* a la raíz del dispositivo flash y reiniciar. + +## Núcleo de Linux + +- versión 6.1.33 +- md/unraid: versión 2.9.27 +- CONFIG\_FS\_DAX: Soporte de Acceso Directo basado en el Sistema de Archivos (DAX) +- CONFIG\_VIRTIO\_FS: Sistema de archivos Virtio +- CONFIG\_ZONE\_DEVICE: Soporte para memoria de dispositivo (pmem, HMM, etc...) emergente +- CONFIG\_USBIP\_HOST: Controlador anfitrión +- CONFIG\_INTEL\_MEI: Interfaz de Motor de Gestión Intel +- CONFIG\_INTEL\_MEI\_ME: Chipsets Intel habilitados para ME +- CONFIG\_INTEL\_MEI\_GSC: Dispositivo integrado GSC de MEI Intel +- CONFIG\_INTEL\_MEI\_PXP: Servicios PXP del interfaz ME de Intel +- CONFIG\_INTEL\_MEI\_HDCP: Servicios HDCP2.2 del interfaz ME de Intel +- CONFIG\_INTEL\_PMC\_CORE: Controlador de núcleo PMC de Intel +- CONFIG\_DRM\_I915\_PXP: Habilitar soporte PXP de Intel +- CONFIG\_SCSI\_FC\_ATTRS: Atributos de Transporte de Canal de Fibra +- CONFIG\_FUSION\_SPI: Controladores de ScsiHost MPT de Fusión para SPI +- CONFIG\_FUSION\_FC: Controladores de ScsiHost MPT de Fusión para FC +- CONFIG\_FUSION\_CTL: Controlador de dispositivo misc MPT de Fusión (ioctl) +- CONFIG\_FUSION\_LOGGING: Instalación de registro MPT de Fusión +- CONFIG\_X86\_AMD\_PSTATE: Controlador P-State de procesador AMD +- CONFIG\_LRU\_GEN: LRU de Generación Múltiple +- CONFIG\_SERIAL\_8250\_NR\_UARTS=32: Número máximo de puertos seriales 8250/16550 +- CONFIG\_SERIAL\_8250\_RUNTIME\_UARTS=4: Número de puertos seriales 8250/16550 a registrar en tiempo de ejecución +- CONFIG\_FANOTIFY: Notificación de acceso de archivos a nivel de sistema de archivos + +## Actualizaciones de Base Distro + +- aaa\_glibc-solibs: versión 2.37 +- adwaita-icon-theme: versión 43 +- at-spi2-core: versión 2.46.0 +- bash: versión 5.2.015 +- bash\_completion: versión 2.11 +- bind: versión 9.18.12 +- btrfs-progs: versión 6.2.1 +- ca-certificates: versión 20221205 +- cryptsetup: versión 2.6.1 +- curl: versión 7.88.1 +- dbus: versión 1.14.6 +- diffutils: versión 3.9 +- dnsmasq: versión 2.89 +- docker: versión 23.0.6 +- e2fsprogs: versión 1.47.0 +- encodings: versión 1.0.7 +- file: versión 5.44 +- firefox: versión 111.0 (AppImage) +- freetype: versión 2.13.0 +- fuse3: versión 3.12.0 +- gawk: versión 5.2.1 +- git: versión 2.39.2 +- glib2: versión 2.74.6 +- glibc: versión 2.37 +- glibc-zoneinfo: versión 2022g +- gnutls: versión 3.7.9 +- gptfdisk: versión 1.0.9 +- gtk+3: versión 3.24.37 +- harfbuzz: versión 7.1.0 +- htop: versión 3.2.2 +- iproute2: versión 6.2.0 +- iptables: versión 1.8.9 +- iputils: versión 20221126 +- kernel-firmware: 20230531\_fc90c59 +- less: versión 612 +- libICE: versión 1.1.1 +- libSM: versión 1.2.4 +- libX11: versión 1.8.4 +- libXau: versión 1.0.11 +- libXcomposite: versión 0.4.6 +- libXdamage: versión 1.1.6 +- libXdmcp: versión 1.1.4 +- libXpm: versión 3.5.15 +- libXrandr: versión 1.5.3 +- libXres: versión 1.2.2 +- libXxf86dga: versión 1.1.6 +- libarchive: versión 3.6.2 +- libdrm: versión 2.4.115 +- libfontenc: versión 1.1.7 +- libglvnd: versión 1.6.0 +- libjpeg-turbo: versión 2.1.5.1 +- libpcap: versión 1.10.3 +- libpng: versión 1.6.39 +- libpsl: versión 0.21.2 +- liburcu: versión 0.14.0 +- libwebp: versión 1.3.0 +- libxkbcommon: versión 1.5.0 +- libxkbfile: versión 1.1.2 +- libxshmfence: versión 1.3.2 +- lmdb: versión 0.9.30 +- logrotate: versión 3.21.0 +- lsof: versión 4.98.0 +- lz4: versión 1.9.4 +- lzlib: versión 1.13 +- mc: versión 4.8.29 +- mcelog: versión 191 +- mpfr: versión 4.2.0 +- nano: versión 7.2 +- ncurses: versión 6.4 +- nginx: versión 1.23.3 +- nghttp2: versión 1.52.0 +- openssh: versión 9.2p1 +- openssl: versión 1.1.1t +- openssl-solibs: versión 1.1.1t +- openzfs: versión 2.1.12 +- pango: versión 1.50.14 +- pciutils: versión 3.9.0 +- pcre2: versión 10.42 +- php: versión 8.2.4 +- php-libvirt: versión 0.5.7 +- php-markdown: versión 2.0.0 +- samba: versión 4.17.7 +- sqlite: versión 3.41.0 +- sudo: versión 1.9.13p2 +- sysstat: versión 12.7.2 +- tdb: versión 1.4.8 +- tevent: versión 0.14.1 +- traceroute: versión 2.1.2 +- transset: versión 1.0.3 +- tree: versión 2.1.0 +- usbutils: versión 015 +- xcb-util: versión 0.4.1 +- xdriinfo: versión 1.0.7 +- xf86-video-vesa: versión 2.6.0 +- xfsprogs: versión 6.1.1 +- xhost: versión 1.0.9 +- xinit: versión 1.4.2 +- xkbcomp: versión 1.4.6 +- xkeyboard-config: versión 2.38 +- xorg-server: versión 21.1.7 +- xprop: versión 1.2.6 +- xrandr: versión 1.5.2 +- xset: versión 1.2.5 +- xterm: versión 379 +- xz: versión 5.4.1 +- zstd: versión 1.5.4 + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md new file mode 100644 index 0000000000..6373e6f445 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md @@ -0,0 +1,56 @@ +# Versión 6.12.1 2023-06-20 + +Cambios vs. [6.12.0](6.12.0.md) + +## Notas de actualización + +### Problemas conocidos + +Por favor, consulte las [notas de la versión 6.12.0](6.12.0.md#known-issues) para conocer los problemas generales. + +### Deshacer cambios + +Si retrocede antes de la 6.12.0, también consulte las [notas de la versión 6.12.0](6.12.0.md#rolling-back). + +## Corrección de errores + +- emhttpd: eliminar "unraid" de la lista de nombres reservados +- emhttpd: manejar correctamente las cadenas "ERROR" en la salida del comando 'btrfs filesystem show' +- emhttpd: prevenir cmdStart si ya está iniciado +- network: funcionalidad de recarga de servicio revisada: asegura que los servicios solo se recarguen una vez +- network: rc.library: leer direcciones IP directamente de las interfaces en lugar del archivo +- network: NTP: arreglar interfaces de escucha +- network: NTP: excluir túneles WG e interfaces definidas por el usuario +- network: NTP: añadir nombre de interfaz en configuración +- network: SSH: añadir nombre de interfaz en configuración +- WebGUI: corregir advertencia de PHP8 en la página de configuración de UPS +- WebGUI: Tablero: mostrar el porcentaje de ZFS basado en el valor c\_max +- WebGUI: Panel de control: suprimir coloración de la barra de utilización ZFS +- WebGUI: Panel de control: otras correcciones varias + +## Núcleo de Linux + +- versión 6.1.34 + +## Distro Base + +- ttyd: versión 1.7.3 (corrige problema de caracteres de subrayado invisible con ciertas versiones de Firefox) + +### Actualizaciones de seguridad + +- ca-certificates: versión 20230506 +- curl: versión 8.1.2 (CVE-2023-28322 CVE-2023-28321 CVE-2023-28320 CVE-2023-28319) +- git: versión 2.35.8 (CVE-2023-25652 CVE-2023-25815 CVE-2023-29007) +- ntp: versión 4.2.8p17 (CVE-2023-26551 CVE-2023-26552 CVE-2023-26553 CVE-2023-26554 CVE-2023-26555) +- openssl: versión 1.1.1u (CVE-2023-2650) +- openssh: versión 9.3p1 +- php: versión 8.2.7 +- libX11: versión 1.8.6 (CVE-2023-3138) +- libssh: versión 0.10.5 (CVE-2023-1667 CVE-2023-2283) +- zstd: versión 1.5.5 + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md new file mode 100644 index 0000000000..b449b36d64 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md @@ -0,0 +1,67 @@ +# Versión 6.12.10 2024-04-03 + +## Notas de actualización + +Esta versión vuelve a una versión anterior del núcleo de Linux para resolver dos problemas reportados en 6.12.9. También incluye una actualización de seguridad de 'curl' y una corrección para casos extremos. + +Nota: Unraid OS v6.12.x y todas las versiones anteriores **no** son vulnerables al backdoor xz [CVE-2024-3094](https://nvd.nist.gov/vuln/detail/CVE-2024-3094). + +### Problemas conocidos + +#### Plugins desactualizados + +Los plugins desactualizados pueden causar problemas; recomendamos que se mantengan actualizados. + +#### Trazas de llamadas y bloqueos relacionados con macvlan + +Si estás obteniendo trazas de llamadas relacionadas con macvlan (o realmente cualquier bloqueo inexplicable), como primer paso recomendamos navegar a ***Configuración > Docker***, cambiar a la vista **avanzada** y cambiar el **tipo de red personalizada de Docker** de **macvlan** a **ipvlan**. Esta es la configuración por defecto que Unraid ha enviado desde la versión 6.11.5 y debería funcionar para la mayoría de los sistemas. + +Tenga en cuenta que algunos usuarios han informado problemas con el reenvío de puertos desde ciertos routers (Fritzbox) y una funcionalidad reducida con herramientas de gestión avanzada de redes (Ubiquity) cuando están en modo ipvlan. Si esto le afecta, consulte la solución alternativa disponible desde Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces). + +#### Problemas de red debido a tramas jumbo + +Si estás teniendo problemas de red de cualquier tipo, confirma que no has habilitado frames jumbo. Navega a ***Configuración > Configuración de Red > eth0*** y confirma que el **MTU Deseado** es 1500. Para más información consulta la [advertencia de Problemas Comunes para frames jumbo](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Problemas debido a tarjetas de red Realtek + +La actualización del kernel soluciona el problema de deadlock con frames jumbo y el controlador Realtek 8125 incluido. Sin embargo, seguimos recomendando seguir el consejo anterior con respecto a frames jumbo. + +Si continúas teniendo problemas de estabilidad de red y ***Herramientas > Dispositivos del Sistema*** muestra que tienes un controlador ethernet Realtek, obtén el número de parte mostrado y busca Apps de la Comunidad para ver si hay un plugin de driver proporcionado por el proveedor Realtek para ese dispositivo. Para más información, consulta la [página de soporte para plugins de drivers Realtek](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### ¿Otros problemas? + +Recomendamos encarecidamente la instalación del plugin **Arreglar Problemas Comunes** ya que te advertirá sobre problemas comunes de configuración. + +Si tienes otros bloqueos o problemas de estabilidad, navega a ***Configuración > Servidor Syslog*** y habilita **Reflejar syslog en el flash**. Esto causará desgaste adicional en tu dispositivo de arranque USB flash, pero es útil a corto plazo para recopilar registros después de un bloqueo. + +Después del próximo reinicio, navega a ***Herramientas > Diagnósticos*** y descarga tus diagnósticos anonimizados (a partir de 6.12.5, los diagnósticos incluyen automáticamente registros que se reflejaron en el dispositivo flash). + +Finalmente, inicia un nuevo tema bajo [Soporte General](https://forums.unraid.net/forum/55-general-support/) y proporciona todos los detalles del problema. Una vez resuelto el problema, asegúrate de deshabilitar **Reflejar syslog en el flash**. + +### Deshacer cambios + +Si vuelve a una versión anterior a la 6.12.9, consulte también las [notas de la versión 6.12.9](6.12.9.md#rolling-back). + +## Cambios vs. [6.12.9](6.12.9.md) + +### Correcciones de errores y mejoras + +- Resolver problemas al montar acciones compartidas SMB remotas a través del complemento Dispositivos No Asignados. +- Resolver problemas con ciertos controladores Asmedia que no detectan todos los dispositivos conectados. +- nfs: (reversión) Montajes NFSv4 por defecto +- zfs: Detectar si slots de pools insuficientes están definidos para un pool importado con un dispositivo faltante. +- Corrija el problema de traducciones con SystemDrivers + +### Núcleo de Linux + +- versión 6.1.79 + +### Distro base + +- curl: versión: 8.7.1 (CVE-2024-2466 CVE-2024-2398 CVE-2024-2379 CVE-2024-2004) + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md new file mode 100644 index 0000000000..54ea2113d9 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md @@ -0,0 +1,73 @@ +# Versión 6.12.11 2024-07-16 + +## Notas de actualización + +Esta versión incluye algunas correcciones de errores agradables retrotraídas de nuestro trabajo en Unraid 7, junto con una corrección de seguridad para OpenSSH y actualizaciones del kernel de Linux y OpenZFS. + +### Problemas conocidos + +#### Plugins desactualizados + +Los plugins desactualizados pueden causar problemas; recomendamos que se mantengan actualizados. + +#### Bomba fork de Docker + +Un contenedor Docker roto o malicioso puede usar todos los ID de procesos disponibles en el sistema, lo que llevará a la inestabilidad. Estamos probando una solución en Unraid 7 y la retroportaremos en una futura versión (Nota: esta corrección está en [6.12.12](6.12.12.md)). Si sospechas que estás afectado por esto, una solución temporal es limitar el número de PIDs que un contenedor puede usar añadiendo `--pids-limit 2048` en la configuración de *Parámetros Extra* del Docker. + +#### Trazas de llamadas y bloqueos relacionados con macvlan + +Si estás obteniendo trazas de llamadas relacionadas con macvlan (o realmente cualquier bloqueo inexplicable), como primer paso recomendamos navegar a ***Configuración > Docker***, cambiar a la vista **avanzada** y cambiar el **tipo de red personalizada de Docker** de **macvlan** a **ipvlan**. Esta es la configuración por defecto que Unraid ha enviado desde la versión 6.11.5 y debería funcionar para la mayoría de los sistemas. + +Tenga en cuenta que algunos usuarios han informado problemas con el reenvío de puertos desde ciertos routers (Fritzbox) y una funcionalidad reducida con herramientas de gestión avanzada de redes (Ubiquity) cuando están en modo ipvlan. Si esto le afecta, consulte la solución alternativa disponible desde Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces). + +#### Problemas de red debido a tramas jumbo + +Si estás teniendo problemas de red de cualquier tipo, confirma que no has habilitado frames jumbo. Navega a ***Configuración > Configuración de Red > eth0*** y confirma que el **MTU Deseado** es 1500. Para más información consulta la [advertencia de Problemas Comunes para frames jumbo](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Problemas debido a tarjetas de red Realtek + +La actualización del kernel soluciona el problema de deadlock con frames jumbo y el controlador Realtek 8125 incluido. Sin embargo, seguimos recomendando seguir el consejo anterior con respecto a frames jumbo. + +Si continúas teniendo problemas de estabilidad de red y ***Herramientas > Dispositivos del Sistema*** muestra que tienes un controlador ethernet Realtek, obtén el número de parte mostrado y busca Apps de la Comunidad para ver si hay un plugin de driver proporcionado por el proveedor Realtek para ese dispositivo. Para más información, consulta la [página de soporte para plugins de drivers Realtek](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### ¿Otros problemas? + +Recomendamos encarecidamente la instalación del plugin **Arreglar Problemas Comunes** ya que te advertirá sobre problemas comunes de configuración. + +Si tienes otros bloqueos o problemas de estabilidad, navega a ***Configuración > Servidor Syslog*** y habilita **Reflejar syslog en el flash**. Esto causará desgaste adicional en tu dispositivo de arranque USB flash, pero es útil a corto plazo para recopilar registros después de un bloqueo. + +Después del próximo reinicio, navega a ***Herramientas > Diagnósticos*** y descarga tus diagnósticos anonimizados (a partir de 6.12.5, los diagnósticos incluyen automáticamente registros que se reflejaron en el dispositivo flash). + +Finalmente, inicia un nuevo tema bajo [Soporte General](https://forums.unraid.net/forum/55-general-support/) y proporciona todos los detalles del problema. Una vez resuelto el problema, asegúrate de deshabilitar **Reflejar syslog en el flash**. + +### Deshacer cambios + +Si te reversas antes de la 6.12.10, también consulta las [notas de la versión 6.12.10](6.12.10.md#reversión). + +## Cambios frente a [6.12.10](6.12.10.md) + +### Correcciones de errores y mejoras + +- Corrección de error 500 al iniciar sesión +- Panel de Control + - Corregir gestión de bloques que muestra un diálogo en blanco + - Limpiar cookies de visibilidad dejadas en estado malformado +- VMs + - Solucionar cambio de valor de puente que no actualiza VM con más de una NIC y la VM falla en arrancar + - Corregir eliminación de GPU y adición de virtual que resulta en sin salida +- Hacer la poda consistente entre "poda ahora" y trabajo cron + +### Núcleo de Linux + +- versión 6.1.99 +- zfs: versión 2.1.15 + +### Distro base + +- openssh: versión 9.8p1 (CVE-2024-6387) + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md new file mode 100644 index 0000000000..468d1b6432 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md @@ -0,0 +1,80 @@ +# Versión 6.12.12 2024-08-20 + +## Notas de actualización + +Unraid 6.12 continúa beneficiándose del trabajo realizado en Unraid 7, esta versión incluye varias correcciones de errores portadas desde Unraid 7, así como una corrección de seguridad para curl. + +### Problemas conocidos + +#### Plugins desactualizados + +Los plugins desactualizados pueden causar problemas; recomendamos que se mantengan actualizados. + +#### Trazas de llamadas y bloqueos relacionados con macvlan + +Si estás obteniendo trazas de llamadas relacionadas con macvlan (o realmente cualquier bloqueo inexplicable), como primer paso recomendamos navegar a ***Configuración > Docker***, cambiar a la vista **avanzada** y cambiar el **tipo de red personalizada de Docker** de **macvlan** a **ipvlan**. Esta es la configuración por defecto que Unraid ha enviado desde la versión 6.11.5 y debería funcionar para la mayoría de los sistemas. + +Tenga en cuenta que algunos usuarios han informado problemas con el reenvío de puertos desde ciertos routers (Fritzbox) y una funcionalidad reducida con herramientas de gestión avanzada de redes (Ubiquity) cuando están en modo ipvlan. Si esto le afecta, consulte la solución alternativa disponible desde Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces). + +#### Problemas de red debido a tramas jumbo + +Si estás teniendo problemas de red de cualquier tipo, confirma que no has habilitado frames jumbo. Navega a ***Configuración > Configuración de Red > eth0*** y confirma que el **MTU Deseado** es 1500. Para más información consulta la [advertencia de Problemas Comunes para frames jumbo](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Problemas debido a tarjetas de red Realtek + +La actualización del kernel soluciona el problema de deadlock con frames jumbo y el controlador Realtek 8125 incluido. Sin embargo, seguimos recomendando seguir el consejo anterior con respecto a frames jumbo. + +Si continúas teniendo problemas de estabilidad de red y ***Herramientas > Dispositivos del Sistema*** muestra que tienes un controlador ethernet Realtek, obtén el número de parte mostrado y busca Apps de la Comunidad para ver si hay un plugin de driver proporcionado por el proveedor Realtek para ese dispositivo. Para más información, consulta la [página de soporte para plugins de drivers Realtek](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### ¿Otros problemas? + +Recomendamos encarecidamente la instalación del plugin **Arreglar Problemas Comunes** ya que te advertirá sobre problemas comunes de configuración. + +Si tienes otros bloqueos o problemas de estabilidad, navega a ***Configuración > Servidor Syslog*** y habilita **Reflejar syslog en el flash**. Esto causará desgaste adicional en tu dispositivo de arranque USB flash, pero es útil a corto plazo para recopilar registros después de un bloqueo. + +Después del próximo reinicio, navega a ***Herramientas > Diagnósticos*** y descarga tus diagnósticos anonimizados (a partir de 6.12.5, los diagnósticos incluyen automáticamente registros que se reflejaron en el dispositivo flash). + +Finalmente, inicia un nuevo tema bajo [Soporte General](https://forums.unraid.net/forum/55-general-support/) y proporciona todos los detalles del problema. Una vez resuelto el problema, asegúrate de deshabilitar **Reflejar syslog en el flash**. + +### Deshacer cambios + +Si retrocede a una versión anterior a 6.12.11, consulte también las [notas de la versión 6.12.11](6.12.11.md#rolling-back). + +## Cambios contra [6.12.11](6.12.11.md) + +### Correcciones de errores y mejoras + +- Protección contra bombas de bifurcación de Docker añadiendo un *límite de PID de Docker* por defecto en ***Configuraciones de Docker*** +- shfs: solución a la regresión del "nivel de división 0" (Manual split level) +- Eliminar la entrada de archivo de hosts codificada para keys.lime-technology.com +- Utilizar "enlaces dirigidos" al enlazar con Documentos +- Solucionar problema en la página de configuración de UPS cuando la configuración contiene valores vacíos +- update.php: liberar el puntero del archivo después de su uso +- Diagnósticos: anonimizar direcciones IPv6 +- Corrección: Después de detener y luego reiniciar el array, nfsd no está funcionando +- Corrección: Al eliminar un recurso compartido no se elimina de SMB y NFS +- Corrección: Guardar rutas solo funciona en inglés +- Mejoras de inicio en el script rc.S: + - Reparación automática del respaldo del sector de arranque + - Desmontar explícitamente todos los sistemas de archivos si no se puede continuar el arranque +- Ordenar usuarios en orden natural en la página de compartidos +- webgui: reemplazar los usos de document.write() +- Se corrigió un error tipográfico en el texto de ayuda +- Eliminar el script obsoleto /etc/apcupsd/doshutdown +- UserEdit: además de Ed25519, FIDO/U2F Ed25519, y RSA, soporte para tipos de clave SSH DSA, ECDSA, y FIDO/U2F ECDSA +- Corrección: PHPSettings.page: corregir inconsistencias en los valores predeterminados de reporte de errores de PHP +- Panel: Suavizar mensajes durante sincronización/verificación de paridad + +### Núcleo de Linux + +- versión 6.1.103 + +### Distro base + +- curl: version 8.9.1 (CVE-2024-7264) + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md new file mode 100644 index 0000000000..2614f70bed --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md @@ -0,0 +1,37 @@ +# Versión 6.12.13 2024-08-22 + +## Notas de actualización + +Este es un lanzamiento rápido que actualiza el núcleo de Linux para corregir +un [regresión](https://lore.kernel.org/lkml/45cdf1c2-9056-4ac2-8e4d-4f07996a9267@kernel.org/T/) donde algunos dispositivos HDD no podían +ser apagados. + +Para más detalles sobre los cambios recientes, consulte las [notas de la versión 6.12.12](6.12.12.md). + +### Problemas conocidos + +#### Las VMs de Windows deben utilizar el controlador VirtIO-net + +Debido a una regresión del kernel, hay una degradación significativa del rendimiento para cualquier transferencia saliente desde una máquina virtual de Windows usando el controlador de red VirtIO. La solución alternativa es cambiar al controlador VirtIO-net. (Nota: esto se resolvió en [6.12.14](6.12.14.md)). + +Para otros problemas conocidos, vea las [notas de la versión 6.12.12](6.12.12.md#known-issues). + +### Deshacer cambios + +Si revierte antes de la 6.12.12, consulte también las [notas de la versión 6.12.12](6.12.12.md#rolling-back). + +## Cambios vs. [6.12.12](6.12.12.md) + +### Correcciones de errores y mejoras + +- Núcleo actualizado para resolver problemas al apagar unidades de disco duro + +### Núcleo de Linux + +- versión 6.1.106 + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md new file mode 100644 index 0000000000..dfb1419a97 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md @@ -0,0 +1,67 @@ +# Versión 6.12.14 2024-11-26 + +## Notas de actualización + +Esta versión incluye correcciones importantes de errores y actualizaciones de seguridad. + +***SE ENCARECIDAMENTE ANIMA A TODOS LOS USUARIOS A ACTUALIZAR*** + +### Problemas conocidos + +#### Los nuevos cambios en Windows pueden resultar en la pérdida de acceso a acciones públicas + +Debido a los recientes cambios de seguridad en Windows 11 24H2, el acceso "invitado" a las comparticiones públicas de Unraid puede no funcionar. La forma más sencilla de solucionar esto es crear un usuario en Unraid con el mismo nombre que la cuenta de Windows que estás usando para conectarte. Si la contraseña de usuario de Unraid no es la misma que la contraseña de la cuenta de Windows, Windows solicitará credenciales. + +Si está usando una cuenta de Microsoft, puede ser mejor crear un usuario en Unraid con un nombre de usuario simple, establecer una contraseña, luego en Windows ir a ***Panel de Control → Administrador de Credenciales → Credenciales de Windows → Agregar una Credencial de Windows*** y añadir el nombre del servidor Unraid y credenciales correctos. + +Alternativamente puede [re-habilitar el retroceso de invitado de Windows](https://techcommunity.microsoft.com/blog/filecab/accessing-a-third-party-nas-with-smb-in-windows-11-24h2-may-fail/4154300) (no recomendado). + +#### Problemas debido a tarjetas de red Realtek + +Ha habido múltiples informes de problemas con el complemento del controlador Realtek tras actualizar a versiones recientes del núcleo. Tal vez desees desinstalarlo preventivamente antes de actualizar o eliminarlo después si tienes problemas de red. + +Para otros problemas conocidos, vea las [notas de la versión 6.12.12](6.12.12.md#known-issues). + +### Deshacer cambios + +Si revierte a una versión anterior a 6.12.13, también consulte las [notas de la versión 6.12.13](6.12.13.md#rolling-back). + +## Cambios vs. [6.12.13](6.12.13.md) + +### Correcciones de errores y mejoras + +- emhttpd: Arreglar operación de deshabilitar intercambio no eliminando correctamente el espacio restante en el objetivo +- ShareList: mostrar un indicador cuando el grupo principal de compartición es inválido, por ejemplo, ha sido renombrado o eliminado. +- ShareEdit: advertir al usuario que renombrar un grupo podría afectar las comparticiones que usan dicho grupo. +- DiskSettings: clarificar que "sistema de archivos predeterminado" se aplica a discos de arreglo unRAID. +- Eliminar ps.txt de diagnósticos para no exponer credenciales de VPN de contenedor. +- Agregar texto de ayuda sobre acceso a compartición pública desde Windows 11 24H2. +- Actualizar formulario de comentarios y requerir dirección de correo electrónico +- Arreglado enlace al manual de apcupsd en la página ***Configuraciones → Configuraciones UPS*** +- Arreglado enlace a la página de manual de btrfs en el texto de ayuda +- rc.docker - Asegurar que las interfaces personalizadas con un índice mayor que 0 sean correctamente reconstruidas +- rc.rsyslogd: utilizar pgrep, killall con espacio de nombres de PID. +- webGUI: mejor manejo de parámetros de consulta http +- kernel: resueltos problemas de degradación de rendimiento relacionados con máquinas virtuales de Windows y el controlador de red VirtIO que fueron introducidos en [6.12.13](6.12.13.md) + +### Núcleo de Linux + +- versión 6.1.118 + +### Distro base + +- firefox: versión 132.0.r20241110231641 (AppImage) (CVE-2024-11691 - 11699) +- intel-microcode: versión 20241112 +- libssh: versión 0.10.6 +- libssh2: versión 1.11.1 (CVE-2023-48795) +- openssl: versión 1.1.1zb (CVE-2024-9143) +- php: versión 8.2.26 [Múltiples CVE](https://www.php.net/ChangeLog-8.php#8.2.26) +- samba: versión 4.19.9 (CVE-2018-14628) +- wget: versión 1.25.0 (CVE-2024-10524) + +## Parches + +No hay parches disponibles actualmente para este lanzamiento, pero recomendamos instalar el +[complemento de parches de Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) para recibir cualquier parche cuando esté disponible. + +Note que hay actualizaciones de seguridad adicionales disponibles en versiones más recientes, vea [este artículo de blog](https://unraid.net/blog/cvd) para detalles. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md new file mode 100644 index 0000000000..1915ccf195 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md @@ -0,0 +1,60 @@ +# Versión 6.12.15 2025-01-21 + +## Notas de actualización + +Esta versión incluye correcciones importantes de errores y actualizaciones de seguridad. + +***SE ENCARECIDAMENTE ANIMA A TODOS LOS USUARIOS A ACTUALIZAR*** + +### Problemas conocidos + +#### Los nuevos cambios en Windows pueden resultar en la pérdida de acceso a acciones públicas + +Debido a los recientes cambios de seguridad en Windows 11 24H2, el acceso "invitado" a las comparticiones públicas de Unraid puede no funcionar. La forma más sencilla de solucionar esto es crear un usuario en Unraid con el mismo nombre que la cuenta de Windows que estás usando para conectarte. Si la contraseña de usuario de Unraid no es la misma que la contraseña de la cuenta de Windows, Windows solicitará credenciales. + +Si está usando una cuenta de Microsoft, puede ser mejor crear un usuario en Unraid con un nombre de usuario simple, establecer una contraseña, luego en Windows ir a ***Panel de Control → Administrador de Credenciales → Credenciales de Windows → Agregar una Credencial de Windows*** y añadir el nombre del servidor Unraid y credenciales correctos. + +Alternativamente puede [re-habilitar el retroceso de invitado de Windows](https://techcommunity.microsoft.com/blog/filecab/accessing-a-third-party-nas-with-smb-in-windows-11-24h2-may-fail/4154300) (no recomendado). + +#### Problemas debido a tarjetas de red Realtek + +Ha habido múltiples informes de problemas con el complemento del controlador Realtek tras actualizar a versiones recientes del núcleo. Tal vez desees desinstalarlo preventivamente antes de actualizar o eliminarlo después si tienes problemas de red. + +Para otros problemas conocidos, vea las [notas de la versión 6.12.12](6.12.12.md#known-issues). + +### Deshacer cambios + +Si restaura antes de la 6.12.14, también vea las [notas de la versión 6.12.14](6.12.14.md#rolling-back). + +## Cambios vs. [6.12.14](6.12.14.md) + +### Correcciones de errores y mejoras + +- webgui: Corrección de una fuga de memoria en las páginas del Panel de control, VM Manager y Docker Manager. +- webgui: Corrección de error: la funcionalidad de registro de consola de JavaScript ha sido restaurada. +- webgui: Al hacer clic en el número de versión de Unraid, se cargan las notas de la versión desde el sitio web de Unraid Docs. +- webgui: Cambiar la URL de instalación de CA a un nuevo repositorio. +- corrección: Establecer MTU del puente Docker Wireguard para coincidir con el MTU predeterminado de Wireguard. +- corrección: Manejo correcto de Trial.key vacío cuando falla la descarga. +- corrección: Las notificaciones del agente no funcionan si hay un problema con las notificaciones por correo electrónico. +- corrección: nfsd no se reinicia correctamente. +- corrección: El diálogo para borrar el grupo no muestra el nombre del grupo. +- Crear un archivo /etc/os-release significativo. +- make\_bootable\_linux: versión 1.4 + - detectar si mtools está instalado. + +### Núcleo de Linux + +- versión 6.1.126 +- md/unraid: corregir el manejo de fallos del dispositivo durante la reconstrucción/sincronización. + +### Distro base + +- git: versión 2.46.3 (CVE-2024-50349 CVE-2024-52006) +- php: versión 8.2.27 +- rsync: versión 3.4.1 (CVE-2024-12084 CVE-2024-12085 CVE-2024-12086 CVE-2024-12087 CVE-2024-12088 CVE-2024-12747) + +## Parches + +No hay parches disponibles actualmente para este lanzamiento, pero recomendamos instalar el +[complemento de parches de Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) para recibir cualquier parche cuando esté disponible. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md new file mode 100644 index 0000000000..859aa70916 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md @@ -0,0 +1,70 @@ +# Versión 6.12.2 2023-06-29 + +Cambios vs. [6.12.1](6.12.1.md) + +## Notas de actualización + +### Problemas conocidos + +Por favor, consulte las [notas de la versión 6.12.0](6.12.0.md#known-issues) para conocer los problemas generales. + +### Deshacer cambios + +Si retrocede antes de la 6.12.0, también consulte las [notas de la versión 6.12.0](6.12.0.md#rolling-back). + +## Puntos destacados + +Esto es principalmente una versión de corrección de errores, incluyendo también una actualización menor de seguridad. Otros aspectos destacados: + +- Revertimos **docker** de v23.0.6, introducido durante el desarrollo de Unraid OS 6.12, a v20.10.24, que es la última + actualización de **docker** utilizada en Unraid OS 6.11. Esto para abordar el aumento en el uso de memoria y + otros problemas descubiertos con **docker**. +- Un pequeño cambio necesario para invocar nuestro script 'update\_services' cada vez que un túnel de WireGuard + comienza o se detiene se aplica automáticamente a todos los archivos 'config/wireguard/\*.conf' cuando + actualice a través de la página de Actualización del OS. Para la actualización manual o si retrocede a una + versión anterior, es necesario realizar un "cambio ficticio" en una configuración en la página Configuración/Gestor de VPN + y luego hacer clic en Aplicar. + +## Correcciones de errores y mejoras + +- notificaciones por correo electrónico: agregue la línea en /etc/php.ini: 'mail.mixed\_lf\_and\_crlf=On' para solucionar el cambio + en el manejo CRLF de PHP8. +- emhttpd: Corregir regresión: volúmenes ZFS emulados no reconocidos +- emhttpd: Corregir regresión: falla el formato si diskFsType==auto y defaultFsType especifica cifrado +- emhtptd: Corregir regresión: falla el montaje si diskFsType==auto +- htop: eliminar archivo predefinido /root/.config/htop/htoprc +- red: actualización de servicios RC: + - NFS - corregir recarga de servicio + - RPC - corregir recarga de servicio + - NGINX - eliminar puerto HTTPS en redirección FQDN cuando es por defecto 443 + - Todos los servicios - registrar asignación de enlace local IPv4 (169.254.xxx.xxx) + - Todos los servicios - hacer archivo de bloqueo programable + - WireGuard: actualización de servicio retrasada para evitar condiciones de carrera + - rc.library: no permitir duplicados en lista de enlaces +- WebGUI: Actualizaciones del tablero: + - Reintroducir mostrar/ocultar contenido del azulejo + - Agregar nueva función de icono para mostrar/ocultar todo el contenido a la vez + - Reducir espacio entre columnas + - descripción -> modelo + - ZFS: corregir valor de porcentaje a un máximo de 100% + - Usar función de prototipo: Esto facilita a los desarrolladores de terceros ocultar automáticamente contenido dinámico + - Manejar asignaciones de IP duplicadas y dar advertencia + - cambiar encabezado MEMORIA a SISTEMA +- WebGUI: Actualización de SO: agregar casilla de verificación para confirmar la lectura de las notas de la versión antes de actualizar +- WebGUI: diagnósticos: incluir lista de asignaciones duplicadas +- WebGUI: NFS: para Seguridad/Privado aumentar el campo de reglas de 256 a 512 caracteres. + +## Núcleo de Linux + +- versión 6.1.36 + +## Distro Base + +- bind: versión -9.16.42 (CVE-2023-2911) +- docker: 20.10.24 (reversión de v23.0.6) + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md new file mode 100644 index 0000000000..ae3e5d350d --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md @@ -0,0 +1,61 @@ +# Versión 6.12.3 2023-07-14 + +Cambios vs. [6.12.2](6.12.2.md) + +## Notas de actualización + +### Problemas conocidos + +Por favor, consulte las [notas de la versión 6.12.0](6.12.0.md#known-issues) para conocer los problemas generales. + +### Deshacer cambios + +Si retrocede antes de la 6.12.0, también consulte las [notas de la versión 6.12.0](6.12.0.md#rolling-back). + +## Red + +Esta versión contiene correcciones para la red, particularmente en lo que se refiere a IPv6. Un efecto secundario es que esto debería resolver +un problema donde la WebGUI no se carga en ciertas instancias. + +Nota: Si tienes código en tu script 'go' para desactivar IPv6, elimínalo y desactívalo a través de la página 'Configuraciones / Configuraciones de Red' en su lugar. Desactivar manualmente IPv6 causará conflictos. + +## Docker + +Esta versión resuelve un problema donde Docker no se detiene adecuadamente cuando la matriz se detiene, lo que puede resultar en un apagado no limpio. + +Si los contenedores Docker tienen problemas al iniciar después de un tiempo, y está ejecutando Plex, vaya a la configuración de su contenedor Docker de Plex, +cambie a la vista avanzada y agregue esto a los Parámetros adicionales: `--no-healthcheck` + +## Correcciones de errores y mejoras + +- rc.docker: + - revisión del control de ejecución de demonio de docker + - rc.docker: cambiar la métrica de ruta de la interfaz principal según sea necesario para evitar conflictos con la interfaz shim +- rc.library: + - optimizaciones de código para ipv6 máx/mín + - soporte para direcciones mapeadas ipv4 +- rc.nginx: selección explícita de ipv4/ipv6 en la interfaz lo +- shfs: corrección en el cálculo del tamaño del compartido cuando ZFS es uno de los volúmenes +- WebGUI: + - Página de configuraciones de VM: corrección de error tipográfico + - Página de edición de compartidos: hacer que las configuraciones de espacio libre mínimo estén siempre disponibles + - Wireguard: corregir error tipográfico en la máscara de Ipv6 + - Tabla de enrutamiento: corregir visualización del valor de la métrica cuando es cero + +## Núcleo de Linux + +- versión 6.1.38 +- Añadido soporte para monitorear y también limitar el poder en modelos de CPU Intel Core (2ª Gen+): + - CONFIG\_POWERCAP: Controlador genérico de powercap sysfs + - CONFIG\_INTEL\_RAPL: Soporte Intel RAPL vía Interfaz MSR + - CONFIG\_IDLE\_INJECT: Marco de inyección de inactividad + +## Distro Base + +- firefox: versión 115.0.r20230710165010 (AppImage) + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md new file mode 100644 index 0000000000..588cec14d5 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md @@ -0,0 +1,147 @@ +# Versión 6.12.4 2023-08-31 + +## Notas de actualización + +### Problemas conocidos + +Por favor, consulte las [notas de la versión 6.12.0](6.12.0.md#known-issues) para conocer los problemas generales. + +### Deshacer cambios + +Antes de revertir a una versión anterior, es importante asegurarse de que el Puenteo esté habilitado: + +- ***Configuración > Configuración de Red > eth0 > Habilitar Puenteo*** = Sí + +Luego, inicie el array (junto con los servicios de Docker y VM) para actualizar sus contenedores Docker, VMs y túneles WireGuard a sus configuraciones anteriores que deberían funcionar en versiones anteriores. + +Una vez en la versión anterior, confirme que estas configuraciones sean correctas para su configuración: + +- ***Configuración > Docker > Acceso del host a redes personalizadas*** +- ***Configuración > Docker > Tipo de red personalizada de Docker*** + +Si retrocede antes de la 6.12.0, también consulte las [notas de la versión 6.12.0](6.12.0.md#rolling-back). + +## Corrección para rastros de llamadas de macvlan + +La gran noticia en esta versión es que hemos resuelto problemas relacionados con los rastros de llamadas de macvlan y comportamientos extraños. + +La raíz del problema es que macvlan usado para redes personalizadas de Docker es poco confiable cuando la interfaz principal es un puente (como br0), funciona mejor en una interfaz física (como eth0) o un enlace (como bond0). Creemos que esto es un problema antiguo del kernel y hemos publicado un [informe de error](https://bugzilla.kernel.org/show_bug.cgi?id=217777). + +Si está recibiendo trazas de llamada relacionadas con macvlan, como primer paso recomendamos navegar a ***Configuraciones > Docker***, cambiar a vista avanzada, y cambiar el "Tipo de red personalizada de Docker" de macvlan a ipvlan. Esta es la configuración predeterminada que Unraid ha enviado desde la versión 6.11.5 y debería funcionar para la mayoría de los sistemas. Si está satisfecho con esta configuración, ¡ya ha terminado! No tendrá más trazas de llamada relacionadas con macvlan y puede continuar a [la siguiente sección](#system-drivers-page). + +Sin embargo, algunos usuarios han informado problemas con el reenvío de puertos desde ciertos enrutadores (Fritzbox) y funcionalidad reducida con herramientas de gestión avanzada de red (Ubiquity) cuando están en modo ipvlan. + +Para esos usuarios, tenemos un nuevo método que rehace la red para evitar problemas con macvlan. Ajuste algunas configuraciones y sus contenedores de Docker, máquinas virtuales y túneles de WireGuard deberían ajustarse automáticamente para usarlos: + +- ***Configuración > Configuración de Red > eth0 > Habilitar Enlace*** = Sí o No, cualquiera funciona con esta solución +- ***Configuración > Configuración de Red > eth0 > Habilitar Puenteo*** = No (esto habilitará automáticamente macvlan) +- ***Configuración > Docker > Acceso del host a redes personalizadas*** = Habilitado + +Nota: si anteriormente usó el [método de segmentación de Docker de 2 NIC](https://forums.unraid.net/topic/137048-guide-how-to-solve-macvlan-and-ipvlan-issues-with-containers-on-a-custom-network/), también querrá revertir eso: + +- ***Configuración > Docker > red personalizada en la interfaz eth0 o bond0*** (es decir, asegúrese de que eth0/bond0 esté configurado para la red personalizada, no eth1/bond1) + +Cuando inicia el array, el host, los VMs y los contenedores Docker podrán comunicarse, ¡y no deberían haber más rastros de llamada! + +### Solución de problemas + +- Si sus contenedores Docker con IPs personalizadas no se están iniciando, edítelos y cambie el "Tipo de red" a "Personalizado: eth0" o "Personalizado: bond0". Intentamos hacerlo automáticamente, pero dependiendo de cómo se personalizaron, es posible que deba hacerlo manualmente. +- Si sus máquinas virtuales están teniendo problemas de red, edítelas y establezca la fuente de red en "vhost0". También asegúrese de que haya una dirección MAC asignada. +- Si sus túneles WireGuard no se inician, realice un cambio ficticio en cada túnel y guarde. +- Si tiene problemas de reenvío de puertos hacia contenedores Docker (particularmente con un router Fritzbox), elimine y recree el reenvío de puertos en su router. + +### Para ser un poco más técnico... + +Después de actualizar a esta versión, si el puente sigue habilitado en eth0, entonces todo funciona como antes. Puede intentar evadir las trazas de llamada deshabilitando la red personalizada de Docker, o usando ipvlan en lugar de macvlan, o usando el método de segmentación Docker de 2 NICs con contenedores en eth1. + +Comenzando con esta versión, cuando desactiva el puente en eth0 creamos una nueva red macvtap para que la usen los contenedores de Docker y las máquinas virtuales. Tiene como principal a eth0 en lugar de br0, lo cual nos ayuda a evitar las trazas de llamada. + +Un beneficio colateral es que se informa que las redes macvtap son más rápidas que las redes en puente, por lo que podría ver mejoras en la velocidad al comunicarse con los contenedores Docker y VMs. + +Para su información: Con el puente deshabilitado para la interfaz principal (eth0), entonces el tipo de red personalizada de Docker se establecerá en macvlan y se ocultará a menos que haya otras interfaces en su sistema que tengan el puente habilitado, en cuyo caso la opción ipvlan heredada está disponible. Para usar la nueva corrección discutida aquí, querrá mantenerlo configurado en macvlan. + +## Página de controladores del sistema + +Navegue a ***Herramientas > Controladores del sistema*** para ver los controladores disponibles/en uso en su sistema. Los controladores de terceros instalados por plugins (como NVIDIA y Realtek) tienen un icono que enlaza a la página de soporte para ese controlador. Ahora también puede agregar/modificar/eliminar el archivo de configuración modeprobe.d para cualquier controlador sin tener que buscar ese archivo en su unidad flash. + +## Otras correcciones de errores y mejoras + +- Esta versión resuelve casos especiales en redes, Libvirt, Docker, WireGuard, NTP, NGINX, NFS y RPC. E incluye una mejora en el Gestor de VM para que retenga la contraseña VNC durante una actualización. + +- El proceso de apagado fue modificado para permitir que el complemento NUT apague correctamente el sistema. + +- El tiempo de exhibición de la notificación antes de cerrarse automáticamente es ahora configurable (vea ***Configuración > Configuración de notificaciones***). + +- Un pequeño cambio es que los paquetes en /boot/extra ahora se tratan más como paquetes instalados por plugins, y la instalación se registra en syslog en lugar de en la consola. + +- El proceso de actualización del SO actualizará automáticamente el script Plugin-Update-Helper si es necesario. + +## Cambios vs. [6.12.3](6.12.3.md) + +### Distro base + +- create\_network\_ini: + - corrigió el gancho dhcp + - mejoró la recolección de direcciones IP +- diagnósticos: + - Agregue la versión anterior de Unraid al archivo txt de la versión de diagnósticos. + - Agregue ntp.conf, sshd.config y servers.conf (con URLs anonimizadas) + - anonimizar direcciones IP +- docker: + - agregue enrutamiento cuando se use una red shim o macvtap + - corrija el enrutamiento cuando "acceso del anfitrión" esté habilitado + - elimine IPv6 de la interfaz shim/vhost (algunos enrutadores no son compatibles) +- libvirt, nginx, nfs, rpc: cambió la detección de procesos en ejecución +- nfsclient: iniciar negociación con v4, desactivar modificación de atime +- rc.6: deje montados /usr y /lib durante el apagado +- rc.docker: + - cree la misma red IPv6 para contenedores y servicios + - agregue más registros al detener dockerd +- rc.inet1: + - no use el modo promiscuo para el puenteo + - agregue opción persistente a dhcpcd +- rc.library: las interfaces siempre listadas en el mismo orden, arregle mostrar ipv6 +- rc.libvirt: elimine el "itco" watchdog del XML si está presente +- rc.local: anote el archivo /etc/modprobe.d/zfs.conf autogenerado +- rc.services: + - agregue registro + - excluyendo túneles WireGuard "acceso VPN para docker" de los servicios + - excluir túneles WireGuard para ntp (optimización de código) + +#### Actualizaciones de paquetes + +- btrfs-progs: 6.3.3 +- curl: versión 8.2.0 (CVE-2023-32001) +- firefox: versión 117.0.r20230824132758 (AppImage) +- kernel-firmware: versión 20230724\_59fbffa +- krb5: versión 1.19.2 (CVE-2023-36054) +- openssh: versión 9.3p2 (CVE-2023-38408) +- openssl: versión 1.1.1v (CVE-2023-3817 CVE-2023-3446) +- samba: versión 4.17.10 (CVE-2023-3496 CVE-2022-2127 CVE-2023-34968 CVE-2023-3496 CVE-2023-3347) + +### Núcleo de Linux + +- versión 6.1.49 (CVE-2023-20593) +- CONFIG\_SCSI\_MPI3MR: Controlador de dispositivo de almacenamiento Broadcom MPI3 + +### WebGUI + +- Panel: ocultar barra ZFS cuando no se usa ZFS +- Configuración de Docker: corregir tamaños de subred +- Comentarios: rehacer script de comentarios +- Configuración de Red: corrección DNS a veces desaparecen +- Notificaciones: nueva opción de notificación: tiempo de cierre automático, por defecto es 5 segundos +- Pools: espacio libre mínimo: solo habilitado cuando el array está detenido +- Shares y Pools: mostrar "Espacio libre mínimo" como número absoluto en lugar de porcentaje +- Controladores del sistema: página nueva +- Traducciones: recortar clave y valor en archivos de idioma +- Administrador de VMs: Mantener la contraseña VNC durante la actualización. +- Administrador de VMs: Eliminar archivos previamente descargados '.vv'. +- CSS: establecer overflow-x en 'auto' +- actualizar monitor\_nchan + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md new file mode 100644 index 0000000000..f377aa1c3c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md @@ -0,0 +1,64 @@ +# Versión 6.12.5 2023-11-27 + +## Notas de actualización + +Esta versión incluye correcciones de errores y actualizaciones de seguridad. Se recomienda a todos los usuarios que actualicen. + +### Problemas conocidos + +Se incluye una mitigación para un problema de [Corrupción de Datos ZFS](https://github.com/openzfs/zfs/issues/15526). Esto se logra +incluyendo esta opción en el archivo por defecto `/etc/modprobe.d/zfs.conf`: + +`zfs_dmu_offset_next_sync=0` + +Por favor, consulte las [notas de la versión 6.12.0](6.12.0.md#known-issues) para conocer los problemas generales. + +### Deshacer cambios + +Si estás regresando a una versión anterior a la 6.12.4, también consulta las [notas de la versión 6.12.4](6.12.4.md#rolling-back). + +## Cambios versus [6.12.4](6.12.4.md) + +### Correcciones de errores y mejoras + +- Reemplazar el 'MemTest86+' antiguo por Memtest86+ versión: 6.20 + - También hay [Opciones de Arranque](https://github.com/memtest86plus/memtest86plus#boot-options) disponibles. +- Cuando está habilitado 'espejo syslog en flash', ver syslog-previous en Herramientas -> Syslog, y en diagnósticos +- Docker: + - Los contenedores Docker no siempre se detenían, impidiendo que Docker se desmontara + - Los contenedores Docker que utilizaban IPv6 en redes personalizadas no podían iniciarse +- emhttpd: si User Shares no está habilitado, update\_cron no se llamó durante la secuencia de Inicio de la matriz +- rc.nginx stop - forzar la detención de nginx +- shfs: El método de asignación no funcionaba correctamente si se especificaban 6 o más discos en la máscara de 'incluir' +- WebGUI: + - Downgrade.php no se actualizó para 6.12 + - mostrar siempre configuración ipvlan / macvlan +- ZFS: usar 'zfs import -f' para asegurar que las piscinas de otros sistemas sean importadas +- evitar la autodesconexión de dispositivos no formateados + +### Actualizaciones de paquetes + +- curl: versión 8.4.0 (CVE-2023-38546 CVE-2023-38545 CVE-2023-38039) +- firefox: versión 119.0.r20231106151204 (AppImage) +- intel-microcode: versión 20231114 +- kernel-firmware: 20231024\_4ee0175 +- qemu: versión 7.2.0 +- samba: versión 4.17.12 (CVE-2023-3961 CVE-2023-4091 CVE-2023-4154 CVE-2023-42669 CVE-2023-42670) +- smartmontools: versión 7.4 +- zfs: versión 2.1.13 + +### Núcleo de Linux + +- versión 6.1.63 +- CONFIG\_USB\_NET\_CDC\_NCM: soporte CDC NCM +- CONFIG\_NFS\_V4\_1: soporte de cliente NFS para NFSv4.1 +- CONFIG\_NFS\_V4\_1\_MIGRATION: soporte de cliente NFSv4.1 para migración +- CONFIG\_NFS\_V4\_2: soporte de cliente NFS para NFSv4.2 +- CONFIG\_NFS\_V4\_2\_READ\_PLUS: NFS: habilitar soporte para la operación READ\_PLUS de NFSv4.2 +- CONFIG\_NFSD\_V4\_2\_INTER\_SSC: Copia inter servidor a servidor de NFSv4.2 + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md new file mode 100644 index 0000000000..c12b45bd11 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md @@ -0,0 +1,65 @@ +# Versión 6.12.6 2023-12-01 + +## Notas de actualización + +Esta versión incluye correcciones de errores y un parche importante de OpenZFS. Se recomienda a todos los usuarios actualizar. + +### Problemas conocidos + +#### Plugins desactualizados + +Los plugins desactualizados pueden causar problemas; recomendamos que se mantengan actualizados. + +#### Trazas de llamadas y bloqueos relacionados con macvlan + +Si experimentas trazas de llamadas relacionadas con macvlan (o realmente cualquier bloqueo inexplicable), como primer paso te recomendamos ir a ***Configuración > Docker***, cambiar a vista **avanzada** y cambiar el **tipo de red personalizada de Docker** de **macvlan** a **ipvlan**. Esta es la configuración predeterminada con la que Unraid se ha enviado desde la versión 6.11.5 y debería funcionar para la mayoría de los sistemas. + +Tenga en cuenta que algunos usuarios han informado problemas con el reenvío de puertos desde ciertos routers (Fritzbox) y una funcionalidad reducida con herramientas avanzadas de gestión de redes (Ubiquity) cuando se encuentran en modo ipvlan. Si esto le afecta, vea la solución alternativa disponible desde Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces). + +#### Problemas de red debido a tramas jumbo + +Si tienes problemas de red de cualquier tipo, confirma que no hayas habilitado tramas jumbo. Dirígete a ***Configuración > Configuración de red > eth0*** y confirma que la **MTU deseada** sea 1500. Para más información, consulta la [advertencia de Fix Common Problems sobre tramas jumbo](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Problemas debido a tarjetas de red Realtek + +Los controladores Realtek incluidos en los últimos núcleos de Linux están causando problemas de red y estabilidad. Si tienes problemas y ***Herramientas > Dispositivos del sistema*** muestra que tienes un controlador ethernet Realtek, obtén el número de parte mostrado y busca en Community Apps para ver si hay un plugin de controlador Realtek para ese dispositivo. Para más información, consulta la [página de soporte para plugins de controladores Realtek](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### Adaptec 7 Series HBA no compatible + +Si tienes un HBA de la Serie 7 de Adaptec que usa el controlador aacraid, te recomendamos permanecer en la versión 6.12.4 por ahora, ya que hay una regresión en el controlador en los últimos núcleos. Para más información, consulta este [informe de error en el núcleo de Linux](https://bugzilla.kernel.org/show_bug.cgi?id=217599). + +#### ¿Otros problemas? + +Recomendamos encarecidamente la instalación del plugin **Arreglar Problemas Comunes** ya que te advertirá sobre problemas comunes de configuración. + +¿Tienes otros bloqueos o problemas de estabilidad? Dirígete a ***Configuración > Servidor de Syslog*** y habilita **Mirar syslog en flash**. Esto causará un desgaste adicional en la unidad flash, pero es útil a corto plazo para recopilar registros después de un bloqueo. Después del próximo reinicio, ve a ***Herramientas > Diagnósticos*** y descarga tus diagnósticos anonimizados (a partir de la versión 6.12.5, los diagnósticos incluyen automáticamente los registros que fueron espejados en la unidad flash). Luego inicia un nuevo tema en [Soporte General](https://forums.unraid.net/forum/55-general-support/) y proporciona todos los detalles del problema. Una vez que el problema esté resuelto, asegúrate de deshabilitar **Mirar syslog en flash**. + +### Deshacer cambios + +Si estás regresando a una versión anterior a la 6.12.4, también consulta las [notas de la versión 6.12.4](6.12.4.md#rolling-back). + +## Cambios vs. [6.12.5](6.12.5.md) + +### Correcciones de errores y mejoras + +- modprobe.d/zfs.conf: eliminar la mitigación `zfs_dmu_offset_next_sync=0` - ya no es necesaria +- red: Corrección en la asignación de direcciones estáticas IPv6 +- La solución para [los bloqueos relacionados con el controlador i915 en sistemas Rocket Lake](6.12.0.md#crashes-related-to-i915-driver) ya no es necesaria. + Después de actualizar, siéntete libre de abrir un terminal web y escribir esto, luego reiniciar: + + `rm /boot/config/modprobe.d/i915.conf` + +### Actualizaciones de paquetes + +- nvme-cli: versión 2.6 +- zfs: versión 2.1.14 + +### Núcleo de Linux + +- versión 6.1.64 + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md new file mode 100644 index 0000000000..3fd418321c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md @@ -0,0 +1,108 @@ +# Versión 6.12.8 2024-02-15 + +## Notas de actualización + +Esta versión tiene dos correcciones muy importantes. Primero, actualizamos Docker para incorporar correcciones para su +[reciente aviso de seguridad](https://www.docker.com/blog/docker-security-advisory-multiple-vulnerabilities-in-runc-buildkit-and-moby/). + +Segundo, solucionamos un error de caso límite que puede conducir a la pérdida de datos si una unidad de disco añadido recientemente tiene un diseño de partición no estándar. Si agrega una de estas unidades, la segunda vez que inicie el grupo la unidad aparecerá como no formateada. Si esto sucede, +póngase en contacto con soporte y podemos ayudarle con la recuperación de datos. Incluso si no ha encontrado este problema, recomendamos actualizar +para que no se vea afectado al agregar unidades en el futuro. + +Esta versión también incluye algunas buenas correcciones en la red, contenedores Docker, soporte de Time Machine y máquinas virtuales, así como una solución para una +desaceleración que algunos sistemas estaban experimentando en el panel de control. También hemos mejorado el manejo de atributos SMART para unidades NVME y SSD. +Detalles a continuación. + +### Problemas conocidos + +#### Plugins desactualizados + +Los plugins desactualizados pueden causar problemas; recomendamos que se mantengan actualizados. + +#### Trazas de llamadas y bloqueos relacionados con macvlan + +Si estás obteniendo trazas de llamadas relacionadas con macvlan (o realmente cualquier bloqueo inexplicable), como primer paso recomendamos navegar a ***Configuración > Docker***, cambiar a la vista **avanzada** y cambiar el **tipo de red personalizada de Docker** de **macvlan** a **ipvlan**. Esta es la configuración por defecto que Unraid ha enviado desde la versión 6.11.5 y debería funcionar para la mayoría de los sistemas. + +Tenga en cuenta que algunos usuarios han informado problemas con el reenvío de puertos desde ciertos routers (Fritzbox) y una funcionalidad reducida con herramientas de gestión avanzada de redes (Ubiquity) cuando están en modo ipvlan. Si esto le afecta, consulte la solución alternativa disponible desde Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces). + +#### Problemas de red debido a tramas jumbo + +Si estás teniendo problemas de red de cualquier tipo, confirma que no has habilitado frames jumbo. Navega a ***Configuración > Configuración de Red > eth0*** y confirma que el **MTU Deseado** es 1500. Para más información consulta la [advertencia de Problemas Comunes para frames jumbo](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Problemas debido a tarjetas de red Realtek + +La actualización del kernel soluciona el problema de deadlock con frames jumbo y el controlador Realtek 8125 incluido. Sin embargo, seguimos recomendando seguir el consejo anterior con respecto a frames jumbo. + +Si continúas teniendo problemas de estabilidad de red y ***Herramientas > Dispositivos del Sistema*** muestra que tienes un controlador ethernet Realtek, obtén el número de parte mostrado y busca Apps de la Comunidad para ver si hay un plugin de driver proporcionado por el proveedor Realtek para ese dispositivo. Para más información, consulta la [página de soporte para plugins de drivers Realtek](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### ¿Otros problemas? + +Recomendamos encarecidamente la instalación del plugin **Arreglar Problemas Comunes** ya que te advertirá sobre problemas comunes de configuración. + +Si tienes otros bloqueos o problemas de estabilidad, navega a ***Configuración > Servidor Syslog*** y habilita **Reflejar syslog en el flash**. Esto causará desgaste adicional en tu dispositivo de arranque USB flash, pero es útil a corto plazo para recopilar registros después de un bloqueo. + +Después del próximo reinicio, navega a ***Herramientas > Diagnósticos*** y descarga tus diagnósticos anonimizados (a partir de 6.12.5, los diagnósticos incluyen automáticamente registros que se reflejaron en el dispositivo flash). + +Finalmente, inicia un nuevo tema bajo [Soporte General](https://forums.unraid.net/forum/55-general-support/) y proporciona todos los detalles del problema. Una vez resuelto el problema, asegúrate de deshabilitar **Reflejar syslog en el flash**. + +### Deshacer cambios + +Tenga en cuenta que volver a una versión anterior hará que su sistema sea vulnerable a los problemas de seguridad de Docker y al posible escenario de pérdida de datos mencionado en [notas de actualización](#upgrade-notes). + +Si revierte a una versión anterior a la 6.12.6, consulte también las [notas de la versión 6.12.6](6.12.6.md#rolling-back). + +## Cambios vs. 6.12.7 + +Se corrigió un problema relacionado con la actualización desde versiones rc. + +## Cambios vs. [6.12.6](6.12.6.md) + +### Correcciones de errores y mejoras + +- Docker: + - Corregir las rutas de WG añadidas a la interfaz correcta (br0 o eth0 o bond0) + - Usar desmontaje "perezoso" del contenedor de Docker para evitar el bloqueo del apagado del array + - Actualizado para abordar múltiples problemas de seguridad (CVE-2024-21626, CVE-2024-24557) +- Mejoras en la red: + - Arrancar más rápido comprobando el portador antes de asignar direcciones DHCP + - Eliminar ceros a la izquierda de las direcciones IPv4 e IPv6 + - Nuevos comandos '/etc/rc.d/rc.inet1 status' y '/etc/rc.d/rc.inet1 status ip' para ayudar con la solución de problemas de red desde la línea de comandos +- Notificaciones: Agregar ntfy.sh a los agentes de notificación +- Mejoras en SMART: + - Corregir autoprueba NVME + - Corregir la visualización del atributo SMART 'Tiempo de encendido acumulado, horas:minutos xxxxx:yy' + - Mostrar KB/MB/GB/TB escritos en Atributos SMART para SSDs + - Agregar atributo SMART 'Resistencia restante del SSD' +- Registro del sistema: + - Por defecto, el syslog se copia a la memoria USB del arranque al apagarse, vea ***Configuración > Servidor Syslog*** para desactivar + - Los registros de lo anterior y **Mirar syslog a la memoria USB** ahora están disponibles en el próximo arranque en ***Herramientas > Syslog*** y en diagnósticos +- VM Manager: Corrección para la degradación: si la plantilla de VM se ha actualizado al último tipo de máquina QEMU, no se encontrará al realizar la degradación. Este cambio encuentra la versión actual más reciente para un tipo de máquina dado. +- ZFS: Usar la bandera "-f" durante la importación de zpool para permitir la importación de pools extranjeros +- Otro: + - Habilitar el arranque EFI por defecto para instalaciones nuevas + - Corregir la desaceleración en las páginas del Panel de Control y Docker (y reduce las escrituras en el dispositivo flash) + - Formateo: no inicializar el diseño de partición del dispositivo si ya es válido. + - Actualizar SO: rediseñadas las páginas de Actualizar SO y Degradar SO, consulte [entrada del blog](https://unraid.net/blog/new-update-os-tool) + - Corrección de MacOS no puede escribir en 'flash' y restaurar la compatibilidad de Time Machine (cambios de fruit) + - Permitir que las Aplicaciones de la Comunidad (si están instaladas) inicien automáticamente los contenedores durante una instalación múltiple + - Formulario de comentarios: cambiar botón HECHO a CANCELAR + +### Actualizaciones de paquetes + +- docker: versión 24.0.9 +- kernel-firmware: versión 20231226\_abfcad8 + +### Núcleo de Linux + +- versión 6.1.74 + - CONFIG\_USB\_SERIAL\_XR: Controlador USB a Serial de MaxLinear/Exar USB + - CONFIG\_CAN: Soporte de subsistema de bus CAN + - CONFIG\_CAN\_NETLINK: Controladores de dispositivos CAN con soporte Netlink + - CONFIG\_CAN\_GS\_USB: Interfaces compatibles con Geschwister Schneider UG y candleLight + - CONFIG\_SCSI\_LPFC: Soporte de Canal de Fibra Emulex LightPulse + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md new file mode 100644 index 0000000000..76de848039 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md @@ -0,0 +1,78 @@ +# Versión 6.12.9 2024-03-26 + +## Notas de actualización + +Esta es una versión de corrección de errores, resolviendo una buena colección de problemas reportados por la comunidad, detalles a continuación. +Recomendamos encarecidamente a todos los usuarios que actualicen a esta versión. + +### Problemas conocidos + +#### Plugins desactualizados + +Los plugins desactualizados pueden causar problemas; recomendamos que se mantengan actualizados. + +#### Trazas de llamadas y bloqueos relacionados con macvlan + +Si estás obteniendo trazas de llamadas relacionadas con macvlan (o realmente cualquier bloqueo inexplicable), como primer paso recomendamos navegar a ***Configuración > Docker***, cambiar a la vista **avanzada** y cambiar el **tipo de red personalizada de Docker** de **macvlan** a **ipvlan**. Esta es la configuración por defecto que Unraid ha enviado desde la versión 6.11.5 y debería funcionar para la mayoría de los sistemas. + +Tenga en cuenta que algunos usuarios han informado problemas con el reenvío de puertos desde ciertos routers (Fritzbox) y una funcionalidad reducida con herramientas de gestión avanzada de redes (Ubiquity) cuando están en modo ipvlan. Si esto le afecta, consulte la solución alternativa disponible desde Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces). + +#### Problemas de red debido a tramas jumbo + +Si estás teniendo problemas de red de cualquier tipo, confirma que no has habilitado frames jumbo. Navega a ***Configuración > Configuración de Red > eth0*** y confirma que el **MTU Deseado** es 1500. Para más información consulta la [advertencia de Problemas Comunes para frames jumbo](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Problemas debido a tarjetas de red Realtek + +La actualización del kernel soluciona el problema de deadlock con frames jumbo y el controlador Realtek 8125 incluido. Sin embargo, seguimos recomendando seguir el consejo anterior con respecto a frames jumbo. + +Si continúas teniendo problemas de estabilidad de red y ***Herramientas > Dispositivos del Sistema*** muestra que tienes un controlador ethernet Realtek, obtén el número de parte mostrado y busca Apps de la Comunidad para ver si hay un plugin de driver proporcionado por el proveedor Realtek para ese dispositivo. Para más información, consulta la [página de soporte para plugins de drivers Realtek](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### ¿Otros problemas? + +Recomendamos encarecidamente la instalación del plugin **Arreglar Problemas Comunes** ya que te advertirá sobre problemas comunes de configuración. + +Si tienes otros bloqueos o problemas de estabilidad, navega a ***Configuración > Servidor Syslog*** y habilita **Reflejar syslog en el flash**. Esto causará desgaste adicional en tu dispositivo de arranque USB flash, pero es útil a corto plazo para recopilar registros después de un bloqueo. + +Después del próximo reinicio, navega a ***Herramientas > Diagnósticos*** y descarga tus diagnósticos anonimizados (a partir de 6.12.5, los diagnósticos incluyen automáticamente registros que se reflejaron en el dispositivo flash). + +Finalmente, inicia un nuevo tema bajo [Soporte General](https://forums.unraid.net/forum/55-general-support/) y proporciona todos los detalles del problema. Una vez resuelto el problema, asegúrate de deshabilitar **Reflejar syslog en el flash**. + +### Deshacer cambios + +La funcionalidad de "Docker Patch 6.12.8" ahora está incorporada en Unraid. Si vuelves a la versión 6.12.8, es posible que desees reinstalar ese complemento. + +Si retrocede a una versión anterior a la 6.12.8, también vea las [notas de la versión 6.12.8](6.12.8.md#rolling-back). + +## Cambios vs. [6.12.8](6.12.8.md) + +### Correcciones de errores y mejoras + +- Docker + - Ignorar rutas vacías en el archivo de configuración al agregar o actualizar contenedores + - Resolver ciertos problemas al actualizar contenedores + - Corregir notificaciones cuando hay actualizaciones disponibles para los contenedores +- Página de Acceso de Gestión + - Resolver problemas al mostrar URLs IPv6 + - Eliminar soporte para certificados SSL "unraid.net" heredados, y eliminar "UpdateDNS" +- Diagnósticos: incluir registro de errores de php para ayudar con la resolución de problemas +- Controladores del Sistema: resolver problema con las traducciones que impedían la visualización de la página +- UPC: + - Resolver problemas con comillas simples o dobles en la descripción del servidor + - No intente iniciar unraid-api si no está instalado +- Corregir error de redirección al cambiar la descripción o el modelo del servidor en modo http solamente, o al cambiar el nombre del servidor en modo http o https +- Aumentar límite de tamaño tmpfs de /run de 32M a 128M +- Introducir retraso entre la creación de la tabla de particiones GPT y decir al kernel que la vuelva a leer para prevenir el error de "dispositivo o recurso ocupado" +- shfs: corregir método de asignación de altura máxima en asociación con volúmenes zfs +- nfs: asegurar que los montajes NFSv4 estén habilitados por defecto +- Resolver varios avisos de PHP +- Cambiar el servidor de tiempo predeterminado para nuevas instalaciones a "time.google.com" + +### Núcleo de Linux + +- versión 6.1.82 + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- Un subconjunto de actualizaciones de seguridad, vea [esta publicación de blog](https://unraid.net/blog/cvd) para más detalles. Recomendamos actualizar a la última versión estable para obtener actualizaciones de seguridad adicionales. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md new file mode 100644 index 0000000000..f422a91f6a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md @@ -0,0 +1,710 @@ +## Versión 6.9.0 2021-02-27 + +Resumen de nuevas características + +## Múltiples pools + +Esta función le permite definir hasta 35 pools nombrados, cada uno con hasta 30 dispositivos de almacenamiento por pool. Los pools se crean y gestionan a través de la página principal. + +- Nota: Un disco/pool de caché anterior a la versión 6.9.0 ahora es simplemente un pool llamado "cache". Cuando actualice un servidor que tenga un disco/pool de caché definido, se guardará una copia de seguridad de `config/disk.cfg` en `config/disk.cfg.bak`, y luego las configuraciones de asignación de dispositivos de caché se moverán de `config/disk.cfg` a un nuevo archivo, `config/pools/cache.cfg`. Si más tarde vuelve a una versión anterior a la 6.9.0 del sistema operativo Unraid, perderá sus asignaciones de dispositivos de caché y tendrá que reasignar manualmente los dispositivos a la caché. Siempre y cuando reasigne los dispositivos correctos, los datos deberían permanecer intactos. + +Cuando crea una compartición de usuario o edita una existente, puede especificar qué pool debe asociarse con esa compartición. El pool asignado funciona de manera idéntica a la operación actual del pool de caché. + +Algo a tener en cuenta: cuando se obtiene una lista de directorios de una +compartición, los volúmenes del disco de matriz Unraid y todos los pools que contienen esa +compartición se fusionan en este orden: + +> pool asignado a compartición +> +> disco1 +> +> `:` +> +> disco28 +> +> todas las *otras* piscinas en +> [strverscmp()](https://man7.org/linux/man-pages/man3/strverscmp.3.html) +> orden. + +Un pool de un solo dispositivo puede ser formateado con xfs, btrfs, o (obsoleto) reiserfs. Un pool de múltiples dispositivos solo puede ser formateado con btrfs. Una versión futura incluirá soporte para múltiples pools de "Unraid array", así como otros tipos de pools. + +- Nota: Algo más a tener en cuenta: Supongamos que tiene un pool btrfs de 2 dispositivos. Esto será lo que btrfs llama "raid1" y lo que la mayoría de la gente entendería como "discos en espejo". Bueno, esto es mayormente cierto en el sentido de que los mismos datos existen en ambos discos pero no necesariamente al nivel de bloques. Ahora supongamos que crea otro pool, y lo que hace es desafectar uno de los dispositivos del pool btrfs de 2 dispositivos existente y lo asigna a este pool. Ahora tiene x2 pools de un solo dispositivo btrfs. Al iniciar la array, el usuario podría suponer razonablemente que ahora hay x2 pools con exactamente los mismos datos. Sin embargo, **esto no es el caso**. En su lugar, cuando el sistema operativo Unraid detecta que un dispositivo btrfs ha sido eliminado de un pool de múltiples dispositivos existente, al iniciar la array hará un `wipefs` en ese dispositivo para que al montarse no se incluya en el pool antiguo. Esto, por supuesto, borra efectivamente todos los datos en el dispositivo movido. + +### Opciones adicionales de balanceo btrfs + +Los pools de múltiples dispositivos siguen creándose utilizando el perfil de *raid1* de btrfs por defecto. Si tienes 3 o más dispositivos en un pool, ahora puedes reequilibrar al perfil *raid1c3* (x3 copias de datos en dispositivos separados). Si tienes 4 o más dispositivos, ahora reequilibras a *raid1c4* (x4 copias de datos en dispositivos separados). También modificamos la operación de balance de *raid6* para establecer meta-datos a *raid1c3* (anteriormente era *raid1*). + +Sin embargo, hemos notado que al aplicar uno de estos filtros de balance a un volumen completamente vacío, algunos extentos de datos quedan con el perfil anterior. La solución es simplemente ejecutar el mismo balance nuevamente. Consideramos que esto es un error de btrfs y si no se encuentra una solución, añadiremos el segundo balance al código por defecto. Por ahora, se deja como está. + +### Alineación de partición SSD 1 MiB + +Hemos añadido otro diseño de partición donde el inicio de la partición 1 está alineado en un límite de 1 MiB. Es decir, para dispositivos que presentan sectores de 512 bytes, la partición 1 comenzará en el sector 2048; para dispositivos con sectores de 4096 bytes, en el sector 256. Este tipo de partición ahora se utiliza al formatear todo el almacenamiento no rotacional sin formato (únicamente). + +No está claro qué beneficio ofrece la alineación de 1 MiB. Para algunos dispositivos SSD, es posible que no note ninguna diferencia; para otros, quizás una gran diferencia en el rendimiento. LimeTech no recomienda volver a particionar un dispositivo SSD existente a menos que tenga una razón de peso para hacerlo (o que su TOC simplemente no lo permita). + +Para volver a particionar un SSD es necesario primero eliminar cualquier estructura de partición existente en el dispositivo. Por supuesto, **esto borrará todos los datos** en el dispositivo. Probablemente la forma más fácil de lograr esto es, con la array detenida, identificar el/los dispositivo(s) a borrar y utilizar el comando 'blkdiscard': + +`blkdiscard /dev/xxx  # por ejemplo /dev/sdb o /dev/nvme0n1 etc` + +ADVERTENCIA: asegúrate de escribir el identificador de dispositivo correcto porque +**¡todos los datos se perderán en ese dispositivo!** + +Al iniciar la matriz, el dispositivo aparecerá como No formateado, y dado +que ahora no hay estructura de partición, Unraid OS la creará. + +- Nota: Si desea volver a particionar su disco/pool de caché basado en SSD y preservar los datos, considere publicar en el [Foro de la Comunidad Unraid](https://forums.unraid.net/forum/55-general-support/) para obtener ayuda con su configuración particular. Consulte también [esta publicación](https://forums.unraid.net/bug-reports/prereleases/unraid-os-version-690-beta29-available-r1066/) en el tablero de prereleases. + +### Manejo SMART y advertencias de umbral de almacenamiento + +Hay un archivo de configuración llamado `config/smart-one.cfg` que almacena información relacionada con SMART, por ejemplo, el tipo de controlador que se pasará a `smartctl` con el fin de obtener información SMART. También se almacenan en ese archivo los umbrales de advertencia de volumen y espacio libre crítico. A partir de esta versión, estos ajustes de configuración se manejan de manera diferente. + +En el caso de la configuración de SMART, los ajustes se guardan por el ID del dispositivo en lugar del ID de ranura. Esto nos permite gestionar SMART para dispositivos no asignados. También permite que la configuración de SMART "siga al dispositivo" sin importar en qué ranura esté asignado. Sin embargo, esto implica que debe reconfigurar manualmente la configuración de SMART para todos los dispositivos que difieran del valor predeterminado. + +Los ajustes de umbral de advertencia de volumen y espacio crítico se han movido de este archivo de configuración y ahora se guardan en `config/disk.cfg` (para la array de Unraid) y en los archivos de configuración del pool para cada pool. Esto implica que debe reconfigurar manualmente estos ajustes para todos los volúmenes que difieran del valor predeterminado. + +Después de la actualización, puede recibir una notificación como: `Aviso [TOWER] - El Disco 1 ha vuelto al nivel de utilización normal`. Como se describió anteriormente, todos los ajustes de configuración de SMART se restablecieron al valor predeterminado. Visite `Configuración -> Configuración de Disco` para revisar los valores predeterminados y anularlos para discos individuales en `Principal -> Disco X -> Configuración`. + +## Mejor soporte para módulos/controladores de terceros + +Recuerde que distribuimos módulos y firmware de Linux en archivos squashfs separados que se montan en modo de solo lectura en `/lib/modules` y `/lib/firmware`. Ahora configuramos un overlayfs en cada uno de estos puntos de montaje, lo que hace posible instalar módulos de terceros usando el sistema de complementos, siempre que esos módulos estén construidos contra la versión actual del kernel en ejecución. Además, definimos un nuevo directorio en el dispositivo de arranque USB llamado `config/modprobe.d` cuyo contenido se copia a `/etc/modprobe.d` al principio de la secuencia de arranque antes de que el kernel de Linux cargue cualquier módulo. + +Esta técnica se utiliza para instalar el controlador Nvidia (ver abajo) y puede +ser utilizada por los desarrolladores de la comunidad para proporcionar un método más sencillo para añadir módulos no incluidos en la base Unraid OS: +no es necesario construir archivos personalizados bzimage, +bzmodules, bzfirmware y, bzroot! + +### Pasar parámetros a módulos + +El uso de archivos `conf` en `config/modprobe.d` puede usarse para especificar +opciones y pasar argumentos a los módulos. + +Como ejemplo: actualmente no contamos con soporte de UI para especificar cuál interfaz de red debería ser "primaria" en un vínculo; el controlador de vinculación simplemente selecciona el primer miembro de forma predeterminada. En algunas configuraciones, puede ser útil especificar una interfaz preferida explícita, por ejemplo, si tiene un vínculo con una interfaz de 1 Gbit/s (eth0) y otra de 10 Gbit/s (eth1). + +Dado que configurar el bond implica cargar el módulo kernel de bonding, +y puedes especificar qué interfaz establecer como primaria usando este método: + +Crea un archivo en el flash: `config/modprobe.d/bonding.conf` que +contenga esta única línea, y luego reinicia: + +`opciones bonding primary=eth1` + +Después del reinicio puedes verificar si funcionó escribiendo este comando: + +`cat /proc/net/bonding/bond0` + +donde deberías ver la interfaz seleccionada como "Esclavo primario". + +### Controlador Nvidia + +El objetivo de crear superposiciones squashfs montadas en `/lib/modules` y `/lib/firmware`, junto con proporcionar un mecanismo para definir parámetros de módulos personalizados, es proveer una manera de integrar controladores de terceros en Unraid OS sin requerir construcciones personalizadas de los archivos bz\*. Uno de los controladores de terceros más populares solicitados para Unraid OS es el controlador Linux GPU de Nvidia. Este controlador es requerido para la capacidad de transcodificación en contenedores Docker. Proveer este controlador como un complemento para Unraid OS ha requerido mucho trabajo para configurar un entorno de desarrollo, compilar el controlador y herramientas, y luego descomprimir bzmodules, añadir el controlador, crear nuevos bzmodules, y finalmente reemplazar en el directorio raíz del USB flash. Este trabajo ha sido realizado por miembros de la comunidad [@chbmb](https://forums.unraid.net/profile/6219-chbmb/), [@bass\_rock](https://forums.unraid.net/profile/78406-bass_rock/), y otros. Continuando sobre su trabajo, junto con el miembro [@ich777](https://forums.unraid.net/profile/72388-ich777/) ahora creamos paquetes de controladores Nvidia separados construidos contra cada nuevo lanzamiento de Unraid OS que utiliza un nuevo kernel, pero no incluidos directamente en la distribución base bz\*. + +Se puede descargar un archivo JSON que describe la(s) versión(es) del controlador soportadas con cada kernel aquí: + +[https://s3.amazonaws.com/dnld.lime-technology.com/drivers/releases.json](https://s3.amazonaws.com/dnld.lime-technology.com/drivers/releases.json) + +Cada paquete de controladores incluye el controlador GPU Linux de Nvidia junto con un conjunto de herramientas de contenedor. Las herramientas del contenedor incluyen: + +`nvidia-container-runtime`\ +`nvidia-container-toolkit`\ +`libnvidia-container` + +Estas herramientas son útiles para facilitar la transcodificación acelerada en contenedores Docker. ¡Un gran agradecimiento! al miembro de la comunidad [@ich777](https://forums.unraid.net/profile/72388-ich777/) por su ayuda y por proporcionar las herramientas. [@ich777](https://forums.unraid.net/profile/72388-ich777/) también ha proporcionado un [complemento práctico](https://raw.githubusercontent.com/ich777/unraid-nvidia-driver/master/nvidia-driver.plg) para facilitar la instalación del controlador correcto. + +La inclusión de módulos de terceros en Unraid OS mediante el sistema de complementos aún está en progreso. Por ejemplo, otro candidato sería reemplazar los controladores de red Intel en árbol de Linux con los controladores personalizados de Intel para Linux. + +## Docker + +Ahora es posible seleccionar diferentes iconos para múltiples contenedores del mismo tipo. Este cambio requiere una nueva descarga de los iconos para todas sus aplicaciones Docker instaladas. Se espera un retraso al cargar inicialmente el Tablero o la pestaña Docker mientras esto sucede, antes de que los contenedores aparezcan. + +También realizamos algunos cambios para añadir flexibilidad en la asignación de almacenamiento para el motor Docker. Esto se configura utilizando el ajuste Settings/Docker Settings/Docker data root. Esto le permite seleccionar cómo mantener el estado persistente de Docker (capas de imagen): + +- En un vdisk formateado como btrfs montado en bucle en /var/lib/docker. En este caso, el nombre del archivo de imagen debe ser 'docker.img'. +- En un vdisk formateado como xfs montado en bucle en /var/lib/docker. En este caso, el nombre del archivo de imagen debe ser 'docker-xfs.img'. +- En un directorio especificado que está montado en vinculante en /var/lib/docker. Además, el sistema de archivos donde se encuentra este directorio debe ser btrfs o xfs. + +Docker usará ya sea el controlador de almacenamiento 'btrfs' en el caso de +vdisk/directorio formateado en btrfs, o el controlador de almacenamiento 'overlay2' en +el caso de vdisk/directorio formateado en xfs. + +Implementado como sigue: Primero, `rc.docker` detectará el tipo de sistema de archivos montado en `/var/lib/docker`. Ahora soportamos btrfs o xfs y el controlador de almacenamiento de Docker se establece adecuadamente. + +A continuación, se modifica `mount_image` para soportar un archivo de bucle formateado ya sea con btrfs o xfs dependiendo del sufijo del nombre del archivo de bucle. Por ejemplo, si el nombre del archivo termina con `.img`, como en `docker.img`, entonces se usa `mkfs.btrfs`. Si el nombre del archivo termina con `-xfs.img`, como en `docker-xfs.img` entonces se utiliza `mkfs.xfs`. + +Además, añadimos la capacidad de montar en vinculante un directorio en lugar de usar un bucle. Si el nombre del archivo no termina con `.img`, entonces el código asume que este es el nombre de un directorio (presumiblemente en una compartición) que está montado en vinculante en `/var/lib/docker`. Por ejemplo, si `/mnt/user/system/docker/docker` entonces primero creamos, si es necesario, el directorio `/mnt/user/system/docker/docker`. Si esta ruta está en una compartición de usuario, entonces "des-referenciamos" la ruta para obtener la ruta del disco que luego se monta en vinculante en `/var/lib/docker`. Por ejemplo, si `/mnt/user/system/docker/docker` está en "disk1", entonces montaríamos en vinculante `/mnt/disk1/system/docker/docker`. Precaución: la compartición debe ser solo-caché o no-caché para que 'mover' no intente mover el directorio, pero el script no verifica esto. + +## Virtualización + +Hemos integrado cambios en la página de dispositivos del sistema Tools → System Devices realizada por el usuario [@Skitals](https://forums.unraid.net/profile/97624-skitals/) con refinamientos del usuario [@ljm42](https://forums.unraid.net/profile/61877-ljm42/). Ahora puedes seleccionar dispositivos PCI para aislar de Linux al inicio simplemente clickeando algunas casillas. Esto facilita reservar esos dispositivos para ser asignados a las VM. Esta técnica se conoce como *stubbing* (porque se asigna un controlador falso o dummy al dispositivo en el arranque, impidiendo que el controlador real de Linux sea asignado). + +Uno podría preguntarse, si podemos *bloquear* controladores individuales, ¿por qué necesitamos hacer stub de esos dispositivos para asignarlos a las VM? La respuesta es: puedes hacerlo. Pero, si tienes múltiples dispositivos del mismo tipo, donde algunos necesitan ser pasados a una VM y algunos necesitan tener instalado el controlador de Linux del host, entonces debes usar stubbing para los dispositivos que pasarán a las VM. + +Nota: Si tenía instalado el complemento de Configuración VFIO-PCI, debe eliminarlo, ya que esa funcionalidad ahora está incorporada en Unraid OS 6.9. Si había suprimido manualmente los dispositivos modificando su archivo Syslinux, considere cambiar al nuevo método como se describe en la [guía vfio-pci](https://forums.unraid.net/topic/93781-guide-bind-devices-to-vfio-pci-for-easy-passthrough-to-vms/). + +## Soporte multilingüe + +Otra emocionante nueva característica en Unraid 6.9 es la habilidad de descargar +paquetes de idiomas y usar el Unraid OS en varios idiomas diferentes. + +Una gran cantidad de trabajo y esfuerzo ha sido implementado por [@bonienl](https://forums.unraid.net/profile/2736-bonienl/) para proporcionar soporte multilingüe en la Utilidad de Gestión del OS Unraid, también conocido como WebGUI. Actualmente, *Inglés, Español, Francés, Alemán, Holandés, Árabe, Chino Simplificado, Portugués y Polaco* están disponibles y varios otros están en proceso. + +Gracias a [@Squid](https://forums.unraid.net/profile/10290-squid/), +los paquetes de idiomas se instalan a través del plugin de Aplicaciones de la Comunidad - busca una nueva categoría llamada Idiomas. + +- Nota: Las Aplicaciones de la Comunidad deben estar actualizadas para instalar idiomas. Para más detalles, [ver aquí.](https://forums.unraid.net/topic/38582-plug-in-community-applications/page/124/?tab=comments#comment-866710) + +Cada paquete de idioma existe en los repositorios públicos de github de la organización Unraid. Se anima a los usuarios interesados a clonar y emitir solicitudes de extracción para corregir errores de traducción. Las traducciones de idiomas y la fusión de PR son gestionadas por [@SpencerJ](https://forums.unraid.net/profile/88446-spencerj/). + +*Para más información sobre el Soporte Multilingüe, [por favor revisa nuestra guía.](https://unraid.net/blog/unraid-6-9-multi-language-support)* + +También hemos añadido una [Sección Multi-Idioma del Foro de la Comunidad de Unraid](https://forums.unraid.net/forum/75-multi-language-section/). + +## Otro + +### Integración de Controlador GPU + +Unraid OS ahora incluye los controladores GPU en árbol seleccionados: ast (Aspeed), i915 (Intel), amdgpu y radeon (AMD). Para mantener la compatibilidad hacia atrás, estos controladores están en lista negra por defecto a través de los archivos `conf` correspondientes en `/etc/modprobe.d`: + +`/etc/modprobe.d/ast.conf`\ +`/etc/modprobe.d/i915.conf`\ +`/etc/modprobe.d/amdgpu.conf`\ +`/etc/modprobe.d/radeon.conf` + +Cada uno de estos archivos tiene una sola línea que *bloquea* el controlador, impidiendo que sea cargado por el kernel de Linux. + +Es posible anular las configuraciones en estos archivos creando un archivo `conf` personalizado en el directorio `config/modprobe.d` en su dispositivo de arranque USB flash. Por ejemplo, para quitar de la lista negra el controlador amdgpu, cree un archivo vacío escribiendo este comando en una sesión de Terminal: + +`touch /boot/config/modprobe.d/amdgpu.conf` + +Esto solo necesita hacerse una vez, no es necesario añadirlo a tu guion de inicio. + +En 6.9.1, si tu guion de inicio contiene un comando modprobe para tu GPU +y/o un comando para corregir los permisos en `/dev/dri`, deberías eliminarlos: + +`modprobe amdgpu`\ +`chmod -R 777 /dev/dri` + +En 6.9.0, si el contenedor de Docker que usas no puede acceder al GPU, +agrega/mantén esta línea en tu guion de inicio: + +`chmod -R 777 /dev/dri` + +pero remueve esta: + +`modprobe amdgpu` + +### Núcleo de Linux + +Estamos usando el núcleo [LTS](https://www.kernel.org/) (Soporte a Largo Plazo): versión 5.10.x. + +Nuevas características habilitadas en el núcleo: + +- Módulo WireGuard +- Módulo iScsi Target +- Módulo USB/IP + +Se incluyen estos controladores fuera del árbol: + +- Soporte para el Controlador Ethernet de 10 Gb QLogic QLGE (desde staging) +- RealTek r8125: versión 9.003.05 (incluido para versiones más nuevas de r8125) +- HighPoint rr272x\_1x: versión v1.10.6-19\_12\_05 (según la solicitud del usuario) + +Tenga en cuenta que a medida que actualizamos el núcleo de Linux, si un controlador fuera del árbol +ya no se compila, será omitido. + +Estos controladores están **omitidos**: + +- Highpoint RocketRaid r750 (no se compila) +- Highpoint RocketRaid rr3740a (no se compila) +- Tehuti Networks tn40xx (no se compila) + +Si necesitas uno de estos controladores, por favor crea un Informe de Errores y nosotros pasaremos algún tiempo buscando alternativas. Mejor aún, acose al fabricante del controlador para que *ellos* actualicen sus controladores. + +### Paquetes base + +Todo actualizado a las últimas versiones. Además, se ha integrado [Linux PAM](https://es.wikipedia.org/wiki/Linux_PAM). Esto nos permitirá instalar paquetes de autenticación de dos factores en una futura versión. + +### Control de Giro SAS + +También deberíamos poder ahora soportar adecuadamente el encendido/apagado de dispositivos SAS (finalmente) y con la extraordinaria ayuda de [@doron](https://forums.unraid.net/profile/8006-doron/) casi estamos allí. Los dispositivos SAS generalmente están diseñados para entornos empresariales donde el apagado de dispositivos es poco común, y muchos dispositivos tienen un comportamiento inconsistente en torno a esta funcionalidad. Esta versión en sí no incluye manejo de giro de dispositivos SAS incorporado, pero [@doron](https://forums.unraid.net/profile/8006-doron/) está proporcionando un complemento donde seguimos abordando algunos detalles molestos. + +### Mejoras en SSH + +Hay cambios en `/etc/ssh/sshd_conf` para mejorar la seguridad (gracias a +[@Mihai](https://forums.unraid.net/profile/89549-mihai/) y +[@ljm42](https://forums.unraid.net/profile/61877-ljm42/) por +sus sugerencias): + +- solo se permite al usuario root iniciar sesión vía ssh (recuerda: no hay + usuarios tradicionales en Unraid OS - solo 'root') +- ahora se requiere una contraseña no nula. Para configurar una contraseña, ve a la pestaña Usuarios (o Configuración -> Usuarios, dependiendo de tu configuración), luego elige el usuario "root", escribe una contraseña compleja dos veces y presiona CAMBIAR (no REINICIAR) +- el túnel no-root está desactivado + +Además, al actualizar, nos aseguramos de que el directorio `config/ssh/root` exista en el dispositivo de arranque USB; y, hemos configurado un enlace simbólico: `/root/.ssh` a este directorio. Esto significa que cualquier archivo que pueda colocar en `/root/.ssh` será persistente a través de los reinicios. + +Así que, si previamente habías añadido comandos a tu guion `go` para copiar +`authorized_keys` y otros archivos a `/root/.ssh`, deberías eliminar +esos comandos y simplemente poner los archivos en `config/ssh/root`, luego +reiniciar. + +Nota: si examina el script de inicio sshd `/etc/rc.d/rc.sshd`, al arrancar todos los archivos de el directorio `config/ssh` se copian a `/etc/ssh` (pero no los subdirectorios). El propósito es restaurar las claves ssh del host; sin embargo, este mecanismo puede usarse para definir archivos `ssh_conf` y `sshd_conf` personalizados. + +### "errores GSO inesperados" + +Si tu registro de sistema está siendo inundado con errores como: + +`Feb 20 09:09:21 Tower kernel: tun: tipo GSO inesperado: 0x0, gso_size 31, hdr_len 66` + +Necesitas editar cada VM y cambiar el tipo de modelo para el puente Ethernet de `virtio` a `virtio-net`. En la mayoría de los casos esto se puede lograr simplemente haciendo clic en Actualizar en "Vista de Formulario" en la página de Edición de la VM. Para otras configuraciones de red puede ser necesario editar directamente el xml. Ejemplo: + +```xml + + + + + +
+ +``` + +### "noVNC encontró un error" + +Si recibes un mensaje `noVNC encontró un error` después de actualizar, +por favor limpia la caché de tu navegador. + +### El soporte AFP ha sido eliminado + +Incluso Apple está [alejándose](https://www.macworld.com/article/3600899/using-afp-to-share-a-mac-drive-its-time-to-change.html) +de este protocolo. + +Para la mejor interoperabilidad con macOS, y para exportar una unidad para fines de Time +Machine, por favor asegúrate de que "Configuración/Ajustes SMB/Interoperabilidad mejorada con macOS" esté puesta en "Sí". + +## Registro de Cambios + +#### Distro base + +- aaa\_elflibs: versión 15.0 build 27 +- acl: versión 2.2.53 +- acpid: versión 2.0.32 +- apcupsd: versión 3.14.14 +- at-spi2-core: versión 2.36.1 +- at: versión 3.2.1 +- attr: versión 2.4.48 +- avahi: versión 0.8 +- bash: versión 5.0.018 +- beep: versión 1.3 +- bin: versión 11.1 +- bluez-firmware: versión 1.2 +- bridge-utils: versión 1.7 +- brotli: versión 1.0.9 construcción 2 +- btrfs-progs: versión 5.10 +- bzip2: versión 1.0.8 +- ca-certificates: versión 20201219 +- celt051: versión 0.5.1.3 +- cifs-utils: versión 6.11 +- coreutils: versión 8.32 +- cpio: versión 2.13 +- cpufrequtils: versión 008 +- cryptsetup: versión 2.3.4 +- curl: versión 7.74.0 (CVE-2020-8231 CVE-2020-8286 CVE-2020-8285 + CVE-2020-8284) +- cyrus-sasl: versión 2.1.27 +- db48: versión 4.8.30 +- dbus: versión 1.12.20 +- dcron: versión 4.5 +- devs: versión 2.3.1 construcción 25 +- dhcpcd: versión 8.1.9 +- diffutils: versión 3.7 +- dmidecode: versión 3.3 +- dnsmasq: versión 2.84 (CVE-2020-25681 CVE-2020-25682 CVE-2020-25683 + CVE-2020-25684 CVE-2020-25685 CVE-2020-25686 CVE-2020-25687) +- docker: versión 19.03.14 +- dosfstools: versión 4.1 +- e2fsprogs: versión 1.45.6 +- ebtables: versión 2.0.11 +- eject: versión 2.1.5 +- elvis: versión 2.2\_0 +- etc: versión 15.0 +- ethtool: versión 5.9 +- eudev: versión 3.2.5 +- file: versión 5.39 +- findutils: versión 4.7.0 +- flex: versión 2.6.4 +- floppy: versión 5.5 +- fontconfig: versión 2.13.92 +- freetype: versión 2.10.4 +- fribidi: versión 1.0.10 +- fuse3: versión 3.10.0 +- gawk: versión 4.2.1 +- gd: versión 2.2.5 +- gdbm: versión 1.18.1 +- genpower: versión 1.0.5 +- getty-ps: versión 2.1.0b +- git: versión 2.29.1 +- glib2: versión 2.66.2 +- glibc-solibs: versión 2.30 construcción 2 +- glibc-zoneinfo: versión 2020d +- glibc: versión 2.30 construcción 2 +- gmp: versión 6.2.0 +- gnutls: versión 3.6.15 +- gptfdisk: versión 1.0.5 +- grep: versión 3.4 +- gtk+3: versión 3.24.23 +- gzip: versión 1.10 +- harfbuzz: versión 2.7.2 +- haveged: versión 1.9.13 +- hdparm: versión 9.60 +- hostname: versión 3.23 +- htop: versión 3.0.2 +- icu4c: versión 68.1 +- inetd: versión 1.79s +- infozip: versión 6.0 +- inotify-tools: versión 3.20.2.2 +- intel-microcode: versión 20210216 +- iproute2: versión 5.9.0 +- iptables: versión 1.8.5 +- iputils: versión 20200821 +- irqbalance: versión 1.6.0 +- jansson: versión 2.13.1 +- jasper: versión 2.0.22 +- jemalloc: versión 5.2.1 +- jq: versión 1.6 +- kernel-firmware: versión 20210211\_f7915a0 +- keyutils: versión 1.6.1 +- kmod: versión 27 +- krb5: versión 1.18.2 +- lbzip2: versión 2.5 +- lcms2: versión 2.11 +- less: versión 563 +- libX11: versión 1.6.12 +- libaio: versión 0.3.112 +- libarchive: versión 3.4.3 +- libcap-ng: versión 0.8 compilación 2 +- libcgroup: versión 0.41 +- libdaemon: versión 0.14 +- libdrm: versión 2.4.102 +- libedit: versión 20191231\_3.1 +- libestr: versión 0.1.11 +- libevdev: versión 1.10.0 +- libevent: versión 2.1.12 +- libfastjson: versión 0.99.8 +- libffi: versión 3.3 +- libgcrypt: versión 1.8.7 +- libglvnd: versión 1.3.2 +- libgpg-error: versión 1.39 +- libgudev: versión 234 +- libidn: versión 1.36 +- libjpeg-turbo: versión 2.0.5 +- liblogging: versión 1.0.6 +- libmnl: versión 1.0.4 +- libnetfilter\_conntrack: versión 1.0.8 +- libnfnetlink: versión 1.0.1 +- libnftnl: versión 1.1.8 +- libnl3: versión 3.5.0 +- libpcap: versión 1.9.1 +- libpciaccess: versión 0.16 +- libpng: versión 1.6.37 +- libpsl: versión 0.21.1 compilación 2 +- librsvg: versión 2.50.1 +- libseccomp: versión 2.4.3 +- libssh2: versión 1.9.0 +- libssh: versión 0.9.5 +- libtasn1: versión 4.16.0 +- libtirpc: versión 1.2.6 +- libunistring: versión 0.9.10 +- libusb-compat: versión 0.1.5 +- libusb: versión 1.0.23 +- libuv: versión 1.34.0 +- libvirt-php: versión 0.5.5 +- libvirt: versión 6.6.0 (CVE-2020-14339) +- libwebp: versión 1.1.0 compilación 3 +- libwebsockets: versión 3.2.2 +- libx86: versión 1.1 +- libxkbcommon: versión 1.0.1 +- libxml2: versión 2.9.10 compilación 3 +- libxslt: versión 1.1.34 +- libzip: versión 1.7.3 +- lm\_sensors: versión 3.6.0 +- lmdb: versión 0.9.27 +- logrotate: versión 3.17.0 +- lshw: versión B.02.17 +- lsof: versión 4.93.2 +- lsscsi: versión 0.31 +- lvm2: versión 2.03.10 +- lz4: versión 1.9.1 +- lzip: versión 1.21 +- lzo: versión 2.10 +- mc: versión 4.8.25 +- miniupnpc: versión 2.1 +- mpfr: versión 4.1.0 +- nano: versión 5.3 +- ncompress: versión 4.2.4.6 +- ncurses: versión 6.2\_20201024 +- net-tools: versión 20181103\_0eebece +- nettle: versión 3.6 +- network-scripts: versión 15.0 compilación 9 +- nfs-utils: versión 2.1.1 +- nghttp2: versión 1.41.0 +- nginx: versión 1.19.5 (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516) +- nodejs: versión 13.12.0 +- nss-mdns: versión 0.14.1 +- ntfs-3g: versión 2017.3.23 +- ntp: versión 4.2.8p15 compilación 3 +- numactl: versión 2.0.11 +- oniguruma: versión 6.9.1 +- openldap-client: versión 2.4.49 +- openssh: versión 8.4p1 compilación 2 +- openssl-solibs: versión 1.1.1i +- openssl: versión 1.1.1i +- p11-kit: versión 0.23.22 (CVE-2020-29361 CVE-2020-29361 CVE-2020-29361) +- pam: versión 1.5.1 +- pango: versión 1.46.2 +- patch: versión 2.7.6 +- pciutils: versión 3.7.0 +- pcre2: versión 10.35 +- pcre: versión 8.44 +- php: versión 7.4.15 (CVE-2019-11048 CVE-2020-7068 CVE-2020-7070 CVE-2020-7069) +- pixman: versión 0.40.0 +- pkgtools: versión 15.0 compilación 33 +- pm-utils: versión 1.4.1 +- procps-ng: versión 3.3.16 +- pv: versión 1.6.6 +- qemu: versión 5.1.0 (CVE-2020-10717, CVE-2020-10761) +- qrencode: versión 4.0.2 +- reiserfsprogs: versión 3.6.27 +- rpcbind: versión 1.2.5 compilación 2 +- rsync: versión 3.2.3 +- rsyslog: versión 8.2002.0 +- samba: versión 4.12.11 (CVE-2020-10700, CVE-2020-10704 + CVE-2020-10730, CVE-2020-10745, CVE-2020-10760, CVE-2020-14303 + CVE-2020-1472 CVE-2020-14318 CVE-2020-14318 CVE-2020-14318) +- sdparm: versión 1.11 +- sed: versión 4.8 +- sg3\_utils: versión 1.45 +- shadow: versión 4.8.1 +- shared-mime-info: versión 2.0 +- smartmontools: versión 7.1 +- spice: versión 0.14.1 +- sqlite: versión 3.33.0 +- ssmtp: versión 2.64 +- sudo: versión: 1.9.3p2 (CVE-2021-23239 CVE-2021-23240) +- sysfsutils: versión 2.1.0 +- sysvinit-scripts: versión 2.1 compilación 35 +- sysvinit: versión 2.97 +- talloc: versión 2.3.1 construcción 4 +- tar: versión 1.32 +- tcp\_wrappers: versión 7.6 build 3 +- tdb: versión 1.4.3 compilación 4 +- telnet: versión 0.17 +- tevent: versión 0.10.2 compilación 4 +- traceroute: versión 2.1.0 +- tree: versión 1.8.0 +- ttyd: versión 20200624 +- usbredir: versión 0.7.1 +- usbutils: versión 013 +- utempter: versión 1.2.0 +- util-linux: versión 2.36 compilación 2 +- vbetool: versión 1.2.2 +- vsftpd: versión 3.0.3 compilación 7 +- wget: versión 1.20.3 +- which: versión 2.21 +- wireguard-tools: versión 1.0.20210223 +- wsdd: versión 20180618 +- xev: versión 1.2.4 +- xf86-video-vesa: versión 2.5.0 +- xfsprogs: versión 5.9.0 +- xinit: versión 1.4.1 +- xkeyboard-config: versión 2.31 +- xorg-server: versión 1.20.9 compilación 3 +- xterm: versión 361 +- xxHash: versión 0.8.0 +- xz: versión 5.2.5 +- yajl: versión 2.1.0 +- zlib: versión 1.2.11 +- zstd: versión 1.4.5 + +#### Núcleo de Linux + +- versión 5.10.19 +- CONFIG\_WIREGUARD: Túnel de red seguro WireGuard +- CONFIG\_IP\_SET: Soporte de conjunto IP +- CONFIG\_SENSORS\_DRIVETEMP: Unidades de disco duro con sensores de temperatura +- md/Unraid: versión 2.9.17 + - soporte eliminado para spinup group spinup/spdindown (funcionalidad movida a emhttpd) + - añadido desplazamiento configurable de inicio de sincronización +- se añadió soporte del kernel iSCSI: +  - CONFIG\_ISCSI\_TARGET: Pila de Modo Objetivo de Linux-iSCSI.org + - CONFIG\_ISCSI\_TARGET\_CXGB4: Controlador de descarga objetivo iSCSI de Chelsio + - CONFIG\_LOOPBACK\_TARGET: TCM objetivo SAS virtual y módulo de bucle de tejidos LDD Linux/SCSI + - CONFIG\_NVME\_TARGET: Soporte objetivo NVMe + - CONFIG\_NVME\_TARGET\_LOOP: Soporte de dispositivo de bucle para NVMe + - CONFIG\_NVME\_TARGET\_PASSTHRU: Soporte de Passthrough para objetivo NVMe + - CONFIG\_TARGET\_CORE: Módulo Genérico del Núcleo Objetivo (TCM) e Infraestructura ConfigFS + - CONFIG\_TCM\_FILEIO: Plugin del Subsistema TCM/FILEIO para Linux/VFS + - CONFIG\_TCM\_IBLOCK: Plugin del Subsistema TCM/IBLOCK para Linux/BLOCK + - CONFIG\_TCM\_PSCSI: Plugin del Subsistema TCM/pSCSI para Linux/SCSI + - CONFIG\_TCM\_USER2: Plugin del Subsistema TCM/USER para Linux +- se añadió soporte del kernel USB/IP: +  - CONFIG\_USBIP\_CORE: Soporte USB/IP +  - CONFIG\_USBIP\_VHCI\_HCD: VHCI hcd +- mpt3sas: se añadió /etc/modprobe.d/mpt3sas-workaround.conf para establecer "max\_queue\_depth=10000" +- oot: Realtek r8152: versión 2.13.0 +- oot: Tehuti tn40xx: versión 0.3.6.17.3 +- controladores nativos hwmon adicionales habilitados +- controladores hyperv adicionales habilitados + +#### Gestión + +- Soporte AFP eliminado +- Soporte de Multi-idioma añadido +- Soporte para múltiples pools añadido +- at: suprimir mensajes de syslog de apertura/cierre de sesión +- evitar enviar spinup/spindown a dispositivos no rotacionales +- btrfs: incluir opción de montaje 'discard=async' +- corrección de error: renombrar /etc/krb.conf a /etc/krb5.conf +- limpieza de passwd, shadow +- dhcpcd: ipv6: usar slaac hwaddr en lugar de slaac private +- docker: corregir lógica de asignación del controlador de almacenamiento +- docker: soporte a sistemas de archivos de respaldo btrfs y xfs +- emhtppd: dispositivo cifrado wipefs eliminado del pool de múltiples dispositivos +- emhtptd: rastrear apagado limpio/no limpio usando archivo 'config/forcesync' +- emhttpd: función wipefs añadida (botón 'Erase' en WebGUI) +- emhttpd: evitar eliminación innecesaria del archivo mover.cron +- emhttpd: evitar el uso de remount para establecer opciones de montaje adicionales +- emhttpd: corrección de error: No Smartdata para tipo de controlador no estándar +- emhttpd: corrección de error: no se muestran las temperaturas iniciales de los dispositivos +- emhttpd: corregir lógica 'Erase' para dispositivos de la matriz Unraid +- emhttpd: habilitar SMART en dispositivos al inicio +- emhttpd: corregir la configuración 'auto' donde pools habilitados para shares de usuario + no deberían exportarse +- emhttpd: corregir que el tipo de controlador SMART del disco no se respeta al leer temperaturas +- emhttpd: corregir que 'smartctl -n standby' externo cause spinup del dispositivo +- emhttpd: eliminar evento poll\_attributes +- emhttpd: implementar spinup/spindown de grupo; agregar llamadas a spinup/spindown +- emhttpd: permitir el borrado de dispositivos de reemplazo 'DISK\_DSBL\_NEW' +- emhttpd: restaurar el llamado al evento 'poll\_attributes' +- emhttpd: dispositivos no asignados se apagan según el predeterminado global +- emhttpd: método de cálculo 'free/used' de btrfs otra vez +- corregir bloqueo de emhttpd.resultante de exportar compartición de disco NFS +- corregir que las particiones de dispositivos no rotacionales no estaban alineadas a 1MiB +- eliminar soporte de plugin 'system' (nunca usado) +- integrar PAM +- integrar cambios de script vfio-pci de ljm42 +- loopbacks: permitir xfs o btrfs basado en el nombre de archivo +- modprobe: lista negra de controladores GPU por defecto, config/modprobe.d/\* puede anular al inicio +- montar todos los volúmenes btrfs utilizando la opción 'space\_cache=v2' +- montar loopbacks con la opción 'noatime'; habilitar 'direct-io' +- mount\_image: soportar bind-mount +- particiones de dispositivos no rotacionales alineadas a 1MiB por defecto +- plugin: soporte para validación de archivos sha256 +- rsyslog: corregir "Mirror syslog to flash" roto +- samba: desactivar aio por defecto +- shfs: mover: preservar ioctl\_iflags al mover entre los mismos tipos de sistemas de archivos +- shfs: mover: soporte para archivos sparses +- smart-one.cfg mantiene información SMART por ID en lugar de por ranura; configuración de advertencia/ crítico de disco + movida a cfg de disco/pool +- smb: corregido problema de unión Ad +- smb: eliminar configuración 'aio' en smb.conf, usar valores por defecto de samba +- ssh: añadir enlace simbólico /root/.ssh a directorio /boot/config/ssh/root +- ssh: permitir solo usuario root, requerir contraseñas, deshabilitar túnel no root +- ssh: requerir contraseñas, deshabilitar túnel no root +- inicio: configurar un overlayfs para /lib/modules y /lib/firmware +- syslog: configurar para también escuchar en puerto udp localhost 514 +- terminal web: inhibir advertencia emergente al cerrar ventana +- soporte WireGuard: rc.wireguard: añadir reglas iptables +- WebGUI: corregir advertencias de dockerupdate.php +- WebGUI: actualizar statuscheck +- WebGUI: añadir opción de mapa de teclas 'Portuguese (pt)' para libvirt +- WebGUI: añadir tiempo de espera personalizable al detener contenedores +- WebGUI: añadir visor de registros para vfio-pci +- WebGUI: añadir agente de notificación para Discord +- WebGUI: añadir información de pools a diagnósticos +- WebGUI: añadir opciones de balance raid1c3 y raid1c4 para pool btrfs. +- WebGUI: añadir diálogo de actualización en el menú contextual de docker +- WebGUI: opción de reinicio de "modo seguro" de una sola vez añadida +- WebGUI: añadida información btrfs para todos los pools en diagnósticos +- WebGUI: añadida nueva configuración de visualización: mostrar identificadores de dispositivos normalizados o crudos +- WebGUI: añadida nueva configuración "Habilitar asignación de share de usuario" a pool de cache +- WebGUI: añadido soporte para registros docker privados con auth básica + o sin auth, e mejoras para autenticación basada en token +- WebGUI: permitir diferentes tipos de imagen para cargar con un máximo de 512K +- WebGUI: permitir contenedores duplicados con íconos diferentes +- WebGUI: permitir markdown dentro de descripciones de contenedores +- WebGUI: cambiar ícono para información de placa madre de engranaje (configuración) a info +- WebGUI: cambiado: Consistencia entre el dashboard y docker al acceder a registros +- WebGUI: Dashboard: corregir estadísticas de interfaz faltante +- WebGUI: Dashboard: ajuste de estilo para ícono de servidor +- WebGUI: detectar sesión inválida y cerrar sesión en la pestaña actual +- WebGUI: Diagnósticos: Eliminar Hashes SHA256 +- WebGUI: no permitir "?" en nombres de share +- WebGUI: Configuración de pantalla: los colores deberían ser dígitos hexadecimales de 3 o 6 caracteres +- WebGUI: No mostrar perfiles CA en la lista de Añadir Contenedor +- WebGUI: Docker: permitir vdisk BTRFS o XFS, o ubicación de carpeta +- WebGUI: Docker: manejo más intuitivo de imágenes +- WebGUI: corregir aparición de " +- WebGUI: corregir cortes en cambio de idioma Azure / Gris +- WebGUI: corregir advertencias de Banner no descartadas sin recargar la página +- WebGUI: corregir que las VMs iniciadas no aparecen en el dashboard +- WebGUI: corregir bloqueo al leer archivos de registro muy grandes (limitando salida a 1000 líneas). +- WebGUI: corregir descartar todas las notificaciones +- WebGUI: corregir no poder cambiar el horario de verificación de paridad si no hay un pool de cache presente +- WebGUI: corregir notificaciones que reaparecen continuamente +- WebGUI: corregir no puedo usar íconos de la esquina superior derecha si hay notificaciones presentes +- WebGUI: corregir referencia URL errónea de docker run +- WebGUI: corregir: Desplazamiento de Dashboard / Docker en dispositivos iPad +- WebGUI: corregir: establecer correctamente cookie samesite (corregir problema de inicio de sesión con Safari) +- WebGUI: para perfil de datos de pool btrfs raid6 usar perfil de metadata raid1c3. +- WebGUI: reordenamiento de botones de ícono +- WebGUI: página principal: ocultar botón de Mover cuando los shares de usuario no están habilitados +- WebGUI: Multi-idioma: Error de regresión corregido: indicador de campos obligatorios faltante +- WebGUI: Multi-idioma: Corregir no poder eliminar / editar usuarios +- WebGUI: Configuración de red: mostrar el primer servidor DNSv6 +- WebGUI: Red: permitir valor de métrica de cero para establecer sin gateway predeterminado +- WebGUI: Red: corregir extensiones de privacidad no establecidas +- WebGUI: Nuevos Perms: Soporte para pools multi-cache +- WebGUI: Notificaciones: Solucionar hueco en blanco / negro +- WebGUI: Permitir configuración de sistema de archivos cuando la matriz esté iniciada para volúmenes no montables. +- WebGUI: Prevenir que "Añadir" vuelva a inglés al agregar un nuevo usuario con un nombre de usuario no válido +- WebGUI: Prevenir que nics enlazados se vinculen demasiado a vfio-pci +- WebGUI: Eliminar WG de Dashboard si no hay túneles definidos +- WebGUI: Mostrar mensaje cuando hay demasiados archivos para explorar +- WebGUI: Soporte de enlaces en notificaciones +- WebGUI: Suprimir enlace de Autofan en Dashboard si el plugin no está instalado +- WebGUI: Suprimir WG en Dashboard si no hay túneles definidos +- WebGUI: Cambiar Diagnósticos a socket web +- WebGUI: SysDevs - advertir si se deja la página sin guardar +- WebGUI: renovación de SysDevs con vinculación vfio-pci.cfg +- WebGUI: ventana de selección de caso tabulada +- WebGUI: Plugins de Tareas: Proveer Capacidad para definir Nombre\_De\_Visualización +- WebGUI: Actualizar Feedback.php +- WebGUI: Actualizar jGrowl a la versión 1.4.7 +- WebGUI: Actualizar noVNC a v1.2.0 +- WebGUI: Iconos de caso actualizados +- WebGUI: Usar diálogo de actualización de imagen para la entrada de actualización en el menú contextual de docker +- WebGUI: VM Manager: añadir 'virtio-win-0.1.189-1' a la lista de VirtIO-ISOs +- WebGUI: VM manager: corregir: cambiar de gráficos VM VNC a paso a través de GPU +- WebGUI: VM manager: añadir virtio-win-0.1.190-1 +- WebGUI: VM manager: nueva configuración "Modelo de Red" +- WebGUI: VMs: corregido: añadir NICs o montajes VirtFS a una VM está limitado +- WebGUI: VMs: corregido: en casos raros vdisk predetermina a Auto cuando debería ser Manual +- WebGUI: VMs: cambiar modelo de red por defecto a virtio-net +- WebGUI: VMs: manejo más intuitivo de la selección de imágenes +- WebGUI: evitar error de sintaxis php si el archivo fuente autov() no existe +- WebGUI: mejor manejo de múltiples nics con vfio-pci +- WebGUI: corregir ícono predeterminado del caso incorrecto en el formulario de inicio de sesión +- WebGUI: no intentar mostrar información SMART que cause spin-up para dispositivos que están apagados +- WebGUI: dockerMan: Permitir leer más en vista avanzada +- WebGUI: dockerMan: Solo permitir nombre compatible con docker +- WebGUI: dockerMan: Comienzo seleccionable al instalar +- WebGUI: corregir: jGrowl cubriendo botones +- WebGUI: corregir: mensaje de inicio de sesión al cambiar entre servidores +- WebGUI: otras mejoras misceláneas +- WebGUI: los pools no habilitados para las comparticiones de usuario no deben ser seleccionables para caché +- WebGUI: sanear entrada en tail\_log +- WebGUI: establecer ícono predeterminado de caso 'mid-tower' +- WebGUI: admitir el encendido/apagado y el monitoreo de temperatura de dispositivos no asignados +- WebGUI: desactivar el autocompletado de nombres de usuario en el formulario de inicio de sesión +- WebGUI: vm manager: preservar la configuración de puertos VNC +- WebGUI: vnc: añadir purga de caché del navegador + +["WireGuard" y el logo "WireGuard" son marcas registradas de Jason A. Donenfeld.](https://www.wireguard.com/) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md new file mode 100644 index 0000000000..bbe920fae0 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md @@ -0,0 +1,53 @@ +## Versión 6.9.1 2021-03-08 + +## Soluciones y Mejoras Notables de Errores + +Se solucionó el problema donde el código fuera de la utilidad de administración del SO de Unraid, al llamar a `smartctl`, configuraba condiciones en las que los dispositivos nunca se apagarían. Nota: todavía necesitas el [plugin de Spindown SAS](https://forums.unraid.net/topic/97351-plugin-spin-down-sas-drives/) de [@doron](https://forums.unraid.net/profile/8006-doron/) para soportar correctamente el apagado de dispositivos SAS. + +Para Docker: si un controlador de GPU cargado en el árbol resulta en la creación de nodos de dispositivo `/dev/dri/*`, establecemos permisos para estos nodos en `0777` para facilitar la integración de contenedores que usan GPU para la transcodificación. + +Escribiendo 'exit' en una ventana de Terminal ahora cerrará la ventana (¡yay!). + +Añadimos una cabecera 'no-cache' al acceso web NoVNC para que futuras versiones del Sistema Operativo Unraid ya no tengan componentes web obsoletos. + +Actualizado el paquete openssl a la versión 1.1.1j que tiene actualizaciones de seguridad. + +Actualizado el kernel de Linux a 5.10.21, una versión patch del kernel 5.10 LTS. + +Incluidos ajustes de configuración del kernel necesarios para incluir ciertos dispositivos de monitoreo de hardware y añadido soporte para nuevos dispositivos. + +### Actualizaciones de Controladores + +El controlador de GPU Nvidia se ha actualizado a 460.56 y debería funcionar con este núcleo 5.10.21. Por favor, instala el [plugin del controlador Nvidia](https://forums.unraid.net/topic/98978-plugin-nvidia-driver/) de [@ich777](https://forums.unraid.net/profile/72388-ich777/) para descargar e instalar este controlador. + +## Registro de Cambios vs. Unraid OS 6.9.0 + +#### Distro base + +- openssl: versión 1.1.1j (CVE-2021-23841 CVE-2021-23840) +- openssl-solibs: versión 1.1.1j +- ttyd: versión 1.6.3 + +#### Núcleo de Linux + +- versión 5.10.21 +- CONFIG\_WATCHDOG: Soporte para Temporizador Watchdog +- añadidos varios nuevos controladores hwmon + +#### Gestión + +- emhttp: monitorear estadísticas de partición en lugar de estadísticas de dispositivo en la lógica de apagado/encendido de disco +- rc.local: asegurar que existen los directorios requeridos en el dispositivo de arranque USB +- rc.local: para contenedores Docker: otorgar acceso a nodos de dispositivo gráfico /dev/dri/\* +- rc.nginx: añadir cabecera Cache-Control:nocache a novnc +- WebGUI: aumentar el búfer del syslog de 1000 a 3000 líneas +- WebGUI: Arreglo de la Aberración de Pantalla de SysDevs +- WebGUI: Diagnósticos: incluir archivos modprobe.d +- WebGUI: Diagnósticos: incluir go como go.txt +- WebGUI: Actualizar el texto de ayuda de seguridad de compartidos +- WebGUI: Despreciar enlaces de donación en plantillas en lugar de enlaces en perfiles CA +- WebGUI: Proteger interfaz de usuario de archivos .page inválidos +- WebGUI: Suprimir entradas multicast ipv6 en la visualización de la tabla de rutas +- WebGUI: sincronizar helptext.txt con repositorio lang-en\_US +- WebGUI: gestión de usuarios - desactivar el autocompletado de contraseña +- WebGUI: Tablero: Arreglar el color para la utilización del disco diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md new file mode 100644 index 0000000000..2ae68522cd --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md @@ -0,0 +1,47 @@ +## Versión 6.9.2 2021-04-07 + +### **Restricciones de Inicio de Sesión Fallidas** + +Para el inicio de sesión de WebGUI, ahora tienes 3 intentos de inicio de sesión por dirección IP antes de que se imponga un período de enfriamiento de 15 minutos. Además, la marca de tiempo de los tres últimos intentos de inicio de sesión fallidos por dirección IP se almacenan en archivos ubicados en `/var/log/pwfail/`. Tenga en cuenta que esto solo se aplica al inicio de sesión de WebGUI, no al SSH o telnet. + +### **Actualizaciones de Controladores** + +Actualizamos el controlador GPU del proveedor Nvidia a la versión 465.19.01. Usa este práctico +plugin del Desarrollador de la Comunidad +[@ich777](https://forums.unraid.net/profile/72388-ich777/) para facilitar la instalación del controlador correcto. + +## Registro de Cambios vs. Unraid OS 6.9.1 + +#### Distro base + +- docker: versión 20.10.5 +- fuse3: versión 3.10.2 +- nginx: versión 1.19.9 +- samba: versión 4.12.14 (CVE-2020-27840 CVE-2020-27840) + +#### Núcleo de Linux + +- versión 5.10.28 +- incluir todos los módulos CONFIG\_NF\_\* +- oot: realtek r8125: versión 9.005.01 + +#### Gestión + +- emhttpd: detectar activación de dispositivo fuera de banda +- shfs: añadir soporte a 'copy\_file\_range()' +- shfs: corregir 'mknod' creando un fifo +- WebGUI: inicio de sesión: implementar máximo de 3 intentos fallidos de inicio de sesión por intervalo de 15 minutos +- WebGUI: Corregir enlaces en notificaciones que no están presentes si se muestran en resumen +- WebGUI: Plugins: Mover plugins incompatibles a ../plugins-error +- WebGUI: Corregir CSRF faltante al eliminar el pool +- WebGUI: Corregir color .sweet-alert +- WebGUI: Ajustes de traducciones +- WebGUI: Diagnósticos: Prevenir doble clic en el botón de descarga +- WebGUI: Corregir umbrales de uso predeterminados que no envían notificación +- WebGUI: Corregir color de fondo de CSS span.select +- WebGUI: Hacer mensajes de diagnóstico alineados a la izquierda +- WebGUI: Error de JavaScript fijo en DeviceInfo.page que impedía guardar configuraciones +- WebGUI: Actualización de DeviceInfo.page +- WebGUI: Prevenir autocompletado de contraseñas en contenedores +- WebGUI: Docker: No permitir fijación de CPU si no hay plantilla presente +- WebGUI: Corregir color .sweet-alert .sa-icon, \* en el CSS diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md new file mode 100644 index 0000000000..418c94658c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md @@ -0,0 +1,878 @@ +# Versión 7.0.0 2025-01-09 + +Esta versión de Unraid OS incluye mejoras significativas en todos los subsistemas, mientras se intenta +mantener la compatibilidad con versiones anteriores tanto como sea posible. + +Agradecimientos especiales a: + +- @bonienl, @dlandon, @ich777, @JorgeB, @SimonF y @Squid por su dirección, apoyo y desarrollo + en este lanzamiento +- @bonienl por integrar su plugin **Dynamix File Manager** en el WebGUI +- @Squid por integrar sus plugins **GUI Search** y **Unlimited Width Plugin** en el WebGUI +- @ludoux (plugin **Proxy Editor**) y @Squid (plugin **Community Applications**) por ser pioneros en el trabajo del soporte de proxy HTTP, del cual se han incorporado varias ideas al webgui +- @ich777 por mantener los plugins de controladores de terceros, y por la [integración Tailscale Docker](#tailscale-integration) +- @SimonF por características nuevas significativas en el Gestor de VM de Unraid OS +- @EDACerton por el desarrollo del plugin Tailscale + +Ver los [contribuyentes de Unraid en GitHub](https://github.com/unraid/webgui/graphs/contributors?from=2023-09-08\&to=2025-01-08\&type=c) +con saludos a estos miembros de la comunidad que han contribuido PRs (estos son ids de GitHub): + +- almightyYantao +- baumerdev +- Commifreak +- desertwitch +- dkaser +- donbuehl +- FunkeCoder23 +- Garbee +- jbtwo +- jski +- Leseratte10 +- Mainfrezzer +- mtongnz +- othyn +- serisman +- suzukua +- thecode + +Y gracias sinceras a todos aquellos que han solicitado características, reportado errores y probado +versiones previas. + +## Actualización + +### Problemas conocidos + +#### Pools ZFS + +Si está utilizando pools de ZFS, por favor tome nota de lo siguiente: + +- Verás una advertencia sobre características no soportadas en tus pools ZFS existentes. Esto es porque la + versión de ZFS en la 7.0 se ha actualizado en comparación con la 6.12 y contiene nuevas características. Esta advertencia es inofensiva, lo que significa + que tu pool seguirá funcionando normalmente. Aparecerá un botón que te permitirá actualizar un pool para soportar las nuevas características de ZFS; + sin embargo, Unraid OS no hace uso de estas nuevas características, y una vez actualizada, las versiones anteriores de Unraid OS no podrán montar el pool. +- De manera similar, los nuevos pools creados en 7.0 no se montarán en 6.12 debido a que ZFS no admite degradaciones. No hay forma de + evitar esto. +- Si decides degradar de 7.0 a 6.12, cualquier pool híbrido existente previamente no + será reconocido al reiniciar en 6.12. Para solucionar esto, primero haz clic en Herramientas/Nueva Configuración en 7.0, preservando + todas las ranuras, luego reinicia en 6.12 y tus pools híbridos deberían importarse correctamente. +- Los repuestos ZFS no son soportados en este lanzamiento. Si has creado un pool híbrido en 6.12 que incluye repuestos, + por favor, elimina el vdev de 'repuestos' antes de actualizar a v7.0. Esto se solucionará en un lanzamiento futuro. +- Actualmente no se pueden importar pools de TrueNAS. Esto se solucionará en una futura versión. +- Si está usando **Docker data-root=directorio** en un volumen ZFS, vea [Agregar soporte para controlador de almacenamiento overlay2](#add-support-for-overlay2-storage-driver). +- Verificamos que los nombres de VM no incluyan caracteres que no sean válidos para ZFS. Las VM existentes no se modifican + pero generarán un error y desactivarán la actualización si se encuentran caracteres no válidos. + +#### Problemas generales de conjunto + +Si tus pools existentes no se pueden importar con *Estado de Pool Incorrecto, expansión inválida* o *Estado de pool Incorrecto. Demasiados dispositivos incorrectos o faltantes*, vea este [post del foro](https://forums.unraid.net/topic/184435-unraid-os-version-700-available/#findComment-1508012). + +#### Problemas de spin-down de discos + +Es posible que las unidades no se apaguen cuando están conectadas a controladores de unidad Marvell más antiguos que usen el controlador sata\_mv (es decir, Supermicro SASLP y SAS2LP) o a controladores Intel más antiguos (es decir, ICH7-ICH10). Esto puede resolverse mediante una futura actualización del kernel. + +#### Actividad excesiva de la unidad flash ralentiza el sistema + +Si el sistema está funcionando lentamente, verifica la página Principal y comprueba si muestra lecturas continuas significativas desde la unidad flash durante la operación normal. De ser así, el sistema puede estar experimentando suficiente presión de memoria para expulsar el SO de la RAM y hacer que se vuelva a leer desde la unidad flash. Desde el terminal web escribe: + +```shell +touch /boot/config/fastusr +``` + +y luego reinicia. Esto utilizará alrededor de 500 MB de RAM para asegurar que los archivos del SO siempre se mantengan en memoria. Por favor, háganos saber si esto ayuda. + +#### Los nuevos cambios en Windows pueden resultar en la pérdida de acceso a acciones públicas + +Debido a los recientes cambios de seguridad en Windows 11 24H2, el acceso "invitado" a las comparticiones públicas de Unraid puede no funcionar. La forma más sencilla de solucionar esto es crear un usuario en Unraid con el mismo nombre que la cuenta de Windows que estás usando para conectarte. Si la contraseña de usuario de Unraid no es la misma que la contraseña de la cuenta de Windows, Windows solicitará credenciales. + +Si está usando una cuenta de Microsoft, puede ser mejor crear un usuario en Unraid con un nombre de usuario simple, establecer una contraseña, luego en Windows ir a ***Panel de Control → Administrador de Credenciales → Credenciales de Windows → Agregar una Credencial de Windows*** y añadir el nombre del servidor Unraid y credenciales correctos. + +Alternativamente puede [re-habilitar el retroceso de invitado de Windows](https://techcommunity.microsoft.com/blog/filecab/accessing-a-third-party-nas-with-smb-in-windows-11-24h2-may-fail/4154300) (no recomendado). + +#### Problemas debido a tarjetas de red Realtek + +Ha habido múltiples informes de problemas con el complemento del controlador Realtek tras actualizar a versiones recientes del núcleo. Tal vez desees desinstalarlo preventivamente antes de actualizar o eliminarlo después si tienes problemas de red. + +#### Se está asignando una NIC virtual a eth0 en ciertos sistemas + +En algunos sistemas con IPMI KVM, se está asignando una NIC virtual a eth0 en lugar de la NIC esperada. Consulte este [post del foro](https://forums.unraid.net/bug-reports/stable-releases/61214-no-network-after-updating-eth0-assigned-to-virtual-usb-nic-cdc-ethernet-device-with-169-ip-instead-of-mellanox-10gbe-nic-r3407/) para opciones. + +#### Problemas usando redes personalizadas de Docker + +Si algunas redes personalizadas de Docker no están disponibles para su uso por sus contenedores Docker, navegue a ***Configuración → Docker*** y corrija las +definiciones CIDR para la máscara de subred y el grupo DHCP en esas redes personalizadas. Los sistemas subyacentes se han vuelto más estrictos y las definiciones CIDR inválidas que funcionaban en versiones anteriores ya no funcionan. + +### Deshacer cambios + +Consulte las advertencias bajo **Problemas Conocidos** arriba. + +El administrador de archivos Dynamix, la búsqueda GUI y los plugins Unlimited Width Plugin ahora están integrados en Unraid. Si retrocedes a una versión anterior, necesitarás reinstalar esos plugins para mantener su funcionalidad. + +Si desactivó el array unRAID, recomendamos volver a activarlo antes de restaurar. + +Si previamente tenía configurados proxies salientes utilizando el plugin Proxy Editor u otro mecanismo, necesitará volver a habilitar +ese mecanismo después de restaurar. + +Si restaura después de habilitar el [controlador de almacenamiento overlay2](#add-support-for-overlay2-storage-driver), +necesitará eliminar el directorio Docker y permitirle a Docker volver a descargar las capas de imagen. + +Si restaura después de instalar [Tailscale en un contenedor Docker](#tailscale-integration), necesitará editar el +contenedor, hacer un cambio ficticio y **Aplicar** para reconstruir el contenedor sin la integración Tailscale. + +Después de restaurar, haga un cambio ficticio en cada configuración de WireGuard para obtener los ajustes apropiados para esa versión de Unraid. + +Si restaura antes de la 6.12.14, también vea las [notas de la versión 6.12.14](6.12.14.md#rolling-back). + +## Almacenamiento + +### array unRAID opcional + +Ahora puedes establecer el número de slots del array de unRAID a 'ninguno'. Esto permitirá que el array comience sin ningún dispositivo asignado al array de unRAID. + +Si está ejecutando un servidor todo-SSD/NMVe, recomendamos asignar todos los dispositivos a uno o más +conjuntos ZFS/BTRFS, ya que Trim/Descartar no es soportado con dispositivos de array unRAID. + +Para desasignar el array unRAID de un servidor existente, primero desasigne todas las ranuras del Array +en la página Principal, y luego configure las Ranuras a 'ninguna'. + +Para nuevas instalaciones, el número predeterminado de ranuras a reservar para el array unRAID ahora es 'ninguna'. + +### Almacenamiento secundario compartido puede asignarse a un conjunto + +Las comparticiones ahora pueden configurarse con conjuntos para tanto almacenamiento primario como secundario, y el +movedor moverá archivos entre esos conjuntos. + +### La opción de sistema de archivos ReiserFS ha sido deshabilitado + +Dado que se ha programado la eliminación de ReiserFS del núcleo de Linux, también se ha desactivado la opción de formatear un dispositivo con ReiserFS. Puede usar esta función de mover para vaciar un disco del array antes de reformatearlo con otro sistema de archivos, vea abajo. Agregaremos un botón webGUI para esto en una futura versión. + +### Usando 'mover' para vaciar un disco del array + +Mover ahora se puede usar para vaciar un disco del array. Con el array iniciado, ejecute esto en un terminal web: + +```bash +mover start -e diskN |& logger & # donde N es [1..28] +``` + +Mover mirará cada director de nivel superior (compartición) y luego moverá archivos uno por uno a otros discos en el array, siguiendo las configuraciones de forma habitual (incluir/excluir, nivel de división, método de asignación). Los objetivos de movimiento están restringidos solo al array de unRAID. + +Observe el syslog para ver el estado. Cuando el proceso del mover termine, el syslog mostrará una lista de archivos que no pudieron ser movidos: + +- tal vez el archivo estaba en uso +- tal vez el archivo está en el nivel superior de /mnt/diskN +- tal vez nos quedamos sin espacio + +### Manejo de comparticiones predefinidas + +El Gestor de Docker de Unraid OS está configurado por defecto para usar estas comparticiones predefinidas: + +- sistema - utilizado para guardar capas de imagen de Docker en una imagen de bucle almacenada en sistema/docker. +- appdata - utilizado por aplicaciones Docker para guardar datos de aplicación. + +El Gestor de VM de Unraid OS está configurado por defecto para usar estas comparticiones predefinidas: + +- sistema - utilizado para guardar la imagen de bucle libvirt almacenada en sistema/libvirt +- dominios - utilizado para almacenar imágenes vdisk de VM +- isos - utilizado para guardar imágenes de arranque ISO + +Cuando Docker o las VMs están habilitados, las comparticiones predefinidas requeridas se crean si es necesario +según estas reglas: + +- si hay un pool llamado 'caché', se crean comparticiones predefinidas con 'caché' como el almacenamiento principal sin almacenamiento secundario. +- si no hay un pool llamado 'caché', las comparticiones predefinidas se crean con el primer + pool presente alfabéticamente como Principal sin almacenamiento Secundario. +- si no hay pools presentes, las comparticiones predefinidas se crean en el array de Unraid como Principal sin + almacenamiento Secundario. + +### Implementación de ZFS + +- Soporte para conjuntos híbridos ZFS también conocidos como subconjuntos (excepto 'repuestos') +- Soporte para recuperación de fallas múltiples de disco en un conjunto ZFS con suficiente protección +- Soporte para encriptación LUKS en conjuntos y discos ZFS +- Establecer perfiles predeterminados razonables para nuevos conjuntos y subconjuntos ZFS +- Soporte para actualizar pools ZFS al ver el estado del pool. Nota: después de la actualización, el volumen puede no ser montable en versiones anteriores de Unraid. + +### Perfiles de asignación para btrfs, zfs y subconjuntos zfs + +Cuando se crea un conjunto/subconjunto btrfs o zfs, la asignación de almacenamiento por defecto se +determina por el número de ranuras (dispositivos) inicialmente asignadas al conjunto: + +- para el conjunto principal (raíz) de zfs: + - ranuras == 1 => único + - ranuras == 2 => espejo (1 grupo de 2 dispositivos) + - ranuras >= 3 => raidz1 (1 grupo de dispositivos 'ranuras') + +- para los subconjuntos especiales, logs y deduplicación de zfs: + - ranuras == 1 => único + - ranuras%2 == 0 => espejo (ranuras/2 grupos de 2 dispositivos) + - ranuras%3 == 0 => espejo (ranuras/3 grupos de 3 dispositivos) + - de lo contrario => raja (1 grupo de 'ranuras' dispositivos) + +- para los subconjuntos de caché y repuesto de zfs: + - ranuras == 1 => único + - ranuras >= 2 => raja (1 grupo de 'ranuras' dispositivos) + +- para conjuntos btrfs: + - ranuras == 1 => único + - ranuras >= 2 => raid1 (es decir, lo que btrfs llama "raid1") + +### Consideraciones de conjuntos + +Al agregar dispositivos a (expandiendo) un conjunto de una sola ranura, se aplican estas reglas: + +Para btrfs: agregar uno o más dispositivos a un pool de un solo slot resultará en convertir el pool a raid1 (es decir, lo que btrfs define como raid1). Agregar cualquier número de dispositivos a un pool btrfs de slots múltiples aumenta la capacidad de almacenamiento del pool y no cambia el perfil de almacenamiento. + +Para zfs: agregar uno, dos o tres dispositivos a un pool de un solo slot resultará en convertir el pool a espejo de 2, 3 o 4 vías. Agregar un solo dispositivo a un espejo existente de 2 o 3 vías convierte el pool a un espejo de 3 o 4 vías. + +Cambiando el tipo de sistema de archivo de un conjunto: + +Para todas las pools de una sola ranura, el tipo de sistema de archivos puede cambiarse cuando la matriz está Detenida. + +Para pools btrfs/zfs de múltiples slots, el tipo de sistema de archivos no se puede cambiar. Para reutilizar los dispositivos debes hacer clic en el botón Borrar pool. + +### Otras características + +- Agregar dispositivos de un grupo para subir/bajar en paralelo +- Agregar botón "Eliminar Pool", que desasigna todos los dispositivos de un pool y luego elimina el pool. Los dispositivos + en sí no se modifican. Esto es útil al eliminar físicamente dispositivos de un servidor. +- Agregar capacidad para cambiar frase de cifrado/archivo de clave para discos cifrados con LUKS +- Introducir la variable 'shareNOFILE' en 'config/share.cfg' que establece el máximo de descriptores de archivos abiertos para el proceso shfs (ver los Problemas Conocidos) + +## Gestor de VM + +### Mejoras + +Soporte agregado para clones de VM, instantáneas y evdev passthru. + +El editor de VM ahora tiene un nuevo modo de XML en línea de solo lectura para usuarios avanzados, lo que clarifica cómo las elecciones en la GUI afectan el XML subyacente utilizado por la VM. + +Un gran agradecimiento a @SimonF por sus mejoras continuas a las VMs. + +### Otros cambios + +- **Pestaña VM** + - Mostrar todas las tarjetas gráficas y direcciones IP asignadas a las VMs + - versión noVNC: 1.5 +- **Configuración del Gestor de VM** + - Opción añadida para desactivar el inicio automático de VM +- **Agregar/editar plantilla de VM** + - Opción agregada "vista xml en línea" + - Soporte para plantillas de VM creadas por el usuario + - Agregar objetivo qemu ppc64 + - Agregar soporte para qemu:override + - Agregar función "paso directo de línea de comandos QEMU" + - Agregar soporte multifucción para VM, incluyendo "PCI Otros" + - Mejoras en la plantilla de VM para Windows VMs, incluyendo soporte hypervclock + - Agregar opción "migratable" activada/desactivada para CPU emulada + - Agregar soporte de desplazamiento y temporizador + - Agregar opción sin mapa de teclado y establecer el teclado virtual por defecto de la GPU para usarlo + - Agregar opción nogpu + - Agregar soporte SR-IOV para iGPU de Intel + - Agregar reemplazo de almacenamiento para especificar dónde se crean las imágenes al agregar VM + - Agregar bandera SSD para vdisks + - Agregar soporte Unmap + - Comprobar que el nombre de la VM no incluya caracteres que no son válidos para ZFS. +- **Panel de control** + - Agregar estadísticas de uso de VM al panel de control, habilitar en ***Configuración → Gestor de VM → Mostrar Uso de VM*** + +## Docker + +### Prevención de fork bomb en Docker + +Para prevenir "fork bombs de Docker" hemos introducido una nueva configuración, ***Configuración → Docker → Límite de PID de Docker***, que especifica el número máximo de ID de proceso que cualquier contenedor puede tener activo (con el valor predeterminado de 2048). + +Si tienes un contenedor que requiere más PID, puedes aumentar esta configuración o puedes anular para un contenedor específico agregando, por ejemplo, `--pids-limit 3000` a la configuración de *Parámetros Extra* de Docker. + +### Soporte añadido para el controlador de almacenamiento overlay2 + +Si estás usando **directorio data-root de Docker** en un volumen ZFS, te recomendamos que vayas a +***Configuración → Docker*** y cambies el **controlador de almacenamiento de Docker** a **overlay2**, +luego borres el contenido del directorio y permitas que Docker vuelva a descargar las capas de la imagen. La configuración **nativa** heredada causa problemas significativos de estabilidad en volúmenes ZFS. + +Si es importante mantener la capacidad de degradar a versiones anteriores, cambie a **Docker data-root=xfs vDisk** en su lugar. + +### Otros cambios + +- Consulta [Integración con Tailscale](#tailscale-integration) +- Permitir registro personalizado con especificación de puerto +- Usar desmontaje "perezoso" del contenedor de Docker para evitar el bloqueo del apagado del array +- Actualizado para abordar múltiples problemas de seguridad (CVE-2024-21626, CVE-2024-24557) +- Gestor de Docker: + - Permitir a los usuarios seleccionar redes de Contenedor en el WebUI + - Identificar/mostrar correctamente los contenedores no gestionados por dockerman +- rc.docker: + - Detener solo contenedores gestionados por Unraid + - Respetar política de reinicio de contenedores de terceros +- Establecer MTU del puente Docker Wireguard para que coincida con el MTU predeterminado de Wireguard + +## Red + +### Integración de Tailscale + +El sistema operativo Unraid soporta [Tailscale](https://tailscale.com/) a través del uso de un plugin creado por el desarrollador de la comunidad EDACerton. Cuando este plugin está instalado, los certificados Tailscale son compatibles para el acceso https a WebGUI, y las URLs de Tailnet se mostrarán en la página ***Configuración → Acceso de Administración***. + +Y en Unraid de forma nativa, puedes instalar opcionalmente Tailscale en casi cualquier contenedor Docker, brindándote la capacidad de compartir contenedores con personas específicas, accediendo a ellos utilizando certificados https válidos, y dándoles rutas alternas a Internet a través de Nodos de Salida. + +Para más detalles, consulta [la documentación](../system-administration/secure-your-server/tailscale.mdx) + +### Soporte para incrustar el webGUI + +Se ha agregado soporte "Content-Security-Policy frame-ancestors" para permitir automáticamente que el webGUI sea enmarcado por dominios para los cuales tiene certificados. No está exactamente soportado, pero es posible una personalización adicional utilizando un script para modificar +NGINX\_CUSTOMFA en `/etc/defaults/nginx` + +### Otros cambios + +- Actualizado a OpenSSL 3 +- Permitir todas las direcciones IPv4/IPv6 como oyente. Esto resuelve el problema cuando las direcciones IPv4 o IPv6 cambian dinámicamente. +- Samba: + - Agregar dirección de escucha IPv6 solo cuando NetBIOS está deshabilitado + - Corrección de MacOS no puede escribir en 'flash' y restaurar la compatibilidad de Time Machine (cambios de fruit) +- El administrador de VPN ahora agrega todas las interfaces a los túneles WireGuard, haz un cambio menor en el túnel después + de actualizar o cambiar la configuración de red para actualizar las configuraciones del túnel WireGuard. + +## webGUI + +### Plugin de Gestor de Archivos Dynamix integrado + +Haga clic en el icono del gestor de archivos y navegue a través de su estructura de directorios con la capacidad de realizar operaciones comunes como copiar, mover, eliminar y renombrar archivos y directorios. + +### Plugin de Búsqueda GUI integrado + +Haz clic en el ícono de búsqueda en la Barra de Menú y escribe el nombre de la configuración que estás buscando. + +### Administrador de Proxy Saliente + +Si anteriormente usaste el plugin Editor de Proxy o tenías una configuración de proxy saliente para CA, +estos serán eliminados/importados automáticamente. Luego puedes ajustarlos en ***Configuración → Administrador de Proxy Saliente***. + +Para más detalles, consulta el [manual](../system-administration/secure-your-server/secure-your-outgoing-comms.mdx). + +Nota: esta característica no está relacionada con ninguno de los proxies inversos que puedas usar. + +### Agentes de Notificación + +Los agentes de notificación xml ahora se almacenan como archivos xml individuales, lo que facilita +la adición de agentes de notificación a través de plugins. + +Consulta este [plugin de ejemplo](https://github.com/Squidly271/Wxwork-sample) de @Squid + +- corrección: Las notificaciones del agente no funcionan si hay un problema con las notificaciones por correo electrónico. + +### Configuración de NTP + +Para nuevas instalaciones, un único servidor NTP predeterminado está configurado a 'time.google.com'. + +Si tu servidor está usando nuestros valores predeterminados anteriores de NTP de time1.google.com, time2.google.com, etc., puedes notar algunos mensajes confusos relacionados al NTP en tu syslog. Para evitar esto, considera cambiar a nuestros nuevos valores predeterminados: navega a ***Configuración → Fecha y Hora*** y configura **servidor NTP 1** en time.google.com, dejando todas las demás en blanco. + +Por supuesto, eres libre de usar cualquier servidor de tiempo que prefieras, esto es solo para informarte que hemos +ajustado nuestros valores predeterminados. + +### Compartidos NFS + +Hemos añadido algunos ajustes nuevos para ayudar a resolver problemas con las comparticiones NFS. En ***Configuración → Configuración Global de Compartición*** puedes ajustar el número de descriptores de archivos fuse y en ***Configuración → NFS*** puedes ajustar la versión del protocolo NFS y el número de hilos que utiliza. Consulta la ayuda en línea para más detalles. + +- Soporte agregado para NFS 4.1 y 4.2, y se permiten montajes NFSv4 por defecto +- Agregar un cuadro de texto para configurar reglas NFS multilínea +- Corrección de error: nfsd no se reinicia correctamente + +### Panel de Control + +- Agregar fecha y hora del servidor al Panel; haz clic en el tiempo para editar configuraciones relacionadas +- Reorganizar el mosaico **Sistema** para aclarar qué se está mostrando, incluyendo tooltips +- Mostrar contenido útil cuando los azulejos del panel están minimizados +- Mostrar uso de RAM Docker en el Panel de control + - Agregar uso de RAM de Docker al Panel de control + - Renombrar 'Servicios' a 'Sistema' +- Corrección de fuga de memoria en las páginas del Panel de control, Gestor de VM y Gestor de Docker + +### Mejoras SMART + +- Mostrar KB/MB/GB/TB escritos en Atributos SMART para SSDs +- Agregar atributo SMART 'Resistencia restante del SSD'. + +### Diagnósticos + +- Agregar gpujson de gpu\_statistics a los diagnósticos +- Mejorar la anonimización de los registros de LXC +- Si el plugin FCP está instalado, correr escaneo durante los diagnósticos +- Agregar phplog para identificar errores PHP +- Mejorar la anonimización de direcciones IPv6 +- Se ha eliminado ps.txt porque exponía contraseñas en la lista de procesos + +### Otros cambios + +- Soporte para diferentes umbrales de temperatura advertencia/crítico para discos HDD/SSD/NVMe. Los umbrales NVMe se establecen automáticamente por la propia unidad, consulta ***Configuración → Configuración de Discos*** para establecer los umbrales para HDDs y SSDs. Todos estos aún pueden ser sobreescritos para discos individuales. +- Agregar página de ***Configuración → Configuración de Consola Local*** con opciones para el diseño de teclado, tiempo de apagado de pantalla y el historial persistente de Bash +- Agregar ***Configuración → Modo de Energía*** para optimizar el sistema para eficiencia de energía, balanceado o rendimiento +- Pasa el cursor sobre una entrada en **Herramientas** y **Configuraciones** para marcar un elemento como favorito y regresar rápidamente a él en la nueva página de nivel superior de **Favoritos**. + O desactiva la funcionalidad de Favoritos en \***Configuración → Configuración de Pantalla**. +- Pantalla de apagado/reinicio mejorada mostrando más detalles del proceso +- Simplificar notificaciones eliminando submenús - Ver, Historial y Reconocer ahora aplican a todos los tipos de notificación +- Mover configuraciones de fecha y hora de **Configuración de Pantalla** a ***Configuración → Configuración de Fecha y hora*** +- ***Configuración → Configuración de Pantalla***: nueva configuración "ancho" para aprovechar pantallas más grandes +- Opcionalmente mostrar el uso de energía NVMe; consulta ***Configuración → Configuración de Disco*** +- Mejoras en componentes web – degradaciones, actualizaciones y registro +- Prevenir la formateación de nuevas unidades como ReiserFS +- Usar escrituras atómicas para actualizaciones de archivos de configuración +- Cambios en la configuración de grupos ZFS: + - Crear descripciones significativas de subgrupos ZFS + - Cambiar el texto del perfil ZFS 'raid0' a 'stripe' +- Agregar opciones adicionales de smartmontools de paso directo de dispositivos USB a webgui (gracias al usuario de GitHub jski) +- Página de Configuración de UPS (gracias a @othyn): + - Agregar la capacidad de configurar una capacidad manual de UPS. +- UserEdit: además de Ed25519, FIDO/U2F Ed25519, y RSA, soporte para tipos de clave SSH DSA, ECDSA, y FIDO/U2F ECDSA +- OpenTerminal: usar shell definido para el usuario root en el archivo /etc/passwd +- Mostrar siempre la opción "eliminar compartición", pero deshabilitarla cuando la compartición no esté vacía + +## Varios + +### Otros cambios + +- Reemplazar memtest muy antiguo con versión Memtest86+ 6.20 + - También hay [Opciones de Arranque](https://github.com/memtest86plus/memtest86plus#boot-options) disponibles +- Eliminar soporte para certificados unraid.net heredados +- Eliminar funcionalidad "Actualizar DNS" ya que no se utilizan más certificados SSL de 'unraid.net' no comodín +- Quitar información de proxy y '&' del script go +- Corrección de manejo de archivo passwd +- Cuando el avahidaemon está en funcionamiento, agregar nombre.local al archivo de hosts +- Quitar keys.lime-technology.com del archivo hosts +- rc.S: eliminar wsync de montaje XFS para prevenir que WebGUI se congele durante un I/O intenso en /boot +- make\_bootable\_linux: versión 1.4 + - detectar si mtools está instalado. +- ntp.conf: establecer 'logconfig' para ignorar LOG\_INFO +- Acelere las cosas: use la recarga de AVAHI en lugar de reiniciar +- Kernel de Linux: forzar que todas las carcasas USB externas defectuosas de Seagate se vinculen a usb-storage en lugar del controlador UAS +- Mejoras de inicio en el script rc.S: + - Reparación automática del respaldo del sector de arranque + - Desmontar explícitamente todos los sistemas de archivos si no se puede continuar el arranque + - Detectar valor raíz incorrecto en syslinux.cfg + - reiniciar no debería invocar el apagado + - Limpiar grupos de control vacíos +- Samba smb.conf: establecer "nmbd bind explicit broadcast = no" si NetBIOS está habilitado +- Agregar fastcgi\_path\_info a la configuración predeterminada de nginx +- Asegurarse de que las llamadas a pgrep o killall estén restringidas al espacio de nombres actual +- (Avanzado) Añadida la capacidad de aplicar reglas personalizadas de udev desde `/boot/config/udev/` al iniciar +- Corrección de error: Manejo correcto de Trial.key vacío cuando falla la descarga +- Corrección de error: Corregir advertencia de PHP para el estado de UPS +- Crear un archivo /etc/os-release significativo. +- Correcciones varias de traducción +- Corrección de errores: Se ha restaurado la funcionalidad de registro de la consola de JavaScript +- Al hacer clic en el número de versión de Unraid, se cargan las notas de la versión desde el sitio web de Unraid Docs + +## Núcleo de Linux + +- versión 6.6.68 + - CONFIG\_MISC\_RTSX\_PCI: Lector de tarjetas PCI-E Realtek + - CONFIG\_MISC\_RTSX\_USB: Lector de tarjetas USB Realtek + - CONFIG\_DRM\_XE: Intel Xe Graphics + - CONFIG\_DRM\_XE\_DISPLAY: Habilitar soporte de visualización + - CONFIG\_AUDIT: Soporte de Auditoría + - CONFIG\_USB\_SERIAL\_OPTION: Controlador USB para modems GSM y CDMA + - CONFIG\_USB\_SERIAL\_SIMPLE: Controlador USB Serial Simple + - CONFIG\_USB\_UAS: SCSI Adjunto USB + - CONFIG\_NFS\_V4\_1: soporte de cliente NFS para NFSv4.1 + - CONFIG\_NFS\_V4\_1\_MIGRATION: soporte de cliente NFSv4.1 para migración + - CONFIG\_NFS\_V4\_2: soporte de cliente NFS para NFSv4.2 + - CONFIG\_NFS\_V4\_2\_READ\_PLUS: NFS: habilitar soporte para la operación READ\_PLUS de NFSv4.2 + - CONFIG\_NFSD\_V4\_2\_INTER\_SSC: Copia inter servidor a servidor de NFSv4.2 + - CONFIG\_USB\_NET\_CDC\_EEM: Soporte EEM de CDC + - CONFIG\_USB\_NET\_CDC\_NCM: soporte CDC NCM + - CONFIG\_USB\_SERIAL\_XR: Controlador USB a Serial de MaxLinear/Exar USB + - CONFIG\_CAN: Soporte de subsistema de bus CAN + - CONFIG\_CAN\_NETLINK: Controladores de dispositivos CAN con soporte Netlink + - CONFIG\_CAN\_GS\_USB: Interfaces compatibles con Geschwister Schneider UG y candleLight + - CONFIG\_SCSI\_LPFC: Soporte de Canal de Fibra Emulex LightPulse + - CONFIG\_DRM\_VIRTIO\_GPU: Controlador GPU Virtio + - CONFIG\_DRM\_VIRTIO\_GPU\_KMS: Soporte para la configuración de modos del controlador GPU Virtio + - CONFIG\_LEDS\_TRIGGERS: Soporte de Activadores LED + - CONFIG\_LEDS\_TRIGGER\_ONESHOT: Activador LED de una sola vez + - CONFIG\_LEDS\_TRIGGER\_NETDEV: Activador LED para Netdev + - CONFIG\_QED: Controlador QLogic QED 25/40/100Gb + - CONFIG\_QED\_SRIOV: Soporte SR-IOV para QLogic QED 25/40/100Gb + - CONFIG\_QEDE: NIC Ethernet QLogic QED 25/40/100Gb + - CONFIG\_SCSI\_UFSHCD: Controlador de Almacenamiento Flash Universal + - CONFIG\_SCSI\_UFS\_BSG: Nodo de dispositivo BSG de Almacenamiento Flash Universal + - CONFIG\_SCSI\_UFS\_HWMON: Notificación de Temperatura UFS + - CONFIG\_SCSI\_UFSHCD\_PCI: Soporte para Controlador UFS basado en bus PCI + - CONFIG\_SCSI\_UFS\_DWC\_TC\_PCI: soporte pci DesignWare utilizando un Chip de Prueba G210 + - CONFIG\_SCSI\_UFSHCD\_PLATFORM: Soporte para Controlador UFS basado en bus de Plataforma + - CONFIG\_SCSI\_UFS\_CDNS\_PLATFORM: Controlador de plataforma UFS Cadence + - CONFIG\_SCSI\_QLA\_FC: Soporte de Canal de Fibra QLogic QLA2XXX + - CONFIG\_LIQUIDIO: Soporte LiquidIO de Cavium + - CONFIG\_LIQUIDIO\_VF: Soporte VF LiquidIO de Cavium + - CONFIG\_NTFS\_FS: Soporte de sistema de archivos NTFS \[eliminado - este es el antiguo módulo vfs solo de lectura] + - CONFIG\_NTFS3\_FS: Soporte de sistema de archivos NTFS de Lectura-Escritura + - CONFIG\_NTFS3\_LZX\_XPRESS: activar soporte para compresiones externas lzx/xpress + - CONFIG\_NTFS3\_FS\_POSIX\_ACL: Listas de Control de Acceso POSIX para NTFS + - CONFIG\_UHID: Soporte de controlador I/O de espacio de usuario para subsistema HID +- md/unraid: versión 2.9.33 + - arreglar regresión: las ranuras vacías antes de la primera ranura ocupada devuelven NO\_DEVICES + - corregir el manejo de fallos del dispositivo durante la reconstrucción/sincronización +- soporte XEN eliminado + +## Distro base + +- aaa\_base: versión 15.1 +- aaa\_glibc-solibs: versión 2.40 +- aaa\_libraries: versión 15.1 +- acl: versión 2.3.2 +- acpid: versión 2.0.34 +- adwaita-icon-theme: versión 47.0 +- apcupsd: versión 3.14.14 +- appres: versión 1.0.7 +- at: versión 3.2.5 +- at-spi2-atk: versión 2.38.0 +- at-spi2-core: versión 2.54.0 +- atk: versión 2.38.0 +- attr: versión 2.5.2 +- avahi: versión 0.8 +- bash: versión 5.2.037 +- bash-completion: versión 2.16.0 +- beep: versión 1.3 +- bin: versión 11.1 +- bind: versión 9.20.4 +- bluez-firmware: versión 1.2 +- bridge-utils: versión 1.7.1 +- brotli: versión 1.1.0 +- btrfs-progs: versión 6.12 +- bzip2: versión 1.0.8 +- ca-certificates: versión 20241120 +- cairo: versión 1.18.2 +- celt051: versión 0.5.1.3 +- cifs-utils: versión 7.1 +- coreutils: versión 9.5 +- cpio: versión 2.15 +- cpufrequtils: versión 008 +- cracklib: versión 2.10.3 +- cryptsetup: versión 2.7.5 +- curl: versión 8.11.1 +- cyrus-sasl: versión 2.1.28 +- db48: versión 4.8.30 +- dbus: versión 1.16.0 +- dbus-glib: versión 0.112 +- dcron: versión 4.5 +- dejavu-fonts-ttf: versión 2.37 +- devs: versión 2.3.1 +- dhcpcd: versión 10.0.10 +- diffutils: versión 3.10 +- dmidecode: versión 3.6 +- dnsmasq: versión 2.90 +- docker: versión 27.0.3 +- dosfstools: versión 4.2 +- e2fsprogs: versión 1.47.1 +- ebtables: versión 2.0.11 +- editres: versión 1.0.9 +- elfutils: versión 0.192 +- elogind: versión 255.5 +- elvis: versión 2.2\_0 +- encodings: versión 1.1.0 +- etc: versión 15.1 +- ethtool: versión 5.19 +- eudev: versión 3.2.14 +- file: versión 5.46 +- findutils: versión 4.10.0 +- flex: versión 2.6.4 +- floppy: versión 5.5 +- fluxbox: versión 1.3.7 +- fontconfig: versión 2.15.0 +- freeglut: versión 3.6.0 +- freetype: versión 2.13.3 +- fribidi: versión 1.0.16 +- fuse3: versión 3.16.2 +- gawk: versión 5.3.1 +- gd: versión 2.3.3 +- gdbm: versión 1.24 +- gdk-pixbuf2: versión 2.42.12 +- genpower: versión 1.0.5 +- git: versión 2.47.1 +- glew: versión 2.2.0 +- glib2: versión 2.82.4 +- glibc: versión 2.40 +- glibc-zoneinfo: versión 2024b +- glu: versión 9.0.3 +- gmp: versión 6.3.0 +- gnutls: versión 3.8.8 +- gptfdisk: versión 1.0.10 +- graphite2: versión 1.3.14 +- grep: versión 3.11 +- gtk+3: versión 3.24.43 +- gzip: versión 1.13 +- harfbuzz: versión 10.1.0 +- hdparm: versión 9.65 +- hicolor-icon-theme: versión 0.18 +- hostname: versión 3.25 +- htop: versión 3.3.0 +- hwloc: versión 2.2.0 +- icu4c: versión 76.1 +- imlib2: versión 1.7.1 +- inetd: versión 1.79s +- infozip: versión 6.0 +- inih: versión 58 +- inotify-tools: versión 4.23.9.0 +- intel-microcode: versión 20241112 +- iperf3: versión 3.17.1 +- iproute2: versión 6.12.0 +- iptables: versión 1.8.11 +- iputils: versión 20240905 +- irqbalance: versión 1.7.0 +- jansson: versión 2.14 +- jemalloc: versión 5.3.0 +- jq: versión 1.6 +- json-c: versión 0.18\_20240915 +- json-glib: versión 1.10.6 +- kbd: versión 2.7.1 +- kernel-firmware: versión 20241220\_9e1d9ae +- keyutils: versión 1.6.3 +- kmod: versión 33 +- krb5: versión 1.21.3 +- lbzip2: versión 2.5 +- less: versión 668 +- libICE: versión 1.1.2 +- libSM: versión 1.2.5 +- libX11: versión 1.8.10 +- libXau: versión 1.0.12 +- libXaw: versión 1.0.16 +- libXcomposite: versión 0.4.6 +- libXcursor: versión 1.2.3 +- libXdamage: versión 1.1.6 +- libXdmcp: versión 1.1.5 +- libXevie: versión 1.0.3 +- libXext: versión 1.3.6 +- libXfixes: versión 6.0.1 +- libXfont2: versión 2.0.7 +- libXfontcache: versión 1.0.5 +- libXft: versión 2.3.8 +- libXi: versión 1.8.2 +- libXinerama: versión 1.1.5 +- libXmu: versión 1.2.1 +- libXpm: versión 3.5.17 +- libXrandr: versión 1.5.4 +- libXrender: versión 0.9.12 +- libXres: versión 1.2.2 +- libXt: versión 1.3.1 +- libXtst: versión 1.2.5 +- libXxf86dga: versión 1.1.6 +- libXxf86misc: versión 1.0.4 +- libXxf86vm: versión 1.1.6 +- libaio: versión 0.3.113 +- libarchive: versión 3.7.7 +- libcap-ng: versión 0.8.5 +- libcgroup: versión 0.41 +- libdaemon: versión 0.14 +- libdeflate: versión 1.23 +- libdmx: versión 1.1.5 +- libdrm: versión 2.4.124 +- libedit: versión 20240808\_3.1 +- libepoxy: versión 1.5.10 +- libestr: versión 0.1.9 +- libevdev: versión 1.13.3 +- libevent: versión 2.1.12 +- libfastjson: versión 0.99.9 +- libffi: versión 3.4.6 +- libfontenc: versión 1.1.8 +- libgcrypt: versión 1.11.0 +- libglvnd: versión 1.7.0 +- libgpg-error: versión 1.51 +- libgudev: versión 238 +- libidn: versión 1.42 +- libjpeg-turbo: versión 3.1.0 +- liblogging: versión 1.0.6 +- libmnl: versión 1.0.5 +- libnetfilter\_conntrack: versión 1.1.0 +- libnfnetlink: versión 1.0.2 +- libnftnl: versión 1.2.8 +- libnl3: versión 3.11.0 +- libnvme: versión 1.11.1 +- libpcap: versión 1.10.5 +- libpciaccess: versión 0.18.1 +- libpng: versión 1.6.44 +- libpsl: versión 0.21.5 +- libpthread-stubs: versión 0.5 +- libseccomp: versión 2.5.5 +- libssh: versión 0.11.1 +- libssh2: versión 1.11.1 +- libtasn1: versión 4.19.0 +- libtiff: versión 4.7.0 +- libtirpc: versión 1.3.6 +- libtpms: versión 0.9.0 +- libunistring: versión 1.3 +- libunwind: versión 1.8.1 +- libusb: versión 1.0.27 +- libusb-compat: versión 0.1.8 +- libuv: versión 1.49.2 +- libvirt: versión 10.7.0 +- libvirt-php: versión 0.5.8 +- libwebp: versión 1.5.0 +- libwebsockets: versión 4.3.2 +- libx86: versión 1.1 +- libxcb: versión 1.17.0 +- libxcvt: versión 0.1.3 +- libxkbcommon: versión 1.7.0 +- libxkbfile: versión 1.1.3 +- libxml2: versión 2.13.5 +- libxshmfence: versión 1.3.3 +- libxslt: versión 1.1.42 +- libzip: versión 1.11.2 +- listres: versión 1.0.6 +- lm\_sensors: versión 3.6.0 +- lmdb: versión 0.9.33 +- logrotate: versión 3.22.0 +- lshw: versión B.02.19.2 +- lsof: versión 4.99.4 +- lsscsi: versión 0.32 +- lvm2: versión 2.03.29 +- lz4: versión 1.10.0 +- lzip: versión 1.24.1 +- lzlib: versión 1.14 +- lzo: versión 2.10 +- mbuffer: versión 20240107 +- mc: versión 4.8.31 +- mcelog: versión 202 +- mesa: versión 24.2.8 +- miniupnpc: versión 2.1 +- mkfontscale: versión 1.2.3 +- mpfr: versión 4.2.1 +- mtdev: versión 1.1.7 +- nano: versión 8.3 +- ncompress: versión 5.0 +- ncurses: versión 6.5 +- net-tools: versión 20181103\_0eebece +- nettle: versión 3.10 +- network-scripts: versión 15.1 +- nfs-utils: versión 2.8.2 +- nghttp2: versión 1.64.0 +- nghttp3: versión 1.7.0 +- nginx: versión 1.27.2 +- noto-fonts-ttf: versión 2024.12.01 +- nss-mdns: versión 0.14.1 +- ntfs-3g: versión 2022.10.3 +- ntp: versión 4.2.8p18 +- numactl: versión 2.0.13 +- nvme-cli: versión 2.11 +- oniguruma: versión 6.9.9 +- openssh: versión 9.9p1 +- openssl: versión 3.4.0 +- ovmf: versión estable202411 +- p11-kit: versión 0.25.5 +- pam: versión 1.6.1 +- pango: versión 1.54.0 +- patch: versión 2.7.6 +- pciutils: versión 3.13.0 +- pcre: versión 8.45 +- pcre2: versión 10.44 +- perl: versión 5.40.0 +- php: versión 8.3.8 +- pixman: versión 0.44.2 +- pkgtools: versión 15.1 +- procps-ng: versión 4.0.4 +- pv: versión 1.6.6 +- qemu: versión 9.1.0 +- qrencode: versión 4.1.1 +- readline: versión 8.2.013 +- reiserfsprogs: versión 3.6.27 +- rpcbind: versión 1.2.6 +- rsync: versión 3.3.0 +- rsyslog: versión 8.2102.0 +- sakura: versión 3.5.0 +- samba: versión 4.21.1 +- sdparm: versión 1.12 +- sed: versión 4.9 +- sessreg: versión 1.1.3 +- setxkbmap: versión 1.3.4 +- sg3\_utils: versión 1.48 +- shadow: versión 4.16.0 +- shared-mime-info: versión 2.4 +- slim: versión 1.3.6 +- smartmontools: versión 7.4 +- spice: versión 0.15.0 +- spirv-llvm-translator: versión 19.1.2 +- sqlite: versión 3.46.1 +- ssmtp: versión 2.64 +- startup-notification: versión 0.12 +- sudo: versión 1.9.16p2 +- swtpm: versión 0.7.3 +- sysfsutils: versión 2.1.1 +- sysstat: versión 12.7.6 +- sysvinit: versión 3.12 +- sysvinit-scripts: versión 15.1 +- talloc: versión 2.4.2 +- tar: versión 1.35 +- tcp\_wrappers: versión 7.6 +- tdb: versión 1.4.12 +- telnet: versión 0.17 +- tevent: versión 0.16.1 +- traceroute: versión 2.1.6 +- transset: versión 1.0.4 +- tree: versión 2.1.1 +- usbredir: versión 0.8.0 +- usbutils: versión 018 +- userspace-rcu: versión 0.15.0 +- utempter: versión 1.2.1 +- util-linux: versión 2.40.2 +- vbetool: versión 1.2.2 +- virtiofsd: versión 1.11.1 +- vsftpd: versión 3.0.5 +- vte3: versión 0.50.2 +- wayland: versión 1.23.1 +- wget: versión 1.25.0 +- which: versión 2.21 +- wireguard-tools: versión 1.0.20210914 +- wqy-zenhei-font-ttf: versión 0.8.38\_1 +- wsdd2: versión 1.8.7 +- xauth: versión 1.1.3 +- xcb-util: versión 0.4.1 +- xcb-util-keysyms: versión 0.4.1 +- xclock: versión 1.1.1 +- xdpyinfo: versión 1.3.4 +- xdriinfo: versión 1.0.7 +- xev: versión 1.2.6 +- xf86-input-evdev: versión 2.11.0 +- xf86-input-keyboard: versión 1.9.0 +- xf86-input-mouse: versión 1.9.3 +- xf86-input-synaptics: versión 1.9.2 +- xf86-video-ast: versión 1.1.5 +- xf86-video-mga: versión 2.1.0 +- xf86-video-vesa: versión 2.6.0 +- xfsprogs: versión 6.12.0 +- xhost: versión 1.0.9 +- xinit: versión 1.4.2 +- xkbcomp: versión 1.4.7 +- xkbevd: versión 1.1.6 +- xkbutils: versión 1.0.6 +- xkeyboard-config: versión 2.43 +- xkill: versión 1.0.6 +- xload: versión 1.2.0 +- xlsatoms: versión 1.1.4 +- xlsclients: versión 1.1.5 +- xmessage: versión 1.0.7 +- xmodmap: versión 1.0.11 +- xorg-server: versión 21.1.15 +- xprop: versión 1.2.8 +- xrandr: versión 1.5.3 +- xrdb: versión 1.2.2 +- xrefresh: versión 1.1.0 +- xset: versión 1.2.5 +- xsetroot: versión 1.1.3 +- xsm: versión 1.0.6 +- xterm: versión 396 +- xtrans: versión 1.5.2 +- xwd: versión 1.0.9 +- xwininfo: versión 1.1.6 +- xwud: versión 1.0.7 +- xxHash: versión 0.8.3 +- xz: versión 5.6.3 +- yajl: versión 2.1.0 +- zfs: versión 2.2.7\_6.6.68\_Unraid +- zlib: versión 1.3.1 +- zstd: versión 1.5.6 + +## Parches + +Con el [plugin de Parches para Unraid](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) instalado, visite ***Herramientas → Parche de Unraid*** para obtener los siguientes parches / hot fixes: + +- el mover no estaba moviendo correctamente las acciones con espacios en el nombre del array al pool +- Administrador de Archivos: permitir acceso a acciones remotas de UD +- Lista de Compartir: el cuadro de herramienta mostró `%20` en lugar de un espacio +- Gestor de VM: corregir problema con el campo Descartar en blanco en el vDisk +- Incluir parches instalados en diagnósticos + +Nota: si tienes el plugin de ajuste de Movedor instalado, se te pedirá reiniciar para aplicar estos parches. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md new file mode 100644 index 0000000000..90de09bea7 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md @@ -0,0 +1,72 @@ +# Versión 7.0.1 2025-02-25 + +## Notas de actualización + +Esta es una versión de seguridad y corrección de errores. Incluye todos los parches que se hicieron disponibles para 7.0.0. + +Esto resuelve un problema de seguridad cuando la integración de Tailscale está habilitada en un contenedor que se ejecuta en modo Host y luego se comparte con otros usuarios. A partir de esta versión, iniciar tales contenedores ha sido deshabilitado. Para continuar, deshabilite la integración de Tailscale para contenedores en modo Host o cambie el Tipo de Red a Puente o "Personalizado: eth0/bond0/br0." + +### Problemas conocidos + +Para problemas conocidos, consulte las [notas de la versión 7.0.0](7.0.0.md#known-issues). + +### Deshacer cambios + +Si retrocedes a versiones anteriores a la 7.0.0, también consulta las [notas de la versión 7.0.0](7.0.0.md#rolling-back). + +## Cambios vs. [7.0.0](7.0.0.md) + +### Correcciones de errores y mejoras + +- Integración de Docker Tailscale + - Evitar que los contenedores con Tipo de Red "Host" usen la integración de Tailscale, desactivar la capacidad de iniciar contenedores existentes en esta configuración (seguridad) + - Evitar que nuevos contenedores con Tipo de Red "Contenedor" usen la integración de Tailscale (el contenedor sidecar debería tener Tailscale, no el contenedor principal) + - Aceptar directorio de estado de Tailscale por defecto de Community Apps + - Instalar ca\_certificates si es necesario + - Mejor manejo de **argumentos post** cuando la integración de Tailscale está habilitada, todo antes del primer `;` se pasa al contenedor, todo después se ejecuta en el host + - Nota: se están realizando mejoras adicionales, específicamente la capacidad de administrar el contenedor sidecar oficial de Tailscale usando esta integración +- Docker: ocultar el estado de actualización de contenedores gestionados por terceros +- Arreglar una posible causa de fuga de memoria de nchan +- Administrador de Archivos: permitir acceso a acciones remotas de UD +- Aumentado el número de dispositivos sd detectados durante el arranque temprano de 8 a 16 +- Resuelto *Estado de Pool Incorrecto, expansión inválida* que los usuarios veían al actualizar ciertos pools btrfs desde 6.12 +- Prevenir la importación de particiones vfat existentes +- Resuelto el problema de intentar iniciar el array con un pool definido pero no asignado +- Corregir mc que no preservaba cwd al salir con F10 +- mover + - el mover no estaba moviendo correctamente las acciones con espacios en el nombre del array al pool + - el mover no estaba manejando correctamente los enlaces duros +- VMs + - fix: No se puede iniciar/detener una VM con comillas simples en el nombre + - fix: En ciertas condiciones, crear una VM crea una nueva acción con el nombre de la VM + - arreglar problema con el campo Discard vacío en vDisk +- Lista negra del controlador `cdc_ether` para prevenir problemas con NICs IPMI en ciertas placas base + Para reactivar este controlador, `touch /boot/config/modprobe.d/cdc_ether.conf` +- Degradar a una versión anterior de dhcpcd para intentar resolver problemas de DHCP que algunos usuarios están teniendo +- Lista de Compartir: el cuadro de herramienta mostró `%20` en lugar de un espacio +- Incluir parches instalados en diagnósticos + +### Núcleo de Linux + +- versión 6.6.78 +- fix: md/unraid permite Iniciar si solo hay 2 discos de paridad y no discos de datos + +### Distro base + +- bind: versión 9.20.5 (CVE-2024-12705 CVE-2024-11187) +- curl: versión 8.12.1 (CVE-2025-0725 CVE-2025-0665 CVE-2025-0167) +- dhcpcd: versión 9.5.3 (revertir de v10.0.10) +- git: versión 2.48.1 (CVE-2024-50349 CVE-2024-52006) +- gnutls: versión 3.8.9 (CVE-2024-12243) +- libtasn1: versión 4.20.0 (CVE-2024-12133) +- libxml2: 2.13.6 (CVE-2025-24928 CVE-2024-56171) +- mariadb: versión 11.4.5 (CVE-2025-21490) +- mc: versión 4.8.33 +- openssh: versión 9.9p2 (CVE-2025-26465 CVE-2025-26466) +- openssl: versión 3.4.1 +- rsync: versión 3.4.1 (CVE-2024-12084 CVE-2024-12085 CVE-2024-12086 CVE-2024-12087 CVE-2024-12088 CVE-2024-12084) +- ttyd: versión 20250129 + +## Parches + +No hay parches disponibles actualmente para esta versión. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md new file mode 100644 index 0000000000..d77f05746d --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md @@ -0,0 +1,331 @@ +# Versión 7.1.0 2025-05-05 + +Esta versión añade redes inalámbricas, la capacidad de importar TrueNAS y otros grupos extranjeros, múltiples mejoras en las máquinas virtuales, los primeros pasos para hacer que el webGUI sea responsivo, y más. + +## Actualización + +### Problemas conocidos + +Esta versión tiene un problema potencial de pérdida de datos donde la reciente función "mover disco vacío" no maneja correctamente los niveles divididos en los recursos compartidos. Resuelto en 7.1.2. + +#### Plugins + +Por favor, actualiza todos los plugins, particularmente Unraid Connect y el controlador Nvidia. + +Para otros problemas conocidos, consulte las [notas de la versión 7.0.0](7.0.0.md#known-issues). + +### Deshacer cambios + +Estamos realizando mejoras en la forma en que distribuimos parches entre versiones, por lo que el Plugin de Parche independiente se desinstalará a partir de esta versión. Si retrocede a una versión anterior, recomendamos reinstalarlo. Más detalles a continuación. + +Si retrocedes a versiones anteriores a la 7.0.0, también consulta las [notas de la versión 7.0.0](7.0.0.md#rolling-back). + +## Cambios vs. [7.0.1](7.0.1.md) + +### Almacenamiento + +- Importar grupos ZFS extranjeros como TrueNAS, Proxmox, Ubuntu, QNAP. +- Importar la partición más grande en el disco en lugar de la primera. +- Eliminar dispositivo de btrfs raid1 o espejo de un solo vdev zfs ahora reducirá el conteo de ranura del grupo. + +#### Otros cambios de almacenamiento + +- Corrección: Los discos desactivados no se mostraban en el Tablero. +- Corrección: Inicialmente, solo el primer dispositivo del grupo se apaga después de agregar una configuración personalizada de apagado. +- Corrección: Se permitía iniciar el Grupo si solo había 2 dispositivos de Paridad y ningún dispositivo de Datos. +- Corrección: La notificación de verificación de paridad mostraba a menudo la verificación de paridad anterior y no la verificación actual. +- Corrección: Se resolvieron ciertos casos de *Estado de grupo incorrecto. Demasiados dispositivos erróneos o ausentes* al actualizar. +- Corrección: No era posible reemplazar un dispositivo zfs de un vdev más pequeño. +- mover: + - Corrección: Resuelto el problema con archivos antiguos de share.cfg que impedían al mover funcionar. + - Corrección: mover fallaba al recrear un enlace duro si el directorio padre no existía. + - Corrección: mover se colgaba en tuberías nombradas. + - Corrección: [Utilizando mover para vaciar un disco de array](7.0.0.md#using-mover-to-empty-an-array-disk) ahora solo mueve carpetas de nivel superior que tienen un archivo share.cfg correspondiente, también se corrigió un error que impedía mostrar la lista de archivos *no movidos*. + +### Red + +#### Redes Inalámbricas + +¡Unraid ahora admite WiFi! Se prefiere normalmente una conexión por cable, pero si no es posible para su situación, ahora puede configurar WiFi. + +Para la configuración inicial necesitará un teclado/monitor local (arrancar en modo GUI) o una conexión por cable. En el futuro, el Creador USB podrá configurar la red inalámbrica antes del arranque inicial. + +- Accede al webGUI y visita ***Ajustes → Configuración de Red → Red Inalámbrica wlan0*** + - Primero, habilita WiFi + - La **Región Normativa** generalmente puede dejarse en **Automático**, pero establécelo en tu ubicación si la red a la que deseas conectarte no está disponible. + - Encuentra tu red preferida y haz clic en el icono **Conectar a la red WiFi** + - Escribe tu contraseña de WiFi y otros ajustes, luego presiona **Unirse a esta red** + - Nota: si tu objetivo es usar contenedores Docker sobre WiFi, desconecta cualquier conexión con cable antes de iniciar Docker. + +Detalles adicionales + +- WPA2/WPA3 y WPA2/WPA3 Enterprise son compatibles, si tanto WPA2 como WPA3 están disponibles, entonces se usa WPA3. +- No se recomienda tener ambas conexiones, alámbrica e inalámbrica, para uso a largo plazo; debería ser una u otra. Pero si ambas conexiones utilizan DHCP y desconecta un cable de red mientras la inalámbrica está configurada, el sistema (excluyendo Docker) debería ajustarse en 45-60 segundos. +- Soporte de chipset inalámbrico: Esperamos tener éxito con adaptadores WiFi modernos, pero es posible que los adaptadores más antiguos no funcionen. Si su adaptador WiFi no se detecta, por favor inicie un nuevo hilo en el foro y proporcione sus diagnósticos para que se pueda investigar. +- Si quieres usar un adaptador WiFi USB, consulta esta lista de [adaptadores WiFi USB que son compatibles con controladores dentro del kernel de Linux](https://github.com/morrownr/USB-WiFi/blob/main/home/USB_WiFi_Adapters_that_are_supported_with_Linux_in-kernel_drivers.md) +- Avanzado: Los nuevos archivos de firmware colocados en `/boot/config/firmware/` se copiarán a `/lib/firmware/` antes de que se carguen los módulos de controladores (los archivos existentes no se sobrescribirán). + +Limitaciones: hay limitaciones de red al usar inalámbrico, ya que un wlan solo puede tener una dirección mac. + +- Solo se admite un NIC inalámbrico, wlan0. +- wlan0 no puede participar en un enlace. +- Contenedores Docker + - En ***Ajustes → Docker***, nota que cuando el inalámbrico está habilitado, el sistema ignorará la configuración **Tipo de red personalizada de Docker** y siempre utilizará **ipvlan** (macvlan no es posible porque inalámbrico no soporta varias direcciones mac en una sola interfaz) + - ***Ajustes → Docker***, **Acceso de Host a redes personalizadas** debe estar deshabilitado + - El **Tipo de Red** de un contenedor Docker no puede utilizar br0/bond0/eth0 + - Docker tiene una limitación: no puede participar en dos redes que comparten el mismo subred. Si cambia entre alámbrico e inalámbrico, necesitará reiniciar Docker y reconfigurar todos los contenedores existentes para utilizar la nueva interfaz. Recomendamos configurar ya sea alámbrico o inalámbrico y no cambiar. +- VMs + - Recomendamos configurar su Fuente de Red de VM a virbr0, no hay límites para cuántas máquinas virtuales puede ejecutar en este modo. Las máquinas virtuales tendrán acceso completo a la red, pero no serán accesibles desde la red. Aún puede acceder a ellas a través de VNC al host. + - Con algo de configuración manual, una sola máquina virtual puede hacerse accesible en la red: + - Configura la máquina virtual con una dirección IP estática + - Configura la misma dirección IP en la interfaz ipvtap, tipo: `ip addr add DIRECCIÓN-IP dev shim-wlan0` + +#### Otros cambios de red + +- En **Configuración → Configuración de Red**, ahora puede ajustar la configuración DNS del servidor sin detener otros servicios primero. Vea el inicio de la sección **eth0**. +- Al configurar una interfaz de red, cada interfaz tiene un botón **Info** que muestra detalles de la conexión actual. +- Al configurar una interfaz de red, el campo **MTU deseado** está deshabilitado hasta que haga clic en **Habilitar marcos jumbo**. Pase el cursor sobre el ícono para una advertencia sobre cambiar el MTU, en la mayoría de los casos debería dejarse en el ajuste predeterminado. +- Al configurar múltiples interfaces de red, por defecto las interfaces adicionales tendrán su puerta de enlace deshabilitada, este es un ajuste seguro que funciona en la mayoría de redes donde se requiere una sola puerta de enlace. Si se habilita una puerta de enlace adicional, se le dará una métrica más alta que a las puertas de enlace existentes para evitar conflictos. Puede anular según sea necesario. +- Las interfaces de red antiguas se eliminan automáticamente de los archivos de configuración cuando guardas cambios en ***Ajustes → Configuración de Red***. +- Corregir varios problemas con DHCP. + +### Gestor de VM + +#### Controlador GPU Nouveau + +El controlador Nouveau para GPUs Nvidia ahora está incluido, pero deshabilitado por defecto, ya que esperamos que la mayoría de los usuarios prefieran el controlador Nvidia. Para habilitarlo, desinstale el complemento del controlador Nvidia y ejecute `touch /boot/config/modprobe.d/nouveau.conf` y luego reinicie. + +#### VirGL + +Ahora puede compartir GPUs Intel y AMD entre múltiples máquinas virtuales de Linux al mismo tiempo usando VirGL, el renderizador virtual 3D OpenGL. Cuando se usa de esta manera, la GPU proporcionará gráficos acelerados pero no se mostrará en el monitor. Tenga en cuenta que esto todavía no funciona con VMs de Windows o el complemento estándar de Nvidia (aunque sí funciona con GPUs Nvidia usando el controlador Nouveau). + +Para usar la GPU virtual en una VM de Linux, edite la plantilla de VM y configure la **Tarjeta Gráfica** como **Virtual**. Luego configure el **Controlador de Video de Consola de VM** a **Virtio(3d)** y seleccione la **GPU de Renderizado** apropiada de la lista de GPUs disponibles (tenga en cuenta que las GPUs vinculadas a VFIO-PCI o pasadas a otras VMs no pueden ser elegidas aquí, y las GPUs Nvidia están disponibles solo si el controlador Nouveau está habilitado). + +#### GPUs Virtuales QXL + +Para usar esta característica en una máquina virtual, edita la plantilla de la máquina virtual y establece la **Tarjeta Gráfica** en **Virtual** y el **Controlador de Video de la Consola de VM** en **QXL (Mejor)**, luego puedes elegir cuántas pantallas soportará y cuánta memoria asignar a ella. + +#### Fijación de CPU es opcional + +La fijación de CPU ahora es opcional, si no se fijan núcleos a una máquina virtual, el sistema operativo elige qué núcleos usar. + +Desde ***Ajustes → Ajustes de CPU*** o al editar una máquina virtual, presiona **Desseleccionar Todo** para desenlazar todos los núcleos para esta máquina virtual y establece el número de vCPUs en 1, incrementa según sea necesario. + +### Plantillas de Máquina Virtual de Usuario + +Para crear una plantilla de usuario: + +- Edite la VM, elija **Crear Modificar Plantilla** y asigne un nombre. Ahora se almacenará como una **Plantilla de Usuario**, disponible en la pantalla **Añadir VM**. + +Para usar una plantilla de usuario: + +- Desde la lista de máquinas virtuales, presiona **Añadir Máquina Virtual**, luego elige la plantilla en el área de **Plantillas de Usuario**. + +Importar/Exportar + +- Desde la pantalla **Añadir Máquina Virtual**, pasa el cursor sobre una plantilla de usuario y haz clic en la flecha para exportar la plantilla a una ubicación en el servidor o descargarla. +- En otro sistema Unraid presiona **Importar desde archivo** o **Cargar** para usar la plantilla. + +#### Otros cambios en VM + +- Cuando el GPU **Primario** es asignado como passthrough para una máquina virtual, advierte que puede no funcionar sin cargar un vBIOS compatible. +- Corrección: Remover mensaje confuso *La ruta no existe* al configurar el servicio de la máquina virtual +- Carácter: Las máquinas virtuales de Unraid ahora pueden arrancar en modo GUI, cuando se usa el controlador de video QXL +- Corrección: No se podía cambiar el icono de la máquina virtual al usar la vista XML + +### WebGUI + +#### Cambios en CSS + +Como un paso hacia hacer que la webGUI sea sensible, hemos rehecho el CSS. En su mayor parte, esto no debería ser notorio aparte de algunos ajustes menores de color. Esperamos que la mayoría de los complementos estén bien también, aunque los autores de complementos pueden querer revisar [esta documentación](https://github.com/unraid/webgui/blob/master/emhttp/plugins/dynamix/styles/themes/README.md). La capacidad de respuesta continuará mejorando en futuras versiones. + +Si notas problemas de alineación o problemas de color en algún tema oficial, por favor háznoslo saber. + +#### nchan problemas de fuera de memoria compartida + +Hemos hecho varios cambios que deberían prevenir este problema, y si detectamos que sucede, reiniciamos nginx en un intento por recuperarse automáticamente de ello. + +Si su página principal nunca se rellena, o si ve "nchan: Fuera de memoria compartida" en sus registros, por favor inicie un nuevo hilo en el foro y proporcione sus diagnósticos. Opcionalmente, puede navegar a **Configuración → Configuración de Pantalla** y deshabilitar **Permitir actualizaciones en tiempo real en navegadores inactivos**; esto evita que su navegador solicite ciertas actualizaciones una vez que pierde el foco. Cuando está en este estado verá un banner diciendo **Actualizaciones en Vivo Pausadas**, simplemente haga clic en la webGUI para llevarla al primer plano y reactivar las actualizaciones en vivo. Ciertas páginas se recargarán automáticamente para asegurarse de que estén mostrando la información más reciente. + +#### Otros cambios en el WebGUI + +- Corrección: Los bloqueadores de anuncios podrían impedir que el Tablero cargue +- Corrección: Bajo ciertas circunstancias, la utilización de memoria del navegador en el Tablero podría crecer exponencialmente +- Corrección: Prevenir que un archivo de configuración corrupto rompa el Tablero + +## Varios + +### Otros cambios + +- En ***Ajustes → Fecha y Hora*** puedes ahora sincronizar tu reloj con un servidor **PTP** (esperamos que la mayoría de los usuarios sigan usando **NTP**) +- Actualizado a jQuery 3.7.1 y jQuery UI 1.14.1 +- Corrección: Visitar boot.php ya no apagará el servidor +- Corrección: En la pestaña de Docker, el menú desplegable para el último contenedor se truncaba en ciertas situaciones +- Corrección: En ***Ajustes → Docker***, eliminar un **Directorio Docker** almacenado en un volumen ZFS ahora funciona correctamente. +- Corrección: En el arranque, configuración ssh personalizada copiada de `/boot/config/ssh/` a `/etc/ssh/` de nuevo +- Corrección: El Administrador de Archivos puede copiar archivos de un Compartido de Usuario a un montaje de Disco No Asignado +- Corrección: Quitar mensaje confuso *La ruta no existe* al configurar el servicio Docker +- Corrección: actualizar `rc.messagebus` para manejar correctamente `/etc/machine-id` +- Diagnósticos + - Corrección: Mejorada la anonimización de direcciones IPv6 en diagnósticos + - Corrección: Mejorada la anonimización de nombres de usuario en ciertos archivos de configuración en diagnósticos + - Corrección: los diagnósticos podían fallar debido a cadenas multibyte en syslog + - Carácter: los diagnósticos ahora registran errores en logs/diagnostics.error.log + +### Núcleo de Linux + +- versión 6.12.24-Unraid + - Aplicar: \[PATCH] [Revertir "PCI: Evitar reinicio cuando está desactivado a través de sysfs"](https://lore.kernel.org/lkml/20250414211828.3530741-1-alex.williamson@redhat.com/) + - CONFIG\_NR\_CPUS: incrementado de 256 a 512 + - CONFIG\_TEHUTI\_TN40: Adaptadores de red Ethernet Tehuti Networks TN40xx 10G + - CONFIG\_DRM\_XE: Intel Xe Graphics + - CONFIG\_UDMABUF: controlador misceláneo dmabuf del espacio de usuario + - CONFIG\_DRM\_NOUVEAU: Tarjetas Nouveau (NVIDIA) + - CONFIG\_DRM\_QXL: GPU virtual QXL + - CONFIG\_EXFAT\_FS: soporte del sistema de archivos exFAT + - CONFIG\_PSI: seguimiento de la información de presión de estancamiento + - CONFIG\_PSI\_DEFAULT\_DISABLED: Requiere un parámetro de inicio para habilitar el seguimiento de la información de presión de estancamiento, es decir, `psi=1` + - CONFIG\_ENCLOSURE\_SERVICES: Servicios de Recinto + - CONFIG\_SCSI\_ENCLOSURE: Soporte de Recintos SCSI + - CONFIG\_DRM\_ACCEL: Marco de Aceleración de Cómputo + - CONFIG\_DRM\_ACCEL\_HABANALABS: Aceleradores AI HabanaLabs + - CONFIG\_DRM\_ACCEL\_IVPU: NPU (Unidad de Procesamiento Neural) de Intel + - CONFIG\_DRM\_ACCEL\_QAIC: Aceleradores Cloud AI de Qualcomm + - zfs: versión 2.3.1 + +- Soporte inalámbrico + - Atheros/Qualcomm + - Broadcom + - Intel + - Marvell + - Microtek + - Realtek + +### Actualizaciones de distribución base + +- aaa\_glibc-solibs: versión 2.41 +- adwaita-icon-theme: versión 48.0 +- at-spi2-core: versión 2.56.1 +- bind: versión 9.20.8 +- btrfs-progs: versión 6.14 +- ca-certificates: versión 20250425 +- cairo: versión 1.18.4 +- cifs-utils: versión 7.3 +- coreutils: versión 9.7 +- dbus: versión 1.16.2 +- dbus-glib: versión 0.114 +- dhcpcd: versión 9.5.2 +- diffutils: versión 3.12 +- dnsmasq: versión 2.91 +- docker: versión 27.5.1 +- e2fsprogs: versión 1.47.2 +- elogind: versión 255.17 +- elfutils: versión 0.193 +- ethtool: versión 6.14 +- firefox: versión 128.10 (AppImage) +- floppy: versión 5.6 +- fontconfig: versión 2.16.2 +- gdbm: versión 1.25 +- git: versión 2.49.0 +- glib2: versión 2.84.1 +- glibc: versión 2.41 +- glibc-zoneinfo: versión 2025b +- grep: versión 3.12 +- gtk+3: versión 3.24.49 +- gzip: versión 1.14 +- harfbuzz: versión 11.1.0 +- htop: versión 3.4.1 +- icu4c: versión 77.1 +- inih: versión 60 +- intel-microcode: versión 20250211 +- iperf3: versión 3.18 +- iproute2: versión 6.14.0 +- iw: versión 6.9 +- jansson: versión 2.14.1 +- kernel-firmware: versión 20250425\_cf6ea3d +- kmod: versión 34.2 +- less: versión 674 +- libSM: versión 1.2.6 +- libX11: versión 1.8.12 +- libarchive: versión 3.7.8 +- libcgroup: versión 3.2.0 +- libedit: versión 20250104\_3.1 +- libevdev: versión 1.13.4 +- libffi: versión 3.4.8 +- libidn: versión 1.43 +- libnftnl: versión 1.2.9 +- libnvme: versión 1.13 +- libgpg-error: versión 1.55 +- libpng: versión 1.6.47 +- libseccomp: versión 2.6.0 +- liburing: versión 2.9 +- libusb: versión 1.0.28 +- libuv: versión 1.51.0 +- libvirt: versión 11.2.0 +- libXft: versión 2.3.9 +- libxkbcommon: versión 1.9.0 +- libxml2: versión 2.13.8 +- libxslt: versión 1.1.43 +- libzip: versión 1.11.3 +- linuxptp: versión 4.4 +- lvm2: versión 2.03.31 +- lzip: versión 1.25 +- lzlib: versión 1.15 +- mcelog: versión 204 +- mesa: versión 25.0.4 +- mpfr: versión 4.2.2 +- nano: versión 8.4 +- ncurses: versión 6.5\_20250419 +- nettle: versión 3.10.1 +- nghttp2: versión 1.65.0 +- nghttp3: versión 1.9.0 +- noto-fonts-ttf: versión 2025.03.01 +- nvme-cli: versión 2.13 +- oniguruma: versión 6.9.10 +- openssh: versión 10.0p1 +- openssl: versión 3.5.0 +- ovmf: versión estable202502 +- pam: versión 1.7.0 +- pango: versión 1.56.3 +- parted: versión 3.6 +- patch: versión 2.8 +- pcre2: versión 10.45 +- perl: versión 5.40.2 +- php: versión 8.3.19 +- procps-ng: versión 4.0.5 +- qemu: versión 9.2.3 +- rsync: versión 3.4.1 +- samba: versión 4.21.3 +- shadow: versión 4.17.4 +- spice: versión 0.15.2 +- traductor LLVM-spirv: versión 20.1.0 +- sqlite: versión 3.49.1 +- sysstat: versión 12.7.7 +- sysvinit: versión 3.14 +- talloc: versión 2.4.3 +- tdb: versión 1.4.13 +- tevent: versión 0.16.2 +- tree: versión 2.2.1 +- userspace-rcu: versión 0.15.2 +- utempter: versión 1.2.3 +- util-linux: versión 2.41 +- virglrenderer: versión 1.1.1 +- virtiofsd: versión 1.13.1 +- which: versión 2.23 +- wireless-regdb: versión 2025.02.20 +- wpa\_supplicant: versión 2.11 +- xauth: versión 1.1.4 +- xf86-input-synaptics: versión 1.10.0 +- xfsprogs: versión 6.14.0 +- xhost: versión 1.0.10 +- xinit: versión 1.4.4 +- configuración de teclado x: versión 2.44 +- servidor xorg: versión 21.1.16 +- xterm: versión 398 +- xtrans: versión 1.6.0 +- xz: versión 5.8.1 +- zstd: versión 1.5.7 + +## Parches + +No hay parches disponibles actualmente para esta versión. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md new file mode 100644 index 0000000000..5f10ae4157 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md @@ -0,0 +1,33 @@ +# Versión 7.1.1 2025-05-08 + +Este es un lanzamiento pequeño que contiene una versión actualizada del firmware OVMF que revierte un [commit](https://github.com/tianocore/edk2/commit/efaa102d00) para resolver un problema que impide que ciertas máquinas virtuales (Fedora, Debian, Rocky, otras distribuciones basadas en CentOS) se inicien. Véase también [esta discusión](https://github.com/tianocore/edk2/issues/10883). + +## Actualización + +### Problemas conocidos + +Esta versión tiene un problema potencial de pérdida de datos donde la reciente función "mover disco vacío" no maneja correctamente los niveles divididos en los recursos compartidos. Resuelto en 7.1.2. + +Para otros problemas conocidos, consulte las [notas de la versión 7.1.0](7.1.0.md#known-issues). + +### Deshacer cambios + +Por favor, vea las [notas de la versión 7.1.0](7.1.0.md#rolling-back). + +## Cambios vs. [7.1.0](7.1.0.md) + +### Gestor de VM + +- Corrección: incluye firmware OVMF actualizado para resolver un problema que impide que ciertas máquinas virtuales se inicien + +### Núcleo de Linux + +- versión 6.12.24-Unraid (sin cambios) + +### Actualizaciones de distribución base + +- ovmf: versión unraid202502 + +## Parches + +No hay parches disponibles actualmente para esta versión. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md new file mode 100644 index 0000000000..e2f5b8e0e7 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md @@ -0,0 +1,29 @@ +# Versión 7.1.2 2025-05-11 + +Este es un lanzamiento pequeño pero importante, resolviendo un problema potencial de pérdida de datos en 7.1.0 y 7.1.1 donde la función reciente "mover disco vacío" no maneja correctamente los niveles de división en los shares. + +También resuelve un problema menor donde la funcionalidad normal de mover ignora los niveles de división al mover archivos. + +## Actualización + +### Problemas conocidos + +Por favor, vea las [notas de la versión 7.1.0](7.1.0.md#known-issues). + +### Deshacer cambios + +Por favor, vea las [notas de la versión 7.1.0](7.1.0.md#rolling-back). + +## Cambios frente a [7.1.1](7.1.1.md) + +### Almacenamiento + +- Corrección: "mover disco vacío" no maneja correctamente los niveles de división en los shares + +### Núcleo de Linux + +- versión 6.12.24-Unraid (sin cambios) + +## Parches + +No hay parches disponibles actualmente para esta versión. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md new file mode 100644 index 0000000000..27a7fefcba --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md @@ -0,0 +1,50 @@ +# Versión 7.1.3 2025-06-04 + +Esta es una pequeña actualización de corrección de errores y seguridad. + +## Actualización + +### Problemas conocidos + +- Algunos usuarios están teniendo problemas de red en esta versión, por favor actualice a [7.1.4](7.1.4.md) +- Por favor, consulte también las [notas de la versión 7.1.0](7.1.0.md#known-issues). + +### Deshacer cambios + +Por favor, vea las [notas de la versión 7.1.0](7.1.0.md#rolling-back). + +## Cambios vs. [7.1.2](7.1.2.md) + +### Red + +- Corrección: Permitir asignaciones de IP estáticas para coexistir con conexiones inalámbricas +- Corrección: Asignaciones de métricas automáticas mejoradas +- Corrección: Mejora en la selección de IP en interfaces + +### Docker + +- Corrección: Permitir acceso al host de docker en interfaz inalámbrica +- Corrección: Fijar interfaz shim-br0, a veces no creada, lo que podría causar problemas con acceso al host en redes personalizadas en br0 + +### Almacenamiento + +- Corrección: mover: eliminar directorios vacíos que pueden permanecer después de vaciar un disco que contiene enlaces duros +- Corrección: Obtener el número de partición y esquema de particionamiento directamente en lugar de usar el comando 'lsblk' +- Corrección: /mnt/user0/sharename a veces no respeta métodos de asignación de uso compartido + +### webGUI + +- Corrección: A veces es incorrecta la frase de contraseña de encriptación +- Corrección: Revertir permitir menús contextuales de docker arriba o abajo + +### Núcleo de Linux + +- versión 6.12.24-Unraid (sin cambios) + +### Actualizaciones de distribución base + +- curl-8.14.0-x86\_64-1 (CVE-2025-5025 CVE-2025-4947) + +## Parches + +No hay parches disponibles actualmente para esta versión. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md new file mode 100644 index 0000000000..74de8e646b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md @@ -0,0 +1,51 @@ +# Versión 7.1.4 2025-06-18 + +Esta es una versión de corrección de errores centrada principalmente en los problemas de red. + +## Actualización + +### Problemas conocidos + +Por favor, consulte también las [notas de la versión 7.1.0](7.1.0.md#known-issues). + +### Deshacer cambios + +Por favor, vea las [notas de la versión 7.1.0](7.1.0.md#rolling-back). + +## Cambios frente a [7.1.3](7.1.3.md) + +### Red + +- Corrección: Revertido: Mejoras en la asignación automática de métricas +- Corrección: Evitar que el script de monitoreo de interfaces elimine la ruta predeterminada en ciertas circunstancias +- Corrección: Asegurarse de que no se utilicen rutas predeterminadas deshabilitadas + +### Docker + +- Corrección: No limitar las subredes de Docker a /25 +- Corrección: No mostrar la IP APIPA cuando hay una mejor disponible +- Nota: Si un contenedor Docker con una dirección IP estática no inicia, edite el contenedor y revise la dirección IP asignada. + La IP debe estar incluida en una de las subredes listadas. Las subredes se definen en ***Ajustes → Ajustes de Docker***. + +### VMs + +- Corrección: Interfaces virbr personalizadas faltantes +- Corrección: La asignación de MAC se regeneraba cada vez que se seleccionaba una interfaz diferente + +### Almacenamiento + +- Corrección: Respetar la configuración **Autotrim** al montar discos BTRFS y XFS + +### webGUI + +- Corrección: Gestor de archivos: corregido el icono faltante en el pie de página cuando el trabajo está minimizado +- Corrección: Gestor de archivos: respetar la configuración de **Sobrescribir archivos existentes** al mover archivos +- Corrección: Evitar cambiar la configuración de compresión/autotrim del grupo cuando la matriz está iniciada + +### Núcleo de Linux + +- versión 6.12.24-Unraid (sin cambios) + +## Parches + +No hay parches disponibles actualmente para esta versión. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md new file mode 100644 index 0000000000..ad7c1ebebe --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md @@ -0,0 +1,281 @@ +# Versión 7.2.0-rc.1 2025-10-01 + +¡El WebGUI de Unraid ahora es adaptable! La interfaz se adapta automáticamente a diferentes tamaños de pantalla, haciéndola utilizable en dispositivos móviles, tabletas y monitores de escritorio por igual. El API de Unraid ahora está incorporado, y la versión también trae la expansión RAIDZ, soporte para Ext2/3/4, NTFS y exFAT, y la capacidad (opcional) de iniciar sesión en el WebGUI a través de SSO, entre otras características y correcciones de errores. + +Tenga en cuenta que algunos complementos pueden tener problemas visuales en esta versión, por favor, dé tiempo a los autores de los complementos para hacer ajustes. Autores de complementos, por favor consulten este [post que describe cómo actualizar sus complementos para hacerlos adaptables](https://forums.unraid.net/topic/192172-responsive-webgui-plugin-migration-guide/). + +## Actualización + +Para instrucciones paso a paso, consulte [Actualización de Unraid](../../unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx). + +### Problemas conocidos + +#### Plugins + +Los plugins Theme Engine, Dark Theme y Dynamix Date Time son incompatibles y se desinstalarán automáticamente, al igual que las versiones obsoletas de Unraid Connect. + +Por favor, actualice todos los complementos, particularmente Unraid Connect y el controlador Nvidia antes de actualizar. Tenga en cuenta que algunos complementos pueden tener problemas visuales en esta versión, por favor, dé tiempo a los autores de los complementos para hacer ajustes. + +Para otros problemas conocidos, consulte las [notas de la versión 7.1.4](7.1.4.md#known-issues). + +### Deshacer cambios + +Si deshace cambios antes de la 7.1.4, consulte también las [notas de la versión 7.1.4](7.1.4.md#rolling-back). + +## Cambios vs. [7.1.4](7.1.4.md) + +### Almacenamiento + +#### Expansión ZFS RAIDZ + +Ahora puede expandir sus pools RAIDZ1/2/3 de un solo vdev, una unidad a la vez: + +- Con el array en ejecución, en ***Principal → Dispositivos del Pool***, seleccione el nombre del pool para ver los detalles +- En el área de **Estado del Grupo**, verifique si hay un botón de **Actualizar Grupo**. Si existe, deberá hacer clic en él antes de continuar. Tenga en cuenta que actualizar el grupo limitará su capacidad para volver a versiones anteriores de Unraid (la 7.1 debería estar bien, pero no la 7.0) +- Detener el array +- En ***Principal → Dispositivos del Pool***, agregue un espacio al pool +- Seleccione la unidad adecuada (debe ser al menos tan grande como la unidad más pequeña en el pool) +- Iniciar el array + +#### Mejoras + +- Corrección: Ahora habrá una advertencia de "expansión inválida" si el pool necesita ser actualizado primero +- Mejora: mejores ajustes predeterminados para los vdevs ZFS RAIDZ + +#### Soporte para Ext2/3/4, NTFS y exFAT + +Ahora Unraid soporta formatos de unidad Ext2/3/4, NTFS y exFAT además de XFS, BTRFS y ZFS. + +Caso de uso: digamos que eres un creador de contenido con una caja llena de discos duros que contienen todos tus videos históricos. Al crear inicialmente un arreglo (o después de ejecutar ***Herramientas → Nueva Configuración***), agrega todos tus discos de datos existentes (vacíos, o con datos en un formato de disco compatible) al arreglo. Cualquier disco de paridad será sobrescrito, pero los discos de datos conservarán sus datos. Puedes disfrutar de la protección de paridad, compartirlos en la red y aprovechar al máximo todo lo que Unraid tiene para ofrecer. + +Nota crítica: puedes seguir agregando discos de datos completos a la matriz hasta que inicies la matriz con un disco de paridad instalado. Una vez que se haya agregado un disco de paridad, cualquier disco de datos nuevo será borrado al ser agregado a la matriz. + +Para aclarar, Unraid siempre ha funcionado de esta manera, lo que es nuevo es que ahora Unraid soporta formatos de unidad adicionales. + +Además, también puede crear pools de una sola unidad utilizando los nuevos formatos. + +- Mejoró la usabilidad del desplegable **Tipo de Sistema de Archivos** a medida que la lista de opciones disponibles crece \[-beta. + +#### Advertir sobre sistemas de archivos obsoletos + +La página ***Principal*** ahora advertirá si alguna unidad de arreglo o conjunto está formateada con ReiserFS; estas unidades deben ser migradas a otro sistema de archivos lo antes posible, ya que no serán utilizables en una futura versión de Unraid (probablemente Unraid 7.3). De manera similar, advertirá si hay unidades formateadas en una versión obsoleta de XFS; estos deben ser migrados antes de 2030. Consulte [Convertir a un nuevo tipo de sistema de archivos](../using-unraid-to/manage-storage/file-systems.mdx#converting-to-a-new-file-system-type) en la documentación para obtener más detalles. + +#### Otros cambios de almacenamiento + +- Mejora: Los pools ZFS de dos dispositivos se reflejan por defecto, pero puede hacerlos RAIDZ1 si planea expandir ese vdev en el futuro. +- Mejora: Agregar **Estado del sistema de archivos** a la página **DeviceInfo**, mostrando si una unidad está montada/desmontada y vacía/no vacía +- Corrección: Problema de visualización en la página Principal cuando dos pools se nombran de manera similar +- Corrección: [bug de glibc](https://github.com/openzfs/zfs/issues/17629) que podría provocar pérdida de datos con ZFS \[-beta.2] +- Corrección: Los discos de arreglo BTRFS con múltiples firmas de sistema de archivos no se montan. +- Corrección: Resueltos algunos problemas para discos de paridad con particiones alineadas a 1MiB existentes. +- Corrección: Al detener el arreglo, no intente 'umount' en dispositivos del arreglo que no estén montados +- Mejora: Comparticiones exclusivas pueden ser seleccionadas para exportación NFS +- Mejora: Desautorizar nombres de comparticiones `homes`, `global` y `printers` (tienen un significado especial en Samba) \[-beta.2] +- Corrección: Manejo correcto de nombres de comparticiones insensibles a mayúsculas. +- Corrección: Las comparticiones con caracteres inválidos en los nombres no se podían eliminar o modificar \[-beta.2] +- Corrección: Mejoras en la lectura/escritura a los Ajustes de Seguridad SMB. + +### Red + +#### Otros cambios de red + +- Característica: Las redes personalizadas de Docker con IPv6 ahora soportan Direcciones Locales Únicas (ULA) además de las más estándar Direcciones Unicasto Globales (GUA), suponiendo que su router brinde ambas subredes cuando el host de Unraid obtenga una dirección IPv6 vía DHCP o SLAAC. Para usar, asigne una IP estática personalizada desde la subred adecuada al contenedor. +- Corrección: La página ***Configuración → Configuración de Red → Reglas de Interfaz*** a veces mostraba el controlador de red incorrecto (solo era un problema de visualización) + +### Gestor de VM + +- Característica: Guardar datos de hardware PCI, advertir si el hardware usado por VM cambia. +- Característica: Soporte para tarjetas de sonido virtuales en VMs + +#### Otros cambios en VM + +- Mejora: Mejora el soporte para múltiples monitores, habilitando automáticamente spicevmc cuando sea necesario +- Característica: Actualizar a noVNC v1.6 +- Eliminado: plantillas históricas de VM OpenElec y LibreElec +- Corrección: La Consola de VM no funcionaba cuando se deshabilitaban las comparticiones de usuario +- Corrección: No permitir comillas simples en la ruta de almacenamiento de Dominios \[-beta.2] + +### API de Unraid + +¡El API de Unraid ahora está integrado en Unraid! El nuevo panel de Notificaciones es la primera característica importante en usarlo, con el tiempo todo el WebGUI se actualizará para usarlo. + +El API de Unraid es completamente de código abierto: [https://github.com/unraid/api](https://github.com/unraid/api). Empieza en la [documentación del API](../../API/index.mdx). + +El plugin Unraid Connect añade funcionalidad que comunica con nuestros servidores en la nube; sigue siendo completamente opcional. + +#### Otros cambios en la API de Unraid + +- dynamix.unraid.net 4.25.2 - [ver cambios](https://github.com/unraid/api/releases) + +### WebGUI + +#### CSS adaptable + +¡La interfaz webGUI de Unraid ahora es adaptable! La mayoría de las pantallas deberían funcionar igual de bien en su teléfono como en su monitor de escritorio. + +#### Iniciar sesión en el WebGUI a través de SSO + +Inicia sesión en el WebGUI de Unraid usando Single Sign‑On (SSO) con tu cuenta de Unraid.net o cualquier otro proveedor compatible con OIDC. Para obtener más detalles sobre esta función *opcional*, consulta [Configuración del Proveedor OIDC](../../API/oidc-provider-setup.mdx) en la documentación. + +#### Otros cambios en el WebGUI + +- Característica: Añadir nueva vista de gestión de notificaciones, acceder a través de la campana en la esquina superior derecha del webGUI +- Característica: Añadir indicador de progreso a la ventana emergente de Docker / Plugin / VM +- Característica: Mostrar temporizador de cuenta regresiva en la página de inicio de sesión cuando esté bloqueado por demasiados intentos de inicio de sesión incorrectos +- Característica: Añadir botón *Forzar Instalación* para omitir verificaciones de versiones al instalar manualmente plugins +- Función: Añadir página ***Herramientas → Abrir Terminal***; se puede acceder buscando "terminal". Se puede opcionalmente eliminar el botón Terminal de la barra de herramientas a través de ***Configuración → Configuración de Pantalla → Mostrar Botón de Terminal en el encabezado*** +- Característica: ***Usuarios → Root → Llaves SSH autorizadas*** ahora soporta más formatos (gracias [wandercone](https://github.com/wandercone)) +- Característica: Se agregó una pantalla de bienvenida para nuevos sistemas, mostrada después de establecer la contraseña root +- Corrección: Rehabilitar los botones de prueba inteligente después de completar la prueba +- Corrección: Evitar que el webGUI se bloquee cuando dynamix.cfg está corrupto; registrar cualquier problema. +- Corrección: los enlaces `blob:` no deberían considerarse externos +- Característica: Diferenciar entre Núcleos E y P de Intel en el Tablero. +- Característica: El Tablero ahora obtiene estadísticas de uso de CPU de la API de Unraid. +- Corrección: Tablero: Más de 1TB de RAM no era reportado correctamente. +- Tarea: Cambiar las bibliotecas de gráficos en el Tablero. +- Corrección: Evitar que Firefox muestre el popup reenviar/cancelar al iniciar el arreglo. +- Corrección: Gestor de archivos: detener el spinner y mostrar error cuando falla (gracias [poroyo](https://github.com/poroyo)) +- Característica: Acelerar el renderizado de las páginas de Plugins y Docker. +- Corrección: Prevenir problemas al hacer clic en un enlace externo desde un changelog. + +## Varios + +- Característica: No ejecute el script `go` cuando esté en modo seguro, cree el script `/boot/config/go.safemode` si es necesario +- Mejora: Requerir autenticación en `http://localhost`. Esto mejora la seguridad y permite que Tailscale Funnel funcione con el webGUI. Tenga en cuenta que al iniciar en modo GUI, ahora necesitará iniciar sesión nuevamente para acceder al webGUI. +- Característica: Añadir soporte para favicon y manifest de la aplicación web +- Característica: Las mejoras de la clave de licencia se instalan automáticamente, sin necesidad de reiniciar el array +- Característica: Los dispositivos Thunderbolt serán autorizados automáticamente cuando se conecten +- Característica: Mejoras en reglas y scripts personalizados de udev, al arrancar: + - `/boot/config/udev/*.rules` se copian a `/etc/udev/rules.d/` + - `/boot/config/udev/*.sh` se copian a `/etc/udev/scripts/` donde pueden ser utilizados por sus reglas personalizadas de udev +- Corrección: Eliminar soporte para URLs no funcionales ipv6.hash.myunraid.net +- Corrección: La creación de red personalizada Docker falló cuando IPv6 estaba habilitado \[-beta.2] +- Corrección: Resolver problemas con alta carga de CPU debido a nchan y lsof \[-beta.2] +- Mejora: Eliminar la opción de desactivar actualizaciones en vivo en navegadores inactivos; ya no debería ser necesario \[-beta.2] +- Mejora: Mejorar los mensajes sobre el mover y "enlaces colgantes" \[-beta.2] +- Corrección: Prevenir errores relacionados con *searchLink* al instalar plugins. +- Corrección: Advertencias de PHP al importar túneles WireGuard. +- Mejora: Zona horaria *Europa/Kiev* renombrada a *Europa/Kyiv* para alinearse con la Base de Datos de Zonas Horarias IANA. +- Mejora: Mejorar el agente de notificaciones de Discord; habilitar/deshabilitar el agente para obtener las actualizaciones (gracias [mgutt](https://github.com/mgutt)) + +### Otros cambios + +### Núcleo de Linux + +- versión 6.12.47-Unraid + - incorporado: CONFIG\_EFIVAR\_FS: sistema de archivos de Variables EFI + - CONFIG\_INTEL\_RAPL: Soporte Intel RAPL vía interfaz MSR + - CONFIG\_NLS\_DEFAULT: cambio de "iso8859-1" a "utf8" + - Añadido soporte para eMMC: + - CONFIG\_MMC: Soporte para tarjetas MMC/SD/SDIO + - CONFIG\_MMC\_BLOCK: Controlador de dispositivos de bloques MMC + - CONFIG\_MMC\_SDHCI: Soporte para Interfaz de Controlador de Anfitrión Digital Seguro + - CONFIG\_MMC\_SDHCI\_PCI: Soporte SDHCI en bus PCI + - CONFIG\_MMC\_SDHCI\_ACPI: Soporte SDHCI para controladores SDHCI enumerados por ACPI + - CONFIG\_MMC\_SDHCI\_PLTFM: Ayudante de plataforma SDHCI y controlador OF + +### Actualizaciones de distribución base + +- aaa\_glibc-solibs: versión 2.42 +- adwaita-icon-theme: versión 48.1 +- at-spi2-core: versión 2.56.4 +- bash: versión 5.3.003 +- bind: versión 9.20.13 +- btrfs-progs: versión 6.17 +- ca-certificates: versión 20250812 +- cifs-utils: versión 7.4 +- coreutils: versión 9.8 +- cryptsetup: versión 2.8.1 +- curl: versión 8.16.0 +- e2fsprogs: versión 1.47.3 +- ethtool: versión 6.15 +- exfatprogs: versión 1.2.9 +- fontconfig: versión 2.17.1 +- freetype: versión 2.14.0 +- gdbm: versión 1.26 +- gdk-pixbuf2: versión 2.44.2 +- git: versión 2.51.0 +- glib2: versión 2.86.0 +- glibc: versión 2.42 (compilación 2) +- gnutls: versión 3.8.10 +- grub: versión 2.12 +- gtk+3: versión 3.24.50 +- harfbuzz: versión 12.0.0 +- intel-microcode: versión 20250812 +- iproute2: versión 6.17.0 +- inih: versión 61 +- inotify-tools: versión 4.25.9.0 +- iputils: versión 20250605 +- iw: versión 6.17 +- json-glib: versión 1.10.8 +- kbd: versión 2.9.0 +- kernel-firmware: versión 20250924\_1269106 +- krb5: versión 1.22.1 +- less: versión 679 +- libXfixes: versión 6.0.2 +- libXpresent: versión 1.0.2 +- libXres: versión 1.2.3 +- libarchive: versión 3.8.1 +- libdrm: versión 2.4.125 +- libffi: versión 3.5.2 +- libgcrypt: versión 1.11.2 +- libjpeg-turbo: versión 3.1.2 +- libnftnl: versión 1.3.0 +- libnvme: versión 1.15 +- libpng: versión 1.6.50 +- libssh: versión 0.11.3 +- libtiff: versión 4.7.1 +- libtirpc: versión 1.3.7 +- libunistring: versión 1.4 +- liburing: versión 2.12 +- libusb: versión 1.0.29 +- libwebp: versión 1.6.0 +- libvirt: versión 11.7.0 +- libxkbcommon: versión 1.11.0 +- libxml2: versión 2.14.6 +- libzip: versión 1.11.4 +- lsof: versión 4.99.5 +- lvm2: versión 2.03.35 +- mcelog: versión 206 +- mesa: versión 25.2.3 +- nano: versión 8.6 +- ncurses: versión 6.5\_20250816 +- nettle: versión 3.10.2 +- nghttp2: versión 1.67.1 +- nghttp3: versión 1.12.0 +- noto-fonts-ttf: versión 2025.09.01 +- nvme-cli: versión 2.15 +- openssl: versión 3.5.3 +- ovmf: versión unraid202502 +- p11-kit: versión 0.25.10 +- pam: versión 1.7.1 +- pcre2: versión 10.46 +- pango: versión 1.56.4 +- pciutils: versión 3.14.0 +- perl: versión 5.42.0 +- php: versión 8.3.26-x86\_64-1\_LT con extensión gettext +- pixman: versión 0.46.4 +- rclone: versión 1.70.1-x86\_64-1\_SBo\_LT.tgz +- readline: versión 8.3.001 +- samba: versión 4.23.1 +- shadow: versión 4.18.0 +- smartmontools: versión 7.5 +- traductor LLVM-spirv: versión 21.1.0 +- sqlite: versión 3.50.4 +- sudo: versión 1.9.17p2 +- sysstat: versión 12.7.8 +- sysvinit: versión 3.15 +- tdb: versión 1.4.14 +- tevent: versión 0.17.1 +- userspace-rcu: versión 0.15.3 +- util-linux: versión 2.41.2 +- wayland: versión 1.24.0 +- wireguard-tools: versión 1.0.20250521 +- wireless-regdb: versión 2025.07.10 +- xdpyinfo: versión 1.4.0 +- xdriinfo: versión 1.0.8 +- xfsprogs: versión 6.16.0 +- xkeyboard-config: versión 2.45 +- xorg-server: versión 21.1.18 +- xterm: versión 402 +- zfs: versión zfs-2.3.4\_6.12.47\_Unraid-x86\_64-2\_LT diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json new file mode 100644 index 0000000000..1ac5909589 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Notas de la versión", + "position": 6, + "link": { + "type": "generated-index", + "description": "Notas de la versión de Unraid" + } +} diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json new file mode 100644 index 0000000000..db0f3e649a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Administración de sistemas", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json new file mode 100644 index 0000000000..1e697983c4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Herramientas avanzadas", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx new file mode 100644 index 0000000000..d4c3baca8e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx @@ -0,0 +1,457 @@ +--- +sidebar_position: 1 +sidebar_label: Interfaz de línea de comando +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CliCpuInfo from './partials/command-line-interface/cpu-info.mdx'; +import CliMemoryInfo from './partials/command-line-interface/memory-info.mdx'; +import CliStorageInfo from './partials/command-line-interface/storage-info.mdx'; + +# Interfaz de línea de comando + +Aunque la mayoría de las tareas en Unraid se pueden realizar a través del %%WebGUI|web-gui%%, ciertas operaciones, especialmente aquellas relacionadas con diagnósticos, administración de discos o creación de scripts, requieren el uso de la consola del sistema o el terminal %%SSH|ssh%%. Esta página ofrece herramientas de línea de comandos específicas de Unraid y ejemplos que se pueden usar sin necesidad de un conocimiento extenso de Linux. + +:::tip[Device rutas] +Muchas operaciones de nivel de disco en Unraid dependen de los nombres de dispositivos de Linux, como `/dev/sdX`. Puedes encontrar el identificador del dispositivo para cualquier unidad en la pestaña **Principal** del %%WebGUI|web-gui%%. Busca la etiqueta de tres letras `sdX` o `nvmeX` junto a cada disco. Usa el identificador apropiado en todos los comandos, reemplazando `sdX` con tu disco específico. +::: + +## Acceder al terminal + +Unraid incluye un terminal web integrado al que puedes acceder directamente desde el %%WebGUI|web-gui%%. Simplemente usa el menú desplegable en la parte superior derecha y selecciona ">\_". Esto abre una sesión de línea de comandos como el %%usuario root|root-user%%, otorgándote acceso administrativo completo a tu sistema. + +También puede conectar su servidor Unraid externamente utilizando %%SSH|ssh%% (shell seguro) con un cliente como %%PuTTY|putty%%. + +:::tip[When ¿debería usar el terminal?] +Si está utilizando Windows, puede preferir %%PuTTY|putty%% para el acceso %%SSH|ssh%% en lugar del terminal integrado. Es ligero, gratuito, y le permite guardar sesiones para un acceso fácil más adelante. + +- Ejecutar diagnósticos y herramientas de línea de comando como `smartctl`, `xfs_repair`, `tail` o `top` +- Ejecutar scripts de complementos o herramientas que no requieren interfaz de usuario +- Solucionando problemas relacionados con la conectividad, servicios del sistema, o %%user shares|comparticiones de usuario%% +::: + +### Pruebas de discos y monitoreo + +Si está utilizando Windows, puede preferir %%PuTTY|putty%% para el acceso %%SSH|ssh%% en lugar del terminal integrado. Es ligero, gratuito, y le permite guardar sesiones para un acceso fácil más adelante. + +
+ Cómo instalar y usar PuTTY - Haga clic para expandir/colapsar + + 1. Descargar %%PuTTY|putty%% del [sitio oficial](https://www.putty.software/). + 2. Inicie la aplicación %%PuTTY|putty%%. + 3. Ingrese la dirección IP o el nombre de host de su servidor Unraid (por ejemplo, `tower.local`). + 4. Establezca el tipo de conexión en `%%SSH|ssh%%`. + 5. (Opcional) Guarde el nombre de la sesión para usar en el futuro. + 6. Haga clic en **Abrir** para iniciar la sesión. + 7. Cuando se le indique, inicie sesión como `root` y luego ingrese su contraseña. + + Una vez que te hayas registrado, estarás en el entorno de shell de Unraid. Escribe `exit` cuando hayas terminado para cerrar la sesión. +
+ +:::note +Unraid configura automáticamente el servidor SSH en el primer arranque. Asegúrese de que su red funcione correctamente y que su contraseña de root esté establecida antes de intentar una conexión remota. +::: + +## Pruebas de discos y monitoreo + +Estas herramientas ayudan a evaluar el rendimiento, verificar la salud de los discos y solucionar problemas de lentitud en el %%array|array%%. Todos los comandos deben ejecutarse desde la terminal o a través de %%SSH|ssh%%. + +### `diskspeed.sh` + +Este script permite pruebas de rendimiento a nivel superficial, completas con informes visuales. + +
+ Ver uso de diskspeed.sh - Haga clic para expandir/colapsar + + Esto solía ser un script que descargarías desde los foros de Unraid. DiskSpeed ahora está disponible en un paquete más refinado: + + ```bash + hdparm -tT /dev/sdX + ``` + + La bandera `-t` prueba las lecturas de discos con búfer, mientras que `-T` prueba las lecturas de caché. Esto mide principalmente el rendimiento de lectura secuencial y ayuda a identificar discos inusualmente lentos. + + **Ejecute múltiples pruebas para mayor precisión:** + + ```bash + for ((i=0;i<5;i++)); do hdparm -tT /dev/sdX; done + ``` + + **Ver información del disco:** + + ```bash + hdparm -I /dev/sdX + ``` + + Esto muestra el modelo, firmware, tamaño de caché y características compatibles, lo que ayuda a verificar el tipo de disco y el comportamiento del controlador. +
+ +### `smartctl` + +Este comando ejecuta diagnósticos %%SMART|smart%% y monitoriza la salud del disco. + +
+ Ver opciones de smartctl - Haga clic para expandir/colapsar + + **Informe %%SMART|smart%% básico:** + + ```bash + smartctl -a /dev/sdX + ``` + + Si este comando devuelve un error, intente especificar el tipo de dispositivo: `smartctl -a -d ata /dev/sdX` (use `-d nvme` para discos NVMe). + + **Iniciar autopruebas %%SMART|smart%%:** + + Prueba corta (toma unos pocos minutos) + + ```bash + smartctl -t short /dev/sdX + ``` + + Prueba extendida (puede llevar horas) + + ```bash + smartctl -t long /dev/sdX + ``` + + **Guardar %%SMART report|informe-smart%% en un archivo:** + + ```bash + smartctl -a /dev/sdX > /boot/smart_report.txt + ``` + + Esto guarda el informe en su unidad USB de Unraid para su revisión o compartirlo después en los [foros](https://forums.unraid.net/). +
+ +### `top` + +Este comando proporciona un monitor en tiempo real de procesos y recursos. + +
+ Ver uso de top - Haga clic para expandir/colapsar + + Esto solía ser un script que descargarías desde los foros de Unraid. DiskSpeed ahora está disponible en un paquete más refinado: + + Instale DiskSpeed desde [Community Applications](../../using-unraid-to/run-docker-containers/community-applications.mdx) (***Pestaña de Apps***) buscando "DiskSpeed", o visite el [repositorio de GitHub](https://github.com/jbartlett777/DiskSpeed) para instrucciones de instalación manual. +
+ +--- + +## Monitoreo del sistema + +Utilice estos comandos para vigilar la memoria, procesos y rendimiento del sistema cuando el %%WebGUI|web-gui%% no esté disponible o para diagnósticos más detallados. + +### `ps` + +Utilice este comando para mostrar procesos en ejecución con información detallada. + +
+ Ver opciones de ps - Haga clic para expandir/colapsar + + ```bash + top + ``` + + - Muestra el uso de CPU y memoria para cada proceso en tiempo real. + - Presione `q` para salir. + - Use las arrow keys para desplazarse y `k` para finalizar procesos. + + **Ordenar por uso de memoria:** +
+ +### `libre` + +Este comando muestra estadísticas de uso de memoria. + +
+ Ver uso de free - Haga clic para expandir/colapsar + + ```bash + free -h + ``` + + Esto muestra el uso de RAM en un formato legible por humanos. La bandera `-h` significa que los tamaños se mostrarán en KB, MB o GB en lugar de bytes. + + :::tip[Entender la salida] + Una lectura baja de memoria "disponible" no indica necesariamente un problema; Linux almacena en caché los datos de manera agresiva para lograr un mejor rendimiento. + ::: +
+ +### `df` + +Este comando muestra el uso de espacio en el disco del sistema de archivos. + +
+ Ver uso de df - Haga clic para expandir/colapsar + + **Listar todos los procesos con detalles completos:** + + ```bash + ps aux + ``` + + :::tip + Considera usar `htop` para una interfaz más amigable al usuario con controles mejorados. + ::: + + ```bash + ps aux --sort=-%mem | head -20 + ``` + + **Ordenar por uso de CPU:** + + ```bash + ps aux --sort=-%cpu | head -20 + ``` +
+ +--- + +## Utilidades de almacenamiento + +Estos comandos ayudan a verificar uso de disco, información de partición e identificar dispositivos de almacenamiento. + +### `lsblk` + +Lista todos los dispositivos de bloque en formato de árbol. + +
+ Ver uso de lsblk - Haga clic para expandir/colapsar + + ```bash + df -h + ``` + + Este comando muestra el espacio usado y disponible en todos los sistemas de archivos montados. Es conveniente para verificar `/var/log` (que utiliza un registro basado en RAM) en Unraid. Para más información sobre [registro del sistema](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx). +
+ +### `blockdev -getsz` + +Ayuda a determinar si un disco de reemplazo tiene suficiente espacio antes de la reconstrucción. + +
+ Ver uso de blockdev - Haga clic para expandir/colapsar + + ```bash + fdisk -l /dev/sdX + ``` + + Este comando muestra el diseño de particiones, tamaños y la geometría del disco. Ayuda a solucionar problemas de tamaños de discos desajustados, especialmente al [reemplazar discos](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-disks). +
+ +### `blkid` + +Identificar etiquetas de sistemas de archivos. + +
+ Ver uso de blkid - Haga clic para expandir/colapsar + + ```bash + lsblk + ``` + + Este comando muestra el espacio usado y disponible en todos los sistemas de archivos montados. Es conveniente para verificar `/var/log` (que utiliza un registro basado en RAM) en Unraid. Para más información sobre [registro del sistema](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx). +
+ +### `blockdev -getsz` + +Ayuda a determinar si un disco de reemplazo tiene suficiente espacio antes de la reconstrucción. + +
+ Ver uso de fdisk - Haga clic para expandir/colapsar + + **Sintaxis:** + + ``` + blockdev --getsz /dev/sdX + ``` + + Devuelve el número crudo de sectores de 512 bytes en un dispositivo - útil para confirmar que un disco de reemplazo es lo suficientemente grande antes de reconstruir. +
+ +### `ss` + +Muestra estadísticas de sockets y conexiones de red. Este es el reemplazo moderno para `netstat`. + +
+ Ver opciones de ss - Haga clic para expandir/colapsar + + **Sintaxis:** + + ``` + blkid /dev/sdX1 + ``` + + Muestra el tipo de sistema de archivos y la etiqueta. Usa esto en lugar del comando `vol_id` obsoleto al verificar que el flash de Unraid está etiquetado como `UNRAID`. +
+ +--- + +## Diagnósticos de red + +Herramientas para solucionar problemas de conectividad de red y configuración de interfaces. + +### `ping` + +Probar conectividad de red. + +
+ Ver uso de ping - Haga clic para expandir/colapsar + + **Prueba de conectividad enviando un número limitado de paquetes:** + + ```bash + ss -tuln + ``` + + - `-t`: Sockets TCP + - `-u`: Sockets UDP + - `-l`: Sólo muestra sockets en escucha + - `-n`: Muestra números de puerto en lugar de nombres de servicio + + **Mostrar conexiones establecidas:** + + ```bash + ss -tup + ``` + + Este comando muestra conexiones activas junto con información del proceso. +
+ +### `ethtool` + +Herramienta útil para consultar y ajustar parámetros de la tarjeta de interfaz de red (NIC), como velocidad de enlace, características de carga y estadísticas. + +
+ Ver uso de ethtool - Haga clic para expandir/colapsar + + **Información básica de controlador y firmware:** + + ```bash + ip addr show + ``` + + **Mostrar interfaces de red con colores:** + + ```bash + ip -c addr show + ``` + + Para verificar la velocidad de enlace y configuraciones actuales de su interfaz, ejecute: + + ```bash + ip route show + ``` +
+ +### `ping` + +Probar conectividad de red. + +
+ Ver opciones de ss - Haga clic para expandir/colapsar + + **Mostrar todos los puertos en escucha:** + + ```bash + ping -c 4 google.com + ``` + + Este comando envía cuatro paquetes al destino y se detiene, lo que lo hace adecuado para pruebas básicas de conectividad sin salida continua. +
+ +### `ethtool` + +Herramienta útil para consultar y ajustar parámetros de la tarjeta de interfaz de red (NIC), como velocidad de enlace, características de carga y estadísticas. + +
+ Ver opciones de ip - Haga clic para expandir/colapsar + + **Mostrar todas las interfaces de red:** + + Use este comando para obtener información sobre el controlador y firmware de su interfaz de red: + + ``` + ethtool -i eth0 + ``` + + **Mostrar velocidad de enlace y configuraciones actuales:** + + **Mostrar tabla de enrutamiento:** + + ``` + ethtool eth0 + ``` + + **Mostrar estadísticas extendidas de la interfaz:** + + Para estadísticas extendidas relacionadas con la interfaz, use el siguiente comando: + + ``` + ethtool -S eth0 + ``` + + Estos comandos pueden ayudarle a confirmar las velocidades de negociación para conexiones gigabit, 2.5 GbE o 10 GbE, diagnosticar problemas con cables, o identificar paquetes perdidos que podrían surgir de desajustes de carga. +
+ +--- + +## `tail` + +Monitorea archivos de registro en tiempo real. + + + + + + + + + + + + + + + +--- + +## Mantenimiento del sistema + +Comandos para el apagado del sistema, monitoreo de registros y gestión de servicios. + +### `tail` + +Monitorea archivos de registro en tiempo real. + +
+ Ver uso de tail - Haz clic para expandir/colapsar + + ```bash + tail -f /var/log/syslog + ``` + + Este comando muestra actualizaciones en vivo del registro del sistema. Para salir, usa `Ctrl+C`. + + **Mostrar un número específico de líneas:** + + ```bash + tail -n 50 /var/log/syslog + ``` +
+ +### `powerdown` + +Apaga el sistema de forma segura. + +
+ Ver uso de powerdown - Haz clic para expandir/colapsar + + ```bash + powerdown + ``` + + Este comando utiliza el proceso de apagado incorporado de Unraid para detener la %%array|array%% y apagar el sistema de forma segura. Es preferible a los métodos de apagado manual. +
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx new file mode 100644 index 0000000000..6b78fd0a57 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx @@ -0,0 +1,17 @@ +**Resumen de arquitectura de CPU:** + +```bash +lscpu +``` + +Este comando muestra información sobre núcleos, hilos, soporte de virtualización y detalles de caché. + +**Detección de características:** + +```bash +grep -E 'lm|vmx|svm' /proc/cpuinfo +``` + +- `lm`: Indica soporte de 64 bits +- `vmx`: Virtualización Intel VT-x +- `svm`: Virtualización AMD-V diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx new file mode 100644 index 0000000000..2e2c00f3cd --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx @@ -0,0 +1,11 @@ +**Visión general del uso de memoria:** + +```bash +free -h +``` + +**Desglose detallado de memoria:** + +```bash +cat /proc/meminfo | head -20 +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx new file mode 100644 index 0000000000..86162de12c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx @@ -0,0 +1,11 @@ +**Listar discos por serie/modelo:** + +```bash +ls -l /dev/disk/by-id/ | grep -v part +``` + +**Comprobar etiquetas del sistema de archivos:** + +```bash +ls -l /dev/disk/by-label/ +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx new file mode 100644 index 0000000000..0697ce4fc1 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx @@ -0,0 +1,11 @@ +

Método de Terminal

+ +``` +wakeonlan MAC_ADDRESS +``` + +Instálalo con `sudo apt install wakeonlan` si no está ya instalado. + +

Alternativa: WoL GUI

+ +Puedes instalar una interfaz gráfica de usuario para `wol` desde el gestor de paquetes de tu distribución Linux. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx new file mode 100644 index 0000000000..27a44a6414 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx @@ -0,0 +1,19 @@ +

Método en Terminal (recomendado)

+ +1. Instala `wakeonlan` usando Homebrew: + + ``` + brew install wakeonlan + ``` + +2. Envía el paquete mágico: + + ``` + wakeonlan MAC_ADDRESS + ``` + +

Alternativa con GUI: miniWOL

+ +1. Descarga [miniWOL v3](https://apps.apple.com/app/miniwol/id6474282023) desde la App Store. +2. Añade tu servidor usando su dirección MAC. +3. Haz clic en el icono del sol para despertar tu servidor. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx new file mode 100644 index 0000000000..6b2fb0ee06 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx @@ -0,0 +1,9 @@ +

Usando WakeOnLan CMD

+ +1. Descarga [wolcmd.exe](https://www.depicus.com/wake-on-lan/wake-on-lan-cmd). + +2. Ejecútalo en el Símbolo del sistema: + + ``` + wolcmd.exe 255.255.255.255 + ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx new file mode 100644 index 0000000000..3459d2ad1e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx @@ -0,0 +1,109 @@ +--- +sidebar_position: 2 +sidebar_label: Wake-on-LAN (WoL) +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import WakeOnLanWindows from './partials/wake-on-lan/windows.mdx'; +import WakeOnLanMacos from './partials/wake-on-lan/macos.mdx'; +import WakeOnLanLinux from './partials/wake-on-lan/linux.mdx'; + +# Wake-on-LAN (WoL) + +%%Wake-on-LAN (WOL)|wake-on-lan%% te permite despertar remotamente tu servidor Unraid desde un estado de apagado o suspensión enviando un "paquete mágico" a través de la red. Esta página te ayudará a configurar WoL para tu red local. + +## Requisitos + +Para que WoL funcione correctamente, asegúrate de cumplir con los siguientes requisitos: + +- **Soporte NIC**: Tu controlador de interfaz de red debe admitir WoL; la mayoría de los NIC modernos lo hacen. + +- **Configuraciones BIOS/UEFI**: Habilita WoL en el BIOS/%%UEFI|uefi%% de tu placa madre bajo gestión de energía. Aquí hay algunos nombres de configuraciones comunes: + + | Nombre de configuración | Descripción | + | ---------------------------------- | ------------------------------------------------ | + | Despertar con LAN | Configuración genérica de WoL | + | Despertar por evento PME | Para eventos de despertar PCIe | + | Encender por dispositivos PCI/PCIe | Nombre alternativo para WoL | + | Listo para ErP | Debe estar *deshabilitado* para que WoL funcione | + +- **Conexión de energía**: Asegúrate de que tu servidor esté conectado a una fuente de energía. + +- **Conexión de red**: Conecta tu servidor a tu LAN con un cable Ethernet (WoL no es compatible con WiFi). + +:::caution[Hardware compatibilidad] +No todo el hardware admite de manera confiable el modo de suspensión S3 o WoL. Algunos sistemas pueden experimentar problemas al entrar en suspensión, fallar al despertar correctamente o requerir ajustes adicionales en el BIOS/%%UEFI|uefi%%. Siempre prueba estas funciones minuciosamente antes de depender de ellas. +::: + +## Poner un servidor Unraid en suspensión + +La manera preferida y fácil de usar para gestionar el modo de suspensión en Unraid es utilizando el [**plugin Dynamix S3 Sleep**](https://unraid.net/community/apps/c/plugins/p3?srsltid=AfmBOorpfP2Psw_bCorklf-QVCUHvADYGsdbsAH-4CldU4V2hWgoO-09#r:~:text=%3E%3E-,Dynamix%20S3%20Sleep,-Dynamix%20Repository). Este plugin ofrece una interfaz gráfica para ayudar a programar la suspensión, el despertar y el comportamiento en reposo, abordando a la vez problemas comunes que puedan surgir con diversas configuraciones de hardware. + +Para instalación y configuración: + +1. Abre la pestaña de ***Aplicaciones*** en el %%WebGUI|web-gui%% de Unraid. +2. Busca "Dynamix S3 Sleep" e instala el complemento. +3. Navega a ***Configuración → Configuración de suspensión*** para establecer tus opciones de suspensión y despertar. + +El complemento gestiona la mayoría de las opciones de configuración de suspensión. + +
+ Método manual alternativo - Haz clic para expandir/contraer + + Si deseas más control o necesitas personalización avanzada, puedes configurar los ajustes de suspensión y WoL a través de la línea de comandos. Este método es recomendado para usuarios avanzados. + + Para configurar la suspensión manualmente: + + 1. Conéctate a tu servidor usando el terminal %%WebGUI|web-gui%% o [%%SSH|ssh%%](../../system-administration/advanced-tools/command-line-interface.mdx#accessing-the-terminal). + + 2. Identifica tu interfaz de red principal (generalmente `eth0`) ejecutando el siguiente comando: + + ``` + ifconfig + ``` + + Anota la dirección MAC (etiquetada como `ether`). + + 3. Habilita WoL en la interfaz con este comando: + + ``` + ethtool -s eth0 wol g + ``` + + 4. Pon el servidor en suspensión ingresando este comando: + + ``` + echo -n mem > /sys/power/state + ``` + + :::caution[Persistencia] + Los ajustes de WoL configurados manualmente **no son persistentes** a través de los reinicios por defecto. Para hacerlos permanentes: + + 1. Crea un archivo `go` en tu unidad flash en `/boot/config/go`. + + 2. Agrega esta línea: + + ``` + /sbin/ethtool -s eth0 wol g + ``` + ::: +
+ +## Despertar tu servidor Unraid + +Para despertar remotamente tu servidor Unraid, necesitas enviar un "paquete mágico" especial a través de tu red local. Este paquete incluye la dirección MAC de tu servidor e instruye a la interfaz de red para encender el sistema desde un estado de suspensión o apagado. Los diferentes sistemas operativos proporcionan varias herramientas y métodos para enviar este paquete. A continuación, se presentan instrucciones específicas para Windows, macOS y Linux. + + + + + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json new file mode 100644 index 0000000000..cf4609938c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Mantener y actualizar", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx new file mode 100644 index 0000000000..8205a2e263 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx @@ -0,0 +1,169 @@ +--- +sidebar_position: 3 +sidebar_label: Cambiando el dispositivo flash +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import BackupUsingWebGUI from './partials/backup-using-webgui.mdx'; +import BackupManualMethod from './partials/backup-manual-method.mdx'; +import ReplacementUsingCreator from './partials/replacement-using-creator.mdx'; +import ReplacementManualMethod from './partials/replacement-manual-method.mdx'; + +# Cambiando el dispositivo flash + +El dispositivo de almacenamiento USB es crítico para su servidor Unraid ya que almacena el sistema operativo, archivos de configuración y la licencia. Si este dispositivo falla o se vuelve poco fiable, el reemplazo inmediato es esencial para evitar la pérdida de datos y minimizar el tiempo de inactividad. + +:::caution +Cuando reemplace su dispositivo USB flash de Unraid, su licencia se transfiere al nuevo dispositivo, y el antiguo se lista como no válido **y ya no se puede utilizar con Unraid.** Esta acción es permanente y no se puede deshacer. +::: + +Algunos indicadores comunes de que su dispositivo USB flash puede necesitar ser reemplazado incluyen: + +- El servidor no arrancará, o faltan archivos en el dispositivo. +- El dispositivo entra repetidamente en modo de solo lectura o muestra errores del sistema de archivos. +- El dispositivo está perdido o ha sido robado. +- La capacidad de almacenamiento es insuficiente para actualizaciones o cambios de configuración. +- El tamaño físico del dispositivo no se ajusta a su configuración del servidor. + +--- + +## Seleccionando un dispositivo de reemplazo + +Al elegir una nueva memoria USB para Unraid, concéntrese en la fiabilidad y compatibilidad sobre la velocidad. + +

Requisitos

+ +| Requisito | Detalles | +| ------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| Versión USB | USB 2.0 recomendado (generalmente más fiable y ampliamente compatible que USB 3.0) | +| GUID único | Debe contener un GUID de hardware único en una ROM programable | +| Tamaño mínimo | Al menos 4 GB | +| Tamaño máximo recomendado | 32 GB (para facilitar instalaciones manuales; dispositivos más grandes pueden funcionar pero no son necesarios) | +| Marca/vendedor | Compre de marcas confiables y minoristas de confianza; evite productos de segunda mano o del mercado gris | +| Tamaño físico | Elija un factor de forma que se ajuste a los puertos USB disponibles de su servidor y a las limitaciones físicas | + +Para más orientación sobre cómo seleccionar el mejor dispositivo flash para Unraid, consulte la [guía de video de Spaceinvader One sobre pruebas de memorias USB](https://www.youtube.com/watch?v=jjkaidlZmgs). + +::::tip[Rules norma general para el reemplazo] +- Compre memorias USB de minoristas de confianza y evite sitios de subastas y vendedores desconocidos. +- Evite unidades de segunda mano o usadas previamente. +- Pruebe la nueva unidad en su servidor antes de transferir su licencia. +- Ten cuidado con los productos falsificados, incluso de marcas conocidas. + :::nota + ::: +El [anuncio en el foro sobre unidades SanDisk falsificadas](https://forums.unraid.net/topic/119052-psa-on-sandisk-usbs/) de enero de 2022 confirma que SanDisk no es recomendado debido a dispositivos falsificados y cambios en la fabricación que resultan en GUIDs no únicos. Esto afecta tanto a las unidades SanDisk falsificadas como legítimas. +:::: + +::: + +::: + +::: + +::: + +--- + +## Reemplazando su dispositivo USB flash + +:::caution[Before Antes de reemplazar] +Antes de reemplazar su dispositivo flash actual, considere revisarlo para detectar errores: + +1. Apague su servidor y retire el dispositivo flash. +2. Inserte el dispositivo en una computadora Windows o Mac. +3. Utilice Windows Scandisk o Utilidad de Discos de Mac para buscar y reparar errores. +4. Si se encuentran y reparan errores, puede continuar usando el dispositivo. Si los problemas persisten o vuelven a ocurrir, se recomienda reemplazarlo. + +Un solo corte de energía o una escritura incompleta a veces puede causar una corrupción menor, que generalmente se puede reparar. Sin embargo, problemas repetidos indican la necesidad de un nuevo dispositivo. +::: + +Hay dos formas de reemplazar su dispositivo USB flash de Unraid: la herramienta recomendada [creadora de memorias USB](https://unraid.net/download) para Windows o macOS, o el método manual para usuarios avanzados. **Siempre haga una copia de seguridad de su dispositivo flash antes de comenzar.** + +### Realizando una copia de seguridad de su dispositivo flash + + + + + + + + + + + +:::tip[Backup mejores prácticas] +- Haga copias de seguridad regularmente de su dispositivo flash, especialmente después de cambios importantes en la configuración. +- Almacene las copias de seguridad fuera del servidor (en otra computadora o almacenamiento en la nube). +- Mantenga una captura de pantalla de sus asignaciones de disco después de cualquier cambio de hardware. +::: + +:::important[Trial Claves de prueba y cambios de dispositivo] +Si transfieres una configuración de prueba a un nuevo dispositivo flash, no podrás iniciar el %%array|array%% hasta que compres una clave de registro válida. Las claves de prueba solo funcionan en el dispositivo original. +::: + +### Métodos de reemplazo + + + + + + + + + + + +Ahora has reemplazado tu dispositivo USB flash y transferido tu clave de registro de Unraid. El sistema mostrará la fecha de registro y la próxima fecha elegible para reemplazo. + +--- + +## Frecuencia de reemplazo de clave de registro + +Reemplazar su clave de registro de Unraid es sencillo, pero hay detalles importantes sobre el tiempo y elegibilidad que debe tener en cuenta. + +- Puede reemplazar su clave de registro en cualquier momento. Sin embargo, después del primer reemplazo, debe esperar **12 meses** antes de usar el método automatizado en línea nuevamente. +- Si necesita reemplazar su clave nuevamente dentro de 12 meses, [contacte al soporte de Unraid](https://unraid.net/contact). Para un servicio más rápido, incluya sus antiguos y nuevos %%GUIDs|guid%% USB, su clave de licencia y la dirección de correo electrónico utilizada para la compra. + +:::important +Si está bloqueado debido a exceder el límite de reemplazo automatizado y necesita acceso inmediato al servidor, configure una nueva prueba de Unraid con una nueva unidad USB, luego contacte soporte para transferir su licencia. +::: + +--- + +## Recuperación de un dispositivo flash fallido sin respaldo + +Perder su dispositivo flash y no conocer sus asignaciones de discos puede ser estresante, pero puede evitar la pérdida de datos tomando medidas cuidadosas. + +:::caution +Nunca asigne un disco de datos como un %%parity drive|parity-drives%%. Las asignaciones incorrectas pueden sobrescribir datos con información de paridad, lo que resulta en una pérdida de datos permanente. +::: + +:::tip[Identifying Todas las unidades] +- **%%Parity drives|parity-drives%%** no tienen un sistema de archivos montable. Si un disco no se puede montar, probablemente sea un disco %%parity|parity%%. +- **Discos de datos** usados previamente por Unraid retienen sus datos incluso después de restablecer la configuración de la %%array|array%%. +- Si encuentras más discos no montables de lo esperado %%parity|parity%% drives, detente y busca ayuda en los [foros de Unraid](https://forums.unraid.net/). +::: + +Para reconfigurar su %%array|array%% de forma segura: + +1. Prepare una nueva unidad flash de Unraid, siguiendo las instrucciones presentadas anteriormente en esta guía. +2. Vaya a la pestaña ***Principal*** + - Asigne todas las unidades como discos de datos y comience la %%array|array%%. + - Anote los números de serie de las unidades que no se montan; probablemente sean sus unidades de %%paridad|parity%%. + - No haga clic en **Formatear** en ningún disco. Si aparecen más discos no montables de lo esperado %%parity|parity%% drives, detente y busca ayuda en los foros. + - También puede usar el [plugin de Dispositivos Desasignados](https://unraid.net/community/apps?q=Unassigned%20Devices) para montar cada unidad de prueba (la %%paridad|parity%% no se montará), identificando la %%paridad|parity%% por eliminación. + - Detenga la %%array|array%% antes de continuar. +3. Vaya a ***Herramientas → Nueva Configuración*** y cree una nueva configuración de %%array|array%%, reteniendo todas las unidades configuradas actualmente. +4. Asigne las unidades correctas como %%paridad|parity%% y el resto como discos de datos en la pestaña **Principal**. +5. Si tienes un solo %%parity|parity%% drive, el orden de los discos de datos no es crítico. Marca **La paridad es válida** solo si estás seguro de que asignaste el mismo disco de paridad físico y no se realizaron escrituras desde la configuración original. Para doble %%parity|parity%%, tanto el orden de los discos de datos como la asignación de paridad1 y paridad2 son importantes—paridad1 y paridad2 no son intercambiables, y se debe reconstruir la %%parity|parity%% si se cambia alguna de ellas. +6. Inicia el %%array|array%% para confirmar asignaciones. Los discos de datos deberían montarse y sus contenidos deberían permanecer intactos. +7. Si marcó **Paridad es Válida**, ejecute una verificación de [%%paridad|parity%% corregida](../../using-unraid-to/manage-storage/array-configuration.mdx#checking-array-devices) para confirmar que su configuración es correcta. + +:::note +Después de restaurar su %%array|array%%, verifique cualquier configuración de inclusión/exclusión específica de compartición, ya que el orden de los discos de datos puede haber cambiado. +::: + +--- + +\* *"%%WireGuard|wireguard%%" y el logotipo de "%%WireGuard|wireguard%%" son marcas registradas de Jason A. Donenfeld.* diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx new file mode 100644 index 0000000000..7445c6ed83 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx @@ -0,0 +1,3 @@ +1. Apague su servidor y retire el dispositivo flash. +2. Insértelo en otra computadora. +3. Copie todos los archivos de la memoria flash a una ubicación de copia de seguridad segura. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx new file mode 100644 index 0000000000..701a7215bf --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx @@ -0,0 +1,8 @@ +1. Vaya a la pestaña **Main** y seleccione su dispositivo flash. +2. En **Configuración del dispositivo flash**, haga clic en **FLASH BACKUP** para descargar una copia de seguridad comprimida a su computadora. + +
+ ![Flash Backup](/img/flashbackup.png) +
+ +Alternativamente, use [Unraid Connect flash backup](../../../../unraid-connect/automated-flash-backup.mdx) para copias de seguridad automáticas del flash. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx new file mode 100644 index 0000000000..c3815000b4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx @@ -0,0 +1,25 @@ +:::caution +Este método solo debe usarse si está cómodo con la línea de comandos de Linux, ya que los errores pueden hacer que su sistema no arranque. +::: + +1. Copie la URL del archivo ZIP de la versión deseada de Unraid desde el [Historial de Versiones](../../../download_list.mdx). +2. Inicie sesión a través de %%SSH|ssh%% o consola. +3. Ejecute los siguientes comandos *uno a la vez* (reemplace `` con el enlace copiado): + + ```bash + cd /tmp + rm -f unraid.zip + rm -rf unraid_install + wget -O unraid.zip + [[ -s unraid.zip ]] && echo "OK to continue" || echo "STOP: the file was not downloaded" + unzip -d unraid_install unraid.zip + [[ -s unraid_install/bzroot ]] && echo "OK to continue" || echo "STOP: the file was not extracted properly" + [[ ! -d /boot/previous ]] && mkdir /boot/previous + mv /boot/bz* /boot/previous + mv /boot/changes.txt /boot/previous + cp unraid_install/bz* /boot + cp unraid_install/changes.txt /boot + sync -f /boot + sleep 5 + reboot + ``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx new file mode 100644 index 0000000000..5955239a4e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx @@ -0,0 +1,7 @@ +1. Descargue el archivo ZIP de la versión de Unraid desde el [Historial de Versiones](../../../download_list.mdx). +2. Extraiga el archivo en su computadora. +3. Acceda al `flash` share o conecte el dispositivo flash USB a su computadora. +4. Cree un directorio `previous` si aún no existe. +5. Mueva todos los archivos `bz*` y `changes.txt` al directorio `previous`. +6. Copie los nuevos archivos `bz*` y `changes.txt` a la raíz de la unidad flash. +7. Reinicie su servidor. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx new file mode 100644 index 0000000000..a54b15e015 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx @@ -0,0 +1,23 @@ +*Use este método si la herramienta creadora de flash USB no funciona para su sistema.* + +:::important[Before comienza] +Use el método manual solo si se siente cómodo con la gestión básica de archivos y su sistema no soporta el creador de flash USB. +::: + +1. Prepare un nuevo dispositivo flash siguiendo el [Método de instalación manual](../../../getting-started/set-up-unraid/create-your-bootable-media.mdx#manual-install-method). +2. Copie su carpeta `config` respaldada en el nuevo dispositivo flash, sobrescribiendo los archivos existentes. +3. Apague el servidor, intercambie los dispositivos flash y encienda. +4. Cuando se le pida con `Clave de registro inválida, faltante o caducada`, seleccione **Clave de registro**. + +
+ ![Clave inválida](/img/Invalidkey.png) +
+ +5. En ***Herramientas → Registro***, seleccione **Reemplazar clave** e ingrese su dirección de correo electrónico. + +
+ ![Clave inválida](/img/Replacekey.png) +
+ +6. Siga las instrucciones en el correo electrónico para instalar su nueva clave. +7. Selecciona **Hecho**. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx new file mode 100644 index 0000000000..cbd109f5e3 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx @@ -0,0 +1,32 @@ +*Recomendado para la mayoría de los usuarios* + +1. Descargue el [creador de memorias USB de Unraid](https://unraid.net/download) para Windows o macOS. +2. Inserte su nuevo dispositivo USB flash en su computadora. +3. En la herramienta creadora, haga clic en el Sistema Operativo, desplácese hacia abajo a **Usar personalizado** y navegue a su archivo de respaldo ZIP. + +
+ ![Seleccionar versión](/img/Selectversion.png) +
+ +4. Elija su nuevo dispositivo USB como destino y haga clic en **Escribir**. +5. Apague su servidor, reemplace el dispositivo flash antiguo con el nuevo y encienda. +6. Cuando se le pida con `Clave de registro inválida, faltante o caducada`, seleccione **Clave de registro**. + +
+ ![Clave inválida](/img/Invalidkey.png) +
+ +7. Si es necesario, copie su archivo de clave de licencia existente en `boot/config` en el nuevo dispositivo. +8. Asegúrese de que exista solo un archivo de clave en la carpeta de configuración. +9. En ***Herramientas → Registro***, seleccione **Reemplazar clave** e ingrese su dirección de correo electrónico. + +
+ ![Clave inválida](/img/Replacekey.png) +
+ +10. Siga las instrucciones en el correo electrónico para instalar su nueva clave. +11. Una vez finalizado, seleccione **Hecho**. + +:::important +Si ves un error de "el archivo de clave no es válido", tu clave podría estar en la lista negra o no ser la última clave válida. [Contacta al soporte de Unraid](https://unraid.net/support) para asistencia. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx new file mode 100644 index 0000000000..23ef4b8cd3 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx @@ -0,0 +1,6 @@ +Para las versiones de Unraid 6.11 y 6.12, siga este método de actualización tradicional: + +1. En el %%WebGUI|web-gui%%, vaya a ***Herramientas → Actualizar OS***. +2. Haga clic en **Buscar actualizaciones**. +3. Si hay una nueva versión disponible, haga clic en **Actualizar**. +4. Reinicie su servidor cuando se le indique. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx new file mode 100644 index 0000000000..1bf2a5cb09 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx @@ -0,0 +1,11 @@ +La actualización de Unraid se realiza usando la nueva **herramienta Actualizar OS** con una interfaz fácil de usar: + +1. En el %%WebGUI|web-gui%%, haga clic en el menú desplegable de arriba a la derecha y seleccione **Buscar actualizaciones** o navegue a ***Herramientas → Actualizar OS***. +2. Elija el canal **Estable** para versiones estables o el canal **Siguiente** para betas y RCs. +3. Haz clic en **Ver Registro de Cambios para Comenzar la Actualización**. El Registro de Cambios aparecerá para que lo revises antes de presionar **Continuar**. +4. Haga clic en **Confirmar y comenzar actualización** para aplicar la última versión estable. +5. Cuando se le pida, reinicie su servidor para completar la actualización. + +:::note +Es posible que deba iniciar sesión en su cuenta Unraid para acceder a las actualizaciones, especialmente para lanzamientos de la rama "Siguiente". +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx new file mode 100644 index 0000000000..c9b4143802 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx @@ -0,0 +1,151 @@ +--- +sidebar_position: 2 +sidebar_label: Actualización de Unraid +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import UpgradeModern from './partials/upgrade-modern.mdx'; +import UpgradeLegacy611612 from './partials/upgrade-legacy-611-612.mdx'; +import ManualDowngradeSimplest from './partials/manual-downgrade-simplest.mdx'; +import ManualDowngradeCommandLine from './partials/manual-downgrade-command-line.mdx'; + +# Actualización de Unraid + +Actualizar el sistema operativo Unraid garantiza que dispongas de las características más recientes, actualizaciones de seguridad y soporte para hardware. Esta página describe el proceso estándar de actualización, junto con consejos para solucionar problemas y opciones de actualización manual. + +:::note\[Prerequisites] + +Antes de comenzar la actualización, asegúrate de crear una copia de seguridad completa de tu dispositivo USB. Para más detalles, consulta [Haciendo una copia de seguridad de tu dispositivo](../maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device). + +::: + +:::tip[Best prácticas antes de actualizar] +1. **Hacer una copia de seguridad** de su unidad flash y cualquier dato importante. +2. **Lea las notas de la versión** para la versión que planea instalar. +3. **Actualice todos los complementos** a sus versiones más recientes. +4. **Opcionalmente, detenga el array** antes de proceder. +5. **Actualice Unraid OS** utilizando la página ***Herramientas → Actualizar OS***. +6. **Reinicie** su servidor para completar la actualización. +::: + +## Proceso de actualización estándar + + + + + + + + + + + +:::caution[ZFS advertencias de actualización del grupo] +Al actualizar a Unraid 7.x, puedes ver advertencias sobre las actualizaciones de características del grupo [%%ZFS|zfs%%](../../advanced-configurations/optimize-storage/zfs-storage.mdx) durante el inicio o en el %%WebGUI|web-gui%%. Estas advertencias no son una señal de problema; simplemente indican que tu grupo %%ZFS|zfs%% está utilizando características de una versión anterior de ZFS. + +No es urgente actualizar tu grupo, pero si decides hacerlo, ten en cuenta que podría no funcionar con versiones anteriores de Unraid. Esto significa que es posible que no puedas volver a una versión anterior de Unraid después de actualizar. + +Como siempre, recuerda hacer una copia de seguridad de tus datos antes de actualizar tus grupos de %%ZFS|zfs%%. +::: + +--- + +## Solución de problemas de actualización + +Si encuentra problemas después de la actualización, consulte la sección relevante a continuación para obtener asistencia. + +
+ El array o los contenedores Docker son lentos al arrancar después de la actualización - Haga clic para expandir/colapsar + + Podría ser necesaria una migración única para los contenedores de Docker después de ciertas actualizaciones. Este proceso puede llevar tiempo, especialmente si tienes muchas imágenes. Sé paciente durante este proceso; el rendimiento debería normalizarse después del inicio inicial. +
+ +
+ Los contenedores Docker no funcionan correctamente después de la actualización - Haga clic para expandir/colapsar + + Si encuentras errores como *"las capas del manifiesto no coinciden con la configuración de la imagen",* es posible que necesites reconstruir tu archivo de imagen de Docker. Aquí te explicamos cómo: + + 1. Vaya a ***Configuración → Docker*** y detenga el servicio Docker. + 2. Marque la casilla para eliminar la imagen Docker y haga clic en el botón de eliminar. + 3. Reinicie Docker para recrear la imagen. + 4. Navegue a la pestaña **Aplicaciones**, **Aplicaciones anteriores** y marque lo que desea reinstalar y haga clic en **"Instalar xx Aplicaciones"**. +
+ +
+ El array o los contenedores Docker son lentos al arrancar después de la actualización - Haga clic para expandir/colapsar + + Podría ser necesaria una migración única para los contenedores de Docker después de ciertas actualizaciones. Este proceso puede llevar tiempo, especialmente si tienes muchas imágenes. Sé paciente durante este proceso; el rendimiento debería normalizarse después del inicio inicial. + + 1. Vaya a la pestaña **VMs** y edite cada %%VM|vm%% (asegúrese de habilitar **Vista avanzada**). + 2. Configure el puente de red en `br0` y haga clic en **Aplicar**. + 3. Navegue a ***Configuración → Administrador de VM*** (en **Vista avanzada**) y configure el puente predeterminado en `br0`. +
+ +
+ Los contenedores Docker no funcionan correctamente después de la actualización - Haga clic para expandir/colapsar + + Si encuentras errores como *"las capas del manifiesto no coinciden con la configuración de la imagen",* es posible que necesites reconstruir tu archivo de imagen de Docker. Aquí te explicamos cómo: + + 1. Edite la %%VM|vm%% desde la pestaña **VMs** (seleccione **Vista avanzada**). + 2. Establece el controlador de vídeo **%%VNC|vnc-session%%** en **QXL** (recomendado). Prueba con **Cirrus** o **vmvga** si tienes éxito limitado con QXL. + 3. Haga clic en **Aplicar** para guardar los cambios. +
+ +
+ Las VMs muestran "no se puede obtener la interfaz MTU" o errores de red - Haga clic para expandir/colapsar + + Si tienes %%OVMF|ovmf%%-basados %%VMs|vm%% creados en versiones anteriores de Unraid, podrías encontrar un shell EFI. Puedes arrancar el %%VM|vm%% introduciendo los siguientes comandos: + + 1. Escriba `fs0:`. + 2. Luego escriba `cd efi/boot`. + 3. Finalmente, escriba `bootx64.efi`. + + Si `fs0:` no funciona, puedes intentar con `fs1:`. Si continúas teniendo problemas, por favor visita los [foros de Unraid](https://forums.unraid.net/) para obtener asistencia. +
+ +
+ El acceso VNC a las VMs no funciona o es lento - Haga clic para expandir/colapsar + + Para resolver esto, edita el %%VM|vm%% en la %%WebGUI|web-gui%% y haz clic en **Aplicar** sin realizar cambios. Esta acción actualizará el tipo de máquina a la última versión compatible. +
+ +
+ La VM no arranca (aparece shell EFI) - Haga clic para expandir/colapsar + + Si tienes %%OVMF|ovmf%%-basados %%VMs|vm%% creados en versiones anteriores de Unraid, podrías encontrar un shell EFI. Puedes arrancar el %%VM|vm%% introduciendo los siguientes comandos: +
+ +--- + +## Actualización o degradación manual + +Las actualizaciones manuales son raras, pero pueden ser necesarias si no puedes acceder al %%WebGUI|web-gui%% o necesitas volver a una versión anterior. Antes de proceder, es importante hacer un respaldo de tu dispositivo USB, cuyos detalles puedes encontrar en [Respaldar tu dispositivo flash](../maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device). + +### Degradar utilizando la herramienta Downgrade OS (si el WebGUI es accesible) + +Si puede acceder al WebGUI: + +1. Inicie sesión en el %%WebGUI|web-gui%%. +2. Navegue a ***Herramientas → Degradar OS***. +3. Su versión anterior se listará como la opción de degradación disponible. +4. Haga clic en **Degradar** y siga las indicaciones. +5. Reinicie su servidor cuando se le indique. + +:::caution +Ten en cuenta que bajar de versión puede generar problemas de compatibilidad con complementos o contenedores de Docker. Siempre respalda tu dispositivo USB y cualquier dato importante de antemano. +::: + +### Metodos manuales (si el WebGUI es inaccesible) + +Solo utilice estos métodos si no puede acceder al %%WebGUI|web-gui%%: + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json new file mode 100644 index 0000000000..290b418f16 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Monitorear rendimiento", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx new file mode 100644 index 0000000000..2f73222e45 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx @@ -0,0 +1,46 @@ +--- +sidebar_position: 2 +sidebar_label: Informes SMART y estado del disco +--- + +# Informes SMART y estado del disco + +**Self-Monitoring, Analysis, and Reporting Technology (%%SMART|smart%%)** es una función útil en la mayoría de los discos duros y SSD modernos. Vigila la salud y la confiabilidad de tus unidades. En Unraid, el monitoreo %%SMART|smart%% actúa como un sistema de advertencia temprana, alertándote sobre posibles fallos antes de que pierdas datos. + +## Por qué es importante el monitoreo SMART + +El monitoreo %%SMART|smart%% te ayuda a captar cambios sutiles en la salud de tu unidad, como el aumento de cuentas de errores o sectores defectuosos, antes de que causen problemas graves, como errores de lectura o escritura. Al prestar atención a estas alertas, puedes reemplazar o respaldar una unidad defectuosa, manteniendo tus datos valiosos a salvo. Para estar informado, habilita las [notificaciones](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#notification-settings) y recibe alertas incluso cuando no hayas iniciado sesión en el %%WebGUI|web-gui%% de Unraid. + +:::note +El monitoreo %%SMART|smart%% funciona para discos SATA pero no está disponible para discos SAS. +::: + +## Cómo Unraid utiliza SMART + +Unraid comprueba constantemente los atributos %%SMART|smart%% clave de cada unidad conectada. Si alguno de estos atributos cambia, verás un ícono naranja al lado de la unidad afectada en el Tablero. Al hacer clic en el ícono aparece un menú que te permite reconocer el cambio. Después de eso, Unraid solo te notificará nuevamente si hay más actualizaciones para ese atributo. + +Para ver más de cerca los datos de %%SMART|smart%% de un disco, haz clic en su nombre en la pestaña **Principal** en el %%WebGUI|web-gui%% de Unraid. + +Algunos atributos de %%SMART|smart%% que Unraid monitorea por defecto incluyen: + +| **ID** | **Atributo** | **Qué significa** | **Cuándo preocuparse / Acción(es) a tomar** | +| ------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **5** | Recuento de sectores reajustados | Esto muestra cuántas áreas defectuosas en el disco han sido reemplazadas por sectores de respaldo. | Si es superior a 0, tu unidad está comenzando a fallar. Si este número crece, [respalda tus datos](../../getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx#back-up-your-flash-device) y adquiere una nueva unidad pronto. | +| **187** | Errores reportados no corregidos | Estos son errores que el disco no pudo corregir. | Si esto muestra un número mayor que 0, es una señal grave. Reemplace el disco tan pronto como pueda. | +| **188** | Tiempo de espera de comandos | Esto cuenta cuántas veces las operaciones tomaron demasiado tiempo, señalando posibles problemas en el disco o en el cable. | Los tiempos de espera ocasionales pueden ocurrir debido a problemas de energía. Si esto supera 0 con frecuencia, revise sus cables y conexiones de energía. | +| **197** | Recuento de sectores actuales/pendientes | Esto indica sectores inestables que podrían fallar pronto. | Cualquier número por encima de 0 significa que el disco no puede leer algunas áreas correctamente. Si no vuelve a 0 después de unos días, reemplace el disco. | +| **198** | Recuento de sectores no corregibles | Estos sectores no se pueden leer o escribir incluso después de múltiples intentos. | Si ve que este número es mayor que 0, significa que ha perdido datos. Reemplace el disco de inmediato. | +| **199** | Conteo de errores %%CRC\|crc-errors%% en %%UDMA\|udma%% | Esto muestra errores en la transferencia de datos entre el disco y la computadora, a menudo causados por cables defectuosos. | Si este número aumenta, verifique y vuelva a conectar los cables SATA. Si deja de aumentar después de eso, debería estar bien. | + +## Qué hacer si recibes una advertencia SMART + +Si recibes una advertencia de %%SMART|smart%%, esto es lo que debes hacer: + +- Revisa el/los atributo(s) afectado(s) en la tabla anterior. +- Si ves que los recuentos de sectores reasignados, pendientes o no corregidos están aumentando, es tiempo de planear reemplazar el disco pronto. +- Para errores de %%CRC|crc-errors%%, inspecciona tus cables de datos y asegúrate de que estén bien conectados. +- Si tienes dudas sobre una advertencia, no dudes en utilizar los [foros de Unraid](https://forums.unraid.net/) o consulta la documentación del fabricante de tu disco. + +:::warning +Las advertencias %%SMART|smart%% son señales tempranas que no deben ignorarse. Toma medidas para respaldar tus datos y considera reemplazar la unidad antes de que falle. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json new file mode 100644 index 0000000000..c024a4f315 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Asegurar tu servidor", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx new file mode 100644 index 0000000000..777527f348 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx @@ -0,0 +1,20 @@ +Este método solo eliminará la **contraseña de%%root|root-user%%** y dejará otros usuarios intactos. + +Para restablecer vía este método: + +1. **Apaga** tu servidor Unraid. + +2. **Conecta la unidad USB** a una computadora (Windows o Mac). + +3. **Abre el archivo** ubicado en `/config/shadow` usando un editor de texto (como Notepad++). + +4. **Edite la línea** que se ve como: + `root:$&$&%*1112233484847648DHD$%.:15477:0:99999:7:::` + + a esto en su lugar: + + `root::15477:0:99999:7:::` + +5. **Guarda los cambios** al archivo y reconecta la unidad USB a tu servidor. + +6. **Inicia tu servidor Unraid** y establece una nueva contraseña de root. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx new file mode 100644 index 0000000000..bea329b45b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx @@ -0,0 +1,11 @@ +Este método borra **todas las contraseñas de los usuarios**, incluyendo\*%%root|root-user%% y usuarios compartidos. + +Para la forma más sencilla de restablecer tu contraseña: + +1. **Apaga** tu servidor Unraid. +2. **Conecta la unidad USB** a una computadora (Windows o Mac). +3. **Elimina estos archivos** de la unidad USB: + - `/config/shadow` + - `/config/smbpasswd` +4. **Desconecta la unidad USB** y reconéctala a tu servidor Unraid, luego enciéndelo. +5. **Crea una nueva contraseña de root** cuando te lo pida al iniciar. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx new file mode 100644 index 0000000000..d30f7511b4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx @@ -0,0 +1,9 @@ +1. Seleccione el icono ![Configuración del par](/img/eye-icon.png) para ver la configuración del par. + +
+ ![Configuración del par](/img/peer-eye.png) +
+ +2. En la aplicación móvil %%WireGuard|wireguard%%, elija **Crear desde código QR** y escanee el código QR. +3. Nombre la conexión y conéctese. El %%VPN tunnel|vpn-tunnel%% debería iniciarse rápidamente. +4. Mantenga el código QR privado: cualquiera que lo tenga puede acceder a su VPN. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx new file mode 100644 index 0000000000..45fdbedcb3 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx @@ -0,0 +1,10 @@ +1. Seleccione el icono ![Configuración del par](/img/eye-icon.png) para ver la configuración del par. + +
+ ![Configuración del par](/img/peer-eye.png) +
+ +2. Descargue el archivo de configuración. +3. Transfiera de forma segura al dispositivo cliente (por ejemplo, mediante correo electrónico o almacenamiento en la nube de confianza). +4. Descomprima e importe la configuración en el cliente %%WireGuard|wireguard%%. +5. Proteja este archivo para evitar el acceso no autorizado a la VPN. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx new file mode 100644 index 0000000000..ab8cae027a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx @@ -0,0 +1,73 @@ +--- +sidebar_position: 2 +sidebar_label: Asegurando tu unidad flash +--- + +# Asegurando tu unidad flash + +La unidad flash es esencial para tu servidor Unraid, ya que almacena todos los datos de configuración, licencias y ajustes del sistema. Debido a su importancia, es crucial mantener su contenido seguro y accesible en todo momento. + +## Respaldos + +Tener una copia de seguridad reciente de tu unidad flash garantiza que puedes recuperarte rápidamente de fallos de hardware, cambios accidentales o corrupción de datos. Asegúrate de crear copias de seguridad en las siguientes situaciones: + +- Antes de actualizar Unraid o instalar complementos +- Después de añadir o quitar unidades +- Después de cambiar configuraciones de red, compartición o seguridad +- Antes de realizar cambios importantes en la configuración +- Periódicamente, como parte de tu rutina de mantenimiento regular + +Para respaldar tu unidad flash utilizando el Unraid WebGUI, sigue estos pasos: + +1. Selecciona tu unidad flash desde la pestaña **Principal**. +2. En las **Configuraciones del dispositivo Flash**, haz clic en **Respaldar Flash**. + +
+ ![Seleccionar el botón de respaldo de Flash](/img/flashbackup.png) +
+ +3. Unraid creará un archivo ZIP que contiene los contenidos de la unidad flash. +4. Guarda este archivo ZIP en un lugar seguro fuera de tu servidor Unraid (como una PC separada, NAS o almacenamiento en la nube). + +Si necesitas recrear tu unidad flash, utiliza esta copia de seguridad con la [herramienta USB Creator](https://unraid.net/download). + +:::tip +Considere mantener una captura de pantalla de sus [asignaciones de disco](../../getting-started/set-up-unraid/configure-your-array.mdx#assign-parity-and-data-disks) después de cualquier cambio de hardware. Esto asegura la colocación correcta de los discos si necesita restaurar desde su copia de seguridad. +::: + +--- + +## Acceso a la Red + +Puede controlar si su unidad flash es accesible a través de la red, similar a otras carpetas compartidas en Unraid. Sin embargo, el acceso a la red debe ser restringido ya que la unidad flash contiene datos sensibles de configuración y licencia. Considere lo siguiente: + +- **Visibilidad de la Red:** Decide si tu unidad flash debería ser visible u oculta en tu red. +- **Derechos de acceso:** Si el acceso a la red está habilitado, configura los permisos para limitar quién puede ver o modificar sus contenidos. + +:::important\[Reducing riesgos de seguridad + +- **Desactivar compartición:** Establece la exportación %%SMB|samba%% de la unidad flash en **No** para evitar totalmente el acceso a la red. +- **Restringir acceso:** Si debes compartir la unidad flash, configura la seguridad como **Privado** y concede acceso solo a usuarios de confianza con contraseñas fuertes. +- **Evitar acceso público:** Nunca dejes la compartición de la unidad flash establecida como **Público** o **Seguro** con acceso de escritura para invitados. + +Estos pasos ayudan a prevenir cambios no autorizados o la exposición de archivos críticos. + +::: + +--- + +## Permisos + +Para mejorar la seguridad del sistema, los archivos en la unidad flash ya no pueden recibir permiso de ejecución. Este cambio impide que el código malicioso o no deseado se ejecute directamente desde la unidad flash, reduciendo el riesgo de explotación o modificación accidental del sistema. + +Si tienes scripts o programas personalizados almacenados en la unidad flash, sigue estos pasos: + +1. **Copia los scripts a una ubicación ejecutable:** + - Usa `/usr/local/bin` si deseas que los scripts estén en la ruta del sistema por defecto. + - Automatiza esto añadiendo comandos de copia a tu archivo `config/go`. + - Después de copiar, establece el permiso de ejecución en los archivos. + +2. **Ejecuta scripts con un intérprete:** + - Antepon el script con el intérprete (por ejemplo, `bash /boot/config/scripts/myscript.sh`). + +Este enfoque mantiene tu sistema seguro al mismo tiempo que permite a los usuarios avanzados ejecutar sus scripts. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx new file mode 100644 index 0000000000..03657378b2 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx @@ -0,0 +1,187 @@ +--- +sidebar_position: 8 +sidebar_label: Asegura tus comunicaciones salientes +--- + +# Asegura tus comunicaciones salientes + +El administrador de proxy saliente y los nodos de salida de %%Tailscale|tailscale%% proporcionan una manera de enrutar las comunicaciones salientes de Unraid a través de canales seguros. Estas herramientas son útiles para evitar cortafuegos restrictivos, cumplir con políticas de red o proteger tu tráfico saliente. Si bien estas soluciones se centran principalmente en el tráfico del sistema de Unraid, existen opciones de configuración para ampliar su cobertura a tu red más amplia. + +Hay tres métodos principales para asegurar tus comunicaciones salientes: + +1. [**Administrador de Proxy Saliente**](#setting-up-a-proxy-server) - Esta herramienta enruta el tráfico HTTP a través de un servidor proxy, permitiéndote gestionar y dirigir tus solicitudes web de manera segura. +2. [**Nodos de salida de %%Tailscale|tailscale%%**](#tailscale-exit-nodes) - Con los nodos de salida de %%Tailscale|tailscale%%, todo tu tráfico puede ser enrutado a través de la red mesh de %%Tailscale|tailscale%%, asegurando una conexión segura entre tus dispositivos. +3. [**%%WireGuard|wireguard%% %%VPN|vpn-tunnel%%**](#outgoing-vpn-connections) - También puedes usar %%WireGuard|wireguard%% %%VPN|vpn-tunnel%% para enrutar tu tráfico a través de proveedores comerciales de %%VPN|vpn-tunnel%%, añadiendo una capa adicional de privacidad y seguridad. + +### Administrador de Proxy Saliente vs. Tailscale/WireGuard/VPN + +| Caso de uso | Herramienta recomendada | Por qué | +| ---------------------------------------------------------- | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Eludir el firewall para actualizaciones del sistema Unraid | Administrador de Proxy Saliente | Enruta solo el tráfico del sistema de Unraid a través de un proxy; configuración simple y mínima. | +| Asegura todo el tráfico saliente con networking mesh | Nodos de salida de %%Tailscale\|tailscale%% | Encripta el tráfico a través de la red de malla de %%Tailscale\|tailscale%%; configuración fácil con la infraestructura existente de %%Tailscale\|tailscale%%. | +| Asegura todo el tráfico saliente (a nivel del sistema) | %%WireGuard\|wireguard%% %%VPN\|vpn-tunnel%% | Cifra y tuneliza todo el tráfico desde Unraid (incluyendo Docker/VMs) hacia proveedores comerciales de %%VPN\|vpn-tunnel%%. | +| Aislar el tráfico de Docker o VM | %%VPN\|vpn-tunnel%% o proxy de contenedor | Configura %%VPN\|vpn-tunnel%% a nivel de contenedor/VM para un control granular. | +| Acceder a la red doméstica desde cualquier lugar | Nodos de salida de %%Tailscale\|tailscale%% | Enruta el tráfico a través de tu red doméstica para un IP y geolocalización consistentes. | + +Para la mayoría de los usuarios, soluciones como [%%Tailscale|tailscale%%](./tailscale.mdx) o [%%WireGuard|wireguard%%](./wireguard.mdx) son preferidas para seguridad y privacidad de todo el sistema. Usa el Administrador de Proxy Saliente cuando solo necesites proxy para las propias solicitudes HTTP de Unraid. + +### Configurando un servidor proxy + +Para configurar un servidor proxy: + +1. Dirígete a ***Ajustes → Administrador de Proxy Saliente*** en el %%WebGUI|web-gui%%. + +
+ ![Administrador de Proxy Saliente](/img/outgoing-proxy-manager.png) +
+ +2. Agrega el nombre de tu proxy, URL, y (si es necesario) nombre de usuario/contraseña. +3. Haga clic en **Aplicar**. +4. Selecciona tu nuevo proxy de la lista y haz clic en **Aplicar** nuevamente. + +El %%WebGUI|web-gui%% usará automáticamente el proxy seleccionado para el tráfico del sistema saliente. Si tienes terminales web abiertos o sesiones de %%SSH|ssh%%, ciérralos y ábrelos nuevamente para aplicar los nuevos ajustes del proxy. Este uso es transparente: monitorea los registros del servidor proxy para verificar la actividad. + +### Elegir un servidor proxy HTTP + +- **Si tu organización proporciona un proxy:** Usa la dirección y credenciales proporcionadas por tu administrador de red. +- **Si necesitas configurar el tuyo propio:** + - El [contenedor Docker del servidor proxy por @ich777](https://forums.unraid.net/profile/72388-ich777/) está probado y funciona bien con Unraid. + - Puedes configurar este contenedor para enrutar tráfico a través de un %%VPN|vpn-tunnel%% comercial usando el [%%WireGuard|wireguard%% %%VPN|vpn-tunnel%%](wireguard.mdx) de Unraid o conectarlo a otro servicio de %%VPN|vpn-tunnel%% basado en Docker. + - Para mayor fiabilidad, hospeda el servidor proxy en un sistema separado de Unraid para asegurar la disponibilidad de la red al arrancar. + +Para monitorizar el tráfico del proxy, ve a la pestaña **Docker** en el sistema host del proxy, selecciona el contenedor **Proxy Server** y visualiza los **Registros**. + +### Importación automática y compatibilidad de complementos + +- Si anteriormente usaste el complemento **Proxy Editor**, será eliminado automáticamente al actualizar a Unraid 7.0+ con soporte de proxy integrado. +- Los ajustes de proxy antiguos en tu script `config/go` o en `community.applications/proxy.cfg` serán importados automáticamente, y los archivos antiguos serán renombrados por seguridad. + +### Compatibilidad con complementos + +- Los complementos que utilizan la función `curl_init()` de PHP usarán automáticamente el proxy saliente. +- Los complementos que utilizan `file_get_contents()` deben migrar a `curl_init()` para compatibilidad con proxy. +- Para procesos de línea de comandos, prefiere `curl` sobre `wget` para compatibilidad con proxy. + +Para obtener información adicional sobre el desarrollo de complementos y su compatibilidad, visita la [sección de Complementos de la documentación](../../using-unraid-to/customize-your-experience/plugins.mdx). + +## Nodos de salida de Tailscale + +%%Tailscale|tailscale%% exit nodes offer a secure and modern way to route your Unraid server's outgoing traffic through another device on your %%Tailnet|tailnet%%. This setup provides the security of a %%VPN|vpn-tunnel%% while leveraging %%Tailscale|tailscale%%'s easy-to-use mesh networking, making it ideal for users who want encrypted outgoing traffic without the complexity of traditional %%VPN|vpn-tunnel%%s. + +:::tip[When para usar nodos de salida de Tailscale] +Considera usar nodos de salida de %%Tailscale|tailscale%% para: + +- Asegurar el tráfico saliente desde tu red doméstica mientras viajas +- Mantener direcciones IP consistentes para servicios que bloquean el tráfico de VPN +- Integrarse de manera fluida con la infraestructura %%Tailscale|tailscale%% existente +::: + +### Configurando nodos de salida de Tailscale + +Para configurar un nodo de salida de %%Tailscale|tailscale%% para el tráfico saliente de tu servidor: + +1. **Instala el [plugin Tailscale](https://unraid.net/community/apps/c/plugins?q=tailscale#r:~:text=Plugins-,Tailscale%20\(Plugin\),-Derek%20Kaser)** de Community Applications si aún no está instalado. +2. **Configura un nodo de salida** en tu %%Tailnet|tailnet%%. \*\*Esto puede ser otro servidor Unraid, un contenedor Docker o cualquier dispositivo que ejecute %%Tailscale|tailscale%%. +3. **Configura tu servidor Unraid** para usar el nodo de salida: + - Dirígete a ***Ajustes → Tailscale***. + - En el campo **Usar Nodo de Salida**, selecciona el nodo de salida disponible. + - Haga clic en **Aplicar**. + +### Integración con Mullvad + +Tailscale se ha asociado con Mullvad VPN para proporcionar nodos de salida comerciales. Puedes comprar [Mullvad VPN a través de Tailscale](https://tailscale.com/mullvad) y obtener acceso a su red global de servidores como nodos de salida. Esta combinación ofrece la conectividad en red mesh de Tailscale junto con la infraestructura centrada en la privacidad de Mullvad. + +### Nodos de salida de contenedor Docker + +También puedes configurar un contenedor Docker para funcionar como un nodo de salida de %%Tailscale|tailscale%% en tu servidor Unraid. + +1. **Despliega un contenedor de %%Tailscale|tailscale%%** usando la [imagen Docker oficial de %%Tailscale|tailscale%%](https://hub.docker.com/r/tailscale/tailscale). +2. **Configura el contenedor** añadiendo el flag `--advertise-exit-node`. +3. **Aprueba el nodo de salida** en tu consola de administración de %%Tailscale|tailscale%%. +4. **Selecciona el contenedor** como nodo de salida para tus otros dispositivos en el %%Tailnet|tailnet%%. + +## Conexiones salientes de VPN + +Unraid admite conexiones VPN salientes con WireGuard a proveedores comerciales, permitiéndote enrutar contenedores Docker o el tráfico completo de tu servidor a través de un túnel seguro. Esto es útil para la privacidad, evitar restricciones geográficas o asegurar datos salientes. Para información y soluciones de la comunidad, consulta el [hilo del foro sobre acceso tunelizado de WireGuard VPN](https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/). + +### Elegir un proveedor de VPN + +Seleccionar el proveedor de %%VPN|vpn-tunnel%% adecuado depende de tus prioridades: velocidad, privacidad, facilidad de uso y soporte. Los siguientes proveedores son bien soportados por Unraid y ofrecen una integración fuerte con %%WireGuard|wireguard%%: + +| Proveedor | Mejor para | Características clave | Soporte en Unraid | Notas | +| -------------------------------------------------------------------------------------------------------- | ---------------------------------- | --------------------------------------------------------- | ----------------- | ------------------------------------------ | +| [NordVPN](https://nordvpn.com/) | Velocidad, privacidad, valor | Doble NAT, sin registros, red global | Excelente | Protocolo NordLynx, rápido | +| [Surfshark](https://surfshark.com/) | Económico, dispositivos ilimitados | Sin registros, conexiones ilimitadas, velocidades rápidas | Excelente | Gran valor, fácil configuración | +| [ProtonVPN](https://protonvpn.com/) | Privacidad, código abierto | Doble NAT, Secure Core, sin registros | Excelente | Código abierto, fuerte privacidad | +| [Mullvad](https://mullvad.net/en) | Anonimato, simplicidad | Sin información personal, precio plano, código abierto | Excelente | Pagar con efectivo, sin correo electrónico | +| [PureVPN](https://www.purevpn.com/) | Streaming, flexibilidad | Gran red, fácil integración con Unraid | Buena | Buen soporte, velocidades rápidas | +| [CyberGhost](https://www.cyberghostvpn.com/) | Streaming, facilidad de uso | Servidores optimizados, velocidades rápidas | Buena | Aplicaciones fáciles de usar | +| [IVPN](https://www.ivpn.net/en/), [OVPN](https://www.ovpn.com/en), [Windscribe](https://windscribe.com/) | Necesidades específicas | Privacidad avanzada, opciones regionales | Buena | Soportado por la comunidad | + +:::tip +Elige un proveedor con soporte nativo para %%WireGuard|wireguard%% y políticas de privacidad sólidas. Evita proveedores que requieran clientes personalizados o protocolos propietarios. +::: + +### Configurando acceso tunelizado de VPN para Docker + +Puedes enrutar contenedores Docker específicos a través de un túnel %%VPN|vpn-tunnel%% comercial - sin cambios en el router requeridos. + +1. Descarga el archivo de configuración de %%WireGuard|wireguard%% de tu proveedor elegido. +2. En ***Ajustes → Administrador de VPN***, selecciona **Importar Configuración** y carga el archivo. Esto crea un nuevo túnel. +3. El **Tipo de acceso de par** predeterminado es *Acceso tunelizado de VPN para Docker*. Opcionalmente, dale un nombre local. +4. Haga clic en **Aplicar**. +5. Establece el interruptor del túnel a **Activo**. + +:::tip +Anota el nombre del túnel (p. ej., `wg0`, `wg1`, `wg2`). Lo necesitarás al configurar contenedores Docker.\ +Si tu proveedor especifica un servidor DNS en su configuración, anótalo para usarlo después. Si no, usa un DNS público como `8.8.8.8`. +::: + +### Prueba del túnel de Docker + +Para verificar que tu túnel de Docker está funcionando y no está filtrando información de DNS o IP: + +1. Instala un contenedor Docker de [Firefox](https://unraid.net/community/apps?q=Firefox) a través de Community Applications. +2. Establece su **Tipo de Red** en **Personalizado: wgX** (reemplaza X con el nombre de tu túnel). +3. Cambia a la vista **Avanzado** y añade tu proveedor de DNS a **Parámetros Extra** (p.ej., `--dns=8.8.8.8`). +4. Aplica los cambios y arranca el contenedor. +5. Inicia Firefox y visita [whatismyipaddress.com](https://whatismyipaddress.com/) para verificar que tu dirección IP coincide con el país del servidor de VPN. +6. Visita [dnsleaktest.com](https://www.dnsleaktest.com/) y confirma que solo se detectan los servidores DNS de tu VPN. + +Puedes asignar contenedores adicionales a este túnel o crear múltiples túneles. + +### Configurando acceso tunelizado de VPN para el sistema + +Para enrutar todo el tráfico de Unraid a través de un VPN comercial: + +1. Descarga el config de %%WireGuard|wireguard%% de tu proveedor. +2. En ***Ajustes → Administrador de VPN***, selecciona **Importar Configuración** y carga el archivo. +3. Opcionalmente, renombra el túnel. +4. Haga clic en **Aplicar**. +5. Establece el interruptor del túnel a **Activo**. + +:::note +- Es posible que necesites desactivar el túnel temporalmente para actualizaciones de Unraid o instalaciones de complementos. +- Solo un túnel del sistema puede estar activo a la vez. +- Unraid ignora las configuraciones de DNS del archivo importado. Establece el DNS de Unraid en un servidor público confiable (p. ej., `8.8.8.8`, `8.8.4.4`). +::: + +### Prueba del túnel del sistema + +1. Instala el contenedor Docker de [Firefox](https://unraid.net/community/apps?q=Firefox). +2. Acepta todos los valores predeterminados. +3. Inicia Firefox y visita [whatismyipaddress.com](https://whatismyipaddress.com/). Tu dirección IP debería coincidir con la ubicación de tu proveedor de VPN. + +--- + +### Soporte y Recursos Comunitarios + +Para obtener la guía más actualizada, asistencia para la resolución de problemas y consejos de la comunidad, visita los siguientes recursos en los [foros de Unraid](https://forums.unraid.net/): + +- **[WireGuard VPN Tunneled Access](https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/)** - Esta discusión comunitaria se centra en enrutar contenedores Docker o tráfico del sistema a través de proveedores comerciales de VPN WireGuard. Incluye ejemplos de configuración en el mundo real, consejos para probar filtraciones de DNS y recomendaciones para solucionar problemas de túneles salientes. + +- **[Hilo de Plug-in de WireGuard de Dynamix](https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/)** - Este es el hilo oficial para el plugin de WireGuard de Dynamix. Cubre actualizaciones del plugin, solicitudes de funciones, informes de errores y preguntas y respuestas generales relacionadas con el soporte integrado de WireGuard en Unraid. + +- **[Inicio Rápido de WireGuard](https://forums.unraid.net/topic/84226-wireguard-quickstart/)** - Una guía paso a paso para configurar conexiones VPN WireGuard entrantes en Unraid. Este recurso incluye explicaciones de configuración, instrucciones para configurar pares y consejos para el acceso remoto. + +\* *"WireGuard" y el logotipo de "WireGuard" son marcas registradas de Jason A. Donenfeld.* diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx new file mode 100644 index 0000000000..5107218c25 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx @@ -0,0 +1,296 @@ +--- +sidebar_position: 4 +sidebar_label: Asegurando tu conexión +--- + +# Asegurando tu conexión + +Asegurar tu %%WebGUI|web-gui%% de Unraid con cifrado %%SSL|ssl%% protege datos confidenciales, como credenciales de inicio de sesión y detalles de configuración, de la interceptación o manipulación en tu red local o en internet. Puedes usar certificados %%SSL|ssl%% comodín proporcionados por [Let's Encrypt](https://letsencrypt.org/) para escenarios tanto locales como de [Acceso remoto a Unraid Connect](../../../unraid-connect/remote-access.mdx). + +:::important[The importancia de SSL] +%%SSL|ssl%% (Capa de sockets seguros) cifra todo el tráfico entre tu navegador y el servidor de Unraid, previniendo la escucha clandestina y los ataques de intermediarios. Sin %%SSL|ssl%%, cualquiera con acceso a tu red podría potencialmente interceptar datos sensibles o secuestrar tu sesión. Se recomienda encarecidamente usar %%SSL|ssl%% tanto para la gestión local como remota de tu servidor Unraid. +::: + +--- + +## Parámetros SSL + +Varios parámetros en Unraid afectan cómo se configura y usa %%SSL|ssl%%. Entender estos parámetros te ayuda a elegir el certificado y el método de conexión adecuados para tus necesidades. + +| Parámetro | Descripción | +| ----------------------- | ------------------------------------------------------------------------------------------------- | +| **Nombre del servidor** | Configuración en ***Configuración → Identificación***. El valor predeterminado es `tower`. | +| **TLD local** | Configuración en ***Configuración → Acceso de Gestión***. El valor predeterminado es `local`. | +| **Usar SSL/TLS** | Establecido en ***Configuraciones → Acceso de Gestión***. Controla si %%SSL\|ssl%% está activado. | +| **Puerto HTTP** | Configuración en ***Configuración → Acceso de Gestión***. El valor predeterminado es `80`. | +| **Puerto HTTPS** | Configuración en ***Configuración → Acceso de Gestión***. El valor predeterminado es `443`. | +| **Certificado** | Tipo de certificado %%SSL\|ssl%% utilizado (ver abajo). | +| **IP LAN** | La dirección IP LAN de tu servidor, formateada para su uso en URLs. | +| **IP WAN** | La dirección IP pública de tu servidor, formateada para su uso en URLs. | +| **%%Hash\|hash%%** | Identificador único de 40 caracteres asignado al certificado de tu servidor. | + +### Tipos de certificados SSL + +| Tipo | Cuándo usar | Pros/Contras | +| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| **Autofirmado** | Para acceso solo local cuando no necesitas un certificado de confianza. | Fácil de configurar, pero los navegadores muestran advertencias. El tráfico se cifra una vez que se acepta la advertencia. | +| **Myunraid.net** | Para acceso seguro local y remoto, especialmente con Unraid Connect o si deseas un certificado de confianza. | Confiado por los navegadores, sin advertencias. Habilita el acceso remoto seguro a través de Unraid Connect. | +| **Personalizado** | Para usuarios avanzados que desean un certificado de dominio comodín o personalizado (requiere configuración de %%DNS\|dns-name-resolution%%). | Confiable, flexible, pero requiere configuración adicional. | + +--- + +## Formas para acceder a tu WebGUI + +A continuación se muestran las formas principales de acceder a tu %%WebGUI|web-gui%% de Unraid, dependiendo de tu configuración %%SSL|ssl%%: + +#### Solo HTTP (sin cifrar) + +
+ Haga clic para expandir/contraer + + Con solo HTTP, el tráfico entre tu navegador y el servidor no está cifrado. + + 1. Ve a ***Configuraciones → Acceso de Gestión***. + 2. Configurar **Usar SSL/TLS** a *No*. + 3. Mantener **TLD Local** como `local` a menos que tengas tu propio DNS. + 4. URLs de acceso: + - `http://[nombre del servidor].[TLD local]` (ej., `http://tower.local`) + - `http://[dirección ip]` (ej., `http://192.168.100.1`) + 5. Haga clic en **Aplicar**. + + :::advertencia + Cualquiera en su red puede interceptar datos enviados por HTTP. Use HTTPS siempre que sea posible. + ::: +
+ +--- + +#### HTTPS con certificado autofirmado + +
+ Haga clic para expandir/contraer + + El tráfico está cifrado, pero los navegadores mostrarán una advertencia porque el certificado no está firmado por una autoridad de confianza. + + 1. Ve a ***Configuraciones → Acceso de Gestión***. + 2. Configurar **Usar SSL/TLS** a *Sí*. + 3. Mantener **TLD Local** como `local` a menos que tengas tu propio DNS. + 4. URLs de acceso: + - `https://[nombre del servidor].[TLD local]` (ej., `https://tower.local`) + - `https://[dirección ip]` (ej., `https://192.168.100.1`) + 5. Haga clic en **Aplicar**. + + :::importante + Los navegadores mostrarán un error de certificado. Todo el tráfico sigue estando cifrado después de aceptar la advertencia. + ::: +
+ +--- + +#### HTTPS con certificado Myunraid.net y URL de respaldo + +
+ Haga clic para expandir/contraer + + Puede acceder a su servidor de forma segura a través del %%WebGUI|web-gui%% utilizando un certificado de Myunraid.net, y configurar una URL alternativa en caso de que su resolución %%DNS|dns-name-resolution%% esté caída. Todo el tráfico estará cifrado, y el servidor está configurado para recurrir a un método secundario cuando %%DNS|dns-name-resolution%% no esté disponible. + + 1. Ve a ***Configuraciones → Acceso de Gestión***. + 2. Mantener **TLD Local** en el valor predeterminado de `local` a menos que puedas proporcionar tu propia resolución de nombres DNS (esto se usa para el certificado de respaldo). + 3. Dejar **Usar SSL/TLS** configurado a *No* o *Sí*. + 4. Presiona **Provisión** para generar el certificado myunraid.net. + + **Tus URLs principales cuando Usar SSL/TLS está configurado en *No*:** + + - `http://[nombre del servidor].[TLD local]` (ejemplo: `http://tower.local`) + - `http://[dirección ip]` (ejemplo: `http://192.168.100.1`) + + **Tus URLs principales cuando Usar SSL/TLS está configurado en *Sí* (usa certificado autofirmado):** + + - `https://[nombre del servidor].[TLD local]` (ejemplo: `https://tower.local`) + - `https://[dirección ip]` (ejemplo: `https://192.168.100.1`) + + **Tu URL alterna de myunraid.net:** + + - `https://[ip-lan].[hash].myunraid.net` (ejemplo: `https://192-168-100-1.a1b2c3d4e5.myunraid.net`) + - Esta URL se muestra en el campo **URLs de acceso local** en la página **Acceso de Gestión**. + - Si instalas el [plugin Unraid Connect](../../../unraid-connect/overview-and-setup.mdx), también se mostrará en el tablero de Connect. + + :::info + El certificado Myunraid.net es confiado por los navegadores y no muestra advertencias. La URL utiliza su dirección IP LAN con puntos cambiados por guiones, más un %%hash|hash%% único de 40 caracteres asignado a su servidor. + ::: + + :::consejo[Acceso alternativo] + Si la resolución %%DNS|dns-name-resolution%% no está disponible (por ejemplo, si su Internet se cae), puede usar las URL locales con el nombre de su servidor o dirección IP como métodos de acceso de respaldo. + ::: +
+ +#### HTTPS con certificado Myunraid.net y sin URL de respaldo + +
+ Haga clic para expandir/contraer + + Este método proporciona el nivel más alto de cumplimiento %%SSL|ssl%% al requerir que todo el acceso al %%WebGUI|web-gui%% use el certificado y URL de Myunraid.net. Es ideal para usuarios que quieren máxima seguridad y no necesitan acceder a su servidor vía IP local o nombre de host si %%DNS|dns-name-resolution%% no está disponible. + + 1. Ir a ***Configuración → Acceso de Gestión*** en el %%WebGUI|web-gui%%. + 2. Mantener **TLD Local** configurado en `local` a menos que tengas tu propia resolución %%DNS|dns-name-resolution%% (esto se usa para el certificado de respaldo si más tarde ejecutas el comando `use_ssl`). + 3. Haz clic en **Provisión** para generar un certificado Myunraid.net. + 4. Si tu red no tiene problemas de rebobinado %%DNS|dns-name-resolution%%, la opción *Estricta* para **Usar SSL/TLS** estará disponible. + 5. Configura **Usar SSL/TLS** a *Estricta* (o *Auto* en versiones anteriores de Unraid). + 6. Tu URL de acceso será:\ + `https://[ip-lan].[hash].myunraid.net` (ejemplo: `https://192-168-100-1.a1b2c3d4e5.myunraid.net`) + + Si instalas el [plugin Unraid Connect](../../../unraid-connect/overview-and-setup.mdx), también se mostrará en el tablero de Connect. + + :::precaución + Si la resolución %%DNS|dns-name-resolution%% no está disponible (por ejemplo, su conexión a Internet se cae), no podrá acceder al %%WebGUI|web-gui%% usando la URL Myunraid.net. + + Para recuperar el acceso: + + - Usa Telnet, %%SSH|ssh%%, o un teclado/monitor local para iniciar sesión. + - Ejecuta `use_ssl no` para cambiar a HTTP (`http://[nombre del servidor].[TLD local]` o `http://[dirección ip]`). + - Ejecuta `use_ssl yes` para cambiar a HTTPS usando un certificado autofirmado (`https://[nombre-servidor].[dominio-local]` o `https://[dirección-ip]`). Consulta [HTTPS con un certificado autofirmado](#https-with-self-signed-certificate) arriba para más detalles. + - Una vez que %%DNS|dns-name-resolution%% se restaura, configure **Usar SSL/TLS** de nuevo a *Estricta* para máxima seguridad. + ::: +
+ +--- + +## Redirecciones + +Cuando accedes `http://[nombre del servidor].[TLD local]`, el comportamiento de redirección depende de tu configuración de **Usar SSL/TLS**: + +- **Estricta**: Será redirigido a `https://[lan-ip].[hash].myunraid.net`. + :::nota + Esto puede dificultar el acceso local si %%DNS|dns-name-resolution%% no está disponible. Consulte la advertencia bajo [HTTPS con certificado Myunraid.net y sin URL de respaldo](#https-with-myunraidnet-certificate-and-with-no-fallback-url). + ::: + +- **Sí**: Serás redirigido a `https://[nombre-servidor].[dominio-local]`. Esto seguirá funcionando incluso si tu conexión a Internet está caída. + +- **No**: La URL HTTP se cargará directamente, sin redirección o cifrado. + +:::tip +Las redirecciones solo funcionan cuando comienzas desde URLs HTTP, no desde URLs HTTPS. +::: + +--- + +## Certificados personalizados + +Los certificados personalizados te permiten asegurar tu %%WebGUI|web-gui%% de Unraid con tu propio certificado %%SSL|ssl%%, como uno emitido por una autoridad de certificación comercial o un certificado comodín para tu dominio. + +Un certificado personalizado es cualquier certificado %%SSL|ssl%% que proporcionas y gestionas tú mismo, en lugar de uno generado por Unraid o Let's Encrypt. Esto es útil si deseas usar tu propio nombre de dominio, un certificado comodín o integrarlo con la infraestructura PKI de tu organización. + +:::info\[When usando un certificado personalizado, eres responsable de... + +- Obtener el certificado de una autoridad de certificación (CA) de confianza +- Gestionar los registros %%DNS|dns-name-resolution%% para tu dominio elegido +- Cargar y renovar el certificado según sea necesario +- Asegurarte de que el certificado coincida con el nombre de dominio de tu servidor (en los campos Asunto o Nombre Alternativo del Asunto) + +::: + +Si tu certificado es inválido o no coincide con la URL del servidor, Unraid lo eliminará y volverá a un certificado por defecto. + +### HTTPS con certificado personalizado (con acceso remoto opcional de Unraid Connect) + +
+ Acceso vía HTTPS con certificado personalizado - Haz clic para expandir/colapsar + + 1. Ve a ***Configuraciones → Acceso de Gestión***. + 2. Configurar **Usar SSL/TLS** a *Sí*. + 3. Configurar **TLD Local** al nombre de dominio usado en el Asunto de tu certificado. + 4. Accede a tu servidor en `https://[nombre-servidor].[dominio-local]` (por ejemplo, `https://torre.midominio.com`). Debes gestionar el DNS para esta URL. + 5. Sube tu certificado a `/boot/config/ssl/certs/[nombre del servidor]_unraid_bundle.pem`. + 6. El certificado debe ser válido para `[nombre del servidor].[TLD local]` o como wildcard `*.[TLD local]` (donde `[TLD local]` coincide exactamente con lo que ingresaste en el campo **TLD Local**). + - El dominio debe aparecer en los campos Asunto o Nombre Alternativo del Asunto (Unraid 6.10.3+ soporta SANs). + - Si el certificado no coincide, Unraid lo eliminará. + 7. Opcionalmente, habilita [acceso remoto de Unraid Connect](../../../unraid-connect/remote-access.mdx) para una gestión remota segura y confiable por navegadores. + + :::consejo + Para certificados comodín, asegúrese de que el Nombre Alternativo del Sujeto o el campo del Sujeto del certificado contenga `*.[localTLD]` donde `[localTLD]` es el valor exacto que ingresó en el campo **TLD Local** en **Acceso de Gestión**. + ::: +
+ +--- + +## Solución de problemas SSL y configuración avanzada + +Esta sección cubre problemas comunes relacionados con SSL y opciones de configuración avanzada que se aplican cuando se utilizan certificados myunraid.net, independientemente de si tienes Unraid Connect instalado. + +### Protección contra rebinding de DNS + +La protección contra la reorientación de DNS es una característica de seguridad en muchos routers que evita que las entradas DNS públicas resuelvan direcciones IP locales. Esto ayuda a proteger tu red de ciertos ataques, pero puede causar problemas al intentar usar certificados %%SSL|ssl%% para el acceso local a la %%WebGUI|web-gui%% de Unraid. + +Si encuentras un error de reenlace de DNS al intentar aprovisionar un certificado %%SSL|ssl%% (por ejemplo, después de hacer clic en el botón **Aprovisionar**), considera los siguientes pasos: + +- Haz clic en **Aceptar** en el mensaje de error, espera 2 a 5 minutos e inténtalo de nuevo. +- Si el error continúa, revisa la configuración de tu router para opciones relacionadas con "protección de reenlace DNS" u otros términos similares. +- Permite el reenlace de DNS para el dominio `myunraid.net`. +- Ten en cuenta que los cambios de DNS pueden tardar en propagarse, por lo que podrías ver el error nuevamente después de realizar actualizaciones. + +Los pasos exactos pueden variar según el modelo y firmware de tu router. + +### Accediendo a tu servidor cuando el DNS está caído + +Cuando %%SSL|ssl%% está habilitado con un certificado myunraid.net, normalmente accedes a tu servidor Unraid usando un nombre de dominio completamente calificado (FQDN), como: + +``` +https://ip.yourpersonalhash.myunraid.net +``` + +O, si estás utilizando un puerto HTTPS personalizado: + +``` +https://ip.yourpersonalhash.myunraid.net: +``` + +Esto asegura que estés usando un certificado %%SSL|ssl%% válido para un acceso seguro. Sin embargo, si tu conexión a Internet se cae y tu navegador no ha almacenado en caché la entrada DNS, podrías perder acceso a la %%WebGUI|web-gui%%. + +Si pierdes acceso al DNS o a Internet: + +- Si **Usar SSL/TLS** está configurado en **Sí**, trata de acceder a tu servidor en: + ``` + https://[servername].[localTLD] + ``` + O con un puerto personalizado: + ``` + https://servername.[localTLD]: + ``` + +- Si esto no funciona, o si **Usar SSL/TLS** está configurado en **Estricto**: + 1. Usa telnet, %%SSH|ssh%% o un teclado/monitor conectado directamente para iniciar sesión en tu servidor. + 2. Ejecuta el comando: + ```bash + use_ssl no + ``` + 3. Ahora puedes acceder a la %%WebGUI|web-gui%% en: + ``` + http:// + ``` + O, si utilizas un puerto personalizado: + ``` + http://: + ``` + (Nota: esto usa HTTP, no HTTPS.) + +Una vez que se restablezca el acceso a Internet, ve a ***Configuración → Acceso de Gestión*** y establece **Usar SSL/TLS** de nuevo a **Estricto** para reactivar SSL local. + +### Deshabilitando SSL para acceso local + +Deberías deshabilitar %%SSL|ssl%% para el acceso local si prefieres una conexión HTTP simple en tu red doméstica de confianza o si estás enfrentando problemas continuos con el aprovisionamiento de certificados %%SSL|ssl%% , el reenlace DNS o la compatibilidad del navegador. + +Para deshabilitar %%SSL|ssl%% para acceso local: + +1. Dirígete a ***Configuración → Acceso de Gestión*** en el WebGUI. +2. Establece **Usar SSL/TLS** en **No**. +3. Haga clic en **Aplicar**. + +Este cambio también deshabilitará la función de Acceso Remoto, ya que %%SSL|ssl%% es necesario para conexiones remotas seguras. + +:::caution +Desactivar %%SSL|ssl%% significa que tu %%WebGUI|web-gui%% será accesible a través de HTTP sin cifrar. Esto expone tus credenciales de inicio de sesión y los datos de sesión a cualquiera en tu red local y no se recomienda a menos que estés seguro de que tu red es segura y no necesitas acceso remoto. Para una mejor seguridad, mantén %%SSL|ssl%% habilitado siempre que sea posible. +::: + +:::note +La gestión de %%SSL|ssl%% es una funcionalidad central de Unraid y no depende del complemento Unraid Connect. Puedes desactivar %%SSL|ssl%% sin afectar otras funcionalidades de Unraid. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx new file mode 100644 index 0000000000..67642fccd6 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx @@ -0,0 +1,58 @@ +--- +sidebar_position: 5 +sidebar_label: Cifrando tus datos +--- + +# Cifrando tus datos + +Cifrar sus discos en Unraid añade una capa sólida de protección para datos sensibles, ayudando a prevenir el acceso no autorizado si un disco se pierde o es robado. La cifrado está disponible para el %%array|array%% y el %%cache pool|cache-pool%%. Sin embargo, tenga en cuenta que el cifrado puede complicar la recuperación de datos, por lo que debe usarse solo cuando requiera un nivel específico de confidencialidad de datos, como al almacenar información sensible personal, comercial o regulada. + +:::caution +El cifrado aumenta la seguridad de tus datos, pero puede complicar la recuperación de fallos de hardware. **Solo habilita el cifrado si tienes una necesidad genuina y un sistema de respaldo confiable.** Si pierdes tu clave de cifrado o archivo de clave, tus datos serán permanentemente inaccesibles. +::: + +
+ ¿Cuándo deberías considerar encriptar tus discos? - Haz clic para expandir/colapsar + + - Almacenas datos confidenciales, regulados o sensibles en tu servidor Unraid. + - Te preocupa el robo de datos si una unidad es físicamente removida o robada. + - Necesitas cumplir con requisitos organizacionales o legales de protección de datos. + + Si usas Unraid principalmente para medios domésticos o archivos no sensibles, puede que la encriptación no sea necesaria y podría complicar la resolución de problemas y la recuperación. +
+ +## Cómo cifrar una unidad en Unraid + +:::warning +Cifrar una unidad eliminará todos los datos existentes en esa unidad. +::: + +:::important\[Before cifrando + +Move all data off the drive you want to encrypt to another location (another drive in your %%array|array%%, a %%cache pool|cache-pool%%, or external backup). For details on safely moving your data, see [Converting to a new file system type](../../using-unraid-to/manage-storage/file-systems.mdx#converting-to-a-new-file-system-type). + +::: + +Para cifrar una unidad: + +1. Vaya a la pestaña **Principal** en el %%WebGUI|web-gui%%. +2. Detenga el %%array|array%%. +3. Selecciona la unidad que deseas cifrar. +4. En **Tipo de sistema de archivos**, elige la versión cifrada de tu sistema de archivos deseado (por ejemplo, `xfs-encrypted`, `btrfs-encrypted`). +5. Haz clic en **Aplicar** para confirmar el cambio. +6. Haz clic en **Hecho** para volver a la pestaña **Principal**. Ahora el disco aparecerá como no montable, y tendrás la opción de formatear discos no montables. +7. Verifica nuevamente que hayas seleccionado la unidad correcta, luego [formatea](../../using-unraid-to/manage-storage/file-systems.mdx#creating-a-file-system-formatting) para completar la configuración de encriptación. + +Después de habilitar el cifrado, debes proporcionar la clave de cifrado o archivo de clave cada vez que inicies el %%array|array%%. Una vez desbloqueadas, las unidades cifradas funcionan como cualquier otro volumen en Unraid. + +--- + +## Gestión de claves de encriptación + +Unraid requiere la misma clave de encriptación o archivo de clave para todas las unidades cifradas en tu sistema. + +- Puedes usar una frase de contraseña o un archivo de clave (como un archivo de imagen aleatorio). +- Almacena tu clave de cifrado o archivo de clave en un lugar seguro y sin conexión. No confíes únicamente en tu servidor Unraid para el almacenamiento de claves. +- Si pierdes la clave o el archivo de clave, tus datos cifrados no se pueden recuperar—sin excepciones. + +Las unidades cifradas utilizan el formato %%LUKS|luks%% estándar en la industria, que se puede desbloquear en cualquier sistema Linux moderno con la clave correcta. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx new file mode 100644 index 0000000000..6d6de27650 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx @@ -0,0 +1,172 @@ +--- +sidebar_position: 1 +sidebar_label: Conceptos básicos de seguridad +--- + +# Conceptos básicos de seguridad + +:::note[Principle del menor privilegio] +El principio de menor privilegio significa otorgar a los usuarios y dispositivos solo el acceso mínimo necesario para realizar sus tareas, nunca más. Este enfoque limita el daño potencial de cuentas comprometidas o acciones accidentales y es un concepto clave en la seguridad moderna, incluidos los modelos de confianza cero. Aplica este principio en toda tu configuración de Unraid, especialmente al crear usuarios compartidos y asignar permisos. +::: + +## Controlar el acceso a carpetas compartidas + +### Elegir un protocolo de intercambio de archivos de red + +Al compartir archivos con su servidor Unraid a través de su red doméstica u oficina, tiene algunas opciones sobre cómo conectar. Unraid admite métodos populares, conocidos como protocolos de comunicación, que ayudan a los dispositivos a comunicarse entre sí. + +| Protocolo | Uso Principal | Ventaja | Desventaja | Casos de Uso Recomendados | +| ----------------------------------------------------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| %%SMB\|samba%% (Bloque de Mensajes del Servidor) | Integración nativa con Windows/macOS | Soporte incorporado en Windows; admite impresoras y almacenamiento de VM; rápido con archivos grandes | Versiones antiguas (SMBv1) inseguras; lento con archivos pequeños | Redes de Windows y Mac; ambientes de recursos mixtos (impresoras, VMs) | +| %%NFS\|nfs%% (Sistema de Archivos de Red) | Integración nativa con Unix/Linux | Optimizado para Linux/Unix; eficiente con archivos pequeños; bajo consumo de recursos | Requiere herramientas adicionales para Windows; la confiabilidad de la red es crítica; bloqueo limitado | Entornos Linux y Unix; operaciones de archivos pequeños; cargas de trabajo de datos estáticos | +| %%FTP\|ftp%% (Protocolo de Transferencia de Archivos) | Compatibilidad multiplataforma | Soporte universal para cliente; configuración sencilla; transferencias de archivos por lotes | Protocolo en texto plano sin cifrado; credenciales enviadas sin cifrar; seguridad obsoleta | Solo para transferencias no sensibles o antiguas; usa FTPS (FTP sobre TLS) o SFTP (FTP sobre SSH) para una transferencia de archivos segura | + +:::important +A partir de la versión 6.9 de Unraid, se ha eliminado el soporte para **AFP (Apple Filing Protocol)**. Para asegurar que sus computadoras Mac funcionen bien con su servidor Unraid, incluyendo funciones como copias de seguridad de Time Machine, ve a ***Settings → SMB*** y activa **Mejorar la interoperabilidad con macOS**. +::: + +Deciding which protocol to use depends on the types of devices you have and what you need to do with your files. By default, Unraid enables %%SMB|samba%% because it's widely supported by modern Windows and macOS systems. %%NFS|nfs%% and %%FTP|ftp%% are turned off but can be enabled if needed. + +Por ejemplo, si usas un cliente %%FTP|ftp%% para conectarte a tu servidor Unraid, puedes transferir fácilmente grandes archivos e incluso pausar y reanudar tus cargas o descargas si es necesario. + +--- + +### Gestionar visibilidad de las carpetas compartidas + +Puede configurar diferentes permisos de acceso para las carpetas de red (shares) en Unraid de la siguiente manera: + +1. **Ir a la pestaña Shares**: Comienza haciendo clic en la pestaña **Shares** en el %%WebGUI|web-gui%%. + +2. **Seleccionar un Share**: Elija un share existente que desee ajustar. + +3. **Desplazarse a Configuración de Seguridad**: Al final de la página de configuración del share, verás una sección para opciones de seguridad para cada protocolo de red habilitado. + +4. **Ajustar la Configuración de Exportación**: Esta configuración controla cómo aparece el share en la red. Tienes tres opciones: + + - **Sí**: El share es visible y cualquiera que explore la red puede acceder a él. + - **Sí (Oculto)**: El share no aparecerá en las listas de búsqueda de la red, pero si alguien conoce el nombre del share, aún puede acceder a él. + - **No**: El share está completamente oculto y no se puede acceder a través de ese protocolo específico. + +Al modificar estas opciones, puedes gestionar quién puede ver y acceder a cada share, haciendo más fácil mantener todo seguro mientras te aseguras de que las personas adecuadas tengan el acceso que necesitan, ya sea que estén usando conexiones %%SMB|samba%%, %%NFS|nfs%% o %%FTP|ftp%%. + +--- + +### Estableciendo permisos de usuario para los shares + +El control de seguridad de los shares determina cómo los usuarios acceden a los archivos compartidos en su sistema. Puedes configurar un share para que requiera un nombre de usuario y contraseña para acceder a los archivos, limitar el acceso a solo lectura o hacer que sea completamente público sin necesidad de credenciales. + +:::note\[Example] + +Si creas un share de `películas` en tu servidor Unraid, puedes elegir si se requiere un nombre de usuario y contraseña válidos solo para leer datos o permitir acceso público. Si necesitas agregar usuarios, un usuario `raíz` puede crear usuarios de shares siguiendo el proceso en [**Gestión de usuarios**](./user-management.mdx#add-users). + +::: + +Cuando vayas a la pestaña **Shares** y selecciones un share, verás su configuración, incluyendo una sección de seguridad donde puedes gestionar [permisos de acceso](#managing-network-visibility-of-shares) basados en los protocolos que has habilitado. De esta manera, puedes personalizar quién tiene acceso a tus archivos dependiendo de sus necesidades. + +La configuración de **Seguridad** tiene las siguientes opciones: + +| Tipo | Explicación | Caso de Uso Común | +| ----------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| **Público** | Acceso abierto: Todos pueden leer y escribir en esta carpeta. | Apto para información no sensible, como medios compartidos o descargas públicas. | +| **Seguro** | Acceso limitado: Todos pueden leer, pero solo ciertos usuarios pueden escribir. | Bueno para proyectos compartidos donde se necesita colaboración, como carpetas de equipo. | +| **Privado** | Acceso restringido: Solo usuarios específicos pueden leer o escribir. | Ideal para información sensible, como registros financieros o documentos personales. | + +:::caution[Windows Acceso SMB] +Modern versions of Windows (Windows 10 1709+, Windows 11, Server 2019+) block access to **Public** (guest/anonymous) %%SMB|samba%% shares by default, due to stricter security policies. Attempting to connect to a public share will usually fail unless you manually enable insecure guest logons in Windows settings - which is not recommended for security reasons. + +**Práctica recomendada:** Configura cuentas de usuario y contraseñas para tus shares de Unraid y conéctate utilizando esas credenciales para un acceso fiable desde Windows. + +**Limitación de Credenciales:** Windows solo permite un conjunto de credenciales de inicio de sesión por servidor a la vez. Si intentas conectarte a diferentes comparticiones en el mismo servidor con diferentes credenciales, la conexión fallará. + +**Solución Alternativa:** Si encuentras problemas de credenciales, intenta conectarte a una compartición usando el nombre del servidor y a otra usando su dirección IP. Windows los tratará como servidores separados. + +Para más detalles, consulta [la documentación de Microsoft sobre el acceso de invitados SMB](https://learn.microsoft.com/en-us/windows-server/storage/file-server/enable-insecure-guest-logons-smb2-and-smb3). +::: + +--- + +## Seguridad de la red + +### Establecer una contraseña de root fuerte + +Cuando accedes por primera vez a la %%WebGUI|web-gui%% después de la instalación, se te requiere configurar una contraseña para el %%usuario root|root-user%%. Sin embargo, Unraid no impone requisitos de complejidad de contraseña: depende de ti como usuario establecer el grado de seguridad de la contraseña para tu servidor. + +- Ve a la pestaña **Usuarios**, selecciona el %%root user|root-user%% y establece una contraseña. +- Considera usar el plugin **Dynamix Password Validator** desde [Community Apps](../../using-unraid-to/run-docker-containers/community-applications.mdx) para obtener comentarios en tiempo real sobre la fuerza de la contraseña. +- Para orientación adicional, consulta la herramienta de fuerza de contraseñas de [Bitwarden](https://bitwarden.com/) disponible en línea. + +### Revisar y minimizar el reenvío de puertos + +Reenviar puertos desde tu router a tu servidor Unraid puede ser necesario para el acceso remoto a servicios, pero expone tu red a riesgos significativos. Solo reenvía puertos que comprendas completamente y necesites. + +| Puerto(s) | Uso típico | Riesgo de seguridad | Alternativa más segura | +| ---------- | ----------------------------------------- | ------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 80 / 443 | %%WebGUI\|web-gui%% (HTTP/HTTPS) | Expone la interfaz de gestión; riesgo de interceptación o fuerza bruta si la contraseña es débil | Utiliza Unraid Connect o VPN para acceso remoto, teniendo en cuenta que Unraid Connect requiere reenvío de puertos WAN o UPnP (no un relé de nube siempre activo) | +| 445 | %%SMB\|samba%% (compartición de archivos) | Expone las comparticiones a internet; riesgo de robo o eliminación de datos | Usa VPN para un acceso remoto seguro a archivos | +| 111 / 2049 | %%NFS\|nfs%% | Expone comparticiones %%NFS\|nfs%%; riesgos similares a %%SMB\|samba%% | Usa VPN para acceso remoto | +| 22 / 23 | %%SSH\|ssh%%/Telnet | Expone el acceso a la consola; riesgo de fuerza bruta o robo de credenciales | Usa claves %%SSH\|ssh%% o VPN; nunca redirijas Telnet | +| 57xx | %%VNC\|vnc-session%% para %%VMs\|vm%% | Expone consolas %%VM\|vm%%; riesgo de acceso remoto no autorizado | Usa Unraid Connect o VPN | + +:::tip +Si ves una regla de reenvío de puertos que no entiendes, elimínala y monitorea si hay problemas. Siempre puedes volver a agregarla si es necesario. +::: + +:::caution +Nunca pongas tu servidor en la DMZ de tu red. Colocar tu servidor Unraid en la DMZ expone todos los puertos a Internet, aumentando dramáticamente el riesgo de un compromiso. Incluso con contraseñas fuertes, esto no se recomienda nunca. +::: + +--- + +## Seguridad del acceso a los shares + +### Controlar la visibilidad y permisos de los shares + +- Usa la pestaña **Shares** en el WebGUI para establecer la exportación y las configuraciones de seguridad de cada share. +- Prefiere comparticiones Privadas o Seguras para datos sensibles. Las comparticiones Públicas son accesibles por cualquiera en la red y están bloqueadas por defecto en las versiones modernas de Windows por razones de seguridad. +- Asigna cuentas de usuario con solo los permisos necesarios para su función (principio de menor privilegio). +- Limita el acceso a los shares a usuarios específicos siempre que sea posible. + +### Asigna permisos de usuario cuidadosamente + +- Asignar usuarios a los shares usando acceso de Solo lectura o Lectura/Escritura según sea necesario. +- La cuenta de %%usuario root|root-user%% es para administración del sistema y no puede acceder a comparticiones de red. Crea cuentas de usuario dedicadas para acceso a comparticiones de red. +- Revisa regularmente los permisos de usuario y elimina cuentas no utilizadas. + +### Restringe el acceso a los shares a privado o solo lectura + +Aunque el acceso sin contraseña a las comparticiones es conveniente, también puede poner en riesgo tus datos si los dispositivos en tu red local se ven comprometidos. Esto incluye PCs, Macs, dispositivos móviles y dispositivos IoT. Por defecto, las comparticiones de Unraid están configuradas para ser leídas y escritas públicamente, lo que significa que cualquier dispositivo en tu red podría potencialmente robar, borrar o cifrar tus archivos si se ve comprometido. Además, los usuarios malintencionados pueden cargar datos no deseados a tu servidor. + +- Establece los shares sensibles como **Privados** en la pestaña **shares** del %%WebGUI|web-gui%%. +- Si un share **Público** es necesario, configúralo como **Solo lectura** siempre que sea posible. +- Solo da acceso de escritura a usuarios autorizados quienes tienen contraseñas fuertes. + +### Evita exponer el share de flash - o hazlo privado + +El dispositivo flash de Unraid contiene archivos críticos del sistema y de configuración. Mientras que puede ser conveniente exponer la compartición flash en %%SMB|samba%% para configuración avanzada, esto introduce un riesgo significativo si se deja pública. + +- Solo expone el share de flash si es absolutamente necesario y configúralo como **Privado**. +- Requiere un nombre de usuario y una contraseña fuerte para el acceso. +- Quita o desactiva el share cuando no esté en uso para reducir riesgos. + +### Mantén tu servidor actualizado + +Las actualizaciones regulares son esenciales para la seguridad. Se descubren frecuentemente nuevas vulnerabilidades (CVE), y Lime Technology emite activamente parches para el sistema operativo Unraid. Actualizar solo es efectivo si realmente aplicas las actualizaciones. + +- Busca actualizaciones en ***Tools → Update OS*** en el %%WebGUI|web-gui%%. +- Habilita notificaciones en ***Settings → Notifications*** para ser alertado cuando las actualizaciones estén disponibles. +- Actualiza plugins y contenedores Docker a través de la pestaña **Apps** para asegurar que todos los componentes sean seguros y compatibles. +- Aplica las actualizaciones de manera oportuna para proteger tu servidor contra amenazas conocidas. + +### Usa métodos seguros para la administración remota + +Nunca expongas directamente la %%WebGUI|web-gui%% a Internet. En su lugar, utiliza soluciones seguras de acceso remoto: + +- **%%Tailscale|tailscale%%** es una opción recomendada, con un plugin dedicado para Unraid. Crea una red privada segura (tailnet) para acceder a tu servidor y servicios desde cualquier lugar, sin necesidad de exponer puertos o configurar reglas de firewall complejas. +- **%%WireGuard|wireguard%% VPN** está integrado en Unraid y proporciona un túnel seguro y cifrado para la administración remota. +- **%%OpenVPN|openvpn%%** está disponible como un plugin o contenedor Docker. +- Muchos routers modernos ofrecen soporte VPN integrado: consulta la documentación de tu router para la configuración. +- El plugin [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) permite el acceso remoto al %%WebGUI|web-gui%%, pero requiere que se abra un puerto en tu router. + +--- + +\* *"%%WireGuard|wireguard%%" y el logotipo de "%%WireGuard|wireguard%%" son marcas registradas de Jason A. Donenfeld.* diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx new file mode 100644 index 0000000000..5777b7ae73 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx @@ -0,0 +1,183 @@ +--- +sidebar_position: 6 +sidebar_label: Tailscale +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Tailscale + +Unraid ahora cuenta con una integración profunda con [%%Tailscale|tailscale%%](https://tailscale.com/), gracias a una asociación tecnológica que conecta directamente a su servidor con una red segura y sin interrupciones. %%Tailscale|tailscale%% no es una VPN tradicional; es una red superpuesta moderna y punto a punto construida sobre %%WireGuard|wireguard%%. Permite conectar dispositivos, servidores y contenedores Docker individuales a su red privada segura (%%Tailnet|tailnet%%), independientemente de su ubicación física o entorno de red. La asociación de Unraid garantiza que el complemento %%Tailscale|tailscale%% esté completamente mantenido y estrechamente integrado, ofreciendo soporte nativo de certificados y funciones avanzadas en Unraid 7 y versiones más recientes. + +- **Configuración simple:** Sin redireccionamiento de puertos ni dolores de cabeza de firewall. +- **Seguridad fuerte:** Usa cifrado %%WireGuard|wireguard%% bajo el capó. +- **Compartición flexible:** Otorga acceso a dispositivos o contenedores específicos, no solo a toda la red. +- **Soporte de primera clase:** Plugin mantenido oficialmente, con mejoras continuas. + +--- + +## Comenzando con Tailscale + +Para comenzar, [registre una cuenta gratuita de Tailscale](https://login.tailscale.com/start) e instale el cliente en al menos un dispositivo (Windows, macOS, Linux, iOS, Android, y más). Las cuentas gratuitas admiten hasta tres usuarios y 100 dispositivos. + +Antes de agregar Unraid, considera: + +- [Cambiar el nombre de tu %%Tailnet|tailnet%%](https://tailscale.com/kb/1217/tailnet-name) para facilitar su identificación. +- Habilitar [%%MagicDNS|magicdns%%](https://tailscale.com/kb/1081/magicdns) para simplificar el nombramiento de dispositivos. +- Habilitar [certificados HTTPS](https://tailscale.com/kb/1153/enabling-https) para un acceso seguro y confiable. + +:::note +Los nombres de máquina en los certificados HTTPS son públicos. Utiliza nombres que te sientas cómodo compartiendo. +::: + +### Añadiendo Tailscale a Unraid + +Los siguientes pasos son actuales y precisos para Unraid 7 y superiores: + +1. Revisa la configuración de tu cuenta Tailscale como se describe arriba. +2. En Unraid, busca el tab [**Community Apps**](../../using-unraid-to/run-docker-containers/community-applications.mdx) para el plugin oficial %%Tailscale|tailscale%% e instálalo. +3. Abre ***Configuración → Tailscale*** y haz clic en Reautenticar. Inicia sesión con tu cuenta de %%Tailscale|tailscale%%. +4. Haz clic en **Conectar** para añadir tu servidor Unraid a tu %%Tailnet|tailnet%%. +5. Visita ***Configuración → Acceso de Gestión*** para ver tus URLs de %%Tailscale|tailscale%% para el %%WebGUI|web-gui%%. +6. En ***Configuración → Tailscale***, encuentra el nombre de %%Tailnet|tailnet%% de tu servidor y la IP. Utiliza estos datos para acceder a los shares SMB/NFS, contenedores de Docker y más desde cualquier dispositivo en tu %%Tailnet|tailnet%%. + +### Enrutamiento de subred (opcional) + +Para acceder a tu servidor Unraid por su IP principal de LAN (o para alcanzar contenedores Docker con sus propias IPs): + +1. Ve a ***Configuración → Tailscale***, haz clic en Ver y Inicia Sesión. +2. Haz clic en **Router de subred** y añade: + - La IP de tu servidor Unraid (por ejemplo, `192.168.0.12/32`), o + - El subred de toda tu red (por ejemplo, `192.168.0.0/24`). +3. Haz clic en **Publicitar rutas**. +4. Aprueba la ruta pendiente en tu consola de administración de Tailscale. +5. Una vez aprobada, los dispositivos en tu %%Tailnet|tailnet%% pueden acceder a tu servidor Unraid y/o dispositivos LAN por sus direcciones IP habituales. +6. Para detalles avanzados, consulte la [documentación de %%subnet routing|subnet-routing%% de %%Tailscale|tailscale%%](https://tailscale.com/kb/1019/subnets). + +--- + +## Añadiendo Tailscale a Contenedores Docker + +Unraid facilita conectar [contenedores de Docker](../../using-unraid-to/run-docker-containers/overview.mdx) a tu %%Tailnet|tailnet%%, asignando a cada contenedor una identidad de dispositivo única para un acceso remoto seguro y flexible. Con esta integración, puedes compartir acceso a contenedores individuales sin exponer todo tu servidor y aprovechar funciones avanzadas como nodos de salida, Serve y Funnel en base a cada contenedor. La configuración está completamente automatizada, por lo que usuarios de todos los niveles pueden beneficiarse de una seguridad mejorada y una red simplificada. + +
+ Cómo funciona la integración Tailscale-Docker - Haz clic para expandir/contraer + + Cuando habilitas **Usar %%Tailscale|tailscale%%** para un contenedor Docker y aplicas cambios, Unraid automatiza los siguientes pasos para una integración perfecta: + + 1. **Extracción del Punto de Entrada:** Unraid identifica el Punto de Entrada original del contenedor y el CMD, preservando su comportamiento inicial de inicio. + 2. **Inyección del Script de Integración:** El script `tailscale_container_hook` se monta dentro del contenedor, y el Punto de Entrada se actualiza para ejecutar este script primero. + 3. **Configuración del Entorno:** El Punto de Entrada original, CMD, y todas las variables requeridas de %%Tailscale|tailscale%% se pasan al comando de ejecución de Docker. + 4. **Inicialización de %%Tailscale|tailscale%%:** Al inicio, el script hook instala cualquier dependencia, descarga e inicia el cliente %%Tailscale|tailscale%% dentro del contenedor. + 5. **Inicio Normal:** Luego el script arranca el Punto de Entrada original del contenedor y el CMD, para que tu aplicación funcione como de costumbre - con la red Tailscale integrada automáticamente. + + Una vez habilitado, el contenedor aparece como su propio dispositivo en tu Tailnet, listo para acceso seguro y características avanzadas de Tailscale, sin necesidad de configuración manual de red ni redireccionamiento de puertos. +
+ +:::warning[Container compatibilidad] +La integración de Tailscale no funciona con todos los contenedores. Algunos contenedores pueden no funcionar en absoluto si Tailscale está habilitado, particularmente aquellos con: + +- Requisitos de red personalizados +- Necesidades específicas de aislamiento de red +- Aplicaciones que entran en conflicto con las modificaciones de red de Tailscale. + +Prueba la integración de Tailscale en contenedores no críticos primero, y prepárate para deshabilitarla si el contenedor deja de funcionar correctamente. +::: + +:::note\[Prerequisites] + +- Primero, instala %%Tailscale|tailscale%% en cualquier computadora que vaya a acceder a tus contenedores Docker. +- Aunque el plugin de Unraid Tailscale no es estrictamente necesario para la integración de Docker, se recomienda encarecidamente instalarlo e iniciar sesión en tu servidor Unraid para una mejor experiencia. + +::: + +Para añadir %%Tailscale|tailscale%% a un contenedor Docker: + +1. Revisa la configuración de tu cuenta %%Tailscale|tailscale%% como se describe en la [sección de Comenzando](#getting-started-with-tailscale). +2. En Unraid, ve a la pestaña **Docker** y [edita el contenedor deseado](../../using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx). +3. Habilita el interruptor **Usar Tailscale**. +4. Ingresa un **nombre de host Tailscale** para el contenedor (debe ser único en tu Tailnet). + +:::warning +Se generará un certificado HTTPS para este nombre de host y se publicará en un registro público de certificados. Elija un nombre que se sienta cómodo compartiendo públicamente. Consulte los [documentos HTTPS de Tailscale](https://tailscale.com/kb/1153/enabling-https) para obtener más detalles. +::: + +5. Decide si este contenedor debe ser un nodo de salida (útil para contenedores VPN). +6. Elija si el contenedor debe usar un nodo de salida para su tráfico saliente. Si el complemento Tailnet está instalado, verá una lista de nodos de salida disponibles; de lo contrario, ingrese la IP manualmente. +7. Si usas un nodo de salida, especifica si el contenedor también debe acceder a tu LAN. +8. El campo de **Networking en Usuario** de Tailscale generalmente se establece automáticamente. Déjelo deshabilitado a menos que tenga una necesidad específica. +9. Decide si habilitar **%%Tailscale|tailscale%% %%SSH|ssh%%** (acceso seguro por shell autenticado a través de %%Tailscale|tailscale%%). + +:::info[Serve vs. Embudo] +- **Servir**: le permite acceder de forma segura al sitio web o servicio web de un contenedor desde su Tailnet usando una URL HTTPS amigable. No se necesita redirección de puertos, y solo los dispositivos Tailnet pueden conectarse. +- **Funnel**: Publica el sitio web del contenedor en la internet pública a través de una URL única HTTPS. Cualquiera con el enlace puede acceder, incluso si no está en tu Tailnet. Usa esto con precaución, ya que expone tu servicio a la internet en general. +::: + +10. Habilite **Servir** para realizar el proxy inverso de la interfaz web del contenedor a su Tailnet o **Funnel** para hacerlo accesible desde internet público. Unraid detectará automáticamente el puerto a utilizar basado en la configuración de WebUI del contenedor. Si es necesario, hay opciones avanzadas disponibles. + +:::warning +Al usar Servir o Funnel, no hay una capa de autenticación adicional: su contenedor es responsable de gestionar el acceso de usuario. Asegure sus aplicaciones web en consecuencia. +::: + +11. **Aplique** sus cambios y verifique el **Registro de contenedores** para mensajes de Tailscale. Haga clic en el enlace "Para autenticar, visite" para aprobar el contenedor en su Tailnet. + +:::caution\[Troubleshooting] + +**Error de estado persistente** - Si ve "*ERROR: No se pudo detectar el directorio Docker persistente para .tailscale\_state*": + +- Edita el contenedor e identifica una ruta mapeada para almacenar datos del estado de Tailscale (por ejemplo, `/ruta-del-contenedor/`). +- Habilita Tailscale **Mostrar configuración avanzada** y establece el **Directorio de Estado** a `/ruta-del-contenedor/.tailscale_state`. +- Reinicia el contenedor. +- Los autores de Docker XML pueden simplificar esto añadiendo `/ruta-del-contenedor/.tailscale_state` al archivo XML del contenedor. + +::: + +--- + +## Actualizando Tailscale + +%%Tailscale|tailscale%% se actualiza con frecuencia para ofrecer nuevas funciones y mejoras de seguridad. Para mantener su sistema Unraid seguro y compatible, asegúrese de que tanto el complemento %%Tailscale|tailscale%% de Unraid como cualquier contenedor Docker que use %%Tailscale|tailscale%% esté actualizado. + +Para actualizar %%Tailscale|tailscale%%: + +- **Actualice el complemento %%Tailscale|tailscale%% de Unraid:** Cuando esté disponible una nueva versión, actualice el complemento a través de la pestaña de Aplicaciones de Unraid como cualquier otro complemento. Siempre puede revisar los últimos cambios en el [registro de cambios de %%Tailscale|tailscale%%](https://tailscale.com/changelog). + +- **Actualiza %%Tailscale|tailscale%% en los contenedores Docker:** + 1. En la página de Docker, pase el cursor sobre el icono de %%Tailscale|tailscale%% para cualquier contenedor. Si hay una actualización disponible, verá una notificación. + 2. Actualiza el contenedor ya sea: + - Cambiando a **Vista Avanzada** (esquina superior derecha), luego haciendo clic en **Forzar actualización**. + - Editando el contenedor, haciendo un cambio menor (como alternar una configuración) y haciendo clic en **Aplicar**. + +--- + +## Red de usuarios + +**Userspace networking** controla cómo un contenedor se conecta a su %%Tailnet|tailnet%% y al resto de su red. En la mayoría de los casos, puede ignorar los detalles si accede a los contenedores usando sus URLs de WebUI de %%Tailscale|tailscale%% y tiene %%Tailscale|tailscale%% instalado en todos los sistemas clientes. + +- **Habilitado:** El contenedor opera en un entorno restringido. No puede iniciar conexiones con otros dispositivos %%Tailnet|tailnet%% o usar el DNS de %%Tailscale|tailscale%% pero sigue siendo accesible a través del WebUI de %%Tailscale|tailscale%% y la URL original de WebUI. + +- **Deshabilitado:** El contenedor tiene acceso completo a %%Tailnet|tailnet%% y puede usar DNS de %%Tailscale|tailscale%%. Puede comunicarse con otros dispositivos %%Tailnet|tailnet%%, pero la URL original de WebUI podría no estar disponible. + +:::info[Feature requisitos] +- Contenedores configurados como **Nodos de Salida** siempre tienen la red de usuarios habilitada. +- Contenedores que **Usan un Nodo de Salida** siempre tienen la red de usuarios deshabilitada. +::: + +### Compatibilidad del tipo de red + +El comportamiento de la integración de Tailscale y la red de espacio de usuario depende del tipo de red del contenedor. Utilice la tabla a continuación para entender las opciones de compatibilidad y acceso: + +| Tipo de red | Red de usuarios por defecto | ¿Se puede cambiar? | Acceso a la interfaz web (%%Tailscale\|tailscale%%) | Acceso WebUI (Original) | Notas | +| -------------------- | --------------------------- | ------------------ | --------------------------------------------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `host` | Desactivado | No | No | Sí | La integración %%Tailscale\|tailscale%% no está disponible en modo host | +| `puente` | Desactivado | Sí | Sí | *Habilitado*: Sí *Deshabilitado*: No | Habilita ambas URLs si está habilitado; solo interfaz web %%Tailscale\|tailscale%% si está deshabilitado | +| `eth0`/`br0`/`bond0` | Desactivado | Sí | Sí | Sí | Ambas URLs son accesibles independientemente de la configuración | +| `container`/`wg0` | Deshabilitado (no probado) | Sí | Desconocido | Desconocido | Usar con precaución; no probado completamente | + +:::info[Keep en mente] +- Las URLs WebUI de %%Tailscale|tailscale%% solo son accesibles desde dispositivos con %%Tailscale|tailscale%% instalado y unido a tu %%Tailnet|tailnet%%, o con compartición explícita habilitada. +- Para la mayoría de los usuarios, la configuración predeterminada proporciona un acceso seguro y fiable. Las opciones avanzadas están disponibles para necesidades de redes especializadas. +::: + +\* *"%%WireGuard|wireguard%%" y el logotipo de "%%WireGuard|wireguard%%" son marcas registradas de Jason A. Donenfeld.* diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx new file mode 100644 index 0000000000..728b73a2c1 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx @@ -0,0 +1,137 @@ +--- +sidebar_position: 3 +sidebar_label: Gestión de usuarios +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ResetPasswordBasic from './partials/reset-password-basic.mdx'; +import ResetPasswordAdvanced from './partials/reset-password-advanced.mdx'; + +# Gestión de usuarios + +Unraid hace que la gestión de usuarios en tu NAS sea sencilla y segura, atendiendo a todos, desde principiantes hasta usuarios experimentados. El enfoque simplificado ayuda a reducir la confusión mientras garantiza que la seguridad y el control de acceso sigan siendo sólidos. + +:::note[Simplified acercamiento] +A diferencia de los sistemas Linux tradicionales, Unraid ofrece un modelo de usuario directo: + +- **Administrador único (%%root|root-user%%)**: Hay solo un usuario principal, lo que simplifica los permisos y mejora la seguridad. +- **Acceso enfocado en comparticiones**: El enfoque está en compartir datos, haciéndolo menos complicado para usuarios que no necesitan las complejidades de múltiples entornos de usuario. + +De esta manera, incluso si no estás familiarizado con Linux, puedes gestionar fácilmente tu NAS de manera segura. +::: + +## Visión General + +### Usuario Root + +Unraid opera con un superusuario único, conocido como %%root|root-user%%, que tiene control completo sobre todo. + +Usuarios %%Root|root-user%%... + +- Tienen acceso completo a las interfaces %%WebGUI|web-gui%%, %%SSH|ssh%% y Telnet. +- Son responsables de gestionar todas las cuentas y configuraciones de usuario. +- No pueden acceder directamente a las comparticiones de archivos mediante **%%SMB|samba%%**, **%%NFS|nfs%%** o **%%FTP|ftp%%** por razones de seguridad. +- Permiten [autenticación basada en clave %%SSH|ssh%%](../../system-administration/advanced-tools/command-line-interface.mdx#accessing-the-terminal) para iniciar sesión sin contraseña. + +
+ ![Usuario Root](/img/rootuser.png) +
+ +:::important +El usuario %%root|root-user%% es vital para mantener la seguridad. Siempre asegúrate de establecer una [contraseña fuerte](./security-fundamentals.mdx#set-a-strong-root-password) y limita el acceso por %%SSH|ssh%% para mantener tu sistema seguro. +::: + +### Usuarios de Comparticiones + +Estas cuentas están diseñadas para acceder a comparticiones específicas, sin controles a nivel de sistema. + +Usuarios de compartición... + +- Solo pueden ser creados y gestionados por el %%usuario root|root-user%%. +- Pueden acceder a las comparticiones vía **%%SMB|samba%%**, **%%NFS|nfs%%** o **%%FTP|ftp%%** (si está habilitado). +- No tienen acceso al **%%WebGUI|web-gui%%**, **%%SSH|ssh%%** o **Telnet**. + +
+ ![Usuario Root](/img/shareusers.png) +
+ +--- + +## Agregar usuarios + +Para conectarte a archivos compartidos en Unraid desde otro dispositivo, necesitarás un nombre de usuario y contraseña. Estas credenciales son independientes de las que podrías usar para aplicaciones específicas que se ejecutan en contenedores, los cuales tienen su propia información de inicio de sesión. + +Para añadir un usuario: + +1. **Acceder a Gestión de Usuarios** + - Dirígete a ***Usuarios → Acceso a comparticiones*** (o ***Configuración → Usuarios → Acceso a comparticiones***). + - Haz clic en **Agregar Usuario**. + +2. **Configurar credenciales de usuario** + - **Nombre de Usuario**: Elige un nombre único (como `juan_media`). Usar solo letras minúsculas para evitar conflictos y mantenerlo bajo 30 caracteres debido a los límites de Windows. + + - **Contraseña**: Crea una contraseña fuerte usando una combinación de letras, números y símbolos. Sigue el medidor de fuerza de la contraseña para obtener orientación. + +:::note\[Optionally] + +- **Añadir una descripción**: Escribe una nota como "Acceso a la biblioteca multimedia". +- **Imagen personalizada**: Sube una imagen PNG (como un avatar de usuario) para identificación visual. + +::: + +
+ ![Usuario Root](/img/adduser.png) +
+ +3. Selecciona **Agregar** para crear el usuario. + +--- + +## Eliminar usuarios + +Puedes fácilmente eliminar una cuenta de usuario en Unraid cuando ya no sea necesaria. + +:::caution +Eliminar una cuenta de usuario es permanente y elimina inmediatamente el acceso a las comparticiones y recursos compartidos. +::: + +Para eliminar un usuario: + +1. Ve al menú **Usuarios** y haz clic en el nombre de la cuenta de usuario que deseas eliminar. +2. Marca la casilla etiquetada **Eliminar**. El botón **Aplicar** cambiará a un botón **Eliminar**. +3. Haz clic en **Eliminar** para quitar al usuario. Aparecerá un mensaje de confirmación para confirmar la eliminación. +4. Selecciona **Hecho**. + +--- + +## Modificar un usuario + +Puedes cambiar una cuenta de usuario en Unraid si el usuario olvidó su contraseña o necesita acceso diferente a carpetas compartidas. + +Para modificar una cuenta de usuario: + +1. Ve a ***Usuarios → Acceso a comparticiones*** (o ***Configuración → Usuarios → Acceso a comparticiones***), y haz clic en la cuenta de usuario que deseas cambiar. +2. *(Opcional)* En la pantalla **Editar usuario**, puedes actualizar cualquier información exceptuando el **Nombre de usuario**. Para establecer una nueva **contraseña**, simplemente escríbela y confírmala reescribiéndola. +3. *(Opcional)* Al final, verás una lista de carpetas (compartidas) a las que puede acceder el usuario. Puedes ajustar sus configuraciones de acceso para cualquiera de estos compartidos, pero no puedes agregar nuevos. +4. Haz clic en **Aplicar** para guardar tus cambios. + +--- + +## Restablece tu contraseña + +Si has olvidado la contraseña de tu %%root|root-user%%, ¡no te preocupes! Aquí tienes dos métodos sencillos para recuperar el acceso a tu servidor Unraid. Necesitarás acceso físico a tu **[dispositivo flash USB](../../system-administration/maintain-and-update/changing-the-flash-device.mdx)** y otra computadora. + + + + + + + + + + + +:::tip[Be consciente] +Cualquier persona con acceso físico al USB puede usar estos métodos para restablecer tu contraseña de %%root|root-user%% y obtener acceso administrativo completo. ¡Mantén siempre seguro tu USB! +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx new file mode 100644 index 0000000000..b4c1aaddcc --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx @@ -0,0 +1,237 @@ +--- +sidebar_position: 7 +sidebar_label: WireGuard +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import WireGuardConfigureMobile from './partials/wireguard-configure-mobile.mdx'; +import WireGuardConfigureOtherDevices from './partials/wireguard-configure-other-devices.mdx'; + +# WireGuard + +Aunque Tailscale proporciona una experiencia amigable para la mayoría, [WireGuard](https://www.wireguard.com/) es una solución de VPN integrada robusta en Unraid que destaca en escenarios de redes avanzados específicos. Es particularmente útil cuando se necesita un control detallado sobre la ruta de la VPN o se requieren conexiones de servidor a servidor o LAN a LAN sin depender de servicios de terceros. A continuación, se describen los escenarios clave donde WireGuard sobresale. + +

Cuándo elegir WireGuard

+ +| Escenario | ¿Por qué elegir %%WireGuard\|wireguard%%? | +| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| **Configuración avanzada** | Permite configuraciones personalizadas de %%VPN Tunnel\|vpn-tunnel%% e integración con la infraestructura de red existente | +| **Túneles de servidor a servidor** | Le permite crear enlaces cifrados persistentes entre servidores Unraid | +| **Integración de LAN a LAN** | Conecta redes enteras sin involucrar servicios intermediarios | +| **Tareas intensivas de ancho de banda** | Ofrece una sobrecarga mínima del protocolo para un rendimiento máximo | + +:::info +Para la mayoría de los usuarios, [**Tailscale**](../secure-your-server/tailscale.mdx) puede lograr todo lo que WireGuard puede hacer, a menudo de manera más fácil. Normalmente no requiere reenvío de puertos ni configuración manual. Sin embargo, si necesitas configuraciones VPN avanzadas y personalizadas o tienes requerimientos específicos de compatibilidad, elegir WireGuard podría ser una mejor opción para algunos. +::: + +

Tipos de conexión y casos de uso

+ +Conocer los tipos de conexión en %%WireGuard|wireguard%% puede ayudarlo a decidir si es adecuado para usted: + +| Tipo de conexión | Caso de uso real | +| :---------------------------------------- | :----------------------------------------------------------------------------------------------------------------------- | +| Acceso remoto al servidor | Accede a Unraid %%WebGUI\|web-gui%%, contenedores Docker, %%VM\|vm%%s y recursos compartidos de red de forma remota. | +| Acceso remoto a LAN | Acceda a todos los dispositivos en su LAN de forma remota como si estuviera en la red local. | +| Acceso de servidor a servidor | Conecte de manera segura dos servidores Unraid para compartir datos o realizar copias de seguridad. | +| Acceso LAN a LAN | Conectar sin problemas dos LAN completas para una comunicación fluida entre redes. | +| Acceso hub & spoke del servidor | Permitir que varios clientes %%VPN\|vpn-tunnel%% se conecten entre sí a través del servidor. | +| Acceso de concentración y irradiación LAN | Habilitar la comunicación entre múltiples LANs a través de un servidor central. | +| Acceso %%VPN tunelizado\|vpn-tunnel%% | Dirige contenedores Docker específicos y %%VM\|vm%%s a través de un proveedor de VPN comercial %%WireGuard\|wireguard%%. | +| Acceso remoto tunelizado | Encamine de manera segura todo su tráfico de internet a través de su servidor Unraid cuando esté en redes no confiables. | + +## Configuración de WireGuard en Unraid + +:::note\[Prerequisites] + +- **DNS Dinámico:** Configura DDNS para acceso confiable si tu IP pública cambia. Opciones populares incluyen [Cloudflare](https://www.cloudflare.com/) (requiere propiedad del dominio), [No-IP](https://www.noip.com/) o [DuckDNS](https://www.duckdns.org/) (gratis pero puede experimentar cortes ocasionales). +- **Configuración del router:** + - Habilite %%UPnP|upnp%% en ***Configuración → Acceso de Gestión*** para el reenvío automático de puertos. + - Si %%UPnP|upnp%% no está disponible, reenvíe manualmente el puerto UDP 51820 a la IP de su servidor Unraid. +- **Software del cliente:** Instale %%WireGuard|wireguard%% en sus dispositivos ([Windows](https://www.wireguard.com/install/), [macOS](https://apps.apple.com/us/app/wireguard/id1451685025), [iOS](https://apps.apple.com/us/app/wireguard/id1441195209), [Android](https://play.google.com/store/apps/details?id=com.wireguard.android)). + +::: + +

Paso 1: Generar claves

+ +1. Vaya a ***Configuración → Administrador de VPN***. + +
+ ![Administrador de VPN](/img/wg0.png) +
+ +2. Nombre su túnel (por ejemplo, "VPN Hogar"). +3. Haga clic en **Generar par de claves** para crear claves públicas/privadas. + +:::warning +Guarde la clave privada de forma segura ya que proporciona acceso completo a la red. +::: + +

Paso 2: Configure su punto final

+ +- **Para usuarios de DDNS:** Reemplace la IP en **Punto final local** con su URL de DDNS (por ejemplo, `mihogar.duckdns.org`). +- Mantenga el puerto predeterminado (`51820`) a menos que entre en conflicto con servicios existentes. + +

Paso 3: Configure el reenvío de puertos

+ +- **Usuarios de %%UPnP|upnp%%:** Unraid reenviará automáticamente los puertos si está habilitado en ***Configuración → Acceso de Gestión***. + +
+ ![UPnP habilitado](/img/upnp-yes.png) +
+ +- **Configuración manual:** Si %%UPnP|upnp%% no está disponible: + 1. Ingrese a su router. + 2. Reenvíe el puerto UDP `51820` a la IP LAN de su servidor Unraid. + 3. Utilice el mismo puerto para configuraciones externas e internas. + +
+ ![UPnP deshabilitado](/img/upnp-no.png) +
+ +

Paso 4: Active su túnel

+ +1. Alternar **Activo** para habilitar %%WireGuard|wireguard%%. +2. Habilite **Inicio automático** para ejecutar %%WireGuard|wireguard%% al inicio. + +
+ ![Conmutador de activación](/img/activate.png) +
+ +:::important[Security mejores prácticas] +- **Acceso solo seguro:** El acceso VPN es similar al acceso físico a la red, así que solo autorice dispositivos de confianza. +- **Gestión de claves:** Nunca comparta claves privadas; trátelas como contraseñas. +- **Segmentación de la red:** Para configuraciones complejas (contener Docker personalizados/%%VM|vm%%s), aisle el tráfico VPN usando VLANs o subredes separadas. +- **Auditorías regulares:** Revise dispositivos conectados y permisos de acceso trimestralmente. +::: + +### Definiendo un par (cliente) + +Un par es un dispositivo cliente - como un teléfono, portátil u otro servidor - que se conecta a tu VPN %%WireGuard|wireguard%% de Unraid. Definir un par significa crear una identidad única y asegurar claves para ese dispositivo. + +1. Seleccione **Agregar par**. + +
+ ![Agregar par](/img/peer-add.png) +
+ +2. Nombre el par (por ejemplo, *MiAndroid*). +3. Elija el tipo de conexión inicial para un acceso completo a la red, generalmente *Acceso remoto a LAN*. +4. Haz clic en **Generar Par de Claves** para crear claves públicas y privadas. Mantén la clave privada segura. +5. Opcionalmente, genere una clave precompartida para mayor seguridad. +6. Haga clic en **Aplicar**. + +:::note +Mientras los pares pueden generar sus propias claves, dejar que Unraid las genere simplifica la configuración al proporcionar archivos de configuración completos. +::: + +:::caution +Agregar un nuevo par puede deshabilitar temporalmente el túnel de %%WireGuard|wireguard%%, lo que puede interrumpir tu conexión. Asegúrate de tener acceso local a tu servidor antes de realizar cambios. +::: + +### Configuración de un par (cliente) + + + + + + + + + + + +### Configuración de su DNS + +1. Acceda a dispositivos utilizando direcciones IP o nombres de dominio completamente calificados (por ejemplo, `tuHashPersonal.unraid.net`). + +:::note +Short de nombres como "torre" o entradas DNS gestionadas por el router pueden no funcionar sobre el VPN. +::: + +2. Para habilitar la resolución de nombres cortos: + - Vaya a ***Configuración → Administrador de VPN*** en Unraid. + - Cambie de **Básico** a **Avanzado** modo. + - Ingrese la dirección IP de su servidor DNS preferido en el campo **Servidor DNS del par**. + - Guarde los cambios y actualice el archivo de configuración del cliente. +3. Servidores DNS recomendados: + - La dirección IP de su router LAN. + - Servidores DNS públicos como `8.8.8.8`. + +Esta configuración es especialmente importante para el modo **Acceso remoto tunelizado**, donde el servidor DNS original del cliente puede no estar disponible. + +:::note +Las direcciones %%mDNS|mdns%% (por ejemplo, `torre.local`) solo funcionan en la red local y no por VPN %%WireGuard|wireguard%%. +::: + +### Redes complejas + +Para la mayoría de los usuarios, la configuración por defecto **Usar NAT** funciona de inmediato y permite el acceso a Unraid y a la mayoría de los dispositivos de LAN. Sin embargo, si usas contenedores Docker con IPs personalizadas o %%VM|vm%%s con requerimientos estrictos de red: + +1. En su configuración %%WireGuard|wireguard%% túnel, configure **Usar NAT** a **No**. +2. En su router, agregue una ruta estática para la red de túnel WireGuard (por ejemplo, `10.253.0.0/24`) apuntando a la IP de su servidor Unraid. +3. En ***Configuración → Configuración de Docker***, configure **Acceso al host para redes personalizadas** a **Habilitado**. + +### Configuraciones a evitar + +| Configuración de NAT | Acceso del Host a redes personalizadas | Servidor y Dockers (Puente/Host) | %%VMs\|vm%% y otros sistemas de LAN | Dockers con IP personalizada | Notas | +| -------------------- | -------------------------------------- | -------------------------------- | ----------------------------------- | ---------------------------- | ------------------------------------------------------------------------ | +| Sí | Deshabilitado (Ruta estática opcional) | Accesible | Accesible | No accesible | Configuración de red simple; recomendado para la mayoría de los usuarios | +| Sí | Habilitado (Ruta estática opcional) | Accesible | No accesible | No accesible | Evite esta configuración | +| No | Deshabilitado (Sin ruta estática) | Accesible | No accesible | No accesible | Evite; requiere ruta estática para funcionar correctamente | +| No | Deshabilitado (Con ruta estática) | Accesible | Accesible | No accesible | Casi correcto; habilitar acceso al host para redes personalizadas | +| No | Habilitado (Con ruta estática) | Accesible | Accesible | Accesible | Configuración recomendada para redes complejas | + +## Resolución de problemas de WireGuard + +WireGuard está diseñado para ser discreto: si algo no funciona, no proporcionará mensajes de error. Para solucionar problemas de manera efectiva, debes revisar sistemáticamente cada aspecto de tu configuración. + +#### Lista de verificación de conexión + +- ✅ El túnel está activo tanto en Unraid como en dispositivos cliente. *("Activo" significa que el túnel ha comenzado pero no necesariamente está conectado.)* +- ✅ La URL de DDNS apunta a su IP pública actual y está configurada en **Punto final local**. +- ✅ El puerto UDP correcto se reenvía de su router a Unraid, coincidiendo con el puerto **Punto final local**. +- ✅ Los clientes tienen los archivos de configuración más recientes después de cualquier cambio del lado del servidor. +- ✅ Los cambios se guardan antes de ver o distribuir las configuraciones de los pares (códigos QR/archivos). + +#### Ideas adicionales de resolución de problemas + +
+ Consejos para la primera configuración - Haga clic para expandir/colapsar + + Si está configurando WireGuard por primera vez, estos consejos pueden ayudarlo a evitar errores comunes: + + - Configure su primer cliente utilizando un dispositivo móvil con datos celulares (no Wi-Fi) para descartar problemas de red local. + - Utiliza el método de código QR para la transferencia de configuración más fácil. +
+ +
+ Problemas de conectividad y handshake - Haga clic para expandir/colapsar + + Si no está viendo un handshake o no puede conectar, pruebe estas verificaciones específicas: + + - Si no ve un handshake, intente generar tráfico (por ejemplo, hacer ping al servidor) para activar la conexión. + - Desactiva las funciones de ahorro de energía, ahorro de datos o ahorro de batería en clientes móviles, ya que pueden interferir con el funcionamiento de la VPN. + - Asegúrate de que las redes del cliente y del servidor usen subredes diferentes (por ejemplo, evita que ambas usen `192.168.1.0/24`). + - Si usas Cloudflare para DDNS, configura el **Estado del Proxy** a **Solo DNS** (no **Proxy**). Permite tiempo para que los cambios de DNS se propaguen. + - Si puedes conectarte desde algunas ubicaciones pero no desde otras, la red remota puede bloquear el tráfico UDP. Actualmente %%WireGuard|wireguard%% no admite TCP como alternativa. +
+ +
+ Conflictos avanzados de red - Haz clic para expandir/contraer + + Si tu configuración de red es más compleja o sospechas de un conflicto de IP, revisa estos pasos avanzados de solución de problemas: + + - En modo **Avanzado**, confirma que tu **grupo de red local del túnel** no se superponga con ninguna red existente en ambos lados. Si hay un conflicto, cambia a una subred privada diferente (por ejemplo, `10.10.10.0/24`). + - Para contenedores Docker con IPs personalizadas o %%VM|vm%%s con requisitos estrictos, consulta la sección de [Redes complejas](#complex-networks). +
+ +
+ Recuperación de emergencia - Haz clic para expandir/contraer + + Si pierdes acceso al %%WebGUI|web-gui%% de Unraid y necesitas desactivar el inicio automático de %%WireGuard|wireguard%%. + + - Elimina `/boot/config/wireguard/autostart` de tu unidad flash y reinicia. +
+ +\* *"%%WireGuard|wireguard%%" y el logotipo de "%%WireGuard|wireguard%%" son marcas registradas de Jason A. Donenfeld.* diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json new file mode 100644 index 0000000000..bd09992c18 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Solución de problemas", + "position": 5 +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json new file mode 100644 index 0000000000..01f08b0d67 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Problemas comunes", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx new file mode 100644 index 0000000000..d5b912f01d --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx @@ -0,0 +1,204 @@ +--- +sidebar_position: 1 +sidebar_label: Fallas de arranque e inicio +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Fallas de arranque e inicio + +Cuando su servidor Unraid no arranca correctamente, puede ser un desafío identificar la causa sin una comprensión clara del proceso de arranque. Siguiendo esta guía, podrá diagnosticar y resolver rápidamente la mayoría de los problemas de inicio, asegurando que su %%array|array%%, %%WebGUI|web-gui%% y servicios estén operativos con un tiempo de inactividad mínimo. + +## Preparando el dispositivo flash + +Este tema está detallado en la sección [Preparar tu dispositivo USB](../../getting-started/set-up-unraid/create-your-bootable-media.mdx#prepare-your-usb-device). + +:::caution +Siempre [respalda tu unidad flash](../../system-administration/maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device) antes de hacer cambios. Todos los ajustes específicos del usuario, incluida tu clave de licencia, se almacenan en la carpeta `config`. Restaurar esta carpeta después de reconfigurar tu dispositivo flash ayudará a preservar tu configuración actual. +::: + +## Habilitando el arranque UEFI + +Los sistemas modernos típicamente requieren **modo de arranque UEFI** para una seguridad mejorada y tiempos de inicio más rápidos. + +Para configurar el arranque UEFI en el BIOS de tu sistema/configuración UEFI: + +1. Entra en la configuración del BIOS/UEFI de tu placa base durante el inicio (generalmente presionando F2, DEL o ESC) +2. Localiza las opciones de arranque o configuraciones del modo de arranque +3. Configura el modo de arranque en **UEFI** o **UEFI con CSM desactivado** +4. Asegúrate de que el dispositivo flash de Unraid esté seleccionado como el dispositivo de arranque UEFI +5. Guarda tus cambios y sal de la configuración + +## Comprender la secuencia de inicio + +La secuencia de inicio de Unraid tiene varias etapas: + +
+ 1. Arranque BIOS - Haga clic para expandir/contraer + + El firmware BIOS/UEFI inicializa el hardware y localiza el dispositivo de arranque. Esta es la base de todo el proceso de arranque. + + - El BIOS de la placa base reconoce el dispositivo flash de arranque de Unraid. + - Configurar el dispositivo flash como el dispositivo de arranque predeterminado varía según tu BIOS; revisa el manual de tu placa base para obtener orientación. + - El dispositivo flash admite modos de arranque **legado (CSM)** y **UEFI**. + - Para el arranque UEFI, asegúrate de que la carpeta `EFI` en el dispositivo flash no tenga un guion al final (`-`). +
+ +
+ 2. Cargador Syslinux - Haga clic para expandir/contraer + + El cargador de arranque presenta las opciones de inicio y carga el núcleo de Linux en la memoria. Esta etapa determina qué sistema operativo o herramienta de diagnóstico se ejecutará. + + - Las entradas del menú de arranque están definidas en el archivo `syslinux/syslinux.cfg` en el dispositivo flash. + - Puedes editar este archivo a través del WebGUI bajo ***Principal → Configuración Syslinux***. + - **Memtest86+**, que se incluye con las compilaciones actuales de Unraid, funciona tanto en modos heredado como %%UEFI|uefi%%. Para versiones anteriores de Unraid, obtén una versión compatible del [sitio oficial de Memtest](https://www.memtest86.com/) para %%UEFI|uefi%%. + - Si no se selecciona ninguna opción, el arranque predeterminado se ejecuta tras un tiempo de espera, lo cual es útil para operaciones sin cabeza. +
+ +
+ 3. Núcleo de Linux - Haga clic para expandir/contraer + + El núcleo de Linux se inicializa y comienza la detección de hardware. Aquí es donde el sistema operativo toma el control del cargador de arranque. + + - **Syslinux** carga el núcleo de Linux desde el dispositivo flash en la RAM. + - Verás mensajes de consola mostrando los archivos bz\* cargándose. + - Los errores en esta etapa a menudo indican problemas con el dispositivo flash. + - Linux detecta el hardware durante el inicio. +
+ +
+ 4. Servicios dependientes de Flash - Haga clic para expandir/contraer + + El dispositivo flash se vuelve accesible y los servicios esenciales comienzan a cargarse. Esta etapa es crítica para la configuración y el acceso a la red. + + - El dispositivo flash se monta en `/boot`. + - Si falla al montar, aún puedes ver un indicador de inicio de sesión, pero esto indica un inicio incompleto. + - Usa el comando `df` para comprobar si `/boot` está montado. + - El dispositivo flash debe estar etiquetado como **UNRAID** (todo en mayúsculas) para un montaje adecuado. + - Controladores y firmware adicionales estarán disponibles en esta etapa. + - La configuración se carga en la RAM. + - Los servicios estándar de Linux, incluyendo la red y el VPN de %%WireGuard|wireguard%% (si está habilitado), comienzan aquí. +
+ +
+ 5. Complementos - Haga clic para expandir/contraer + + Las extensiones de terceros y personalizaciones se cargan para mejorar la funcionalidad del sistema. Problemas con los complementos pueden impedir el inicio exitoso. + + - Los plugins instalados se cargan durante este paso. + - Opciones de **Arranque seguro** pueden suprimir la carga de plugins si es necesario. +
+ +
+ 6. WebGUI - Haga clic para expandir/contraer + + La interfaz de administración basada en la web se vuelve disponible, permitiendo la administración remota y configuración de tu servidor. + + - El WebGUI comienza en este punto. + - El archivo `config/go` en el dispositivo flash puede ejecutar comandos de usuario antes o después de que el WebGUI comience. +
+ +
+ 7. Conjunto - Haga clic para expandir/contraer + + Los dispositivos de almacenamiento se montan y hacen disponibles, completando el proceso de arranque. Aquí es donde tus datos se vuelven accesibles. + + - Si el auto-arranque está habilitado, el %%array|array%% comienza aquí; de lo contrario, se requerirá un inicio manual. + - Las unidades se montarán como `/dev/diskX` y `/mnt/cache` (si está presente). + - Las particiones compartidas se vuelven disponibles en la red como `/mnt/user/sharename`. + - Los contenedores de Docker se iniciarán en el orden especificado en la pestaña Docker, con retrasos personalizables. + - Las máquinas virtuales de autoinicio (%%VMs|vm%%) también se lanzarán. +
+ +En este punto, el servidor Unraid está completamente operativo. + +--- + +## Falla de arranque + +Cuando tu servidor no arranca, la solución de problemas sistemática ayuda a identificar y resolver rápidamente la causa raíz. Sigue estos pasos en orden para no omitir problemas críticos o hacer cambios innecesarios. Cada paso se basa en el anterior, por lo que no te adelantes incluso si un paso parece no estar relacionado con tu problema específico. + +1. Utiliza un puerto USB 2.0 para el dispositivo flash si es posible. Generalmente es más confiable y menos propenso a problemas que el USB 3.0. +2. Revisa la configuración de tu BIOS/UEFI para asegurarte de que el dispositivo flash esté configurado como el dispositivo de arranque principal. +3. Inspecciona el dispositivo flash en busca de errores físicos o lógicos en una computadora con Windows o macOS. +4. Vuelve a extraer los archivos bz\* de la versión de Unraid en el dispositivo flash para prevenir alguna corrupción potencial. +5. Reconstruye el dispositivo flash comenzando con una copia limpia de Unraid, luego restaura tu carpeta `config`. +6. Intenta arrancar en [Modo Seguro](../../using-unraid-to/customize-your-experience/plugins.mdx#troubleshooting-with-safe-mode) para verificar si hay problemas relacionados con plugins. +7. Prueba con un nuevo dispositivo flash y realiza una instalación limpia de Unraid. Esto ayuda a determinar si hay problemas con el hardware del servidor. +8. Si es necesario, transfiere tu licencia a un nuevo dispositivo flash. + +--- + +## Recuperando de una pérdida del disco de arranque y unidades de paridad desconocidas + +:::important +Este proceso de recuperación implica riesgo de pérdida de datos si los discos se asignan incorrectamente. Antes de proceder: + +1. **No inicie el %%array|array%%** hasta que estés seguro sobre la asignación de las unidades +2. **Documentar** cuáles discos eran anteriormente de paridad vs. discos de datos +3. **Considera buscar ayuda** en los [foros de Unraid](https://forums.unraid.net/) si no estás seguro + +Si tienes copias de seguridad recientes o documentación de la configuración de tu array, revísalos primero. +::: + +Si su unidad de arranque de Unraid falla y no tiene una copia de seguridad reciente o no sabe qué unidades son de paridad, puede recuperar su sistema utilizando la capacidad de Unraid para reconocer unidades de datos por sus sistemas de archivos. Las %%parity drives|parity-drives%% no tienen un sistema de archivos válido, lo que ayuda a diferenciarlas. + +Unraid identifies data drives by detecting existing valid file systems. %%Parity drives|parity-drives%%, which lack a file system, appear unmountable. This characteristic allows you to distinguish %%parity drives|parity-drives%% from data drives after booting with a new flash device. + +### Procedimiento de recuperación + +Este procedimiento le ayuda a restaurar la configuración de su array cuando ha perdido su unidad de arranque y no recuerda qué unidades eran de paridad frente a datos. Siga cada paso con cuidado para evitar la pérdida de datos. + +1. Crea una nueva unidad de arranque de Unraid. +2. Arranca el servidor desde esta nueva unidad (no asignes ninguna unidad todavía). +3. Activa una licencia, usando ya sea una de prueba o transfiriendo una existente. +4. Identifica los %%parity drives|parity-drives%% usando uno de los métodos descritos a continuación. +5. Usa ***Herramientas → Nueva Configuración*** para restablecer el %%array|array%% mientras retienes, si es posible, asignaciones anteriores. +6. Asigna correctamente las unidades en la pestaña ***Principal***, asegurándote de distinguir entre %%paridad|parity%% y unidades de datos. +7. Comienza el %%array|array%% para confirmar las asignaciones de disco. +8. Si la %%parity|parity%% es válida, marque la casilla de ***Parity is Already Valid***. Si no, permita que la %%parity|parity%% se reconstruya. + +:::warning[Multiple unidades de paridad] +Si tiene múltiples %%parity drives|parity-drives%% y tuvo que identificarlas basándose en qué unidades eran no montables, **no** use la opción **Parity is Already Valid**. Hay un 50:50 de probabilidad de asignarlas incorrectamente, y si lo hace, su %%array|array%% puede parecer protegido pero en realidad no lo está. Siempre permita que la paridad se reconstruya en este escenario para asegurar una protección adecuada. +::: + +9. Revisa y ajusta cualquier inclusión/exclusión de usuario para compartir con base en las nuevas indicaciones. +10. Ejecuta una %%parity check|parity-check%% para verificar la integridad, especialmente si %%parity|parity%% no fue reconstruido. + +--- + +### Identificación de los discos de paridad + +
+ Usando la capacidad incorporada de Unraid (método preferido) - Haz clic para expandir/contraer + + Este método no requiere complementos, pero invalidará la %%paridad|parity%%, lo que requerirá una reconstrucción. + + Para usar este método: + + 1. Asigna todas las unidades como unidades de datos e inicia el sistema. + 2. %%Las unidades de paridad|parity-drives%% aparecerán como no montables ya que carecen de un sistema de archivos válido. + 3. Confirma que el número de unidades no montables coincide con tu conteo de %%paridad|parity%%. + 4. Toma nota de los números de serie de estas unidades. + 5. Si es relevante, puedes verificar las unidades de datos montadas para confirmar su orden. +
+ +
+ Usando el plugin de Dispositivos no asignados - Haz clic para expandir/contraer + + Este método basado en complementos preserva la validez de la %%paridad|parity%% montando las unidades en modo de solo lectura. + + Para usar este método: + + 1. Instala el [plugin **Dispositivos no asignados**](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon) desde la pestaña ***Aplicaciones***. + 2. Monta cada disco en modo de solo lectura, uno a la vez. + 3. Las unidades que no se montan probablemente sean %%parity drives|parity-drives%% (no puedes diferenciar entre paridad1 y paridad2). + 4. Inspecciona las unidades de datos montadas para identificar su orden, si es necesario. +
+ +Para más información, ve el [hilo del plugin Dispositivos no asignados](https://forums.unraid.net/topic/55481-unassigned-devices-managing-unassigned-devices-without-rebooting/) en los foros de Unraid. + +--- + +\* *"%%WireGuard|wireguard%%" y el logotipo de "%%WireGuard|wireguard%%" son marcas registradas de Jason A. Donenfeld.* diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx new file mode 100644 index 0000000000..04b611139b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx @@ -0,0 +1,333 @@ +--- +sidebar_position: 4 +sidebar_label: Recuperación de datos +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RepairXfs from './partials/data-recovery/repair-xfs.mdx'; +import RepairBtrfs from './partials/data-recovery/repair-btrfs.mdx'; +import XfsCheckWebGUI from './partials/data-recovery/xfs-check-webgui.mdx'; +import XfsCheckCli from './partials/data-recovery/xfs-check-cli.mdx'; + +# Recuperación de datos + +Entender la protección de datos es importante al gestionar tu servidor de Unraid. Aunque Unraid ofrece una fuerte protección contra fallos comunes de hardware, ningún sistema puede garantizar una inmunidad completa a la pérdida de datos. Esta sección proporciona guía sobre las mejores prácticas para proteger tus datos, reconocer problemas potenciales y recuperar datos cuando ocurran problemas. + +Una recuperación de datos efectiva comienza con estrategias de protección de datos sólidas, que incluyen copias de seguridad regulares, monitoreo proactivo y manejo cuidadoso de las configuraciones de los discos y el arreglo. + +--- + +## Fundamentos de la estrategia de respaldo + +Aunque Unraid ofrece protección contra diversos fallos de hardware, tener copias de seguridad confiables de tus datos cruciales es vital. Las copias de seguridad son tu última defensa contra fallos catastróficos, ransomware o eliminaciones accidentales. + +- **Evaluar datos críticos:** Identificar archivos irremplazables o esenciales, tales como documentos personales, fotos y videos importantes. +- **Copias de seguridad múltiples:** Sigue la regla 3-2-1: mantén al menos tres copias de tus datos en dos tipos diferentes de medios, con una copia almacenada fuera del sitio o en la nube. Esto minimiza el riesgo de desastres físicos como incendios o robos. +- **Frecuencia de respaldo:** Programe copias de seguridad regulares para reducir las posibilidades de pérdida de datos. +- **Protección contra ransomware:** Al menos una copia de seguridad debe estar fuera de línea o inaccesible para proteger contra posibles corrupciones. +- **Herramientas de respaldo:** Para Unraid 7.0 y versiones superiores, se recomienda usar [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) para copias de seguridad automáticas de tu flash y configuración en la nube. Soluciones adicionales populares para respaldo incluyen: + - **[Duplicati](https://unraid-production-481d40bf.preview.craft.cloud/community/apps?q=Duplicati#r:~:text=of%202%20Apps-,duplicati,-Backup%2C%20Cloud):** Una herramienta de respaldo versátil y de código abierto que ofrece deduplicación y cifrado, compatible con destinos en la nube, locales, USB y remotos. + - **[rclone](https://unraid-production-481d40bf.preview.craft.cloud/community/apps?q=rclone#r:~:text=various%20cloud%20services.-,rclone,-Waseh%27s%20Repository):** Una solución robusta para sincronización y respaldo de proveedores de almacenamiento en la nube. + - **[rsync](https://rsync.samba.org/):** Una opción eficiente para copias de seguridad locales o remotas. + - **[borgbackup](https://www.borgbackup.org/):** Una opción para usuarios avanzados interesados en copias de seguridad deduplicadas y cifradas. + +Los usuarios deben evaluar su tolerancia al riesgo y sus necesidades de respaldo, pero el uso de la integración en la nube y la automatización es un buen punto de partida para la mayoría de los usuarios de Unraid. + +:::tip[Modern estrategia de respaldo] +Con Unraid 7.0 y versiones superiores, habilita [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) para copias de seguridad automáticas en la nube de tu dispositivo flash y configuración. Considera usar Duplicati, rclone, o herramientas similares para archivos y shares importantes para crear copias de seguridad programadas a destinos locales, remotos o en la nube. Siempre prueba tu proceso de restauración para asegurar que tus copias de seguridad funcionen cuando sea necesario. +::: + +:::info[Proactive monitoreo y soporte] +- **Habilitar notificaciones:** Configure notificaciones en ***Configuraciones → Notificaciones*** para recibir alertas inmediatas sobre problemas del sistema. +- **Busque orientación experta:** Si no está seguro sobre los pasos de recuperación, consulte los [foros de Unraid](https://forums.unraid.net/) antes de tomar cualquier acción. +- **Controles de salud regulares:** Manténgase al tanto de los [datos SMART](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx) de su disco y realice verificaciones de sistema de archivos periódicamente. +::: + +--- + +## Reparar sistemas de archivos + +:::caution +Usa estas instrucciones estrictamente para discos de datos con corrupción en el sistema de archivos. No las apliques al disco de paridad, problemas de hardware, o discos faltantes. + +- Las herramientas de reparación del sistema de archivos están destinadas solo para corregir discos de datos o de caché que tienen errores de sistema de archivos o de montaje. +- La unidad de paridad **no** tiene un sistema de archivos. Ejecutar cualquier herramienta de reparación en la unidad de paridad puede corromperla y resultar en pérdida de datos irreversible. +::: + +### Nomenclatura de dispositivos: rutas y símbolos + +Cuando se usa el **%%WebGUI|web-gui%%**, las rutas de los dispositivos se gestionan automáticamente. Si eliges reparar a través de la línea de comandos, asegúrate siempre de estar utilizando la **ruta de partición** correcta: + +| Etiqueta | Ruta típica | Uso | ¿Protección por %%parity\|paridad%%? | +| ------------------------------ | ----------- | --------------------------------- | ------------------------------------- | +| Disco 7 | /mnt/disk7 | Punto de montaje de Unraid | Sí (si es disco de %%array\|matriz%%) | +| Partición de %%array\|matriz%% | /dev/md7p1 | Dispositivo gestionado por Unraid | Sí | +| Partición bruta | /dev/sdj1 | Acceso directo al dispositivo | No | + +:::warning +Nunca ejecute herramientas de reparación de sistemas de archivos en discos completos (como `/dev/sdj`); siempre use rutas de partición (como `/dev/sdj1` o gestionadas por Unraid `/dev/mdXp1`). + +- Para discos %%array|array%%, siempre use el dispositivo gestionado por Unraid (como `/dev/md5p1`) para **preservar la protección por %%paridad|parity%%**. +- Usar la partición bruta (por ejemplo, `/dev/sdj1`) no actualizará la %%paridad|parity%%, dejándola inválida. +::: + +- Siempre use `/dev/mdXp1` para discos %%array|array%% para mantener la %%paridad|parity%% válida. +- For non-%%array|array%% drives (like %%cache|cache%%-only devices), use the direct partition path, e.g., `/dev/sdj1`. + +### Eligiendo el método de reparación adecuado + +Todas las versiones de Unraid desde **v6.0.0** soportan reparaciones de sistema de archivos a través del %%WebGUI|web-gui%% para %%XFS|xfs%% y %%BTRFS|btrfs%%. + +Para la mayoría de usuarios, el método recomendado es: + +1. Abra el %%WebGUI|web-gui%%. +2. Navegue a la pestaña **Principal**. +3. Haga clic en el dispositivo %%array|array%% o %%cache|cache%% apropiado. +4. Siga las indicaciones para ejecutar la verificación y reparación integrada del sistema de archivos. + +Si prefiere usar la línea de comandos, siempre: + +- Identifique la partición gestionada por Unraid correcta (`/dev/mdXp1`) para discos %%array|array%%. +- Use las herramientas de reparación apropiadas para su sistema de archivos: + - **XFS:** `xfs_repair` + - **BTRFS:** `btrfs scrub` + +:::caution[Know tu sistema de archivos] +Usar la herramienta de reparación incorrecta puede causar más daños. Verifica que tu disco esté formateado como **%%XFS|xfs%%**, **%%BTRFS|btrfs%%**, u otro tipo de sistema de archivos compatible antes de iniciar reparaciones. +::: + +--- + +## Verificar y reparar discos en el WebGUI + +Esta sección cubre cómo diagnosticar y reparar la corrupción del sistema de archivos en unidades de datos usando las herramientas incorporadas de Unraid. Los problemas del sistema de archivos pueden ocurrir después de apagados no limpios, fallos de energía o problemas de hardware, pero Unraid proporciona métodos de reparación seguros que mantienen tu protección %%parity|parity%% mientras solucionan los problemas subyacentes. + +### Preparándose para la prueba + +| Sistema de Archivos | Modo de inicio | ¿Se requiere modo de mantenimiento? | Notas | +| ------------------- | --------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| %%XFS\|xfs%% | Modo de Mantenimiento | Sí | La %%array\|matriz%% debe iniciarse en Modo de Mantenimiento (unidades no montadas) para verificación/reparación. | +| %%BTRFS\|btrfs%% | Modo normal | No | La %%array\|matriz%% debe iniciarse normalmente, no en Modo de Mantenimiento, para raspado/verificación. | + +- Identifique el sistema de archivos para el disco objetivo: pestaña **Principal** → Haga clic en el nombre del disco → Revise **Tipo de sistema de archivos**. +- Desde la pantalla Principal, haga clic en el disco para ser probado o reparado. + +### Ejecutando la prueba + +1. El predeterminado para la mayoría de sistemas de archivos (como %%XFS|xfs%%) es una revisión de solo lectura (sin cambios), usualmente con la opción `-n` (no modificar). (Para una salida más detallada con %%XFS|xfs%%, añade la opción `-v` (verboso), resultando en `-nv`.) +2. Para %%BTRFS|btrfs%%, utilizará el comando `scrub` en lugar de la operación `balance`. +3. Haga clic en **Verificar** para comenzar; use el botón **Actualizar** para monitorear el progreso si es necesario. +4. Si no se encuentran corrupciones, proceda a [**Después de la prueba y reparación**](#after-the-test-and-repair). + +### Ejecutando la Reparación + + + + + + + + + + + +### Después de la prueba y reparación + +Si usó el %%Modo de Mantenimiento|maintenance-mode%%, detenga el array y reinicie en modo normal para reanudar las operaciones. + +:::tip[What qué esperar después de la reparación] +- Las operaciones de reparación y verificación pueden tardar hasta media hora o más, dependiendo del tamaño y estado de su sistema de archivos. +- La corrupción extensa puede crear una carpeta `lost+found` que contiene archivos y fragmentos de carpetas recuperados. Examina y restaura estos según sea necesario; elimínalos cuando hayas terminado. +- Esto es similar a ejecutar chkdsk o scandisk en Windows y trabajar con archivos renombrados como `File0000.chk`, etc. Tómate tu tiempo al revisar el contenido de `lost+found`. +::: + +--- + +### Verificación y reparación XFS + + + + + + + + + + + +--- + +## Disco(s) no montable(s) + +Si un disco previamente funcional se vuelve no montable, por lo general indica corrupción del sistema de archivos, a menudo causada por un apagado inadecuado o error de escritura. + +:::danger[Critical acción] +¡Nunca formatees un disco no montable a través de la %%WebGUI|interfaz web%%! Formatear borra todos los datos y actualiza la %%paridad|paridad%%, haciendo que la recuperación sea imposible. +::: + +### Procedimiento de recuperación + +Cuando un disco que funcionaba correctamente de repente se vuelve no montable, es natural preocuparse por tus datos. Este tipo de problema es a menudo causado por la corrupción del sistema de archivos, que puede ocurrir después de un apagado no limpio, una interrupción de energía o una operación de escritura fallida. Lo más importante a recordar es: **no formatees la unidad** si te lo pide el %%WebGUI|web-gui%%. Formatear borrará todos los datos existentes y hará que la recuperación sea difícil, si no imposible. + +En cambio, tu primer paso debe ser intentar una reparación del sistema de archivos. Unraid proporciona herramientas incorporadas para esto, y siguiendo el procedimiento correcto, a menudo puedes restaurar el acceso a tus datos con mínimo riesgo. + +Así es como proceder: + +1. Revisa la [sección de reparación del sistema de archivos](#repair-file-systems). Esta guía te lleva a través del proceso para tu sistema de archivos específico. + +2. Para discos que usan el sistema de archivos %%XFS|xfs%% (el predeterminado para la mayoría de las configuraciones de Unraid), ejecute: + + ``` + xfs_repair -v /dev/mdXp1 + ``` + + Reemplaza **X** con el número de disco correcto. La bandera `-v` proporciona información detallada del progreso. Este comando verifica e intenta reparar el sistema de archivos en el disco especificado. + +3. Para discos formateados con %%BTRFS|btrfs%%, primero ejecute una comprobación de solo lectura: + + ``` + btrfs check /dev/mdXp1 + ``` + + Reemplaza **X** con el número de disco correcto. Usa el modo de reparación solo si es absolutamente necesario y después de entender los riesgos: + + ``` + btrfs check --repair /dev/mdXp1 + ``` + +:::danger +La opción `--repair` es extremadamente peligrosa y puede causar una pérdida de datos adicional. Siempre realiza una copia de seguridad o crea una imagen del disco primero. Revisa [la documentación](https://btrfs.readthedocs.io/en/latest/btrfs-check.html) y considera buscar asesoramiento adicional si no estás seguro. +::: + +Si estos intentos de reparación no resuelven el problema o si encuentras errores que no entiendes, es mejor pausar y pedir ayuda en los foros de Unraid. Muchos usuarios experimentados y moderadores están disponibles para ayudarte a guiarte a través de los siguientes pasos, y obtener una segunda opinión antes de continuar es siempre más seguro. + +--- + +## Configuración de la matriz perdida + +Perder tu configuración %%array|array%% puede ser estresante, pero no significa que tus datos hayan desaparecido. El archivo de configuración de %%array|array%% (ubicado en `config/super.dat` en tu dispositivo flash) le dice a Unraid cómo están asignados tus discos y cuáles sirven como %%parity|parity%%. Si perdiste tu unidad flash o no tienes una copia de seguridad reciente, puedes recuperar tu %%array|array%% reasignando cuidadosamente los discos. + +Esto es lo que debe hacer si se encuentra en esta situación: + +1. En el %%WebGUI|web-gui%%, asigna todos los discos disponibles como discos de datos. No asignes ninguno como %%parity|parity%% todavía. +2. Inicia el %%array|array%%. Los discos previamente usados para %%parity|parity%% aparecerán como *no montables* porque no contienen un sistema de archivos. +3. Anote o tome una captura de pantalla de los números de serie de estos discos no montables: estos son sus discos %%parity|paridad%%. +4. Detenga el %%array|array%%. +5. Vaya a ***Herramientas → Nueva Configuración*** y seleccione la opción para retener las asignaciones actuales. +6. Haga clic en la casilla de verificación confirmando que desea continuar y haga clic en **Aplicar**. +7. Regrese a la pestaña **Principal** y asigne correctamente los discos %%parity|paridad%% usando los números de serie que anotó. +8. Inicie el %%array|matriz%% para reconstruir %%parity|paridad%% basado en sus asignaciones correctas. + +--- + +## Recuperar datos usando ddrescue + +Cuando los métodos de recuperación estándar de Unraid, como el procedimiento de [reemplazo de discos](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-disks), no son viables debido a múltiples fallas de discos o %%parity|paridad%% inválida, herramientas especializadas como **ddrescue** pueden ayudarlo a rescatar la mayor cantidad de datos posibles de un disco en falla. + +:::note[Best prácticas para la recuperación de datos] +Antes de comenzar, recuerda que la recuperación de datos es un proceso delicado. Siempre trabaja desde una copia de tu disco fallido cuando sea posible y evita escribir nuevos datos en el disco fuente. Si tus datos son irremplazables, considera servicios profesionales de recuperación antes de intentar una recuperación avanzada por ti mismo. Documenta tus acciones y tómate tiempo: apresurarse aumenta el riesgo de pérdida permanente de datos. +::: + +El método recomendado para instalar ddrescue es a través del plugin **[Nerd Tools](https://unraid.net/community/apps?q=nerd+tools#r)** (que reemplazó al NerdPack obsoleto en 2022). + +Para habilitar ddrescue: + +1. Instale [Nerd Tools](https://unraid-production-481d40bf.preview.craft.cloud/community/apps?q=nerd+tools#r:~:text=of%201%20App-,Nerd%20Tools,-unRaid.es) desde la pestaña **Aplicaciones** en el %%WebGUI|web-gui%% de Unraid. +2. Abra ***Configuración → Nerd Tools*** y habilite **ddrescue**. + +### Clonar un disco en falla + +Necesitarás un disco de destino saludable que sea al menos tan grande como el disco fuente fallido. Asegúrate de que ninguno de los dos discos esté montado durante el proceso. Verifica dos veces tus asignaciones de dispositivos antes de comenzar; el destino incorrecto sobrescribirá y destruirá sus datos. + +Para clonar todo el disco, abra un terminal o una sesión de %%SSH|ssh%% y ejecute el siguiente comando: + +``` +ddrescue -f /dev/sdX /dev/sdY /boot/ddrescue.log +``` + +- Reemplace **X** con la letra de su disco de origen y **Y** con la letra de su disco de destino. +- El archivo `/boot/ddrescue.log` llevará un seguimiento del progreso y le permitirá continuar si el proceso se interrumpe. + +Si desea clonar directamente a un disco de %%array|matriz%% mientras mantiene %%parity|paridad%%, use el dispositivo `md#` e inicie el %%array|matriz%% en Modo de Mantenimiento: + +``` +ddrescue -f /dev/sdX1 /dev/md\# /boot/ddrescue.log +``` + +- Reemplace **X** con la letra de su disco de origen (note el `1` para la partición). +- Reemplace **#** con el número de su disco de destino. + +:::caution +Siempre verifica las asignaciones de dispositivos antes de ejecutar ddrescue. Usar el destino incorrecto podría llevar a una pérdida total de datos en ese disco. +::: + +### Traduciendo la salida de ddrescue + +Durante el proceso de recuperación, ddrescue mostrará el progreso en tiempo real. + +Aquí hay un ejemplo de lo que podría ver durante el primer pase: + +``` +GNU ddrescue 1.27 +ipos: 926889 MB, non-trimmed: 1695 kB, current rate: 95092 kB/s +opos: 926889 MB, non-scraped: 0 B, average rate: 79236 kB/s +non-tried: 1074 GB, bad-sector: 0 B, error rate: 0 B/s +rescued: 925804 MB, bad areas: 0, run time: 3h 14m 44s +pct rescued: 46.28%, read errors: 54, remaining time: 3h 18m +time since last successful read: 0s +Copying non-tried blocks... Pass 1 (forwards) +``` + +:::note[What ¿qué significa esto?] +- **ipos/opos**: Posiciones de lectura/escritura actuales en los discos de origen y destino. +- **rescatado**: Cantidad de datos copiados con éxito. +- **áreas defectuosas/errores de lectura**: Número de regiones problemáticas y errores de lectura encontrados. +- **pct rescatado**: Porcentaje del disco recuperado hasta ahora. +- **tiempo restante**: Tiempo estimado para completar. +- **Copiando bloques no probados...**: ddrescue está haciendo su primer intento de leer todos los sectores. +::: + +Después de la copia inicial, ddrescue trabajará en recuperar datos de sectores defectuosos haciendo múltiples pasadas y, a veces, leyendo bloques en ambas direcciones. Esta fase puede tardar mucho más, especialmente si el disco está gravemente dañado. + +Aquí hay un ejemplo de salida durante esta fase: + +``` +GNU ddrescue 1.27 +ipos: 17878 MB, non-trimmed: 0 B, current rate: 0 B/s +opos: 17878 MB, non-scraped: 362496 B, average rate: 74898 kB/s +non-tried: 0 B, bad-sector: 93696 B, error rate: 102 B/s +rescued: 2000 GB, bad areas: 101, run time: 7h 25m 8s +pct rescued: 99.99%, read errors: 260, remaining time: 25m +time since last successful read: 10s +Scraping failed blocks... (forwards) +``` + +:::note[What's ¿está sucediendo ahora?] +- **Raspando bloques fallidos...**: ddrescue está haciendo intentos repetidos de recuperar sectores ilegibles. +- **áreas defectuosas/errores de lectura**: Estos números pueden aumentar a medida que ddrescue encuentra más daños, pero el objetivo es minimizar los datos irrecuperables. +::: + +### Montando y verificando el disco recuperado + +Una vez que ddrescue esté completo, puedes intentar montar el disco de destino. Usa el complemento [**Dispositivos Desasignados**](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon) para un montaje fácil en el %%WebGUI|web-gui%%. Si el disco no se monta, ejecuta la herramienta de reparación de sistema de archivos adecuada, como `xfs_repair` o `btrfs check`. Incluso si el disco se monta, es una buena idea realizar una verificación del sistema de archivos para asegurarse de su integridad. + +Una vez que hayas recuperado los archivos, cópialos a una ubicación segura en tu %%array|array%%. Ten en cuenta que algunos archivos pueden estar corruptos, especialmente si el disco tenía muchos sectores ilegibles. Usar %%checksums|checksum%% (o %%BTRFS|btrfs%% con comprobación de integridad incorporada) puede ayudarte a identificar archivos dañados. + +### Identificando archivos corruptos sin sumas de verificación + +Si no tiene sumas de verificación, aún puede identificar archivos afectados por sectores dañados utilizando el modo de llenado de ddrescue: + +1. Cree un archivo temporal con una cadena única: + + ``` + printf "Unraid " > ~/fill.txt + ``` + +2. Llene los bloques dañados en el disco clonado con esa cadena: + + ``` + ddrescue --fill-mode='-' ~/fill.txt /dev/sdY /boot/ddrescue.log + ``` + + Reemplace **Y** con el disco de destino y use el archivo de mapa existente de ddrescue. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx new file mode 100644 index 0000000000..436732acc3 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx @@ -0,0 +1,86 @@ +--- +sidebar_position: 5 +sidebar_label: Resolución de problemas de Docker +--- + +# Resolución de problemas de Docker + +:::info +Esta página ofrece orientación para solucionar problemas específicamente para contenedores Docker en Unraid, gestionados por el equipo de Unraid. Para una resolución de problemas avanzada, detalles técnicos en profundidad o temas más allá de la implementación específica de Unraid, consulte la [documentación oficial de Docker](https://docs.docker.com/). +::: + +Docker facilita la ejecución de una variedad de aplicaciones en su servidor Unraid, pero pueden surgir problemas, como contenedores que no inician, archivos de imagen de Docker corruptos o problemas de red. Esta página aborda algunos problemas comunes relacionados con Docker en Unraid y ofrece prácticas recomendadas para resolverlos de manera efectiva. + +--- + +## Recrear el archivo de imagen de Docker + +Un archivo de imagen de Docker corrupto (`docker.img`) es un problema común, a menudo causado por el %%cache pool|grupo de caché%% quedándose sin espacio o un apagado incorrecto. Afortunadamente, un contenedor bien configurado almacena todos los datos variables fuera del archivo de imagen (generalmente en el recurso compartido `appdata`), por lo que puede recrear la imagen sin perder la configuración de su aplicación o datos. + +Para recrear el archivo de imagen de Docker: + +1. Vaya a ***Settings → Docker*** en el %%WebGUI|web-gui%%. +2. Establece **Habilitar Docker** en **No** y haz clic en **Aplicar** para detener el servicio Docker. +3. Seleccione la opción para eliminar el archivo vDisk de Docker y luego haga clic en **Aplicar**. También puede eliminar el archivo manualmente si es necesario. +4. Confirme la ubicación y el nombre de archivo para el nuevo archivo vDisk de Docker. Esta configuración incluye tanto la ruta de la carpeta como el nombre del archivo. +5. Establezca el tamaño deseado para el nuevo archivo de imagen. El tamaño predeterminado es típicamente suficiente para la mayoría de los usuarios. +6. Configure **Habilitar Docker** a **Sí** y haga clic en **Aplicar**. Unraid creará y formateará un nuevo archivo `docker.img` utilizando %%BTRFS|btrfs%%. + +Ahora está listo para reinstalar sus contenedores utilizando sus configuraciones guardadas. + +--- + +## Reinstalación de aplicaciones Docker + +Unraid guarda automáticamente una plantilla para cada contenedor instalado en su unidad flash. Estas plantillas almacenan su configuración, lo que facilita restaurar los contenedores después de recrear el archivo de imagen Docker. + +Para reinstalar sus contenedores: + +1. Ve a la pestaña **Apps** en el %%WebGUI|web-gui%%. +2. Abra la sección **Aplicaciones Anteriores**. +3. Seleccione los contenedores que desea reinstalar. +4. Proceda con la instalación. Unraid volverá a descargar cada contenedor y aplicará automáticamente su configuración previa. + +:::important +Este proceso restaura sus contenedores a su estado anterior, siempre que todos los datos variables estuvieran mapeados fuera del archivo de imagen Docker (por ejemplo, en la compartición `appdata`). +::: + +:::tip +Si un contenedor no se inicia después de reinstalarlo, revise sus registros en el menú contextual de la pestaña **Docker** para mensajes de error y pistas de resolución de problemas. +::: + +:::note +Verifique que todas las rutas de host mapeadas existan y tengan los permisos correctos después de restaurar sus contenedores. Las asignaciones o permisos incorrectos son una causa común de problemas de inicio. +::: + +--- + +## Restaurando redes personalizadas de Docker + +Las redes Docker personalizadas no persisten si se elimina el archivo de imagen de Docker. Antes de eliminar la imagen, documente los nombres de sus redes personalizadas abriendo un terminal y ejecutando: + +``` +docker network ls +``` + +Anote los nombres de cualquier red que haya creado (excluyendo las redes predeterminadas `bridge`, `host` y `none`). + +Para restaurar las redes personalizadas: + +1. Después de recrear el archivo de imagen de Docker, recree cada red personalizada utilizando: + + ``` + docker network create + ``` + + Reemplace `` con el nombre exacto que registró anteriormente. + +2. Actualice sus contenedores para que utilicen las redes restauradas según sea necesario. + +:::note +Puede habilitar el acceso de host a redes personalizadas en ***Settings → Docker*** configurando **Acceso de host a redes personalizadas** en **Habilitado** si su configuración lo requiere. +::: + +:::tip +Si los contenedores no pueden comunicarse como se esperaba después de la restauración, inspeccione sus configuraciones de red Docker para detectar conflictos o problemas de conectividad. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx new file mode 100644 index 0000000000..b83be4ee32 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx @@ -0,0 +1,7 @@ +- Use `btrfs scrub` en el %%WebGUI|web-gui%% para escanear y reparar ciertos errores. +- En discos únicos, el scrub puede detectar pero no reparar algunos errores; si es así, considere copiar datos y reformatear el disco o grupo. + +:::note +- Las herramientas de reparación %%BTRFS|btrfs%% actuales pueden no abordar toda la corrupción; consulte la documentación de Unraid para obtener herramientas actualizadas si es necesario. +- Para obtener más detalles sobre scrub y recuperación, consulte la documentación respectiva de %%BTRFS|btrfs%% o los foros de Unraid para obtener orientación. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx new file mode 100644 index 0000000000..af9cb2d04b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx @@ -0,0 +1,16 @@ +A partir de Unraid 7.0, la reparación del sistema de archivos XFS ahora está completamente automatizada a través del WebGUI: + +1. **Verificación inicial**: Haga clic en el botón **CHECK** (sin opciones para ingresar) +2. **Resultados de la verificación**: + - **No se detectó corrupción**: Muestra "no se detectó corrupción del sistema de archivos" y el botón **CHECK** permanece + - **Se detectó corrupción**: Muestra "se detectó corrupción del sistema de archivos" y aparece un botón **FIX** +3. **Proceso de reparación**: Haga clic en **FIX** para reparar automáticamente el sistema de archivos +4. **Acciones adicionales**: Si es necesario, puede aparecer un botón **ZERO LOG** +5. **Finalización**: Muestra "sistema de archivos reparado" cuando el proceso ha terminado + +Este sistema automatizado elimina la necesidad de que los usuarios ingresen manualmente las opciones de reparación y asegura que se siga la secuencia de reparación correcta. + +:::note +- Las reparaciones mantienen la protección por %%parity|parity%% y pueden tomar un tiempo significativo. +- Tanto %%WebGUI|web-gui%% como las opciones de línea de comandos son compatibles para la reparación %%XFS|xfs%% (los comandos se muestran a continuación). +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx new file mode 100644 index 0000000000..e8169c0665 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx @@ -0,0 +1,12 @@ +En la consola o a través de %%SSH|ssh%%, ejecute: + +``` +xfs_repair -v /dev/mdXp1 +``` + +Reemplace **X** con el número correcto del disco (por ejemplo, `md1p1` para el Disco 1). + +- Revise el informe de reparación para obtener más pasos de remediación si es necesario. Si solo hay problemas menores, ejecutar `-v` generalmente es suficiente. +- Si la reparación produce un directorio `lost+found`, revíselo y adminístrelo como se especifica arriba. +- La %%parity|parity%% se mantiene durante la reparación. +- Cuando termine, detenga el %%array|array%% y reinicie en modo normal. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx new file mode 100644 index 0000000000..b410426cab --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx @@ -0,0 +1,7 @@ +1. Use el %%WebGUI|web-gui%% para discos %%array|array%% formateados con %%XFS|xfs%%. +2. Inicie el %%array|array%% en %%Modo de Mantenimiento|maintenance-mode%% (no montado). +3. Desde la pestaña Principal, seleccione el disco y abra **Verificar Estado del Sistema de Archivos**. +4. Por defecto, una verificación utiliza `-n` (no modificar); para más salida, agregue `-v` para `-nv`. +5. Para reparar, remueva la bandera `-n` para permitir correcciones. + +El proceso del %%WebGUI|web-gui%% mantiene la %%parity|parity%% durante la reparación. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx new file mode 100644 index 0000000000..6390c535dc --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx @@ -0,0 +1 @@ +El estado de %%array|array%% se guarda en tu dispositivo USB. Si la unidad flash se vuelve inaccesible o entra en un estado de solo lectura, Unraid no puede actualizar el estado de apagado, incluso si el %%array|array%% se detiene correctamente. Esto resulta en un apagado incorrecto que se detecta en el próximo arranque. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx new file mode 100644 index 0000000000..eb5094adac --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx @@ -0,0 +1,5 @@ +Unraid espera que todas las sesiones abiertas de terminal o SSH se cierren durante el apagado. Si estas sesiones permanecen activas y el temporizador de apagado expira, se produce un apagado forzado. + +:::tip +El plugin [Dynamix Stop Shell](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository) puede cerrar automáticamente sesiones de bash o SSH que estén sin actividad, ayudando a asegurar un apagado ordenado. Sin embargo, tenga cuidado si hay operaciones de escritura en curso en el %%array|array%%. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx new file mode 100644 index 0000000000..a38c9dcd37 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx @@ -0,0 +1,5 @@ +Las interrupciones de energía son una de las principales razones de apagados no limpios. Protege tu sistema con un SAI (Sistema de Alimentación Ininterrumpida) configurado correctamente que pueda apagar automáticamente Unraid antes de que se agote la batería. + +:::note +Unraid admite la mayoría de las unidades UPS utilizando el protocolo %%apcupsd|apcupsd%% (APC y CyberPower suelen ser compatibles). Si tu UPS no es compatible, considera usar el complemento Network UPS Tools (NUT) de Community Applications. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx new file mode 100644 index 0000000000..be43a725a0 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx @@ -0,0 +1,228 @@ +--- +sidebar_position: 3 +sidebar_label: Fallos del sistema y estabilidad +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Fallos del sistema y estabilidad + +Los fallos del sistema y problemas de estabilidad pueden ser difíciles de diagnosticar y resolver. A menudo, se originan por fallos de hardware, errores de configuración o conflictos dentro del software. Esta sección lo guiará a través de causas comunes, pasos de diagnóstico y mejores prácticas para ayudar a mantener su servidor Unraid estable. + +--- + +## Problemas de RAM + +Los problemas de memoria son una de las causas más comunes de inestabilidad del sistema y corrupción de datos. La RAM puede desgastarse con el tiempo, dando lugar a errores impredecibles que a menudo son difíciles de diagnosticar. Esta sección cubre cómo identificar y resolver los problemas de estabilidad relacionados con la memoria. + +Los síntomas comunes de problemas de RAM incluyen: + +- Explosiones o congelaciones inexplicables del sistema +- Corrupción de datos en archivos o %%array|array%% +- Errores aleatorios de aplicaciones +- Inestabilidad del sistema bajo carga +- Verificaciones de %%paridad|parity%% fallidas + +### Prueba de RAM + +Realizar pruebas de memoria es esencial para diagnosticar problemas de estabilidad. El menú de arranque de Unraid incluye Memtest86+ para pruebas exhaustivas de la RAM, el cual funciona tanto en sistemas Legacy como en %%UEFI|uefi%%. + +Para probar tu RAM: + +1. Reinicia tu servidor y selecciona **Memtest86+** del menú de arranque. +2. Deja que la prueba se ejecute durante al menos 2-4 horas para una cobertura exhaustiva. +3. Monitorea los mensajes de error o pruebas fallidas. + +:::note[Other Herramientas de prueba de RAM] +- [**MemTest86+**](https://www.memtest.org/): Herramienta de código abierto incluida con Unraid +- [**MemTest86**](https://www.memtest86.com/): Herramienta comercial con soporte para hardware moderno +- [**Prueba RAM Karhu**](https://www.karhusoftware.com/): Una herramienta de pago, pero altamente efectiva basada en Windows que puede detectar errores más rápido que los métodos tradicionales, con tasas de detección del 95.67% en 30 minutos (ideal para sistemas DDR5) +- [**HCI MemTest**](https://hcidesign.com/memtest/): Popular, tester gratuito basado en Windows +- [**Prime95**](https://prime95.net/): Valida la estabilidad de RAM y CPU simultáneamente +::: + +:::important[If has encontrado errores de RAM] +Si Memtest86+ muestra errores, intenta volver a colocar los módulos de RAM y repetir la prueba. Prueba cada barra de RAM individualmente para identificar los módulos defectuosos. Consulta la documentación de tu placa base para velocidades y configuraciones de RAM compatibles, y evita mezclar diferentes marcas o velocidades de RAM para minimizar problemas de compatibilidad. +::: + +### Overclocking de RAM + +El overclocking de RAM puede tener un impacto significativo en la estabilidad del sistema. Muchos usuarios quieren ejecutar su RAM a la velocidad más alta especificada por el fabricante, pero las combinaciones de placa base y CPU a menudo tienen velocidades máximas de RAM confiables que son más bajas de lo que está clasificado el RAM. + +:::caution[RAM riesgos de overclocking y recomendaciones] +**Compra:** Siempre que sea posible, compra RAM que esté listada en la QVL (Lista de Proveedores Calificados) de tu placa base, no en la QVL del fabricante de la RAM. Esto asegura una mejor compatibilidad y estabilidad. + +**Los perfiles Intel XMP y AMD AMP son overclocks.** Para la mejor estabilidad, siempre usa la RAM a las velocidades SPD, no a las velocidades XMP/AMP. + +**Riesgos del overclocking:** + +- Inestabilidad del sistema y bloqueos aleatorios +- Corrupción de datos y errores del sistema de archivos +- Vida útil reducida del hardware +- Incompatibilidad con otros componentes + +**Solución de problemas:** Si Memtest86+ pasa pero todavía tienes problemas, deshabilita XMP/AMP y vuelve a intentarlo. La diferencia de rendimiento generalmente es mínima, pero la mejora en la estabilidad puede ser significativa. +::: + +

Mejores prácticas

+ +1. Siempre verifica las especificaciones de tu placa base y CPU antes de intentar hacer overclock. +2. **Para máxima estabilidad:** Desactiva los perfiles XMP/AMP y utiliza la RAM a sus velocidades SPD predeterminadas. +3. Comienza con configuraciones conservadoras y aumenta gradualmente. +4. Prueba la estabilidad con Memtest86+ después de cualquier cambio. +5. Si notas inestabilidad, vuelve inmediatamente a las velocidades predeterminadas o más bajas. +6. Considera el compromiso entre rendimiento y estabilidad para entornos de servidor. + +## Factores críticos de estabilidad + +La estabilidad del sistema depende de más que solo el rendimiento de la RAM o el CPU. Múltiples componentes de hardware y software trabajan juntos para mantener un funcionamiento confiable. Esta sección cubre las áreas clave que influyen en la estabilidad de su servidor Unraid y proporciona pasos prácticos para prevenir y resolver problemas. + +La estabilidad del sistema generalmente depende de: + +- Calidad y fiabilidad de la fuente de energía +- Gestión térmica adecuada +- Salud del disco y rendimiento de E/S +- Compatibilidad de plugins y aplicaciones +- Versiones actuales de firmware y BIOS +- Monitoreo y mantenimiento proactivo + +### Fiabilidad de la fuente de energía + +
+ Haga clic para expandir/contraer + + Un suministro de energía estable y suficiente es crucial para el funcionamiento ininterrumpido del servidor. Los problemas de energía suelen ser pasados por alto, pero pueden causar los problemas de estabilidad más frustrantes. + + Los problemas comunes relacionados con la energía incluyen: + + - Bloqueos o congelaciones del sistema aleatorias + - Corrupción de datos durante las escrituras + - Apagados repentinos sin aviso + - Fallos de componentes de hardware + - Rendimiento inconsistente + +

Prevención y mantenimiento

+ + El mantenimiento proactivo del suministro de energía previene los problemas de estabilidad más comunes. Las revisiones regulares y la selección adecuada de componentes pueden evitar costosos tiempos de inactividad y pérdida de datos. + + 1. Siempre usa una PSU de alta calidad, con una calificación adecuada para tu hardware. + 2. **Crítico:** Asegúrese de que su fuente de alimentación pueda manejar el encendido simultáneo de TODOS los dispositivos de almacenamiento adjuntos. La calificación de corriente del riel de 12V debe tener en cuenta la corriente de arranque de todas las unidades a la vez, no escalonada. + 3. Evite los divisores de corriente siempre que sea posible. Pueden causar caídas de voltaje e inestabilidad, especialmente durante eventos de alta corriente como el encendido de unidades. + 4. Considera fuentes de energía redundantes para sistemas empresariales y de múltiples bahías. + 5. Asegúrate de que cada unidad de PSU esté adecuadamente colocada y conectada. + 6. Monitoriza los indicadores de salud de PSU (como luces LED de OK de CA) si están disponibles. + 7. Reemplaza inmediatamente las unidades fallidas para evitar tiempos de inactividad. + 8. Verifica regularmente que todos los cables de alimentación estén seguros. + 9. Verifica que los circuitos no estén sobrecargados. +
+ +### Gestión térmica y sobrecalentamiento + +
+ Haga clic para expandir/contraer + + El sobrecalentamiento es una de las principales causas de fallos de hardware y comportamiento errático del servidor. Los problemas térmicos pueden hacer que los componentes reduzcan el rendimiento o fallen por completo. + + Los signos de problemas térmicos incluyen: + + - Reducción del rendimiento o sistema reducido + - Bloqueos aleatorios durante alta carga + - Ruido de ventilador o comportamiento de enfriamiento inusual + - Fallos de componentes de hardware + - Comportamiento inconsistente del sistema + +

Soluciones de enfriamiento y mejores prácticas

+ + Una refrigeración adecuada es esencial para mantener la estabilidad del sistema y prevenir la reducción térmica. Estas prácticas ayudan a garantizar que su servidor opere dentro de rangos de temperatura seguros. + + 1. Asegura que tu servidor esté ubicado en un área bien ventilada. + 2. Mantén temperaturas ambientales controladas (idealmente 18-24°C/64-75°F). + 3. Usa soluciones de enfriamiento adecuadas (ventiladores de alta calidad, aire acondicionado montado en rack). + 4. Monitorea las temperaturas del sistema usando sensores de hardware. + 5. Limpia regularmente el polvo y escombros de los componentes de enfriamiento. + 6. Evita colocar servidores en espacios confinados o mal ventilados. + 7. Considera enfriamiento adicional para sistemas de alto rendimiento. + + El monitoreo proactivo de las temperaturas ayuda a identificar problemas de enfriamiento antes de que causen inestabilidad en el sistema. Utilice los sensores de temperatura integrados en Unraid o herramientas de monitoreo de hardware compatibles con su sistema. +
+ +### Salud del disco y errores de E/S + +
+ Haga clic para expandir/contraer + + Los errores en los discos, ya sea por envejecimiento de las unidades o fallos repentinos, pueden interrumpir la estabilidad del sistema y comprometer los datos. Los problemas de E/S suelen manifestarse como problemas de rendimiento antes de causar fallos completos. + + Los síntomas de problemas de disco incluyen: + + - Carga alta del servidor o rendimiento lento + - Verificaciones de %%paridad|parity%% fallidas + - Corrupción de datos o errores de lectura/escritura + - Actividad de disco o ruido inusual + - Congelaciones del sistema durante operaciones de disco + +

Mantenimiento preventivo

+ + El mantenimiento regular ayuda a detectar problemas de disco antes de que causen pérdida de datos o inestabilidad en el sistema. Estos pasos proactivos pueden extender significativamente la vida útil de la unidad y mantener el rendimiento. + + 1. Monitorea regularmente los datos %%SMART|smart%% de la unidad usando las herramientas de salud de disco integradas en Unraid. + 2. Run periodic [%%parity checks|parity-check%%s](../../using-unraid-to/manage-storage/array-configuration.mdx#parity--read-checks) to ensure data integrity. + 3. Monitorea las temperaturas del disco y las métricas de rendimiento. + 4. Mantén las unidades adecuadamente ventiladas y refrigeradas. + +

Cuando ocurren problemas

+ + Una respuesta rápida a los problemas de disco puede prevenir la pérdida de datos y minimizar el tiempo de inactividad. Siga estos pasos de manera sistemática para identificar y resolver problemas. + + 1. Reemplaza rápidamente las unidades que fallan para evitar la pérdida de datos. + 2. Investiga la salud del cableado, la fuente de alimentación y el controlador de disco. + 3. Verifica conexiones sueltas o cables dañados. + 4. Considera ejecutar pruebas %%SMART|smart%% extendidas para unidades sospechosas. + 5. Monitorea los registros del sistema en busca de patrones de errores de E/S. +
+ +### Estabilidad de aplicaciones y plugins + +
+ Haga clic para expandir/contraer + + La flexibilidad de Unraid proviene de su soporte para complementos y contenedores Docker. Sin embargo, los complementos de terceros pueden introducir inestabilidad, especialmente si están desactualizados o no son compatibles con su versión actual de Unraid. + + Al diagnosticar... + + - Utiliza [Modo Seguro](../../using-unraid-to/customize-your-experience/plugins.mdx#troubleshooting-with-safe-mode) para deshabilitar temporalmente los plugins e identificar la fuente de los problemas. + - Prefiere contenedores Docker sobre plugins para agregar funciones, ya que los contenedores proporcionan mejor aislamiento del sistema operativo central y es menos probable que causen problemas en todo el sistema. + - Actualiza o elimina regularmente los plugins no utilizados o no soportados para mantener la estabilidad. +
+ +### Actualizaciones de firmware y BIOS + +
+ Haga clic para expandir/contraer + + El firmware o BIOS desactualizado puede provocar inestabilidad, vulnerabilidades de seguridad y problemas de compatibilidad de hardware. Las actualizaciones regulares son esenciales para mantener la estabilidad y seguridad del sistema. + + - Programa comprobaciones regulares de actualizaciones de firmware y BIOS para tu placa base y componentes críticos. + - Siempre realiza una copia de seguridad de tu configuración antes de actualizar y, si es posible, prueba las actualizaciones en un entorno controlado. + - Documenta tu proceso de actualización y revísalo de vez en cuando para asegurarte de seguir las mejores prácticas. + + Mantener el firmware del sistema actualizado ayuda a prevenir bloqueos inesperados y desbloquea nuevas características de hardware. + + :::tip[Recomendaciones] + - Usa utilidades del fabricante para actualizaciones sin riesgos, como [ASUS Armoury Crate](https://www.asus.com/supportonly/armoury%20crate/helpdesk_download/), [Gigabyte @BIOS](https://www.gigabyte.com/Support/Consumer/Download) o [MSI Center](https://www.msi.com/Landing/MSI-Center). + - Revise la configuración de BIOS de su placa base para ver si hay opciones de actualización automática disponibles. + ::: +
+ +### Monitoreo proactivo del sistema + +
+ Haga clic para expandir/contraer + + El monitoreo consistente es esencial para la detección temprana de problemas. + + - Habilita [registrado persistente](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx) en Unraid para conservar los registros entre reinicios. + - Utilice herramientas de monitoreo del sistema para rastrear temperaturas, voltajes y salud de las unidades. Configure alertas para umbrales críticos para tomar medidas antes de que los problemas menores se intensifiquen. + - Revisar regularmente los registros del sistema te permite detectar patrones y abordar las causas subyacentes antes de que provoquen tiempos de inactividad. +
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx new file mode 100644 index 0000000000..19c8d9cd9c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx @@ -0,0 +1,150 @@ +--- +sidebar_position: 2 +sidebar_label: Apagados no limpios +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import UncleanShutdownsPower from './partials/unclean-shutdowns/unexpected-power-loss.mdx'; +import UncleanShutdownsFlash from './partials/unclean-shutdowns/flash-drive-failure.mdx'; +import UncleanShutdownsTerminal from './partials/unclean-shutdowns/open-terminal-sessions.mdx'; + +# Apagados no limpios + +Un cierre no limpio ocurre cuando Unraid detecta que el %%array|array%% no se detuvo correctamente antes de que el sistema se apagara. Esta situación puede desencadenar una %%parity check|parity-check%% automática durante el próximo arranque para garantizar la integridad de los datos. + +:::important[Recommendations para prevenir apagados no limpios] +Tomar algunas medidas proactivas puede ayudarte a evitar o identificar apagados no limpios: + +- **Usa un SAI:** Mantén tu servidor conectado a un Sistema de Alimentación Ininterrumpida (SAI) y configúralo para iniciar un apagado controlado cuando la energía de la batería sea baja. +- **Intentar un apagado ordenado:** Si su servidor no responde, presione brevemente el botón de encendido para activar un apagado seguro. No mantenga el botón presionado, ya que esto forzará un apagado duro y provocará un apagado no limpio. +- **Habilitar registro persistente:** Vaya a ***Ajustes → Servidor de Syslog*** para activar el registro que persiste después de un reinicio. Consulte [Registros persistentes (servidor Syslog)](../diagnostics/capture-diagnostics-and-logs.mdx#persistent-logs-syslog-server) para más detalles. +- **Adjuntar diagnósticos para soporte:** Si ocurre un apagado no limpio, Unraid intentará guardar los diagnósticos en `/log/diagnostics.zip` en su dispositivo de flash. Adjunte este archivo a las publicaciones en el foro cuando busque ayuda. +::: + +:::tip[UPS mejores prácticas de configuración] +Un SAI bien configurado es tu mejor defensa contra apagados no limpios causados por pérdida de energía. + +- **Conecta el SAI vía USB** a tu servidor Unraid. +- **Habilitar el soporte de SAI** en ***Configuración → Configuración de SAI***. +- **Configurar tiempos de espera de apagado:** Configure el SAI para que desencadene un apagado controlado antes de que la batería se agote. Ajuste los umbrales de "Tiempo restante de la batería" o "Nivel de carga de la batería" para proporcionar tiempo suficiente para que Unraid [detenga el %%array|array%%](../../using-unraid-to/manage-storage/array-configuration.mdx#startstop-the-array) y se apague de forma segura. +- **Prueba tu configuración:** Simula una pérdida de energía para asegurarte de que el SAI y Unraid respondan correctamente. + +Consulte el [plugin NUT](https://unraid.net/community/apps/c/plugins/p4?srsltid=AfmBOop675PrJQW4iqb4JBN3GyPpwDDiSmnZReq78t27XyxkFdMX8inO#:~:text=NUT%20%2D%20Network%20UPS%20Tools) para obtener una mayor compatibilidad con modelos UPS más avanzados o hardware no compatible. +::: + +## Eventos que causan apagados no limpios + +Comprender los principales desencadenantes de apagados no limpios le ayuda a prevenirlos. Explore las pestañas a continuación para obtener detalles sobre cada escenario. + + + + + + + + + + + + + + + +--- + +## Configuración de tiempos de apagado + +Configurar correctamente los tiempos de espera de apagado es esencial para asegurar que su servidor Unraid pueda detener efectivamente todos los servicios, previniendo apagados no limpios, especialmente durante pérdidas de energía o mantenimiento. Cada componente de su sistema - %%VM|vm%%s, contenedores de Docker, y el %%array|array%% general - tiene su propia configuración de tiempo de espera que puede ajustarse. + +### Configuraciones recomendadas de tiempo de espera + +| Configuración | Defecto | Recomendación mínima | Dónde configurar | +| ----------------------------------------------- | ------- | ------------------------------------------------------------------------ | ---------------------------------------------------------------------------- | +| Tiempo de espera para apagado de %%VM\|vm%% | 60s | 300s (5 min) | ***Configuración → Gestor de VM → Apagado de VM (Avanzado)*** | +| Tiempo de espera para detener contenedor Docker | 10s | 30–60s | ***Configuración → Docker (Avanzado)*** | +| Tiempo de espera general de apagado | 90s | 3 × tiempo de espera de %%VM\|vm%% + tiempo de espera de Docker + 15–30s | ***Configuración → Configuración de Disco → Tiempo de espera para apagado*** | + +### Tiempo de espera para máquinas virtuales + +
+ Haga clic para expandir/contraer + + Unraid primero apaga todas las máquinas virtuales configuradas (%%VMs|vm%%) antes de detener los contenedores de Docker o el %%array|array%% en sí. El Tiempo de Espera de Apagado de VM determina cuánto tiempo espera Unraid para que cada %%VM|vm%% se apague de manera ordenada. + +

Dónde configurarlo

+ + - ***Configuración → Gestor de VM → Apagado de VM*** (activar vista Avanzada) + +

Considerar

+ + - Las %%VMs|vm%% de Windows pueden tardar más en apagarse, especialmente si hay actualizaciones pendientes o la %%VM|vm%% está en modo de suspensión/hibernación. + - Si el tiempo de espera es muy corto, las %%VMs|vm%% se detendrán a la fuerza, arriesgando pérdida o corrupción de datos. + +

Mejores prácticas

+ + Establezca el tiempo de espera en al menos 300 segundos (5 minutos) para las %%VMs|vm%% de Windows. Programe las actualizaciones para ejecutarse al inicio, no al apagarse, para evitar retrasos. +
+ +### Tiempo de espera para contenedores Docker + +
+ Haga clic para expandir/contraer + + Después de las %%VMs|vm%%, Unraid detiene todos los contenedores de Docker en ejecución. El Tiempo de Espera de Detención de Contenedor de Docker controla cuánto tiempo espera Unraid para que cada contenedor salga limpiamente. + +

Dónde configurarlo

+ + - ***Configuración → Docker*** (activar vista Avanzada) + +

Considerar

+ + - Los contenedores se detienen en paralelo. + - Los contenedores complejos, o aquellos con grandes bases de datos, pueden necesitar más de los 10 segundos predeterminados para apagarse con seguridad. + - Si el temporizador expira, los contenedores se detienen forzosamente. + +

Mejores prácticas

+ Aumenta el tiempo de espera a 30–60 segundos si ejecutas contenedores Docker que requieren más tiempo de apagado. +
+ +### Temporizador general de apagado + +
+ Haga clic para expandir/contraer + + El tiempo total de espera de apagado es el tiempo máximo que Unraid permite para todos los procesos de apagado - %%VM|vm%%s, Docker y operaciones de disco - antes de forzar un apagado. + +

Dónde configurarlo

+ + - ***Configuración → Configuración de Disco → Tiempo de espera para apagado*** + +

Cómo calcular

+ + Suma tus tiempos de espera para %%VM|vm%% y Docker, luego añade 15–30 segundos para el desmontaje de disco y otros procesos. + + - Ejemplo: `3 × ***Tiempo de espera para Apagado de VM*** + ***Tiempo de espera para detener Docker*** + 15–30 segundos` + +

Mejores prácticas

+ Establece este temporizador lo suficientemente alto para cubrir tu escenario de apagado más lento, especialmente si tienes muchas unidades o un gran %%array|array%%. +
+ +### Vida útil de la batería del SAI + +
+ Haga clic para expandir/contraer + + Tu SAI debe proporcionar suficiente tiempo de funcionamiento para permitir que todos los temporizadores de apagado expiren antes de que el servidor pierda energía. + +

Dónde configurarlo

+ + - ***Configuración → Configuración de SAI*** (ver **Tiempo de ejecución restante** con todos los discos activados) + +

Considerar

+ + - El SAI debería activar un apagado lo suficientemente temprano para permitir que toda la secuencia de apagado se complete. + - Si la batería se agota antes de que el apagado se complete, existe el riesgo de un apagado no limpio y posible pérdida de datos. + +

Mejores prácticas

+ + Prueba tu SAI simulando un corte de energía y confirma que Unraid se apague limpiamente con tiempo de sobra. +
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json new file mode 100644 index 0000000000..3f7a054d0f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Diagnósticos", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx new file mode 100644 index 0000000000..c644869ddd --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx @@ -0,0 +1,190 @@ +--- +sidebar_position: 1 +sidebar_label: Capturar diagnósticos y registros +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import SyslogMirror from './partials/syslog-server/mirror.mdx'; +import SyslogRemote from './partials/syslog-server/remote.mdx'; +import SyslogLocal from './partials/syslog-server/local.mdx'; +import DockerLogsViaWebGUI from './partials/docker-logs/via-webgui.mdx'; +import DockerLogsCommandLine from './partials/docker-logs/command-line.mdx'; +import DockerLogsPersistent from './partials/docker-logs/persistent.mdx'; + +# Capturando información de diagnóstico + +Cuando tienes problemas con tu servidor Unraid, recopilar información detallada es crucial para solucionar problemas de manera efectiva. Esta información ayuda a otros a proporcionar asistencia precisa y oportuna, especialmente cuando publicas en foros. + +:::info[Diagnostics incluido...] +El archivo zip de diagnósticos contiene varios archivos de texto anonimizados que crean una instantánea detallada de tu sistema Unraid, incluyendo: + +- **Configuración del sistema**: Información sobre tu %%array|array%%, compartidos, configuraciones de red y plugins instalados. +- **Registros del sistema**: Registros del kernel, %%WebGUI|web-gui%% y servicios del sistema, documentando eventos que pueden haber llevado al problema. +- **Información de hardware**: Detalles sobre discos conectados, controladores y otros componentes de hardware. +- **Información de Docker y %%VM|vm%%**: Configuración general para Docker y máquinas virtuales (no se incluye información sobre tus contenedores individuales o %%VMs|vm%%). +::: + +--- + +## Diagnósticos del sistema + +Unraid ofrece una herramienta de **Diagnósticos** ubicada en ***Tools → Diagnostics*** en el %%WebGUI|web-gui%% para capturar información completa del sistema para la resolución de problemas. Esta herramienta generará un archivo zip que puedes descargar y adjuntar a publicaciones en foros para obtener soporte. Todos los archivos de diagnóstico son basados en texto, y los usuarios pueden revisarlos para entender qué información está incluida. + +| Escenario | Cómo capturar | Notas | +| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | +| %%WebGUI\|web-gui%% disponible | Usa ***Herramientas → Diagnósticos*** en el **%%WebGUI\|web-gui%%** para generar y descargar el archivo zip de diagnósticos. | Los diagnósticos están anonimizados por defecto para proteger los datos sensibles. | +| %%WebGUI\|web-gui%% no disponible | Accede a través de **%%SSH\|ssh%%**, telnet, o consola directa para ejecutar el comando `diagnostics`. El archivo zip se guarda en `/boot/logs`. | Siempre captura diagnósticos antes de reiniciar para mantener los registros intactos. | +| %%Array\|array%% iniciado en modo normal | Este es el método preferido para capturar diagnósticos, ya que proporciona la información más completa, especialmente sobre el estado del disco. | Si esto no es posible, consulta la [sección de registros persistentes](#persistent-logs-syslog-server) para métodos alternativos de captura. | + +
+ ![Lógica de selección de disco](/img/Diagnostics.jpg) +
+ +:::important +Adjunta el archivo zip de diagnósticos único cuando publiques en foros - evita subir los archivos extraídos individualmente. +::: + +### Anonimización de datos de diagnóstico + +By default, diagnostics are automatically anonymized. If you enable %%Mover|mover%% logging under ***Settings → Scheduler → Mover Settings***, the %%syslog|syslog%% will include details about files the %%Mover|mover%% processes. It's best to allow %%Mover|mover%% logging only when troubleshooting specific %%Mover|mover%%-related issues, as it may reveal file paths and names. + +Cuando tu sistema se apaga correctamente, el registro de la sesión se guarda automáticamente en la unidad flash. Puedes acceder a él después de reiniciar yendo a ***Tools → Syslog → syslog-previous***. Este registro también se incluye en los diagnósticos en el siguiente inicio. Sin embargo, si el sistema falla, el registro del sistema se perderá. En estos casos, se recomienda habilitar la duplicación del %%syslog|syslog%% al flash o usar un %%servidor syslog|syslog-server%% remoto para conservar registros y solucionar problemas. + +--- + +## Pruebas de rendimiento de lectura del disco + +Puedes utilizar herramientas integradas de Linux para evaluar el rendimiento de lectura de tus discos duros. Esto es útil al diagnosticar sincronizaciones de %%paridad|parity%% lentas, respuestas lentas del disco o velocidades desiguales entre discos en un %%array|array%% o %%cache|cache%%. + +:::important[When y por qué probar la velocidad] +Considera ejecutar pruebas de lectura de discos si experimentas: + +- Construcciones de %%parity|parity%% extremadamente lentas o comprobaciones de %%parity|parity-check%%s +- Transferencias de archivos sospechosamente lentas desde un disco específico +- Desajustes de disco después de agregar o reemplazar discos, particularmente cuando se mezclan SSDs y HDDs +- Sectores reasignados o errores %%UDMA|udma%% %%CRC|crc-errors%%, que pueden indicar discos fallando + +Aunque estas pruebas no te darán velocidades de transferencia de archivos exactas del mundo real, pueden señalar discos con bajo rendimiento y cualquier cuello de botella en el controlador. +::: + +### Prueba rápida (hdparm) + +La herramienta `hdparm` mide las velocidades de lectura en caché y en buffer de un disco. + +Para ejecutar la prueba, reemplaza `X` con tu dispositivo de disco (como `sdb` o `sdg`) e introduce el siguiente comando: + +``` +hdparm -tT /dev/sdX +``` + +- El resultado de `-T` muestra la velocidad de lectura de caché. +- El resultado de `-t` muestra el rendimiento de lectura secuencial del disco. + +:::tip +Ejecuta esta prueba varias veces para obtener una referencia más confiable. Por ejemplo, puedes usar el siguiente comando para ejecutar la prueba 12 veces: + +``` +for ((i=0;i<12;i++)); do hdparm -tT /dev/sdX; done +``` +::: + +:::note +Asegúrate de reemplazar `/dev/sdX` con un dispositivo físico válido. Evita dispositivos lógicos de Unraid, como `/dev/md1`, que incluyen procesos de %%paridad|parity%% que pueden distorsionar las lecturas de rendimiento en bruto. +::: + +### Prueba completa (diskspeed.sh) + +Para una evaluación más detallada de todos los discos conectados, incluidas unidades de %%parity|parity%% y datos, considera usar el script de la comunidad `diskspeed.sh`. + +Este script: + +- Prueba las velocidades de lectura en múltiples offset lineales a través de la superficie del disco +- Genera datos CSV y mapas de calor de rendimiento (imágenes) +- Puede identificar zonas de bajo rendimiento, que pueden ser una señal de hardware defectuoso o discos SMR problemáticos + +Para comenzar con `diskspeed.sh`: + +1. Descarga el script desde los [foros de Unraid](https://forums.unraid.net/topic/31073-disk-speed-test-graphs-disk-bottlenecks-identified-see-how-fast-your-disks-can-really-go/). +2. Colócalo en una ruta persistente como `/boot/scripts/`. +3. Hazlo ejecutable: + +``` +chmod +x /boot/scripts/diskspeed.sh +``` + +4. Ejecuta el script: + +``` +bash /boot/scripts/diskspeed.sh +``` + +:::note +Este script solo realiza operaciones de solo lectura y no modificará ningún dato en tus discos. Sin embargo, es mejor programar la prueba durante períodos de inactividad, ya que puede afectar el I/O del disco e interferir con el rendimiento del %%array|array%%. +::: + +--- + +## Registros persistentes (servidor syslog) + +Los registros persistentes son esenciales para mantener un registro de los eventos del sistema entre reinicios. A diferencia de los registros estándar que se reinician al reiniciar el sistema, los registros persistentes utilizan el %%servidor syslog integrado|syslog-server%% de Unraid para garantizar que puedas diagnosticar fallos o problemas intermitentes que surjan con el tiempo. + +### Elegir el método de registro correcto + +Ve a ***Settings → Syslog Server*** para configurar el registro persistente. Cada método tiene ventajas y desventajas: + +| Método | Pros | Contras | Mejor para | +| ----------------------------- | ------------------------------------------------------------------------------------------------ | ----------------------------------------------- | ------------------------------------------- | +| **Reflejar en flash** | Captura eventos del proceso de arranque | Puede desgastar la unidad flash rápidamente | Diagnósticos a corto plazo (unos días) | +| **Remoto %%syslog\|syslog%%** | Los registros se almacenan en otro dispositivo | Necesita un servidor separado siempre encendido | Monitoreo a largo plazo (semanas a meses) | +| **%%syslog\|syslog%% local** | Mantiene registros en el %%array\|array%% o %%cache\|cache%%, reduciendo el desgaste en el flash | Menos accesible si hay un fallo del sistema | Registro continuo sin dispositivos externos | + +:::tip +Para obtener ayuda detallada sobre configuración, revisa el ícono **Help** en la barra de herramientas de WebGUI. +::: + +### Habilitación del servidor syslog + + + + + + + + + + + + + + + +--- + +## Accediendo a registros de contenedores de Docker + +Mientras que los diagnósticos estándar solo proporcionan datos limitados para Docker y %%VM|vm%%, puedes acceder directamente a los registros de contenedores para obtener más detalles en la resolución de problemas. + +Para recuperar registros de Docker: + + + + + + + + + + + + + + + +### Registros de máquinas virtuales + +Los registros de %%VM|vm%% se pueden acceder a través de sus respectivos hipervisores (por ejemplo, los registros de %%QEMU|qemu%% se encuentran en `/var/log/libvirt/`). Consulta la documentación de tu plataforma %%VM|vm%% para más detalles. + +:::important +Recuerda adjuntar los registros pertinentes de contenedores o %%VM|vm%% por separado cuando busques soporte para problemas específicos de aplicaciones. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx new file mode 100644 index 0000000000..8078db80a7 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx @@ -0,0 +1,5 @@ +Usa el comando: + +```bash +docker logs [container_name] > /path/to/save/log.txt +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx new file mode 100644 index 0000000000..231426ef0b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx @@ -0,0 +1,5 @@ +Para mapear registros de contenedores a una ruta de host, configura tu plantilla de contenedor de esta manera: + +``` +/path/in/container:/logs +``` diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx new file mode 100644 index 0000000000..7753bf87b1 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx @@ -0,0 +1,2 @@ +- Navegue a ***Docker > Contenedores*** +- Haz clic en el icono **Registros** para el contenedor deseado diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx new file mode 100644 index 0000000000..e16bae68c2 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx @@ -0,0 +1,15 @@ +Para crear una copia persistente y confiable de tu %%syslog|syslog%% de Unraid en tu servidor: + +1. Configura **Servidor local syslog** en *Habilitado*. +2. Configura las siguientes opciones: + - **Carpeta de %%syslog|syslog%% local**: Usa un compartir solo caché o preferido (lo mejor para SSDs). + - **Configuraciones de rotación**: Ajusta el tamaño de archivo y los límites de número. +3. Para obtener los mejores resultados y asegurarse de que se capture todos los datos de %%syslog|syslog%% (incluidos los eventos de arranque), configure el campo **Servidor remoto de %%syslog server|syslog-server%%** a la dirección IP de su propio servidor (el "Método de bucle"), o el %%syslog|syslog%% no se guardará en el recurso compartido establecido. + - Esto asegura que los eventos de %%syslog|syslog%% se almacenen localmente y persistan a través de reinicios, sin escribir en la unidad flash. +4. Haga clic en **Aplicar**. + - Los registros se guardarán en el compartir que especificaste. + +:::note +- Si subes archivos desde el %%syslog server|syslog-server%% local al foro, no serán anonimizados. +- Los registros guardados utilizando este método no se incluyen en los diagnósticos estándar. Adjuntarlos por separado si necesita soporte. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx new file mode 100644 index 0000000000..7d06bdf3fe --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx @@ -0,0 +1,15 @@ +1. Selecciona **Yes** en **Reflejar en flash**. +2. Haga clic en **Aplicar**. Los registros se guardarán en `/boot/logs/syslog` en su unidad flash + +En el próximo reinicio, este archivo será renombrado a `/boot/logs/syslog-previous`. Puede ver este archivo a través de **Herramientas → Syslog → syslog-previous**, y también se incluirá (anonimizado) en los diagnósticos. + +

Cómo funciona

+ +- Por defecto, Unraid copia el %%syslog|syslog%% a la unidad flash durante cada apagado ordenado. Esto se gestiona a través de la configuración "copiar %%syslog|syslog%% a flash durante el apagado", que está habilitada por defecto. +- Si está solucionando problemas de fallos, puede habilitar "Reflejar a flash". Esto escribirá el %%syslog|syslog%% tanto en `/var/log/syslog` como en `/boot/logs/syslog` en tiempo real. Si ocurre un fallo, cualquier entrada de %%syslog|syslog%% registrada en flash antes del fallo se conservará. + +Ambos métodos resultan en la creación de un archivo `/boot/logs/syslog-previous` tras el próximo arranque, al que puedes acceder a través del visor de %%syslog|syslog%% y se incluirá en diagnósticos. + +:::caution +La configuración **Copiar %%syslog|syslog%% a la flash en apagado** es segura para tu unidad flash. Sin embargo, habilitar **Reflejar en flash** puede llevar a escrituras excesivas si se deja activado por un periodo prolongado. Para necesidades de registro a largo plazo, considera usar un servidor %%syslog local o remoto|syslog-server%% en su lugar. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx new file mode 100644 index 0000000000..228b64ba96 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx @@ -0,0 +1,12 @@ +1. Configura **Servidor local syslog** en *Habilitado*. +2. Ingresa la dirección IP de tu servidor syslog en **Servidor syslog remoto**. +3. Haga clic en **Aplicar**. + - Los registros se transmitirán al dispositivo que especificaste. + +
+ ![Configuración remota de syslog](/img/Syslog-server.jpg) +
+ +:::note +Si subes archivos desde un %%syslog server|syslog-server%% remoto al foro, no serán anonimizados. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx new file mode 100644 index 0000000000..1ab7f9bd42 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx @@ -0,0 +1,142 @@ +--- +sidebar_position: 2 +sidebar_label: Errores de CRC UDMA +--- + +# Errores de CRC UDMA + +**%%UDMA|udma%% %%CRC errors|crc-errors%%** ([%%SMART|smart%% attribute 199](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx)) are typical for Unraid users and often appear in drive health reports. For most users, these errors indicate a communication problem between the drive and the server rather than a failure of the drive itself. + +When a %%CRC error|crc-errors%% occurs, the drive detects that data was not received correctly from the host. Unraid automatically tries to recover by resending the data. If the resend is successful, the operation continues as usual, though you might notice slower write speeds due to the retry. These events are logged in the %%syslog|syslog%%. + +Si los intentos de recuperación fallan después de varios reintentos, Unraid lo trata como un error de lectura. En %%paridad|parity%%-protegidas %%arreglos|array%%, Unraid intentará reescribir el sector afectado usando %%paridad|parity%% y datos de otros discos. Si esta reescritura tiene éxito, la operación se reanuda; si no, el disco se deshabilita y se marca con una 'x' roja en el %%WebGUI|web-gui%%. + +
+ ¿Qué es un error CRC? (explicación técnica) - Clic para expandir/colapsar + + A **%%cyclic redundancy check (CRC)|crc%%** is a mathematical checksum that detects accidental changes to raw data during transmission. In the context of %%UDMA|udma%% (ultra direct memory access), %%CRC errors|crc-errors%% mean the data sent between your drive and controller failed this integrity check. This usually indicates a physical communication issue - such as a loose or faulty cable - rather than a problem with the drive's platters or flash memory. +
+ +--- + +## Posibles causas de errores CRC UDMA + +Los errores de CRC en UDMA indican problemas de transmisión de datos entre tus discos y el sistema. Estos errores pueden causar corrupción de datos, rendimiento lento y fallos de disco si no se controlan. Comprender las causas raíz te ayuda a implementar soluciones dirigidas en lugar de adivinar los problemas. + +

Causas comunes a investigar

+ +- **Conectores SATA sueltos o mal asentados:** Los conectores SATA no son muy robustos y pueden soltarse fácilmente debido a vibraciones o tensión del cable. Evita agrupar los cables con demasiada rigidez, ya que esto puede causar interferencias. +- **Faulty SATA cables:** Damaged or low-quality cables are common sources of %%CRC errors|crc-errors%%. +- **Problemas de suministro de energía:** Energía insuficiente o inestable, a menudo debido a cables divididos o una fuente de alimentación sobrecargada, puede causar errores intermitentes. +- **Controlador de disco no asentado:** Los errores de comunicación pueden ocurrir si la tarjeta controladora no está completamente insertada en su ranura. +- **Fallos de hardware de la unidad:** Aunque raros, una unidad defectuosa también puede producir errores CRC. +- **Problemas de gestión de cables:** + - **Correas de sujeción:** Si utiliza correas de sujeción para la gestión de cables, manténgalas sueltas, no apretadas o excesivamente apretadas. Idealmente, use correas de velcro. + - **Enrutamiento de cables de alimentación y datos:** Evita enrutamiento de cables de alimentación junto a cables de datos SATA. Si deben tocarse o estar muy cerca, deberían cruzarse en ángulo de 90 grados para minimizar interferencias. + - **Doblado de cable SATA:** Nunca dobles forzosamente los cables SATA para hacer giros de 90 grados. Esto puede dañar el cable y causar problemas de comunicación. + +--- + +## Proceso de recuperación + +When you notice %%CRC errors|crc-errors%%, the first step is to carefully check and reseat both the SATA and power cables to your drives. Replace any cables that appear damaged or don’t fit securely. If errors persist, check your power supply and controller connections, and consider swapping cables or ports to isolate the problem. + +Si los errores %%CRC|crc-errors%% continúan después de solucionar el cableado y la alimentación, puede ser necesaria una investigación más a fondo para descartar un controlador o disco defectuoso. + +--- + +## Comprendiendo los Indicadores de Error CRC + +### Errores Ocasionales vs. Frecuentes + +
+ Haga clic para expandir/contraer + + Understanding the frequency and pattern of %%CRC errors|crc-errors%% helps you determine the urgency of your response. Not all errors require immediate action, but patterns can reveal underlying problems that need attention. + +

Occasional errors (low concern)

+ A few %%CRC errors|crc-errors%% over weeks or months are typically not a concern. These isolated incidents may be caused by temporary power fluctuations, cable movement during maintenance, or other transient issues that resolve themselves. + +

Frequent errors (high concern)

+ %%CRC errors|crc-errors%% occurring daily or weekly, or rapidly increasing error counts, indicate a persistent problem that needs immediate investigation. This pattern often points to hardware issues like loose connections, failing cables, or power supply problems that will only worsen over time. + +

Cuándo tomar medidas

+ Investigue de inmediato si los errores son frecuentes o están aumentando. Revise su configuración de cables y energía en busca de problemas intermitentes y supervise las tasas de error para identificar condiciones que empeoran. Considere el mantenimiento preventivo si los errores persisten, ya que estos problemas rara vez se resuelven por sí mismos y pueden conducir a fallas más graves. +
+ +### Conteo de Sectores Pendientes + +
+ Haga clic para expandir/contraer + + The **Current Pending Sector Count** ([%%SMART|smart%% attribute 197](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx)) is a critical indicator that often appears alongside %%CRC errors|crc-errors%%. This combination signals a serious problem that requires immediate attention and careful monitoring. + + Pending sectors indicate unreliable disk areas that may not be readable when accessed. These are sectors that have experienced read errors and are now marked as potentially problematic by the drive's firmware. When pending sectors appear alongside %%CRC errors|crc-errors%%, it suggests that communication problems are causing physical damage to the drive's ability to store and retrieve data reliably. + +

Why this combination is dangerous

+ %%CRC errors|crc-errors%% indicate communication issues between the drive and controller, while pending sectors show that some areas of the disk are becoming unreliable. Together, they create a high-risk situation where your data protection may be compromised. If another drive fails while this one has pending sectors, your ability to recover data could be severely limited, potentially jeopardizing [data recovery](../../troubleshooting/common-issues/data-recovery.mdx) efforts. + + Cuando vea esta combinación, debería: + + - **Inmediatamente** haga una copia de seguridad de cualquier dato crítico que no esté ya protegido. + - Revise la salud de la unidad usando pruebas %%SMART|smart%% extendidas, y considere el reemplazo de la unidad si los sectores pendientes continúan aumentando. + - Monitoree la situación de cerca para detectar señales de advertencia adicionales, y esté preparado para reconstruir su array si la unidad se vuelve poco confiable. +
+ +### Persistencia del Conteo de CRC + +
+ Haga clic para expandir/contraer + + El conteo de errores %%CRC|crc-errors%% en los datos [%%SMART|smart](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx) de su disco nunca se restablece, solo aumenta. + + Esta naturaleza acumulativa significa: + + - El conteo representa los errores totales de vida útil de esa unidad + - Monitoree la tasa de aumento para identificar condiciones que empeoran + - Una vez que ocurre un error, se registra permanentemente + - Use el conteo para programar mantenimiento preventivo antes de que los problemas escalen + + No entre en pánico si observa algunos errores CRC, pero asegúrese de rastrear la tasa de aumento. Un aumento repentino en los errores a menudo indica un nuevo problema que necesita atención inmediata. +
+ +### Icono de Advertencia en el Dashboard + +
+ Haga clic para expandir/contraer + + When Unraid detects a %%CRC error|crc-errors%%, the **Dashboard** displays a warning icon next to the affected drive. This is a %%SMART|smart%% warning that should prompt you to review and address the issue. + +

Por qué esto importa

+ + - Sistema de alerta temprana para posibles problemas de hardware + - Ayuda a prevenir la pérdida de datos al detectar problemas temprano + - Indica cuándo se necesita mantenimiento preventivo + - Parte del sistema de monitoreo proactivo de Unraid + + Haga clic en el icono de advertencia para ver la información detallada %%SMART|smart%% y reconocer la advertencia. +
+ +### Reconocimiento de Advertencias SMART + +
+ Haga clic para expandir/contraer + + Para reconocer y borrar advertencias SMART: + + 1. Haga clic en el **icono de advertencia naranja** junto a la unidad afectada + 2. Seleccione **Reconocer** desde el menú de opciones + 3. Confirme la acción si se lo solicita + 4. El icono cambiará a **verde** para indicar reconocimiento + +

Qué hace el reconocimiento

+ + - Elimina la advertencia de su vista inmediata + - Rastrea que ha visto el problema + - Solamente volverá a alertar si el conteo de errores aumenta aún más + - Mantiene el monitoreo del problema subyacente + + :::important + Acknowledging a warning doesn't fix the underlying issue - it just tells Unraid you're aware of it. You should still investigate and resolve the root cause of the %%CRC errors|crc-errors%%. + ::: +
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx new file mode 100644 index 0000000000..88efe0a327 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx @@ -0,0 +1,420 @@ +--- +sidebar_position: 3 +sidebar_label: FAQ +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Preguntas Frecuentes + +Si necesitas ayuda con Unraid OS, tienes varias opciones de soporte: + +- **Foros de Unraid:** [Soporte General](https://forums.unraid.net/forum/55-general-support/), [Diseño Compulsivo](https://forums.unraid.net/forum/35-unraid-compulsive-design/) +- **Documentación Oficial:** [Docs de Unraid](../../docs-home.mdx) +- **Discord:** [Comunidad de Discord de Unraid](https://discord.unraid.net) +- **Portal de Soporte:** [Soporte de Unraid](https://unraid.net/support) + +--- + +## Índice + +- [**Construcción y Hardware**](#build--hardware) + - [Necesito ayuda con una construcción o configuración del sistema. ¿A dónde voy?](#build-help) + - [¿Qué controladores se recomiendan para Unraid?](#hardware-raid-support) + - [¿Cuál es la mejor manera de añadir más almacenamiento si mi controlador incorporado está lleno?](#add-more-storage) + - [¿Unraid tiene una función de asignación que recuerde sectores defectuosos en las unidades para evitar escrituras en ellos?](#bad-sector-allocation) +- [**OS y Configuración**](#os--configuration) + - [¿Puedo usar una clave HASP dentro de una VM en Unraid? ¿Cómo funciona con múltiples VMs?](#hasp-key-vm) + - [Mi unidad flash USB ha fallado y no tengo una copia de seguridad. ¿Cómo restauro mi configuración?](#usb-failed-restore) + - [¿Qué debo hacer si he olvidado mi contraseña de root?](#forgot-root-password) + - [¿Cómo inicio completamente Unraid OS desde cero? (Procedimiento de restablecimiento de fábrica)](#factory-reset) + - [¿Cómo cambio el nombre de host de mi servidor?](#change-hostname) + - [Mi unidad flash indica un GUID inválido. ¿Qué hago?](#invalid-guid) +- [**Virtualización y Dispositivos**](#virtualization--devices) + - [Siempre que apago mi VM de Windows con un GPU AMD asignado, no se reiniciará. ¿Qué puedo hacer?](#amd-gpu-vm-restart) + - [¿Cómo paso mi GPU principal a una VM si mi CPU no tiene gráficos integrados?](#primary-gpu-passthrough) +- [**Almacenamiento y RAID**](#storage--raid) + - [¿Unraid soporta varios tipos de RAID como RAID1/5/6/10?](#raid-types-support) + - [Actualmente tengo una matriz de dispositivos formateados con una tabla de particiones estilo MBR y quiero convertir a GPT. ¿Cómo hago eso?](#mbr-to-gpt-conversion) +- [**Redes**](#networking) + - [¿Hay alguna forma de deshabilitar el puente br0?](#disable-br0-bridge) + - [No puedo conectarme a la WebGUI usando `http://tower` o `http://tower.local`. ¿Qué hago?](#webgui-connection) +- [**Instalación**](#installation) + - [No puedo conseguir que el creador de flash USB instale Unraid en mi dispositivo flash. ¿Qué hago?](#usb-creator-issue) + - [Necesito configurar mi sistema para arrancar usando UEFI. ¿Cómo hago esto?](#uefi-boot-config) + - [Tengo problemas al usar mi navegador web con la WebGUI. ¿Qué puedo hacer?](#webgui-browser-issues) + - [¿Cómo extiendo mi prueba de Unraid?](#extend-trial) +- [**Licenciamiento**](#licensing) + - Para preguntas relacionadas con el licenciamiento, consulte la [Licensing FAQ](licensing-faq.mdx). + +--- + +## Construcción y Hardware + +

Necesito ayuda con una construcción o configuración del sistema. ¿A dónde voy?

+ +
+ Haga clic para expandir/contraer + + Para obtener orientación sobre cómo construir o actualizar tu servidor Unraid, visita el [foro de Compulsive Design](https://forums.unraid.net/forum/35-unraid-compulsive-design/) o únete al [Discord de Unraid](https://discord.unraid.net). La comunidad está activa y lista para asistirte, sin importar tu nivel de experiencia. +
+ +
+ +

¿Qué controladores se recomiendan para Unraid?

+ +
+ Haga clic para expandir/contraer + + Unraid funciona mejor con Adaptadores de Bus de Host (HBA) sin %%RAID|raid%%. Es mejor evitar los controladores de hardware %%RAID|raid%%, que pueden ocultar información sobre el estado del disco y complicar el mantenimiento. + + Siempre verifica las actualizaciones de firmware y asegúrate de que el controlador esté configurado en modo HBA/IT, no en modo %%RAID|raid%%. Puedes referirte al [hilo de Controladores Recomendados](https://forums.unraid.net/topic/102010-recommended-controllers-for-unraid/) para modelos que la comunidad ha probado con éxito. +
+ +
+ +

¿Cuál es la mejor manera de añadir más almacenamiento si mi controlador incorporado está lleno?

+ +
+ Haga clic para expandir/contraer + + Unraid allows for the expansion of storage across multiple controllers. You can add a compatible HBA (as mentioned above). Ensure the controller operates in standard HBA (non-%%RAID|raid%%) mode and supports %%AHCI|ahci%%/SATA. Avoid using %%RAID|raid%%-only cards, as Unraid requires direct disk access for %%parity|parity%% and monitoring. +
+ +
+ +

¿Unraid tiene una función de asignación que recuerde sectores defectuosos en las unidades para evitar escrituras en ellos?

+ +
+ Haga clic para expandir/contraer + + Unraid utiliza datos %%SMART|smart%% de tus discos para monitorear su salud y detectar problemas como sectores defectuosos. %%SMART|smart%% está integrado en los discos duros y SSD modernos, rastreando atributos como sectores reasignados y pendientes. + + Aunque Unraid no tiene una característica específica de asignación para evitar sectores defectuosos, sí utiliza datos %%SMART|smart%% para notificárte si un disco muestra signos de falla o tiene un número creciente de sectores defectuosos. Esta información se puede encontrar en el %%WebGUI|web-gui%% bajo el estado de salud del disco y los atributos %%SMART|smart%%. + + Si una unidad muestra un alto conteo de sectores reasignados o pendientes, considera reemplazarla pronto para prevenir la pérdida de datos. + + Si no estás seguro sobre la salud de una unidad, puedes compartir tus datos %%SMART|smart%% en el [foro de Soporte General](https://forums.unraid.net/forum/55-general-support/) para obtener ayuda de la comunidad. +
+ +
+ +--- + +## OS y Configuración + +

¿Puedo usar una clave HASP dentro de una VM en Unraid? ¿Cómo funciona con múltiples VMs?

+ +
+ Haga clic para expandir/contraer + + If your HASP key is a USB dongle, you can assign it to only one %%VM|vm%% at a time. Note that two %%VM|vm%%s cannot use the same key simultaneously. You might need to pass through an entire USB controller for better compatibility. Always run tests with a Trial license to confirm that your hardware performs as expected. +
+ +
+ +

Mi unidad flash USB ha fallado y no tengo una copia de seguridad. ¿Cómo restauro mi configuración?

+ +
+ Haga clic para expandir/contraer + + Si tenías activado [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) para las copias de seguridad de Flash, puedes usarlo para restaurar. Si no, consigue una unidad flash nueva de alta calidad, instala Unraid en ella y usa la clave de registro que recibiste por correo electrónico. Reasigna tus discos como estaban. Si no puedes recordar las asignaciones, publica una solicitud de ayuda en el [foro de Soporte General](https://forums.unraid.net/forum/55-general-support/). +
+ +
+ +

¿Qué debo hacer si he olvidado mi contraseña de root?

+ +
+ Haga clic para expandir/contraer + + Consulta [Restablecer tu contraseña](../system-administration/secure-your-server/user-management.mdx#reset-your-password). + + :::note + Si usas discos cifrados y olvidas la contraseña de cifrado, la recuperación de datos no será posible, no hay una puerta trasera. + ::: +
+ +
+ +

¿Cómo inicio Unraid OS completamente desde cero? (Procedimiento de restablecimiento de fábrica)

+ +
+ Haga clic para expandir/contraer + + 1. Haz una copia de respaldo de cualquier dato que desees conservar. + 2. Detén el %%array|array%% y apaga tu servidor. + 3. Remueve el dispositivo USB flash. + 4. Usa la herramienta Creador de USB Flash de Unraid para reformatear y reinstalar Unraid en la memoria USB. + 5. Reinserta el dispositivo flash e inicia tu servidor. + 6. En el %%WebGUI|web-gui%%, abre un terminal y ejecuta `lsblk` para listar todas las unidades (excluyendo el flash). + 7. Borra los sistemas de archivos existentes de cada unidad de datos: + + :::danger[Crítico: Operación Destructiva] + **¡Este paso borrará permanentemente TODOS los datos en el(los) disco(s) especificado(s) y es IRREVERSIBLE!** + + - **Verifica que tengas copias de seguridad** de cualquier dato que necesites antes de continuar + + - **Verifica dos veces el identificador del dispositivo** en el WebGUI o con `lsblk` antes de ejecutar este comando + + - **Asegúrate de que estás apuntando al disco correcto** - la pérdida de datos del disco incorrecto no se puede recuperar + + Para cada unidad de datos, ejecuta: + + ``` + wipefs /dev/sdX + ``` + + Reemplace `X` con la letra de unidad correcta (por ejemplo, sda, sdb, sdc) + ::: + + 8. Continúa con la configuración e instalación habitual de Unraid. +
+ +
+ +

¿Cómo cambio el nombre de host de mi servidor?

+ +
+ Haga clic para expandir/contraer + + Para cambiar el nombre de host de tu servidor Unraid, navega por el %%WebGUI|web-gui%% a ***Configuraciones → Configuraciones del Sistema → Identificación***. + + **Efectos de cambiar tu nombre de host:** + + - El nuevo nombre de host será usado para la identificación en la red (por ejemplo, acceso vía `http://nuevonombre`). + - Es posible que necesites reconectar cualquier unidad de red mapeada o atajos utilizando el nuevo nombre de host. + - Algunos dispositivos o servicios pueden almacenar en caché el antiguo nombre; un reinicio completo del dispositivo puede ser necesario para reconocer el nuevo nombre. +
+ +
+ +

Mi unidad flash indica un GUID inválido. ¿Qué hago?

+ +
+ Haga clic para expandir/contraer + + Unraid requiere un dispositivo flash USB con un %%GUID|guid%% de hardware único (número de serie). Algunos fabricantes pueden reutilizar %%GUID|guid%%s o usar valores genéricos, lo que hace que estas unidades sean incompatibles entre sí. + + **Marcas probadas en el campo:** + + - Samsung FIT Plus / Bar Plus + - Kingston DataTraveler Exodia + - Lexar JumpDrive M45 + - PNY Elite-X + (Evita los modelos más nuevos de SanDisk Ultra Fit/Cruzer a menos que puedas confirmar un %%GUID|guid%% único.) + + Es mejor evitar unidades genéricas o sin marca, SSDs, lectores de tarjetas USB, y adaptadores de tarjetas SD, ya que a menudo carecen de %%GUID|guid%%s únicos y pueden no ser compatibles para arrancar Unraid. +
+ +
+ +--- + +## Virtualización y Dispositivos + +

Siempre que apago mi VM de Windows con un GPU AMD asignado, no se reiniciará. ¿Qué puedo hacer?

+ +
+ Haga clic para expandir/contraer + + Muchas GPUs de AMD experimentan problemas con los reinicios a nivel de función, lo que contribuye a este problema. Las soluciones incluyen expulsar la GPU desde Windows antes de apagarse o usar una GPU NVIDIA, que generalmente evita este problema. +
+ +
+ +

¿Cómo paso mi GPU principal a una VM si mi CPU no tiene gráficos integrados?

+ +
+ Haz clic para expandir/colapsar + + Esto es factible pero requiere pasos adicionales. Consulta la [guía en video de SpaceInvaderOne](https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/) para instrucciones detalladas sobre cómo hacer esto correctamente. +
+ +
+ +--- + +## Almacenamiento y RAID + +

¿Unraid soporta varios tipos de RAID como RAID1/5/6/10?

+ +
+ Haga clic para expandir/contraer + + Unraid presenta una arquitectura de almacenamiento única que lo distingue de los sistemas tradicionales %%RAID|raid%%. Aquí hay una comparación de diferentes opciones de almacenamiento: + + | Característica / Capacidad | Unraid %%parity\|paridad%% %%array\|array%% (md) | %%BTRFS\|btrfs%% grupo (%%cache\|caché%%) | **%%ZFS\|zfs%% grupo (7.x+)** | Tradicional %%RAID 1\|raid1%%/%%RAID 5\|raid5%%/%%RAID 6\|raid6%%/%%RAID 10\|raid10%% | + | -------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------ | + | Modelo de %%paridad\|paridad%% / redundancia | Disco(s) de %%paridad\|paridad%% dedicados | Software %%RAID 1\|raid1%%/%%RAID 10\|raid10%%/%%RAID 5\|raid5%%/%%RAID 6\|raid6%% vía %%BTRFS\|btrfs%% | %%RAID 1\|raid1%%-Z1/Z2/Z3 o espejos | Rayado %%paridad\|parity%% (%%RAID 5\|raid5%%/%%RAID 6\|raid6%%) o espejos (%%RAID 10\|raid10%%) | + | Intercalado de datos | No | Sí (excepto %%RAID 1\|raid1%%) | Sí | Sí | + | Flexibilidad del tamaño de disco | Mezcla cualquier tamaño | Mejor cuando los tamaños son similares | Mejor cuando son similares por vdev | Requiere tamaños iguales | + | Expande un disco a la vez | Sí | Sí (añadir o reemplazar dispositivos) | Sí (por vdev\*) | Típicamente no | + | Sistema de archivos por disco | Sí | No | No | No | + | Velocidad de lectura de un solo disco | Velocidad nativa del disco | Agregado (multi-disco) | Agregado (multi-disco) | Agregado | + | Degradación de escritura durante la reconstrucción | Mínima (solo unidad fallida) | Depende del nivel | Depende de la disposición de vdev | Significativa | + | Detección de %%Bit rot\|bit-rot%% | Opcional (%%BTRFS\|btrfs%%/%%ZFS\|zfs%% %%checksum\|suma de verificación%%) | ✅ Incorporado | ✅ Fin a fin %%checksum\|suma de verificación%%s | ❌ No inherente | + | %%Snapshot\|snapshot%% / send-receive | ❌ | ✅ (%%BTRFS\|btrfs%%) | ✅ Nativo | ❌ | + | Uso recomendado en producción | Almacenamiento general de medios | %%RAID 1\|raid1%%/%%RAID 10\|raid10%% (evitar %%RAID 5\|raid5%%/%%RAID 6\|raid6%%)\*\* | ✅ Todos los niveles estables | Enterprise %%array\|array%%s | + + \* Los vdevs de %%ZFS|zfs%% deben expandirse reemplazando **todos** los discos en el vdev o agregando un nuevo vdev.\ + \* %%BTRFS|btrfs%% %%RAID 5|raid5%%/%%RAID 6|raid6%% sigue marcado como "experimental" en upstream; úselo con precaución. + + - **Unraid %%parity|paridad%% %%array|arreglo%%** es excelente para la expansión incremental, permitiendo tamaños de unidades desiguales con un estrés mínimo durante la reconstrucción. + - **Pools de %%ZFS|zfs%%** (disponibles en 7.x) proporcionan redundancia de nivel empresarial, %%snapshot|snapshot%%s y %%checksum|checksum%%s, haciéndolos ideal para %%VM|vm%%s y bases de datos. + - **Pools de %%BTRFS|btrfs%%** sobresalen para %%caché|cache%%s SSD rápidos, especialmente en modo %%RAID 1|raid1%%/%%RAID 10|raid10%% escalado. + - Las tarjetas de %%RAID|raid%% de hardware tradicionales *no* son necesarias; se pueden usar simples HBAs para permitir que Unraid gestione las unidades directamente. +
+ +
+ +

Actualmente tengo un arreglo de dispositivos formateados con una tabla de particiones estilo MBR y quiero convertir a GPT. ¿Cómo hago eso?

+ +
+ Haga clic para expandir/contraer + +

¿Por qué convertir de MBR a GPT?

+ La partición MBR (Master Boot Record) admite discos de hasta 2TB y sólo permite un máximo de cuatro particiones primarias. Por otro lado, GPT (Tabla de Particiones de %%GUID|guid%%) puede manejar discos mucho más grandes y casi ilimitadas particiones. Convertir a GPT es recomendable si trabajas con discos más grandes o deseas una mejor gestión de particiones. + + :::important[Usar **Modo de Mantenimiento**] + Antes de iniciar el proceso de conversión, pon tu %%array|array%% en **Modo de Mantenimiento**. Este paso asegura que no ocurran escrituras durante la conversión, protegiendo tus datos. + ::: + +

Proceso de conversión

+ + 1. Asegúrese de tener un %%parity|paridad%% válido y una copia de seguridad actual de su unidad flash. + 2. Ingrese a **Modo de Mantenimiento** desde la pestaña ***Principal***. + 3. Reemplace y reconstruya su unidad de %%parity|paridad%% primero. + 4. Reemplace cada unidad de datos una a la vez, reconstruyendo el %%array|arreglo%% después de cada sustitución. + 5. La nueva unidad se formateará con el estilo de particionamiento adecuado según su tamaño: + - **2TB o menos**: Usa particionamiento MBR + - **Mayor a 2TB**: Usa particionamiento GPT + 6. Una vez que todas las unidades hayan sido reemplazadas y reconstruidas, salga del **Modo de Mantenimiento**. + + Este proceso mantiene su información segura mientras cambia el estilo de particionamiento. + + :::note[Notas adicionales] + - **El particionamiento es automático**: Unraid elige automáticamente el estilo de particionamiento basado en el tamaño de la unidad: + - **2TB o menos**: Siempre usa particionamiento MBR + - **Mayor a 2TB**: Siempre usa particionamiento GPT + - A partir del Unraid OS 6.9, la partición 1 comienza a 32KiB para dispositivos rotacionales y 1MiB para dispositivos no rotacionales, independientemente del estilo de partición. + - Siempre [haz una copia de seguridad de tu unidad flash](../system-administration/secure-your-server/secure-your-flash-drive.mdx#backups) antes de empezar este proceso de conversión. + ::: +
+ +
+ +--- + +## Red + +

¿Hay alguna manera de desactivar el puente br0?

+ +
+ Haga clic para expandir/contraer + + Sí. El puente **br0** es un puente de red de Linux que permite que los contenedores Docker y las %%VM|vm%%s se conecten directamente a tu red de área local (LAN) con sus direcciones IP. Actúa como un interruptor de red virtual que conecta tu interfaz de red física a las interfaces virtuales utilizadas por los contenedores y las %%VM|vm%%s. + + :::note + Deshabilitar br0 significa que las %%VMs|vm%% y los contenedores Docker no tendrán acceso directo a la LAN y pueden perder algunas funciones avanzadas de red. + ::: +
+ +
+ +

No puedo conectarme a la WebGUI usando `http://tower` o `http://tower.local`. ¿Qué hago?

+ +
+ Haga clic para expandir/contraer + + Si estás teniendo problemas para conectarte a la %%WebGUI|web-gui%% por nombre de host, el problema podría estar en que tu DNS local no resuelva el nombre del servidor. En su lugar, intenta conectarte directamente usando la dirección IP. + + **Cómo encontrar la dirección IP de su servidor:** + + - Verifique la lista de clientes DHCP en su enrutador o conmutador para un dispositivo que aparezca como "Tower" o algo similar. + - Si asignó una IP estática durante la creación del flash, utilice esa dirección. + - Conecte un monitor y un teclado a su servidor; la dirección IP aparece en la consola local después de que se inicia. + + **Causas comunes para este problema:** + + - Su computadora y servidor pueden estar en subredes o VLANs distintas. + - Su enrutador puede no soportar la resolución de nombres de host locales. + - Es posible que el servidor Unraid no esté conectado a la red o tenga una configuración de red incorrecta. + - El firewall o el software de seguridad pueden estar bloqueando el acceso. + + Si no puede conectarse, intente reiniciar su servidor y equipo de red, y asegúrese de que todos los cables estén conectados de forma segura. +
+ +
+ +--- + +## Instalación + +

No puedo hacer que el creador de flash USB instale Unraid en mi dispositivo flash. ¿Qué hago?

+ +
+ Haga clic para expandir/contraer + + Si la herramienta creadora de flash USB no está funcionando para tu sistema o unidad flash, puedes utilizar el [método de instalación manual](../getting-started/set-up-unraid/create-your-bootable-media.mdx#manual-install-method) para preparar tu dispositivo de arranque Unraid. Este método es compatible con Windows, macOS y Debian/Ubuntu Linux. +
+ +
+ +

Necesito configurar mi sistema para arrancar usando UEFI. ¿Cómo hago esto?

+ +
+ Haga clic para expandir/contraer + + Puede configurar el modo de arranque %%UEFI|uefi%% de varias maneras: + + **Opción 1: Durante la creación del flash** + + - Al utilizar el creador de USB flash, seleccione la opción para habilitar el modo de arranque %%UEFI|uefi%% antes de escribir Unraid en la unidad flash. + + **Opción 2: Después de iniciar en modo Legacy** + + - En el %%WebGUI|web-gui%%, diríjase a la página ***Configuraciones → Dispositivo de Flash***. + - Habilite el modo de arranque %%UEFI|uefi%% y reinicie su servidor. + + **Opción 3: Renombrar manualmente la carpeta** + + - En la unidad flash, renombre la carpeta `EFI-` a `EFI` (elimine el guion `-`). + - Inserte la unidad flash en su servidor, luego ingrese en la configuración de su BIOS/%%UEFI|uefi%% de la placa base. + - Configure la flash USB como el dispositivo de arranque primario y habilite el modo de arranque %%UEFI|uefi%% (asegúrese de deshabilitar el modo CSM/Legacy/Compatibility, si está disponible). +
+ +
+ +

Tengo problemas al usar mi navegador web con la WebGUI. ¿Qué puedo hacer?

+ +
+ Haga clic para expandir/contraer + + Si encuentra problemas de visualización o funcionalidad con la %%WebGUI|web-gui%%, considere lo siguiente: + + - **Bloqueadores de anuncios y contenido:** Estas extensiones de navegador pueden interferir con la %%WebGUI|web-gui%%. Intente agregar su servidor Unraid a la lista blanca de su bloqueador de anuncios o desactivar el bloqueador para la dirección de su servidor. + - **Extensiones del navegador:** Algunas extensiones podrían bloquear scripts o alterar el contenido de la página. Desactive las extensiones o intente utilizar una ventana privada/incógnito. + - **Outdated browsers:** Ensure you use a modern, up-to-date browser (like Chrome, Firefox, or Edge). Older browsers may not fully support the %%WebGUI|web-gui%%. + - **Problemas de caché:** Limpie la caché de su navegador o intente un refresco completo (Ctrl+F5 o Cmd+Shift+R). + - **Problemas de red:** Asegúrese de que su computadora y servidor estén conectados a la misma red y subred. + + Si los problemas persisten, intente acceder al WebGUI desde otro navegador o dispositivo. +
+ +
+ +

¿Cómo extiendo mi prueba de Unraid?

+ +
+ Haga clic para expandir/contraer + + Si necesitas más tiempo con tu [prueba gratuita de 30 días](https://unraid.net/download) de Unraid, puedes extenderla. Una vez que tu prueba original expire, detén el %%array|array%% y ve a la página de **Registro**. Deberías ver un botón que te permite solicitar una extensión de 15 días. Puedes hacer esto dos veces para un total de 60 días antes de necesitar comprar una licencia. + + :::important + Debes usar el mismo dispositivo flash USB para continuar tu prueba. Cambiar el dispositivo flash requerirá comenzar una nueva prueba desde cero. + ::: +
+ +
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx new file mode 100644 index 0000000000..ed08efc29a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx @@ -0,0 +1,303 @@ +--- +sidebar_position: 4 +sidebar_label: Preguntas Frecuentes sobre Licencias +--- + +import Details from '@theme/Details'; +import ManualKeyfileTabs from '@site/src/components/ManualKeyfileTabs'; + +# Preguntas Frecuentes sobre Licencias + +Esta página contiene preguntas frecuentes sobre la concesión de licencias de Unraid OS. Para preguntas generales sobre solucion de problemas, consulte las [preguntas frecuentes principales](faq.mdx). + +--- + +## Índice + +- [**Propiedad de la Licencia**](#license-ownership) + - [¿Soy dueño de mi licencia de software?](#own-license) +- [**Adquisición**](#purchasing) + - [¿Cómo compro Unraid?](#purchase-unraid) + - [¿Cómo canjeo un código de activación de licencia?](#redeem-activation-code) + - [Soy un revendedor/OEM que necesita comprar una licencia en nombre de mi cliente. ¿Qué debo hacer?](#oem-purchase) +- [**Gestión de Licencias**](#license-management) + - [¿Cómo actualizo mi licencia de Unraid?](#upgrade-license) + - [¿Cómo instalo manualmente el archivo de clave de licencia en mi dispositivo USB?](#manual-keyfile-install) + - [¿Cómo puedo determinar mi tipo de registro?](#registration-type) +- [**Tipos y Características de las Licencias**](#license-types--features) + - [¿Es Unraid OS una suscripción?](#subscription) + - [¿Qué sucede si no extiendo mi licencia Starter o Unleashed?](#no-extension) + - [¿Qué sucede con las versiones preliminares (Betas/RC)?](#pre-release-policy) + - [¿Qué significa "ilimitado" para los dispositivos de almacenamiento conectados?](#unlimited-storage) +- [**Solución de Problemas**](#troubleshooting) + - [¿Qué sucede si mi dispositivo USB falla? ¿Tengo que volver a comprar una licencia?](#usb-failure-license) + - [¿Qué debo hacer si recibo un error al registrar mi dispositivo flash: '####-####-####-#############' ya está registrado a otro usuario?](#guid-error) +- [**Licencias de Prueba**](#trial-licenses) + - [¿Cómo funcionan las pruebas de Unraid?](#trial-license) + - [¿Puedo transferir mi clave de prueba a un nuevo dispositivo flash?](#trial-key-transfer) + +--- + +## Propiedad de la Licencia + +

¿Poseo mi licencia de software?

+ +
+ Haz clic para expandir/colapsar + + Cuando [compras una licencia de Unraid OS](https://unraid.net/pricing), posees una copia perpetua del software. Tu licencia es válida para siempre y no caduca, incluso si decides no pagar por futuras actualizaciones. +
+ +
+ +--- + +## Adquisición + +

¿Cómo compro Unraid?

+ +
+ Haz clic para expandir/colapsar + + Tiene dos opciones para comprar Unraid: + + 1. **Desde el %%WebGUI|web-gui%%:** Si ha iniciado una prueba, puede comprar una licencia o actualizar directamente desde el menú superior derecho en el %%WebGUI|web-gui%%. + 2. **Con un código de activación:** compra un código de activación de licencia de Unraid en el [sitio web de Unraid](https://unraid.net/pricing). Los códigos de activación no caducan y se pueden canjear en cualquier momento. + + Todas las licencias son por servidor. Utiliza la prueba gratuita de 30 días para asegurarte de que Unraid satisface tus necesidades antes de comprar, ya que todas las ventas son finales. +
+ +
+ +

¿Cómo canjeo un código de activación de licencia?

+ +
+ Haz clic para expandir/colapsar + + 1. Compra un código de activación en el [sitio web de Unraid](https://unraid.net/pricing). Tu código estará en tu recibo de compra. + 2. Configure su servidor de Unraid utilizando la [Guía de inicio](../getting-started/set-up-unraid/create-your-bootable-media.mdx). + 3. Inicie sesión en el %%WebGUI|web-gui%% de su servidor Unraid (`http://tower` o `http://tower.local` por defecto). + 4. Inicie sesión en su cuenta de Unraid.net. + 5. Seleccione **Canjear código de activación** e ingrese su código. + 6. Su clave de registro le será enviada por correo electrónico junto con las instrucciones de instalación. + + :::importante + Los códigos de activación son de un solo uso para generar tu archivo de clave de licencia de Unraid. + ::: + + :::nota[Video Instructivo] + Mira el [Video Instructivo del Código de Activación](https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2) para obtener orientación paso a paso. + ::: +
+ +
+ +

Soy un revendedor/OEM que necesita comprar una licencia en nombre de mi cliente. ¿Qué debo hacer?

+ +
+ Haz clic para expandir/colapsar + + Puede comprar una licencia a través del %%WebGUI|web-gui%% o obteniendo un código de activación en el [sitio web de Unraid](https://unraid.net/pricing). + + Al finalizar la compra, selecciona la opción "OEM" e ingresa los detalles de tu compra, incluyendo el nombre y dirección de correo electrónico de tu cliente. La clave de licencia se emitirá a nombre de tu cliente y se enviará directamente a ellos. También encontrarás un enlace de descarga de la factura después de la compra. + + Para precios al por mayor para OEM/revendedores (10 licencias o más), [contáctese con Unraid](https://unraid.net/contact) para precios especiales. +
+ +
+ +--- + +## Gestión de Licencias + +

¿Cómo actualizo mi licencia de Unraid?

+ +
+ Haz clic para expandir/colapsar + + Puede actualizar su licencia en cualquier momento desde dentro del %%WebGUI|web-gui%% (***Herramientas → Registro***) o [a través del portal de cuenta](https://account.unraid.net/keys) (haciendo clic en **••• Más** y seleccionando **Actualizar Clave**). + + | Ruta de Actualización | Tarifa de Actualización Única | Nuevo Límite de Dispositivos¹ | + | --------------------- | ----------------------------- | ----------------------------- | + | Starter → Unleashed | $69 USD | Ilimitado² | + | Starter → Lifetime | $209 USD | Ilimitado² | + | Unleashed → Lifetime | $149 USD | Ilimitado² | + | Básico → Unleashed | $49 USD | Ilimitado² | + | Plus → Unleashed | $19 USD | Ilimitado² | + | Básico → Plus | $89 USD | Hasta 12 dispositivos¹ | + | Básico → Pro | $139 USD | Hasta 30 dispositivos¹ | + | Plus → Pro | $109 USD | Hasta 30 dispositivos¹ | + + **Tarifa de extensión anual** (solo para Starter y Unleashed): $36 USD + + 1 Los dispositivos de almacenamiento adjuntos se refieren al número total de unidades que puedes conectar antes de iniciar el %%arra |array%% (no incluye el dispositivo de arranque USB).\ + 2 "Ilimitado" significa que no estás limitado por la licencia, sino por el hardware y las limitaciones del sistema operativo. Se pueden usar dispositivos de almacenamiento adicionales para %%VMs|vm%%, dispositivos no asignados u otras funciones de Unraid.\* +
+ +
+ +

¿Cómo instalo manualmente mi archivo de clave de licencia en mi dispositivo USB?

+ +
+ +
+ +
+ +

¿Cómo puedo determinar mi tipo de registro?

+ +
+ Haz clic para expandir/colapsar + + Navega a ***Herramientas → Registro*** en el %%WebGUI|web-gui%%. Aquí puedes encontrar tu tipo de licencia actual y detalles de registro. +
+ +
+ +--- + +## Tipos y Características de las Licencias + +

¿Unraid OS es una suscripción?

+ +
+ Haz clic para expandir/colapsar + + No. Unraid OS es una **licencia perpetua**: + + - **Starter** y **Unleashed** incluyen un año de actualizaciones, después de lo cual puede pagar una tarifa de extensión anual de $36 USD (opcional). + - **Lifetime** incluye actualizaciones durante la vida útil del producto. + - Si decide no pagar la tarifa de extensión, conservará su versión existente indefinidamente; simplemente no recibirá nuevas actualizaciones importantes. + + Continúa siendo dueño de su licencia incluso si deja de pagar por las actualizaciones. +
+ +
+ +

¿Qué sucede si no extiendo mi licencia Starter o Unleashed?

+ +
+ Haz clic para expandir/colapsar + + - Conserva su licencia y puede usar su versión actual de Unraid OS indefinidamente. + - No recibirá nuevas actualizaciones de funciones ni actualizaciones de versiones mayores. + - Seguirá siendo elegible para lanzamientos de parches y actualizaciones de seguridad dentro de la misma versión menor (por ejemplo, 7.1.x si su licencia caducó en 7.1.0). + - Una vez que se lance una nueva versión menor (por ejemplo, 7.2.0), solo se proporcionarán parches de seguridad para la versión menor anterior. + - Cuando una versión alcance el final de su vida útil (EOL, por sus siglas en inglés), no se proporcionarán más actualizaciones. + - Puede pagar la tarifa de extensión en cualquier momento para recuperar el acceso a las últimas actualizaciones. +
+ +
+ +

¿Qué sucede con las versiones preliminares (Versiones beta/RC)?

+ +
+ Haz clic para expandir/colapsar + + - Las versiones preliminares (Beta y Candidato de Liberación) son para pruebas y pueden contener errores. + - Instale solo las versiones preliminares en sistemas no de producción. + - El soporte para las versiones preliminares finaliza cuando se libera la versión estable. + - Su licencia debe ser elegible para actualizaciones del sistema operativo en la fecha de lanzamiento estable para recibir la versión estable. + - Si su licencia expira antes del lanzamiento estable, debe extender su licencia para actualizar o revertir a una versión estable compatible. + - Su licencia sigue siendo válida después de su vencimiento; solo necesita una licencia activa para nuevas actualizaciones. +
+ +
+ +

¿Qué significa "ilimitado" para los dispositivos de almacenamiento conectado?

+ +
+ Haz clic para expandir/colapsar + + "Ilimitado" se refiere al número máximo de dispositivos de almacenamiento que puedes conectar a tu servidor Unraid, según tu nivel de licencia. + + Aquí están los límites actuales: + + | Nivel de Licencia | %%Parity\|parity%%-Protected %%Array\|array%% | Pools Nombrados | Dispositivos por Pool | Dispositivos de Almacenamiento Totales | + | ----------------- | --------------------------------------------- | --------------- | --------------------- | -------------------------------------- | + | Inicial | Hasta 6 | 1 | Hasta 6 | 6 | + | Desatado | Hasta 30 (28 datos + 2 %%paridad\|parity%%) | Hasta 35 | Hasta 60 | Ilimitado\* | + | De por Vida | Hasta 30 (28 datos + 2 %%paridad\|parity%%) | Hasta 35 | Hasta 60 | Ilimitado\* | + + \* *"Unlimited" means you are not limited by the license, but by hardware and OS constraints. Additional storage devices can be used for virtual machines, unassigned devices, or other Unraid features.* +
+ +
+ +--- + +## Solución de problemas + +

¿Qué sucede si mi dispositivo USB falla? ¿Tengo que volver a comprar una licencia?

+ +
+ Haz clic para expandir/colapsar + + No, no necesitas volver a comprar tu licencia si falla tu dispositivo USB. + + Para transferir tu licencia: + + 1. Prepara un nuevo [dispositivo USB](../getting-started/set-up-unraid/create-your-bootable-media.mdx) de alta calidad. + 2. Instala Unraid OS en el nuevo dispositivo usando el USB Flash Creator o un método manual. + 3. Inicia tu servidor con el nuevo dispositivo USB. + 4. Ve a ***Herramientas → Registro*** en el %%WebGUI|interfaz-web%%. + 5. Haz clic en **Reemplazar Clave** y sigue las indicaciones para transferir tu licencia al nuevo dispositivo. + + La primera transferencia puede realizarse en cualquier momento, mientras que las transferencias subsecuentes se permiten una vez cada 12 meses utilizando el sistema automatizado. Si necesitas transferir tu licencia nuevamente antes del período de 12 meses, contacta al soporte de Unraid con tus %%GUID|guid%%s USB antiguo y nuevo para recibir asistencia manual. + + :::consejo + Respaldar rutinariamente tu dispositivo USB usando [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) simplificará la recuperación y evitará la pérdida de datos. + ::: +
+ +
+ +

¿Qué debo hacer si recibo un error al registrar mi dispositivo flash: '####-####-####-#############' ya está registrado a otro usuario?

+ +
+ Haz clic para expandir/colapsar + + Este error indica que su dispositivo USB no tiene un ID de hardware único (%%GUID|guid%%), lo que impide que sea registrado con el sistema operativo Unraid. Para resolver este problema, use una unidad flash USB diferente. Las marcas conocidas por tener %%GUID|guid%%s únicos incluyen Lexar, Samsung, Kingston y PNY. +
+ +
+ +--- + +## Licencias de Prueba + +

¿Cómo funcionan las pruebas de Unraid?

+ +
+ Haz clic para expandir/colapsar + + - Las licencias de prueba duran 30 días y proporcionan toda la funcionalidad de Unraid sin un límite de dispositivos de almacenamiento. + - Necesitarás un dispositivo USB de calidad y la herramienta Unraid USB Creator. + - Consulta la [Guía de Inicio](../getting-started/set-up-unraid/create-your-bootable-media.mdx) para las instrucciones de configuración del servidor. + - Las licencias de prueba requieren una conexión a Internet al iniciar para la validación inicial. + - Puede extender su prueba por 15 días más si necesita más tiempo para evaluar Unraid. Puede hacer esto dos veces para un total de 60 días (detalles a continuación). +
+ +
+ +

¿Cómo extiendo mi prueba?

+ +
+ Haz clic para expandir/colapsar + + -Las claves de registro de prueba de Unraid duran 30 días y pueden extenderse dos veces por 14 días adicionales cada vez. Después de dos extensiones de prueba, no se pueden otorgar extensiones adicionales. Para solicitar una extensión, debes detener el array, navegar a la página Herramientas > Registro, y hacer clic en "Solicitar Extensión". + + -Si las dos extensiones adicionales no se usaron, y esta opción no aparece para ti, o si no está funcionando por alguna razón, por favor envíanos el GUID de la unidad flash desde Herramientas - Registro a [contact@unraid.net](mailto:contact@unraid.net), o a través de nuestro portal de soporte en support.unraid.net y estaremos encantados de asistirte. +
+ +
+ +

¿Puedo transferir mi clave de prueba a un nuevo dispositivo flash?

+ +
+ Haz clic para expandir/colapsar + + No, los registros de prueba solo son válidos en el dispositivo original de flash USB. Si deseas comprar una licencia, puedes transferir tu configuración a un nuevo dispositivo flash y luego comprar una clave de registro; sin embargo, la prueba no puede continuar en un nuevo dispositivo. +
+ +
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx new file mode 100644 index 0000000000..b6ebc426c4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx @@ -0,0 +1,3 @@ +1. Si su servidor está funcionando y el recurso compartido flash es visible en su red, navegue al recurso compartido bajo **Red**. +2. Arrastre y suelte el archivo de clave de registro en el directorio `config`. +3. En el %%WebGUI|web-gui%%, **Detener** el %%array|array%%, luego **Iniciar** el %%array|array%% de nuevo para aplicar la nueva clave. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx new file mode 100644 index 0000000000..ed9759a3fe --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx @@ -0,0 +1,6 @@ +1. Asegúrate de tener una copia de seguridad reciente de tu unidad USB. Usa [Unraid Connect](../../../../unraid-connect/overview-and-setup.mdx) (recomendado) o la opción de copia de seguridad local en ***Principal → Flash → Copia de Seguridad de Flash***. +2. Apague su servidor de Unraid y retire el dispositivo USB. +3. Inserte el USB en otro ordenador. +4. Abre la unidad USB y copia tu archivo `.key` en la carpeta `/config`. + *Asegúrate de que este sea el único archivo `.key` presente—borra cualquier otro.* +5. Eyecte de manera segura el dispositivo USB, vuelva a instalarlo en su servidor y reinicie. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx new file mode 100644 index 0000000000..73d9ffeec4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx @@ -0,0 +1,17 @@ +# Solución de problemas + +Los sistemas Unraid están diseñados para ser fiables, pero ocasionalmente pueden surgir problemas. Esta sección le guiará a través de la resolución de problemas comunes y le proporcionará las mejores prácticas para un troubleshooting efectivo. + +:::info[Built-in ayuda] +El WebGUI ofrece ayuda detallada y sensible al contexto para casi todas las configuraciones. Haz clic en cualquier nombre de campo o utiliza el ícono ![Ayuda](/img/Help-icon.jpg) en la esquina superior derecha para acceder a la ayuda de toda la página. +::: + +:::tip[Stay informado] +Activa las notificaciones en ***Ajustes → Preferencias de Usuario → Configuración de Notificaciones*** para recibir alertas sobre la salud de tu sistema. Los problemas no resueltos pueden empeorar si no se atienden. +::: + +Para soporte adicional, los foros de la comunidad de Unraid son un recurso fantástico. Cuando busques ayuda, recuerda: + +- **Capture diagnóstico antes de reiniciar.** + Vaya a ***Herramientas → Diagnósticos*** para generar un archivo de diagnóstico que preserve los registros y detalles del sistema necesarios para la resolución de problemas. +- **Comparta el archivo de diagnóstico** en una [publicación en los foros de Unraid](http://forums.unraid.net/) para ayudar a otros a ayudarle de manera efectiva. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json new file mode 100644 index 0000000000..0a556257db --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Usando Unraid para", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json new file mode 100644 index 0000000000..36328752e6 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Crear máquinas virtuales", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx new file mode 100644 index 0000000000..9242d4f445 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx @@ -0,0 +1,212 @@ +--- +sidebar_position: 1 +sidebar_label: Visión general y preparación del sistema +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import HvmSupport from './partials/hvm-support.mdx'; +import IommuSupport from './partials/iommu-support.mdx'; +import GpuNvidia from './partials/gpu-nvidia.mdx'; +import GpuAmd from './partials/gpu-amd.mdx'; + +# Visión general y preparación del sistema + +Las máquinas virtuales (VM) te permiten ejecutar sistemas operativos completos, como Windows, macOS o Linux, en tu servidor Unraid, junto con contenedores Docker. + +Las %%VMs|vm%% son ideales para: + +- Ejecutar aplicaciones que requieren un sistema operativo completo o que no están disponibles como contenedores. +- Asignar hardware dedicado a sistemas invitados, como GPUs o dispositivos USB. +- Pruebas, desarrollo, juegos o ejecución de software heredado. +- Alojar múltiples entornos aislados para diferentes cargas de trabajo. + +Para una lista de sistemas operativos probados con Unraid, ve a la página de [Configuración de %%VM|vm%%](./vm-setup.mdx). + +
+ **Bajo el capó:** Expande para saber más sobre el stack tecnológico detrás de la virtualización de Unraid + + La pila de virtualización de Unraid está diseñada para ser flexible y de alto rendimiento, utilizando varias tecnologías de código abierto para apoyar una gestión efectiva de las %%máquinas virtuales (VM)|vm%%. Este resumen explica los componentes clave y su interacción de manera amigable para el usuario. + +

Tecnologías principales

+ + | Tecnología | Lo que hace | Por qué es importante | + | --------------------------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | + | %%KVM\|kvm%% | Acts as the %%hypervisor\|hypervisor%% built into the Linux kernel. | Permite a Unraid ejecutar %%VMs\|vm%% sin problemas con aceleración de hardware y sobrecarga mínima. | + | %%QEMU\|qemu%% | Emula el hardware esencial (como placa madre, CPU y controladores) para %%VMs\|vm%%. | Trabaja junto con %%KVM\|kvm%% para crear un entorno virtual completo para los sistemas operativos invitados. | + | %%Libvirt\|libvirt%% | Gestiona las definiciones de %%VM\|vm%%, así como las interfaces de almacenamiento y red. | Almacena configuraciones de %%VM\|vm%% en `libvirt.img` y ofrece una API de gestión consistente. | + | %%VNC\|vnc-session%% | Ofrece acceso gráfico remoto a %%VMs\|vm%%. | Permite la interacción con %%VMs\|vm%% desde cualquier dispositivo usando un navegador o un cliente %%VNC\|vnc-session%%. | + | %%VirtIO\|virtio%% | Proporciona controladores paravirtualizados de alto rendimiento para dispositivos de red y discos. | Mejora la velocidad y la eficiencia de %%VM\|vm%%, requiriendo controladores %%VirtIO\|virtio%% instalados en el SO huésped. | + | %%VirtFS\|virtfs%% (`9p`) | Facilita la compartición de sistemas de archivos entre el host e invitados basados en Linux. | Útil para el desarrollo y necesidades avanzadas de compartición de archivos. | + | %%HVM\|hvm%% | Soporta la virtualización asistida por hardware (%%Intel VT-x\|intel-vt-x%%, %%AMD-V\|amd-v%%). | Necesario para ejecutar %%VMs\|vm%% con aceleración completa de hardware. | + | %%VFIO\|vfio%% & %%IOMMU\|iommu%% | Permiten el paso directo de dispositivos PCI a %%VMs\|vm%% (como GPU y dispositivos USB). | Esencial para lograr un rendimiento casi nativo y mantener aislamiento de seguridad. | + +

Cómo Unraid implementa el soporte de %%VM|vm%%

+ + - %%KVM|kvm%%/%%QEMU|qemu%%: la virtualización de Unraid está fundamentada en %%KVM|kvm%% y %%QEMU|qemu%%, proporcionando capacidades sólidas de alojamiento de %%VM|vm%%. + - %%Libvirt|libvirt%%: Las definiciones de %%VM|vm%% se almacenan como archivos XML en `libvirt.img` (normalmente encontrado en el recurso compartido `system`). + - **Recursos compartidos predeterminados**: + - `domains`: Almacena imágenes de disco virtual de %%VM|vm%%. + - `isos`: Contiene ISOs de instalación e imágenes de controladores. + - `system`: Almacena `libvirt.img` y otros archivos del sistema críticos. + - Todo por defecto a **Usar %%Cache|cache%%: Preferir** para un rendimiento óptimo. + - %%VNC|vnc-session%%: Unraid cuenta con un cliente NoVNC incorporado para acceso fácil basado en navegador a %%VMs|vm%%, con la opción de usar clientes %%VNC|vnc-session%% externos según sea necesario. + + :::tip + La mayoría de los usuarios no necesitan interactuar directamente con estas tecnologías, pero entender qué ocurre "bajo el capó" puede ser increíblemente útil para la solución avanzada de problemas y la personalización. Para obtener información más detallada, consulta la documentación oficial de [KVM](https://www.linux-kvm.org/page/Main_Page), [QEMU](https://www.qemu.org/), [Libvirt](https://libvirt.org/), y [VirtIO](https://www.linux-kvm.org/page/Virtio). + ::: +
+ +## Requisitos + +Para ejecutar %%VMs|vm%% en Unraid, tu sistema debe cumplir con los siguientes requisitos: + +| Componente | Requisito mínimo | Recommended for %%VMs\|vm%% & %%GPU passthrough\|gpu-passthrough%% | +| -------------- | ------------------------------------------------------------ | --------------------------------------------------------------------------------- | +| CPU | 64 bits, 4 núcleos, 2.4 GHz+ (Intel/AMD) | 8+ núcleos, 3.0 GHz+ (Intel Core i7/i9, AMD Ryzen 7/9, o más nuevo) | +| Virtualización | %%HVM\|hvm%% (%%Intel VT-x\|intel-vt-x%% o %%AMD-V\|amd-v%%) | %%HVM\|hvm%% + %%IOMMU\|iommu%% (Intel VT-d o AMD-Vi) | +| RAM | 8 GB | 16 GB o más (añadir RAM por cada %%VM\|vm%% activa) | +| Almacenamiento | SSD/NVMe para discos de %%VM\|vm%% | NVMe de gama alta para el mejor rendimiento | +| Red | Ethernet gigabit (PCIe recomendado) | Ethernet 2.5G/10G para cargas de trabajo exigentes | +| GPU (opcional) | NVIDIA RTX moderna (recomendada) o AMD Radeon RX | Serie RTX 3000/4000 (NVIDIA recomendada para mejor compatibilidad de passthrough) | + +:::tip[GPU compatibilidad de paso a través] +Las GPUs NVIDIA son **generalmente recomendadas** para %%VM|vm%% passthrough debido a una mejor compatibilidad y fiabilidad. Las GPUs AMD pueden ser más difíciles de pasar, y algunos modelos nuevos (incluyendo las series RX 7000/9000) pueden no funcionar de manera confiable o en absoluto con %%VMs|vm%%. Si planeas usar %%GPU passthrough|gpu-passthrough%%, considera opciones de NVIDIA para la mejor experiencia. +::: + +:::note +La BIOS de tu placa base debe habilitar la virtualización asistida por hardware y el soporte para %%IOMMU|iommu%%. Busca configuraciones etiquetadas como “%%Intel VT-x|intel-vt-x%%,” “Intel VT-d,” “%%AMD-V|amd-v%%,” o “AMD-Vi.” +::: + +### Recursos de VM + +| tipo de %%VM\|vm%% | RAM por %%VM\|vm%% | vCPUs por %%VM\|vm%% | Ejemplos de casos de uso | +| ------------------------- | ------------------ | -------------------- | ------------------------------------------------ | +| Servidor virtual | 1-2 GB | 1-2 | Linux ligero, %%VMs\|vm%% de utilidad | +| Escritorio virtual | 4-8 GB | 2-4 | Windows 11, escritorio Ubuntu, RDP | +| %%VM\|vm%% híbrido/juegos | 8-16 GB+ | 4-8+ | %%GPU passthrough\|gpu-passthrough%%, gaming, ML | + +- La memoria y la CPU solo se consumen mientras las %%VMs|vm%% están en ejecución. +- Planifica para el uso máximo si se ejecutan múltiples %%VMs|vm%% simultáneamente. +- Siempre asigna recursos basados en los requisitos del sistema operativo invitado y la carga de trabajo. + +### HVM e IOMMU: Lo que habilitan + + + + + + + + + + + +:::important[How para comprobar soporte] +En el %%WebGUI|web-gui%%, haz clic en **Info** en el menú superior. + +- **Soporte HVM:** Muestra si la virtualización de hardware está presente y habilitada. +- **Soporte IOMMU:** Muestra si la transmisión de dispositivo está disponible y habilitada. +::: + +--- + +### Transmisión de dispositivos gráficos + +Pasar una GPU a una %%VM|vm%% permite un rendimiento gráfico casi nativo, lo que la hace ideal para juegos, trabajos creativos o aprendizaje automático. + + + + + + + + + + + +:::tip[General consejos] +- Usa %%OVMF|ovmf%% (%%UEFI|uefi%%) para %%VMs|vm%% con GPUs modernas. +- Usa siempre la última versión de Unraid para mejorar el soporte de hardware. +- Tecnologías como NVIDIA Optimus pueden permitir %%GPU passthrough|gpu-passthrough%% para laptops o configuraciones avanzadas, pero los resultados varían. +::: + +:::info[Always cambiando] +La compatibilidad de hardware y controladores cambia rápidamente. Antes de comprar una GPU para el passthrough, consulte los [foros de Unraid](https://forums.unraid.net/) y la documentación del proveedor para reportes actualizados y experiencias de usuarios. +::: + +--- + +## Preparación del sistema + +Antes de crear máquinas virtuales, completa estas tareas esenciales de configuración para asegurar que tu sistema esté listo. + +### Ajusta configuraciones de BIOS + +Para utilizar plenamente las capacidades de virtualización de Unraid, tu BIOS debe habilitar la virtualización asistida por hardware y la gestión de memoria de E/S. Busca configuraciones etiquetadas como **Virtualización**, %%Intel VT-x|intel-vt-x%%, **Intel VT-d**, %%AMD-V|amd-v%%, o **AMD-Vi** y ajústelas a **Enabled**. + +:::note +Las interfaces de BIOS varían según el fabricante. Consulte el manual de su placa base para la ubicación exacta de estas configuraciones. +::: + +### Configurar un puente de red + +Las %%máquinas virtuales|vm%% pueden conectarse a tu red utilizando uno de dos tipos de puente. Elige el que mejor se adapte a tus necesidades: + +| Tipo de puente | Descripción | Caso de uso | +| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| **NAT privado (virbr0)** | Administrado por %%libvirt\|libvirt%%. Esta opción proporciona un servidor DHCP interno y una subred aislada. %%VMs\|vm%% puede acceder a internet y compartir archivos del host, pero están aisladas de otros dispositivos de red. | Ideal para %%VMs\|vm%% aisladas que necesitan acceso a internet y al host pero sin visibilidad en la LAN. | +| **Puente público (br0)** | Administrado por Unraid. Esta opción conecta las %%VMs\|vm%% directamente a su LAN, con IPs asignadas por su router. Las direcciones MAC se preservan para asignaciones de IP consistentes. | Lo mejor para %%VMs\|vm%% que deben funcionar como dispositivos regulares en tu red, accesibles desde otros dispositivos. | + +:::important +Si tu servidor Unraid está conectado a Wi-Fi, se recomienda utilizar el puente de red **NAT privado (virbr0)** para tus %%máquinas virtuales|vm%%. Esto se debe a que las interfaces Wi-Fi solo admiten una única dirección MAC, lo que restringe el uso de puentes públicos y tipos de red personalizados. Al utilizar el puente **virbr0**, tus %%VMs|vm%% tendrán acceso completo a la red a través de %%NAT|nat%%, aunque no serán directamente accesibles desde otros dispositivos en tu red de área local (LAN). Sin embargo, todavía puedes acceder a las %%VMs|vm%% a través de %%VNC|vnc-session%% a través del host. +::: + +- Activa el puente público en **Configuraciones de red → Habilitar puente**. +- Establece tu puente preferido como el **Puente de red predeterminado** en la configuración de %%VM|vm%%. Puede que necesites habilitar la vista avanzada para ver esta opción. + +--- + +### Comparticiones de usuarios para virtualización + +Unraid creates two default %%user shares|user-share%% for %%virtualization|virt%%: + +- `isos`: Esta compartición almacena archivos de medios de instalación para tus %%VMs|vm%%. +- `domains`: Esta compartición guarda %%imágenes de disco virtual|virtual-disk-images%% y archivos de configuración %%de máquina virtual|vm%%. + +Considera crear una compartición separada para las copias de seguridad de %%VM|vm%% para proteger tus datos. + +

Recomendaciones de configuración para compartir

+ +- Store active %%VM|vm%% %%virtual disk images|virtual-disk-images%% on a %%cache|cache%%-only share for the best performance. +- Usar SSDs en tu %%conjunto de cache|cache-pool%% mejora significativamente la capacidad de respuesta de las %%VM|vm%%. +- El uso de %%Caché|cache%% para la compartición `isos` es opcional. + +:::important +Do not store active %%virtual machines|vm%% on a share with **Use %%cache|cache%%** set to **Yes**. This can cause %%VMs|vm%% to be moved to the %%array|array%% during the %%Mover|mover%% process, leading to degraded performance. +::: + +## Configura las preferencias de virtualización + +Antes de comenzar, asegúrate de que tu sistema esté listo para la virtualización (ver [Preparación del sistema](#system-preparation)). Configurar tus preferencias de %%virtualización|virt%% en Unraid asegura que tus %%máquinas virtuales (VMs)|vm%% estén configuradas para un rendimiento y compatibilidad óptimos. + +Para establecer tus preferencias de virtualización: + +1. En el %%WebGUI|web-gui%%, ve a ***Configuración → Administrador de VM***. +2. **Para VMs de Windows:** + - Descarga el último controlador estable de %%VirtIO|virtio%% para Windows desde el [repositorio oficial](https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md). + - Copia el archivo ISO de %%VirtIO|virtio%% a tu compartición **isos**. + - En **Administrador de VM**, usa el selector de archivos para **ISO de controladores de Windows VirtIO** para seleccionar el ISO que acabas de copiar. + - (Opcional) Sobrescribe el ISO del controlador predeterminado para %%VMs|vm%% individuales en **Vista avanzada**. +3. **Selecciona un puente de red predeterminado:** + - Elige `virbr0` para un puente de red privado, o selecciona un puente público (por ejemplo, `br0`) creado en **Configuración de red**. + - (Opcional) Sobrescribe el puente de red predeterminado para cada %%VM|vm%% en **Vista avanzada**. +4. **Anulación de ACS PCIe (Avanzado):** + - Activa **Anulación de ACS PCIe** para **Encendido** si necesitas asignar múltiples dispositivos PCI (como %%GPUs|gpu-passthrough%% o controladores USB) a diferentes %%VMs|vm%%. + - Esta opción divide los grupos %%IOMMU|iommu%%, permitiendo un paso de dispositivos más flexible. + +:::warning +Esta configuración es experimental y puede afectar la estabilidad del sistema. Usar con precaución. +::: + +5. Haz clic en **Aplicar** para guardar tus configuraciones. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx new file mode 100644 index 0000000000..bff8e4ca95 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx @@ -0,0 +1,3 @@ +- Las series Radeon RX 6000 son generalmente confiables para passthrough. +- La serie RX 7000 puede tener algunos problemas no resueltos; por favor consulta los [foros de Unraid](https://forums.unraid.net/) para los últimos informes de compatibilidad. +- El error de reinicio de AMD se ha resuelto en su mayoría en los modelos recientes, pero siempre es buena idea confirmar con tu hardware. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx new file mode 100644 index 0000000000..dc468aa3d0 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx @@ -0,0 +1,2 @@ +- Todas las RTX modernas (seres 3000/4000) soportan passthrough y son recomendadas para el mejor rendimiento. +- Las tarjetas Quadro y algunas GTX antiguas también son compatibles, pero es importante verificar la compatibilidad actual de los controladores. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx new file mode 100644 index 0000000000..23db19b39c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx @@ -0,0 +1,5 @@ +%%HVM|hvm%% (Hardware Virtual Machine), also known as %%Intel VT-x|intel-vt-x%% or %%AMD-V|amd-v%%, enables your CPU to run %%virtual machines|vm%% with hardware acceleration. + +- Requerido para crear y ejecutar cualquier %%VM|vm%% en Unraid. +- Proporciona virtualización de CPU eficiente y mejor rendimiento en comparación con la virtualización solo por software. +- La mayoría de las CPU modernas (de 2015 y más nuevas) incluyen esta característica. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx new file mode 100644 index 0000000000..1dfef7c856 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx @@ -0,0 +1,5 @@ +%%IOMMU|iommu%% (Unidad de Gestión de Memoria de Entrada/Salida, también conocida como Intel VT-d o AMD-Vi) permite el paso directo seguro y eficiente de dispositivos a %%VMs|vm%%. + +- Requerido para asignar dispositivos PCIe (GPUs, controladores USB, unidades NVMe) directamente a una %%VM|vm%%. +- Proporciona aislamiento y protección de memoria, impidiendo que los dispositivos accedan a regiones de memoria no autorizadas. +- Essential for %%GPU passthrough|gpu-passthrough%%, advanced networking, and high-performance workloads. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx new file mode 100644 index 0000000000..80db7c9d29 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx @@ -0,0 +1,5 @@ +1. Descarga el [ISO de Windows 11](https://www.microsoft.com/en-us/software-download/windows11). +2. Suba el ISO a su carpeta `isos` en su servidor Unraid. +3. Modifica tu plantilla del %%VM|vm%% para arrancar desde el ISO en la compartición `isos`. +4. Arranca el %%VM|vm%% desde el ISO y realiza la instalación limpia. +5. Reinstala tus aplicaciones y restaura tus datos desde la copia de seguridad. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx new file mode 100644 index 0000000000..34956cff89 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx @@ -0,0 +1,3 @@ +1. Descarga el [Asistente de instalación de Windows 11](https://www.microsoft.com/en-us/software-download/windows11). +2. Ejecuta el instalador y sigue las instrucciones en pantalla. +3. Reinicia cuando se te indique. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx new file mode 100644 index 0000000000..cbe45466c5 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx @@ -0,0 +1,3 @@ +1. En ***Configuraciones → Gestor de MV***, configure una ruta predeterminada para el ISO de %%VirtIO|virtio%% (por ejemplo, `/mnt/user/isos/virtio-win.iso`). +2. Al crear una %%VM|vm%% de Windows, el ISO se conectará automáticamente como un CD-ROM virtual. +3. Durante la instalación de Windows, cargue los controladores desde el ISO de %%VirtIO|virtio%% cuando se le soliciten los controladores de almacenamiento. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx new file mode 100644 index 0000000000..9e5cbdb36c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx @@ -0,0 +1,14 @@ +1. Descargue el [ISO de controladores VirtIO estables más reciente](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso) y guárdelo en el recurso compartido 'isos' de su Unraid. + + :::tip[Verificar la integridad de la descarga] + Descargue el [archivo CHECKSUM](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/CHECKSUM) desde el mismo directorio para verificar la integridad del ISO. Esto ayuda a asegurar que su descarga esté completa y no haya sido alterada. + ::: + +2. Edite la configuración de su %%VM|vm%% para apuntar al nuevo ISO en el recurso compartido 'isos'. + +3. En el Administrador de dispositivos de Windows: + - Haga clic derecho en los dispositivos con advertencias amarillas + - Seleccione **Actualizar controlador → Buscar en mi computadora** + - Navegue hasta la unidad ISO de %%VirtIO|virtio%% (generalmente `D:\` o `E:\`) + +4. Reinicie después de actualizar todos los controladores. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx new file mode 100644 index 0000000000..53d199c739 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx @@ -0,0 +1,140 @@ +--- +sidebar_position: 4 +sidebar_label: Unraid como una VM +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Unraid como una VM + +Ejecutar Unraid como una máquina virtual en su servidor principal de Unraid puede ser muy útil para el desarrollo, prueba y evaluación. Esta configuración le permite: + +- Desarrollar y probar complementos o contenedores Docker sin poner en riesgo su servidor de producción. +- Evaluar nuevas versiones de Unraid antes de actualizar su sistema principal. +- Crear entornos aislados para la resolución de problemas o capacitación. + +:::caution[Important consideraciones] +- Lime Technology no ofrece soporte oficial para esta configuración en datos de producción. +- La virtualización introduce cierta sobrecarga; espere un rendimiento reducido en comparación con ejecutar directamente en hardware. +- Necesita una clave de licencia válida separada para la %%VM|vm%%. +::: + +:::note\[Prerequisites] + +- Una clave de licencia válida de Unraid para la %%VM|vm%% +- Una memoria USB dedicada (use un fabricante diferente al del disco de arranque de su host) +- Unraid versión 6.4.0 o superior para la %%VM|vm%% (las versiones anteriores requieren configuración manual) + +::: + +Para poner en funcionamiento Unraid como una %%VM|vm%%: + +
+ 1. Prepara la memoria USB para la VM - Haz clic para expandir/contraer + + Preparar tu memoria USB es crucial para un proceso de arranque del %%VM|vm%% continuo y fiable. Aquí te explicamos cómo configurar tu entorno %%VM|vm%% con un dispositivo de arranque único y correctamente configurado. + + 1. Use la herramienta [Unraid USB Creator](https://unraid.net/download) en su escritorio para preparar la unidad flash: + - Seleccione **Permitir arranque EFI**. + - Establezca un nombre único para el servidor (como `TowerVM` si su host es `Tower`). + - Escriba la imagen en la unidad flash. + + 2. Modificar archivos de configuración: + - Cambie la etiqueta de la unidad flash de `UNRAID` a un nombre único (ej., `UNRAID-VM`). + + - Edite el archivo `syslinux/syslinux.cfg` en la unidad flash: + + ``` + label Unraid OS + menu default + kernel /bzimage + append unraidlabel=UNRAID-VM initrd=/bzroot + ``` + + - Realizar este cambio en todos los modos de arranque (GUI/Modo seguro) dentro del archivo. + + - Copie el archivo `syslinux.cfg` actualizado a `EFI/boot/syslinux.cfg` + + 3. Cree un archivo llamado `startup.nsh` en la raíz de la unidad flash con este contenido: + + ``` + \EFI\boot\bootx64.efi + ``` + + 4. Tome nota del fabricante de la unidad flash (necesitará esto para la configuración de %%VM|vm%% más adelante). +
+ +
+ 1. Prepare el disco USB para la VM - Haga clic para expandir/colapsar + + Configurar la %%VM|vm%% de Unraid requiere algunas configuraciones específicas para asegurar un funcionamiento adecuado. + + Para crear la plantilla de %%VM|vm%%: + + 1. En el servidor host de Unraid, vaya a ***Configuración → Administrador de VM*** y asegúrese de que las %%VM|vm%% estén habilitadas. + 2. Navegue a la pestaña **VMs** y haga clic en **Agregar VM**. + 3. Seleccione la plantilla **Slackware**, ya que es la que más se parece a Unraid. + 4. (Opcional) Si está disponible, reemplace el ícono de Slackware con el ícono de Unraid. + 5. Nombre la %%VM|vm%% (ej., `UNRAID-VM`). + 6. (Opcional) Añada una descripción, tal como *"Entorno de prueba de Unraid - vX.XX.X."* + 7. Asignar recursos: + - CPUs: 2-4 núcleos + - RAM: 4-8 GB (establecer Inicial y Máximo con el mismo valor) + 8. Establezca **Tipo de Máquina** en **Q35 (última)**. + 9. Configure **BIOS** en **OVMF** y **controlador USB** en **3.0 (QEMU XHCI)**. + 10. Configurar discos virtuales: + - Agregar %%vDisks|vdisk%% para cache/datos usando formato **RAW** y bus **SATA**. + - Dimensionar discos de manera diferente para fácil identificación (e.g., %%parity|paridad%% > datos > %%cache|cache%%). + 11. Deje gráficos, sonido y red en sus configuraciones predeterminadas. + 12. En **dispositivos USB**, seleccione la unidad flash por **fabricante**, no por etiqueta. + + :::importante + La memoria USB del %%VM|vm%% debe ser de un fabricante diferente al de la unidad de arranque del host. Si coinciden, la unidad %%VM|vm%% no será visible.\\ + ::: +
+ +
+ 2. Configurar la VM en el host - Haga clic para expandir/colapsar + + Para iniciar la %%VM|vm%% después de la configuración: + + 1. Desmarque **Iniciar VM después de la creación** si desea control manual. + 2. Haga clic en **Crear**. + 3. En la pestaña **VMs**, haga clic en el ícono de la %%VM|vm%% de Unraid y seleccione **Iniciar con consola (%%VNC|vnc-session%%)**. + 4. Observe el proceso de arranque en la consola %%VNC|vnc-session%% y anote la dirección IP de la %%VM|vm%% que se muestra antes de iniciar sesión. +
+ +
+ 3. Crear e iniciar la VM - Haga clic para expandir/colapsar + + Una vez que la %%VM|vm%% esté en funcionamiento, configúrela como un servidor Unraid físico: + + 1. Acceda al **WebGUI** de la %%VM|vm%% en `http://[VM-IP]`. + 2. Vaya a ***Configuración → Identificación***: + - Establezca un nombre de **Servidor único** (e.g., `Unraid-VM`). + - Agregue una descripción como "Instancia de desarrollo." + 3. (Opcional) Vaya a ***Configuración → Opciones de visualización*** y elija un tema de color diferente para distinguirlo del host. + 4. Vaya a ***Configuración → opciones de %%SMB|samba%% → Configuración de grupo de trabajo*** y establezca **Maestro local** en *No* para evitar conflictos. + 5. Para la transferencia de UPS (si el host tiene UPS): + - Vaya a ***Configuración → UPS*** en la %%VM|vm%%. + - Establezca **Cable de UPS** en *Ether*. + - Establezca **Tipo de UPS** en *net*. + - Ingrese la IP del host en **Dispositivo**. + - Configure **Ejecutar** para apagar la %%VM|vm%% antes que el host. + 6. Comience el %%array|array%% con sus dispositivos configurados. + 7. Instale [**Community Applications**](https://unraid.net/community/apps) para pruebas de complementos/Docker. + 8. Actualice la %%VM|vm%% a través de ***Herramientas → Actualizar OS***, al igual que un servidor físico. +
+ +### Solución de problemas + +Si encuentra un *Error de Ejecución* relacionado con el dispositivo USB después de editar la configuración de la %%VM|vm%%: + +1. Edite la %%VM|vm%% y cambie a **vista XML**. +2. Ubique el nodo `` que define el dispositivo flash (generalmente cerca del final). +3. Elimine todo el bloque `...`. +4. Haga clic en **Actualizar**. +5. Re-edite la %%VM|vm%% en **vista de formulario**. +6. Re-seleccione la unidad flash bajo **dispositivos USB**. +7. Haz clic en **Actualizar** de nuevo. El %%VM|vm%% debería comenzar normalmente ahora. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx new file mode 100644 index 0000000000..726dc91dd4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx @@ -0,0 +1,440 @@ +--- +sidebar_position: 5 +sidebar_label: Conversión y migración de VM +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Conversión y migración de VM + +Al consolidar hardware, preservar sistemas heredados, o probar actualizaciones en un entorno virtual, es posible que necesites convertir un disco físico o migrar un sistema existente a una %%máquina virtual|vm%% en Unraid. Este proceso se aplica tanto a sistemas Linux como a Windows, lo que te permite ejecutar tu instalación como una %%VM|vm%% dentro de tu servidor Unraid. + +:::note\[Prerequisites] + +- Su servidor Unraid debe cumplir con los [requisitos mínimos de hardware para la virtualización](./overview-and-system-prep.mdx#requirements) (vea la tabla a continuación). +- El disco fuente debe estar conectado a su servidor Unraid (vía SATA, USB, o como dispositivo no asignado). +- Asegúrese de tener suficiente espacio libre en su **%%array|array%%** o **%%cache pool|cache-pool%%** para alojar la nueva imagen del disco virtual. +- Haga una copia de seguridad de cualquier dato crítico antes de comenzar el proceso de conversión o migración. + +::: + +## Requisitos de hardware + +| Componente | Requisito mínimo | Recomendado para el mejor rendimiento | +| ------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| **CPU** | 64 bits con virtualización por hardware (%%Intel VT-X\|intel-vt-x%%/%%AMD-V\|amd-v%%) | CPU multicore con VT-d/AMD-Vi para passthrough | +| **RAM** | 8 GB | 16 GB o más | +| **Almacenamiento** | SSD o NVMe %%cache pool\|cache-pool%% con espacio suficiente | Pool dedicado de caché NVMe %%cache pool\|cache-pool%% para almacenamiento de %%VM\|vm%% | +| **Placa Base/BIOS** | %%UEFI\|uefi%% con virtualización habilitada | %%UEFI\|uefi%% con %%IOMMU\|iommu%%/VT-d/AMD-Vi habilitado | + +--- + +## Convertir un disco físico a una VM + +Migrar un sistema Linux o Windows existente a una %%máquina virtual|vm%% en su servidor Unraid puede ser una excelente manera de ahorrar espacio en hardware, mantener sistemas heredados funcionando o probar nuevas actualizaciones de manera segura. + +Para convertir un disco físico a una %%VM|vm%%: + + + +

Paso 1: Prepare el disco físico

+ + 1. Conecte el disco fuente a su servidor Unraid (usando SATA o USB). + 2. Inicie sesión en el %%WebGUI|web-gui%% (`http://tower` o `http://tower.local`). + 3. Haga clic en la pestaña **Principal**. + 4. Inicie el **%%array|array%%** si no está ya en funcionamiento. + 5. Busque su disco bajo **Dispositivos no asignados**. + 6. Tome nota de la letra del dispositivo (por ejemplo, `sdb`, `sdc`) y el tamaño del disco. Necesitarás al menos este espacio libre en tu **%%array|array%%** o **%%cache pool|cache-pool%%** para el nuevo %%virtual disk|vdisk%%. + +

Paso 2: Cree una nueva máquina virtual

+ + Consulte la guía de [Creación de sus propias máquinas virtuales](../create-virtual-machines/vm-setup.mdx#creating-your-own-virtual-machines), con las siguientes excepciones: + + - Configure el **BIOS** a **OVMF**. + Asegúrese de especificar el **ISO de los controladores VirtIO** para [rendimiento óptimo](./overview-and-system-prep.mdx#set-up-virtualization-preferences). + - Guarde las imágenes %%VM|vm%% en un **%%cache pool|cache-pool%%** en lugar de un %%array|array%% para el [mejor rendimiento](./overview-and-system-prep.mdx#user-shares-for-virtualization). + +

Paso 3: Convierta el disco físico a una imagen de %%disco virtual|vdisk%%

+ + Abra un terminal ([%%SSH|ssh%%](../../system-administration/advanced-tools/command-line-interface.mdx) o consola local) y inicie sesión como `root`. + + Use el siguiente comando para convertir el disco físico en una imagen de %%disco virtual|vdisk%%: + + ``` + qemu-img convert -p -O raw /dev/sdX /mnt/user/[vdisk_share]/[vmname]/vdisk1.img + ``` + + - **/dev/sdX**: Reemplace con la letra del dispositivo desde el paso 1 (por ejemplo, `/dev/sdb`) + - **\[vdisk\_share]**: El recurso compartido donde guardas tus imágenes de %%VM|vm%% + - **\[vmname]**: El nombre que desea para su %%VM|vm%% + + **Desglose del comando:** + + - `qemu-img convert`: Esta herramienta se utiliza para la conversión de imágenes de disco. + - `-p`: Muestra el progreso como un porcentaje. + - `-O raw`: Establece el formato de salida a raw (el valor predeterminado de Unraid). + - `/dev/sdX`: La fuente es su disco físico. + - `/mnt/user/[vdisk_share]/[vmname]/vdisk1.img`: Destino para la imagen del %%disco virtual|vdisk%%. + + Espere a que se complete la operación. El archivo `.img` resultante será el disco principal para su %%VM|vm%%. +
+ + +

Paso 1: Edite el XML para su máquina virtual

+ + - En la pestaña de %%VMs|vm%%, haga clic en el ícono de %%VM|vm%% y seleccione **Editar XML** desde el menú contextual. + + - A continuación, desplácese en el XML y busque la etiqueta `` para el `` que tiene un archivo `` establecido en `vdisk1.img`. Debería verse así: + + ```xml + + + + + + + + +
+ + ``` + + - Para modificarlo, cambie el atributo **bus** en la etiqueta `` de `virtio` a `ide`. + + - Luego, elimine toda la línea `
` para ese ``. + + - Su XML actualizado debería verse así: + + ```xml + + + + + + + + + ``` + + - Finalmente, haga clic en **Actualizar** para guardar los cambios en el XML de la %%máquina virtual|vm%%. + +

Paso 2: Instale los controladores VirtIO desde dentro de la VM (solo para invitados de Windows)

+ + - Abra **Explorador de Archivos de Windows** y vaya al %%VirtIO|virtio%% CD-ROM virtual para explorar su contenido. + - Navegue a la carpeta **Balloon**. + - Dentro de esa carpeta, encuentre la subcarpeta para su **versión del sistema operativo Windows** (por ejemplo, `w8.1`). + - Vaya a la subcarpeta **amd64**. + - Haga clic derecho en el archivo **balloon.inf** y seleccione **Instalar** en el menú contextual. (Necesita habilitar la visibilidad de la extensión de archivos para hacer esto.) + - Repita estos pasos para cada una de las siguientes carpetas: + - **NetKVM** + - **vioserial** + - **viostor** + - Después de haber instalado los controladores, navegue de regreso al CD-ROM virtual y abra la carpeta **guest-agent**. + - Haga doble clic en **qemu-ga-x64.msi** para instalar el agente huésped %%QEMU|qemu%%/%%KVM|kvm%%. + +

Paso 3: Convertir el bus del disco de nuevo a VirtIO

+ + - Si su %%VM|vm%% está en funcionamiento, apáguelo. + - En la pestaña **VMs**, haga clic en el icono de %%VM|vm%% y seleccione **Editar XML** en el menú contextual. + - Ubique la sección `` para `vdisk1.img` y cambie `bus='ide'` de nuevo a `bus='virtio'` en la etiqueta ``. + - Haga clic en **Actualizar** para guardar los cambios en la %%VM|vm%%. + - ¡Ahora puede iniciar su %%máquina virtual|vm%% convertida! + + + +--- + +## Migración de un disco físico a una VM + +Puede ejecutar una instalación de Windows directamente desde un disco físico en una máquina virtual Unraid (VM). Este método ayuda a migrar un sistema Windows existente sin convertirlo a una imagen de disco virtual. Para una guía visual, consulte el tutorial de Spaceinvader One:\ +[Cómo pasar a través de discos duros, convertir discos y probar el rendimiento en VMs de Unraid (YouTube)](https://www.youtube.com/watch?v=QaB9HhpbDAI). + +:::important[Choosing tu enfoque de migración] +Hay dos maneras comunes de migrar una instalación de Windows a una %%VM|vm%% en Unraid: + +**Passthrough de disco físico:** Utiliza el disco original directamente en la %%VM|vm%%. + +- Ventajas: Método más rápido, no se requiere conversión de imagen. +- Desventajas: Ocupa un puerto SATA; Unraid no puede usar el disco para otros propósitos cuando está adjunto a la VM. + +**Conversión de imagen de disco:** Esto convierte el disco físico en una imagen de %%disco virtual|vdisk%% (`.img`) para usar en la %%VM|vm%%. + +- Ventajas: Más flexibilidad, permite usar el disco como una compartición de Unraid o para instantáneas. +- Desventajas: Requiere tiempo y espacio libre para el proceso de conversión. + +Elija la opción de paso directo si desea una migración simple o planea un arranque dual del disco. Opte por la conversión de imagen para una mejor portabilidad y opciones de copia de seguridad. +::: + +:::note\[Prerequisites] + +- Haga una copia de seguridad de su instalación de Windows antes de empezar. +- Tenga a mano un pendrive USB de repuesto para herramientas de recuperación. +- Seleccione una herramienta de preparación de hardware que permita que Windows arranque en hardware virtualizado modificando controladores y la capa de abstracción de hardware (HAL): + - **Microsoft Sysprep** (gratuito y incorporado en Windows 8.1 y posteriores) + - **Acronis True Image 2025** (solución comercial con capacidades avanzadas de migración) +- Asegúrese de que su servidor Unraid tenga un puerto SATA o NVMe libre para el disco físico. + +::: + +

Paso 1: Prepare el disco de Windows para la migración

+ +Mover una instalación de Windows a nuevo hardware, ya sea físico o virtual, puede resultar en fallos de arranque debido a diferencias de hardware. Sigue uno de los métodos a continuación para preparar tu sistema Windows: + +
Opción A: Microsoft sysprep (recomendado - gratuito)
+ +Sysprep está integrado en Windows y elimina información única del sistema, preparando Windows para diferentes hardware. + +:::note[Before ejecutando sysprep] +- Desactive temporalmente cualquier software antivirus. +- Limpie perfiles de usuario innecesarios y archivos temporales. +- Repare o elimine cualquier aplicación problemática de Microsoft Store que pueda bloquear la ejecución de sysprep. +::: + +1. **Ejecute sysprep:** + - Abra el símbolo del sistema como administrador. + - Navegue al directorio de sysprep: + + ```bash + cd C:\Windows\System32\Sysprep + ``` + - Ejecute sysprep con generalización: + ```bash + sysprep.exe /generalize /shutdown /oobe + ``` + - El sistema generalizará la instalación y luego se apagará. + +2. **Instale el disco en su servidor Unraid** después del apagado. + +
Opción B: Acronis True Image 2025 (comercial)
+ +Acronis True Image 2025 cuenta con Universal Restore, que ayuda con la migración de hardware. + +1. Descargue e instale [Acronis True Image 2025](https://www.acronis.com/en-us/products/true-image/). +2. Cree medios de recuperación de arranque usando las herramientas incluidas: + - Elija la interfaz similar a Windows. + - Seleccione la arquitectura que coincida con su Windows (32 bits o 64 bits). +3. Arranque su sistema Windows desde los medios de recuperación de Acronis. +4. Sigue las instrucciones en pantalla para aplicar Universal Restore a tu disco de Windows. Esto actualizará los controladores y el HAL para mejorar la compatibilidad con hardware virtualizado. +5. Apague el sistema e instale el disco en su servidor Unraid. + +

Paso 2: Identificar el disco físico en Unraid

+ +1. Inicie sesión en el %%WebGUI|web-gui%% (`http://tower` o `http://tower.local`). +2. Vaya a la pestaña **Principal**. +3. Inicie el %%array|array%% si no está ya funcionando. +4. Ubique su disco en **Dispositivos no asignados**. +5. Tome nota de la letra del dispositivo (por ejemplo, `sdb`, `sdc`) para utilizar en la configuración de la %%VM|vm%%. + +

Paso 3: Cree una nueva máquina virtual

+ +1. Ve a la pestaña **%%VMs|vm%%** en el %%WebGUI|web-gui%%. Si falta la pestaña, asegúrate de que la virtualización esté habilitada y que se cumplan los requisitos de hardware. +2. Haga clic en **Agregar VM**. +3. Siga la guía de [Creación de sus propias máquinas virtuales](../create-virtual-machines/vm-setup.mdx#creating-your-own-virtual-machines), usando estos ajustes: + - Configure el **BIOS** en %%SeaBIOS|seabios%% (intente %%OVMF|ovmf%% si %%SeaBIOS|seabios%% no arranca). + - Deje en blanco **OS Install ISO**. + - Especifique el **VirtIO Drivers ISO** para un rendimiento óptimo después del arranque. + - Para el %%disco virtual|vdisk%% principal, seleccione cualquier ubicación y tamaño (esto se reemplazará en el siguiente paso). + - Desmarque **Iniciar VM después de la creación**. + +

Paso 4: Edite el XML para su máquina virtual

+ +Necesitará modificar la configuración XML del %%VM|vm%% para conectar su disco físico a la %%máquina virtual|vm%%. + +1. Desde la pestaña **VMs**, haga clic en el icono %%VM|vm%%, luego seleccione **Editar XML** del menú contextual. + +2. Desplázate hacia abajo en el XML y encuentra la entrada `` existente para tu %%disco virtual|vdisk%% primario. Esto usualmente apunta a un archivo `.img` y se verá algo así: + + ```xml + + + + + + + + +
+ + ``` + + Reemplace este bloque con el siguiente, donde `sdX` es la letra del dispositivo o, mejor aún, use `/dev/disk/by-id/[su-id-de-disco]` para una asignación de dispositivo más confiable (consulte \[Unraid Docs: Usar un disco físico en una VM]): + + ```xml + + + + + + + ``` + + Si su disco es IDE, cambie el bus de "SATA" a "IDE". + + Usar `/dev/disk/by-id/` es preferible a `/dev/sdX` para garantizar que la asignación del disco se mantenga consistente después de reinicios o cambios de hardware. + +3. Haga clic en **Actualizar** para guardar sus cambios de XML. + +

Paso 5: Instalar controladores

+ +1. Inicie su %%VM|vm%%. +2. Una vez en Windows, abra el Administrador de dispositivos haciendo clic derecho en el menú de Inicio y seleccionando **Administrador de dispositivos**. +3. Busca dispositivos marcados con un signo de exclamación amarillo (indicando controladores faltantes). Haz clic derecho en cada uno y selecciona **Actualizar controlador**. +4. Elija **Buscar controladores en mi computadora**. +5. Dirija a la unidad donde se monta %%VirtIO|virtio%% Drivers ISO (normalmente D: o E:). +6. Asegúrese de que **Incluir subcarpetas** esté marcado, luego haga clic en **Siguiente**. +7. Repita este proceso para cada dispositivo con controladores faltantes, que comúnmente incluyen: Controlador SCSI, Ethernet, Globo y dispositivos Seriales. + +Recuerde reinstalar aquellas aplicaciones después de la migración si utiliza software que instala sus propios controladores (como programas antivirus). + +:::tip +Si estás atascado en %%SeaBIOS|seabios%% con un mensaje "Arrancando desde el disco duro", es probable que tu sistema operativo Windows se haya instalado utilizando %%UEFI|uefi%% en vez del BIOS tradicional. En este caso, recrea la VM utilizando %%OVMF|ovmf%% como el tipo de BIOS en lugar de %%SeaBIOS|seabios%%. La mayoría de las instalaciones modernas de Windows (Windows 8.1, 10 y 11) soportan %%UEFI|uefi%% y pueden necesitar %%OVMF|ovmf%% para arrancar exitosamente. El resto del proceso de conversión permanecerá igual. +::: + +--- + +## Migración de Xen a KVM + +:::info[Historical Contexto] +Unraid soportó %%Xen|xen-hvm%% desde las versiones iniciales 6.x hasta que fue descontinuado en la 6.2 (septiembre de 2016) y luego eliminado por completo. Esta guía de migración es relevante para usuarios actualizando desde instalaciones muy antiguas de Unraid (antes de 2017) a versiones modernas. +::: + +A %%Xen|xen-hvm%% hypervisor is a virtualization platform that allows multiple operating systems to run on the same hardware. In Unraid, %%Xen|xen-hvm%% was historically used for %%virtual machines|vm%%, but %%KVM|kvm%% is now the standard. Migrating from %%Xen|xen-hvm%% to %%KVM|kvm%% is essential for utilizing modern Unraid features, enabling hardware passthrough, and ensuring compatibility with current releases. + +El proceso de migrar una %%VM|vm%% de %%Xen|xen-hvm%% a %%KVM|kvm%% varía dependiendo de si tu %%VM|vm%% está configurado como un invitado paravirtualizado (PV) o virtualizado por hardware (%%HVM|hvm%%). Esta guía se enfoca específicamente en convertir VMs de Windows que utilizan controladores GPLPV de Xen, ya que requieren un manejo especial. + +Siempre crea una copia de seguridad de tu disco virtual %%Xen|xen-hvm%% antes de comenzar este proceso. Y prueba tu migración en la copia de seguridad para prevenir pérdida de datos. + +:::info[Why ¿migrar?] +Unraid ya no soporta %%Xen|xen-hvm%% desde la versión 6.2 en adelante. %%KVM|kvm%% ahora es obligatorio para la gestión de VMs, el paso de hardware y actualizaciones continuas. Migrar asegura que tus VMs permanezcan seguras y compatibles con nuevas características. +::: + +### Procedimiento de conversión de Windows + +Para convertir una VM de Windows de %%Xen|xen-hvm%% a %%KVM|kvm%%, sigue estos pasos. Recuerda **eliminar cualquier paso de dispositivo PCI de tu configuración de dominio %%Xen|xen-hvm%%** antes de comenzar. Estos dispositivos se pueden agregar nuevamente después de completar la migración. + +
+ Paso 1: Determine si su máquina virtual utiliza los controladores GPLPV de Xen – Haga clic para expandir/colapsar + + 1. Dentro de tu VM %%Xen|xen-hvm%%, abre **Administrador de Dispositivos de Windows** (presiona *Tecla de Windows + X* y selecciona **Administrador de Dispositivos**). + 2. Expanda **Adaptadores de red** y verifique el nombre del dispositivo. + - Si el nombre contiene "Xen", está utilizando controladores GPLPV. + - Si no es así, salte al paso sobre reiniciar en modo %%KVM|kvm%%. + + :::tip + Si no estás usando controladores GPLPV, puedes omitir los siguientes pasos y continuar desde la sección de reinicio en modo %%KVM|kvm%%. + ::: +
+ +
+ Paso 2: Prepare Windows para la eliminación de controladores GPLPV – Haga clic para expandir/colapsar + + 1. Abra un símbolo del sistema como Administrador (**Menú de inicio** → escriba `cmd` → haga clic derecho en **Símbolo del sistema** → seleccione **Ejecutar como administrador**). + 2. Introduzca el siguiente comando: + ``` + bcdedit -set loadoptions nogplpv + ``` + 3. Reinicie su VM. +
+ +
+ Paso 1: Determine si su máquina virtual utiliza los controladores GPLPV de Xen – Haga clic para expandir/colapsar + + Después del reinicio, elimine todos los controladores GPLPV de %%Xen|xen-hvm%% de su sistema usando el proceso de eliminación manual completo documentado en el [Wiki del Proyecto Xen](https://wiki.xenproject.org/wiki/Xen_Windows_GPLPV). + + :::tip + Si no estás usando controladores GPLPV, puedes omitir los siguientes pasos y continuar desde la sección de reinicio en modo %%KVM|kvm%%. + ::: +
+ +
+ Paso 2: Prepare Windows para la eliminación de controladores GPLPV – Haga clic para expandir/colapsar + + 1. Asegúrese de que el **administrador de VM** esté habilitado: + - Vaya a ***Configuración → Administrador de VM***. + - Configure **Habilitar VMs** en **Sí**. + - Descargue el último **VirtIO Drivers ISO** para Windows seleccionándolo desde el menú desplegable y haciendo clic en **Descargar**. + + 2. Navegue a la pestaña **VMs** y haga clic en **Agregar VM**. + + 3. Seleccione la versión de Windows que coincide con su máquina virtual %%Xen|xen-hvm%% original. + + 4. Configure los ajustes básicos: + - **Nombre**: Asigne un nombre descriptivo a su VM. + - **ISO de controladores VirtIO**: Elija la versión que acaba de descargar. + + 5. En **Ubicación del Disco Virtual Primario**: + - Explore y seleccione su disco virtual %%Xen|xen-hvm%% existente. + + 6. Agregue un **disco virtual secundario temporal**: + - Haga clic en el signo verde más. + - Establezca el tamaño en **1M** (esto hará que sea compatible con el bus IDE durante el arranque inicial). + - Elija cualquier directorio temporal para la ubicación (esto se eliminará más tarde). + + 7. Deje los otros ajustes para gráficos y sonido en sus valores predeterminados, luego haga clic en **Crear**. + + 8. Detenga inmediatamente la VM a la fuerza: + - Haga clic en el icono de VM y elija **Detención forzada**. + + 9. Edite la configuración de la VM: + - Haga clic en el icono de VM y seleccione **Editar**. + - Cambie a **vista XML** usando el interruptor en la esquina superior derecha. + + 10. Modifique el XML del disco principal: + - Ubique la sección `` para su disco virtual principal. + - Elimine toda la línea `
`. + - Cambie `bus='virtio'` a `bus='ide'` en la etiqueta ``. + - Haga clic en **Actualizar**. + + :::tip[¿Por qué el disco temporal?] + El disco temporal de 1MB fuerza a que Unraid asigne el disco principal como `hda` (IDE) en lugar de `vda` (%%VirtIO|virtio%%), permitiendo que Windows arranque sin controladores %%VirtIO|virtio%% inicialmente. Este disco temporal se eliminará después de la instalación del controlador. + ::: +
+ +
+ Paso 5: Instale los controladores VirtIO – Haga clic para expandir/colapsar + + 1. Inicie la VM desde la pestaña **VMs**. + 2. Conéctese a través de %%VNC|vnc-session%% haciendo clic en el icono de la VM y seleccione **Iniciar con consola (VNC)**. + 3. Durante el arranque: + - Windows detectará nuevo hardware pero puede fallar al intentar instalar controladores. + - Elija **Reiniciar más tarde** cuando se le solicite. + 4. Abra **Administrador de dispositivos** (presione Win+X y elija Administrador de dispositivos): + - Instale controladores para cada dispositivo listado bajo **Otros dispositivos** (como Controlador Ethernet, Dispositivo PCI, etc.): + 1. Haga clic derecho en el dispositivo y seleccione **Actualizar controlador**. + 2. Elija **Buscar controladores en mi computadora**. + 3. Apunte a la unidad ISO de %%VirtIO|virtio%% (por ejemplo, `D:\`). + 4. Verifique **Incluir subcarpetas**. + 5. Si se le pide, acepte **Confiar siempre en Red Hat**. + 5. Install the %%QEMU|qemu%% %%guest agent|guest-agent%%: + - Abra el Explorador de archivos y navegue a `D:\guest-agent\`. + - Haga doble clic en `qemu-ga-x64.msi`. + 6. Apague la VM. +
+ +
+ Paso 4: Cree una nueva máquina virtual KVM – Haga clic para expandir/colapsar + + 1. Edite la VM: + - Elimine el %%disco virtual secundario temporal|vdisk%% haciendo clic en el icono rojo menos. + - Confirme que el %%vDisk|vdisk%% primario apunta a su disco de %%Xen|xen-hvm%% original. + 2. Actualice la VM: + - Haga clic en **Actualizar** para guardar sus cambios. + 3. Inicie la VM normalmente. + 4. Verifique en **Administrador de dispositivos** que: + - No aparecen iconos de advertencia. + - Todos los dispositivos utilizan controladores %%VirtIO|virtio%% (por ejemplo, "Adaptador Ethernet %%VirtIO|virtio%% de Red Hat"). + 5. (Opcional) Actívelo %%VirtIO|virtio%% para mejor rendimiento: + - Edite la VM y cambie a la vista XML. + - Cambie el `bus` del disco principal de `ide` a `virtio`. + - Haga clic en **Actualizar** y reinicie la VM. + + :::tip[¿Por qué el disco temporal?] + El disco temporal de 1MB fuerza a que Unraid asigne el disco principal como `hda` (IDE) en lugar de `vda` (%%VirtIO|virtio%%), permitiendo que Windows arranque sin controladores %%VirtIO|virtio%% inicialmente. Este disco temporal se eliminará después de la instalación del controlador. + ::: + + 1. Reinstale los controladores %%VirtIO|virtio%% desde el ISO. + 2. Busque actualizaciones de Windows, que pueden proporcionar controladores más recientes. + 3. Visite la página de [Controladores VirtIO de Red Hat](https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/) para obtener las versiones más recientes. + ::: +
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx new file mode 100644 index 0000000000..60327fc0d7 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx @@ -0,0 +1,425 @@ +--- +sidebar_position: 2 +sidebar_label: Configuración de VM +--- + +# Configuración de VM + +Configurar una máquina virtual (VM) en Unraid es una forma flexible de ejecutar sistemas operativos completos - como Windows, Linux u otras plataformas - junto a tus contenedores y aplicaciones nativas. Ya sea que desees probar nuevos programas, ejecutar aplicaciones antiguas, alojar un entorno de escritorio o utilizar la transferencia de hardware para juegos o trabajos creativos, el **Administrador de VM** de Unraid hace que el proceso sea accesible para todos los niveles de habilidad. + +:::tip[New en Unraid 7.0] +Unraid 7.x trae mejoras significativas a las máquinas virtuales (VM), incluyendo: + +- Clones de %%VM|vm%% y instantáneas +- Plantillas de %%VM|vm%% creadas por el usuario +- Edición/visualización de XML en línea +- Características avanzadas de compartición de GPU y paso a través + +Consulte la sección de [características del administrador de %%VM|vm%%](#new-in-unraid-7x-vm-manager) para más detalles. +::: + +Si aún no lo ha hecho, revise las instrucciones de [Visión general y preparación del sistema](./overview-and-system-prep.mdx) para asegurarse de que su hardware y compartidos estén listos para virtualización. + +## Creando sus propias máquinas virtuales + +Con su sistema preparado y preferencias configuradas, puede crear una nueva %%máquina virtual (VM)|vm%% utilizando el %%WebGUI|web-gui%%. + +:::note[Before comienza] +- Confirma que tus recursos compartidos `isos` y `domains` están configurados y son accesibles. Aprende más sobre la [gestión de recursos compartidos](../manage-storage/shares.mdx) aquí. +- Suba su ISO de instalación del sistema operativo y, para %%VMs|vm%% de Windows, los controladores %%VirtIO|virtio%% más recientes al compartido `isos`. +- Decide si usarás %%GPU passthrough|gpu-passthrough%% o %%VNC|vnc-session%% para gráficos. +::: + +Para crear una %%VM|vm%% básica: + +1. Haga clic en **Agregar VM** en la página de **Máquinas Virtuales**. +2. Establezca la **Plantilla** en **Personalizada**, o seleccione una plantilla de SO predefinida para distribuciones comunes. +3. Ingrese un **Nombre** y, opcionalmente, una **Descripción** para su %%VM|vm%%. +4. Activa **Inicio automático** si desea que la %%VM|vm%% se inicie automáticamente con el %%array|array%%. +5. Selecciona el tipo de **Sistema Operativo**. Esto también ajustará el icono %%VM|vm%%. +6. Asigna **núcleos de CPU** a la %%VM|vm%%. Puedes asignar hasta el número de núcleos físicos disponibles en tu anfitrión. +7. Especifica la **Memoria Inicial** (RAM) para la %%VM|vm%%. Consulta la documentación de tu sistema operativo invitado para obtener valores recomendados. +8. Elija el **ISO de instalación del SO** desde su compartido **isos**. +9. Configure el **vDisco primario** (ubicación, tamaño y tipo). + - El %%vDisco|vdisk%% primario almacena el sistema operativo de la VM. + - Agregue vDiscos %%vDisks|vdisk%% adicionales según sea necesario utilizando el signo de suma. +10. Seleccione una **Tarjeta gráfica**: + - Elija %%VNC|vnc-session%% para acceso remoto o seleccione una GPU física para paso a través. + - Asigne un teclado/ratón USB si usa una GPU física. + - Configure una contraseña de %%VNC|vnc-session%% si lo desea. +11. Asigne una **Tarjeta de sonido** (opcional, pero necesario para audio HDMI a través de GPU). +12. Asigne **Dispositivos USB** según sea necesario. + - Los dispositivos deben estar conectados antes de iniciar la %%VM|vm%% (el enchufe caliente USB no es compatible). + - El dispositivo flash USB de Unraid no está disponible para asignación. +13. Haz clic en **Crear VM**. La %%VM|vm%% se iniciará automáticamente a menos que desmarques **Iniciar VM después de la creación**. + +--- + +## Plantillas de VM de usuario + +Unraid 7.1+ introduce plantillas de usuario %%VM|vm%%, facilitando el guardado y reutilización de tus configuraciones personalizadas de %%VM|vm%%. Las plantillas de usuario agilizan el despliegue de %%VM|vm%% y aseguran la consistencia en las configuraciones. + +Para crear una plantilla de usuario: + +1. Edite la %%VM|vm%% que desea convertir en plantilla. +2. Seleccione **Crear/Modificar plantilla** e ingrese un nombre. +3. Su plantilla ahora estará disponible en el área de plantillas de usuario en la pantalla **Agregar VM**. + +Para usar una plantilla de usuario: + +- En la página de **VMs**, haga clic en **agregar VM** y seleccione su plantilla de la sección **plantillas de usuario**. + +Importar/exportar: + +- Pase el cursor sobre una plantilla de usuario y haga clic en la flecha para exportarla a su servidor o descargarla. +- En otro sistema Unraid, use **Importar desde archivo** o **Cargar** para añadir la plantilla. + +--- + +## Nuevo en Unraid 7.x: Administrador de VM + +Unraid 7.x introduce una gama de mejoras poderosas en el **Administrador de %%VM|vm%%**, simplificando el proceso de ejecutar y gestionar %%máquinas virtuales|vm%%. Estas funciones atienden tanto a principiantes como a usuarios avanzados, haciendo que la implementación, personalización y optimización de tus %%VMs|vm%% sea más sencilla. + +:::tip\[Highlights] + +- Ahorre tiempo con los clones, instantáneas y plantillas reutilizables de %%VM|vm%% +- Ajuste el rendimiento y la compatibilidad con opciones avanzadas de paso y almacenamiento +- Disfrute de una mejor visibilidad y control con estadísticas de uso y edición de `XML` en línea + +::: + +
+ Mejoras del flujo de trabajo + + - **Clones e instantáneas de VM:** Duplique %%VMs|vm%% o guarde/restaure rápidamente su estado para pruebas o copias de seguridad. + - **Plantillas de usuario VM:** Guarde sus configuraciones personalizadas de %%VM|vm%% y despliegue nuevos %%VMs|vm%% con solo unos clics. + - **Vista/edición de XML en línea:** Vea o copie instantáneamente el `XML` generado por el %%WebGUI|web-gui%%; cambie al modo `XML` para ediciones avanzadas. + - **Desactivación del inicio automático:** Elija qué %%VMs|vm%% se inician automáticamente con su %%array|array%%. + - **Estadísticas de uso de VM:** Supervise el uso de recursos por %%VM|vm%% directamente desde el panel. +
+ +
+ Mejoras del flujo de trabajo + + - **Multifunción PCI/otros:** Asigne dispositivos PCI complejos o grupos para escenarios avanzados de paso directo. + - **Comando de paso %%QEMU|qemu%% en línea:** Agregue argumentos %%QEMU|qemu%% personalizados para ajuste experto de %%VM|vm%%. + - **Sobrescribir almacenamiento:** Especifique la ubicación de almacenamiento para cada %%disco virtual|vdisk%% de la VM. + - **Bandera SSD y unmap:** Optimice el rendimiento de %%vDisco|vdisk%% para SSD y habilite el soporte discard/unmap. + - **`SR-IOV` para Intel iGPU:** Comparta gráficos integrados de Intel entre múltiples %%VMs|vm%%. + - **Validación de nombres de VM para ZFS:** Evite el uso de caracteres no compatibles en los nombres de %%VM|vm%% para [pools %%ZFS|zfs%%](../../advanced-configurations/optimize-storage/zfs-storage.mdx). +
+ +
+ Opciones avanzadas de hardware y almacenamiento + + - **`VirGL` y `QXL` GPUs virtuales:** Comparta GPUs Intel/AMD entre múltiples %%VMs|vm%% de Linux o utilice `QXL` para opciones de multi-pantalla/memoria. + - **%%CPU encajamiento | cpu-pinning%% opcional:** Permite que Unraid gestione la asignación de CPU automáticamente o ponga núcleos manualmente según sea necesario. +
+ +
+ Gráficos mejorados y compartición de GPU + + - View all graphics cards and %%VM|vm%%-assigned IP addresses in the %%VM|vm%% tab + - Soporte para objetivo ppc64 de %%QEMU|qemu%% y `qemu:override` + - Soporte de hiper-reloj para %%VMs|vm%% de Windows + - "Migratable" activado/desactivado para la CPU emulada + - Opciones de configuración de temporizador/desplazamiento + - No hay opciones de keymap/nogpu disponibles para casos de uso específicos + - Mejorada la selección y edición de iconos de %%VM|vm%% + - Advertencias al asignar la GPU primaria como paso a través (puede requerir `vBIOS`) + - Inicie las %%VMs|vm%% de Unraid en modo GUI con el controlador de video `QXL` + - Varias correcciones para problemas de ruta e icono en la vista `XML` +
+ +--- + +## Uso de GPUs virtuales y compartición de GPU + +Unraid ahora admite el compartimiento avanzado de GPU a través de `VirGL` y `QXL` para %%VMs|vm%% de Linux (y algunas GPUs Nvidia con el controlador `Nouveau`). + +- Para usar `VirGL`: establezca **Tarjeta Gráfica** en **Virtual** y **Controlador de video de la consola VM** en **VirtIO(3D)**. +- Para usar `QXL`: establezca **Tarjeta Gráfica** en **Virtual** y **Controlador de video de la consola VM** en **`QXL` (mejor)**. +- `VirGL` no se emite a un monitor físico y no es compatible con %%VMs|vm%% de Windows o complementos estándar de Nvidia. +- `QXL` admite multi-pantalla y memoria de video configurable. + +--- + +## Opciones avanzadas + +
+ Expanda esta sección para ver la orientación sobre las opciones más avanzadas + + Cambie a **Vista avanzada** en la página **Agregar VM** para acceder a configuraciones adicionales. + + Aquí están las opciones avanzadas más importantes, divididas en secciones enfocadas: + + **Modo CPU:** + + - **Paso a través del anfitrión**: Expone todas las funciones del CPU anfitrión a la %%VM|vm%% para un rendimiento máximo. + - **Emulado**: Usa un modelo de CPU genérico, reduciendo problemas de compatibilidad pero limitando el rendimiento. + + **Inflado de memoria:** + + - Establezca un valor de **Memoria Máxima** para habilitar la asignación dinámica de memoria (%%memory ballooning|memory-ballooning%%). + - No disponible para %%VMs|vm%% con dispositivos PCI asignados (por ejemplo, %%GPU passthrough|gpu-passthrough%%). + + **Tipo de máquina:** + + - **`i440fx`**: Default for Windows %%VMs|vm%%. Change only if you have %%GPU passthrough|gpu-passthrough%% issues. + - **`Q35`**: Predeterminado para Linux %%VMs|vm%% y recomendado para la mayoría de los sistemas operativos modernos, especialmente con %%GPU passthrough|gpu-passthrough%%. + + **Tipo de BIOS:** + + - **SeaBIOS**: BIOS tradicional para SOs heredados. + - **OVMF**: Se requiere BIOS %%UEFI|uefi%% para Windows 8+, la mayoría de las distribuciones modernas de Linux, y %%GPU passthrough|gpu-passthrough%%. + + :::note + El tipo de BIOS solo se puede configurar al crear una nueva %%VM|vm%%. + ::: + + **Extensiones Hyper-V:** + + - Para %%VMs|vm%% de Windows, active las extensiones de Hyper-V para mejorar la compatibilidad y el rendimiento. + + **ISO de controladores VirtIO:** + + - Anule el ISO %%VirtIO|virtio%% predeterminado si es necesario, especialmente para probar o usar controladores más nuevos. + + **Tipo de vDisco:** + + - **`RAW`**: Mejor rendimiento, pero menos flexible para instantáneas. + - **`QCOW2`**: Soporta instantáneas pero ofrece un rendimiento ligeramente inferior. + + **Mapeos VirtFS (VMs de Linux):** + + - Agregue mapeos %%VirtFS|virtfs%% (`9p`) múltiples para integrar el sistema de archivos entre el anfitrión e invitado. + - Consulte [la documentación %%QEMU|qemu%% 9p](http://wiki.qemu.org/Documentation/9psetup) para obtener detalles. + + **Configuraciones de red:** + + - Modifique la **dirección MAC de Red** o seleccione un **Puente de Red** alternativo. + - Haga clic en el símbolo de refrescar para generar automáticamente una nueva dirección MAC. + - Agregue interfaces de red virtuales adicionales según sea necesario. +
+ +:::info[Troubleshooting consejos] +- Si su %%VM|vm%% no se inicia, verifique dos veces sus rutas de ISO y %%vDisco|vdisk%%. +- Para %%GPU passthrough|gpu-passthrough%%, asegúrate de que tu hardware y configuraciones de BIOS soporten %%IOMMU|iommu%%/VT-d/AMD-Vi. +- Algunos dispositivos USB pueden no funcionar de manera confiable con el paso a través: pruebe y consulte los [foros de Unraid](https://forums.unraid.net/) para obtener consejos específicos de dispositivos. +::: + +--- + +## Binding de dispositivos PCI para paso a través + +Antes de poder asignar una GPU o cualquier dispositivo PCI a una %%máquina virtual|vm%%, es importante "vincular" el dispositivo al controlador **vfio-pci**. Este proceso oculta el dispositivo de Unraid y lo dedica exclusivamente a tu %%VM|vm%%. + +Para vincular un dispositivo PCI (GPU, controlador USB, NVMe, etc.) para la transferencia directa: + +1. Navegue a ***Herramientas → Dispositivos del Sistema*** en el %%WebGUI|web-gui%%. +2. Revise la lista de dispositivos PCI detectados y sus grupos %%IOMMU|iommu%%. +3. Marque la casilla junto a cada dispositivo que desee vincular a **vfio-pci** (para ocultarlo de Unraid). + - Tenga en cuenta que los dispositivos ya en uso por Unraid (como controladores de disco y tarjetas de red) no pueden ser seleccionados. + - Si selecciona una GPU, seleccione el dispositivo de sonido asociado. +4. Haga clic en **Vincular seleccionados a VFIO al inicio** para guardar sus cambios. +5. Reinicie su servidor para que el enlace surta efecto. + +:::caution +Si realizas cambios de hardware (como agregar o quitar dispositivos PCI), retorna a **Dispositivos del Sistema** para asegurar que los dispositivos correctos siguen vinculados. Si los dispositivos están desvinculados o mal vinculados, pueden no aparecer para la transferencia directa. +::: + +Después de vincular, los dispositivos vinculados aparecerán en el desplegable **Otros Dispositivos PCI** al editar o crear una %%VM|vm%%. + +
+ Solucionar problemas + + - Si ha utilizado anteriormente el complemento `VFIO-PCI` Config, desinstálelo; esta funcionalidad ahora está integrada. + - Para restablecer todos los enlaces, elimine `/boot/config/vfio-pci.cfg` y reinicie el sistema. + - Después de reiniciar, utilice el botón **Ver Registro `VFIO-PCI`** en la página de **Dispositivos del Sistema** para solucionar problemas avanzados. + - Recuerda que si vinculas tu única GPU, Unraid puede no iniciarse en la GUI. Asegúrate de planificar esto. + - Para más información, consulta la [guía oficial en los foros de Unraid](https://forums.unraid.net/topic/93781-guide-bind-devices-to-vfio-pci-for-easy-passthrough-to-vms/). +
+ +--- + +## Passthrough de GPU para máquinas virtuales + +%%GPU passthrough|gpu-passthrough%% allows you to assign a physical graphics card directly to a %%virtual machine (VM)|vm%%, providing near-native performance for gaming, creative work, or machine learning. + +:::info[Why ¿usar paso de GPU?] +- **Rendimiento:** acceso directo al hardware para aplicaciones exigentes. +- **Compatibilidad:** Ejecute cargas de trabajo intensivas en gráficos que requieren una GPU dedicada. +- **Flexibilidad:** Transforma tu servidor Unraid en una estación de trabajo multiusos. +::: + +

Prerequisitos

+ +**Hardware:** + +- CPU con soporte Intel VT-d o AMD-Vi (%%IOMMU|iommu%% habilitado en BIOS). +- GPU compatible con passthrough (ver [hardware probado por la comunidad](https://docs.google.com/spreadsheets/d/1LnGpTrXalwGVNy0PWJDURhyxa3sgqkGXmvNCIvIMenk/edit#ggid=0)). +- Una placa madre que aísle correctamente los dispositivos PCIe. + +**Software:** + +- Unraid 6.9+ con virtualización habilitada. +- %%OVMF|ovmf%% (%%UEFI|uefi%%) BIOS para %%VMs|vm%% (recomendado sobre %%SeaBIOS|seabios%%). + +Para configurar el passthrough de GPU: + +1. Asegúrate de que tu hardware soporte %%IOMMU|iommu%% y esté habilitado en tu BIOS. +2. Habilita las características de virtualización en BIOS (Intel VT-x/VT-d o AMD-v/AMD-vi). +3. Actualiza Unraid a la última versión estable. +4. Asigna la GPU a la %%VM|vm%% en la pantalla de creación o edición de %%VM|vm%% bajo la sección de tarjeta gráfica. +5. Asigna un teclado y un ratón USB a la %%VM|vm%% si usas %%GPU passthrough|gpu-passthrough%%. +6. Usa BIOS %%OVMF|ovmf%% para la %%VM|vm%% para mejor compatibilidad con %%GPU passthrough|gpu-passthrough%%. +7. Inicia la %%VM|vm%% y verifica que la GPU haya sido pasada correctamente. + +:::note +Algunas GPUs pueden requerir configuración adicional o inyección de ROM para un passthrough adecuado. +::: + +### Inyección de ROM manual + +Algunas GPU, especialmente ciertos modelos de NVIDIA, requieren un archivo ROM para ser proporcionado manualmente a la VM para que se inicialice correctamente. Esto es a menudo necesario cuando el firmware a bordo de la GPU no se transfiere correctamente por defecto, causando problemas como pantallas negras o fallos de arranque. La inyección manual de ROM es un último recurso después de probar ajustes de BIOS y configuraciones de VM. + +Para inyectar un ROM: + +1. **Descargar GPU ROM:** + - Visita el [TechPowerUp VGA BIOS database](https://www.techpowerup.com/vgabios/). + - Busca tu modelo de GPU y descarga el archivo ROM correcto. + - Guarda el rom en tu compartido de Unraid `isos` o `domains`. + +2. **Editar XML de %%VM|vm%%:** + - Detén la %%VM|vm%% y abre su configuración XML (**Editar XML** desde el menú contextual de la %%VM|vm%%). + - Ubica el bloque `` de la GPU y añade la etiqueta ``: + + ```xml + + + + +
+ + +
+ + ``` + +3. **Guardar y probar:** Haz clic en **Actualizar** e inicia la %%VM|vm%%. + +--- + +## Problemas comunes + +Esta sección cubre temas avanzados y soluciones para problemas comunes al gestionar %%máquinas virtuales (VM)|vm%% en Unraid. Expande las secciones a continuación para obtener instrucciones paso a paso y consejos de solución de problemas. + +### Expandir un vDisk + +
+ Haga clic para expandir/contraer + + Si tu %%VM|vm%% se está quedando sin espacio en disco, puedes aumentar el tamaño de su %%disco virtual (**vDisk**)|vdisk%% directamente desde el %%WebGUI|web-gui%%. + + Para expandir un %%vDisk|vdisk%%: + + 1. Ve a la pestaña **VMs** en el %%WebGUI|web-gui%%. + 2. Asegúrate de que la %%VM|vm%% esté detenida. + 3. Haz clic en el nombre de la VM para expandir sus detalles. + 4. Localiza el %%vDisk|vdisk%% que deseas expandir. Haz clic en el valor en el campo **Capacidad** para hacerlo editable. + 5. Introduce el nuevo tamaño deseado (ej., `100G` para 100 gigabytes) y presiona **Enter**. + 6. La nueva capacidad ya está establecida. + + :::note + No puedes reducir un %%vDisk|vdisk%% desde la interfaz de Unraid; solo se admite la expansión. + ::: + +

Ampliar la partición en el sistema operativo del huésped

+ + Después de cambiar el tamaño del %%vDisk|vdisk%%, inicia tu %%VM|vm%%. Debes expandir la partición dentro del sistema operativo del huésped para utilizar el nuevo espacio: + + - **Windows:** Usa la herramienta de administración de discos incorporada para extender tu partición. + + - **Linux (LVM):** Use herramientas como `fdisk`, `pvresize`, `lvextend` y `resize2fs` para expandir particiones y volúmenes lógicos. + + **Ejemplo:** + + ```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 + ``` + + Ajusta los nombres de los dispositivos según sea necesario para tu configuración. + + :::tip + Siempre realiza una copia de seguridad de tu %%VM|vm%% antes de hacer cambios en el disco. + ::: +
+ +### Atrapado en shell UEFI + +
+ Haga clic para expandir/contraer + + Si tu %%VM|vm%% inicia un shell %%UEFI|uefi%% en lugar de tu sistema operativo, puedes iniciar manualmente el proceso de arranque: + + En el indicador de shell %%UEFI|uefi%%, introduce: + + ```bash + fs0: + cd efi/boot + bootx64.efi + ``` + + La %%VM|vm%% ahora debería continuar iniciando tu sistema operativo. + + :::tip + Si esto ocurre con frecuencia, verifica el orden de arranque de tu VM y asegúrate de que el %%vDisk|vdisk%% o ISO correcto esté configurado como el dispositivo de arranque principal en la configuración de la VM. + ::: +
+ +### Pantalla en negro después de iniciar la VM + +
+ Haga clic para expandir/contraer + + Si tu %%VM|vm%% inicia pero la pantalla permanece en blanco: + + 1. **Verifica la configuración de BIOS:** + - Configura el gráfico primario en la GPU integrada (iGPU), no en la GPU passthrough. + - Actualiza la BIOS de la motherboard y GPU a las versiones más recientes. + + 2. **Ajustar configuración de %%VM|vm%%:** + - Cambia de %%SeaBIOS|seabios%% a %%OVMF|ovmf%% (%%UEFI|uefi%%) en la configuración de %%VM|vm%%. + - Cambia el **Tipo de Máquina** de i440fx a Q35. + + 3. **Inyección manual de ROM (ultimo recurso):** [Inyectar ROM de GPU manualmente](#injecion-manual-rom). +
+ +### Error: "No se pudo establecer IOMMU para el contenedor: operación no permitida" + +
+ Haga clic para expandir/contraer + + Este error generalmente indica conflictos de grupo %%IOMMU|iommu%% o remapitaje de interrupción faltante: + + 1. **Habilitar anulación de PCIe ACS:** + - Vaya a ***Configuración → VM Manager***. + - Configura **anulación de PCIe ACS** en *Descendente* o *Ambos*. + - Reinicia Unraid. + + 2. **Permitir interrupciones no seguras (avanzado):** + - Edita `syslinux.cfg` en tu memoria flash de Unraid: + + ```bash + append vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot + ``` + + - Utiliza esto solo si confías completamente en tus invitados %%VM|vm%%. + + :::note + Para explicaciones detalladas de los grupos %%IOMMU|iommu%%, recomendamos revisar [el blog de Alex Williamson](http://vfio.blogspot.com/2014/08/iommu-groups-inside-and-out.html). + ::: +
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx new file mode 100644 index 0000000000..d88bf0a6b6 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx @@ -0,0 +1,287 @@ +--- +sidebar_position: 3 +sidebar_label: Ventanas en una MV +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import WindowsVirtioAutomatic from './partials/windows-virtio-automatic.mdx'; +import WindowsVirtioManual from './partials/windows-virtio-manual.mdx'; +import WindowsUpgradeInPlace from './partials/windows-upgrade-in-place.mdx'; +import WindowsUpgradeCleanInstall from './partials/windows-upgrade-clean-install.mdx'; + +# Ventanas en una MV + +Windows es uno de los sistemas operativos invitados más populares para los usuarios de Unraid, especialmente para juegos, productividad y soporte de aplicaciones heredadas. Aquí están las consideraciones esenciales para ejecutar Windows %%VM|vm%%. + +:::caution[Before comienza] +- Microsoft terminó el soporte para Windows 7 en enero de 2020, Windows 8.1 en enero de 2023 y Windows 10 en octubre de 2025. Use Windows 11 (o posterior) o Server 2022 (o posterior) para recibir actualizaciones de seguridad continuas. +- Siempre pruebe la estabilidad del %%VM|vm%% antes de activar su licencia de Windows. +- Para %%GPU passthrough|gpu-passthrough%%, use %%OVMF|ovmf%% (%%UEFI|uefi%%) BIOS con Windows 11 o más reciente. +::: + +### Configuraciones compatibles + +| Edición de Windows | BIOS recomendado | Tipo de máquina | Notas | +| ------------------- | ------------------ | ------------------------------- | ------------------------------------------ | +| Windows 11 | %%OVMF\|ovmf%% TPM | %%Q35\|q35%% | Requiere emulación TPM 2.0 | +| Windows Server 2022 | %%OVMF\|ovmf%% | %%Q35\|q35%% | Ideal para cargas de trabajo empresariales | +| Windows 10 | %%OVMF\|ovmf%% | %%Q35\|q35%% | Obsoleto (EOL oct 2025) | +| Windows Server 2019 | %%OVMF\|ovmf%% | %%i440fx\|i440fx%%/%%Q35\|q35%% | Compatible pero no recomendado | + +--- + +### Gestión de controladores VirtIO + +Windows requiere controladores para-virtualizados para un rendimiento óptimo con la pila de virtualización de Unraid. + +Para instalar o actualizar controladores: + + + + + + + + + + + +:::tip +Usando Unraid 7 o superior, puedes inyectar automáticamente los controladores %%VirtIO|virtio%% durante la instalación de Windows. Habilita esto en ***Configuración de VM → Opciones avanzadas***. +::: + +--- + +### Configuración de hibernación + +La hibernación te permite guardar todo el estado de tu %%VM|vm%% de Windows, incluyendo aplicaciones abiertas y documentos, en el disco. Esto te permite apagar la %%VM|vm%% sin perder trabajo. Al resumir, Windows restaura todo exactamente como lo dejaste, omitiendo el proceso de arranque normal. Esta característica es útil cuando necesitas reiniciar o apagar tu host de Unraid o quieres ahorrar energía mientras mantienes el estado de tu %%VM|vm%% intacto. + +:::note[Benefits de la hibernación] +- Ahorre energía apagando un %%VM|vm%% inactivo sin perder progreso +- Reanude el trabajo rápidamente después del mantenimiento del host o de las actualizaciones +- Reduzca el desgaste de los SSD en comparación con los apagados y reinicios completos frecuentes +::: + +Para usar la hibernación de manera confiable, debes instalar el %%QEMU|qemu%% %%Guest Agent|guest-agent%% en tu %%VM|vm%% de Windows. Este agente permite que Unraid se comunique con la %%VM|vm%% para operaciones avanzadas como hibernación, apagado y reportes de estadísticas en vivo. + +
+ Cómo instalar el %%QEMU|qemu%% %%Guest Agent|guest-agent%% - Haz clic para expandir/colapsar + + 1. Inicie su %%VM|vm%% de Windows con el ISO de controladores %%VirtIO|virtio%% montado. + 2. Abra el **Explorador de archivos** y navegue a los medios de controladores %%VirtIO|virtio%%. + 3. Abra la carpeta `guest-agent`. + 4. Ejecuta `qemu-ga-x64.msi` para instalar el agente. (Es posible que brevemente veas una caja de comandos; no aparecerá ningún diálogo de confirmación.) +
+ +
+ Cómo habilitar la hibernación en Windows - Haz clic para expandir/colapsar + + 1. Abra el **Panel de control** y busque **Opciones de energía**. + 2. Haga clic en **Elija qué hacen los botones de encendido**. + 3. Haga clic en **Cambiar configuraciones que actualmente no están disponibles** para desbloquear configuraciones de apagado. + 4. Marque la opción **Hibernar**. + 5. Haga clic en **Guardar cambios**. + + La opción **Hibernar** ahora aparecerá en el menú de energía de Windows. +
+ +:::important[What ¿si la hibernación falla?] +Si tu %%VM|vm%% no hiberna o retoma correctamente, podrías perder trabajo no guardado o enfrentar una restauración fallida. Siempre guarda datos importantes antes de hibernar. Si los problemas persisten, asegúrate de que el %%QEMU|qemu%% %%Guest Agent|guest-agent%% esté instalado y actualizado, y verifica el registro de eventos de Windows por errores. +::: + +--- + +### Ajuste de rendimiento + +Optimizar tu %%VM|vm%% de Windows puede mejorar la capacidad de respuesta, reducir el uso del disco y evitar problemas comunes con el paso de dispositivos o apagado. Estas configuraciones son opcionales y pueden aplicarse según sea necesario. + +#### Desactivar inicio rápido + +Deshabilitar el inicio rápido puede ayudar a prevenir problemas con el paso de dispositivos. Asegura que el hardware de tu %%VM|vm%% se inicialice correctamente cada vez que se inicia. Aunque esta configuración está diseñada para PCs físicas, en un entorno virtual, a menudo puede causar más problemas que beneficios. + +
+ Cómo desactivar el inicio rápido - Haz clic para expandir/colapsar + + 1. Abra el **Panel de control** y busque **Energía**. + 2. Haga clic en **Elija qué hacen los botones de encendido**. + 3. Haga clic en **Cambiar configuraciones que actualmente no están disponibles**. + 4. Desmarque **Activar inicio rápido** en **Configuraciones de apagado**. + 5. Haga clic en **Guardar cambios**. +
+ +#### Desactivar hiberfil.sys + +La hibernación en Windows crea un archivo oculto grande llamado `hiberfil.sys`. Este archivo puede consumir espacio significativo en el disco e incrementar la actividad del disco en tu %%VM|vm%%. Si no dependes de la hibernación, deshabilitarla liberará espacio de almacenamiento y reducirá la actividad de E/S innecesaria. + +
+ Cómo desactivar la hibernación y eliminar hiberfil.sys - Haz clic para expandir/colapsar + + 1. Haga clic derecho en el botón **Inicio** y seleccione **Terminal de Windows (Admin)** o **Símbolo del sistema (Admin)**. + 2. Escriba: `powercfg /h off` + 3. Presiona Enter y reinicia tu %%VM|vm%%. El archivo `hiberfil.sys` se eliminará de tu unidad C:. +
+ +#### Desactivar la indexación de Windows + +Windows Search indexing continuously scans your %%virtual machine|vm%%'s storage to catalog files for faster search results. However, on a %%virtual machine|vm%%, this can cause unnecessary disk I/O, slow down performance, and increase wear on your physical storage, especially SSDs in your [%%cache pool|cache-pool%%](../manage-storage/cache-pools.mdx). + +
+ Cómo desactivar la indexación de Windows - Haz clic para expandir/colapsar + + 1. Presione **Windows + R** para abrir el cuadro de diálogo Ejecutar, escriba `services.msc` y presione Enter. + 2. En la ventana de Servicios, desplácese hacia abajo, haga clic derecho en **Windows Search** y luego seleccione **Detener**. + 3. Haga doble clic en **Windows Search**, cambie el **Tipo de inicio** a **Deshabilitado** y haga clic en **OK**. +
+ +#### Desactivar desfragmentación automática del disco + +Windows está diseñado para desfragmentar automáticamente discos duros físicos en un horario regular. En una %%VM|vm%% - especialmente cuando se utiliza almacenamiento SSD o %%vDisks|vdisk%% de provisión delgada - la desfragmentación automática es innecesaria y también puede reducir la vida útil del disco y degradar el rendimiento. + +
+ Cómo desactivar la desfragmentación automática del disco - Haz clic para expandir/colapsar + + 1. Abra el **Explorador de archivos**, haga clic derecho en la unidad C: y seleccione **Propiedades**. + 2. Vaya a la pestaña **Herramientas** y haga clic en **Optimizar**. + 3. Haga clic en **Cambiar configuraciones**. + 4. Desmarque **Ejecutar en un horario** y haga clic en **OK**. +
+ +#### Habilitar modo de energía de alto rendimiento + +Las características de gestión de energía en Windows están diseñadas para laptops y escritorios para ahorrar energía. En un entorno %%VM|vm%%, estas características pueden disminuir innecesariamente el rendimiento o suspender tu %%VM|vm%%, haciéndola menos receptiva y difícil de gestionar. + +Habilitar el modo **Alto rendimiento** asegura que su %%VM|vm%% siempre funcione a toda velocidad y es menos probable que se pause o se suspenda inesperadamente. + +
+ Cómo habilitar el modo de energía de alto rendimiento - Haz clic para expandir/colapsar + + 1. Abra el **Panel de control** y busque "energía". + 2. Haga clic en **Elegir un plan de energía**. + 3. Seleccione **Alto rendimiento** bajo **Planes preferidos**. +
+ +#### Habilitar acceso remoto de escritorio + +El protocolo de escritorio remoto (RDP) te permite acceder a tu %%VM|vm%% de Windows desde otro dispositivo. Ofrece mejor rendimiento y compatibilidad en comparación con %%VNC|vnc-session%%. Ten en cuenta que RDP solo es compatible con las ediciones Professional y Enterprise de Windows. Además, tu cuenta de usuario de Windows **debe** tener una contraseña establecida. + +:::caution +RDP no está disponible en las ediciones Home de Windows. Siempre establece una contraseña segura para tu cuenta de usuario de Windows antes de habilitar RDP. +::: + +
+ Cómo habilitar el acceso a escritorio remoto (RDP) - Haga clic para expandir/colapsar + + Para habilitar el acceso RDP, siga estos pasos: + + 1. Presione **Windows + I** para abrir Configuración, luego navegue a ***Sistema → Acerca de*** y haga clic en **Configuraciones avanzadas del sistema**. + 2. En la ventana Propiedades del sistema, haga clic en la pestaña **Remoto**, luego seleccione **Habilitar escritorio remoto**. + 3. Haga clic en **OK** para confirmar los cambios. + 4. Desde su dispositivo cliente, use un cliente RDP de Microsoft para conectarse a la **dirección IP del %%VM|vm%%** (no al servidor Unraid). + + :::tip + Los clientes oficiales de Microsoft RDP están disponibles para Windows, Mac, Android e iOS. Asegúrate de que tu %%VM|vm%% esté en un puente de red que permita acceso a LAN. + ::: +
+ +#### Solucionar problemas de audio HDMI con interrupciones MSI + +Si estás teniendo problemas con el audio HDMI en una %%VM|vm%% de Windows que usa %%GPU passthrough|gpu-passthrough%% (lo cual ocurre frecuentemente con tarjetas gráficas NVIDIA), habilitar las Interrupciones Señaladas por Mensaje (MSI) podría ayudar. MSI mejora la gestión de interrupciones para los dispositivos pasantes. + +
+ Cómo habilitar las interrupciones MSI - Haz clic para expandir/colapsar + + :::caution + Haz una copia de seguridad de tu %%VM|vm%% antes de realizar cualquier cambio en el registro. Las modificaciones incorrectas pueden causar inestabilidad en el sistema. + ::: + + 1. **Verifique la capacidad de MSI:** + - Inicie su %%VM|vm%% con %%GPU passthrough|gpu-passthrough%% habilitado. + - Accede a Unraid a través de [WebTerminal o SSH](../../system-administration/advanced-tools/command-line-interface.mdx). + - Ejecute el comando `lspci -v -s 01:00.0` (reemplace `01:00.0` con la dirección PCI de su GPU). + - Busque la línea: `Capacidades: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+`. + + 2. **Habilitar MSI en Windows:** + - Si MSI muestra `Enable-`, sigue [la guía de Microsoft](https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/enabling-message-signaled-interrupts-in-the-registry) o usa la [herramienta de modo MSI](https://forums.guru3d.com/threads/windows-line-based-vs-message-signaled-based-interrupts-msi-tool.378044/) para modificar la configuración del registro de Windows. + - Reinicie el %%VM|vm%% después de hacer los cambios. + + Para obtener más detalles técnicos, consulta [explicación de las interrupciones VFIO](https://vfio.blogspot.com/2014/09/vfio-interrupts-and-how-to-coax-windows.html). +
+ +--- + +### Actualización a Windows 11 + +Windows 11 requiere TPM 2.0 y Secure Boot. El BIOS **OVMF-TPM** de Unraid proporciona el soporte TPM virtual necesario para estos requisitos. + +:::important[Before actualizando] +- Cree una copia de seguridad completa de su %%VM|vm%%. +- Asegúrese de que Unraid esté ejecutando la versión 6.10 o posterior. +- Verifique que su %%VM|vm%% de Windows 10 cumpla con los [requisitos del sistema de Windows 11](https://www.microsoft.com/en-us/windows/windows-11-specifications). +::: + +Para agregar soporte TPM: + +1. Apaga tu Windows 10 %%VM|vm%%. +2. Edita la configuración del %%VM|vm%%. +3. Cambia **BIOS** de *%%OVMF|ovmf%%* a *%%OVMF|ovmf%%-TPM*. +4. Guarda los cambios y inicia el %%VM|vm%%. + +#### Métodos de actualización + + + + + + + + + + + +## Ampliación de particiones vDisk de Windows VM + +:::caution[Data riesgo de pérdida] +Ampliar o modificar %%vDisk|vdisk%% y los diseños de particiones puede llevar a una pérdida de datos irreversible si no se realiza cuidadosamente. Siempre crea una copia de seguridad completa o un correo instantáneo de tu %%VM|vm%% antes de proceder. +::: + +Después de expandir tu %%vDisk|vdisk%% siguiendo los pasos en [Expandir un vDisk](../create-virtual-machines/vm-setup.mdx#expand-a-vdisk), puedes encontrar un problema donde la partición de recuperación predeterminada de Windows te impide expandir fácilmente tu partición de sistema (C:) para utilizar el nuevo espacio. Para resolver este problema, necesitas eliminar la partición de recuperación y luego usar el Administrador de discos de Windows para expandir la partición. + +
+ ![Redimensionar vDisk 2](/img/Resize_vdisk_2.png) +
+ +Después de completar la expansión inicial de %%vDisk|vdisk%%: + +1. Inicia tu Windows VM. +2. **Abre el símbolo del sistema:** Presiona la tecla de Windows, escribe `cmd`, y presiona Enter. +3. **Lanza diskpart:** Escribe `diskpart` y presiona Enter. +4. **Lista discos:** Escribe `list disk` y presiona Enter. +5. **Selecciona el disco expandido:** Escribe `select disk #`, sustituyendo `#` por el número correcto del disco. +6. **Lista particiones:** Escribe `list partition` y presiona Enter. +7. **Identifica la partición de recuperación:** Busca la partición de recuperación que sigue a tu partición principal. +8. **Seleccione y elimine la partición de recuperación:** + - Escribe `select partition #`, sustituyendo `#` por el número de la partición de recuperación. + - Escribe `delete partition override` y presiona Enter. +9. **Expande la partición C:** + - Haz clic derecho en el menú de Inicio y selecciona **Administración de discos**. + - Haga clic derecho en la partición que desea extender (usualmente C:) y elija **Extender volumen...**. + - Sigue las indicaciones para usar el espacio no asignado. + +
+
+ Redimensionar vDisk 3 +
+ +
+ Redimensionar vDisk 4 +
+
+ +:::tip +Solo necesitas eliminar la partición de recuperación si bloquea el acceso al espacio libre adyacente. Si el espacio no asignado ya está al lado de tu partición C:, puedes extenderla sin eliminar nada. +::: + +:::warning +Los cambios realizados en las particiones del disco son permanentes y no se pueden deshacer. Asegúrate de que tus datos estén respaldados de manera segura antes de eliminar cualquier partición. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json new file mode 100644 index 0000000000..fbeaaf959e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Personalizar tu experiencia", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/image.png b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/image.png new file mode 100644 index 0000000000000000000000000000000000000000..1fc01b17c6607b200175785113b5810c2f0454ef GIT binary patch literal 562 zcmV-20?qx2P)3>* zO-~b16o${(X{UGQeoUoPkmG!bH@ z#iFH&@ejCiVQ}rrwg17rMiUXP8N`+tIC&N)Ie8ZEn*;2qL70vYXcv<@c<_IBP*vuU z3Ah#T;4Xkn!~b*Dx^XT9qCzPH3A+$c83TlAZm6%CAE-`8s@4HFCqs|U$9OHbQ_Gby zhKy+?8@@26%a{U)%B#z9{$`f9ihOJ4fc6Z3UEE!>c(d^J@#Ij@zqe+6x^qVG5&*Z- zSTgy`{Db+ys}n{g8?I!-*CvenbA!B=`}I7xkkoxD`~GxldnI||uds2+t8J(>F0$*9IcV>Qn!CM?02_Dot7}6 zvHqS+td~;O=l6ZSo90`^Wh*iq^rxeN4w+c*aL`XE1C=p^se3=4%S&|4_vPW)#Z(Xk z*)5YUh + ![Idiomas - Aplicaciones comunitarias](/img/languages_CA.png) + + +4. Encuentra tu paquete de idioma preferido y haz clic en el botón **Descargar** ![Descargar](/img/download_button_icon.png). +5. El paquete de idioma será instalado y estará disponible para selección. + +También puedes usar la barra de búsqueda en Community Applications para encontrar paquetes de idiomas. + +:::tip[How para Volver al Inglés] +Para volver al inglés, haz clic en el ![interruptor de vuelta](/img/switch_toggle_icon.png) **interruptor de vuelta** en la esquina superior derecha del %%WebGUI|web-gui%%. Este botón alterna entre el inglés y el último idioma seleccionado. +::: + +## Requisitos del desarrollador para el soporte multilingüe + +Para habilitar el soporte multilingüe en tu plugin Unraid, asegúrate de que tu plugin cumpla con los siguientes requisitos: + +- Usa las funciones de idioma incorporadas de Unraid para todo el texto visible por el usuario. +- Proporciona un archivo maestro de traducción en inglés como referencia para los traductores de la comunidad. +- Permite a los miembros de la comunidad contribuir con traducciones para otros idiomas soportados. + +Si bien no existe un requisito estricto para que los plugins soporten múltiples idiomas, hacerlo mejora la accesibilidad y usabilidad para la comunidad global de Unraid. Los plugins sin soporte multilenguaje seguirán funcionando, pero todo el texto de la interfaz aparecerá en inglés (o en el idioma codificado por el desarrollador). + +:::note +Si necesitas ayuda o deseas contribuir con traducciones, visita la [Sección Multilingüe de los foros de Unraid](https://forums.unraid.net/forum/75-multi-language-section/) para conectarte con otros usuarios que hablen tu idioma. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx new file mode 100644 index 0000000000..84e109be54 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx @@ -0,0 +1,3 @@ +1. Reinicia tu servidor Unraid. +2. En el menú de arranque, selecciona **Unraid OS Modo Seguro**. +3. Presiona Enter para continuar. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx new file mode 100644 index 0000000000..ad0fe30f05 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx @@ -0,0 +1,5 @@ +Recomendado, ya que ni siquiera requiere una pantalla conectada a tu servidor. + +1. En el **%%WebGUI|web-gui%%**, ve a ***Principal → Operación del Array***. +2. Marca la casilla **Reiniciar en modo seguro**. +3. Haz clic en **Reiniciar** para reiniciar tu servidor directamente en el Modo Seguro - sin necesidad de teclado o monitor. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx new file mode 100644 index 0000000000..a23866bf51 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx @@ -0,0 +1,69 @@ +--- +sidebar_position: 1 +sidebar_label: Plugins +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import SafeModePreferred from './partials/safe-mode-preferred.mdx'; +import SafeModeAlternative from './partials/safe-mode-alternative.mdx'; + +# Plugins + +Los plugins son extensiones de software que se integran directamente con el sistema operativo Unraid. Te permiten mejorar las características de tu sistema o añadir funcionalidades avanzadas. + +:::tip +Siempre que puedas, utiliza [contenedores Docker](../run-docker-containers/overview.mdx) para aplicaciones o servicios. Reserva los plugins para funciones que requieran integración directa con Unraid OS. +::: + +## Cuándo usar complementos + +Los complementos son adecuados para las siguientes situaciones: + +- Servicios o mejoras a nivel de sistema que necesitan acceso directo a Unraid OS o el %%WebGUI|web-gui%%. +- Funciones que no pueden ser proporcionadas como contenedores Docker. + +Es recomendable evitar usar complementos para aplicaciones de propósito general que pueden ejecutarse de forma segura en contenedores aislados. + +## Consideraciones sobre los complementos + +Antes de instalar un complemento, considera estos aspectos: + +| Pros | Contras | +| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | +| Integración profunda con Unraid OS y el %%WebGUI\|web-gui%% | Puede causar inestabilidad en el sistema, especialmente después de actualizaciones del OS. | +| Habilita características a nivel de hardware y almacenamiento. | Acceso completo al sistema de archivos aumenta los riesgos de seguridad. | +| A menudo son de código abierto para transparencia. | Requiere mantenimiento manual y verificaciones de compatibilidad. | +| Necesario para algunas características avanzadas de almacenamiento o red. | | + +:::important[Security consideraciones] +- Solo instala complementos de fuentes confiables o desarrolladores conocidos. +- Investiga cada complemento antes de instalar; verifica la opinión de la comunidad y el historial de actualizaciones. +- Mantén los complementos actualizados y revisa regularmente los complementos instalados para su compatibilidad. +::: + +## Gestión de complementos + +Puedes gestionar los complementos desde la pestaña **Complementos** en el **%%WebGUI|web-gui%%** de Unraid. + +Si un complemento está disponible en **[Aplicaciones de la Comunidad](../run-docker-containers/community-applications.mdx)**, se recomienda instalarlo desde la pestaña **Apps** para una mayor verificación y comprobación de compatibilidad. + +:::note +A medida que Unraid continúa evolucionando, algunas funciones de los plugins pueden ser añadidas al sistema operativo base. Las Aplicaciones Comunitarias solo ofrecerán plugins que se consideren compatibles con tu versión actual, pero no eliminarán automáticamente los plugins incompatibles ya instalados. Antes de actualizar Unraid, lee las Notas de la Versión del destino para verificar si hay notas especiales relacionadas con tus plugins instalados. +::: + +## Solucionar problemas con el modo seguro + +Si tu sistema se vuelve inestable después de instalar o actualizar plugins, puedes solucionar los problemas usando el **Modo Seguro**. El Modo Seguro carga solo los componentes esenciales y deshabilita todos los plugins. + +Para iniciar en modo seguro: + + + + + + + + + + diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json new file mode 100644 index 0000000000..efdb517ef4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Gestionar almacenamiento", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx new file mode 100644 index 0000000000..098225a9d3 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx @@ -0,0 +1,119 @@ +--- +sidebar_position: 5 +sidebar_label: Apple Time Machine +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Apple Time Machine + +Time Machine de Apple es una herramienta de respaldo que viene con cada Mac. Facilita la protección de tus archivos, aplicaciones y configuraciones del sistema al respaldarlos automáticamente. Al conectar Time Machine a tu servidor Unraid, puedes almacenar estas copias de seguridad de manera segura en tu propio hardware. Esta configuración no solo te brinda más control, sino que también permite una escalabilidad más fácil y mayor tranquilidad. + +::::note[macOS compatibilidad] +Esta guía aplica a las versiones de macOS Ventura (13.x), Sonoma (14.x) y Sequoia (15.x). Algunas funciones, como las mejoras de %%SMB|samba%% y el soporte de Time Machine sobre %%SMB|samba%%, requieren versiones de macOS que soporten estos protocolos. + +Para obtener los mejores resultados, mantén tu Mac actualizado a la última versión de macOS que sea compatible con tu hardware. +:::caution[consideraciones de macOS Sequoia (15.x)] +Algunos usuarios reportan problemas intermitentes con Time Machine y shares de red en macOS Sequoia. Si experimentas fallos de respaldo, considera usar el [contenedor Docker de Time Machine](https://unraid.net/community/apps?q=time+machine#r) como alternativa. +::: +:::: + +::: + +::: + +::: + +::: + +## Creando un recurso compartido de Time Machine + +:::caution[Before comienza] +Asegúrate de que **%%SMB|samba%%** esté habilitado en el %%WebGUI|web-gui%%: + +1. Ve a ***Ajustes → SMB*** bajo “Servicios de Red”. +2. Configura **Habilitar %%SMB|samba%%** a **Sí** (debes detener el %%array|array%% para cambiar esto). +3. Configura **Interoperabilidad mejorada con macOS** a **Sí**. + +
+ ![Interoperabilidad mejorada con macOS](/img/enhancedmacos.png) +
+::: + +Para crear un recurso compartido de Time Machine: + +1. En el %%WebGUI|web-gui%%, ve a **Compartidos** y haz clic en **Agregar %%user share|user-share%%**. + +2. Configura los siguientes ajustes: + + | Configuración | Descripción | + | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | **nombre del recurso compartido de %%User share\|user-share%%** | Nombre su %%user share\|user-share%% (ej., Time Machine). | + | **Espacio libre mínimo** | Establecer en **1** (1 KB) para obtener los mejores resultados. Esto evita que Time Machine falle cuando los discos se acercan a su capacidad. | + | **Disco(s) incluido(s)** | Seleccione el/los disco(s) en el %%array\|array%% para usar con el %%user share\|user-share%% de Time Machine. | + | **Habilitar copia en escritura** | Mantén en **Auto** para el mejor rendimiento. | + | **exportación de %%SMB\|samba%%** | Configura a **Sí (Time Machine)** para habilitar el soporte de Time Machine. | + | **Tamaño de volumen de Time Machine** | Configúralo al tamaño máximo deseado o deja sin ajustar. Si no configuras el espacio mínimo libre en 1, aplica el recurso compartido primero, luego vuelve a editar y establece el tamaño del volumen menor que el espacio mínimo libre calculado que aparece. | + | **Configuración de seguridad** | Configure los parámetros de seguridad de %%SMB\|samba%% según lo deseado. | + +3. Haz clic en **Aplicar** para crear el %%user share|user-share%%. + +Para más detalles sobre la creación y gestión de recursos compartidos, consulta [User shares](./shares.mdx). + +## Conectar desde macOS + +Para conectar a tu %%user share|user-share%% desde tu Mac: + +1. En **Finder**, pulsa **Comando + K** para abrir la ventana "Conectar al Servidor". +2. Introduce la dirección %%SMB|samba%% de tu servidor Unraid. Por ejemplo, usa el formato `smb://[server-ip]/[nombre del recurso Time Machine]` y haz clic en **Conectar**. +3. Cuando se te pida, ingresa tu nombre de usuario y contraseña de Unraid que tiene acceso al recurso, luego haz clic en **Conectar**. +4. Abre **Ajustes del sistema** si estás usando macOS Ventura 13.0 o posterior, o **Preferencias del sistema** si usas macOS Monterey 12.x o anterior. Luego navega a **Time Machine**. +5. Haz clic en **Seleccionar Disco** o **Agregar Disco de Respaldo**, elige tu %%user share|user-share%% de Time Machine en Unraid, y luego haz clic en **Usar Disco**. +6. (Opcional) Si deseas proteger tu respaldo con una contraseña, habilita **Cifrar respaldos**. +7. Si se te pide, confirma la conexión y vuelve a ingresar tus credenciales de %%root user|root-user%% de Unraid si es necesario. +8. Time Machine iniciará automáticamente la copia de seguridad inicial. Ten en cuenta que la primera copia de seguridad puede tardar un poco, pero las futuras serán más rápidas ya que son incrementales. + +:::tip +Para tener más control sobre la programación y opciones de respaldo, considera usar una herramienta de terceros como [Time Machine Editor](https://tclementdev.com/timemachineeditor/). + +
+ ![Editor de Time Machine](/img/TimeMachineEditor.png) +
+::: + +## Múltiples configuraciones de Time Machine + +:::tip +Para familias o entornos con múltiples Macs, este método ofrece una separación clara de las copias de seguridad, mejora la seguridad y simplifica la gestión. +::: + +Para crear copias de seguridad separadas para diferentes usuarios o Macs en tu servidor Unraid: + +1. **Crea cuentas de %%root user|usuario root%% únicas en Unraid** para cada persona o Mac que respalde datos. Por ejemplo, usuarios llamados `larry`, `curly`, y `moe`. Esto asegura que cada usuario tenga su propia identidad y permisos. + +2. **Crea recursos %%user shares|compartidos de usuario%% individuales de Time Machine** para cada usuario, nombrándolos claramente para coincidir con el usuario, como `tm-larry`, `tm-curly`, y `tm-moe`. Mantener los recursos compartidos separados ayuda a gestionar el almacenamiento y el acceso de cada usuario. + +3. **Asigna permisos de usuario apropiados** para cada %%user share|user-share%%: + - Configura los ajustes de seguridad de %%SMB|samba%% del %%user share|user-share%% para garantizar que solo el usuario correspondiente tenga acceso. + - Confirma que solo el usuario deseado pueda leer y escribir en su Time Machine %%user share|user-share%%. + +4. **Configura Time Machine en cada Mac** para conectar a su %%user share|user-share%% designado: + - En cada Mac, conecta al servidor Unraid usando la ruta %%SMB|samba%% para su %%user share|user-share%% específico (ej., `smb://unraid-server/tm-larry`). + - Sigue los pasos habituales de configuración de Time Machine para seleccionar el %%user share|user-share%% como el disco de backup. + +5. **Monitorea y gestiona el uso de almacenamiento**: + - Opcionalmente, puedes establecer límites de tamaño de volumen en cada %%user share|user-share%% de Time Machine para evitar que un usuario use demasiado espacio. + - Revisa regularmente el uso y ajusta las cuotas según sea necesario. + +Para más información sobre la gestión de usuarios y seguridad, consulta [Gestión de usuarios](../../system-administration/secure-your-server/user-management.mdx). + +## Solución de problemas + +Si las copias de seguridad de Time Machine fallan o se vuelven poco confiables: + +1. **Prueba el contenedor de Docker de Time Machine**: [Disponible a través de Community Applications](https://unraid.net/community/apps?q=time+machine#r), esta opción puede proporcionar copias de seguridad más estables que los %%user shares|user-share%% directos de %%SMB|samba%%. +2. **Verifica el firewall de macOS**: Desactiva temporalmente el firewall para ver si está bloqueando conexiones. +3. **Crea un nuevo destino de copia de seguridad**: Elimina y recrea el %%user share|user-share%% de Time Machine si los problemas persisten. + +Para ayuda adicional con la resolución de problemas, consulta [Resolución de problemas](../../troubleshooting/troubleshooting.mdx) o visita los [foros de Unraid](https://forums.unraid.net/). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx new file mode 100644 index 0000000000..7746c9010d --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx @@ -0,0 +1,975 @@ +--- +sidebar_position: 2 +sidebar_label: Configuración de la matriz +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import AddDataDiskParityProtected from './partials/add-data-disk-parity-protected.mdx'; +import AddDataDiskNoParity from './partials/add-data-disk-no-parity.mdx'; +import ParitySwapWhat from './partials/parity-swap-what.mdx'; +import ParitySwapWhen from './partials/parity-swap-when.mdx'; +import RemoveDataDiskStandard from './partials/remove-data-disk-standard.mdx'; +import RemoveDataDiskParityPreserve from './partials/remove-data-disk-parity-preserve.mdx'; +import ArrayCheckParity from './partials/array-check-parity.mdx'; +import ArrayCheckRead from './partials/array-check-read.mdx'; +import TroubleshootMissingDisks from './partials/troubleshoot-missing-disks.mdx'; +import TroubleshootDeviceLimit from './partials/troubleshoot-device-limit.mdx'; +import TroubleshootLicenseIssues from './partials/troubleshoot-license-issues.mdx'; +import TroubleshootKeyServer from './partials/troubleshoot-key-server.mdx'; +import TroubleshootWithdrawnRelease from './partials/troubleshoot-withdrawn-release.mdx'; + +# Configuración de la matriz + +El sistema de almacenamiento de Unraid combina flexibilidad con protección de datos mediante su arquitectura de %%array|array%% y %%cache|cache%%. El %%array|array%% gestiona su almacenamiento principal con protección de %%paridad|parity%% opcional, mientras que los grupos de caché aceleran el rendimiento. + +A continuación se presentan algunos principios importantes para la configuración de la matriz: + +
+ Siempre use su(s) unidad(es) más grandes para la paridad. + + Cuando añada más discos a su %%array|array%% más tarde, recuerde que no puede usar un disco de datos que sea más grande que sus %%parity disks|parity-drives%%. Es una buena idea comprar el disco duro más grande para sus %%parity disks|parity-drives%% al principio. De esta manera, no estará limitado por tamaños más pequeños cuando expanda más tarde. + + Si usa dos %%parity disks|parity-drives%%, pueden ser de diferentes tamaños. Sin embargo, tenga en cuenta que ningún disco en su %%array|array%% puede ser más grande que el más pequeño de los %%parity disks|parity-drives%% que tenga. +
+ +
+ No use SSDs en el array - guárdelos para pools o dispositivos no asignados. + + Unraid no admite operaciones TRIM o Discard para SSDs en el array principal. Con el tiempo, esto causará que el rendimiento de los SSD se degrade si se utilizan como miembros del array. Para obtener los mejores resultados, use SSDs en %%cache pools|cache-pool%% o como dispositivos no asignados, donde estas funciones son compatibles y se mantiene el rendimiento a largo plazo. La mayoría de los SSD modernos, incluidos los NVMe, funcionan bien en estos roles. +
+ +
+ Usar un cache mejorará el rendimiento de escritura del array. + + En lugar de escribir directamente en el almacenamiento principal, los datos se envían primero a un disco dedicado o a un grupo de discos. Estos datos luego se mueven al almacenamiento principal en horarios programados, generalmente una vez al día a las 3:40 AM. Lo mejor de todo es que los datos guardados en la %%cache|cache%% aún aparecen a través de sus %%user shares|user-share%%, por lo que no tiene que cambiar cómo accede a sus archivos. +
+ +
+ Crear un pool de cache ayuda a mantener seguros sus datos en cache. + + Usar solo un dispositivo de cache pone en riesgo sus datos en cache hasta que se muevan al array principal. Para proteger sus datos en todo momento, use múltiples dispositivos configurados como un %%cache pool|cache-pool%%. Esta configuración proporciona redundancia para los datos en cache, reduciendo la posibilidad de pérdida de datos debido a una falla del dispositivo de cache. +
+ +
+ Los dispositivos de cache SSD son excelentes para apps y máquinas virtuales. + + El uso de SSDs ayuda a que las aplicaciones y las máquinas virtuales (VMs) funcionen más rápido porque pueden acceder a los datos más rápidamente. Los SSDs funcionan bien en un %%cache pool|cache-pool%%, brindándole una excelente combinación de velocidad, eficiencia y seguridad de datos. +
+ +
+ El cifrado está desactivado por defecto. + + Si desea utilizar el cifrado en su sistema, debe reformatear el disco con un tipo de sistema de archivos cifrado; este proceso elimina todos los datos existentes en el disco. Antes de habilitar el cifrado, mueva sus datos fuera del disco, cambie el sistema de archivos a una opción cifrada, formatee el disco y luego vuelva a mover sus datos. Para obtener más detalles, consulte [Cómo cifrar un disco en Unraid](../../system-administration/secure-your-server/securing-your-data.mdx#how-to-encrypt-a-drive-in-unraid). + + Ten en cuenta que usar cifrado puede dificultar la recuperación de datos si algo sale mal, así que úsalo solo si realmente lo necesitas. +
+ +:::info[Disk Reconocimiento y Flexibilidad de Puerto] +Unraid identifica los discos según sus números de serie y tamaños, no por los puertos SATA específicos a los que están conectados. Esto significa que puedes cambiar las unidades entre diferentes puertos SATA sin afectar sus asignaciones en Unraid. Esta función es especialmente útil para solucionar problemas de hardware, como encontrar un puerto defectuoso o reemplazar cables de alimentación o SATA poco confiables. +::: + +:::caution +Tu matriz no iniciará si asignas o conectas más dispositivos de los que permite tu clave de licencia. +::: + +## Iniciar/detener la matriz + +Cuando tu sistema inicia, normalmente enciende automáticamente la matriz de discos. Sin embargo, si has cambiado recientemente la configuración del disco, como añadir un nuevo disco, la matriz permanecerá apagada para que puedas verificar tu configuración. + +:::caution +Ten en cuenta que necesitarás detener la matriz primero para hacer cualquier ajuste. Detenerla detendrá por completo todos los contenedores Docker y los recursos compartidos de red, apagará o hibernará las VMs, y tus dispositivos de almacenamiento se desmontarán, haciendo que tus datos y aplicaciones sean inaccesibles hasta que reinicies la matriz. +::: + +Para iniciar o detener la matriz: + +1. Haga clic en la pestaña **Principal**. +2. Navega a la sección **Operación de la matriz**. +3. Haz clic en **Iniciar** o **Parar**. Puede que necesites marcar la casilla que dice "Sí, quiero hacer esto" antes de continuar. + +--- + +## Operaciones de la matriz + +Unraid ofrece varias opciones de mantenimiento y configuración para tu matriz de almacenamiento. Las operaciones clave incluyen: + +import DocCardList from '@theme/DocCardList'; + + + +--- + +### Agregando discos + +#### Configurando discos nuevos + +1. Ve a ***Principal → Dispositivos de la matriz*** en la interfaz. +2. Selecciona el espacio donde deseas agregar el disco y selecciona el disco de la lista desplegable. +3. De forma predeterminada, los nuevos discos de la matriz se formatearán con %%XFS|xfs%%. Si deseas usar %%ZFS|zfs%% o %%BTRFS|btrfs%%, selecciona tu sistema de archivos preferido del menú desplegable. + +:::tip[Hot-Swap Característica] +Si utilizas hardware moderno compatible con Unraid, puedes cambiar discos sin apagar tu servidor. Esta función, conocida como intercambio en caliente, está disponible en los servidores de LimeTech desde el principio. +::: + +#### Despejar vs. Pre-despejar + +Unraid requiere que los discos estén en un estado limpio —completamente llenos de ceros y marcados con una firma especial— antes de agregarlos a una matriz protegida por paridad. Este proceso asegura la integridad de la paridad y mantiene la matriz en línea durante la preparación del disco. + +Clearance is mandatory when adding a data disk to a %%parity|parity%%-protected array. If you are adding a %%parity disk|parity-drives%% or working with an array that does not use %%parity|parity%%, clearance is not required. + +La operación incorporada de limpieza escribe ceros en el disco en segundo plano, permitiendo que la matriz permanezca disponible. Una vez que el proceso finaliza, el disco debe formatearse antes de usarlo. Este método es eficiente, no requiere herramientas de terceros y es ideal para expansiones rápidas. + +Para un enfoque más exhaustivo, la operación pre-limpieza —disponible a través de complementos como [Unassigned Devices Preclear](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=enable%20destructive%20mode.-,Unassigned%20Devices%20Preclear,-dlandon)— realiza una lectura previa para verificar sectores defectuosos, borra el disco y luego verifica la integridad con una lectura posterior. Este paso adicional ayuda a detectar fallas tempranas en el disco, pero lleva significativamente más tiempo y requiere la instalación manual de complementos. + +**Regla general:** Usa la operación de despeje integrada para adiciones rápidas a tu matriz o elige pre-despeje si deseas un testeo extenso de la salud del disco antes de ponerlo en servicio. + +

Comparación entre Despejar y Pre-despejar

+ +
+ | | Borrar | Pre-despejar | + | ------------------------ | ---------------------------------- | ------------------------------------------ | + | **Propósito** | Garantiza la compatibilidad básica | Prueba el disco y lo prepara para su uso | + | **Velocidad** | Funciona rápidamente | Proceso mucho más lento | + | **Impacto en la matriz** | Funciona en segundo plano | Necesita que el disco sea removido del uso | + | **Mejor para** | Ideal para expansiones rápidas | Genial para chequear discos nuevos | +
+ +**Despejar** prepara rápidamente un disco para su uso, haciéndolo compatible con tu sistema y permitiéndote agregar almacenamiento en solo unas horas. + +**Pre-despejar** toma más tiempo pero proporciona un test exhaustivo, asegurando que un disco nuevo es confiable antes de que se incorpore a tu matriz. + +:::caution[Critical Nota] +Evita formatear un disco pre-despejado antes de incluirlo en la matriz, ya que esto elimina la firma de despeje. +::: + +#### Agregar discos de datos + +Agregar discos de datos es una excelente manera de aumentar el espacio de almacenamiento de tu matriz Unraid. Al agregar más discos, puedes mantener más archivos, aplicaciones y copias de seguridad, mientras proteges tus datos. + +:::important[Important Nota:] +Al agregar un nuevo disco de datos, debe ser del mismo tamaño o menor que tus actuales %%parity disks|parity-drives%%. Si deseas usar un disco más grande, primero debes reemplazar los %%parity disks|parity-drives%% con el más grande, luego usar los antiguos %%parity disks|parity-drives%% como disco de datos. +::: + +
+ Cómo agregar un disco de datos + + ```mdx-code-block + + + + + + + + + + + ``` +
+ +#### Agregando discos de paridad + +%%Parity disks|parity-drives%% are a helpful feature that provide an extra layer of protection for your data. They allow your storage system to recover information if a hard drive fails. While using %%parity disks|parity-drives%% is optional, it's highly recommended to keep your data safe. + +:::important\[Requirements] + +- **Paridad Única:** El disco debe ser al menos del mismo tamaño que tu disco de datos más grande. +- **Doble Paridad:** Ambos %%parity disks|discos de paridad%% también deben ser al menos del tamaño de tu disco de datos más grande, pero pueden tener tamaños diferentes entre sí. + +::: + +Agregar un %%parity disk|disco de paridad%% es similar a agregar un disco de datos, pero hay un paso importante a tener en cuenta: + +1. Después de seleccionar el %%parity disk|disco de paridad%% y de iniciar tu matriz de almacenamiento, comienza un proceso llamado **cálculo de paridad**. +2. Mientras este proceso se ejecuta, aún puedes acceder a tus archivos. Sin embargo, el sistema podría funcionar un poco más lento porque está trabajando para calcular la paridad. + +
+ En profundidad: ¿Qué es la paridad y por qué importa? - Haz clic para expandir/colapsar + + %%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. + + Unraid confía en esta paridad en tiempo real para dos propósitos principales: + + - Reconstruir datos cuando un disco falla + - Corregir errores cuando se encuentra un sector defectuoso + + Esta característica te permite mantener tus datos seguros, incluso cuando los discos eventualmente fallan con el tiempo. +
+ +
+ En profundidad: ¿Cómo funciona la paridad en Unraid? - Haz clic para expandir/colapsar + + Unraid trabaja con un bit especial llamado *bit de paridad*, que se almacena para cada posición de bit a lo largo de todos los discos de datos y es gestionado por un disco de %%parity|parity%% dedicado. La %%parity|paridad%% se calcula de tal manera que el número total de bits en cada posición a lo largo de todos los discos (incluyendo el disco de %%parity|parity%%) es siempre un número par, un proceso conocido como paridad par. + + Unraid confía en esta paridad en tiempo real para dos propósitos principales: + + - Unraid utiliza la operación XOR (OR exclusivo) para este cálculo. + - Por ejemplo, si tienes cuatro discos y sus 57ª bits son 1, 1, 1, 1, el bit de paridad para esa posición será 0 (porque 1 + 1 + 1 + 1 + 0 = par). + - Sin embargo, si los 57ª bits son 1, 0, 0, 0, la %%paridad|parity%% de esa posición será 1 (para asegurar que el total siga siendo par). + + Al agregar un nuevo disco, Unraid primero lo limpia escribiendo ceros en todos los bits. Esto permite una rápida inclusión en la matriz protegida, ya que escribir ceros no interfiere con los cálculos de paridad actuales. +
+ +
+ En profundidad: ¿Cómo funciona la paridad en Unraid? - Haz clic para expandir/colapsar + + Unraid trabaja con un bit especial llamado *bit de paridad*, que se almacena para cada posición de bit en todos los discos de datos y es administrado por un %%parity disk|parity-drives%% dedicado. La %%parity|parity%% se calcula de forma que el número total de bits en cada posición en todos los discos (incluido el %%parity disk|parity-drives%%) sea siempre un número par, un proceso conocido como paridad par. + + - Lee todas las unidades restantes, incluido el %%parity disk|parity-drives%%. + - Aplica la %%paridad|parity%% par para resolver los datos faltantes. + + Por ejemplo, si el disco 2 falla: + + - Si los bits relacionados son 1, 1, 1 (además de la %%paridad|parity%%), Unraid calcula: 1 + x + 1 + 1 + 0 = par. Aquí, x debe ser 1 para mantener un total par. + - Si los bits muestran 1, x, 0, 0, 1 = par, entonces x será igual a 0. + + Esta característica de %%paridad|parity%% permite a Unraid "simular" el disco que falta. Puedes seguir usando la matriz como si la unidad todavía estuviera funcionando. Una vez que instales una nueva unidad en la ranura fallida, Unraid recreará todos los datos que faltan basándose en el estado actual de la %%paridad|parity%% y los otros discos. + + Para asegurar una protección continua y una recuperación efectiva, es importante realizar revisiones regulares de %%paridad|parity-check%%. +
+ +
+ En profundidad: ¿Cómo se reconstruyen los datos usando la paridad? - Haz clic para expandir/colapsar + + Tu disco de %%parity|parity%% debe ser **igual o mayor que tu disco de datos más grande**. Por ejemplo: + + - Si tu disco de datos más grande es de 10TB, tu %%parity disk|parity-drives%% debe tener al menos 10TB. + - Puedes usar varios tamaños de discos de datos de manera libre, siempre que ninguno supere el tamaño del %%parity disk|parity-drives%%. +
+ +
+ ¿Qué tamaño necesita tener mi disco de paridad? - Haz clic para expandir/colapsar + + Writing to a %%parity|parity%%-protected array involves four disk operations for each write: reading data, reading %%parity|parity%%, writing data, and writing %%parity|parity%%. This process requires a full rotation from each affected drive, so the overall write speed is limited by the slowest drive involved in the operation. + + Agregar un disco de %%parity|parity%% más rápido no necesariamente mejorará las velocidades de escritura, a menos que estés escribiendo simultáneamente en varios discos de datos lentos, permitiendo que el disco de %%parity|parity%% maneje la carga. Típicamente, la velocidad de escritura está restringida por el disco de datos más lento en el que se están escribiendo datos. +
+ +
+ En profundidad: ¿Cómo afecta la paridad al rendimiento de escritura? - Haz clic para expandir/colapsar + + La dualidad de %%parity|parity%% permite la recuperación de **dos fallos de disco simultáneos**. En Unraid, el segundo disco de %%parity|paridad%% no simplemente refleja al primero. En cambio: + + - **Paridad 1:** Emplea cálculos de %%paridad|parity%% estándar XOR (par). + - **Paridad 2:** Utiliza un algoritmo más complejo (campo de Galois, en lugar de Reed-Solomon como en el %%RAID 6|raid6%% tradicional), permitiendo a Unraid reconstruir a partir de dos discos que falten al mismo tiempo. Esta característica es significativa para matrices más grandes, donde el riesgo de múltiples fallos aumenta. La dualidad de %%parity|parity%% incrementa significativamente la resiliencia sin la sobrecarga añadida de redundancia en espejo. +
+ +:::caution\[Remember] + +Al configurar un nuevo sistema de almacenamiento de datos, agrega primero tus discos de datos, asegurándote de que todos utilicen un sistema de archivos compatible. Después de colocar tus discos de datos, puedes agregar un disco de %%parity|parity%% para proteger contra fallas de unidad. + +Una vez que se agrega tu disco de %%parity|parity%%, recuerda que cualquier nuevo disco que desees incluir en la matriz debe ser limpiado (vacío) antes de integrarse. Esto es para asegurar que la %%parity|parity%% siga siendo válida y continúe protegiendo tus datos. + +::: + +#### Actualización de discos de paridad + +Puedes actualizar tu(s) dispositivo(s) %%parity disk|parity-drives%% a uno(s) más grande(s) para usar discos de mayor tamaño en el array o agregar un %%parity disk|parity-drives%% adicional. + +:::caution +Si planea seguir los siguientes pasos y solo tiene un %%parity disk|parity-drives%%, tenga en cuenta estos puntos: + +- Sus datos estarán desprotegidos hasta que la reconstrucción de la %%paridad|parity%% se complete. Si un disco de datos falla durante este tiempo, podría perder la información en ese disco. +- Si ya tienes una unidad de datos que ha fallado, proceder con estos pasos te impedirá poder reconstruir esa unidad. En este caso, deberías seguir el procedimiento **Parity Swap** en su lugar. +::: + +Para eliminar un disco de paridad: + +1. **Detener el arreglo:** Usa el %%WebGUI|web-gui%% para detener el arreglo. + +:::tip +Si su servidor admite intercambio en caliente, no necesita apagarlo para cambiar discos. Puede omitir de forma segura los pasos 2 y 4. +::: + +2. **Apaga el servidor:** Apaga tu servidor para realizar cambios de hardware de manera segura. +3. **Instala el nuevo %%parity disk|parity-drives%%:** Coloca el nuevo, más grande %%parity disk|parity-drives%% en tu servidor. +4. **Enciende el servidor:** Vuelve a encender el servidor. +5. **Asigna el nuevo disco:** Ve a la ranura de paridad en tus configuraciones y asigna el nuevo disco, reemplazando el antiguo. +6. **Inicia el arreglo:** Usa el %%WebGUI|web-gui%% para iniciar el arreglo de nuevo. + +Una vez que el arreglo esté de nuevo en línea, Unraid comenzará a construir la %%parity|parity%% en el disco nuevo. Puedes seguir accediendo a tus datos durante este tiempo, pero ten en cuenta que podría ser un poco más lento hasta que el proceso termine. ¡Una vez que la construcción de la %%parity|parity%% esté completa, tus datos estarán protegidos de nuevo! + +:::important[Important Consejos] +- **Conserva el disco antiguo:** No retires el antiguo %%parity disk|parity-drives%% hasta que la nueva construcción de %%parity|parity%% finalice. Si un disco de datos falla durante la actualización, tener el disco antiguo puede ayudarte a recuperar tus datos. + +- **Usuarios de doble paridad:** Si tienes dos %%parity disks|parity-drives%%, actualiza uno a la vez para mayor seguridad. + +- **Reutiliza el disco antiguo:** Después de la actualización, puedes usar el viejo %%parity disk|parity-drives%% como disco de datos si aún satisface tus necesidades de almacenamiento. +::: + +--- + +### Reemplazo de discos + +Es posible que necesites reemplazar discos en tu arreglo por dos razones principales: + +1. [**Actualización de capacidad**](#upgrading-capacity): Tu almacenamiento está casi lleno, y deseas usar discos más grandes. +2. [**Fallo o retiro**](#replacing-faileddisabled-disks): Un disco ha fallado o ya no es compatible. + +Aunque el proceso de reemplazo de discos es similar en ambos casos, ten cuidado, ya que existe el riesgo de pérdida de datos durante el reemplazo. Los dispositivos de paridad ayudan a proteger tus datos; un dispositivo de paridad puede salvaguardarte contra la falla de un solo disco, mientras que dos pueden proteger contra la pérdida de datos si fallan dos discos. Siempre ten en cuenta tu nivel de protección durante el reemplazo de discos. + +#### Actualización de capacidad + +Al actualizar tu disco de datos a uno más grande, ten en cuenta estos puntos: + +- **Discos no montables:** Arregla cualquier disco no montable antes de actualizar. Un estado no montable no se resolverá durante la reconstrucción. + +- **Riesgos de paridad única:** Si tienes paridad única, corres el riesgo de pérdida de datos si otra unidad falla durante la actualización. Busca consejo en foros si esto sucede. + +- **Protección de paridad dual:** Con paridad dual, estás a salvo de perder datos si una unidad falla mientras se actualiza una sola unidad. También puedes actualizar dos unidades a la vez, pero ten en cuenta que esto aumenta el riesgo ya que no tendrás protección contra la falla de otra unidad. + +- **Copia de seguridad del disco antiguo:** Mantén el disco original intacto hasta que se confirme que la actualización ha sido exitosa. Esto proporciona una opción de respaldo si algo sale mal. + +:::warning +Reemplazar unidades siempre implica un riesgo. Si otra unidad falla durante la actualización, especialmente con solo una paridad, puede experimentar pérdida de datos. Siempre verifique la salud de sus unidades antes de comenzar el proceso y asegúrese de mantener la antigua unidad intacta hasta que la actualización esté completa y sus datos estén confirmados como seguros. +::: + +Para actualizar un disco de datos existente: + +1. **Run a parity check:** First, ensure the integrity of your data by running a %%parity check|parity-check%%. Go to [***Tools → Parity Check***](#checking-array-devices) and make sure there are **zero errors**. If parity isn't valid, rebuilding the disk will corrupt its file system. + +2. **Detener el arreglo:** A continuación, querrá detener el arreglo. Navegue a ***Principal → Operación del Arreglo*** y seleccione **Detener**. + +3. **Desasignar el disco objetivo:** Una vez que el arreglo esté detenido, encuentra el disco que deseas reemplazar. Retíralo de su ranura en ***Principal → Dispositivos del Arreglo***. + +4. **Iniciar el arreglo:** Ahora, inicia nuevamente el arreglo. Unraid emulará el disco faltante utilizando los discos de paridad y datos existentes. Tienes dos modos para elegir: + - **%%Maintenance Mode|maintenance-mode%%:** This mode prevents any writes to the %%emulated disk|emulated-disk%%. + - **Normal Mode:** If you need read/write access to the %%emulated disk|emulated-disk%%, select this option. + +:::note +Iniciar el arreglo en Modo Normal en este punto es opcional. Puedes utilizarlo para verificar que el disco emulado se monte y que los datos se vean correctos antes de proceder, pero no es necesario para el proceso de actualización. +::: + +5. **Detener el arreglo nuevamente:** El arreglo ahora debería mostrar que el disco no asignado ha fallado. Detén el arreglo una vez más. + +6. **Asignar el disco de reemplazo:** Inserta tu nuevo disco más grande en la ranura vacante en el arreglo. + +7. **Start the array to rebuild:** Finally, start the array again. Unraid will now rebuild the contents of the %%emulated disk|emulated-disk%% onto the new disk. The file system will automatically adjust to take full advantage of the larger disk's capacity. + +#### Reemplazo de discos fallidos/desactivados + +
+ ¿Qué es un disco fallido/deshabilitado? + + Un disco fallido o deshabilitado es aquel que Unraid ha dejado de utilizar para escribir datos, generalmente porque encontró un error de escritura. Tenga en cuenta que esto no siempre significa que el disco en sí esté roto; a veces, puede deberse a malas conexiones, problemas de energía o simplemente un fallo temporal. + + Algunas indicaciones incluyen: + +
+ ![Una "X" roja indica un error de escritura](/img/Diskfailureindicator.png) +

*Esta "X" roja muestra qué disco necesita reemplazo.*

+
+ +
+ +
+ ![Alerta de notificación de falla](/img/Diskfailurenotification.png) +

*Preste atención a estas alertas.*

+
+ +
+ +
+ Haz clic para ver cómo diferentes configuraciones de paridad manejan fallos de disco + + | Escenario de Falla | Sin Paridad | Paridad Única | Paridad Dual | + | ------------------ | ----------- | ------------- | ------------ | + + \| **1 Falla de Disco** | Datos Perdidos | Reconstruible | Reconstruible | + \| **2 Fallas de Disco** | Datos Perdidos | Datos Perdidos | Reconstruible | + + :::tip[Consejos para Reconstrucciones Seguras] + - **Para Paridad Simple:** Solo puede reemplazar un disco a la vez. Si otro disco falla durante la reconstrucción, podría perder datos. + - **Para Doble Paridad:** Puede reemplazar uno o dos discos al mismo tiempo, pero sea cauteloso si más de dos discos fallan. + ::: + + :::important + Si experimenta una situación en la que **más discos fallan de los que su paridad puede proteger:** + + 1. **Detenga inmediatamente todas las operaciones de escritura** para prevenir una mayor pérdida de datos. + 2. Busque ayuda publicando su problema en los [foros de Unraid](https://forums.unraid.net/) junto con diagnósticos. + 3. **No intente una reconstrucción** hasta haber recibido asesoramiento - concéntrese primero en salvar sus datos. + ::: +
+
+ +
+ Cómo diagnosticar el problema + + Para diagnosticar el problema, comienza revisando el %%syslog|syslog%% y los informes %%SMART|smart-report%%: + + - Si el %%syslog|syslog%% muestra que el disco se ha reiniciado, podría haber un problema con la conexión o los cables. + - Los informes %%SMART|smart-report%% pueden ayudar a evaluar la salud del disco, pero la mejor manera de verificarlo es realizando una prueba extendida de %%SMART|smart%%. Si se completa sin errores, es probable que el disco esté bien. + - Si ves errores %%CRC|crc-errors%%, generalmente apunta a problemas con el cableado. Ten cuidado con estos errores, ya que se acumulan con el tiempo y no se reinician. + + :::tip + Para mantenerse informado sobre problemas de discos, [active las notificaciones](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#notification-settings) en Unraid. De esta manera, será alertado de inmediato si algo sale mal, reduciendo el riesgo para sus datos. + ::: +
+ +
+ ¿Qué es la emulación? + + Cuando un disco está deshabilitado, Unraid usará su paridad y otros discos funcionantes para emular el disco fallido. Esto significa que su sistema continúa operando y aún puede acceder a los datos almacenados en el %%emulated drive|emulated-disk%%: + + - Unraid dejará de escribir en el disco físico, y cualquier actualización se guardará en la paridad y la emulación en su lugar. + - Before replacing the failed drive, you can check and recover data from the %%emulated drive|emulated-disk%%, which keeps the physical drive intact for potential recovery. + - If you can't access the %%emulated drive|emulated-disk%%, repairing the file system is essential before any rebuild since fixing the file system is quicker and more effective than a rebuild. +
+ +
+ ¿Qué es un disco fallido/deshabilitado? + + Un disco fallido o deshabilitado es aquel que Unraid ha dejado de utilizar para escribir datos, generalmente porque encontró un error de escritura. Tenga en cuenta que esto no siempre significa que el disco en sí esté roto; a veces, puede deberse a malas conexiones, problemas de energía o simplemente un fallo temporal. + + Mientras no es obligatorio, muchos usuarios eligen pre-limpiar los nuevos discos para probarlos y ayudar a prevenir fallas tempranas. Puede hacer esto con el complemento Preclear, una prueba extendida %%SMART|smart%% o herramientas del fabricante. + + :::caution + Si intenta reconstruir usando un %%emulated drive|emulated-disk%% no montable, el nuevo disco también se volverá no montable. Siempre repare el sistema de archivos antes de intentar una reconstrucción. + ::: +
+ +Si un disco en su sistema Unraid ha fallado o está desactivado, ¡no se preocupe! Puede reemplazarlo y recuperar sus datos. Simplemente siga estos sencillos pasos. Recuerde, necesita un nuevo disco que sea del mismo tamaño o más grande que el que está reemplazando, pero no puede ser más grande que su disco de %%paridad más pequeño|parity-drives%%. + +:::important +Antes de comenzar, asegúrese de verificar si hay errores o advertencias en el disco. Unraid debe poder leer todos los discos restantes sin ningún problema para que la reconstrucción funcione correctamente. Si otro disco está fallando, podría provocar pérdida de datos. +::: + +Para reemplazar y reconstruir un disco: + +1. **Detenga el array:** + + - Inicie sesión en el Unraid %%WebGUI|web-gui%% (la interfaz web). + - Encuentra la opción para detener el arreglo. Esto es necesario antes de que puedas cambiar cualquier disco. + +:::tip +Si tu servidor soporta hot-swap, puedes omitir el siguiente paso y simplemente detener el array. +::: + +2. **Apague su servidor** (solo si **no** está usando intercambio en caliente): + - Si su servidor no soporta intercambio en caliente, deberá apagarlo completamente. + +3. **Reemplace el disco fallido:** + - Retire el disco viejo y fallado de su servidor. + - Inserte el nuevo disco. Solo recuerde, debe ser al menos del mismo tamaño que el disco anterior pero no más grande que su disco de %%paridad|parity-drives%% más pequeño. + +4. **Encienda el servidor** (si lo apagó): + - Enciende tu servidor si lo apagaste. + +5. **Asignar el nuevo disco:** + - Regrese al %%WebGUI|web-gui%% de Unraid. + - Encuentre la ranura del disco fallido y asigne su nuevo disco a esa ranura. + +6. **Confirme su acción:** + - Verifique el cuadro que dice **Sí, quiero hacer esto** y confirme. + +7. **(Opcional) Elija el %%Modo de Mantenimiento|maintenance-mode%%:** + - Puedes seleccionar el %%modo de mantenimiento|maintenance-mode%%, lo que puede hacer que el proceso de reconstrucción sea más rápido. Sin embargo, durante este tiempo, no podrá acceder al arreglo en absoluto. + - Si eliges el %%Modo de Mantenimiento|maintenance-mode%%, asegúrate de hacer clic en **Sincronizar** para iniciar la reconstrucción. + +8. **Inicie la reconstrucción:** + - Click **Start** to begin the process. Unraid will copy your data from the %%emulated disk|emulated-disk%% to the new disk. + - Si tu nuevo disco es más grande, Unraid gestionará el espacio adicional por ti. + +:::warning +Si Unraid le solicita formatear el nuevo disco durante la reconstrucción, **no lo haga**. Formatear borrará todos los datos y hará imposible la recuperación. +::: + +

Qué esperar durante la reconstrucción

+ +- El array seguirá disponible para usar durante el proceso de reconstrucción (a menos que esté en el %%Modo de Mantenimiento|maintenance-mode%%), pero puede funcionar más lento. +- La reconstrucción puede tomar varias horas, dependiendo del tamaño de sus discos y el uso del sistema. +- El nuevo disco tendrá el mismo sistema de archivos que el original. +- Si el disco viejo era no montable debido a problemas del sistema de archivos, el nuevo disco tampoco será montable. Por favor, solucione cualquier problema del sistema de archivos antes de iniciar la reconstrucción. + +:::note[Additional notas] +- El proceso de reconstrucción no cambiará el formato de archivo del disco; simplemente restaurará su forma anterior. +- Siempre verifique la salud de cada disco antes de comenzar una reconstrucción para evitar problemas potenciales. +::: + +#### Intercambio de Paridad + +```mdx-code-block + + + + + + + + + + +``` + +
+ Escenario de ejemplo + + Tiene una configuración de Unraid con un **disco de paridad de 2TB** y un **disco de datos de 1TB** y quiere reemplazar el disco de 1TB con un **disco de 4TB**. + + Primero, asigne el nuevo disco de 4TB como el disco de paridad, que reemplazará al disco de 2TB. Luego mueva el disco de 2TB original a la ranura de datos y retire el disco de 1TB por completo. + + Después de estos cambios, tendrá un disco de 4TB como su nueva paridad, asegurándose de que puede agregar discos de datos futuros de hasta 4TB. El disco de 2TB ahora contendrá sus datos existentes, mientras que el disco de 1TB puede ser reutilizado. + + Este intercambio mantiene sus datos seguros y su array protegido, permitiendo futuras actualizaciones. +
+ +:::important\[Prerequisites] + +- Antes de comenzar, asegúrese de que el disco de datos que desea reemplazar esté deshabilitado. Si el disco ha fallado (muestra un indicador rojo), ya está deshabilitado. Si el disco está saludable pero desea reemplazarlo, desasigne el disco y comience el arreglo una vez sin él para forzar a Unraid a marcarlo como deshabilitado. +- Si su disco de datos de reemplazo no es más grande que su disco de paridad, use el procedimiento estándar de [Reemplazo de un Disco de Datos](#replacing-faileddisabled-disks) en su lugar. +- Este procedimiento solo es necesario para reemplazar unidades de datos en una matriz Unraid con un disco más grande que el disco de paridad actual. Si solo necesitas actualizar tu disco de paridad, simplemente retira el disco de paridad antiguo, agrega el nuevo, y enciende la matriz. La paridad se reconstruirá automáticamente. + +::: + +:::warning\[Warnings] + +- Always verify the health of all drives using %%SMART reports|smart-report%% before starting a %%parity swap|parity-swap%%. Attempting this procedure with another failing or unhealthy disk increases the risk of data loss. +- Si es posible, pre-limpie el nuevo disco. Aunque no es necesario, pre-limpiar comprueba la resistencia del disco y reduce el riesgo de fallo temprano. +- Identifica correctamente todos los discos antes de comenzar. Anota los números de modelo y los últimos cuatro caracteres de cada número de serie para evitar errores durante la asignación. + +::: + +Para realizar un intercambio de paridad: + +:::note +Si el disco a ser reemplazado ya está deshabilitado (fallido), es posible que no necesite realizar los pasos 1-4. Si ya ha instalado la nueva unidad de reemplazo (por ejemplo, después de pre-limpiarla), puede omitir los pasos 5-8. +::: + +1. **Detener el array** si está en funcionamiento. +2. **Desasigne la vieja unidad de datos** si todavía está asignada. Si el disco estaba previamente saludable, puede ver notificaciones de error por un disco faltante - esto es esperado. +3. **Inicie el arreglo.** Si se le solicita, marque la casilla confirmando su acción. El disco de datos ahora debería mostrar como "No instalado." +4. **Detenga el array nuevamente.** En este punto, el array trata el disco como fallido. +5. **Apaga el servidor.** + + :::tip + Si su sistema admite **hot-swap**, no necesita apagar para quitar o instalar discos. Solo asegúrese de que el array esté detenido antes de hacer cambios de hardware. + ::: + +::: + +6. *(Opcional)* **Retire la unidad vieja.** Puede desear mantenerla instalada para pruebas o reasignarla. +7. **Instale el nuevo disco.** Se recomienda encarecidamente pre-limpiar, pero no es necesario formatear. +8. **Encienda el servidor.** +9. **Detenga el arreglo** si se inició automáticamente. Si ve un mensaje sobre intentar desmontar comparticiones de disco, deshabilita los servicios de Docker y/o VM en Configuraciones, reinicie e intente de nuevo. +10. **Desasigne el disco de paridad.** +11. **Asigne el nuevo disco a la ranura de paridad.** Puede recibir notificaciones de error - esto es normal. +12. **Asigne el disco de %%paridad|parity-drives%% viejo a la ranura de datos** del disco que está siendo reemplazado. Tanto el disco de paridad como el disco de datos de reemplazo ahora deberían mostrar indicadores de estado azules. +13. **Vaya a *Principal → Operación del Arreglo.*** Debería ver un botón de **Copiar** y un mensaje indicando "Copiar llevará la información de paridad al nuevo disco de %%paridad|parity-drives%%." +14. **Confirme e inicie el proceso de copia.** Verifique el cuadro de confirmación y haga clic en **Copiar**. El arreglo no estará disponible durante esta operación. + +- El proceso de copia puede tomar muchas horas, dependiendo del tamaño del disco. Cuando finalice, el arreglo estará detenido y listo para una reconstrucción de datos. + +15. **Inicie el array para comenzar la reconstrucción de datos.** + - Confirme su acción si se le solicita. El arreglo ahora está iniciado y los datos se reconstruyen en el nuevo disco de datos. + - Puede usar el array durante la reconstrucción, pero para mejor rendimiento, limite el uso. + - El proceso de reconstrucción también tomará varias horas. + +:::warning +Nunca formatee un disco durante este proceso. Formatear borrará todos los datos y actualizará la paridad, haciendo imposible la recuperación. +::: + +After completion, you will have a larger parity disk and a replaced data disk. Many users run a %%parity check|parity-check%% afterward for extra confidence, though this is optional. + +--- + +### Remoción de discos + +Es posible que llegue un momento en que desee eliminar un disco de su arreglo Unraid. Ya sea que esté buscando ahorrar energía, retirar un disco viejo o poco confiable, o reutilizar hardware para un uso diferente, el proceso es bastante sencillo. + +#### Removiendo discos de paridad + +Si encuentra que ya no necesita el nivel de protección de %%paridad|parity%% en su configuración, puede eliminar un disco de %%paridad|parity-drives%% cuando desee. + +Para eliminar un disco de %%paridad|parity-drives%%: + +1. **Detenga el array:** Comience accediendo al %%WebGUI|web-gui%% y deteniendo el array. +2. **Desasigne los discos de %%paridad|parity-drives%%:** Ubique la ranura de los discos de %%paridad|parity-drives%% y configúrela como "No asignado". +3. **Inicie la matriz:** Finalmente, reinicie la matriz para aplicar los cambios y eliminar con éxito los discos de %%paridad|parity-drives%% de la configuración. + +:::warning +Antes de realizar cualquier cambio, tenga en cuenta lo siguiente: Si ya tiene algún disco de datos fallido en su matriz, eliminar un %%parity disk|parity-drives%% puede disminuir el número de fallos que Unraid puede manejar sin arriesgar pérdida de datos. + +- Con dual paridad, puedes recuperar de una sola unidad fallida, pero ten en cuenta que no podrás sobrevivir a otra falla durante el proceso de reconstrucción. +- Con una sola paridad, pierdes toda la redundancia, lo que significa que cualquier falla adicional en las unidades podría resultar en pérdida de datos. +::: + +#### Eliminar discos de datos + +Eliminar un disco de datos es un proceso sencillo, pero es importante recordar que necesitarás realizar una sincronización de %%parity|parity%% después. Hasta que esta sincronización esté completa, hay un riesgo de pérdida de datos si otro disco falla. + +Puedes elegir entre dos métodos para eliminar un disco de datos: + +1. **Método estándar** - Recomendado para la mayoría de los usuarios. +2. **Método de preservación de paridad** - Adecuado para usuarios avanzados que desean mantener la paridad durante la eliminación. + +```mdx-code-block + + + + + + + + + + +``` + +--- + +### Verificación de dispositivos del arreglo + +Verificar regularmente su arreglo Unraid es crucial para mantener la integridad de los datos e identificar problemas potenciales antes de que resulten en pérdida de datos. Puede iniciar una verificación utilizando el botón **Verificar** en ***Operaciones del Arreglo***. Dependiendo de la configuración de su arreglo, este botón le permite realizar una verificación de %%paridad|parity-check%% o de lectura. + +
+ ![The check button lets you perform parity and read checks](/img/Check_button.PNG) +
+ +Para comodidad, puede programar estas verificaciones para que se ejecuten automáticamente en intervalos que se adapten a usted navegando a ***Configuración → Programador***. Se recomienda realizar verificaciones automáticas, no correctivas, mensualmente o trimestralmente para garantizar la salud continua de sus datos. + +#### Chequeos de Paridad y Lectura + +```mdx-code-block + + + + + + + + + + +``` + +#### Historial de verificación + +Siempre que el sistema realice una verificación de %%paridad|parity-check%% o una verificación de lectura, mantendrá un registro de lo que ocurrió. Puede ver estos detalles fácilmente haciendo clic en el botón **Historial** que se encuentra bajo ***Operaciones del Arreglo*** en la interfaz. + +Para aquellos que quieran indagar más a fundo, todos estos registros se guardan en un archivo de texto ubicado en el directorio `config` en tu dispositivo USB de Unraid. + +--- + +### Apagar o encender discos + +Unraid allows you to control the power states of your hard drives. You can easily %%spin them up or down|spin-state%%, and manage SSDs to be active or in standby. This helps save energy, extend the life of your drives, and reduce noise when the disks are not being used. + +

¿Por qué bajar o subir la velocidad?

+ +- **Reducir velocidad:** Si tienes discos que no se utilizan con frecuencia, reducir su velocidad puede ahorrar energía y ayudar a que duren más. +- **Aumentar velocidad:** Si sabes que necesitarás los archivos pronto, aumentar la velocidad de los discos con antelación puede reducir los tiempos de espera. + +

Cómo controlar los estados de velocidad

+ +Puedes controlar los estados de velocidad del disco a través de la pestaña **Main** en el %%WebGUI|web-gui%%. + +1. **Ve a la pestaña Main** y localiza tus dispositivos de arreglo. +2. **Encuentra los botones de control de velocidad**: cada disco mostrará una de las siguientes opciones: + - Haz clic en el botón 🔘 para **Aumentar velocidad** si el disco está actualmente en baja velocidad + - Haz clic en el botón 🟢 para **Reducir velocidad** si el disco está actualmente girando +3. **Haz clic en el botón apropiado** para la acción que deseas: + - Haz clic en **Reducir velocidad** 🟢 para apagar un disco inactivo y ahorrar energía + - Haz clic en **Aumentar velocidad** 🔘 para encender un disco que actualmente está en baja velocidad + +Recuerda que si un disco está siendo accedido (por ejemplo, si estás abriendo un archivo), permanecerá activo e ignorará cualquier solicitud de reducir velocidad. + +Cuando un disco está desactivado, su temperatura no se mostrará en el %%WebGUI|web-gui%%. Sin embargo, una vez que cualquier aplicación o usuario acceda a él, se activará automáticamente. + +:::tip +Use los controles de activación para ahorrar energía y reducir el desgaste de sus discos. Recuerde que los discos que se están utilizando activamente permanecerán encendidos hasta que todas las tareas estén terminadas. +::: + +--- + +### Restablecer la configuración del arreglo + +Restablecer la configuración de su arreglo es un paso importante que debe llevarse a cabo con cuidado. Este proceso suele ser necesario cuando se elimina un disco, se comienza desde cero con un nuevo diseño de arreglo o se resuelven problemas de asignación de discos. Tenga en cuenta que esta acción puede afectar la protección de datos y la paridad, así que asegurese de proceder solo cuando realmente lo necesite. + +Razones comunes para restablecer tu arreglo incluyen: + +- **Eliminar o reemplazar discos:** Si necesita retirar o intercambiar discos en su arreglo. +- **Comenzar de nuevo:** Cuando busca crear una nueva disposición para su arreglo. +- **Corregir errores de asignación de discos:** Para corregir cualquier problema con la forma en que los discos están asignados actualmente. +- **Recuperarse de problemas de configuración:** Al enfrentar desafíos con su configuración existente. + +
+ ![Resetear la configuración de tu disco se puede hacer a través de la nueva página de configuración](/img/Newconfig.png) +
+ +Para restablecer la configuración de tu arreglo: + +1. Ir a la página **Herramientas** y haz clic en **Nueva Configuración**. +2. Puedes mantener algunas asignaciones de disco existentes si solo deseas hacer ajustes menores. Esto puede ahorrar tiempo y minimizar la posibilidad de errores. +3. Confirma tu elección marcando la casilla, luego haz clic en **Aplicar**. +4. Vuelve a la pestaña **Principal**. Después de aplicar los cambios, tu configuración habrá sido restablecida. +5. Haz los cambios necesarios en tu configuración asignando o desasignando discos según sea apropiado. +6. Inicia el arreglo en Modo Normal o %%Maintenance Mode|maintenance-mode%% para finalizar tus actualizaciones. + +:::important +- **Preservación de datos:** Unraid intentará reconocer discos previamente usados y preservar datos donde sea posible. +- **Impacto en la paridad:** Retirar un disco de datos siempre invalidará la paridad a menos que ese disco haya sido borrado antes de ser retirado. +- **Reordenamiento de discos:** Cambiar el orden de los discos no afectará la paridad1, pero *puede* invalidar la paridad2. +::: + +:::caution +Cuando veas el botón **Iniciar**, hay una casilla de verificación etiquetada como **La paridad es válida**. Solo verifica esta casilla si estás seguro de que es correcto o si un usuario experimentado de Unraid te lo ha aconsejado durante la recuperación. Verificar incorrectamente esta opción puede conducir a la pérdida de datos. + +No utilices **Nueva Configuración** si tu objetivo es reconstruir un disco. Realizar una Nueva Configuración limpia el historial de la matriz necesario para una reconstrucción, y Unraid no ofrecerá reconstruir el disco después. Sigue el procedimiento de reconstrucción del disco. +::: + +#### Deshacer un restablecimiento + +Si encuentras que necesitas revertir un restablecimiento: + +1. Accede a tu dispositivo flash a través de la red (SMB). +2. Localiza y abre la carpeta `config`. +3. Renombra el archivo `super.old` a `super.dat`. +4. Reinicia tu servidor y tu configuración anterior del arreglo debería ser restaurada. + +--- + +### Informes de estado + +Unraid proporciona informes de estado que le ayudan a mantenerse al tanto de la salud de su arreglo de almacenamiento. Estos informes son una forma rápida de verificar si alguno de sus discos está deshabilitado o si tiene problemas de lectura o escritura de datos. + +- **Estado actual:** Los informes de estado muestran la condición actual de su arreglo. Es importante tener en cuenta que esta información se restablece después de reiniciar su sistema, por lo que no mantendrá un historial de problemas anteriores. + +- **Sin datos históricos:** Si deseas ver qué ha ocurrido antes de un reinicio, tendrás que buscar en otro lugar, ya que estos informes no guardan estados pasados. + +:::important +Recuerde que los informes de estado no incluyen datos %%SMART|smart%%. Los informes %%SMART|smart-report%% le ofrecen una vista más detallada sobre la salud individual de los discos. Así que, incluso si su informe de estado muestra que todo está bien, revisar los informes %%SMART|smart-report%% regularmente sigue siendo una buena idea para detectar cualquier problema potencial a tiempo. +::: + +--- + +## Modos de escritura del arreglo + +Unraid proporciona diversos modos de escritura para gestionar las operaciones del arreglo, cada uno con sus propias ventajas y desventajas en cuanto a velocidad, consumo de energía y desgaste de los discos. Conocer cómo funcionan estos modos, junto con el papel de una unidad de caché o pool, puede ayudarlo a afinar su servidor para que se adapte mejor a sus necesidades. + +**Modos de escritura a simple vista** + +| Modo de Escritura | Velocidad (Típica) | Uso de energía | Cuando las unidades se activan | Protección de datos | Mejor caso de uso | +| -------------------------------- | ---------------------------------------- | -------------- | ------------------------------------ | ----------------------- | ------------------------------------------------------------------------------------------------- | +| Leer/Modificar/Escribir | 20–40 MB/s | Bajo | Solo la paridad y la unidad objetivo | Sí | La mayoría de las cargas de trabajo, ahorro de energía, escrituras pequeñas | +| Turbo Escritura (Reconstrucción) | 40–120 MB/s | Alta | Todas las unidades | Sí | Transferencias de archivos grandes, reconstrucciones del arreglo, %%parity checks\|parity-check%% | +| Escritura en Caché (SSD/NVMe) | 50–110 MB/s (SSD), 250–900 MB/s (NVMe)\* | Varía | Solo las unidades de caché | No (hasta que se mueva) | Aplicaciones, VMs, escrituras frecuentes, maximizar velocidad | + +

Leer/Modificar/Escribir

+ +
+ Haz clic para expandir/colapsar + +

Cómo funciona

+ Este modo lee los datos existentes y la paridad, calcula la nueva paridad y luego escribe los datos actualizados. Solo el %%parity drive|parity-drives%% y el disco de datos objetivo se activan, lo que resulta en un menor uso de energía y menos desgaste en los discos. Sin embargo, puede ser más lento debido a los ciclos adicionales de lectura/escritura. + +

Cuándo usar

+ + - En cualquier momento, especialmente si deseas ahorro de energía y que las unidades en reposo se activen. + - Ideal para escrituras pequeñas o infrecuentes. +
+ +

Turbo Escritura (Escritura reconstruida)

+ +
+ Haz clic para expandir/colapsar + + Escritura turbo, también conocida como escritura reconstructiva, es una función diseñada para aumentar la velocidad de escritura de su array de Unraid. Funciona leyendo todos los discos de datos y actualizando la paridad simultáneamente. Este proceso elimina los retrasos causados por esperar que los platos giren, como se ve en el modo de escritura predeterminado. Sin embargo, es importante señalar que todos los discos del array deben estar girando y funcionando correctamente para que esto funcione de manera efectiva. + +

Cómo funciona

+ + - Cuando escribes nuevos datos, Unraid lee de las otras unidades de datos y calcula la paridad al mismo tiempo. Tanto los datos nuevos como la paridad actualizada se escriben juntos. + - Todas las unidades del arreglo deben estar operativas y activamente girando. + - Este método mejora significativamente las velocidades de escritura en comparación con el modo de escritura predeterminado. + +

Cuándo usar la Turbo Escritura

+ + - Utiliza la turbo escritura al transferir archivos grandes y secuenciales al arreglo. + - Es eficaz durante las reconstrucciones del arreglo o %%parity checks|parity-check%%, ya que todas las unidades ya estarán girando. + - Este modo es muy útil cuando minimizar el tiempo de escritura es una prioridad y puedes confirmar que todas las unidades están sanas. + +

Cuándo evitar la Turbo Escritura

+ + - Evita usar este modo si deseas que tus unidades se apaguen durante los tiempos de inactividad para conservar energía. + - La turbo escritura no es ideal para operaciones de escritura pequeñas o poco frecuentes, ya que provoca que todas las unidades se activen para cada escritura, aumentando el consumo de energía y el desgaste de las unidades. + - Si sospechas que alguna unidad está fallando o es poco confiable, es mejor evitar la turbo escritura, ya que depende de que todas las unidades funcionen. + + :::info + La escritura turbo es ideal para operaciones masivas y escenarios que requieren alto rendimiento. Sin embargo, puede que no sea la mejor opción para tareas cotidianas si se enfoca en el ahorro de energía y minimizar el desgaste de los discos. + ::: +
+ +

Escritura en Caché

+ +
+ Haz clic para expandir/colapsar + +

Cómo funciona

+ + Los datos se escriben primero en un SSD rápido o NVMe %%cache|cache%% y luego se pueden mover al array principal más adelante por un proceso llamado %%Mover|mover%%. Las velocidades varían: + + - SSD: 50–110 MB/s + - NVMe: 250–900 MB/s (que puede utilizar redes 10GbE) + + Una vez que los datos se trasladan al arreglo, están protegidos por la paridad. + +

Cuándo usar la Escritura en Caché

+ + - Para compartir operaciones de escritura frecuentes, como aplicaciones, máquinas virtuales o descargas. + - Para mejorar el rendimiento y reducir cualquier latencia percibida de escritura. + +

Expectativas de rendimiento

+ + - Sin una unidad de caché: Promedio 20–30 MB/s, con picos de hasta 40 MB/s. + - Con caché SSD: 50–110 MB/s. + - Con caché NVMe: 250–900 MB/s dependiendo de las limitaciones de la red o la unidad. + + :::tip + Considere usar un pool de cache (múltiples dispositivos) para mayor redundancia y protección de datos antes de que el %%Mover|mover%% se ejecute. + ::: +
+ +:::info\[Automated Soluciones + +- El modo **Auto** (una característica futura) activará la turbo escritura solo cuando todas las unidades ya estén girando. +- Los plugins de la comunidad (busca "Turbo Write" en la pestaña de Apps) pueden ofrecer opciones mejoradas de automatización o programación. + +::: + +Para cambiar el Modo de Escritura: + +1. Navega a ***Configuraciones → Configuraciones de Disco***. +2. Ubica **Tunable (md\_write\_method)**. +3. Elige tu modo preferido: + - **Leer/Modificar/Escribir** (predeterminado) + - **Reconstruct Write** (Turbo Write) + - **Auto** (característica futura) +4. Haz clic en **Aplicar** para confirmar tu elección. + +:::important\[Quick recapitulación + +- Usa **Turbo Write** cuando necesites velocidad, pero ten en cuenta el aumento del consumo de energía y la activación de las unidades. +- Utiliza **Escritura en Caché** para un rendimiento óptimo, especialmente con unidades SSD o NVMe. +- Para la mayoría de los usuarios, el modo de escritura predeterminado ofrece el mejor equilibrio, a menos que necesites específicamente mayores velocidades. + +::: + +--- + +## Modos de lectura + +Cuando uses Unraid, la velocidad a la que puedes leer archivos está determinada principalmente por el disco individual que contiene cada archivo. A diferencia de los sistemas %%RAID|raid%% tradicionales, que combinan múltiples discos para mejorar el rendimiento, Unraid almacena cada archivo en un solo disco. Esto significa que las velocidades de lectura no se incrementarán por las velocidades combinadas de varios discos. + +

Expectativas de rendimiento

+ +- **HDD único típico:** 70–250 MB/s (depende del modelo de la unidad, la edad y la ubicación de los datos) +- **SSD SATA típico:** 400–550 MB/s +- **NVMe SSD (en un pool):** 250–7,000 MB/s (se aplican limitaciones de generación PCIe y red/PCIe; por ejemplo, red 10GbE se limita a \~1,100 MB/s) + +:::note\[Special casos + +- Si un disco está deshabilitado y sus datos están siendo reconstruidos, Unraid usará las unidades restantes junto con la información de paridad para recrear los datos. Durante este proceso, la velocidad de lectura puede reducirse a 30–60 MB/s o incluso menos, dependiendo del disco más lento en tu sistema. +- Cualquier operación en curso en la matriz, como una verificación de %%parity|parity-check%% o la reconstrucción de una unidad, también puede afectar el rendimiento de lectura. Esto se debe al aumento del movimiento de los cabezales de la unidad y la competencia general por los recursos. + +::: + +--- + +## Piscinas de caché + +Los %%Cache pools|cache-pool%% en Unraid proporcionan ventajas significativas, particularmente para tareas intensivas en escrituras, máquinas virtuales (VMs) y contenedores Docker. Estos pools operan por separado del array principal y pueden configurarse con múltiples discos utilizando los sistemas de archivos %%BTRFS|btrfs%% o %%ZFS|zfs%%, soportando varias configuraciones de %%RAID|raid%% para velocidad y protección de datos. + +

Pools de caché vs. el arreglo principal

+ +| Característica | Pool de caché (BTRFS) | Pool de caché (ZFS) | Arreglo principal (Unraid) | +| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | +| **Velocidad de lectura** | SSD: 400–550 MB/s, NVMe: 250–7,000 MB/s\* | SSD: 400–550 MB/s, NVMe: 250–7,000 MB/s\* | HDD: 70–250 MB/s (por disco) | +| **Velocidad de escritura** | SSD: 400–550 MB/s, NVMe: 250–7,000 MB/s\* | SSD: 400–550 MB/s, NVMe: 250–7,000 MB/s\* | 20–120 MB/s (dependiente del modo de paridad) | +| **Protección de datos** | %%RAID 1\|raid1%%/%%RAID 10\|raid10%%; %%RAID 5\|raid5%%/%%RAID 6\|raid6%% (experimental, no para datos críticos) | %%RAID 1\|raid1%%/%%RAID 10\|raid10%%; %%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%%/%%RAIDZ3\|raidz3%% (estable, listo para producción) | Basado en paridad, independiente del sistema de archivos | +| **Expansión** | Mezclar tamaños de unidades; agregar/eliminar dispositivos dinámicamente | Soporte limitado de adición/eliminación de dispositivos; no se puede eliminar de RAIDZ; adición de un solo dispositivo para expandir un único vdev RAIDZ en Unraid 7.2 | Agregar unidades, pero sin banda ni escalado de rendimiento | +| **Complejidad en la recuperación** | Mayor riesgo de pérdida de datos; se necesitan herramientas %%BTRFS\|btrfs%% | Mayor riesgo de pérdida de datos; se requieren herramientas %%ZFS\|zfs%% | Reconstrucciones más fáciles basadas en paridad | +| **Mejor para** | Aplicaciones, máquinas virtuales, escrituras frecuentes | Aplicaciones, máquinas virtuales, escrituras frecuentes, cargas de trabajo empresariales | Almacenamiento a granel, bibliotecas de medios | + +\**Las velocidades reales de NVMe dependen de la generación PCIe, el enfriamiento, y el ancho de banda de la red (p.ej., 10GbE se limita a \~1,100 MB/s).* + +

Pros de los pools de caché

+ +- **Mayor rendimiento:** Los pools NVMe pueden saturar redes de 10GbE/40GbE (1,100–3,500 MB/s). +- **RAID flexible:** Tanto %%BTRFS|btrfs%% como %%ZFS|zfs%% soportan %%RAID 1|raid1%%/%%RAID 10|raid10%% para redundancia sin necesidad de igualar tamaños de unidades. +- **Baja latencia:** Ideal para bases de datos, máquinas virtuales y contenedores Docker. +- **Ventajas de ZFS:** %%ZFS|zfs%% proporciona funciones de grado empresarial como verificación de integridad de datos, compresión y snapshots. + +

Contras de los pools de caché

+ +- **Sin protección de paridad:** Los datos no están protegidos hasta que se trasladan al arreglo. +- **Riesgos de recuperación:** %%BTRFS|btrfs%% %%RAID 5|raid5%%/%%RAID 6|raid6%% es inestable; los pools de un solo disco carecen de redundancia. +- **Consideraciones de ZFS:** %%ZFS|zfs%% requiere más memoria RAM y tiene requisitos de hardware más estrictos que %%BTRFS|btrfs%%. + +Para obtener información más detallada sobre %%cache pools|cache-pool%%, incluyendo cómo configurarlos, gestionarlos y características avanzadas, consulte la página [Pools de Caché](./cache-pools.mdx). + +--- + +## Solución de problemas + +### Solución de fallos de inicio del arreglo + +Si tu conjunto no arranca, sigue estos pasos para identificar y solucionar problemas comunes. Busca mensajes de error bajo ***Principal → Operación del conjunto***. + +```mdx-code-block + + + + + + + + + + + + + + + + + + + + + + +``` + +### Fallo de disco durante una reconstrucción + +Si un segundo disco falla mientras está reconstruyendo otro, lo que pueda hacer dependerá de su configuración de paridad. + +

Disco de %%paridad único|parity-drives%%

+ +Si un disco falla durante la reconstrucción de otro, la reconstrucción se detendrá porque los datos no se pueden restaurar con precisión. Lamentablemente, no podrás recuperar tus datos en esta situación. + +

Disco de %%paridad dual|parity-drives%%

+ +Si tiene dos discos de %%paridad|parity-drives%%, tiene más opciones: + +- Puedes esperar a que la primera reconstrucción termine y luego ocuparte del segundo disco fallido. +- O puedes detener la reconstrucción actual, reemplazar el segundo disco fallido y luego iniciar el arreglo para reconstruir ambos discos al mismo tiempo. + +Si la primera reconstrucción está casi terminada, generalmente es mejor dejar que termine. Si recién comenzó, podría ser más rápido reconstruir ambos juntos. + +:::warning +Reconstruir discos pone mucha tensión en todas las unidades, lo que aumenta la probabilidad de nuevas fallas. Siempre verifica la salud del disco usando informes %%SMART|smart-report%% antes de comenzar una reconstrucción. +::: + +:::info[Rebuild Tiempo] +Prepárate para que el proceso de reconstrucción tome varias horas. El tiempo puede variar según el tamaño del disco y qué tan ocupado esté tu sistema. Los discos más grandes y los sistemas ocupados pueden tardar más. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx new file mode 100644 index 0000000000..a26e65beff --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx @@ -0,0 +1,390 @@ +--- +sidebar_position: 3 +sidebar_label: Piscinas de caché +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RemoveDiskGui from './partials/remove-disk-gui.mdx'; +import RemoveDiskCommandLine from './partials/remove-disk-command-line.mdx'; +import PoolSingleDeviceMode from './partials/pool-single-device-mode.mdx'; +import PoolMultiDeviceMode from './partials/pool-multi-device-mode.mdx'; +import MovePoolToArray from './partials/move-pool-to-array.mdx'; +import MoveArrayToPool from './partials/move-array-to-pool.mdx'; +import MoveBetweenPoolsUsingMover from './partials/move-between-pools-using-mover.mdx'; +import MoveBetweenPoolsManual from './partials/move-between-pools-manual.mdx'; + +# Piscinas de caché + +En Unraid, un %%cache pool|cache-pool%% es una colección de uno o más discos, generalmente SSDs o HDDs de alta velocidad. Estos discos almacenan temporalmente datos antes de ser movidos a tu [%%array|array%%](./array-configuration.mdx) principal. Usar %%cache pools|cache-pool%% puede mejorar significativamente las velocidades de escritura, proteger tus datos y proporcionar almacenamiento dedicado para tareas específicas como ejecutar contenedores Docker o [%%virtual machines|vm%%](../create-virtual-machines/overview-and-system-prep.mdx). + +%%Cache pools|cache-pool%% offer several advantages, making them a valuable addition to your Unraid setup, such as: + +1. **Faster write speeds:** %%Cache pools|cache-pool%% allow you to quickly write data to faster drives before it gets transferred to the main %%array|array%%. This greatly enhances perceived performance when saving files. + +2. **Protección de datos para archivos en caché:** Al utilizar múltiples unidades en una %%cache pool|cache-pool%% (configurándolas en %%RAID 1|raid1%%), agregas redundancia. Esto significa que tus datos en caché están protegidos de fallos de unidad antes de llegar a la %%array|array%% principal. + +3. **Almacenamiento optimizado para aplicaciones:** Almacenar aplicaciones como contenedores Docker o %%virtual machines|vm%% en un %%cache pool|cache-pool%% mejora su rendimiento, reduce el desgaste en tu %%array|array%% principal y minimiza el tiempo para acceder a archivos de uso frecuente. + +4. **Almacenamiento flexible y dedicado:** Con múltiples %%cache pools|cache-pool%%, puedes asignar grupos específicos para diferentes tareas. Por ejemplo, podrías tener un grupo dedicado a descargas y otro para %%virtual machines|vm%%, reduciendo la competencia por recursos y aumentando la eficiencia. + +:::info[Keep en Mente] +- **Múltiples piscinas:** Puede crear y nombrar diferentes %%cache pools|cache-pool%%, adaptándolas a sus necesidades específicas. +- **SSD vs. HDD:** Los SSD son excelentes para la velocidad, mientras que puedes usar HDD para cargas de trabajo de datos grandes y secuenciales. Además, los HDD pueden ayudar a prolongar la vida útil de tus SSD. +- **La redundancia importa:** Para proteger tus datos, utiliza más de una unidad en una %%cache pool|cache-pool%%. Un pool de una sola unidad no te protegerá de posibles fallos en la unidad. +- **Elección del sistema de archivos:** El sistema de archivos predeterminado para %%cache pools|cache-pool%% es %%BTRFS|btrfs%%, que admite varias opciones de %%RAID|raid%% para mayor redundancia y flexibilidad. Para más detalles sobre la selección del sistema de archivos, consulta [Sistemas de archivos](./file-systems.mdx). +- **Integración de %%Mover|mover%%:** Los datos escritos en una %%cache pool|cache-pool%% se transfieren automáticamente a tu %%array|array%% principal según un horario que configures. Esto mantiene tus [%%user shares|user-share%%](./shares.mdx) organizados y fáciles de gestionar. +- **Rendimiento de la aplicación:** Al colocar contenedores Docker, datos de aplicaciones y discos de %%VM|vm%% en una %%cache pool|cache-pool%%, mejora la velocidad de acceso y minimiza el desgaste en su almacenamiento principal. +::: + +--- + +## Modos de piscina + +Unraid %%cache pools|pool de caché%% pueden operar en dos modos principales: **modo de dispositivo único** y **modo de múltiples dispositivos**. Conocer la diferencia entre estos modos te ayudará a encontrar el equilibrio adecuado entre rendimiento, flexibilidad y protección de datos para tus necesidades. + + + + + + + + + + + +Tareas comunes para la %%cache pool|cache-pool%% incluyen: + +- Respaldar su piscina al %%array|array%% +- Cambiar entre modos de dispositivo único y multi-dispositivo +- Agregar discos a una piscina +- Reemplazar discos en una piscina + +## Respaldando su piscina de caché al array + +Realizar una copia de seguridad de tu %%cache pool|pool de caché%% en el %%array|array%% principal es un paso crucial antes de realizar actualizaciones, reformatear o reemplazar tus dispositivos de caché. Este proceso asegura que datos importantes, como contenedores de Docker, datos de aplicaciones y archivos de %%virtual machine|máquina virtual%%, se almacenen de manera segura en el %%array|array%% principal, minimizando el riesgo durante el mantenimiento. + +

¿Por qué respaldar su %%cache pool|cache-pool%%?

+ +- **Protección de datos:** Salvaguarde sus archivos importantes antes de realizar cambios o actualizaciones de hardware. +- **Prevención de pérdida accidental:** Reduzca el riesgo de perder datos mientras reformatea o reemplaza dispositivos. +- **Restauración sencilla:** Asegúrese de poder restaurar rápidamente sus datos de aplicaciones y %%máquinas virtuales|vm%% después del mantenimiento. + +:::important +Este proceso detendrá todos los contenedores de Docker y %%virtual machines|máquinas virtuales%%, así que asegúrate de planear un tiempo de inactividad y notificar a los usuarios si es necesario. Para obtener más información sobre la gestión de contenedores de Docker, consulta [Gestionar y personalizar contenedores](../run-docker-containers/managing-and-customizing-containers.mdx). +::: + +Para respaldar su %%cache pool|cache-pool%%: + +1. **Detenga todos los contenedores Docker en ejecución y %%máquinas virtuales|vm%%:** Esto es esencial para un proceso de respaldo fluido. +2. **Deshabilite %%máquinas virtuales|vm%%:** + - Vaya a ***Configuración → VM Manager***. + - Apague %%VMs|vm%% y haga clic en **Aplicar**. +3. **Deshabilite Docker**: + - Navegue a ***Configuración → Docker***. + - Apague Docker y haga clic en **Aplicar**. +4. **Establezca el almacenamiento compartido y la acción de Mover (caché → array)**: + - Ve a la pestaña **Comparticiones**. + - Para cada %%user share|user-share%% que desee mover, establezca **Almacenamiento primario** en el %%cache pool|cache-pool%% de origen y **Almacenamiento secundario** en el %%array|array%%. + - Establezca **Acción de Mover** en **caché → array**. +5. **Verifique el espacio en el %%array|array%%:** Asegúrese de que haya suficiente espacio libre para sus archivos. +6. **Mover archivos al %%array|array%%**: Desde la página **Principal**, haz clic en **Mover Ahora**. Esto transfiere archivos desde el %%cache pool|pool de caché%% al %%array|array%% según la acción del Movedor. +7. **Verifique que su piscina esté vacía:** Una vez que el %%Mover|mover%% haya terminado, verifique que no queden archivos en la %%cache pool|cache-pool%%. + +:::note +Recuerde que los archivos ubicados directamente en el dispositivo de la piscina (no forman parte de ningún share) deben moverse manualmente. +::: + +### Restaurar archivos a la piscina de caché + +Después de completar su mantenimiento o de haber reemplazado su dispositivo, puede restaurar archivos del %%array|array%% de vuelta a la %%cache pool|cache-pool%% siguiendo estos pasos: + +1. \*\*Establezca el almacenamiento compartido y la acción de Mover (array → caché): + - Ve a la pestaña **Comparticiones**. + - Para cada %%user share|user-share%% que desee restaurar, establezca **Almacenamiento primario** en el %%cache pool|cache-pool%% de destino y **Almacenamiento secundario** en el %%array|array%%. + - Configura la **acción del Mover** a **conjunto → caché**. +2. **Verifique el espacio en la piscina:** Asegúrese de que haya suficiente espacio libre en la %%cache pool|cache-pool%%. +3. **Mueva archivos de vuelta a la piscina:** Vaya a la página principal **Main** y haga clic en **Mover ahora** para transferir archivos de vuelta a la %%cache pool|cache-pool%%. +4. **Verifique el contenido en la piscina:** Después de que el movimiento se complete, verifique que su %%cache pool|cache-pool%% contenga los archivos esperados y que los %@shares@% estén vacíos en el %%array|array%%. +5. **Vuelva a habilitar Docker:** Navegue a ***Configuración → Docker*** y encienda Docker nuevamente, luego haga clic en **Aplicar**. +6. **Vuelva a habilitar %%máquinas virtuales|vm%%:** Vaya a ***Configuración → VM Manager*** y encienda %%VMs|vm%% nuevamente, luego haga clic en **Aplicar**. +7. **Reinicie contenedores Docker y %%VMs|vm%%:** Finalmente, inicie cualquier contenedor Docker o %%máquinas virtuales|vm%% que desee ejecutar nuevamente. + +--- + +## Cambio a modo multi-dispositivo + +%%Cache pools|cache-pool%% in Unraid can be expanded from a single device to multiple devices, allowing for increased capacity and redundancy. To take advantage of multi-device mode, your pool must be formatted as %%BTRFS|btrfs%% or %%ZFS|zfs%%. + +### Convertir una piscina a BTRFS o ZFS + +Si su %%cache pool|cache-pool%% aún no está formateada como %%BTRFS|btrfs%% o %%ZFS|zfs%%, siga estos pasos sencillos: + +1. **Realiza una copia de seguridad de tus datos**: Primero, asegúrate de hacer copia de seguridad de cualquier contenido importante. (Consulta [Realizar copia de seguridad de tu pool de caché en el array](#backing-up-your-cache-pool-to-the-array)) +2. **Detener el %%array|array%%:** Asegúrese de detener el %%array|array%% para comenzar el proceso de conversión. +3. **Cambiar el sistema de archivos:** Haga clic en la piscina en la pestaña **Main** y seleccione **BTRFS** o **ZFS** como el formato del sistema de archivos. +4. **Iniciar el %%array|array%%:** Después de cambiar el formato, inicie el %%array|array%%. +5. **Formatear el pool**: El pool aparecerá como **no montable** y ofrecerá la opción de formatear. Confirma y haz clic en el botón **Formatear**. +6. **Completar el formateo:** Una vez que el formateo esté completo, tendrá una piscina %%BTRFS|btrfs%% o %%ZFS|zfs%%, aunque solo tendrá un dispositivo en esta etapa. +7. **Agregar más discos si lo desea:** Puede proceder a agregar más discos a su piscina si lo desea. +8. **Restaurar sus datos:** Finalmente, siga los pasos de restauración del procedimiento de respaldo para mover sus datos de vuelta a la piscina. + +### Agregar discos para crear una piscina multi-dispositivo + +Una vez que su piscina esté formateada como %%BTRFS|btrfs%% o %%ZFS|zfs%%, puede agregar más discos para aumentar la redundancia y ampliar el almacenamiento. + +Para agregar más discos para redundancia: + +1. **Detener el %%array|array%%:** Nuevamente, comience deteniendo el %%array|array%%. +2. **Asignar discos adicionales:** En la pestaña **Main**, puede asignar uno o más dispositivos nuevos a su piscina. +3. **Iniciar el %%array|array%%:** Una vez que los discos están asignados, inicie el %%array|array%%. +4. **Balanceo/resilver automáticamente:** Unraid incorporará automáticamente los nuevos dispositivos a la piscina e iniciará un **balanceo** (%%BTRFS|btrfs%%) o **resilver** (%%ZFS|zfs%%) para distribuir y proteger los datos entre los dispositivos. +5. **Monitorear el progreso:** En la pestaña **Main**, haga clic en el primer dispositivo de piscina, luego verifique el **Estado del Balanceo** (para %%BTRFS|btrfs%%) o **zpool status** (para %%ZFS|zfs%%) para seguir el progreso y confirmar que el nuevo dispositivo se agregó con éxito. +6. **Piscina ahora en modo multi-dispositivo:** Una vez que el balanceo se complete, su piscina estará operando en **modo multi-dispositivo** con capacidad y redundancia mejoradas. + +:::tip +Puede utilizar el [Calculador de uso de discos BTRFS](http://carfax.org.uk/btrfs-usage/) para estimar espacio disponible y redundancia según su nivel de %%RAID|raid%% elegido y tamaños de dispositivos. +::: + +--- + +## Agregar discos a una piscina + +A medida que crescen tus necesidades de almacenamiento, es posible que quieras expandir tu pool de caché añadiendo discos adicionales. Este proceso te permite aumentar tanto la capacidad como el rendimiento mientras mantienes la protección de datos a través de configuraciones RAID. + +:::note +Si deseas agregar discos a tu pool, asegúrate de que tu pool ya esté formateado como %%BTRFS|btrfs%% o %%ZFS|zfs%%. Si no lo está, necesitarás formatearlo primero, como se explica en [la sección anterior](#converting-a-pool-to-btrfs-or-zfs). +::: + +Para agregar un disco a una piscina: + +1. **Detener el %%array|array%%:** Empiece por detener el %%array|array%% actual para asegurar que el proceso se desarrolle sin problemas. +2. **Abre la pestaña Principal**: Ve a la pestaña **Principal** en el %%WebGUI|interfaz web%%. Aquí es donde gestionarás tus discos. +3. **Encuentra la sección de Dispositivos del Pool**: Desplázate hacia abajo hasta que veas la sección *Dispositivos del Pool*. Aquí es donde puedes realizar cambios en la configuración de tus discos. +4. **Ajusta el número de ranuras**: Establece **Ranuras** exactamente en el número de dispositivos adicionales que estás agregando. No puedes dejar ranuras vacías adicionales; el array no se iniciará con ranuras de pool sin usar. +5. **Asigne sus dispositivos:** Elija qué dispositivos (discos) desea agregar a la piscina y asígnelos a las ranuras disponibles. +6. **Iniciar el %%array|array%%:** Después de haber asignado sus dispositivos, inicie el %%array|array%% de nuevo para habilitar estos cambios. + +--- + +## Eliminar discos de una piscina + +Remover un disco de un %%BTRFS|btrfs%% o %%ZFS|zfs%% multi-device %%cache pool|pool de caché%% puede ayudarte a recuperar hardware, reemplazar un disco defectuoso o reconfigurar tu almacenamiento. Este proceso solo es posible si tu pool está configurado para redundancia (como %%RAID 1|raid1%% para datos y metadatos) y los dispositivos restantes tienen suficiente espacio para contener todos tus datos. + + + + + + + + + + + +### Cambio de niveles RAID del grupo + +%%BTRFS|btrfs%% proporciona la capacidad de cambiar los niveles de %%RAID|raid%% para %%cache pools|pools de caché%% dinámicamente, permitiéndote ajustar configuraciones sin detener el %%array|array%% ni perder ningún dato. Esta flexibilidad te permite optimizar para rendimiento, redundancia o eficiencia de almacenamiento a medida que cambian tus requisitos. + +

Niveles %%RAID|raid%% Soportados

+ +| Nivel %%RAID\|raid%% | Protección de Datos | Eficiencia Espacial | Caso de Uso | +| -------------------- | ------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| Único | Ninguno | 100% | Almacenamiento temporal o datos no críticos donde no se necesita redundancia. | +| %%RAID 0\|raid0%% | Ninguno | 100% | Maximiza el rendimiento y la capacidad, pero no se recomienda para datos críticos. | +| %%RAID 1\|raid1%% | 1 fallo de disco | 50% | Predeterminado para los pools de Unraid. Ideal para almacenamiento de Docker/%%VM\|vm%% y datos críticos. | +| %%RAID 10\|raid10%% | 1 fallo de disco | 50% | Combina la velocidad de %%RAID 0\|raid0%% con la redundancia de %%RAID 1\|raid1%% para necesidades de alto rendimiento. | +| %%RAID 5\|raid5%%\* | 1 fallo de disco | 67-94% | **Experimental.** Equilibra capacidad y redundancia para almacenamiento de medios grande. | +| %%RAID 6\|raid6%%\* | 2 fallos de disco | 50-88% | **Experimental.** Proporciona protección extra para almacenamiento de archivo con discos grandes. | + +:::important +Se consideran experimentales %%RAID 5|raid5%% y %%RAID 6|raid6%% en %%BTRFS|btrfs%%. %%ZFS|zfs%% proporciona un soporte más maduro para estos niveles de %%RAID|raid%%. Usa con precaución y asegúrate de tener copias de seguridad. Evita usar niveles experimentales de %%RAID|raid%% para datos críticos. +::: + +Para cambiar el nivel %%RAID|raid%% de una agrupación: + +1. **Inicia la %%array|array%%** en modo normal si no está ya en ejecución. +2. **Haz clic en el nombre de la agrupación** en la pestaña **Principal**. +3. **Desplázate al Estado de Equilibrio**: Visualiza los niveles %%RAID|raid%% actuales para datos y metadatos. +4. **Selecciona el nuevo perfil %%RAID|raid%%**: Escoge de un menú desplegable de perfiles predefinidos. +5. **Inicia la operación de equilibrio**: Haz clic en **Equilibrio** para comenzar la conversión. + +
+ ![Conversión de %%RAID 1|raid1%% a perfil único](/img/Btrfs-raid1.jpg) +

*Ejemplo: Conversión de %%RAID 1|raid1%% a perfil único*

+
+ +6. **Supervisa el progreso**: Las operaciones de equilibrio pueden durar desde varias horas hasta días, dependiendo de la cantidad de datos en la agrupación, velocidades de los discos y la complejidad del nivel %%RAID|raid%% seleccionado. + +
+ Solucionar problemas de operaciones de equilibrio si se atascan - Haz clic para expandir/colapsar + + Si una operación de equilibrio parece atascada o no responde, sigue estos pasos: + + 1. **Revisa los registros**: Ve a **Herramientas → Registros** y filtra entradas `btrfs`. + 2. **Detén y reanuda la operación**: + - Haz clic en **Cancelar Equilibrio**. + - Reinicia la %%array|array%%. + - Inicia nuevamente la operación de equilibrio. + 3. **Verifica el estado de los discos**: Ejecuta pruebas %%SMART|smart%% en todos los dispositivos del pool. Para más información sobre el monitoreo de la salud del disco, consulta [Informes SMART y salud del disco](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx). + 4. **Verifica espacio libre**: Asegura que haya al menos 10-15% de espacio libre disponible en la agrupación. + 5. **Publicar diagnósticos**: Comparte los registros en los [foros de Unraid](https://forums.unraid.net/) si los problemas persisten. Para obtener orientación sobre cómo capturar diagnósticos, consulta [Capturar diagnósticos y registros](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx). +
+ +Para detalles avanzados de configuración de %%BTRFS|btrfs%%, consulta la [wiki BTRFS](https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices). + +--- + +## Reemplazar un disco en una agrupación + +Reemplazar un disco en tu %%cache pool|pool de caché%% es una tarea importante que ayuda a mantener el rendimiento y la confiabilidad de tu sistema de almacenamiento. + +:::note\[Prerequisites] + +- **Verifica la configuración de tu pool:** Asegúrate de que tu pool esté configurado con un perfil %%RAID|raid%% redundante, como %%RAID 1|raid1%%. Puedes hacer esto yendo a ***Principal → Pool → Estado de Balance*** (para %%BTRFS|btrfs%%) o estado del pool ZFS (para %%ZFS|zfs%%) en tu interfaz de gestión. +- **Elige el disco de reemplazo adecuado:** El nuevo disco debe ser del mismo tamaño o más grande que el que estás reemplazando. +- **Capacidad de intercambio en caliente:** Si tu hardware es compatible con el intercambio en caliente, no necesitarás apagar tu sistema para reemplazar el disco. + +::: + +Para reemplazar un disco en una agrupación: + +1. **Detén el %%array|array%%**: Ve a la pestaña **Principal**, encuentra la sección **Operación del Array** y haz clic en el botón **Detener**. Esto detendrá el %%array|array%% de manera segura para prepararse para el reemplazo del disco. +2. **(Opcional) Remueve el disco viejo**: Si no tienes un setup capaz de intercambio en caliente, necesitarás desconectar físicamente el disco viejo. Asegúrate de hacerlo cuidadosamente para evitar cualquier daño. +3. **Instala el disco de reemplazo**: Inserta el nuevo disco en tu sistema. Asegúrate de que esté correctamente conectado y asegurado. +4. **Actualiza el %%WebGUI|web-gui%%**: Vuelve a la pestaña **Principal** y actualiza la página para que el sistema detecte tu nuevo disco. +5. **Asigna el nuevo disco**: Una vez detectado, encuentra la ranura de la agrupación donde estaba ubicado el disco antiguo y asigna el nuevo disco a esa ranura. +6. **Inicia la %%array|array%%**: Haz clic en el botón **Iniciar** para comenzar el proceso de integrar el nuevo disco en la %%array|array%%. +7. **Monitorea la reconstrucción**: El sistema comenzará automáticamente a reconstruir los datos en el nuevo disco. Puedes supervisar el progreso en la %%WebGUI|interfaz web%%. + +:::important\[Timing] + +La reconstrucción puede tomar algo de tiempo, dependiendo del tamaño del disco y la carga actual en tu sistema. Por ejemplo, reconstruir un SSD de 4TB en una configuración %%RAID 1|raid1%% puede tomar aproximadamente de 3 a 6 horas. Es una buena idea planear esto cuando puedas permitir que el sistema trabaje sin interrupciones. + +::: + +--- + +## Espacio libre mínimo para una agrupación de caché + +Establecer un espacio libre mínimo para tu %%cache pool|pool de caché%% puede proporcionar un mejor control sobre la ubicación de archivos, especialmente cuando se trata de archivos grandes como vídeos de alta resolución. Esta configuración ayuda a Unraid a saber cuándo dejar de escribir en el pool y comenzar a escribir directamente en el %%array|array%% de almacenamiento más grande, evitando interrupciones o corrupción de datos. + +:::tip\[Example] + +Si a menudo descargas archivos de alrededor de 10 GB, establece el espacio libre mínimo en al menos 10 GB, pero idealmente 20 GB para permitir ajustes. + +::: + +Puedes acceder al Espacio Libre Mínimo haciendo clic en el nombre de la agrupación en la pestaña **Principal** y yendo a **Configuraciones Individuales de la Agrupación**. + +

Cómo funciona

+ +- Cuando transfieres un archivo a una carpeta compartida que incluye una agrupación, Unraid respetará primero el ajuste de mínima cantidad de espacio libre que encuentre (ya sea el mínimo de espacio libre de la carpeta o el mínimo de espacio libre de la agrupación, lo que se alcance primero). +- La configuración de espacio libre mínimo le indica a Unraid que deje de usar el %%cache pool|cache-pool%% cuando el espacio libre caiga por debajo de esta cantidad. +- Si tu share utiliza un %%cache pool|pool de caché%% como **almacenamiento Primario**, los archivos van al pool hasta que alcanza el espacio libre mínimo, luego se envían directamente al %%array|array%%. +- Si está configurado para usar un %%cache pool|pool de caché%% exclusivamente (sin **almacenamiento Secundario**), esta configuración no se aplica. +- Si está configurado para usar sólo la %%array|array%% como **Almacenamiento Primario**, los archivos van directamente a la %%array|array%%. + +:::tip[Use case example] +La share de multimedia tiene el límite establecido en 20GB, lo cual es adecuado para los archivos en esa share. Sin embargo, si también usas el pool para una MV y quieres dejar un margen en caso de que el disco virtual crezca, podrías establecer el límite del pool en 50GB. De esta manera, cualquier transferencia a la share de multimedia después de que el pool tenga menos de 50GB libres iría directamente al array. +::: + +:::tip[Best práctica] +Establece el espacio libre mínimo al menos al tamaño del archivo más grande que esperas, preferiblemente el doble de ese tamaño. Por ejemplo, si tu archivo más grande es de 30 GB, establece el mínimo en 60 GB. +::: + +:::caution +**No establezcas el espacio libre mínimo en 0.** Esto puede causar errores de disco lleno. Siempre usa un valor razonable. +::: + +--- + +## Mover archivos entre un pool y la matriz + +Existen momentos en que puedes necesitar mover archivos entre tu %%cache pool|pool de caché%% y el %%array|array%% principal, como cuando te preparas para el mantenimiento, actualizas hardware o optimizas el rendimiento. Unraid proporciona una herramienta integrada llamada %%Mover|movedor%% para automatizar este proceso para [%%user shares|shares de usuario%%](./shares.mdx). + +:::tip +Siempre desactiva los servicios de Docker y de %%VM|MV%% antes de mover archivos con el %%Mover|movedor%%. Esto evita que se omitan archivos abiertos durante la transferencia. +::: + + + + + + + + + + + +
+ Por qué a veces los archivos terminan en el pool o caché equivocado? - Click para expandir/colapsar + + Cuando mueves archivos entre [%%user shares|shares de usuario%%](./shares.mdx) a nivel de Linux (por ejemplo, usando `mv` o dentro de un contenedor de Docker), Linux intenta optimizar la operación. Si tanto la fuente como el destino aparecen en el mismo punto de montaje (`/mnt/user`), Linux podría renombrar el archivo en lugar de moverlo. Esto puede resultar en archivos que permanecen en el disco o pool original, incluso si la configuración de 'Usar caché' del share está establecida en 'No'. + + Para asegurarte de que los archivos se muevan como se espera, considera las siguientes opciones: + + - Usar la herramienta %%Mover|mover%%. + - Copiar archivos y luego eliminar los originales. + - Mover archivos a través de la red. + + Estos métodos ayudan a prevenir que los archivos terminen en la ubicación incorrecta. +
+ +--- + +## Múltiples pools + +Unraid te permite crear y gestionar hasta 35 pools de almacenamiento separados, cada uno con hasta 60 dispositivos. Varios pools te dan la flexibilidad de asignar almacenamiento para diferentes tareas, mejorar el rendimiento y personalizar la redundancia según tus necesidades. Cada pool puede usar un sistema de archivos, nivel %%RAID|raid%% y tipo de dispositivo diferente (SSD, HDD, NVMe, etc.). + +

¿Por qué usar múltiples pooles?

+ +- **Optimizar el rendimiento:** Pools separados para %%VMs|vm%%, contenedores Docker, descargas o contenido multimedia pueden mejorar la velocidad y reducir conflictos. +- **Proteger datos:** Asignar diferentes niveles de %%RAID|raid%% o sistemas de archivos a cada pool para opciones de redundancia y respaldo personalizadas. +- **Aislar cargas de trabajo:** Mantenga aplicaciones críticas en pools más rápidos y redundantes y almacene datos masivos en dispositivos más grandes y rentables. +- **Gestionar con flexibilidad:** Puedes expandir, reducir o formatear pooles de forma independiente sin afectar a otros. + +

Casos de uso comunes

+ +| Caso de uso | Ejemplo de configuración | Beneficio | +| ------------------------------------ | ---------------------------------------------------------------------------- | -------------------------------------------------- | +| VM de alto rendimiento | Pool de SSD NVMe, %%RAID 1\|raid1%%, %%BTRFS\|btrfs%% o %%ZFS\|zfs%% | Entrada/salida rápida con redundancia | +| Almacenamiento Docker/Aplicaciones | Pool SSD, %%RAID 1\|raid1%%, %%BTRFS\|btrfs%% o %%ZFS\|zfs%% | Acceso rápido y protección de datos | +| Descargas de medios masivos | Pool de HDD grande, %%RAID 0\|raid0%% o único, %%XFS\|xfs%%/%%BTRFS\|btrfs%% | Alta capacidad con menos redundancia | +| Aislamiento de proyectos/equipos | Pooles separados para cada equipo/proyecto | Reduce conflictos de recursos | +| Instantáneas y objetivos de respaldo | %%ZFS\|zfs%% pool, %%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%% (multi-device) | Soporta instantáneas y copias de seguridad nativas | + +:::info[Supported File Systems] +- %%BTRFS|btrfs%%: Mejor para pooles de múltiples dispositivos (soporta %%RAID 0|raid0%%, %%RAID 1|raid1%%, %%RAID 10|raid10%%, %%RAID 5|raid5%%, %%RAID 6|raid6%%). +- %%ZFS|zfs%%: Excelente para pools tanto de un solo dispositivo como de múltiples dispositivos (Unraid 6.12+), con soporte maduro para %%RAIDZ1|raidz1%% y %%RAIDZ2|raidz2%%. Para características avanzadas de ZFS y configuración, consulta [almacenamiento ZFS](../../advanced-configurations/optimize-storage/zfs-storage.mdx). +- %%XFS|xfs%%: Adecuado para pooles de un solo dispositivo. +::: + +Al acceder a un [%%user share|share de usuario%%](./shares.mdx) desde múltiples pools y discos %%array|array%%, Unraid fusiona los listados de directorios en este orden: + +1. Pool asignado a la compartición. +2. Discos %%array|array%% (disk1, disk2, ..., disk28) +3. Otros pooles (en orden) + +### Mover archivos entre pooles + +Unraid no permite el movimiento directo de archivos entre pooles a través del WebGUI, pero puedes hacerlo usando la herramienta %%Mover|mover%% o a través del comando de línea. + +:::note\[Remember] + +Si alguno de los archivos pertenece a un contenedor de Docker y/o %%VM|MV%%, los servicios deben ser desactivados para que los archivos puedan moverse con éxito. + +::: + + + + + + + + + + + +:::warning +Si extraes un dispositivo de un pool %%BTRFS|btrfs%% o %%ZFS|zfs%% y lo mueves a un nuevo pool, Unraid borrará todos los datos cuando el %%array|array%% se reinicie. Siempre haz una copia de seguridad de datos importantes antes de cambiar configuraciones de pool. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx new file mode 100644 index 0000000000..807c61a6f8 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx @@ -0,0 +1,478 @@ +--- +sidebar_position: 4 +sidebar_label: Sistemas de archivos +--- + +# Sistemas de archivos + +### Seleccionando un tipo de sistema de archivos + +Seleccionar el sistema de archivos correcto para su Unraid %%array|array%% o %%cache pool|cache-pool%% es crucial. Le ayuda a lograr un equilibrio entre rendimiento, protección de datos y funciones avanzadas. Unraid admite varios sistemas de archivos de Linux modernos, cada uno con sus propias fortalezas únicas y casos de uso específicos: + +| Sistema de Archivos | Protección de Datos | Eficiencia Espacial | Características Avanzadas | Mejor Caso de Uso | +| ------------------- | ------------------------------------------------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | +| %%XFS\|xfs%% | Sin redundancia incorporada | 100% | Robusto contra la corrupción | Predeterminado para unidades de array; alta fiabilidad | +| %%ZFS\|zfs%% | %%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%%/%%RAIDZ3\|raidz3%%, espejos, etc. | Varía según el nivel de %%RAID\|raid%% | %%Checksums\|suma de verificaciones%%, %%Snapshots\|instantáneas%%, %%RAID\|raid%% | Pools de dispositivos múltiples, %%VMs\|vm%%, Docker, usuarios avanzados | +| %%BTRFS\|btrfs%% | %%RAID 0\|raid0%%/%%RAID 1\|raid1%%/%%10\|raid10%%/%%5\|raid5%%/%%6\|raid6%%, espejos | Varía según el nivel de %%RAID\|raid%% | %%Checksums\|suma de verificaciones%%, %%Snapshots\|instantáneas%%, %%RAID\|raid%% | Pools de dispositivos múltiples, SSD/HDD mixtos, pools flexibles | + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import FileSystemXfs from './partials/file-system-xfs.mdx'; +import FileSystemZfs from './partials/file-system-zfs.mdx'; +import FileSystemBtrfs from './partials/file-system-btrfs.mdx'; +import BtrfsBalance from './partials/btrfs-balance.mdx'; +import BtrfsScrub from './partials/btrfs-scrub.mdx'; +import FsCheckCliXfs from './partials/fs-check-cli-xfs.mdx'; +import FsCheckCliBtrfs from './partials/fs-check-cli-btrfs.mdx'; +import FsCheckCliZfs from './partials/fs-check-cli-zfs.mdx'; +import FsRepairCliXfs from './partials/fs-repair-cli-xfs.mdx'; +import FsRepairCliBtrfs from './partials/fs-repair-cli-btrfs.mdx'; +import FsRepairCliZfs from './partials/fs-repair-cli-zfs.mdx'; + + + + + + + + + + + + + + + +:::note[Additional Notas] +- Mezclar diferentes tipos de sistemas de archivos en su sistema Unraid es perfectamente aceptable; el sistema de %%parity|parity%% de Unraid funciona independientemente del sistema de archivos utilizado. +- Siempre formatee y particione las unidades dentro de Unraid para asegurar la compatibilidad. +- Los sistemas Linux pueden leer estos sistemas de archivos de forma nativa; sin embargo, Windows y macOS requerirán software adicional para acceder. +- Puede encriptar las unidades para mejorar la seguridad, pero tenga en cuenta que las unidades encriptadas pueden plantear desafíos para la recuperación en caso de corrupción. +- Para unidades de transferencia o dispositivos externos, se recomienda usar el plugin **[Unassigned Devices](#using-the-unassigned-devices-plugins)**, que admite sistemas de archivos adicionales. +::: + +:::tip\[Still ¿necesitas ayuda eligiendo? + +- **Para unidades de array:** %%XFS|xfs%% es generalmente la mejor opción para la mayoría de los usuarios. +- **Para un alto rendimiento o funciones avanzadas:** Elige %%ZFS|zfs%% o %%BTRFS|btrfs%% para %%cache pools|cache-pool%% o configuraciones de múltiples dispositivos. +- **Para pools mixtos o en expansión:** %%BTRFS|btrfs%% es ideal si desea utilizar diferentes tamaños de unidades o añadir o quitar dispositivos fácilmente. + +Si no estás seguro, comenzar con los valores predeterminados es una buena opción: usa %%XFS|xfs%% para las unidades de %%array|array%% y %%BTRFS|btrfs%% para %%cache pools|cache-pool%%. + +::: + +--- + +## Establecer un tipo de sistema de archivos + +Al agregar una nueva unidad a Unraid, puedes seleccionar el tipo de sistema de archivos que mejor se adapte a tus necesidades. El sistema de archivos determina cómo se organiza y protege la información en el disco. + +Para configurar el tipo de sistema de archivos: + +1. **Establezca el predeterminado globalmente**: + - Navegue a ***Ajustes → Configuración del Disco*** para establecer el sistema de archivos predeterminado solo para nuevas unidades de %%array|array%%. + - Unraid utiliza por defecto %%XFS|xfs%% para unidades de %%array|array%%. + - **Nota:** Actualmente no hay una configuración predeterminada global para %%cache pools|cache-pool%%. Siempre se predeterminarán a %%BTRFS|btrfs%% si se deja en "auto". + +2. **Establezca el sistema de archivos para una unidad individual**: + - Detenga el %%array|array%%. + - Haga clic en la unidad en la pestaña **Principal**. + - Elija su tipo de sistema de archivos deseado en el menú desplegable. + - Si selecciona **auto**, Unraid utilizará el predeterminado global. + - Para %%cache pools|cache-pool%% de múltiples dispositivos, solo se admite %%BTRFS|btrfs%% o %%ZFS|zfs%%. + +--- + +## Crear un sistema de archivos (formateo) + +Antes de usar un nuevo disco en Unraid, debes formatearlo con el sistema de archivos seleccionado. **Recuerda, formatear borrará todo el contenido existente en la unidad.** + +Para comenzar con el formateo: + +1. **Inicie el %%array|array%%**. +2. **Identifique las unidades no montables**: Las unidades no reconocidas aparecerán como **no montables**. +3. **Verifique la selección de la unidad**: Verifique que todas las unidades no montables sean las que desea formatear. +4. **Confirme y formatee**: Marque la casilla para confirmar, lea el cuadro de diálogo de advertencia cuidadosamente y haga clic en **Formatear**. +5. **Monitorea el proceso**: El proceso de formateo comenzará. Para discos nuevos, Unraid primero reescribirá la tabla de particiones. +6. **Espera hasta completar**: Formatear suele llevar unos pocos minutos. Si no ves progreso, actualiza la pestaña **Main**. + +Una vez que se complete el formateo, la unidad estará lista para almacenar archivos. + +--- + +## Cambiar un tipo de sistema de archivos + +Es posible que desee cambiar el tipo de sistema de archivos en una unidad específica para aprovechar las nuevas características o asegurar la compatibilidad con tus otras unidades. + +:::warning +Cambiar el tipo de sistema de archivos **borrará todos los datos existentes** en la unidad. Siempre haz copias de seguridad de cualquier archivo importante antes de proceder. +::: + +Para cambiar el tipo de sistema de archivos en una unidad particular: + +1. **Detenga el array**: Comience deteniendo su %%array|array%% para asegurarse de que no haya operaciones durante el cambio. +2. **Seleccione la unidad**: En la pestaña **Principal**, haga clic en la unidad para la que desea cambiar el formato. +3. **Elige el nuevo sistema de archivos**: Desde el menú desplegable, selecciona el formato de sistema de archivos deseado. Si tienes varias unidades para cambiar, repite este paso para cada una. +4. **Inicie el array**: Una vez que haya seleccionado los nuevos sistemas de archivos, inicie su %%array|array%% de nuevo. +5. **Formatear unidades no montables**: La pestaña **Main** mostrará una opción para formatear unidades no montables. Tómate un momento para revisar la lista y asegúrate de que solo se incluyan las unidades que deseas cambiar. +6. **Confirme y formatee**: Marque la casilla de confirmación para reconocer el cambio, luego haga clic en el botón **Formatear** para proceder. +7. **Espera a que finalice el proceso**: Formatear usualmente toma solo unos minutos. Si notas que el estado no se actualiza, puedes actualizar la pestaña **Main** para verificar el progreso. + +Si encuentras algún problema, no dudes en visitar los [foros de Unraid](https://forums.unraid.net/). Adjunta el archivo zip de diagnósticos del sistema (encontrado en ***Tools → Diagnostics***) para obtener asistencia. + +--- + +## Convirtiendo a un nuevo tipo de sistema de archivos + +:::important +A partir de Unraid 7.2, la página de ***Main*** advertirá si alguna unidad de array o pool está formateada en sistemas de archivos heredados: + +- Cualquier disco formateado en ReiserFS necesita ser migrado a otro sistema de archivos lo antes posible, ya que no será utilizable en una futura versión de Unraid (probablemente Unraid 7.3). +- Cualquier disco formateado en una versión anterior de XFS necesita ser migrado antes de 2030. +::: + +Para cambiar el tipo de sistema de archivos de una unidad pero conservar sus datos, debe migrar el contenido antes de reformatear. Este proceso es especialmente común para usuarios que se alejan del ReiserFS obsoleto (utilizado en versiones antiguas de Unraid) hacia %%XFS|xfs%% o %%BTRFS|btrfs%%, pero se aplica a cualquier conversión de sistema de archivos. + +:::important +Este proceso requiere mover temporalmente sus datos a otra ubicación. Asegúrese de tener suficiente espacio libre en otro lugar de su %%array|array%% o en un dispositivo externo antes de comenzar. +::: + +Para convertirse de manera segura a un nuevo tipo de sistema de archivos: + +1. **Copie todos los datos de la unidad**: Mueva sus archivos a otra ubicación. Esto podría ser otra unidad en su %%array|array%%, un %%cache pool|cache-pool%% o una copia de seguridad externa. + - Antes de Unraid 7.0, necesitarás mover los archivos manualmente + - A partir de Unraid 7.0, puedes mover archivos [usando 'mover' para vaciar un disco de la matriz](../../release-notes/7.0.0.md#using-mover-to-empty-an-array-disk) a otros discos de la matriz a través de la línea de comandos + - A partir de Unraid 7.2, puedes vaciar un disco de la matriz a otros discos de la matriz a través de la WebGUI: + - Navega a ***Main → Array Operation*** y detiene la matriz + - Navega a ***Settings → Global Share Settings***. En el área de **Vaciado de disco(s)**, selecciona el/los discos a vaciar y **Aplica**. Nota: este estado se eliminará automáticamente cuando se detenga la matriz. + - Navega a ***Main → Array Operation*** y inicia la matriz + - En ***Main → Array Operation*** haz clic en **Mover** (o espera hasta que el mover se ejecute según su horario normal) + - Mover vaciará el disco de acuerdo con tus configuraciones de Compartir. Nota que los archivos en la raíz del disco están fuera de cualquier Compartir y no serán movidos. + - Revisa ***Tools → System Log*** para ver mensajes sobre archivos que no se pudieron mover debido a su uso o falta de espacio libre + - Navega a ***Main → Array Devices*** y explora el disco para confirmar que está vacío. Procede solo cuando estés seguro de que el disco está vacío. +2. **Cambie el tipo de sistema de archivos**: Siga el procedimiento para [cambiar un tipo de sistema de archivos](#changing-a-file-system-type). Esto formateará la unidad y borrará todo el contenido, dejándolo con una unidad en blanco en el nuevo formato. +3. **Copia tus datos de vuelta**: (Opcional) Dependiendo de dónde moviste los archivos, puede que desees moverlos de vuelta al disco recién formateado. +4. **Repita según sea necesario**: Si tiene más de una unidad para convertir, repita estos pasos para cada unidad, transfiriendo datos según sea necesario. + +:::note\[Timing] + +El proceso puede tardar varias horas, dependiendo de la cantidad de datos y la velocidad de sus unidades. La mayor parte del tiempo se invierte en copiar archivos, lo cual puede ejecutarse sin supervisión. + +::: + +--- + +## Reformateando una unidad + +Reformatear una unidad en Unraid borrará todos sus datos y creará un nuevo y vacío sistema de archivos. Este proceso es útil para resolver errores persistentes del sistema de archivos o empezar de nuevo con un nuevo formato. + +:::warning +Reformatear borrará permanentemente todos los datos en la unidad. Siempre haga una copia de seguridad de los archivos importantes antes de comenzar. +::: + +Para **reformatear de manera segura** su unidad: + +1. **Detén el array**. +2. **Cambie el tipo de sistema de archivos**: + - Vaya a la pestaña **Principal** y haga clic en la unidad que desea reformatear. + - Seleccione un tipo diferente de sistema de archivos (por ejemplo, cambie de %%XFS|xfs%% a %%BTRFS|btrfs%%). + - Inicie el %%array|array%%, y la unidad se mostrará como **no montable**. + - Cuando se le indique, formatee la unidad. +3. **(Opcional) Cambie nuevamente a su tipo de sistema de archivos original**: + - Detenga el %%array|array%% nuevamente. + - Cambie el sistema de archivos de nuevo a su tipo preferido. + - Inicie el %%array|array%% y formatee la unidad una vez más. + +Este sencillo proceso asegura que la unidad esté completamente borrada y formateada como desee. El proceso de formateo generalmente toma solo unos minutos. + +### Reformatear una unidad de cache + +A veces, necesitará reformatear una unidad de %%cache|cache%% por las siguientes razones: + +- Para cambiar el tipo de sistema de archivos (por ejemplo, de %%BTRFS|btrfs%% a %%XFS|xfs%% o viceversa) +- Para corregir errores persistentes del sistema de archivos +- Para comenzar de cero para nuevas cargas de trabajo + +

Procedimiento recomendado para reformatear una unidad de cache

+ +1. **Detén el array**. +2. **Deshabilite los servicios de Docker y %%VM|vm%%** bajo **Ajustes**. +3. **Inicie el array** (esto evitará que aparezcan las pestañas de Docker y %%VM|vm%%). + +Para mover datos fuera del cache: + +4. **Establezca el almacenamiento compartido y la acción del Mover (cache → array)**: Para cada compartición que tenga archivos en el %%cache|cache%%, establezca **Almacenamiento Primario** en el pool del %%cache|cache%% de origen y **Almacenamiento Secundario** en el %%array|array%%. Establezca la **acción del Mover** en **cache → array**. + - Anota cualquier acción de acciones que cambies y sus configuraciones originales. +5. **Ejecute %%Mover|mover%%**: Ejecute %%Mover|mover%% desde la pestaña **Principal**. Espere a que termine y asegúrese de que el %%cache|cache%% esté vacío. + - Si quedan archivos, detente y verifica en los foros para obtener ayuda. + +Para reformatear la unidad de caché: + +6. **Detén el array**. +7. **Establece el formato de la unidad de caché** (elige entre %%XFS|xfs%% o %%BTRFS|btrfs%%). + - Para una única unidad de %%cache|cache%%, %%XFS|xfs%% es la opción recomendada. + - Ten en cuenta que %%XFS|xfs%% sólo está disponible si tienes un espacio de %%cache|cache%%. +8. **Inicia el array**. +9. **Formatea la unidad de caché**: + - Confirma que sólo la unidad %%cache|cache%% aparece como no montable. + - Procede a formatear la unidad. + +Para restaurar datos y configuraciones: + +10. **Restaura configuraciones de compartición**: Para cada compartición que cambiaste, configura **Almacenamiento primario** y **Almacenamiento secundario** a sus valores originales. +11. **Mover los datos de vuelta (array → cache)**: Establezca **Almacenamiento Primario** en el pool de %%cache|cache%% de destino y **Almacenamiento Secundario** en el %%array|array%% para cada compartición que cambió. Establezca la **acción del Mover** en **array → cache**, luego ejecute %%Mover|mover%% nuevamente para mover sus datos de vuelta al %%cache|cache%%. +12. **Detén el array**. +13. **Vuelva a habilitar Docker y los servicios de %%VM|vm%%.** +14. **Inicia el array**. + +:::note\[Timing] + +El tiempo que lleva mover datos con el %%Mover|mover%% y formatear la unidad puede variar de varios minutos a varias horas, dependiendo de la cantidad de datos y la velocidad de la unidad. + +::: + +--- + +## Operaciones de BTRFS + +Mantener sus pools %%BTRFS|btrfs%% en Unraid es esencial para mantenerlos funcionando bien y asegurar que sus datos estén seguros. Dos herramientas clave que querrá usar regularmente son **Balance** y **Scrub**. Estas operaciones ayudan a resolver problemas de asignación de espacio, optimizan el uso de su almacenamiento y protegen sus datos de la corrupción oculta. + +Vamos a desglosar lo que hace cada operación y cuándo usarlas: + + + + + + + + + + + +:::tip +Tanto **Balance** como **Scrub** pueden realizarse mientras el sistema está en línea, pero tenga en cuenta que el rendimiento puede verse afectado durante estas operaciones. Puede monitorear el progreso en el %%WebGUI|web-gui%%. +::: + +Para más detalles sobre características avanzadas de %%BTRFS|btrfs%%, consulta la [documentación oficial de BTRFS](https://btrfs.readthedocs.io/en/latest/Introduction.html). + +--- + +## Unidades no asignadas + +Las unidades no asignadas son dispositivos de almacenamiento conectados a su servidor Unraid que no forman parte del %%array|array%% principal ni de ningún %%cache pool|cache-pool%%. Puede usar estas unidades para transferir archivos, crear copias de seguridad, o proporcionar almacenamiento rápido para %%virtual machines|vm%%. + +:::note +Todas las unidades conectadas a tu servidor cuando se inicia el %%array|array%% cuentan para el límite de licencia de dispositivos adjuntos de Unraid, incluso si no están asignadas al %%array|array%% o a un pool. +::: + +

Usos comunes para unidades no asignadas

+ +- Conecta unidades removibles para transferencias de archivos o copias de seguridad fáciles. +- Usa unidades dedicadas para tareas de alto rendimiento como ejecutar %%máquinas virtuales|vm%% o almacenamiento temporal de datos. + +### Uso de los plugins de dispositivos no asignados + +Para aprovechar al máximo tus unidades no asignadas, considera instalar los siguientes plugins desde la pestaña **Aplicaciones**: + +- **[Unassigned Devices](https://unraid.net/community/apps?q=dlandon\&r=0#:~:text=and%20iso%20files.-,Unassigned%20Devices,-dlandon):** Este plugin te permite montar, compartir y gestionar unidades con sistemas de archivos que Unraid soporta, como %%XFS|xfs%%, %%BTRFS|btrfs%%, o NTFS. + +- **[Unassigned Devices Plus](https://unraid.net/community/apps?q=dlandon\&r=0#:~:text=and%20iso%20files.-,Unassigned%20Devices%20Plus,-\(Addon\)):** Esta extensión amplía tus opciones al soportar sistemas de archivos adicionales, incluyendo ExFAT y HFS+. + +Estos plugins permiten: + +- Montar y desmontar unidades fácilmente desde la interfaz web de Unraid. +- Compartir tus unidades no asignadas por medio de la red. +- Automatizar el proceso de montaje cuando el servidor se inicia. +- Formatear o borrar unidades para uso futuro. +- Desconectar de manera segura unidades USB o externas sin complicaciones. + +Para más detalles sobre la instalación y gestión de plugins, consulta [Plugins](../customize-your-experience/plugins.mdx). + +--- + +## Solución de problemas + +### La unidad se muestra como no montable + +Si ves que una unidad en Unraid es **no montable**, podría deberse a una de dos razones principales: + +1. **Nueva unidad añadida**: Si acaba de añadir una nueva unidad a su configuración, se mostrará como no montable hasta que la formatee. El formateo crea un sistema de archivos que permite a la unidad almacenar archivos. Puede encontrar los pasos para formatear una unidad [aquí](#creating-a-file-system-formatting). + +2. **Problemas del sistema de archivos**: Si una unidad que funcionaba previamente de repente muestra como no montable, probablemente tenga un problema del sistema de archivos. Esto puede ocurrir debido a apagados inesperados, problemas al escribir datos, o si la unidad ha sido marcada como deshabilitada (lo que aparece como una 'x' roja en el %%WebGUI|web-gui%%). + +:::important +No formatee una unidad no montable a menos que esté bien con perder todos los datos en ella. Formatear borrará todo y actualizará la información de %%parity|parity%%, haciendo que la recuperación sea imposible. Siempre intente primero reparar el sistema de archivos. +::: + +Si tu unidad es no montable: + +1. **Identifica la situación**: Determina si es una nueva unidad o una unidad que funcionaba previamente. +2. **Para unidades nuevas**: Formatea la unidad para crear un nuevo sistema de archivos (revisa los [pasos de formateo](#creating-a-file-system-formatting)). +3. **Para unidades previamente funcionales**: Realice una verificación o reparación del sistema de archivos (vea [Verificando un sistema de archivos](#checking-a-file-system)). Evite formatear si desea conservar los datos. + +:::note +Si una unidad está tanto no montable como deshabilitada (x roja), primero ejecute la verificación/reparación en la unidad **emulada**. Si la unidad emulada también es no montable y intenta reconstruirla, la nueva unidad también será no montable. +::: + +Corregir el sistema de archivos generalmente toma menos tiempo que reconstruir la unidad, permitiéndole acceder a sus datos sin perder nada. Recuerde, reconstruir una unidad no **repara** problemas del sistema de archivos; simplemente asegura que la unidad física coincida con la emulada, llevando consigo cualquier problema existente. + +:::important[Why ¿la paridad no es suficiente?] +Aunque %%parity|parity%% ayuda a recuperar una unidad fallida, no puede corregir problemas del sistema de archivos. Si el sistema de archivos está dañado, %%parity|parity%% simplemente replicará ese daño en la nueva unidad. + +Si no estás seguro: + +- Descarga tus registros del sistema navegando a ***Herramientas → Diagnósticos***. +- Para obtener ayuda experta, publica tu problema junto con los diagnósticos en los [foros de Unraid](https://forums.unraid.net/). +::: + +:::note[Just para reiterar] +- Solo formatea unidades no montables si son completamente nuevas o si quieres borrar todos los datos. +- Usa la comprobación/reparación del sistema de archivos para corregir archivos corruptos; no relies en %%parity|parity%% para resolver estos problemas. +- Para %%cache pools|cache-pool%% con múltiples unidades, considera usar ya sea %%BTRFS|btrfs%% o %%ZFS|zfs%%. +- Siempre verifica antes de formatear o reparar unidades para evitar pérdidas accidentales de datos. +::: + +--- + +### Comprobación de un sistema de archivos + +Si un disco que anteriormente se montaba sin problemas ahora se muestra como **no montable**, generalmente indica corrupción del sistema de archivos. Esto puede resultar de un apagado no limpio, una fallida operación de escritura, o el disco siendo marcado como deshabilitado en el %%WebGUI|web-gui%%. Revisar y reparar el sistema de archivos es generalmente más rápido y seguro que realizar una reconstrucción, por lo que se recomienda intentarlo antes de formatear o reconstruir el disco. + +:::important +Si el %%WebGUI|web-gui%% sugiere formatear una unidad no montable, no la formatee a menos que desee borrar todos los datos. Formatear destruirá el contenido de la unidad y actualizará la %%parity|parity%%, haciendo que la recuperación sea imposible. +::: + +

Preparándose para comprobar o reparar

+ +1. **Identifica el tipo de sistema de archivos**: + - Navega a la pestaña **Principal** y selecciona tu disco (e.g., Disco 3, Caché). + - Encuentra el **tipo de sistema de archivos** (debería ser %%XFS|xfs%%, %%BTRFS|btrfs%%, o %%ZFS|zfs%%). + +2. **Inicie el array en el modo correcto**: + - Para **%%XFS|xfs%%**, inicia el %%array|array%% en **%%Modo de Mantenimiento|maintenance-mode%%**. + - Para **%%BTRFS|btrfs%%**, inicie el %%array|array%% en **modo Normal** para un %%scrub|scrub%% o **%%modo de Mantenimiento|maintenance-mode%%** para una reparación. + - Para **%%ZFS|zfs%%**, consulta la sección de %%ZFS|zfs%% a continuación. + +3. **Manejar discos emulados**: Si el disco está deshabilitado y siendo emulado, ejecute la verificación/reparación en el %%emulated disk|emulated-disk%% antes de intentar una reconstrucción. Si el %%emulated disk|emulated-disk%% es no montable, el disco reconstruido también será no montable. + +

Mensajes de error comunes

+ +| Mensaje | Significado / Acción | +| ------------------------------------------------------------------------ | ---------------------------------------------------------------------------------- | +| **El superbloque tiene un número mágico malo** | Corrupción severa; intenta una reparación del sistema de archivos. | +| **El sistema de archivos está sucio** | Apagado no limpio; ejecuta una comprobación del sistema de archivos. | +| **Detectada corrupción de metadatos** | Las estructuras del sistema de archivos están dañadas; inicia una reparación. | +| **No se encontró una %%BTRFS\|btrfs%% válida** | El disco puede no pertenecer a un pool válido; verifica las asignaciones del pool. | +| **Montar: tipo de sistema de archivos erróneo, opción incorrecta, etc.** | Selección incorrecta del sistema de archivos o disco sin formatear. | +| **No se puede montar /dev/mdX: la estructura necesita limpieza** | El sistema de archivos está corrompido; realiza una reparación. | + +#### A través del WebGUI + +1. **Inicia el array**: Inicia el %%array|array%% en el modo correcto (consulta los pasos anteriores). +2. **Selecciona el disco**: Ve a la pestaña **Principal** y selecciona el disco que deseas comprobar. +3. **Accede a las opciones de comprobación**: Desplázate a **Estado del Sistema de Archivos**. +4. **Para XFS (Unraid 7.0+)**: Verá un botón **CHECK** sin opciones para ingresar. El sistema determina automáticamente las acciones necesarias basadas en los resultados de la verificación. +5. **Para otros sistemas de archivos**: Ingresa cualquier opción necesaria (para obtener detalles, consulta **Ayuda** en la esquina superior derecha). +6. **Inicia la comprobación**: Haz clic en **Comprobar** para iniciar el proceso. +7. **Monitorear progreso**: Monitoree el progreso en el cuadro de salida. Use **Actualizar** si es necesario. +8. **Revisar resultados**: Revise los resultados. Si no está seguro, copie la salida y publicar en los [foros](https://forums.unraid.net/) para obtener asesoramiento. + +#### Flujo de trabajo automático de reparación de XFS (Unraid 7.0+) + +A partir de Unraid 7.0, la reparación del sistema de archivos XFS ahora está completamente automatizada a través del WebGUI: + +1. **Verificación inicial**: Haga clic en el botón **CHECK** (sin opciones para ingresar) +2. **Resultados de la verificación**: + - **No se detectó corrupción**: Muestra "no se detectó corrupción del sistema de archivos" y el botón **CHECK** permanece + - **Se detectó corrupción**: Muestra "se detectó corrupción del sistema de archivos" y aparece un botón **FIX** +3. **Proceso de reparación**: Haga clic en **FIX** para reparar automáticamente el sistema de archivos +4. **Acciones adicionales**: Si es necesario, puede aparecer un botón **ZERO LOG** +5. **Finalización**: Muestra "sistema de archivos reparado" cuando el proceso ha terminado + +Este sistema automatizado elimina la necesidad de que los usuarios ingresen manualmente las opciones de reparación y asegura que se siga la secuencia de reparación correcta. + +#### A través de la línea de comandos + + + + + + + + + + + + + + + +:::tip +- Las reparaciones de sistemas de archivos generalmente son más rápidas que una reconstrucción completa y pueden restaurar el acceso sin pérdida de datos. +- Reconstruir un disco **no** resuelve la corrupción del sistema de archivos; siempre ejecute una verificación o reparación primero. +- Si tiene dudas, publique sus diagnósticos y mensajes de error en los [foros](https://forums.unraid.net/) de Unraid para recibir asistencia experta. +::: + +--- + +### Reparación de un sistema de archivos + +Si un chequeo de su sistema de archivos encuentra errores, es posible que deba ejecutar una reparación para volver a tener acceso a sus datos. Las reparaciones generalmente toman menos tiempo que una reconstrucción total, pero es importante leer la salida con cuidado y buscar ayuda en los [foros](https://forums.unraid.net/) si no está seguro de algo. + +:::note\[Timing] + +Las reparaciones pueden tardar desde varios minutos hasta varias horas, especialmente para sistemas de archivos más grandes o muy corruptos. El progreso puede parecer lento, pero puede verificar la actividad mirando las estadísticas de lectura/escritura en la Página Principal. + +::: + +

Preparación para reparar

+ +1. **Identifique el tipo de sistema de archivos**: Vaya a la pestaña **Principal**, haga clic en el disco y averigüe qué tipo de sistema de archivos es (%%XFS|xfs%%, %%BTRFS|btrfs%% o %%ZFS|zfs%%). + +2. **Inicie el array en el modo correcto**: + + - **Para %%XFS|xfs%%:** Use **Modo de Mantenimiento**. + - **Para %%BTRFS|btrfs%%:** Use **Modo Normal** para un %%scrub|fregado%%; use **Modo de Mantenimiento** para una reparación. + - **Para %%ZFS|zfs%%:** Use **modo Normal** y ejecute un %%scrub|scrub%% para verificar errores. Consulte la [página de ZFS storage](../../advanced-configurations/optimize-storage/zfs-storage.mdx) para obtener orientación sobre los procedimientos de mantenimiento y reparación del pool %%ZFS|zfs%%. + +3. **Manejar discos emulados**: Si el disco está deshabilitado y siendo emulado, ejecute la reparación en el %%emulated disk|emulated-disk%% antes de intentar una reconstrucción. + +#### A través del WebGUI + +1. **Inicie el array**: Inicie el %%array|array%% en el modo correcto (consulte la sección anterior). +2. **Seleccione el disco**: Vaya a la pestaña **Principal** y haga clic en el disco que desea reparar. +3. **Acceda a las opciones de reparación**: Desplácese hacia abajo hasta **Verificar estado del sistema de archivos**. +4. **Para XFS (Unraid 7.0+)**: El proceso de reparación está completamente automatizado. Haga clic en **CHECK**, luego **FIX** si se detecta corrupción, y **ZERO LOG** si se lo solicita. +5. **Para otros sistemas de archivos**: Retire cualquier opción que ejecutaría el proceso en modo de solo verificación (como `--readonly` para %%BTRFS|btrfs%%). +6. **Agregue las opciones sugeridas**: Si se le solicita, agregue las opciones sugeridas como se indica en la salida de la verificación. +7. **Inicie la reparación**: Haga clic en **Check** para comenzar la reparación. +8. **Monitorear progreso**: Mantenga un ojo en el progreso en el cuadro de salida. Use **Actualizar** si es necesario. +9. **Verificar archivos perdidos**: Si observa una carpeta `lost+found` después de la reparación, puede contener archivos o carpetas que no se pudieron recuperar completamente. Use copias de seguridad o el comando `file` de Linux para identificar el contenido si es necesario. + +:::info +Si no está seguro acerca de la salida, cópiela y compártala en los [foros de Unraid](https://forums.unraid.net/) para obtener ayuda de expertos. Use la opción de formato de código para mantenerlo legible. +::: + +#### A través de la línea de comandos + + + + + + + + + + + + + + + +:::info[After la reparación] +- Detenga y reinicie el %%array|array%% en **Modo Normal**. +- La unidad ahora debería montar y ser accesible. +- Si ve una carpeta `lost+found`, verifique su contenido para cualquier archivo importante. +::: + +Si no entiende la salida de la reparación o si el proceso falla, comparta sus diagnósticos y el registro de reparación en los [foros de Unraid](https://forums.unraid.net/) para obtener más ayuda. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx new file mode 100644 index 0000000000..2696a14a65 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx @@ -0,0 +1,21 @@ +Para agregar un disco de datos a una matriz sin protección de paridad: + +1. **Detener la matriz:** Usa la %%WebGUI|WebGUI%% de Unraid para detener la matriz. + +2. **Apagar tu servidor:** Apaga tu servidor de forma segura. + +3. **Instalar el(los) nuevo(s) disco(s) duro(s):** Agrega físicamente el nuevo disco(s). + +4. **Encender el servidor de nuevo:** Inicia tu servidor otra vez. + +5. **Asignar el(los) nuevo(s) disco(s):** Usa la %%WebGUI|WebGUI%% para asignar los nuevos discos a los espacios de datos disponibles. + +6. **Iniciar la matriz:** Inicia la matriz de nuevo. + + - El paso de despeje se omite por completo cuando no hay un %%parity disk|disco de paridad%% en la matriz. + +7. **Formatear el Disco:** El nuevo disco aparecerá como no montable en el %%WebGUI|web-gui%%. Se le pedirá que lo formatee. + +:::important +Siempre verifica cuidadosamente el número de serie para asegurarte de que estás formateando el disco correcto. El formateo borrará todo en ese disco, y esta acción no se puede deshacer. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx new file mode 100644 index 0000000000..68e3391620 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx @@ -0,0 +1,30 @@ +Para agregar un disco de datos a una matriz protegida por paridad: + +1. **Detener la matriz:** Usa la %%WebGUI|WebGUI%% de Unraid para detener la matriz. + +2. **Apagar tu servidor:** Apaga tu servidor de forma segura. + +3. **Instalar el(los) nuevo(s) disco(s) duro(s):** Agrega físicamente el nuevo disco(s). + +4. **Encender el servidor de nuevo:** Inicia tu servidor otra vez. + +5. **Asignar el(los) nuevo(s) disco(s):** Usa la %%WebGUI|WebGUI%% para asignar los nuevos discos a los espacios de datos disponibles. + +6. **Iniciar la matriz:** Inicia la matriz de nuevo. + + - Unraid iniciará automáticamente una **operación de limpieza** en el nuevo disco. Esto llena el disco con ceros y garantiza que esté listo para usar manteniendo la integridad de los datos. + - La operación de limpieza se lleva a cabo en segundo plano, por lo que aún puedes acceder a tu conjunto. Sin embargo, el nuevo disco no estará utilizable hasta que el proceso esté completo y se haya formateado el disco. + - Si has pre-despejado el disco, Unraid saltará este paso, reconociendo que ya está listo para su uso. + +7. **Después de completar la limpieza:** Una vez que el proceso de limpieza haya finalizado, el disco aparecerá como no montable en la %%WebGUI|interfaz web%%. Se te solicitará formatearlo. + +:::important +Siempre verifica cuidadosamente el número de serie para asegurarte de que estás formateando el disco correcto. El formateo borrará todo en ese disco, y esta acción no se puede deshacer. +::: + +8. **Confirmar el Formato:** Marca la casilla de confirmación y haz clic en el botón **Formato**. Unraid te dará una advertencia sobre los resultados de esta acción. +9. **Proceso de Formateo:** El formateo tomará unos minutos. Una vez completado, el disco se mostrará como montado y listo para uso. Es normal ver una pequeña cantidad de espacio usado debido al sobrecosto del sistema de archivos. + +:::note +Puedes agregar múltiples discos, pero no serán utilizables hasta que todos hayan sido despejados y formateados. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx new file mode 100644 index 0000000000..b8f8069a91 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx @@ -0,0 +1,57 @@ +Un %%parity check|parity-check%% es esencial cuando tu matriz incluye al menos un dispositivo de paridad asignado. Durante este proceso, todos los discos de datos se leen simultáneamente. El sistema recalcula la paridad y la compara con la información almacenada en tu(s) %%parity disk(s)|parity-drives%%. + +
+ Profundización: Sincronización de paridad vs. Comprobación de paridad - ¿Cuál es la diferencia? - Haga clic para expandir/colapsar + + Una %%parity|parity%% sincronización lee todos los discos de datos y crea %%parity|parity%% desde cero, guardando los resultados en los %%parity drives|parity-drives%%. Este proceso ocurre típicamente cuando añades o reemplazas un %%parity drive|parity-drives%% o después de cambios significativos en la configuración. + + Un %%parity check|parity-check%% lee todos los discos de datos junto con los %%parity drives|parity-drives%%. Recalcula los valores de %%parity|parity%% y los compara con los valores almacenados. Existen dos modos para ejecutar un %%parity check|parity-check%%: + + - **Correctiva (CORRECT):** Si encuentra una discrepancia, actualiza el %%parity disk|parity-drives%% y registra el evento. + - **No correctiva (NOCORRECT):** Solo registra cualquier error encontrado sin actualizar la paridad. + + Para evitar un registro excesivo, solo se informan las primeras 100 direcciones con errores durante una comprobación de %%paridad|parity-check%%. Estas discrepancias se denominan **errores de sincronización** e indican dónde la paridad no se alinea con los datos, generalmente debido a problemas como cortes de energía repentinos o problemas de hardware. Cada error de sincronización se cuenta en bloques de 4KiB, que es el tamaño de unidad de I/O del sistema (conocido como tamaño de página de Linux). +
+ +
+ Profundización: ¿Qué significa "válido" para la paridad y los discos del conjunto? - Haga clic para expandir/colapsar + + Un **disco de %%paridad|parity-drives%% válido** indica que después de la última sincronización de %%paridad|parity%% exitosa, Unraid reconoció la %%paridad|parity%% como "buena", lo que significa que es adecuada para la recuperación de datos si falla un disco. El estado "válido" se aplica a cada disco en el conjunto, no solo al de %%paridad|parity%%. Si todos los discos menos uno son válidos, Unraid puede reconstruir los datos del disco faltante o fallado usando la %%paridad|parity%%. + + Unraid mantiene el estado "válido" del disco de %%paridad|parity-drives%% incluso cuando ocurren algunos errores de sincronización después de una verificación no correctiva. Esto asegura que aún pueda recuperar un disco fallido. Si la %%paridad|parity%% se marcara como inválida, correría el riesgo de tener dos discos inválidos después de una sola falla adicional, lo que podría conducir a la pérdida de datos. +
+ +Mientras una comprobación de %%paridad|parity-check%% está en progreso, aún puede usar el conjunto. Sin embargo, tenga en cuenta que el rendimiento puede disminuir debido a la disputa por el uso de los discos, ya que tanto las operaciones de archivos como la verificación competirán por los recursos. + +Normalmente, si la %%parity check|parity-check%% identifica errores, Unraid actualizará el %%parity disk|parity-drives%% para alinearlo con los datos calculados e incrementará el contador de Errores de Sincronización. + +:::tip +Si prefieres realizar una comprobación sin hacer correcciones, simplemente desmarca **Escribir correcciones a la paridad** antes de comenzar. De esta manera, se informarán los errores pero no se corregirán. +::: + +:::important +After an "Unsafe Shutdown"—when the array is restarted without being properly stopped—Unraid automatically initiates a %%parity check|parity-check%% using the mode configured under **Settings → Scheduler → Parity Check** (non-correcting by default). To change how the automatic check runs, open **Settings → Scheduler → Parity Check** and adjust the options there. Unexpected power loss is the most common trigger for an unsafe shutdown, so using an uninterruptible power supply (UPS) is strongly recommended to protect your data. +::: + +

¿Qué son los errores de paridad?

+ +%%Parity|parity%% errors happen when the %%parity|parity%% information your system calculates doesn't match what's stored on your %%parity drives|parity-drives%%. This mismatch can arise from several issues, including: + +- Pérdida repentina de energía o apagados inseguros +- Unidades fallidas o errores de disco +- Problemas con cables o conexiones +- Apagados no limpios o fallos inesperados del sistema + +When %%parity|parity%% errors occur, either the %%parity drives|parity-drives%% or the data disks could be out of sync. Ideally, a %%parity check|parity-check%% should report zero errors so everything functions correctly. + +

Qué hacer si encuentras errores de %%paridad|parity%%

+ +Si tu %%parity check|parity-check%% revela errores: + +1. **Investigate the problem:** Start by checking %%SMART reports|smart-report%%, which provide detailed information about your drives' health. Look for any signs of disk or connection problems. +2. **Busca ayuda en nuestros foros:** Si no puedes resolver el problema por tu cuenta, considera solicitar consejos en los foros de Unraid. La comunidad puede ofrecer valiosas perspectivas y sugerencias basadas en sus experiencias. +3. **Ejecuta otra verificación:** Después de haber abordado cualquier problema de hardware, ejecutar otra %%parity check|parity-check%% es una buena idea para asegurarte de que todo vuelva a estar en orden. + +:::info[Rebuild Tiempo] +Remember that %%parity checks|parity-check%% can take several hours, depending on the size of your disks and the activity level of your system. For the best results, schedule these checks during times of low system usage. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx new file mode 100644 index 0000000000..af91b1e611 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx @@ -0,0 +1,38 @@ +Una %%verificación de lectura|read-check%% es una tarea importante que se debe realizar bajo ciertas condiciones para asegurar la salud de su arreglo de almacenamiento. Esta verificación es necesaria **si su arreglo no tiene dispositivos de paridad asignados** o **si tiene más unidades deshabilitadas que unidades de paridad disponibles**. + +Durante una %%verificación de lectura|read-check%%, se examina cada sector de cada disco en el arreglo. El objetivo es verificar que se pueda acceder a todos los datos e identificar cualquier error de lectura irrecuperable. + +
+ ![History lets you review stats on your read check operations](/img/History_button.PNG) +
+ +

Por qué son importantes las verificaciones de lectura

+ +Las verificaciones de lectura son esenciales para monitorear la salud de sus discos, especialmente en configuraciones sin protección de paridad. Si un disco encuentra un error de lectura irrecuperable durante la verificación, los datos afectados no se pueden recuperar, lo que podría llevar a una pérdida de datos. Por lo tanto, es crucial estar atento a los resultados de estas verificaciones y tomar medidas cuando se informen errores. + +También puedes revisar el historial de operaciones de %%read check|read-check%% en la interfaz de Unraid, lo que te ayuda a detectar tendencias o problemas recurrentes con el tiempo. + +

Cuándo usar una verificación de lectura

+ +Considera ejecutar un %%read check|read-check%% en las siguientes situaciones: + +- **Sin dispositivos de paridad asignados:** Cuando tu array carece de protección de paridad. +- **Verificación de la integridad del disco:** Para confirmar la integridad de cada disco sin hacer correcciones. +- **Resolución de problemas de hardware:** Después de solucionar problemas de hardware, para asegurar que todos los discos estén sanos. + +

¿Qué hacer si se encuentran errores?

+ +Si tu %%read check|read-check%% reporta errores, aquí tienes algunos pasos a seguir: + +1. **Review SMART reports:** Check the %%SMART reports|smart-report%% for the affected disks to understand their health status. +2. **Inspecciona las conexiones:** Asegúrate de que las conexiones físicas y los cables estén seguros. +3. **Considera reemplazos:** Si un disco muestra errores persistentes, piensa en reemplazarlo. +4. **Respalda datos críticos:** Mueve datos importantes de cualquier disco que reporte errores tan pronto como sea posible para evitar la pérdida de datos. + +:::warning +Sin protección de paridad, cualquier error de lectura no recuperable conducirá a una pérdida de datos permanente para los archivos o sectores afectados. +::: + +:::tip +Para mantener la salud de tus discos, es prudente **programar revisiones %%de lectura regularmente|read-check%%**, especialmente si tu arreglo no tiene protección de paridad. Esta medida proactiva te ayudará a detectar problemas potenciales temprano y proteger tus datos. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx new file mode 100644 index 0000000000..b8bd26e214 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx @@ -0,0 +1,19 @@ +La operación de **Balance** redistribuye fragmentos de datos y metadatos a través de su grupo %%BTRFS|btrfs%%. Este proceso ayuda a liberar espacio, resuelve problemas de asignación y puede solucionar errores de "no queda espacio en el dispositivo" incluso cuando parece haber espacio disponible. + +

Cuándo ejecutar Balance

+ +- Cuando encuentres errores de “no hay espacio disponible en el dispositivo” pero tengas espacio libre. +- Después de añadir o quitar unidades en un pool. +- Para optimizar el uso del espacio y mejorar el rendimiento. + +

Cómo ejecutar Balance

+ +1. **Accede al pool**: En el %%WebGUI|web-gui%%, haz clic en el pool en la pestaña **Principal** y selecciona **Balance**. +2. **Añade parámetros (opcional)**: Opcionalmente, añade parámetros para uso avanzado (consulta la Ayuda de Unraid para obtener detalles). +3. **Inicia el proceso**: Haz clic en **Iniciar** para comenzar el proceso. + +:::note\[Timing] + +Las operaciones de balance pueden llevar desde unos pocos minutos hasta varias horas, dependiendo del tamaño del pool y la cantidad de datos. + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx new file mode 100644 index 0000000000..24abcdb92f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx @@ -0,0 +1,23 @@ +La operación de **Scrub** lee todos los datos y metadatos, verifica la integridad de las sums de verificación y repara cualquier bloque corrupto utilizando copias redundantes disponibles. El scrubbing ayuda a identificar y corregir la corrupción de datos silenciosa, conocida como “bit rot,” antes de que se convierta en un problema importante. + +

Cuándo ejecutar el Escrutinio

+ +- Como parte del mantenimiento de rutina (consulta el programa recomendado a continuación). +- Después de apagados no limpios o si sospechas de corrupción. +- Con más frecuencia en pools de alto uso. + +

Programación recomendada

+ +- Pools de alto uso: **Una vez a la semana** +- Todos los demás pools: **Una vez al mes** + +

Cómo ejecutar el Escrutinio

+ +1. **Accede al pool**: En el %%WebGUI|web-gui%%, haz clic en el pool en la pestaña **Principal** y selecciona **Escrutinio**. +2. **Inicia el proceso**: Haz clic en **Iniciar** para iniciar el proceso. + +:::note\[Timing] + +Las operaciones de limpieza suelen ser más rápidas que un escaneo completo del disco porque solo verifican los datos asignados. Según el tamaño y uso del pool, espera que esto tome de unos pocos minutos a unas pocas horas. + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx new file mode 100644 index 0000000000..8fa4b3f541 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx @@ -0,0 +1,5 @@ +%%BTRFS|btrfs%% ofrece soporte flexible para %%RAID|raid%%, %%checksums|checksum%% para la integridad de datos, y gestión eficiente de discos de tamaños mixtos en agrupaciones. Sirve como sistema de archivos predeterminado para %%cache pools|cache-pool%% y admite configuraciones de un solo dispositivo y de varios dispositivos. + +- **Protección de datos:** Soporta %%RAID 0|raid0%%/%%1|raid1%%/%%10|raid10%%/%%5|raid5%%/%%6|raid6%% (tenga en cuenta que %%RAID 5|raid5%%/%%6|raid6%% aún son experimentales). +- **Rendimiento:** Bueno, con flexibilidad para expansión y contracción. +- **Mejor para:** %%Cache pools|cache-pool%%, especialmente si planeas mezclar SSDs y HDDs o necesitas una manera fácil de expandir. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx new file mode 100644 index 0000000000..5ffe67c2f0 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx @@ -0,0 +1,5 @@ +**%%XFS|xfs%%** es el sistema de archivos predeterminado para las unidades %%array|array%% en Unraid. Es conocido por su solidez y capacidad para recuperarse de la corrupción después de apagados inesperados o colapsos. Cada unidad formateada con %%XFS|xfs%% actúa como un sistema de archivos autónomo, haciendo que la recuperación de datos sea sencilla en cualquier sistema Linux. + +- **Protección de datos:** Sin redundancia incorporada; depende de la %%parity|parity%% de Unraid para la protección. +- **Rendimiento:** Consistente y fiable. +- **Mejor para:** Unidades de %%array|array%%, especialmente cuando la estabilidad y facilidad de recuperación de datos son prioritarias. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx new file mode 100644 index 0000000000..e61a709a75 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx @@ -0,0 +1,7 @@ +%%ZFS|zfs%% es un sistema de archivos moderno que cuenta con funciones avanzadas como %%checksums|checksum%% para detectar %%bit rot|bit-rot%%, %%snapshots|snapshot%% para copias de seguridad, y opciones de soporte nativo de %%RAID|raid%% como %%RAIDZ1|raidz1%%/%%RAIDZ2|raidz2%%/%%RAIDZ3|raidz3%% y espejos. %%ZFS|zfs%% se puede utilizar en conjuntos de dispositivos únicos y múltiples en las versiones 6.12 de Unraid y posteriores. + +- **Protección de datos:** Soporta varios niveles de %%RAID|raid%% para redundancia. +- **Rendimiento:** Excelente, particularmente en pools de dispositivos múltiples. +- **Mejor para:** Entornos de alto rendimiento, %%virtual machines|vm%%, Docker o cuando se requieren funciones avanzadas como %%snapshots|snapshot%%. + +Para un análisis profundo de las características, configuración y mejores prácticas de %%ZFS|zfs%%, consulte nuestra sección dedicada sobre [almacenamiento ZFS](../../../advanced-configurations/optimize-storage/zfs-storage.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx new file mode 100644 index 0000000000..b899c91c1a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx @@ -0,0 +1,10 @@ +Para verificar un sistema de archivos %%BTRFS|btrfs%% a través de la línea de comandos: + +- Para realizar un %%scrub|fregado%% (que verifica y repara muchos errores automáticamente), inicie el %%array|array%% en **Modo Normal** y ejecute: `btrfs scrub start /mnt/diskX` +- Para una verificación de solo lectura, inicie el %%array|array%% en **Modo de Mantenimiento** y ejecute: `btrfs check --readonly /dev/mdXp1` +- Reemplace `X` con el número de disco. +- Para unidades fuera del %%array|array%%: `btrfs check --readonly /dev/sdX1` + +:::warning +Ejecutar este comando en un disco %%array|array%% fuera del **Modo de Mantenimiento** invalidará la %%parity|paridad%%. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx new file mode 100644 index 0000000000..cc865e223a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx @@ -0,0 +1,12 @@ +Para verificar un sistema de archivos %%XFS|xfs%% a través de la línea de comandos: + +- Inicie el %%array|array%% en **Modo de Mantenimiento**. +- Ejecute el siguiente comando: `xfs_repair -v /dev/mdXp1` +- Reemplace `X` con el número de disco (por ejemplo, `/dev/md1p1`). +- Para un %%XFS|xfs%% cifrado, use `/dev/mapper/mdXp1`. +- Para unidades fuera del %%array|array%%: `xfs_repair -v /dev/sdX1` +- Asegúrese de estar utilizando el identificador de dispositivo correcto. + +:::warning +Ejecutar este comando en un disco %%array|array%% fuera del **Modo de Mantenimiento** invalidará la %%parity|paridad%%. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx new file mode 100644 index 0000000000..156e7b2165 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx @@ -0,0 +1,25 @@ +Para verificar un sistema de archivos %%ZFS|zfs%% a través de la línea de comandos: + +

Método recomendado

+ +%%ZFS|zfs%% utiliza **revisión intensiva** en lugar de chequeos tradicionales de sistemas de archivos como `fsck`. Una %%scrub|revisión intensiva%% examina todos los datos en el pool para verificar sumas de control y repara automáticamente cualquier corrupción encontrada en configuraciones redundantes. + +- Inicie el %%array|array%% en **Modo Normal** y ejecute: `zpool scrub poolname` + - Reemplace `poolname` con el nombre real de su pool %%ZFS|zfs%%. + +

Comprobación del estado del grupo

+Para ver la salud actual y cualquier progreso de %%scrub|fregado%% en curso, use el comando: `zpool status -v poolname` + +Este comando muestra información detallada sobre la salud del pool, los errores y el progreso de %%scrub|fregado%%. + +

Comandos adicionales de %%ZFS|zfs%%

+ +- Para pausar un %%scrub|fregado%%: `zpool scrub -p poolname` +- Para detener un %%scrub|fregado%%: `zpool scrub -s poolname` +- Para listar todos los grupos: `zpool list` + +:::info +%%ZFS|zfs%% no requiere ni es compatible con las utilidades tradicionales `fsck`. La naturaleza transaccional de %%ZFS|zfs%% significa que se mueve atómicamente de un estado consistente a otro, convirtiendo el escaneo en el método preferido para la verificación de integridad. +::: + +Para obtener una guía completa sobre sistemas de archivos %%ZFS|zfs%%, consulte la sección dedicada al almacenamiento [ZFS](../../../advanced-configurations/optimize-storage/zfs-storage.mdx). diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx new file mode 100644 index 0000000000..13592efefa --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx @@ -0,0 +1,14 @@ +- Para realizar un %%scrub|fregado%% (que detecta y repara muchos errores automáticamente), inicie el %%array|array%% en **Modo Normal** y ejecute: `btrfs scrub start /mnt/diskX`. +- Para una reparación completa, inicie el %%array|array%% en **%%Modo de Mantenimiento|maintenance-mode%%** y ejecute: `btrfs check --repair /dev/mdXp1`. Solo use `--repair` si los [foros](https://forums.unraid.net/) o la documentación así lo aconsejan, ya que a veces puede conducir a más problemas. + +:::caution\[Use `--repair` con precaución + +La opción `--repair` puede a veces causar pérdida de datos o empeorar la corrupción si se usa incorrectamente. Solo úsela cuando: + +- Ha consultado los [foros de Unraid](https://forums.unraid.net/) para su error específico +- Tiene una copia de seguridad reciente de sus datos +- Comprende los riesgos involucrados + +Para la mayoría de los problemas de %%BTRFS|btrfs%%, intente ejecutar un `scrub` primero (que es más seguro) o busque asesoramiento experto antes de intentar reparaciones. + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx new file mode 100644 index 0000000000..a0128cd716 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx @@ -0,0 +1,9 @@ +- Inicie el %%array|array%% en **Modo de Mantenimiento**. +- Ejecute el siguiente comando: `xfs_repair /dev/mdXp1`. Reemplace `X` por el número de disco (por ejemplo, `/dev/md1p1`). +- Para un %%XFS|xfs%% cifrado, use: `/dev/mapper/mdXp1`. +- Si se le solicita usar `-L`, vuelva a ejecutar el comando así: `xfs_repair -L /dev/mdXp1`. Esto generalmente es seguro y necesario para completar la reparación. +- Para unidades que no forman parte del %%array|array%%: `xfs_repair /dev/sdX1`. + +:::caution +Ejecutar este comando en un disco %%array|array%% fuera del **Modo de Mantenimiento** invalidará la paridad. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx new file mode 100644 index 0000000000..53a3d1f6c9 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx @@ -0,0 +1,18 @@ +Los pools de %%ZFS|zfs%% ofrecen verificación de integridad y capacidades de auto reparación integradas, las cuales a menudo eliminan la necesidad de reparaciones de sistemas de archivos tradicionales. + +

Para pools %%ZFS|zfs%%

+ +- **Verifique la salud del pool:** Use el comando `zpool status poolname` para ver el estado de su pool. +- **Ejecute un scrub:** Ejecute `zpool scrub poolname`. Este comando detecta y repara cualquier corrupción automáticamente. +- **Borre errores:** Después de abordar cualquier problema subyacente, ejecute `zpool clear poolname` para borrar el estado de error. + +

Para discos %%ZFS|zfs%% en el array

+ +- **Verifique la salud del dataset:** Use `zfs list -o name,health` para verificar la salud de sus datasets. +- **Ejecute un scrub:** También puede ejecutar `zpool scrub poolname` para cualquier disco que pertenezca a un pool específico. + +%%ZFS|zfs%% identifica y corrige automáticamente la corrupción de datos cuando hay redundancia disponible, como en configuraciones de espejo o %%RAIDZ1|raidz1%%/%%RAIDZ2|raidz2%%/%%RAIDZ3|raidz3%%. A diferencia de los sistemas de archivos tradicionales, %%ZFS|zfs%% típicamente no requiere comandos de reparación manual porque monitorea continuamente la integridad de los datos mediante sumas de verificación. + +:::tip +Para una comprensión integral de la gestión de %%ZFS|zfs%%, resolución de problemas y escenarios de reparación avanzada, consulte la página dedicada al almacenamiento [ZFS](../../../advanced-configurations/optimize-storage/zfs-storage.mdx) para guías detalladas y mejores prácticas. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx new file mode 100644 index 0000000000..709635e754 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx @@ -0,0 +1,12 @@ +:::info[Common caso de uso] +Mover archivos de vuelta al %%conjunto de caché|cache-pool%% después del mantenimiento o cuando has agregado un nuevo dispositivo de caché para mejorar el rendimiento. +::: + +Para mover archivos del %%array|array%% a un pool: + +1. **Deshabilitar los servicios de Docker y %%VM|vm%%**: Ve a **Configuración** y apaga Docker y %%Admin. de VM|vm Manager%% para evitar que los archivos abiertos interfieran. +2. **Configurar almacenamiento compartido y acción del Movedor (array → caché)**: En la pestaña **Shares**, para cada compartir que desees mover (como `appdata` o `system`), establece **Almacenamiento primario** en el destino %%cache pool|cache-pool%% y **Almacenamiento secundario** en el %%array|array%%. Establece **Acción del Movedor** en **array → caché**. +3. **Ejecutar el %%Mover|mover%%**: Ve a la pestaña **Main** y haz clic en **Move Now** para comenzar a mover archivos desde el %%array|array%% al %%cache pool|cache-pool%%. +4. **Verificar el movimiento**: Después de que el %%Mover|mover%% termine, verifica que los archivos estén ahora en el %%conjunto de caché|cache-pool%%. +5. **Volver a habilitar los servicios de Docker y %%Admin. de VM|vm Manager%%**: Una vez que el movimiento esté completo, enciende Docker y %%Admin. de VM|vm Manager%% de nuevo en **Configuración**. +6. **(Opcional) Configurar la compartición para usar el %%conjunto de caché|cache-pool%% exclusivamente**: Si deseas que todos los archivos de una compartición permanezcan en el %%conjunto de caché|cache-pool%%, configura el **Almacenamiento primario** a tu %%conjunto de caché|cache-pool%% y el **Almacenamiento secundario** a **Ninguno** para esa compartición. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx new file mode 100644 index 0000000000..1bc2dcee0e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx @@ -0,0 +1,8 @@ +1. **Deshabilitar los servicios de Docker y %%VM|vm%%** como se describió anteriormente. +2. Usar comandos `rsync` o `mv` para transferir archivos entre puntos de montaje (p. ej., `/mnt/pool1/share` a `/mnt/pool2/share`). +3. Verifica los archivos antes de eliminarlos del pool original. +4. Vuelve a habilitar los servicios de Docker y %%VM|vm%%. + +:::caution +Siempre revisa tus rutas de archivos y usa los nombres de compartir correctos para evitar la pérdida de datos. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx new file mode 100644 index 0000000000..5e57b75515 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx @@ -0,0 +1,16 @@ +1. **Deshabilitar los servicios de Docker y %%VM|vm%%**: Ve a **Configuración** y apaga Docker y %%Admin. de VM|vm Manager%% para evitar archivos abiertos. +2. **Mover archivos de pool1 al %%array|array%% (caché → conjunto)**: + - Ve a la pestaña **Shares**. Para cada recurso compartido que actualmente se encuentra en pool1, establece **Almacenamiento Principal** en pool1 y **Almacenamiento Secundario** en el %%array|array%%. + - Establezca **Acción de Mover** en **caché → array**. + - En la pestaña **Main**, haz clic en **Mover Ahora** para ejecutar %%Mover|mover%%. Espera a que termine. +3. **Mover archivos del %%array|array%% a pool2 (conjunto → caché)**: + - En la pestaña **Comparticiones**, configura **Almacenamiento primario** a pool2 y **Almacenamiento secundario** al %%array|array%% para cada compartición. + - Configura la **acción del Mover** a **conjunto → caché**. + - En la pestaña **Main**, haz clic en **Mover Ahora** nuevamente. Los archivos se moverán desde el %%array|array%% a pool2. +4. **Volver a habilitar los servicios de Docker y %%VM|vm%%** (si es necesario). + +:::note\[Timing] + +Mover grandes conjuntos de datos puede tomar horas, dependiendo del tamaño de los archivos y las velocidades de los dispositivos. + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx new file mode 100644 index 0000000000..ce428dacd4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx @@ -0,0 +1,11 @@ +:::info[Common caso de uso] +Mover archivos del %%cache pool|cache-pool%% al %%array|array%% antes de realizar mantenimiento o actualizaciones para asegurar que tus datos estén seguros. +::: + +Para mover archivos de tu agrupación a la %%array|array%%: + +1. **Desactivar servicios Docker y %%VM|vm%%**: Ve a **Configuración** y apaga Docker y el Administrador de %%VM|vm%%. Esto evita que cualquier archivo quede abierto, permitiendo que el %%Mover|mover%% transfiera todo sin problemas. +2. **Configurar almacenamiento de comparticiones y acción de Mover (cache → array)**: En la pestaña **Shares**, para cada compartición que quieras mover (como `appdata` o `system`), establece **Almacenamiento Principal** como el %%cache pool|cache-pool%% de origen y **Almacenamiento Secundario** como el %%array|array%%. Establece la **acción de Mover** como **cache → array**. +3. **Ejecutar %%Mover|mover%%**: Ve a la pestaña **Principal** y haz clic en **Mover Ahora** para transferir archivos del %%cache pool|cache-pool%% al %%array|array%%. +4. **Verificar el movimiento**: Después de que el %%Mover|mover%% termine, verifica que los archivos se hayan movido al hacer clic en el ícono de carpeta junto a la entrada del caché en la pestaña **Principal**. +5. **Volver a habilitar los servicios de Docker y %%VM|vm%%**: Una vez que todos los archivos estén en el %%array|array%%, puedes volver a encender estos servicios de manera segura. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx new file mode 100644 index 0000000000..7c1390e802 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx @@ -0,0 +1 @@ +A %%parity swap|parity-swap%% is a special procedure in Unraid used when you need to replace a data disk with a disk that is larger than your current parity disk. The process moves your current parity disk to the data slot, then installs a new, larger disk as the new parity disk. This ensures your array remains protected and allows for larger data drives in the future. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx new file mode 100644 index 0000000000..97d5e7a10a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx @@ -0,0 +1 @@ +Utilice un %%parity swap|parity-swap%% cuando su unidad de datos de reemplazo sea más grande que su disco de paridad actual. Esto no es necesario si su nueva unidad de datos tiene el mismo tamaño o es más pequeña que su disco de paridad. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx new file mode 100644 index 0000000000..71fe949b42 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx @@ -0,0 +1,5 @@ +Cuando configuras un %%cache pool|cache-pool%% con más de un dispositivo, entra en **modo multi-dispositivo**. Esto es lo que debes saber: + +- **Protección de datos:** Este modo utiliza %%BTRFS|btrfs%% o %%ZFS|zfs%% para reflejar los datos entre los dispositivos, ayudando a proteger tus datos almacenados en caché ante una falla del disco. Puedes perder un dispositivo sin perder ningún dato. +- **Mezclar y combinar:** Puede agregar o quitar dispositivos de diferentes tamaños y tipos, incluyendo la mezcla de SSDs y HDDs. +- **Gestión de capacidad:** Usa el [calculador de uso de disco BTRFS](http://carfax.org.uk/btrfs-usage/) para estimar cuánto espacio tendrás basado en el nivel de %%RAID|raid%% y los tamaños de los dispositivos que estás usando. Para grupos %%ZFS|zfs%%, usa la [guía de almacenamiento ZFS](../../../advanced-configurations/optimize-storage/zfs-storage.mdx) para obtener detalles de configuración. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx new file mode 100644 index 0000000000..c5423cb8ac --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx @@ -0,0 +1,10 @@ +En **modo de dispositivo único**, su %%cache pool|cache-pool%% consiste en un solo dispositivo. Esto significa: + +- **Sin redundancia:** Si el dispositivo falla, cualquier dato almacenado en él que no haya sido transferido a su %%array|array%% se perderá. +- **Opciones de sistema de archivos:** Puede usar sistemas de archivos diferentes a %%BTRFS|btrfs%%, como %%XFS|xfs%% o %%ZFS|zfs%%. + +:::important +Si eliges un sistema de archivos que no sea %%BTRFS|btrfs%% o %%ZFS|zfs%% en el modo de un solo dispositivo y más tarde decides agregar más dispositivos al conjunto, deberás volver a formatear el dispositivo como %%BTRFS|btrfs%% o %%ZFS|zfs%% primero. Es por eso que %%BTRFS|btrfs%% es el sistema de archivos predeterminado para %%cache pools|conjunto de caché%%, incluso cuando se usa solo un dispositivo. Tanto %%BTRFS|btrfs%% como %%ZFS|zfs%% admiten la adición de dispositivos posteriormente para crear conjuntos en espejo. Para más información sobre la selección de sistemas de archivos y compatibilidad, consulta [Sistemas de archivos](../file-systems.mdx). +::: + +El modo de un solo dispositivo es sencillo. Puedes agregar o eliminar el dispositivo fácilmente, pero no tendrás opciones para funciones avanzadas como redundancia o expansión. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx new file mode 100644 index 0000000000..b88fb44909 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx @@ -0,0 +1,76 @@ +El método de preservación de paridad te permite quitar un disco de datos de tu matriz Unraid sin perder la protección de paridad. Este proceso requiere preparación cuidadosa y algunos conocimientos técnicos y solo se recomienda para usuarios avanzados. + +

Lo que hace este método

+ +Este método efectivamente limpia el disco de datos que deseas eliminar, permitiéndote mantener la paridad intacta. Dado que un disco lleno de ceros no afecta la paridad, tu matriz permanece protegida durante todo el procedimiento. + +

Cuándo usar este método

+ +Use the %%parity|parity%%-preserve method to remove a data disk while keeping your %%parity|parity%% valid safely. This is especially useful to avoid a full %%parity|parity%% sync after removal. Please ensure that the disk you're removing is healthy. + +:::important\[Prerequisites] + +Antes de comenzar, asegúrate de cumplir con las siguientes condiciones: + +- Este método te permite eliminar solo un disco a la vez. +- Nota que no hay soporte oficial de LimeTech para este proceso; procede con precaución. + +::: + +:::warning +Este método borrará todos los datos del disco seleccionado. Verifique que todos los datos importantes se hayan movido antes de continuar. +::: + +Para eliminar un disco utilizando el método de preservación de paridad: + +1. **Inicie el array en modo de mantenimiento:** Haga clic en el disco que desea eliminar y luego en el botón **Borrar**. Esto borrará el sistema de archivos del dispositivo mientras mantiene la paridad, luego detenga el array. +2. **Iniciar la matriz:** Inicia la matriz en modo normal; el disco a borrar no se montará, pero los discos restantes estarán en línea durante el proceso. +3. **Registrar asignaciones del array:** Anota tus asignaciones del array, especialmente el %%parity drive|parity-drives%%, como medida de seguridad. +4. **(Opcional) Habilitar Turbo Write:** Para un borrado más rápido, habilita Reconstruct Write ("Turbo Write") en **Configuración → Configuraciones de Disco**, pero solo si todos los discos están sanos. +5. **Borrar el disco:** Usa el método alternativo de línea de comandos a continuación para borrar manualmente el disco. +6. **Detener el array:** Una vez que se complete el borrado, detén el array. +7. **Restablecer la configuración del array:** Mantén todas las asignaciones actuales al restablecer la configuración del array. +8. **Quitar la asignación del disco:** Quita la asignación del disco que deseas eliminar, revisando todas las asignaciones, especialmente el %%parity drive|parity-drives%%. +9. **Confirma el estado de paridad:** Marca la casilla que indica "La paridad ya es válida." +10. **Iniciar el array de nuevo:** Inicia el array para finalizar el proceso de eliminación. +11. **(Opcional) Verificar paridad:** Puedes ejecutar una %%parity check|parity-check%% correctiva después para asegurar la integridad de la paridad. + +
+ **Método alternativo por línea de comandos para borrar un disco** + + Si te sientes cómodo usando la línea de comandos de Linux, puedes borrar manualmente tu disco usando las siguientes instrucciones. Asegúrate de elegir el comando que corresponde con tu versión de Unraid. + + Como borrar un disco puede tardar muchas horas, se recomienda usar algo como el [Tmux Terminal Manager TTM plugin](https://forums.unraid.net/topic/183427/plugin-tmux-terminal-manager-ttm/) para escribir los comandos y asegurarte de que la sesión se mantenga activa. + + **Para Unraid 6.12 o posterior:** + + 1. Primero, desmonta el disco: + ```bash + umount /mnt/diskX + ``` + 2. Borra el disco con el siguiente comando: + ```bash + dd bs=1M if=/dev/zero of=/dev/mdXp1 status=progress + ``` + + **Para Unraid 6.11 y anteriores:** + + 1. Comienza desmontando el disco: + ```bash + umount /mnt/diskX + ``` + 2. Luego, usa este comando para borrar el disco: + ```bash + dd bs=1M if=/dev/zero of=/dev/mdX status=progress + ``` + + :::note + Recuerde reemplazar `X` con el número específico del disco de datos que está eliminando. + ::: + + :::caution + Antes de ejecutar estos comandos, verifique dos veces el número de la unidad para evitar borrar accidentalmente datos en el disco incorrecto. + ::: + + No dudes en comunicarte con los [foros de Unraid](https://forums.unraid.net/). Allí, puedes encontrar recursos útiles y soporte de la comunidad. +
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx new file mode 100644 index 0000000000..d668d8648d --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx @@ -0,0 +1,13 @@ +Este método es ideal para usuarios que buscan una forma sencilla de eliminar un disco de datos. + +1. **Detener la matriz:** Comience deteniendo la matriz para retirar el disco de forma segura. +2. **(Opcional) Documente sus asignaciones de disco:** Considere tomar una captura de pantalla de sus asignaciones de disco actuales desde la pestaña Principal. +3. **Restablecer la configuración de la matriz:** Utilice el procedimiento de [Restablecimiento de la configuración de la matriz](#reset-the-array-configuration). Asegúrese de elegir la opción para preservar todas las asignaciones actuales. +4. **Quitar la asignación del disco:** Identifica y quita la asignación del disco que deseas eliminar. +5. **Iniciar el array:** Después de quitar la asignación del disco, inicia el array nuevamente, pero no marques la casilla "La paridad es válida". + +Una vez que inicie la matriz, se iniciará una sincronización de %%paridad|parity%% si tiene un disco de %%paridad|parity-disks%% asignado. Tenga en cuenta que la matriz será vulnerable a la pérdida de datos hasta que se complete esta sincronización. + +:::tip +Mueve cualquier dato importante fuera del disco antes de la eliminación. El proceso de sincronización %%parity|parity%% puede tardar varias horas, dependiendo del tamaño del disco y la actividad del sistema. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx new file mode 100644 index 0000000000..920c0111d0 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx @@ -0,0 +1,49 @@ +Si te sientes cómodo con la línea de comandos, este método te ofrece más control y puede ser útil si la opción %%WebGUI|web-gui%% no está disponible. Para obtener más información sobre el uso de la interfaz de línea de comandos, consulta [Interfaz de línea de comandos](../../../system-administration/advanced-tools/command-line-interface.mdx). + +:::note[Before empiezas] +- Asegúrate de que el perfil %%RAID|raid%% de tu agrupación permita la eliminación de dispositivos; no puedes eliminar un dispositivo de una agrupación %%RAID 1|raid1%% de 2 dispositivos sin cambiarlo primero a un perfil único. +- Verifica que los dispositivos restantes tengan suficiente espacio para tus datos. +::: + +Para quitar un disco usando la línea de comandos: + +1. **Abre una sesión de terminal**: Asegúrate de que la %%array|array%% esté funcionando y abre tu interfaz de línea de comandos. + +2. **Quitar el dispositivo**: Escribe el comando de abajo, reemplazando `X` con la letra correspondiente al disco que deseas eliminar (como se muestra en la pestaña Principal): + + ```bash + btrfs device remove /dev/sdX1 /mnt/cache + ``` + + - Para dispositivos cifrados, usa: `/dev/mapper/sdX1`. + - Para dispositivos NVMe, usa: `nvmeXn1p1`. + +3. **Espera a la finalización**: El dispositivo se eliminará una vez que veas el cursor volver. + +4. **Hacer que Unraid "olvide" el miembro eliminado**: + - Detenga el %%array|array%%. + - Desasignar todos los dispositivos de la agrupación. + - Iniciar la %%array|array%% (Unraid limpiará la configuración de la agrupación). + - Si algún servicio de Docker/%%VM|vm%% usa esta agrupación, desactívalos antes de iniciar la %%array|array%% para evitar que Unraid recree imágenes en otro lugar. + +5. **Reasignar dispositivos**: Detén la %%array|array%% nuevamente, reasigna todos los miembros de la agrupación restantes excepto el dispositivo eliminado, y luego inicia la %%array|array%%. + +**Para eliminar varios dispositivos**: + +Puedes hacerlo en un solo comando: + +```bash +btrfs device remove /dev/sdX1 /dev/sdY1 /mnt/cache +``` + +Sin embargo, ten en cuenta que la eliminación aún ocurrirá uno a la vez. + +:::note\[Timing] + +Similar al método %%WebGUI|web-gui%%, quitar dispositivos y reequilibrar puede tardar varias horas dependiendo del volumen de datos y la velocidad de los dispositivos. + +::: + +:::important +Si solo te queda un dispositivo en el pool, necesitarás convertir el perfil %%RAID|raid%% a **single** para asegurar que todo funcione correctamente. Para más instrucciones, consulta la sección sobre [Cambiar el Nivel de RAID del Pool a Single](#changing-pool-raid-levels). +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx new file mode 100644 index 0000000000..43df64d1b9 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx @@ -0,0 +1,18 @@ +:::note[Before empiezas] +- Solo puede eliminar una unidad a la vez usando el GUI. +- Asegúrese de que su piscina esté usando un perfil %%RAID|raid%% redundante (como %%RAID 1|raid1%% para datos y metadatos). +- Para verificar el nivel de %%RAID|raid%% de su grupo, navegue a la pestaña Principal y haga clic en el grupo. Desplácese hacia abajo hasta la sección Estado de Balance (para %%BTRFS|btrfs%%) o al estado del grupo ZFS (para %%ZFS|zfs%%). +::: + +Para quitar un disco usando el %%WebGUI|web-gui%%: + +1. **Detener la %%array|array%%**: Ve a la pestaña **Principal** y busca la opción para detener tu %%array|array%%. +2. **Desasignar el disco de la agrupación**: Encuentra el disco que deseas eliminar y desasígnalo en la pestaña **Principal**. +3. **Iniciar la %%array|array%%**: Reinicia la %%array|array%% para aplicar los cambios. +4. **Verificar la eliminación**: Haz clic en el primer dispositivo de agrupación en la pestaña **Principal**, luego verifica **Estado de Equilibrio** (para %%BTRFS|btrfs%%) o **estado zpool** (para %%ZFS|zfs%%) para confirmar que el dispositivo fue eliminado correctamente. + +:::note\[Timing] + +Ten en cuenta que quitar un disco y reequilibrar la agrupación puede tardar varias horas, según la cantidad de datos que tengas y las velocidades de tus dispositivos. + +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx new file mode 100644 index 0000000000..b63ed98146 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx @@ -0,0 +1,3 @@ +1. Configure **Usar Cache** de la participación en *Preferir*. +2. El **%%Mover|mover%%** se ejecuta automáticamente según su programación para mover archivos, y las ejecuciones manuales son opcionales. +3. Después de que los archivos son movidos, puede cambiar **Usar Cache** a *No* si prefiere. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx new file mode 100644 index 0000000000..d5f7d46105 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx @@ -0,0 +1,3 @@ +1. En la configuración de la participación, establezca **Almacenamiento Principal** en *Cache* y **Almacenamiento Secundario** en *Array*. +2. Configure la **acción de Mover** a *Array -> Cache*. +3. El **%%Mover|mover%%** se ejecutará automáticamente según su programación para mover archivos, con ejecuciones manuales como opción. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx new file mode 100644 index 0000000000..328bd3f417 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx @@ -0,0 +1,3 @@ +1. Cambie la configuración de **Usar Cache** de la participación a *Sí*. +2. El **%%Mover|mover%%** transfiere archivos automáticamente según su horario. Las ejecuciones manuales son opcionales. +3. Después de que los archivos se trasladan, puede cambiar la configuración de **Usar Cache** a *Sólo* si lo desea. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx new file mode 100644 index 0000000000..415df6ba0e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx @@ -0,0 +1,3 @@ +1. En la configuración de la participación, establezca **Almacenamiento Principal** en *Cache* y **Almacenamiento Secundario** en *Array*. +2. Configure la **acción de Mover** a *Cache -> Array*. +3. El **%%Mover|mover%%** se ejecuta automáticamente según su horario para transferir archivos. Las ejecuciones manuales del %%Mover|mover%% son posibles pero no necesarias. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx new file mode 100644 index 0000000000..679a546606 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx @@ -0,0 +1,12 @@ +Unraid utiliza el **%%Mover|mover%%** para gestionar la colocación de archivos entre la %%cache|cache%% y el %%array|array%%, controlada por la configuración **Usar Cache para Nuevos Archivos** para cada compartición: + +- **Sí:** Los archivos nuevos van al %%cache|cache%% si el espacio lo permite; de lo contrario, al %%array|array%%. %%Mover|mover%% transfiere archivos del %%cache|cache%% al %%array|array%%. +- **No:** Los archivos nuevos van directamente al %%array|array%%. %%Mover|mover%% no hace nada para este compartir. +- **Solo:** Los archivos nuevos se escriben solo en el %%cache|cache%%. Si no hay suficiente espacio, la escritura falla. %%Mover|mover%% no moverá archivos del %%array|array%% al %%cache|cache%%. +- **Preferir:** Los archivos nuevos van al %%cache|cache%% si hay espacio; de lo contrario, al %%array|array%%. %%Mover|mover%% intenta mover archivos del %%array|array%% de nuevo al %%cache|cache%% cuando es posible. + +Esta configuración es el valor predeterminado para las participaciones `appdata` y `system` para mejorar el rendimiento de Docker y VM. + +:::note +A partir de Unraid 6.9, múltiples %%pools|cache-pool%% pueden ser creados y utilizados como %%cache|cache%%. Cualquiera de estos %%pools|cache-pool%% puede actuar como %%cache|cache%%, independientemente de su nombre. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx new file mode 100644 index 0000000000..be972cca23 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx @@ -0,0 +1,23 @@ +La configuración de **Almacenamiento Primario** determina dónde se escribirán inicialmente los nuevos archivos para un recurso compartido: puede ser la **%%cache|caché%%**, el **%%array|arreglo%%** o cualquier **%%pool|grupo-caché%%** nombrado. La configuración de **Almacenamiento Secundario** especifica una ubicación alterna para nuevos archivos y carpetas si el almacenamiento primario cae por debajo del umbral de **Espacio Libre Mínimo**. + +La función **%%Mover|mover%%** transfiere automáticamente los archivos entre el almacenamiento primario y secundario según tu horario, asegurando un rendimiento y uso del almacenamiento óptimos. + +
+ ![Almacenamiento Primario a Secundario](/img/primarytosecondarystorage.png) +
+ +:::note +Si seleccionas el %%array|array%% para almacenamiento primario o secundario, también debes configurar su **%%allocation method|allocation-method%%**, **%%split level|split-level%%**, y cualquier **%%included or excluded disks|included-or-excluded-disks%%**. Estas configuraciones no se aplican a %%pools|cache-pool%%. +::: + +**Desplegable de almacenamiento primario:** + +- Este ajuste es necesario para cada compartido. +- Debes seleccionar un dispositivo de almacenamiento primario o %%pool|cache-pool%% (por defecto es **Cache**). +- Puedes elegir cualquier %%pool|cache-pool%% nombrado o el %%array|array%%. + +**Desplegable de almacenamiento secundario:** + +- **Ninguno:** No se establece un almacenamiento secundario para el compartido (opcional). +- Si el almacenamiento primario es un %%pool|cache-pool%%, **Ninguno**, **Matriz**, y **Otro pool** están disponibles. +- Si el almacenamiento primario es el **Array**, **None** y cualquier %%pools|cache-pool%% elegibles están disponibles. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx new file mode 100644 index 0000000000..437462d3fe --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx @@ -0,0 +1,17 @@ +**Mensaje:** +`Demasiados dispositivos conectados. Por favor, considere actualizar su clave de registro.` + +![Error de límite de dispositivos](/img/Toomanydevices.png) + +Las reglas para conectar almacenamiento se aplican solo antes de iniciar el array. Después de iniciar el array, puede agregar más almacenamiento, incluyendo unidades USB para máquinas virtuales. Sin embargo, tenga en cuenta que Unraid actualmente solo limita el número de dispositivos de almacenamiento conectados en el [**nivel de licencia Starter**](https://unraid.net/pricing) (límite de 6 dispositivos). + +:::tip +El máximo se aplica a todos los dispositivos excepto al USB de arranque. +::: + +Para resolver este error: + +1. Detenga el arreglo. +2. Elimine cualquier dispositivo de almacenamiento innecesario. +3. Inicie el arreglo. +4. Reconecta los dispositivos después para su uso como **Dispositivos no asignados**. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx new file mode 100644 index 0000000000..119eb9c546 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx @@ -0,0 +1,6 @@ +**Mensaje:** +`No se puede contactar con el servidor de claves` + +Si tienes una licencia de prueba, verás un mensaje indicando que necesitas contactar con el servidor de licencias de Unraid para iniciar tu arreglo. Sin embargo, si tienes una licencia paga, puedes iniciar el arreglo sin pasos adicionales. + +Para los usuarios de prueba, tu servidor intenta conectarse al servidor de claves de licencia para verificar tu licencia al iniciar. Si no puede conectar en 30 segundos, el arreglo no se iniciará. ¡Pero no te preocupes! Cada vez que refresques o navegues por el %%WebGUI|web-gui%%, intentará validar tu licencia rápidamente. Una vez que se valide con éxito, tu servidor no necesitará volver a verificar a menos que reinicies. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx new file mode 100644 index 0000000000..a39c4592ee --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx @@ -0,0 +1,23 @@ +**Mensaje:** +`Clave de registro inválida o faltante.` + +![Clave perdida](/img/Invalidormissingkey.png) + +Se requiere una clave de registro válida para iniciar la matriz. Para comprar o obtener una clave de prueba: + +1. Vaya a ***Herramientas → Registro***. +2. Haga clic en **Obtener clave de prueba** o **Comprar clave**. +3. Instale la clave volviendo a **Registro**, pegue en el campo y haga clic en el botón **Instalar Clave**. + +:::note[Trial vs. Licencias pagadas] +- **Licencia de prueba:** Acceso completo a Unraid por 30 días, igual que los niveles de licencia superior. Puedes usar dispositivos de almacenamiento ilimitados, pero necesitarás una conexión a internet para iniciarlo. [Comienza una nueva prueba aquí.](https://unraid.net/getting-started) +- **Licencia Pagada:** ¡Esta es suya para siempre! Sin embargo, hay límites en el número de dispositivos según el plan que elija (**Starter**, **Unleashed** o **Lifetime**). Después de activarla, no necesita conectar a internet nunca más. +::: + +:::tip +Si ve un error de "clave inválida", podría significar que su prueba ha **expirado**. Para seguir usando Unraid, puede [comprar una licencia aquí](https://unraid.net/pricing). +::: + +:::caution[Blacklisted Dispositivos USB flash] +Si su servidor está en línea y su prueba no ha expirado, su unidad flash USB podría tener un %%GUID|guid%% que no puede registrar una clave. Esto puede suceder si el %%GUID|guid%% no es único o ya ha sido registrado por otra persona. Usar un lector de tarjetas SD a través de USB también puede causar este problema, ya que a menudo tiene un %%GUID|guid%% genérico. Si su unidad flash USB está **en lista negra**, no se puede usar más, y necesitará encontrar un dispositivo diferente para su instalación del sistema operativo del servidor Unraid. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx new file mode 100644 index 0000000000..63a41d8832 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx @@ -0,0 +1,10 @@ +**Mensaje:** +`Demasiados discos incorrectos y/o faltantes!` + +![Error de paridad única](/img/Toomanywrong.png) + +Con **un %%parity drive|parity-drives%%**, solo puedes tener **un** disco faltante. Con dos %%parity drives|parity-drives%%, pueden faltar **dos** discos y todavía puedes iniciar la matriz, y así sucesivamente. La paridad ayuda hasta que puedas reemplazar el disco faltante. + +**Qué Hacer:** +Reemplace el disco faltante. Para configuraciones de paridad dual, reemplace los discos faltantes uno a la vez. +Si no puedes recuperar los datos (o si fallan más de 2 discos en una configuración de paridad dual), ve a ***Herramientas → Nueva Configuración*** para realizar el procedimiento de Nueva Configuración. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx new file mode 100644 index 0000000000..ca0663ebcc --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx @@ -0,0 +1,11 @@ +**Mensaje:** `Esta versión de Unraid ha sido retirada.` + +Si ve este mensaje, significa que está utilizando una versión beta o candidata de Unraid que no está habilitada para uso regular. + +Para resolver esto: + +1. Abrir Unraid. +2. Vaya a ***Herramientas → Actualizar SO***. +3. Instale la última versión estable. + +Una vez que se complete la actualización, reinicie su servidor para iniciar su arreglo. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx new file mode 100644 index 0000000000..8d7c96532a --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx @@ -0,0 +1,614 @@ +--- +sidebar_position: 1 +sidebar_label: Recursos compartidos +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import SharesPrimaryStorage612 from './partials/shares-primary-storage-612.mdx'; +import SharesPrimaryStorage611 from './partials/shares-primary-storage-611.mdx'; +import SharesCacheToArray612 from './partials/shares-cache-to-array-612.mdx'; +import SharesCacheToArray611 from './partials/shares-cache-to-array-611.mdx'; +import SharesArrayToCache612 from './partials/shares-array-to-cache-612.mdx'; +import SharesArrayToCache611 from './partials/shares-array-to-cache-611.mdx'; + +# Recursos compartidos + +Una característica clave de Unraid es la gestión de comparticiones. Las comparticiones son carpetas o unidades en su servidor Unraid que se pueden acceder a través de una red. Puede crear tantas comparticiones como desee en su servidor Unraid. Estas comparticiones pueden estar protegidas, y su configuración determina cómo se escribe y distribuye la data a través de su %%array|array%% o %%pool|cache-pool%% de unidades nombradas. + +Unraid ofrece dos tipos de compartidos para optimizar tu gestión de datos: + +- [**User Shares**](#user-shares): Estos utilizan **Linux FUSE** y representan carpetas dentro del sistema de archivos más amplio. +- [**Disk Shares**](#disk-shares): Estos comparten todo el disco usando el [sistema de archivos](./file-systems.mdx) de la unidad. + +
+ ![User Shares vs. Disk Shares](/img/usersharesvsdiskshares.png) +
+ +Es importante recordar que ambos tipos de compartidos presentan vistas diferentes del mismo sistema de archivos subyacente; cualquier archivo o carpeta visible en un %%user share|user-share%% también aparecerá bajo el disco correspondiente. + +Cuando inicia servicios como Docker o Gestor de VM, Unraid crea automáticamente un [conjunto de shares de usuario predeterminadas](#default-shares) diseñadas para soportar complementos comunes, contenedores Docker y **máquinas virtuales (VMs)**. Puede crear convenientemente shares adicionales para sus datos personales según necesite. + +:::note +Para gestionar tus shares, simplemente navega a la pestaña **Shares** en la WebGUI. Aquí, puedes habilitar o deshabilitar shares fácilmente a través de ***Settings → Global Share Settings***. Por defecto, los %%user shares|user-share%% están habilitados, proporcionando un punto de inicio sencillo para la organización de tus archivos. +::: + +--- + +## User shares + +Los %%User shares|user-share%% proporcionan una vista agregada de carpetas de nivel superior con el mismo nombre a través de **%%cache|cache%%** y **array drives**. El nombre del share corresponde al nombre de la carpeta, creando una vista accesible en red unificada que abarca múltiples discos. Es importante notar que, aunque los directorios parezcan fusionados, los archivos individuales permanecen almacenados en un solo disco. + +### Gestionando los user shares + +Puedes acceder y gestionar los %%User shares|user-share%% desde la pestaña **Shares** en la **WebGUI**. Esta interfaz te permite: + +- Revisar todos los compartidos existentes +- Crear nuevos compartidos +- Modificar o eliminar compartidos existentes + +Cualquier carpeta de nivel superior que se cree manualmente en una unidad se reconoce automáticamente como un User Share y se le asignan atributos predeterminados. + +### Estructura del sistema de archivos + +A nivel de Linux, los %%User shares|user-share%% son accesibles bajo `/mnt/user`, que combina archivos de tanto el %%array|array%% como el %%pools|cache-pool%%. Esta vista lógica superpone el sistema de archivos físico, lo que significa que los archivos también son visibles a través de **Disk Shares** a nivel de disco. + +:::warning +El punto de montaje obsoleto `/mnt/user0` (que excluye archivos de %%pool|cache-pool%%) puede eliminarse en futuras versiones de Unraid. +::: + +### Asignación de almacenamiento + +El dispositivo físico que almacena un archivo está determinado por configuraciones de share, como **%%Allocation Method|allocation-method%%**, **%%Included/Excluded Disks|included-or-excluded-disks%%** y **%%Split Level|split-level%%**. Los cambios en estas configuraciones afectarán solo a nuevos archivos; los archivos existentes permanecerán sin cambios a menos que se muevan manualmente. + +:::caution\[Critical] + +**No mezcles User Shares y Disk Shares** + +Nunca copie o mueva archivos directamente entre una **share de usuario** y una **share de disco** (por ejemplo, entre `/mnt/user/share` y `/mnt/disk1/share`) - especialmente si los nombres de carpeta son los mismos. Esto puede causar corrupción de archivos o pérdida permanente de datos. + +Para prácticas de gestión de archivos seguras y más detalles, consulta las [directrices de Disk share](#disk-share-guidelines) abajo. + +::: + +### Añadir un compartido + +Antes de crear un recurso compartido, considere cómo lo utilizará, sus necesidades de rendimiento, seguridad y dónde deben almacenarse los archivos. + +Para añadir un compartido: + +1. **Inicia el proceso:** Ve a la pestaña **Shares** y haz clic en **Add Share**. + +2. **Elige un nombre para el compartido:** Selecciona un nombre único para tu compartido, como `Media` o `Documents`. + +:::important[Share nombre] +Aunque las shares de red (%%SMB|samba%%) no diferencian entre mayúsculas y minúsculas (por ejemplo, ˋMEDIAˋ es lo mismo que ˋmediaˋ), los sistemas de archivos de Linux sí lo hacen. Evite utilizar nombres que sean idénticos pero sólo difieran en mayúsculas para prevenir problemas. +::: + +3. **Ajustes opcionales:** + - **Comentarios:** Escribe una breve descripción para identificar tu compartido (por ejemplo, "Fotos Familiares"). + - **Espacio Libre Mínimo:** Decida una cantidad mínima de espacio libre (por ejemplo, `50GB` para archivos grandes). (Para más detalles, vea [Espacio libre mínimo](#minimum-free-space)) + +4. **Seleccionar ubicaciones de almacenamiento:** + + - **Almacenamiento Primario:** Elija dónde se almacenará inicialmente la compartición (por ejemplo, **%%cache|cache%%**, **%%array|array%%** o un %%pool|cache-pool%% específico). + - **Almacenamiento Secundario:** Establece una ubicación de desbordamiento que se utilizará cuando el almacenamiento primario esté lleno, y también servirá como destino final del compartido una vez que el %%Mover|mover%% se ejecute. + + (Para más detalles, ve a [Almacenamiento primario y secundario](#primary-and-secondary-storage).) + +5. **Establece reglas de datos:** + - **Método de Asignación:** Elija cómo se almacenarán los datos: las opciones incluyen "high-water", "fill-up" o "most-free". (Para más detalles, vea [Método de asignación](#allocation-method).) + - **%%Split Level|split-level%%:** Determine cómo deben estar organizadas las carpetas. (Para más detalles, vea [Nivel de división](#split-level).) + +6. **Gestión de unidades:** + + - **Discos incluidos:** Elige unidades específicas para incluir (por ejemplo, `disk1,disk2`). + - **Discos excluidos:** Especifica cualquier unidad que desees excluir (como unidades más viejas). + + (Para más detalles, ve a [Discos incluidos o excluidos](#included-or-excluded-disks).) + +:::tip +Puedes configurar ya sea **Discos Incluidos** o **Discos Excluidos**, pero no ambos al mismo tiempo. +::: + +7. **Configuraciones de Mover (si es necesario)** + + - **Acción de Mover:** Decide la dirección del movimiento de datos (ya sea *Primario → Secundario* o *Secundario → Primario*). + + (Para más detalles, ve a [Mover archivos entre la cache y la matriz](#moving-files-between-cache-and-array).) + +8. **Completa el proceso:** Haz clic en **Add Share** para terminar de configurar tu nuevo compartido. + +:::important +Por defecto, una nueva share no se compartirá a través de la red. Debe configurar el [acceso a la red](../../system-administration/secure-your-server/security-fundamentals.mdx#managing-network-visibility-of-shares) después de que la share se cree. +::: + +### Eliminar un compartido + +:::important +Para prevenir cualquier pérdida potencial de datos, las shares que contienen datos no se pueden eliminar. Por lo tanto, debe eliminar o reubicar primero todos los contenidos dentro de la share. Siempre verifique dos veces para confirmar que la share esté vacía antes de proceder con su eliminación para un proceso seguro. +::: + +**Compartidos que contienen datos** + +Para compartidos que contienen datos: + +1. **Vacía el compartido primero:** + - Usa el **Administrador de Archivos** accesible a través de los atajos del sistema (***Herramientas → Administrador de Archivos***) o haz clic en el icono ![Administrador de Archivos](/img/filemanager.png) en la esquina superior derecha. + - Encuentra tu compartido en **Shares** y haz clic en el icono **Browse**. + - Elimina o mueve todos los archivos usando el administrador de archivos. + +
+ Usando la línea de comandos (Avanzado) + + 1. **Abre el terminal:** Usa el **Terminal Web** (***Herramientas → Terminal***) o conecta usando %%SSH|ssh%%. + + 2. **Eliminar archivos:** + Ejecute este comando, reemplazando `[share_name]` con el nombre de su recurso compartido: + + ``` + rm -rf /mnt/user/[share_name]/* + ``` + + 3. **Eliminar el compartido:** Sigue los pasos para eliminar un compartido vacío anteriormente. + + :::precaución + + - El comando `rm -rf` eliminará permanentemente los archivos. Verifique dos veces antes de usarlo. + - Asegúrate de que ningún servicio Docker o VM esté usando el compartido antes de eliminarlo + ::: +
+ +:::note[Alternative Método] +Si puedes acceder al compartido a través de la red: + +- Usa **Windows Explorer** (%%SMB|samba%%) o **macOS Finder** (%%AFP|AFP%%/%%SMB|samba%%) para conectarte al compartido. +- Elimine manualmente los archivos, luego elimine el compartido a través del **WebGUI**. +::: + +2. **Eliminar el compartido:** + - Regresa a **Shares** y haz clic en el ahora compartido vacío. + - Marca la casilla **Delete** y haz clic en **Delete**. + - Confirma y haz clic en **Done**. + +#### Eliminar un compartido vacío + +1. Ve a la pestaña **Comparticiones**. +2. Haz clic en el compartido que deseas eliminar. +3. Marque la casilla junto a **Eliminar**. El botón cambiará a **Eliminar**. +4. Haz clic en **Delete**. +5. Confirma la eliminación y haz clic en **Done**. + +--- + +## Configuraciones de compartidos + +### Espacio libre mínimo + +El ajuste de **Espacio Libre Mínimo** funciona en conjunto con el **%%allocation method|allocation-method%%** y el **%%split level|split-level%%** para determinar dónde se almacenarán los nuevos archivos. Este ajuste especifica la cantidad de espacio libre que debe quedar en una unidad para que sea considerada elegible para nuevas escrituras de archivos. Si el espacio libre de una unidad cae por debajo de este umbral, Unraid dejará de colocar nuevos datos en esa unidad, siempre que el **%%split level|split-level%%** permita la división en otro disco. + +
+ Cómo funciona - Haz clic para expandir/colapsar + + Al transferir un archivo (por ejemplo, `file.eg`), Unraid selecciona un disco según la configuración disponible pero no puede predecir el tamaño final del archivo. Si el disco elegido se queda sin espacio durante la transferencia, la operación fallará con un error de "disco lleno". Para evitar esto, configure el **Espacio Mínimo Libre** a un valor mayor que su archivo más grande. Esto asegura que Unraid evite discos que no pueden acomodar el archivo completo. +
+ +

Recomendación

+ +Establezca este valor en **el doble del tamaño de su archivo más grande**. Por ejemplo: + +- Si tu archivo más grande es de 8GB, entonces establece el Espacio libre mínimo a 16GB. + +Este margen de seguridad cuenta para variaciones en tamaños de archivo y ayuda a prevenir fallas en transferencias. + +

Configuración

+ +- Introduce el valor en KB, MB, GB o TB (por ejemplo, `50GB`). +- Los nuevos %%user shares|user-share%% por defecto a un 10% de la capacidad total del disco. + +:::warning +Siempre configure **Espacio Libre Mínimo** al usar el método de asignación *fill-up* %%allocation method|allocation-method%%. Si no lo establece, puede encontrar errores de "disco lleno" durante las operaciones de escritura. +::: + +:::caution +Hay una configuración de **Espacio Libre Mínimo** separada para **%%cache pools|cache-pool%%**. Puede acceder a esto yendo a la pestaña **Principal** y haciendo clic en un %%pool|cache-pool%%. Asegúrese de establecer este valor más alto que su archivo más grande para evitar sobrecargas, especialmente para acciones configuradas con modos de caché *Sí* o *Preferir*. +::: + +

Limitaciones

+ +- Unraid prioriza las reglas de **%%split level|split-level%%** sobre las configuraciones de espacio libre. Si no se permite la división, los archivos aún pueden llenar un disco independientemente del umbral de espacio libre. +- La actualización de archivos existentes (por ejemplo, al incrementar archivos de respaldo) no desencadena redistribución, lo que puede llevar a errores de "disco lleno" con el tiempo. + +Para obtener una guía más detallada, usa el icono de **Ayuda** en el **WebGUI** mientras configuras tus compartidos. + +--- + +## Almacenamiento Primario y Secundario + +La gestión de almacenamiento en Unraid le permite controlar dónde se escriben los nuevos archivos y cómo se mueve la data entre %%pools|cache-pool%%, %%cache|cache%% y el %%array|array%%. Las opciones y la terminología difieren entre Unraid 6.12+ y versiones anteriores. + + + + + + + + + + + +--- + +### Mover archivos entre cache y array + +Unraid proporciona una manera sencilla de gestionar la colocación de archivos entre **%%cache pools|cache-pool%%** y el **%%array|array%%**, permitiéndole optimizar el rendimiento y gestionar su data de manera efectiva. La clave es configurar sus ajustes de compartición según su flujo de datos preferido y dejar que el **%%Mover|mover%%** maneje las transferencias de archivos automáticamente según su programación. + +:::tip[Scheduling el Mover] +Puede configurar el [horario de **%%Mover|mover%%**](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#scheduler) yendo a **Ajustes → Programador → Ajustes del Mover**. Ejecutarlo automáticamente durante las horas no pico ayuda a mover archivos entre el %%cache|cache%% y el %%array|array%% sin requerir acción manual. +::: + +#### Cache a array + +*Caso de uso:* Mover archivos desde su %%cache|cache%% de alta velocidad a la %%array|array%% para almacenamiento a largo plazo. + + + + + + + + + + + +#### Array a cache + +*Caso de uso:* Mejora del rendimiento para contenedores Docker y VMs moviendo archivos a la %%cache|cache%%. + + + + + + + + + + + +:::tip[Enabling Habilitar el registro del Mover para resolución de problemas] +Si encuentra problemas con el movimiento de archivos, puede habilitar el **registro de Mover** a través de la página ***Configuración → Programador → Configuración de Mover***. Esto registra cada archivo movido y se puede ver en ***Herramientas → Registro del Sistema***. +::: + +:::caution[Critical Pasos críticos para ambas direcciones] +- Asegúrese de que su %%parity|parity%% sea válida antes de mover archivos de la %%array|array%% a la %%cache|cache%%. +- Si está manejando grandes volúmenes de datos, observe la actividad del %%Mover|mover%% a través de los registros. +- Si los archivos parecen estar "atascados", considere deshabilitar temporalmente Docker y el Administrador de VM, luego ejecutar el %%Mover|mover%% manualmente a través de *Principal → Operación del Array → Mover*. +::: + +--- + +### Método de asignación + +Cuando crea una nueva share de usuario o añade cualquier archivo o carpeta dentro de ella, el sistema necesita decidir dónde almacenar estos datos. Normalmente, elegirá el disco de datos que tenga más espacio libre disponible. Sin embargo, puede ajustar cómo se toma esta decisión utilizando ciertas configuraciones. + +Hay tres opciones sencillas que puede seleccionar para cómo el sistema asigna almacenamiento a su participación de usuario: + + + +

Cómo funciona

+ + El método **High-water** llena progresivamente los discos usando "puntos de cambio" basados en la mitad de la capacidad del disco más grande. Esto equilibra el uso del disco mientras mantiene los archivos relacionados juntos y minimiza la activación de discos. + +

Ejemplo con unidades de 8TB, 3TB y 2TB

+ + 1. **Primera pasada:** Llenar la unidad de 8TB hasta que queden 4TB libres (la mitad de 8TB). + 2. **Segunda pasada:** Llenar las unidades de 8TB/3TB hasta que queden 2TB libres. + 3. **Tercera pasada:** Llenar todas las unidades hasta que quede 1TB libre. + +

Mejor para:

+ + - Servidores de medios (por ejemplo, Plex) + - Escenarios donde mantener archivos en menos discos mejora la eficiencia de desconexión + - Arrays con tamaños de unidad mixtos + + :::nota + High-water es el método predeterminado y funciona bien para la mayoría de los usuarios. Reduce el desgaste del disco en comparación con "Most-free." + ::: +
+ + +

Cómo funciona

+ + El método **Most-free** selecciona el disco con más espacio libre para cada nuevo archivo. Esto maximiza la eficiencia del almacenamiento pero aumenta el desgaste del disco. + +

Impacto en el rendimiento

+ + - Los cambios frecuentes de disco mantienen múltiples unidades activadas. + - Puede reducir las velocidades de escritura de %%parity|parity%% debido a operaciones superpuestas. + +

Mejor para:

+ + - Flujos de trabajo de alto rendimiento (por ejemplo, edición de video) + - Temporary or %%cache|cache%%-like data + - Arrays donde el rendimiento supera el ahorro de energía + + :::consejo + Combina con configuraciones de **%%split level|split-level%%** para agrupar archivos relacionados a pesar de los frecuentes cambios de disco. + ::: +
+ + +

Cómo funciona

+ + El método **Llenar-completo** escribe en los discos en orden numérico hasta que alcanzan el umbral de **Espacio Mínimo Libre**, luego pasa al siguiente disco. + +

Requisitos

+ + - Siempre ajuste **Espacio Mínimo Libre** (por ejemplo, 2x el tamaño del archivo más grande) + - Configure el **Nivel de División** para controlar el agrupamiento de archivos. + +

Mejor para:

+ + - Archivos de datos estáticos + - Usuarios que prefieren la gestión manual de discos + - Arrays con tamaños de unidad idénticos + + :::precaución + Sin configurar **Espacio Mínimo Libre**, se producirán errores de "disco lleno" cuando un disco se acerque a su capacidad. + ::: +
+
+ +--- + +### Nivel de división + +La configuración de **Nivel de División** en Unraid ayuda a gestionar cómo se organizan los archivos y carpetas en múltiples discos. Determina cuán profundas pueden ser las estructuras de las carpetas en diferentes discos mientras mantiene ciertos archivos juntos. El %%split level|split-level%% está numerado comenzando desde 1, donde el nivel superior (la compartición principal) se considera nivel 1. + + + +

Comportamiento

+ + Unraid creates any required folders on the selected disk, regardless of folder depth. New files and folders are placed based on %%allocation method|allocation-method%% and available space, even if their parent directories do not already exist on that disk. + +

Casos de Uso

+ + Mejor para recursos compartidos de datos generales donde la estructura de carpetas no es crítica, como descargas o bibliotecas de medios mixtos. Permite la máxima flexibilidad en la ubicación de archivos y la utilización del disco. +
+ + +

Comportamiento

+ + Unraid solo creará subcarpetas de primer nivel en un disco si no existen ya. Para carpetas más profundas, los nuevos archivos y carpetas se colocan en el disco donde existe el directorio principal. + +

Casos de Uso

+ + Ideal para bibliotecas multimedia (por ejemplo, Películas/Título) donde desea que todos los archivos de una subcarpeta específica (como una película o serie de TV) permanezcan juntos en el mismo disco. +
+ + +

Comportamiento

+ + Usted especifica cuántos niveles de directorio (N) gestionará automáticamente Unraid. Para carpetas en o por encima del nivel N, Unraid puede crearlas según sea necesario. Para niveles más profundos, los nuevos archivos se colocan en el disco donde existe el directorio principal. + +

Casos de Uso

+ + Útil para estructuras de carpetas complejas, como directorios de proyectos anidados, donde desea mantener contenido relacionado agrupado más allá del nivel superior. +
+ + +

Comportamiento

+ + Unraid solo coloca nuevos archivos o carpetas en discos donde ya existe el directorio principal. No se crean nuevos directorios automáticamente. + +

Casos de Uso

+ + Mejor para usuarios avanzados que desean control manual completo sobre la colocación de archivos, o para datos archivales donde la estructura de carpetas debe permanecer fija. +
+
+ +:::important +Si hay conflictos entre **Espacio Libre Mínimo**, **Nivel de División**, y **Método de Asignación**, la configuración de **Nivel de División** tiene prioridad. Esto puede resultar en errores de "sin espacio", incluso si otros discos tienen espacio disponible. +::: + +--- + +### Discos incluidos o excluidos + +Estas configuraciones le ayudan a gestionar qué discos pueden contener archivos para su share. Puede incluir discos específicos o excluir algunos concretos - ¡pero no haga ambas cosas a la vez! Si no elige ningún disco específico, todos los discos permitidos en ***Configuración → Configuración Global de Shares*** serán utilizados. + +Unraid primero verifica cualquier disco incluido, luego mira los discos excluidos para determinar dónde almacenar un archivo. Después de eso, utiliza el %%split level|split-level%% y el %%allocation method|allocation-method%% para seleccionar un disco apropiado. + +
+ ![Lógica de selección de disco](/img/diskselectionlogic.png) +
+ +:::important +Las configuraciones para discos %%incluidos y excluidos|included-or-excluded-disks%% solo afectan dónde se pueden guardar nuevos archivos. Cualquier archivo existente en carpetas que coincidan con el nombre de su share aún será accesible para su lectura, incluso si están en un disco diferente. +::: + + + +

Comportamiento

+ + Unraid solo considerará los discos listados al decidir dónde colocar nuevos archivos para el recurso compartido. Todos los demás discos se ignoran para nuevas escrituras, pero los archivos ya presentes en otros discos permanecen accesibles para su lectura. + +

Casos de Uso

+ + Use esta configuración si desea restringir un compartido a ciertos discos, como mantener documentos importantes en unidades más nuevas o de mayor capacidad, o aislar una biblioteca multimedia en discos específicos por motivos de rendimiento u organización. +
+ + +

Comportamiento

+ + Unraid utilizará todos los discos elegibles excepto los listados aquí al colocar nuevos archivos para el recurso compartido. Al igual que con los discos incluidos, los archivos ya presentes en los discos excluidos siguen siendo accesibles para su lectura. + +

Casos de Uso

+ + Utilice esta configuración para evitar que un compartido utilice ciertos discos, como excluir unidades más antiguas, discos más lentos o discos reservados para otros tipos de datos. +
+
+ +--- + +### Participaciones predeterminadas + +Cuando usa Unraid con **Docker** o **Máquinas Virtuales (VMs)**, automáticamente se crean algunas participaciones predeterminadas. + +:::important +Estas shares solo se crean después de que inicie sus respectivos servicios (Docker o Gestor de VM). Si no ve estas shares, asegúrese de que Docker y/o el Gestor de VM estén habilitados y en ejecución. +::: + +No tiene que usar estas shares si no quiere, y puede eliminarlas si prefiere, pero generalmente recomendamos mantenerlas por conveniencia. Estas shares ayudan a organizar las cosas y facilitan a todos obtener soporte si encuentran problemas. + +Aquí hay una breve visión general de para qué es cada participación predeterminada: + +- `appdata`: Aquí se almacenan todos los archivos de trabajo de sus contenedores Docker. Cada contenedor Docker generalmente tiene su propia carpeta aquí. +- `system`: Esta participación mantiene los archivos esenciales de sus aplicaciones Docker y las plantillas XML para sus VMs. +- `domains`: Esta participación se designa para almacenar imágenes de disco virtual (vdisks) que usan sus VMs. +- `isos`: Aquí puede guardar imágenes ISO de CDs que desea usar con sus VMs. + +:::important +Es mejor no cambiar los permisos en la mayoría de estas shares predeterminadas, ya que hacerlo puede causar problemas con el funcionamiento de los contenedores Docker y las VMs. La única share donde se recomienda cambiar permisos es la share ˋisosˋ, ya que esta puede ser accedida por la red para agregar nuevos archivos ISO para máquinas virtuales. +::: + +--- + +## Participaciones de disco + +Las comparticiones de disco son simplemente unidades individuales o %%pools|cache-pool%% de unidades dentro de su sistema Unraid que pueden ser accedidas a través de la red. Por defecto, estas comparticiones están desactivadas, pero puede activarlas fácilmente en la sección ***Ajustes → Ajustes Globales de Compartición***. + +Para mantener la seguridad, asegúrese de configurar [permisos de acceso de usuario](../../system-administration/secure-your-server/user-management.mdx) para estas shares adecuadamente. Esto es especialmente importante si tiene múltiples usuarios accediendo a su red. + +Para habilitar las participaciones de disco: + +1. Vaya a **Configuración**. +2. Haga clic en **Configuración Global de Participación**. +3. Active las participaciones de disco para hacerlas visibles en su red. + +Una vez que las active, notará las comparticiones de disco en la interfaz gráfica de usuario de Unraid bajo una sección etiquetada como **Comparticiones de Disco** en la pestaña **Comparticiones**. Cada unidad en su %%array|array%% se puede acceder así: + +- **Unidades individuales:** Aparecen como `/mnt/diskX` donde X es el número de disco (por ejemplo, `disk1`, `disk2`, etc.). +- **Pools de unidades:** Si tiene varias unidades agrupadas, aparecerán como `/mnt/pool-name`. El %%pools|cache-pool%% más común se llama `cache`, pero puede nombrar sus %%pools|cache-pool%% como prefiera. + +:::important +El dispositivo flash de Unraid, que almacena tus configuraciones de Unraid, no se trata como un disk share. Si deseas que sea accesible a través de la red, puedes configurarlo como un share llamado 'flash'. Este dispositivo está montado en `/boot` en Linux. + +Por seguridad, es mejor mantener sus participaciones en modo *Privado* y solo otorgar acceso a usuarios de confianza. +::: + +### Directrices para participaciones de disco + +:::danger[Important Recordatorio] +**Nunca copie archivos directamente entre un user share y un disk share** si sus nombres de carpeta son iguales. Esto podría provocar que los archivos se corrompan o eliminen, resultando en una pérdida de datos permanente. +::: + +Los **shares de usuario** y **shares de disco** pueden verse diferentes en la interfaz pero pueden apuntar a los mismos archivos en el disco. Los comandos de Linux como `cp` o `rsync` no siempre pueden notar la diferencia, lo que puede llevar accidentalmente a sobrescribir o eliminar archivos. + +**Consejos para copiar de forma segura** + +1. **Limítate a un tipo de acción:** + - Solo copie archivos entre %%user shares|user-share%% O comparticiones de disco, no ambos al mismo tiempo. + - *Ejemplo:* Para copiar un archivo de una acción de usuario a otra: `cp /mnt/user/share1/file /mnt/user/share2/file` + +2. **Usa discos externos de forma segura:** + - Conecta discos externos usando el **[plugin de Dispositivos no asignados](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon)** para evitar problemas. + - Copie archivos desde `/mnt/disks/` en lugar de desde las rutas principales de %%array|array%% o %%cache|cache%%. + +3. **Verifica tus copias:** Al mover archivos localmente, puedes usar `rsync -c` para comprobar que los archivos se copiaron correctamente. + +4. **No mezcle tipos de comparticiones:** Evite usar rutas que mezclen %%user shares|user-share%% y comparticiones de disco, como `/mnt/user/share/` con `/mnt/disk1/share/` en el mismo comando. + +--- + +## Transferencia de archivos desde una acción de red + +Hay varias herramientas que puede usar para copiar archivos desde un share de Windows o Linux a su servidor Unraid. Para mantener las cosas simples y confiables, comience con la herramienta de gestión de archivos incorporada en Unraid antes de explorar opciones de terceros. + +### Usando Midnight Commander (integrado) + +Unraid incluye **Midnight Commander** (`mc`), un administrador de archivos de doble panel basado en texto. Puede acceder a él a través del [terminal web](../../system-administration/advanced-tools/command-line-interface.mdx). + +1. **Abre el terminal web:** Puedes encontrar esta opción en el menú superior derecho del %%WebGUI|web-gui%% de Unraid. +2. **Lanzar Midnight Commander:** + + ```bash + mc + ``` + + Esta interfaz ofrece navegación de arrastrar y soltar entre acciones locales y rutas de red montadas. +3. **Montar una acción de red** (si no está ya montada): + + ```bash + mkdir /work + mount -t cifs //workstation/share /work -o username=youruser,password=yourpassword,iocharset=utf8 + ``` + + - Reemplaza `workstation`, `share` y `youruser` con los valores apropiados. + - La opción `iocharset=utf8` ayuda a mantener nombres de archivo internacionales. +4. **Usa los paneles de MC** para transferir archivos entre `/work` (la acción de red) y cualquier acción `/mnt/user/` o `/mnt/diskX`. +5. **Limpia después:** + + ```bash + umount /work + rmdir /work + ``` + +Midnight Commander se ejecuta completamente dentro del sistema incorporado, sin requerir ninguna instalación adicional. Es adecuado para la mayoría de las necesidades de transferencia, incluidas aquellas que involucran nombres de archivo Unicode, y preserva atributos de archivo cuando tanto la fuente como el destino los admiten. + +### Usando Krusader + +Si prefieres una interfaz gráfica, puedes usar contenedores Docker como [Krusader](https://unraid.net/community/apps?q=krusader#r:~:text=batch%20renaming%2C%20etc.-,Krusader,-Productivity%2C%20Tools) como una solución de terceros. + +1. **Instalar Krusader:** + - Navega a la pestaña **Aplicaciones** (Aplicaciones Comunitarias). + - Busca e instala el contenedor Docker de **Krusader**. +2. **Lanzar Krusader:** Inicia el contenedor y accede a su WebUI desde la pestaña **Docker**. +3. **Conéctese a las comparticiones remotas** dentro de Krusader, y use arrastrar y soltar o copiar y pegar para transferir archivos entre la compartición de red y su %%array|array%% de Unraid. + +:::info +Otros contenedores populares de gestores de archivos incluyen [**Double Commander**](https://unraid.net/community/apps?q=double+commander#r:~:text=of%201%20App-,doublecommander,-Tools%20/%20Utilities%2C) y [**CloudCommander**](https://unraid.net/community/apps?q=cloudcommander#r:~:text=of%201%20App-,CloudCommander,-Tools%20/%20Utilities%2C), ambos disponibles a través de Aplicaciones Comunitarias. +::: + +### Métodos de línea de comandos + +Para usuarios avanzados o aquellos que usan automatización, también pueden utilizar métodos de transferencia por línea de comandos. + +
+ Haga clic para expandir las instrucciones de línea de comandos + + 1. **Abre la terminal** (Terminal Web o %%SSH|ssh%% como `root`). + + 2. **Crea y monta una acción de red:** + + ```bash + mkdir /work + mount -t cifs //workstation/share /work -o username=youruser,password=yourpassword,iocharset=utf8 + ``` + + 3. **Copiar archivos:** + - Puedes usar `cp`: + + ```bash + cp -r /work/* /mnt/disk1 + ``` + + - O, usa `rsync` para un progreso detallado: + + ```bash + rsync -av --progress /work/ /mnt/disk1/ + ``` + + 4. **Desmonta y elimina el directorio temporal:** + + ```bash + umount /work + rmdir /work + ``` +
+ +:::caution +Al transferir archivos con caracteres especiales o internacionales, siempre monta el share con la opción `iocharset=utf8`. No hacerlo puede resultar en nombres de archivos incorrectos o archivos ilegibles en otras plataformas. + +Además, si copias archivos como `root` a través del terminal, pueden tener restricciones de permisos. Si esto ocurre, usa la herramienta **New Permissions** del menú **Tools** en la WebGUI o el **Docker Safe New Perms** si estás tratando con shares involucrados en Docker para restablecer los permisos, asegurando que todos los usuarios tengan acceso a la red. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json new file mode 100644 index 0000000000..5fc5877ae1 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Ejecutar contenedores Docker", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx new file mode 100644 index 0000000000..9abeb7112c --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx @@ -0,0 +1,144 @@ +--- +sidebar_position: 2 +sidebar_label: Aplicaciones de la Comunidad +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CommunityAppsInstalling from './partials/community-apps-installing.mdx'; +import CommunityAppsRemoving from './partials/community-apps-removing.mdx'; +import CommunityAppsReinstalling from './partials/community-apps-reinstalling.mdx'; + +# Aplicaciones de la Comunidad + +Las Aplicaciones Comunitarias proporcionan un catálogo curado de más de 2,000 contenedores y complementos Docker gratuitos mantenidos por la comunidad Unraid. Cada contenedor o complemento permite que su servidor asuma nuevos roles, como ejecutar un servidor de medios, un cliente DNS dinámico o una solución de respaldo. + +- **Contenedores Docker** son paquetes livianos que incluyen todo lo necesario para ejecutar una aplicación, manteniéndola aislada del resto de su %%array|array%% y %%cache pool|cache-pool%%. Aprenda más sobre [configuración del array](../manage-storage/array-configuration.mdx) y [pools de caché](../manage-storage/cache-pools.mdx). +- Los **complementos** mejoran el sistema operativo Unraid. Para obtener más información sobre los complementos, visite la página de [Complementos](../customize-your-experience/plugins.mdx). + +:::caution +Lime Technology no suministra ni proporciona soporte directo a las Aplicaciones de la Comunidad. El equipo de Aplicaciones de la Comunidad realiza una revisión y moderación básica, pero es importante revisar la documentación y los recursos de soporte de cada aplicación antes de la instalación. +::: + +## Cómo funcionan las Aplicaciones de la Comunidad + +El plugin de Aplicaciones de la Comunidad agrega una pestaña de **Apps** al Unraid %%WebGUI|web-gui%%, que proporciona una interfaz similar a una tienda de aplicaciones. Puedes navegar, buscar y filtrar aplicaciones por categoría o palabra clave. Cada listado indica claramente si es un contenedor Docker o un plugin. + +Las listas incluyen etiquetas como: + +- **Beta:** La aplicación está en desarrollo activo y puede tener errores. +- **Instalado:** La aplicación está instalada en tu servidor actualmente. +- **Actualizado:** Hay una versión más nueva disponible. +- **Foco Mensual CA:** Destacado por el equipo de moderación por calidad o popularidad. + +Al hacer clic en una aplicación se ofrecen más detalles, enlaces de soporte y opciones de instalación. + +--- + +## Instalando el complemento + +Para instalar el complemento Aplicaciones de la Comunidad: + +1. Abre el %%WebGUI|web-gui%% y navega hasta la pestaña **Complementos**. +2. Haz clic en **Instalar**. + +
+ ![Instalación de Aplicaciones de la Comunidad](/img/ca_installation.png) +
+ +3. Una vez completada la instalación, actualiza la página. La pantalla abrirá automáticamente la pestaña **Apps** y te presentará las Aplicaciones de la Comunidad. + +:::tip +Antes de instalar, considera realizar una copia de seguridad de tu flash para proteger tu configuración. Consulta [Asegura tu unidad flash](../../system-administration/secure-your-server/secure-your-flash-drive.mdx) para obtener orientación sobre copias de seguridad. +::: + +--- + +## Gestión de aplicaciones + + + + + + + + + + + + + + + +## Soporte para Aplicaciones + +Si estás usando contenedores Docker y plugins, encontrarás que la mayoría cuentan con recursos de soporte dedicados para ayudarte. Hay varias maneras fáciles de acceder a estas opciones de soporte: + +- **Pestaña Apps**: Haz clic en la pestaña **Apps**, luego filtra a **Apps Instaladas**. Desde allí, localiza la App y selecciona **Soporte**. + +- **Pestaña de Tablero o Docker**: Navega a las pestañas **Tablero** o **Docker**, haz clic en el ícono del contenedor que estás usando, y selecciona **Soporte**. + +- **Pestaña de Complementos**: En la pestaña **Complementos**, cada complemento tendrá un enlace de **Hilo de Soporte** directamente en su resumen para acceso rápido. + +:::tip[Support preferencias] +Al acceder a las opciones de soporte, busca estas opciones en el menú desplegable: + +- **Discord**: Si está disponible, Discord es típicamente el lugar de soporte preferido por los gestores en lugar del foro. +- **Proyecto**: Las preguntas sobre la aplicación en sí se responden mejor a través de los canales oficiales del proyecto. +::: + +Estos recursos te conectarán con foros comunitarios y discusiones de desarrolladores donde puedes encontrar ayuda, resolver problemas, y mantenerte actualizado. + +--- + +## Actualización de aplicaciones (Centro de Acciones) + +El **Centro de Acciones** se encuentra dentro de la pestaña **Apps** en el %%WebGUI|web-gui%% y sirve como su centro principal para gestionar el estado de las aplicaciones. Proporciona información sobre: + +- **Actualizaciones disponibles**: Aplicaciones que tienen versiones más recientes listas para instalación +- **Aplicaciones obsoletas**: Aplicaciones que ya no se mantienen o recomiendan +- **Aplicaciones incompatibles**: Aplicaciones que podrían no funcionar con tu versión actual de Unraid +- **Aplicaciones en lista negra**: Aplicaciones que se han eliminado del catálogo por razones de seguridad o compatibilidad + +Cuando acceda al Centro de Acciones, verá alertas para cualquier aplicación que requiera atención. Para actualizar una aplicación, haga clic en Acciones para la aplicación que necesita actualización, y luego seleccione **Actualizar** para ejecutar el script de actualización. Las actualizaciones regulares son esenciales para mantener la seguridad, estabilidad y compatibilidad de su instalación de Unraid. Consulte [Actualizando Unraid](../../system-administration/maintain-and-update/upgrading-unraid.mdx) para obtener más información. + +--- + +## Contribuir tus propias aplicaciones + +El ecosistema de **Aplicaciones Comunitarias** prospera gracias a las contribuciones de la comunidad de Unraid. Ya sea que esté desarrollando aplicaciones o complementos, su trabajo puede ayudar a otros a mejorar sus servidores Unraid. A continuación, se presentan directrices para enviar sus creaciones, basadas en las [políticas oficiales](https://forums.unraid.net/topic/87144-ca-application-policies-notes/). + +### Requisitos de envío + +Para asegurar calidad y mantenibilidad, todas las presentaciones deben: + +- Incluir un hilo de soporte dedicado en los [foros de Unraid](https://forums.unraid.net/). +- Proporcionar documentación clara para instalación, configuración y resolución de problemas. +- Usar licencias de código abierto a menos que la aplicación requiera componentes propietarios. +- Evitar conflictos con la funcionalidad básica de Unraid o aplicaciones comunitarias existentes. + +Las presentaciones son revisadas por el equipo de moderación de Aplicaciones de la Comunidad, que realiza una revisión básica de seguridad, funcionalidad y cumplimiento con los principios de diseño de Unraid. + +### Expectativas de mantenimiento + +Se espera que los desarrolladores que publican aplicaciones en Aplicaciones Comunitarias mantengan sus proyectos para garantizar la compatibilidad y fiabilidad para la comunidad de Unraid. Esta sección describe las responsabilidades continuas que ayudan a mantener la calidad de las aplicaciones disponibles. + +Una vez publicada, se espera que los desarrolladores: + +- Actualicen regularmente las aplicaciones para mantener la compatibilidad con nuevas versiones de Unraid. +- Respondan a las solicitudes de soporte en sus hilos del foro. +- Etiqueten claramente las versiones beta o experimentales. +- Notifiquen al equipo de moderación si dejan de dar soporte a una aplicación. + +:::note +El equipo de moderación se reserva el derecho de eliminar aplicaciones que se vuelvan incompatibles con las versiones actuales de Unraid o carezcan de soporte continuo. Para actualizaciones de seguridad urgentes, pueden hacerse cargo temporalmente del mantenimiento de proyectos abandonados. +::: + +### Flujo de publicación + +Si eres un desarrollador interesado en contribuir a la comunidad de Unraid publicando tu aplicación, este flujo de trabajo asegura el control de calidad y proporciona a los usuarios aplicaciones confiables y bien documentadas. + +1. Prepara los archivos de plantilla y documentación de tu aplicación. +2. Crea un hilo de soporte en los [foros de Unraid](https://forums.unraid.net/). +3. Envía tu solicitud a través del [formulario de envío de Aplicaciones de la Comunidad](https://form.asana.com/?k=qtIUrf5ydiXvXzPI57BiJw\&d=714739274360802). +4. El equipo de moderación típicamente revisa las presentaciones dentro de las 48 horas. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx new file mode 100644 index 0000000000..803c54fe1b --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx @@ -0,0 +1,234 @@ +--- +sidebar_position: 3 +sidebar_label: Gestión y personalización de contenedores +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import DockerNetworkType from './partials/managing-and-customizing-containers/network-type.mdx'; +import DockerVolumeMappings from './partials/managing-and-customizing-containers/volume-mappings.mdx'; +import DockerPortMappings from './partials/managing-and-customizing-containers/port-mappings.mdx'; +import DockerEnvironmentVariables from './partials/managing-and-customizing-containers/environment-variables.mdx'; +import DockerCommandStart from './partials/managing-and-customizing-containers/command-start.mdx'; +import DockerCommandStop from './partials/managing-and-customizing-containers/command-stop.mdx'; +import DockerCommandRestart from './partials/managing-and-customizing-containers/command-restart.mdx'; +import DockerCommandStatus from './partials/managing-and-customizing-containers/command-status.mdx'; +import DockerCommandLogs from './partials/managing-and-customizing-containers/command-logs.mdx'; + +# Gestión y personalización de contenedores + +:::caution\[Disclaimer] + +Esta página está redactada para ayudar a usuarios de todos los niveles a aprovechar al máximo los contenedores Docker en Unraid OS. Los consejos y mejores prácticas provienen del equipo de Unraid, quienes aseguran que están adaptados a las necesidades de la mayoría de los usuarios. Sin embargo, ten en cuenta que Docker está en constante evolución, por lo que para obtener las funciones más actualizadas, configuraciones avanzadas o resolver problemas que van más allá de lo que Unraid cubre, siempre es una buena idea consultar la [documentación oficial de Docker](https://docs.docker.com/). + +::: + +Antes de personalizar un contenedor Docker en Unraid, es útil entender las opciones básicas de configuración. Cada [plantilla de contenedor](./community-applications.mdx) proporciona una interfaz fácil de usar para configurar la red, el almacenamiento y las variables de entorno, permitiéndote adaptar el comportamiento del contenedor a tus necesidades sin necesidad de usar herramientas de línea de comandos complejas. + + + + + + + + + + + + + + + + + + + +## Creación y ejecución de contenedores + +Una vez que hayas configurado la red del contenedor, los mapeos de volumen, los mapeos de puerto y las variables de entorno, estarás listo para crear y lanzar tu contenedor Docker. Esta sección te guiará a través del proceso de creación, explicará cómo gestionar el orden de inicio y las dependencias, y proporcionará consejos para personalización avanzada del inicio. + +### Creando un contenedor + +Después de revisar sus ajustes de configuración en la plantilla del contenedor: + +1. Haga clic en **Crear** para comenzar la descarga y configuración del contenedor. + - Evite cerrar la ventana del navegador o navegar lejos hasta que el proceso se complete. + - La descarga inicial para un nuevo repositorio puede tardar más que descargas subsiguientes. +2. Una vez el proceso haya finalizado, haga clic en **Listo** para volver a la página de Docker, donde puede gestionar o agregar más contenedores. + +### Planificación de su secuencia de inicio + +Algunos contenedores dependen de otros para funcionar correctamente. Por ejemplo, una aplicación podría necesitar un contenedor de base de datos en funcionamiento primero, o un servicio podría requerir un [contenedor %%VPN|vpn-tunnel%%](../../system-administration/secure-your-server/tailscale.mdx) activo antes de que comience. + +:::important[Plan tu inicio] +- Identifique los contenedores que proporcionan servicios clave (como bases de datos, %%VPNs|vpn-tunnel%%, o puertas de enlace de almacenamiento). +- Asegúrese de que los contenedores dependientes se inicien solo después de que sus requisitos previos estén funcionando y listos. +- Revise la documentación de cada contenedor para entender cualquier requerimiento específico de inicio. +::: + +--- + +## Inicio avanzado de contenedores + +Unraid te brinda control flexible sobre qué contenedores comienzan automáticamente y en qué orden. Esto es especialmente útil si tienes contenedores que dependen de otros (como un servicio de base de datos o %%VPN|vpn-tunnel%%). + +Para asegurarse de que un contenedor se inicie automáticamente cuando el %%array|array%% se inicia: + +1. Vaya a la pestaña **Docker** en el %%WebGUI|web-gui%%. +2. Active el interruptor de **Auto-inicio** a **ON** para cada contenedor que desee que se inicie automáticamente. + +### Personalizar el orden de inicio y retrasos + +Por defecto, Unraid inicia todos los contenedores de inicio automático tan rápidamente como sea posible, en el orden en que aparecen en la pestaña Docker. Puedes personalizar este orden y añadir tiempos de espera entre los inicios de contenedores. + +1. En la pestaña **Docker**, desbloquee la lista de contenedores usando el ícono de candado. +2. Arrastre y suelte los contenedores para reorganizar su orden. +3. Cambie a **Vista Avanzada** usando el interruptor en la parte superior derecha. +4. En la columna **AutoStart**, ingrese un tiempo de espera (en segundos) en el campo **wait** para cualquier contenedor que necesite tiempo extra antes de que el siguiente comience. + - Use prueba y error para determinar los mejores tiempos de espera para su configuración. + +:::tip +Establecer el orden correcto y los tiempos de espera es especialmente importante para contenedores que dependen de servicios proporcionados por otros (por ejemplo, iniciar una base de datos antes que una aplicación que la use, o un %%VPN|vpn-tunnel%% antes de apps dependientes). +::: + +### Probando su secuencia de inicio + +Aunque Unraid no tiene una función dedicada de "probar secuencia de inicio", puede simular y verificar su orden de inicio: + +1. Detener todos los contenedores desde la pestaña **Docker**. +2. Inicie cada contenedor manualmente, en su orden planificado, usando el botón **Iniciar**. +3. Monitoree los registros de los contenedores y el comportamiento de la aplicación para asegurarse de que las dependencias se cumplan y los servicios se inicien como se espera. +4. Ajuste el orden de inicio o los tiempos de espera según sea necesario. + +:::important +Pruebe su secuencia de inicio después de cambiar las dependencias de contenedores o agregar nuevos servicios, especialmente si su configuración depende de un temporizado específico de inicio. +::: + +--- + +## Controlando tus contenedores + +Una vez que hayas creado e iniciado tu contenedor Docker, gestionarlo es fácil a través del %%WebGUI|web-gui%%. Esta guía te guiará en el uso del menú contextual, la comprensión de los indicadores de salud del contenedor y el acceso a los mapeos de volumen dentro de tu contenedor. + +Para acceder al menú contextual del contenedor, dirígete a la pestaña **Docker** o **Dashboard** y haz clic en el icono del contenedor que deseas gestionar. Este menú ofrece un acceso sencillo a acciones comunes: + +
+ ![Docker Guide - Controlling](/img/Dockerguide-controlling.png) +
+ +| Opción | Descripción | +| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| **WebUI** | Abre la interfaz web del contenedor en una nueva pestaña del navegador (si está disponible). | +| **Consola** | Abre una interfaz de línea de comandos para interactuar directamente con el contenedor. | +| **Detener** | Detiene el contenedor en ejecución. | +| **Pausar** | Pausa el contenedor, deteniendo temporalmente todos los procesos. | +| **Reiniciar** | Reinicia el contenedor, aplicando cualquier cambio de configuración. | +| **Registros** | Muestra la salida del registro del contenedor para resolución de problemas. | +| **Editar** | Cambia la configuración del contenedor, como mapeos de puerto o volumen. Los cambios se aplican inmediatamente después de guardar. | +| **Eliminar** | Elimina el contenedor. Puedes elegir eliminar solo el contenedor o también borrar su imagen. | +| **Página del proyecto** | Abre la página del proyecto del contenedor para documentación y soporte. | +| **Soporte** | Proporciona acceso a recursos y ayuda para el contenedor. | +| **Más Información** | Muestra información adicional sobre el contenedor y su configuración. | + +### Indicador de estado + +Encontrará un indicador de estado de color junto al ícono de cada contenedor: + +- 🟢 **Saludable**: Indica que el contenedor está funcionando y responde como se espera. +- 🟡 **No Saludable**: El contenedor está en ejecución pero ha fallado su verificación de estado. Investiga los registros o la configuración del contenedor para más información. +- ⚪ **Sin verificación de estado**: Esto significa que no se ha configurado una verificación de estado para el contenedor. Es común para muchas aplicaciones y no necesariamente un problema. + +:::note +Las verificaciones de salud son definidas por el autor del contenedor y pueden no estar presentes para todas las imágenes. +::: + +--- + +## Asignaciones de volumen dentro de un contenedor + +Al configurar su aplicación a través de su interfaz web, haga referencia a la **ruta de contenedor** que configuró durante la configuración - no a la ruta del anfitrión. + +Por ejemplo, si mapeó `/mnt/user/media` en el anfitrión a `/unraid_media` en el contenedor, debe usar `/unraid_media` en la configuración de la aplicación. + +

Escenarios de ejemplo

+ +Aquí tienes algunos ejemplos que muestran configuraciones comunes de mapeo de rutas que los usuarios frecuentemente necesitan al configurar contenedores Docker. Demuestran cómo traducir entre las rutas del sistema de archivos del host de Unraid y las rutas internas del contenedor, ayudándote a configurar aplicaciones correctamente. + +- **Servidor multimedia:** + Ruta del host: `/mnt/user/media`\ + Ruta del contenedor: `/unraid_media` + + En la aplicación, establece la ubicación de tu biblioteca de medios en `/unraid_media`. + +- **Almacenamiento de appdata:** + Ruta del host: `/mnt/user/appdata/myapp`\ + Ruta del contenedor: `/config` + + En la aplicación, usa `/config` para el almacenamiento de configuración. + +- **Multiple %%user shares|user-share%%:** + Host path: `/mnt/user/media` → Container path: `/media`\ + Host path: `/mnt/user/data` → Container path: `/data` + + Referencia `/media` o `/data` en la aplicación según sea necesario. + +:::important[Best práctica] +Siempre use el [modo de acceso](../manage-storage/shares.mdx) más restrictivo (solo lectura o lectura/escritura) que permita que su contenedor funcione correctamente. +::: + +--- + +## Programación de inicio y parada + +Unraid no admite acciones programadas para iniciar o detener **contenedores Docker**, pero puedes automatizar fácilmente este proceso mediante el [**plugin Scripts de Usuario**](../customize-your-experience/plugins.mdx). Esta poderosa herramienta te permite ejecutar scripts personalizados en un horario, habilitando el control automático de tus contenedores. + +### Complemento User Scripts + +El **plugin Scripts de Usuario** te permite crear, gestionar y programar scripts de shell personalizados directamente desde el %%WebGUI|web-gui%%. Puedes usarlo para varias tareas de automatización, como iniciar o detener contenedores, respaldar datos o ejecutar rutinas de mantenimiento. + +- Instale el complemento desde la pestaña **Apps** si aún no lo ha hecho. +- Accédalo a través de ***Settings → User Scripts*** para crear y gestionar sus scripts. + +Para aprender más sobre complementos, consulte [Plugins](../customize-your-experience/plugins.mdx). + +### Programación de acciones de contenedor + +Para automatizar el inicio o detención de tus contenedores en un horario: + +1. Instala el **plugin de Scripts de Usuario** desde la pestaña **Apps**. +2. Navega a ***Ajustes → Scripts de Usuario***. +3. Crea un nuevo script para cada horario único. Puedes incluir comandos para múltiples contenedores en un solo script si comparten el mismo horario. +4. Configura el horario usando el menú desplegable o utiliza una expresión `cron` personalizada para opciones de tiempo más avanzadas. +5. Haz clic en **Aplicar** para guardar y activar tu script. + +:::tip +Las expresiones cron permiten una programación flexible más allá de las opciones integradas. Por ejemplo, `0 3 * * 1` ejecuta tu script a las 3:00 AM todos los lunes. +::: + +### Ejemplos de comandos + + + + + + + + + + + + + + + + + + + + + + + +:::tip +Puedes encontrar el nombre del contenedor en la pestaña Docker o viendo el comando `docker run` en la pantalla de configuración del contenedor. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx new file mode 100644 index 0000000000..d2508cee01 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx @@ -0,0 +1,48 @@ +--- +sidebar_position: 1 +sidebar_label: Visión General +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Visión General + +Docker allows you to run Linux applications in isolated environments known as "containers." On Unraid, Docker is the ideal method for deploying and managing a wide variety of applications without concerns about compatibility or system conflicts. This approach transforms your Unraid server into a flexible %%application server|application-server%%, enabling you to run popular apps like **Plex**, **Home Assistant**, and many more directly on your system. + +Si deseas aprender más sobre la tecnología fundamental de Docker o explorar su uso avanzado, consulta la [documentación oficial de Docker](https://docs.docker.com/). + +## Cómo Unraid utiliza Docker + +La integración de Docker en Unraid está diseñada para ser fácil de usar para todos. Cada aplicación se ejecuta en su propio contenedor, garantizando que las actualizaciones o cambios no afecten el sistema operativo Unraid ni otras aplicaciones. Unraid utiliza un recurso compartido dedicado `appdata` para almacenar la configuración y archivos de trabajo de cada contenedor. Esto mantiene organizada la información de tus aplicaciones y facilita las copias de seguridad y migraciones. + +
+ **Bajo el capó:** Expanda para aprender más sobre la implementación de contenedores Docker en Unraid + + Unraid utiliza Docker para crear entornos separados para ejecutar aplicaciones basadas en Linux. Cada contenedor de Docker opera independientemente del sistema operativo Unraid y de otros contenedores, lo que mejora tanto la estabilidad como la compatibilidad. + +

Detalles de implementación

+ + - **Storage:** All the data and programs for each container are stored in a single %%virtual disk image|virtual-disk-images%% file called `docker.img`. By default, this file is found in the `system` %%user share|user-share%%, which usually utilizes the %%cache pool|cache-pool%% for better speed. + - **Sistema de archivos:** El archivo `docker.img` utiliza el sistema de archivos %%BTRFS|btrfs%% y es montado internamente por Unraid. Para más información sobre los sistemas de archivos, consulta [Sistemas de archivos](../manage-storage/file-systems.mdx). + - **Configuración:** Cuando configuras un contenedor, Unraid guarda tu configuración como una %%plantilla XML de VM|vm-xml-templates%% en la unidad flash. Esto facilita la reinstalación o restauración de contenedores con tus configuraciones preferidas. + - **Plantillas:** Muchos contenedores populares vienen con plantillas listas para usar, haciendo que la configuración inicial sea menos complicada. + - **Performance:** It’s a good idea to store `docker.img` on the %%cache pool|cache-pool%% (if you have one) for the best performance. + - **Limitaciones:** Unraid no soporta de manera nativa Docker Compose. Para configuraciones más complejas, revisa la [documentación oficial de Docker Compose](https://docs.docker.com/compose/). + + :::tip + La mayoría de los usuarios no necesitarán interactuar directamente con el archivo `docker.img`. Sin embargo, conocer su función puede ser útil para la solución de problemas o para entender los mensajes de registro. + ::: +
+ +## Aplicaciones de la Comunidad (Plugin) + +El complemento Community Applications es la forma más fácil y popular de descubrir, instalar y gestionar tanto contenedores Docker como complementos en tu servidor Unraid. Proporciona una experiencia similar a una tienda de aplicaciones directamente en el %%WebGUI|web-gui%% de Unraid, haciendo que sea simple navegar e implementar una amplia gama de aplicaciones mantenidas por la comunidad. + +Para una guía completa sobre cómo instalar y usar el plugin Aplicaciones de la Comunidad, incluyendo características avanzadas y soluciones de problemas, consulta [Aplicaciones de la Comunidad](./community-applications.mdx). + +:::note[Notes y Soporte] +- La mayoría de los contenedores en Aplicaciones de la Comunidad son mantenidos por las comunidades más amplias de Unraid y Docker. +- Para obtener asistencia con un contenedor específico, revisa su documentación o el hilo de soporte vinculado en la pestaña **Apps**. +- Lime Technology proporciona soporte para el subsistema Docker en sí, pero no para los contenedores de la comunidad individual. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx new file mode 100644 index 0000000000..2e2b3816f5 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx @@ -0,0 +1,17 @@ +Para instalar un contenedor o complemento de Docker, simplemente haz clic en el botón **Instalar** en el mosaico o panel de información de la aplicación ubicado en la pestaña **Aplicaciones** del %%WebGUI|web-gui%%. Esto iniciará el proceso de instalación. + +
+
+ ![Instalar aplicación](/img/CA_Tile1.png) +
+ +
+ ![Ejemplo de mosaico de aplicación](/img/CA_Tile3.png) +
+
+ +Mantén la ventana de instalación abierta hasta que el proceso se complete por completo. + +:::tip[Security consejo] +Antes de instalar, tómate un momento para leer la descripción de la aplicación. Verifica la reputación del desarrollador y asegúrate de que el repositorio de origen sea confiable. Es mejor elegir aplicaciones de desarrolladores conocidos o aquellas con hilos de soporte activos. Siempre sé cauteloso al otorgar acceso a tu %%array|array%%, %%cache pool|cache-pool%%, o a cualquier dato sensible. Aprende más sobre [fundamentos de seguridad](../../../system-administration/secure-your-server/security-fundamentals.mdx). +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx new file mode 100644 index 0000000000..c72ec1bcf5 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx @@ -0,0 +1,9 @@ +Si necesitas reinstalar un contenedor o complemento Docker (por ejemplo, si tu archivo `docker.img` está dañado), Aplicaciones de la Comunidad lo simplifica para ti. Todos los ajustes de la aplicación se guardan como archivos XML de plantilla Docker en `/boot/config/plugins/dockerMan/templates-user`. Para más información sobre el esquema XML de plantillas Docker y etiquetas personalizadas, consulta la [documentación de Schema XML de Plantillas Docker](https://forums.unraid.net/topic/38619-docker-template-xml-schema/) en los foros de Unraid. + +Para reinstalar una aplicación: + +1. Ve a la pestaña **Apps** en el %%WebGUI|web-gui%%. +2. Selecciona el filtro **Aplicaciones Anteriores**. +3. Encuentra la aplicación que deseas reinstalar y sigue las instrucciones. + +Tus configuraciones guardadas se restaurarán automáticamente, permitiendo una rápida y fácil recuperación. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx new file mode 100644 index 0000000000..5704282330 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx @@ -0,0 +1,4 @@ +Para eliminar una aplicación: + +1. Utiliza el filtro **Aplicaciones Instaladas** en la pestaña **Aplicaciones**. Esto te mostrará todos los contenedores de Docker y plugins instalados como fichas. +2. Haz clic en **Acciones** y selecciona **Desinstalar** para la aplicación que deseas eliminar. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx new file mode 100644 index 0000000000..8dce83d36e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx @@ -0,0 +1,7 @@ +Para ver los registros de un contenedor (útil para solucionar problemas): + +``` +docker logs "container-name" +``` + +Esto muestra la salida reciente de registros para el contenedor especificado. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx new file mode 100644 index 0000000000..f2c4258221 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx @@ -0,0 +1,7 @@ +Para reiniciar un contenedor (útil después de actualizar configuraciones o solucionar problemas): + +``` +docker restart "container-name" +``` + +Reemplaza `"nombre-del-contenedor"` con el nombre real como se muestra en la pestaña Docker. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx new file mode 100644 index 0000000000..066a391ffc --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx @@ -0,0 +1,7 @@ +Para iniciar un contenedor, usa el comando: + +``` +docker start "container-name" +``` + +Reemplaza `"nombre-del-contenedor"` con el nombre real como se muestra en la pestaña Docker. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx new file mode 100644 index 0000000000..e2aa57cd1f --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx @@ -0,0 +1,7 @@ +Para verificar si un contenedor está en ejecución: + +``` +docker ps --filter "name=container-name" +``` + +Esto enumerará el contenedor si está actualmente en ejecución. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx new file mode 100644 index 0000000000..2062b54dfb --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx @@ -0,0 +1,7 @@ +Para detener un contenedor, usa el comando: + +``` +docker stop "container-name" +``` + +Reemplaza `"nombre-del-contenedor"` con el nombre real como se muestra en la pestaña Docker. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx new file mode 100644 index 0000000000..ca868b62c4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx @@ -0,0 +1,25 @@ +Las variables de entorno pueden personalizar cómo se comporta tu contenedor Docker en tiempo de ejecución. Permiten pasar pares clave-valor que tu aplicación en curso de contenedorización puede leer y utilizar. + +

Usos comunes para las variables de entorno

+ +- Configurando la zona horaria +- Configurando identificadores de usuarios y grupos +- Especificando preferencias de idioma +- Ajustando configuraciones específicas de la aplicación, como claves API o conmutadores de funciones + +

Gestionando variables de entorno en el %%WebGUI|web-gui%%

+ +- Puede agregar, editar o eliminar variables de entorno en la pantalla de configuración del contenedor a través del %%WebGUI|web-gui%%. +- Muchas plantillas de contenedor vienen con variables de entorno comunes que ya están establecidas, pero siempre puede agregar más si es necesario. +- Asegúrese de revisar la documentación específica de la aplicación para saber qué variables de entorno están disponibles y qué valores son válidos. + +:::info[Examples de variables de entorno] +- `TZ=America/New_York`: Esto establece la zona horaria del contenedor. +- `PUID=99` y `PGID=100`: Estos establecen los IDs de usuario y grupo para permisos de archivo. +- `UMASK=022`: Esto controla los permisos de archivo predeterminados para archivos creados. +- `API_KEY=your_api_key_here`: Esto podría ser usado por una aplicación para autenticación con un servicio externo. +::: + +:::tip +Utilice variables de entorno para evitar codificar de manera fija información sensible o específica del entorno dentro de las imágenes de sus contenedores. Esta práctica mejora la portabilidad y la seguridad de sus contenedores. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx new file mode 100644 index 0000000000..80f6545ab7 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx @@ -0,0 +1,17 @@ +Unraid admite varios modos de red Docker. El tipo de red que elija determina cómo su contenedor se comunica con otros dispositivos y contenedores: + +- **Puente (predeterminado):** El contenedor se coloca en una red interna de Docker. Solo los puertos que usted mapea explícitamente serán accesibles desde su servidor Unraid o LAN. Esta es la opción más segura y común para la mayoría de las aplicaciones. + +- **Anfitrión:** El contenedor comparte la pila de red del servidor Unraid. Puede usar cualquier puerto disponible, pero debe asegurarse de que no haya conflictos de puertos con otros servicios. Use este modo solo si la aplicación requiere acceso directo a la red. + +- **Ninguno:** El contenedor no tiene acceso a la red. Use esto para cargas de trabajo aisladas que no requieren conectividad de red. + +- **Personalizado (macvlan/ipvlan):** El contenedor recibe su propia dirección IP en su LAN, lo que hace que parezca un dispositivo separado. Esto es útil para escenarios avanzados, pero puede requerir configuración adicional en su entorno de red. + +:::tip +El tipo de red predeterminado especificado en la plantilla del contenedor se recomienda para la mayoría de los usuarios. +::: + +:::caution[Wi-Fi y Limitaciones de Networking de Docker] +Docker tiene una limitación que le impide participar en dos redes que comparten el mismo subred. Si cambias entre una conexión cableada y una conexión inalámbrica, necesitarás reiniciar Docker y reconfigurar todos los contenedores existentes para usar la nueva interfaz. Este cambio de [configuración de red](/unraid-os/system-administration/secure-your-server/securing-your-connection) requiere una reconfiguración de contenedores. +::: diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx new file mode 100644 index 0000000000..8298d4d6d4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx @@ -0,0 +1,11 @@ +Las asignaciones de puertos determinan cómo se dirige el tráfico de red desde su servidor Unraid al contenedor. + +- **Red de puente:** Puede asignar los puertos internos del contenedor a diferentes puertos del host. Por ejemplo, si tres contenedores utilizan el puerto 8000 internamente, puede asignarlos a 8000, 8001 y 8002 en el host. + +- **Red de host:** El contenedor puede utilizar cualquier puerto disponible. Evite ejecutar múltiples contenedores con el mismo puerto para prevenir conflictos. + +:::important +Solo modifique el valor del puerto del host. No cambie el puerto del contenedor a menos que sepa que la aplicación lo soporta. +::: + +La mayoría de las plantillas proporcionan valores predeterminados sensatos, pero puede añadir o ajustar asignaciones de puertos. diff --git a/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx new file mode 100644 index 0000000000..25cbdd3299 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx @@ -0,0 +1,17 @@ +Los mapeos de volumenes controlan cómo tu contenedor accede a los archivos en tu servidor de Unraid. Cada mapeo vincula una carpeta dentro del contenedor (ruta del contenedor) a una carpeta en tu servidor de Unraid (ruta del host). + +- **Ruta del contenedor:** El directorio dentro del contenedor (por ejemplo, `/config` o `/unraid_media`). +- **Ruta del anfitrión:** El directorio en su servidor Unraid (por ejemplo, `/mnt/user/appdata/myapp`). +- **Modo de acceso:** Controla los permisos - solo lectura o lectura/escritura. Usa el modo más restrictivo que aún permita que el contenedor funcione. + +:::tip[Best práctica] +Almacene los datos de la aplicación (configuraciones, bibliotecas, etc.) fuera del contenedor, típicamente en el `appdata` %%user share|user-share%%. Este [enfoque de administración de shares](../../../manage-storage/shares.mdx) mantiene sus datos seguros durante las actualizaciones o reinstalaciones. +::: + +:::note +- Las rutas son sensibles a mayúsculas y minúsculas. +- Las rutas del contenedor deben comenzar con un `/`. +- Si usa un dispositivo no asignado como la ruta del anfitrión, configure el modo de acceso en una opción "Slave" para garantizar su detección correcta. +- Las rutas del anfitrión se crean automáticamente si no existen cuando el contenedor se inicia. +- La aparición de carpetas inesperadas en su servidor puede indicar una asignación mal configurada. +::: diff --git a/i18n/es/docusaurus-theme-classic/footer.json b/i18n/es/docusaurus-theme-classic/footer.json new file mode 100644 index 0000000000..d515632386 --- /dev/null +++ b/i18n/es/docusaurus-theme-classic/footer.json @@ -0,0 +1,54 @@ +{ + "link.title.Documentation": { + "message": "Documentación", + "description": "The title of the footer links column with title=Documentation in the footer" + }, + "link.title.Community": { + "message": "Comunidad", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "Más", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Home": { + "message": "Inicio", + "description": "The label of footer link with label=Home linking to /" + }, + "link.item.label.Contribute on Github": { + "message": "Contribuir en Github", + "description": "The label of footer link with label=Contribute on Github linking to https://github.com/unraid/docs" + }, + "link.item.label.Forums": { + "message": "Foros", + "description": "The label of footer link with label=Forums linking to https://forums.unraid.net" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.unraid.net/" + }, + "link.item.label.Unraid Home": { + "message": "Unraid Inicio", + "description": "The label of footer link with label=Unraid Home linking to https://unraid.net" + }, + "link.item.label.Unraid Connect": { + "message": "Conectar Unraid", + "description": "The label of footer link with label=Unraid Connect linking to https://connect.myunraid.net" + }, + "link.item.label.Newsletter": { + "message": "Boletín", + "description": "The label of footer link with label=Newsletter linking to https://newsletter.unraid.net" + }, + "link.item.label.Blog": { + "message": "Blog", + "description": "The label of footer link with label=Blog linking to https://unraid.net/blog" + }, + "copyright": { + "message": "Copyright © 2005-2025 Lime Technology, Inc.
Unraid® es una marca registrada de Lime Technology, Inc.
", + "description": "The footer copyright" + }, + "logo.alt": { + "message": "Logotipo de Unraid", + "description": "The alt text of footer logo" + } +} diff --git a/i18n/es/docusaurus-theme-classic/navbar.json b/i18n/es/docusaurus-theme-classic/navbar.json new file mode 100644 index 0000000000..7f32955380 --- /dev/null +++ b/i18n/es/docusaurus-theme-classic/navbar.json @@ -0,0 +1,26 @@ +{ + "title": { + "message": "Documentos de Unraid", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Logotipo de mi sitio", + "description": "The alt text of navbar logo" + }, + "item.label.More": { + "message": "Más", + "description": "Navbar item with label More" + }, + "item.label.Unraid Home": { + "message": "Unraid Inicio", + "description": "Navbar item with label Unraid Home" + }, + "item.label.Forums": { + "message": "Foros", + "description": "Navbar item with label Forums" + }, + "item.label.Docs Github": { + "message": "Documentos Github", + "description": "Navbar item with label Docs Github" + } +} diff --git a/i18n/fr/code.json b/i18n/fr/code.json new file mode 100644 index 0000000000..bb525e2255 --- /dev/null +++ b/i18n/fr/code.json @@ -0,0 +1,476 @@ +{ + "theme.NotFound.title": { + "message": "Page non trouvée", + "description": "The title of the 404 page" + }, + "theme.NotFound.p1": { + "message": "Nous n'avons pas pu trouver ce que vous cherchiez.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "Veuillez contacter le propriétaire du site qui vous a redirigé vers l'URL d'origine et lui faire savoir que son lien est rompu.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.ErrorPageContent.title": { + "message": "Cette page a planté.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Revenir en haut de la page", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "Archive", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "Archive", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "Navigation des articles de blog", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "Article plus récent", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "Article plus ancien", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "Navigation de la liste de blogs", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "Entrées plus récentes", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "Entrées plus anciennes", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.tags.tagsPageLink": { + "message": "Voir tous les tags", + "description": "The label of the link targeting the tag list page" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Pourquoi", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.DocCard.categoryDescription.plurals": { + "message": "1 élément|{count} éléments", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.colorToggle.ariaLabel": { + "message": "Basculer entre le mode sombre et clair (actuellement {mode})", + "description": "The ARIA label for the color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "mode sombre", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "mode clair", + "description": "The name for the light color mode" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Pages de documentation", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "Précédent", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "Suivant", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "Un document tagué|{count} documents tagués", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} avec \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "Version : {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "Ce document est inédit pour {siteTitle} version {versionLabel}.", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "Il s'agit de la documentation pour la version {versionLabel} de {siteTitle}, qui n'est plus activement maintenue.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "Pour la documentation à jour, consultez le {latestVersionLink} ({versionLabel}).", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "dernière version", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "Modifier cette page", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "Lien direct vers {heading}", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " le {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " par {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "Dernière mise à jour {atDate} {byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "Versions", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "Fermer", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.tags.tagsListLabel": { + "message": "Tags :", + "description": "The label alongside a tag list" + }, + "theme.admonition.caution": { + "message": "précaution", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.admonition.danger": { + "message": "danger", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "info", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.note": { + "message": "note", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "astuce", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.warning": { + "message": "avertissement", + "description": "The default label used for the Warning admonition (:::warning)" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "Navigation des articles récents du blog", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.CodeBlock.copied": { + "message": "Copié", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copier le code dans le presse-papiers", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copy": { + "message": "Copier", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "Basculer l'habillage de ligne", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.DocSidebarItem.expandCategoryAriaLabel": { + "message": "Développer la catégorie '{label}'", + "description": "The ARIA label to expand the sidebar category" + }, + "theme.DocSidebarItem.collapseCategoryAriaLabel": { + "message": "Réduire la catégorie '{label}'", + "description": "The ARIA label to collapse the sidebar category" + }, + "theme.NavBar.navAriaLabel": { + "message": "Principal", + "description": "The ARIA label for the main navigation" + }, + "theme.blog.post.readMore": { + "message": "Lire plus", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "Lire plus sur {title}", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Langues", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "À la une", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.blog.post.readingTime.plurals": { + "message": "Une minute de lecture|{readingTime} minutes de lecture", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.breadcrumbs.home": { + "message": "Page d'accueil", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Réduire la barre latérale", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "Réduire la barre latérale", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "Navigation dans la barre latérale", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "Fermer la barre de navigation", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← Retour au menu principal", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "Basculer la barre de navigation", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Développer la barre latérale", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "Développer la barre latérale", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.SearchBar.seeAll": { + "message": "Voir les {count} résultats" + }, + "theme.SearchPage.documentsFound.plurals": { + "message": "Un document trouvé|{count} documents trouvés", + "description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.SearchPage.existingResultsTitle": { + "message": "Résultats de recherche pour \"{query}\"", + "description": "The search page title for non-empty query" + }, + "theme.SearchPage.emptyResultsTitle": { + "message": "Rechercher dans la documentation", + "description": "The search page title for empty query" + }, + "theme.SearchPage.inputPlaceholder": { + "message": "Tapez votre recherche ici", + "description": "The placeholder for search page input" + }, + "theme.SearchPage.inputLabel": { + "message": "Chercher", + "description": "The ARIA label for search page input" + }, + "theme.SearchPage.algoliaLabel": { + "message": "Chercher avec Algolia", + "description": "The ARIA label for Algolia mention" + }, + "theme.SearchPage.noResultsText": { + "message": "Aucun résultat trouvé", + "description": "The paragraph for empty search result" + }, + "theme.SearchPage.fetchingNewResults": { + "message": "Réception des nouveaux résultats...", + "description": "The paragraph for fetching new search results" + }, + "theme.SearchBar.label": { + "message": "Chercher", + "description": "The ARIA label and placeholder for search button" + }, + "theme.SearchModal.searchBox.resetButtonTitle": { + "message": "Effacer la requête", + "description": "The label and ARIA label for search box reset button" + }, + "theme.SearchModal.searchBox.cancelButtonText": { + "message": "Annuler", + "description": "The label and ARIA label for search box cancel button" + }, + "theme.SearchModal.startScreen.recentSearchesTitle": { + "message": "Récent", + "description": "The title for recent searches" + }, + "theme.SearchModal.startScreen.noRecentSearchesText": { + "message": "Aucune recherche récente", + "description": "The text when no recent searches" + }, + "theme.SearchModal.startScreen.saveRecentSearchButtonTitle": { + "message": "Enregistrer cette recherche", + "description": "The label for save recent search button" + }, + "theme.SearchModal.startScreen.removeRecentSearchButtonTitle": { + "message": "Supprimer cette recherche de l'historique", + "description": "The label for remove recent search button" + }, + "theme.SearchModal.startScreen.favoriteSearchesTitle": { + "message": "Favoris", + "description": "The title for favorite searches" + }, + "theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle": { + "message": "Supprimer cette recherche des favoris", + "description": "The label for remove favorite search button" + }, + "theme.SearchModal.errorScreen.titleText": { + "message": "Impossible de récupérer les résultats", + "description": "The title for error screen of search modal" + }, + "theme.SearchModal.errorScreen.helpText": { + "message": "Il serait utile d'examiner votre connexion réseau.", + "description": "The help text for error screen of search modal" + }, + "theme.SearchModal.footer.selectText": { + "message": "pour sélectionner", + "description": "The explanatory text of the action for the enter key" + }, + "theme.SearchModal.footer.selectKeyAriaLabel": { + "message": "Touche Entrée", + "description": "The ARIA label for the Enter key button that makes the selection" + }, + "theme.SearchModal.footer.navigateText": { + "message": "pour naviguer", + "description": "The explanatory text of the action for the Arrow up and Arrow down key" + }, + "theme.SearchModal.footer.navigateUpKeyAriaLabel": { + "message": "Flèche vers le haut", + "description": "The ARIA label for the Arrow up key button that makes the navigation" + }, + "theme.SearchModal.footer.navigateDownKeyAriaLabel": { + "message": "Flèche vers le bas", + "description": "The ARIA label for the Arrow down key button that makes the navigation" + }, + "theme.SearchModal.footer.closeText": { + "message": "pour fermer", + "description": "The explanatory text of the action for Escape key" + }, + "theme.SearchModal.footer.closeKeyAriaLabel": { + "message": "Touche Échapper", + "description": "The ARIA label for the Escape key button that close the modal" + }, + "theme.SearchModal.footer.searchByText": { + "message": "Rechercher par", + "description": "The text explain that the search is making by Algolia" + }, + "theme.SearchModal.noResultsScreen.noResultsText": { + "message": "Aucun résultat pour", + "description": "The text explains that there are no results for the following search" + }, + "theme.SearchModal.noResultsScreen.suggestedQueryText": { + "message": "Essayer de rechercher", + "description": "The text for the suggested query when no results are found for the following search" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsText": { + "message": "Pensez-vous que cette requête doit renvoyer des résultats ?", + "description": "The text for the question where the user thinks there are missing results" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsLinkText": { + "message": "Faites-le nous savoir.", + "description": "The text for the link to report missing results" + }, + "theme.SearchModal.placeholder": { + "message": "Rechercher des documents", + "description": "The placeholder of the input of the DocSearch pop-up modal" + }, + "theme.IdealImageMessage.loading": { + "message": "Chargement...", + "description": "When the full-scale image is loading" + }, + "theme.IdealImageMessage.load": { + "message": "Cliquez pour charger{sizeMessage}", + "description": "To prompt users to load the full image. sizeMessage is a parenthesized size figure." + }, + "theme.IdealImageMessage.offline": { + "message": "Votre navigateur est hors ligne. Image non chargée", + "description": "When the user is viewing an offline document" + }, + "theme.IdealImageMessage.404error": { + "message": "404. Image introuvable", + "description": "When the image is not found" + }, + "theme.IdealImageMessage.error": { + "message": "Erreur. Cliquez pour recharger", + "description": "When the image fails to load for unknown error" + }, + "theme.blog.post.plurals": { + "message": "Un article|{count} articles", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} tagué avec \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.blog.author.pageTitle": { + "message": "{authorName} - {nPosts}", + "description": "The title of the page for a blog author" + }, + "theme.blog.authorsList.pageTitle": { + "message": "Auteurs", + "description": "The title of the authors page" + }, + "theme.blog.authorsList.viewAll": { + "message": "Voir tous les auteurs", + "description": "The label of the link targeting the blog authors page" + }, + "theme.blog.author.noPosts": { + "message": "Cet auteur n'a pas encore écrit d'articles.", + "description": "The text for authors with 0 blog post" + }, + "theme.contentVisibility.unlistedBanner.title": { + "message": "Page non répertoriée", + "description": "The unlisted content banner title" + }, + "theme.contentVisibility.unlistedBanner.message": { + "message": "Cette page n'est pas répertoriée. Les moteurs de recherche ne l'indexeront pas, et seuls les utilisateurs ayant un lien direct peuvent y accéder.", + "description": "The unlisted content banner message" + }, + "theme.contentVisibility.draftBanner.title": { + "message": "Page violon", + "description": "The draft content banner title" + }, + "theme.contentVisibility.draftBanner.message": { + "message": "Cette page est un brouillon. Elle ne sera visible qu'en développement et sera exclue de la version de production.", + "description": "The draft content banner message" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "Réessayer", + "description": "The label of the button to try again rendering when the React error boundary captures an error" + }, + "theme.common.skipToMainContent": { + "message": "Passer au contenu principal", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsPageTitle": { + "message": "Tags", + "description": "The title of the tag list page" + }, + "theme.colorToggle.ariaLabel.mode.system": { + "message": "mode système", + "description": "The name for the system color mode" + }, + "theme.navbar.mobileDropdown.collapseButton.expandAriaLabel": { + "message": "Développer la liste déroulante", + "description": "The ARIA label of the button to expand the mobile dropdown navbar item" + }, + "theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel": { + "message": "Réduire la liste déroulante", + "description": "The ARIA label of the button to collapse the mobile dropdown navbar item" + } +} diff --git a/i18n/fr/docusaurus-plugin-content-blog/options.json b/i18n/fr/docusaurus-plugin-content-blog/options.json new file mode 100644 index 0000000000..0eee9a2e7b --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-blog/options.json @@ -0,0 +1,14 @@ +{ + "title": { + "message": "Blog", + "description": "The title for the blog used in SEO" + }, + "description": { + "message": "Blog", + "description": "The description for the blog used in SEO" + }, + "sidebar.title": { + "message": "Articles récents", + "description": "The label for the left sidebar" + } +} diff --git a/i18n/fr/docusaurus-plugin-content-docs/current.json b/i18n/fr/docusaurus-plugin-content-docs/current.json new file mode 100644 index 0000000000..0cb830e548 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,130 @@ +{ + "version.label": { + "message": "Suivant", + "description": "The label for version current" + }, + "sidebar.unraidSidebar.category.Unraid OS": { + "message": "Unraid OS", + "description": "The label for category Unraid OS in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Getting started with Unraid": { + "message": "Commencer avec Unraid", + "description": "The label for category Getting started with Unraid in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Set up Unraid": { + "message": "Configurer Unraid", + "description": "The label for category Set up Unraid in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Explore the user interface": { + "message": "Explorer l'interface utilisateur", + "description": "The label for category Explore the user interface in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Using Unraid to": { + "message": "Utiliser Unraid pour", + "description": "The label for category Using Unraid to in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Manage storage": { + "message": "Gérer le stockage", + "description": "The label for category Manage storage in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Run Docker containers": { + "message": "Exécuter des conteneurs Docker", + "description": "The label for category Run Docker containers in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Create virtual machines": { + "message": "Créer des machines virtuelles", + "description": "The label for category Create virtual machines in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Customize your experience": { + "message": "Personnaliser votre expérience", + "description": "The label for category Customize your experience in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.System administration": { + "message": "Administration système", + "description": "The label for category System administration in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Monitor performance": { + "message": "Surveiller la performance", + "description": "The label for category Monitor performance in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Maintain and update": { + "message": "Maintenir et mettre à jour", + "description": "The label for category Maintain and update in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Secure your server": { + "message": "Sécuriser votre serveur", + "description": "The label for category Secure your server in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Advanced tools": { + "message": "Outils avancés", + "description": "The label for category Advanced tools in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Advanced configurations": { + "message": "Configurations avancées", + "description": "The label for category Advanced configurations in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Optimize storage": { + "message": "Optimiser le stockage", + "description": "The label for category Optimize storage in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Troubleshooting": { + "message": "Dépannage", + "description": "The label for category Troubleshooting in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Common issues": { + "message": "Problèmes courants", + "description": "The label for category Common issues in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Diagnostics": { + "message": "Diagnostics", + "description": "The label for category Diagnostics in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Release notes": { + "message": "Notes de version", + "description": "The label for category Release notes in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Release notes.link.generated-index.description": { + "message": "Notes de version d'Unraid", + "description": "The generated-index page description for category Release notes in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.7.2": { + "message": "7.2", + "description": "The label for category 7.2 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.7.1": { + "message": "7.1", + "description": "The label for category 7.1 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.7.0": { + "message": "7.0", + "description": "The label for category 7.0 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.12": { + "message": "6.12", + "description": "The label for category 6.12 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.11": { + "message": "6.11", + "description": "The label for category 6.11 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.10": { + "message": "6.10", + "description": "The label for category 6.10 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.9": { + "message": "6.9", + "description": "The label for category 6.9 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Unraid Connect": { + "message": "Unraid Connect", + "description": "The label for category Unraid Connect in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Unraid API": { + "message": "Unraid API", + "description": "The label for category Unraid API in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Contribute": { + "message": "Contribuer", + "description": "The label for category Contribute in sidebar unraidSidebar" + } +} diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/API/_category_.json new file mode 100644 index 0000000000..1e4ded6ca3 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Unraid API", + "position": 4 +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx new file mode 100644 index 0000000000..7f10ba3f1e --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx @@ -0,0 +1,100 @@ +# Flux d'autorisation de clé API + +Ce document décrit le processus de création de clé API en libre-service pour les applications tierces. + +## Aperçu + +Les applications peuvent demander un accès API à un serveur Unraid en redirigeant les utilisateurs vers une page d'autorisation spéciale où les utilisateurs peuvent examiner les autorisations demandées et créer une clé API en un clic. + +## Flux + +1. **L'application initie la demande** : L'application redirige l'utilisateur vers : + + ``` + https://[unraid-server]/ApiKeyAuthorize?name=MyApp&scopes=docker:read,vm:*&redirect_uri=https://myapp.com/callback&state=abc123 + ``` + +2. **Authentification de l'utilisateur** : Si non déjà connecté, l'utilisateur est d'abord redirigé pour se connecter (auth standard Unraid) + +3. **Écran de consentement** : L'utilisateur voit : + - Nom et description de l'application + - Autorisations demandées (avec cases à cocher pour approuver/refuser des portées spécifiques) + - Champ de nom de la clé API (pré-rempli) + - Boutons Autoriser & Annuler + +4. **Création de clé API** : Après autorisation : + - La clé API est créée avec les portées approuvées + - La clé est affichée à l'utilisateur + - Si `redirect_uri` est fourni, l'utilisateur est redirigé avec la clé + +5. **Rappel** : L'application reçoit la clé API : + ``` + https://myapp.com/callback?api_key=xxx&state=abc123 + ``` + +## Paramètres de requête + +- `name` (obligatoire) : Nom de l'application requérante +- `description` (facultatif) : Description de l'application +- `scopes` (obligatoire) : Liste des portées demandées, séparée par des virgules +- `redirect_uri` (facultatif) : URL de redirection après autorisation +- `state` (facultatif) : Valeur opaque pour maintenir l'état + +## Format de portée + +Les portées suivent le modèle : `ressource:action` + +### Exemples : + +- `docker:read` - Accès en lecture à Docker +- `vm:*` - Accès complet aux machines virtuelles +- `system:update` - Accès de mise à jour au système +- `role:viewer` - Accès en tant que visualiseur +- `role:admin` - Accès en tant qu'administrateur + +### Ressources disponibles : + +- `docker`, `vm`, `system`, `share`, `user`, `network`, `disk`, etc. + +### Actions disponibles : + +- `create`, `read`, `update`, `delete` ou `*` pour toutes + +## Considérations de sécurité + +1. **HTTPS requis** : Les URIs de redirection doivent utiliser HTTPS (sauf localhost pour le développement) +2. **Consentement de l'utilisateur** : Les utilisateurs approuvent explicitement chaque autorisation +3. **Basé sur la session** : Utilise la session d'authentification Unraid existante +4. **Affichage unique** : Les clés API sont affichées une fois et doivent être sauvegardées en toute sécurité + +## Intégration Exemple + +```javascript +// JavaScript example +const unraidServer = 'tower.local'; +const appName = 'My Docker Manager'; +const scopes = 'docker:*,system:read'; +const redirectUri = 'https://myapp.com/unraid/callback'; +const state = generateRandomState(); + +// Store state for verification +sessionStorage.setItem('oauth_state', state); + +// Redirect user to authorization page +window.location.href = + `https://${unraidServer}/ApiKeyAuthorize?` + + `name=${encodeURIComponent(appName)}&` + + `scopes=${encodeURIComponent(scopes)}&` + + `redirect_uri=${encodeURIComponent(redirectUri)}&` + + `state=${encodeURIComponent(state)}`; + +// Handle callback +const urlParams = new URLSearchParams(window.location.search); +const apiKey = urlParams.get('api_key'); +const returnedState = urlParams.get('state'); + +if (returnedState === sessionStorage.getItem('oauth_state')) { + // Save API key securely + saveApiKey(apiKey); +} +``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/cli.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/API/cli.mdx new file mode 100644 index 0000000000..b81f2794c0 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/cli.mdx @@ -0,0 +1,210 @@ +--- +title: Référence CLI +description: Référence complète pour toutes les commandes CLI de l'API Unraid +sidebar_position: 4 +--- + +# Commandes CLI + +:::info[Command Structure] +Toutes les commandes suivent le modèle : `unraid-api [options]` +::: + +## 🚀 Gestion des services + +### Démarrer + +```bash +unraid-api start [--log-level ] +``` + +Démarre le service API Unraid. + +Options : + +- `--log-level` : Définir le niveau de journalisation (trace|debug|info|warn|error|fatal) + +Alternative : vous pouvez également définir le niveau du journal à l'aide de la variable d'environnement `LOG_LEVEL` : + +```bash +LOG_LEVEL=trace unraid-api start +``` + +### Arrêter + +```bash +unraid-api stop [--delete] +``` + +Arrête le service API Unraid. + +- `--delete`: Optionnel. `--Supprimer le répertoire de base PM2` + +### Redémarrer + +```bash +unraid-api restart [--log-level ] +``` + +Redémarre le service API Unraid. + +Options : + +- `--log-level` : Définir le niveau de journalisation (trace|debug|info|warn|error|fatal) + +Alternative : vous pouvez également définir le niveau du journal à l'aide de la variable d'environnement `LOG_LEVEL` : + +```bash +LOG_LEVEL=trace unraid-api restart +``` + +### Journaux + +```bash +unraid-api logs [-l ] +``` + +Afficher les journaux de l'API. + +- `-l, --lines`: Optionnel. `-Nombre de lignes à afficher (défaut : 100)` + +## ⚙️ Commandes de configuration + +### Configuration + +```bash +unraid-api config +``` + +Affiche les valeurs de configuration actuelles. + +### Changer d'environnement + +```bash +unraid-api switch-env [-e ] +``` + +Bascule entre les environnements de production et de staging. + +- `-e, --environment`: Optionnel. Environnement cible (production|staging) + +### Mode développeur + +:::tip[Web Gestion Web GUI] +Vous pouvez également gérer les options de développeur via l'interface Web à **Paramètres** → **Accès à la gestion** → **Options du développeur** +::: + +```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 --enable-modal # Enable modal testing tool +unraid-api developer --disable-modal # Disable modal testing tool +``` + +Configurer les fonctionnalités développeur pour l'API : + +- **Bac à sable GraphQL** : Activer/désactiver le bac à sable Apollo GraphQL sur `/graphql` +- **Outil de test modal** : Activer/désactiver le test modal de l'UI dans le menu Unraid + +## Gestion des clés API + +:::tip[Web Gestion Web GUI] +Vous pouvez également gérer les clés API via l'interface Web à **Paramètres** → **Accès à la gestion** → **Clés API** +::: + +### Commandes des clés API + +```bash +unraid-api apikey [options] +``` + +Créer et gérer les clés API via CLI. + +Options : + +- `--name ` : Nom de la clé +- `--create` : Créer une nouvelle clé +- `-r, --roles ` : Liste des rôles séparés par des virgules +- `-p, --permissions ` : Liste des permissions séparées par des virgules +- `-d, --description ` : Description de la clé + +## Gestion du SSO (Single Sign-On) + +:::info[OIDC Configuration] +Pour la configuration du fournisseur OIDC/SSO, voir l'interface Web à **Paramètres** → **Accès à la gestion** → **API** → **OIDC** ou se référer au guide [Installation du fournisseur OIDC](./oidc-provider-setup.mdx). +::: + +### Commande de base SSO + +```bash +unraid-api sso +``` + +#### Ajouter un utilisateur SSO + +```bash +unraid-api sso add-user +# or +unraid-api sso add +# or +unraid-api sso a +``` + +Ajouter un nouvel utilisateur pour l'authentification SSO. + +#### Supprimer un utilisateur SSO + +```bash +unraid-api sso remove-user +# or +unraid-api sso remove +# or +unraid-api sso r +``` + +Supprimez un utilisateur (ou tous les utilisateurs) du SSO. + +#### Lister les utilisateurs SSO + +```bash +unraid-api sso list-users +# or +unraid-api sso list +# or +unraid-api sso l +``` + +Lister tous les utilisateurs SSO configurés. + +#### Valider le jeton SSO + +```bash +unraid-api sso validate-token +# or +unraid-api sso validate +# or +unraid-api sso v +``` + +Validez un jeton SSO et renvoyez son statut. + +## Génération de rapport + +### Générer un rapport + +```bash +unraid-api report [-r] [-j] +``` + +Générer un rapport système. + +- `-r, --raw` : Afficher la sortie de commande brute +- `-j, --json` : Afficher la sortie au format JSON + +## Notes + +1. La plupart des commandes nécessitent des autorisations appropriées pour modifier l'état du système +2. Certaines commandes nécessitent que l'API soit en cours d'exécution ou arrêtée +3. Les clés API doivent être stockées en toute sécurité car elles permettent l'accès au système +4. Les modifications de configuration SSO peuvent nécessiter un redémarrage du service diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx new file mode 100644 index 0000000000..2cb55a1be0 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx @@ -0,0 +1,241 @@ +--- +title: Utilisation de l'API Unraid +description: Apprenez à interagir avec votre serveur Unraid à travers l'API GraphQL +sidebar_position: 2 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ManageApiKeysGui from './partials/manage-api-keys-gui.mdx'; +import ManageApiKeysCli from './partials/manage-api-keys-cli.mdx'; + +# Utilisation de l'API Unraid + +:::tip[Quick Commencer] +L'API Unraid fournit une interface GraphQL puissante pour gérer votre serveur. Ce guide couvre l'authentification, les requêtes courantes et les meilleures pratiques. +::: + +L'API Unraid fournit une interface GraphQL qui vous permet d'interagir avec votre serveur Unraid. Ce guide vous aidera à débuter l'exploration et l'utilisation de l'API. + +## 🎮 Activation du bac à sable GraphQL + +### Méthode par l'interface Web (Recommandé) + +:::info[Preferred Méthode] +Utiliser l'interface WebGUI est le moyen le plus simple pour activer le bac à sable GraphQL. +::: + +1. Accédez à **Paramètres** → **Accès à la gestion** → **Options pour développeur** +2. Activez le bouton bascule **Bac à sable GraphQL** +3. Accédez au terrain de jeu GraphQL en naviguant vers : + + ```txt + http://YOUR_SERVER_IP/graphql + ``` + +### Méthode CLI + +Alternativement, vous pouvez activer le mode développeur en utilisant le CLI : + +```bash +unraid-api developer --sandbox true +``` + +Ou utilisez le mode interactif : + +```bash +unraid-api developer +``` + +## 🔑 Authentification + +:::warning[Required pour la plupart des opérations] +La plupart des requêtes et mutations nécessitent une authentification. N'oubliez pas d'inclure les identifiants appropriés dans vos requêtes. +::: + +Vous pouvez vous authentifier en utilisant : + +1. **Clés API** - Pour un accès programmatique +2. **Cookies** - Automatique lors de la connexion à l'interface WebGUI +3. **SSO/OIDC** - Lorsqu'il est configuré avec des fournisseurs externes + +### Gestion des Clés API + + + + + + + + + + + +### Utilisation des Clés API + +La clé API générée doit être incluse dans vos requêtes GraphQL en tant qu'en-tête : + +```json +{ + "x-api-key": "YOUR_API_KEY" +} +``` + +## 📊 Schémas Disponibles + +L'API offre un accès à divers aspects de votre serveur Unraid : + +### Informations système + +- Interrogez les détails système y compris le CPU, la mémoire, et les informations sur le système d'exploitation +- Surveillez le statut et la santé du système +- Accédez aux informations de la carte mère et du matériel + +### Gestion des Arrays + +- Interrogez le statut et la configuration de l'array +- Gérez les opérations d'array (démarrer/arrêter) +- Surveillez le statut et la santé des disques +- Effectuez des vérifications de parité + +### Gestion des Docker + +- Listez et gérez les conteneurs Docker +- Surveillez le statut des conteneurs +- Gérez les réseaux Docker + +### Accès Distant + +- Configurez et gérez les paramètres d'accès à distance +- Gérez la configuration SSO +- Gérez les origines autorisées + +### 💻 Exemples de Requêtes + +#### Vérifiez le Statut du Système + +```graphql +query { + info { + os { + platform + distro + release + uptime + } + cpu { + manufacturer + brand + cores + threads + } + } +} +``` + +#### Surveillez le Statut de l'Array + +```graphql +query { + array { + state + capacity { + disks { + free + used + total + } + } + disks { + name + size + status + temp + } + } +} +``` + +#### Liste des Conteneurs Docker + +```graphql +query { + dockerContainers { + id + names + state + status + autoStart + } +} +``` + +## 🏗️ Types de Schéma + +L'API comprend plusieurs types de base : + +### Types de Base + +- `Node`: Interface pour les objets avec des identifiants uniques - veuillez consulter [Identification des Objets](https://graphql.org/learn/global-object-identification/) +- `JSON`: Pour les données JSON complexes +- `DateTime`: Pour les valeurs de timestamp +- `Long`: Pour les entiers 64 bits + +### Types de Ressource + +- `Array`: Gestion des arrays et des disques +- `Docker`: Gestion des conteneurs et des réseaux +- `Info`: Informations système +- `Config`: Configuration du serveur +- `Connect`: Paramètres d'accès à distance + +### Accès Basé sur les Rôles + +Rôles disponibles : + +- `admin`: Accès complet +- `connect`: Fonctionnalités d'accès à distance +- `guest`: Accès en lecture limité + +## ✨ Bonnes Pratiques + +:::tip[Pro Conseils] +1. Utilisez le bac à sable Apollo pour explorer le schéma et tester les requêtes +2. Commencez avec de petites requêtes et ajoutez progressivement des champs selon les besoins +3. Surveillez la complexité de vos requêtes pour maintenir la performance +4. Utilisez les rôles et permissions appropriés pour vos clés API +5. Gardez vos clés API sécurisées et tournez-les périodiquement +::: + +## ⏱️ Limitation des Taux + +:::caution[Rate Limites] +L'API applique une limitation du taux pour prévenir les abus. Assurez-vous que vos applications gèrent correctement les réponses liées à la limitation du taux. +::: + +## 🚨 Gestion des Erreurs + +L'API renvoie des erreurs GraphQL standard dans le format suivant : + +```json +{ + "errors": [ + { + "message": "Error description", + "locations": [...], + "path": [...] + } + ] +} +``` + +## 📚 Ressources Supplémentaires + +:::info[Learn Plus] +- Utilisez l'explorateur de schéma d'Apollo Sandbox pour parcourir tous les types et champs disponibles +- Consultez l'onglet documentation dans Apollo Sandbox pour des descriptions de champs détaillées +- Surveillez la santé de l'API en utilisant `unraid-api status` +- Générez des rapports en utilisant `unraid-api report` pour le dépannage + +Pour plus d'informations sur des commandes spécifiques et les options de configuration, consultez la [documentation CLI](cli.mdx) ou exécutez `unraid-api --help`. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/images/advanced-rules.png b/i18n/fr/docusaurus-plugin-content-docs/current/API/images/advanced-rules.png new file mode 100644 index 0000000000000000000000000000000000000000..dd60e6dc0d62443c8e07980846f7762929219f87 GIT binary patch literal 103268 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

=TL8t|d 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 I(gxoD3n!4utN;K2 literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/images/button-customization.png b/i18n/fr/docusaurus-plugin-content-docs/current/API/images/button-customization.png new file mode 100644 index 0000000000000000000000000000000000000000..516cd0c3cd9d703315129c918a2dea2e13392439 GIT binary patch literal 97812 zcmeEtXH-*N7bYM`li~}AQUn_aNKq+LLs6=90#X7NdY9e;f)o+yO+g3<1PHx%5D@7# z)Iey`Aql;Q%zeLEv(~8J?^&~E&5vZI+a4iib8Y&hlA|fIh73HTo zL`0++L_{Rs6qkWtzSJteA|j%yuu)LZQc+Og)N*mMw6V7!B2o@dOeWWhpZez=j*u&6 z#7Uwf?=(V2qD+|?BEW7Rd{_4Vt;<0lCk;)ApIwcGKbS{+2(lwK=l^j3+O^hMW^-+= ziH@NA8I2rINImDgacN@WM=)F;$P+u`i(TrYBMKR~8XosboJc2leetEBn2))hFuNG3 zkSyhV;AO2}&d8^I8JwVZU4<77e)Z%TJkV)3-tm?eLdosHU%79I-v!Y}E$6(|rI!i$ z^srd@D=pE+lh+f5i2^B$k`#O&V@a>x{JMC2BmMK@q>W;)`dRSh3i@#}BFz=&A3H=b z{PdF2?^&aN+|n$vxV1zXOyTr&QvBY%#4u;Rw$KmJ6bt#spC)mOKM4Gmg~D8641&vF znx0e7LSnd7R|-!+(Z2%JRLjjhXfBz@F#MQp{Q$pZb*Q9+C`kw@BMz*1Ft2{5=^FGy z(mtuqrf|(rLyh*;;G^hYSiZ=3wt2DMwM<-b<9sZK|%b*q2MEtVw#LM;2s zqxk99hi?=#rG?&6mHoMFR*SyYMK3MqBDp- z27k+})Pmo?{4s>;>9edwt=FSIdIE^+;7Ej0RfdFCjdoL>Se~HugOrc(EcM|iYbUqs zDG{dOrqKgR$(eLntizbK={1>sp;Ok-Ano?gFWH3bpWo%WSwR*5p64gqkFP&Xe$I4U zc`5U%>;=m>kzLrqPsLXZWp-sJlhDb__I%ak)6wj$3(mYx7``$H(08`x{Bm*5sm-dT zt~IVDp0SdmED5h^^Igo^kw3Tedw4-{A$4)>;-3FkPNktcPv}V~rP^5Ji5G}6L!9G< zWUq7gFwlI^_@VXs_FIOs;1`;W&;8`jWpBq;svKr_+$FZTlOOE%)h%&U=~P~ylQrIO zDaV}BoBV{nF7Z6(JWxJ!P1l5HIKi!lR+WGGpXD3N6<5GNpNI0d$4_zU3Lx*hs;v|~ zkki*p;%P7u)vbPUn7ySwCFVjZ4i!&gQ*vxFshhb`cjj_uSI=ARMD~R7#P8(J?!*!~ zlQY#R)lDj?5c?385H%{i9wRuc=bKBuaUOYIa{i@{FP>d`R{i?h>-5Ek9ReM%?vdq$ zs4l1$B=#f@@EnY22}4;@lb-Wsq-CJ9BKvh=onJd)H4diuM&muj#8tiq-n~TEMAifx zZ*=|;SV}KW&m&(rUkd!JfTch{ACgmVc2K^Ndh&6Pebse!bpZ5`5X(|%S$M6mTE9rK zNY~*hL;p!tKcIqtG9#iXlE(^YWx|)1x6a`W*BCB%k42i!UwXsk!ow0{a5@V z{7(Gg`ic6<MGfHNI-ZYNQU77Q>5M9FrW=uy>?`ZYl`MIhB}( z&E_=+`UhX=o#hUK&fw;{aGOw@G#l8B{=Px`3d8s*V^_$Y^&Vt}eP!-} z{ew7u+80vQdZqhiGxk%jPiA{2KiYvE-8)lWV{DpQ>!(i9^6??(A!p1orJ1PXY5OXh ziW6HqE57QY8uoHzRYX}qX~UqFIqAdQ8wQw%hmMD=TZ5>8x25jNo=+CGle6;Q#QnP3 z+4}5q#Bl`egALCSkHsfo@dF8D+MBNdE?DpH!V3nrXAUGxVqo(hu4ps)6Ea~7lJldJV5bnwf%3dF0q#&6JY`6rwe1o*; z%BlN9kGDgMyB&f-{O>D*B<1sN@ySO8`%$@5^HV_CEU$A>+EFLdn6a3$%CIcl)V@B< zYICzrU{^80Hh~i%&ce)o6Ds6m9^M%zt#&yH^`PI-$LULJ`B-l;zX2q@@qC7Ais>s8 z_Zy*yS05_9=6VwN)pkJnfn@br zCI>GDi;*N{Jl_@=mMnYpR+vX zAW=9|;qqdOPv-OG9DX%B4TGmFIU3=aOXMnMp{|PFKUcvE1scUkX8b1Tx}RSC)gpqA zr5^{FMws?Orjv3Kt9S~W*j*uGKGx8!(`p(C)^f2c_WLL=FNU|eBk(yu9~9euI8Dfk#H{o&F{(Ql&4iNssFG(x&}AyKY>3;+(`6Jd;_BN_t9DgkG&`| zgP6Q8>dy0i%Xu!_Irs@?M~ArCCwY7jv#o_&m~Y2ac~n&?jYct!wz|jFXJ)BIdvLgd z#!Z}z%*JHxx+H0%)S_BW@2w>Ja{FmkrkQ^&1m$=l7KIPo9Pf8sx~i^H4KNH^!C;Ls-mkL3qo*sc&pR%vnH-`8pPAMpn`@gk z%W=yE22v#^8!tUfYB$^twnW10tco8Oi=j)Kh9_;1-lt-za~hsg9wM`q4O24?bLf$Z zyw!95WMgKhhPh^!FzD(}^t%S>qc*H`ZOgtt?$Yf0*0656Iq4oR;R~-{41Mu4xh|R! zuzcx)3-sDisOj{qD-;V&8&pUKVOI}ZF79BW!vnXN6PP;$Ma;%&jcC%@ciA@ltCq&T z+YN8-h=~XE5Da(5w=wxGCWH;PD7Kqk-2P%GGKBX%VG10~{`RbtEZ&Da%gAGEtX1M* zSc_1z+oxxrn%K-l0#omw*zQ*?r{Ze3<9XuaZ%2K8jHb$nA@1xT-oBtGO1MvyhbE#= z?%SV0lJxsAJZCu8ltRAOjNm5{DIyAXB>he|obzE^DYTG}NY_C-kMCVkQO=uc=5*|I z?$b*rj@C^d-Dro9S2?ydzpSsf^q#?3l(R0>3Dm26)R$h4_gVue_KC#{6-#w>B3|G# z1rc$W4G}5ui5PgX051USW{~`^Uq~}DF8#01B;No2shFviL_{P@r1Dfw&x?2qP1!h# zBy{d*o;4@m%PH4I@!K#w`xXb~$)uRVn{SS|1x2dX4W~KFTF_Zv1 zT9Aa>tPITfu8u=YJAa9~wrrlrw75#&-1GMvI9WmcO2On-yRGZ+nKk=`!W{6Y2k>5A z!*cUbSOf#-J0cQ_-`~jPU!v>XllTk-__V)04TZ@xebK;P!7UI!37q%Dpe*XI3X{^y z5)uFQ#@Rr5e^2YM4AhouK55ZQq$*_5ld!`x|B;E${@2gQYS+~PbFa5oe!J&CP0YWe zxIeA+GqX@3QL{&;T(vh9ERmAr&r9||FE7Sns=Q;o&`^OQ@!Hcvxj(uj3VePmM$E~S zPb=eHA}_dScXbfPbDChyUG7eFj}#qK=%M>hlec}?Uk^xOP8Mh{Nh-)Uk5u}5K%CqZ z^s>vr4SgcF|I6HHy(8KnT6DGjzv8~7{wU_USM8ULOJ8Od8CHyY;AYd<1!L{x|C%Yb z2QiYKj(m{%1aQ7iH?Sy4>-WkbL^<2*ogBF*^ERDP?A3M?0==nXCClCMoi58giR(@j z>`(t}h?w*n<*tRw=ogzz zSs#6}_`|$_ud+!@FX~(p`AurOE-ubs+Aqfn40=Z=;xH@kMoJ~YGFN3RHU`<#6#ncz z(2XK*UU4ey5xvE&FHIH=M5<$&EFMbBx|W2sVbEVoq8$CMoX&#N@YThpJ+tikPn!X5 zmOqW1f-?q9R<3$Ej{nkq^(PvCbxBNG-XN>rEn99u)Pcm7pTU?X{x+z8x_ECWS6|6E zruZ)=Lt%cCm?W>yRd9{+zjV$|Mv+mz?6CapuN_4c*mp;kDA5~BCjFP?1Eb0zBG#*J zEHYvIFO7PWQe-?DY|7yNFH>L5$oZ}(sU|VvFC!r)eH0Bex>CoyPx|}j{&yX^l1NCk zrgp1cwEs(^D_4O=rH+EqfA=K+xpGS99TBhb?D!ACjcCwCDX`Ss%?j5hU8c${JP6RE zsr_~2CDWY>+FLDQ%zI}AM4u^d%pYuJ97rqD8y#bZ~6d+PJUH;=Me z&(2r^&UchpADMrE9xsHcG^JZl>|h&ksLhfl%L>bW)s4C**Z-W_DHY&R2GI87gSVVmRIiTJ*27zu0(!QXeU zsHV^#f7&g@)cNO%aT-%D_3InN6Eh}`;6^@_Ow0y;`!Bk#(S zH$QK>Y-h;9g|-SS2CEIspdxPN1*n=DQ3uqduBMDlvZ+u0a(}8jh^5YTwfb^#xm`fz z?Pnh+ZF1A9K^h(6f0|}jIfUs00hhbXf%=n>kpIYkvG2?>C%T~9I210sX}=b0(1Gz)Zt zXAKRjXz(~;yPeLTKqqtjJ>6%6ha<>ZIW3gd5nV4*30X?5F{#oRe%-OveN+0-2wdl4 zVMcjyG#4?DhH%|Q5l}_0$yJ5Wr13 zOjkRo?XVEe_cTEUy1x`73up6lPi+guT~~smSWSMN;aZ%cr4K*bP?%pbuo3n@_nL0> zu0SJmBF6Ge(Uk#&0BBXkioXuW9J}N=$7W{O&D|C|!{g{vw#vu>{jukfETWYN?yoPI zAzqo#!zn9&ch!l9O9vD9hs**d*V%d&(UN2V8=W(Cu6XHjdS%Fj-Fxz|s8-fLeOP%s zup@b~a1zcC7A88-jBV|Zta@Oie7riV7}hJVnF~bybONXVACC><;s1 z#`{{|TatJoD8Y$x3HOcTqsNwgr3I*}3LNCg*a+B!hmA$pIRh48yE>5OpW2@)da`%u zcW8Ll6C$50=4j8tn0NAlap8$$S^b*8cLV1va^0Z#=hVpIw46Fw+kEYs2~t9u9U}r=Vd# zrCDY&m>kJb!})qe@M3B(M0ev? zz5C`lZVaJ+fR8Ej->BzQ+w|O;T$tE|9U7Q9w1?4D=$g=btXm|1X)CjvDZe4mr@Aho zUu3i#U4;&DunnJ)?7s!yn_HZzgq>Et?x6DBZY5Wkz|#E${proj83GF>2W&y;cYFdZ zGrV;~)@iA=zAJrSJbHL?f$aiv04Du;EqRK9ZCL6XmG~EYYeNr5Z(>nngOmrWarZ8u z&fmjK=wqit#Hg$oJ@OAQ(-S^YJHe4RMS95ZwpMqjB?y5W0AE zPesW@Q#RMv-b96)B(BVX++1JVbWKMHHZ7^6>gKmbeGdG-!(aK874PIQn^n%O^jG+o zG`>!$P{FiC2$V;lqeF=geJ)P4V6-yFFIjhgvR-(qCl!CU+e_jX?J-=N;UAEmFnFMT zvchV&*7mgvF3Z!1_MdiuXSxd3s`86~b$Q%$JEm?B^lQ_Qjdc*`Rx&tM4Fe<*T)0UA zDxS?#Csx9Zc5gc($!I~0-OvR6sF;)h#470*Z>I?BkHU{cBubk)V zWEAZXraF8&wa%4eHb!t6+gdc?;s|v1lT4PXR`}J~GXZ7QeEj*|pnhA3mE3W*gQm+u z+{)O;#-EQ(v=}PiKtd9Yq?uiK{B(535{+(aa=nynmgps4&z9c~9ex=1@;DZ`D%Z7i83TfL|0W z4<-+`Y`{1_Q1O4*u>??Yv%Jcy^iXVw7&x_QsG){K^b3lc?Q*BeU=yEdV{MCA!v*{6 z8*K3gfBBU6L`+)wjS*H2-XDN)y2PDAJ13I&nKCK=pZokpekZ%l-)v5HmwhqK-Tf!o zRB!+-VymP?TC69(tixu(bC8);j1PaoneNn;&!@@(- zuS)6)Hg0ULbZ<;%DwL{>8h{g?nP!QaG~0h+_gTwS37~>;-I%zGONron^yGY}lS93I z*Zgd}D^}EfLoanB-R(0fDfUR93i`_T&(S~nk4MD)1j3kw@yxjbmCGn&QXb&xH7~#f z>-&?79T5sGn~^IDI!F_p1@&I=+pJ78TLkBbP^A;vxq3Ty7J5Fc|QUb{`BVal_Co&tF~0B{ZTQnm5AMV-(W$uc(I;C zcBZ#&>_nc$*v!+l0Q^C6!0R-B1LG}3i{1_QZ^p@6@LNHAXsCCc83+UdAMXUX5GSAx zu;Br@^(tK=at$kIAMJ;W@A##DYW7@MU6lS4XBeuyyXEy3JI?1Ax7Cx#dvfblO3fPe zQMO2b9b@0yZ1H40vh48hdkqs=5HDf#t{A9%6mnzY$Z7)<>RsffsnM`MqQ(znRfI3c z&%{*tqRmH(jB7;usogr$JW-KiGcPgIHAk+Xd>!R@4}*N24pgNLLvANeN%LID^ZF`8_HOK6Z6n-vy3v47;{t2n(|Se3iTN*z;r)zp^?1tp*&{JxIIwwQ~Ce z)(z^oxT2LJ=2=Xa$Rcb_&%(ltVJUgLIvgVnz6V+LH-EA{W`Gx}WJM#78xev{^FU`;mju5Fgel_Q;(B=`JJfY*Won&;pTYJ zX0nYy-o9{%X~{m$iLOCBMXyQNX7Opjlm2@L8NR2c+{}Jtm_teIcH;Am)YClK4FK!y z;_0f_$D0~3&SSd3FqVZGHRa;C_QvB$-e1G8h%h?FJoXvIlyHF6y4UV8pN|$pBqv39 zN;t$_s{k}JM<691^V6Zq5GFo$7%ehb-Pvd9 z5p!4nK+9dcBy}^}CDLaF6)A;AdrRi#XG`&e_=UkIS#K57xi-o~D%Ec#%BLr!teAbA zQ6&E4AC&3SdSQo-Y5Mjo0$Twsm60x~KWMo)Ensr(qzhOyU3w@&7`=8h3ZhYu81n!` z06zV~ZH8ziQ-xB^Lc380vZ|KQ9riA`OrdEL%HSPYe45gxX5r?C8PPj9$Wq<$A5ntS zifXHb?QYW-S|%-(bHB@bavhT9=EvEXgS$1>nyzY29lEMe?Jk!#O785+aI@U*-h+4@ zWa$sDh1Z344@_#ERl{bTHr;4=r0WFNlz|vEPF`}u8yDod{qYaBFRM@g@}J#8=j63J zf9^7X`i1<f-Y6H4KD*YAye6i$3thf-e12o?wJQNjjlBhSq%K{Xeo6BdiKFeykw%(?M=KfgQ_Pn(Ai?_cMZQjsJh9#=&Ew%V1v=@`dQY6ctnWU+o~9?u-V_0p z4Y-}p=%&_Fji~>9e1@i+gLjHCB?XhEuii89=|51=ta;fgA8^hK<~^IJym;)gq}*bc ztC4ojjBWJZJEd2ZOF-O?5?{H_XH=OdeK4xq{Ai=Jopx`!#IWM0&k+_=kfNF_;2`O- zwQYuCGO@Wn0~m~r61#f>NBRDY>);f?h8_Nm)Eq0WfKz#qDIan!iclO*#;+rD&m8!` zh^6R~Ob39i??6YAjU2Mx-1MAzdpPThn<{Mr;$bgy4bzrs>oS7h`Z z@g@7+rEXt*-lMG79UrT$25+9NWksLA1p#DuuI5g()QB5CR=smL*$zFy5pX^{Hyw9R z4aIEcw{Vt)7dc-C7;6~-z+UVub|{2tfj<_%JwM)QZrhrFPj{G}Nz*n9c)B4#9k9hU zpB00mpYs_MZ`BNWhh4d`7yvxWgnD4Q)DpP#rCduSHjKC8Uq}|6^~w?;@rO_!x~`G4ZudXp+h2#hbTKZrxMev@U1(p2gdEQqvX&iJ)2zk-21^+z)Y6IV%eel z!_7FOlFd;ceBYPHon|;Wa`tSnc50t{q>J8nqip4?gfIHncLCsi_R6zBzvxlON5u7! z(~R{L#ZT84AbMA`eSLPjxu=0>eC`YNIG93OX~`AIL@!Ll#yL3CHeK$N1i%_J@zu7s z9*kS#t2H8q*Q~jbNxDO+p#E5$Z zdcV$Uw0m@=z;R*j{+D5o-xTaFLz39dprgKXkjNqE0JQe+h!y9%dZG)Gbl~DuTi-#IjuSTk25)TM@wHR z5JDhkv+qTnW~Detc^=qImFM7U5dEWsE;y&M*|x}%cA~fv+uL9|@qG(Z_045zzhh_J zC$1=)+!GnTQOcFAkpr9b+hp=q>E3W$2{tg44q+qd%~Shiv#`QXEB7McU-bg|4XQ<- zJ+J5yj?H@cYn;b;#W716bsl{jRmQbF*t6sRl-&!nxC}4>l)`aPI@$*a6w#$U`Ez zO}omgy7i*Wl>7PTc~HE|Sd+GFPD}K>lg8fT^%<%UDWVP=m-Iu5sKQ5=u3sGGwUC9B zve@Pg!Y@`BB{piyQZBd)T=OKJPvrfw;}F58Z5}TuTzfy59mIcN3{w+H)0Bfe=uN=J z9@0gzZa&U(u>LJD$XYT@))d~WICKLYs+nOA$i#ANGd(1#gZRmw zP{j$8C(IT=PnMJYHFE4qnnVHH7feTR*$!m{&M6YCWxo83WIdY$$9~&h>ESD>1ftgo zo>AaF8|N zme2dlb%PX+GG%()DkZ&<%L_N>(2L^vzA=>fp6=X@77XJV)#c21shT-iR5QDA3B<11 z8YIuhE;cMvX@lfq6wO=YjrE6l&U$C6^7S)i+aaO)G1+Gb8NPiz$$K)m>542kMy%zfOTx+MONciLUowp zWccc>7StECN}mUQIxV?2IPS#wiz7s-o}6mlsM30&W@Htv6n%4cAwgGT2kdv6YCBzB z)S_7*1z0H;W3!@UWt4Bf$i#7r95lV&1G9m?L(mU`x(hlr?kJk2!7WbNdUOL_8sWZ~ zgPCm#=&TH0!4!)|U&gO|<5pZR2Kj!&aWOXl6!>k1396#EmLZtF?m+dL@zKH76p~I& z=Rmn|K}I5(w}g=-Pv@RBOL=b3b?|Fa_4cM9I4^Ao{YHgRX-O!e!xk~1H5L=vmp`Ja z&XCAAss#?0Clyf_Du(+%yR7B^>{CF{t#BiDlM*gdeWILFB@8g-yCtVeP%sh0l$)Ti zo2J=(vY;8ZK$emIGM=j1AV+10Q711SagQRSE$pi8T7tj9=PbCLE;4u<;i#?aoQ2!QUy#!9x?s)O&?Nx|MJ{DIjJlz^>lN zYeBqIRg7q)4H2*npZqBiuuV7(^SatM5=MO9sZx8g9zR17&j-pV)~iSMdEss0IqyOO@rE`45d z8b?@+5Ij9`*Yjp5;0TO8q?`?-i=axfX-e^@lX}0Yf1Ozv{B!MQ!97&i_U3ap4w?{Z zqhsF#NGG+~HT&F&3|wqztJKql=^m3#wQf$ov&u%gmbnFJlvV0TU69?Ut(vwwMSx?I zdGzVix%4jE0v=i4HFu{b+QZ+0;o^i!W+L{C>(tj4tL+ugKF94NQ2l!5)LjQ$pQW=##wB{uO;*hzCc2ci%Z z1mCz^L`Qc;50j}%LldTEQ=Bq?ea95clXdGYOLg{}%jybbOg?$4eAjhyWeWaz9;jV- zZIT0&|5>H}l}m)rQisS*zk(L4|f{Q49loJ?UX2yqh}N2b2n zp6X9GPR?{M<(Kk8YRW+V_S0JlT=tsTbPJuDm2(Sc!7TJp?OFkMv<#+W?rbqcgjSgI2o!Kyg3ue=z;x%%<+N@ZB@~6-0(G8+d}f zPcFyVARsq|pb~H=W%D`MT+ZwB$PNP}H#4hsTN}gRmn3X1cL&E#16)&+eNgjRW%OP>Pe1*@Xy4WGHf-(yY~47^*Vv%-kD?WDYqqiO=au`In|!iQ~&0jxPMn165p(6_hAA+d5dT47{84cc?tF4n-2f% zSf5!7uzB-L4vRPA4~>0+OOS)jcVJ49Ook)iO1-TWqwyQtBfCJ)FWkLPx&BeouZ_~ zAZ-Rv7nu*k%uq5A%i>ruq(RFAokEM=@@<_!iu`4~X~%oz~xQ86On` z6@g?qUL3G?qlH8+#JD&EM!{L232p(~#=n>0Vbr}2?_QBQn!`qg^T8Qhl- zqoOmeab)-ZJmd>$>0>&z;h+&4txmZjISfC$8<6Hy>Wj#fZ};M_rA4<`SMMCQ01_S^ zI_&ofp{zTWav|`(N1E(AB1)GjVdXkd&chy;+?J|YQp=+#@x@(nM#l4^XCZjz{l@&PZ5IrPSRKXT; z>5nu2{A3UF+pPng->^F03$8W)swVfT`N`!m+F<~R9HkUK8UOkKfznpa5L_Bg30))w zYq$E)h>d97#?-VJ3r&E9GQAu3?9N_Hq>nW3%m87T&dm?HK<9*z(oRf51T1k|g?KEe z%Z1Amli3@U2olOp5qoQzw^8)PFQ614gQc@dfCazFL#R(MiW_Jzy$zbHYHAzVudJNG zCD{Kuc(#hXh&|G0a-z~>nq9*^J;HW#!}jH3NPd`$;v;RX?JHYer5P+(Rf^XJ$&eBX zBF}xJEWdmLf`9UFQh3)a$&J|ePZ`vl;0k1V!ebvSPTOu=$qIkLbSjb~n2x${lyMa` z)f9dORw=OC>v4Q|18+*K{%s-t^dG*V@QFb$$JUGC=6&+bAOmPwwAD47OtxEk!Z;c9 zgP(e@Oun?DZF}~pBgYg6K0WCy?Iv}aAgXE11P8*35)^&1bUaj~jn4CHNu-MAXMKWT!Effjy2-5_nU;LBr{2QGoVvrKFL1 zpkwobY3RqEPh8f@1KoRiS&EV8=KHPmP55cnfzaPJB`3Wa&{Wcu-iqLN=|ONh56l6?Yz|HHfIUZjS0b;|j|ne&gyHf_Z%J;-kM6 zyg(?a9zOfQ-HIA}17aZ9Xcy?_!V~$8f0oNr8d(zF4gFmr)8$9fBb5NXe@XjV+>~*3 z!8?G~CMNP33;^0<(iCQ$<2R)IAN4NAF%Y=m^ub*;dC&Jt<_%PN=KW`*2n)3WKvh{= z{hSqDowS-}#Q-`N0@o-^9|bHYHmzjoD8nsu;m=jZ%5*Ar)`qhbpmZ%!^HAI>OtXLC zaLOaVq+N#Fg7~lQw(i6fJ}`$};(jX!j864iBnaTV?R`Mi1=-%}G__#kOLhsj(r&W= z2SB6olFwz?SxFTIwE2du-Clm6-pwDj+?#BCghdy<>5S4ZF>MNtibq9iNUY!WEjAEr znFgrNR#of!BJk$;c(w{dOQBKKKKKJB+D;iGQt?+}hQeGU5SZIU`<2j07Q^;X8VuqP zg8_i&VHg2_G>0!hd}drb7j-gStE2<%$Cy>SZ|XN7Ad+W3yXGw#W4fAB7qw6z-{k?Q zH)j^WCf%JDFs|++$hfXNZ^+c;2J)nE5zv{v@9BE312E{!H!vU_i}u(o5(N}7AbpTFC~|A70`I^Ipdf}cnZJFha$mltx<@G zQQ<4<3&?SYX?Z2Xjkde|(-l_HbHzZ$-ydyrusQt}P&3Kd-D1Y_A=82d^P$H)%DgX1 zGx!Y~CsEZ7cJYvxVWha6-z)p7T1o9-_w;^ZU_o$okd(<|N|%)0V#5o6d*pS&gs=a+32y>p9*M0ovz z6V*qotDJV(>yGm&3AFS3$QzG;>U|jnDr?Tm0R%G5D`qqKUG6>La4luN*H40lnl4aw z;~iuQ9TCh&(++cG?TU3V$}KID9)<4MnJF$Hd)s-_x6ll>22u#4Jy_Mv)334xBM8FWV0l)6$6=2W$R5dNHxZ0u-i8Ste^7nkP@O2Qu-Y59=9fPYma92^snaO{_ zs2P+gSR&<$G)0!}IAXa5QtO-MYy zK>g_@LMlwg7ClK-Rdy3bvA3TcZWvp0&;FMZv$v!p=`VkXJA0TkjrIp-S3}P{2ng@^ zQDHG8pf9b>37-F=Be0xA%V)o&FfA33dV#=lkr-6PbDb4yXNAt0Z;a+&h&=HqHG5?0 z{yYs=zgb+NKr8-(!=g#4pOKE#P>=suAU#o$OLJZ5I~M2*noeYZ zpL>b$t#Lf;7n?iAL`&@|^O@9^Lf2NzM*LaD?1jKaJhgTB>gjW>7Qm+ZenxXRMa~FG zshgy4!L?LYk-A4*wXZx<7!a|(s5uAhxorfx5!{sSJ22p?iQ612NM?Wg1H9yEMtHhmF@*R>}nG$-VL<$7Ei0k--zTGrr*Q3Bt1ak{Br?`E?JWHSS7zk1lA zD)Tw2t0$#fHHgPNj)WVLslrp6ADHXHe~2U_e}pqYOS2PG3eN^4ar=piC{2YK+wnph zsF~j|u7Fc5KH5&+34F`qDe~lWAG3KWXH&wX(id0PsTabuFSiF;Uk~sZ(`q5-@Eg** zbx=$FbMzbJJ=dd&!Ri3MACJDxu`&EL+VXT+0WquL0EX)p&IFO*e@hr{_$1-qMs-n7 z0##caKKkY6-Cf|!Ii?lsa@@-{+{+M>)NOBArAc5y=w^;pRPOw7cw;e;NfFpr0B-f>ON}BDt_^*_3-)NdCw&6}tkb*5`{n)*ye>m2zbimW|%uJa1 zr&&R6`uCt91d#9cu&KwoNX_)S2_@7ayQIz}-wv4inn0Og?s?2H?fQ(4+;Bt*ZAE0N zXwIH8VXOJP1T5-t-U)wsw~GG;6v$`AHythHR=Z9V53OhMQx`oSNj0CVp#xp?=ogx# zy~Z*6%S?O502SbT9T=U8-LU+Y$wKj#5D%3>{1x`Qtzxl90q9ej!;KhiN^HO7ACAvZ z9UvD!+0Rarr^XLwp2uDJV^IL?mTT_B%DhELp`I z%j0cfpBFvy4Nn%h&88;iG-xm`oH(lp%Seaa8W8H+yhKuYh|nMtjdT!F{=uxLA(QkC7;`LJd5H0Flg zRHMpT3Rl2cJk8D1Y7s~0ax-{O61VR`O)@!cO|(qv>yzD;vaF~)bEn3G;wEXwZ$+jR zt5vxg8hSsx0RR)M`sb#-UfhlHEYq=LqCv6cz&0OjKes;gpWIiZDLZo1- z*O3F<<+t0x$QRJn>alifSsqF?Yws!7pI63#I$0H|x*bA&(qZ=eV)nG&HUHFnd}|Kx zZ=sq@4)-AXvUr$H!}j zojQbTgt|W71kj`^VztBT`{(>(klM}ng$VeH-STL?5^g^ zS^?Pg)5=6XW7M^VTd|rT(07_?)N5D(zKP$sY~-+(a65Ud2;5JX#wOwNb&uuMomu}m zvv$f(b_+6U#_dipc-m=?d1?s58NHdoFW+;_}NG|x4?UGXZ$1pZQoyiAc`hSH`6#7PJvAcJsC4CxuY0e z^DA1s4SFq#nqPB$Hox4l>%+q&K{M0M@vP`bw-1l-C%ZaIof+%pR~6 zd+3HE&cx{Y>>&p$OpYH zD&ZfmB8`|o=V4Gyz2u+?YR5vC^R&`=OnR@PWosdAzcnv{IvOonI;1_a_aMTyU zrBGERF#nNF;5eBTTQk<*?cVlK$tbKqV0RkrzE?HAG6UC6wz(9d2=kNaKtaY)*e1M$ zam|Gj5=t40T|avG3sfE_aDUTB(@JtF!)4YPAV3$#3xuZ)PE@w(KFuvfkfWLwtmvvp zg#l#yQ3sfR-F0NK@aH(;pyu4Y$f#*Nv`%Piac}Ug-0NE{(99sRt;O+vOf_pU6==*9 zmpl0Njgr2&RON%&CZL$R0RPB0JrYWI({OU?fn8NSTVMSmLq8%{+;XZTdAP>w;gZJE zOm}+zbarsRo(2$csQ3JJZ5~3tlKy7;$$dyH3rFUk}Qq_8W`h^}O6P*-lk!dy9<00+OR0cz&YL z+BP$HZIbP1@3dFbaQJozzK%)9`u;pPISt2WP`PbyaL-kzC?NE;&4-MYUG1DC6ccmR zJ`+Ec1S45h6}H&8xQbQ`^b%B`k=>f_{>|a0 zk^YYpQUyYkGgx<5FTw=wY~AO}QCEspG^>I;VDsIYAkbgZTsVd(Jh!>tai$$umnjJ` zVmWZ(0JHt-Vxfw2ozt7z+nhNO&7MQTg}S3e4C<<8XH&Ps$0YONBCf>KR%TGEcE!jF zaKVJ(9-OABY9L2Tg~=nV_G48KL0{R%+Y2dDNbr5%0LxK`_=T2qs2v6u;&Dl|nS*i* z@*!J+O1?&&1p;wRipqH9a`W6pHzS zT*cr?^WJ@Q(WGX2VC}uPa?rl;tx&^D8#_}6t=&DY5Io6*u%zTHxVAFyc3tWxyeXr* z9JH;n87+BAVP;chz8>KEE0~T(H%|-h);*N@vHq5`ZTRzq;yrd8Z+KfOZ(dN0P2hOL zT)XkuuP9oAJM1XT;Mhs#euxB6B=4ChN6>qYsVFn1_m`sSm)Q8wj;5~zWjUn4E!2_; z%dnB$1v@$9c6&QtlIKL-lNUQ$*E~Cu*5GeB2@LKZGCf#nEj`!l;uBd`~?v0d-{=V;#4{#k8YLoDz!}) zIldTEfJhk28Qee;s%rc~qMK)w?55FdQY@j@X7$+PB|QZUo>e}sd}636kCc*%UF}^B zs^M(p)u}CYa9L3DnqES*>)5vX8TzM^rcYkOoJ;C>^}Nh>QiTpnK(ZQlYsEv`jAfV~ zg}}I@sj1tIZ9g%U=ksh)`fEtmB|)YSxt9dqpKN_l3#F@v3ZT%hI3|xran1^(;7@> zG;6-dkL$p^5#!JvYFoXb(-9+Ivh6Bha;_<&mDAo!-f$NKUe&#)?sbO77cbi?)!p)j z)h~F-A%#kD{wY__QxYaJP^#p*wUsXy;)b+@0R`RF-X^N>U{h?%brzz%VoQ|-c9Z)i zU$%|lML(vAyi)86yTn!cvgB+fbj#+Odq3VyuD9ZRkcqiwzeFx3r@MBuP7A22;tjez zjYa#CCogPLGj`#)y(dTyIW@C?jV= z{U?J-NAgO*h95d{_M686!m-P2XP)t_af2sdn5%HkO5xfcMBQBc-;%VN!lqOq6SHIA zI_^rFuDIqryEfdaDVx2!t=@sA2okv>Tr=E&3s`Jf<9m>DyuLJaRRq>ghH(^CUnz2a zrWuQLM!ckebWkm$%aR*j&TE2xY*-(;Ns;LZ*5y_?OqO=j5hIb?8x1Eh!VexysqZN@ zt+&zlyJvq)Rw>4%KOgwIzLRhR33M2{xgBz&9>a12b#P1 ziETl&E)5w{sPhdvrn0iK>&&B18+^XApCFAE!%OX$fIyiIQ6=HEE%*g1Q2u%3gef*% zS?pEGhQt?t0&*XU=x;mo(5icMxLVGX`D_Q9CfbMLP4_usU0el^Ag`OT3H5=Rh6Z() z$2S|P^hD+i%`FUlfU`)kw?np)4fp&q5ZiWr$10f@O1>55>r@~Eqe}M&e-a85iEs39 zH)iVu1*(l0Sw9V~IZAFONVKJZ1kA8K1&PolZk;gM0_U|-Ta6O)XZHg*T%8JLxcImb#bcJoY-aR$VB-h7!2Us~vcQnH> z%5;Rc@ zW)V$B!84P~R%BBac!wFE+g`UiUVXay!2>6Ae#|GfezH2g8BXp;7RUSJwYooS#M}LR zzm_b3wM^zrqB#W{;L9A`G*gheuJZo3vOHO$z#n9fZc~R#`T7jXk?CbyC(IpmNati) zQIYCU!Q8qM#>2?DTi1aza1AW?UZiW6#4Z5EQJWhJT(L4$j_P8SMW56O7Ewh6-z*Ua z6Ty7+koW5lO$qH+t1unp1#nUkWfu=TlF5C|U6U+y&3>?PSsORxGopC^#`*tX?>)ns z?7H?(8y1RKKoq4}kRqT+krogX1f-YH5drBU5rS~2>p@V`5(t8UKL0Sks zgg`>bZ0={CdH=WieU3Ta`G%%kNv>ViUh8+B%Ve3)_p;$`t8AV7490abIy`AWlfv)w%0YrJ9zAyc z&o_`_Jr5S@N6}*^|MplnNJv;^oBl;Nf5iV0kR4x8dw%r~WF6c|0V+U_e-3B*quu~M z^94{SRCp9(_h&`x=!th>2U`ne~MK=g6`*8kQoC^apx{#nLtvf3%*&?mud zZPE%Tkbkg2yUqWoDoT}608PI+h-oXO11WVu!6gc|`xGXAxFgH?4+5<;=~Tv}kPG0j z3>iEX_*+N_Q&mKJ$@ougu`3) zV7C3Pn;v={PT#)BO3=BmQ%z|IcUcr3frur1^6Iw{sjdr|n>UDSdeLI6=yb?n!9QNi8hH`Sg#WL+ zj{hgG0~kI);cDtd;{ft%6$e0C3KSG)jT0;IheatEZWt;rW>k2bhDmhj0O+W73Ra2h zjpfBn2cipvXzfEo2;T(ZULpIj$blDE5cZQmM-NIo_g8kWUH9 zr!x`2s23(Ab+6*qrjXgnN%4g(PS^fesvN=kCcl4qlGH@j4Y_b@Wf47SS5|N&Ueqq0 z9*C;f8j1FPvA-fDryE^|AIdSoT>kllUJ!gD&SUEb`I6a}I&sgfv78jx3kE|MwWXy9 z$(>ImQE#^;{7|EslzV?5LwtS;{CRCt4*b5;Rx~@-8r97rrrK_wxtZObO3m`6-vZWSMH$mt#0A?OZf3wiXhHt|kKN+f$Ud)1s%;He}gyRX%F zYaL9!#CGotX{ZD$-yhL}<~dl$8NCdFtpyR`hIK+N5_lK%bDmx?zKVuvactLp?Ho5d zu?8noZ%nr^sOlYbimi=NrX*vAJ3C@|Fi?Q@k4+fEDi7@)*hf>l9cQL1M~!T5YZolE zS5d1K|QoJ=u3j+}LL?OA9!ikQ>c@T#$^=0`=pSd0$eY{R8jC$U6;z3@g?_9y zbsDZqF?cn-rjv6~K7&!U^Zej1G4XUw0 zt5Egpv?Es4a4Elp&gYOEI0Hu^>=J0V1%yXgM~i!S&Ai*Ej!#_-^#7m~qsyq^`R%;i zSR@b(JT#GGkmdZA&i0?G(f<^Sq-Kv1eSfL=7$e@D^Vsf}Q*ypJ<eP9S9Z&bhX10ST2EAQcQO zT`3qYOgXPN9JqHcZfDnxSlK_B{UFDDWrE!!gYtGDNOkzA8vAZO-YAH>fe?m;AsP7q>mrUW72`hilC4U2!*jm7kU|ox+A~b7&I-f zuab#PWF)4<*|0i8Ar~Mrfw2sHMw8(ZJ7az8UI5LBY2XT=Q|D1AId)r+IO2XZI*2MC zE$>BhRj@387Ba?OM_I^TREALzcJcyxH4@>`!I`FTVE&M>(4_Z^t0KMfdeLjH{Sf~{ z`5S|g$5)5iiPendI~1z%4Eb(JqTWoiH%D`TdUdCB77p!mt*80{(oSM|TU^@2$-rk` z@u(YybwNUVKz(#4u8#Rnlbf5oV9~ACYSxdvqdTC7utob3>TZ9x`e;vsqjaE5pp&wj zsQ3Z=lUVfVyJ+d}^kt%Ec*;I<`54X-hgJ$YZYq5$GI`0kg9j>W;*sTx!u9a#tJXQG z?DZ)h7DM+X+#fa3O9KYpnqW6w-)9{Ny?9$`tBJdsYQbUx;aWg{x_sc|o?(iXQnpCu zEPT}U5y5_}gw18TU07_=iC+6q5}u|7?vTY0S5e=|`ac3z05(0(IYzYYcpZI0fDKO{ zXKbH8ea4}Z%%q+(<2bYGD9jiAI)6jHqRCyQod{OvW?^LUx*+vB&;jE{9k=hbeexZx zS4GvO+2ltm4Q$`n2$Rz(D2$ye&#)!nCM4Cn~{GKSt2&`gFe> z3scRwFVT=~P?4|ElG131E;5EwfM@b1%Y^yw_@kI=U~qMpGpTSXBXBffXYqs3i{g zC*zU!ZZe%f19bP}K;|OTWYi2DwctCATlClNZ)puHwgl7SXY{#+UDVv(PbR8RE%a8+ z*l%qCe2!=+AW$6P&6pY_$c&LL2JGF0)>@tiuyj$fY!F&rUT_{TfHLakIM?qEDEgu- z$sBYT+&*^aBXZ%gdqljTopo&$Q*j;d#KP~{5pYhq43yK8BHqsn6$#I^$}OeQ?`(fO zkn@Ttb^0YMsaCxpG;ji08Xttpo0V4y(Ky^2l2#Vi#k zMaA`gd#-`iBh*c*dp^^%;(4VdM%ZE6_Qq5sFn=-cjKS9Bzf`2RY^qL!#Xo{*4@T|L z>7jr4{dNdGdg9})$Z2Y6(v$D^W(`%mdcRhoJ({g_ic_zDs^Z9+0Nl{0h1c` z-I0qU+nF^{DiD#ZDgM>k?I4xfyGn18-x?~+M1^0pYY2MS;gMRPDTY}oCnahS46$Na zbP%)$WB8Nb5=G#rs5ql~l)jaxA$lI4Py(7l?025GEf zgRp&KN|(Vy6GN!eAztRUSu zG$td{i6xs=`PGY1{T@tT05%(tQ@^F1|M}+?F0iJh)nB{z$8vs7>eZ3Z-v8P1{^u{L zAON?SbMT$|-AUkZ?y|lL-MZ2q!yR{6%kN;k^vBkDIA|9OL?;!glPM#*;NFTV|IWG;x>($)Xw&Bq$a4ptR`($b5+ z4+U@ysdNyYhbWXX{q3=MaOfKN_FehU&vN8g$RX6o)#~=Q$E+@Z^uxugVt={cr*9q( zvRpdk-yX|6bOZZe{ROG>w0ZRPS}EzJCEKpSDk{a-#S?(u<=)QQMx8_OmmXPaDrXr0 z6pDL?@b4L(&bPu}1&<>Ho|blof%i zBzljQsNJv`D@ijPZfr30*=+U292%@O<(K8jN3rjKf^u4h_KbyA8%dKq=g`dZ>(Ezi-jAttDA$JyNk?kzxm24k}is8^l~zoa2S7 zkoFD3vf59~ic_&{joFZrl~5 z$6 zx^;wUxWvfI`JUAX;Ry<>EB&wYOMy$!ZI@kPxpyUpd~~wA{U4j|xpwhmp7&Lt{1z%) z(EK^ELwiiI?LL{+VgKXsTq?^8R#ny3S$RczPagKecsaPV3qPUYgEYcpz+Z3$9GxqR zcy^|=>y35wQ3OZ^9U_qOoLo+L3O zu(VjwVK|*NgaF>y0jFq%D4;S^CC!t(;-Wy1T^LN2CBsvQU3eJ{8T{cJ|_&7&q&YYK{M*s}(2S11oFGsadU1Kl+m z4j@SA=f@hbYy)# zjz|2}fMZ>1U=wZZt*!i-7nHsL__{b@FcYD7mriLNyU>}#fZAG6+TWqL=($LXlzb3w z6ySVfaflyxI|b=mP>@XNFtbSG$I|$I+Qu?XZ|<5J$eC?-f|Sghae$w7jTGDg)rgoa zZdysF;@gf<1&81#CGr0*68w{>Pe0amG$!#Ql!tJagNj7)sRGjZq@MsIFp4&Kq zL<{=p;+BVD6d&2I)9T$lx(it5%Xbv8HiE+F>UgfC*V#2m0(?Vw6wE@eIKSX$;)E={ ze1ec&Sw(VFI2C3{z(LD{%6HW9%LecJ_&s&}4p}}ZWj&|B#HU*i==giuR zv5S_%GqnWg`50&rV))JKj8ZaikP40ok~&FmJ%ij}{v%XAn+U{zfuyE0@A#`(7@M=@ z3+|V#MmRs(@xv~3L$*19OY~fR-+G<<`i{(`Ko?Iv8tpZMg;-4;Rtzp;n+trK@$&25 z6oO!jEe9K$tVA@S!k6R)oQ7S7a8|k;8GG18qN?IoOPjF9+??|1fhO zH>@;&p6A;>oqUJEv$h>@HHtA@^fkKbe$WznZl8gWp&YXy713;;*PglC-m;Y*c(#n5 zPNzRo^Q?#?QITy3li$$Ke*$x<3m{1R_^O@lk9!WLjN`dyS5DH?YP z-bCl|P=U3i`l(o6awo8?O{_m2#AG$RTq%Se{9&S4Hi|sV@;-8h9TvYzs1i2%8M3`A zB=vSJw*H~2^$}|kgD=ni`%C%z0lCU^AG)>m=|S0d%q*sM-+6t1!QEHW+Pof1$k!>m zBj+6awlFUaM0nM1aC|#k!+A4XyaZ{cYlb2X+Cuj!g8V z+G)#6PyQ7kZ>$rn&s=hf1=dqkv*+u*jb^ZG2~tw4g3ZJT*UxYlH_*Gn3Ii2mi%OuV z%k(xlNT(#Ild zPan5kt!=_juuoeMyWJrrt%|X_MFus}#H_{c*MW*Fot%`f5Vvcmt&oWI5@Ma?Rac}X6@6d*efxC7vE@R`g24(vvpCz$ zeL9l{!_}!eu`$|IYi3)PJew)$gjP62B8$Ybk?fr1Jg7XCG)-aLL_{ z#+kH`+`>wc;yghs59_7o#!veV4Z@rE^(#E`k{nmm+{OcWRz79q@8T#QL)=Z|8lr6W z^7BF63V?_23(c|YX{4yl>}USRAW!qONGB3@I*UhAjgmB3w1D(q zNt*X7R(C^Ekaa9Rwl*V$D8~04&nbhVT zxpilo>|Cc>CKvqxj$Sxx608?i&KL+Ge_hl!`N$PU=aIAk!7vrqj?EQ^HUf#n3w?xr zWq1+)ssckKxI>{+qpP}gV>r0m`}{@~P7)1`2P~5wFiIn&hOcBECbgQ^Nq+YC3pB7P zu&O#|t~ny1E)V2ilnab-I(1nZV!$i54>GEsD&XjMwcw_S?*#qf$K@ z^9mhbiCOu;%%@|;@KT)c#m;Ty3T|~T&bTVYHyMpTKriadn!q z>(m4D#MlBeLbi*Lz%|ZKjxVth^?fSnI}4=^rg8p%FuFJz*5lGP~-mZ1RAfw7j<_P?1G$q4zflI z(deA<7Q73>u+Dv)oablXb6v1oLaRSeg>>@$uHVku@ve|%%&*-vE~OLR52fRr8>e9z2b$$V5lX`-@aFU`((;J7VcwJD7DRie)do3_Jdt1T^UGmZH6tCDc( zle)s0?IFf~MAOsLcgA;9Sf8iaLm082E4Nag4f$@eruC5LV|6=%cK1*j-q7B%y6$P; z^WL8vA~$m{puMZj6*bOeM27gTYMnMb@`_-`{Q%h}Y+B{k)2I#sibPq@k>L0; z+vxZFHajcnK{0v7!7P5$$`S{6X&GHl!;;79n{Xm4kBB~#qip4h7v0Ca?jwCMN-fwL zUrs99CJ8rcl}?$jIXNkQ!)Gy75tTNB1NMw=zNbSigN}O(o~aCtjv1FJ_E&1mp ze>GSWrnzbz<~j0d;<$79IpxqZiP77EmcS7k<(Vnx~9b3hVKj(&*B;s%o z2zl#j-BRdzlj--h2T|vDLM%2pbnfkUI5%%gHyQc3R&YiwMMAtu&ine6C1;|15phOW zlZ>`AGl=>ZQ9Db!zPp<_**Ff>Y*T~I2;vsA=Acmi{Cyp-Ja)8iSWQNndA~>+$4vk-o_C#Z&&g$f*rJRYD3`a z#H?{?h+k2#GAlu7(^N-zaW8pJFf+A3xz7IT$Y}arN7~5eccV*vBW}}0!4_V2HaMT^ ztoX7F7v?!@(c+4f-vU;D3eb~*%O4wu^06qWaxlzhEe|^PSV^WIfwCT4GO0F%8y4_i zQSJy;cf4**xGT{ga5=_~l9BUOt4ms8t=RBnujG@VxkVLP+`_keS zOw`i`F;2>Tiqtt*QaAq7@=d|*w3qS|!p!F|eT`b5f1yfY3H(PnXw-%fFtmRg3br&m z$X9QTflqN-;Pjl0WN6-h~DXC##nMi4s3l&O!jf<#h;mAS3iRms~G zS45K|B(cxE!lI|>C{hH#yJ}5MtPojlf9k2o0x7JRed){l^eng_!_bBf zyey|`AVZh+rPWH{1}JP+GB-groT3I#@ECNw zV}AWHTpLckEDmMR;K{L#3xRH!1)Z{rmcJlKVH;%Zq`WKAeLv2Zv|4rUQD|~;JA6k* zm%q}Qe3fHx%XPoyU}dcF=8w$&gSG^p7oK*^g7i-$dx}SdM*=AFF&Vb09vazW=-by! z!iXh;G_Dx;xxDP3Iz!q9zT@XsRKLhbc2rmom+5i{6%q6(FMUVGGa-YYrS2Q~VI_!8 z`;Tmfav$a%&E%$3KG=)9>%!N;7|K^b6b*N^CSN=fmK?_7KtmRD+IZ}SoT5eAHZ^^8 zNa3%swz&MLa~To&(8tKrrl~CHVtjVI>?WeqP5%wn?4;stf>3*FxeYQFRK4%jTWd5L z+zVH!q4@M0Dxk{gU#9k2!4-!x)WJDM8=iN_M`b>5Tb0m%a)r6$r|RZL%MvRa4^e5+@#}KYPRPz<-?oVm+DO=k(_VHMW&(rC4fNwNp)A-=Ff( z+FPDZrEIkjva1Tx{I2gqh7f0MK-|Ex(sMp8i1pI~v3YT{q|<|ly#Fy>yPY+juhwp{ z1>)M;XlZFCVEFi}YvY`Chp&361HHckb0=$uU{f|<>7y3@D=$RJl@XgeF)XOq?u4xJ zX0t-)`;5o%aE4zgm_=nx9ivWJT>LEQ5uO{%I3SWgla!O<=uw-xcb~8Rh3R+S^RC8g zZt)g*j{|X?5S%btqDKLt#POcmtx&46Ln$K=CfLx;dyio85qzl!_VmuT5PCD=t@L1E|VPtw$JO- zmFlk+NfF;C)=picx0XQfHF()OsE8BQIb4d`@+GofFERGyAhH-7$eEa=uucsZa2TNMKNr{6cP3?lnmy~1h@zSKJ*c@i{g_m5E#8r}nXipE#Tk0xl!Tu3onuiJ8rAbYy887t)0LuGZTkiBi$nP15fBW~G3ityqn<+( zzd>|EIVxFfVw{1dyn)DcmH&n2q@m2rkY?xNhA(kKP6QOp&m>%iTZxQ3r_wh%kmrjm~2?Xc}k zynUe4h8F5g4~sARqV{!Z;ab2zGEzI0lMs9br#%HYCjhvxE945r>Nbe;~G|);W8Tl1o8TwumZv=zdkC1uYQb}VGwNha9q7C}bp z!(*7TY>RC>tz&(9xi#cuh?@HnT+fotys5e~?6gU_wn|@l%@gLi?Tb8T+e#xJB5)jH zN>GX+)#knaXp>4ZTY&UEZyLjQRkn*&L3I+i{Z6;Ny`1{A-f zOd8!$c1-a`xoG&)z*cP1{biZrndxBAB+1BEyIR^f&DZna$;8~{V_30E>7?Qn(aW!) zU&}e5cW*6cM}NJI%VSi{e@I8G_Xrc8QbkFrB?N5V0h;-+=UKopk($>kdfK0b_Kwl- zB||TLo>aKvLrILfv75Q*@@|VFCEe5IYNhnaexFT!iogXZND1~kLA#4@r@%xSCmfsl z_ILsezTS3C{gt%-$vRmY(Qiksc%nlr7j9BWLa0a`+4BA0AjI%P(AQyjhNC>< zkEHvnFVb|ZM=H;4>i&f%R%JT8U~onk$T2FlS4W1VzghgP2Jd=~^@tWzI6v|2 zf3bxB`9OCb9X+N>bv{Mw-$|fJg@bgcZvG{58=#c3&?M?Tu`|9nr)Q{X-S z7k|OrhI6A0PYS(26-~(WJ9WZ+i|{Po<7e3PBZH z%i;LquS@4&b@&&&8U&W}%_05OPNu-bD;)hO?JopE>uHWs^PQD(AsE3WLEN)U&}!i3 zH>OaujhcQCn}PnOMc^{aTl=3G;LD*HR3=5KaP!B*|v!_t$j*XX=+dEXz= zjJ*LjaaRZ_utz)Ua(w!;4vc*$b?;OwGhIOL*~4dN6vnI2FbcG9QAhomQTHD>&9Reu z`H`#TiPW-d=EHvK-G6Jqcem*Towq7=x~RZ0Ro(Ei(AR2?;#7Zmzf`khp%NS?)tDHM z<}N!%kN-u3@{Eo0+$+7eyM>JZn(+U$$H+Z<>_lpQi`om8KPm=C`~v}%Zp}7Z{+GUv zsiLRPy~;l;_ZjvV4a%kTBS&)s-}dJJy)w))X?Rm~n1vT;=H}YPs zOphz>dhO7Ji*4Bael-T2ezQ|KUf>7dlyyEfE`ff2`EjqNCE1^TQf+XnJ?1TD(Q}Om zr1Ey4j}X01sP1_wR*hGq>e)|r+6Hq}s`#4r2S8`W^_BZ~4_*IuBhH+A72kVmn}8{< zQaclHiH!FnTY&y(I{o?rfGxiYFkvvx(}|x@RE;Y~GwZm{zd9`GuWl+_)_Os9v1Rtz z_}by3mS;|X1ZhHCwZp)x&Q|GfFPQ**s(WJb#@dkWe2m@I6k&O>U)zH%`vf@-sP}SS zPP6#lYez|yrYe zCKaO=3JRYW2-s+^Edum{nq*u3^`!Yu8fY}<_Jn+(E7`YL{?;KnJR@AIQJag{1rr0B zhE6ylQU&oV#)f5j3x9J}-=#|*UYl>%Fs$tcXys^qhsHC@H>P`Kui9J61W}iMzHb5A zDU@k%o^@V@`Y=zC0eaiK)153KhRu5&f%TN5ihG`7U$-iRDcxH@?7c`BM<8uYF@+6? zDQEmtKUc>j`*=1#m6@k%s9kt%x9c@7FW-4&F}USF&WbLvVk*8fB7gxGk`cg-{xIST znw_|@FSK!0ApEQjHCNx=Ao@x_@* zWZfMl8kwW2GFFRLb{>(Igi_QV8!1v*C!~XBS(95y5%eTU_LQgti}msH9FYGFTdnJb zj5y(joevBPR@~%>#!F+5vA1+l>0T=z>yx*bs@ik8*8H?4vwezl+P9i~jlScfh~&fR zAq~1DIW$_0QeV~HzO?$w?@O}Z3`K!jhHO8qYn?)l2q{8U+VmIHY?pP~E>SShHSDL? zrj{W=p9_m%7N<82_-XH*9-ta&B(7Q@V+T;napZ=#n>!Kz;Z25o!cc6W|rz5aze~5;uO1%W|j2md|usQsO7wfdGoPjZ-JQc?C+6Ld=WKPFS-4-#t z>yk@@ONoFSj6rrcWUj6mYa0OjS+~w^;kfawOr++Ev^%t1b=_)lf#EU(SZ*IY+tjWMtKK{7%cV=sLZvPu~K$Xq48XgWYP z-4ba47GQ3#PSxUWB~IJO5*eIs05>nlX48k`5u(c}G|BinO(cA6%TA+WAQPjn8DW?< zs&V0lu2w6lI25V5guB^!b0KWYGY^&-Lk}X7kqq^S?b*vd->)FnL@{G0lQ}nY{Vw;~ zR!w;o*dfr_hzaY0KuPib4RP4H>d63ZuR;er3xLE+mUcIPtpad~8uc!>7nncZO`6HX zp%dDy{Pxc;z`h3)agd*{9LWISKTTSSNaR1e4PU!U?#uQ&yEEmEiiD**7!COiZNU|> z^@I*?#Avd2ke%dM6Q}RN-l83G6%lp`sECN&(Q0W9&H@rhRWXt&Xo7@ExaNkJte-el z36L)d+nm>qdlP-wURvdTant>X%ErnOVL5`f3?M`<1H#rDqur{eaWVN3n)YDUVpDIn7w+S0TAW^pRLZflGbmtBp-u`A`; zpkIn5BC=WHi{ww18A;%a`J^`?nXNO4ft12bp?$J005W7@!zj8}OAD)CO!i)}>U}fN zXlA2#a7}MlJ$yoxX-`}14CNDYTu27>yzbXvzOCtjJ(F(BU z3fY|0yg{5`rafmKq;B`en$kn|K zaRmEF0^wcN&3|SJ*G1K0Ad}JWrR&ld^q%%S@Fke8IK0Ycm;kL_YkwdnUUqIkTn{`K z#~pjOh8w@@n^%cULm!9B6k!!fV1W%Lt=k2hq*?Ky?c=GL`)Gm-<7=!=TKJrn;Pw4e zS=29hS@G(UA4L*NN4^iB%AT$x@l)OoK7wds>l$?EA!mf#P>#K;z1H@+lF#0fuen5q z?-rA3H@Gu>qbMbkWS{e>VJE36)$?PbL*Ph;??PM+p~sfW%X{mJ)?B5gLWU2L&hwVj zK)rlVTW+rpxor-~PGYGECQHJ}xNY*s2_QRiVAzY3t|a-@E`@O_@y)v}BH7`JJU<8r zRBdZ14LoGA5H+nya(=bafYO$i!t+Lsl(_j`{_JzFxMoBglgalF3QwKr5m~&Z@xnjo zvkw|IBBz84+n&7FcFok?6P_I-QIM{(K0RY)&bK;`UL}0TO#r{cwW+#bbTEtCr(v9= zY?Zh1?GzXF)02~aDAkgf#`gW*H*JGHyP9;W1CrHXmcXYRTWDrdmNir)hIzMW zS@lwa*r!(g--sNrS-rLBc*KLMjrJcz1vA3?^E6IN+b%sU8ziM**B8z0mRS04h>Ka2 zjWYD_*i4uALXdQHVG|(ecy8?J*5h@+W~qV-`T;S(oFrc|TD^eR`=QZ|OXD{tjuTa% zJyEinrmW_vntb`y!U2DE?&w__tVUE7WN2-cWn+EA#E(Z@r>{zdB`ipTlgH)T#tb6b z;$TT8CWvY&1r7MIpm{;@$L#(4@w>C_A9g^H6TIS|aq?`1NwTgZakVOVFXl`}+Ev04 zSd(AhqR|A4Zv&zomi*AAp&0tLXvVi7+pga+LJRhGz-~GP^6A>#*WC3c zBCj~PlIZ@@+iuZ~c|$c)@oRY(En0N3f&}xCj1nR_jr9|e1Cp9tbzJ%|PS~rFQ)q-8 zQqP-3ltHqn-%C^Y@nXyOs}8ne9)5&?j|H4!%Rs?W3CJmdLa46BrgpwvC|Jqm3Ec+l zqox#B=p5@?1M(Uc8^SX@qjZ)YaK0*}rt+Mpl!}>vOnkSkqQ}XDra86S2QHPT>=+94 zN4<9YWCRHOCGMvt`78=3xVwqeXSS?z3GO528dvStP4#&Ig%^#Tk%6QAP3_2BzTW zEYM}JPTbTUw+koaFFCcl`96ltBl&2|*Jh0qIWQd4bSw2s>0#1e?#CO2j=F6(y*`jN zS}}%9t+m|1nfI?_8=r=b&`({eGw$EY5@lBN>$kh-=a6omfmHX9h0Tk7C)8!*t!S(U z$r^R5jo!P`OBB6~5qbky9+X#l<3gP0kl()BLwgmrjL`a61#?ZygzE)2l@F&~6PR{% z6YL^ra(!2J?-2s(kRV3qD1c6}2u?kdk2s#?Hr|QRE@Y;xmJ_*PR_KKi5#7yC*Y7=i~fGKMWA;}-t!zg zsh%toy~V28L9U@5wBOzn54%mOU-Mws=#X5>&Plp!soGKguGthm*d(H~CwyzBG{*>j zSG4iJUI5uXlP{~uKrR#9C{e)PPe*CKV@SGtmYq*q3-+0 z^=QAS%h`u5tvP!M@(y9_1YvPbTDQPOTxYO*7Gm;w*tRK4c-+=A*$&CvEb#!&`EhFW z;>)ScSL(~#gUVDY-W#{)S*A6Z-^ll_vCL{5%m|84H$jV|EuLnj3^MiBDtHP>eOmaM z9ewIxpx0Yl3; z=Z?sO>+ z;Jy^O#VCOu7jNN9jPg=il3P4@VZSKzU;w+MoQIH~{s3%M8-%1DoSHybMTPp-+beq! zg_cHm8ffF8M8_qz;7l_X2N3@ipHdwtmTZW16_=>Kvd%uq7t?S`XOKv@n&79OWMq87 zeYO15)IcZQ#Hohw=5&$^UfmJbMEIwIcWRU{Bb>dj6;!aazh)jhT8Ay)SZLVe}JxB*QJfUNH{-8g>(P1Z!QrJRD3`1S!4**ke|T`3K(VP_0BFW4QIcR1e}W7)^$!TRL%yYsH_ zfkDb7hxpPyuk;=TbE8naot*|JLXJeopWkj{_0TQ~A%=G1c7d?}=jbqkUJvvODOBo2 zg6X3t-)I*qbRA8&G;9i8!bN|3qWzxgFj?1-N(q9g?k`03#{I%4lxo4F|$`ILEEJ`&e;S9LjvN(>R4l51kQ)U za47nHRX<>rtKd5W|Oyj3SL6H z*{HqakdlHW4fM(+E0s1dXpKhn6z9f(1K~kB@+Qf8`o09W>J{$(UV5m}6<3qaJ&fFE zy9r;Ivu}VL;F3Ixqm*|b)r`3>L5{V$R!*tm_^`M8$4H*%VO@f{Q5+j zmyp$vf>n%5Q@U%LL(F_`*CVFhT%OWz7e;!5=fCS;SXW<(T4qE`NGAvCrP+1txJ#{n z-P8uBXM&>FwRG%t zqI%`YI<2G3* zC=b}0Qbt`vg$*UR%e!|v&A5L?6`((TBMBNCN-}S9TMT#TG)6+FS`V%iu)sAUDoI?oi%Hg=#)AXbtkin)r*Z3*6y7I4Zd;BNM0zezLc139pY4 zWZ;)59t%|5ofa@FB(nv-k>}!oV{c&dtq)e^PJfi`thDTJ)&mVvB&d&G2IarI*D2d$ ztrG^gKfB+SZ;ID?_`_p^bvh!b1+n=|zJiuA(egpQb!h$U!$%ZvqI5Vo@@o04Kg-bf zir@_f`&cT~C%8|4v}vj+%7ny2dC(A!>MNdBHG<-idCrep90a!?ATgT6V*KDzWj-0^jOPn!U1Ej-~(M#w8&dU`hSL?>B@OD5q3yd!^-$8lLG-f6 zH#<536#||eMYQ4+&%k#`w|QifleqEZR|(!D&v(W0S?xaJ=cF;5m7bi_Rf?`>Z+a@R z!+3bw?FR12znuJ-7_nT?N4_VYsM#a6E8N>3y}>HgXYB{B2<5MDR;?`xyAVz$~#4T=%dZ8aqRE zzJU(}DOBm6gb14}xqf2M2~kn;GX8pj0+ybAAo#-g@pBfxl~PACZ!uFA3>vF0o|1D)#F8zkbw5ESbD@@(avx;q*3C)+ek92Orgve z@}_V5qTn89ixx`|&Np@Chlf&e6^T*~<%3lcARdE(9vt>CPp3|vs?1TADK+?q-9T>2 z2A15jhCWT2qkKj(awOjNU*}fk7VP%-6<*pGqoKci#%)f@;t1&n+wO{F@nsgPO7(g~ z2AO_VH-&KFCphxH)lR@7(urB&3a;X_SGBrO3APUXAyC?}<7N2#U z*QGjMUd@hGW)GmPb_)NTS#wk3`uAGxbV0euTq4vr)1emk zl_bEzp5yl%7f}<6{(j#&o)D}^@pK!cFraQv>d`D3q>K5q#ssN?J=|&{Z*P8EuV

6p695d{9F*mnL(AwU&U^$t;6KQeR>h!0w9G5#8DM_%mpZT$LtbI-zrS3_{ zer)a3kKm(RyV(vKX2eVjtmS1rA7+wiFl85MLw-fd9 zR$Z09cEEbFJkOXiXF? zy~e0_!Hzui!l3ulA%&W5`S5@d{iS^{!@Sl9DDIxchAA%{PbCa_y1ljV;KHaGCq^$< zCSm+2Nbra%^%W>c?f4+mo4EH5rXOJ!y(D>Jaz>)&E<0fSOkHCPWA63U;_z)YC-hV# z$BQ_X2wWWE=wIqq~HASDHA4f>z?sYuVRBmU)gC7)@S~e9hV9f%F?oQ zL^DczStv1gOtAA+FCQC!J3oK&wlQun5+&XECpp3pg=QS-E9oX!{qhIkPPqie}JO5l=yr0g~ zJ^JNl7->sXhLhf9M>y|pcYu&dlkrw_*PdSe>6(Q>NN!|hXi|qX#ri(2XDtgCIYJU`$^jb?}dhm>PYa?mdeWo!~DSyd*$ZQ>Ym-_KfS8A;Xd$~uC4+KVP zQ5&_XAk%*p+o^qU0nMI6c^qod+34$|qRdeXdrO|5m-qX&__yPYIca^C^7`s!H6Ix1 z6^|6Z{*o+sNy2b#gxt@o@x~y~PKyIYJ`(IXpZ0q8b9eCdH?YCd4OVN8r^zA_% zR2l?H=@Jo;?gr@?5a|{bP>@i%hLY|Y8l+pKV@T;3h8$vubMbr5d!FZ!-+9+r=bv|- zv);v8F6DOax$i6YwfA>_wrVa!#c=1*qRhz%XK5IW9V7z(TwRMK@MPVq3tF)eRxY`C zLc$CyI&j0_+9$hMiX)kSuvTyCGbxQ;Zu(Yy5_FV(+kMdca}bmC#*lm7Se^mJ&R(17 zW*}yh08*XiZ0;kz?3&P5opLXy+H;SM41ADUwtsBMoc9Bramc10DGpEf-kp=`{@6dT z9H0x#hMMhW9Mza38?hqC`j{6|oe^#^*2!rhgR{5vImB0>FzuBs5MQAXPFk(VimOPj z`T1$=+3RCcW+viyp+Vs>)(H_*flpR6@7o|^f~+?l;nu_koX>PyiTZ}2*zfH-GF_;P}Q%r*|Y36=;tD2te^Bt6lGx5%gco7e&16@Yphet9vHC5m_TcA@wlPC8$T$(rZr3YFba~|`*{`aWLB3g zA`T-L>Bjy2yHTY=Z)1?}{KVW%k^M&jL{+e(asJ|GS?E@BOvydSN0cF44G=CYRXSrQ zX9KC%6ZVb=PN|_r@jVjS7UV%H-XPw1f3(j{P-2wLU8wNLvDIUG|l$x{cKxY3G$59 z^l)plu^q(>xP;C8G4`ES9BT{RVx>8nJ%aEL+7llX*9A3y(!o6ga&!dx^?H9DP1nT= z+vUNc-s2ew>l)cNmI5qat4ZpSxHMWNb*$yXTjwfB*Fu`mAa0wgg2K+6_wfM=HdT26 z)M6$-AUMmIp(vz8EZ)UhDno*seUhCY1wM36J{2r z-izyIo^#6g{jiR8WJ`tBovF_H$LV<^t8?ub;FlF{BV|)Y<7Q+>v{QW|kCj(jTvJ7` zg$;w8Bh$hp;MLi}MYdG>C9-!Mb7_YM8Ye&<_=uLkTnTjA<`eJL2>@cl>C?%8j#aAU zQrt63Q_l%ud1JC)fTZUy4A6Yx%K8BVlmEu(fo;}P{hCkl8Xgx)NpXaA^hV1uIQ%3< zr4j1vcDD#}bD&em^K^h>68;UVGpvr(;P-1I)$R4tGCk7Ou7+y;59tGml%Gl~jqHFl zZEbhqM_M=SPb>)<(HU~||Dq&Wx*>b-BbY@?ysRb?W@E}Vf5gcs+9j`ORxX7UPsA{S z_Wo9qT*@ts8i4pBzNpSA^r|ojNFjn8|8GCk-JF+4vSw}nm)QQFoBG^gL~R>Z?|RTa z2J(T-N*lI(K@BcUX);}_5CGuZo6e zbpYFvt*7j@#MLKdW=M(s_=X@zTrE&Tc(*R-`FHtv?h+=|%ulIqKmb!L;JmJu;1DPE zw&eDeFC)6E)W?8VtGXNk1UbTLF)uNgJHCxR=rxPhrZ*LrPZHosd_Y9s@7HE}rNJ2) zQ$8#NT|!r!u|@6#V5s>GN#?vAp`$Fsz*77d;g-}LrR%wjyd?kf26tZpmI-qX(cZuG z|7{{VpjG+bpS#+1|4Z5hCS{Wf6eg47B_@#WNG7_8?Pn(K<58M=#tZEsEHb`MV5RtL z_+LQ4QHnnlsUWyz*{5N^e>Mb@r+_;IQf^LIK)Xs_pt|CHj}FG*VD=1gor2VL<4d8! z;LvhM(q+UOe{FUaL}YDr?JJ_3bxiOsWh*EEBFoS`-07eWgdC&b_CrJ1(*wJJYWd9@ zHDTdzzT|#oxQhL}Ek^wO4v;1()b175Zk7)zlzky&&}sBJ1B#0Vmg3J7Y=+cUuTSyq~EDId`brj=slBG4mR6pa=&nE(HB2 z*ooaD(Z?e;^Zn2@G}7L_?%cyoVM28!*%ew3EUD4ivhTxNfTqcT{B(z~c|lR+xD{V` z@$N?5s1B@eR5y?{9b6O?$}$8HgAhESbw==F==@synB{5&3_jRzG2@OH(S$^)Yn04* zpNy~P71`+?pN<{#CVLIa@PcKccJaHM?Rc@V@iVM(6zbQPf%rrHM%c?0Rv(u)3b3D7YCtG@;SXn-@I5~X{-jE!lP z9bfu6-d)TB@CNYYtQeC%DEhixv+CTV_iq;4F30uR_A5_cXtS+#1Hk}Ey5UVX0@h9(c%beQDEMDltNoSC9?Da$ez0Nx# zkzbs1Z3I#;7|>Ga7U)#u zoApGaP`dULE6Ki8P}R}l#{{Cbm+L90s+m#AP{Rd^T~fSV{6<@w3s@ScdZZjRfrnJj zERasQ92o~r5I2Zk-72zufTRxl;T}m}0z8*0e8LV6kwozPHk$v>o_nHf!A1du(uS}H;3|Q+IKGZuoK1vFH+Ato^3$f;#aWm;OP%$3?brY?X z>$50@hpcS+b5-D;$a+MqNf_QCk3J%U)DX9lJTr?X64PX2azs<#3^Zu@^pYR_L8@^e zm)GZ6%F07Vt&Wm0brgkLJ8iKpz5Vch(yIxDF#>4MhYVnNdMeHsi?wE0;2{or&f%e#hk>Sp~&^ zg4WPr%GOq(jL81V*tp#G86P(NWMt#;IX!yo3&fH0yyQVyldl0z5QX5I{RHnd#D2un zot;cX!0Nm{%w#H>hQKTX_N zjpaU9X`X7L*Q~)ZyPTW+Bf0FC&=7utX026%yK{t^njWH5j=ch$(qapVveIUEMy(8t ztUr%=sIbxT5Z?kueuMCWR9{76A#2ua7A(h5s^=Uxynlfqe92I<TaapAvz~ydRwmRVO(wmQxuUMRHer#B=SL?D@K5y|L<(fe zI(A^6ghi9yzL*6It1?!pTAmeRPRac5W`>oR|wOqe`LBbK=kIpyNW@%r)(HAzt_SxCgu5$eeQ&lP0 z0L(?AeDdE+lS4`Hl!Kv4C0j>IJo1`ivQ0Tpc%W%MyVDBEBEqJOIjdEL8ZmihcEOzS zTYE+$BT%V|vaxTng8-S770w@3jo?%nCA~U~Wm$@8-q1$r-{MJ;ecMZ{#YChxzyY&m z<2w4`9?xy{9Wt7h#bf!KMn9d|kYNB;hu*4nS)OY`r5eT+l^I&uOE>Ns4w9H@nEf*B zWN`GMx?*bn^aVh$Vc!+4Xj?@!Rz3fI&n;L20?ez_n`&JGS&y%n2H7r`^6P0@_PUl! z4E5eG(Z=nsz5i0h^2yy!k*BOpA9}AEIbi)0yAO7GnaJ3yHB0Y`rC5S%QbQ#)SB-=J z{ki}5?GgvdMQWkv78F?qBuk}4kDU^|_q!~*%nKLwit2V?XV2%eWKrKecXAppjQbmo zYU+>HSEsnzpmD;Up~5@8a=Z&gaV0rzvq?uoi>(_9r6k(Ig1Z$@%AymphT$r9Sg-$) z=l_>KQi6b_xceQAf%_Q*o;6#->$)|&1g!_zeuyenu;sGX^G+I29w=11%LBw^{ND zBElQse;keQ%_f8z=S;?y7>>6n)*0ofa_ztQEaFTXdDsqVI*_4jGe?>;!_c7K>~ zp02P(CGw-rrA>N-(YqV=6Uzxsctc^rX+?Oevw2fO>Q>EM(4@Wg)x*42`ZMlhQuJ2f z9hcpbz;Qq%=&q3miJ*3e!lzE7E4hDOAUcZWZt8}R^N@5eo9%V;LQ-uXvi!Zc7(vA# zPr7l23v@ep*K1%*F;Lyh^xpL~9LKAi zwV(ACoryNIBZE7RL54PD*drGd3J;(@TT8sCA$E{w9gkXuQ;&zM-kMw*n|f1g*XZx8 zTjW?%8C+D;G+C)X;xg`0wqL&bE5^{*!gc1N%6oT>bkuxg`4W3jkdD-aWwNFSZh5la zs5_74ofdG_={rF**76vneN*)8FKk?zDIR~8m1v(NP+s8|c<^*6gfrrt%gFnVzkAh zZym$5%ldc37Pob`%J^oFe_D@#!o;WztMr+ZpQDJ2#bP_0kW}>rdye~){(3_M_fPlm#I({E1RPT98 z;UWhPKWc;w3Qx;2$+*r-yBbf)0jTyoE6HId3TC&$v-zRy=0qk%fjz0gvu1j?`ZNh3 zutOhC^h{P*tu=k(ksKWul;bHGrRr2lp|>8oNHi`wSy0HU45QDm_f0sdO>%A;fem8! zOoXf6)CojEHWPybCKMxl6#5Ap(=i4+W2F6mw#!IU+v=Q81s9d@JFZNEy!0|jq2e@N zOEFP+*^0}KRExJ6A*A9s05(-B7l_dJEEpNu%SN7|#-H7AZC6Y*9h-JiJmJTqc(^7> zgr+R^?0luV9RI;xMyCNXx;r-GH3P2DxCgQCu)47wG%xPFW zb57!W=GVN9r_^t-@8&SUm*Tz^O#-%u6^k3MS_7!r*KJ@m7sn^ZYZv(|WvyY}!)1~` z#=jQ|vdrMM$gmP~mLj9PBSmvnCFv#xEY;yjn6+_o7+Qd6XU4M<(bM}h`G3$wHcHI{ zx2L}Jp>>m66mWZ-EXM@uL)CS;xe$)#y5>2VFsC7U+C0|oBjx4L$r-5oNcE8D8T0eq zRn^BWP6dbO(ohuckMzMf?QSsvkeZusSTwz7E>1kT%$o-*UU}JIw*qyrt+9uA7D?Xp zcV0QExG)e5{K_d@L>p-D@%9~Qzd+9@(NFTgywr$(s+d>eX;*y(ytx`fq&eIEf z<)OpNE*xi-ZGwusnDRjQuf5JcfnxEDe}vxJte2a#%Ds#I*zBo2>>K90iFHaQ78$G-&An7F#-U$4{fY{oy9d( zF6I={3iX5{+wS=85pHgFY!NGHw1{uLM=+dk_H0$#3h|CjBXy10rO?RK>wyuPH!om5 z$RXYBu1Y%q(v~tc%Hxq)5$n)${cZ1s)Be0$hZ}y>(#N-Ej;uQ@Ia||aCYP=FW)V1? z6CrG#MbrE_?^gwth?D)-F-L*ZDlSAjocgn?=5j-+eHyCe=!;A1j>R!YsWL4(%Pcr5 zJqvqA!>N9~7#*+?5U-SLzrS_MqY(p<>yju1B!#tOZJh=WJ=54R$34QxhYw& zpMK0<_om9~c{H{x3yU;QGPkWPVvI?3$h%%(U0>H{!fbPDC`?{4uQO`yT>&4qz$rpo zXeZOyEi2j6f6dyr`>S$ahONAFLL}RWV@E-$u)cYGBGFH!< z&K(vf=IXW_v-3s=N`_`b;U=#xd5jJ{Klc zkcRHYI5T6+#=kQ>V+k-XGOc?9e_i0{GpDb$3sP~6^saHR-wuZ~a=(^$4or)e%2h2d zzm-6AL&xEGNun=ZI{6`4kj6&KMOlflc1VongAcgOTLs37uA z?#`2u>!iw~QJ6d-cTpGDaEh~e)O zn%^-SaJavJdl)iWCVCcRQ4{Ii@HJl8b$XO5iKNot7PY+YnyES=6^?Pk%;}tdi^Cx<2?3&^bESqRub0&&8 zsdCQ)YEwg>gCsnWwa)NsBuKtlZ(?8MlogNQ$>QE70CRNl*_>3T<4??{{h6*s2|T)S z`0M%n=Y0QPLpXi4s+I|SyEJ`R7L?SS^U(+1g6QFNNewk~(KZo-?%=|_LahtGEU>F6 zVz&qboTqP%AaQ;2+(E?&l|w0|*RWOQ>ms+FJ%J48HS zJ(_QY{XngJNw?@Eh@f$B0a&2DMWu&Px72Q~8#iTsr62jIGOCoC*-Hlr3kV~I4+mNk zE#aJ)p$g2-6Q8ALV<;CwdA}FJQu&LAbKNiJuyhKrlo^)ALVN19nD3I60$Gqe>>1H6b-IFC#s?7y%NHs`lF|u8(X0lTY@IcDwtiPdf~f0 zg&Y25r0u_)a{K@~Iptl~sdN_0^_OwH9~Ff-fwnqq%e>3Q<}j)94o`mj*E1ng=YxsL ztV@eu`C93B2odGqZk^)KAZ=Ku6<^DYPgApgqt>v$+eNh?T2r3x?Dv2BzRRyqdG5D~ zWfrs%oN?vSKW;e&Fkc?tA^f+CvP|GwWc>bRg!amktpG>{{P*eq{{3YTFj56vW8zuE z`Rn!nd7MO$g#GTxm9yzT&yoSIsaOw^Uj4fFVxY>c($cHHSxWyAbCd8-u;c^+P^(ZB)BGA)ek$O6%bY>){db4{(`baiQy2Q_&c8iN20&P-%gUepTlA5UL8*3%h(7XOEH5O! zFZNl>Wx+Xc*6wu_`maOp|9t)L*u&Y%E!Ja&5J12#1MGTw{Y}wl)Yq~f1}b06x(vG# zraLUOgOo?gp)V4D0m3ft7j#eQO%DimK|lnU*L~O2X7Gp1XF;N&u{0R23M!{#;<$6A zr z6hDzUC^1o@Yu7LVMpnd3E=y6};0*A}Z@cZU4)DHdy)BoavbIwF@#-R><_zYg`s(d7 zP~OUA(kg2Lq~1n3=Yb$6wdc7%Y5vO)a_wY`M^|T<67l5(+sTKg{dwB#~u=R9fv z59L3xL@&h{4%+6dCx>%X(yh&wgX$fXQqd=@trfzvCdV=|cg=BnXN1f~02)L6E6DB)Q&z z-Vy|WG4qw{OIgTp!)R7_{2^prEPek2;kLs7CHi@LFCGe{m@oZ}GbhYp|Qq1;`C^&qz!)IUf9(c(-RlD{n=P}b-UBSsY4 z?F_5KY1d>X@lP6BDK7Kcv5&vJ#}s)SKu|e( z-EB;$Zyz3o+Y++v!CMZ@0`bP3@t(k}%2D9pq&JJ=N%`$U&0DV!2qgo#=&@~^|KkZV{ z>nqeK&{=zG(;gJjAN%a_YeNuP9qhMXh*Jb@V)I~Ens$#H$Mx@pzLO=K?9-#8$QYK5 z2*6+|Rr5*<=x2Jc4@zN9UPi41l#((*9m(FC51rNA@>AdD!hd)uS`&J|(t`n~>y&K- z3%C4)k{nw_B;{sBGSP$J_zwm*k{{vO{f#?$MSmA7Rl~sDZ0NU;PTP(1kk@Lq{L8=Y zX6x6&5CBx-GMSSVKoe0Y#y5`hF%PCn+K8PLZ!IVcbd0{BCK(#!HzL;a3Ymw373MCZ zdr*&EnFJmijkp!&6C(f@E4_?4l364gUzU*(4W#tQK0pj*rRhHtz0#3Y?>{KrNDdMt z22zBTXy=?%QoXwhtp$~n-8D{IwkCkFVArq|?HlwSecvL90k*!`FQ~X?dMil_;LG+vN7*61ypZI8*UfnCMC8C<obYid;T(@VWASCgzI{PX(FCUnh2nFN^(8ks~A@V^AiGv(zH zU2asy51=1ZuI>Wa0+>-D;+Be+TCQ*1h3VY)LM3#y`=FY0jE39URzsQYQflc;v%Bu3 zzjjRv#k8Wej}AW+kFxi%(7;{V${{{VyL5Bb!;RpDZ+29NSRVvzRV?x_b>dOeewGjbkl zE#|21{|D5erAyBjumj43TAuuOBlmLqPT~Gfq!6ogwL!fHU@7gh_W#S~ewQ)i{eS4c zfPAY*85A%~?Th2;0KU@bCGD#lG6rT8p;E7S$*ne;T**8tcLS-1UG(zt7aF|<+T%00%2T6krHyUf|cN?4i#ir11W z;9^It{CvZCrImHhg=(0yR*{qN6R>AL?F?Gp7K0VGo8mn-?D?PIhhWgq~NOXZt6LDK9Ks|uZZIp-+j1Zx(?lXW1qP!5o>-zbn;R6Ul{~H zKM;Z;&~ehoH(L&^-LeL$)kc@xCIq~qtOZ|q*ar|3gyhsWbAX*Q9sp`wd4pdN>lWW| zWS9^|Y|x&eb!%Y|zji?osfj*^UOn1$7nG=02UTwbEFIUb#O66jR zw3yQ{_H5R8P~d378JbkS9B&g)k64crzEtJ_Ud`{94ci|eH52AAAaZ~Q0GQNDqN76W zN)LNu`DLLj6bhq{7Rr{9nbN24I%6g3!I7s<>&NgvSO6fa+-1|DV5y`@X9$3N6Az{aUUAg`5z z;@y)}-i!Bit(Kx%esi($?SH_rT{iUfry2OdkVJISa~frO0o(QV{4Zj*Pfs-ry$^~D zU1!}pz#?RQurWrkx7y_g3YNmu4~w>q-zs`=To$bL&?+QeKLi#AlZ9g-1@q$q4a6i0 zR1nHUNA?6#dl?akp1$?aIsFBSz?oOhy6C>$7|aN!Ty_DHK%dwpc2^aQ?KV=wa?vbB zf)0<)2@73N6tNkAbPoZ~ORLgu`j7rQ>MJvknMUlU8cDtyGx0iQh3y0h>Q= z>g9?Z`h?hJio-TiS~+G9g9-6?)E;}|CmC$~B!0Kz3PT8w;8LWj#Io9@$OBM3egQ6k z3Gk)y^p2I7bT}z31|l0P!R9alp3hEjt16vG-#X{6p1{IaEqb`ESgH7{({K$f zWB=dIEI`^#>AG10h9gio!w2QqDVGOeW;XsOedelp8f-()lr=^!1#>k~hmWb;tOtL5 z;jtagp31!}6?Z*Uh|?5ufPjxRxWYxKUI#~u0$>^fp8%8DbK_OAqT~?@?mAnXy#D&| zaKaOL*Oq0B|Ee#A=9?Jeg`;{|9MO;1Wo`BX;WDN&rs5%RYT?js3X?zph7w-cLzi)5 z+P7sN31(Gqs$OcWFZ0yDh@KIZCZbR@ft;bkTXh>x(csKoyOWt<3uHF9P2s{qV(&KC zD#!0IB;H*fD8e^LkkwYTh98x7`*^IcWyv?OVnI*b!dI{Nk#*=vAr}cv73r(w;BXv4|nrRoX4~oZY2HM?PZ{(#yTSM8g#K=b1vlG zR1q%+YO_fZ^ri`jh?WDJ(_#bqx5Mr>O}H3{*|EL?XDD3NEOdB&H>|JDs4}3>YBe@s z*(z2`klnmtpR;Fi^8^U*aC>b3Xlq!LqsFGo;v>C(G*2n3CS_!^HJkWz+)}rD0k>EVm|@O?;?$lebcHlF&8R1bpUKfKt<)KMf5*$+nmg^#h;ELm2v9k8q&MjO(X zxLXy(iShUWmDgc-UvHQjL?MfFmGV~4nYb)T37#|E-3ztAwKAml{Qa^8o|bv=vZB~v zr$*VrV_+9Z_r}i*>V!4r2JM$iyT#z6ALZ?jIfRJCHQ&n}B$i_Bm!D@B%w4Nqm2N@6 zwtG1%#G%T(y&Lj5yph}~Nl57c?1HTpd|3Hvm9L~4XSa>5nKb}Es1ZJ-D6DSY z;Px{eoZ4vJ(rKNQJulUO(>!mq6$c#K0PC+26p5TbQEd*uq~*mQW5o}z|6<|r0U)~g zbsecDKCE=!!``AJq4}mdLm6~P^cT2gJmw4LyS_yhdY}&M)0J&ON{W#@oskXOoKEx_ z)#*^!2L)^iD^K4Y9sLCN@V7^w@1eFlk^W+Epc$8>j~vZl&2^)Z8?wB*O+5qR!KH1L zoBe`58GLvXCqF-m+IWb`N;Oe??hhz=%2b39Sq_Br;RRp%37q$hI&Kq~w!)8Bk}R;_ zG{7%RUJ zi0T5drsVuiu@apR-Lxo{)%i*b@_ajGqGqGOg0N0xP~AXNril^~ri0V?X6kLD&YYjY zo(xaCxx0L3Hm`c571693Lh`#$*+h0So)AW+jv6*SsBHo0k0Gvx%jZ;{TVz2$ZQPPz z@*QfLqz~tu^VAe=_zpFAW2{xI#?#hKn0j&%b*W!#-C!{R+w~`tHfzT2W*R@Q|7~{P zWn`W6dyh4G8U)$%*3Zxjw4ltW8&%Gg+FQxOvp?W`b})1%axkpQ)EKY7 z+Ea8pW|yTZ1CS@fwoidH7}TsXSMl)a7sDQ^b8`W!uh9Gs5IH768TJ&upY6@bSr-W( zzUI+&U;3T=u*L-uzbmFtBiR2^Hpyc>XU%(9XtEz}SIZ`>xSaIlY`Ij~@DkuPPSyXC zW$1v?b?RQGDEO+iwRh`6$Omg$))Spw8<79N0W}mP^XgT*XA z@3&F~V1aS!K?;E#MJvg=@wMa&$hO>!;7Mp6C0{@R^6s5%W5zaZcx6S zBcHvd*?2g4H1BNix8xPkth%z1PpbsyVOi-0Si_jQ7ns?$3rWRA9k-3pzl(^n1vCgm zcV9gS(9GbA5Bb}lY$SrM#``?d6aaTZH`fGYMtg;Bv);I7_9*ABXaBTInfKvz%-oQ~ z^PBni|FTN_f`BVMH~YaJyPDr+p>p??+i+dZdhyBx-9<-4;CC#-+=Qn z^K#qNmDvpZ)EE6TaX&qIysmj!-jiUGN&PJQ-PEvDN*P9!A#XK%D4$oZ#7xKbBh6G( zg6N{csv_2qSSk+21;w7IcjUGJr(>mEO1~&*q4fWFGa> zxjuONKmB=ye_i2P)WZfn>%eRO(;vV8eart(v?cp-Kr(OcMg5uapOL(x#*9(O5&w>0 zt=;+29(#rP^vw#-!>yl>V365VAH7otCRmRYc{Vb}hLe4<_EIZn&{_rh7pk`0 zbO|CZ?cX_SkIgxqyIxP)H|l1Pc<-p2mwrBgxS*ueut>a1)V$A^IFov#@8L&^e6?;o z6Uj4u#J+_xznDbq)gF$Hu=h2b+m03bjtC-sbD;@b?6i`0(=h$Mi`iN$)0z6|P~Y=o z=`p5PBs2Rx<_Gb^{ORFI-d$6izVm`)1v;U=mF%I_2)M6m(Ni};-M7YjJH15j>*~!B z0llUrioOX+CZ@@DRe5>=my_gLcCF)Y#)Cyi_FHxGXt$+9(Ofdc{s98z{a%k_=Ys=2 zmO=XNW<$9KgF=se>OykZYUas|cVq6*kBIowaW3nXSziX(WAkI?k(wTiku(!g9-~z) zXPbpk>&f1g5z$%~y1}~hcF$acvcg>5SO;Y>rmjzYx%?C!L%?``@TL}(N`Is2miKs>WFzH%MIelKFB- z4GdCv?M~E5H#Cu1(B!ru|;skIVD^U=NXdOl;s+~i29tZL*p!Fo<&A+ej|1DEc4YYFo;++6!mi7SdTF` z^yRf$CtNRKu*d@$YLd7~Oce;8Z4oxX&8ceXncmler4r_D)}t)z9XuN&;hatswRClXAaW+x>FJ-aT@&Fbb(dOYDJ#C1#^ z&z?-q>+xMeo1C=adj-|*gtN0w=J9N~cXE~XqE^l3!^ixiw>6bQ-_W>*Mx&@1H^Dhp zBjP1NH!Rwx#59iF3HdSi7*UzsbS98j=f0b5=rf(RPI%3f+EobYT zNDBvw-JWGO>*mLb*~~Ep+3%?1S+*=DzT;mz4U+q%$!6Ecqr2M=PIYusbVD%Ug~<{i zwagC{&Q$ut)oAf0X3IReRjiGxJD2vXX0-+~Q6sNgi^i)q>`N3(3)lqp}upu7uGs$cj|_lX4iJ%uD}M%DBY+GD%DtLDtwjM}X?VXQSvs~>y? zTo8lyBQ|eZ^StKyJ@c?947NHR$?-t6boJjgP1LXoE&1M+>aTZoCe`NjjgCy#jx+8V zMOcpp?~N?p3NV%NekTxNt^QQ`)HU1zm-YBWSN*(Pl?y7q9%C@mwvhj4AwMVdsg_uu z?onZ`@P!UGZqUHY&HIjSPNT!#vQ+COVw`a3V$G)cN$YLeC3xDk@jx3R`?e;kiy4a4qVpV5nghkp$OD%@Z`e?2|)n}e4`{NL+J-&JH z%I!wMiBAZ#)?DYO-7lZAqL?xmcDw=?<-IIsjdtR>4`dGJvkVzyA4$kWoKy_2$Tety z!%>yOBn(aCJTpP8R67e^38E`NmM$0u3o>Mu^!Y-y4wHx0?Jh7YmQ=BZ(mneE1<}YV0iDc?_y`P*q6AF3&q@YsmENSgwq|{<1F8C*L6cBH(1c!`b7R za;1i|`blKOzM#-dN}hbhwiVW_5FeJY`z zW$t`N?rQ$lOtC@LTqp})bW=(FY`sTqMKI8s+|y{#>A-Zp+FA*TzXlDVn$%q(zIEu( zLE`qp$Qzm7&n>L}y#A~8Y-wsCslPLlPw%8K7qysvA(!Nomh0%~?5yGcuIA|+BKvWe zk}qN^r}91L%?CYvdY&0R{mBSHA63;%(L9lFNHX2J#!T6zR&>ltW6pA2sn{8F&}@V( zG-Z-EFH1I2Nv|=>E3(1S&{Ne@SV$Q16+4eh_l5F_i`|gc9yTz?V)V1u*e~V-*M!J= z!d}&v?54hLSZpp+Pp{!yd-e)*_5S3!^~5{pT*iovDZR%n&02oxp+x8JN@f~rOgfM{ z*N9)jzp5k011sH=#fP-qsC}2E4rT(AtsW+;)B2AMP`^)IqcI@k4%l6k5ezBNy(p`( zIeLCD=Y3txZvMK~L%4IJE|1mQGJ%UtE@y25c~4p5Z&D{2q)B=8G96Px(rjlg{`U39 zb486VxyI@AUD3Hk>d(k*An~I(>Vrt46Y_&OwS%UPe8orwz60P%6#(QEbGm`3gf_AEA z3i9(UkJ}YS9j`6ibK9E^`_bR1BrM1?M%59x*q670amKlv9MU}WY}x2cM9=N#QcPkN zdC;>v$WV?3++<0II;RQjwz@kAy!9bvVnTt>LtBo_NvTjTlv$i0fd(R;PpOlCfuVmG z+Pb2in<7wQ_v77)0-25YK6=N(@FbL0mmU+(*wIQ0-JP04eE3i+stCQQu@zzWEMN-_DPA@Khd%kd9k^R-7 z8mlDa!%XH#mI47-gRqJVPJH8b?r!(Jm*z&g;6w(42oA5MX<0IOeQg7kWw*Ol)=lG9 z;%ae=r|(cakgyrv zu*zZqm#J64eDiO2y$1Wi$H|;4=X9kL-ng0E{=+rQm6 zY-o?cylBxnIXe_}u6ua%#UZ}D`UuO@Q3<}@b^@Ph#6#cAcHZW6BbaR$3r%qTHDP#e znpCLr?E-pw!jho&*KTSoQ71iU{fjM?k7j7C@PuVq<%hJbZr5H0WB&OqxtFuBNR{f? zIxbCgoKULeRy=ppNI|#lUF)Me!O_=9rf%2!Y_AfQ4X^WT3=3bc%@NVp4gRpgG7Wo| zA(xXGV!feQ1FMz9@#`QG(OK$o{rvj7;geEKUyf*11(9bvy;F0ewMwv0-xSd#c*7RK zF_{i=RF9tX7p^|@P@bqVkiQoMRq1&_w&Xur%E8KTR4w+2x31~u_2%K9o>adzjBo6M z)heYu=+EMUl;L{+n&CRipY^FAtVX!c)NJ=cokU^Lp?q$|t}A^#ij;-KoIbQ`xleZp z!ce|OLpG&MkNzdC7)$?Q$X&&NL3^J>*>zg*X^Hyn8V}A*43zezj+Lrt0cf z8Q1lN{=5;RRQ`IfI<5yfa!)4-mlyV(tdfzB-TkD2&%tEk zOfK*)O^4lK5@V7>I=)L&zh^W7QYp?XCP`ySJLxd!x11+aJw^-mGXX+tDbJi$>=5 zikZYhYd6|-;QI^CBb6?~U>hHt^NT3ht&xPVIYrhRCx@0S*uAIC=^YHayS3s20pH2R zDI{CpYQHZvyY)GZ*3!5^ONL^~qn?pd$C3`Gt^?-*#kP}~h}dx}$!2W^Qv2aPazcSZ z`~gmRe=ozFTXbu?phV=|0w^syPYG5EvT zS;oPaqR-_c3s_>uw4`)md-Suy4gp${e05@-r{IN;fP~D*_%ycV;m>@ zS+!|qY(*MeMdLlq@Lr5YF_N_>rQ@AV_4~~p`$y8w+CIJ{?8h&o?zfd+`zp}OLib6N z=6WJ6c7C8Lu?4;SgAl3tUp=nrrUBUp*N;>0a=piG!c6uT@fPz8U&4J&KOiG~zC7U9b}hFVP&ywQbNYO(n;`9k(^fw4wB-R$>b=ul z*M5{Q?vL0q)P)NuGarck@NJ$2_ssyE(?s4BgaO#VGGXDPHGKpG@b)^JW*+yKD3`$F}hWv7IYY`i5!I?XG$u zMClY5=_OQy()#xMf{V@-btS%TtJSEeU&P4R)>@#Xm56VKR|v@V2xi4ke4>4tSr zu-6xo61NLV`Wvi>X`x!4}UjF$)4(XuUZeq|9A(id^!8_#_tl`f(qSY`I??jrHQ$PIE z#VtJ^o`=lLLX`AL&O#s^jCyJyCB=HYG!RBa;g2`! z(*DiwxpRAqp9qH1?R1*di?zLsQXW*votBCfY$Oip(`;gwDM=ZdqW`aU4d<{FB7GPGH-KXW{x|u|`^xeb2pHi4Q!!z}c7KDK=V-soU~BJ+is@!nbaj zMJ@9~?~Vn#rp-HUPp7|dN9|=Ae$sI55~`LJ=5?qtVBDkimh6=j`u_DWzl#H({Sjnb zNJ*LG;(s^!U}E%x#YB+0==z^@w-nb+&y9yXG3MoG4{T2GsS3>Q z3ss1m*?vKZd`fnwwa$Oh_2etMS(kl(*Kyz2M(>E_G9d+YNxOai0Hy?EAN%K336GKSoi6G{Dp;(F&)?Ttfb%mg2n zCEH&N3x$ob+V~~3)e?w}S`9p>(|ehC5U$zK+!M%u-;60}N#>AXFvxW`0AM=2blC_E zLX1Ve9)9Y(Sj74iBI9!ZMc12r{S>U#E;pa7#fPV)X6gk2Ozp2DupfIQm>*PZhO!3x zVb5S77LM^aL|Wd8$D1CBtnCCL>ANi+ZNr*UX0@D4yDeq8*FOT zFPH8)9o{0jnTW}3?#oG==EaH8(#}GQpU5bC@49WOv5^BaJ~rd0AUsjXAa2)>rkY@$ z!Hu;ScLi^-aFNCD`)I}@im&NA^J|$IMk5HS%u9KGzP4TIBoRI*B*0ERF}w5V{3HRH zgWlSTQ{tR(e~b}EB`WXT=use$rQ$yE!8Me`3BipLhU@<$7;<64&84sWLpx}`-zxJLJ4MV0tS^};oqcRdEKq>s}m#2TzCy{_zAX2QM z8G4D5bXCM+MZ*jLDeEsZj@P$P^#P{EV_te|;Cek3Q^*=c9CjQwXbLCT@`j5*v6D4m zPSAmS%w>Ezr0qK(wCx4MB`#|qd-k131;q21SCINR-u}H1Jv}aeZNh$8lsCVC9 zktF$LaH&tsD=@#h?kEiy5|i0kT0%BAa}LdJods{xA1B^AaZ{ z?5&kFBD2Q~gnrl=^xn8s@TZ8pTR4iaIdQOlFlSz3!HVWDj1mrBFSc^PL^>Ze+Boyh zQfzkwCZ`49X5xdB6voa$Zrd+3T+Oc`>Py-3F2iwC#i{k+C`?bbz0QRtxNq48j_I1)Ezogp8aVfs9T9 z`2F)PApVqF#GM(g{f(uX@0D6?*QkeXo7z3}Xt^p!equ(NZBOFFf0rv^@VrAjXVX3wS zg`Sy}FCdK_0RvIO{}A|pdH^GZ19WwUAw%mskmos*xBky<@Wwbve%I4Q;T9i7X~(#G*TYSzk9J8gKqODB;jA}0FdC&nyB7F`9}PzKPUwZ z>IWD59&GAe=iA2FHj)=2DJAL}S%npyema}bp12MiuPa>k>M*}>EWvKY&r%gw477M8 zxR3FV0_?^=TJ8e{b=Q9}vsRUIT-dFe#dfVvz^w~qdJV&+m^lHtY%)_43Y0%Vf#1W* z)5Qxu`jSF~)wgSD?KQI^C7+K!o&ExeH&!oxv*){J|j?iF=sqDFV_E}U!gawfT zrzJwZGqzGVBM-Y3Rseiu#OO&|^lDR;$brqmqS@Yz8dLQ^5^}f?rR>xOC^U-!hgYAz z_KPpXX4^m88r#YSq`R8+>sU?0*BIx*|&_Dv$n^v6@Xb>+7f za`VB{n?(w-mrNEFtLA+(Tqu|`sE3L#2vPM9=U`pW(L|=c!zTO6TY3p8JXiZob!XSudEZ`I^CO)O-jPjr z;-|DB^4B5Qs|?CeV(Bh|UN0sA*qdHiY*6WH1cYf%!KEy8pbyI7W>MoYZ%x8ufoI`I z21_`>U1uk{NOi1@QFmp@DA9eaRzwVbR9tg*9zX7BZWGf>nZg9{ZQr$dqHSuDKW4r% z3LDUxGeT4^)mMwR_sa)d{Iy#^*f0Ga3pfVYlI63STt`Oq7Exp%Pur%^sS`xzoO_#f z!;L~v^R{9Bo|9wyGe|;V%=EiP<7k(__9~Ua%dsG2J>p~>gK^CkzhX!j`M6d`#7Y;6 zbM>v;6nS0eIqd#)xqKJfRaCYUEU`*cdvb(NWb(~vyq|asfBnR}6V89fso@ij+AV)7 ze>$buve0ZYO!{$H%}X-88_iX5!%fX!ZT)aT_IEU!4Sn48+`uV4OhHQ4lK(fPCk!|0 z;IWuk>7m;()A^p7`gEec1g&Z7a)~k`Hp(f$w2I6pjRtvO#J2&}H`11PyB9P&8VL@_ z$PmnV*=v05ibD+z(hGX7lGJ@fG^7j+H3|7^K2Ez#$-2g#J1!p)rKAj{a$!qX8dssw zU&+)7;tA`fi-+Q3rw-<(SA?b3LI$XUogsaLfa*=Dms=kl@E07PHX2)Re!5<6uIdT7 ziJxrKbB%ryQE6sJ!SrqR?_k50AXP)Jo(rINL+spOqP_#n1P@#6`JJo{UZ%=+1Zfym z9|#_lk--j6J6p`fjrA64jh7s14vUNvP{?wEQgvx-zJ^3R@JFAb{O%4gYQ70oxkHuG z;OJYAAn4t*J_x!qunqZUop?dBNYOnWS7JH=_^kdkwEnqOQt*I;<~~fUjwQA$d0WIP z+0~{J#Q$COfw@tcKbjai3wl9VHpi+$pmRsb!kEh>RDE-&56ok|;;kYmGMafsLzBG0HVi5cb)9r8>c`J7SAz zd>rVwrhs%&g-o_&b(Etwh={%oV zyq7wLH?fclK?x`~RZcvMfVf2roH5zuFLLL^kaD9Yg^h2b1H@jMkbs_E9O6pKB#`4r zHO=a2$We*!@db#%gjXuDDn4chM(;mQAaAnxKkv=IgvK3Fpz>Mc^aC1=rI=0u^EO!A z(Rs?NR^^o-LajSBWtyKC2RBMKWwBcxy4#FARwO)fLl@zP2Wm&=a|}l^SsmO)VX(4o z^LN%GqF9BMK@$(@7Oc@Mzh@5&541*;jFs=?Jp8gJGS!uuSGfHnpZ{nF>>imTv@3nW2K=Tf&21-T&pL9nS zNr3r2>CS=%-ricVHlCTxaUQ({KJ}d}_0#dSv0`377rtn+AV6^pE0xTz_JCm%7^lAd zfu->~gDE{5LrL8LpJBVbHaUDP00?JPpGc1r$mI>Ju}nV@#PG8;0V#02R6jqFw71By6G-g zGeEUim&Q$-yvofK)bmqWa~N_vV2&eIy}BG9mNZF$5MXop}Aar zb?LC7(W-Ve-}F@mf`n809hFNVS{5e*mSecTqu*4+$@`N20u8YBnOax@r_j zO@-Km?qO%nUBkmyW}m}I&zOsi5WQvAZ^W#piz+VpwH*&KrU@swyYa}s`uj)5X<&_q zCJ`XIf7Nr=h=Gsd_w0~Mb7KsrOQ){!Cd5KQa_+CbGBQ7eoh|B^xowly-&RR z`ky%GuB*`ZIVLMOm=~=Y{_!bd3vx7K?bbHfqwszqIQUcH53`UWqL4gwscEaxHI}GC zGC1D4!xZ$G{qc@qPfug8Xc_gYuQhBCrNk8Za?6T8RC?BVLBTKtbICC;^c%6yQ{Rue zo#Z}E(!VI1uLbtytKIGBu=VObHF#2z8f8m}s^5iZQxvp2mg&qOzj)E;wD_Gw=Uqf@ zXt)liop=3F#kpnq*Ax-CWoD7~7ZY>}i-DFaaEj3LQa9~)elJ!Zn_rJPi!0=f(+l*5o+{Cxze{j)qcZy zke$1QVbC8NH5hiC40d`;dQA>FH2W3k8Ra`5G$$tb)6oYBP6-+Rx=v#Qwcj|gzM+Vj zQLONFNZ2iRX!_v?d{m4tsBQsL;yZT!ke?$_7_(d#bO3h9+7}I|q^rs04)m=2xYk-5 zY$_IoFqW#_w|G~+C^TI-zY%c1V4&FcgEzr^hKsS=6vt@HR~F!fCqSW~!~{JX8AY0x z=dZ)Im+KEBsrwQ3FE{%aCELs<#8&`Uf;h(wD>qFX1!ze+Q%EUa>Mzjdz=*fAR7zq8 z=1cZvjyQX#7PbMrb8^_+uV`6<{*|zfk==8VE%T+GsK5qt^1~L9`AY&Ad}|~pvy}ZD z4eS2<(Y>9f1yJByxpq@81V7{TDYy2Qm4C;<$!IU}A`%ue&aBf5McQkWzpvnP!ebmj zYwZEtcU4hIBuc^Wg>@(4(IoR_?m>K&c~!Uu=FQ5<=A(2@3D&rOi`8A7&3J;|+fRQ} zCtj&4`cJ#tz2BB-B_;X#jP~oGaM1M$Qdcm6_vdbefUvH;JR8K+M#=DgZJE(y;I|1h z*ejOomkXExHIPZ}-o+pao(duAum@>25+0Gx4$oP~Qti3S-_xb%HAxXoT3k=onVhP_ z1Aa9T<&WQsoQfMzvq-76Ck98tl-@j(ju_Eb_EFh2>6;**tC4zJrI2{ym4AT};Foqi z0kJKtZizNnjIRR6Ys+XRoCs)MIn4(&skOFB5iyGyw=2fwKn*{~Pmk|$boyo{bj9|) z=arr`8d_A{u_uBAhELBYzdG5W3wmnFdcs5=h+h%W{8WOvg(%_|zEksPJme;#FWCTl z2DB80?Jfj!%33&%?Lvet;S6KhzyZhTF3R6zC%xFh@P(dWVy5lfIAcf3OofeD0rk>C58 z#y?0uX?ZA)WI%!Z=v2xsE>gG0H-q!>eV&5} zM-getn>OVzWinC&6T2NkVpX@X8{J%M|1^XHtEYJ6I*s>=Wn?;Sfmk@w^5mLC+Xf1Q zAC}=+qY@)dKC=9|#wFYVpN>d*yzdh`Y@LCEtf3HmioP}DJ*);=)Oa@0CF>??Gs|yk zFFD4-IG+eH$lPL5PRQECuPDot`MrJ#bBAAAPqdAmO*MOpYfWy2b2Haji{O_AC`U(m z3R9TTxqQ(J8^XY6e!>8dDjDe~1CSZe0k>PjEXTUYBdJwWN&|&s$2=y~Zoyn2$Okmp zT9LEuuzN?F?rf{Iw1lJg2iH>E$A_+Ug}=Q5VSeROvcZdfUk=)C2YB)eSL(_gFkX>H z;vFV$s2LwQ>X=5Xv9PSP$Kp&eF9$V|SqFv$N zDX~YM)^ZGA}xz#-5J4 z6@|5zW$`8%0Jv#qMZH(X(q!N|=I?21$Z$T)C52b4=K%=%y`4h~rqm&?F^pkhBeM#nH6#8JD;SR8AucjdWckFaVK%*)ojpInfv_btsV}j>IW>hWp~R|h9HY-15cG3V<&R5 zlUU|kw_Z~W&Fpn%=B|!sC;e4ve3>D+@choG*=q*}{cL-TL#bDVx&(=ZHROjI(?G<0 zNN-ojCqN@Aae`ePC=ZK-Gv8qdJnOXMxyt(?-!eE|ua9&CI59bLJfBKDjE6NRs3_+nq0C=8V-ZhT-y}|$G>VowLYs(xN zKeYX&`L9oa2f-0Rn*yx#SBBuB{I|=G3~}cM?^C$Sf5)jsR{zntgvJlErsC84bhGT0 zLp_G@fbyBj=Qlx(yRqN)&w0|&Y-;w>#`YVY+o^7(1bCjF?&&Vipu$s#^YUwk6aR&? zSK8x0YI(h?V@PZH>RSTrc~?N)cHW@m@Hp0L|LNPs{5em@_dwW<>ObHT`hakWpH6U` z<=Ce~oe;9*I@B6Rj1Y9%ydJ4iBJR$sI;VI#U0(RpT`;oQ^Rn$Sm*$v{JDZTDa<{EG z{{xiCr0zPKq}701*P~D)HYM+8)YcGW#G8$burZ4 zO#ABd(CXt@oJ}mqV`Cj~)c{>z9jy9oFf{pvZKizj%V&+}>nn`J+D}a`qAYp*-}P-> zR!*~;u#TI0gL%+D-b;Dnlc?Dp_6<%YRdv2Y$aISrT0OJG&f_L^5LAl};Fbm>*Eg`T z%u`lPb3OULXs@nuK!1M+T;Tjm#O1##>HPPPe7rGlWt&>8 z2QLJ95}jlgwm;h*-&(1mD){jO&pQN}(cy&)#<~g~j zvxPm*_YR!r-}qYcVQ$i4=XdAjvtwmhIps_X-zjakd0gD3rnG6{$DQ95G1Tt$Q!*V(f5VqInQ^yKbHW=0cXP%LLjPLzpCgQPbpjsd)5_el2KL#&CRY@%RMZ2_lo=09 zP~ejfw`Z!q@dK`g9bJFe?u=@;MGSahj%9-@>-U)h0{aLf58&$)FimOKw@h@|Wi!!4 zfPPjV5Bu5ITjEyu3Gs#PuUYEWZ2lKw2kYs;!eX63th%XSsBPHlSwtFHsrzsCDh*Iz z_WK6kc+##TH|n4C9AE^w`D27zN-sxe9WouXtAE)udOEXM-^8K&nEzes3HrX#|C`w1 zgulZ-RHchriXRptDAm6BWw*mBt%W2^0nn9)q>zR=% z$Bb(IKaAi!+Ar{<7S5l8-B2`mX$*;m_8_e`2=_QQ^D^d6dsCsa=Bi6x0I1SU6QRnrxI-)f(W!x?vg`=k&pVV^8SrEd( zZkoS7C5acPwg~gTW)k!twetKpL_CGkd%rhm&^`H2S@Dk_N2?NfsP3JbIa(xfpZHcQ zgw*J?TuGbpRBjTvkHPn}nc^RVjMdWV-=a-Yztv?6TtpXcs9WuPE^Ex&QF@G3+AzQ*CsF)v3jxLqBP3NyxPX zJ@zyI{%@Cx3lVF8=w?Us`%z>eIY zt_LbUF=@H3Jbq8{hOyHY(@G#WP@Z*xsbcrK}vGhKXf}dEyebL}S{fld6-WsdDrhP%Mk*y-2 z-`{GRK5`}rE-A6ywFfO@YP~+_gBf1E%$<_P$F?u~n zw;N&OY4L|f572KkW?{6U0xVe_k-f4+LK!ap6IR=q|5zMePK!bQTAa)-8*z(tguUa# zD|GCzTw&O)GM90qQBKhBjBW6GtIvq8pxcEpmXC$$r|K3${JJ(J2~bSzrzC(G_WyYS z>=&N@{%aZdn*-arBeU?B&Z|TSsxTHyes$y8TckOvQj%S_va>0Pm5&hqsdD6j$T|W? z)Mt0uUr+!0^bAkbeD#4ozYWo^i^M1i4|A1ABR9tEFSOj^$lujT)I3d>1VN6=RNMyR| z5G6$Eeb2HYhV+rV6Own6#0qifCJOFfHk{U7Y(zw(FN}7({#%!twegl&D1O zrx?I)T|m(GzYH~tgzPWd@0){#IM^RA%hDXiI!$x!%Kkqk?fs@4Rh?=^S81q_I-PTC z^+mOLuj1uzj68(WLF{MYAZ<~Hel6z*S){@3{mG^Uk8%5dQPN&vKmet>d!RyEY;LMIN9z zEZ9jj{dhcg*Ut0<)&>5t;W3Sqpa&3Ve7u^shQVq0F=? zBoPU`pW_EVt%z`Qnb^xBRemTix$J%KJnsnGO+}4YI>m9#HTO`?SpkO7bzF}g>ecf` zl||7nZ>|2MWmYN=HX_6fIYpBCH}N~FXs3!|O@Ar& z83=(#wloouVO73OOZi_lp_YWOhGiNtnxJ1iF;^!*^QGCJ0qxt@C!037uHZ58t9K_q zAA0->?GkFWs$CYJvaWL1o5%_wrsTQpJ_?rwbhs9Yxa;>$7&nkVMAJo<0>(h7OW)j( zFDKt`B%sJx_-CyPfMcKP)qk+=o_|<3@2DA9|3Nb)?fQf)ua)&%m-FAv6?i;rF^ z9V-Y;>P$P;LLh2K(R)fwJmW#yV?Nd)ckdeExy+=ejbr=YPOY{cjn=F?onVD!#s&sk zDwnWg&Rrkaf$PtZ_Qiw3-i2RY*4rG=XY$3($jFzL7`_L>n}He6dUpQ)^tX5j9DdDs zqd(T3NpD*}<(N_vbSM$inj`M*pox4YE-NADxB`j)B}zhU5Zdy~&0AaY=NBUYrlHBUW)u9H)XU6~Z{?trU6HmrdPNzNfj|2tgPzG!oWx+CM|KLcLvs=BwO|f@&)xXCC zU*ky$ChDbUXDS0f5DN->!6($X{0~sxAy}3D^>YrEk1eu5(1S36AWx>pwhCQ4=;PFC z$4lB|8z{!w^__9Swcnsb`B&MK#BQd61HMrqIq3T}Jy;G4taY#(-+EF} zA`hWydf%QEewj+vGb3ick>bB951Gwqz;_hb#+K8{4-S={Oem+(km&ftE!MU*N&i#> zme^y}3{nh0>?Ei^JUeA)`(Z>ruA&R0?<{Q~c_eOVj9))B_xzkRTUr!$L#~{-v|jQ& zUM$gO;d8k=YJe3o&=+KJLT6Z9Jpc#`-2D|DBRf}Q>F(JEBGmt&mhAdq_EX=q5z8Hw zd_w*>D_%PSkq&90DUaKX)`*Owv` z`)TAALdlT~AFNeAM`^U?OhKa=t~FVw2z?uW$D4@!kjrxF^O?ZBJSd@Y-R-T;x(@Uw zn#{rhMss0mngZR2t#4$^jkW3Zc30r1)yC0K*OP#a{`ZMQ!f4|m61A6mE$wZ|pZ%D<&-5CfZb0msixn(Z3HpV&wT3 zkeGr5O$nP^8+ir*;pBIP-4(O3dYaf3bNTR)?EEm2pSlMx(vK(uwXUX;iBfxFc}k1f zzhS{Itr7MrNDR%{oDw_)s!Yx1A)D7Y{TGS9W`=+^xEMS)_^#Pewkp6Cb z;D=05<2X3XnmQE->sudP<&UwQGf@1q2Jd|S@s-k4Im5}buRXgXKX3kO17naxQqeet zU1FAGjb;IvfDLN%M{IEx@C(3 zn*t+KU?RCg43L}I{Zu3;SDFqhFUW2|+k&9g2sf#MLEP%k)dH2Dg(N?QMKB-1jG}-k z9|i)tO?BX24A)Aj?x(Q()BKs8>ERk$rw!pq^^k_9*N$GYXOx_ccqJrTjS46&1oPtO z;P1^UB-E@GN?7?Z6HH%Kw+wTmP@8QjF}&bm!kb;Lje32&&jZ_r@Tn1W;01)A3hfK{ z_PpZT&M9dkEG+F%l`x1Otu;u=77tt$5Z1zIWU67o4mSNwy2S>oK?%rNgi zqhmVI-S8W9smX7xbn0tG4iUjJ-UM3#Z>Y?62U6YN{`_*BM6nbZA6D8jN{g}T)(isj za`Qd?lTrxH6%-?rN0LWs#nnaNv=E`u)^?j)U~W^%sV^}OzpXpUgZ~c=FFK77ATI07?j(lZ1O&>r2Ji!!c84*jR`>qm*S_< zHzld;1@SyIzIeLEcQ})u4BBYG=Y>uFjT9Cq8`1;=ZH0HQV$vWZjY0A&WO+fUV&6~x zER@DOnKhc|lFA2UOx?||Kn`dzr2P}h@uX$uDNxNFbE@4`0%uJE>@DJlTnApAf8p~w zk82>ku%mC=(w2Vet}`!U8}h$u+h=op9oM*Fh5Zv3EWu&m69z4s(FOBs0230*+|!{p zP0P!Jyq9%9GYGpItOW!HRN>8;}G=90XSCOnm%`w`QP+aJD(`AVm8Pdt(B(EUN zGlttH)ePS;#C26SpEm+S5}^biW=E`EXM?1>hU1$CEr~y|0mUP*$)<>T_lEHCS?cB( zJJkzQ`;=P%u#dSp;%sY$)YPzsKhBERf97cz9)&yvEM$VnRjh0Hy7 ziQ?Ye&dYF)n%dEx7=8JsrhWUMV?WImNom`T{poKCJw+G_0AlHygpZ+k1b>f#aDLK< zz~CgLs(3?3lb;c-)+?1$$!r&v^au&%fkHus&T06$lsx^fG@dHm@>=5r5h2$Y{^s%3 zKMqr?umx=NkQd|87<9P>Y+dqJ*hARvrh1Ro;$sMT@nmi&=X(uxW0}k|gY=qa*{&@~ zKAaPyIza5sUEW*NzEYuc8WoORN=kJ+ zmspk@j$wzpJ5%|?VXmxg0)FkwHz)uX+0LM&|FZVh1(jo<7hD+p$}OAoP?Hy^#He1 zwLrJq4)rj9vVm)gCQcVEW!_Z6RL7`7w5RyDiChGr;^^pzuaq)AcH3Aud`>8*J$wZcgKch__Wy7EN_m<8}xU!DrS&$#>Gye z^axTBKKAZA&Mva`r2RKldsm@cd121qN;vz8t0T9s3npBZ7eoY1VCZno*aM>Xfim_6 zO2EHvNU-iDw3HMn;Zy8rIO%j++%w21a+;z15M(l*nr(PGtei7=vJ^TvZ#E)&<$f*kOU)(&5tjeh(;_))mFp{xOkix4fFTnL<+D*0e$%K zZJw&tP@x5Zj1+&@`guySHgsl8U{md8rq}XukeMI(Rg4m63@;QfFIP}+ga+a@kWo?~ zoua9jt0<-PJ3Pp;JcgqrQ_Qc*ZClZb1z7Vd53;fG^3{1p+H3TMvaL&z^FrgwRM+sP z8cU?8b>qHQSO=55cc;JWyd;~I=A)2LC&$zF12&T?{7j27*E#jT#!_eYGh{04f6)jR-nRq=q@d_--ujNC2X^_z92h9=-Ux~85838 zyO@fx|M7j9%&>Uyo9H7uldk}FzXK3P$JjP(BO+gxX&#)Ebr+H2p|`f;RK z4^+TOS7<^-5X7;9Kw(j+hMYtM&7Q%!(`r`Ukdt zBD_sh8s5_dm!q(`9nEDG@ljZ&HGXdSo%^ib>GaIuu`i3~7G5@ihzsKpUwB z*_0044DN%-uf_0_RDnb87Po9YHU~Wt-6jF8aGOdEi6rmV+rPpRH6$=fmv9<23u;CQN13nA}z#e zk&FSLwN)iIJNypUUFD$cyGYv!Y61nn;+k8MPUk4Zk#XX5HiFlI&&?4vh%-Ql!=Ca- zU4qCLpZZ6vg0i)02=1r=`f4nMybk~jjC(`s3?I5eLE_+yl^0l1{F7iR3Tm;7JpIUu z>$b@YLjuW_jihoF1)u%pl0ao4$W`v6l4rmpucF)*A*DeF#fsX;ayqpWOe^B?0p_r5 zSFONFuXA#<2%+f@89dH1Qa4(S`~Y)jVF@O?N`47!O@iG|w_`{ul}T*0d0O93sH+Tk z=AiN3aTq-KD6=Px&1REq57b3eC9?&=F_UQ--JbgMU??rcx@vURC*&93kOwH?bG2L9 z^b}10;yXgbJ!4s#qvKijd}i+l?Gvh|@DE(|$LyND$R+}g(?;jN?7Iqu6>M=Z1BqF`>FH1O4=!RrbZMgr1vFl?c*qzC` zd)8(Q!fT!#V!Pp^jESP1R_*hL+q-e}E9ed<2oc2K07^w^uNL#`5xu~wS;yi63Aw_X zkf!6}=pKB<6gI0iwvQEj!8coDb=3_T*={PdzvAVsX0dApU*49zAT^Z<@(r; zFX8f7Jvw4g3D=wLll0dq?`*BP&175&UoBwy(0|U(q>!Rwt;+CfbM(jA{G4~unUMtO zZX|zVO40brMeGEadl||@sYg}aO3jJAlOwKO-hL&1pZkJC^H?(W9n9yvcCt6_aA+oQ zFhDEtS(zro%DD?0!zN3WlR>D<>M7OtC?q9fA$KLC?YuF8%R5DBQH%Y7MFlAZqu*MU zlvJS61ORqs!!-np7!#xgktVCzAkD7yZ*+fJv0B?hlT||IpQ@szPNt~;g7g#Vjve!v zRg$~+(_WUXS}>=}MUxkdHN@yzh=xEun2V1SE86;Xu<9{joim!L%& z=XR!X^`25c7dvuoXq@JMN@td9_#dUe~E#gI0-mZ&~wOeTm1z}{QX*{8xg9>?XS<{ z{lY?l$$KODXFa)*U&p-7p}9w1eca}Ma9zdZ8&m#D3(eJ2FIf^ zAmm{3$`YVS4+X#v7sS9{K`@f(k_!cLI(6WtyMWUaGtJLby?7QG;b4Cxb)xT9!_5VE z6hROBzt2GrAIfM?D=FX15y^8vKy}|TKZ>~h38us6cl;@W=$c>_$UR8L?W4n4pMeHk zT&6+@p~&8TO1Qtn4C58S{bIuGcS_|$vG7yQzdnmLK~x@jHX1eTBzglwh`(l8vR^JA z4zp4}1&3wlJr)nL1`p%JE9`eDHdO*JB0H0L*D|sfKjbI@!@)#s$A5rXu16fC!1OfS zzF|yc(y0V2ChOpg7vWven;|`DRY>dOb28Pg79J1`kr{1tUP>pU5CH4e^jVvWny}|1 zI4P)FF7pK$LumAQ&pG?PZ`GZ7e5R<64r8fci4T1`^1qPeD><>Dm!YAh-3GEl-&T9Q zO5sXWJ4)S)DaF{o-g#P?6@)=tnS3jHqn(iE=_8XPrRdBtt0T`t(bt2UJsY^L70tn`7`gMv zHX9Z>5IJ&JKIA946-<&Vdr$q17&3KmxfxeC2|1;($`WF%nN$tcVv{(DGPP{1ePn+e zx~b;k0$;Lz#<{Q_pqhb@j)3qsCQ^i-MLa_3)xN0s{Y*5*aLv_Und{ib097C|`6k`k z3KFz;wGvDeVi!MSuPIJ5KU}ifxf0Kl;;b-kV?Z;^o)y;)AGvph{j)19g$Sx%WEMTI zPtel-02!QI$lM|m1d~4*6)Q75ipN}e6n>EgLwP79*cKxhrd7^kWX_znK#VbIDkN_k zw{ktV_hRy=A+2`uAQ@ z4e*8h4ntD#i+4ynXpSrH&KkV($ghOdW;jO{n{!`mM1Y-{;UZ=mTpD-PuS{A{{mCC9 z8zdbn`K^iSk|f|HK0lrI-uh|a;zPQerAb()A0Cw39ao|>N36BGy1|s_XNc`wE zq8oDj0TjaH&3io%Nq4G6#`{aV zw@1icj@MLtg_H@Knoe6KZf6pTPFoRpyIA3@j@hGhu8|CWqf{&0RyaSxb|7;4t!w9V z&aQOVZ3qY&+gW{VSf4j=oP(Zh?nM-F?`kcz+U1p-g z53WK~L*l>I{m8{t&kRcSdOHo;JSJ5CK@B;vXvin-QFO#Cf zkUr4GQ1N_7L|yHD%&f59R9d20QUH%a01Uar*Q^prL{r2+F_8swnF71-Mz1&DWSGyq zPM(3scoX$780yR^jY%EG*rrUz0a>uvRv8EaL9)(nnnM3_+dr&N*ZWIy8%b}_o43n` zu?mXZ;RRwMp0gd-#iAj~Y-bPAlU0bNLsn~Vxs`@@lF>XhCIG_*S3Y$|eb^wwxvb9|+{1V&a%vN{G5I~= z6eaPjnm|vdub8yzR^rerz%!x88$~v`=0AW z5&0c@J5WG8AiR<7OcqBI%0G(`O$@#|+a|lDO2F4ZvHXbyVZM41qU{FPNVR2_kMwHC zgzYsfoYOKSp^3+$Xat9(b_ow-9=FSV&na1vWFsJ)467hSdQ_;kCf=05J1Q`;Xrql( z;$>ZZ?lW4`kvKu?E06@{fgB&`W3E}kcC79vrr2WOOeq`cBcz@w1xR}9f_y@gKJ4jn zOqEV#>t^V2ViQ6EMh5FDvP`R)q8lxu=Q`~+#)9oh%l;IzLrzWn?^f$ofM2p*P&IAA zigBq@-U%}j^iGB(7m@3v9RMCS`Wjr+zChnA4zceHv>!*+i?72(oGu^Ls0HM=)k9YXBSZo+C=lf@Q{1dT z5s^(hiRtRBitv(if(j@*lyeWZF1z>UzFIs56_(F*@fMLxOwrUOzK7A z*=R6O30B6D9&QWxyi0D!*Fd8Y8;TdRLn>b-z~7tz@XfG?siH5M@qPBJDK zE}|ZwiqJ|CUbF;5L_$j0x48a0el|LZy5oiEC&jp>Xtrw6npX}c#g!mq8*KbGbvdRv zg8qN~y0}0PM&=dv%N}t%w2t^evD<1UWKAC{Ef@u6nK-=YL>?;7Q$cV*CJ!8sf13;a zcOneDG#qtv>T)N)r4?QIb+?I25ZLv(zfE{k+rlfvaE5V;SU&q2sggJM>))h{prXzA z3)4fNBrt`oCf>{6IOhDGh<4r1#_@)EmyZnE>W@6sXj*P16=7%Z63ot)aC>+XvBmIi z^59Ll0v6zA&Som#+Pi&swXaI!W0^Lv+Pl^G9No8DOas*+ojgPV{NWZ*gNgpjo;O7y zSUZt3Vm>v^veWTk(@Az6XwAMw14?3(=X7kkIKm)piU7IG&1+_4Em_as%)WGTFA!2_KSvo zro4pz=pb2x?|!fXYbH_fha`vTADy3t<;_g)=<(|9-)rV&P8ZCY(KMmT{;WbxQEEvh z_NcaA6yj2=*@~`h55A_%r9e_LCzcP3W?(`xHgoRFj1ZpcPQveYb;kA<7Cnt)g19=) zD5S);ypmjAE=i_ENr_fcu|554neA4~gv=Bo9e+(}U-^|OJL9J7<%cAF@6kVJ4<;=2 z=cS+&eIQyl%f|&QT4K*kkH6MN9wsbq%bMVi{RJ;O{fl-{6Dr~hqs$NUshNai&IgFJ zOeMmT(12M^@2L5%2x;U|Y5!_#XtOg~Vkv*JWmb*c9Jk2mXV@S%@&!~0HLCmxLQ-Lp zw}sV%J8PC;3?^LOBQGtfe*YQ@G!`zje}ebknw z@9!A(oW^#AbiX4I*7LGrHKTtmEZKH=&z5GxDvuS{ePY+#+hM_V>3iC?UbfS)y-EeV zG>x_5S}8y@K81e4Gt2AGqLT=;&*=|6*QHJOkiRU>&vWY#RkfFK%7KV6Lgxj{HqG>7 zuI_8$Bzdm6vp8G1x#qJ#_@g>?^UmgKY(eeV7Km?~fM0z*7NCb-z0kr{*M zRcHI>?Q>8c-;EBji5`NTg4@~$7HP@wjV)pEDE>AJcrU@uh|dc@f6de!k{b7JJE5p^RK*IGh|Y z02q$0JUX5@dnD&etwCAKWdBOMxVCm~{?P&G8Y>`7q!KPT7KK6k2a5=J^GoKj6>hJT z?UPvH-ES4UBWn9qcudo%2$I%ra&~18e1x)@Jmtmu%S<>(cNzW#WuEr&GM8wrsXPbtWFrGx*l3FHY zfaCmohmO=fy&CZL@u)b<9m01zygp;U2bTx?g4Hrb(H&vg`( z`*=vjA*p&RT>PB3?1(j|C1$nL&}hznE zuRM10!F##)lJxk|k*n7#(y@gvI}t^1G$c1-eUN7*-&WQ#hkv_m+&7qd8MXQ}HWEDWCSU$~%Q z*t5;<>a%L1LGb^md+Vquzpi~;1QDb|8b%uFkWN8Bq@`OxI)-LwkZzGw8kFuDVhHID z=^VOq=$zm9Jn!Sd+=JvX zX+7b~4-wFL1n!MDhIyvdam7Gvf|&$)i$UaeGDHu?Lye(Y%;6(_1dOF8tdH1FIoGJH1rY$jJY(dq& zwt(vO3WJ|z*_ErZIYy$(-k&fMYsVej3wnavP|px_Sjftf$? z#Cyk)9%izqIsF|^gn9g*Q|C%R@l*uSF3g0`ikwHCEg8b>2l?ydt2{QF@#h&aw{cp< zem2isG)DB(?)wlbUi<86F#?4|lB%AyJEXIYybZzT88G@{C!WDmw+Def-1tyvF8oYHD6zu|>oq3$27C}&5h8?TtUZ7I;m zar!2@%1aRG>d*9V6RpJm-JQb^V*6s%^|3j>_wo!{KaL|@TtKCB+ z;7t~Ed8+dU;~hbMneQ6YJEbA!C7I^g_sZUNoMAj1AwB>^haMBY5w}f;tjw|e-Jj*< z*L*x{E)VVQ8nw*H+Z|#Gq8D}EWEL$7AshjjgO6XO49-oJivZK(R1#DxNM;n>KKk{wC0&BsPS`5Dz!^i=TFqB>pnXjon_#d|lQ%L%cUts@4?|oQa!U znRe-&NMN@Aa%fQyQ{eyj>>FUN|0~1g`y~+CB;fo*`2V>0_k$=t{Kf(zmq-~n|6eHv z6sQ-xzajoDQ?zAb{};d?8~G^-A|kQ-XisID;{VJ;2tc$rA{U_iJghkO|Hwh`?`T5` zLCW{<55Y#zmHSN$oGz*O-Cb+(t!H>A0h=!?b(6pyFQ4JuZA`N*f`**)lNc?Vg+wDPd z_>FwD-^aYU6TMABTpf+t->lp%IxYSD!bAkshQ0=1{e|!j>s#i#i^3W-}L4=RKJ;X z4-g&jhRnX8)rfMOuD=~1I4ka0L>aQzEXdeX*d)Kkx%}7XGb!f!@L`+iE<)peQsKaWQh!>e)Er%;Gv;?4R7t+tu2+{U6|VP)n#EHpPX%CR)12 z$}3fWpyCJ2So-Zci~P;qh3a7yy*hiXzv0;7F2?*!8sb-17`(>o5*pjvkLNnv3yydD zVnuU*ll+SNtj;D+;E0#0AyO>WLMgu~dj%}Le8!RB?`o~7W$cQ{a@%@l4;<-()9W|Y z3H@a<)ivl4avoshsWV|d@_E#6j z0C?$MyZIFyi!Cjg#W|t~0U%`d>6a6F`B>x{QGijk|5hDqXIdvws4!^3FK4(^{WS*6 zEn{yAUUEn#rX&i2K1vkUVn0XJ#w&1JJknGoTPPV8zg0*lEOy3IeX*!cYnJ^f(Q~Fi z4v`Afs@WAItO?$jc>fZEm~{iZ;1Vr#zW$}?G+nC8dC&d4?fcGdU%T_PPt-{cD;}yJ6(gw4-wca(!F=@&_FP1N9>mG6Yw6Y5X#rbK#L zPtHD9R{rki@sMg=b~ePZTB&}}-_M-P)McAhp8wX!4|a{exM@??sBWP4!-)o6ulnD3 zKY=IU($u9SP){_mxRqglER%O7<#D!^@_>nbsF3n@wsd^s?x=U@wr$RKg;(p!?u|{E ziZg=ldSwiDR>QTMY0xx5`zhI7TpvM#JX}f!)g0HO58fJ4$cC3Eu@N^iW$!NNOC^dQ zsHYFd8e*||@jQEnF}(FJBJFt>C1#IL*7GG9hy)wQdk^*d-$-R%WswQg3;XisINM-c z($TUfKuGz`rET%)t?kMClZBKYQ)Tm6N&+n@){eKOyEWWD&YCJ(el`_OVNDmva|kKt zZ;S|5f&36@0%W04%?N@rbVWi1$mP-(TqMD`VbK?DNNCrmc+UOHA( zCLk1{MQ^copwh7$(2x7)6rfD&mp+4_XT_N>ZJLjxmusmx=qR)< zHJk#2C9g$iP5Su0BRH^C5inErV^;r4Y&LJ^S4sTJRHBqz}0I0 zP4^i3Gl-bz-t%C|b%hmljq-YJ%S~xlc!k)Fn)qB~&NQFF(R+h=Uc3kQoMF>(j#Lef zpFN1Ik3uQw?AIB;5#rw%^*9ShJS?Fnj6 zlkx-+a>9VazP%F*L-iw{tFM~vS-77psOX;o+JO2&C*Cbzxz_||Z|ao5Uj0!P9^XkY zf@2I3C~>0QIex?3->Ej;Pw!1wvSwf!E&GMK*PZT9VuU0oOAVx&&vxOzn6lgs7Yb!W z1vCg1GY7N2W{aXCT>=?R0&82QeG*(%r6Z|AEvIYIphU9&8XAZB5H=09nD zmC_e+MQ&?I4d@*!quaV+*2lElcT#|j^|MCBTyqc6Y1Q@>>|4cxPJ8I zy=plLuMv-YyrCSf<(k6!&dc4ZFp(VGYm#SLEF(0OY~+*snJDXcGMNqAa(tXT1{{ZN1^6t<<^8(C?(=bBjE-&4Vi3Q+Pl6wSn+ZY z)~h2i*#W$G7XF)r8bNrjY3uw*j8G)I**5I6AVX85^h>THB#rAl$2NC!sX{n1?#niQBe;3bgcccO> zyE2SUKT8>=!KQquag6^)^9+s171^_P8mj1Z=kdg+hA7xNe+pczMTbfffrq?|dBe&c z(U0H&RNwfx(w~%?>AUnj{%WlFddlluUOqEtwAkp@v(%RDef?(yLqUCKzUuicqHOtO zx6%7mu6wqAEkZEg%n>-!gs>bp!C|e-dCi*?8TlhcZVFQS4FduTW@RQ@rtdYgo{uOJ zVx}yr!xDK#g;S7=LG|M~mtE814{*kuDbbBK2ba6b_L6pU#OMd%^JG?7XaqM&@aUwL z{&y>z;e{t3^TGN#0(|`o6*oIL>p1gSDi5PtAPVlfpGe1@&Ky=hc;3;1CK2UKtffhg zNRSaA}P;CkjSImsxu>dmDPz<7g zL$?`mDHEA5yd#_~p9D>%f9{dtqZ_0Gh6s-Yd!_(YD*O)Y+^5b@{a0BEVg|vNh|O6p zj$ND*apQY}(7KWmnyti-w_6e!@pg~~um80K4;VB-?519Szzw*&7ChA`XJ^AFGEER< za>Q*r`FZQh8|Ynq zT#km!x_`Jo_m1Q7Adj<|jb1R!jBuXg3LB|4gh_>nO$j|MdL#8p3ZzR~;5{bjIo1u_ zoh!S2(Hth8H#)`;Zjv3n^_u-;pNaV$dv2TOVb^tzb|J&mQG%WF;vBCAmYypyg?G6U zhgXF4(zfP-oH2KMVBez*3gbs*L!T&tm?EWN#Ge=mai6*yU!P(>!HJ~G`WU|E8dX@{ z85tn`Kyk9$E^n(0O;ASwQKzh~Pt%#MTari+Su@dZPlT9r>FN(PPbjpR41v#|BMr2| zjY~ZdfUCK=5&oz0@CpI`<*rx{`!eGz$+*!L>5d>-jDGB!vU5uC&WjCW7fV9MX^key z$pW_qcI+R>NWX5~fbqwVg;hl;?SYfy>ayeX{fttvKjaf94nA_}APCgchvmz|V}0x) zR@b7gcbo@bWnjW&gz8v&7o!-ObHp0rnKX|9D_l;aKc5yx4wrv#<}N@eAtLoJpE)t- zrh7O=+q~M06=!E&@Pq`1iLj=JkeR7}m%QfFXK5D>RZX%HJbWHs_U3KK#@-&0z%BpsKKAlJIGcr;#SZ36_E_C=5j(i5w&w@gsny z-=ovb$Ei%|v75g+1(qFCuhBbyrsICrwb0;fmg1HJ603>r`L<#a6|R`${kkC<)`JTB zcK>UyNEtlU-l_&N9>IUyyJp4UwR$fC2OqnLn$eJ-+!fd08Nbw%ex}NHB(>m{_bzCd(tT!ZMi6)sh-4P*&>;w#v>&>;;VSFX`=2_+-V#BnXuiUHpIup4HHj8Hdnz~u6AIQI1 z$uG1Rr_yIgD|X8F+Cp=^k7M7jTI(br|E}`0)GjEWP*?YO_iX%vDR4I94b+<>(u+`K zbl`a+9EvD}x5zi?pOH0R43)q-Aqa~k^c zx7j<2KfW;h((Cs&=-7b3kDR6(ZUrv{Z$(A~FPF9!wr=6xhoW2i#s{^nHV4g_=ksv5 zU+H~LF9GuX!sW~I)SFWEM&+^AWCPFe331#k%lRh1+t62ikCt@7ZI4z=&8bkDO_nSiuwiPYW0U`J0G|M**V@pPndH`U>9c|hfP;stxJeXa#iKQ{)*MfezjVE z-hv-=tvN zq?%0^=1jOVb+>x0B0JZ}vAWo$tJFsc&SilSjas{~NB31zjjHS!R1Q0JfTWRRv7RHr zoT#cHogyB=F5HIxEd{Tw<4od9@;Rdc8mc`!pS;;oJ76Sdx!Q;b|Av~RO2^ttQg2|8 zt6HnohNd42Sp2$H>H3WEy*4flS%wU#oWko0NiM2{-FW*~emllN0ot0Lcsq&S)3Mo( zACMkvM@mB~x#R)9t@>=APi{Z%tJp}UiI%Jc!CHn(Ll!oGl_km6?q1z&L6<}7ZgLZYJ!DQs?BO|! zXX(?y^_qu!338UCG?tC*bH`cxMSN-acG`!)gr3^jL$ZN`cDL7CU9s#BjPNDFxXbVg zMOZ_+_s#S#cem!9P;sS|9}BtjqH-fa<4b7C`P@rD{$bO|dNTeuL&P^#AN{{H%* zq98xSUAJ}MCpfX&ay0~to69+QDvn&3YTqF00pncO5k+lTUwWZ>mC*$8`!1b-ZwNB} z#*dL98Dy036c@9xKX4!eo6prkM6H+K<$+!+fA*WUevkd(+aSGRq&MuJdrU&|?XiHI z5d4rDMM!PW8kU|A3O@eR(~DN`mg~FZsER@i8d){6LFEICOKD5B)~I6=)E>b%ArNLz zrYdl_Sxvm82-$}`oA4+#O@Jcq;Gq?s+i=Z1hP_TZziE*ADtXd}no$|t{mApw9m2ao zVFD15sRC>8pR)j-{tST#fga3&E&Hm8;0~7U(!KJ;ho3<3y*O$3_alrrw`+*pyz&i! z$CqQx+0#Id<~(*BWyT;Bd{YZACKO|*=tL~#&uLc~+zm#f`J518wChC#&C>g-YhF#g zhFN&OSM84Rj1@ImiYj-Wgv%!WMa{b#@MT_3Qp|Cwb4NAKPdYF8 z_RvuX>x;ItV>J5P-G<~meT)2b7Z4X01eSz>chrwN>lXFdw38{uOKn|b_oM5j;>8b9 zbmD;}4F$~6QrB^JT#@4TpSy?G1D(y^zHgb)?%ckYXBS&v7v|G~ zdl30ZL~U&i2pb@?ohrriJ_?OZ0`rB!#=w?7Nx1QJ!CBD@@d0`+7Cev8E2%p#emK)m zhHRLEaIQWK4X146x(If6Oxi_!XZ8wYFqDJS-^1UHzUq++NR=kq^<@m+LbluTd)F;^YQ_ASK zsEmrtQ}#w~V!;w+5!@7ysE@68v`B(EOiOY>P|SRQ(}#Xqg{T|uQAUcrnz!E!iKfvq zZ>4Kq-V^50)iVYiNLQL^PnIu`yvFGsyy`xYqew4Jz1gt4*55}Iky`DWgkHaX#w9t^ zz_pu>HFnkNF3f~3#u`ZN1FAemZQq^Sl()zP_?!f!XgHpxSnX%Ki1!+Q+K)YUKG~Rl z-rBGwt@@Pf;7-0A9cinJ!rV46-D~W*+&XROh|ZSb7ju9O1n_XHzL|zw{R+->GVNgo@jKYZWUPP-5V*ky8Xh|V5=yG<) zB0W=b^ewkCw1rlrtIAAS5Ed|IpWpcrWhM{k=geiKVD7MN%=mqM?J1@2syt%SCcUms zeTc{k{2c6#ZS0tA=& zdqg`LNqpE43wWw2yyr5~BOlp06DA&{LGxG%QL8z{$KiT{ePa(?bVot+E{wt_0Ae;s z_jakOYLP77YJrM_OF&jk?t8|mont8#xp4tn#+e>Up?uEK5s}~{t~Y~|S_UsY-cVas zW0^3?9ZW~e>g?^lg_k_D`o7RjO;;dbd<|H(TffbE{tE5zI`@{IBr^pq%+z zOF15;P)B`TybwRDUmpu%3S@lb_lCgD!DWz1hNKhQiz*G(bMUQ8o1w5)Qa1n&B1$6( z6c*7%Q>IY}09PFBkM#hQX&#{)=|SIb`J~*W{dB_yuPO3m<3g}FLKij;n(i04ooKi| zEcw7YA~8n91nB{OOuK$}eHNWBw!=-9JhtS}W7TRY1%C(tP*QVo z<~cT|b~^0`hL(sv&4_l%il6MPyH@zneKkCOJ}&vBI7Zblgc1Akz*yWz52y7PG<`5( z{@E& zey*)#`G~7~)84cdQpYS0Ray<&2fzJ=b1N~(ik^A!iFgU0PQAyOL(kwI=H|`KX~xjX zk?v#cC=FV7u;Z#9{KSL|#hSYHacs+Gq&taro&}CjMoJSIay}m~w8M=*CTYJA+fF(A z3cnr9$CkSuNzwU22Mq;W2CF~ta5-#Up%t2$Rs~4KKIr#5%Pi5Gt9Lr10Xe_uv|1Fq ze;?}O0Z#|W%8=SHmjAFXV{50ydxJME0FUh{u|bQU5nItX58h6Nw%mlI{Itt9iQGO) zHuR9v4YeSthB*Rg(Y={aSANtwRnAXzu3F_5!pFeaq7JbpaH$x!vWPbmdeTM$>|ZK7 zNKYblc)l(?LMl#o9XGl}i8Kcjb_5o_{!0mwPnI-n+ka~m>zu5alV zs#WIqDb~*$S?9)TmH(gh?27Q1@~s7_o`eyFz15gfyodQ7cbTFZXZ353G^htNpU?48#9kOPlt~*k^nMl# z3k&}2HOsFYdHmy~Pq;9xqNS*8!)(z|FAe#=yl8(g@4S%>5PCa9QSE++v2k#6MwSX_T>k_3*A5v+$;ZCp0qGT4RpjJ^#%TRBUgdN#FqD!dq4)GsM;$OqOEzcI0) z)b(4te!EnwH2rG&*z!g?oApX?KEY7ioA0@p~HQf^!*t8m=y1QRx0XC-cNgwAOwu;@LSTIgriJkR=Zs zAfW)0p9KbvhOKCWR|(AAZbNS!V#L$z@TPQ2UHwM@w}XZkjb`(qNi|7azo6+euGYEs zF+Cq_^~0#sOYCv`{7ci%=aLG23Ff?nF~NZMBaNrVsm!kfH|{H7`!*UIi1j=K;H`IS zZrH=PSKOHoDT5rmZ5bDHt*%!MT{)&0uAMC07vf7ha=0DwJ{?YFcwK)zl}UFb3(4{& zr|t&1xtY55*i36KCJga)>4AccV0E3@dK`>P5)^b{Oyo73fWNC zYGd&_kJWHSng++(P)YIr{3ue#DBnp}O{S+Kxza>B1$#Sf7QxOJ6m+9(NFtlKb7-oR zW&9(SEp@ome6yB5IT!DL!OdtoZIj_koAlHMi%w3$=%dhSukl@;`>ug3aHnMp5K~BR zkK^BqB$5LZ^B|&Mdt8`5$q$-)Z{+?nQ2u8Ph42Ai1Yo0hV#V&MxHxN+_Y^3#{9;|= z_%rSN@9Vdt{U56X?-um_?LPizCHDI%zx{&{#96EtT7O34Uw?vxekLPh6D@`S1Vtq|JIXNiKew^uK=nAFabLpw4=vf!sU!&q6ojsrc_k zXL|j!R1>%={zXXZ)_+{$zuzff35`kOynCeipQW-!oSl5+RQsosf4kKGxnBZ^LYU>b zwzc%nQt=|rT0d&g{pW_{N4Vw9C(gismWm8uU(Vp?KZ zVq4;vb`fSV>wc>c)?e-ZCanMD8Sy{pJtrkvmSC1>*6XMzYW_u*W=>*?X#$ld(UE_; z@Q;89U&9aWuS;R#ai?`~P-wKntFPmqZ{5 zM&2V{BHdZ%gunjl&mm8o|KkaTprh=6c;C-$+Ap&He|hg@k7mo}ZgHge{f@E^tD~;! zh}f;I<5I&GQ9OgpPMt@p6xR#y9ljiepJ)16tO@mv`EZc99}6@Gt28Tl~X`k*0l zx!_C*wgNl#C%o*cokmQM9^Ir}rz7G}`|7e}sOwgG*8v#1bbdj*STSb#-50){8yiy- zwo?Z!nd&hFtpu;aACBP9QerzFPBYv6I~nfHSh5j_Au@36MxL7ou=cpKt4m+6G42U*sTSAPc^ zXj=5{oTrW$J;K|TNsX=(bKC9_&zL(&$&ID@R8$u02sDOH8p3Z@Mdxkf#bU*F3qG~P zMRO->d!JC>+ccOZ4;7DZc|mWNCKxk(Z+55$WaoN92)RE2c#3=)3v~?)%A#&NY8@5L znznNypB*yZb05CcujUyzjCB^g-LH;(njf)Wdj6VF{I;YzBJ<%apQkutXsu4nX7AAT z5`F;e@>)90Sfxz0eP2R+2^YPb$t@l2_VC?R%Vb`v?-V#BxTUGf70Rc2`>GX0|Q1-e{b3^S5wmoRyJ?ls4`baTK2UTrO%+I1h4lu{Z5= zf23UPj}hKi*#|>?yJFi@w}+b!nfVr7#!ZfJ{OTJP;ddi&!c6h&_0=j|FWu4YV4XG5%P!wh|e{>XpuT9W_VFQh9uDXt~>12?Z!o@jx5Te$}LaE4&UG zEGl8|Sf1Y*!A8k1?Nd8c--vd6N6+SD_B4#vEu+7LNo?5Q+PD=;lgB6L-VB=CD4esR*lRNzGMzrR=n&oDkv zpAGWO+YZ4p!W^P;LT73=lJxkJ?P|tkx-t=F^3!L*D7S}l_)YmLZ@Gu!O*H5%kH5JP zM3;ovbCf)tLw_5jK8Ax(3qLyQWjj@0z8ePQthHQ&0<8vn3P5>jH*avgPWhuFtHGOKp=mBQZwG6cbG(FtxrM4s4b&E3S<%`KcL*#|YhYmV; zBfustO6Y~{@pw2RwxGE5=Z2!Q^^EIYuhM*}GdnHGww0utH}Jy|yZX?m>~vq+blBKs(Qfm_t<4GWFa>VWfOy=WkNc!Q z=-25Z|EmQTtQ;`RsFz_sz zhW9`!H0>}zq`H48Gd)Aj!%zIb1H_U6F@J1L{nXo-#4B=ggiLx5ppp|JETZzsJoJH& zGFSxAL+P&X_yJ8lNE;#)6fAOV9;jyW*}-vLMUV;A!RVQBAd-WJPZ{&|tK&2s=hE7U z%Wl9yQ2h&k&bDh$Of+2KD_W8hx-HBbcMzxdIg8OtBJB?WguiMBxd#X*o(4S1-v5Nb z!D?7N@xF^4aQA_Sc&wFXe`hS|vpCA9KDASj3WG5LVzWfQy%kr_DJJ`95oGG9j@j-u zXO+JS0i6z9>*MP;a=l>}u){;<-K|4RC5)=n7*3hD3tP`nx5GY$Nx&a2TO$|Uq0NFX zSOLfZCR?}yXaU0F?eHanRg}P{RQtx4cBslrZ=pnRG4hQT78L3re94z+>4jDF$@*0@ zh;`_%qWcS|I9B7;Ny}xcI2MFKA?5Q_+%yUm0JE%=4}Nz_>=k6GeeqTjS68(C09F-E zD-z>&|0}sA0X5ov!BO^P9F)Ft z=}a%Nm};-H`-KtobL#IK21lM+j`r&cdmq!wz>PQHBt3UFjdL!^H6gCUx>!oD{mL#r z>WQ-VD?ZbTfDY4eq*M2n)AUyhlh1;Ps(EM5? zc^g_f4d}@h?H&=dKn%HqlgBIb)B?t5EAwkqed33-34QWtH(cG#U%f;}J|FcoCwdXz zKdEE{#NJwK_{;!QS+~M=H$8XNe~+}=;nFzgy@adv2NVpH!WA;X;$Z;-KEFXMC{89!B^tE1fEJf? zGPjXr6U6jOf23~3VB$mT)tZ0*lRVW%1IIm9xd^dj4db@b^ zs|q&+QIdpr`ZO4Nvgy-Xbu3`*eKMgoUX|{)P>J_=@bfuP*XuwA#QWVWfiy6D^M=Io zRg#Y9jtpkfuc`w?tKwzT4V|Z%uJ>8)SKb~DnH{vKfN}RiO0bVAWI$N2bQbZqQm|w= z>raP;$7$whP>Rk(e+zBvF@8qsx6EGva9ar`&hwG#eA{~J=YaK^7Vh0=fhk6&XV+k+ zONCrA;X6UAhxRi1_|E!Gy_~L#Dg`6zk;l2bSchH~o`)-$`=aagXIHLzMYD0OD`FF+ zT>WW-+}PkAeOi$PvbgvnJQ}67^Ww6(EZ^C7`NESxz}*YDf}MhRKT(EJbT3k(AD=+x zURhHaUf}R%6)c$+TO9IJtj43xc~~&Nax8>AFOyo~hckK{O}TwgZ}QDk*L;98yKQoG z-P+yG-mD}c>91H*iTNzRM~t{!JVU!^;iGz5wr9Y4)B^(x*J;Ey?#tGNp53w^MPiyg zDW((WT*IkiNrIuohK&{#z{J`;)0Mt20^mK36K&(&%hG95B;MzYR?A(~|J9JT7S zr&;AeDl;No(7R3ka4p}d&PadMY4y5e3F`&WTJ*I=ZW+|wM2?!;lb3JaW!&6DV;aCB zg+k^86kJ~pBwrazy2!;jjbes+febt4lWQJg>PH-hl@ksF(g5?Pa?t*1HyaGZTTXnzhMmo}@vz`}aRm zGx4@}SoJy!icJ2hj&LQJCiVk-EcRm9IJo-pgrZM{|0v(Q7lzd+cxyeB0I)BIKO zM`U$y?K>cU;l;O=RRD6h3o2xhLAhV!#GF7Gs~w-yye<;ywdZYxa0z+#*iDCesb++Hg@0DSzL@QDZW>#MFfhv`zc5?batjQjvn zGQPF<&J5qz-(nKFYR7GCvd(#}vco1${mkagHAu-AgtI*KzD|lZVY?J>PLfi0FC-tc zJJoC{q1>?F5k+qomO4{@zTijT-9P^xHQQ~=ca7Xzu}&T2XI7pIi3+Mp-`6_X{H8*W zc@(PE0!!=*q&||er)<~m2SQF8r$*{O$1~z&NC@T=&M#m46aW0VQYqa#BHo_5H;z|U ztsG?GYi1ooB|>)m(BDIif{K$ZPb)%zQ>mE?^$~1G6&})*Q6lQ!`A9eVW2pM)+01cR z7?QYN?`VQ--J@I66QP5#WyR-s(6e0IH}ZIv;wo77pA|l7huNqL7}IE7MJDn z)Xm5CTwjqrAqcTav76WivxijqC+jUO8_g{rBjN4+;k|O;7C!) zp|1ehoJF$$P;%G}N4XUc%s=E92Sy*EY@b0h+Z00hjt!~#S}j`mZqmIh#vPGtb=uCU zZbtvI>IeNFJ+5!o_%n3)ec-oUi;jSe#%E)NAg>@53!8%umah9Fprfb>Xqm0~>{s7_ zMdY!Bw_ebc6PzXVV$*3?Ox8&>aSx%mY&FO2FGonJKLv4~DjX8FFP62OcHP^(2Zhv< zEt!<;eN=dM5{ecHVPL50tK6yVcBG&gbEZOebSMyS#f8*-qpN&Kr7R0WW7+7KU zd1lVFBGa?(C@Zwb>(8hGxD7tN)qz}`vRPKoU;pa=<+nnr5*7Oz&Mzs_XRLi1e1)IE z|D!ab-!pkTs~E11zf*@~JO z22Rl#0hO~1)7wN5Q zCV1DX*yt-^qYV36TosJp<9v@ddr#t|kzuUV+<5jW^REDLoj=#7BtNv{x{|DSkzdfQ zzqmT6UyJcLJ(DBnRH0@q=vTt}84y4xX^2fgtq?-Di}|tovsx|CgA{Y18+gNLr!@)Q zp0Cl<<#&Zr-~Y%FPr8*Cn|hD;kbuC~aAB;xi<@WBYZydm+50f%f2|_6OgBb~4)ksj zWH>XOxM_G|=*2@mm~r8_-Q+Z_#K<$Y2R9@K(r7H%d8rEN*>PghG-mk5c&+cKU24vvASRbJ_c2N0S6^3a}>S>6?3vW!-ouN1kEUpNhCEehL zS*eL3)Nv>Ap#fo^sq)uPNX&*2n*D@Qh`4djv<$ah zyI?DThG=CiY$8YnXS&gSHerdDwFNDXX7)=OG+-kT z1xsbIKbyzTHMQVVYZC_YrSsGGhk3CEcs#Vfwt9)XoQh)QhnmUEHvGGx({o(=8MGe+Uoj@zeL3FR!;q%8@s zYDH(vF3Ie2nWf7Pc4ss-uPg$uf()s1;!;S*LXnUIOQUJlgN{mMRZN6#Vd9W%7%VL< z#dKNqJT9dx))~Pg;&|U(5bt z)vyXof-8mLwm3CkwW!d2VXQg&j@!d2VxICda{cfiYR%`OI#Y4p343t8)~p62gfrq2 z<^HP*RlAF2xw{Osf5p9YgFAlpZY7}0t>$H*P(LfVPf{JN3o2ER1lJmokBfk&dovdJ z!FBq*#^N&m_2_$T`@I``gqLG#BaBaW*;4P;BFwv=>?Dlvk~&F(0DySfyOSla_~kcx z+_$7=j?H7!c#?PnCo!)pXtMdvM~pK|&yVtA@2T74MzEBJnaK|jK~4n{swGpMkBsa4 zp<|3YM>-TE^VnPQ6)f$Cut8hb`xXNEn8+*-U=0Ti=d@ztiTCP{9!kenb8_>uj`%{o zj=dPtjjGYXbsQ0nB9VaIU7jy{h592((?mXz7Sih_?|ewzHfEm~G5TbHE+2_7IyAr{nPA#6$}$0v(%gTJE2#Q5e-m>@eHgJ*6>r|t-t;s( z^e0~R^JXFQstzTQo$sq{1-qnWA<4k{%`r@Mtg_zo~f zV)Z1?sKJEUj-?@&WUR0@|JPodQ;l{_(1bYA?=*5JpNH6Sj)+9!+%N(jpTr=^Q$>9l z*{#yfynWJ6WHKtW63j*2**}{@=M=i(%m00u-OoV`^tLwSGSM9>Qa{QED*hSZO@AgE zuYz%uJMaamFnOVYOJf!w(_Bs|k&p_bx7Pv^eW(I>nj zM|OdYNOQv`l0cGpy1~mr@0-L#f>REhws4b*ZEL_dt}^}%X%P-0m?P98xkO=Jel}s+ zb6ErM?NfcfxCxP=FPhUwd)lk7&y$Xa=V&_d&EJ+b@-Mq~V}|JKEx@O+j(*sgcB`0g z?{)V+?}|i%5s!t|Zz@OJzPhx{;4!l)Rkmqqjnh}&fbEsBb-HErSaeo@yBT}>)yJN$ zJCY_N+otFK8}TED8J-Ndwv8xgC6KA7R->h5TXx-bU2Mdek0Ft1GscT)Bt@U&f|ihI zy6Um!Nz6~=pLJ-1(6KPm_o|BH7lN28C zvHVvKLy<#+*dGz0dIEWUl_! zUAhI?lI2Df?sxw1WPzY_+C!`VM2ZJ>QEswdpXEjg6*W`k>LL{i7wy@g*AOVoRHn)P zD0+dqyBMLouN+2|jn7r<`i^dp)%lJAtOCwa6+Q`vg{l$P0eOe>??PSnZW^KK+V3wM zf})kSW_4rT0*|K-%qNb7j(Fy*8t@{#OSdGh^e%QS4W@6JljP6XBv%eJwBr5bv7Y|wk992WtYGEDQI*M~(2gp~El8TFoAdp~fu48+ z(2Z8C(un`^a0Q`ejT4Klcq>KPNdqLqmu}NC2BJkV0Vz=C?eT6`gn z4Cu7h_Ko+*)BmN4+(=T#%(~@T;Hn531G+!!ygw7SKZ>Db7J%%Hct1$4OPA=(Gioe; zId7x$?!OMjU)R!c+8`hT-+1T7s{an}{|VCOCLw~f1$JaC|9zLg?l#9lEH0~MgguG= z)4BfvJp9H9e3-yTpbsp`@+|CMkv+H3|3_hOq#hk0VVSU|JXV)xiA6-(L5B@n%v1jq zRYrg;LjQ_CXZ#MyTmAYT!OQ;TkGy}$aZl}k;g8Biq<~bElem@czGU({oEonzrc*g3 z{nvGW4zu_l{|>KP;+p>K4#}KG({&1XLc~Pnu^vYl!SA@*X)-LhMZx3vm9}kz{m)JR zMUYJ3zStr#b_aznNK(`+o&N^jel4qE8pUAb>Z2#QRIh0`L%c6EZwL_kV11{B4A~ zsDr;RDE;H3KfFP}LS%x5(*F|Xufs-qL>PeWCHNnq2lym-h#~ZUz4D;b$_aMjIjIO|2M2ASE)6yHHjJB%AF>>0JxGP9=P7`&e6sFc2>7;M%!ZxN`oY( z40*WuTn~WL`}H4zYe}@7dcWOE|BDnZFeWerj;L?pH<{qLAu_0e=}!~4UIb{e>?mj; z`_W1D`6h-x6~4H=)_{8#rgMTrG$?^Rc6jaZ+2OZ@i1gpgOVtXUTplt{o}8TA-7a4j zA-IZt+B+>wod?dS9>^(Ik%>=eWMxx&v(6`bn%Dx1z()$~iej7YXw*%|mi0CZHAb4T z;p`_6Qa-W!nWe6 zkrA|PgrPS@6h6CzD^z0H$5GonO}=7QG=A zm=X-YOv8M^BP?*#yPP~mjgndpy`WW7MyaP1K5xPv+&+R1ryVc9JeszG!Ss4ev8ccO z-xB?=rSaH8AGq?>gF%-mfjm!(tMeWZP>4@>AbiZdx4$d4qTfcD>)roW&+l?t-#_u z-XN+2YnVA$0~7t*6FXwCrFoA9`oIkHtLdT>HcvFL+yd4kS?-TPb=ErHAL79C^1M&ndEM8Izr3sjE;cDP3JMCYl;kr76cqFX6qIXJ znAd@yM5wCaxbR(SIR7@WY!vsha8u zy5ofNMm!JiLE=Um*l~T-b$zxC55>3Rw*MzxUKE8lOVck|d0h0BI4OA0*@Uqsy{^m8 zSRtOZB~gQ4|I9h7a;v}+FCl7r&_ujd=H$)wBK&>~6uEh;?^`G#Abfs7AF|-@ z_vLa8?$2Vq!L)of$V*Eb?q|i+@b+CW<`n!eaByS#`#H!khx3si0qb0JjWo`-60 z^EpT0;2BTI^Fn&kbeP}} zW^&s0rt6)02mYHIlC}`+t@s^XskK*91$L}%$&n+Yl?gqzl2RuY8)&6=7A{XS%XZ11 z*dFcpwpB!#eC!!@a&rvkO=N@D(T~YgM$q$0E_cf9e;P(Sewu2F_}I$J!z1bP)}K5v zN&ULVSDY>pdQ6Fg`#*y*yuFA}mQMSY6k~PM0{Y)!Y+)_gJyNiCU%wq7da!ddwrixY`YNS!&f3F6e|38v*Z{N*H|P`7=&-Ccrh1X&At{WAXr5; zNV?Pe`rG8)C#W%B)va!8qVfpyl;cqPXtSYc`{-_B1&ZRo@u9~jQt;xuFZdI^(EDx( z$1LiRNWDBE;k6&4PbJX|L^P5FGVvLGvXY>SB#SrgZdYF46UIvxGRAbl3#zA&y2;eA zTp$Fy#qsjdDvn=6>!gztZ5)=-H~z^x<)lK`JPjmMWSd&$Bp$fINhkqtJ|`E;r_)~# z@Wp;6mNG5>s@Fw{CF`zoP?khV5}$n8i<(THOjcv&n1J*YneGq9mUeez-fR172X{zB zCgY`$b+0XsEDG(i9h1HFe(^2pB{>^R`r#wWBJ5BfhDP%5agCadqd#uG6w>{oM%s^J z=C{`sY(x@ex@qhSd&kUmA7LP_?u3S|?%OV>hx`%d<| z{Hq7n1Yh2$$yH0cJv|kE@Ud8GKlR5$R1+Hb8@o8W@Lq}Irz+HBq3W|~`dH34j_@nO zPeV?_1q3=+a`O`97a|o*mv2-odcf zBhTqh8XFmt&6tb|@BX7Zy6e?B^dza}0Bcb4pcm#d8(SpJ|DXL9|k} zvpl4bLDyxzDbu`2k({Y+40)uCP*+S+PjwdAA=2{iNTowS7T0!lL0lk9kiSZ}N@Ra| zsh304zTw*SwG6&z6mMnYWIxKrb`<2L=haz6Sj4Z>2zpbBvWi&dYx|97)_QroIa5JC zLW*27xK=8XE)ri)AR3VTe(L!*({KFZYBX$X37@!O);<5Ols;YhmOadhWeiRo{$I?Bo7~sz)DPtj!eyrm`ZcY zC<+lJ@4sXhRCUVhqqA?{Q(a@pvRd(U{V*9l^3C)c9<+!g z=}ney{x6TMIT_fN3(8a3vUw3YAkDFgMyK{tE>;df4o~g(+O1k6 z5ozHi4B3_xwpx8I#_p@frMP@#g*-Q5yTeXS1lEc@=@Z-v%7mce_u4%Ba9=IfkX^@rbsPl=al=@a&@#ceR7*Kovo=) zg_}A96V33lDBJiC_d+)1H>M`Pt(7>Glt}b`AndKT|5TZr0tt4YvIX~RT0(XDgw1~P z-}(UgPOO}^|=GTZmntb1jPhu5>^ zTz#v5a}8dndA>~kft=Eb&V%Pj=-j8pPn3$p14f2L>b%b|hd4A|Hwy3ct7EIR3ls~i zA=lyZilsj?-7T4m-6*3AWe5#@@F9w03_B?Vwdn`y<{3Up7(Ghn7z%!5+wK4Yt=)}4 zn&41Q0O2F|9)!Y`i}J<-{VQH~+Pi*eBGismmenO^7Srs9A|+E=i1BuR%0NFePW;{Whf(q!U%lEL_zg4K|u#T zp#uL%fqy6{Xh~>)euAEmbnVaQYg8A5GwKSRC@8`xQqM$`oKRQCZrCaH4L5G_JiPw~ z-GuSoAWi@-10$pNpsVN)?YzO2A8#>;syw&}`MH%=GY93rFumFccqIaR&B?GdJJK1! zaiAY1C6|sofQCdX9vrQW+H2vt*3o76a6x>Ck$0yyz6do96Ss$ihZ7AEy4~_Hm8kCQ zK6yYgbqx)Z`ZdbGzJ!RNsk6M6YMqqQyX#Rr?Dm0ceXAkOX~f6u&B2Y4L;rt2eeuis zpM;0erIENQcca^;<|efbDfV*I^c{lj>^)t zATjaME?x_#W2S0trh2_6Vf-;nX{O<{sfQu;rF1FIY2@3$4968KVn8#wCt$KUjq!Y| zbim>3j4uTEf4`F4@A8gQV}*yW%aLZrJWY?;zu}{$n5l#~o8&uv_OB)XwS&h})VV%% zxccVb(vENOB`dnmJ;A$Tb4g;A;FpTmMP;1V?5Ic*u6RU;nhr^|3pXw!7rL0x=WNQmNUpEK!K!s5FDGI2shREsV#EPS|%pUrTioQQEbxKe}q=_?ha| zG(H)|#AxZpw`*zsBPPJNxFnJ%)6=+g)7Y2R0gUe5rgq8-CSCZid|k}bOE0{sM05Mb zm17dGC*eY-aXy!iomxHxrCu@U8TsY4U{cFdp?YT=XIkI7e6_EIgV50BxbCFwqe3E> zzx;SllCdw^<@#R{!{B-;X6C?g@&i|A=L+|;qlNvE-KGA=ter0Vt0wV$ z_5rSLPJYK+o@Z_+CmVISqJFm`LgUvQSDc|GrbI%Vx{2=t0$?X=rA0$UMk7%-sEUQ$ zk9!9rcRIlnu9o~(Noz%&LR^%csFzP#Sis8=H-U4~>4?hESsOxbq$^nzS?Zr(W4Mx6m51Cq*(jZh&`{xJIs80nqDVqbVe|8T>4-%Y zMr`EK(RTv5K`vFDwQu>G9pNg_W|s0vv=Q6H^T#9l@xmnmP8)eZF`*wI`hos(&Q_q5@ESD%_FTm&jXtbV>P z`gTxJPLK#IzS3ch6w5GOHr`b918?Iaxr9;bIbR%-;StLkgC;7+xG|3rbN2i+D}zPP zb26;>;d1roT9tNNO{T>CQgre91Ddu$$|@?20^t5e7|#p?6H}|Vx>AaGP+>|iUkfJ( z8Hvt~9sC;t8b3f|ii(Td zUy%o@75#ox9>y67HUaScj}eDK?z6W~rdwIfw{K7lrb>lADDt+TMgoDEUlm}n7IVs&CuLLEMdQ4I79aBLn2uGJtd%2Vxm%C|t6iez_1+i`$vB}2PTS3DNG-$I zWd?ZOCuqKQ&1vG8!^GIW4P>rZU%I|`-F05M+JHN8!h9(rv@r1&0P@K#>wY}C} z%YcaLnfaHa`C11=3QO4XM4e|rRbwL5FeA-7*1R-&Z`4jvr}w1hV7v&?`Q+PxdQXo~ ziKy0QdbIk?=xTnVmYRJcP7^jZw%gtPb^eV*;q{qdp~7%g?ICVQ_a*Sl*Y@k9Ly0H* zBbFn!7Vyu*_bmEV3bZD;MobTVNsdX?G!9mbu8lfJYPrB2hP-@koRF%Vy+46KHnlyD z48Z)-9$Uy90i6@tP_vwh^o@a+1K@Vjl>7fRL&C?HoRCdI zblO){Js4n-MMA^X1@Ai;;+>W1keF~z+j(gX>mNkl{Cbaz3?DO~@b-h&5HKbpd{ydH zby=N?dn%?k$gPCKyBNxy5||zfz50%+_%gMVPY1HN+(Y<);ic<(#lmTgeV%u^pB83H zI-f$>s0~E_UIH3T$&Tieoi0(lqt1GrVDMRae%Wp+4!qy)eozN)UW)gsABBgLRi^uF zLl(P5WB71hUTt{5`x{Lb^JvUOa;k{JM!~p}V?xe~MECun`T<5T5g#ro=g(RP-4|W6 zDeAg(l?HC#MwyF}1O+YPbQ;vAaxBZIuAgi*Q6clxS%w%TS0qz!9u2d z8{;SI*^1VOlL?nSi`OjSq2urif&-8m-@q5WCP`45TG^=aQtTQbzRb~jm6~6#OROOn zV{NBXXot%4c!>@XNLI3*hvHOS+LYjW{Cag7!UDHlOf}0oPxLs3*PW7@<$P%~x2WC{ z*YHH{xp$>_FJqVI)$9*TE~Yjt;ssNzoFok^y4a43Scr!hTEQ`0*&t@q-~E;IDBM(a zHy5KN>%Fj3J{)y=x-F*O6Nd&k&dBf_y;>d6@vLdLw)~32BiPEGw;%B|gGfcKUa4w% zPE~tLHx%u=#+X9G;#?r#ITlG25edo3u|i~}x~f@zNkmZXi3Js($)m_+n2GbOdD(wY!q%_R?PJ3~8AYBP- z?coEP<~_}+wRGcp=9G!C*n{3;C6>y)B}5bJ5~8O%$>b^Dh)^hZKSv&%2@R)*&^u8E&BgKBuHGtJyIuD11*%FpJiV8rQ^@SXy}`~F zXM&LnGGmXw2XT)NdXA5^S3`e*tb3pMM&gRgPG1f*Q**wae+qu&_J$Y|nS}vqnI6l6 zEq&rx3oapN9e3U;jSLSz(mFaiIy17MU&NYV8b2x-^GIcSmq(qQTHGsSC)PqF1UD(| z@f?LEFQ&hwC+9?RAJ(=lwR4MdSK7u*Rxcbg46+F3a1 ztW3xLW;U2oLHiE!L9l;dzo)HOhI{DYlc38XSBUt9H!bly!c<&X{#%=-CS*ZC;T9Fy|EevwSbm=XO0-qVOZQDv5-(5Q6EUc1b zCTQM}a6Q?+xBKx>H^>*KENMNgGcw)qE_kRL$d|_&L^cY$v1?uE9U2M)>@nSXm;Af=0 zVm+{=&BCf6Zm3z#A_rF!FbHe%)ZXVgZ8ACwak?di=NwCe#nNGA7bTw zbtp@N91zYM69=Qk4RaIS#EV(x#TdXYZP$i60xJFlREAKfqP9{Ax= zf@%~ox%T|1RzJOG-Jf}2NqQ+tO!X5kLYIS*5?5=PXW|f3+WKaEgS0<`&#AJ?MNKLz z-{p7Vmene+v-NFewJI{}g_goh$f_nGGN_*->}vp#+7EMujGnExJH+r3T43vR2(2*d z*cwM_Il$TNdMaFIMk-hG$ZDnIg;v(=w!7Ny_r2_ST$03q*`u-8>$1Ce8@6wm%imce zBU_S4I4K>&*}O55@ph5{bJvbFzU&9F#=H!agkWc=H?HT3D!DDc)${LtiS-v!jfl zdmN1&M&xS9?dOM z^|L+4WTuwsC2w=PQcr9z=ZS=+B_ej@dc}hgM!Q^x0@o@{Th2c5<%(U98_gKmywVLR znUc>PybI*#iplCv9wIo5{o{wlzWJSyLa+;pVY!v*Lpmah8ADX!ZOm<)u&&@bz2^>{mcox%j?AaBUZn>v?`Q zr5L-rlldY=x^+S6q1%9#<6cR!VMo-|HQKSmrz9*USUTnKcje0uF)Y_cs@@LC@~O5S zi)*^T<9T3F`H&LC2mYAxfQ)EumytL_H4}zcUB#SRc~u*wG@4V^7_MX%1zz@!p6M0d zi&-PI*|uXP-fT=ySdTN@l$EqP;XH>XZ~L#W^C^z5a<a9U z^7zOdiUyC?g?`HDlDa>>=(@h;rEUeY2NTI_c^u6NohoQ$7$tZNdsu->R@XmDP?f|x zj8{}5hAyY;439$QBGi?+9TOqXpPz0&0Tr1ksu^cj@_bp6G50q<3$m+2&cBD5!DAY- z^^FnfG8{x`133lhFpkljEHua9O`Gq_>lq>IMrFk>d^@;Ab8BTF_s?x+^1loyh+bhx z5`~|7XYA_D`d_k~06g#+BgP!AwHtJF`9?6QL&kwTbxE*RfZ~#Qq7GpL^4mAvwtAO> z2Vv?O49tWcS2t(AE5>wzDX~%(8n4I_TyXFO(hd%{?XDPWK*vnDBi6on9e8eyexNKuM2M* zJdExK9#fE^yKEe&Lzd8@qdsyvTU+-ze*Rk%mZ-aKrm-tVNMR_M{8mQ!8sSHV4`nC? zwy2Ez&U?O){664M8p7uwM4Qc!sHo`kiur$>S2O_o$3 z@~?@a8AJTXH|}^#k*A$d zZ(b33`UL0KMloanU$Q3>at7w&;VElA7m+wertoZlpv6B8+hYvYM#>HjEEkPAk2Kau zhebLh{#;p%qVRcln&%p#jRK0q@Q#*~LFO0jZQM6{@K?GXQjLZk&$%Nx6>KWQErEPC zCVJ2#Xm7cf%uZUbs7G&u`&&{ZnNa%}KXYlKG`%IW!MOOLR~tdscIC5k8nsP4$z_Nr zS-qkt1~1j`Yw39|%we~?&jqP6x)MiMfBB{%c_wG#&T7a4om3A1Vq8cMiI&XBvkz zENh5>kY-J-P~YGEV9b%*^X&AEz;PIZB5d~O$5P|&&u>N(WB<&sgSl9T*rmG%+}Gnk zH1}WrDTxxzz`&rigKuRpw`{z!ZAewq+Sj~#tFaYk*@mm*i7cr(oPG~vhoj|@H7Dy; z=BI~S)(1RxO=S}vW_SXdubUr4k6dK8KWT!Cl~sYV2z zd;s?zN<2Sa$se(9qA=2ceeq2U+Cj*H#bn_*ImH^Ib^U9#C+laGB-&28`q6_jJY)K0 zV-B%khYNrqJFk+_M*Fe5(`Nk*8OUgY+qTq*t{+8?R+Yo}4glem0WjdmxZ6&ATN&y7?^^ z$O>vB6cdHqSC_N%_jTXO_LLA(!Yw`y8$@au0@qh?ftREwt;Cq+eYwYBc99UWjYfk5p|1Kwtvm9I1iAGa zT=FMu7pEuhR5l-DcFaaUnqOTlph#~&?!0i+j>wSX!7z@wO-taMXxqX2F)a)#`^0JU zrR!2!$Fc9Df@EP6rR(5#e*&4-kzzaMQKgrs0655lAuJN|`K2UBxTz_2 zB_ShxiLWxlV}5paFy3)|=^NpmvU#|&%GSZ*T%^uvPBLrVX-|UdIxpBZ6L2b2p)gPP ztsf+%XU8iNm1$qsqm2^$-8wrv4|F?4@dRhhSOvGf6O=Y!GaVwc677+D1FlpRX8z+B zWrVE(YwTo?(=Ca*S?kroFAjhXNEkj@18$+T`BCh%bt2@{`Ps&~+sh2^8Plq@(pbFa z-n#SC1#q|D&R-4;a3-JRg~h(7tnj)6JE_f}BlmO*r%bflZZ4gAOQtf^->ZX}5Ce@` z`K6*E57D3rM8%WfC!DR1FcS#bFp@(*D25>5igZ+~fDqxG$-s&X+XK|2T$X#`=|hTu zAlqBvtn}x`=9W(feB9U)dUgP5{bAUdV19nO6O5NsOeif93f<)9CgN6gioniQ&Q?*; z)FfZZy6Iyj+lfdPy#bU@4a3l~sO@^Np!=C@Qud#V!9cmAa~GSXw4Hn8FnG9ZyM^f_ zS`H}cm=}!nL(M=M?t6VS6DeTy*84t_awjCL+A!$0#NUB6sVJZ;?1UA+uOAElXGcfr z=;&yaNC+Bkdny(W1ywOIC_>AeszydPbQ#xvb+8*i!rE(2gBb4{W zJo5`}mm-~z*bSsLShA>UU7Xojm9^+iw5@WWB1GF`ke{Me>IQTmGpVgATWPrqq7gwyc?mjSf%2YVMb#ayH! zw6smbY5+wo5!ML0N!z+Vax!HxS^pit(BRO&kvD$`s>gncJNA?#Sm=0>M#ru4ep&Aw zZcv@;@lu96_2;B%z@WW%mIBQvBBbvTVW}e8DEpYO4V8|9><=Lv>AQi9FKf@wPEI)X z;$pDUDix>Fk0qLii$~=l1C2psMu0=HOpS$#XH-J7bkfpaO=Wea;xk|-5vsxOR$zOY z)itU>4gilb*V%nGsp-rBbDQ+KAq`pWZ49Q`XsY-0KZcZER7&s~fI^%1Pi+j%f5_zfp6Lknf-Rc|s)V#YBQhdT4|e zJgQ`zlLsgv=*SE7?{SWZw>F3ek=Jcg^8Hou9 z%El~Bkg}XmEFdCmRT=#30L&YMok^#M$a#c>%!b?-mHyFF!YpeavpWxN*Y6pGGlcaV z%xHn$$_X8PuhW(H?b}P|EotYO7-fy;AL=u70`LL1`wo4!JtHf-#Qg1V6xtv8$_%Hk zWS5s42L3RM=}!0Ft_(ITZ+=nKoB+5gr;LI>`iGwxio%hw{QXD$uTyv!`Bmfw#jMfK z3-sw@!AqcocVHQ%n7sIw6XQPi6G97Phd{L3eK!LJ0OTJ^^|mk(IWL=3Ygk_b=YC8&$5wjyV{aZlTWz8vg<+<@B11pA7)h#fDT zT_N{io=1+O)_xnV1--I$1Tp6J7iCd~jJP{13LniGU*@S>1l6?3VytqpY&GOd-Z=an zoW8}hTk1(0rc?f)fMD;_{<_v1yWZ?XGIk z%jKRd{#v2r(DhulXUUS){as%f#_h>ms|@eMSyW|YisG}(wgQdXqI8Yo?IX;Ah@!vL zTqE|0^=A`9WqF$HO0)iX+&6vkokD*ibV{$c*JXo_9-_+y!JA9|1f5>!*v8T0+#@i( ztS@P0LniRg%daskt06B3%DH|Yss2U0`u3JUaM154VTpn5oq?6y<#kAhF%w7`e;)mQLx=+!ko1`xNc%fclM^I& z2>u1oC}>gB(KWTSwA?wnyXS&%z>GW%T^}wW%mf`}My_JR!?y zKzZe_=o1u!w(p#5sWfo9t<}BiXh?Qw0758uC0|`)eZ_FJ63XkLMqF z4uQm`%>(Jql6Gardae+sxY^;Wn#M(pfxl1vlccb2GZ3D;Y5DZ$YS6vtR7hb0a@~E8 zp`jsox30@CR+8{1tjy9LY^Iz^Bf<7W@I9Y6C@dnkHYU>IqlieMrdc{vjn{J9f z5|s1$EG1j)y(gV-XB;nr&u;N$E2vEK6@U0s#{p?NUkB{?i(HP7RG>28LQ+EP(4fox zcU#Bq9KA%B^Y2|4|8pr}Xj7X~_XC#62?+_K48cn}XjqD8Jh0;d)xOtV%ydNe`v~2i zW}F{wV*QmadP$QQZ%;~{>-P5|>L0t~JA3?Ik+GYX)nV#OvAtV_Pq!wxTA{6sn-A=u z{eGZdZ$d{qK5vya15kk_9Smi)PjCN(xv4S2`01GwP;T)>LQiy`O(_ZeX-}o5NL{>N zGJj4WFaF6Sw>eQw433%bcx@nHLF})L87Ss>&Kt|dJh~k zLi?MJ;cm7e_|EV3O{%7GL=91QDY6 z^nn`7uN2{5FW0XGEJgbH_07|Nyy^D|2@?QVC)aJ}$X^Hf2Y>kMt&g<;1A*|o=Je-c z|CVF`9PtOB)fmi(*53*3KVKNl0vL#;I#dDhZ&URTBhvK@$lPVnTMe$*f;0)WQ_JoI zO2QvF;vaiAegN$Kk@sBT6=G&9^f>9ssIfJnu}!cyw(jb_%D6~0t&e0g&yX#NCU->K)g z-V=kion-*Di!7I;omikfL2#t7s3;f6NQ3&FS>9aUIdzv4+Rl7?5s(L;M~G%iqc6|89pf`gKD_P7bqKAOJXNYie@Eb85Zsf;W3mm9t$whc08Z z7OSv1dW4Cw8DIx|zbhmB|5oMyO-da?iq>Kiw!~S?<-D0%HUJNKf_quEg{isF|2J27 zx3jC3sGt8IGyV^;^qMD-k4TZuNX~8c$$0DVx26BbBdF*Kih$&DH3ez^jXnJDWTh@# z+pg%d8&^nRFCl>7w_B$S{O|EUpM-k=DWgT=cZ*yhNnC&=DcFuK{_)NK-2E;f@KWGs zcKDY!Ehz&CbuT%O%N3U3VGSU-J$Sb%uE47P@Am%xcY8_PXyG`-YCm?D3?UJ{^P7*r z>9C%MOwRMskLu(ePf*iE^Gi(p&wl;>l;q-t(L}CCgh)qjB(1_)we@gY*APumpnk5d z(tp06wv;gq5XB04CW-?RJ-M@UI9uCGM#pP%_jni7R76A?5-N9nNpem@<(Mt=Ywq;> zJ)4M{Way^(iu{lEJbs#Vy3;A+2?aP>Z3}%uC2=y`{uOnVLF&0s_4Th_XCW;|JGroJ z{p={dK1LEy;i;l5e7!epLX}U~n`pu{-=M@q59B!X18TQwY_L(S7h_($S&YcpY$O9^ z7qHDGawt;)I;|}6!Q($Vof;>+6~$iL**&GWbqz0Szl3kK;21-W#m>aN@!oAbU%B)0 zXnERBL8IKW9jaE-F}_09cp>9-)$Vp4jrX@Ga@yk^p(-P#w5w(sO zCEB^HhPe=XXM~Zm@cqZBhGe0|G^f5~;B&+FlkN6Wa!*u7m2N#ly1OR_Y}A#-Q3{@> zwE#HK^91+)7Vt@1A;1E(IoU6%zIN*!bCZT!pK_^w2YD;i4jSn`eSGR&>8r zi&)icc2)}M9gZrUN^gb*q=+Z}M+6iUs4*kFH>L1yx7lIubM^bcyGo%EvAC%!TL`&Q zNz@>XfQW^NROQp-Y@#vuGG!L+Q%exNW7{Y2`R?9lLd?0Gx>|7lYHk_qqefxbY^08x zd`YSzU0tC0)?DPtSIHaUmC?%YEi0P~2ebjoWA@=Z8B^uVt!&NmE+~a_DqdCqm0K4p zYTJmrqo)>zxB&qjR5o8bV(w|i@NQ?~-Q(<03`j)i%!;}%_en5Rd%&$_ba%G6u)71YOceyGP} zSCmY62M!WgVFvR{O??b-X04qgZq+uTFq>IVrj{Hbv>~dxCjxRDZYDWa!A-YOb!5Oy zXaOU8J5@|8)=KS{6TwbPI$3(*V<&e9AQ_R z|4umG^}zQ;cHlokfiL_Oi#eLBb-qGf`k2GBQ_%cNY; z@pQrzy1ZaSySK6sdB}jGptxlTl4-SWMdsW>?$E8Ul2|Z2e9uCzJ!{C@?r8ZD=llh} za<)gM(I-epdaU?Ux-mw}0j<5638U`LG;QaqwfV9Y)}i@Iqrj2noj_~W2tNL(tuQ`4 zF}eTjsYjSv6Co8$5Pd|rVD4Drtlz%aJmTr;nd#}8kUbT)VaR9zkS8b7Y3+dZ5t*rc z2(VkQs7M2g>&l1EKYch+Sae>-J2+ozjFkX=&!TnOIhj9M6_H@l9An5GUc2cX?z!!+ zQ>eN=UY+4;I5#)+X~Od$qc7dFe$SnLJ^~4fW~V8XqJmn~)y$O-shVaPrP2D%A8W^Y zv;ZidckRjh^18wZjgA4w?bgN7gXd+ZvNEm2-*SI!xBAto9BD?fXWG09@VxKzdX2(6BSy@Pjxyp3Z$_Ci z_myF^c6+luD*s?g1IIW~)~xZxF>M+5oM2ticvN3uJ{#`g zpVFS12n8_Fi-Y@pJqEUYdmNA-J!6ln7WEk42e^T9Ce@)iwUu=qKRUr0vIpyDMP~}& z>5^k1z3P>;7Ke!8v=+&3xqnAtUSY)VNcb3DV~;yz3_Zs+2aPf(38?x>CQB}vfWMR-0NU?qJQRG@eeAdpcdG?CV1HT&G-P zJB#g};Q-H4C^KDUX(j(g2J=o)ZD)C#uL4YT|3@B|K_W@{UV`~3E5Uzb;EQa!V&+5b zphK}J{s&`m8Mf?4$5BobkTILbzAQp-)LlX%0*?#~^N3%JQ@S3i3xG6nKYs!`C0?}< zwzjnIfk|{6gZU)che$I+Y&ZQTE^WF5#@8H*iGIlXWbGiTWe+M)59Q5 z5JR7f!qghACvxuOGp+q{q$%ZGg$o2bz86|fYep+4ICqWBSH42SoJh0B6jArH9s>UP zycJ!!xO(*)9&%(h;&eYYTwo`VXu`8j=YcAlTe&AU2DoG?O7dq(>|VtS7W{|#gdr2(=rO`$ll<{}zDPO19XA}+ifpT3ib zymQQu%*=fm?lJNi!nzmPb2GtP_nVvU>aaF{zx5Ga!Xi&(MOjUF?RJ2tS%N8OF40>2 zpnf0CURr*I>8kx!6z zR3V_+`4~?lk%~FH+%fJx7wniuCcsDMwE0>=6EYS+t}D4O9orK3+#91vARmL&!vPu4 zIk&2l*7}Sc$Tf#7=f0F!DX~sQ`c7WZ5lP4fp2 z`N?PyaK?c{_t}8|94CMZ>7%Kek8rC8L+uv3Cd~%2JuP^3aER{Y8)VCXzj4GhM7A?B z7k}p8*e!|YEMjg2@hIUdpDksi&xLXM%2uk>B(RVA6CSkzK+`??%FF$A%`^r2jW?Mn z1&3R-+L_w}6}I+AYu!PX=g4ekR_O%Fff~9tr>v@bM*m2i{&Xhb5_gSU(@1pG_Q?-j zCo%rGj`wrt3d|Dop*RpBvagR4U6Ep!F1^+s6+OFcK)M0j7c?b;P%{y^W`^FV&b zD^Q^xZQzvG{Gx7Lk(l100j9j`xc(Q=_~-h5Z6@_1pB=_y$Gd{F@&BcZv+3Ewfg|0`T#b&N@W zB7gle^Ftyi6kU$-VP1^vRT$_PMwk~pj+Ac%aee5xb_SZp|I7{)U8pGGesz%=3rjb60$)a%U5^-2&$QW#8t%GqGbrkd3&JSui zj+-2SH-#0)3daZBfu2fOPpXu1M;*|`x%y$m5+H8(z{`kt z$=X{TLLBd}ku80CS_gE`Xo!f2=#%{>NBsjxPO=8f{VOMJyR9EWPCYE`q{9ddW`IT% zjRdNorTfEXO;1wRW1+>yx)+3rF}a)Z$+Q+RYrSa@l8ee9QK`wy0j2AxwF5vVKT5M| zqVTLXFQ~tsTts@d1>Em8iTXr)4tCi^U(P8P9GqXh-I5Nz;=K4!BZm84X5W(?xkbJh z93$xJFuMr!mNj>>EzcSDEOvHFP$;L>eln$mzwL5ZA6;L`w{+boiL9B9NW%ak;nE2U ze%JkIBX60DwqNemQCss^52Q5Y^aI7?@98qJ#6wg_5v~Y;%(|A9o&VvDEMGdnDoQu- z0eXm)^PX=vVf^`906Hov^Czj)=Al76rFx@x8h{!zt&O@C#JzI4g~|N1sB;*&_UXtq z3hTqEeV~*0WX7Umj<{}DUI(}&O3!LTU-*(HXbUICR2EL9Q90+SVObJB<~iZM4;<*p z4A7>k;W>yqptDiOs#(tVq@9>qZL(|(Xmaovk)U#)tphk&I}U)5xoq%nlz-dEwjdXZ z5*SKURZy7r5#8HR;o+AyU+hZeHm*aSE==Y(QM&iu5}d^!G5&_T_8NI`P}B(YDZ$fx zZ{SkGmQNz-{79qTqTezG>+_nhlktYnO{T6kO zF=y87kB{6?4AneLvVs>E_v&oj;W1k#E^Cu1is|4xfz>^egG`MBxImrf*7Of`LH^I?S@R4V1HgaZ-$2bJ&MdYWlr~&w7AN6|aK%naN$`zQRBQ7XjvB2&d zF3+JJ=L`g?s4)hT7&VMFhxrnzY);s(CwiVvfth9%toDJf-w}W^wjQjwn6fF=bkQI< zvkN<>%#%p#k{$70&|Y0;TRJ&MP5^a53!E~2*_juJCqN8YKf%M#KLT)S7Qp!>^D$?& z2(8-=pv0TQK6pZl-{^hc`)DDvYzA)l8c(6kGLD`NEhL_xWUVk}tKq3Cu4L!e7IJ94 z6Z@N9@W*I+8DOZHmgV@vt@ce>n4@_d^W4`O;xEV=dDcadKp*;Ca00L1+jzSksnVGb z{KJ4Xb3AHs9gYj3#rN#nY4YNbqjf8cO67AYb1)B$ z1cxOjWRZ|(GPA}f{a$P)ks!)+9Pb@w^mlBI@Xp+3yBy6I;mG9?+YExhF)~D1Jt&7VqVtM zDGVNdDUR^sRk@*I+Nvu^5(>ej(+gBXc z@~_;(#x$;t?Yjz58Puy*WtuNU#=I;X5LqmX3L1;vKc~L=X@E(};kb^S7vz`YmpMSU zxCfc%rI`6^9a@`Hz*cP15IbW}Zh`K#veo5pc;MY49YXoPdgmMf`*_kN)!Gd3hFmqu zch`*TSmU=+?(srpGt~K@F@3{CUxd!y5M&XS-gHudL z)S7n+9t6ITtrRzJOy)jND9!bM-=%tZCof3iMqVbzY9;hS_Yl_6@ z;XSR7|L})V^}lM^>w6ptuTF^F^IB%Y;k8-sF84q%QN(>_+s+NyCjd8}~G&#eV8>nd<=L%~iiHn=fij z7$fQBR??tj%KC$iG33ea(oFCR6k-b?p4-#e8!a)v=tu(>D`vLq3cyTBgSfQo&bZ&T`;LN+#u=H+I^q%7f8rIcm%d*^@AZQaV+ z%nF%Qave_A%0|{$;uPF7u<~9WlB}=UKp&7;#BA+GX*|fFh4GY6n&6i8LVPRoYvyA% zbw74u^K$NFvdCCwBYIdtyzectWYSKS%pFak*qOw=GTS;&Csdb)xdwab!2=qVtE>E~ z5{#q80&FTcra~q<@^no7)>Gys_xv`uwuE@fWU4*>M|AoV%Gd#+OxBNgwEzoMMM-J) zz5dE(u-4jx8uoRVDrdFp!McZfLPQIOOcUc~w{$d%R^=eI>crCRgT`VY)W(TO!f3h< z=COku7sEC}<%F=fhgkET90J5PGk~OOrLS@L&0!s6ZW^PWmiB7OVI}j0LrH9S8c!wM zd~uls4p&j^QbIYEQEipth$9T+GF(|1*Uy+UC8?@>4o%O9k&5Bn&&f_Ev|!ZE+iz~7 zlHm3vef$mZod~A3T%HsLVTF}-L(-aQv^X415z{_>1+~1o^(5r6=%rJ&I{r-1sJ6UxNXG;K%Hhc4t!;pV53o#!10)a)`m~*Sl1vq<)iO zpt9i>KgogeAw&N1SIe=LXK!LnwJ7ES^0Fll@8xwCD(Kn;!5dW}qA~4_NxOcksn{0D9!#4dv6(4Wwf@9DuQ$@1?iSlO1f)N(kwa!6zT4iUbKXC zcXy|f28c8wh=9^5-QQe$?{~lNR^D;W80XLV@%@tFv(|cI&S%d1zV7R~?mKs}cE2gx z8^<7}G0dv9%20arcJ(QVkLhf0*;|(0cJ6BHPqC$syDG+Ow!D+!xL)Eq_?r4Ed9~}n zwbe_1*CC~h+NA{37~iv``4mK<-jJ=;rNA9PW8a_hTk9j-s{O>epLTfEacPjV`KhXz zMoszYw{5+dqPCsZPY+sm{y>a$}0C=6ub zu;NK|#lF6ISI)lrNX1W(K-Vun-gRmwCX$8Bzc0!LXud|Ikbb)$UsY>X12Jkwm6!Rl zuA+F{8FgA}bXleH=AS!iHWNxJEv7}JSFbWdsv3i0Wd$G`!3@R}@>;>ds|m=xms#tT zq*g{Y8(d7@79YRJ`HW$)0ik52$7)XKS<_huAjB7X>YTUza$Wc$H}HrNb6t4N%Rtwr zUwo>JH4<~)4(0f+#J@>t|DG;f`XG&32+^kwc@9(L=>^|M;rLn7qXf8Xc70j&}iJY;!{)PTgboOm*{%z*j3 zzBeE**m!W9tS26Yu(z_i__DkA|9!@P=b+}=W?lgn?+EiE7QM#uy_03W?82)@4`EsR`}+uy@6bpA z$<7`K9<}APcN)-Q`hgCX3^fzfwL~Q?Sw%zcYC8Mq~5U z9h~CY2E{ZUjZTKePZy{ATj1-BfEg$gQ1mVkl_B?0lJj8L!buQfU5|EMV^S1H+j2= z$ML7^x99PS7cHq@^Y@#+nvv?c&AD7&0y6kYjMsWe(Pk9y_v&~hfe*uXQ#oHolRNZ6 zeCO*e#x`44GV4H+H8#^|W94&pP=nCD_)J`KTTMQ0TgmkD_7k}}F+E=hr7X9as%%6! zRRCSdn(~C}AxPqm507o8Dl-s?`9G4styHE-gc9KW!N%0^K|8R6iP-5fi$p=_bLs#N zM#^RW<;i81uvcTpZZ~EjRS}4&8b7hNAs0#c`XWrKzE3N5?jL8?VO`Vr z!1XtJezBE*&ojF!7z0$m&ip3$Vl5k9Cvj}K*3avkt&e`(1;nX zG6j}dzr%&A^PS^&5lDFmV1~luXY3F4YnXqs!q1#9N>il5p7qzn`gR`^n0P#XKmP`l zQZ|PZT2+pno$9D#I?^* zJdpoY9KkKeP1n>mM)AX*;J`>cwMa9gws;V~ou|VFv_7@C{9I-9txT(|jLObJ3P9;Bq24O-QmuC$=Q?j=M09=vMD#~V zhtxx5<%gB{7LY})q^HKdt*U!5nd_z&ykan4NO`m{{O)Sqm)W}Ya8l2QFPB(uVMEi+ z&^^oSX>eNSqiJ;BU`g?@PVE)*uA?<#E_vC7sCA7GQkpfX0sIDn7qbgiWo8Mf-`^A3 zFrH@z592ll`%Rjqt9LP*dwLnTh-=#G+xUi@Ke#FvF!B^hLFxODcc*9ltb*9}FQ_n1 zHQRFZb)>LDt_Ty^$YvfQeLzJ)SZ-wz=cOuJ>WVZ0VD?Ou(&r$yN;O|%6eAnI)I3DJ z8Y(X?>EKXT21$i4eAe?)&kBDTZB%vn&dQtL zjWN6XfetOK{^4U$(Rsa9Cn0ZO2U5vhqNiTe8`KSV_kElg zrYc8|uGlWRSd4GEjCF`hX41V3@HVE$NG zyLKwE&yM^2i}AXb%69o1>tFMdXf>yH+^1gr6*7haKa6ma+e5!c(#E78RmFa>~aHm8p z0JuJfYJiwZtempl^3SH_f=;p*V#$g@&=C zRb1fXQgWV`y#`RpI^Y(0g0!@5bP$=gD{SJU$>B6)hJlo-JuvR7XH!{lt28^CsuEmy zsYUwF;%kfEv>XB}tbl8#i3zdqp66L+4k*`ps{XD+?E*`YoTWj2+=p$2D`tOC?!`RO zxMUuT5*KT1bZv_KMhKw>|`KSp? zr;2CvIzBt#QBM3Mvcg&?;Y0D6+V=%e4Stm8)zJ}S${F!AW5>UD8 zPCi^}G`~Cf*8dLYc1!%4KX>3$l>WoeKS3F>R7Ss=>QJdz&*Z#edW4jj{861V&NNB!#&)$z2PpW-(h`w7Z*Pb>GbdH?$~|Mi#H z3@FAI{I9uKJ}7?1$D4xO=mVYnO{b;D`|rA}hldAH(xzj4zo}Si{`%Duycg6ZUq)%% zKLX)_RK$aV0A8QJYQ49SNgifnL3L!A>+8`n5nf;wx(&5JfmaZ~f77Se>9RK^iQ%=c z)y+W}8NC%CoxnU+{3HRR%jJgaSbv=TMebi!=leqF?WP0KiErM#;4~Yo1_lIb_CgxI zm}`IAD)-{6P&>RJ`zVm$!FVoPkVr!JWrM18TzP{GVJ{1OZG)6us+Uy$oH2N^thYNl zl!AM|HQ8l7`Lxj;U_mIfwow0>Lt|1P1T}E@zlPzz!C^50^!y36HfIu|Oq9R#Y*`nO zW(>JOqaVv@-*gISe-N3!XLnWK)NaU4SO zuWz`}I1G@fuf6@k^4DF9QB9yYs$JeTIqU+}B~T$P&(H4#H9AxBZk`)HyoTcF==hk8 zZTL4xfq~3fZhn3hr||z07yfhjss1Os;r|jB{yz{GpsS$x+XuWszDu{8IOS!FP`h@Zq3*v3$52nv{??A=P67Ul&fwP8M zI&I=yIo{GJ1pFJjs8`wi`za}>nZj%l5kSV9;eF>u~X17qN&fuq_{1d2ws zDKoMN*N^!t5Z9hA5m;`u?Q}MZA8$7*cKISo|A7C*=vV<$=I_HH5t>F++)07lf70jj z&_;_epaa+l#F`!~@HSy7uB?;zcpf*JhGNxNj1_9|oBjUz!F4f=A@!_%_`4T?;=Ws^ z&Joxy%_&p?qw4oOU)@aw&x-S`&#JmY+@{X=f$im`69TyVUNJzQHa)3l^Wu2k&FGEQ z6)=-=eTPDLk^;R19^EOI0({;Tb;AOmP=mZSJKN^g`X99lAFbxOu2P2r7iU{@)XlE0 zIhU0T4IE+t=VI&`yRP?*sqLcnAtY0AarefE*7qwutJ;7Kq%cKA&$_dPSLC9)#~Kt_ zp_N0Zf3B7PU;tV6COy_MLEuIRd)ij#HIr|xXHr$2XQeEL?R<{;;rgJM0XZ6tVAHiD z{9WEUW9b@)>Fj&9H}IZA;9BPR@@w%I%UPK6Da}{XR;r%>Ug8M8A7S8=LpysospDqg z1t9cId_o?SEiJ+e@1xU|Lb3dRl)!m0<@*|ko&Dv$Ae>}EDLjjXe^t(vX|ZhpCuxNB zPvZ(;tpG=$U$`)Pm)?cYZ&TZ|?^xgK0$0JUa3Bg%)7HD>|2k2Bwwz{XeNOJWdwW`y z)tmVd3%0GsPL|(r>I>l0S_4xO`TEqrybd^ROh*!PdcV*A`ofZcfZ*y1Bky_D3u{`L zXs(oCJ^P9=Wx=7&i{J9!zOwA40Y|bD)+9@C)c}m*LXii)S&i>l6&|@wQ7%~82StHW#BuuO4T$tVdW6QNq)I1U%$ssTqqb3S;$FgJ<)sC+b-zVya1h_pU>j z%loF8u`*46_;8w}p3{4a@K(n{V^UJm`Bo|20RSTr73j?_tMitgkkfsPZ}odqBb$Z1 z^X@%Ba{ic?cghZC&jE}PHdeYx8Wso*SLZW}sEQD!^ZqD_O2Jv{Oar&M3Cg;xw7xuI z5k$6(Tl-mbN62VkwZvhm+;rgj<<8@`Tg;VL!qn6fukZq_?9sMy`U;w@_7*RxZ2S{* zZMtY!NM_Nuw{73e(q1RNqORBBHkG^t;8x^>& zy+|rpt?~BFAfk5GCL?SU#BhU}slM_)X0(UUg*krX;uU{cQ zq`HkRD~9yXKmC;?-olIGg6Su)zOjcB5eYUPf(1eI=P0RNJLK$O4Mr<4Vq4KLiLpP( zi5tq@=%MiPoH|@Ozu6cLL!(I_z$={Qwky@1J_DmKA1e)q;d9Eo{~*1vpOs- zP8(-j)emP3s(dWq5N)0lW6Fg~gJw$OPR-{7j3Ss!!i!5)6G?3I_Z^Nn)YxD+1x*A%D}%?89m0z91}Oc64l{NhU8cLvSoGk-F8rdZ zmGM)m(N(qI;YHTM6O>3*`PVR)iIeOCtvnq|7 z7-*aIVQ*bsjOgLucoN0kSGyZTRd~al()wRlnK}1=O&aug|C*Xf06xanabhxLWa|pB z`2xvx++Q`vlk=0lIQ%O3?Y&t}?BL(W5!G_ot%6P5PEm3^NB zPOb7#jmoN7v(Nm?@8{~LS3tpnn8M>=#GcZMWQ^J`Qfd*E!qYt5*{Vi-Q}$nz_ur%S zP(=zEKNBP3ja!u$-=wzZZceD>m0=W0ITL+G727?x?7X)pz(c~wi5J54E7!bn+IwI9 zdZkpGiwqLF^VQIOA-JBFlsgMPnL!z?PGr=~+yX_A_n{S6EwZyUxOvT9Jgz5R zjFnRSZFN6LOMIaP#+WSa_S%mpUAy5tk94m(-DexB_@!B@Xc&S-F(UT$*<DewHobNOlP4ix<#)oGt;B_kr?DdZK<=jCHxnt6iBb>MMZ2)N*O#uJF%Yh~tO0UNa z{8W=^0$?*&+uJ8M+1mmew$QBSMg=#@*v9W*T}^x%Htz8BIz1!F$Z_bpe8%sr>mUdR zwnJvK-t189{;HgXQ-M#uY;7_{i}UQ-&J|HqB4$$$sc8nl*W>I#c#*GbfEK*zEW=VB zoX0morbkz(L}P;Bm>G8vO-SeL3%kw>W5IKOQeGbvz2%H|o6fUMr2p^P@vjAMH4;n` z`iisr91}JGV=_)^-q7JUbrW>eZ(|6DeUnmMu5ad?@yitpsFvhd@9H;LlC7i3s5HlK z{C?8Zg*~P3<1#I{{X?@pe(AFfT`9 zg35$RnS*;KL=q$j!?1ib@-yk|ZoGG&BLxpsv(RaOW7Mpz6VbW+jFk!DHxZa2R!yH_ z!C*clZu|J=+of&Fi$sg+UFhZG-qfBLJ{ohkvICc-BvQZY>DpE4n*@G zP5(USa7YsD6^=~ka#}p3OVY3P@0d~e>%IC?gXSE@c6?vY>1jUIuNmPAZY8}))emko zA=3-d<7I^;0feegv6&VP=85u$qeyvKw;Z)fSVWFjzYB+P|C-sA#fn&S<7-@H|Klw`cLdKft0aev!L#An2-TEAbtzE2E!;TW!TOG?(Vm^)}b zvf^RxoBM5eG~9pv)GK6(>gHx;@d=0+zMgqbFp@=N>VNKy|2XGX(yMORxdEwgnb@`9hzPg; z{ih#4rsjIFv6*|H3_tVt*pH$cZtb4=U4ON`5>6R`7m*msDM48`T%>Gv3UciU^o-mu zV-7!4;QaoN3%dUqKm2oC%vF(eye&tR%IZ1Y8p=k4$82tR+z-EeM`sjjI3^esz3He* z0eCx0ofn+-{+fm0g!OJn7|L5d!3WAW9aU$#9bANg$?JP@!Vb8vyP%M%Za%_Ov;#`m zyC4GBB-;cfdu-s_W=crY;vUk;M$=cHabF5{dI4>H5AhAwBHY^I+dYH#r6LWwrAhQ4nS6EI%+*;G1{YMX=P>{LnNKNyf zZ`SnygHuAYbccSPv?Y9)0_5sfj8swL1_7bqdM6owah_ zS>X9@3?3dXh%J?|14a*1T_$yUfY`yv$;Xk5>I>D$HW)t^9-)94mZsTzc;07+8%bvf z?ZX|v_#QwjA=WhX_+<}L+~9&l-O@hf#t$5X0}226R(>HuGKh(qOeQ7yb_9ASp^YhU zDw^6^sh=m3ECF{?WeYwKllUbYhY)usz?6s!0b#!yj7|t5a=QR{fbrW`x7UIbcL3qR zIw}jwv#Ztu+#>UxfZeN@<-jSZ$O|BHfE>N1>#w;mZe-gkjLOB zoti=I|4ys~nmKTzbcw3!3j{e2pT5VhHy@6HYbx~xFnq`XtpZ9u0HP+bZSz9NL3jF& zakR4NrL(7pbpH7cXm0gmxTAdkaou3ta=-jF;GU3Vdajp-rM<&k|VFf6V6v;bZZrC}-GyDh%p-3S3Fi_ob`);u@4qQEO3L?mumR-x&{G>q*B zx9`aU@2H>w1Iz1ql&kMf!@_GG#x~k|SK2F9l`Ztbp-}I=^B-;>>fYK#m}*ZoTw#sl zJ=isV>}v&lY^7I$SL#_;;Q6T%zE&oo(?c6)0EZ~}j!MV>F~`)ASPFv2xqam$jY|#u z+1c7KA6JWkJW6K48VxX}Y&`dt1^VSdgN2?@+$xJu6>%~olwV>HbcGn@n;nSYERg_J zV%zXkDxV^A9k}?bX<$M)){&2~ED~-*9A7W7+y=NI!GOrZ3n&HT+$GkLFx_)h4%*=~ zLU&{VD9f_HIj3=V&_jvc-@}-^0T|Y@1&dN$ta(Q``;ue}hCz1?*CV7K%2Q-fzC|I_ ze+`YFbN$AGZU(1op}-fRYNUd{3-F*J`?UdoP)^Ve+8kYqkyBK{j?r?kz8}Pb`EMxS zO(tRJlfD=KGN@Gq`ju)KA~!HwOr97u{;0R-G5xQ7@7f2EEnm&jf>|1;X$pp@kxk0) zYuvQAn{|%ONz62Z`?Z z$BJlsm9uui0^|Jf3?Kw`)RWaXC$%Heq;$5C;_GDnPTlTk32>W>2j&qceH}vQ2!l4u z2%<*7KQCOmApJCKY_KtmeOU8q3@k}WnFPL~LPkmYj&izbT+cp;!oAQ8g#`Zy4*Wk$ zyj5?Ldo&aww1|}}!M`LF%hO)Z+Bj{p7EG!dkfa-g*Bdl{b=1UE8_ZY)`rJ`P?q3uR?c!7vhA|BVu z3WT!vVG7WYNNCWR>RW1V0Y(W^cbF^O7n+&C86@V;&eM%EB8JEvut|G`gOUI~#_u4F z){8rdaRtpPujwZ-UW(#Xn(NsDzQD5OcoBG=+Dl|Py?b%;tSM)fXfK13@8IxJh0$WY zVh?=_&7jL!Q_ zDtkLdy(flZ8y0$ad}cdrhnk|%>9|XbGiu2a-!6!QxO9IKHBo2`CNykL+)c=1!qcve zJqyZ)SwbVe5UTP*YuROxn>Xz&&O^M5G;#MOkUu8Iw1n&iiM^(^HkTA2RTUhJ@q)an z<>-2PR}vXBH&YvTTT>SUa* zW_k}vH?c9zdABf>CiZv8E)@UXFgC;yE#((hEau)S*w@hQ#RkP@-@>gWf|$b{(;s2* z{W`OL&rcKLi2PufTi-F(Hu+vgf)vA9pqHw9>8G91J*S)<6Tb^3yusSlUg7flrub5% zzII=edAlmeQr-+}oeg%4wN7SvZJ4~P>$VH2*E@MG?Q-dx{4&#tZeED(KXb2aT8N5! zYJFoG&DF8l!6cI)Tz7fu!9 zJBw~mE#&6hHyA7~rv~jYOYI`i$`_`#1sic)D;{G!S)Y#gI^2b`*p5@ay*X0V_uGE- zx#K|4s{8sjG91lPF+!#4`;&g9~q`PK`}~nzY-zoytF9wl0B#J^Drf}Vp6xoyZVfI4z_ ziA35a+p+(mIq67;k=CXpZsb91lr#TT@dw~t%}~Vs9BVS5zRG&g4gnZhVj1BP5IvIV zpt=ibh_gbXUR2o#J1jDYcC~!GA|#T9rg$>wB#B*|eox0bJ_hm`k9+s_Jd=b{E5nHK z?mMmJFi|2a4SmedZ+xqqqxZ2nn%~{2EN8ofK|9RBb3G%wcRT2sKlrsT9!(0v<#S`S zE3~Nmisj-$lc%J^e5wlk9h~Pd+bjL0uf=wkPLyv%n9`LExLn(McOwouS|dGf6Pw;fLc&s*PYYG?Gq?h)$GOU%0`53Yrcmkzo+zM|C=#@Wfij+cdiUXAjctY;(BO?5Aj(@%JCQ32D#+$YN!o z*wosuJvEc4YhRzqq*86J*44Xv?)hGbEW&Byl6x_QyYHB&Q-mUoMJnHR7;VzNkMY9P zBV&3Z+98=T_&wyC_LMc0@z;iq`=YKX-%95RR95`$&lCx5rf3c80S+ctgb)6rJjTP| zItT&84&EQYi_#dTFWE~I97}#yTf>uHgytH(%VbbB+nAFD9bUK->j=U+-;=4Xt2fC6 zJ5`@{Oa!ALet6s-A+;R57r_uDLW{ET%8w{LPJ)>>nNFFUzW2+09)#}2a!cbs3a>l; z9#ZLNYqWj;Hu@1|AHIw)VPE}#N4wJRPw3S=207B5xg3Kn4$8WRBxge& zbUO%*Mv2iRJ&)}-3;Z5bwxaeUbAy^ALadt*5ct}^x+mhWvTZw6t>Jfv;^`*n8~U_P zLY5zJvecfVwfPblx$gxF@S!oI$w8;8HwY!VK zhHk>(R3{eFnGv=Ub1efGjTz#Y8CiTq1{8E-B;(s%OuIu42GY<^JHE$lZ$H}r=CQ-m z+s}DCvlTdfHXJPA{sM}Gh6c38Aoma zpL8;<0DNN?AeTc{t%2CwrN#a(;1Lw?CsYzb1fw{JVC>{0xFaYyXd>h7-KZcM`V=Kq zQJBk@uo9x;4jjshTzc$W=^v8}i$JWQBzvUaK*(=7YP|4qA1h5h?{(yft|hk4^{7|) zJaJYhDmF=icdsb&!qX5wsh_$vJQ@X!nMr>{y{ZUoNWx{uVSX?rv9N->uC2DIshL17R5oeGXlJ=Z$C2i%Cpxw{;Xe>q|Q zO8?dc1P*f5V%cS7?w+>F`B?iB2TU)8Fwt1v@WtC|rY>sQc6>ZE@Qi-X0i_?6-QN$j zANU-;nW^o4cYR;*SW$fjY}Z7HO!eYvI?FK`71!m8=(U{S2KD0jv0kxV<&c42|B4RF zXW`+BlQ6MC{jkxo|0tf^M(0WrvofbH5NYTok`{WSmT{1g&OKsONHqR5paZhvZv24&`74QwEtJ3>*Tq}2A>;AO z-lh$%A&E+86umwjW;%?6i>X26LeoK#l*&y$`jfF)=|H!jxIyTa#C$)gUAh|Te#_C7 zoacH7sjW6Fu(ad6%>s5kF;a+m7+3R|zD*d%dgYOR7OLSN zv+KV=CNUHM{1Ci#*Zt2x?O#(d+XH|`sRP4pH-J*0)WwXa;$C{If9#J-`_~l>(Pr?IQ2MOxb-oXwd;)j-_df5 zeSh*t6LZpI0p99f31rin`R}n2JEwWO?Sg-A2f$Vn`BMbwu6zq&A7WRuSz4m|`gXN% znkdc>k;s`RDrs3FonrrU75nErn@|ET!;F^7^-c3gOpp#t6eU9GrW>bn!+kKxjtIv6 zZkh^Tln|KbSnvqTO-EI>5SXVA%AwIs7hMlSV4lv#&hj@MRTuQPoe=SNyov#^J0K6x z{{yW89f^LWx+~rEg?cX}pfAA$${Vx}&qIv4HaENDt3-k6g&+h@${I;7$aAngC#WEL zdEk#SdgHBf-=oUDn_&uyCpj;NGjo))L^QagaNbz*T2EKAJ1q9H10*jLxF+b1l$26P zWxVwy!F4l#C0GK zTDN|*?S11kBLzn-X}{pm{ypbkAq$X#1?O|);%BWJ#})#P@*r)o-*~J4e?F~8GH61@ zqYp~33lmyKLq)n5`v}w;0h31@>s9tNl9kP#C`y2<$v$f=xG=L>|`MK2S0hX2K8yvuFuTcogTP8_NC!7tJp9K?WVeJp| z8a<234D0?5?h-E(*c{mJvor+()U|7nJTva^m+qM(gnh9D>lA?+gPv)G#sD_O0qwoe z5t{xK&8_3{&AMTVyI4eD=y4i0753VfRRtD>lVpp;hlE&!*LjDC*jsOz#jnNUWtg?QhjI*_~cS&2wv8Y zbpxO}AsWahzv8Dze)I9WK2L2t{W0tG86EV%lGb(zCg?Vb=A%Kt+^1@1?X2NUZJX^* z+TJyN-Jo7Z%F1_rp*wYLzx&R3fZP=g$ocfA9V1xO1WEAT)DKPSP1VnN*A2yqo~T|3 zt{3N7&LAo*#^7UEpIGY@&b~Rt2zP^77FWr+Egr9i!v+BQ@d1FOr&PX)?)wmO2CPQx zg2@}_MXQ1uhr*=F|P_Wh6olLJB?p!F*fF#{EqgAV8N{xji$bf>~jfDRw-7V*vZ zlXTXZaSn08T3x_aWnl~c-=(55L`j#kH_tHyt?}EAFX4B%?oL2WpB(WOAX&;Znl;3QOI{mfY`70^EB~hk}xuyD4G86~>(kUHpoS(5yo;Q*tw*F_!i+Q2j^u|; zUBQUj!Ys*vG!@P7Ww*9%lFxjX2h~22_W(PkMJ*}MB!5DVV3Uz zRl6(Y zcwH5(CpvmWE2-CD8L#(&u6d5`rRLdhuyTdMuJ*H>iMvuwWv&jZO6VsQdFROxm9SQU z#oeBsl$Yrc*Qi<0?q<>+Ozxlp6RvRw)my!?=aS}1py$gH;~D6mWjA zMRYj^qECB0xmJS@Hc?kk)gig}rLUpds&7fX0RD>9`pTTTl zrdjI4hXt6}C#W31K52KYr#EjHuqKOKBVh&w;s`K?DS_VGitfDI`n;B-(e7CTjo1zS zCyERE8m2#0cyi(FL0zqzaK_xBu`a(eJvIyzP*QT6cI&$Ao>WD)EQO#*wbBIKZ^OCg z(?>aCFl|-UnJTgpX)<57cLJ7pH!2CsQohhjlXr)p+{tfnOnF0aWqBX0d2jFBUi?V( zE+7L`y|}fCze4LVxigASLEA3Sv1wwx5JWIcFCyd7M71A?j3#v-duQyALH&vy#_?zc zR+foIoXloz>^hq{^?8W?5`lHE73&S8X zL=CTXKgv4w6ccLHU-$qH6=SCD7Y>NfK<{{ChROK&gPLgA$mggLWqg5oh6iHv^wK!7 zns*}{QAQ$;-%vD#%omudkY%K55xJyQwyu}jgNEam%-WaRk?-g?#CMB2NxTK|t^+>$1oF6mp`Zc#f;rlao z_lG3z#6`#1j8(}q_s(ecz>bq{Ozy`Y(KVp&RMNtbrlV^5Ol%l7{m*x*T=cFwPwvT& z3mDB4y3T$BTrya~*j_Nw@@Xewrk{w^rpms>+gG=9?B+WcCba9@&G8imq@&4ngbX&C z3oa`sJW|;FPO`4$O5oSg4aK$3WLwGB!q}8%ezDFUIhJc^d;lHQ-i%@y#V|$ZQ_|4? zmKiDq>j0NGKx~W$lQ|XuXH{Xu9RH zlMexPeuFG^Z+ZRbQ@J29sIF(qi%}QXl=Gis%CJ-|rIAP9n?IJ8g`DTPLk$XsmT(+M z6Xced8;1uXn}9h$zR9;x3P;)O&*S^5WHcJK;4Q?#WNWv#oyk^qjW`FpK+kn=XR;{| zMhHyLLhP}1be3NP3fNmmLTbXLIUFx?CnpeFI#2l4GGkb~rA1f7Qj%bQ4CrpoukX56 zunA78FIF=bJcuB<- z`*EN$AV%a!`(E;oeFOaOjI2r!SDGKPJ^D^+{s*a_h5lrgf*_U(0s9|N34s=i#{VQ- z1tJJnZD8AdGJ8KbZELa8aTCc6L?oe0F@mfGg_n;eWoLYv<}ByJrw=wchl2)k?e`EQ zXKnY~cvI6ZB8%s|v-Xn7zGrJaV0$K4iWHpYb|q{;U5xf7atRA>{K#DPaKYl5vAJ53 zY;mYzO8xvg#s12lC8>9ns}!=JL8q*GwO1EL$;aC#c7XnsUeB3EHy z!y(Oo9TsOo*bJB?Et)x-qm6L<3+{$n+@@5%T$=XGhk2bl&{GxCu=fS6n*fuo{AyEG z>1y-KjgAtoNkdRsgR(H@qx#ll;H~3bS~VOen_@>BA%?#)33Ejxo1EZ!1YE_v#3UyB z@i23JJ;Y#zq;+4v#n&vdt*9YbbpzgY7D@6HyQcAXTO8ZCmu2{b8>LG&enzUqq}QK` zVRjv)y4n4up2Nzczs?5c#0(q+G^GBnL^mwa0`&esg_%Fo^Tur8|CuYbRH$X`tznt| z&GwrOLFUtUCk8iVLbBPu|CcTG|B5Yj47%|K=SYTzfMBygB4RnCa2^c ze5jDjPOZTIE8!nW2k@csK=2~uHVXX^rieWV^3?;-9rz)S53mwJq=48P<#kF3=EayG zI47``;h6>8q7TQ!FVh{Kcq~-^74ZRb7y|%Gf+yTTc-kXHXn>ChpFm!K8cJ-IOzjPL zOHB9H0x((8P|2NDa$NRt=0R1x8idLr6^%2@F1^~oPQ+wi;P6H)?@KhAvoMdY)!9C9 z<_iM7MGLt@(O9_qflMgtVitrgl0aZ2*!C-8J3#NR) zF0@7>F$F3Kga`&vHJ}~^RT{K~0ICf?f?>M=z*sB<;RmrK!k{A{aUg!6{mg$CSOSCq zwhJ$Uo5bzC$8ijl6}#-_U$WV^>c{TpmaSR=f=1;YIVGj%YR)dWnIe&7tCH9=nJh3O z?yU#2PQ$_AvCuqjUCqq_Ru%pStuQ5iIw^ig!6E438w`+hzQc%lK!5TC1$+KDTxS)^ zrqMkMWoDYrd2qS@=JlX=bWx4PIpA}Jf~@&TMGx4)UMD+{F9~iM1DQ-xkuPYjJHQSo z4@HcPh`^*%CXxt(h*{ot3=8cm5D9xaCxf4m1X)6@)mr?@8epj@w1c|WvU7BC2ZCZG zH8BLbC;Pt_SQayaPVYrJQk3naEVc*%eLy$xH$xik2Go_b%#2Yq;Y@?Gl~a$Ch0w8N zKp*$RKHj|Ji*RH?pkKy?DP~Vae!BGdWxn8xPyDFM+Ayw`1MF!^$lF=lce};9F6c?W zF{u8@D)qOd|DvWVYk;L|f@LK{fVTfz*IWE^(gU66vG#!VGl_N^Bv8utp5R4Jg7o1P zQLj9E_uY`@0{{>ds<(m{L^uqsJ!mXCX%pB+Jn9gm4Y!|dbK5z1qU`e!8RIdgQoD5( zh&q@qV^+&R9w%ZT!=CL^LysRIwjH=nw(l6jCxJm3@_PSAAa2NuL>>BaU`X^2MwN*g z1uu8%0q!w1#V;#3$AR2)q7W5-`{30?Y=5}A;Ic4CbnO9huq>Y=V#|%qK#t(=$^DQV z?AAIH1TSqI-aCEBcUixOmRQuwfUqKKg3vc_N6LmPYfOQnbAl zG87&U5BusOs&y>Odw|UG0ch=6SKaqOF9<*&>1#}!sIxNH666MXHz5XO;eM63-p}NqTnHn?xS)H1^oB+f~UJ% z5JVv<5>TyFSA9ic>vH<>u(g@CxQ0gv^U}2U!9LU)Ixennj5Qf~_yd-{0EVvdyYL;jk&qss#J<$U-IiH>*W{@1@o<=bxeiDqubCH_n`B-?BL_ELt-g`c z$^D2YwdcP|H>wC>gLEZ(H6jR8L)?B0%$N&dD>zHZFQZQ(uZoMTFIlr z(GRYPV0TAN2TV5ru3$lBvu09NIfGMGZ^nCy(IdF0#I)plX#GM;FJBT2yCtNV3#6_E zRt4Ag*#2RRw3Bxi(Eab4MnUi(x9djk#>N+yg^&!ZTcjH88TLz7Kg7Nti?zTiiV5YR zmWT~cigFt4GM9pc?+;=^?td0)%cpe2v9iosGy5x2_16Sd4=!}J5kj~i8byIL7Y5rW zwA;|^X9e7`cqzZRD``jZD-OK&bk`gzP2;6vyaBgm#fe1U7IvlsC=bk!F<-Q>SU420 zUFl2ei=8a=WqLtCLngdfJTtuf>8&dBKH2nKzSyth11!hEDuD#&pQcWr)&gKVfUT2? zB<^Rq_MH;Ov}kf6mjkyN0Vx^kI4ZK`aaN)wWjdqv{RWY3w0I!QG%v-JUZ=IN7*EMf z7B-<;a~n6M*@|@*A3cM&e+*Cq{23>-5HuyYMLFz&xptu1)v1>u<(cImrv{lIC9M+8 z?{^8JG^LurA4&`#Mu9qCyLa(s(*Kc&V7+PO_!&(uwtvz~z6c$~EzX#oKT4<|@IX`n zk@O6omyk=YD|7scUi?08E&y7!!!RI7ciFo5XF_F(4R<|SY|$l!#NN{c!|?^NMvQ?o z3isTKIZ>`?@kAg5MJ*}z3Q#*BjQoALvHpxzk6qt7qrRZvOzfp|Syv&gg3|Z+=QcFFK2aAxkAb1Qu-oU(L_x-Dp z=$EJts0-nH9JyWYiI9)AKYE=accr+%it%IQG&F-c+#L3;m}nx9U0M)I zJvy)(tX|pr_*|(Mi)|MTD_@8l&~Qq$om;%Z=q2E$k?BYM3`=p18YCrZmAIdO)sTLy zn5KwD|Gdd3Lqc3)azWjVhaLo&rj=}pwQ+XoMQ;UF)uC?G*7&e@&7HvTt3YBia@gs% zWUp*F2tE#<&ZhK0WXNKJ9wUq7ZsXe5NRmS|sWVZq=^ zm-*>WOG7e@x$%Csx=;uP7@mDN4v{YJRuF{-bBRnXZ?Wopcaiq56VYep`2JPHc;mnA zDxD1#x9U1MI#~bQXNG8>^}_rqX+Cb(gy1m==L_!r9{%)%tsP;pr}zm_qD4B|Vfv|D z%*aIBR!^}DQrbbs1Rv`Y!l6DSL)WDf%8kWtEVSJ|bTFRrvV=0*Vc<{? z8*i^Iduc`-(~;03g+|ng!~#Ybh+MzbxUINo&Y+@;O7pwDiFniUuAP;rHXtM2Qh+4A zN9D1=fCha^gZNV^fxjXVRMCwBoQMRG?{5PRzO?P>v3WB? z{MdGiG!olVOhdV`x4d_LyO6SnUSk7%V%HXd41h0{$-cos*WH>EWYdd6uEuYtOPy{S zU_ev@=k;FUH4#@3Ds|aXYXb!4euFZa^m-+8LGg@{wv=5{yI8uA{B;qNR52Lk=n9ql zNNasVdA{k)_B_!4Mh>mz$d-dGd2P7yGJmVOpg&yOUTHy~kY8!Rrj@y1q=9e^yTs$^ zMmx*zN!h?FP}o-U(+fW1qkP^P!vmH?bVWfO1G!K&H6vr|_8qGdw9g{11rJ|Oy!9U7 z+2y@M?MOxr7S~SE#*|{nVltx3`0z+Knh0!8TubV2Y)L2`0~wYQqr@0_Zo~VI+7wy@ z?9=i;T5rGlm=v!Pqr%jMq zL-kF}`(wg)UC99Te|>lKt1>iM`oHyEP#apGEH%Vrvw6o%KYsVINnnid|2+~IyHsv> z;4JwJJvDD3clfSfU`gH^g#SlTzZp*Y-rjhT_WDq!I3~ND5hxVKJZ%5E0vVCM<1)I? zK1Z-(Jyv_1@OVm?S=By<*AiA%f#(pXJ>=yx@D>-IkH9&w+{Ha`M}2$7ju3dZGhJyi zv=s!)k+k2k++mylQKNlP*NOV~6&E_G+0ncJzhOM`MO*d1HS_=VJueez*>i^~=l1tE z;BPKMGMIHH*@$1%@BDNM%sRy@gw4jgrmRsmm~~SdP3s@;`ZUJ@%(~Hr50}3&t^dJY znu5yV9BSxmNdIf7|Nb*CnYYp;m6z?dJrohnzgRgoiX5arKog$qamNV;(Eob^r$?}Y z?%Q|FK9Ye!_|IOSeHFaz;T8gCw1g*d|?=LiOnQq$u@icj} z$-vvI;?d&6wif?oZ2qvD2IF+nb#H&?^*p*7%l1BSz(EF1uUAC^DTZIH{<^3rLnRjS zfofi;OOJVHprET*ckAk10)iOCIBf@2 zCy@NA+fj4;x!l_^f%jQo$*%rn4AE7%*ciy-kf3%TP$*~u;2_N{fzP_j3f(quu67ZD z&yFYWd&((b-q_>?%BA90fQo`?5&l6mbt4NAXAc0kIx|()3&^11MjpuZOcji%YX|{hAkAJRV zGnw&(Y1rqPG;7*eCKSr-$cCb6oPag4F|{ijG6gD;rsYdm4Zu{lnR(4J6ylO-S)mHJ zB7#jWTZPyGPcA_lFet}GVGRe`5J@4}xR-ehj;g3kE~vo;JYbW{UfVhV05w4=x4d~v zCJZI(fYtE?7zgOF0yBlCC~<1ks@o5uZq=Wrq|TkD3o5f3!q_)+j+1R$dEEL~C`(9P zj6+A2k%N&iQ7R@~w)TOEYDTwxuiidDSGmD)mSz-lEO$_T?k@pMS<+M@kNBu&dq~{$ za{tc-c3=>!BBQ10a6ADoZTpy&RbB->#N>Ob+qo|L#bovx+%rF9?sI}`z^FIQ0ep(sIBh?^uYsP)5{jx6z!#_CW}QdJ4EC6j z)%L+J!&TWo*LW5JDIQ%L^fEu_^c=zFi-#D_1Q&@@H#o)Xw7v8k^{J7@Z_`~eEhty2 z@w-LGr<=-QmA*VD?8D|q=Tq4N(E^&q3*g*AVv-EBQE7le_zgUKDnUBK7LUU5}o{|R16I%^Dc7PiGBuJ-vo~p9< z;o?1i7ywB(@}}_a@C7^&)de4rugo|B7YNKw^X#2ra+Fpd*28R`TQ+K3L0Z_P0=*Wg zT*48VZey>97}WJ6%X?>S3CbB2$$&W!*jXq`uWq~&8~shFMk|vo#rAY^0hog!t|fbV zd?tHVal$g~W4?sH;gOx};Sws%*w1N;>DKyugF|otwZ;R7k!%JozsIVGUwW zw=S}aO)KA^SC*_SF2|11RvyX!5gW)9K(#QXHUfvsi;Eft%C+vgu+IjC+i$P;^mmQs za-r3=Q6ZwPJfi^Z;g%_hy*BiMbixo|(~}*g@`0B>Iqyt2LstAHM?1iOQqGCd%)W%O zAb1Ab#~LIUX9YD!m?$kLV87aXyxYjL9K+XlMkx@tz%%CF1sNv4eRn@^RlwI944+Yu zgm5u3U70DpyAKpeV(=y>a1m{JdR1!y`-P>T*GDurrds-sOdD(;zVA_`pQ>~|)lE(V zfnz4jQ0poiA6Y8#VKxMczh}Z_L9N`zcE0FIk`sM|*1pu%u#bF?Uu_Da$|~kt##}jp z0+_sx6?f^iiB`19%ayH>Joc3s`KE4$4;zbBdUJjZL2F|wk4^XLPrD?$JkZ`Ku?u5) zoUFv@0CkV~f#wMXp45SZiFqu7A6?x(AHg+J#ki)YyAvp5G>KcUHMOak7HaCb7uWw0 zWPh%QvT?r${Y_qw$fxsp?@bu>magGk_i`Cuu7UgdcsOAXM`jQ1i;}`1tF+Hkh!!R) ze?}tLv*EFz+6k`n?+!I~J$6m0+E_R%>yf_A77CzTBxwn`Ohs~c!_4tM=L%pL1XeSnV|rz}D%!OaN3A>_#qHZx3QnEIaE|i=^x$B5r(_qcOt8VXvJ})iv=(#zX;Y$r4Sa;U z@+U5e&+Tuk*Q9c_M@U_$cawx9Gl7mWK}_IU=0~mTPYr?~A>bc$6I)dbxGGt5{Q(;q z^DW5(6(Ay_*O$Op`gzSzz8#?Q&IQCZ$RpQmz@X&Yt;dxwR3|>_K=dj=cLr+hFk#b8 z)9p05FYg(;h<3!vgFqi3wk2E~kVA%GZ=2FI#way)U;(A1N^_kkOi&5YnOE*qZCuyuVQik*(S+a=VXOH23Ho7WK&Mi@xyM&sDFjk};>QtjgM254{01 zU_-^@&jelJ8OWkueYL;Pj~h)&h8jf3$%b6Gql~_ke1KBTEvObdjs#t*&q!L%Q#k2!ED!L@FQYXq5c7@T z-=4QGds^7e9JKqV>XnUruHwgmIKqjbZy2mKnysvgbWM{+4$d!K|3t-o_{BE;M`_Qi z?qzlL=f%a=UYi6s8_6_%D#?xaOwL`@}|A0o5<9OAL2x%DnP^Ej_gly}x zFKZyrla2cO%vKx>O)Y%nH5&*DpJ38|E+pH)670PA+AYG9FRhTz)SjD_kXKkZy^Up? zV@lqzEt2WHyme8^JWdvZ|MWaqlN$ifb4nRz?V8O^Mc{r^3#})-rXpFy^ zE?6D0b&Kqt$%DX3XDN@v@Q!b)#eC1TKB8gyLCM@#Y+BbO4|&-r{%5oXGUE~Pw=1#A zNd8DTm}0Hu0_1(x=5K#)g&0^L^i^&4ss6E@5O}>HjqoM)$udjUwEN)QB=3Rs^9}(8 zFX+VtY=-PtMY2O=7a-C5e{M|R1Jc)6+9Zp+Zi3e-RJT)K6mfHB4o(RwSPD7| zf8!hfu?1?7ZUp7c1rX3$JR{dR0V-WT%Z7_A$u`@FkHp`Pu7||we1RtnPY4cM$s63G z+PC!pC>j5Jdcth7aRa3+Sb^Y-<-*ww)c2YJ$3i)E`VaA%*CP}wE$aD@QzaJ0G5KW+T*8H!EuIK>*K)v z<58J~Ml^H}CSdvNAvS>asz4&e55?9(82cuw`pmdg;b#CL=YFIOXkG&a3U6cSKtL|l zG(r?ijRvI&7kYvw5ytg#ss^71fB;N;c6j0$&FnlBxq${W-v;;)nKzu>03o9pq(zt? zK_1;E1*mvH-->$P=u;qH>#&p17pJFc>;3pQ^nslMJh`SO(46vW0XU$E(d9#Fbbov4 zKvQ!Ipy{y!jww(^aLz!@hCiT}E4$>HOD-6Lj>1MY-X}8`fc4@Ba_SK{=@X_i8xAt4 zM~<(4oFCGhyyg`6GMtFT?jwD%Lp(vWpP*kjyF$R{3Z4g7YAss7*}PbL|Z zUc3P23^J6?F1GfP{w?o1z*kN9kKySqK#XHz!U1K)--zmfW=b-LfpMx+18cxb31_!z zDa>kAQP~$T`nWawQH2EvxWHL-ax*_72=Hh^RWYDSmwzHm(gvcVmt;~&n0QV5Z&JT23HO@5J9F@7(~A12X8vARG@;B-0uK1Yfo} zAS!^Qo2`B_l;SkSLPr9PqL!?{GU5k3J7_{53_~;B7a<$~zBs-HWCCP3=l%D}{V81X z*kj%z`2Y*yIN@iX1P)J;Ze7h0Q4ht(0=WV1Do=$_K*&w+4_uO{34Wm5AB%8(8#bR& zx$vMLHPRk){>XN}<(YJbUGc*gDg+mO_N$%tH_)Ll%>#?eKym%2t39Y;a9_dvlHzGel%Xx)dOZC;Uc?7wyp$muYS&{;2ou1psRM)|famln%-O;D)aenbkuzTKQBJTq zo_GJuyd~J2(G}xUh20uJW)FiZ3l&eqo8;x1SS&d&v3V0l2KI#N`J@cZ6MO7m5im!r z`BlGqv?bFw2eQT%-}xcnagBusq$2cy?Q)F0`ugZ!OsakC&fCg^+Xwyk-Ogzi@RttM zg)&Gpi*dx;ipqpEy8B%;`=9LmiWq)ALN$WWWYF4xt%*4W!KairMmyz*bSNZ@^RR=2 z+8SvP&WivWA{M}3z50}H5!kkvqKm>gdL?O&3ya(G zK9psOq6av?LeyXu?ss1klM#9x*mQSOHvI)P2I4AP%1nr}3Tbe<-;UCUNp(y3gMh^f zZ^<_~&QvZNye#!3V;aCgYh#6znc`>j#EkzvVNW=iNvK13%v2drmSkhtYfY6x&8kK3 z@sUgdky7+L$O}Ak3GW@~N}CWzvH}8>CE9DJ!1gMnJ!om3pzCj?h+#{TMs)CntUnx~ z5y(PCZ%Q6z!0VQIV|-`@Mq8<{>_0uBu0|(*m+$ZSynRsXH|PDC&vguKHvkdS)Df^% zGOD4LGZ0FozqWzUNOByNTBnVbQ#~N5=l)=JlKx<5`3JTp>_s@^3^==d{9Kz0Rq7zA z<90Q|<+o7MnhI#~G;Dq2?@V3Xf)#r{^m5AkR0ak(CUEbdN%VLC%5a+6M?TRV1Lh;g$#Ccb ziBPtU-Nq2bf7Gz){I=kSou%idi&H3j707_12Hd>2?A!+hF`fdW0S&bEc;&&WGpMal z2+BqP2@!&C0^29ZPGCf*z0-a)9Asimgu&-4wDJq@9`dH_r7j-dy$|TR6Zkj#{v^kP z_#a?&pI@_#_yYvAMCctsQy!s*Wl1L)bEM)3jIKpKBMjPBP=7!&WClJ4Vv z_z$S*a9h1em(oFx#9vEZK1L1ADg7Bj;E?Qg*ty}ngtH~gRk~QJQkR+_HR3_E8DQwk zOof#$!|jjaeXHVbCjSNDmH?~x5u7EcQ(Bv}+S&qj1_=_B$Qd-X^tv3ZLmBqEc+eff zRAAgjb9fKXt|C3WIi=fiY$X=8F4a5FN7Ww`_YefZ9^Ct4#p z*(6^hvyhtP(y_v+jX+7vNqG1c$S^cPy6Gn91YsWgfX<~g1J!<^pLo&7Uw7>UQg`~X zdZD&P`DW|Z5J2SIgj@cK#}-O+Ojo5(PeWO?q0r%Xqd?$(dQ#f~uM=Q|^W;T7xoK*s zVIa>FoyYg1M~cmozTC*M>4iZppn4f$9{eO-%q7jY!waBM;h#{#;^7Gwd<6HFlRsmI zkm*n&A4~z}BR+H@N?IO0;6d=cJ2E7rV#qKof^s}%y=d{LQ-esN{`SW*ze3r;xJAa{ zsD_ESUlVJuF`(0A3Zx`Lg1oCc|A;k6R<}<~y&n}!xTx?dJY1Q9r<(-zajTtz2Tf((0lge@R*4%XU55`gx)O(%yPPd#QmxUDMWOOMQYp7+@OG zY@G|IdRcE5lJ2QNb*(kkFmql8;nu#Wrme3`o5wB{67&pie~R1f@LSA8h5=$G80U1m zfB-`G+<2R~ty&ylJ_&&dKrh6>ZP`Ibrp2Pm&VWJHY3?Q!?B4LM;k?jK9!WJ5V6>{I zKu4K<^X`$crTu7nr~Am6=({JmmKo%OhAeV0s2l-ZUAeaB63ZBTvZPd(+PRY4(zkG_ zS!RC!@&b^6bImx`*9++(PF;%T>pk`a%??Q-?|X^}Q!@*cB}IMw;uL_>-FA|Gz@^=f zN-{#vXV;ARY!LP!kZ=3xLE3~T|26HLJZBrZfK>Y1oFiXr3EVvDA=FI%AoUk@D0*E5 z564y2Q@((o_t!f$G%VTZDb$dkX$P8TUa^Mv!%>}o`jR5Tp+8sMhMo@G+BP{3u+u)i zl+{yZ%Kv)nr$sEtlpSaz?eS5hx4Y5t2DxJ^ra$&nJ4~H>e8^ORz2f&|wCpj=EzfZ} zmlNYB_s{njA!g`KSt&?#*CUC9=3%(CHd8O@+B5WlngMr?LQIoMZo7~3sE6cjB$3d8 zl|USI$^Kzi*tH6tm)26vXQ9;6OF*>1W@+`^SBYa_|%AQ zKWR^L`a~AH1^CaB9&y;nx2S6rR$7IuPSvhC_7CV_aoe0gT-5|f^2rX@l;+Y?1gO;L z&kS)8oZ`g2dIV>3BU_LR;Y`?C!?^=_7qvFYiv0pCw-5bK!Xbv=2u@IB@24$+nuPSj z>FPNde51qy$l0>%Mb9D*AF1xMez=FjlbT2jervFEJ+al+$y37UDYS;1JTv0=ZO5>+ z+*nqt7pqrZ>L^!H@5W+(bt>epXsyU>zi@tM$eKbo<~OAoP(QNTbeaH#w;z@-$XFP<-Jtr7kk z98mTeMu_vdl21$~h@`o8`dX2U1XA}uh$1M_21(k=txjl$6f8TVk_Kg;%QXPvPF8Y< z69ZYESDZ``n<4S@@bxc{$p5nOo=cGN7Y$3Pa8e0nt?86p<^xOcIv?94B z{iN9jl*J$Ig?6oQWiu)4iuuoUpM-$U8?_`d%UkH^*&Gx-aNW_$!kPA7{3Mf+~r92(e$xe0L{UMv-$H8P~@ z*kLx3q-*}RpRuDRR&Nr`G^YLdx73{1m1KalVMd8oX#@sOp8gX?>sZ+s=7alw7;QMS zGJT#}n-D&Y+*Jfw_J9X<0db6S7B=V#4N_{T5dN9*v5%&zD|{;_q0(1kwnbZWmw?Ht z`rvX+u+c~$0VP(j4Eg7e5EW%6ShSXVKFozjL)x9nZ3~7nw2EJ&kXwtz!V_(z^{xnl zLfK-+h$wf+J+rxpjBWEFTbdZtmu@btLdssd70Ow9E04?T-A8`o^8)pbJ;t9~ogHw=`u>wY<{X8j`8X9H}h`}!P=J({x;?Yce&y5kduua>x* zSlNZ9nGMT(lGWt%i9B0dUy6z3^rj7Yf>I?__byjuw;PY+54s9y)&g0G>O+l) zM2iKPq4P%7^N^+e?a?#pI0UK5#=i$^bNkz1(TwPz6pn7ObzyJ#<8WhXfmgAv&i%_J1yx!i%xCV8NAYdSwz`kEYl_brp+zen>} zGP`;Vd^a4At7)QGFL5jT?5^7j`17du%W#;ISJl2EN<%$~0CH(jm^ybSsf}bn2zJ0` zz%IeGfR@vKZ;tDDdy)}~(N;IO+yy=ZM4svyZ}Xe(H^at-MuIQ_Qbw#sY&1HWWJ0EaVOT@$04R;y9|D?e}=cP;_c*LZyQhvoj|Fxl0H|X)ox2rDm zGbOIIjy|=mML%bE%%r6q`^UM?=6>eprI5nFNtgPB2NT}A5662C2Ic)dSc3ojd5FsE z)Ftd^bH_&n_q`yp0<5YzM#{M!PRWe983NW?lufx7kC@+NtHv=rw^j!O9Du>z@dH z@Mxm(_D21f`GOLPynea@4Q)*tOk(ajzgH5hN!k7}0Pv^z5NXgK-2~u|Gnr0T6wEpe zOFBrVa*yS!GGen@ea3a%E*@p?aow#S2ljY6(580O;Y$ntcwJ=&08!KrWBc`1{c{er zqU01e$w!f#t`mpDN~g1M>>7o0UgqTHzd8lt)#+kf4z=!+vC`zar_LhaY+OILYr1J2 z4n@iJ6KX-L06y(6!l4NIz{p7T+yg*x2Al8jnY8qtP6K*`8L(t2lRRDut_=&ARq7?<r5y9@@P&k?sSamV)COCHbDgSiKF0*L zpOuQzBjbiXb_YP2ONbYuVj_b#1n{KA4+4*xN@%wOEelYODm8DMbr{PKjUK418%W%-jXTohZ1Tg z8=3q_IfZyg%C!#W>NcIEJD&_wdjnLZt3DGClDnKjb+-$yOKqXSoAP{JF`hT@cxphD z+Zc+=F~)AUj?$8d8>+Q&Hzt&$9+w4k0in%~}}S%_nN;1phJwl$nyuYi|9-N)vt4 zS_$i4m&Fg}R9#~el zLTz;kRJNCh+JKXnfnm+PkuKktq-3{15Bfpn7-adX@@F$ISbT_$u`fTmog0hq9^ z?MMgq#LA00C*#>Jh+T_n3|6f`GWXET(EYMqBgRLcj%!;&6YMO>6G##Hr@n6St=#O? z3i}yxkq^HM3&&0r8c(d3ENAqqW%LRN!vsal`oa*u!|x z0HXbcrrjXH3(Y-uvF}@Z{k4E$S4B(-xm; zaL#lImh9)XZL~%f1z*=aE1j7e*1PTR; zUq6;R{KelC#rH$4nw~H^=Zgzf{qy~rfeS?cxAB)+BCuRXfse^ zEO~+FcM2Q?CU|zu%fAEbro-bRD5=Z|R+JzbBVxNf)dL|FAyYo*ZAC7ApozbeQ(_Ba zpx&!MFSHb<7w}v(W16o6q}a)&seJjnNS;74ti=uKDoSWH35LVB-3`C86>#mTYcq zvpAxP9%X$KfPY)lZeB6V0;j&Cu`G{|h6;kKvyjTT^VuCO={sky_-7#m>8|Judip?o zgg4^Tpx%V#6JV!Ws29kA#RW|!^!9W210g5YhE`w*=GqkA@lUz4s;Z2E z4#OG#ZJYl2lL$mTP~kMdp-ufQa)Q3b3XEP@5YASCF#roC6ad~gZ^pZEu?U(XZ0GOj zubg2zYen${wrUK+BvM#PR(JJD{xW35NaWss6$n9?HktUA*4e$D1&kte!#Is8OIo=$ zPAPW-N&7!1x;xgox(ioJ;n|SwQJTIJZO_NlTKpb-iJqU5oe((b{x*qH~#0ni!vPox;t%nX2C9#_*v9gg#eb2+8M> zhM7mEBU+slvnGls{mPy4zLQ#6ZVrC3JlcL=ini#7K1F4%mw9^&wG*A#qP3e`J96iD@%>ML$TR_w=I9cohPqyOqo8k9P$153Ef5BRLcPI$)6`(|21yXa zZU?}8PcD+}QW1oEDk`~hYi%I7yB7&WuI^fE&gsj6q(wxkSMI0qixIohdTfKX43NEO zi4^Uw&I}wyF*I6BQc^r+S}NaXn{I-7ay+iCso1VLUsfg3JoPwL>sX66bnK=Iq&a3a z9e2v#1OyR=bZL?Tt^Jyrc@g;=1n)n?=+BpMBdp=sYnn_l@yUl5?-Cs<mp&|11soFZwWz{af-eG7Vlv4{!@)bN zS7vMQ&E>%fHu8|cip#w_@W}aqJq2xzAKOG6Xoc$NQW%>j+tUwZpeK{ zCf_4tVeUZ3!>B1xbN2p0a$iccqtyZaY$OUL`=`hx8MrAdxB6UORZV!>X9FxN?os69 zuxDa5?GI@JRS&B+x7~9*KRGOMbhcL2a&^{T#!S3^`~CeB!@#%CLq*5M&0@ZhMw3t7 zI}=c!sV_tKd)?RmdG^+&22Qb`s}@S|hBWkqBp_Pj%iV6*)2!U@J z=6U@91E$$iK@8mh4HBQgM4{yxCi3mu@t~ELT%|A>51Fkb&%U0&BY~oj_`yTS`Mizy z>D~F$q~zze6{m#R*CMWWtR5g68|A;Zkn2)4Om#4*Cyfn zeFd(WjpuhIXFW%-C@HHKkkvF{7^kG_TA;Lt~dy~3(0_>T}-vG(|^xg&F5mrD= zWXd>nnqX_KzuyCt^?3tz9?&4}z47+*Ng$uuo^##J%@LDb1EDfqEvSQ;0aQqEG!=ug z9+dM>0nbX=i3)Jqgny)8Bu^{#oUfk7uNrucc6wOMk-Pu87}aojTanqOzL zYB;K>RBT>3JLY1yXCa?0m0T)7Id}<@E7QwQ$zzq4^H%eKRy4J3R-rZ>^%>}EF|L59 z&2WpA7P$VoUS!7cC4!``1~h$cp7Yo$m>g?w#n60L^aNK;$JG)E+W_j3>}wyycCl5| zI0Z~@&7ll8hEd6Mk;|8z_SCz~lb}bRMeWX*Iu%a353BXdt69hAV~NkmgI~@ktygB1 zsU~lmB0Olj|I3{3VfVT)s1IZtZh{)tIH%o$P<;mw-O51dPwM1zyfbduXQ$SwbX6@v zQk(g`+g3lpy`|pi-KE)Ro}xZ&L9snpLESi@?c;%YV5*)T)QV^ano=0_CiE6_o5(eT zsQ2RuMBNi>9LVI%>VlcFlUz&;;_+bKIGme3-R7E`#{zxx%JC8S3x?YjrfkY@g^TK**5*O}U zrxrz0j4T||p#XKuDOh4?R|#J2HJ^7sEq3K}BR8LR4wwT*R?qqB)oLD#Y!y_L#Bp+p zr%8gAg>}s4LoF4cquQs#W4G4^A<52dFQNaPe6j1CVU>#S`ICX^8tB-jSkx`e5%z|{ z!-{H8rz9%7E=p4o^|6K-gz?RrIdQ&Xx&o?}8SuDyvUCXoFWc3|!E3zfVm%}EGY8`$ zt(7KZ=88GI4;4pJ9ICb$x=7sXz*c85)7ouKN8B*g{-b%_pio6K(EPF3X)^gT=4lq2 zjFlNz#eo2mA_eJM(T-cbc>70#>t4CT&Xj&oY?1KxxaH&!i;AZ^2e3-o25E3-QosFv znJXi%)A##hEo-K?*Qcf6sn=;RyN`2*fZSK&!W)^}2q?~i3wGw-ET$#N7`wJjo7GNR zjJ?|_m!vLg*v$LZFl28>EzMEzAoL`kvA+yRlp(cZ)qB2U8I)&x^Yac<*6sAd*(o+% zX2|>@5Auv~+u0{mfm$yd0KU^xpi`v^u?rGVI49<2)v4*yL@I2lZ{?4!Ci-hgd=m5c z%r!ED$?rU+lHv=|!k#PDboX)impdHG3O|3MO;hG!xJe-FwW@BKm+C5Q zQMTZxWw?LNz@Z7w5hC zOi7j1)p%U|PAVP0(o{Y%rSX%Y@=-7~JzVZwq2=10&}&vv#2lXo0$BhqA(t_0j)Zw4 zBXGI8;DPRR^)}{54}aO`;!9yo`X^TnEw{8o@Nlt0<``WjS!ejGHb-*x0FIJYu+=m) zNsE&C(2uV1=MZqLd-YYmw&G-;9T1G7?Ado&Ie;8ja=|T5)1w+ByCx1P>aSviQ~*pT^=+ES!yNyT?MfJG5VrqG)dLNx$x&W*(}>2ifMQqshlE zX=A}_e28>raa9--m)K@+aW&l%nEoo%|qP1^u%&!nQ%^K^~E5>JSM zWFB&$H(DvJ!&rle#NzOF1>Y8{wkK$TB!!||&QexUuEfM6`$T5_tBUxH(PmS|m?}WN zb~GAk$%NzH6BFvyxat@e;B9Ux5f!9lm$`#A_05R+)(6q?Le1tAG!ZDl+pfIFnqlj; zeD#M1*P82~FB(frbYkiT(e_{dIJ)6Hrz$AzBo=EWx+y!vNyGFQ{^4ik4j||7W2Ov? z)J(HijlH_+6|@WNj;mI267ffJh(dIO8nmg**9eCSdd@>Z;P32n(~37gjeGZYJn>`b z3L4f%hiyO7S%D2&Db}E6fyX)!cIwF#@y*ru7Wbp% zA<31R`lKxZg9R`bPm|K{M0<5oslH_j)S!^f$>GcCX+bN}qxOG7WB-WKys8Dh-y(a2 zmRf)wm*W-MI>^DCXn9K$U zHUOr!S{qCdNKPfK;nNXQ9r0|ldX1N&_ArPl%3i%pr0x2rZC0488_DkTh$^E9h%G9` zpfpox>A~h#^6}F>{9v>*N)e57(HTY(`Hx$`laE_OsZg8e!fm<3YKp5es(eg?@c?5` z!v1VsjI)l?dXQND6et$RcFm)zFk}~Rr|_rtlbc?xF_WDXxkhQ)o{R>%?vgB`^a{pX zB_mp_isQ|O>$F$snTY1fJ!$TZq~BDuu$7r=C`-|DW(cTk~OR`#bYyf8LE!gzFuKJ zsM9%6I3K|YRAdTuZhp!lGQ&ap!q)>UzsBTnpC8%xRl&<%`7%CJxuaa>4Z6#NsQnEh zDa>2-X1`b}y3^oBAM(YR3f*z*ORN*R!rkXlkW-ACcgY65QRRcykYNEWcE1@6Z7GizjpfLuuSsUD$@Qlr1~1flRL93xIVz-IL>qH6W8IC$F2hz(f4p zH9}`l@QyMLcfI;R;5^XP&OmBI)o!nOUo&-arAcPB4#@#XqBBh6Xw#@mZyr6NP|hAG z&F-Sb`*=02RCvGP*P5BF4{zv+(_tLmQC#zWY0d4|ipG0WXyUZS-f|rFou-0m%JVg6 zA&uL01IaAYft&Tiy&RPafabyOWovg=m?=}Vui~+ng{%z*l1b-= zax$6wq;?x3a1AxKy*_~*x8}To!MjnsDX5(9b5x~Jes#di*(1gC%9*jVwDV!*{;VO- z@y;UOeief6jd%)CkxR}{RG-25WBdt#e47_=m60Xb2t0KNPmZ^n(q{5@462J*#I(08 z!Q}qJ(9vzU588GNBmqm*ffzk;Et(R(HU3P_MkemiQNc)*Lkcabt3ux^m-SwNzw-<$ z)>t~b>@1vVPS=m6?-Z}4tTePAp64=bvitTMyLYrOki7?9ok#JdbsWu*+4;T~b;+AtK08L-z-4w0@VcXy_r`fuWU&1qIbYt@_*Uff(j{wD{ zY`)>;Op1P4Uk>4~J!*mD`MaK}`UoeAIY}uzT*2m?+hrvcp{@*B1z`Tv9PSPoJpL6q zr9Xokndlis@Ro=3l~C_FJ4B)K70uCjp}ibKCCoF)VltA0qLgg|Pd>?#>ffDNpd>aj zP>$f-%~DT7wM?73(JGl$$5Ji9Cs$a!zOp4Goj@z@uOa$b1~aLJbmh66M-ouw`MFek zJS;B!a8%P)pVpMwr5Of zwcu~+yg^H>I7?zcYa2V|WSq=$b|`xJ?5b?EKz&?EMaS1pwtA_VOG6w+7;ecrQhX-H zat#wXF8V#`f~0dTIy?DaqA;3;`_&qCqyb_gofW!c?|SshO~$U7B;a8uca%cK9wmN6trxir;m?2>eYc1ueUz_Lr!gW@Hd1j zNyNHh55ZJ>`E(tIel7F~DwAm2U*Ll8+vGBOzT`V5aW~`kD?+kbIHWMjb0p4WB4siu z1kTOx5;qk_m8|>UpA$t}@arG;bsC;@bNbIYpJ_r1CkA;REhS`ohQw9f-h^UMkw^NV zIy0@eTA8KHyw0Oz;13+8Dp8_k-B_uKEA6RZ<%WOa{&PjfJ_ghMNAGKYPGykwm?b(z zt@EvwPWRr>7Nxn)CW>8XY1t5NgF;HFJ126O%|OQzsdODUT3Hy&xbu7NgV!uT95cPFF1v8Pt-lBj6r z61#k>#@V%ZY2cjwq&J1ZwSji@o@-$PbEUeW^U(UGZi;yUW8hMIjmXz449^07f9Imy5lzN)fg-+|| z9>n1=pKh47bsUOZ<3DM=TM8Gz+KGA|eW9d}-m7sh3NwTLn-M~?Y)9Z)O`xFCbiJbj zo+P0ImcQ1wC8y)u++T_K3n0JXJhcdyNmS| zES+h{P}w!i{IGG0Y!9DOzD3ZVY1j7P%9dEChE+xll?6#|uUTLZ1Q62Etp0%=xX>0eC7Oe4`^3HLf?b#){_xp~m zY}Yj&pO=P{Uar4Xwz1^GM@v5Dgm5xXFNx}W&UWUr_Qf(4?p?o7h%G1D8$CZ04gBki zOt#Oe8U|HP0R&H8LGXvNY!)=SzDOv9P@nNFC>%=lA=c3|LMv z7<_ZrwReEy_Zo^4@!q{1gA6=&nJME?qaCg{dYq>zS1qs0wK6H|ktf{M z!s7dd>vqQWjX>mi+D~b;WD-n>gkXq*cJ1j#(%}%40cG}b{u?!Hk+*-Pq}2iWT;e9h zd{EO|Ot=u8)f9~wNAL!zLT&V{`?%(tx6?fr80`4%DSNgh{=LS^klx6{u7Jb}?>K+; z(wLmM1}(bmaIQeaedtr_Aafa$S!MLWX1%F$|^ z!o}vkpVZx;wRNg8FDjYhj#k-cN5||Ng15pUx>~{qB0&nbL-bTeUn8Y=XpHD4S@yKj zZ$kMOEoRbQxfk%QB5+NkWgl~zX0rww7gc?;*D|RTDOWbqd|~UkVXb(g(iC48zucSC zNQ(B2tNKP_PO8}5w}Uc6b)o6xH6_?0P|jrR|bM9Rd~nEKnJp%(K8rsrl;8KO2@G?g(_M;NIB zwfus^QsPsj663EAXKQ|HUq3_649so@o^Kq>KfI%vv0nFW$7E=3bCQddcyxc%k*FE- zP5#EHQ61dfPzS`%X(^3ASJ`nvb!nha_tg$<_Uv`pQS_9!88h(5Me{re9kumv(Tb->3Kc$MYH{2Z?^iu7bV!+pSVvOO4>3~k9sX0>soe~!%4a3LDk0#$C;&Tg*lB}dLxNLDiGxVqykJ+S3S8Y!m4TIXq1^A)jy)odGOxda2v<*_q)bkTxI25CSu-tT(+SF?vjodI!ta! zkH2s^Wy+pnmhC5a^ee!M3sXMQi!)TVYEmjjQsDWQ^qw3u$0LFwcwczMk;0o34g2Ni z5iHI}9j2mMe5KRNGz4^MZsw*Ehhu}ZHWw0v)CfhLaU;qLL6?JE%OGmE)r_Vc=IUUi zN$w_f=N>OUWQU{%J7MT8elAbbkgYBp#6&kxh&+qA9IOvgbl}?wYLhXNe33xxOKeb- z8+7?~U4vnZ_3DyuyJTzalGb9gHr+mFYb1`Zim9?yt>NVB@=Yjb$QCFq_DshFR}kLD z@ZBGkS`6&h>(HMImLsQhsbIFGMfc~ltR72BfcTj=T!}x`tH4pRqic1L>A8MashFe9 zwRJfiV_Mn0T~X4ge7xP;w?G3H>xF4R)a_Y`-SdmZ;ZDugZZQ3Woaoi{ z?E6ygVNVszF96!V_-CKtV4OIg-w&kxCG`7uZ6_9#iWHm;H2xUN-(Q!31!X280@+`& zxqlz}5EQ>C`$MRHK{@_CJAw$npC~^D4m0JHw+A^q_omAL)Qosbl17(dGveL*K^K~^Y{E!W_HZp z_kCS!t!u4cPf(di21b}SU;23_zn`BJAQIV+kg5Ork^iVm*#Rr}f4tYHl%(z^pZWVW z%>edO9dr^ZlRS=I8$q|2~sQL$>j9AUS}y!(+koRFCWS)^&pr z{zUkb0P5xHsV(4N4E>5P$A}#mimBlAYJm^mI(W`0g66=?KOA83wcoeZ{+rfQd+>4g zw33W*YhgLZRfjuKp11083w0y|J7}zR@lvz1bxW`ime#3HP{vf0TlHRRdhA&5Ry<^c7 zx&QiXk-CNf5?JC@>1CK(X%{&Nxh_7g+DeaO$B8VN6M)1JiXF&uqDoZN3`sA4jQ6~^u>0(rnPg|%=2qDg`kx00zq$(s&2pR7FwTSA`5f< zA<zLHK;LItAwK%D zIjJZZ@Hri6*#-NtRoBZvUO9>=DsE2ZX>~Lh1RDR_uII8~&6yV}tgAL)9@ce$o7-R` zO)&xpVovfiA-7urzJv_hMDa+9MXjoZQI9-*5lX6dYZ1DX`dKcJU~_?NpxCs1yogx? zAup5{yd)Gc2idsowmiM4Ke$>sO@?;MNXShK*qyyEfOomPX`$#iLdyl4uT7bWm78e*L-}=juPwJdH>}ZK*r3o55`;L>AY4|s>T}P9ld=hIi3ItB3P!wa;&z7Xpxf6LkozJ zD-(>pcafhr?WS@Q{2%41)zyyRZVY_ePxb;nE<=~NKDMU2)^Y@`B^F0*5c#^{m2$2J z3D^y{_kkv4#^LXDOhVbDBlCr_95A13(X9460DL|kV=2>-OvLDvygqr#X|rdfn_V6 z9c^-{(^K8k7q#KfmK63{SJ{HWBIC2^T^VS#QCV0P=zraL4%H9LLzS?A5)g3j%Y5do z;j=eu5^mAk@1TY!SdBYUo(Jl9Zjs)maEm!%G(s!Y?L9DARUc^aL)7ROR`!W~nD-!L zP6dk%gp$DxpCBxm)9;Bs#krd??a#-Id^`T&baKWPb^EGk`TAPY z)<89#9{ha0jQ8(if(y?-4bzXmxEoY9XImSwTQxe{T8Fic-->bG7-tU|^a}+<>Y$=t z?xSG_Rz*DfdFdNgdp{&r0#I>?<^yEQi z6UnRYL|28cw3;-22tN6#<|)|*s*UUX7*RX_HGNiZ026Cf@3MhAJ+>ydkqCRK=cKk^ zX{ZDXllTA3CqTItN{rR=4B4Q-^!W8P)_9YRMdah&G7=e|!Y*L*sF-?QVEFON#+5s1 zvdeUrSKdumCK?ljs(>Y{A9TO&sNJ)J;&aNi@^a8j#w?x5It`ledq$~t?p-v}nKvxUDhc>U(Tz^b7 zPc;x+9v5m7yB?|YH0$fDlyV@%OopQ2u-o$okHTMhO!!g4FVfm*sOuud)Yq35d1u&{ zql|Xy#Z;NyGNbCNSH)1xu$NCiNL>yvgjV>oxAHXu4J7mK7Y1_~(!e%BSpPM_^MkCS zGBAPVVx2J;Hmj1U;3UzVLI2Sf;O}SpkKm$@JtzMu*0%88tcR#YS<~gETf^<{v}BiE zS|C&~(Ue#LtH>)kf!sv*P^7Nu=@E(b!iP&^J!0>Z16sRi-8Ho3LZk-Ssc#0S4Z$53 zt}5kdAT7$WPn^v0&>ld)g*V4qb@kbZQcCdKHZcwqbnvQnh*4&z1Ra{zW(g^;*w@st zOuJ?6cF$7O{rvi{326>c6H=gYKiZh~hb(uOZKk$~NgKfm3Q(*WlvTixgHd9&Z(Q;eEDk35+=JMiW zX@>tOn;IJ@SCiFQ9WqRf@GPrciIG&0j_5S36=wf= zW2Z(YA^$KqA)2ug+5bS;luN8vdPXRri*WUN9|C7wqCSrh0yeg>@lTd`a4J8Hb;!1GF5JLR- za{|4s)W-o5uQIx{d%qoF5dp1K>TivBu5Ya8G{i2RK|9J18H}}co0=w1V0_>m(IymO zb9Y8Z8pP6jR#x=1kVT8WyXl%Ew)yowefhu&-GL$5 zORCuQ^}sc;2R&D}g~Q8LinIcH%gz-z(IuDaMUDJgmndd93}! zWnQ&jcB2SRQ>JqxYbBC2R{|Qv?m6-W@D=Nga#N6^bf~&0?YCPB+l@LmMe1YfQc~$dd=H@2sYoXqFP8CnJQ*pE}(oydl_(vrm+zF zSy!c)`XeXL6!mU0W;WT)uZWPA2hy7=ct(lgzeKImhG8_hmNM?TM2PEG-K4;F_f_++ z2wl?k(@$5Bl;f>S^n`y{Xx@OWbX@LWeC2AutUDN%(=tsI;i_?cQ^qQ`PDJGDCx=zT z__()3VT~?Bz-;b)%TO)m7)cdb^8!M=%nDY2qijbPE{1s#PS$lmFkxH2(rS~EJyy1V zDV;6fP9cjEpUq;+;x{P62f49Z$|k?uNUnHlS1lhA)snDj^lNuW?1OJ@oCe`#rB6xoDmC$GL&Ip z?uzS_V4F8%zuOi^p?)~{;$OrKOMbyYvtAKY(OG$>g=pS8L*GK{@oEb z#B)lYOr?|;=G+(83m?$2im6{Il{4z_D)YnSs-8~^<{}Wm#&l72Vp#5DulfL%S(;Eu z%1dz8kTPHZapR4pQB=KRLI-(~|N63l-t=j=O16WDfq;4{rgYa(=Qy_$2V;*I7F4KRt3TB$l#}hL+uM5jWzfDSO%StmJ zARoi5spWK3WRm=eQ$#Q*PrYKc3PsmOY#uF0+4|i#ro*TS4#Yk%yu9myQXl~toAqqH5pnFwx~z@h>VmSt(m{i!5&uLl?B7d z8YkHsvL!iB=RC`w(&s}N?ckwrNIW(5+)NS2z9aGZ6_alThE|-|C{$MJvI+wBMBS=I zzvZtKHhTsPm!Px0SBa*V5*RBsx!h-~T9E@>!>ub^iJOe1<=%VS$L-SaHdV)Y>^$l+ z@^s3%zGw=4DpmB7zJu-`^j+Yidcf)?GJ-pzRtjofEf)=mOFfxu+y$l1TAF@5JUS1cZTV}cm8I?Lhk;=eSX(HzH~x}6%p z*@1gNQ>i89Mv8mztPhB?U89pldTw?- zPE$)y##(JcG3lX;s@h>Kubn^j2Aej$-2 zqmL{y*oIh1(HdOp^s4mU)}pmoX4QeN^|#{}qw`ayB)cCu?`d!CN0Ee|iO8|=p2nw{ z3yg_jyW?lwG#aj(&xluC{vCq+I!pSE1Rs`RxHr_e?pu^Zq9D7D;V=3lVhz zLwMuw4KszCrT#XJ)Nzfd`44i-UDmJ0Y-QvxgE=GR6}LBnSpHPp3VhfI9hXa72-5KabQ zI@MUt=D*G%$i4x<_s?B{SOR{01qK`Q{|eD(GUvE5T+)pK zaG6%$^DxFDT`=w`4y3Nh^W8zRw$)3oiApesl$_)pDzT^GBOcviG22bI_JQ!b{wj^2 zjoxgf=SfJq{Aq_pAi~7tkhPT&q=Ts~vkkK&14n?(1D+`71)_Lb8!S+?c2Y;pd)>DA zs0z%M5M)0`D>`ITJC~05rvA;VTF5$D zANbDxbN0Xiwc+X>C_H!vP3az42ycFTX${)OQapTQV8C*q18y^d5(i0d_UcTHnbpK; z=sjn&-*zPd7&f){d925nTSr7_!k45@>Bj`lE`I(;Sudk2Pz69Sq%+dZ9E&b5@DeeT z&tz9Y$VG8!JbEKnuKQgpc?2l5O}88WK=8uZeYa$t#sznG->vP;$>eBexNG|jSGbgvYwXwNw-#$UwPpPxPNTScgBe>%vecvRmE zX^MB-;L-u$0;X$x_JaX?Lq)Q#`1emop}37PU0@WP+f<1~QBfMW>)QvEp{=+*Knts| z!tgVdT~iX>dLpH-hDCUDF}K@{43S`dVWDOm zvH8wpJ`Y4tC&BjN)ZRlzaIm?X=g0NGwADK#I{Q5ZFN5i?mI~B{24nwt9n?sCLxC@l z{9bRRr(naBX`s8p+Y^J%8zT)QrXhq8{I?d`5}=unkt_#u`xl8Is%ca*I(ZVuaKUgi z5NfBe0sqV{{jvC+L)m_U2lgDD_%Lzf!sBQqih&wQhj+srWzldB&qirWDl~oJ+U+NA z6k_>WZB}lTrbX(oLkd9rz`gh@Anxo!T73Z7W<)0;gU+WEWQFrF2+v&xdEx(P_nDpv zp1t_TVmZvD93R&@Oau8mS{Yn}_Kp$$Ha`Fx+ZMQ!{dmvOkH94yM8#82>oxsBdG`mx zYCTdd8f(AqC^}1}J6Lnp*@vlNf29tdwpCFJGdNW=C|l7$*Muep6uhNi698NWH8J_qU0o=R<(WAXD#5)5GAmG|AO1K%+J zz`$bD1)b+bhMEZ%GXx^qS)ga=!v^C~Uw7H`a^EY&33P5(`hSIYAzD#ZXj-o4?624p zFEz;1>jSqG_h^p1h?k!F@3OBis0)~^jnw)0pe?T9nMMzv)cYocj`{;`?g zue`zDyAeBpjpd?ZQ&a9P7%2C4^c*Q0eElsINn_V|(Rq!3FnZZ2tBW24DFIyt(FwcW zZa3|jvKX&I9AA;x#!v&%XTX)+Q)4xE?E7d`%jVei81eqWCkJTyz>Na_N-zR}PNU7< z2CU0#hus&ylSsVZ}NWo%dyTw5BRKE?1@wZ_Vz9))oXZ*6f-p zaHHHUMaG{W&CS9jfA9i+9nM2Z{;1Nq-n=Rg$ui5{W-uTdx6&=b-5b1owkc{+i?y50 z&3<XfQH|_@3m?cSc!xZtRXSoxi~grur`e>(uJY%rcnq zZzPzVUWK99*h7@5L> zU--=0n%smI8Fzm5eD?KI!MiwKksia%6wB(msF|9W@5y>6F^oL-;)9)y=D^T&al;;L z#)$#q%{_7;lOW>n7L4O3INrcJ>{cBMT*sr)z_|PBz>Do5?%g)uROhmau?L z2Vw2>?`{Tj4r0{3>CPyi!D5C74QJUlt-JGZQA=029IJuuS>Dsv8$=(hx>C+`t?~1J zbF&z>%Pq>=jOpA2;9&Wv_~jY?DzM;nQpyS~-8P8Y?<+}p-)~dv+-s%mq_Ol>+7H<( zu-ND3y5yyxt4kN_7a2vGgBWwHszIeAZ~i%^Won?6W`do zpZxr;nnN;_tqs0@eko$TwZB61^E+j}h3sL=_Hzz!-sJWEI0w%Y{$s6J*zc#(2nxkXI7Euw{+%k$L= zjFjcFpSY-y!{nBcWDKTVX4v6|-DgG!Cert4SpQXi+2Is+yL;?*-2RPXJhw4kf)%Mo zFHf`rk12A>r2m0%XR8S*fQext%!RSFi+^3qD@SGP)e!^WsTRH_-M{ZdnQnHAisyy{ zqVBtYkv`Z!Vs6v8awUG!oZ{p&>vu`ww!3)GKY&CziEfOE%X5&MGKtLRgHm5&2e~c_ z!S_;dLG|R@MzP*dJBb78T5OaD8xui0yrP1vP4CSa=y_npElRbpR;-C&&fTpm4R&1Cziw zQoiiAN7#N z^W)X3Jic`CW-W3tNsaZ?Fhm--&lN&zs)b_RyJ&o_kV?qz-z*3&7fo`PN{<(t7erka zSG3z665~j2O_4I-{z-*ytij;Qv(M!tBC-O*4cw+WBp*gV zVR)sP481jU|F*6h>sYZVOf0+ZH6~7$S4A6+|4wgl&HYr$tP0HjOi}1bWC&p{0z4PG zkA06HA!X7Uq~ag-5$%ISp6BW4hqv|BNlHf?5``j@jOQGdv_{1j-0ks!T$QZ3A@^V{ zG9uMZ&$xyB;vPb%#z7>qS;8=h!pw5Ms#bg;v`98We8wq5NDI&syn}%a9I&D4vW4V~ zXKlubzR)(&*xTni(_eOrQbQa#Ny|%Hdu`q?c(ZV<=4KSg(OH=sbCYdrV9$r-xx`d| zy!A&F&mVL*NSTW)Xtl4@QaTyD9c?l33{hg8mn*eg+1?H0F7 zX1=fYV3g02XI7DiX9Nlp5ag1Lj6D|SoPK<*jI3YmXM9x=$DVsut+UBE!UGy8X$LMV z7=bLo36C7JrMJ6{a><%fCW_@5Q^HR3Ltu>V%BypJYBJWS(UqY`*B!abaPtCfJAmMf zapCWyqOgyGH`y0z?lZ-BaQP|CylE3SZFKvzFBwyb0Ss2wSSTz&pbV$*1QTK)so;vP+n@aeA0VxF0EId+r*4tV+@+TRYLdhMHA|!_yCy z1oD*?{K#PwZbiv#yNXA`y(wt33LA68aL>poKQdZtG?mWUce+^TM4Mk9$crP>F+t)s zsr8%7?**H)!-3|N7Mm^s#z`Zs5;Vf6IP@C1|M*S%?-HF-tork8k7|m1UZ?Z&I|o~= z)Zdy)Sx5KPS$9ZGL7TRsN)2+TZ%Zq;Hb~dYa}`{SXkB5B6}{RMxhLk8KQslp4P<^5 zK^Tjl46EjeTwh{s2_tin+YPlmS=2A46kH7p7o6qZa7BJ2f6zW35-MzT_nHv{>~dqJ;NH0b#W?)$I4A&v7(PV6Y4CQhANC5{rSh3N%>3G#ALSr z5pB!2n#hda;x*$NRKL{i&|&U`vulYNct`ap)q31P`5Sc$%#p4b=hj|!Vv>JbO%i(A z$?~w$=|(1jn$3EW^;!?f)^HJp7fIE}Qe>X1dFLoE>}}-S6qUKzuDD6N^A(dTdUVd& zY)0!wS;u`6&Zv($4o#xi>?r8+dT1u9UE55T$06}gg)nePvpm9oyH8QDW=u5?*Kx`G z)sX~#v-fNJMh}bU#cKmcCY|;VBt=9H6Z7Cc=P>JfZhmbjoJJM}FFaxH&DUG5{u=1Y zhkwh&(LBXy5Vp5P5LwWYqhwvTOOi}7asQxZ@!{qO!GN%qdO;*WNyK$|MauIePmCna zF{qK>9Z#trV)Inb_&6IE_qQ%(gfqv7)D76jh_8@!f%jlwR$7Xyc17 z3W;Y7Lp3AhZ@xBNn{oRnX}sczZ|{{hkwCdHL+V}ZJ`9Ep$Vt&EJ>{k=+0fJK(^0p# z3@{b$DpOnzV(Xe~7gw_MK;FN`QG8O=uEtqRe!-avt7JzH{}3p58-FLN9ot3j?dR4X zo%0l>u&AJv4f9?Pe{4{-Y&p`=#`}?{-#J7iFHyT_Q_odA*S^z2vx?TV%KY+5uGP(A z35bt*sp2Jp91KG~r2hk}?uWsI`Nw}CF4-^d23>+3OTo0A)Q)Q!EXiu+iwoVgs^Tn4 zDl>fg@Xc`i3#ZTp$26J|uDadjLa{xf{=``hLYsC@VCcFdy2s&YYgn3YxlQ^l_L@~T z|IXZ4(U;Tw%h4MJdUsLDULQS5pTya-%ILWdiCIvDUQ(FQkfw1`8=8^lMv$p8D&uDm zp2SoUEly0vJUg}gi#PThG}x;Ax#PkFTm<&UX#6b=on%m~{AM;x`_13 zA)FI927s_$6Hm2X?9XdC2=_gD5=EfZ$%q%bjfZ6<;QONLXZaRdoN-!RB`j4E0XN%N z(%jUjqFE*dlvWLr$|2Sabi4r^IzDHhVVRq617Bm(ob}%gVs^q?dOp`eP))E58IezH ztBSODNVnXxzo53e?8xpjvS%rsrm3XEU*7a1DQY8U?&bQhQ1K>Pf4EV`A=6WdM$}Q& z%iJF+Q_ozd+jTPKFNPTksO5?K^fhBe|92pU>#QoBm zMGc$YeGvZRIheidd%$tjA*V%l6_TL=tukMO;0p`3QH_>i_{!Hb9Cl9q*=;W$8QpBt zof3KEM=4dqYDh2;RC$CPa_D2V?Ody6+7sJ1&dM9&c1V)t_8}9^eoAIHZR9WsT-riT z_?gQ*7y4Y6fmUY?sVPXqhAzL}(yKqwP2l&-j6e?kC7e#)2Z+FEA%vnsE!xf4#xF4edn6IX zU8=gwgZ|QVF|Q6}1L+z9o>Z^WcC41Se&em4&qzX4^VgZ(m6!fXB&4?0JuBRJOe@~2 zXr?h;PxGJo-jI`sO^TYu(tZAuD$1y~FwejPZLZQsL!p)ijBwHQ&8hUo>e2+9u`OJt zLTD%6p*XOiCL2$vg)u3&twE8Yt} z9*X=-t(vas&FS%43GIZkXmfoZTgA0CryXcH(x!^=ltI6uFZQc&ghl4`BH6^%f})4x z3Flon&EEC>A?ds&c&cwXszvgmgo6n+e=(`wqt@PsrwbfnL@zYE(cZw@Gy6VqjtLFg ziQF*qFW0t&z?jLDk{?GF=ZAs||nLkbgny z(;ec131qJq4e8v;yJubvHu`v7dUo)~YX#7Kq|%{~3}kos%>y0C}!_wM#5aaT`n^}7W5r!e_( zFpv|+GH6*+{NB<0Jj_G@|IcIm{HK5a@Rl^d>^m>!^8J-a0Ltpdt3QwN`;ns=h@8nO zjjMm<7{J*WpZjs6{s4?SE*?41o|pr!4}~8Xq)|ZU%YIDPy5`I^nFLP)(wyidCLht) z(Ev(mB(Q>nJbOm;o$=b9%Q%j`l)Xqa_aou1R?fVN`OEJDSQ91=QHAnG#obxvs@awn z4nN%+t-u^pwhn+W# z{E@%}H_vXWS;M*}SwvA?4P-si1ufIA?jssY0`I;`g z6eN?6Dc+elwnG%zVH{|xw`Su8fI>G{YGoF_Aigss=F)v(!gvI~>kR@m*{Z%Yj0+%L zO|0giE^|Fi0MkpE>511V;s>G*;d8dY2&VR6L8#C9kJR^qP&a$87yYuK%g} z-pA=z8UF=ZijiMKoLa#&2HblkgK^B(uX0{=48?@y4!KLY#AgE;mBbJjnhj@Dd6U?f zz)?`yR_U~0!yvKK5iC0Sreh2DvRj`z)I|fF0uF!yrA~vo-Cg24)*b*~=2Zt}S^M?< zU83nQ2#)iM*LW#fy$}=r$>G%oPsj1xDgE!lAYu=i%%Tf6ry2#As8Db4gH(nP(VhW4 zD^9FaD-(S3EeDE?B~j1Fe$_!w3!-XY<}{y`fg(l~5?J6lJeIqL-b;Q7c&81C@k3Z- zNd}P?iSho6RnOhWqt}%g?&H&$dhtyX;-#JQd8TXgeVo#jB`g$!TV^DA#^(7Ing|EK zT5FKY2+S^6yhICnM_?eicjF7PjXbE_YLM#<`_i^CwrN{^Zx{T4FK?y9D*@ou$s#?C zM22X}v=QqGI)J_FWP&#&8vfgKx;D{g`|G+XKi=bHl(WW6bR)cSCo}Q-Xmv6s$9b+>5-`#iI<|E&uTa zmZf|H&>p58v{XWbrgqc%h;3bba@e+OKY20-4zIfr8XBESH-&eux#cP3myUWEyOC--`L%e7;7nH1=XlDDKgF`=mYJ%b6s~a=j zZ%rUOl`R)RFlHCq2M?lvFgfhZ;9|n@IFF$}X0HBOz&}+>5&Q5?N`wB(`86NCgttUQ zCUd-fH&f>zxK&$Qk`|gME0efE-KsX;qPHYmWRbMq(;wcWWekKgJu>4SB$Qs#<@QoA z4Zg(X0=%SAH()NZZsD=~(5v=>Ub7R2DulAAud9}Dm`N^_5kkz)fPDR?~@;9?84P7Ulk(9K?83M%$GNU|y`AugzkMOIy>g3pXU8_KyWU$;fW$)GaOa z09YoV7R9hLQ&clYI>ljhGKkD#C{cbog+mu40$#O4ULsG-x{zw;YfVV_S5Fbrylb}| zGreYL<>`EuWh&GrJibl)Ms)e5Ewg$9lWhr&cF%00$1ZP>oJqtN7D&R-!&ylQWdg?^ z;3aWi_jL;-3L##()}`r~+TZ!vurK5OZP+j8_uM2>M$Ux`qmj@6kHs(79wi5W)eMPO zTdx9B-C$F^Ki2MAo8sl^FYLD~gS&!<-9rih|5?9VRfA$`%12aoW4_;rs6T0PWC4dQ zuB+Q1RHefeMewE1x`k=QJzX;+*IiXVx7VT#QA8_t=Y#gqE6Pp-OV5P-hS;XLgB22G zZ_(BiQ83@>xWCW%RO*_9ceTvfhCgZq;)54meyUGvLMGZH-}8N$wx?KJtb7SuYaJX- zc1>p|&5W@&zm1Q2TqLswxM&-h3ow1tu(v%eKqK0rkYp*#&cy+T%@cFR*THJjy~?1H z^+8^WlqL!_c))b(0O}bhvhmQpsRmZMqYsyPuPTA!u`Ts5*7q54at77;aoa3h<#sKI zcYU2Yi7Hck5n+Gt9QB>A&Ks|06TP-AD^g#Er~~1b_)_EhFS|j4qlG3S&ZT~o`LWT_ zR@C8tk(em+p6dIekG~NsT=o<#mXr9@->ZL+SuxIfkRL~-q&^1`85*(2<~a|zRk-xL2-jQi3v?u99Hm?91DN6TZt_ot!g~CoPd8im=6W`s`IIu z_Og_O?V)cjK3KO_Cg)xS!Q%_8K|Umuo+l7*Qn7(N_}L6<&9+PZg9Svx1PNWBbFiDn7;F|1Ra2ls-oKYwStHIkt`|E(u<@%>WxZ z>S`^6p4i5%HuI)|b{Ei;EguQ}3c1ovhksHIQh)stjdx@QA+AaF!;!!_!u|!MQc;u^ z2t6*qdg|3gqp%QK^{ZpWw35*aR}-Q#VnlQP#DR%L+^iU}K(!o=lO>$`TQ%Kx^GH*Z zS${4M@72GoCg3F`BMu}U32VIY-&b|v`CT?LAfai}HtG1Uj)N$nIYyMwd}8Ez@VBp4 zeoIsg*$q(f{;fS=Jxo*#-IDo}@c*~q55GZF48`*|pZ(cP{Q4cT&xwj5d9wR|Ee+Ei zfxe2uJc#En74QGQ++X{n|Nra$(k1?1ALdz(rhB|*|32w=6>i*Gg8K?=Ay}aEl!pVUi$}nnb*3a3d{{8;Jj1Y#VhO`Hqui2Deg&Q zuDQ!YwiSwF?elYb+IwHUHL7^q%t|qJyn}vLvvFfjIqP0)htcE>F#FH({W^8#8*{2p zcG!$P?dRG1zBra1e8q&kOSFG~4>x6h140pZ`-Rd4@3vQQtPdkji}Sup^gI$qdT*`d zSdx9ciq3;JhFgB(>=&YYFuW~fX>F+BJ-M_q7~UCi@qXQ+ERaUr8L5T1&ddHwQ@mRa zUiQ86*|@5IdT3wdqw$PA6uK_a+q!JHfz9=*sc3@U#}9X=Bvh(p=(;bY?)z{JY#n6u zQ6IP@S%+lYUSfTFABhiNQC20-F6b70p+@C!$54Yi$J^pAIPwg34raDGcS*y-xJ-B$ zfBd)knSG_Z2T>P)I%j_jJ;r>#8o9qW9d^AsJc~R3bBD6!3*{-iOu>g%6V{c)U~{#= zsI2;TZA-7X)M}m;DR$lo#=mmN&Ureq@y;;m3yE3Z#@JH^2zNZI%RNy#Y|h9cd2DYP zZ*5m*h9vh_C1ilBKI`5bq@>)IM01(s*Jbs?rvsEoIh9-vd&mO#!fftL-^&lkWIQjF zekQrd{pKQd&^wcA>6QSVhd}|&x)e^g#W$y!t~%Zh*t|8`fTn70Ct){8ZnjWvcy}S? z!bPY;Bgu<%d?WqpEo%n_WpxWV0}tk3xlfiWCD<0!*mxuw)~1T&3~arvhp>G9u@nv+ z_Vvg|r1N{}ju>hUR#P>#nLxf2Ps`cRr&XEoR*RY{N5;lC%dw^A-|RsO>OjAym>uNy`-*Y2nir)&slvy4h3S==NfY+f%Z)PmUOKSZ&?)5bD+F`*;>X3tydPkX){9TZCJc!a6l+vbPtsRz zu=A*z#VHH*F%RUZlKUmnGkb*Vp+Ce;Hq^dBstU3i#!k=Fe-KXG9-O<$p(=hACD#x^ zkB@pSHSG}VUAs)z1=&YQNHfR!y-c0BW4iXb4RJ-D>ep>7`ohOWK40G-cF;qoeepE+ zw8>SaGF%QJtf!nVKik&vI6LxCmHlo%b+=AN{*LArn@K(22tz_z$1`;NW4$PT{W5j- z`Lpbj5f34P!KlyNK~q9I7)@aem9f=P=KpMpz9&Tw!1dFs}jlX#V&9;5@(hp+Dso|UHLtmmo3r%96agf)6_1Ftj!Rv~e%U5{AGVMS{t%oz);>~mUuNkWe(H7N94_)>Q3@;m z+cn0dQ6Hr!`277d{^87S)YvZ_{oM;I@iT$%(vGF>2~p zyZd^zqoiAR#VCK<%wHVxW3l;xDt;xjoCV1e zSyCvMSLTmT3Vgidc)uIs%}%DRjwlOxAlAUPG9BKZRk&s@5aIRxb++rmC3o0Dh3B@cbbq;yo`jgRuE z9Xfv#Fee=9cAaO8{!tl;Fnx4p5Tvy1vbmm@_f~J}rY@@Abo$nnssf6uFgfk))z+r> zQe2mMM{XMktujEzSj0RP%JiM=g1__{UWwedjDpOzYCm)#ur!k0L$OY|dhNOgVjA&a3NSiX_>v{L>n>tuY*S zW!K6Lm?R8ti+MjdW?EeX6RF7Elpg+CSxX&$yFK7nRkyG2A-{~n$B+D5 zQ$036mQHgYc~~vst`H)HRV3bB=|koFRhZ*7KkKILQD@Y_ZYIrceGqj0Bcvqd3;e=f z8&!K3y~+GdM`XgID@ipPT%HEHUQHgn4UC2%Yi`@;!>UL5cklDZBP$mh@rXSvb%j@N8xxXW=1nj9!_JLhuBehPKb+sijDS@+328B?As zK;`LsYNIPAD&ZBFN4izti=A<(Zc?9qLimPvaYDsR2Gn~z9PU0*f}Z8JwU#c}zN@>t zBna(3-fit+xYXs0n?HDp<@Pk$ZLb{=sNLCep2Q~NgJjBFa7)>wW$*)f=oI+`rHM14 z7d0Qap90leTZdQRXYWYE299SI+KSY5VNYhYzfY9*aZ)m17e)&9Cz<@RAK$%x`s-3- z!Y|je|3K!U`W4EUo9v0|>>ZDA+z7vT!W_d+?H&|gZ(ceju?-)~!AKxFX+2|Ahs^iC zmY}vB_VYT|X)Ri6?bUVN`p8lHg8KAUaSI|}XU*eB1`L-6oF{h-Z34#*vh(Uzm*LAp za{e{b8RXV9`kxTG$if%mlS5%|qKjS9%*R?+gq~ zP#XGIt++t3gMy`Qo=rB`0W2Cf&YK>Uiee@fh%3CVX&t6NK`|^-S#w779CaM zB(^8vca}5YPVFHKjD}ancr|kEznhkEsZOKWb@TE9LmGaw#9;<+`L&;K`OU*+$AX~u zkc++7e5_ST-Y33L(?pn4s=n?-x$p9e1c{98wK-4k+1f~pFU~q+&;}MGD9Gv{{w5d& zH2At+JH7^8dm)G34jdbT+k_C(BzB#@Tj=;8MNn;9O14;TA5Dt%uBUN=2SWl2lH_?aEn@%+d9ED?~;ws+ZeJ*JX56zqYUe8sC!e;zL%cY zY*-F?8Z;%bse@jr2t@m~OPJLGOh~h1$(ng4z;3eA3N*cHX++5U&>_=bj zOG6gzd@O4(BlbnMh(#sbw9qQf(?-=wT6}YTGdSTzihIf{`=AXP+igrouaA@?&Z26^ zt0186xywh+;IRaOEwcgmQbR#$kgeXOv2W;JGnQcU>@QVIejKP~$|>&gwc+9d0yI!! zzmn5t%P1?sVn|oJj1{{1icfUPQq=rl_oWNzGf~Q4m)k}krJwK3^G~72l24>Oq%$;L zj~Wm)KPS!HZ#;aCQ7|t#=#d|_6M0r-$uk9M7*Fb|p2`HqJw)DHI^AQT%@se}7Q(Px zjJTq7Wz0H|RYT~0np~Z$Kpz7wdSGlh>k+&^*oUwTKjo9A)yK?B^H4Yv8O zlkCiBuHkfNTLXRtHfYC>nSEpK_93Sm7d%Wy_sGMV!_$weP1~s8 zMPI91xYYq0)O(fzJ-Jb5jn|?m+(ta?KRS>4mQ3+!>22 zb;pZ!cxe0GQiE^I2~6Fa?3Gj+gCxl7ZqPzYrlg^o(eODM`4R3MDZ9uNm$E!vTdFg< z4GXY&YjKChjq_|?!PIVr+IObik{}!ji;urTGp&iZwSeKAz#qG zTF~g0cj5G!qITPtDbJD1QY;B_%yRv$eNFmcKB$@SE&D3jkA73Q z2qU)nwqLQ2Pj{aO|55|_A9ME)t#@zec64t4I&^CK^~bMkiZ@Pg=`n9GKwZKeYI?8I zC~3Sxxtq%&=yYH27Nzf`VWPRoHBa_8juoA6dv%4|Rw(N`pAhB(Wo7NXMBez{=HxcB zX*PaP*`Oq!r&1MbW{R21HD{2CflAIOS7{ZT>Esjmr@ztlX@+#H<4(-9E3@=!j(fh& z-qj*ZbeWXDncK0{aKBV!Ou)#kZECk2(1}mABICdMvB8%5d~f}-$vPf!{B3D?=EeM0 z0C_Q-pI+TD`~38zVtz^Sl-1h_hL+{B++@{xYN}%Wyihe7S>Y5%fdNU#S?q}eJAI87 zA%ROyCoUzi$E3@Qa@qJa_quk~CiXa;h=~2IV`Tm)G2HR<-ahs}W|otaeSAh&(vj5C zvdG>I+P_GVmel^G^Whl>`O~V~c^@rn!~JhMJ3PUwg{c(_S?NXG-x9Shtf8>v@M-zt zv`D9KD(5uQb7Rzbqs$ZY`PFZw>uIn$lT*F94QiX;>ucz+mwe`D1PdmM`-^$Z- zquN?`SiiIL$cJFM$NC$_dJA0V@Tnh{$#hEeds%^%6(+$jPrT-6rdjzxIGerspvu~% ztOnK*+t#T*Uz9dsKFeS(>TuUF$ z^Q^y9TW>$>mM1pXZ({#rr~CKuJVre1iJyl(9q-&EjYcK0R;W=b^B=dI;pwUoeAFq4 z6q`Pu{On8gay)y>_#$X~m?8-_Z3$N8I$z8VYL!B0@M70RQr$I9vfBw}Xl>%z&Rn|y>Xp#Hn9#YGjZGLH_f-q_vw}L_OQ%or@_15$>==aG>C=m&MV*gmB?8v2bJj_Cpq7*C-?KIK6GT`=;6Jt z&|e?LUt8{-1kh3K(6F8U8;E}B*n{Wwp(R%WpbbV{%4Pf&Px-ONfKLEiMeIk}`k#yV=h6x}z=h(^XoUV+NdD&-zx39> zz6anBhAthUfH@!Mkoo&Xg1Vmck5BwKGVTm`s;XW@r2hTZQot%s{`yP&=d_*uz-`t4 zEUWr!Vey}1fJgP{-@md-@_Bu4{$nP#pHI~9f9A(R`2A-7ynNsPwOGXu;ga&QuFeKd Q*BOAo)78&qol`;+04(}33;+NC literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/images/default-unraid-provider.png b/i18n/fr/docusaurus-plugin-content-docs/current/API/images/default-unraid-provider.png new file mode 100644 index 0000000000000000000000000000000000000000..8d1f3227d6d04960a730ec48fa864ccd5243f78e GIT binary patch literal 131176 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 + +## 🌟 Caractéristiques principales + +:::info[Core Capacités] +L'API fournit : + +- **Interface GraphQL** : API moderne et flexible avec typage fort +- **Authentification** : Plusieurs méthodes incluant les clés API, cookies de session, et SSO/OIDC +- **Couverture complète** : Accès aux informations système, gestion de matrice et opérations Docker +- **Outils pour développeurs** : Bac à sable GraphQL intégré, configurable via une interface web ou CLI +- **Accès basé sur les rôles** : Contrôle des permissions granulaires +- **Gestion web** : Gérez les clés API et paramètres via l'interface web +::: + +## 🚀 Commencer + + + + + + + + + + + +Pour des instructions d'utilisation détaillées, voir la référence [Commandes CLI](./cli). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx new file mode 100644 index 0000000000..efd9ad0df7 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx @@ -0,0 +1,415 @@ +--- +title: Configuration du fournisseur OIDC +description: Configurez des fournisseurs OIDC (OpenID Connect) pour l'authentification SSO dans l'API Unraid +sidebar_position: 3 +--- + +# Configuration du fournisseur OIDC + +:::info[What Qu'est-ce que l'OIDC?] +OpenID Connect (OIDC) est un protocole d'authentification qui permet aux utilisateurs de se connecter en utilisant leurs comptes existants à partir de fournisseurs comme Google, Microsoft ou votre fournisseur d'identité d'entreprise. Il permet l'authentification Single Sign-On (SSO) pour une authentification fluide et sécurisée. +::: + +Ce guide vous guide à travers la configuration des fournisseurs OIDC (OpenID Connect) pour l'authentification SSO dans l'API Unraid en utilisant l'interface web. + +## 🚀 Démarrage rapide + +
+ Accéder aux paramètres OIDC + + 1. Accédez à l'interface web de votre serveur Unraid + 2. Allez à **Paramètres** → **Accès à la gestion** → **API** → **OIDC** + 3. Vous verrez des onglets pour différents fournisseurs - cliquez sur le bouton **+** pour ajouter un nouveau fournisseur +
+ +### Aperçu de l'interface des fournisseurs OIDC + +![Page de connexion avec options SSO](/img/api/sso-with-options.png) +*Page de connexion affichant un formulaire de connexion traditionnel avec des options SSO - boutons "Connexion avec Unraid.net" et "Connexion avec Google"* + +L'interface comprend : + +- **Onglets de fournisseur** : Chaque fournisseur configuré (Unraid.net, Google, etc.) apparaît comme un onglet +- **Bouton Ajouter un fournisseur** : Cliquez sur le bouton **+** pour ajouter de nouveaux fournisseurs +- **Mode de l'autorisation** : Basculer entre les modes "simple" et "avancé" +- **Section d'autorisation simple** : Configurer les domaines d'email autorisés et les adresses spécifiques +- **Boutons Ajouter élément** : Cliquez pour ajouter plusieurs règles d'autorisation + +## Comprendre les modes d'autorisation + +L'interface propose deux modes d'autorisation : + +### Mode simple (recommandé) + +Le mode simple est la manière la plus facile de configurer l'autorisation. Vous pouvez : + +- Autoriser des domaines d'email spécifiques (e.g., @company.com) +- Autoriser des adresses email spécifiques +- Configurer qui peut accéder à votre serveur Unraid avec une configuration minimale + +**Quand utiliser le mode simple :** + +- Vous souhaitez autoriser tous les utilisateurs de votre domaine d'entreprise +- Vous avez une petite liste de utilisateurs spécifiques +- Vous êtes débutant dans la configuration OIDC + +
+ Mode avancé + + Le mode avancé offre un contrôle granulaire utilisant des règles basées sur les assertions. Vous pouvez : + + - Créer des règles d'autorisation complexes basées sur les revendications JWT + - Utiliser des opérateurs comme équivaut, contient, termine par, commence par + - Combiner plusieurs conditions avec la logique OU/ET + - Choisir si TOUTE règle doit passer (mode OU) ou si TOUTES les règles doivent passer (mode ET) + + **Quand utiliser le mode avancé :** + + - Vous devez vérifier les appartenances à des groupes + - Vous souhaitez vérifier plusieurs revendications (e.g., domaine de l'email ET statut vérifié) + - Vous avez des exigences d'autorisation complexes + - Vous avez besoin d'un contrôle minutieux sur la façon dont les règles sont évaluées +
+ +## Règles d'autorisation + +![Configuration des règles d'autorisation](/img/api/advanced-rules.png) +*Règles avancées d'autorisation montrant la configuration des revendications JWT avec l'opérateur termine par pour le contrôle d'accès basé sur le domaine* + +### Exemples de mode simple + +#### Autoriser le domaine de l'entreprise + +Dans l'autorisation simple : + +- **Domaines d'email autorisés** : Saisir `company.com` +- Cela autorise quiconque avec un email @company.com + +#### Autoriser des utilisateurs spécifiques + +- **Adresses email spécifiques** : Ajouter des emails individuels +- Cliquez sur **Ajouter un élément** pour ajouter plusieurs adresses + +
+ Exemples de mode avancé + + #### Mode des règles d'autorisation + + Lorsque vous utilisez plusieurs règles, vous pouvez choisir comment elles sont évaluées : + + - **Mode OU** (par défaut) : L'utilisateur est autorisé si TOUTE règle passe + - **Mode ET** : L'utilisateur est autorisé uniquement si TOUTES les règles passent + + #### Domaine d'email avec vérification (mode ET) + + Pour exiger à la fois le domaine de l'email ET la vérification : + + 1. Réglez **Mode Règle d'Autorisation** sur `ET` + 2. Ajouter deux règles : + - Règle 1 : + - **Revendication** : `email` + - **Opérateur** : `termine par` + - **Valeur** : `@company.com` + - Règle 2 : + - **Revendication** : `email_verified` + - **Opérateur** : `équivaut` + - **Valeur** : `true` + + Cela assure que les utilisateurs doivent avoir à la fois un email d'entreprise ET une adresse email vérifiée. + + #### Accès basé sur les groupes (mode OU) + + Pour autoriser l'accès à plusieurs groupes : + + 1. Réglez **Mode Règle d'Autorisation** sur `OU` (par défaut) + 2. Ajouter des règles pour chaque groupe : + - **Revendication** : `groups` + - **Opérateur** : `contient` + - **Valeur** : `admins` + Ou ajoutez une autre règle : + - **Revendication** : `groups` + - **Opérateur** : `contient` + - **Valeur** : `développeurs` + + Les utilisateurs dans le groupe `admins` OU `développeurs` seront autorisés. + + #### Domaines multiples + + - **Revendication** : `email` + - **Opérateur** : `termine par` + - **Valeurs** : Ajouter plusieurs domaines (par ex., `company.com`, `subsidiary.com`) + + #### Autorisation complexe (mode ET) + + Pour une sécurité stricte nécessitant plusieurs conditions : + + 1. Réglez **Mode Règle d'Autorisation** sur `ET` + 2. Ajouter plusieurs règles qui DOIVENT TOUTES passer : + - L'email doit provenir du domaine de l'entreprise + - L'email doit être vérifié + - L'utilisateur doit être dans un groupe spécifique + - Le compte doit avoir une authentification à deux facteurs activée (si la réclamation est disponible) +
+ +
+ Détails de l'interface de configuration + + ### Onglets des fournisseurs + + - Chaque fournisseur configuré apparaît comme un onglet en haut + - Cliquez sur un onglet pour basculer entre les configurations des fournisseurs + - Le bouton **+** à droite ajoute un nouveau fournisseur + + ### Menu déroulant Mode d'Autorisation + + - **simple**: Idéal pour l'autorisation basée sur email (recommandé pour la plupart des utilisateurs) + - **avancé**: Pour des règles complexes basées sur les assertions à l'aide de revendications JWT + + ### Champs d'Autorisation Simple + + Quand le mode "simple" est sélectionné, vous verrez : + + - **Domaines d'email autorisés** : Entrez des domaines sans @ (e.g., `company.com`) + - Texte d'aide : "Les utilisateurs avec des emails se terminant par ces domaines peuvent se connecter" + - **Adresses email spécifiques** : Ajouter des adresses email individuelles + - Texte d'aide : "Seules ces adresses email exactes peuvent se connecter" + - **Boutons Ajouter un élément** pour ajouter plusieurs entrées + + ### Champs d'Autorisation Avancée + + Quand le mode "avancé" est sélectionné, vous verrez : + + - **Mode Règle d'Autorisation** : Choisissez `OU` (toute règle passe) ou `ET` (toutes les règles doivent passer) + - **Règles d'Autorisation** : Ajouter plusieurs règles basées sur les revendications + - **Pour chaque règle** : + - **Revendication** : La revendication JWT à vérifier + - **Opérateur** : Comment comparer (équivaut, contient, termine par, commence par) + - **Valeur** : À quoi appariement + + ### Éléments supplémentaires de l'interface + + - **Activer le bac à sable développeur** : Basculer pour activer le bac à sable GraphQL sur `/graphql` + - L'interface utilise un thème sombre pour une meilleure visibilité + - Les indicateurs de validation des champs aident à garantir une configuration correcte +
+ +### URI de redirection requis + +:::caution[Important Configuration] +Tous les fournisseurs doivent être configurés avec ce format exact d'URI de redirection : +::: + +```bash +http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback +``` + +:::tip +Remplacez `YOUR_UNRAID_IP` par l'adresse IP réelle de votre serveur (par exemple, `192.168.1.100` ou `tower.local`). +::: + +### Format de l'URL de l'émetteur + +Le champ **URL de l'émetteur** accepte les deux formats, mais **l'URL de base est fortement recommandée** pour la sécurité : + +- **URL de base** (recommandé) : `https://accounts.google.com` +- **URL complète de la découverte** : `https://accounts.google.com/.well-known/openid-configuration` + +**⚠️ Note de sécurité** : Utilisez toujours le format URL de base lorsque possible. Le système ajoute automatiquement `/.well-known/openid-configuration` pour la découverte OIDC. Utiliser directement l'URL complète de découverte désactive les vérifications importantes de validation de l'émetteur et n'est pas recommandé par la spécification OpenID Connect. + +**Exemples d'URL de base correctes :** + +- Google : `https://accounts.google.com` +- Microsoft/Azure : `https://login.microsoftonline.com/YOUR_TENANT_ID/v2.0` +- Keycloak : `https://keycloak.example.com/realms/YOUR_REALM` +- Authelia : `https://auth.yourdomain.com` + +## ✅ Tester votre configuration + +![Page de connexion avec boutons SSO](/img/api/sso-with-options.png) +*Page de connexion Unraid affichant à la fois l'authentification par nom d'utilisateur/mot de passe traditionnel et les options SSO avec des boutons de fournisseur personnalisés* + +1. Enregistrez votre configuration de fournisseur +2. Déconnectez-vous (si connecté) +3. Accédez à la page de connexion +4. Votre bouton de fournisseur configuré devrait apparaître +5. Cliquez pour tester le processus de connexion + +## 🔧 Dépannage + +### Problèmes courants + +#### Erreur "Fournisseur non trouvé" + +- Assurez-vous que l'URL de l'émetteur est correcte +- Vérifiez que le fournisseur prend en charge la découverte OIDC (/.well-known/openid-configuration) + +#### "Autorisation échouée" + +- En mode simple : Vérifiez que les domaines d'email sont correctement saisis (sans le @) +- En mode avancé : + - Vérifiez que les noms de revendications correspondent exactement à ce que votre fournisseur envoie + - Assurez-vous que le Mode d'Autorisation est correctement configuré (OU versus ET) + - Assurez-vous que toutes les revendications requises sont présentes dans le jeton +- Activez la journalisation du débogage pour voir les revendications réelles et l'évaluation des règles + +#### "URI de redirection invalide" + +- Assurez-vous que l'URI de redirection dans votre fournisseur correspond exactement +- Incluez le port correct si vous utilisez une configuration non standard +- Vérifiez que le protocole de l'URI de redirection correspond à la configuration de votre serveur (HTTP ou HTTPS) + +#### Impossible de voir le bouton de connexion + +- Vérifiez qu'au moins une règle d'autorisation est configurée +- Vérifiez que le fournisseur est activé/enregistré + +### Mode Débogage + +Pour résoudre les problèmes : + +1. Activer la journalisation du débogage : + +```bash +LOG_LEVEL=debug unraid-api start --debug +``` + +2. Vérifiez les journaux pour : + +- Réclamations reçues du fournisseur +- Évaluation des règles d'autorisation +- Erreurs de validation de jeton + +## 🔐 Meilleures pratiques de sécurité + +1. **Utilisez le mode simple pour l'autorisation** - Prévoit des configurations trop permissives et réduit les risques de mauvaise configuration +2. **Soyez spécifique avec l'autorisation** - N'utilisez pas de règles trop larges +3. **Faites tourner les secrets régulièrement** - Mettez à jour les secrets clients périodiquement +4. **Testez minutieusement** - Vérifiez que seuls les utilisateurs prévus peuvent accéder + +## 💡 Besoin d'aide ? + +- Consultez la documentation OIDC du fournisseur +- Examinez les journaux API d'Unraid pour des messages d'erreur détaillés +- Assurez-vous que votre fournisseur prend en charge la découverte standard OIDC +- Vérifiez la connectivité réseau entre Unraid et le fournisseur + +## 🏢 Configuration spécifique au fournisseur + +### Fournisseur Unraid.net + +Le fournisseur Unraid.net est intégré et préconfiguré. Vous devez uniquement configurer les règles d'autorisation dans l'interface. + +**Configuration** : + +- **URL de l'émetteur** : Préconfiguré (fournisseur intégré) +- **ID/Secret Client** : Préconfiguré (fournisseur intégré) +- **URI de redirection** : `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +:::tip[Redirect Protocole URI] +**Faites correspondre le protocole à la configuration de votre serveur :** Utilisez `http://` si vous accédez à votre serveur Unraid sans SSL/TLS (typique pour un accès réseau local). Utilisez `https://` si vous avez configuré SSL/TLS sur votre serveur. Certains fournisseurs OIDC (comme Google) requièrent HTTPS et n'accepteront pas d'URI de redirection HTTP. +::: + +Configurez les règles d'autorisation en utilisant le mode simple (domaines/adresses e-mail permis) ou le mode avancé pour des exigences complexes. + +### Google + +
+ 📋 Étapes de configuration + + Configurez des identifiants OAuth 2.0 dans [le Google Cloud Console](https://console.cloud.google.com/) : + + 1. Allez dans **APIs & Services** → **Informations d'identification** + 2. Cliquez sur **Créer des identifiants** → **ID client OAuth** + 3. Choisissez **Application Web** comme type d'application + 4. Ajoutez votre URI de redirection à **URIs de redirection autorisés** + 5. Configurez l'écran de consentement OAuth si vous y êtes invité +
+ +**Configuration** : + +- **URL de l'émetteur** : `https://accounts.google.com` +- **ID/Secret Client** : De vos identifiants de client OAuth 2.0 +- **Portées requises** : `openid`, `profile`, `email` +- **URI de redirection** : `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +:::warning[Google Exigences de domaine] +**Google requiert des noms de domaine valides pour les URI de redirection OAuth.** Les adresses IP locales et les domaines `.local` ne sont pas acceptés. Pour utiliser Google OAuth avec votre serveur Unraid, vous aurez besoin : + +- **Option 1 : Proxy inverse** - Configurez un proxy inverse (comme NGINX Proxy Manager ou Traefik) avec un nom de domaine valide pointant vers votre API Unraid +- **Option 2 : Tailscale** - Utilisez Tailscale pour obtenir un domaine `*.ts.net` valide que Google acceptera +- **Option 3 : DNS dynamique** - Utilisez un service DDNS pour obtenir un nom de domaine public pour votre serveur + +N'oubliez pas de mettre à jour votre URI de redirection à la fois dans le Google Cloud Console et dans votre configuration OIDC Unraid pour utiliser le domaine valide. +::: + +Pour les domaines Google Workspace, utilisez le mode avancé avec la revendication `hd` pour restreindre l'accès au domaine de votre organisation. + +### Authelia + +Configurez le client OIDC dans votre `configuration.yml` d'Authelia avec l'ID client `unraid-api` et générez un secret haché en utilisant la commande hash-password d'Authelia. + +**Configuration** : + +- **URL de l'émetteur** : `https://auth.votredomaine.com` +- **ID client** : `unraid-api` (ou tel que configuré dans Authelia) +- **Secret du client** : Votre secret non haché +- **Portées requises** : `openid`, `profile`, `email`, `groups` +- **URI de redirection** : `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Utilisez le mode avancé avec la revendication `groups` pour l'autorisation basée sur les groupes. + +### Microsoft/Azure AD + +Inscrivez une nouvelle application dans [Azure Portal](https://portal.azure.com/) sous Azure Active Directory → Enregistrements d'application. Notez l'identifiant de l'application, créez un secret client, et notez votre identifiant de locataire. + +**Configuration** : + +- **URL de l'émetteur** : `https://login.microsoftonline.com/YOUR_TENANT_ID/v2.0` +- **ID client** : Votre ID d'application (client) +- **Secret du client** : Secret client généré +- **Portées requises** : `openid`, `profile`, `email` +- **URI de redirection** : `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Les règles d'autorisation peuvent être configurées dans l'interface en utilisant des domaines email ou des revendications avancées. + +### Keycloak + +Créez un nouveau client confidentiel dans la console d'administration Keycloak avec le protocole `openid-connect` et copiez le secret du client à partir de l'onglet Credentials. + +**Configuration** : + +- **URL de l'émetteur** : `https://keycloak.exemple.com/realms/YOUR_REALM` +- **ID client** : `unraid-api` (ou tel que configuré dans Keycloak) +- **Secret du client** : Depuis l'onglet Credentials de Keycloak +- **Portées requises** : `openid`, `profile`, `email` +- **URI de redirection** : `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Pour l'autorisation basée sur les rôles, utilisez le mode avancé avec les revendications `realm_access.roles` ou `resource_access`. + +### Authentik + +Créez un nouveau fournisseur OAuth2/OpenID dans Authentik, puis créez une application et liez-la au fournisseur. + +**Configuration** : + +- **URL de l'émetteur** : `https://authentik.exemple.com/application/o//` +- **ID client** : Depuis la configuration du fournisseur Authentik +- **Secret du client** : Depuis la configuration du fournisseur Authentik +- **Portées requises** : `openid`, `profile`, `email` +- **URI de redirection** : `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Les règles d'autorisation peuvent être configurées dans l'interface. + +### Okta + +Créez une nouvelle application Web OIDC dans la console d'administration Okta et assignez des utilisateurs ou des groupes appropriés. + +**Configuration** : + +- **URL de l'émetteur** : `https://YOUR_DOMAIN.okta.com` +- **ID client** : Depuis la configuration de l'application Okta +- **Secret du client** : Depuis la configuration de l'application Okta +- **Portées requises** : `openid`, `profile`, `email` +- **URI de redirection** : `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +Les règles d'autorisation peuvent être configurées dans l'interface en utilisant des domaines email ou des revendications avancées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx new file mode 100644 index 0000000000..e5a7bfed74 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx @@ -0,0 +1,5 @@ +1. Installer le plugin Unraid Connect depuis Applications Communautaires +2. Pas de connexion à Unraid Connect requise pour l'accès local à l'API +3. Configurer les paramètres du plugin +4. Activer le bac à sable GraphQL +5. Commencez à explorer l'API ! diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx new file mode 100644 index 0000000000..e8a810cc97 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx @@ -0,0 +1,5 @@ +1. L'API est déjà installée et en fonctionnement +2. Accédez aux paramètres via **Paramètres** → **Gestion de l'accès** → **API** +3. Activer le bac à sable GraphQL pour le développement +4. Créez votre première clé API +5. Commencez à faire des requêtes GraphQL ! diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx new file mode 100644 index 0000000000..2612efe39b --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx @@ -0,0 +1,12 @@ +Vous pouvez également utiliser le CLI pour créer une clé API : + +```bash +unraid-api apikey --create +``` + +Suivez les invites pour définir : + +- Nom +- Description +- Rôles +- Permissions diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx new file mode 100644 index 0000000000..ee861de0d2 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx @@ -0,0 +1,6 @@ +Accédez à **Paramètres** → **Accès à la gestion** → **Clés API** dans votre interface web Unraid pour : + +- Voir les clés API existantes +- Créer de nouvelles clés API +- Gérer les permissions et rôles +- Révoquer ou régénérer des clés diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx new file mode 100644 index 0000000000..b24360e676 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx @@ -0,0 +1,250 @@ +--- +title: Gestion Programmatique des Clés API +description: Créer, utiliser et supprimer des clés API de manière programmée pour des workflows automatisés +sidebar_position: 4 +--- + +# Gestion Programmatique des Clés API + +Ce guide explique comment créer, utiliser et supprimer des clés API de manière programmée en utilisant le CLI de l'API Unraid, permettant ainsi des workflows et des scripts automatisés. + +## Aperçu + +La commande `unraid-api apikey` prend en charge les modes interactif et non-interactif, ce qui la rend adaptée pour : + +- Scripts de déploiement automatisés +- Pipelines CI/CD +- Provisionnement d'accès temporaire +- Workflows d'infrastructure en tant que code + +:::tip[Quick Commencer] +Aller à l'[Exemple de Workflow Complet](#complete-workflow-example) pour voir tout en action. +::: + +## Création de clés API de manière programmée + +### Création de Base avec Sortie JSON + +Utilisez l'option `--json` pour obtenir une sortie lisible par machine : + +```bash +unraid-api apikey --create --name "workflow key" --roles ADMIN --json +``` + +**Sortie :** + +```json +{ + "key": "your-generated-api-key-here", + "name": "workflow key", + "id": "generated-uuid" +} +``` + +### Création Avancée avec Permissions + +```bash +unraid-api apikey --create \ + --name "limited access key" \ + --permissions "DOCKER:READ_ANY,ARRAY:READ_ANY" \ + --description "Read-only access for monitoring" \ + --json +``` + +### Gestion des Clés Existantes + +Si une clé portant le même nom existe, utilisez `--overwrite` : + +```bash +unraid-api apikey --create --name "existing key" --roles ADMIN --overwrite --json +``` + +:::warning[Key Remplacement] +Le drapeau `--overwrite` remplacera définitivement la clé existante. Lancienne clé sera immédiatement invalidée. +::: + +## Suppression de Clés API de Manière Programmée + +### Suppression Non Interactive + +Supprimer une clé par son nom sans invites : + +```bash +unraid-api apikey --delete --name "workflow key" +``` + +**Sortie :** + +``` +Successfully deleted 1 API key +``` + +### Sortie JSON pour la Suppression + +Utiliser l'option `--json` pour obtenir une confirmation de suppression lisible par machine : + +```bash +unraid-api apikey --delete --name "workflow key" --json +``` + +**Sortie de Succès :** + +```json +{ + "deleted": 1, + "keys": [ + { + "id": "generated-uuid", + "name": "workflow key" + } + ] +} +``` + +**Sortie d'Erreur :** + +```json +{ + "deleted": 0, + "error": "No API key found with name: nonexistent key" +} +``` + +### Gestion des Erreurs + +Quand la clé spécifiée n'existe pas : + +```bash +unraid-api apikey --delete --name "nonexistent key" +# Output: No API keys found to delete +``` + +**Sortie JSON d'Erreur :** + +```json +{ + "deleted": 0, + "message": "No API keys found to delete" +} +``` + +## Exemple de Workflow Complet + +Voici un exemple complet pour le provisionnement d'accès temporaire : + +```bash +#!/bin/bash +set -e + +# 1. Create temporary API key +echo "Creating temporary API key..." +KEY_DATA=$(unraid-api apikey --create \ + --name "temp deployment key" \ + --roles ADMIN \ + --description "Temporary key for deployment $(date)" \ + --json) + +# 2. Extract the API key +API_KEY=$(echo "$KEY_DATA" | jq -r '.key') +echo "API key created successfully" + +# 3. Use the key for operations +echo "Configuring services..." +curl -H "Authorization: Bearer $API_KEY" \ + -H "Content-Type: application/json" \ + -d '{"provider": "azure", "clientId": "your-client-id"}' \ + http://localhost:3001/graphql + +# 4. Clean up (always runs, even on error) +trap 'echo "Cleaning up..."; unraid-api apikey --delete --name "temp deployment key"' EXIT + +echo "Deployment completed successfully" +``` + +## Référence de Commandes + +### Options de Commande de Création + +| Option | Description | Exemple | +| ----------------------- | ------------------------------ | --------------------------------- | +| `--name ` | Nom de la clé (requis) | `--name "ma clé"` | +| `--rôles ` | Rôles séparés par des virgules | `--roles ADMIN,VIEWER` | +| `--permissions ` | Paires ressource:action | `--permissions "DOCKER:READ_ANY"` | +| `--description ` | Description de la clé | `--description "clé CI/CD"` | +| `--overwrite` | Remplacer la clé existante | `--overwrite` | +| `--json` | Sortie lisible par machine | `--json` | + +### Rôles Disponibles + +- `ADMIN` - Accès complet au système +- `CONNECT` - Fonctionnalités Unraid Connect +- `VIEWER` - Accès en lecture seule +- `GUEST` - Accès limité + +### Ressources et Actions Disponibles + +**Ressources :** `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` + +### Options de Commande de Suppression + +| Option | Description | Exemple | +| --------------- | --------------------------- | ----------------- | +| `--delete` | Activer le mode suppression | `--delete` | +| `--name ` | Clé à supprimer (optionnel) | `--name "ma clé"` | + +**Note :** Si `--name` est omis, la commande s'exécute de manière interactive. + +## Bonnes Pratiques + +:::info[Security Bonnes Pratiques] +**Permissions Minimales** + +- Utiliser des permissions spécifiques au lieu du rôle ADMIN lorsque c'est possible +- Exemple : `--permissions "DOCKER:READ_ANY"` au lieu de `--roles ADMIN` + +**Gestion du Cycle de Vie des Clés** + +- Toujours nettoyer les clés temporaires après utilisation +- Stocker les clés API de manière sécurisée (variables d'environnement, gestion des secrets) +- Utiliser des noms et descriptions descriptifs pour les traces d'audit +::: + +### Gestion des Erreurs + +- Vérifier les codes de sortie (`$?`) après chaque commande +- Utiliser `set -e` dans les scripts bash pour échouer rapidement +- Implémenter un nettoyage approprié avec `trap` + +### Nommer les Clés + +- Utiliser des noms descriptifs incluant l'objectif et la date +- Les noms doivent contenir uniquement des lettres, des chiffres et des espaces +- Les lettres Unicode sont prises en charge + +## Dépannage + +### Problèmes courants + +:::note[Common Messages d'Erreur] +**"Le nom de la clé API doit contenir uniquement des lettres, des chiffres et des espaces"** + +- **Solution:** Supprimer les caractères spéciaux comme les tirets, les underscores ou les symboles + +**"Une clé API portant le nom 'x' existe déjà"** + +- **Solution :** Utiliser l'option `--overwrite` ou choisir un nom différent + +**"Veuillez ajouter au moins un rôle ou une permission à la clé"** + +- **Solution:** Spécifier soit `--roles` soit `--permissions` (ou les deux) +::: + +### Mode Débogage + +Pour le dépannage, exécutez avec la journalisation du débogage : + +```bash +LOG_LEVEL=debug unraid-api apikey --create --name "debug key" --roles ADMIN +``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx new file mode 100644 index 0000000000..be53a6025e --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx @@ -0,0 +1,171 @@ +--- +title: Feuille de route & Fonctionnalités +description: Statut actuel et fonctionnalités à venir pour l'API Unraid +sidebar_position: 10 +--- + +# Feuille de route & Fonctionnalités + +:::info[Development Statut] +Cette feuille de route présente les fonctionnalités terminées et planifiées pour l'API Unraid. Les fonctionnalités et les délais peuvent changer en fonction des priorités de développement et des retours de la communauté. +::: + +## Légende du statut des fonctionnalités + +| Statut | Description | +| ---------------------------- | -------------------------------------------- | +| ✅ **Fait** | La fonctionnalité est complète et disponible | +| 🚧 **En cours** | Actuellement en cours de développement actif | +| 📅 **Prévu** | Prévu pour un développement futur | +| 💡 **En cours de réflexion** | Évalué pour une inclusion future | + +## Infrastructures de base + +### Fonctionnalités terminées ✅ + +| Fonctionnalité | Disponible depuis | +| -------------------------------------------------------------- | ------------------ | +| **Améliorations de l'environnement de développement de l'API** | v4.0.0 | +| **Inclure l'API dans Unraid OS** | Unraid v7.2-beta.1 | +| **Séparer l'API du plugin Connect** | Unraid v7.2-beta.1 | + +### Fonctionnalités à venir 📅 + +| Fonctionnalité | Calendrier cible | +| --------------------------------------- | ----------------------------------------------------------------------------------------- | +| **Rendre l'API open source** | Terminé — publié en open source en janvier 2025 ([GitHub](https://github.com/unraid/api)) | +| **Outils pour développeurs de plugins** | Q2 2025 | + +## Sécurité & Authentification + +### Fonctionnalités terminées ✅ + +| Fonctionnalité | Disponible depuis | +| ---------------------------------------- | ------------------ | +| **Réécriture du système de permissions** | v4.0.0 | +| **Support OIDC/SSO** | Unraid v7.2-beta.1 | + +### En développement 🚧 + +- **Bibliothèque de composants pour l'interface utilisateur** - Composants de sécurité améliorés pour l'UI + +## Améliorations de l'interface utilisateur + +### Fonctionnalités prévues 📅 + +| Fonctionnalité | Calendrier cible | Description | +| -------------------------------------------- | ---------------- | ------------------------------------------------------------------------ | +| **Nouvelles pages de paramètres** | Q2 2025 | Interface des paramètres modernisée avec une UX améliorée | +| **Créateur de thème personnalisé** | Q2-Q3 2025 | Permettre aux utilisateurs de créer et partager des thèmes personnalisés | +| **Nouvelle interface de paramètres Connect** | Q1 2025 | Configuration Connect Unraid repensée | + +## Gestion des Arrays + +### Fonctionnalités terminées ✅ + +| Fonctionnalité | Disponible depuis | +| ------------------------------------- | ----------------- | +| **Surveillance de l'état de l'array** | v4.0.0 | + +### Fonctionnalités prévues 📅 + +| Fonctionnalité | Calendrier cible | Description | +| --------------------------------------------- | ---------------- | -------------------------------------------- | +| **Interface de création de pool de stockage** | Q2 2025 | Processus de création de pool simplifié | +| **Interface de statut de pool de stockage** | Q2 2025 | Surveillance en temps réel de l'état du pool | + +## Intégration Docker + +### Fonctionnalités terminées ✅ + +| Fonctionnalité | Disponible depuis | +| ------------------------------------------------ | ----------------- | +| **Surveillance de l'état des conteneurs Docker** | v4.0.0 | + +### Fonctionnalités prévues 📅 + +| Fonctionnalité | Calendrier cible | Description | +| ---------------------------------------------------- | ---------------- | ------------------------------------------- | +| **Nouveau design de l'interface de statut Docker** | Q3 2025 | Interface de gestion moderne des conteneurs | +| **Nouvelle interface de statut Docker** | Q3 2025 | Mise en œuvre du nouveau design | +| **Interface de configuration des conteneurs Docker** | Q3 2025 | Déploiement simplifié des conteneurs | +| **Support Docker Compose** | TBD | Support natif du fichier docker-compose.yml | + +## Gestion des partages + +### Fonctionnalités terminées ✅ + +| Fonctionnalité | Disponible depuis | +| ---------------------------------------------------- | ----------------- | +| **Surveillance de l'état des partages beauté/index** | v4.0.0 | + +### En cours de réflexion 💡 + +- **Création de partages de stockage et paramètres** - Options de configuration de partage améliorées +- **Interface de gestion de partage de stockage** - Tableau de bord de gestion unifié de partage + +## Système de plugins + +### Fonctionnalités prévues 📅 + +| Fonctionnalité | Calendrier cible | Description | +| -------------------------------------- | ---------------- | ----------------------------------------- | +| **Nouvelle interface des plugins** | Q3 2025 | Interface de gestion des plugins repensée | +| **Interface de gestion des plugins** | TBD | Configuration avancée des plugins | +| **Outils de développement de plugins** | TBD | SDK et outils pour développeurs | + +## Notifications + +### Fonctionnalités terminées ✅ + +| Fonctionnalité | Disponible depuis | +| ------------------------------ | ----------------- | +| **Système de notifications** | v4.0.0 | +| **Interface de notifications** | v4.0.0 | + +--- + +## Versions récentes + +:::info[Full Historique des versions] +Pour une liste complète de toutes les versions, journaux des modifications et liens de téléchargement, visitez votre page [Unraid API GitHub Releases](https://github.com/unraid/api/releases). +::: + +### Points forts d'Unraid v7.2-beta.1 + +- 🎉 **API incluse dans Unraid OS** - Intégration native +- 🔐 **Support OIDC/SSO** - Authentification entreprise +- 📦 **API autonome** - Séparée du plugin Connect + +### Points forts de v4.0.0 + +- 🛡️ **Réécriture du système de permissions** - Sécurité améliorée +- 📊 **Surveillance complète** - État des tableaux, Docker et des partages +- 🔔 **Système de notifications** - Alertes et notifications en temps réel +- 🛠️ **Environnement de développement** - Outils de développement améliorés + +## Feedback de la communauté + +:::tip[Have une demande de fonctionnalité?] +Commentaires de la communauté reçus; API open source en janvier 2025 ! Veuillez soumettre vos demandes de fonctionnalités et vos retours via : + +- [Forums Unraid](https://forums.unraid.net) +- [Problèmes GitHub](https://github.com/unraid/api/issues) - L'API est maintenant en open source ! +::: + +## Support des versions + +| Version Unraid | Version de l'API | Statut de support | +| ------------------- | ------------------ | ----------------- | +| Unraid v7.2-beta.1+ | Dernière version | ✅ Actif | +| 7.0 - 7.1.x | v4.x via Plugin | ⚠️ Limité | +| 6.12.x | v4.x via Plugin | ⚠️ Limité | +| \< 6.12 | Non pris en charge | ❌ EOL | + +:::warning[Legacy Support] +Les versions antérieures à Unraid 7.2 nécessitent l'installation de l'API via le plugin Unraid Connect. Certaines fonctionnalités peuvent ne pas être disponibles sur les versions plus anciennes. +::: + +:::tip[Pre-release Versions] +Vous pouvez installer le plugin Unraid Connect pour accéder aux versions pré-release de l'API et obtenir un accès anticipé aux nouvelles fonctionnalités avant qu'elles ne soient incluses dans les versions Unraid OS. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/contribute/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/contribute/_category_.json new file mode 100644 index 0000000000..d127c31a11 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/contribute/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Contribuer", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx new file mode 100644 index 0000000000..3231f31ea5 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx @@ -0,0 +1,161 @@ +--- +sidebar_position: 1 +sidebar_label: Guide de style +--- + +# Guide de style des documents Unraid + +Unraid OS est façonné par l'équipe LimeTech et la communauté Unraid. Notre documentation vise à être exhaustive, précise et à jour. Étant donné que nos utilisateurs proviennent de divers horizons dans le monde entier, ce guide établit les bases d'une rédaction cohérente et claire dans l'ensemble des documents Unraid. + +--- + +## Conventions d'écriture + +### Style et ton + +Notre ton trouve un équilibre entre amical et formel, visant un contenu détaillé et précis auquel les utilisateurs peuvent s'identifier. + +- Utilisez des instructions formelles et directes lorsque l'action est fixe et ne laisse aucune place à la déviation. +- Utilisez un ton conversationnel et explicatif lorsque vous fournissez un contexte ou des scénarios pour rendre le contenu plus accessible. + +En tant que contributeur, tenez compte du contexte et du public lors du choix de votre ton. + +:::important +Parce que Unraid OS a un public mondial, nous évitons le jargon, l'argot ou les idiomes. Ceux-ci peuvent perturber les locuteurs non natifs et compliquer le processus de traduction. +::: + +### Public : Écrire pour tous les niveaux + +Nos lecteurs vont des experts Linux qui comprennent les entrailles du système aux débutants explorant Unraid pour la première fois. + +Écrivez clairement et de manière inclusive afin que les experts comme les néophytes puissent suivre aisément. + +### La méthode ABC : précision, brièveté, clarté + +Nous priorisons : + +- **Précision** : Assurez-vous que le contenu est correct et rigoureusement testé. +- **Brièveté** : Soyez concis sans sacrifier les détails nécessaires. +- **Clarté** : Utilisez un langage simple et structurez le contenu pour une compréhension facile. + +--- + +## Syntaxe + +Les documents Unraid utilisent le formatage Markdown combiné à des styles de texte spécifiques pour aider les utilisateurs à identifier rapidement les éléments de l'interface et à naviguer dans le WebGUI. + +| Type d'élément | Convention de style | Syntaxe Markdown | Exemple / Description | +| ------------------------------- | --------------------------- | -------------------------------- | ------------------------------------------------------- | +| Nom d'option ou de bouton | Gras | `**texte**` | Sélectionner **Terminé** | +| Valeur saisie par l'utilisateur | Italique | `*texte*` | Entrer une valeur de *50 Go* | +| Chemin de navigation | Gras + italique; utiliser → | `***nav1 → nav2***` | ***Paramètres → Paramètres du disque*** | +| Étiquette d'onglet | Gras | **nom\_onglet** | Nom d'un onglet à sélectionner | +| Étiquette de case à cocher | Gras | **étiquette\_case\_à\_cocher** | Étiquette d'une option de case à cocher | +| Option de menu déroulant | Italique | *option\_déroulante* | Option sélectionnable dans un menu déroulant | +| Titre de dialogue | Titre de niveau 3 | `### Titre de dialogue` | Titre pour les dialogues pop-up ou les fenêtres modales | +| Texte de l'info-bulle | Italique en ligne | *texte de l'info-bulle* | Courte explication affichée au survol | +| Élément de menu | Gras + italique | ***Menu → Sous-menu → Élément*** | Navigation à travers les menus imbriqués | +| Sortie de la CLI et du système | Monospace (code en ligne) | `` `texte` `` | Naviguer vers `http://tower.local` | +| Message d'erreur | Monospace (code en ligne) | `` `Erreur : message` `` | Chaînes d'erreur ou journaux exacts | +| Titre du document | Titre de niveau 1 | `# Titre` | (affiché en tant que) `

Titre

` | +| Section du document | Titre de niveau 2 | `## Titre` | (affiché en tant que) `

Titre

` | +| Sous-section du document | Titre de niveau 3 | `### Titre` | (affiché en tant que) `

Titre

` | + +:::note +Chaque niveau de titre 2 (`##`) ou inférieur apparaît dans la barre latérale du Table des Matières (TOC) pour une navigation facile. +::: + +--- + +## Formatage des listes et tableaux + +Utiliser des éléments structurés, tels que les listes et tableaux, améliore considérablement la clarté des informations, aide à la compréhension et favorise la consultation rapide. + +### Listes + +Les listes aident les utilisateurs à absorber, se rappeler et suivre les points clés ou les étapes. Il existe deux types principaux, chacun avec des cas d'utilisation clairs : + +- **Listes non ordonnées** (à puce) : Utilisez-les pour regrouper des éléments connexes sans impliquer d'ordre. + *Exemple :* "Liste des outils courants d'Unraid OS." + +- **Listes ordonnées** (numérotées) : Utilisez-les pour montrer une séquence ou procédure requise. + *Exemple :* "Pour démarrer le %%array|array%%..." + +:::tip[Best pratiques] +- Essayez d'introduire la liste avec une phrase tige claire se terminant par un deux-points. +- Utilisez 4 à 6 éléments maximum dans une liste non ordonnée pour faciliter le balayage et la mémorisation. Les listes plus longues peuvent être mieux présentées sous forme de tableau. +::: + +### Tableaux + +Les tableaux sont un excellent moyen d'organiser des données connexes en regroupant les informations en lignes et colonnes, ce qui facilite les comparaisons rapides et précises. + +:::tip[Best pratiques] +- Utilisez des tableaux pour plusieurs points de données liés qui bénéficient d'une comparaison côte à côte. +- Évitez les tableaux avec seulement 1 ou 2 cellules; utilisez plutôt des listes à puces ou des phrases. +- Introduisez le tableau par une phrase expliquant son but et son contenu. +::: + +--- + +## Abréviations, acronymes et sigles + +Pour réduire la confusion des lecteurs, suivez ces principes concernant les abréviations : + +- **Abréviations** : Ce sont des formes raccourcies de mots généralement inutiles dans les documents Unraid, sauf si elles sont universellement reconnues. +- **Acronymes** : Ils créent de nouveaux mots à partir des initiales d'autres mots (par exemple, %%RAID|raid%%). +- **Sigles** : Utilisent des initiales prononcées individuellement (par exemple, OS, %%ZFS|zfs%%). + +**Recommandations :** + +- Préférez les acronymes ou sigles existants bien connus qui sont familiers à votre public. +- Évitez de créer de nouvelles abréviations juste pour être bref. +- Épélez toujours les acronymes ou sigles non courants la première fois qu'ils sont utilisés, suivis de l'abréviation entre parenthèses. + *Exemple :* Disque de Machine Virtuelle (VMDK) + +--- + +## Créer des liens vers d'autres documents ou sites + +Les liens stratégiques permettent aux lecteurs d'explorer des sujets connexes et améliorent leur compréhension. Utilisez ces directives pour un hyperlien pratique et accessible. + +### Directives pour le texte de lien + +- Le texte de lien doit clairement décrire la destination, permettant à tous les lecteurs de comprendre le but du lien. +- Évitez les textes de lien vagues comme « Cliquez ici » ou « En savoir plus », car ils manquent de contexte. +- Évitez d'utiliser des URL brutes comme texte de lien en ligne. + +### Formatage des liens + +- Utilisez des liens Markdown en ligne : + +``` +You can also check our [getting started guide](../unraid-os/getting-started/quick-start-guide.mdx). +``` + +- Lien toujours vers la ressource la plus pertinente et autoritaire disponible. + +### Ajouter des termes de glossaire + +Unraid Docs utilise un système de glossaire centralisé pour garantir la cohérence et l'accessibilité des termes techniques. Les entrées de glossaire sont maintenues dans le fichier `glossary.yaml` situé dans le répertoire racine. + +Pour ajouter ou mettre à jour un terme : + +1. Modifiez `glossaire.yaml` en utilisant le modèle suivant : + +``` +GlossaryTerm: + term: Display Name + def: Full definition text. + link:
Optional detailed link +``` + +2. Pour ajouter une fonctionnalité d'info-bulle, référez-vous au terme dans la documentation en utilisant la syntaxe : + + ``` + %%Term|GlossaryTerm%% + ``` + + ...où la partie gauche de la barre verticale est le texte que vous souhaitez afficher, tandis que la partie droite est l'entrée correspondante du fichier YAML. + +3. 3. La [page du glossaire](../glossary.mdx) se mettra automatiquement à jour pour inclure de nouveaux termes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/docs-home.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/docs-home.mdx new file mode 100644 index 0000000000..251bb0ebc4 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/docs-home.mdx @@ -0,0 +1,55 @@ +--- +slug: / +sidebar_position: 0 +--- + +import Term from "@lunaticmuch/docusaurus-terminology/components/tooltip.js"; + +# Unraid Docs + +Bienvenue dans la documentation officielle d'Unraid ! Cette ressource complète est conçue pour vous aider à tirer le meilleur parti de votre serveur Unraid, que vous configuriez votre premier système ou que vous gériez un environnement homelab complexe. + +## Commencer + +Si vous êtes nouveau sur Unraid, nous recommandons de commencer par ces guides essentiels : + +- **[Qu'est-ce qu'Unraid ?](unraid-os/getting-started/what-is-unraid.mdx)** - Découvrez les fonctionnalités et avantages clés d'Unraid +- **[Installer Unraid](unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx)** - Guide complet de l'installation au premier démarrage +- **[Visite du WebGUI](./unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx)** - Naviguez dans le WebGUI avec confiance + +## Besoin d'aide? + +### Forums communautaires + +Les [Forums Unraid](https://forums.unraid.net/) sont le cœur de la communauté Unraid. Vous y trouverez : + +- Discussions utilisateur et dépannage +- Support des Plugins et conteneurs Docker +- Recommandations matérielles et discussions sur la compatibilité +- Solutions et contournements développés par la communauté + +### Ressources officielles + +- **[Page d'accueil Unraid](https://unraid.net/)** - Informations produit, téléchargements, et licences +- **[Applications Communautaires](https://unraid.net/community/apps)** - Parcourir et installer des Plugins et conteneurs Docker +- **[Unraid Connect](https://connect.myunraid.net/)** - Tableau de bord de gestion à distance + +### Options de support + +- **Support communautaire** : Postez vos questions sur les [forums](https://forums.unraid.net/) +- **Documentation** : Utilisez la fonction de recherche et la navigation pour trouver des réponses +- **Support des Plugins** : Consultez les fils de discussion des Plugins individuels dans la section [Applications Communautaires](https://forums.unraid.net/forum/89-community-applications/) + +## Termes du glossaire + +Dans toute cette documentation, vous remarquerez des termes formatés comme %%WebGUI|web-gui%%. Ce sont des termes du glossaire qui offrent des définitions et explications rapides. + +Pour les utiliser, survolez les termes du glossaire pour voir des infobulles avec des définitions. Vous pouvez consulter tout le glossaire sur la [page Glossaire](glossary.mdx). + +## Contribution + +Trouvé une erreur ou avez-vous une suggestion ? La documentation est open source et hébergée sur [GitHub](https://github.com/unraid/docs). Nous accueillons les contributions de la communauté ! + +--- + +**Prêt à plonger ?** Commencez par la section [Premiers pas](unraid-os/getting-started/what-is-unraid.mdx), ou utilisez la fonction de recherche pour trouver des informations spécifiques. Si vous ne trouvez pas ce que vous cherchez, les [Forums Unraid](https://forums.unraid.net/) sont toujours là pour aider ! diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/glossary.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/glossary.mdx new file mode 100644 index 0000000000..4a26eba916 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/glossary.mdx @@ -0,0 +1,8 @@ +--- +sidebar_position: 999 +sidebar_label: Glossaire +--- + +# Glossaire + +%%RemarkAutoGlossary::list\_all%% diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json new file mode 100644 index 0000000000..1df4890eba --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Unraid Connect", + "position": 2, + "link": { + "type": "generated-index" + } +} diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx new file mode 100644 index 0000000000..68a51f1ed2 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx @@ -0,0 +1,116 @@ +--- +sidebar_position: 2 +sidebar_label: Sauvegarde flash automatisée +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Sauvegarde flash automatisée + +Sauvegarder votre clé USB Unraid est crucial pour une récupération rapide en cas de problèmes tels que des pannes matérielles, des suppressions accidentelles ou de la corruption de données. Si les sauvegardes locales (comme la copie de votre clé USB vers un autre périphérique USB ou un partage réseau) permettent un accès et un contrôle faciles, elles peuvent être vulnérables au vol, aux incendies ou à des pannes matérielles pouvant affecter l'ensemble de votre configuration. En revanche, les sauvegardes cloud offrent un stockage sécurisé hors site pour votre configuration, protégeant contre les désastres locaux et permettant une récupération de n'importe où. + +Contrairement aux sauvegardes traditionnelles qui se concentrent sur les données utilisateur, les %%VMs|vm%% ou les conteneurs Docker, les sauvegardes de clé préservent spécifiquement la configuration de votre OS Unraid, sa licence et ses paramètres système. Cette attention vous permet de restaurer le fonctionnement de votre serveur rapidement sans avoir à repartir de zéro. Unraid Connect permet des sauvegardes automatiques basées sur le cloud de la configuration de votre système d'exploitation. Si votre clé USB échoue, vous pouvez rapidement restaurer votre dernière sauvegarde avec l'[outil Unraid USB Flash Creator](https://unraid.net/download). + +La sauvegarde flash est entièrement optionnelle lors de l'utilisation d'Unraid Connect. + +:::tip +Utilisez à la fois des méthodes de sauvegarde locales et en cloud pour une protection maximale. Les sauvegardes en cloud offrent une couche supplémentaire de résilience que les solutions uniquement locales ne peuvent pas offrir. +::: + +## Collecte des données et confidentialité + +
+ Cliquez pour voir quelles données sont collectées et comment nous les gérons + + Unraid Connect prend votre vie privée et vos données au sérieux lors de l'utilisation de la sauvegarde flash : + +

Objectif

+ + La sauvegarde flash conserve uniquement les fichiers de configuration nécessaires pour restaurer votre environnement Unraid OS. Cela vous aide à récupérer rapidement et à maintenir la continuité du service en cas de panne de votre périphérique flash. + +

Données collectées

+ + La sauvegarde inclut uniquement les fichiers de configuration, garantissant que les informations sensibles, telles que les mots de passe et les clés %%WireGuard|wireguard%%, sont exclues. Les fichiers XML des modèles Docker peuvent faire partie de la sauvegarde et pourraient contenir des identifiants spécifiques aux applications. + +

Conservation des données

+ + Seule la dernière sauvegarde est conservée. Si une sauvegarde dépasse certaines limites — spécifiquement, si des fichiers individuels dépassent 10 Mo ou si la taille totale du dépôt dépasse 100 Mo — elle sera supprimée et recréée. Les sauvegardes sont également supprimées lorsque vous désactivez la fonction de sauvegarde flash ou après une période d'inactivité spécifique. + +

Partage des données

+ + Les données de sauvegarde flash ne sont jamais partagées avec des tiers. Elles sont stockées exclusivement pour vous fournir des services de sauvegarde et de restauration. +
+ +## Activation de la sauvegarde flash + +Unraid Connect exclut les données sensibles, telles que les mots de passe de compte et les clés %%WireGuard|wireguard%%, des sauvegardes jusqu'à ce qu'une cryptage complète soit disponible. Cependant, les fichiers XML de modèle Docker (qui pourraient contenir des identifiants d'application) sont inclus. Les solutions de cryptage sont en cours de développement. + +Pour activer la sauvegarde flash : + +1. Allez à ***Paramètres → Accès à la gestion → API d'Unraid***. + +
+ ![Sauvegarde du flash](/img/flashbackupbutton.png) +
+ +2. Sous **Sauvegarde flash**, cliquez sur **Activer**. +3. Attendez que l'activation et la sauvegarde initiale soient terminées. Le statut indiquera **Activé : à jour** une fois terminé. + +Après l'activation, tout changement de configuration est automatiquement sauvegardé sur le cloud dans 1 à 2 minutes. + +:::important +Les sauvegardes n'incluent pas les fichiers `config/shadow` ou `config/smbpasswd`. Les comptes utilisateurs sont préservés, mais les mots de passe ne le sont pas. Vous devrez réinitialiser tous les mots de passe utilisateurs, y compris le mot de passe root, après restauration. Les clés %%WireGuard|wireguard%% sont également exclues. +::: + +La sauvegarde flash est conçue pour stocker les fichiers de configuration essentiels, pas une copie complète de votre lecteur flash. Elle ne sauvegarde pas les fichiers transitoires (tels que les journaux) ou les binaires d'application. Les configurations des plugins sont incluses, mais les fichiers d'application devront être retéléchargés au démarrage. Les fichiers individuels jusqu'à 10 Mo sont sauvegardés ; si la sauvegarde totale dépasse 100 Mo, elle sera supprimée et recréée. + +## Restauration d'une sauvegarde flash + +Pour restaurer votre configuration : + +1. Connectez-vous à Unraid Connect. +2. Sélectionnez **Détails** sur le tableau de bord. +3. Cliquez sur **Générer la sauvegarde flash** à partir de la vignette de sauvegarde flash. +4. Le système crée un fichier zip contenant votre configuration OS et la version de la release. +5. Cliquez sur **Télécharger la sauvegarde flash** pour obtenir le fichier zip. +6. Utilisez le [Créateur de clé USB Unraid](https://unraid.net/download) pour restaurer la sauvegarde sur une nouvelle clé USB. + +### Étapes après la restauration + +Après avoir démarré avec la clé USB restaurée : + +- Réactivez la sauvegarde flash dans ***Paramètres → Accès à la gestion → API d'Unraid***. +- Réinitialisez les mots de passe pour tous les utilisateurs (y compris root) sur la page Utilisateurs. +- Pour chaque %%VPN Tunnel|vpn-tunnel%% et pair dans ***Paramètres → Gestionnaire VPN***, générez de nouvelles clés et téléchargez les configurations clients mises à jour. +- Si l'accès à Internet n'est pas disponible immédiatement après le démarrage, réinstallez les plugins via ***Apps → Previous Apps*** une fois la connectivité rétablie. Les fichiers de configuration seront prêts à l'emploi. + +## Désactivation de la sauvegarde flash + +Pour désactiver la sauvegarde flash : + +1. Dans ***Paramètres → Accès à la gestion → API d'Unraid***, cliquez sur **Désactiver** pour la sauvegarde flash. +2. Dans la boîte de dialogue de confirmation, cochez **Supprimer également la sauvegarde cloud** si vous souhaitez supprimer votre sauvegarde immédiatement. Sinon, les sauvegardes seront automatiquement supprimées après une période d'inactivité. + +## Confidentialité et sécurité + +### Chiffrement des sauvegardes + +Actuellement, les sauvegardes flash sont stockées dans le cloud sans cryptage. Par précaution, les données sensibles - y compris tous les mots de passe utilisateurs et root, ainsi que toutes les clés %%WireGuard|wireguard%% - ne sont jamais incluses dans la sauvegarde. + +### Politique de données sensibles + +Pour protéger votre vie privée, les éléments suivants ne sont **jamais** stockés dans les sauvegardes cloud : + +- Les mots de passe de comptes root ou utilisateur d'Unraid +- Les clés %%WireGuard|wireguard%% publiques, privées ou partagées + +:::note\[Reminder] + +La sauvegarde flash est uniquement destinée à la récupération de configuration. Intégrez toujours des stratégies de sauvegarde supplémentaires pour vos données et secrets critiques. + +::: + +--- + +\* *"%%WireGuard|wireguard%%" et le logo "%%WireGuard|wireguard%%" sont des marques déposées de Jason A. Donenfeld.* diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx new file mode 100644 index 0000000000..8b9bc1608c --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx @@ -0,0 +1,234 @@ +--- +sidebar_position: 1 +sidebar_label: Vue d'ensemble et configuration +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ConnectChangeBanner from './partials/customization/change-banner.mdx'; +import ConnectRearrangeDashboard from './partials/customization/rearrange-dashboard.mdx'; +import ConnectSwitchThemes from './partials/customization/switch-themes.mdx'; + +# Vue d'ensemble et configuration de Unraid Connect + +**Unraid Connect** est un compagnon cloud conçu pour améliorer votre expérience serveur **Unraid OS**. Il facilite la gestion, la surveillance et la maintenance du serveur, apportant la commodité du cloud directement dans votre homelab ou votre configuration professionnelle. + +Unraid Connect fonctionne en harmonie avec Unraid OS, boostant votre expérience serveur sans altérer ses fonctions de base. Vous pouvez considérer Unraid Connect comme votre centre de commande à distance. Il étend les capacités de votre serveur Unraid en offrant un accès sécurisé par le web et des fonctionnalités avancées, où que vous soyez. + +Avec Unraid Connect, vous pouvez : + +- Accéder à distance et gérer votre serveur Unraid depuis tout appareil, n'importe où dans le monde. +- Surveiller la santé du serveur en temps réel et l'utilisation des ressources, y compris le stockage, le réseau et l'état des conteneurs Docker. +- Effectuer et planifier des sauvegardes flash en ligne sécurisées pour protéger vos informations de configuration et de licence. +- Recevoir des notifications concernant la santé du serveur, le statut du stockage et les événements critiques. +- Utiliser l'accès à distance dynamique et les liens profonds du serveur pour naviguer rapidement vers des pages de gestion spécifiques ou résoudre des problèmes. +- Gérer plusieurs serveurs à partir d'un unique tableau de bord, idéal pour les utilisateurs ayant plus d'un système Unraid. + +Unraid Connect n'est pas qu'un simple add-on ; c'est une extension essentielle de la plateforme Unraid, conçue pour maximiser la valeur, la sécurité et la commodité de votre investissement Unraid OS. + +[**Cliquez ici pour plonger dans Unraid Connect !**](https://connect.myunraid.net) + +## Collecte des données et confidentialité + +
+ Cliquez pour voir quelles données sont collectées et comment nous les gérons + + Unraid Connect accorde la priorité à votre vie privée et à la transparence. Voici ce que vous devez savoir sur la manière dont nous gérons vos données : + +

Quelles données sont collectées et pourquoi

+ + Lorsque votre serveur se connecte à Unraid.net, il établit une connexion sécurisée à notre infrastructure et transmet uniquement les données nécessaires pour une expérience fluide dans le tableau de bord Unraid Connect. Cela inclut : + + - Nom d'hôte du serveur, description et icône + - Détails du fichier clé et flash %%GUID|guid%% + - URL d'accès local et IP LAN (uniquement si un certificat est installé) + - URL d'accès distant et IP WAN (si l'accès distant est activé) + - Version installée d'Unraid et temps de fonctionnement + - Version du plugin Unraid Connect et version/temps de fonctionnement de unraid-api + - %%Array|array%% taille et utilisation (uniquement les chiffres, pas de détails sur les fichiers) + - Nombre de conteneurs Docker et %%VMs|vm%% installés et en cours d'exécution + + Nous utilisons ces données uniquement pour activer les fonctionnalités d'Unraid Connect, telles que la surveillance à distance, la gestion et les notifications. Elles ne sont pas utilisées à des fins publicitaires ou de profilage. + +

Politique de conservation des données

+ + - Nous ne gardons que la dernière mise à jour de votre serveur ; aucune donnée passée n'est stockée. + - Les données sont conservées tant que votre serveur est enregistré et utilise Unraid Connect. + - Pour supprimer vos données, il vous suffit de désinstaller le plugin et de retirer tout certificat %%SSL|ssl%% délivré par Let's Encrypt. + +

Partage des données

+ + - Vos données ne sont **pas partagées avec des tiers** à moins que cela ne soit nécessaire pour les services d'Unraid Connect, comme la délivrance de certificats via Let's Encrypt. + - Nous ne collectons ni ne partageons aucun contenu utilisateur, détail de fichier ou information personnelle au-delà de ce qui est spécifié ci-dessus. + + Pour plus de détails, consultez notre page [Politiques](https://unraid.net/policies). +
+ +## Installation + +Unraid Connect est disponible en tant que plugin nécessitant Unraid OS 6.10 ou une version ultérieure. Avant de commencer, assurez-vous que votre serveur est connecté à Internet et que vous avez installé le plugin [Applications Communautaires](../unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx). + +Pour installer Unraid Connect : + +1. Allez dans l'onglet **Apps** dans le WebGUI d'Unraid. +2. Recherchez **Unraid Connect** et procédez à l'installation du plugin. Attendez que l'installation soit entièrement terminée avant de fermer la boîte de dialogue. +3. Dans le coin supérieur droit de votre WebGUI Unraid, cliquez sur le logo Unraid et sélectionnez **Connexion**. + +
+ ![Icône Unraid Connect](/img/icon_unraidconnect.png) +
+ +4. Connectez-vous avec vos identifiants Unraid.net ou créez un nouveau compte si nécessaire. +5. Suivez les instructions à l'écran pour enregistrer votre serveur avec Unraid Connect. +6. Après l'enregistrement, vous pouvez accéder au [Tableau de bord Unraid Connect](https://connect.myunraid.net) pour une gestion centralisée. + +:::note +Unraid Connect requires a myunraid.net certificate for secure remote management and access. To provision a certificate, go to ***Settings → Management Access*** in the %%WebGUI|web-gui%% and click **Provision** under the Certificate section. +::: + +## Tableau de Bord + +Le **Tableau de bord Unraid Connect** offre une vue centralisée, basée sur le cloud, de tous vos serveurs Unraid enregistrés, avec des fonctionnalités telles que : + +- **Mes serveurs :** Tous les serveurs liés apparaissent dans une barre latérale et en tant que tuiles interactives pour une sélection facile. +- **Statut (en un coup d'œil) :** Voyez rapidement quels serveurs sont en ligne ou hors ligne, ainsi que leur version Unraid OS, type de licence et activité récente. +- **Santé et alertes :** Les indicateurs visuels montrent la santé du serveur, les notifications et le statut des mises à jour. + +Lorsque vous cliquez sur **Détails** sur un serveur, vous verrez : + +- **En ligne/Hors ligne :** Statut de connectivité en temps réel. +- **Type de licence :** Starter, Unleashed ou Lifetime. +- **Temps de fonctionnement :** Durée pendant laquelle le serveur est actif. +- **Version Unraid OS :** Version actuelle et disponibles mise à jour. +- **Stockage :** Espaces total et libre sur tous les disques et pools. +- **Métriques de santé :** Utilisation de la CPU, de la mémoire et température (si pris en charge). +- **Notifications :** Alertes matérielles/logiciels, avertissements et erreurs. +- **Sauvegarde flash :** Statut et date de la dernière sauvegarde réussie. + +--- + +## Gestion de votre serveur à distance + +:::tip +Pour utiliser toutes les fonctionnalités de gestion, provisionnez un certificat myunraid.net sous ***Paramètres → Accès à la gestion*** sur votre serveur. +::: + +Avec un certificat **myunraid.net** valide, Unraid Connect permet une gestion sécurisée et à distance directement depuis l'interface web Connect. + +Les fonctionnalités de gestion à distance incluent : + +- **Accès WebGUI à distance :** Accédez au WebGUI de n'importe où. +- **Contrôles d'Array :** Démarrez ou arrêtez les %%array|array%%s et gérez les pools de stockage. +- **Gestion de Docker et VM :** Voir, démarrer, arrêter et surveiller conteneurs et %%VM|vm%%s. +- **Vérification et correctif :** Lancez des vérifications de %%parity check|parity-check%% ou des jobs de %%ZFS|zfs%%/%%BTRFS|btrfs%%. +- **Sauvegarde flash :** Déclenchez et surveillez les sauvegardes des appareils flash vers le cloud. +- **Diagnostics :** Téléchargez un zip de diagnostic pour support. +- **Notifications :** Examinez et reconnaissez les alertes système. +- **Contrôles du serveur :** Redémarrez ou éteignez votre serveur à distance. +- **Gestion des utilisateurs :** Gérez l'accès et l'enregistrement du compte Unraid.net. + +Vous pouvez gérer plusieurs serveurs depuis n'importe quel appareil - téléphone, tablette ou ordinateur - avec une seule fenêtre de navigateur. + +--- + +## Liens profonds + +Deep linking in Unraid Connect lets you jump directly to specific sections of your Unraid %%WebGUI|web-gui%% with a single click. Simply click any of the circled link buttons (below) in the Connect interface to go straight to the relevant management page for your server. + +
+ ![Liens profonds](/img/Deep-linking.png) +
+ +--- + +## Personnalisation + +Unraid Connect fournit une expérience de tableau de bord flexible, vous permettant de personnaliser l'affichage et l'apparence de vos serveurs. Les options de personnalisation sont organisées ci-dessous pour un accès facile. + + + + + + + + + + + + + + + +--- + +## Gestion des licences + +Gérer vos licences dans Unraid Connect est simple. Dans la section **Mes Clés**, vous pouvez: + +- Afficher ou réémettre une clé sur une nouvelle USB. +- Mettre à niveau votre catégorie de licence directement depuis l'UI Connect. +- Télécharger des fichiers de clé d'enregistrement pour sauvegarde ou transfert. +- Consulter l'état de la licence et l'expiration (si applicable). + +
+ ![Mes Clés](/img/mykeys.png) +
+ +Vous n'avez pas besoin de quitter l'interface Connect pour gérer ou mettre à niveau vos licences. + +--- + +## Localisation linguistique + +Unraid Connect prend en charge plusieurs langues pour répondre à une base d'utilisateurs mondiale. Vous pouvez changer votre préférence de langue via le sélecteur de langue dans l'interface Connect. + +Pour changer votre préférence de langue : + +1. Ouvrez l'UI Connect. +2. Allez vers le sélecteur de langue. + +
+ ![Sélecteur de langue](/img/languageselector.png) +
+ +3. Sélectionnez votre langue préférée dans la liste. + +L'interface se mettra à jour automatiquement pour refléter votre sélection. + +--- + +## Déconnexion + +Vous pouvez vous déconnecter d'Unraid Connect à tout moment depuis ***Paramètres → Accès à la gestion → Unraid Connect → État du compte*** en cliquant sur le bouton **Déconnexion**. + +Lorsque vous vous déconnectez : + +- Votre serveur reste listé sur le tableau de bord Connect, mais vous perdez l'accès aux fonctionnalités de gestion à distance. +- L'accès à distance, les sauvegardes cloud flash et d'autres fonctionnalités d'Unraid Connect seront désactivés pour ce serveur. +- Vous pouvez toujours télécharger vos clés d'enregistrement, mais vous ne pourrez pas gérer ou surveiller le serveur à distance jusqu'à ce que vous vous reconnectiez. +- La déconnexion ne déconnecte **pas** votre serveur du réseau local et n'affecte pas l'accès local. + +--- + +## Désinstallation du plugin + +Lorsque vous désinstallez le plugin Unraid Connect : + +- Tous les fichiers de sauvegarde flash seront désactivés et supprimés de votre lecteur flash local. +- Les sauvegardes cloud sont marquées pour être retirées des serveurs Unraid ; elles seront conservées pendant 30 jours, après quoi elles sont définitivement supprimées. Pour supprimer immédiatement, [désactivez la Sauvegarde Flash](./automated-flash-backup.mdx) avant la désinstallation. +- L'accès à distance sera désactivé. Assurez-vous de supprimer toutes les règles de transfert de port associées de votre routeur. +- Votre serveur sera déconnecté d'Unraid.net. + +:::note +La désinstallation du plugin ne revient **pas** à l'URL de votre serveur de `https://yourpersonalhash.unraid.net` à `http://computername`. Si vous souhaitez changer l'URL d'accès, référez-vous à [Désactivation de SSL pour l'accès local](../unraid-os/system-administration/secure-your-server/securing-your-connection.mdx#disabling-ssl-for-local-access). +::: + +--- + +## Erreurs de connexion + +Si vous rencontrez des erreurs de connexion dans Unraid Connect, [ouvrez un terminal](../unraid-os/system-administration/advanced-tools/command-line-interface.mdx) depuis le WebGUI et exécutez : + +``` +unraid-api restart +``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx new file mode 100644 index 0000000000..831ebcdbad --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx @@ -0,0 +1 @@ +Pour afficher l'image de bannière de votre serveur sur le tableau de bord Connect, téléchargez ou sélectionnez une image de bannière depuis votre %%WebGUI|web-gui%% sous ***Paramètres → Paramètres d'affichage → Bannière***. Cette bannière apparaîtra automatiquement dans votre tableau de bord Connect pour ce serveur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx new file mode 100644 index 0000000000..df7f0daf53 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx @@ -0,0 +1 @@ +Vous pouvez personnaliser la mise en page de votre tableau de bord en glissant et déposant les tuiles de serveurs. Dans le tableau de bord Connect, cliquez sur le bouton hamburger (≡) sur n'importe quelle tuile pour réorganiser sa position. Cela vous permet de prioriser les informations et les services les plus importants pour vous. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx new file mode 100644 index 0000000000..9d12479411 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx @@ -0,0 +1 @@ +Alternez entre le mode sombre et clair en cliquant sur l'icône Soleil ou Lune à l'extrême droite de l'interface Connect. Votre préférence de thème sera immédiatement appliquée sur l'ensemble du tableau de bord Connect pour une expérience cohérente. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx new file mode 100644 index 0000000000..25ce1ac396 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx @@ -0,0 +1,5 @@ +**Accès à distance dynamique** offre un accès sécurisé et à la demande à votre WebGUI. + +- **L'accès est activé uniquement lorsque vous en avez besoin.** Le WebGUI reste fermé à l'Internet par défaut, minimisant la surface d'attaque. +- **Fonctionne avec UPnP ou le transfert de port manuel.** +- **Ouvre et ferme automatiquement l'accès** via le tableau de bord Connect ou l'API, avec des sessions limitées dans le temps pour plus de sécurité. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx new file mode 100644 index 0000000000..ae4ccdfbec --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx @@ -0,0 +1,4 @@ +**Accès à distance statique** maintient votre WebGUI continuellement disponible depuis Internet. + +- **Le serveur est toujours accessible depuis Internet** sur le port configuré. +- **Risque plus élevé :** Le WebGUI est exposé au trafic WAN en permanence, augmentant la vulnérabilité potentielle. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx new file mode 100644 index 0000000000..5815db3069 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx @@ -0,0 +1,155 @@ +--- +sidebar_position: 3 +sidebar_label: Accès à distance +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RemoteAccessDynamic from './partials/remote-access/dynamic.mdx'; +import RemoteAccessStatic from './partials/remote-access/static.mdx'; + +# Accès à distance + +Débloquez un accès sécurisé, basé sur un navigateur, à votre Unraid WebGUI depuis n'importe où avec l'accès à distance. Cette fonctionnalité est idéale pour gérer votre serveur lorsque vous êtes loin de chez vous - aucun paramétrage réseau compliqué ou tunnel VPN n'est requis. Pour des besoins plus avancés, tels que la connexion à des conteneurs Docker ou l'accès à des lecteurs réseau, un tunnel VPN reste la solution recommandée. + +:::important[Security rappel] +Avant d'activer l'accès à distance, assurez-vous que votre mot de passe root est fort et unique. Mettez-le à jour sur la page **Utilisateurs** si nécessaire. De plus, gardez votre Unraid OS à jour avec la dernière version pour se protéger contre les vulnérabilités de sécurité. [En savoir plus sur la mise à jour d'Unraid ici](../unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx). +::: + +L'accès à distance via Unraid Connect offre : + +- **Commodité** - Accédez rapidement à l'interface de gestion de votre serveur depuis n'importe où, en utilisant une connexion cloud sécurisée et gérée. +- **Sécurité** - Des modes d'accès dynamiques limitent l'exposition en autorisant l'accès à Internet uniquement lorsque c'est nécessaire, ce qui aide à réduire les risques d'attaques automatisées. +- **Simplicité** - Pas besoin de transférer des ports manuellement ou de configurer un client VPN pour des tâches de gestion de base. + +:::tip +Pour un accès complet au réseau ou des cas d'utilisation avancés, envisagez de configurer [Tailscale](../unraid-os/system-administration/secure-your-server/tailscale.mdx) ou une solution VPN. +::: + +--- + +## Configuration initiale + +Pour activer l'accès à distance : + +1. Dans l'Unraid WebGUI, naviguez vers ***Paramètres → Accès à la gestion***. +2. Vérifiez le **port HTTPS** (par défaut : 443). Si ce port est utilisé (par exemple, par Docker), sélectionnez un port inutilisé au-dessus de 1000 (comme 3443, 4443 ou 5443). +3. Cliquez sur **Appliquer** si vous avez modifié des paramètres. +4. Sous **Fichier de certificat signé par CA**, cliquez sur **Fournir** pour générer un certificat de confiance. + +Votre serveur Unraid sera prêt à accepter des connexions distantes sécurisées via le WebGUI, en utilisant le port configuré et un certificat de confiance. + +--- + +## Choisir un type d'accès à distance + +Unraid Connect propose deux modes : + + + + + + + + + + + +| Fonctionnalité | Accès à distance dynamique | Accès à distance statique | +| ------------------------------------- | ------------------------------------------- | --------------------------------------- | +| %%WebGUI\|web-gui%% ouvert à Internet | Seulement lorsqu'il est activé | Toujours | +| Surface d'attaque | Minimisé | Maximisé | +| Automatisation | Ouverture/fermeture automatique via Connect | Configuration manuelle, toujours ouvert | +| Support de %%UPnP\|upnp%% | Oui | Oui | +| | Recommandé pour la plupart | | + +## Configuration de l'accès à distance dynamique + +Pour configurer l'accès à distance dynamique : + +1. Dans ***Paramètres → Accès à la gestion → API Unraid***, sélectionnez une option dynamique dans le menu déroulant Accès à distance : + - **Dynamique - UPnP :** Utilise %%UPnP|upnp%% pour ouvrir et fermer automatiquement un port aléatoire (nécessite que %%UPnP|upnp%% soit activé sur votre routeur). + - **Dynamique - Transfert de port manuel :** Vous devez transférer manuellement le port sélectionné sur votre routeur. + +2. Accédez à [Unraid Connect](https://connect.myunraid.net/), et allez sur la page de gestion ou les détails du serveur. + +3. La carte **Accès à distance dynamique** affichera un bouton si votre serveur n'est actuellement pas accessible depuis votre emplacement. + +4. Cliquez sur le bouton pour activer l'accès WAN. Si vous utilisez %%UPnP|upnp%%, un nouveau bail de redirection de port est créé (généralement pour 30 minutes) et se renouvelle automatiquement tant qu'il est actif. + +5. La carte affiche l'état actuel et l'état UPnP. + +6. Après 10 minutes d'inactivité - ou si vous cliquez sur **Désactiver l'accès à distance** - l'accès internet est automatiquement révoqué. Les baux %%UPnP|upnp%% sont également supprimés. + +--- + +## Utilisation de UPnP (Universal Plug and Play) + +UPnP automatise le transfert de port, simplifiant l'accès à distance sans nécessiter de configuration manuelle du routeur. + +Pour configurer UPnP : + +1. **Activez %%UPnP|upnp%% sur votre routeur.** + Assurez-vous que votre routeur prend en charge %%UPnP|upnp%% et vérifiez qu'il est activé dans les paramètres du routeur. + +2. **Activez %%UPnP|upnp%% dans Unraid.** + Allez dans ***Paramètres → Accès à la gestion*** et changez **Utiliser %%UPnP|upnp%%** en **Oui**. + +3. **Sélectionnez %%UPnP|upnp%% dans Unraid Connect.** + Sur la page des paramètres d'Unraid Connect, choisissez l'option d'accès à distance comme %%UPnP|upnp%% (sélectionnez soit Dynamique ou Toujours Activé) et cliquez ensuite sur **Appliquer**. + +4. **Vérifiez le transfert de port (Toujours Activé uniquement).** + Cliquez sur le bouton **Vérifier**. Si réussi, vous verrez le message, "Votre serveur Unraid est accessible depuis Internet." + + Pour le transfert dynamique, vous devez cliquer sur **Activer l'accès à distance dynamique** dans [Unraid Connect](https://connect.myunraid.net/) pour permettre l'accès. + +:::caution\[Troubleshooting] + +Si le paramètre passe de %%UPnP|upnp%% à Transfert de Port Manuel lors du rechargement, Unraid pourrait ne pas être capable de communiquer avec votre routeur. Vérifiez que %%UPnP|upnp%% est activé et considérez mettre à jour le firmware de votre routeur. + +::: + +--- + +## Utilisation du transfert de port manuel + +Le transfert de port manuel offre plus de contrôle et est compatible avec la plupart des routeurs. + +Pour configurer le transfert de port manuel : + +1. **Choisissez un port WAN :** Choisissez un numéro de port aléatoire au-dessus de 1000 (par exemple, 13856 ou 48653), plutôt que d'utiliser le 443 par défaut. + +2. **Appliquer les paramètres dans Unraid :** Cliquez sur **Appliquer** pour enregistrer le port que vous avez sélectionné. + +3. **Configurez votre routeur :** Configurez une règle de redirection de port sur votre routeur, dirigeant le port WAN choisi vers le port HTTPS de votre serveur. L'interface Unraid fournit les ports et l'adresse IP corrects. + + Certains routeurs peuvent exiger que le port WAN et le port HTTPS correspondent. Si oui, utilisez le même nombre aléatoire élevé pour les deux. + +4. **Vérifiez la redirection de port (Toujours Activé uniquement) :** Appuyez sur le bouton **Vérifier**. Si tout est correct, vous verrez "Votre serveur Unraid est accessible depuis Internet." + + Pour le transfert dynamique, assurez-vous de cliquer sur **Activer l'accès à distance dynamique** dans [Unraid Connect](https://connect.myunraid.net/) pour activer l'accès. + +5. **Accédez à votre serveur :** Connectez-vous à [Unraid Connect](https://connect.myunraid.net/) et cliquez sur le lien **Gérer** pour vous connecter à votre serveur à distance. + +--- + +## Activer un accès local sécurisé + +Un accès local sécurisé garantit que toutes les connexions à votre Unraid WebGUI, même à l'intérieur de votre réseau domestique ou de bureau, sont cryptées en utilisant HTTPS, protégeant ainsi toute information sensible, comme les identifiants de connexion et les données de configuration. + +Les avantages de l'accès local sécurisé incluent : + +- **Cryptage** - Toutes les données échangées entre votre navigateur et le serveur sont protégées. +- **Cohérence** - Utilisez la même URL sécurisée pour les accès locaux et distants. +- **Conformité** - Respecte les meilleures pratiques de sécurité pour la protection des interfaces administratives. + +Pour activer l'accès local sécurisé : + +1. Allez dans ***Paramètres → Accès à la gestion***. +2. Dans la section **Certificat signé par CA**, vérifiez les avertissements de recomposition DNS. + - Si aucun avertissement n'est affiché, définissez **Utiliser SSL/TLS** sur **Strict**. + - Si des avertissements sont présents, consultez [Protection contre la recomposition DNS](../unraid-os/system-administration/secure-your-server/securing-your-connection.mdx#dns-rebinding-protection). + +:::important +Avec %%SSL|ssl%%/%%TLS|tls%% réglé sur Strict, les appareils clients doivent résoudre le nom DNS de votre serveur. Si votre connexion Internet échoue, l'accès à la %%WebGUI|web-gui%% peut être perdu. Voir [Accéder à votre serveur lorsque le DNS est en panne](../unraid-os/system-administration/secure-your-server/securing-your-connection.mdx#accessing-your-server-when-dns-is-down) pour les étapes de récupération. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/_category_.json new file mode 100644 index 0000000000..a732ac293f --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Unraid OS", + "position": 1, + "link": { + "type": "generated-index" + } +} diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json new file mode 100644 index 0000000000..8e0557a2be --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Configurations avancées", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json new file mode 100644 index 0000000000..6d0c780fb7 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Optimiser le stockage", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000..e07342b461 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx @@ -0,0 +1,348 @@ +--- +sidebar_position: 1 +sidebar_label: Stockage ZFS +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Stockage ZFS + +:::important[Special merci] +Nous tenons à exprimer nos remerciements à Ed Rawlings ([Spaceinvader One](https://www.youtube.com/c/SpaceinvaderOne)) pour l'expertise et les conseils dont cette documentation de stockage %%ZFS|zfs%% a été adaptée. Ses tutoriels et ses remarques ont aidé d'innombrables utilisateurs d'Unraid à maîtriser les techniques avancées de stockage. Nous apprécions ses contributions continues à la communauté Unraid. +::: + +%%ZFS|zfs%% apporte une intégrité des données avancée, des configurations de stockage flexibles et de hautes performances à votre système Unraid. Ce guide explique les concepts fondamentaux de %%ZFS|zfs%% et vous guide dans la gestion des pools %%ZFS|zfs%% directement à partir du %%WebGUI|web-gui%% d'Unraid. Que vous configuriez un nouveau stockage %%ZFS|zfs%% ou intégriez un pool existant, vous trouverez les étapes et le contexte nécessaires pour commencer en toute confiance. + +--- + +## Pourquoi ZFS ? + +%%ZFS|zfs%% est un système de fichiers moderne et un gestionnaire de volumes conçu pour protéger vos données, prévenir la corruption et simplifier la gestion du stockage. + +Avec %%ZFS|zfs%%, vous bénéficiez de : + +- Vérifications automatiques de l'intégrité des données et auto-réparation +- Support %%RAID|raid%% intégré (miroirs, RAIDZ) +- %%Snapshots|snapshot%% et clones pour faciliter les sauvegardes et les retours arrière +- Envoi/réception %%ZFS|zfs%% pour une réplication efficace +- Compression à la volée + +Unraid supports %%ZFS|zfs%% for any storage pool. You can create a new %%ZFS|zfs%% pool, import one from another system, or use Unraid’s unique hybrid %%ZFS|zfs%% setup: add a %%ZFS|zfs%%-formatted disk directly to the Unraid %%array|array%% (not a pool) and combine %%ZFS|zfs%% features with Unraid’s %%parity|parity%% protection. + +:::info\[Example] + +Vous pouvez utiliser les %%snapshots|snapshot%% %%ZFS|zfs%% et la réplication sur un seul disque comme cible de sauvegarde, ou répliquer un pool rapide ZFS de SSD vers un disque %%ZFS|zfs%% dans l'%%array|array%% protégé par la %%parity|parity%% d'Unraid - profitant ainsi du meilleur des deux mondes. + +::: + +
+ ![](/img/zfs1.png) +
+ +:::note +L'approche hybride %%ZFS|zfs%%-in-array est utile pour des scénarios de sauvegarde ou de réplication spécifiques, mais elle ne remplace pas un pool %%ZFS|zfs%% complet. Les disques %%ZFS|zfs%% dans l'%%array|array%% sont gérés individuellement; vous ne bénéficiez pas de la performance combinée, de la redondance ou de l'auto-guérison d'un vrai pool multi-disques %%ZFS|zfs%%. Pour une fonctionnalité complète %%ZFS|zfs%%, utilisez toujours des pools %%ZFS|zfs%% dédiés. +::: + +### Pools, vdevs et redondance + +Un pool %%ZFS|zfs%% (appelé "zpool") est composé d'un ou de plusieurs vdevs (périphériques virtuels). Chaque vdev est un groupe de disques physiques avec son propre niveau de redondance. %%ZFS|zfs%% écrit des données à travers les vdevs, mais chaque vdev est responsable de sa tolérance aux pannes. + +:::caution +La redondance est toujours par vdev. Si un vdev échoue, l'ensemble du pool échoue, même si d'autres vdevs sont sains. Planifiez vos vdevs avec soin! +::: + +
+ ![](/img/zfs2.png) +
+ +--- + +## Créer un pool ZFS + +Pour créer un pool %%ZFS|zfs%% à l'aide du %%WebGUI|web-gui%% : + +1. Arrêtez le %%array|array%%. +2. Cliquez sur **Ajouter un pool**. + +
+ ![](/img/zfs3.png) +
+ +3. Choisissez un nom pour votre pool (par exemple, `raptor`). +4. Définissez le nombre d'emplacements pour correspondre au nombre de disques que vous souhaitez dans votre ou vos vdev(s) de données principal(aux). + +:::note +Ce nombre initial d'emplacements est uniquement pour les vdevs de données. Les vdevs de support (comme les disques de journal ou de cache) peuvent être ajoutés séparément après la création du pool. +::: + +
+ ![](/img/zfs4.png) +
+ +5. Assignez les disques au pool (l'ordre des disques n'a pas d'importance). + +
+ ![](/img/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) +
+ +8. Choisissez votre profil d'allocation - cela détermine la redondance et les performances de votre pool. + +:::tip +Avant de finaliser, consultez les sections sur les profils d'allocation et la topologie pour faire un choix éclairé. +::: + +
+ ![](/img/zfs7.png) +
+ +
+ ![](/img/zfs8.png) +
+ +9. Activez la compression si désiré (recommandé pour la plupart des charges de travail). +10. Cliquez sur **Terminé**, puis démarrez l'%%array|array%%. + +--- + +## Ajout d'un disque ZFS à l'array (configuration hybride) + +Vous pouvez ajouter un disque %%ZFS|zfs%% autonome à votre %%array|array%% Unraid (pas un pool %%ZFS|zfs%%) pour combiner les fonctionnalités %%ZFS|zfs%% avec la protection %%parity|parity%% d'Unraid. + +:::info\[What \[cette activation vous permettra] + +- **Protection de parité :** Le disque ZFS est protégé par la %%parity|parity%% de l'%%array|array%% d'Unraid, garantissant que vos données sont sécurisées contre les défaillances d'un (ou plusieurs, selon vos %%parity drives|parity-drives%%) disques. + +- **Intégrité des données:** %%ZFS|zfs%% fournit des contrôles d'intégrité au niveau des blocs (checksums). Bien qu'un seul disque ne puisse pas s'auto-réparer du rot bit, %%ZFS|zfs%% détectera la corruption et vous alertera, vous permettant de restaurer à partir d'une sauvegarde avant que des pertes de données silencieuses ne se produisent. + +- **Fonctionnalités %%ZFS|zfs%% :** Vous pouvez utiliser les %%snapshots|snapshot%% %%ZFS|zfs%% et la réplication sur ce disque, ce qui le rend idéal pour des cibles de sauvegarde, des ensembles de données spécifiques ou des scénarios où vous souhaitez des fonctionnalités %%ZFS|zfs%% aux côtés du stockage traditionnel Unraid. + +::: + +Pour ajouter un disque %%ZFS|zfs%% à l'%%array|array%% : + +1. Allez dans l'onglet **Main** du %%WebGUI|web-gui%%. +2. Arrêtez le %%array|array%%. +3. Cliquez sur un emplacement vide sous **Appareils de l'array**. +4. Sélectionnez le disque que vous souhaitez ajouter. + +
+ ![](/img/zfs9.png) +
+ +5. Sous **Système de fichiers**, choisissez `zfs` ou `zfs-encrypted`. + +
+ ![](/img/zfs10.png) +
+ +6. Cliquez sur **Appliquer**. +7. Démarrez l'%%array|array%% et laissez le disque être formaté si nécessaire. + +--- + +## Choisir un profil d'allocation + +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) +
+ +| Profil | Redondance | Performance | Extension | Efficacité de l'espace | Cas d'utilisation typique | +| ------ | ----------------------------- | ---------------------------------------------------------------------------------- | ------------------------- | ---------------------- | ----------------------------------------------------------- | +| Bande | Aucune | Rapide, mais risqué | Ajouter plus de disques | 100 % | Stockage temporaire/d'échange | +| Miroir | 1:1 (style %%RAID 1\|raid1%%) | Excellente pour les E/S aléatoires | Ajouter plus de miroirs | 50% | Haute performance, extension facile | +| RAIDZ1 | 1 disque par vdev | Rapide pour les gros fichiers. Pas idéal pour les écritures petites ou aléatoires. | Ajouter de nouveaux vdevs | Élevée | Usage général, tolérance aux pannes de 1 disque | +| RAIDZ2 | 2 disques par vdev | Comme Z1 mais écritures légèrement plus lentes (parité supplémentaire) | Ajouter de nouveaux vdevs | Modérée | Données importantes, tolérance aux pannes de 2 disques | +| RAIDZ3 | 3 disques par vdev | Comme Z2, avec plus de surcharge d'écriture (pour une sécurité maximale) | Ajouter de nouveaux vdevs | Inférieure | Critique pour la mission, tolérance aux pannes de 3 disques | + +:::important\[How \[à choisir] + +- Utilisez **Miroir** si vous voulez la meilleure performance et une extension facile et flexible, et que vous êtes d'accord pour utiliser plus d'espace disque pour la redondance. +- Choisissez **RAIDZ1/2/3** si vous voulez maximiser l'espace utilisable et stocker de gros fichiers, mais gardez à l'esprit que l'extension est moins flexible et que la performance d'écriture aléatoire est plus faible. +- **Bande** n'est adaptée que pour les données non critiques, temporaires - si un disque tombe en panne, vous perdez tout. + +::: + +--- + +## Topologie et extension + +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) +
+ +- 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. +- Vous gagnerez une meilleure performance parallèle si vous divisez les disques en plusieurs petits vdevs RAIDZ1. Soyez prudent; si deux disques échouent dans le même vdev, vous perdrez l'ensemble du pool. +- %%ZFS|zfs%% distribue les données à travers des vdevs, pas des disques individuels, donc plus de vdevs peuvent conduire à de meilleures performances pour les charges de travail comprenant de nombreux petits fichiers ou des I/O aléatoires. +- L'extension d'un pool %%ZFS|zfs%% signifie généralement ajouter un nouveau vdev de la même configuration, pas seulement un seul disque. + +:::tip +Planifiez la disposition de votre pool pour répondre à vos besoins et à votre croissance future. Contrairement à l'%%array|array%% d'Unraid, vous ne pouvez pas ajouter un seul disque à un vdev existant en utilisant le %%WebGUI|web-gui%%. +::: + +--- + +## Compression et RAM + +%%ZFS|zfs%% offre des fonctionnalités avancées qui peuvent améliorer significativement l'efficacité et la performance du stockage d'Unraid. Deux sujets d'intérêt courants sont la compression et les exigences en mémoire. + +La compression %%ZFS|zfs%% est transparente - elle fonctionne en arrière-plan, réduisant la taille des données avant qu'elles n'atteignent le disque. + +Cela présente deux avantages majeurs : + +- **Réduction de l'utilisation du disque :** Moins d'espace de stockage est consommé. +- **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) +
+ +:::tip +Activez la compression %%ZFS|zfs%% pour la plupart des pools %%ZFS|zfs%% d'Unraid. C'est sûr, efficace et n'impacte que rarement la compatibilité ou la stabilité. +::: + +
+ Le mythe RAM de ZFS - Cliquez pour développer/réduire + + Vous avez peut-être rencontré le conseil obsolète : « %%ZFS|zfs%% nécessite 1 GB de RAM pour 1 TB de stockage. » Ceci n'est plus applicable pour la plupart des utilisateurs. %%ZFS|zfs%% utilise la RAM pour son Cache de Remplacement Adaptatif (ARC), ce qui accélère les lectures fréquemment accédées. + + 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) +
+
+ +:::info +%%ZFS|zfs%% s'adapte bien à la mémoire disponible. Plus de RAM peut améliorer la performance du cache, mais %%ZFS|zfs%% fonctionne de manière fiable avec un matériel modeste. Ne laissez pas les anciennes recommandations vous empêcher d'utiliser %%ZFS|zfs%% sur Unraid. +::: + +--- + +## Importer des pools %%ZFS|zfs%% créés sur d'autres systèmes + +Unraid peut importer des pools %%ZFS|zfs%% créés sur d'autres plateformes avec un minimum de tracas. + +
+ Comment importer un pool ZFS - Cliquez pour développer/réduire + + 1. **Arrêtez l'array :** Assurez-vous que votre %%array|array%% Unraid est arrêté. + 2. **Ajoutez un nouveau pool :** Cliquez sur **Ajouter un pool**. + 3. **Assignez tous les disques :** + - Définissez **Nombre d'emplacements de données** sur le nombre total de disques de votre pool %%ZFS|zfs%% (y compris les vdevs de données et les vdevs de support). + - Assignez chaque disque à l'emplacement correct. + - *Exemple:* Pour un pool avec un vdev miroir de 4 disques et un vdev L2ARC de 2 disques, définissez 6 emplacements et attribuez les six disques. + 4. **Définissez le système de fichiers sur "Auto" :** Cliquez sur le nom du pool (par exemple, `raptor`) et définissez **Système de fichiers** sur **Auto**. + 5. **Terminez et démarrez l'array :** Cliquez sur **Terminé**, puis démarrez l'%%array|array%%. + + :::info[Détection automatique] + Unraid détectera et importera automatiquement le pool %%ZFS|zfs%%. Les vdevs de support (comme log, cache/L2ARC, spécial/dedup) sont listés sous **Subpools** dans le %%WebGUI|web-gui%%. Il n'est pas nécessaire d'ajouter des sous-pools séparément après l'initialisation de l'importation. Unraid les importera automatiquement avec les disques de données principaux lorsque tous les disques requis sont assignés. + ::: + + Après l'importation, il est fortement recommandé d'exécuter un %%scrub|scrub%% pour vérifier l'intégrité des données. + + - Cliquez sur le nom de la piscine (p. ex., `raptor`) pour ouvrir sa configuration. + - Sous **État de la piscine**, vérifiez l'état et cliquez sur **Scrub**. + +
+ ![](/img/zfs15.png) +
+
+ +--- + +## Vdevs de support (sous-piscines) + +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) +
+ +| Vdev de support (sous-piscine) | But | Risque/Notes | +| ------------------------------ | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Vdev spécial | Stocke les métadonnées et les petits fichiers | La piscine devient illisible si elle est perdue. | +| Vdev de déduplication | Active la déduplication | Requiert de grandes quantités de RAM ; risqué pour la plupart des utilisateurs. Évitez, sauf si vous avez des besoins d'expert. | +| Vdev de log (SLOG) | Améliore les performances d'écriture synchrone | Optionnel. Seulement bénéfique pour certaines charges de travail. | +| Vdev de cache (L2ARC) | Fournit un cache de lecture basé sur SSD | Optionnel. Peut améliorer les vitesses de lecture pour des ensembles de travail volumineux. | +| Vdev de réserve | Non pris en charge dans Unraid (à partir de la version 7.1.2) | | + +:::caution +La plupart des utilisateurs d'Unraid devraient éviter les vdevs de support/sous-pools à moins que vous n'ayez un besoin spécifique et bien compris. Ils sont conçus pour des charges de travail spécialisées et peuvent introduire de la complexité ou du risque s'ils sont mal utilisés. +::: + +--- + +## Lecteurs critiques de vdevs de support non assignés pendant l'importation + +Lorsque vous importez un pool %%ZFS|zfs%% dans Unraid, vous devez assigner chaque disque de votre pool d'origine, y compris ceux utilisés pour les vdevs de support, aux emplacements du pool. Unraid reconnaîtra automatiquement le rôle de chaque disque (données, log, cache, spécial, ou dedup) une fois que l'%%array|array%% démarre. Vous n'avez pas besoin de spécifier manuellement quel disque remplit quel rôle. + +Si vous oubliez d'inclure un lecteur qui faisait partie d'un vdev de support lors de l'importation, le résultat dépendra de la fonction du vdev : + +| Type de vdev | Si le lecteur manque pendant l'importation | Résultat | +| -------------------------------- | ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| Vdev spécial ou de déduplication | La piscine ne s'importera pas ou sera inutilisable | Ces vdevs stockent des métadonnées critiques ou des tables de déduplication. Sans eux, %%ZFS\|zfs%% ne peut pas monter le pool en toute sécurité. | +| Vdev de log (SLOG) | La piscine importe, mais les performances d'écriture synchrone diminuent. | La piscine reste accessible, mais vous pouvez observer des performances réduites pour les charges de travail qui dépendent des écritures synchrones. | +| Vdev de cache (L2ARC) | La piscine importe, mais le cache de lecture est perdu | Le pool fonctionne normalement, mais vous perdez le gain de performance du cache L2ARC. Aucune donnée n'est perdue. | + +:::tip +Assignez toujours chaque disque physique de votre pool %%ZFS|zfs%% original, y compris tous les vdevs de support, lors de l'importation dans Unraid. Cela garantit une détection et une intégration fluide. Pour les nouveaux pools créés dans Unraid, les vdevs de support sont optionnels et généralement inutiles pour la plupart des utilisateurs. +::: + +--- + +## Expansion du stockage + +%%ZFS|zfs%% est puissant, mais il est important de comprendre comment son expansion de stockage fonctionne - surtout si vous prévoyez une future croissance. + +Historiquement, les vdevs %%ZFS|zfs%% ont une largeur fixe. Vous ne pouvez pas ajouter un disque à un vdev RAIDZ existant pour le rendre plus grand. + +Des moyens pour étendre votre piscine incluent : + +- **Ajouter un nouveau vdev :** Augmentez votre pool en ajoutant un autre vdev (comme un nouveau mirroir ou un groupe RAIDZ). Cela augmente la capacité, mais vous devez ajouter les disques par ensembles correspondant à la configuration du vdev. +- **Remplacer les disques par des plus grands :** Échangez chaque disque d'un vdev, un à la fois, pour un disque plus grand. Voir [remplacement de disque](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-faileddisabled-disks) pour des procédures détaillées. Après le remplacement de tous les disques et la résolution du pool, la capacité du vdev augmente. +- **Créer une nouvelle piscine :** Démarrer une nouvelle piscine %%ZFS|zfs%% maintient l'organisation et l'indépendance pour différents types de données ou charges de travail. + +:::tip\[Planning \[en avant] + +Avant de construire votre pool, considérez combien de stockage vous aurez besoin - non seulement aujourd'hui, mais à l'avenir. %%ZFS|zfs%% récompense une bonne planification, surtout si vous souhaitez éviter des mises à niveau perturbatrices plus tard. + +::: + +--- + +## Utilisation de piscines ZFS sur un serveur Unraid existant + +Si vous utilisez un %%array|array%% Unraid traditionnel et souhaitez ajouter des piscines %%ZFS|zfs%%, voici quelques moyens efficaces de les intégrer : + +| Cas d'utilisation | Description | Détails / Exemples | +| ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| Piscine SSD/NVMe rapide pour appdata & Docker | Stockez la part appdata pour des conteneurs et des bases de données rapides et réactifs. Cela supporte les %%snapshot\|snapshot%%s pour des retours en arrière faciles et peut aussi héberger des %%VM\|vm%%s pour un I/O élevé. | De nombreux utilisateurs choisissent un miroir %%ZFS\|zfs%% à 2 disques pour cela. C'est facile à étendre et offre de bonnes performances. | +| Pool %%ZFS\|zfs%% pour des données importantes | Utilisez un miroir %%ZFS\|zfs%% ou un pool RAIDZ2 pour des fichiers irremplaçables comme des photos, des documents fiscaux et des données de %%user-share\|partage-utilisateur%%. %%ZFS\|zfs%% vérifie les corruptions et se guérit lui-même avec la redondance. | Cette configuration protège les données critiques avec des vérifications d'intégrité automatiques et des capacités d'auto-réparation. | +| Cible de sauvegarde quotidienne ou de réplication | Utilisez un disque %%ZFS\|zfs%% (même dans l'%%array\|array%% d'Unraid) comme cible de réplication. Vous pouvez répliquer d'autres pools localement ou à partir d'un autre serveur Unraid. | Utilisez `zfs send/receive` ou des outils comme Syncoid pour des sauvegardes et récupérations rapides et fiables. | +| \[%Snapshot\|snapshot%-based recovery pool] | Gardez des %%snapshot\|snapshot%%s ponctuels de données ou de conteneurs critiques. Les %%snapshot\|snapshot%%s peuvent être auto-planifiés et sont économes en espace. | Cette fonctionnalité permet une récupération rapide des suppressions accidentelles ou des erreurs de configuration. | + +## Éviter les erreurs communes de ZFS + +%%ZFS|zfs%% est un système de fichiers puissant, mais il y a plusieurs pièges courants qui peuvent compromettre ses avantages. Il est important de garder à l'esprit les points suivants avant de configurer votre pool pour une expérience plus fluide : + +- **Incompatibilité de taille des disques dans RAIDZ :** %%ZFS|zfs%% traite tous les disques d'un vdev RAIDZ comme la taille du plus petit. Pour garantir la meilleure efficacité, utilisez toujours des disques de taille identique dans chaque vdev. + +- **Expansion des vdevs RAIDZ via le %%WebGUI|web-gui%%:** Bien qu'Unraid 7.1.x et plus récent prennent en charge l'extension RAIDZ via la ligne de commande, cette fonctionnalité n'est pas encore disponible dans le %%WebGUI|web-gui%%. Pour l'instant, développez via CLI ou ajoutez de nouveaux vdevs par l'interface GUI. + +- **%%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. + +- **Deduplication sans RAM adéquate :** La déduplication nécessite une mémoire significative, et l'activer sans assez de RAM peut gravement impacter la performance. Activez la déduplication seulement si vous comprenez pleinement les exigences. + +- **La redondance des vdevs est locale :** La redondance dans %%ZFS|zfs%% est locale à chaque vdev et non partagée à travers le pool. Assurez-vous de planifier la disposition de vos vdevs pour atteindre le niveau de résilience dont vous avez besoin. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx new file mode 100644 index 0000000000..c1f928d3af --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx @@ -0,0 +1,12 @@ +--- +sidebar_position: 7 +title: Historique des versions +--- + +import {VersionsTable} from '@site/src/components/VersionsTable'; + +# Historique des versions + +Besoin du Créateur de Clé USB ? [Commencer avec Unraid](https://unraid.net/getting-started) + + diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json new file mode 100644 index 0000000000..9c4cfb4d99 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Commencer avec Unraid", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json new file mode 100644 index 0000000000..703ff93ea6 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Explorer l'interface utilisateur", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx new file mode 100644 index 0000000000..aa5b5e0fa9 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx @@ -0,0 +1,21 @@ +--- +sidebar_position: 1 +sidebar_label: Caractéristiques Clés +--- + +# Caractéristiques Clés + +Vous pouvez gérer votre système Unraid à l'aide d'une [interface Web](./tour-the-web-gui.mdx) intuitive, connue sous le nom de WebGUI. Cette interface offre des contrôles de base pour des tâches courantes tout en proposant des options de réglage avancées pour les utilisateurs expérimentés. Unraid sélectionne automatiquement les paramètres par défaut adaptés à la plupart des utilisateurs, mais vous permet également de personnaliser ces paramètres pour répondre à vos besoins spécifiques. + +Ce design rend Unraid facile à utiliser là où la simplicité est la plus importante, et ajustable là où la personnalisation est cruciale. Les fonctionnalités de gestion simplifiées incluent : + +- **[Vue du Tableau de Bord](./tour-the-web-gui.mdx#1-dashboard)** - Le tableau de bord fournit une vue d'ensemble détaillée et en temps réel de votre système, affichant des indicateurs de santé des disques, températures, utilisation des ressources et états des applications. +- **[Opération de l'Array](./tour-the-web-gui.mdx#2-main)** - Gérez votre %%array|array%% sans effort. \*\*\[Vous pouvez attribuer des dispositifs à utiliser soit dans l'%%array|array%% soit dans le %%cache|cache%%, faire tourner les disques individuellement, démarrer et arrêter l'%%array|array%%, et même effectuer des %%parity checks|parity-check%% à la volée, le tout depuis une seule page. +- **[Gestion des Partages](../../using-unraid-to/manage-storage/shares.mdx)** - La configuration des partages sur Unraid est simple. Donnez simplement un nom au partage, appliquez éventuellement des politiques d'accès et de distribution, et cliquez sur "Créer !" +- **[Réglage des Disques](../set-up-unraid/customize-unraid-settings.mdx#disk-settings)** - Contrôlez comment et quand les appareils s'arrêtent, sélectionnez le format de système de fichiers par défaut, et ajustez d'autres paramètres avancés pour réduire l'usure et la consommation d'énergie de vos appareils. +- **[Contrôles Réseau](../set-up-unraid/customize-unraid-settings.mdx#network-settings)** - Activez le %%NIC bonding|nic-bonding%% et le %%bridging|nic-bridging%%, définissez les serveurs de temps, et configurez des paramètres réseau supplémentaires. +- **[Extinction Sécurisée APC UPS](../set-up-unraid/customize-unraid-settings.mdx#ups-settings)** - Lorsqu'il est connecté à un APC UPS, Unraid peut éteindre le système en toute sécurité en cas de coupure de courant. +- **[Notifications Système](../set-up-unraid/customize-unraid-settings.mdx#notification-settings)** - Unraid peut vous alerter des événements importants via la console de gestion web, ainsi que par email et d'autres systèmes de notification. +- **[Planificateur de Tâches](../set-up-unraid/customize-unraid-settings.mdx#scheduler)** - Précisez quand effectuer automatiquement des %%parity checks|parity-check%% et à quelle fréquence le script %%Mover|mover%% doit transférer les fichiers du %%cache|cache%% vers l'%%array|array%%. +- **[Conteneurs Docker](../../using-unraid-to/run-docker-containers/overview.mdx)** - Gérez les contrôles des applications via une interface unique. Ajoutez des applications avec un minimum d'efforts en utilisant des modèles fournis par la communauté. +- **[Machines Virtuelles](../../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx)** - Choisissez parmi des images de %%machines virtuelles|vm%% pré-créées ou créez vos propres %%VMs|vm%% personnalisées à partir de zéro. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx new file mode 100644 index 0000000000..5a5873a9b5 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx @@ -0,0 +1,120 @@ +--- +sidebar_position: 2 +--- + +# Visitez le WebGUI + +Le %%WebGUI|web-gui%% est l'interface principale pour gérer et configurer votre serveur Unraid. Il fournit un accès à toutes les fonctionnalités du système, outils de surveillance, et options de configuration via une barre de navigation organisée et des écrans conviviaux. Cette mise en page est conçue pour vous aider à gérer efficacement le stockage, les utilisateurs, les applications et les paramètres système à partir de n'importe quel navigateur web. + +## La Barre de Navigation + +La barre de navigation horizontale permet aux utilisateurs d'accéder aux principales zones fonctionnelles du système Unraid. Vous pouvez la personnaliser avec des plugins pour ajouter des menus et options supplémentaires, disponibles dans la [section Applications Communautaires](../../using-unraid-to/run-docker-containers/community-applications.mdx). + +![Barre de Navigation - Annotée](/img/navbar3.png) + +### 1. Tableau de bord + +L'onglet **Tableau de bord** fournit une surveillance en temps réel des composants matériels et logiciels de votre serveur Unraid. Il affiche divers aspects de la gestion - comme l'identification du système, CPU, RAM, stockage, informations sur le réseau, Conteneurs, %%VMs|vm%%, utilisateurs, et partages - sur une grille de tuiles. +![Tableau de bord](/img/dashboard.png) +Vous pouvez améliorer le Tableau de bord avec des plugins depuis [Applications Communautaires](../../using-unraid-to/run-docker-containers/community-applications.mdx) + +### 2. Principal + +L'écran **principal** permet une gestion efficace de votre stockage Unraid et des opérations sur disque. Vous pouvez configurer vos %%array|array%%, %%cache pools|cache-pool%%, et vos appareils flash, ainsi que gérer le stockage USB et les dispositifs non assignés, y compris les partages distants. Il affiche des informations clés sur chaque dispositif de stockage, telles que l'état de santé, la capacité, et les systèmes de fichiers. +![Onglet Principal](/img/maintab.png) +En bas, la section Opérations de l'Array offre des options de maintenance pour garder votre %%array|array%% en bon fonctionnement. + +### 3. Partages + +L'onglet **Shares** (Partages) est divisé en [Partages d'Utilisateurs](../../using-unraid-to/manage-storage/shares.mdx#user-shares) et [Partages de Disques](../../using-unraid-to/manage-storage/shares.mdx#disk-shares). + +Vous pouvez accéder à des informations détaillées et aux options de gestion pour chaque partage en sélectionnant son nom. + +### 4. Utilisateurs + +L'écran **Users** (Utilisateurs) permet la gestion de tous les comptes utilisateurs sur le serveur Unraid, comme détaillé dans la [section Gestion des Utilisateurs](../../system-administration/secure-your-server/user-management.mdx). + +![Onglet Utilisateurs](/img/userstab.png) + +### 5. Paramètres + +L'écran **Settings** (Paramètres) vous permet de gérer tous les paramètres système sur votre serveur Unraid, y compris : + +- **Paramètres Système** : Configurez les paramètres et comportements des composants principaux d'Unraid. +- **Services Réseau** : Configurez divers protocoles de communication et configurez votre %%Wireguard|wireguard%% %%VPN|vpn-tunnel%%. +- **Préférences Utilisateur** : Ajustez les préférences individuelles des utilisateurs, telles que les notifications et les paramètres d'affichage. +- **Utilitaires Utilisateur** : Gérez les utilitaires individuels que vous avez ajoutés via des plugins. + +![Onglet Paramètres](/img/settingstab.png) + +### 6. Plugins + +L'écran **Plugins** montre tous les plugins installés sur votre serveur Unraid. + +![Onglet Plugins](/img/pluginstab.png) + +:::note +Pour les étapes d'installation des plugins, consultez [Applications Communautaires](../../using-unraid-to/run-docker-containers/community-applications.mdx). +::: + +### 7. Docker + +L'écran **Docker** affiche tous les conteneurs installés à partir de [Applications Communautaires](../../using-unraid-to/run-docker-containers/community-applications.mdx). Vous pouvez lancer, arrêter et configurer chaque conteneur, y compris leurs paramètres de démarrage automatique. + +:::note +Pour plus de détails sur l'exécution de conteneurs Docker, consultez [Exécuter des conteneurs Docker](../../using-unraid-to/run-docker-containers/overview.mdx). +::: + +### 8. VMs + +L'écran **VMs** vous permet de gérer les %%machines virtuelles (VMs)|vm%% sur votre serveur Unraid. Il affiche toutes vos %%VMs|vm%% créées ainsi que leurs principaux attributs, tels que les assignments CPU, %%allocation vDisk|vdisk-allocation%%, et les paramètres de la carte graphique. + +:::note +Cette option apparaîtra **uniquement** dans la barre de navigation si votre serveur Unraid répond aux exigences de %%hardware virtualization|hvm%%. +::: + +### 9. Applications + +L'écran **Apps** (Applications), ou "Applications Communautaires", est la source officielle pour les applications Unraid. + +![Onglet Applications](/img/appstab.png) + +Il fournit des plugins d'origine communautaire et des conteneurs Docker qui améliorent la fonctionnalité d'Unraid au-delà d'un NAS basique. Pour plus de détails, consultez la section [Applications Communautaires](../../using-unraid-to/run-docker-containers/community-applications.mdx). + +### 10. Outils + +L'écran **Tools** (Outils) offre divers outils pour gérer l'OS Unraid, personnaliser l'apparence du %%WebGUI|web-gui%%, et les mises à jour du système. + +![Onglet Outils](/img/toolstab.png) + +### 11. Raccourcis Système + +La section **System Shortcuts** (Raccourcis Système) fournit un accès rapide aux fonctionnalités essentielles et outils d'Unraid directement depuis la barre de navigation. + +![Raccourcis Système](/img/systemshortcuts.png) + +La Barre de Navigation affiche les raccourcis vers les fonctionnalités d'Unraid, telles que : + +- ![Déconnexion](/img/logout.png) **Logout :** Déconnectez-vous du serveur Unraid. +- ![Terminal](/img/terminal.png) **Terminal :** Ouvrez une fenêtre de terminal. +- ![Gestionnaire de Fichiers](/img/filemanager.png) **File Manager :** Accédez au gestionnaire de fichiers intégré. +- ![Commentaires](/img/feedback.png) **Feedback :** Soumettez des commentaires, signalez des problèmes, ou laissez des commentaires. +- ![Info](/img/infoicon.png) **Info :** Consultez un résumé des attributs de votre serveur. +- ![Log](/img/logicon.png) **Log :** Voir une liste des événements système. +- ![Aide](/img/helpicon.png) **Help :** Activer l'aide pour l'écran actuel. +- ![Notifications](/img/notificationicon.png) **Notifications :** Consultez les alertes système, avertissements et avis. + +### 12. Options de Compte + +Dans le coin supérieur droit du %%WebGUI|web-gui%%, à côté du nom de votre serveur, se trouve le menu hamburger (☰) pour les **Options de Compte**. Ce menu vous permet de gérer votre compte Unraid, d'accéder à [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx), de mettre à jour votre clé de licence et de vous déconnecter. + +Si vous êtes en mode d'essai, vous pouvez également utiliser votre clé de licence ici pour activer Unraid en mode Starter, Unleashed, ou Lifetime. + +### 13. Barre d'État + +![Barre d'État](/img/status-bar2.png) +La **Barre d'État** au bas du %%WebGUI|web-gui%% affiche l'état actuel de votre %%array|array%% et le statut des opérations en cours comme %%Mover|mover%% ou %%parity checks|parity-check%%. Certains plugins affichent également des informations importantes, telles que les températures du système. + +--- + +\* *"%%WireGuard|wireguard%%" et le logo "%%WireGuard|wireguard%%" sont des marques déposées de Jason A. Donenfeld.* diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json new file mode 100644 index 0000000000..60f87aa1f4 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Configurer Unraid", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx new file mode 100644 index 0000000000..e563cd3780 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx @@ -0,0 +1,87 @@ +--- +sidebar_position: 4 +sidebar_label: Complétez vos éléments essentiels post-configuration +--- + +# Complétez vos éléments essentiels post-configuration + +Félicitations pour votre configuration initiale ! + +Maintenant, il est temps d'explorer quelques aspects supplémentaires qui amélioreront les fonctionnalités et la sécurité de votre serveur. + +## Sauvegardez votre appareil flash + +Sauvegardez toujours votre dispositif flash Unraid après avoir apporté des changements de configuration significatifs. Les sauvegardes régulières sont *fortement* recommandées. + +Pour sauvegarder votre appareil flash, allez sur l'onglet **Principal**, sélectionnez l'appareil et cliquez sur **Sauvegarde Flash**. + +:::warning +Stockez les sauvegardes en dehors de l'%%array|array%% Unraid pour un accès facile si l'%%array|array%% n'est pas opérationnel. [En savoir plus sur la gestion des appareils flash ici](../../system-administration/maintain-and-update/changing-the-flash-device.mdx). +::: + +:::note +Alternativement, utilisez le plugin [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) pour des sauvegardes automatisées sur les serveurs cloud LimeTech. +::: + +## Utilisez l'aide intégrée + +Unraid fournit des explications détaillées pour les paramètres dans le %%WebGUI|web-gui%%. Activez-le en cliquant sur l'icône d'aide ![Help icon](/img/helpicon.png) en haut à droite. Vous pouvez également activer l'aide sur des champs individuels en cliquant sur leurs noms. L'aide du %%WebGUI|web-gui%% offrira généralement les informations les plus récentes. + +
+ ![Aide intégrée](/img/toolbar.png) +
+ +## Revoir les bonnes pratiques de sécurité + +Comme votre serveur Unraid contient des données précieuses, il est sage de revoir les [bonnes pratiques de sécurité](../../system-administration/secure-your-server/security-fundamentals.mdx) dans la documentation pour éviter les attaques potentielles et protéger vos informations. + +## Unraid Connect + +[Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) est un plugin pour Unraid que l'on trouve dans la section Applications Communautaires. Avec Unraid Connect, vous pouvez gérer toutes vos instances de serveur via un [tableau de bord unifié](https://connect.myunraid.net/). + +![Tableau de bord Unraid Connect](/img/unraidconnectdashboard.png) + +Unraid Connect utilise vos identifiants Unraid.net pour la gestion des accès et communique avec nos serveurs cloud via une connexion sécurisée. + +Pour plus d'informations sur la manière dont nous manipulons vos données, veuillez vous référer à la [section Confidentialité](../../../unraid-connect/overview-and-setup.mdx#data-collection-and-privacy) dans notre documentation Unraid Connect. + +## Liez votre clé de licence à votre compte + +Si vous avez une clé de licence Unraid existante mais que vous ne l'avez pas encore liée à votre compte Unraid.net, vous pouvez le faire pour activer des fonctionnalités supplémentaires et faciliter la gestion des licences. + +Les avantages de lier votre clé de licence incluent : + +- **Gestion centralisée :** Voir et gérer toutes vos licences depuis votre compte Unraid.net +- **Accès facile :** Télécharger vos fichiers de clé de licence depuis n'importe où +- **Support amélioré :** Expérience de support rationalisée avec les informations de compte associées +- **Accès pré-version :** Télécharger les versions bêta et candidates si éligible + +Pour lier votre clé de licence : + +1. **Depuis le WebGUI :** + - Allez à ***Outils → Enregistrement*** dans le WebGUI de votre serveur Unraid + - Cliquez sur **Connectez-vous à Unraid.net** si ce n'est pas encore fait + - Votre clé de licence sera automatiquement liée à votre compte + +2. **Depuis le portail de compte :** + - Visitez [account.unraid.net/keys](https://account.unraid.net/keys) + - Connectez-vous avec vos identifiants Unraid.net + - Cliquez sur **Lier la clé existante** et suivez les instructions + +3. **Pendant la configuration du serveur :** + - Si vous configurez un nouveau serveur avec une licence existante, vous pouvez vous connecter à votre compte Unraid.net pendant la configuration initiale + - Votre licence sera automatiquement liée + +:::note +Lier votre clé de licence à votre compte est un processus unique. Une fois lié, vous pouvez gérer votre licence soit depuis le WebGUI, soit depuis votre portail de compte en ligne. +::: + +:::important +Si vous avez du mal à lier votre clé de licence, assurez-vous que : + +- L'email de votre compte Unraid.net correspond à l'email associé à votre achat de licence +- Vous utilisez le bon fichier de clé de licence +- Votre serveur dispose d'un accès internet pour la vérification du compte +::: + +Pour plus d'informations détaillées sur la gestion des licences, consultez la [FAQ sur les licences](../../troubleshooting/licensing-faq.mdx). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx new file mode 100644 index 0000000000..cda19fa794 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx @@ -0,0 +1,90 @@ +--- +sidebar_position: 3 +sidebar_label: Configurer votre tableau +--- + +# Configurer votre tableau + +Après l'installation de votre clé d'enregistrement, l'étape suivante consiste à configurer votre stockage en attribuant des appareils à l'%%array|array%% et aux \*\* appareils de pool\*\*. Cette configuration détermine comment le système d'exploitation Unraid gère vos données, les protège avec la %%parité|parity%%, et optimise les performances avec les %%cache pools|cache-pool%%. + +:::important +Si vous rencontrez des difficultés avec une quelconque partie de l'installation d'Unraid, assurez-vous de consulter notre [FAQ sur l'installation](../../troubleshooting/faq.mdx#installation) ! +::: + +## Assigner les disques de parité et de données + +Vous utiliserez l'onglet **Principal** dans le Unraid %%WebGUI|web-gui%% pour assigner et vérifier les appareils, y compris les affectations de %%array|array%% et de pool ainsi que tous les appareils non assignés et votre périphérique de démarrage (le **périphérique USB**). + +![Configuration du tableau](/img/configuringarray1.png) + +### Rôles des appareils + +Unraid OS utilise des disques à diverses fins : + +- **Appareils de tableau**, qui se divisent en deux catégories : + - **Dispositifs de parité :** + Fournir une tolérance aux pannes, permettant la récupération des données si un disque de données échoue. Vous pouvez assigner jusqu'à deux disques de parité. + - **Appareils de données :** Stockent vos partages et dossiers sur mesure, ainsi que tous les fichiers que vous y ajoutez, par exemple, des fichiers multimédias. + +- **Appareils de pool :** Disques haute performance principalement utilisés en tant que **cache**, stockant temporairement des fichiers pour améliorer les performances avant de les transférer vers le %%array|array%%. + +- **Périphérique de démarrage :** Le périphérique USB contenant Unraid OS, qui lance votre serveur. + +
+ Recommandations d'assignation de disque + + Ces recommandations d'attribution de disque sont conçues pour optimiser votre Unraid %%array|array%%, améliorant ainsi les performances, la protection des données et l'expansibilité future. En les suivant, vous pouvez maximiser efficacement vos appareils de stockage et éviter les problèmes courants de configuration. + + 1. **Select the largest %%parity device|parity-drives%%:** + Always choose the largest available storage device as your %%parity device|parity-drives%%(s). When expanding your %%array|array%%, data disks must be equal to or smaller than your %%parity device|parity-drives%%(s). You should purchase the largest **HDD** for your initial %%parity device|parity-drives%% to avoid future limitations. For dual %%parity disks|parity-drives%%, each parity disk must be greater than or equal to the largest data disk. + + 2. **Utilisez des HDD pour le %%array|array%% et des disques SSD/NVMe pour les pools:** + Pour une performance optimale, utilisez des **HDDs** comme appareils de stockage principaux dans le %%array|array%% pour le stockage général et la protection de %%parity|parity%%. Attribuez des disques **SSD** ou **NVMe** à un %%cache pool|cache-pool%% ou pool dédié pour améliorer les opérations de lecture et écriture à haute vitesse. Cette configuration améliore la performance globale en profitant des forces de chaque type de disque. + + 3. **Protect cached data with a %%multi-device pool|multi-device-pool%%:** + To safeguard cached data, assign more than one device to the %%cache pool|cache-pool%%. A single device does not offer protection from data loss. %%Cache pools|cache-pool%% can be expanded on demand. + + :::warning + Le support SSD est expérimental dans le %%array|array%%. Certains SSD peuvent ne pas bien fonctionner en raison des variations dans l'implémentation de %%TRIM/Discard|trim-discard%%, ce qui pourrait entraîner des résultats indésirables. Cela ne s'applique pas aux %%cache pools|cache-pool%%. [En savoir plus sur les options de système de fichiers ici](../../using-unraid-to/manage-storage/file-systems.mdx). + ::: + + :::note + Les pools à base de SSD sont optimaux pour les applications et les machines virtuelles, profitant de la performance des SSD pour des interactions plus rapides. [En savoir plus sur l'exécution d'applications ici](../../using-unraid-to/run-docker-containers/overview.mdx). + ::: +
+ +:::important +Votre %%array|array%% ne démarrera pas si vous dépassez le nombre de périphériques de stockage permis par votre clé de licence. +::: + +## Démarrer et formater le tableau + +Après avoir assigné tous vos appareils, cliquez sur le bouton **Démarrer** sous **Opération du tableau** pour les monter et démarrer le %%array|array%%. + +
+ ![Démarrage de l'opération du tableau](/img/arrayoperation_start.png) +
+ +New devices will appear as *Unformatted* and cannot be used until formatted. Unraid defaults to the %%XFS|xfs%% filesystem for array devices. For %%cache pools|cache-pool%%, %%BTRFS|btrfs%% is always used by default when using auto mode, but you can choose your desired filesystem when adding devices to a pool. You can change the default filesystem for the array in ***Settings → System Settings → Disk Settings***. + +Pour formater vos appareils, cochez la case **Format** sous **Opération du tableau**, lisez l'invite attentivement, et cliquez sur le bouton **Format**. + +A parity sync will run in the background to protect the %%array|array%% even before formatting is complete. The %%array|array%% will function in an unprotected state until the sync finishes, so it's best to wait before adding data. + +### Changer de système de fichiers sur des disques existants + +Pour changer le système de fichiers d'un disque existant : + +1. **Sauvegardez vos données** : Le reformatage effacera toutes les données sur le disque. +2. **Arrêtez la matrice**. +3. **Cliquez sur le disque** et changez le type de système de fichiers (par exemple, %%XFS|xfs%%, %%BTRFS|btrfs%%). +4. **Démarrez le tableau** et cochez la case **Format** sous **Opération du tableau**. +5. **Cliquez sur Format** pour appliquer le nouveau système de fichiers. + +:::caution +Reformatting a drive will erase all its data. For %%RAID|raid%% setups, check the %%parity|parity%% to avoid data loss during rebuilds. Use the [Unassigned Devices plugin](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon) to back up your files before reformatting. +::: + +:::info +Vous pouvez arrêter, arrêter l'exécution ou redémarrer à l'aide des boutons respectifs dans la même section **Opération du tableau** de l'onglet **Principal**. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx new file mode 100644 index 0000000000..0fb44e1f63 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx @@ -0,0 +1,80 @@ +--- +sidebar_position: 1 +sidebar_label: Créez votre support amorçable +--- + +# Créez votre support amorçable + +Unraid OS est installé sur une clé USB, qui sert de périphérique de démarrage pour votre serveur. Vous pouvez créer ce support amorçable en utilisant notre [méthode d'installation automatisée](./create-your-bootable-media.mdx#automated-install-method) recommandée avec notre outil [USB Flash Creator](https://unraid.net/download) ou en suivant la [méthode d'installation manuelle](./create-your-bootable-media.mdx#manual-install-method). Dans les deux cas, vous aurez besoin d'une clé USB de haute qualité (entre 4 et 32 Go) avec un %%GUID|guid%% unique. + +## Méthode d'installation automatique + +La méthode d'installation automatisée est le meilleur moyen de configurer Unraid OS. Elle simplifie le processus, réduit les erreurs et garantit que votre clé USB est prête pour la plupart des configurations matérielles. Cette méthode offre le chemin le plus rapide et le plus fiable vers une installation réussie pour la plupart des utilisateurs. + +1. **Préparez votre périphérique USB :** + Insérez une clé USB de haute qualité dans votre ordinateur. + +2. **Téléchargez le créateur de clé USB Unraid et installez l'OS Unraid sur le lecteur.** + [Windows](https://releases.unraid.net/dl/stable/usb-creator.exe) | [Mac](https://releases.unraid.net/dl/stable/usb-creator.dmg) | [Linux](https://releases.unraid.net/dl/stable/usb-creator.deb) + +3. **Terminer la configuration :** + Personnalisez le nom de votre serveur et les paramètres du réseau. + +4. **Éjecter et installer :** + Retirez la clé USB en toute sécurité et insérez-la dans votre serveur. + +5. **Configurez les paramètres BIOS de votre serveur** + - Définissez l'appareil de démarrage sur la clé USB. + - Activer les fonctionnalités de la virtualisation matérielle %%hardware virtualization|hvm%%, y compris %%IOMMU|iommu%%. (Voir [Configuration HVM & IOMMU](../../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx#hvm--iommu-what-they-enable) pour plus de détails.) + +6. **Démarrer dans Unraid OS :** + Enregistrez la configuration du BIOS, puis quittez pour démarrer dans Unraid OS. + +## Méthode d'installation manuelle + +La méthode d'installation manuelle est conçue pour les situations où l'outil USB Flash Creator est soit indisponible, soit incompatible avec votre matériel. Cette approche offre un contrôle total sur le formatage et le processus de configuration, la rendant idéale pour les utilisateurs avancés ou pour résoudre des problèmes spécifiques avec un appareil USB. + +### Préparez votre périphérique USB + +1. Branchez le périphérique USB. +2. Formatez-le en FAT32 (**non** en ex-FAT ou NTFS). +3. Définissez le libellé du volume sur `UNRAID` (sensible à la casse, en majuscules). + +:::important +Sous Windows, les lecteurs de plus de 32 Go ne peuvent pas être formatés en FAT32 à l'aide des outils de formatage intégrés (ils se formatent par défaut en exFAT). Pour les lecteurs de plus de 32 Go, vous devrez utiliser un outil tiers comme [Rufus](https://rufus.ie/en/) pour les formater en FAT32. +::: + +### Téléchargez et extrayez + +1. Allez dans l'[archive de téléchargement d'Unraid](../../download_list.mdx) et téléchargez le fichier ZIP de votre version choisie. +2. Extrayez le contenu du ZIP sur le périphérique USB. +3. Confirmez que les fichiers ont été copiés. + +### Rendez le périphérique USB amorçable + +:::note +Cette section est uniquement nécessaire pour activer le démarrage Legacy. Si vous configurez pour UEFI, il n'est pas nécessaire d'exécuter ces scripts. +::: + +Exécutez le script approprié pour votre système d'exploitation : + +**Windows 7 ou version ultérieure :** + +- Cliquez avec le bouton droit sur `make_bootable` et sélectionnez **Exécuter en tant qu'administrateur**. + +**Mac :** + +- Double-cliquez sur `make_bootable_mac` et entrez votre mot de passe administrateur. + +**Linux :** + +- Copiez `make_bootable_linux` sur votre disque dur. +- Démontage du lecteur USB. +- Dans le terminal, exécutez : + ``` + sudo bash ./make_bootable_linux + ``` + +:::note +Le périphérique flash peut brièvement disparaître et réapparaître plusieurs fois au cours de ce processus. Cela est normal. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx new file mode 100644 index 0000000000..491a0622f7 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx @@ -0,0 +1,224 @@ +--- +sidebar_position: 5 +sidebar_label: Personnaliser les paramètres d'Unraid +--- + +# Personnaliser les paramètres d'Unraid + +Le système d'exploitation Unraid fonctionne automatiquement mais permet une personnalisation supplémentaire des paramètres tels que l'adresse IP, le nom d'hôte, les paramètres de disque et bien plus via l'onglet **Paramètres** dans le **%%WebGUI|web-gui%%** d'Unraid. + +:::tip[Tailscale intégration] +**Tailscale** est un plugin optionnel que vous pouvez installer via l'onglet **Apps** en recherchant "Tailscale". Il fournit un accès distant sécurisé à votre réseau et ajoute une section **Tailscale** à vos **Paramètres** pour des capacités de gestion à distance améliorées. +::: + +
+ ![Barre d'outils - Paramètres](/img/toolbar_settings.png) +
+ +N'oubliez pas - le %%WebGUI|web-gui%% inclut une aide intégrée. Pour accéder à l'aide pour un champ spécifique, cliquez sur l'invite à côté ou utilisez l'icône **Aide** ![Icône d'aide](/img/helpicon.png) en haut à droite de l'interface pour activer l'aide pour tous les champs. + +## Paramètres système + +Les **Paramètres système** vous permettent de configurer des fonctions clés telles que le réseau, le partage, les %%VM|vm%% et les paramètres de disque. + +### Ancrage du processeur + +La fonction de %%CPU Pinning|cpu-pinning%% vous permet d'assigner des cœurs CPU spécifiques aux %%VMs|vm%% (Machines Virtuelles) ou aux conteneurs Docker. Ceci est particulièrement important pour les charges de travail sensibles aux performances, comme les %%VMs|vm%% de jeux. Même si vous assignez manuellement les conteneurs Docker pour éviter les conflits avec votre %%VM|vm%% de jeu, le système d'exploitation hôte peut encore utiliser ces cœurs pour des tâches comme la gestion du %%WebGUI|web-gui%%, l'exécution d'un %%parity check|parity-check%%, ou la réalisation d'opérations %%BTRFS|btrfs%%. + +- Lorsque vous affectez un cœur à une %%VM|vm%% ou à un conteneur Docker, ce cœur est alloué à la %%VM|vm%% ou au conteneur. Cependant, Unraid OS peut toujours y accéder pour des tâches de routine. +- Quand vous isolez un cœur, il devient dédié à la %%VM|vm%% ou au conteneur et n'est plus accessible au système d'exploitation Unraid. +- Vous pouvez épingler des cœurs sans avoir besoin de redémarrer votre serveur, mais l'application des changements d'isolement du CPU nécessite un redémarrage du système. + +### Date & Heure + +Sur cette page, vous pouvez définir votre fuseau horaire et activer jusqu'à quatre serveurs NTP. Vous devriez ajuster Unraid pour qu'il corresponde à votre fuseau horaire pour un chronométrage précis. + +
+ ![Barre d'outils - Paramètres](/img/date-time.png) +
+ +### Paramètres du disque + +Vous pouvez modifier des paramètres supplémentaires pour vos périphériques disque sur cette page. Activez votre %%array|array%% pour qu'il démarre automatiquement au démarrage, ajustez les %%spin-down timers|spin-down-timers%% du disque et même modifiez les paramètres avancés du pilote comme la %%SMART polling frequency|smart-polling%%. + +
+
+ Paramètres du disque +
+ +
+ Paramètres SMART Globaux +
+
+ +### Docker + +Les conteneurs Docker permettent d'intégrer des applications Linux préconfigurées dans votre serveur Unraid. Pour plus de détails, voir la page [Gestion des Docker](../../using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx). + +
+ ![Paramètres - Docker](/img/settings-docker.png) +
+ +### Identification + +Par défaut, Unraid utilise le nom d'hôte `tower`, mais vous pouvez le modifier ici. Vous pouvez également ajouter une description ou un numéro de modèle pour votre système. + +
+ ![Paramètres - Identification](/img/settings-identification.png) +
+ +### Accès à la gestion + +Vous pouvez configurer divers paramètres d'accès pour votre serveur Unraid, y compris l'activation de Telnet ou du %%SSH|ssh%%, la configuration des ports pour %%SSL|ssl%%/%%TLS|tls%%, HTTP et HTTPS, et la définition de la page d'accueil par défaut pour Unraid. Pour des informations détaillées sur la sécurisation de votre %%WebGUI|web-gui%% avec des certificats %%SSL|ssl%%, voir [Secure your connection](../../system-administration/secure-your-server/securing-your-connection.mdx). + +
+ ![Paramètres - Accès à la gestion](/img/settings-management-access.png) +
+ +### Paramètres réseau + +Par défaut, Unraid essaie d'obtenir une adresse IP d'un serveur DHCP sur votre réseau local, généralement fourni par votre routeur. Sur cette page, vous pouvez configurer une adresse IP statique, configurer le %%bonding|nic-bonding%%, le %%bridging|nic-bridging%%, ou explorer d'autres options. Alors que la définition d'une IP statique est recommandée, elle n'est pas nécessaire pour utiliser Unraid. + +
+ ![Paramètres réseau](/img/settings-network.png) +
+ +### Mode d'alimentation + +Le réglage **Power Mode** vous permet d'optimiser votre serveur Unraid pour une efficacité énergétique, un fonctionnement équilibré ou des performances maximales. Vous pouvez choisir parmi les modes disponibles - **Meilleure efficacité énergétique**, **Fonctionnement équilibré**, ou **Meilleure performance** - pour correspondre à votre charge de travail et à vos préférences énergétiques. L'ajustement du mode d'alimentation peut aider à réduire la consommation d'énergie, à abaisser les températures du système ou à fournir des ressources supplémentaires pour les tâches exigeantes. + +Les changements prennent effet immédiatement et ne nécessitent pas de redémarrage du système. + +
+ ![Mode d'alimentation](/img/settings-powermode.png) +
+ +### Paramètres de partage global + +%%User shares|user-share%% can greatly simplify the organization and access of content across multiple disks in the %%array|array%%. You have the option to specify which disks are allowed to participate in %%user shares|user-share%% through global inclusion or exclusion settings. + +
+ ![Paramètres de partage global](/img/settings-globalshare.png) +
+ +### Paramètres de l'onduleur + +Unraid peut être connecté à un UPS APC (ou compatible) pour permettre au système de s'arrêter en toute sécurité en cas de perte de puissance tout en recevant une alimentation par batterie. Vous pouvez configurer la connexion de l'UPS et définir des politiques pour la commande d'arrêt sur cette page. + +
+ ![Paramètres de l'onduleur](/img/settings-ups.png) +
+ +### Gestionnaire de VM + +Les **machines virtuelles** (VMs) peuvent transformer votre serveur en un bureau ou un lecteur multimédia et exécuter des applications non conçues pour Linux. Pour plus de détails sur la gestion des %%VMs|vm%% sur Unraid, voir [Configuration des VMs](../../using-unraid-to/create-virtual-machines/vm-setup.mdx). + +
+ ![Gestionnaire de VM](/img/settings-vmmanager.png) +
+ +## Services réseau + +Les **Services Réseau** vous permettent de configurer les protocoles de communication réseau sur votre serveur Unraid, qui sont essentiels pour les partages utilisateurs et disques. Vous pouvez également activer un serveur %%FTP|ftp%%, un serveur de journaux et configurer un %%VPN|vpn-tunnel%% pour un accès distant sécurisé. + +### NFS (Network File System) + +La prise en charge de NFSv4 est disponible dans Unraid. Vous pouvez l'activer ou désactiver pour les %%user shares|user-share%% et ajuster le réglage `fuse_remember` pour aider à résoudre les erreurs *NFS Stale File Handle*. + +
+ ![NFS](/img/settings-nfs.png) +
+ +### SMB (Server Message Block) + +Le protocole SMB est utilisé par les clients Microsoft Windows. Depuis cette page, vous pouvez l'activer, définir un groupe de travail ou rejoindre un domaine Active Directory. + +
+ ![SMB](/img/settings-smb.png) +
+ +### FTP (File Transfer Protocol) + +Les utilisateurs peuvent se connecter via %%FTP|ftp%% uniquement s'ils sont ajoutés au champ **Utilisateurs FTP** sur cette page. Si aucun utilisateur n'est ajouté, le service %%FTP|ftp%% ne démarrera pas. + +
+ ![FTP](/img/settings-ftp.png) +
+ +### Serveur Syslog + +Le %%Syslog server|serveur Syslog%% stocke en permanence votre journal système, ce qui est utile pour le dépannage car Unraid efface le journal après chaque redémarrage. + +
+ ![Serveur Syslog](/img/settings-syslog.png) +
+ +### Tailscale + +:::note +La section Tailscale est uniquement disponible si vous avez installé le plugin Tailscale. +::: + +La section %%Tailscale|tailscale%% permet un accès distant sécurisé via le %%VPN|vpn-tunnel%% %%Tailscale|tailscale%%. Ici, vous pouvez vous connecter pour connecter votre serveur Unraid à votre %%Tailnet|tailnet%%, visualiser l'adresse IP et le nom d'hôte attribués, et activer ou désactiver la connectivité %%Tailscale|tailscale%%. + +You can also configure your server as a %%Subnet Router|subnet-routing%% for local devices or as an Exit Node to route internet traffic. This section enables management of advertised routes, exit node status, Docker container integration options, and connection status monitoring for troubleshooting. + +
+ ![Paramètres Tailscale](/img/settings-tailscale.png) +
+ +### Gestionnaire de VPN + +Vous pouvez établir une connexion %%VPN|vpn-tunnel%% à votre serveur Unraid en utilisant [%%Wireguard|wireguard%%](https://www.wireguard.com/) pour des connexions Internet sécurisées. + +
+ ![Gestionnaire de VPN](/img/settings-vpnmanager.png) +
+ +## Préférences utilisateur + +Les Préférences utilisateur vous permettent de configurer divers aspects de vos interactions avec le système d'exploitation Unraid, y compris les notifications, les paramètres d'affichage, la personnalisation de l'interface utilisateur, et le calendrier de %%Mover|mover%%. + +### Confirmations + +Vous pouvez activer/désactiver l'exigence de confirmations lors de la réalisation de diverses tâches à partir de cet endroit. + +
+ ![Confirmations](/img/settings-confirmations.png) +
+ +### Paramètres de la console + +Vous permet de personnaliser la console système locale. Vous pouvez sélectionner la disposition du clavier, ajuster le délai d'extinction de l'écran et activer ou désactiver l'historique persistant de Bash à travers les redémarrages. Ces options améliorent votre expérience lorsque vous utilisez Unraid avec un moniteur et un clavier connectés. + +
+ ![Paramètres de la console](/img/settings-console.png) +
+ +### Paramètres d'affichage + +Personnalisez l'apparence du %%WebGUI|web-gui%% Unraid sur cette page en ajustant le format de la date et de l'heure, le format des nombres, et en basculant entre les vues à onglets et non à onglets. Vous pouvez également sélectionner l'unité de température et choisir parmi différents thèmes pour l'interface utilisateur. + +
+ ![Paramètres d'affichage](/img/settings-display.png) +
+ +### Paramètres de notification + +Vous pouvez configurer les notifications de navigateur et d'e-mail sur cette page, en vous abonnant à différents types et en définissant des alertes personnalisées pour les valeurs d'attribut %%SMART|smart%%. + +
+ ![Paramètres de notification](/img/settings-notifications.png) +
+ +### Planificateur + +La page des paramètres du Planificateur vous permet de configurer facilement la fréquence des tâches automatisées, y compris les opérations %%parity checks|parity-check%%, %%Mover|mover%% pour le cache, et %%TRIM/Discard|trim-discard%% pour les SSD. + +## Utilitaires utilisateur + +Les plugins tiers sont affichés ici, améliorant la fonctionnalité d'Unraid et vous donnant plus de contrôle sur votre serveur. Par exemple, le [plugin Community Applications](../../using-unraid-to/run-docker-containers/community-applications.mdx) est inclus. D'autres plugins offrent des fonctionnalités pour la surveillance du système, la maintenance, la gestion du stockage et les sauvegardes `appdata`. + +--- + +\* *"%%WireGuard|wireguard%%" et le logo "%%WireGuard|wireguard%%" sont des marques déposées de Jason A. Donenfeld.* diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx new file mode 100644 index 0000000000..f4ce3a5d40 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx @@ -0,0 +1,106 @@ +--- +sidebar_position: 2 +sidebar_label: Déployer et configurer Unraid OS +--- + +# Déployer et configurer Unraid OS + +After booting Unraid OS for the first time, you'll use the %%WebGUI|web-gui%% to complete your system configuration. This interface lets you manage your server, set up storage, configure user shares, and control features like %%hardware virtualization|hvm%% and Docker containers. + +:::info\[Localize] + +Il peut être plus facile pour les utilisateurs de suivre ce guide après avoir configuré leurs paramètres de langue. Consultez le [support multilingue](../../using-unraid-to/customize-your-experience/multi-language-support.mdx) pour rendre le %%WebGUI|web-gui%% plus accessible dans votre langue préférée. + +::: + +## Connectez-vous au Unraid WebGUI + +Vous pouvez vous connecter au %%WebGUI|web-gui%% de deux manières : + +- **Mode GUI :** Démarrez Unraid en mode GUI et connectez-vous en utilisant un clavier et un moniteur connectés au serveur. Utilisez `root` comme nom d'utilisateur sans mot de passe initial. +- **Navigateur Web :** Sur un autre appareil de votre réseau local, rendez-vous sur `http://tower.local`. Si vous avez défini un nom d'hôte différent, utilisez celui-ci à la place de `tower` (par exemple, pour le nom d'hôte `unraidserver`, vous visiteriez `http://unraidserver.local`). %%mDNS|mdns%% gère la résolution de ces adresses `.local`. + +:::important +Le serveur Unraid est accessible sur votre LAN dès qu'il est entièrement démarré. Vous pouvez trouver l'adresse IP sur la liste des clients DHCP de votre routeur ou en utilisant un outil de numérisation de réseau. +::: + +## Définir un mot de passe root + +Lorsque vous accédez au %%WebGUI|web-gui%% pour la première fois, vous serez invité à créer un mot de passe fort pour le %%utilisateur root|root-user%%. + +Assurez-vous que votre mot de passe : + +- Est unique +- Au moins 8 caractères de long. (Cependant, la meilleure pratique recommande 12+ pour les mots de passe les plus sécurisés !) +- Est un mélange de lettres, de chiffres et caractères spéciaux. + +Nous recommandons d’utiliser un gestionnaire de mots de passe pour un stockage sécurisé. + +
+ ![Définir le mot de passe root](/img/Set_root_password.png) +
+ +:::tip +Si vous oubliez votre mot de passe root, vous pouvez le réinitialiser en suivant le guide [Réinitialiser votre mot de passe](../../system-administration/secure-your-server/user-management.mdx#reset-your-password). Vous pouvez également mettre à jour votre mot de passe sur la page Utilisateurs du %%WebGUI|web-gui%%. +::: + +## Enregistrez votre clé de licence + +Après avoir défini votre mot de passe root, connectez-vous à votre compte Unraid.net pour obtenir une clé de licence : + +1. Dans le %%WebGUI|web-gui%%, allez à la section **Commencer**. + +
+ ![Commencer](/img/Upc_get_started.png) +
+ +2. Connectez-vous ou créez un compte, après quoi une clé d’essai sera installée automatiquement. + +
+ ![Installer clé d'essai](/img/Upc_install_trial_key.png) +
+ + Ce processus vous permet de gérer vos clés de licence Unraid OS, d'obtenir de nouvelles clés, de récupérer celles perdues ou de mettre à niveau votre licence. + +:::important +Pour des détails sur votre licence, visitez ***Outils → Enregistrement*** dans le %%WebGUI|web-gui%%. +::: + +## Recommandations pour le BIOS + +Avant de déployer Unraid OS, il est important de vérifier les paramètres BIOS et contrôleur de stockage de votre système. Ci-dessous, vous trouverez une liste de vérification pour garantir la compatibilité, la stabilité et l'accès aux fonctionnalités clés. + +
+ Cliquez pour développer notre liste de vérification du BIOS et du contrôleur de stockage + + Une configuration correcte du BIOS et du contrôleur de stockage est essentielle pour un déploiement stable de Unraid OS. Utilisez cette liste de contrôle avant votre premier démarrage. + + ### Paramètres de base + + ✅ Définissez la clé USB comme périphérique de démarrage principal.\ + ✅ Configurez le contrôleur de stockage en mode **%%AHCI|ahci%%** avec des connexions SATA.\ + ✅ Réglez le contrôleur en mode **%%HBA mode|hba-mode%%** (pas **%%RAID|raid%%**).\ + ✅ Désactivez le **Secure Boot**, car il n'est pas pris en charge par Unraid OS. + + ### Paramètres avancés + + ✅ Enable **%%hardware virtualization|hvm%%** features (e.g., **%%Intel VT-x|intel-vt-x%%** or **%%AMD-V|amd-v%%**) for **%%virtual machines (VMs)|vm%%**.\ + ✅ Enable **%%IOMMU|iommu%%** support (Intel VT-d or AMD-Vi) for PCI device assignment to VMs. + + ### Conseils de dépannage + + Si Unraid OS ne démarre pas, essayez : + + ✅ Ajuster l'ordre de démarrage à : **Forced-FDD**, **USB-HDD**, **USB-ZIP**.\ + ✅ Désactiver le support USB 2.0/3.0.\ + ✅ Basculer toute fonction de Démarrage Rapide.\ + ✅ Basculer le support du clavier USB. + + Pour obtenir une assistance supplémentaire, visitez le [forum d'assistance général d'Unraid](https://forums.unraid.net/). + + :::important + De nombreuses cartes mères limitent la sélection du périphérique de démarrage à 12 disques durs. Si votre clé USB est reconnue comme un disque dur, vous risquez de ne pas pouvoir démarrer à partir de celle-ci après l'installation de 12 disques durs physiques. Configurez le BIOS pour traiter la clé comme un périphérique amovible autant que possible. + + Si vous utilisez une carte HBA supplémentaire, vous pourrez peut-être désactiver la prise en charge INT 13h pour empêcher que ses lecteurs connectés n'apparaissent dans la liste des périphériques de démarrage, aidant ainsi à rester dans la limite des 12 lecteurs. + ::: +
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx new file mode 100644 index 0000000000..05015b4b7e --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx @@ -0,0 +1,31 @@ +--- +sidebar_position: 2 +sidebar_label: Unraid.net +--- + +# Unraid.net + +Un compte Unraid.net est votre point d'accès aux services en ligne d'Unraid, y compris les [forums](https://forums.unraid.net/), [Unraid Connect](../../unraid-connect/overview-and-setup.mdx), et la gestion de licence. Bien qu'il ne soit pas nécessaire pour les fonctions de base du serveur, avoir un compte offre plusieurs avantages tels que la gestion simplifiée des licences, l'accès aux versions préliminaires, et un support amélioré. + +#### Les avantages d'un compte Unraid.net incluent : + +- **%%Single Sign-On (SSO)|sso%% :** Accédez aux systèmes Unraid avec un seul ensemble de crédentiels. +- **Gestion des licences :** Gérez facilement vos clés de licence et enregistrements de serveur. +- **Accès aux préversions :** Téléchargez et testez les versions préliminaires d'Unraid. +- **Support amélioré :** Participez aux forums et recevez des mises à jour sur votre compte. +- **Authentification sécurisée :** Profitez d'une connexion sécurisée avec des options d'authentification multifactorielle (AMF). + +### Votre compte et les données stockées + +Unraid.net utilise un système de %%SSO|sso%% à account.unraid.net pour une authentification sécurisée via %%AWS Cognito|aws-cognito-oauth%%. Vos données sont stockées en toute sécurité et cryptées. La base de données d'utilisateurs du pool %%AWS Cognito|aws-cognito-oauth%% conserve les informations suivantes pour les utilisateurs enregistrés : + +| Type de données | Description | +| --------------------------------- | ------------------------------------------------------------------------ | +| Identifiant utilisateur | Identifiant unique pour votre compte | +| Nom d'utilisateur | Votre nom d'utilisateur Unraid.net choisi | +| Adresse e-mail | Utilisée pour la communication et la récupération de compte | +| ID du forum Unraid | Liez votre compte à l'activité du forum | +| Autorisation de préversion | Indique si vous pouvez télécharger les préversions d'Unraid | +| %%Hachage de mot de passe\|hash%% | Version sécurisée, salée et à sens unique (hachée) de votre mot de passe | +| Détails AMF | Informations pour l'authentification multifactorielle | +| Infos %%SSO\|sso%% Google/Apple | Attributs de connexion tiers (si utilisés) | diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx new file mode 100644 index 0000000000..3312d1cf29 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx @@ -0,0 +1,186 @@ +--- +sidebar_position: 1 +sidebar_label: Qu'est-ce qu'Unraid ? +--- + +# Qu'est-ce qu'Unraid ? + +Unraid est un système d'exploitation embarqué conçu pour vous donner un contrôle total sur votre matériel. Il fonctionne comme un système de stockage en réseau (NAS) robuste, un serveur d'%%applications|application-server%% et un hôte pour des %%machines virtuelles (VMs)|vm%%. + +Unraid s'installe sur une clé USB et démarre à partir de celle-ci, se chargeant dans un système de fichiers RAM racine. Il utilise un noyau Linux moderne avec des pilotes matériels mis à jour, lui permettant de fonctionner sur presque tous les systèmes 64 bits x86\_64 tout en gardant une empreinte mémoire minimale. Toutes les données de configuration pour le système d'exploitation sont stockées sur la clé USB et se chargent en même temps que le système d'exploitation. + +Unraid dispose d'une [interface web conviviale](./explore-the-user-interface/tour-the-web-gui.mdx) pour une gestion facile. Il offre des contrôles de base pour les tâches courantes et des réglages avancés pour les utilisateurs expérimentés. Bien qu'il soit par défaut configuré pour convenir à la plupart des gens, il permet également la personnalisation. Cet équilibre entre simplicité et flexibilité vous aide à stocker, protéger, partager et profiter de votre contenu efficacement. + +**Les capacités principales d'Unraid résident dans trois domaines principaux :** + +
+

NAS défini par logiciel

Permettre aux utilisateurs de partager efficacement la capacité de stockage sur un réseau.
+ + ### Tableaux et Parité + + Unraid offre une solution simple et flexible pour transformer tout système compatible 64 bits en un dispositif de stockage en réseau (NAS). Il peut gérer une variété de disques, qu'ils soient connectés via IDE, SATA ou SAS, et prend en charge différentes tailles de disques. Cela signifie que vous pouvez ajouter de nouveaux disques un à un à mesure que vos besoins de stockage augmentent, sans avoir à réorganiser vos données existantes lorsque vous élargissez votre configuration. + + The main job of an Unraid %%array|array%% is to organize and protect the data stored across several drives. It does this by using up to two special drives called %%parity drive|parity-drives%%s. These %%parity drive|parity-drives%%s are important because they help reconstruct your data if one of the other drives fails. In fact, with just one %%parity drive|parity-drives%%, you can protect all the other drives in your %%array|array%%, keeping your data safe. Plus, you can mix different sized drives and easily expand your storage over time, making Unraid a user-friendly option for anyone looking to manage their data effectively. + +
+ Comment fonctionne la parité - Cliquez pour agrandir/réduire + + Dans Unraid, l'information de %%parité|parity%% est mise à jour en temps réel. Pour comprendre comment cela fonctionne, imaginez le contenu d'un disque dur comme un long flux de bits, où chaque bit est soit un zéro soit un un. En additionnant les valeurs du nième bit sur tous les disques et en déterminant si cette somme est paire ou impaire, le nième bit de %%parité|parity%% correspondant peut être réglé en conséquence. Si un disque de données échoue, cette information de %%parité|parity%% permet une détermination précise des valeurs exactes des bits, facilitant une reconstruction précise sur le disque de remplacement. + + Par exemple : + +
+ ![Sans Parité](/img/No_parity_500px.png) +
+ + Dans l'image ci-dessus, trois disques contiennent des flux de bits qui varient selon la taille du périphérique. Ces disques ne sont pas protégés, donc si l'un d'eux échoue, les données seront perdues. Pour se protéger contre les pannes, nous avons besoin d'un quatrième disque en tant que disque de %%parité|parity-drive%%, qui doit être égal ou plus grand que le plus grand disque de données. + + Pour définir les bits de %%parité|parity%%, nous trouvons le total pour chaque colonne. Si la somme est paire, le bit de %%parité|parity%% est 0 ; si elle est impaire, le bit de %%parité|parity%% est 1. + + Voici la même image qu'avant, mais avec la %%parité|parity%% calculée par image : + +
+ ![Parité](/img/Parity@500px.png) +
+ + Supposons que le disque 2 de notre exemple a échoué, et qu'un nouveau disque a été acheté pour le remplacer : + +
+ ![Défaillance du disque](/img/Drive_failure@500px.png) +
+ + Pour reconstruire les données sur le nouveau disque, nous déterminons le bit manquant plutôt que de calculer le bit de %%parité|parity%%. Pour la colonne 1, la somme est 0, donc le bit manquant est 0. Pour la colonne 6, avec une somme de 1, le bit manquant est 1. + + Rebâtir un disque en utilisant la %%parité|parity%% protège contre la perte de données et offre une tolérance aux pannes, garantissant un accès complet au système même si un disque échoue. +
+ + ### Partages d'utilisateurs + + Unraid is different from most %%RAID|raid%% systems because it saves data on individual drives instead of combining them into one. As a %%root user|root-user%%, you can create %%user shares|user-share%%, which are like top-level folders that gather files from multiple drives in the %%array|array%% or %%cache pool|cache-pool%%. This means you don’t have to worry about which specific drive holds your files; they are organized for you. + + Vous pouvez également personnaliser ces partages pour inclure ou exclure certains disques et décider de la façon dont les fichiers sont répartis sur votre stockage. De plus, vous pouvez gérer comment les utilisateurs accèdent aux partages en configurant les options réseau, comme %%SMB|samba%% et %%NFS|nfs%%, et en appliquant des paramètres de sécurité. Pour garder les données privées en sécurité, vous pouvez créer des comptes utilisateurs et définir des limites d'accès pour les personnes de confiance. + + ```mdx-code-block + +
+
+ User shares distribution example + +
User shares - Distribution
+
+ +
+ User shares distribution example larger + +
User shares - Access
+
+
+ + ``` + + ### Comprendre les disques de cache + + One of the standout features of Unraid is the %%cache drive|cache%%, which helps speed up data transfer. When you use a %%cache drive|cache%% alongside three or more drives, you can write data up to **three times faster**. When you save files to a %%user shares|user-share%% with a %%cache drive|cache%%, the data is first stored on the %%cache drive|cache%%. This allows for quick writing, and later, a process called %%Mover|mover%% transfers the data to the main storage %%array|array%% - often during the night—making room on the %%cache drive|cache%%. + + For added data safety, you can set up a %%cache pool|cache-pool%% with multiple drives. This setup not only increases storage space but also uses technologies like %%ZFS|zfs%% or %%BTRFS|btrfs%% to provide extra protection for your data, similar to %%RAID 1|raid1%%. Overall, Unraid’s management of shares and %%cache drives|cache%% creates a flexible, efficient, and secure storage solution. + + [En savoir plus sur la configuration des partages et des caches ici.](../using-unraid-to/manage-storage/array-configuration.mdx) + +
+ ![Comment fonctionne la capture des données avec le Pool de Cache](/img/Cache-pool.gif) +
+
+ +
+

Serveur d'applications

Permettre l'exécution d'applications conteneurisées.
+ + Unraid transforms your storage solution into a versatile %%application server|application-server%% through Docker containerization. This approach overcomes traditional NAS limitations while maintaining system stability and ease of use. + + Les solutions NAS traditionnelles présentent trois défis clés pour l'hébergement d'applications : + + 1. **Problèmes de compatibilité OS** - Incapacité à exécuter des applications conçues pour différents systèmes d'exploitation. + 2. **Gestion complexe du cycle de vie** - Des expériences d'installation difficiles peuvent laisser des artefacts résiduels après suppression. + 3. **Conflits d'applications** - Les composants logiciels peuvent interférer entre eux ou avec les opérations du système. + + L'utilisation de Docker par Unraid répond à ces défis de trois manières clés : + + 1. **Indépendance OS** - Chaque conteneur fonctionne dans son propre environnement Linux, éliminant les problèmes de compatibilité avec le système d'exploitation hôte. + 2. **Déploiement basé sur les images** - Les paquets d'applications préconfigurés permettent une installation en un clic et une désinstallation complète des applications. + 3. **Isolation des processus** - Les applications conteneurisées fonctionnent dans des espaces utilisateurs séparés, empêchant tout conflit entre logiciels. + + Les conteneurs Docker vous permettent d'exécuter des applications dans des environnements isolés et légers sans les surcharges associées aux %%machines virtuelles|vm%%. Unraid simplifie l'utilisation de Docker en fournissant l'accès à des milliers d'applications préconfigurées via [Docker Hub](https://hub.docker.com/) et [Applications Communautaires](../using-unraid-to/run-docker-containers/community-applications.mdx). Cette approche par conteneur permet aux utilisateurs d'Unraid d'exécuter plusieurs applications simultanément sans problèmes de compatibilité. Elle aide également à garder le système organisé en utilisant des packages d'application indépendants et facilite l'amélioration des capacités du serveur grâce à l'écosystème Docker. + + :::note + For advanced Docker settings, check out [Run Docker Containers](../using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx). + ::: +
+ +
+

Plateforme de Virtualisation

Exécution de machines virtuelles avec une performance proche du matériel bare-metal.
+ + Unraid fonctionne comme un hôte de virtualisation, utilisant un %%hyperviseur|hypervisor%% pour allouer de manière sécurisée des ressources aux invités virtualisés. Cela vous permet d'exécuter diverses applications dans des environnements isolés, dépassant ainsi le simple stockage en réseau. + + :::astuce + Pour utiliser la virtualisation matérielle dans Unraid, assurez-vous que votre CPU, chipset, BIOS et pilotes de périphériques sont compatibles. Une liste complète des exigences est disponible dans le [Guide de configuration des VM](../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx). Si votre serveur ne répond pas à ces exigences, le menu %%VMs|vm%% sera désactivé dans le Unraid %%WebGUI|web-gui%%. + ::: + +
+ Avantages de l'utilisation des Machines Virtuelles (VMs) - Cliquez pour agrandir/réduire + + Bien que les conteneurs Docker soient populaires pour les applications basées sur Linux, les VMs améliorent la flexibilité et l'efficacité de votre configuration serveur Unraid et offrent des avantages distincts sur votre serveur Unraid : + + - **Isolation :** Les VMs fonctionnent indépendamment dans des environnements séparés, garantissant qu'une défaillance de l'une n'affecte pas les autres. + + - **Consolidation :** Consolidez plusieurs serveurs physiques en une seule machine Unraid, réduisant ainsi les besoins matériels et simplifiant la maintenance. + + - **Allocation de ressources :** Unraid vous permet d'assigner des ressources CPU, mémoire, stockage et réseau spécifiques à chaque VM, garantissant que les charges de travail critiques reçoivent les ressources nécessaires. + + - **Test et Développement :** Les VMs permettent la création et le test faciles de logiciels sur différents environnements sans nécessiter plusieurs machines physiques. + + - **Sécurité :** L'isolation des VMs améliore la sécurité, rendant difficile la propagation des logiciels malveillants entre elles. + + - **Support des applications anciennes :** Les VMs vous permettent d'exécuter des applications ou des systèmes d'exploitation anciens qui pourraient ne pas être compatibles avec le matériel moderne. + + - **Isolation des ressources :** Chaque VM peut avoir des ressources dédiées, empêchant des problèmes de performance entre les VMs. + + - **Surengagement des ressources :** Vous pouvez exécuter plus de VMs que les ressources physiques ne le permettraient généralement, en comprenant que toutes n'utiliseront pas pleinement leurs allocations en même temps. +
+ +
+ Support des dispositifs assignables pour la virtualisation - Cliquez pour agrandir/réduire + + Unraid's %%KVM|kvm%%-based virtualization uses modern tools for flexible hardware assignment while maintaining host stability. + + Les composants clés incluent : + + **Technologies de base** + + - %%QEMU|qemu%% et %%libvirt|libvirt%% : Gèrent les cycles de vie de %%VM|vm%%. + - Passerelle de périphérique %%VFIO|vfio%% : Fournit un accès direct au matériel. + - %%VirtIO|virtio%% et %%VirtFS|virtfs%% : Optimisent les performances de stockage et de réseau. + - %%OVMF|ovmf%% : Supporte %%UEFI|uefi%% et Secure Boot. + + **Ressources assignées** + + - **Calcul :** Cœurs CPU dédiés via %%CPU pinning|cpu-pinning%%. + - **Mémoire :** RAM isolée. + - **Stockage :** %%disques virtuels|vdisk%% optimisés SSD via %%VirtIO|virtio%%. + - **Périphériques :** Passerelle complète de périphériques PCI/USB, incluant la prise en charge de %%GPU passthrough|gpu-passthrough%%. + + **Flexibilité de la plateforme** + + - Compatible avec les types de machines %%i440fx|i440fx%% et %%Q35|q35%%. + - Compatible avec les charges de travail %%Xen HVM|xen-hvm%% et %%Xen PV|xen-pv%%. + - Active la virtualisation matérielle %%Intel VT-x|intel-vt-x%% et %%AMD-V|amd-v%%. + +
+ ![Ressources assignables](/img/KVM@2x.png) +
+
+ + Pour les étapes de configuration des %%VM|vm%%, consultez [Créer des machines virtuelles](../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx). + + :::caution + %%GPU passthrough|gpu-passthrough%% requires compatible hardware (see [VM setup](../using-unraid-to/create-virtual-machines/vm-setup.mdx)). + ::: +
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md new file mode 100644 index 0000000000..3907d4815c --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md @@ -0,0 +1,956 @@ +## Version 6.10.0 2022-05-07 + +Résumé des changements et nouvelles caractéristiques + +### Plugin UPC et Mes Serveurs + +La nouvelle fonctionnalité la plus visible se trouve dans le coin supérieur droit du +en-tête WebGUI. Nous appelons cela le *Composant de Profil Utilisateur* (UPC). L'UPC permet à un utilisateur de mieux gérer ses clés d'enregistrement et d'installer le plugin optionnel *My Servers*. + +*Mes Serveurs* désigne notre ensemble de services et fonctionnalités basés sur le cloud qui s'intègrent à vos serveur(s) Unraid. Après avoir installé le plugin *Mes Serveurs*, vous serez invité à vous connecter à votre serveur avec un compte Unraid.net existant ou à créer un nouveau compte Unraid.net. Une fois installé, voici quelques fonctionnalités de *Mes Serveurs* : + +- *Statut en Temps Réel* - avec le plugin installé, chaque vignette de serveur sur + le Tableau de Bord *Mes Serveurs* affichera le statut en temps réel, tel que + si le serveur est en ligne ou hors ligne, l'utilisation du stockage et + d'autres informations. +- Lien d'accès local - il s'agit d'un lien direct vers le WebGUI du serveur sur votre LAN. +- Lien d'Accès à Distance - **si activé**, un lien est affiché sur le Tableau de Bord *Mes + Serveurs* pour accéder à un serveur WebGUI à distance et sur Internet. +- Sauvegarde automatique du Flash - chaque serveur enregistré dispose d'un référentiel git privé initialement peuplé par le contenu de votre dispositif de démarrage USB (sauf pour certains fichiers contenant des informations privées comme des mots de passe). Par la suite, les modifications de configuration sont automatiquement validées. Un lien est fourni pour télécharger un fichier zip personnalisé qui peut être utilisé comme entrée pour l'outil Créateur de Flash USB pour transférer votre configuration sur un nouveau dispositif USB. +- Notification des mises à jour critiques liées à la sécurité. Dans le cas où une grave vulnérabilité de sécurité a été découverte et corrigée, nous enverrons une notification à toutes les adresses e-mail associées aux serveurs enregistrés. +- Droit de publier sur un nouvel ensemble de forums Mes Serveurs. + +Les serveurs connectés maintiennent une connexion websocket à un serveur proxy basé sur le cloud de Lime Technology pour relayer le statut en temps réel. Consultez la section de la confidentialité de Mes Serveurs pour plus d'informations. + +### Modifications de Sécurité + +Il est désormais **obligatoire** de définir un mot de passe *root* et changer +le mot de passe de l'utilisateur *root* déconnectera toutes les sessions navigateur WebGUI. + +Nous avons également créé une division dans la page Utilisateurs pour distinguer *root* des +autres noms d'utilisateur. La page d'édition de l'utilisateur *root* inclut une boîte de +texte pour coller les clés SSH autorisées. + +Pour les nouvelles configurations, le paramètre d'exportation par défaut du +partage *flash* est Non. + +Pour les nouvelles configurations, SMBv1 est désactivé par défaut. + +Pour les nouvelles configurations, telnet et ssh sont désactivés par défaut. + +Pour tous les nouveaux partages utilisateur, le paramètre d'exportation par défaut est Non. + +Nous avons retiré certaines chaînes de Diagnostics, telles que les mots de passe trouvés dans le fichier 'go'. + +#### Passage aux certificats SSL wildcard Let's Encrypt + +À partir de cette version, **nous ne délivrons plus de nouveaux certificats SSL pour hôte unique** (que nous appelons les certificats hérités). Au lieu de cela, tous les nouveaux certificats SSL Unraid.net sont **des certificats génériques** (toujours fournis par Let's Encrypt). + +L'URL utilisée pour accéder à votre serveur en utilisant un certificat wildcard a cette forme : + +- `https://[lan-ip].[hash].myunraid.net` + +où, + +- `[lan-ip]` est l'adresse IP LAN de votre serveur avec les points remplacés par des tirets +- `[hash]` est une chaîne hexadécimale de 40 caractères (160 bits) unique à ce serveur (et différente de celle du même `[hash]` dans les certificats hérités) + +exemple : + +- `https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net` + +Nous avons ajouté un nouveau serveur DDNS qui écoute à "myunraid.net". Ce serveur extrait `[lan-ip]` du nom de domaine et renvoie l'adresse IP où les traits d'union sont remplacés par des points. Cette approche offre plusieurs avantages tant pour nos utilisateurs que pour nous : + +- Élimine les délais de propagation DNS lors de la première *provision* d'un + certificat ou lorsqu'une adresse IP du serveur LAN (ou WAN) change. Comme le + nom de domaine inclut l'adresse IP, tout changement d'adresse IP modifie + également le nom de domaine et ne sera donc pas contenu dans le cache DNS + intermédiaire. Nous avons également changé le TTL de 1 heure à 7 jours, + réduisant ainsi les frais généraux et atténuant les problèmes lorsque + l'internet de quelqu'un tombe en panne pour de courtes périodes. +- Il n'est plus nécessaire que le serveur mette à jour activement un serveur DDNS. +- Améliore la confidentialité car votre adresse IP WAN d'accès à distance ne peut pas être déterminée simplement en ajoutant "www" à votre URL d'accès local. +- Déplace la fonctionnalité DNS du domaine 'unraid.net' et l'isole sur le domaine 'myunraid.net'. + +Dans les versions précédentes, le code qui *provisionnait* (allouait et +téléchargeait) un certificat SSL Unraid.net testait d'abord si la +*Protection contre le Rebondissement DNS* était appliquée sur le LAN de +l'utilisateur ; et, si c'était le cas, ne fournissait pas le certificat. +Puisqu'il y a d'autres usages pour un certificat LE, nous avons changé le code de +sorte que la *provision* se poursuive toujours. Ensuite, nous avons changé la +logique derrière la sélection *Auto* du paramètre "Utiliser SSL/TLS" sur la page +Gestion d'Accès. Désormais, il n'est possible de sélectionner Auto que si à la fois +un certificat LE a été provisionné et si la Protection contre le Rebond +DNS n'est pas appliquée. C'est un changement subtil mais qui permet certaines +fonctionnalités de *Mes Serveurs* telles que l'Accès à Distance. + +Après la mise à niveau, vous devrez modifier les favoris du serveur avec le +nouveau URL. Alternativement, si vous avez installé le plugin *Mes Serveurs*, un +lien d'accès local est inclus pour chaque serveur sur votre Tableau de Bord. Si +vous n'avez pas installé le plugin Mes Serveurs, comme il n'y a pas de dé +daemon de mise à jour DNS, nous recommandons de configurer soit un bail DHCP +statique, soit d'attribuer une adresse IP statique pour votre serveur. Enfin, +nous avons configuré nginx de telle sorte que les URL : + +- `http://./` + +ou + +- `https://./` + +redirigeront vers `https://[lan-ip].[hash].myunraid.net` + +Plus d'informations, y compris des cas d'utilisation, peuvent être trouvées dans la Documentation [ici](../system-administration/secure-your-server/securing-your-connection.mdx). + +### Virtualisation + +Libvirt et qemu ont tous deux été mis à jour. De plus, qemu a été compilé avec le support OpenGL et l'émulation ARM (expérimentale). + +#### Support Windows 11 + +Pour prendre en charge Windows 11 qui nécessite TPM et Secure boot, nous avons ajouté l'émulation TPM ; et, ajouté un modèle de VM "Windows 11" qui sélectionne automatiquement le BIOS OVMF compatible TPM. Voici également des instructions pour mettre à niveau une VM Windows 10 vers Windows 11. Un grand merci à [@ich777](https://forums.unraid.net/profile/72388-ich777/) qui a recherché et déterminé quels changements et composants étaient nécessaires pour fournir cette fonctionnalité. + +### Docker + +#### Étiquettes Docker + +- Des étiquettes Docker sont ajoutées pour permettre aux utilisateurs de Docker Compose d'utiliser des icônes et un accès GUI +- Regardez la sortie d'une commande 'run' Docker pour voir exactement quelles étiquettes sont utilisées + +#### Réseaux personnalisés Docker + +- Un nouveau paramètre pour les réseaux personnalisés est disponible. A l'origine, les réseaux personnalisés sont créés en utilisant le mode macvlan, et ce mode est conservé lors de la mise à niveau vers la version 6.10. +- Le nouveau mode ipvlan est introduit pour lutter contre les plantages que certaines personnes rencontrent lors de l'utilisation du mode macvlan. Si c'est votre cas, changez pour le mode ipvlan et testez. Le changement de mode ne nécessite pas de reconfigurer quoi que ce soit au niveau de Docker, tout est pris en charge en interne. + +#### Réseau de pont Docker (docker0) + +- Docker0 prend désormais en charge IPv6. Cela est mis en œuvre en assignant à docker0 un sous-réseau privé IPv6 (fd17::/64), similaire à ce qui est fait pour IPv4 et en utilisant la traduction réseau pour communiquer avec le monde extérieur. +- Les conteneurs connectés au réseau de pont ont maintenant connectivité IPv4 et IPv6 (évidemment, le système doit avoir IPv6 configuré dans la configuration réseau) +- De plus, plusieurs améliorations ont été apportées dans l'implémentation IPv6 pour mieux gérer l'utilisation (ou non) d'IPv6 + +### WireGuard + +Le plugin WireGuard a été intégré dans l'interface WebGUI, c'est-à-dire, plus besoin du plugin. Si vous aviez installé le plugin précédemment, il sera désinstallé et déplacé vers la page "Plugins/Erreurs d'installation de plugins". Aucune action n'est nécessaire sauf si vous souhaitez appuyer sur le bouton Supprimer pour l'enlever de cette page. Vos tunnels et paramètres WireGuard seront préservés. [Voir ce post pour commencer avec WireGuard](https://forums.unraid.net/topic/84226-wireguard-quickstart/). + +Le gourou résident du réseau [@bonienl](https://forums.unraid.net/profile/2736-bonienl/) a ajouté la capacité de lier une interface réseau virtuelle WireGuard à un conteneur Docker. Une utilisation de cette fonctionnalité est de configurer un VPN habilité à WireGuard qui peut alors être exclusivement utilisé par ce conteneur, tandis que votre serveur principal utilise l'interface réseau LAN normale. [Veuillez vous référer à ce post pour des détails supplémentaires.](https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381) + +### Noyau Linux + +Mise à niveau vers le noyau Linux 5.15.x LTS, qui inclut des atténuations des vulnérabilités dites *Sequoia* et *Dirty Pipe*. + +Les **pilotes GPU intégrés** sont maintenant chargés par défaut si le matériel correspondant est détecté : + +- amdgpu +- ast +- i915 +- radeon + +Ces pilotes sont requis principalement pour les graphismes embarqués sur la +carte mère utilisés en mode *démarrage GUI*. Le chargement d'un pilote +peut être interdit en créant le fichier approprié nommé après le pilote : + +`echo "blacklist i915" > /boot/config/modprobe.d/i915.conf` + +Alternativement, le périphérique peut être complètement isolé de Linux via la +page Périphériques du Système. Notez que dans les versions Unraid OS 6.9, les +driver GPU intégrés sont blacklistés par défaut et pour permettre le +chargement du pilote, vous devez créer un fichier "conf" vide. Après mise à niveau +vers Unraid OS 6.10, vous pouvez supprimer ces fichiers, ou les laisser tels quels. Ce changement a été fait pour grandement améliorer l'expérience de l'*interface graphique de bureau* pour les nouveaux utilisateurs. + +**Autres modifications du noyau :** + +- Ajout de la prise en charge pour Intel GVT-g, qui vous permet de diviser votre + iGPU Intel i915 en plusieurs GPU virtuels et de les transférer à plusieurs + VM, en utilisant le plugin *Intel-GVT-g* de [@ich777](https://forums.unraid.net/profile/72388-ich777/). +- Ajout de la prise en charge pour gnif/vendor-reset. Cela simplifie le plugin + *AMD Vendor Reset* de [@ich777](https://forums.unraid.net/profile/72388-ich777/), qui permet aux utilisateurs de réinitialiser correctement leurs cartes vidéo AMD. +- Ajout de ce qu'on appelle "add-relaxable-rmrr-5\_8\_and\_up.patch" modifié pour + notre noyau : + [https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5\_8\_and\_up.patch](https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch) + Merci à [@ich777](https://forums.unraid.net/profile/72388-ich777/) pour l'avoir signalé. +- Options supplémentaires du noyau ACPI activées +- Modules de noyau TPM activés (non encore utilisés) - notez que cela est destiné à l'hôte Unraid utilisant le TPM physique, et non le support TPM émulé pour les machines virtuelles. +- Support des adaptateurs Ethernet USB basés sur Realtek RTL8152/RTL8153 +- Prise en charge NFSv4 activée. + +### Paquets de base + +Presque l'ensemble des paquets de base a été mis à jour. + +Pour SMB : la version Samba 4.15 SMB3 multi-channel n'est plus marquée comme "expérimentale", cependant, elle est **désactivée** par défaut. Elle peut être activée sur la page Paramètres/SMB. Certains utilisateurs ont signalé des problèmes avec SMB3 multi-channel en conjonction avec certaines configurations de bond réseau. + +Sur demande, nous avons ajouté le package mcelog. Avec l'inclusion de ce package, si vous avez un processeur AMD, vous pouvez voir ce message d'erreur dans le journal système : + +`mcelog: ERREUR : Processeur AMD famille 23 : mcelog ne prend pas en charge ce processeur. Veuillez utiliser le module edac_mce_amd à la place.` + +Nous ne savons pas vraiment quoi en penser. Il semble que mcelog soit en cours de dépréciation au profit de rasdaemon. C'est quelque chose que nous devons étudier davantage. + +### Autres améliorations + +D'autres améliorations qui ne sont peut-être pas si évidentes à repérer à partir des notes de version et certaines de ces améliorations sont internes et pas vraiment visibles : + +**Modèle basé sur les événements** pour obtenir des informations sur le serveur et mettre à jour le WebGUI en temps réel + +- L'avantage de ce modèle est son évolutivité. Plusieurs navigateurs peuvent être ouverts simultanément à l'interface WebGUI sans beaucoup d'impact. +- De plus, les sessions de navigateur périmées ne créeront plus d'erreurs CSRF +- Les personnes qui gardent leur navigateur ouvert 24/7 trouveront que le WebGUI reste réactif à tout moment +- Des informations d'état cohérentes sont maintenues sur toutes les instances de navigateurs ouvertes sur un serveur particulier + +**Page des plugins** + +- La page des plugins charge maintenant les informations en deux étapes. D'abord, la liste des plugins est créée, ensuite le champ de statut des plugins, plus long à récupérer, est récupéré en arrière-plan. Le résultat est une page des plugins qui se charge plus rapidement, spécialement lorsque vous avez beaucoup de plugins installés. + +**Graphiques du tableau de bord** + +- Le tableau de bord a maintenant deux graphes disponibles. Le graphe de CPU est affiché par défaut, tandis que le graphe du RÉSEAU est une nouvelle option sous Interface (voir la sélection 'Infos Générales'). +- Le graphique CPU peut également être masqué s'il n'est pas souhaité +- Les deux graphiques ont une chronologie configurable, qui est par défaut de 30 secondes et peut être changée indépendamment pour chaque graphique pour voir une histoire plus longue ou plus courte. +- Les graphiques sont mis à jour en temps réel et permettent d'observer le comportement du serveur sous différentes circonstances + +**Améliorations du planificateur** + +- Vous pouvez maintenant diviser un contrôle de parité en morceaux plus petits et le laisser fonctionner sur plusieurs jours ou semaines. Par exemple, un contrôle peut être effectué dans un créneau horaire de 01:00 à 06:00 pendant plusieurs jours de suite jusqu'à ce qu'il soit terminé. De cette manière, un long contrôle de parité ne gênera pas les activités quotidiennes normales, comme regarder un film. +- Ajout de la possibilité de planifier les opérations de 'balance' et 'scrub' des fichiers de pool et de calculer si un équilibre complet est recommandé. + +**Le navigateur Firefox intégré** disponible en mode *GUI* est construit +comme une AppImage et est situé dans l'image du système de fichiers +compressé *bzfirmware*. Cela économise environ 60 Mo de RAM. + +**Installation simplifiée du plugin Community Apps.** L'interface WebGUI inclut automatiquement l'élément de menu Apps et, si CA n'est pas déjà installé, la page propose un bouton d'installation. Pas besoin de chercher le lien du plugin. + +**Nous avons augmenté la taille de la police dans le Terminal** et résolu le problème avec +macOS *Monterey*. La taille de la police du Terminal est configurable via la +page Paramètres/Affichage. + +**Le Déplaceur** créera un fichier '.partial' puis le renommera une fois terminé. + +**Le démarrage du système** vérifiera les sommes sha256 du fichier bz au démarrage pour s'assurer +d'aucune corruption. + +**Pour les cookies gérés par WebGUI**, l'attribut sameSite du cookie a été modifié de 'strict' à 'lax'. Ce changement a été fait pour résoudre un problème avec la fenêtre Terminal qui ne s'ouvrait pas dans Safari. + +**Ajout agents de notification ServerChan et Pushplus**, merci à +[@ludoux](https://forums.unraid.net/profile/168579-ludoux/) + +**Les dépôts de modèles** ont été supprimés, voir ce post pour plus d'infos sur leurs +remplacements + +### Autres corrections de bugs + +- Nous avons opté pour une version mieux entretenue du composant WSD server appelé wsdd2 pour éliminer les cas où le démon WSD consommerait 100% d'un cœur de CPU. +- Correction d'un problème où il était impossible de créer une image Docker sur un nom de partage contenant un espace. +- Correction d'un problème où 'mover' ne se déplaçait pas vers un nom de pool contenant un espace. +- Correction d'un problème dans le système de fichiers [User Share](../using-unraid-to/manage-storage/shares.mdx#user-shares) où les permissions n'étaient pas respectées. +- Correction du dysfonctionnement des trames jumbo. +- sysctl: gérer le dépassement du maximum net.netfilter.nf\_conntrack\_count (augmenter le réglage à 131072) - chapeau à + Membre de la Communauté [@DieFalse](https://forums.unraid.net/profile/77686-diefalse/) +- Correction d'un bogue trouvé par [@thohell](https://forums.unraid.net/profile/12113-thohell/) où md\_sync\_limit n'était pas respecté pour + limiter l'utilisation du cache stripe\_head lorsque d'autres I/O sont actifs. + L'effet de cette correction est de ralentir drastiquement les opérations de + parité si d'autres I/O sont en cours (tel que le streaming d'une vidéo). + La régulation des opérations de synchronisation de parité peut être + ajustée en modifiant la valeur 'Paramètres/Disque/Paramètres Ajustables (md\_sync\_limit)'. +- Correction des cas complexes de remplacement de périphérique de pool btrfs. Note importante : si vous désassignez un appareil d'un pool btrfs multi-appareils, et que cet appareil est toujours physiquement présent, lors du démarrage du tableau, nous **effacerons** l'en-tête LUKS sur l'appareil si présent, et **supprimerons** la structure de partition, effaçant ainsi effectivement toutes les données contenues sur l'appareil. Ceci est nécessaire pour convaincre btrfs de ne plus utiliser l'appareil et le libérer pour l'assignation à un autre pool. +- Correction d'un bug où le remplacement d'un périphérique dans un pool multi-périphérique btrfs marquait toujours l'ancien périphérique comme manquant. +- Correction d'un problème où le branchement à chaud d'un périphérique dans un serveur avec des disques SAS désactivés pouvait faire apparaître les disques SAS comme non assignés. +- Correction d'un problème où le serveur disparaissait du réseau Windows après le démarrage et/ou de la VM Docker. +- Correction de la régression du pilote md/unraid qui confondait XFS, le faisant penser qu'une réduction en ligne s'était produite. +- Correction : empêche Unraid de se bloquer lorsque l'ensemble est arrêté, tandis que les VM sont en pause ou en état suspendu. +- De nombreuses autres petites corrections de bugs et améliorations. + +## Journal des modifications par rapport à Unraid OS 6.9.2 + +#### Distro de base + +- aaa\_base : version 15.0 +- aaa\_glibc-solibs : version 2.33 +- aaa\_libraries : version 15.0 +- acl : version 2.3.1 +- acpid : version 2.0.33 +- apcupsd : version 3.14.14 +- at : version 3.2.3 +- attr : version 2.5.1 +- avahi : version 0.8 +- bash : version 5.1.016 +- beep : version 1.3 +- bin : version 11.1 +- bind : version 9.16.27 +- bluez-firmware : version 1.2 +- bridge-utils : version 1.7.1 +- brotli : version 1.0.9 +- btrfs-progs : version 5.16 +- bzip2 : version 1.0.8 +- ca-certificates : version 20220403 +- celt051 : version 0.5.1.3 +- cifs-utils : version 6.14 +- coreutils : version 9.0 +- cpio : version 2.13 +- cpufrequtils : version 008 +- cracklib : version 2.9.7 +- cryptsetup : version 2.4.3 +- curl : version 7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775 + CVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780 + CVE-2022-27781 CVE-2022-27782 CVE-2022-30115) +- cyrus-sasl : version 2.1.27 +- db48 : version 4.8.30 +- dbus : version 1.12.20 +- dcron : version 4.5 +- devs : version 2.3.1 +- dhcpcd : version 9.4.1 +- diffutils : version 3.8 +- dmidecode : version 3.3 +- dnsmasq : version 2.86 +- docker : version 20.10.14 (CVE-2022-24769) +- dosfstools : version 4.2 +- e2fsprogs : version 1.46.5 +- ebtables : version 2.0.11 +- eject : version 2.1.5 +- elogind : version 246.10 +- elvis : version 2.2\_0 +- etc : version 15.0 +- ethtool : version 5.16 +- eudev : version 3.2.11 +- file : version 5.41 +- findutils : version 4.8.0 +- flex : version 2.6.4 +- floppy : version 5.5 +- fuse3 : version 3.10.5 +- gawk: version 5.1.1 +- gdbm : version 1.22 +- genpower : version 1.0.5 +- getty-ps : version 2.1.0b +- git : version 2.35.3 (CVE-2022-24765) +- glib2 : version 2.70.3 +- glibc : version 2.33 +- glibc-zoneinfo : version 2022a +- gmp : version 6.2.1 +- gnutls : version 3.7.2 +- gptfdisk : version 1.0.8 +- grep : version 3.7 +- gzip : version 1.12 (CVE-2022-1271) +- hdparm : version 9.63 +- hostname : version 3.23 +- htop : version 3.1.2 +- icu4c : version 69.1 +- inetd : version 1.79s +- infozip : version 6.0 +- inih : version 53 +- inotify-tools : version 3.20.11.0 +- iproute2 : version 5.16.0 +- iptables : version 1.8.7 +- iputils : version 20211215 +- irqbalance : version 1.7.0 +- jansson : version 2.14 +- jemalloc : version 5.2.1 +- jq : version 1.6 +- json-c : version 0.15\_20200726 +- json-glib : version 1.6.6 +- kbd : version 1.15.3 +- keyutils : version 1.6.3 +- kmod : version 29 +- krb5 : version 1.19.2 +- lbzip2 : version 2.5 +- less : version 590 +- libaio : version 0.3.112 +- libarchive : version 3.6.1 +- libcap-ng : version 0.8.2 +- libcgroup : version 0.41 +- libdaemon : version 0.14 +- libdrm : version 2.4.109 +- libedit : version 20210910\_3.1 +- libepoxy : version 1.5.9 +- libestr : version 0.1.9 +- libevent : version 2.1.12 +- libfastjson : version 0.99.9 +- libffi : version 3.3 +- libgcrypt : version 1.9.4 +- libgpg-error : version 1.44 +- libgudev : version 237 +- libidn : version 1.38 +- libjpeg-turbo : version 2.1.2 +- liblogging : version 1.0.6 +- libmnl : version 1.0.4 +- libnetfilter\_conntrack : version 1.0.8 +- libnfnetlink : version 1.0.1 +- libnftnl : version 1.2.1 +- libnl3 : version 3.5.0 +- libpcap : version 1.10.1 +- libpciaccess : version 0.16 +- libpng : version 1.6.37 +- libpsl : version 0.21.1 +- libseccomp : version 2.5.1 +- libssh : version 0.9.6 +- libssh2 : version 1.10.0 +- libtasn1 : version 4.18.0 +- libtirpc : version 1.3.2 +- libtpms : version 0.9.0 +- libunistring : version 0.9.10 +- libunwind : version 1.6.2 +- libusb : version 1.0.24 +- libusb-compat : version 0.1.7 +- libuv : version 1.41.0 +- libvirt : version 8.2.0 +- libvirt-php: version 0.5.6a +- libwebp: version 1.2.2 +- libwebsockets: version 4.2.0 +- libx86: version 1.1 +- libxml2: version 2.9.14 (CVE-2022-29824) +- libxslt: version 1.1.35 +- libzip: version 1.8.0 +- lm\_sensors : version 3.6.0 +- lmdb: version 0.9.29 +- logrotate: version 3.18.1 +- lshw: version B.02.19.2 +- lsof: version 4.94.0 +- lsscsi: version 0.32 +- lvm2: version 2.03.13 +- lz4: version 1.9.3 +- lzip: version 1.22 +- lzo: version 2.10 +- mc: version 4.8.27 +- mcelog: version 180 +- miniupnpc: version 2.1 +- mpfr: version 4.1.0 +- nano: version 6.0 +- ncompress: version 5.0 +- ncurses: version 6.3 +- net-tools : version 20181103\_0eebece +- nettle: version 3.7.3 +- network-scripts: version 15.0 +- nfs-utils: version 2.5.4 +- nghttp2: version 1.46.0 +- nginx: version 1.21.6 +- nss-mdns: version 0.14.1 +- ntfs-3g: version 2021.8.22 +- ntp: version 4.2.8p15 +- numactl: version 2.0.13 +- oniguruma: version 6.9.7.1 +- openssh: version 8.8p1 +- openssl: version 1.1.1o (CVE-2022-1292) +- openssl-solibs: version 1.1.1o (CVE-2022-1292) +- p11-kit: version 0.24.1 +- pam: version 1.5.2 +- patch: version 2.7.6 +- pciutils: version 3.7.0 +- pcre: version 8.45 +- pcre2: version 10.39 +- php: version 7.4.29 (CVE-2021-21708) +- pixman: version 0.40.0 +- pkgtools: version 15.0 +- procps-ng: version 3.3.17 +- pv: version 1.6.6 +- qemu: version 6.2.0 +- qrencode: version 4.1.1 +- reiserfsprogs: version 3.6.27 +- rpcbind: version 1.2.5 +- rsync: version 3.2.3 +- rsyslog: version 8.2102.0 +- samba: version 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336 + CVE-2021-44141 CVE-2021-441412 CVE-2022-0336) +- sdparm: version 1.12 +- sed: version 4.8 +- sg3\_utils : version 1.47 +- shadow: version 4.8.1 +- smartmontools: version 7.3 +- spice: version 0.15.0 +- sqlite: version 3.37.2 +- ssmtp: version 2.64 +- sudo: version 1.9.9 +- swtpm: version 0.7.3 (CVE-2022-23645) +- sysfsutils: version 2.1.0 +- sysvinit: version 2.99 +- sysvinit-scripts: version 15.0 +- talloc: version 2.3.2 +- tar: version 1.34 +- tcp\_wrappers : version 7.6 +- tdb: version 1.4.6 +- telnet: version 0.17 +- tevent: version 0.11.0 +- traceroute: version 2.1.0 +- tree: version 1.8.0 +- ttyd: version 20211023 +- usbredir: version 0.8.0 +- usbutils: version 014 +- utempter: version 1.2.0 +- util-linux: version 2.37.4 +- vbetool: version 1.2.2 +- vsftpd: version 3.0.5 +- wayland: version 1.20.0 +- wget: version 1.21.2 +- which: version 2.21 +- wireguard-tools: version 1.0.20210914 +- wsdd2: version 20111022 +- xfsprogs: version 5.13.0 +- xxHash: version 0.8.1 +- xz: version 5.2.5 (CVE-2022-1271) +- yajl: version 2.1.0 +- zlib: version 1.2.12 +- zstd: version 1.5.2 + +#### Inclus avec le mode GUI + +- adwaita-icon-theme: version 40.1.1 +- at-spi2-atk: version 2.38.0 +- at-spi2-core: version 2.42.0 +- atk: version 2.36.0 +- cairo: version 1.16.0 +- dbus-glib: version 0.112 +- freetype: version 2.11.1 +- fribidi: version 1.0.11 +- gd: version 2.3.3 +- gdk-pixbuf2: version 2.42.6 +- graphite2: version 1.3.14 +- gtk+3: version 3.24.31 +- harfbuzz: version 3.2.0 +- hicolor-icon-theme: version 0.17 +- libtiff: version 4.3.0 +- libxkbcommon: version 1.3.1 +- pango: version 1.48.11 +- shared-mime-info: version 2.1 +- startup-notification: version 0.12 +- appres: version 1.0.5 +- dejavu-fonts-ttf: version 2.37 +- editres: version 1.0.7 +- encodings: version 1.0.5 +- fontconfig: version 2.13.92 +- freeglut: version 3.2.1 +- glew: version 2.2.0 +- glu: version 9.0.2 +- libICE: version 1.0.10 +- libSM: version 1.2.3 +- libX11: version 1.7.3.1 +- libXau: version 1.0.9 +- libXaw: version 1.0.14 +- libXcomposite: version 0.4.5 +- libXcursor: version 1.2.0 +- libXdamage: version 1.1.5 +- libXdmcp: version 1.1.3 +- libXevie: version 1.0.3 +- libXext: version 1.3.4 +- libXfixes: version 6.0.0 +- libXfont: version 1.5.2 +- libXfont2: version 2.0.5 +- libXfontcache: version 1.0.5 +- libXft: version 2.3.4 +- libXi: version 1.8 +- libXinerama: version 1.1.4 +- libXmu: version 1.1.3 +- libXpm: version 3.5.13 +- libXrandr: version 1.5.2 +- libXrender: version 0.9.10 +- libXres: version 1.2.1 +- libXt: version 1.2.1 +- libXtst: version 1.2.3 +- libXxf86dga: version 1.1.5 +- libXxf86misc: version 1.0.4 +- libXxf86vm: version 1.1.4 +- libdmx: version 1.1.4 +- libevdev: version 1.12.0 +- libfontenc: version 1.1.4 +- libglvnd: version 1.3.3 +- libpthread-stubs: version 0.4 +- libxcb: version 1.14 +- libxkbfile: version 1.1.0 +- libxshmfence: version 1.3 +- listres: version 1.0.4 +- mkfontscale: version 1.2.1 +- mtdev: version 1.1.6 +- sessreg: version 1.1.2 +- setxkbmap : version 1.3.2 +- transset : version 1.0.2 +- xauth : version 1.1.1 +- xcb-util : version 0.4.0 +- xdpyinfo : version 1.3.2 +- xdriinfo : version 1.0.6 +- xev : version 1.2.4 +- xf86-input-evdev : version 2.10.6 +- xf86-input-keyboard : version 1.9.0 +- xf86-input-mouse : version 1.9.3 +- xf86-input-synaptics : version 1.9.1 +- xf86-video-ast : version 1.1.5 +- xf86-video-mga : version 2.0.0 +- xf86-video-vesa : version 2.5.0 +- xhost : version 1.0.8 +- xinit : version 1.4.1 +- xkbcomp : version 1.4.5 +- xkbevd : version 1.1.4 +- xkbutils : version 1.0.4 +- xkeyboard-config : version 2.34 +- xkill : version 1.0.5 +- xload : version 1.1.3 +- xlsatoms : version 1.1.3 +- xlsclients : version 1.1.4 +- xmessage : version 1.0.5 +- xmodmap : version 1.0.10 +- xorg-server : version 1.20.14 +- xprop : version 1.2.5 +- xrandr : version 1.5.1 +- xrdb : version 1.2.1 +- xrefresh : version 1.0.6 +- xset : version 1.2.4 +- xsetroot : version 1.1.2 +- xsm : version 1.0.4 +- xtrans : version 1.4.0 +- xwd : version 1.0.8 +- xwininfo : version 1.1.5 +- xwud : version 1.0.5 +- imlib2 : version 1.7.1 +- fluxbox : version 1.3.7 +- slim : version 1.3.6 +- vte3 : version 0.50.2 +- sakura : version 3.5.0 +- xclock : version 1.0.9 +- xterm : version 370 +- hwloc : version 2.2.0 + +#### Noyau Linux + +- version : 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910 CVE-2022-0847) +- correctif : "drm/i915/gen11: Déplacer les WA vers icl\_gt\_workarounds\_init()" +- correctif : "add-relaxable-rmrr-5\_8\_and\_up.patch" modifié pour ce + noeud +- fonctionnalités ajoutées : + - plusieurs paramètres de CONFIG liés à l'ACPI + - CONFIG\_TCG\_TPM et les drivers TPM associés aux puces + - CONFIG\_NFS\_V4 : Support client NFS pour la version 4 de NFS + - CONFIG\_NFSD\_V4 : Support serveur NFS pour la version 4 de NFS + - CONFIG\_USB\_RTL8152 : Adaptateurs Ethernet USB basés sur Realtek RTL8152/RTL8153 + - CONFIG\_USB\_NET\_AQC111 : Support des contrôleurs Aquantia AQtion USB vers 5/2.5GbE + - CONFIG\_USB4 : Support unifié pour USB4 et Thunderbolt + - CONFIG\_USB4\_NET : Mise en réseau via les câbles USB4 et Thunderbolt + - CONFIG\_DRM\_I915\_GVT : Activer le support de l'hôte de virtualisation graphique Intel GVT-g + - CONFIG\_DRM\_I915\_GVT\_KVMGT : Activer le support KVM/VFIO pour Intel + GVT-g + - CONFIG\_VFIO\_MDEV : Cadre de driver de périphérique médié + - CONFIG\_VFIO\_MDEV\_DEVICE : Driver VFIO pour les périphériques médiés + - CONFIG\_FTRACE : Traceurs + - CONFIG\_FUNCTION\_TRACER : Traceur de fonctions du noyau + - CONFIG\_KPROBES : Kprobes + - CONFIG\_DEBUG\_KERNEL : Débogage du noyau + - CONFIG\_KALLSYMS\_ALL : Inclure tous les symboles dans kallsyms + - CONFIG\_ISCSI\_TCP : Initiateur iSCSI via TCP/IP (par Membre de la Communauté [@ich777](https://forums.unraid.net/profile/72388-ich777/)) + - CONFIG\_GIGABYTE\_WMI : Driver de température WMI Gigabyte +- Options de noyau BPF (sur demande de l'utilisateur) : + - CONFIG\_BPF\_SYSCALL : Activer l'appel système bpf() + - CONFIG\_BPF\_JIT : Activer le compilateur BPF Just In Time + - CONFIG\_BPF\_JIT\_ALWAYS\_ON : Activer en permanence BPF JIT et supprimer + l'interpréteur BPF + - CONFIG\_NET\_CLS\_BPF : Classificateur basé sur BPF + - CONFIG\_NET\_CLS\_ACT : Actions + - CONFIG\_NET\_ACT\_BPF : Action basée sur BPF + - CONFIG\_IKHEADERS : Activer les en-têtes du noyau via + /sys/kernel/kheaders.tar.xz + - CONFIG\_NET\_SCH\_SFQ : Ordonnancement à Équité Stochastique (SFQ) + - CONFIG\_NET\_ACT\_POLICE : Politiques de Trafic + - CONFIG\_NET\_ACT\_GACT : Actions génériques + - CONFIG\_GACT\_PROB : Support des Probabilités + - CONFIG\_NET\_SCH\_INGRESS : Qdisc Ingress/classificateur-action + - CONFIG\_CGROUP\_BPF : Support pour les programmes eBPF attachés aux groupes de contrôle +- md/unriad : version 2.9.22 + - corriger : md\_sync\_limit était ignoré + +#### Gestion + +- meilleure prise en charge de l'IPv6 +- diagnostics : ajout des valeurs bz\*.sha256 +- diagnostics : amélioration de l'anonymisation +- diagnostics : anonymiser le déménageur +- diagnostics : meilleures listes de paquets dans folders.txt +- diagnostics : ne pas anonymiser les adresses 169.254.x.x +- nouveaux paramètres par défaut d'emhttp + - mot de passe root requis + - les partages nouvellement créés ne sont pas exportés par défaut + - le partage prédéfini 'flash' n'est pas exporté par défaut + - ssh, telnet : désactivés par défaut + - NetBIOS désactivé par défaut + - WSD activé par défaut (et utilisant le nouveau package 'wsdd2') + - amélioration de l'interopérabilité macOS activée par défaut + - pour les partages 'domains' et 'system', changer le paramètre par défaut 'Activer la copie-inscrire' de 'Non' à 'Auto' + - changer la valeur par défaut réglable poll\_attributes de 30 min à 30 + sec. +- emhttpd : ajouter le nom réservé 'rootshare' +- emhttpd : corriger la régression : les partages utilisateurs devraient être activés par défaut +- emhttpd : minimiser les informations transmises par la fonction UpdateDNS +- emhttpd : utiliser ioctl de shfs pour invalider les informations de partage en cache shfs lorsque la configuration du partage change +- emhttpd : corrige une mauvaise gestion des compteurs de lecture/écriture de périphériques non assignés +- emhttpd : corriger parfois le mauvais nom de périphérique attribué aux périphériques non assignés branchés à chaud +- emhttpd : corriger le cas de substitution btrfs +- emhttpd : corriger le remplacement du périphérique de pool btrfs toujours affichant 'manquant' +- emhttpd : supprimer toutes les sessions PHP lorsque le mot de passe root est modifié (déconnecte tout le monde) +- emhttpd : corriger la gestion des statuts des périphériques pour les pools à un seul emplacement +- emhttpd : réduire les doubles tirets bas dans les liens symboliques nvme /dev/disk/by-id à un tiret bas unique +- firefox : version 91.0.r20210823123856 (AppImage) +- déménageur : corriger le bug ne déplaçant pas les partages avec des espaces intégrés +- déménageur : ajouter le suffixe '.partial' au nom de fichier lorsque le déménagement est en cours +- rc.docker : corriger la condition de course réseau au démarrage +- rc.libvirt : empêcher Unraid de se bloquer lorsque le tableau est arrêté, tandis que les machines virtuelles sont en pause ou suspendues +- rc.libvirt : vérifier l'existence d'une machine virtuelle avant de l'ajouter à la liste des NOMS +- rc.mcelog : mcelog ajouté à la distribution de base +- rc.nginx : changer fastcgi\_read\_timeout de 120s à 640s +- rc.nginx : supprimer le chargement latéral de ttyd +- rc.nginx : prendre en charge les certificats wildcard de Let's Encrypt +- rc.nginx : prendre en charge les certificats wildcard auto-signés personnalisés +- rc.nginx : changer le sujet OU du certificat auto-signé de "unRAID" à "Unraid" +- rc.nginx : ignorer la casse dans le traitement du champ Sujet pour les certificats personnalisés +- rc.nginx : supprimer le bloc de serveur par défaut renvoyant 404 pour https si + USE\_SSL==no et aucun certificat signé par CA +- rc.samba : désactiver le multi-canal SMB par défaut ; ajouter un contrôle à la page des paramètres/paramètres SMB +- rc.S : vérifier le fichier sha256 bz lors du démarrage initial +- shfs : corriger le bogue où les permissions étaient ignorées + ('default\_permissions' manquant dans la commande de montage) +- sysctl : gérer le dépassement du maximum net.netfilter.nf\_conntrack\_count + (augmenter le réglage à 131072) +- ttyd : corriger le texte embrouillé dans les fenêtres de terminal Firefox locales +- upgradepkg : ne pas mettre à niveau si le package existant est plus récent +- wsdd2 : écouter uniquement sur l'interface active par défaut (br0, bond0 ou eth0) +- WebGUI : intégrer l'en-tête UPC +- WebGUI : Ajouter un lien Apps pour installer CA +- WebGUI : ajouter une référence interne au conteneur +- WebGUI : Ajouter un nouveau paramètre "Taille de police du terminal" +- WebGUI : ajouter un agent de notification pour Pushplus +- WebGUI : ajouter un agent de notification pour ServerChan +- WebGUI : ajouter une protection du dossier 'root' à l'arborescence des fichiers +- WebGUI : ajouter le suivi après l'arrêt du système +- WebGUI : ajouter vmxnet3 et e1000 dans les NICs disponibles pour les VM +- WebGUI : ajout de la référence "Utilisateur 'root'" sur la page d'accès à la gestion +- WebGUI : ajout de la notification lorsque le plugin échoue à s'installer +- Interface WebGUI : ajout d'une vérification cumulative de la parité. Cela permet de diviser une vérification de parité sur plusieurs fenêtres horaires. +- WebGUI : ajustement de la surbrillance des lignes sur la page principale et les partages pour mieux convenir aux personnes avec une déficience chromatique +- WebGUI : permettre à CA d'obtenir toutes les informations docker sans avoir à télécharger des icônes si elles ne sont pas présentes +- WebGUI : Autoriser tous les agents de notification à envoyer des liens +- WebGUI : Autoriser le jeu de règles pour les règles locales dans rsyslog.conf +- WebGUI : Autoriser les fenêtres de journal et de console simultanées pour les containers +- WebGUI : Toujours afficher "WebUI" pour les URL spécifiées par l'utilisateur +- WebGUI : Planificateur d'équilibrage et de vérification de BTRFS +- WebGUI : BTRFS équilibre : corriger le message de recommandation lorsque le volume est vide +- WebGUI : Meilleure synchronisation des tableaux lorsque plusieurs sessions sont ouvertes +- WebGUI : Meilleure traduction des variables de conteneur Docker +- WebGUI : Petites corrections CSS +- WebGUI : Modifier l'état de la parité du Tableau de bord pour qu'il soit invalide et non émulé +- WebGUI : Modifiez le passage de page pour mieux convenir à Safari sur les appareils mobiles +- WebGUI : Modifier la notification de synchronisation de parité de l'erreur au niveau d'avis +- WebGUI : Modifié la sélection de l'en-tête pour un meilleur support d'Android +- WebGUI : Vérifiez si le flash est hors ligne / vérification rapide de sa corruption +- WebGUI : Nettoyer le dossier des styles +- WebGUI : Compresser les noms de partages trop longs dans les menus déroulants +- WebGUI : Menu Contextuel : ajout de l'option "button" : par défaut, « gauche » (comportement actuel), autres options : « droite » et « les deux » +- WebGUI : Convertir le sondage de notification vers Nchan +- WebGUI : Créer favicon.ico +- WebGUI : Créer une entrée syslog lors de la déconnexion de l'utilisateur +- WebGUI : Tableau de bord : ajouter un graphique CPU et RÉSEAU +- WebGUI : Tableau de bord : corrigez la couleur de la barre lorsque les seuils de disque sont désactivés +- WebGUI : Tableau de bord : séparer les détails et la vue graphique du processeur +- WebGUI : Supprimer DockerRepositories.page voir [ce post pour plus d'informations sur leurs substituts](https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265) +- WebGUI : Device\_list remplace l'icône .png par une icône de police +- WebGUI : Diagnostics corrige l'erreur de version maximale de plugin obsolète +- WebGUI : Diagnostics : Ajouter un résumé du partage +- WebGUI : Diagnostics : Inclure les versions actuelles des plugins +- WebGUI : Diagnostics : Supprimer les lignes contenant des mots de passe, etc. +- WebGUI : Diagnostics : Refondre l'anonymisation +- WebGUI : Diagnostics : ajouter un journal DHCP +- WebGUI : Diagnostics : ajouter une vérification pour la protection DNS Rebinding +- WebGUI : Diagnostics : ajouter des détails sur les URL +- WebGUI : Diagnostics : privatiser les IP routables +- WebGUI : Paramètres d'affichage : ajouter "showBannerGradient" +- WebGUI : Ne pas mettre en surbrillance la fausse erreur positive ERST +- WebGUI : Améliorations du chargement de la page Docker +- WebGUI : Paramètres Docker : supprimer les preset du navigateur +- WebGUI : Avertissement d'utilisation de Docker uniquement lorsque le fichier image +- WebGUI : Docker : Ajouter la Catégorie Réseau / Confidentialité +- WebGUI : Docker : Ajouter la cryptographie en tant que catégorie +- WebGUI : Docker : Ne pas mettre à jour les modèles utilisateur installés +- WebGUI : Docker : Corrige le cache incorrect lors de la suppression ou de la recréation + de l'image +- WebGUI : Docker : Gérer le cas limite impliquant le bouton retour du navigateur lorsque + dans CA dans certaines circonstances peu probables +- WebGUI : Docker : Ignorer les références d'icônes au point d'interrogation par défaut +- WebGUI : Docker : Enregistrer les modèles uniquement au format v2 +- WebGUI : Docker : Silencier les erreurs PHP lors de l'édition d'un modèle si + la corruption existe +- WebGUI : Docker : Prendre en charge le tag CA +- WebGUI : Docker : Prendre en charge le ReadMe dans les menus contextuels +- WebGUI : Docker : ajouter une description à tous les réseaux personnalisés +- WebGUI : Docker : ajouter un itinéraire pour l'accès à distance WireGuard : + - "L'accès hôte aux réseaux personnalisés" doit être activé pour permettre l'accès + - Les containers avec le réseau "br0" peuvent être accessibles à distance par + WireGuard sans avoir besoin de configurer des routes statiques sur le + routeur domestique (passerelle) +- WebGUI : Docker : ajouter une unité de temps dans les paramètres +- WebGUI : Docker : ajouter une description WireGuard dans la sélection de réseau +- WebGUI : Docker : compresser les noms d'auteur trop longs +- WebGUI : Docker : corriger l'interface qui peut suspendre lorsque plusieurs écrans sont ouverts +- WebGUI : Docker : corriger l'affichage ID du container qui se chevauche +- WebGUI : Docker : corriger que le spinner ne disparaîtra pas après avoir tenté de désinstaller un container inexistant +- WebGUI : Docker : corrigé que l'arborescence n'est parfois pas visible +- WebGUI : Docker : corrigé que l'affichage de l'en-tête provoque un décalage +- WebGUI : Docker : corrigé l'affichage des listes en mode vue fixe +- WebGUI : Docker : corrigé la suppression du modèle lorsqu'aucun container n'existe +- WebGUI : Docker : faire en sorte que la fenêtre contextuelle s'adapte à la fenêtre du navigateur +- WebGUI : Docker : optimisation du menu contextuel +- WebGUI : Docker : traiter les couleurs ANSI bash dans l'affichage du journal web +- WebGUI : Docker : supprimer le bouton de fermeture dans la fenêtre contextuelle +- WebGUI : Docker : optimisation de la traduction +- WebGUI : Docker : la fenêtre de mise à jour utilise la couleur du thème sélectionné +- WebGUI : Modifier/Ajouter un conteneur : Corriger l'erreur de console du navigateur +- WebGUI : Activer/Désactiver le test SMART étendu en fonction du paramètre de délai de mise en veille prolongée +- WebGUI : Vérification d'erreur, etc. sur les ports pour le serveur syslog +- WebGUI : Échapper les guillemets doubles dans le texte saisie de l'entrée +- WebGUI : Étendre la sélection d'icônes de type de fichier +- WebGUI : Étendre ipaddr() avec protocole : le protocole par défaut est ipv4 dans le cas de ipv4 + ipv6 +- WebGUI : Corrige le modèle de processeur qui n'est parfois pas présent +- WebGUI : Corrige l'erreur PHP lors du calcul du niveau d'équilibrage +- WebGUI : Vérifiez la corruption après qu'une nouvelle configuration a été effectuée +- WebGUI : Corrige le token csrf manquant dans Notify +- WebGUI : Corrige les fausses alertes du moniteur +- WebGUI : Corrige l'affichage de la liaison de réseau +- WebGUI : Corrige l'affichage des pools sur la page principale lorsqu'il existe un pool vide +- WebGUI : Corrige l'erreur de régression pour les thèmes auzres et gris +- WebGUI : Corrige la barre latérale des thèmes azur/gris sur Firefox +- WebGUI : Correction : Amélioration des vérifications de DNS Rebinding +- WebGUI : Corrige les erreurs PHP pour les calculs de partage et de disque +- WebGUI : Corrige que la planification de l'équilibre/scrub n'est pas enregistrée lorsque le nom de l'appareil contient un "-" +- WebGUI : Corrige le champ de commentaires uniquement pour les disques sélectionnés +- WebGUI : Corrige la durée de la parité + vitesse lorsqu'elle est mise en pause/reprise +- WebGUI : Corrige les paramètres de température SMART parfois pas possibles +- WebGUI : Corrige : problème d'ajout de partage VM 9p +- WebGUI : Corrige : les boutons ne fonctionnent pas dans les infos appareil lorsqu'aucun appareil n'est présent +- WebGUI : Corrige : attribut samesite manquant dans cookies +- WebGUI : Corrige : l'historique de la parité parfois mal traité +- WebGUI : Corrige : condition de concurrence lorsque le tableau est arrêté et que les attributions de périphériques sont modifiées +- WebGUI : Corrige : paramètres de disque spécifiques uniquement pour les périphériques de pool +- WebGUI : Corrige : calcul de vitesse de vérification de la parité +- WebGUI : Corrige : le spinner reste visible après la commande docker +- WebGUI : Corrections et améliorations de la fonction Parcourir +- WebGUI : Mise à jour des fichiers de polices : +- Ajuster les paramètres CSS + - Nettoyer les fichiers de polices, utiliser uniquement le format woff + - Restaurer la police clear-sans +- Mettre à jour la police bitstream + - bitstream → source code pro + - clear-sans → source sans pro +- WebGUI : Forcer la création d'un mot de passe root +- WebGUI : Mettre en surbrillance la ligne sélectionnée lors du survol de l'array ou des partages +- WebGUI : Amélioration de la détection et du traitement des processus en arrière-plan +- WebGUI : Amélioration du format des pages de plugin obsolètes et d'erreur +- WebGUI : Inclure des liens dans les notifications des agents par email et Discord +- WebGUI : Laisser le paramètre "showBannerGradient" par défaut sur "oui" +- WebGUI : Limiter la largeur de la fenêtre contextuelle sur les moniteurs ultra-larges +- WebGUI : Journal des échecs de téléchargement d'icônes Docker +- WebGUI : Réduire la fréquence de mise à jour de la fonction de moniteur pour mieux s'adapter aux appareils mobiles +- WebGUI : Page principale - réduire la fréquence de mise à jour du tableau pour une meilleure réactivité des liens +- WebGUI : Rendre visible la marque déposée WireGuard sur la page "complète" +- WebGUI : Faire ressortir les liens dans le texte d'aide (en rouge) +- WebGUI : Gestion : corriger la vérification des ports utilisés +- WebGUI : Mises à jour et corrections diverses +- WebGUI : Déplacer le bouton Démarrer sous le champ de chiffrement +- WebGUI : NFS : corriger la copie de l'hostList après l'opération READ +- WebGUI : Nchan : Utiliser les canaux multiplexés et ajouter des rapports d'erreurs +- WebGUI : N'autoriser que les fichiers png à être téléchargés comme image d'utilisateur +- WebGUI : Ouvrir une fenêtre terminal avec taille dynamique +- WebGUI : Vérification de parité : autoriser l'activation/la désactivation du spinup/spindown lorsque l'opération est en pause +- WebGUI : Vérification de parité : réintroduire le bouton Terminé une fois terminé +- WebGUI : Améliorations des opérations de parité : + - Ajouter une action de nettoyage de disque + - Ajouter une action d'opération de parité à la vue historique + - Ajouté colonne "taille" à l'historique de parité + - Ajustement CSS dans les attributs SMART + - Calculs corrects pour la reconstruction de données plus petite que la parité + - Séparer Parité-Sync et Reconstruction de Données comme actions individuelles + - Afficher des boutons supplémentaires dans l'état Array Stopped + - Améliorations textuelles + - Utiliser les mises à jour Nchan pour la progression de la copie/nettoyage +- WebGUI : Parité : durée affichée hors temps d'inactivité +- WebGUI : Gestionnaire de plugins : corriger la sélection de branche inutilement désactivée +- WebGUI : Améliorations du chargement de la page des plugins +- WebGUI : Renforcement de la sécurité des scripts proactifs +- WebGUI : Assouplir la logique de détection SMART +- WebGUI : Assouplir un peu la fréquence de mise à jour +- WebGUI : Supprimer la détection des erreurs Nchan (se fier à la reconnexion automatique de Nchan pour rétablir les connexions lorsque la communication est lente) +- WebGUI : Supprimer les extensions de police obsolètes : eot, svg, ttf +- WebGUI : Remplacer les scripts de sondage par une interface Nchan pilotée par des événements +- WebGUI : Revenir à la capitalisation par défaut des noms de périphériques +- WebGUI : Révision de filedrop.js +- WebGUI : Un clic droit ou un appui long sur un élément de menu doit ouvrir le menu sélectionné +- WebGUI : Interface utilisateur des clés SSH autorisées +- WebGUI : Définir la fréquence de mise à jour de la page principale à 1s pour un meilleur support des appareils mobiles +- WebGUI : Partages : corriger le calcul de la taille incorrecte +- WebGUI : Afficher l'IP sur la page VM Manager +- WebGUI : Afficher l'accès à la gestion et les groupes d'accès aux partages pour les utilisateurs +- WebGUI : Afficher l'avertissement lorsque JavaScript est désactivé +- WebGUI : Connexion requise pour la fourniture/le renouvellement du certificat SSL Unraid LE +- WebGUI : Silencer l'erreur PHP sur la page syslinux si le lecteur flash est manquant +- WebGUI : Prendre en charge le futur T2FA +- WebGUI : Prise en charge de plusieurs langues dans l'affichage de l'arborescence des fichiers +- WebGUI : Supprimer les adresses anycast IPv6 dans la table de routage +- WebGUI : Supprimer les routes IPv6 non pertinentes dans la table de routage +- WebGUI : Ajouts de périphériques système +- WebGUI : Informations système : corriger la traduction +- WebGUI : Support de traduction (Unraid.net) +- WebGUI : Traductions : corriger la création de sessions vides +- WebGUI : Mise à jour de la page des crédits +- WebGUI : Mise à jour de la page des statistiques du tableau de bord +- WebGUI : Mettre à jour le fichier FileTree.php +- WebGUI : Mettre à jour l'interface avec le dernier texte d'aide +- WebGUI : Mettre à jour les paramètres smtp d'Outlook/Hotmail +- WebGUI : Mettre à jour le texte d'alerte +- WebGUI : Mettre à jour les fichiers css pour utiliser uniquement les formats woff et woff2 +- WebGUI : Mettre à jour DNS pour privilégier IPv4 d'abord, puis IPv6 +- WebGUI : Mise à jour de la police de bitsream pour supporter plus de langues +- WebGUI : Mise à jour du texte d'aide pour les paramètres d'affichage et Docker +- WebGUI : Utiliser la vérification en arrière-plan pour la corruption du flash +- WebGUI : Utiliser https pour vérifier la connectivité internet +- WebGUI : Utiliser une vue à onglets pour la page d'informations du périphérique +- WebGUI : Utiliser ttyd pour les fenêtres de journalisation +- WebGUI : Gestionnaire de VM : ajouter un lien de téléchargement pour virtio-win-0.1.208.iso +- WebGUI : Gestionnaire de VM : ajout d'un modèle Windows 11 et OVMF TPM +- WebGUI : Mise à jour du style de l'éditeur de VM +- WebGUI : VM : corriger la sélection de chemin manquante (pour le fichier de firmware GPU) +- WebGUI : VMs : mise à jour automatique de la liste des iso virtio-win +- WebGUI : VMs : menu contextuel optimisé +- WebGUI : Valider les ports WebGUI avant application +- WebGUI : Valider la destination des téléchargements d'ISO VirtIO +- WebGUI : Lors de la visualisation de la source, identifier quel fichier .page est responsable +- WebGUI : WireGuard intégré +- WebGUI : Mises à jour de WireGuard : + - Ajouter le routage de tunnel pour les conteneurs Docker + - Rendre automatiquement disponible le tunnel WG pour les conteneurs (réseau personnalisé) + - Rendre l'importation du fichier de configuration des fournisseurs VPN plus robuste. + - Accès par tunnel VPN pour Docker + - Accès par tunnel VPN pour le système +- WebGUI : WireGuard : Ajouter un avertissement en cas d'échec de la suppression du tunnel +- WebGUI : WireGuard : Introduire de nouveaux modes réseau : +- WebGUI : WireGuard : ajouter une logique pour recréer les réseaux après un redémarrage +- WebGUI : WireGuard : correction de la gestion appropriée des tunnels ipv4 + ipv6 +- WebGUI : WireGuard : définir par défaut le serveur DNS pair avec "Accès tunnelé à distance" +- WebGUI : WireGuard : utiliser un kill switch lorsque le tunnel est inactif +- WebGUI : WireGuard : paramètres nginx utilisateur et api unraid.net +- WebGUI : WireGuard : avertir lorsqu'il est directement connecté avec une IP publique +- WebGUI : WireGuard : corriger la fonction d'importation pour accepter toutes les clés +- WebGUI : WireGuard : rendre l'interface de gestion sélectionnable : +- WebGUI : WireGuard : rendre l'interface de gestion sélectionnable : + - Par défaut sur eth0 - extension future +- WebGUI : WireGuard : supprimer ListenPort de l'entrée de fichier : + - ListenPort doit être unique, laisser WG générer un port local aléatoire à la place +- WebGUI : Ajouts aux barres de défilement css +- WebGUI : diagnostic : correction : anonymiser les urls myunraid.net +- WebGUI : sécurité dockerMan : enlever les balises HTML des éléments de configuration +- WebGUI : dockerMan : retirer les HTML des descriptions +- WebGUI : correction : les verrouillages de mot de passe ne sont pas correctement effacés +- WebGUI : correction : supprimer le msg de ré-authentification des notifications par e-mail +- WebGUI : amélioration : mettre en évidence la ligne sélectionnée lors du survol d'une matrice ou de partages +- WebGUI : jQuery : version 3.6.0 +- WebGUI : présenter le sujet du certificat signé par l'AC sous forme de lien +- WebGUI : privatiser l'hôte dans les diagnostics +- WebGUI : remanier UpdateDNS.php : anonymiser la sortie détaillée par défaut, autres améliorations +- WebGUI : supprimer la page squelette "Mes Serveurs" +- WebGUI : connexion requise pour provisionner le certificat +- WebGUI : prise en charge simultanée de SSL LAN avec certificats auto-signés et de SSL basé sur DNS avec certificat Let's Encrypt +- WebGUI : diverses corrections multilingues + +["WireGuard" et le logo "WireGuard" sont des marques déposées de Jason A. Donenfeld.](https://www.wireguard.com/) + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md new file mode 100644 index 0000000000..9060646d60 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md @@ -0,0 +1,22 @@ +## Version 6.10.1 2022-05-21 + +Certains utilisateurs démarrent à partir d'une partition USB différente de "1". C'est-à-dire qu'au lieu de /dev/sda1, certains utilisateurs ont défini /dev/sda2 comme étiquette de volume UNRAID et il y a même des utilisateurs qui n'ont pas de partitions du tout sur le flash. Dans ce cas, il démarre depuis et monte /dev/sda sur /boot. + +Un changement dans 6.10.0 pour détecter le périphérique de démarrage avec l'étiquette UNRAID +a introduit une régression où seule la partition 1 était prise en compte, empêchant +ces utilisateurs de terminer la séquence de démarrage. + +Cela est corrigé dans 6.10.1 - et c'est le seul changement fonctionnel dans +6.10.1 par rapport à 6.10.0. + +## Journal des modifications vs. Unraid OS 6.10.0 + +#### Gestion + +- démarrage : correction de la régression : support du démarrage flash USB à partir d'une partition autre que la partition 1 + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md new file mode 100644 index 0000000000..3a058f4460 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md @@ -0,0 +1,89 @@ +## Version 6.10.2 2022-05-27 + +### Corruption de données possible avec le pilote tg3 lorsque Intel VT-d est activé + +La combinaison du noyau Linux 5.15, du pilote tg3 et de l'activation de l'Intel VT-d semble causer des corruptions de données. Cela a été vérifié sur plusieurs plateformes incluant une carte réseau Ethernet gigabit Broadcom NetXtreme (note : il peut y en avoir d'autres). Cette version comprend la solution de contournement suivante : + +Très tôt dans le démarrage du serveur (rc.S), si Intel VT-d est détecté comme activé, le script créera inconditionnellement le fichier : + +`/etc/modprobe.d/tg3.conf` + +avec le contenu suivant : + +`liste noire tg3` + +Ainsi, par défaut, si VT-d est activé, ce qui veut dire qu'il n'a pas été désactivé ni dans le BIOS ni via le noyau "intel\*iommu=off", nous allons mettre le pilote tg3 sur liste noire sur toutes les plateformes. Que faire si quelqu'un possède une plateforme où tg3 ne pose pas de problème avec VT-d activé ? Dans ce cas, ils doivent créer un fichier vide sur leur dispositif flash : + +`config/modprobe.d/tg3.conf` + +Lorsque la séquence de démarrage continue, elle arrivera au point où elle exécute : + +`install -p -m 0644 /boot/config/modprobe.d/* /etc/modprobe.d` + +Un fichier tg3.conf *vierge* stocké sur le flash lève alors efficacement la mise sur liste noire. + +Il y aura des utilisateurs qui perdront la connectivité réseau parce que leur carte réseau est sur liste noire. Si vous utilisez une plateforme problématique, vous devriez entrer dans votre BIOS et désactiver VT-d. Si c'est une plateforme sans problème, vous devrez créer le fichier tg3.conf vide dans votre répertoire config/modprobe.d de la clef USB. + +Cela peut prendre du temps pour identifier et intégrer une correction appropriée à ce problème, à ce moment-là nous retirerons le code qui met automatiquement en liste noire. + +#### Comment désactiver l'Intel VT-d sur un HP MicroServer Gen 8 avec un E3-1265LV2 + +Redémarrer le serveur, puis : + +- Pendant le démarrage, appuyez sur F9 pour entrer dans le BIOS. +- Une fois le BIOS chargé, entrez dans le menu Options système → Options processeur → Intel(R) VT-d +- Réglez-le sur désactivé +- Appuyez sur Échap pour revenir au menu principal +- Appuyez sur F10 pour quitter le BIOS et sauvegarder + +Le serveur devrait maintenant démarrer à nouveau normalement. Chapeau bas au membre de la communauté Oceanic pour les +instructions. + +### Modifications liées à la sécurité + +- Le navigateur Firefox a été mis à jour vers la version 100.0.2 pour + adresser une importante faille de sécurité. Si vous utilisez Firefox, nous + vous recommandons également de faire la mise à jour sur toutes les plateformes. +- Nous avons corrigé un problème où la connexion WebGUI pouvait accepter un mot de passe d’un utilisateur autre que 'root', si le nom d'utilisateur incluait la chaîne 'root'. +- Le noyau Linux a été mis à jour vers la version 5.15.43 pour résoudre une vulnérabilité de « contournement de sécurité ». + +### Autres changements + +- Sur la page d'accès à la gestion, pour le paramètre "Utiliser SSL/TLS", nous avons remplacé le mot "Automatique" par "Strict" dans le menu déroulant. Cela décrit mieux l'action de ce paramètre. +- Le gestionnaire Docker utilise maintenant l'étiquette Docker pour les icônes comme solution de repli. +- Le gestionnaire de VM donne maintenant l'option d'utiliser des réseaux libvirt en addition aux ponts sans avoir à éditer le XML des VM. +- Amélioration de la gestion des certificats SSL personnalisés. +- \[6.10.1] Correction de régression : support de démarrage USB flash depuis autre que la partition 1 +- autres corrections de bugs diverses + +## Journal des changements par rapport à Unraid OS 6.10.1 + +#### Distro de base + +- firefox AppImage: version: 100.0.r20220519220738 (CVE-2022-1802 CVE-2022-1529) + +#### Noyau Linux + +- version 5.15.43-Unraid (CVE-2022-21499) + +#### Gestion + +- nginx : éviter d’ajouter le numéro de port par défaut aux URLs de redirection +- nginx : fichier cert auto-signé : accepter le nom commun et tous les noms alternatifs +- démarrage : corriger plusieurs interfaces réseau qui se voyaient assigner la même adresse MAC +- démarrage : mise en liste noire par défaut de tg3 si Intel VT-d est activé +- WebGUI: Accès à la gestion : Utilisation du paramètre SSL/TLS : changer le mot 'Auto' en 'Strict'. +- WebGUI : Fixed : smGlue non inclus lors de la sélection d'un contrôleur +- WebGUI : Fixed : autoriser les noms de partage avec un esperluette intégrée +- WebGUI : ajout de support de terminal LXC (pour le Plugin LXC) +- WebGUI : Docker Web UI pour utiliser l'étiquette Docker pour les icônes comme solution de repli +- WebGUI : Gestionnaire de VM : support des réseaux libvirt (rendre les réseaux libvirt accessibles via gui) +- WebGUI : correction du problème où le login 'root' fonctionne avec le mot de passe d'un autre nom d'utilisateur qui inclut la chaîne 'root'. +- WebGUI : Mise à jour de la page de l'OS : correction orthographique : warninging → warning +- WebGUI : Révision du texte d'aide : corrections mineures + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md new file mode 100644 index 0000000000..24872718f5 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md @@ -0,0 +1,51 @@ +## Version 6.10.3 2022-06-14 + +### Améliorations + +Problème de corruption de données corrigé pouvant survenir sur certaines plateformes, notamment les serveurs HP Microserver Gen8/9, lorsque Intel VT-d était activé. +Ce problème a été résolu en changeant le mode par défaut d'opération IOMMU du noyau Linux de "Traduction DMA" à "Accès direct". + +- De plus, la mise en liste noire de 'tg3' a été supprimée lorsque Intel VT-d était activé. Cela avait été ajouté par précaution, car tous les premiers rapports de corruption de données concernaient également des plateformes qui utilisaient (par coïncidence) le pilote réseau 'tg3'. Si vous avez créé un fichier vide 'config/modprobe.d/tg3.conf', vous pouvez le supprimer. + +**Auteurs de plugins :** Un fichier de plugin peut inclure une balise `` qui affiche un message formaté en markdown lorsqu'une nouvelle version est disponible. +Utilisez ceci pour fournir des instructions ou des avertissements aux utilisateurs avant que la mise à niveau ne soit effectuée. + +Retour de la codification couleur dans les fenêtres de journalisation. + +### Corrections de bugs + +Correction du problème de détection de la carte réseau Mellanox. + +Corrections diverses de bugs WebGUI + +## Journal des modifications par rapport à Unraid OS 6.10.2 + +### Distro de base + +- aucun changement + +### Noyau Linux + +- version 5.15.46-Unraid +- CONFIG\_IOMMU\_DEFAULT\_PASSTHROUGH : Mode direct + +### Gestion + +- démarrage : amélioration de la détection des périphériques réseau +- WebGUI : ajout de la codification couleur dans les fichiers journaux +- WebGUI : En cas de corruption du flash, réessayez le test +- WebGUI : Amélioration de la lecture de syslog +- WebGUI : Ajout du paramètre de taille de journal lors de la visualisation de syslog +- WebGUI : Gestionnaire de plugins : ajout de la fonction de message ALERT +- WebGUI : Ajout de l'icône INFO à la bannière +- WebGUI : Ajout des traductions à la page PageMap +- WebGUI : Correction : vérification de parité non correctrice en fait corrective si un pack de langue autre que l'anglais est installé +- WebGUI : Thèmes azure/gris mis à jour + - Meilleur support pour Firefox + - Déplacer les indicateurs d'utilisation et de notification vers la droite + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md new file mode 100644 index 0000000000..f2c802ebb0 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md @@ -0,0 +1,320 @@ +## Version 6.11.0 2022-09-23 + +### Améliorations + +- Avec cette version, il y a eu de nombreuses mises à jour du package de base, y compris plusieurs atténuations de CVE. + +- La mise à jour du noyau Linux inclut une atténuation des vulnérabilités de données obsolètes du processeur MMIO. + +- Le système de plugins a été refactorisé pour que 'installation du plugin' puisse se poursuivre en arrière-plan. Cela allège + le problème où un utilisateur pourrait penser que l'installation a planté et ferme la fenêtre, alors qu'en réalité cela n'a pas planté. + +- De nombreuses autres améliorations de WebGUI. + +- Ajout du support pour spécifier des ports VNC personnalisés dans l'éditeur de formulaires du gestionnaire de VM. Le numéro de port personnalisé spécifié + à l'aide de l'éditeur XML sera conservé lors du passage à l'éditeur basé sur des formulaires. + +- La mise en veille des dispositifs non rotatifs place désormais ces dispositifs en mode veille si cela est pris en charge par le dispositif. De la même manière, + la remise en route ou toute E/S vers le dispositif rétablira le fonctionnement normal. + +- Affichage des capacités des dispositifs NVMe obtenues à partir de SMART info. + +- Ajout des options de CONFIG kernel nécessaires pour prendre en charge Sr-iov avec les cartes mellanox connectx4+. + +- Fusion du plugin Dynamix SSD Trim dans le WebGUI de Unraid. + +- Support préliminaire pour cgroup2. Passez 'unraidcgroup2' sur la ligne d'appoint de syslinux pour activer. + +- Inclus perl dans la distribution de base. + +### Corrections de bugs + +- Correction du problème dans le gestionnaire de VM où le journal VM ne peut pas s'ouvrir quand le nom de la VM contient un caractère '#'. + +- Correction d'un problème où la pause/reprise de la vérification de la parité selon l'horaire était défaillante. + +- Résolution du problème d'installation des clés d'enregistrement. + +- Mis à jour 'samba' pour adresser les atténuations de sécurité. Devrait aussi se débarrasser du message du noyau se plaignant de "Tentative de définir un verrou LOCK\_MAND via flock(2)." + +- Problème résolu lors du passage de la branche 'test' à 'next'. + +- Cessez d'essayer de mettre en veille les dispositifs qui ne prennent pas en charge le mode veille. + +- Correction du problème d'adhésion AD causé par une bibliothèque cyrus-sasl obsolète. + +- Ne pas démarrer le démon mcelog si le CPU n'est pas pris en charge (la plupart des processeurs AMD). + +- Correction de nginx ne reconnaissant pas le renouvellement du certificat SSL. + +- wireguard : vérifier la connectivité de la passerelle (prochain saut) avant de démarrer le tunnel WG. + +- Ignorer les chaînes "ERREUR:" mélangées dans la sortie de la commande "btrfs filesystem show". + Cela résout le problème où libblkid pourrait étiqueter un disque de parité comme ayant un système de fichiers btrfs + parce que l'endroit où il cherche le "numéro magique" se trouve correspondre à btrfs. Les commandes "btrfs fi" suivantes tenteront de lire les métadonnées btrfs à partir de ce dispositif, ce qui échouera + car il n'y a en réalité pas de système de fichiers btrfs. + +- Correction d'un bug dans le déménageur empêchant les fichiers d'être déplacés de la matrice unRAID vers une cache (mode Préférer) si le nom du partage contient un espace. + +## Journal des modifications par rapport à Unraid OS 6.10.3 + +#### Gestion + +- Ajoutez des contrôles sha256 des fichiers non compressés dans unRAIDServer.plg. +- bash : dans /etc/profile omettez "." (répertoire courant) du PATH. +- docker : ne pas appeler 'docker stop' s'il n'y a pas de conteneurs en cours d'exécution. +- emhttpd : amélioration du support de veille (spinning). +- déménageur : problème corrigé empêchant le déplacement des fichiers de la matrice vers le cache si le nom du partage contient un espace. +- rc.nginx : activer l'OCSP stapling sur les certificats qui incluent une URL de répondeur OCSP. +- rc.nginx : compressez les fichiers de police 'woff' et instruisez le navigateur pour la mise en cache. +- rc.wireguard : amélioration du dépannage pour le démarrage automatique de WireGuard. +- rc.S : prise en charge du chargement précoce des modules de pilotes de plugin. +- SMB : correction des réglages 'fruit' pour le dispositif de démarrage par clé USB. +- SMB : suppression de la prise en charge de NTLMv1 depuis supprimée du noyau Linux. +- SMB : (temporairement) déplacer les paramètres vfs\_fruit dans un fichier séparé /etc/samba/smb-fruit.conf +- SMB : (temporairement) se débarrasser des lignes d'avertissement Samba 'idmap\_hash est obsolète' +- démarrage : empêcher l'installation de versions rétrogradées de packages pouvant exister dans /boot/extra. +- upc : version v1.3.0. +- WebGUI : mise à jour du système de plugin. + - Détacher l'opération frontale et dorsale. + - Utiliser nchan comme canal de communication. + - Permettre la fermeture de la fenêtre pendant que le backend continue. + - Utiliser SWAL en tant que gestionnaire de fenêtres. + - Ajout de la capacité de suppression multiple sur la page des plugins. + - Ajout de la mise à jour de tous les plugins avec détails. +- WebGUI : docker : utiliser l'étiquette docker comme principale source pour WebUI. + - Ceci rend l'étiquette docker 'net.unraid.docker.webui' la source principale lors de l'analyse de l'adresse de l'interface web. Si l'étiquette docker est manquante, la valeur du modèle sera utilisée à la place. +- WebGUI : Mise à jour de la page des crédits +- WebGUI : gestionnaire de VM : Corrige le problème où le journal VM ne peut pas s'ouvrir lorsque le nom VM contient un '#' +- WebGUI : page Accès à la gestion : ajouter des détails pour les certificats auto-signés. +- WebGUI : vérification de la parité : corriger l'erreur de régression. +- WebGUI : suppression de la création de session dans les scripts. +- WebGUI : mise à jour de la regex de clé ssh. + - Ajout du support pour ed25519/sk-ed25519. + - Retirer le support pour ecdsa (non sécurisé). + - Utilisation d'une expression régulière appropriée pour vérifier les types de clés valides. +- WebGUI : diverses mises à jour de style +- WebGUI : accès gestion : le paramètre de port HTTP doit toujours être activé. +- WebGUI : Correction : préservation des paramètres de port vnc. +- WebGUI : corriger l'erreur de régression dans le système de plugin. +- WebGUI : Résolution du problème d'installation des clés d'enregistrement. +- WebGUI : Mettre en évidence la sélection de boîtier lorsque l'image personnalisée est sélectionnée. +- WebGUI : correction (upc) : contrôle de la régression de la version de l'API v1.4.2. +- WebGUI : mises à jour des pages de capacités du disque pour les disques NVME. +- WebGUI : tâche (upc) : v1.6.0. +- WebGUI : Système de plugin et mise à jour des conteneurs docker. +- WebGUI : Informations système - mise à jour de style. +- WebGUI : Plugins : garder les boutons d'en-tête à la même position. +- WebGUI : empêcher le débordement de la taille du conteneur pour les basses résolutions. +- WebGUI : gestionnaire de VM : Ajouter l'ordre de démarrage à l'interface graphique et fonction de branchement à chaud du CD. +- WebGUI : Gestionnaire docker : ajout de la possibilité de spécifier le shell avec l'étiquette du conteneur. +- WebGUI : correction : URL de l'agent de notification Discord. +- WebGUI : suppression de l'icône d'information dans le message de bannière quand il n'y a pas d'information disponible. +- WebGUI : Ajout d'un message de mise hors tension et utilisation de -n pour l'identité si le disque est SCSI. +- WebGUI : correction du test SAS. +- WebGUI : corrections des mises à jour multiples du plugin. +- WebGUI : Améliorations de l'affichage UPS : + - Ajout d'une icône pour chaque catégorie. + - Ajout de traduction dans la section UPS sur le tableau de bord. + - Ajout de la valeur de tension/fréquence de sortie. + - Ajout de la coloration en fonction des paramètres. + - Normalisation des unités. + - Rendre les mises à jour presque en temps réel. + - Ajout du champ de modèle UPS. +- WebGUI : JQuery : version 3.6.1. +- WebGUI : JQueryUI : version 1.13.2. +- WebGUI : amélioration de "l'anéantissement du cache" sur les URLs de fichiers de police. +- WebGUI : correction : la couleur du texte dans la fenêtre contextuelle du docker est parfois incorrecte. +- WebGUI : Correction : afficher les erreurs de lecture pendant la vérification de lecture. +- WebGUI : Gestionnaire de VM : Ajouter la politique de démarrage USB ; ajouter le support USB manquant. +- WebGUI : Docker : correction de l'erreur JavaScript lorsqu'aucun conteneur n'existe. +- WebGUI : ajout de diagnostics tiers au système. + - ajout de diagnostics pour les packages de plugins tiers. + - ajout de diagnostics pour les dispositifs /dev/dri. + - ajout de diagnostics pour les dispositifs /dev/dvb. + - ajout de diagnostics pour les dispositifs nvidia. + +#### Noyau Linux + +- version 5.19.9 (CVE-2022-21123 (CVE-2022-21123 CVE-2022-21125 CVE-2022-21166) +- md/unraid : version 2.9.24. +- CONFIG\_IOMMU\_DEFAULT\_PASSTHROUGH : Mode direct +- CONFIG\_VIRTIO\_IOMMU : Pilote virtio IOMMU +- CONFIG\_X86\_AMD\_PSTATE: Pilote P-State pour processeur AMD +- CONFIG\_FIREWIRE : Pile de pilotes FireWire +- CONFIG\_FIREWIRE\_OHCI : Contrôleurs OHCI-1394 +- CONFIG\_FIREWIRE\_SBP2 : Périphériques de stockage (protocole SBP-2) +- CONFIG\_FIREWIRE\_NET : Réseau IP sur 1394 +- CONFIG\_INPUT\_UINPUT : Support des pilotes au niveau utilisateur +- CONFIG\_INPUT\_JOYDEV : Interface pour joysticks +- CONFIG\_INPUT\_JOYSTICK : Joysticks/Gamepads +- CONFIG\_JOYSTICK\_XPAD : Support de la manette X-Box +- CONFIG\_JOYSTICK\_XPAD\_FF : Support de vibration de la manette X-Box +- CONFIG\_JOYSTICK\_XPAD\_LEDS : Support LED pour le contrôleur Xbox360 'BigX' LED +- CONFIG\_MLX5\_TLS : Support TLS Connect-X de Mellanox Technologies +- CONFIG\_MLX5\_ESWITCH : Support SRIOV E-Switch MLX5 de Mellanox Technologies +- CONFIG\_MLX5\_CLS\_ACT : Support d'action du classificateur MLX5 TC +- CONFIG\_MLX5\_TC\_SAMPLE : Support d'échantillonnage MLX5 TC +- CONFIG\_MLXSW\_SPECTRUM : Support de la famille Spectrum de Mellanox Technologies +- CONFIG\_NET\_SWITCHDEV : Support des appareils de type switch (et similaires) +- CONFIG\_TLS : Support de la sécurité de la couche transport +- CONFIG\_TLS\_DEVICE : Déchargement matériel de la sécurité de la couche transport +- CONFIG\_TLS\_TOE : Contournement de pile TCP de la sécurité de la couche transport +- CONFIG\_VMD : Pilote de périphérique de gestion de volume Intel +- ajout de pilotes supplémentaires pour capteurs : + - CONFIG\_AMD\_SFH\_HID : Concentrateur de fusion de capteurs AMD + - CONFIG\_SENSORS\_AQUACOMPUTER\_D5NEXT : Pompe de refroidissement par eau Aquacomputer D5 Next + - CONFIG\_SENSORS\_MAX6620 : Contrôleur de ventilateur Maxim MAX6620 + - CONFIG\_SENSORS\_NZXT\_SMART2 : Contrôleur de ventilateur et RGB NZXT/Dispositif intelligent v2 + - CONFIG\_SENSORS\_SBRMI : Capteur SB-RMI émulé + - CONFIG\_SENSORS\_SHT4x : Capteurs d'humidité et de température Sensiron. SHT4x et compatibles. + - CONFIG\_SENSORS\_SY7636A : Silergy SY7636A + - CONFIG\_SENSORS\_INA238 : Texas Instruments INA238 + - CONFIG\_SENSORS\_TMP464 : Texas Instruments TMP464 et compatibles + - CONFIG\_SENSORS\_ASUS\_WMI : ASUS WMI X370/X470/B450/X399 + - CONFIG\_SENSORS\_ASUS\_WMI\_EC : ASUS WMI B550/X570 + - CONFIG\_SENSORS\_ASUS\_EC : Capteurs EC ASUS +- patch : ajouter une référence au firmware manquant dans drivers/bluetooth/btrtl.c. + - rtl8723d\_fw\.bin + - rtl8761b\_fw\.bin + - rtl8761bu\_fw\.bin + - rtl8821c\_fw\.bin + - rtl8822cs\_fw\.bin + - rtl8822cu\_fw\.bin +- CONFIG\_BPF\_UNPRIV\_DEFAULT\_OFF : Désactiver BPF non privilégié par défaut +- correctif : astuce pour Team Group MP33 M.2 2280 1TB NVMe (ID en double globalement pour nsid) +- activer toutes les options du noyau IPv6 : + - CONFIG\_INET6\_\* + - CONFIG\_IPV6\_\* +- CONFIG\_RC\_CORE : Support du contrôleur à distance +- CONFIG\_SFC\_SIENA : Support Solarflare SFC9000 +- CONFIG\_SFC\_SIENA\_MCDI\_LOGGING : Support de journalisation MCDI de la famille Solarflare SFC9000 +- CONFIG\_SFC\_SIENA\_MCDI\_MON : Support HWMon de la famille Solarflare SFC9000 +- CONFIG\_SFC\_SIENA\_SRIOV : Support SR-IOV de la famille Solarflare SFC9000 +- CONFIG\_ZRAM : Support de périphérique de bloc RAM compressé +- CONFIG\_ZRAM\_DEF\_COMP\_LZ4 : Compresseur RAM par défaut (lz4) +- activer toutes les options du noyau EDAC + - CONFIG\_EDAC : Rapport d'EDAC (Détection et Correction d'Erreurs) + - CONFIG\_EDAC\_\* + +#### Distro de base + +- aaa\_base : version 15.1 +- aaa\_glibc-solibs : version 2.36 +- aaa\_libraries : version 15.1 +- at : version 3.2.3 +- bind: version 9.18.6 +- btrfs-progs: version 5.19.1 +- ca-certificates: version 20220622 +- cifs-utils: version 7.0 +- coreutils: version 9.1 +- cracklib: version 2.9.8 +- cryptsetup: version 2.5.0 +- curl: version 7.85.0 +- cyrus-sasl: version 2.1.28 +- dbus: version 1.14.0 +- dhcpcd : version 9.4.1 +- dmidecode: version 3.4 +- docker: version 20.10.17 (CVE-2022-29526 CVE-2022-30634 CVE-2022-30629 CVE-2022-30580 CVE-2022-29804 CVE-2022-29162 CVE-2022-31030) +- etc: version 15.1 +- ethtool: version 5.19 +- eudev : version 3.2.11 +- file: version 5.43 +- findutils: version 4.9.0 +- firefox : version 105.0.r20220922151854-x86\_64 (AppImage) +- fuse3 : version 3.12.0 +- gawk: version 5.2.0 +- gdbm: version 1.23 +- git: version 2.37.3 +- glib2: version 2.72.3 +- glibc: version 2.36 +- glibc-zoneinfo: version 2022c +- gnutls: version 3.7.7 +- gptfdisk : version 1.0.9 +- grep: version 3.8 +- gzip: version 1.12 +- hdparm: version 9.65 +- htop: version 3.2.1 +- icu4c: version 71.1 +- inotify-tools: version 3.22.6.0 +- iperf3: version 3.11 +- iproute2: version 5.19.0 +- iptables: version 1.8.8 +- jemalloc: version 5.3.0 +- json-c : version 0.16\_20220414 +- json-glib : version 1.6.6 +- kmod: version 30 +- krb5: version 1.20 +- libaio: version 0.3.113 +- libarchive : version 3.6.1 +- libcap-ng: version 0.8.3 +- libcgroup: version 3.0.0 +- libdrm: version 2.4.113 +- libepoxy: version 1.5.10 +- libffi: version 3.4.2 +- libgcrypt: version 1.10.1 +- libgpg-error: version 1.45 +- libidn: version 1.41 +- libjpeg-turbo: version 2.1.4 +- libmnl: version 1.0.5 +- libnetfilter\_conntrack : version 1.0.9 +- libnfnetlink: version 1.0.2 +- libnftnl: version 1.2.3 +- libnl3: version 3.7.0 +- libpng: version 1.6.38 +- libssh: version 0.10.4 +- libtasn1: version 4.19.0 +- libtirpc: version 1.3.3 +- liburcu: version 0.13.1 +- libusb: version 1.0.26 +- libwebp: version 1.2.4 +- libxml2: version 2.9.14 +- libxslt: version 1.1.36 +- libzip: version 1.9.2 +- logrotate: version 3.20.1 +- lsof: version 4.95.0 +- lzip: version 1.23 +- mc: version 4.8.28 +- mcelog: version 189 +- nano: version 6.4 +- nfs-utils: version 2.6.2 +- nghttp2: version 1.49.0 +- nginx: version 1.22.0 +- ntfs-3g: version 2022.5.17 +- ntp: version 4.2.8p15 +- oniguruma: version 6.9.8 +- openssh: version 9.0p1 +- openssl: version 1.1.1q (CVE-2022-1292 CVE-2022-2097 CVE-2022-2274) +- openssl-solibs: version 1.1.1q (CVE-2022-1292) +- p11-kit: version 0.24.1 +- pciutils: version 3.8.0 +- pcre2: version 10.40 +- perl: version 5.36.0 +- php: version 7.4.30 (CVE-2022-31625 CVE-2022-31626) +- pkgtools: version 15.1 +- rpcbind: version 1.2.6 +- rsync: version 3.2.6 +- samba: version 4.17.0 (CVE-2022-2031 CVE-2022-32744 CVE-2022-32745 CVE-2022-32746 CVE-2022-32742) +- sqlite: version 3.39.3 +- sudo: version 1.9.11p3 +- sysfsutils: version 2.1.1 +- sysstat: version 12.6.0 +- sysvinit-scripts: version 15.1 +- talloc: version 2.3.4 +- tar: version 1.34 +- tevent: version 0.13.0 +- tree: version 2.0.2 +- util-linux: version 2.38.1 +- wayland: version 1.21.0 +- wget: version 1.21.3 +- xfsprogs: version 5.18.0 +- xz: version 5.2.6 +- zlib: version 1.2.12 + +["WireGuard" et le logo "WireGuard" sont des marques déposées de Jason A. Donenfeld.](https://www.wireguard.com/) + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md new file mode 100644 index 0000000000..4f765ce9b2 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md @@ -0,0 +1,93 @@ +## Version 6.11.1 2022-10-06 + +### Améliorations + +Mise à jour de qemu et libvirt aux dernières versions : + +- Ajout du support ppc, riscv32/riscv64 et aarch64. + +Mise à jour de Docker vers la v20.10.18 et amélioration des réseaux : + +- Lorsqu'un DHCP est utilisé, attendez l'attribution de l'IPv4 avant de continuer au démarrage du système, cela évite une condition de course possible au démarrage lorsque l'accès de l'hôte aux réseaux personnalisés est activé. +- Permettre aux réseaux définis par l'utilisateur d'être reconnectés au démarrage du service Docker. Désormais, tous les réseaux définis seront automatiquement reconnectés. + +Améliorations du gestionnaire de VM : + +- Mise en œuvre de l'option d'utilisation de Virtiofs pour mapper les partages de l'hôte Unraid dans une VM. +- Ajout du client html Spice pour les machines virtuelles (expérimental). + +### Corrections de bugs notables + +- Correction d'un problème où l'ouverture de certaines pages, par exemple le tableau de bord, entraîne inutilement des écritures sur le périphérique de démarrage USB Flash. + +- Correction du problème où les conteneurs Docker peuvent accéder à Internet lorsque le tunnel WG n'est pas démarré automatiquement au démarrage du système. **Il est conseillé aux utilisateurs de régénérer les configurations WG.** Cela peut être fait, par exemple, en cliquant dans un champ pour modifier une valeur, puis revenir en arrière pour que le bouton Appliquer s'allume. Ensuite, cliquez sur Appliquer. + +- Correction d'un problème où des fenêtres popup vides sont affichées avec certains navigateurs et appareils. + +- Restauration de l'"authentification NTLMv1" pour les connexions SMB entrantes. + +## Journal des modifications vs. Unraid OS 6.11.0 + +#### Distro de base + +- acpid : version 2.0.34 +- bash : version 5.2.000 +- bind : version 9.18.7 +- ca-certificates: version 20220922 +- dbus : version 1.14.2 +- dnsmasq : version 2.87 +- docker : version 20.10.18 (CVE-2022-27664 CVE-2022-32190 CVE-2022-36109) +- git : version 2.38.0 +- glib2 : version 2.72.4 +- glibc-zoneinfo : version 2022d +- gnutls : version 3.7.8 +- harfbuzz : version 5.2.0 +- intel-microcode : version 20220809 +- libXtst : version 1.2.4 +- libXxf86vm : version 1.1.5 +- libffi : version 3.4.3 +- libvirt : version 8.7.0 +- libvirt-php : version 0.5.6 +- lsof : version 4.96.3 +- nghttp2 : version 1.50.0 +- pango : version 1.50.11 +- qemu : version 7.1.0 (construit en ajoutant le support ppc, riscv32/64, remplacement arm par aarch64) +- sqlite : version 3.39.4 +- xterm : version 373 +- xz : version 5.2.7 + +#### Noyau Linux + +- version 5.19.14 +- CONFIG\_DRM\_MGAG200 : Matrox G200 +- CONFIG\_X86\_SGX : Extensions de Protection Logicielle (SGX) +- CONFIG\_X86\_SGX\_KVM : Virtualisation des Extensions de Protection Logicielle (SGX) +- CONFIG\_CRYPTO\_ZSTD : Algorithme de compression Zstd +- md/unraid : version 2.9.25 +- patch : rendre silencieux les notifications "block all zeros" et "has corrupt header" dans EDID +- patch : ajout de particularités NVMe pour les appareils non conformes signalés par les utilisateurs + +#### Gestion + +- WebGUI : Gestionnaire de VM : Mise à jour des options GUI + - Inclure 9P et Virtiofs + - Supprimer l'option 9P pour Windows. + - Mettre à jour XML si virtiofs et Windows en plus de Linux. + - Mettre à jour les options GUI de partage de VM +- WebGUI : Corrigé : mauvais affichage des commentaires sur la page VM +- WebGUI : Tableau de bord : stocker les données de graphique dans un fichier au lieu d'un cookie +- WebGUI : Demander à l'utilisateur de fournir un diagnostic avant de rétrograder l'OS +- WebGUI : client html Spice en plus de VNC +- WebGUI : amélioration de la gestion des fichiers de configuration de style windows +- WebGUI : WireGuard : ajout du nom d'interface explicite dans le routage +- WebGUI : SWAL : intercepter le bouton "esc" pour arrêter nchan lors de la fermeture de la fenêtre +- WebGUI : nchan : exécution différée de commande + - Cela empêche une fenêtre popup vide dans certains navigateurs et appareils + +["WireGuard" et le logo "WireGuard" sont des marques déposées de Jason A. Donenfeld.](https://www.wireguard.com/) + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md new file mode 100644 index 0000000000..62b995d04f --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md @@ -0,0 +1,110 @@ +## Version 6.11.2 2022-11-04 + +Cette version est axée sur la correction de bogues et des améliorations mineures. Veuillez noter qu'il y a des atténuations importantes de sécurité dans Samba, il est conseillé à tous les utilisateurs de mettre à jour. + +### Gestionnaire de VM + +Si vous démarrez une VM à partir d'un appareil USB physique passé, il existe un nouveau paramètre appelé **Activer le démarrage USB** qui doit être réglé sur **Oui**. Cela est dû au changement de fonctionnalité dans le dernier composant OVMF. + +Modifications : + +- Ajoutez l'ordre de démarrage pour USB et l'option de démarrage USB. Avec le champ 'ordre de démarrage', la VM peut démarrer à partir d'un contrôleur/périphérique NVMe passé. +- Ajouter le mappage de partage Unraid virtiofs/9p. +- Correction du bug de CD Hotplug. +- Corriger le Hotplug dans les modèles. +- Corriger le passage de passthru à CPU personnalisé. +- Tester l'agent invité pour supprimer le message d'erreur dans le journal libvirt et afficher le texte pour invité non en cours d'exécution ou agent invité non installé. +- Correction de l'incapacité à modifier les paramètres HyperV. +- Ajouter l'option 'démarrer avec la console'. +- OVMF pour QEMU : version edk2-stable202208 + +### WireGuard + +Modifications : + +- Problème corrigé lors de la configuration des tunnels si vous utilisez les paramètres par défaut de network.cfg. +- Correction de la faute de frappe lors de la configuration des routes. + +### Gestionnaire de plugins + +Modifications : + +- Si les fichiers de plugin ne peuvent pas être lus à partir de l'URL CDN, revenir à l'URL non-CDN. +- Appliquer que les fichiers de plugin doivent se terminer par '.plg'. +- Corriger l'échec du hook post lorsque le téléchargement du plugin échoue. +- Ajuster les paramètres de wget pour éviter qu'il ne s'accroche indéfiniment. + +### Planificateur + +Pour les vérifications de parité planifiées, changez le mode par défaut en non-correctif. En cas de problèmes de disque lors d'une vérification de parité, il serait plus sûr d'avoir par défaut un mode non correctif. Si des erreurs de synchronisation sont détectées, l'utilisateur peut analyser le journal et agir en conséquence. + +### Divers WebGUI + +Modifications : + +- DashStats : les statistiques du réseau entrant sont hors de leur place lorsque la valeur numérique est xxx.x. +- Docker : Ajouter/préciser l'aide aux paramètres de réseau personnalisé de Docker. +- Docker : Corriger l'aberration d'affichage sur les images orphelines +- Attributs SMART : clarifier le message : "Impossible de lire les attributs" à "Attributs non disponibles" +- ShareEdit/ShareList : montrer le pool non défini lorsque le pool de partage n'est pas un pool défini + +### Noyau Linux + +- version 5.19.17 +- correctif : bogues supplémentaires NVMe BOGUS\_NID pour les appareils non conformes signalés par les utilisateurs. +- prise en charge sonore : + - CONFIG\_SON : prise en charge des cartes son + - CONFIG\_SND : Architecture sonore avancée de Linux + - CONFIG\_SND\_OSSEMUL : Activer l'émulation OSS + - CONFIG\_SND\_PCM\_OSS : API OSS PCM (audio numérique) + - CONFIG\_SND\_HRTIMER : Support du backend HR-timer + - CONFIG\_SND\_SUPPORT\_OLD\_API : Prise en charge de l'ancienne API ALSA + - CONFIG\_SND\_PROC\_FS : Prise en charge de Sound Proc FS +- CONFIG\_IPV6 : Le protocole IPv6 (passé de module à intégré) + +### Base Distro + +Mises à jour des paquets incluant des atténuations CVE : + +- bash : version 5.2.002 +- bind : version 9.18.8 (CVE-2022-38178 CVE-2022-38178 CVE-2022-3080 CVE-2022-2795) +- btrfs-progs : version 6.0 +- curl : version 7.86.0 +- dbus : version 1.14.4 +- freeglut : version 3.4.0 +- git : version 2.38.1 (CVE-2022-39253 CVE-2022-39260) +- glibc-zoneinfo : version 2022e +- harfbuzz : version 5.3.1 +- icu4c : version 72.1 +- iproute2 : version 6.0.0 +- firmware du noyau : version 20221017\_48407ff +- less : version 608 +- libXmu : version 1.1.4 +- libXrender : version 0.9.11 +- libedit : version 20221009\_3.1 +- libffi : version 3.4.4 +- libgpg-error : version 1.46 +- libpciaccess : version 0.17 +- libunistring : version 1.1 +- libxkbfile : version 1.1.1 +- libxshmfence : version 1.3.1 +- lsof : version 4.96.4 +- nginx : version 1.22.1 +- openssh : version 9.1p1 +- php : version 7.4.32 +- pixman : version 0.42.0 +- rsync : version 3.2.7 +- samba : version 4.17.2 (CVE-2021-20251 CVE-2022-3437 CVE-2022-3592) +- sudo : version 1.9.12 +- tree : version 2.0.4 +- xkeyboard-config : version 2.37 +- xterm : version 375 +- zlib : version 1.2.13 (CVE-2022-37434) + +["WireGuard" et le logo "WireGuard" sont des marques déposées de Jason A. Donenfeld.](https://www.wireguard.com/) + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md new file mode 100644 index 0000000000..bb2283c6ca --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md @@ -0,0 +1,36 @@ +## Version 6.11.3 2022-11-08 + +Cette version se concentre sur la correction des bugs et les améliorations mineures. En particulier, nous devons revenir sur une bibliothèque de base en raison d'un bug qui empêche le formatage des dispositifs de plus de 2 To. + +### Gestion + +- Régressé 'libpopt.so.0.0.1' pour contourner le bug de 'sgdisk' utilisé pour formater les dispositifs de plus de 2 To. +- Correction du problème où le paramètre de description pour l'utilisateur 'root' n'était pas conservé lors des redémarrages. +- Correction du problème provoquant parfois l'ouverture d'une fenêtre d'information vide. + +### Gestionnaire de VM + +- Définir les valeurs correctes lors de la modification pour le démarrage USB et la sélection correcte du partage. +- Ajouter l'ordre de démarrage Nic. + +### Base Distro + +- gptfdisk : version 1.0.8 (retour à partir de la version 1.0.9) +- libXext : version 1.3.5 +- libXinerama : version 1.1.5 +- libdrm : version 2.4.114 +- libedit : version 20221030\_3.1 +- mcelog : version 190 +- ntfs-3g : version 2022.10.3 +- openssl : version 1.1.1s +- openssl-solibs : version 1.1.1s +- pixman : version 0.42.2 +- sessreg : version 1.1.3 +- sudo : version 1.9.12p1 +- xsetroot : version 1.1.3 + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md new file mode 100644 index 0000000000..080154f548 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md @@ -0,0 +1,62 @@ +## Version 6.11.4 2022-11-18 + +Cette version se concentre sur la correction de bugs et des améliorations mineures. + +### Diagnostics + +- Correction de l'information de partage dans les diagnostics. + +### Docker + +- docker : version 20.10.21 (CVE-2022-39253 CVE-2022-2879 CVE-2022-2880 CVE-2022-41715) +- Correction du message "veuillez patienter" après la suppression de l'image orpheline. +- Définir IPVLAN comme valeur par défaut pour les nouvelles installations. + +### Samba + +- samba : version 4.17.3 (CVE-2022-42898) +- Définir le "nombre maximal de fichiers ouverts" par défaut sur la valeur de 'ulimit -n' qui est actuellement réglée sur 40960. + +### Gestionnaire de VM + +- Permettre aux périphériques PCI réseau d'avoir un ordre de démarrage. +- Changer pour utiliser libvirt\_domain\_interface\_addresses, qui est disponible depuis longtemps + mais n'était pas documentée dans le manuel de l'API. Utiliser cette fonction arrête l'enregistrement + des avertissements de contamination dans le journal, par exemple : "Domain id=4 is tainted: custom-ga-command". +- Correction pour la renommée de VM. + +### Divers + +- Correction du problème qui empêchait l'autodémarrage de l'array avec une clé d’essai. +- Problème d'encodage corrigé lorsque les mots de passe contiennent des caractères multi-octets UTF-8. +- Historique de parité : ajouter le jour de la semaine à la date. +- Actions : Correction : ne pas permettre la création de noms de parts cachées. +- Page principale : réinitialiser les statistiques de transfert de disque lors de l'ouverture d'une nouvelle session de navigateur. +- Page d'accès à la gestion : amélioration des messages pour SSL. +- Firefox : version 107.0.r20221110173214 (AppImage) +- Lorsque toutes les sessions de navigateur sont fermées, arrêter les processus d'arrière-plan inutiles. + +### Base Distro + +- bash : version 5.2.009 +- btrfs-progs : version 6.0.1 +- gdk-pixbuf2 : version 2.42.10 +- glibc-zoneinfo : version 2022f +- intel-microcode : version 20221108 +- libX11 : version 1.8.2 +- libnftnl : version 1.2.4 +- nghttp2 : version 1.51.0 +- php : version 7.4.33 (CVE-2022-31630 CVE-2022-37454) +- sed : version 4.9 +- sysstat : version 12.7.1 +- xkbevd : version 1.1.5 +- xkill : version 1.0.6 +- xlsatoms : version 1.1.4 +- xlsclients : version 1.1.5 +- xz : version 5.2.8 + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md new file mode 100644 index 0000000000..13806a255d --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md @@ -0,0 +1,13 @@ +## Version 6.11.5 2022-11-20 + +Cette version rétablit une modification qui a modifié le mauvais fichier. Cela a eu pour conséquence de ne pas pouvoir sélectionner le type de réseau Docker personnalisé 'macvlan'. Seules les nouvelles installations auront désormais 'ipvlan' sélectionné par défaut. + +### Docker + +- correctif : Définir IPVLAN par défaut uniquement pour les nouvelles installations. + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md new file mode 100644 index 0000000000..be9ceb38da --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md @@ -0,0 +1,567 @@ +# Version 6.12.0 2023-06-14 + +## Notes de mise à niveau + +Au démarrage, si tous les périphériques PCI spécifiés dans `config/vfio-pci.cfg` ne se lient pas correctement, le démarrage automatique du VM est empêché. Vous pouvez toujours démarrer des machines virtuelles individuelles. Ceci est prévu pour éviter un crash de l'hôte Unraid si les ID PCI matériels ont changé à cause d'une mise à jour du noyau ou d'un changement matériel physique. Pour restaurer le démarrage automatique du VM, examinez `/var/log/vfio-pci-errors` et retirez les IDs PCI fautifs du fichier `config/vfio-pci.cfg` puis redémarrez. + +Si vous revenez de la version 6.12 à 6.11.5 ou antérieure, vous devez forcer la mise à jour de tous vos containers Docker et les démarrer manuellement après la rétrogradation. Cela est nécessaire en raison du changement sous-jacent à cgroup v2 à partir de la version 6.12.0-rc1. + +Linux [Multi-Gen LRU](https://lwn.net/Articles/856931/) est une fonctionnalité relativement nouvelle maintenant incluse mais non activée par défaut. Vous pouvez l'activer en ajoutant cette ligne à votre fichier 'config/go' : + +`echo y > /sys/kernel/mm/lru_gen/enabled` + +Si vous revenez de la version 6.12 à la version 6.11.5 ou antérieure, il peut être nécessaire de supprimer cette ligne. + +Si vous avez créé des zpools en utilisant la version 6.12.0-beta5, veuillez effacer ces pools et recréer. + +### Plugins obsolètes/cassés + +Il existe quelques plugins connus pour être incompatibles avec Unraid 6.12, et lors du démarrage, ils ne seront pas installés. Vous recevrez une notification pour chaque plugin affecté et pourrez passer en revue la liste en allant dans **Plugins/Plugin File Install Errors**. + +- version disklocation-master 2022.06.18 (`Localisation de Disque` par olehj, casse le tableau de bord) + - Mettez à jour ce plugin avant la mise à niveau du système +- version plexstreams 2022.08.31 (`Plex Streams` par dorgan, casse le tableau de bord) + - Mettez à jour ce plugin avant la mise à niveau du système +- version corsairpsu 2021.10.05 (`Statistiques de l'alimentation Corsair` par Fma965, casse le tableau de bord) + - Mettez à jour ce plugin avant la mise à niveau du système +- version gpustat 2022.11.30a (`Statistiques GPU` par b3rs3rk, casse le tableau de bord) + - Passez à `Statistiques GPU` par SimonF +- version ipmi 2021.01.08 (`Outils IPMI` par dmacias72, casse le tableau de bord) + - Passez à `Outils IPMI` par SimonF +- version nut 2022.03.20 (`NUT - Outils UPS Réseau` par dmacias72, casse le tableau de bord) + - Passez à `NUT - Outils UPS Réseau` par SimonF +- version NerdPack 2021.08.11 (`Outils Nerd` par dmacias72) + - Passez à `NerdTools` par UnRAIDES +- version upnp-monitor 2020.01.04c (`Moniteur UPnP` par ljm42, non compatible avec PHP 8) +- version ZFS-companion 2021.08.24 (`ZFS-Companion` par campusantu, casse le tableau de bord) + +Certains des plugins affectés ont été repris par différents développeurs, nous recommandons d'aller à la page **Applications** et de rechercher des remplacements. Veuillez poser des questions spécifiques aux plugins dans le fil de support de ce plugin. + +### Problèmes connus + +#### Pannes liées au pilote i915 + +Remarque : ce problème n'existe plus depuis Unraid [6.12.6](6.12.6.md#bug-fixes-and-improvements). + +Nous sommes conscients que certains systèmes Intel Rocket Lake de 11e génération rencontrent des plantages liés au iGPU i915. Si votre système Rocket Lake se plante sous Unraid 6.12.0-6.12.5, ouvrez un terminal web et tapez ceci, puis redémarrez : + +`echo "options i915 enable_dc=0" >> /boot/config/modprobe.d/i915.conf` + +Activer cette option peut entraîner une consommation d'énergie plus élevée mais peut résoudre ce problème pour ces GPU. + +#### Traces d'appels liés à macvlan + +Si vous obtenez des traces d'appel liées à macvlan, en premier lieu nous vous recommandons de naviguer vers ***Paramètres > Docker***, de passer en vue avancée, et de changer le **type de réseau Docker personnalisé** de **macvlan** à **ipvlan**. C'est la configuration par défaut qu'Unraid propose depuis la version 6.11.5 et elle devrait fonctionner pour la plupart des systèmes. + +Cependant, certains utilisateurs ont signalé des problèmes avec le transfert de port de certains routeurs (Fritzbox) et une fonctionnalité réduite avec des outils de gestion de réseau avancés (Ubiquity) en mode ipvlan. + +Dans 6.12.0, la méthode de segmentation [docker à deux interfaces réseau](https://forums.unraid.net/topic/137048-guide-comment-résoudre-les-problèmes-macvlan-et-ipvlan-avec-les-conteneurs-sur-un-réseau-personnalisé/) est une solution viable, mais notre recommandation est de passer à Unraid [6.12.4](6.12.4.md) qui offre une meilleure solution. + +#### Plex + +Si les conteneurs Docker rencontrent des problèmes de démarrage après un certain temps, et que vous utilisez Plex, allez dans les paramètres de votre conteneur Plex Docker, +passez en vue avancée et ajoutez ceci aux paramètres supplémentaires : `--no-healthcheck` + +### Rétrogradation + +Voir les commentaires sous [Notes de mise à niveau](#upgrade-notes) + +## Pools ZFS + +Nouveau dans cette version, la possibilité de créer un système de fichiers ZFS dans un pool défini par l'utilisateur. Vous pouvez également formater tout périphérique de données dans l'array Unraid avec un système de fichiers ZFS à un seul périphérique. Pour avoir une bonne vue d'ensemble de ZFS, consultez [cet article](https://arstechnica.com/information-technology/2020/05/zfs-101-understanding-zfs-storage-and-performance/). + +Nous répartissons la mise en œuvre complète de ZFS sur deux versions du système d'exploitation Unraid. Le support initial dans cette version inclut : + +- Prise en charge des profils racines raid0, miroir, raidz1, raidz2 et raidz3. Jusqu'à 4 miroirs en mode miroir vdev. Groupes vdev multiples. +- Support pour la suppression d'un appareil unique : si l'appareil est toujours présent dans le serveur, 'wipefs' est utilisé pour effacer la table de partitions. +- Support pour le remplacement d'un appareil manquant unique par un nouvel appareil de même taille ou plus grand. +- Prise en charge de la taille programmée des pools ZFS. +- Support du renommage des pools. +- Les noms de pools doivent commencer par une lettre minuscule et ne contenir que des lettres minuscules, des chiffres, le trait de soulignement et le tiret. Les noms de pools ne doivent pas se terminer par un chiffre. +- Les vdev non-root ne peuvent pas être configurés dans cette version, cependant, ils peuvent être importés. Remarque: les pools hybrides importés peuvent ne pas être étendus dans cette version. +- Les pools créés sur d'autres systèmes peuvent ou non être importés selon la façon dont le pool a été créé. Une mise à jour future permettra d'importer des pools de n'importe quel système. + +Un pool ZFS a trois variables : + +- profil - l'organisation des données de base: raid0, miroir (jusqu'à 4 voies), raidz1, raidz2, raidz3 +- largeur - le nombre d'appareils par vdev racine +- groupes - le nombre de vdev racines dans la piscine + +Au moment de la création du pool ZFS, le WebGUI présentera toutes les options de topologie en fonction du nombre d'appareils assignés au pool. + +Traitement spécial pour les miroirs à vdev unique : + +- Un pool ZFS à un seul appareil peut être converti en miroir à plusieurs appareils en ajoutant jusqu'à 3 appareils supplémentaires en une seule opération. +- Un miroir à 2 appareils peut être augmenté à 3 appareils en ajoutant un seul appareil ; de même, un miroir à 3 appareils peut être augmenté en miroir à 4 appareils en ajoutant un seul appareil. + +Pour ajouter un vdev racine supplémentaire, vous devez assigner un nombre 'width' de nouveaux périphériques au pool en même temps. Le nouveau vdev sera créé avec le même `profil` que les vdev actuels. Une flexibilité supplémentaire dans l'ajout/l'élargissement des vdevs sera fournie dans une mise à jour future. + +Les pools créés avec le plugin **steini84** peuvent être importés comme suit : Tout d'abord, créez un nouveau pool avec un nombre de slots correspondant au nombre de périphériques dans le pool à importer. Ensuite, assignez tous les périphériques au nouveau pool. Au démarrage de l'array, le pool devrait être reconnu, bien que certaines topologies zpool puissent ne pas être reconnues (veuillez le signaler). Veuillez noter que seuls les pools utilisant la partition n°1 peuvent être importés dans cette version, par exemple cet output `lsblk` : + +```bash +# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS +sdb 8:16 0 7.3T 0 disk +├─sdb1 8:17 0 2G 0 part +└─sdb2 8:18 0 7.3T 0 part +``` + +indique que la seconde partition (`sdb2`) du disque est utilisée pour les données, et **ne peut pas** être importée. + +Les topologies mixtes ne sont pas prises en charge. Par exemple, un pool avec à la fois un vdev racine en miroir et un vdev racine raidz n'est pas reconnu. + +L'autotrim peut être configuré en **activé** ou **désactivé** (sauf pour les volumes ZFS à un appareil dans la matrice unRAID). + +La compression peut être configurée sur **on** ou **off**, où **on** sélectionne **lz4**. Une mise à jour future permettra de spécifier d'autres algorithmes/niveaux. + +Lors de la création d'un nouveau pool ZFS, vous pouvez choisir **zfs - crypté**, qui, comme les autres volumes cryptés, applique le cryptage au niveau du périphérique via LUKS. Le cryptage natif ZFS n'est pas supporté pour le moment. + +Lors du démarrage du système, le fichier /etc/modprobe.d/zfs.conf est généré automatiquement pour limiter le ZFS ARC à 1/8 de la mémoire installée. Cela peut être contourné si nécessaire en créant un fichier 'config/modprobe.d/zfs.conf' personnalisé. Une mise à jour future inclura la capacité de configurer l'ARC via WebGUI, y compris l'auto-ajustement selon la pression mémoire, par exemple le démarrage/arrêt des machines virtuelles. + +Les partages d'utilisateur de niveau supérieur dans un pool ZFS sont créés en tant qu'ensembles de données au lieu de répertoires ordinaires. + +## Changement conceptuel de stockage de partage + +Nouveau dans cette version, un changement conceptuel dans la manière dont le stockage est attribué aux partages. L'ancien concept du stockage principal étant l'array Unraid avec un "Cache" optionnel est déroutant pour de nombreux nouveaux utilisateurs, d'autant plus que *cache* a une signification spécifique dans ZFS. + +Également détaillé ci-dessous, nous avons introduit le concept de *partage exclusif*. Il s'agit simplement d'un partage où toutes les données se trouvent dans un pool nommé unique. Dans ce cas, le système de fichiers de partage utilisateur basé sur FUSE retourne un **lien symbolique** au répertoire de partage réel dans le pool. Toutes les opérations au sein du partage, y compris le transfert de données, contournent donc FUSE, ce qui entraîne des performances accrues. Cette fonctionnalité vise principalement à maximiser l'I/O pour les grands pools ZFS rapides accessibles via un réseau rapide. + +C'est un changement d'interface uniquement; les partages existants seront consultés avec cette nouvelle structure automatiquement lors de la mise à niveau, +et reviendront automatiquement au style précédent si vous revenez à une version antérieure. + +La configuration des options de stockage pour un partage est spécifiée à l'aide de deux entrées : + +- Stockage principal +- Stockage secondaire + +Le stockage principal est l'endroit où **nouveaux** fichiers/dossiers sont créés. Si le stockage principal est en dessous du paramètre d'espace libre minimum, alors les nouveaux fichiers et dossiers seront créés dans le stockage secondaire, si configuré. + +Chaque entrée présente une liste déroulante qui répertorie "array", "none", et chaque groupe nommé comme une sélection selon certaines règles de configuration : + +Pour la liste déroulante de stockage principal : + +- l'option "none" est omise, c'est-à-dire, le stockage principal doit être sélectionné. +- n'importe quelle piscine nommée peut être sélectionnée +- "Array" peut être sélectionné (signifiant la matrice unRAID) + +Pour la liste déroulante de stockage secondaire : + +- l'option "none" est incluse, c'est-à-dire, le stockage secondaire est optionnel +- si le stockage principal est un nom de pool, alors les seules options sont "aucun" et "Array". À l'avenir, d'autres pools seront également listés ici. +- si le stockage principal est "Array", alors seul "none" apparaît comme option + +Lorsque "Array" est sélectionné pour le stockage principal ou secondaire, un ensemble de paramètres supplémentaires glisse : + +- Méthode d'allocation +- Disque(s) inclus +- Disque(s) exclus +- Niveau de découpe + +Lorsqu'un groupe nommé *btrfs* est sélectionné pour le stockage principal ou secondaire, un paramètre supplémentaire glisse : + +- Activer la copie à l'écriture + +Lorsqu'un pool nommé *ZFS* est sélectionné pour le stockage primaire ou secondaire, il n'y a pas de paramètres supplémentaires pour le moment mais il pourrait y en avoir à l'avenir. Par exemple, comme un partage est créé en tant que dataset ZFS, il pourrait avoir un paramètre de compression différent de celui du pool parent si nous devons mettre cela en œuvre. + +### Action du déplaceur + +Lorsque le stockage secondaire est configuré pour un partage, le paramètre "Action du déplaceur" est activé, permettant à l'utilisateur +de sélectionner la direction de transfert du déplaceur : + +- Primaire à Secondaire (par défaut) +- Secondaire vers principal + +### Partages exclusifs + +Nous avons ajouté un nouveau paramètre : "Paramètres / Paramètres globaux de partage / Permettre des partages exclusifs" \[Oui/Non] par défaut : Non. Si défini sur Oui et si le stockage principal pour un partage est un pool et le stockage secondaire est défini sur "aucun", alors un lien symbolique est créé dans /mnt/user/*share* pointant directement vers le répertoire de partage du pool. (Une vérification supplémentaire est effectuée pour garantir que le partage n'existe pas non plus sur d'autres volumes.) + +Il y a un nouveau drapeau d'état, "Accès exclusif" qui est réglé sur "Oui" lorsqu'un lien symbolique est en place ; et, "Non" autrement. Les partages exclusifs sont également indiqués sur la page des Partages. + +L'avantage de configurer des symlinks est que les E/S contournent le système de fichiers de partage d'utilisateur basé sur FUSE (shfs) ce qui peut augmenter significativement +la performance. + +Il y a quelques restrictions : + +- Le paramètre de l'espace libre minimum du partage et du groupe est ignoré lors de la création de nouveaux fichiers sur un partage exclusif. +- Si un partage est exporté NFS, il ne peut pas être exclusif, c'est-à-dire que le lien symbolique n'est pas créé. Ceci est dû au fait que les liens symboliques sont résolus dans le client NFS, pas le serveur. Nous espérons lever cette restriction dans une mise à jour future. + +### Bouton de nettoyage + +Apparaissant sur la page des Partages, un bouton appelé CLEAN UP, lorsqu'il est activé, indique qu'il y a des fichiers config/share/*partage*.cfg pour des partages qui n'existent pas. Cliquer sur ce bouton supprimera ces fichiers. + +## Autres améliorations + +### btrfs + +L'autotrim peut être configuré en **activé** ou **désactivé** lorsqu'il est utilisé dans un groupe. + +La compression peut être configurée sur **on** ou **off**. **on** sélectionne **zstd**. Une future mise à jour permettra de spécifier d'autres algorithmes/niveaux. + +### xfs + +L'autotrim peut être configuré en **activé** ou **désactivé** lorsqu'il est utilisé comme pool à un seul slot. + +### Docker + +Il est possible de configurer le **dossier racine de données Docker** pour être placé dans un répertoire sur un pool de stockage ZFS. Dans ce cas, Docker utilisera le pilote de stockage 'zfs'. Ce pilote crée un dataset distinct pour chaque couche d'image. Pour cette raison, voici notre recommandation pour configurer Docker en utilisant **répertoire** : + +Tout d'abord, créez un partage utilisateur **docker** configuré comme suit : + +- Nom du partage : **docker** +- Stockage principal : ***nom de votre pool ZFS*** +- Stockage secondaire : **aucun** + +Ensuite, sur la page de paramètres de **Docker** : + +- Activer docker : **Oui** +- Docker data-root : **répertoire** +- Répertoire Docker : **/mnt/user/docker** + +Si vous devez un jour supprimer l'état persistant de docker, alors accédez à la page des paramètres Docker et réglez **Activer docker** sur **Non** et cliquez sur **Appliquer**. Une fois que docker est arrêté, cliquez sur la case **Supprimer le répertoire** puis sur **Supprimer**. Cela entraînera la suppression non seulement des divers fichiers et répertoires, mais aussi de toutes les couches stockées en tant que datasets. + +Avant de réactiver Docker, assurez-vous de recréer le partage **docker** comme décrit ci-dessus. + +#### Autres modifications Docker + +- CreateDocker : l'étiquette **Docker Hub URL** a été changée en **Registry URL** en raison de la popularité croissante de GHCR et d'autres nouveaux registres de conteneurs. +- Respecter le paramètre d'arrêt prolongé défini par l'utilisateur. +- Accepter les images au format OCI. +- Ajouter une option pour désactiver readmore-js sur le tableau des conteneurs. +- Correction : la console des conteneurs Docker n'utilisera pas bash si sélectionnée. +- Corriger le problème de détection de l'arrêt correct de docker. +- rc.docker : donner 30 sec au lieu de 15 pour démarrer dockerd. + +### Gestionnaire de VM + +Si vous activez le copier/coller pour les consoles virtuelles, vous devez installer un logiciel supplémentaire sur le client en plus de l'agent QEMU si celui-ci a été installé. [Voici l'emplacement](https://www.spice-space.org/download.html) pour spice-vdagent pour Windows et Linux. Notez que la fonction de copier/coller ne fonctionnera pas avec le visualiseur Web spice, vous devez utiliser virt-viewer. + +#### Autres modifications de VM + +- Ajouter une option série au vdisque. +- Correction du bug Spice pour les utilisateurs avec des ports GUI non standard définis. +- OVMF pour QEMU : version stable202302 +- Correction pour le texte du bus. +- Activer l'option copier/coller pour les consoles virtuelles. +- Mettre à jour le traitement de sauvegarde de la mémoire pour Virtiofs. +- Corriger le blocage lorsque aucune VM n'est présente. +- Ajouter le support pour le modèle réseau rtl8139. +- corriger omission de traduction. +- ajout d'un verrouillage/déverrouillage pour les éléments triables. +- Correction pour la souris Spice si le Copier coller est activé. +- Laisser la page se charger même lorsque les périphériques PCI apparaissent comme manquants ou mal assignés. +- Rendre les options du visualiseur distant et de la console Web sélectionnables. +- Option de téléchargement du fichier .vv et démarrage du visualiseur distant si le navigateur est configuré pour ouvrir le fichier .vv à son téléchargement. +- Ajouter un support de console de visionneuse distante. +- Retirer-lock-posix='on'-flock='on'/- +- Corriger le problème de démarrage des VM marquées comme Autostart après un démarrage manuel de l'array. +- Correction du problème de mémoire maximale > 1 To. +- Corrigez les problèmes de chargement de la page VM si les utilisateurs ont supprimé le brochement vcpu. +- ovmf-stable : version 202305 (build 3). +- sujet de notification corrigé. + +### Tableau de Bord + +Le tableau de bord WebGUI a été redessiné et il est désormais possible de déplacer les éléments (tuiles) de haut en bas et entre les colonnes. Cela permet à l'utilisateur d'organiser les tuiles de la manière qu'il souhaite. Il y a une petite icône **verrou** sur la barre de menu qui doit être cliquée pour activer cette fonction : + +- Vert est l'état normal (page verrouillée) +- Rouge est l'état d'attention (page déverrouillée) + +Remarque : l'icône **verrou** apparaît également sur les pages Docker et VM et doit être cliquée pour réorganiser l'ordre de démarrage. + +### Améliorations du réseau + +Nous avons ajouté une nouvelle section : Paramètres/Paramètres réseau/Interface Extra + +Cette nouvelle section permet à l'utilisateur de définir quelles interfaces sont utilisées par les services Unraid. Par défaut, toutes les interfaces régulières avec une adresse IP sont incluses dans la liste des interfaces d'écoute. + +Les tunnels de la fonction WireGuard intégrée d'Unraid sont automatiquement ajoutés ou retirés de la liste lorsque les tunnels Wireguard sont activés ou désactivés. L'utilisateur peut exclure ces tunnels de la liste des interfaces d'écoute. + +Pour utiliser l'interface Tailscale ou Zerotier, il est nécessaire d'ajouter le nom de l'interface ou l'adresse IP de la communication à la liste des interfaces d'écoute incluses. **Important :** Il est impératif que le container Tailscale ou Zerotier soit en cours d'exécution avant que l'interface ne soit ajoutée à la liste. Pour plus d'informations, consultez [ce post du forum communautaire](https://forums.unraid.net/bug-reports/prereleases/unraid-os-version-6120-rc7-available-r2427/?tab=comments#comment-24235). + +#### Autres modifications du réseau + +- Support des interfaces personnalisées (par exemple, tunnel VPN Tailscale ou tunnel L2 zerotier) +- create\_network\_ini - redémarrer smb lorsque les modifications du réseau sont effectuées +- rc.inet1 - ajouter le traitement des iptables pour ponts d'interfaces afin de les faire fonctionner comme les interfaces macvlan +- rc.avahidaemon - écouter uniquement sur les interfaces régulières qui ont une adresse IP, cela inclut l'interface principale + définir le support ipv4 / ipv6 +- rc.docker - supprimer l'adresse ipv6 lien-local pour docker0 et les interfaces shim lorsqu'elles sont configurées comme ipv4 uniquement +- rc.samba - laisser smb, service nmb écouter uniquement sur les interfaces régulières qui ont une adresse IP, cela inclut l'interface principale + définir le support ipv4 / ipv6 (également pour wsdd2) +- rc.ssh - écouter uniquement sur les interfaces régulières qui ont une adresse IP, cela inclut l'interface principale + définir le support ipv4 / ipv6 +- Corriger le problème où /etc/resolve.conf peut être supprimé lors du changement de serveur DNS entre auto/statique. +- Corriger le bug dans la gestion du champ de description. +- corriger nginx reconnaissant l'adresse IP des serveurs DHCP lents + +### Autres améliorations/corrections de bugs + +- Augmentation du nombre maximal de périphériques par pool de 30 à 60. Dans une prochaine version, nous éliminerons complètement le maximum supérieur. +- webTerminal : Pour une meilleure lisibilité, la couleur de fond a été changée dans les listings de répertoires où 'w+o' est défini. Le rendu a également été changé de webgl à canvas pour atténuer le problème avec les dernières versions de Chrome. +- Correction de la sauvegarde/restauration du fichier de dérive NTP depuis le répertoire 'config' USB flash persistant. +- Fichier /root/.config/remmina extrané supprimé +- Édition de partage : avertir lorsque un nom ZFS invalide est utilisé +- Édition de partage : permettre les noms d'une lettre +- Ajouter un [Pushbits Agent](https://github.com/pushbits/server) pour l'intégration Matrix/Synapse. +- cgroup2 est maintenant par défaut +- les images de boucle ne sont plus montées en utilisant directio +- le script newperms est restreint pour fonctionner uniquement sur /mnt/. +- le paquetage upgradepkg a été patché pour empêcher le remplacement d'un paquetage existant par une version plus ancienne. +- les informations de bus/périphérique PCI actuelles sont enregistrées dans le fichier '/boot/previous/hardware' lors de la mise à niveau de l'OS Unraid. +- NFS : activer le transport UPD +- emhttp : corriger les chaînes syslog de la piscine de cache (null) +- emhttp : corriger l'affichage de la taille incorrecte de l'appareil de remplacement dans le pool de cache +- mover : corriger la mauvaise gestion des liens symboliques +- mover : corriger le format des entrées de journal de syslog du déménageur différent des versions précédentes +- plugin : afficher retval de la commande Run dans le message d'erreur +- shfs : ignorer les répertoires cachés de niveau supérieur (noms commençant par '.') +- terminal : OpenTerminal : modifier le signal de terminaison (arrêt forcé) +- mise à niveau de l'OS Unraid : vérifier une mise à jour antérieure sans redémarrage +- WebGUI : support PHP8, augmenter la mémoire maximale PHP de 128M à 256M +- WebGUI : ManagementAccess : désactiver les boutons Provisionner/Renouveler/Mettre à jour lorsqu'il n'y a pas d'IP sur eth0 +- WebGUI : ManagementAccess : Supporter les adresses IP locales de wireguard en combinaison avec le certificat SSL myservers.unraid.net +- WebGUI : Déplacer l'icône "afficher" sur les pages principales et de partages à gauche +- WebGUI : garder les bannières rejetées cachées pendant un mois +- WebGUI : Tableau de bord : corriger l'erreur de régression dans "select case" +- WebGUI : Tableau de bord : rendre les éléments déplaçables entre les colonnes +- WebGUI : Tableau de bord : API pour ajouter des tuiles personnalisées +- WebGUI : Tableau de bord : réorganiser les informations sur le processeur +- WebGUI : Tableau de bord : réorganiser les infos APS +- WebGUI : Tableau de bord : réorganiser informations sur la mémoire +- WebGUI : Tableau de bord : réorganiser l'en-tête VPN +- WebGUI : Tableau de bord : réorganisations d'en-têtes +- WebGUI : ajouter jqueryUI touch punch pour appareils mobiles +- WebGUI : changer ID en CLASS pour éléments apparaissant plus d'une fois +- WebGUI : faire défiler l'en-tête dans les thèmes blanc et noir + - Lorsque plus d'éléments sont présents que d'espace d'écran, l'utilisateur peut maintenant les faire défiler (auparavant ces éléments étaient invisibles) +- WebGUI : Tableau de bord et Docker : introduire un bouton de verrouillage pour les éléments triables + - Par défaut, les éléments triables sont verrouillés, ce qui permet aux appareils mobiles de faire défiler la page. Sur demande, les éléments peuvent être rendus triables. +- WebGUI : Utilisateurs : ajouter une icône à la barre de titre +- WebGUI : Outils : nouvelle fonction -> Paramètres PHP + - Voir les informations PHP + - Configurer les rapports d'erreurs + - Ouvrir le LOG pour voir les erreurs en temps réel +- WebGUI : Infos système : corriger la lecture des ports inactifs +- WebGUI : Plugin : Inclure la commande réelle exécutée +- WebGUI : Infos système : amélioration du cache +- WebGUI : Infos système : amélioration de la mémoire +- WebGUI : DeviceInfo : désactiver les boutons lors de l'exécution de l'opération de suppression +- WebGUI : Docker : corrections de l'arborescence des fichiers +- WebGUI : Tableau de bord : alarme de chaleur fixe par pool +- WebGUI : Notifications : opération révisée + - Fermeture automatique des nouvelles notifications après 3 secondes. + - Corriger les notifications réapparaissant après la fermeture +- WebGUI : DeviceList : ajouter le type de FS en état hors connexion +- WebGUI : Ajouter un agent de notification pour Bark +- WebGUI : Main : masquer l'icône de navigation lorsque le disque n'est pas monté +- WebGUI : Diagnostics : ajouter des informations supplémentaires sur btrfs et zfs +- WebGUI : Tableau de bord : ajouter l'utilisation de la mémoire ZFS +- WebGUI : Autres autorisations révisées + - Sélectionner soit les disques soit les partages (pas les deux) +- WebGUI : Ajouter testparm aux diagnostics +- WebGUI : Prise en charge du nouveau point de montage réservé UD /mnt/addons +- WebGUI : corriger le problème d'affichage des attributs lorsque l'affichage de la température est réglé sur Fahrenheit +- WebGUI : modifications du Tableau de bord : + - verrouiller complètement le Tableau de bord : L'édition/déplacement ne devient possible qu'en déverrouillant la page + - Une colonne vide est remplie lorsque les tuiles correspondantes sont rendues visibles à nouveau, pas besoin de tout réinitialiser + - ajout d'un indicateur de déplacement visuel sur la page Docker et VM, pour indiquer plus clairement que les lignes peuvent être déplacées maintenant. + - changer la forme du curseur lorsque le déplacement est activé + - utiliser le titre de la tuile comme index +- WebGUI : correction : Les messages post ne fonctionnant pas avec le compte local Firefox +- WebGUI : Le test SMART ne peut pas être exécuté sur un disque UD car il n'y a pas de sélection de délai d'arrêt +- WebGUI : le pied de page de statut reste bloqué sur "Démarrage des services" lors de l'application des modifications de configuration de partage. +- WebGUI : corriger la disposition du tableau pour les images orphelines +- WebGUI : Plugin : ne pas afficher le bouton de mise à jour si incompatible +- WebGUI : Plugin : rendre la détection de pourcentage de wget plus robuste +- WebGUI : OpenTerminal : limiter les clients +- WebGUI : Menu contextuel : placement automatique du triangle +- WebGUI : Tableau de bord : corriger les avertissements du pool +- WebGUI : Autoriser le test SMART long pour UD +- WebGUI : Lire le type de processeur à partir de /proc/cpuinfo +- WebGUI : CSS : résoudre le problème de barre de défilement dans Firefox +- WebGUI : Ajouter un partage : corriger la vérification des noms de partages cachés +- WebGUI : Paramètres d'affichage : ajouter les valeurs par défaut manquantes +- WebGUI : Opération de tableau : empêcher le double clic sur le bouton Démarrer +- WebGUI : Informations sur l'appareil : afficher shareFloor avec des unités +- WebGUI : Informations sur l'appareil : ajouté un calcul automatique du floor +- WebGUI : Message de redimensionnement automatique ajouté +- WebGUI : Partages : icône d'information ajoutée +- WebGUI : Page des informations sur l'appareil et des partages mise à jour +- WebGUI : Correction de l'affichage des aberrations réseau. +- WebGUI : Remplissage automatique de l'espace libre minimum pour les nouveaux partages +- WebGUI : feat(upc) : mise à jour vers v3 pour se connecter +- WebGUI : Calcul de la taille Gestion/Pool : afficher et permettre les valeurs en pourcentage +- wireguard : ajouter le support SSL pour les adresses IP du tunnel WG (certificats joker myunraid.net uniquement) +- wireguard : corriger le problème nginx avec configuration partielle de WireGuard + +### Publier les différences de fichiers *bz* + +Unraid OS est composé d'un ensemble de 5 fichiers *bz* situés à la racine du périphérique USB Flash de démarrage : + +- bzimage - le noyau Linux +- bzroot - le système de fichiers racine, sans bureau console +- bzroot-gui - fichiers supplémentaires nécessaires pour le bureau console +- bzmodules - modules (pilotes) associés au noyau Linux +- bzfirmware - firmware des appareils requis par certains modules + +À partir de la version 6.12, le contenu de ces fichiers a été réorganisé : + +- bzimage - le noyau Linux (inchangé) +- bzroot - le système de fichiers racine à l'exclusion de l'arborescence du répertoire /usr +- bzroot-gui - un fichier unique qui démarre automatiquement le bureau console (pour la compatibilité) +- bzmodules - modules (pilotes) associés au noyau Linux et firmware des appareils requis par certains modules +- bzfirmware - le répertoire /usr et tous les fichiers qu'il contient, y compris le bureau console + +Ces changements accélèrent le processus de démarrage et libèrent près de 1 Go de RAM. Cela nous permet également d'ajouter plus de "choses" au système d'exploitation Unraid à l'avenir sans nécessiter plus de RAM. Enfin, lorsqu'il est démarré en mode **non-GUI**, le bureau peut être lancé en se connectant à la console et en tapant la commande 'slim'. + +#### Mise à jour manuelle + +La mise à jour manuelle fait référence à la mise à jour du système d'exploitation Unraid sur votre périphérique de démarrage USB sans utiliser la fonction **Outils/Mise à jour du système d'exploitation**. Typiquement, on ferait l'un des choix suivants : + +- ouvrir une fenêtre Terminal, wget le fichier zip de publication, décompresser la version, puis 'cp' les fichiers *bz* à la racine du périphérique de démarrage. + +ou + +- exporter le partage 'flash' sur votre réseau et glisser les fichiers *bz* depuis un PC directement vers le flash. + +L'une ou l'autre méthode, à partir de 6.12 **peut échouer** car le fichier *bzfirmware* sera écrasé pendant qu'il est encore monté - pas bon. + +Pour contourner cela, vous devez d'abord créer un répertoire temporaire sur le périphérique USB et ensuite 'mv' (ou glisser) tous les fichiers *bz* existants dans ce répertoire temporaire. Maintenant, vous pouvez copier les nouveaux fichiers *bz* à la racine du périphérique USB et redémarrer. + +## Noyau Linux + +- version 6.1.33 +- md/unraid : version 2.9.27. +- CONFIG\_FS\_DAX: Support de l'accès direct (DAX) basé sur le système de fichiers +- CONFIG\_VIRTIO\_FS: Système de fichiers Virtio +- CONFIG\_ZONE\_DEVICE: Prise en charge de la mémoire de périphérique (pmem, HMM, etc...) hotplug +- CONFIG\_USBIP\_HOST: Pilote hôte +- CONFIG\_INTEL\_MEI: Interface moteur de gestion Intel +- CONFIG\_INTEL\_MEI\_ME: Jeux de puces Intel avec ME activé +- CONFIG\_INTEL\_MEI\_GSC: Dispositif intégré Intel MEI GSC +- CONFIG\_INTEL\_MEI\_PXP: Services PXP d'interface ME d'Intel +- CONFIG\_INTEL\_MEI\_HDCP: Services HDCP2.2 d'interface ME d'Intel +- CONFIG\_INTEL\_PMC\_CORE: Pilote principal PMC Intel +- CONFIG\_DRM\_I915\_PXP: Activer le support Intel PXP +- CONFIG\_SCSI\_FC\_ATTRS: Attributs de transport FiberChannel +- CONFIG\_FUSION\_SPI: Pilotes ScsiHost Fusion MPT pour SPI +- CONFIG\_FUSION\_FC: Pilotes ScsiHost Fusion MPT pour FC +- CONFIG\_FUSION\_CTL: Pilote de périphérique divers (ioctl) Fusion MPT +- CONFIG\_FUSION\_LOGGING: Facilite de journalisation Fusion MPT +- CONFIG\_X86\_AMD\_PSTATE: Pilote P-State pour processeur AMD +- CONFIG\_LRU\_GEN: Multi-Gen LRU +- CONFIG\_SERIAL\_8250\_NR\_UARTS=32: Nombre maximum de ports série 8250/16550 +- CONFIG\_SERIAL\_8250\_RUNTIME\_UARTS=4: Nombre de ports série 8250/16550 à enregistrer au moment de l'exécution +- CONFIG\_FANOTIFY: Notification d'accès à l'échelle du système de fichiers + +## Mises à jour de la distribution de base + +- aaa\_glibc-solibs: version 2.37 +- adwaita-icon-theme : version 43 +- at-spi2-core : version 2.46.0 +- bash : version 5.2.015 +- bash\_completion: version 2.11 +- bind : version 9.18.12 +- btrfs-progs : version 6.2.1 +- ca-certificates : version 20221205 +- cryptsetup : version 2.6.1 +- curl : version 7.88.1 +- dbus : version 1.14.6 +- diffutils : version 3.9 +- dnsmasq : version 2.89 +- docker : version 23.0.6 +- e2fsprogs : version 1.47.0 +- encodings : version 1.0.7 +- file : version 5.44 +- firefox : version 111.0 (AppImage) +- freetype : version 2.13.0 +- fuse3 : version 3.12.0 +- gawk : version 5.2.1 +- git : version 2.39.2 +- glib2 : version 2.74.6 +- glibc : version 2.37 +- glibc-zoneinfo : version 2022g +- gnutls : version 3.7.9 +- gptfdisk : version 1.0.9 +- gtk+3 : version 3.24.37 +- harfbuzz : version 7.1.0 +- htop : version 3.2.2 +- iproute2 : version 6.2.0 +- iptables : version 1.8.9 +- iputils : version 20221126 +- kernel-firmware: 20230531\_fc90c59 +- less : version 612 +- libICE : version 1.1.1 +- libSM : version 1.2.4 +- libX11 : version 1.8.4 +- libXau : version 1.0.11 +- libXcomposite : version 0.4.6 +- libXdamage : version 1.1.6 +- libXdmcp : version 1.1.4 +- libXpm : version 3.5.15 +- libXrandr : version 1.5.3 +- libXres : version 1.2.2 +- libXxf86dga : version 1.1.6 +- libarchive : version 3.6.2 +- libdrm : version 2.4.115 +- libfontenc : version 1.1.7 +- libglvnd : version 1.6.0 +- libjpeg-turbo : version 2.1.5.1 +- libpcap : version 1.10.3 +- libpng : version 1.6.39 +- libpsl : version 0.21.2 +- liburcu : version 0.14.0 +- libwebp : version 1.3.0 +- libxkbcommon : version 1.5.0 +- libxkbfile : version 1.1.2 +- libxshmfence : version 1.3.2 +- lmdb : version 0.9.30 +- logrotate : version 3.21.0 +- lsof : version 4.98.0 +- lz4 : version 1.9.4 +- lzlib : version 1.13 +- mc : version 4.8.29 +- mcelog : version 191 +- mpfr : version 4.2.0 +- nano : version 7.2 +- ncurses : version 6.4 +- nginx : version 1.23.3 +- nghttp2 : version 1.52.0 +- openssh : version 9.2p1 +- openssl : version 1.1.1t +- openssl-solibs : version 1.1.1t +- openzfs : version 2.1.12 +- pango : version 1.50.14 +- pciutils : version 3.9.0 +- pcre2 : version 10.42 +- php : version 8.2.4 +- php-libvirt : version 0.5.7 +- php-markdown : version 2.0.0 +- samba : version 4.17.7 +- sqlite : version 3.41.0 +- sudo : version 1.9.13p2 +- sysstat : version 12.7.2 +- tdb : version 1.4.8 +- tevent : version 0.14.1 +- traceroute : version 2.1.2 +- transset : version 1.0.3 +- tree : version 2.1.0 +- usbutils : version 015 +- xcb-util : version 0.4.1 +- xdriinfo : version 1.0.7 +- xf86-video-vesa : version 2.6.0 +- xfsprogs : version 6.1.1 +- xhost : version 1.0.9 +- xinit : version 1.4.2 +- xkbcomp : version 1.4.6 +- xkeyboard-config : version 2.38 +- xorg-server : version 21.1.7 +- xprop : version 1.2.6 +- xrandr : version 1.5.2 +- xset : version 1.2.5 +- xterm : version 379 +- xz : version 5.4.1 +- zstd : version 1.5.4 + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md new file mode 100644 index 0000000000..825176b4a6 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md @@ -0,0 +1,56 @@ +# Version 6.12.1 2023-06-20 + +Modifications par rapport à [6.12.0](6.12.0.md) + +## Notes de mise à niveau + +### Problèmes connus + +Veuillez consulter les [notes de version 6.12.0](6.12.0.md#known-issues) pour les problèmes connus généraux. + +### Rétrogradation + +Si vous revenez à une version antérieure à 6.12.0, consultez également les [notes de version 6.12.0](6.12.0.md#rolling-back). + +## Corrections de bugs + +- emhttpd : retirer "Unraid" de la liste des noms réservés +- emhttpd : gérer correctement les chaînes "ERREUR" dans la sortie de la commande 'btrfs filesystem show' +- emhttpd : empêcher cmdStart si déjà démarré +- réseau : Fonctionnalité de rechargement de service révisée : assure que les services ne sont rechargés qu'une seule fois +- réseau : rc.library : lire les adresses IP directement des interfaces au lieu du fichier +- réseau : NTP : corriger les interfaces d'écoute +- réseau : NTP : exclure les tunnels WG et les interfaces définies par l'utilisateur +- réseau : NTP : ajouter le nom de l'interface dans la configuration +- réseau : SSH : ajouter le nom de l'interface dans la configuration +- WebGUI : corriger l'avertissement PHP8 dans la page des paramètres de l'onduleur +- WebGUI : Tableau de bord : montrer le pourcentage ZFS basé sur la valeur c\_max +- WebGUI : Tableau de bord : supprimer la coloration de la barre d'utilisation de ZFS +- WebGUI : Tableau de bord : autres corrections diverses + +## Noyau Linux + +- version 6.1.34 + +## Base Distro + +- ttyd : version 1.7.3 (corrige le problème de caractères invisibles sous certaines versions de FireFox) + +### Mises à jour de sécurité + +- ca-certificates : version 20230506 +- curl : version 8.1.2 (CVE-2023-28322 CVE-2023-28321 CVE-2023-28320 CVE-2023-28319) +- git : version 2.35.8 (CVE-2023-25652 CVE-2023-25815 CVE-2023-29007) +- ntp : version 4.2.8p17 (CVE-2023-26551 CVE-2023-26552 CVE-2023-26553 CVE-2023-26554 CVE-2023-26555) +- openssl : version 1.1.1u (CVE-2023-2650) +- openssh : version 9.3p1 +- php : version 8.2.7 +- libX11 : version 1.8.6 (CVE-2023-3138) +- libssh : version 0.10.5 (CVE-2023-1667 CVE-2023-2283) +- zstd : version 1.5.5 + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md new file mode 100644 index 0000000000..63a921f801 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md @@ -0,0 +1,68 @@ +# Version 6.12.10 2024-04-03 + +## Notes de mise à niveau + +Cette version revient à une version antérieure du noyau Linux pour résoudre deux problèmes signalés +dans la version 6.12.9. Elle inclut également une mise à jour de sécurité de 'curl' et une correction de bug pour un cas particulier. + +Note : L'OS Unraid v6.12.x et toutes les versions antérieures ne sont pas vulnérables à la porte dérobée xz [CVE-2024-3094](https://nvd.nist.gov/vuln/detail/CVE-2024-3094). + +### Problèmes connus + +#### Plugins obsolètes + +Les plugins obsolètes peuvent causer des problèmes, nous recommandons de les garder à jour. + +#### Traces d'appel et plantages liés à macvlan + +Si vous obtenez des traces d'appels liées à macvlan (ou à tout autre plantage inexpliqué), comme première étape, nous vous recommandons de naviguer vers ***Paramètres > Docker***, de passer à la vue **avancée**, et de changer le **type de réseau personnalisé Docker** de **macvlan** à **ipvlan**. C'est la configuration par défaut qu'Unraid a expédiée depuis la version 6.11.5 et devrait fonctionner pour la plupart des systèmes. + +Notez que certains utilisateurs ont signalé des problèmes avec le transfert de port depuis certains routeurs (Fritzbox) et une fonctionnalité réduite avec des outils de gestion de réseau avancés (Ubiquity) en mode ipvlan. Si cela vous affecte, consultez la solution alternative disponible depuis Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces). + +#### Problèmes de réseau dus aux trames jumbo + +Si vous rencontrez des problèmes réseau de quelque nature que ce soit, vérifiez que vous n'avez pas activé les jumbo frames. Allez à ***Paramètres > Paramètres réseau > eth0*** et confirmez que le **MTU désiré** est 1500. Pour plus d'informations, consultez l'[avertissement sur les problèmes courants pour les jumbo frames](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Problèmes dus aux cartes réseau Realtek + +Le noyau mis à jour corrige le problème de blocage avec les jumbo frames et le pilote interne Realtek 8125. Cependant, nous recommandons toujours de suivre les conseils ci-dessus concernant les jumbo frames. + +Si vous continuez à rencontrer des problèmes de stabilité réseau et que ***Outils > Dispositifs système*** affiche que vous avez un contrôleur Ethernet Realtek, récupérez le numéro de pièce affiché et recherchez dans les Applications Communautaires pour voir s'il y a un plugin de pilote fourni par Realtek pour cet appareil. Pour plus d'informations, voir la [page de support pour les plugins de pilotes Realtek](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### Autres problèmes ? + +Nous recommandons vivement d'installer le plugin **Corriger les Problèmes Courants** car il vous avertira des problèmes de configuration courants. + +Si vous rencontrez d'autres plantages ou des problèmes de stabilité, allez à ***Paramètres > Serveur Syslog*** et activez **Miroir syslog vers flash**. Cela entraînera une usure supplémentaire de votre périphérique de démarrage USB, mais est utile à court terme pour collecter des journaux après un plantage. + +Après le prochain redémarrage, naviguez vers ***Outils > Diagnostics*** et téléchargez vos diagnostics anonymisés (à partir de la version 6.12.5, les diagnostics incluent automatiquement les journaux qui étaient en miroir sur le lecteur flash). + +Enfin, commencez un nouveau sujet sous [Support Général](https://forums.unraid.net/forum/55-general-support/) et fournissez tous les détails du problème. Une fois le problème résolu, assurez-vous de désactiver **Miroir syslog vers flash**. + +### Rétrogradation + +Si vous revenez à une version antérieure à la 6.12.9, consultez également les [notes de version 6.12.9](6.12.9.md#rolling-back). + +## Modifications par rapport à [6.12.9](6.12.9.md) + +### Corrections de bugs et améliorations + +- Résolution des problèmes de montage des partages SMB distants via le plugin Unassigned Devices. +- Résolution des problèmes avec certains contrôleurs Asmedia ne voyant pas tous les appareils connectés. +- nfs : (réversion) Montages NFSv4 par défaut +- zfs : Détection si les slots de pools insuffisants sont définis pour un pool importé avec un appareil manquant. +- Correction du problème de traduction avec SystemDrivers + +### Noyau Linux + +- version 6.1.79 + +### Distro de base + +- curl : version : 8.7.1 (CVE-2024-2466 CVE-2024-2398 CVE-2024-2379 CVE-2024-2004) + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md new file mode 100644 index 0000000000..c95f58aa40 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md @@ -0,0 +1,73 @@ +# Version 6.12.11 2024-07-16 + +## Notes de mise à niveau + +Cette version inclut des corrections de bogues intéressantes rétroportées de notre travail sur Unraid 7, ainsi qu'une correction de sécurité pour OpenSSH et des mises à jour du noyau Linux et d'OpenZFS. + +### Problèmes connus + +#### Plugins obsolètes + +Les plugins obsolètes peuvent causer des problèmes, nous recommandons de les garder à jour. + +#### Bombe fork Docker + +Un conteneur Docker cassé ou malveillant peut utiliser tous les identifiants de processus disponibles sur le système, entraînant une instabilité. Nous testons un correctif dans Unraid 7 et le rétroporterons dans une future version (Remarque : ce correctif se trouve dans [6.12.12](6.12.12.md)). Si vous pensez être concerné par ce problème, une solution temporaire consiste à limiter le nombre de PIDs qu'un conteneur peut utiliser en ajoutant `--pids-limit 2048` dans les paramètres supplémentaires du modèle Docker. + +#### Traces d'appel et plantages liés à macvlan + +Si vous obtenez des traces d'appels liées à macvlan (ou à tout autre plantage inexpliqué), comme première étape, nous vous recommandons de naviguer vers ***Paramètres > Docker***, de passer à la vue **avancée**, et de changer le **type de réseau personnalisé Docker** de **macvlan** à **ipvlan**. C'est la configuration par défaut qu'Unraid a expédiée depuis la version 6.11.5 et devrait fonctionner pour la plupart des systèmes. + +Notez que certains utilisateurs ont signalé des problèmes avec le transfert de port depuis certains routeurs (Fritzbox) et une fonctionnalité réduite avec des outils de gestion de réseau avancés (Ubiquity) en mode ipvlan. Si cela vous affecte, consultez la solution alternative disponible depuis Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces). + +#### Problèmes de réseau dus aux trames jumbo + +Si vous rencontrez des problèmes réseau de quelque nature que ce soit, vérifiez que vous n'avez pas activé les jumbo frames. Allez à ***Paramètres > Paramètres réseau > eth0*** et confirmez que le **MTU désiré** est 1500. Pour plus d'informations, consultez l'[avertissement sur les problèmes courants pour les jumbo frames](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Problèmes dus aux cartes réseau Realtek + +Le noyau mis à jour corrige le problème de blocage avec les jumbo frames et le pilote interne Realtek 8125. Cependant, nous recommandons toujours de suivre les conseils ci-dessus concernant les jumbo frames. + +Si vous continuez à rencontrer des problèmes de stabilité réseau et que ***Outils > Dispositifs système*** affiche que vous avez un contrôleur Ethernet Realtek, récupérez le numéro de pièce affiché et recherchez dans les Applications Communautaires pour voir s'il y a un plugin de pilote fourni par Realtek pour cet appareil. Pour plus d'informations, voir la [page de support pour les plugins de pilotes Realtek](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### Autres problèmes ? + +Nous recommandons vivement d'installer le plugin **Corriger les Problèmes Courants** car il vous avertira des problèmes de configuration courants. + +Si vous rencontrez d'autres plantages ou des problèmes de stabilité, allez à ***Paramètres > Serveur Syslog*** et activez **Miroir syslog vers flash**. Cela entraînera une usure supplémentaire de votre périphérique de démarrage USB, mais est utile à court terme pour collecter des journaux après un plantage. + +Après le prochain redémarrage, naviguez vers ***Outils > Diagnostics*** et téléchargez vos diagnostics anonymisés (à partir de la version 6.12.5, les diagnostics incluent automatiquement les journaux qui étaient en miroir sur le lecteur flash). + +Enfin, commencez un nouveau sujet sous [Support Général](https://forums.unraid.net/forum/55-general-support/) et fournissez tous les détails du problème. Une fois le problème résolu, assurez-vous de désactiver **Miroir syslog vers flash**. + +### Rétrogradation + +Si vous rétrogradez avant la version 6.12.10, consultez également les [notes de version 6.12.10](6.12.10.md#rolling-back). + +## Modifications par rapport à [6.12.10](6.12.10.md) + +### Corrections de bugs et améliorations + +- Correction de l'erreur 500 à la connexion +- Tableau de Bord + - Correction de la gestion des tuiles affichant une boîte de dialogue vide + - Nettoyez les cookies de visibilité laissés dans un état malformé +- VMs + - Correction du changement de valeur de pont qui ne met pas à jour les machines virtuelles avec plus d'une carte réseau et la machine virtuelle échoue à démarrer + - Correction de la suppression du GPU et de l'ajout du virtuel pouvant entraîner aucune sortie +- Rendre la coupe cohérente entre "couper maintenant" et tâche cron + +### Noyau Linux + +- version 6.1.99 +- zfs : version 2.1.15 + +### Distro de base + +- openssh : version 9.8p1 (CVE-2024-6387) + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md new file mode 100644 index 0000000000..51845b6f75 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md @@ -0,0 +1,81 @@ +# Version 6.12.12 2024-08-20 + +## Notes de mise à niveau + +Unraid 6.12 continue de bénéficier du travail effectué sur Unraid 7, cette version contient plusieurs correctifs de bugs rétroportés +d'Unraid 7 ainsi qu'une correction de sécurité pour curl. + +### Problèmes connus + +#### Plugins obsolètes + +Les plugins obsolètes peuvent causer des problèmes, nous recommandons de les garder à jour. + +#### Traces d'appel et plantages liés à macvlan + +Si vous obtenez des traces d'appels liées à macvlan (ou à tout autre plantage inexpliqué), comme première étape, nous vous recommandons de naviguer vers ***Paramètres > Docker***, de passer à la vue **avancée**, et de changer le **type de réseau personnalisé Docker** de **macvlan** à **ipvlan**. C'est la configuration par défaut qu'Unraid a expédiée depuis la version 6.11.5 et devrait fonctionner pour la plupart des systèmes. + +Notez que certains utilisateurs ont signalé des problèmes avec le transfert de port depuis certains routeurs (Fritzbox) et une fonctionnalité réduite avec des outils de gestion de réseau avancés (Ubiquity) en mode ipvlan. Si cela vous affecte, consultez la solution alternative disponible depuis Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces). + +#### Problèmes de réseau dus aux trames jumbo + +Si vous rencontrez des problèmes réseau de quelque nature que ce soit, vérifiez que vous n'avez pas activé les jumbo frames. Allez à ***Paramètres > Paramètres réseau > eth0*** et confirmez que le **MTU désiré** est 1500. Pour plus d'informations, consultez l'[avertissement sur les problèmes courants pour les jumbo frames](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Problèmes dus aux cartes réseau Realtek + +Le noyau mis à jour corrige le problème de blocage avec les jumbo frames et le pilote interne Realtek 8125. Cependant, nous recommandons toujours de suivre les conseils ci-dessus concernant les jumbo frames. + +Si vous continuez à rencontrer des problèmes de stabilité réseau et que ***Outils > Dispositifs système*** affiche que vous avez un contrôleur Ethernet Realtek, récupérez le numéro de pièce affiché et recherchez dans les Applications Communautaires pour voir s'il y a un plugin de pilote fourni par Realtek pour cet appareil. Pour plus d'informations, voir la [page de support pour les plugins de pilotes Realtek](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### Autres problèmes ? + +Nous recommandons vivement d'installer le plugin **Corriger les Problèmes Courants** car il vous avertira des problèmes de configuration courants. + +Si vous rencontrez d'autres plantages ou des problèmes de stabilité, allez à ***Paramètres > Serveur Syslog*** et activez **Miroir syslog vers flash**. Cela entraînera une usure supplémentaire de votre périphérique de démarrage USB, mais est utile à court terme pour collecter des journaux après un plantage. + +Après le prochain redémarrage, naviguez vers ***Outils > Diagnostics*** et téléchargez vos diagnostics anonymisés (à partir de la version 6.12.5, les diagnostics incluent automatiquement les journaux qui étaient en miroir sur le lecteur flash). + +Enfin, commencez un nouveau sujet sous [Support Général](https://forums.unraid.net/forum/55-general-support/) et fournissez tous les détails du problème. Une fois le problème résolu, assurez-vous de désactiver **Miroir syslog vers flash**. + +### Rétrogradation + +Si vous revenez à une version antérieure à la 6.12.11, consultez également les [notes de version 6.12.11](6.12.11.md#rolling-back). + +## Modifications par rapport à [6.12.11](6.12.11.md) + +### Corrections de bugs et améliorations + +- Protégez de la bombe à retardement Docker en ajoutant la *Limite PID Docker* par défaut à ***Paramètres > Paramètres Docker*** +- shfs : corrige le recul de "niveau de division 0" (niveau de division manuel) +- Supprimez l'entrée du fichier hosts en dur pour keys.lime-technology.com +- Utilisez "go links" lors de la création de liens vers Docs +- Corrige la page des paramètres UPS lorsque la configuration contient des valeurs vides +- update.php : libérer le pointeur de fichier après utilisation +- Diagnostics : anonymiser les adresses IPv6 +- Correction : Après avoir arrêté puis redémarré le tableau, nfsd ne fonctionne pas +- Correctif : La suppression d'un partage ne le retire pas de SMB et NFS +- Correction : Sauvegarder les itinéraires ne fonctionne qu'en anglais +- Améliorations du démarrage dans le script rc.S : + - Réparez automatiquement la sauvegarde du secteur de démarrage + - Démontez explicitement tous les systèmes de fichiers si vous ne pouvez pas continuer le démarrage +- Triez les utilisateurs par ordre naturel sur la page des partages +- webgui : remplace les usages de document.write() +- Correction d'une faute de frappe dans le texte de l'aide +- Supprimez le script obsolète /etc/apcupsd/doshutdown +- UserEdit : en plus des Ed25519, FIDO/U2F Ed25519 et RSA, supporte les types de clés SSH DSA, ECDSA et FIDO/U2F ECDSA +- Correction : PHPSettings.page : corrige les valeurs par défaut incohérentes de la déclaration d'erreur PHP +- Tableau de bord : Adoucissez les messages pendant la synchronisation/vérification de la parité + +### Noyau Linux + +- version 6.1.103 + +### Distro de base + +- curl : version 8.9.1 (CVE-2024-7264) + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md new file mode 100644 index 0000000000..da6efec975 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md @@ -0,0 +1,37 @@ +# Version 6.12.13 2024-08-22 + +## Notes de mise à niveau + +Ceci est une publication rapide qui met à jour le noyau Linux pour corriger +une [régression](https://lore.kernel.org/lkml/45cdf1c2-9056-4ac2-8e4d-4f07996a9267@kernel.org/T/) où certains appareils HDD ne pouvaient pas +être arrêtés correctement. + +Pour plus de détails sur les changements récents, voir les [notes de version 6.12.12](6.12.12.md). + +### Problèmes connus + +#### Les machines virtuelles Windows devraient utiliser le pilote VirtIO-net + +En raison d'une régression du noyau, il y a une dégradation significative des performances pour tout transfert sortant depuis une VM Windows utilisant le pilote réseau VirtIO. La solution de contournement est de passer au pilote VirtIO-net. (Remarque: ceci a été résolu dans [6.12.14](6.12.14.md)). + +Pour d'autres problèmes connus, voir les [notes de version 6.12.12](6.12.12.md#known-issues). + +### Rétrogradation + +Si retour en arrière à une version antérieure à 6.12.12, consultez également les [notes de version 6.12.12](6.12.12.md#rolling-back). + +## Modifications par rapport à la [version 6.12.12](6.12.12.md) + +### Corrections de bugs et améliorations + +- Noyau mis à jour pour résoudre les problèmes d'arrêt des disques durs + +### Noyau Linux + +- version 6.1.106 + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md new file mode 100644 index 0000000000..cd4be3da33 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md @@ -0,0 +1,67 @@ +# Version 6.12.14 2024-11-26 + +## Notes de mise à niveau + +Cette version inclut des corrections de bugs importantes et des mises à jour de sécurité. + +***TOUS LES UTILISATEURS SONT FORTEMENT ENCOURAGÉS À METTRE À NIVEAU*** + +### Problèmes connus + +#### Les nouvelles modifications de Windows peuvent entraîner la perte d'accès aux partages publics. + +En raison des récents changements de sécurité dans Windows 11 24H2, l'accès "invité" aux partages publics Unraid peut ne pas fonctionner. La solution la plus simple est de créer un utilisateur sur Unraid portant le même nom que le compte Windows que vous utilisez pour vous connecter. Si le mot de passe de l'utilisateur Unraid n'est pas identique à celui du compte Windows, Windows demandera les identifiants. + +Si vous utilisez un compte Microsoft, il peut être préférable de créer un utilisateur dans Unraid avec un nom d'utilisateur simple, de définir un mot de passe, puis dans Windows, allez sur ***Panneau de configuration → Gestionnaire d'informations d'identification → Informations d'identification Windows → Ajouter une information d'identification Windows*** et ajoutez le nom du serveur Unraid correct et les informations d'authentification. + +Vous pouvez également [réactiver le retour invité de Windows](https://techcommunity.microsoft.com/blog/filecab/accessing-a-third-party-nas-with-smb-in-windows-11-24h2-may-fail/4154300) (non recommandé). + +#### Problèmes dus aux cartes réseau Realtek + +Il y a eu plusieurs rapports de problèmes avec le plugin de pilote Realtek après une mise à niveau vers des noyaux récents. Vous pouvez envisager de le désinstaller préventivement avant la mise à niveau, ou de le supprimer par la suite si vous rencontrez des problèmes de réseau. + +Pour d'autres problèmes connus, voir les [notes de version 6.12.12](6.12.12.md#known-issues). + +### Rétrogradation + +Si vous rétrogradez à une version antérieure à 6.12.13, consultez également les [notes de version 6.12.13](6.12.13.md#rolling-back). + +## Changements par rapport à [6.12.13](6.12.13.md) + +### Corrections de bugs et améliorations + +- emhttpd : Correction de l'opération de désactivation d'échange ne nettoyant pas correctement l'espace restant sur la cible +- ShareList : présenter un indicateur lorsqu'un pool principal de partage est invalide, par exemple, a été renommé ou supprimé. +- ShareEdit : avertir l'utilisateur que le renommage d'un pool pourrait affecter les partages utilisant ce pool. +- DiskSettings : préciser que « système de fichiers par défaut » s'applique aux disques de l'array unRAID. +- Retirer ps.txt des diagnostics afin de ne pas exposer les informations d'identification du VPN des conteneurs. +- Ajouter un texte d'aide sur l'accès aux partages publics depuis Windows 11 24H2. +- Mettre à jour le formulaire de retour d'information et exiger une adresse email +- Lien corrigé vers le manuel apcupsd sur la page ***Paramètres → Paramètres UPS*** +- Lien corrigé vers la page de manuel btrfs dans le texte d'aide +- rc.docker - Assurez-vous que les interfaces personnalisées avec un indice supérieur à 0 sont correctement reconstruites +- rc.rsyslogd : utilisez pgrep, killall avec namespace PID. +- WebGUI : amélioration de la gestion des paramètres de requête http +- noyau : résolu les problèmes de dégradation des performances liés aux VMs Windows et au pilote réseau VirtIO qui ont été introduits dans la [6.12.13](6.12.13.md) + +### Noyau Linux + +- version 6.1.118 + +### Distro de base + +- firefox : version 132.0.r20241110231641 (AppImage) (CVE-2024-11691 - 11699) +- intel-microcode : version 20241112 +- libssh : version 0.10.6 +- libssh2 : version 1.11.1 (CVE-2023-48795) +- openssl : version 1.1.1zb (CVE-2024-9143) +- php : version 8.2.26 [Multiple CVE](https://www.php.net/ChangeLog-8.php#8.2.26) +- samba : version 4.19.9 (CVE-2018-14628) +- wget : version 1.25.0 (CVE-2024-10524) + +## Correctifs + +Aucun patch n'est actuellement disponible pour cette version, mais nous recommandons d'installer le [plugin Unraid Patch](https://forums.unraid.net/topic/185560-unraid-patch-plugin/), pour recevoir les patches disponibles dès qu'ils seront disponibles. + +Notez que des mises à jour de sécurité supplémentaires sont disponibles dans les versions plus récentes, +voir [cet article de blog](https://unraid.net/blog/cvd) pour plus de détails. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md new file mode 100644 index 0000000000..10891c3476 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md @@ -0,0 +1,59 @@ +# Version 6.12.15 2025-01-21 + +## Notes de mise à niveau + +Cette version inclut des corrections de bugs importantes et des mises à jour de sécurité. + +***TOUS LES UTILISATEURS SONT FORTEMENT ENCOURAGÉS À METTRE À NIVEAU*** + +### Problèmes connus + +#### Les nouvelles modifications de Windows peuvent entraîner la perte d'accès aux partages publics. + +En raison des récents changements de sécurité dans Windows 11 24H2, l'accès "invité" aux partages publics Unraid peut ne pas fonctionner. La solution la plus simple est de créer un utilisateur sur Unraid portant le même nom que le compte Windows que vous utilisez pour vous connecter. Si le mot de passe de l'utilisateur Unraid n'est pas identique à celui du compte Windows, Windows demandera les identifiants. + +Si vous utilisez un compte Microsoft, il peut être préférable de créer un utilisateur dans Unraid avec un nom d'utilisateur simple, de définir un mot de passe, puis dans Windows, allez sur ***Panneau de configuration → Gestionnaire d'informations d'identification → Informations d'identification Windows → Ajouter une information d'identification Windows*** et ajoutez le nom du serveur Unraid correct et les informations d'authentification. + +Vous pouvez également [réactiver le retour invité de Windows](https://techcommunity.microsoft.com/blog/filecab/accessing-a-third-party-nas-with-smb-in-windows-11-24h2-may-fail/4154300) (non recommandé). + +#### Problèmes dus aux cartes réseau Realtek + +Il y a eu plusieurs rapports de problèmes avec le plugin de pilote Realtek après une mise à niveau vers des noyaux récents. Vous pouvez envisager de le désinstaller préventivement avant la mise à niveau, ou de le supprimer par la suite si vous rencontrez des problèmes de réseau. + +Pour d'autres problèmes connus, voir les [notes de version 6.12.12](6.12.12.md#known-issues). + +### Rétrogradation + +Si vous revenez en arrière à une version antérieure à 6.12.14, consultez également les [notes de version 6.12.14](6.12.14.md#rolling-back). + +## Modifications par rapport à [6.12.14](6.12.14.md) + +### Corrections de bugs et améliorations + +- webgui : Corriger la fuite de mémoire sur les pages Dashboard, Gestionnaire VM et Gestionnaire Docker +- webgui: Correction de bug : Fonctionnalité de journalisation de la console JavaScript rétablie +- webgui: En cliquant sur le numéro de version de Unraid, les notes de version sont chargées depuis le site Unraid Docs +- webgui : Changer l'URL d'installation de CA vers le nouveau dépôt +- corriger : Régler le MTU du pont Docker Wireguard pour qu'il corresponde au MTU par défaut de Wireguard +- correction : Gestion correcte de Trial.key vide lorsque le téléchargement échoue +- correction : Les notifications d'agent ne fonctionnent pas s'il y a un problème avec les notifications par email +- correction : nfsd ne redémarre pas correctement +- correction : La boîte de dialogue d'effacement du pool n'affiche pas le nom du pool +- Créer un fichier significatif /etc/os-release +- rendre\_bootable\_linux : version 1.4 + - détecter si mtools est installé + +### Noyau Linux + +- version 6.1.126 +- md/unraid : corriger la gestion d'une défaillance de l'appareil lors de la reconstruction/synchronisation + +### Distro de base + +- git : version 2.46.3 (CVE-2024-50349 CVE-2024-52006) +- php : version 8.2.27 +- rsync : version 3.4.1 (CVE-2024-12084 CVE-2024-12085 CVE-2024-12086 CVE-2024-12087 CVE-2024-12088 CVE-2024-12747) + +## Correctifs + +Aucun patch n'est actuellement disponible pour cette version, mais nous recommandons d'installer le [plugin Unraid Patch](https://forums.unraid.net/topic/185560-unraid-patch-plugin/), pour recevoir les patches disponibles dès qu'ils seront disponibles. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md new file mode 100644 index 0000000000..cc8fcb8ae5 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md @@ -0,0 +1,63 @@ +# Version 6.12.2 2023-06-29 + +Modifications par rapport à la [6.12.1](6.12.1.md) + +## Notes de mise à niveau + +### Problèmes connus + +Veuillez consulter les [notes de version 6.12.0](6.12.0.md#known-issues) pour les problèmes connus généraux. + +### Rétrogradation + +Si vous revenez à une version antérieure à 6.12.0, consultez également les [notes de version 6.12.0](6.12.0.md#rolling-back). + +## Points Forts + +Ceci est principalement une version corrective comprenant également une mise à jour de sécurité mineure. Autres points forts : + +- Nous avons rétabli **docker** de la version 23.0.6, introduite lors du développement d'Unraid OS 6.12, à la version 20.10.24, qui est la dernière version correctrice de **docker** utilisée dans Unraid OS 6.11. Cela vise à résoudre l'augmentation de l'utilisation de la mémoire et d'autres problèmes découverts avec **docker**. +- Un petit changement nécessaire pour invoquer notre script 'update\_services' chaque fois qu'un tunnel WireGuard démarre ou s'arrête est automatiquement appliqué à tous les fichiers 'config/wireguard/\*.conf' lorsque vous effectuez une mise à jour via la page Update OS. Pour une mise à jour manuelle ou en cas de rétrogradation, il est nécessaire de faire un "changement fictif" dans un paramètre sur la page Settings/VPN Manager, puis de cliquer sur Appliquer. + +## Corrections de bugs et améliorations + +- notifications par e-mail : ajoutez une ligne dans /etc/php.ini : 'mail.mixed\_lf\_and\_crlf=On' pour contourner le changement dans la gestion des CRLF de PHP8 +- emhttpd : Correction d'une régression : volumes ZFS émulés non reconnus +- emhttpd : Correction d'une régression : échec du formatage si disqueFsType==auto et defaultFsType spécifie le cryptage +- emhtptd : Correction d'une régression : échec du montage si disqueFsType==auto +- htop : suppression du fichier prédéfini /root/.config/htop/htoprc +- réseau : mise à jour des services RC : + - NFS - correction du rechargement du service + - RPC - correction du rechargement du service + - NGINX - suppression du port HTTPS dans la redirection FQDN lorsque la par défaut est 443 + - Tous les services - enregistrer l'attribution locale IPv4 (169.254.xxx.xxx) + - Tous les services - rendre le fichier de verrouillage programmable + - WireGuard : mise à jour de service retardée pour éviter une condition de course + - rc.library : ne pas autoriser les doublons dans la liste de liaison +- WebGUI : Mises à jour du tableau de bord : + - Réintroduire le contenu des tuiles à montrer/cacher + - Ajouter une nouvelle fonction d'icône pour montrer/cacher tout le contenu à la fois + - Réduire l'écart entre les colonnes + - description -> modèle + - ZFS : corriger la valeur de pourcentage à un maximum de 100% + - Utiliser la fonction prototype : Cela facilite les développeurs tiers pour masquer automatiquement le contenu dynamique + - Gérer les attributions IP en double et donner un avertissement + - changer l'en-tête MÉMOIRE en SYSTÈME +- WebGUI : Mise à jour de l'OS : ajouter une case à cocher pour confirmer la lecture des notes de version avant de mettre à niveau +- WebGUI : diagnostics : inclure la liste des attributions en double +- WebGUI : NFS : pour Sécurité/Privé augmenter le champ Règle de 256 à 512 caractères. + +## Noyau Linux + +- version 6.1.36 + +## Base Distro + +- bind : version -9.16.42 (CVE-2023-2911) +- docker : 20.10.24 (revenir de v23.0.6) + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md new file mode 100644 index 0000000000..70e43eb1b7 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md @@ -0,0 +1,61 @@ +# Version 6.12.3 2023-07-14 + +Changements par rapport à la version [6.12.2](6.12.2.md) + +## Notes de mise à niveau + +### Problèmes connus + +Veuillez consulter les [notes de version 6.12.0](6.12.0.md#known-issues) pour les problèmes connus généraux. + +### Rétrogradation + +Si vous revenez à une version antérieure à 6.12.0, consultez également les [notes de version 6.12.0](6.12.0.md#rolling-back). + +## Réseau + +Cette version corrige des problèmes de réseau, notamment ceux liés à l'IPv6. Un effet secondaire est que cela devrait +résoudre un problème où la WebGUI ne se charge pas dans certaines instances. + +Note : Si vous avez du code dans votre script 'go' pour désactiver IPv6, retirez-le et désactivez-le via la page 'Paramètres/Paramètres réseau'. La désactivation manuelle de l'IPv6 entraînera des conflits. + +## Docker + +Cette version résout un problème où Docker ne s'arrête pas correctement lorsque l'array s'arrête, ce qui peut entraîner un arrêt non propre. + +Si les conteneurs Docker rencontrent des problèmes de démarrage après un certain temps, et que vous utilisez Plex, allez dans les paramètres de votre conteneur Plex Docker, +passez en vue avancée et ajoutez ceci aux paramètres supplémentaires : `--no-healthcheck` + +## Corrections de bugs et améliorations + +- rc.docker : + - vérification révisée de l'exécution du démon docker + - rc.docker : changez la métrique de route de l'interface principale si nécessaire pour éviter les conflits avec l'interface de raccordement +- rc.library : + - optimisation du code pour ipv6 max/min + - prise en charge des adresses mappées en ipv4 +- rc.nginx : sélection explicite ipv4/ipv6 sur l'interface lo +- shfs : correction du calcul de taille de partage lorsque ZFS est l'un des volumes +- WebGUI : + - Page des paramètres VM : correction d'une faute de frappe + - Page de modification du partage : rendre toujours disponibles les paramètres d'espace libre minimum + - Wireguard : correction d'une faute de frappe dans le masque Ipv6 + - Table de routage : correction de l'affichage de la valeur de métrique lorsque celle-ci est zéro + +## Noyau Linux + +- version 6.1.38 +- Ajout du support pour surveiller et également limiter la consommation électrique sur les modèles de processeurs Intel Core (2e génération +) : + - CONFIG\_POWERCAP : Pilote sysfs powercap générique + - CONFIG\_INTEL\_RAPL : Prise en charge d'Intel RAPL via l'interface MSR + - CONFIG\_IDLE\_INJECT : Cadre d'injection d'inactivité + +## Base Distro + +- firefox : version 115.0.r20230710165010 (AppImage) + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md new file mode 100644 index 0000000000..2e52f89399 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md @@ -0,0 +1,151 @@ +# Version 6.12.4 2023-08-31 + +## Notes de mise à niveau + +### Problèmes connus + +Veuillez consulter les [notes de version 6.12.0](6.12.0.md#known-issues) pour les problèmes connus généraux. + +### Rétrogradation + +Avant de revenir à une version antérieure, il est important de s'assurer que le "Bridging" est activé : + +- ***Paramètres > Paramètres réseau > eth0 > Activer le "Bridging"*** = Oui + +Ensuite, démarrez l'ensemble (ainsi que les services Docker et VM) pour mettre à jour vos conteneurs Docker, vos VMs et +tunnels WireGuard à leurs réglages précédents qui devraient fonctionner dans les versions anciennes. + +Une fois dans l'ancienne version, confirmez que ces paramètres sont corrects pour votre configuration : + +- ***Paramètres > Docker > Accès de l'hôte aux réseaux personnalisés*** +- ***Paramètres > Docker > Type de réseau personnalisé Docker*** + +Si vous revenez à une version antérieure à 6.12.0, consultez également les [notes de version 6.12.0](6.12.0.md#rolling-back). + +## Correction pour les traces d'appel macvlan + +La grande nouvelle dans cette version est que nous avons résolu les problèmes liés aux traces d'appel macvlan et aux plantages ! + +La source du problème est que macvlan utilisé pour les réseaux Docker personnalisés est peu fiable lorsque l'interface parente est un pont (comme br0), il fonctionne mieux sur une interface physique (comme eth0) ou un lien (comme bond0). Nous pensons que c'est un problème de noyau de longue date et avons publié un [rapport de bug](https://bugzilla.kernel.org/show_bug.cgi?id=217777). + +Si vous recevez des traces d'appels liées à macvlan, en premier lieu, nous vous recommandons de naviguer vers ***Paramètres > Docker***, de passer en vue avancée et de changer le "Type de réseau Docker personnalisé" de macvlan à ipvlan. C'est la configuration par défaut qu'Unraid a livré depuis la version 6.11.5 et devrait fonctionner pour la plupart des systèmes. Si vous êtes satisfait de ce réglage, vous avez terminé ! Vous n'aurez plus de traces d'appels liées à macvlan et pouvez passer à [la section suivante](#system-drivers-page). + +Cependant, certains utilisateurs ont signalé des problèmes avec le transfert de port depuis certains routeurs (Fritzbox) et une fonctionnalité réduite +avec les outils de gestion de réseau avancés (Ubiquity) en mode ipvlan. + +Pour ces utilisateurs, nous avons une nouvelle méthode qui reconfigure le réseau pour éviter les problèmes avec macvlan. Ajustez quelques paramètres et vos conteneurs Docker, VMs, et tunnels WireGuard devraient s'ajuster automatiquement pour les utiliser : + +- ***Paramètres > Paramètres réseau > eth0 > Activer l'Aggrégation de liens*** = Oui ou Non, les deux fonctionnent avec cette solution +- ***Paramètres > Paramètres réseau > eth0 > Activer le "Bridging"*** = Non (cela activera automatiquement le macvlan) +- ***Paramètres > Docker > Accès de l'hôte aux réseaux personnalisés*** = Activé + +Remarque : si vous avez précédemment utilisé la [méthode de segmentation 2-nics pour Docker](https://forums.unraid.net/topic/137048-guide-how-to-solve-macvlan-and-ipvlan-issues-with-containers-on-a-custom-network/), +vous voudrez également revenir en arrière : + +- ***Paramètres > Docker > Réseau personnalisé sur l'interface eth0 ou bond0*** (c'est-à-dire s'assurer que eth0/bond0 est configuré pour le réseau personnalisé, pas eth1/bond1) + +Lorsque vous démarrez l'ensemble, l'hôte, les VMs et les conteneurs Docker pourront tous communiquer, et il ne devrait plus y avoir de traces d'appel ! + +### Dépannage + +- Si vos conteneurs Docker avec des IP personnalisées ne démarrent pas, éditez-les et changez le "Type de réseau" pour "Personnalisé : eth0" ou "Personnalisé : bond0". Nous avons tenté de le faire automatiquement, mais selon la personnalisation, vous devrez peut-être le faire manuellement. +- Si vos VMs rencontrent des problèmes réseau, modifiez-les et réglez la Source Réseau sur "vhost0". Assurez-vous également qu'une adresse MAC est assignée. +- Si vos tunnels WireGuard ne démarrent pas, apportez une modification factice à chaque tunnel et enregistrez. +- Si vous rencontrez des problèmes de redirection de port vers des conteneurs Docker (en particulier avec un routeur Fritzbox), supprimez et recréez la redirection de port dans votre routeur. + +### Pour approfondir un peu plus... + +Après la mise à niveau vers cette version, si le pontage demeure activé sur eth0, tout fonctionne comme auparavant. Vous pouvez tenter de contourner les traces d'appels en désactivant le réseau Docker personnalisé, ou en utilisant ipvlan au lieu de macvlan, ou en utilisant la méthode de segmentation Docker à 2 cartes réseau avec des conteneurs sur eth1. + +Avec cette version, lorsque vous désactivez le pontage sur eth0, nous créons un nouveau réseau macvtap que les conteneurs Docker et VMs peuvent utiliser. Il a un parent de eth0 au lieu de br0, ce qui nous permet d'éviter les traces d'appels. + +Un avantage secondaire est que les réseaux macvtap sont réputés plus rapides que les réseaux pontés, vous pourriez donc observer des améliorations de vitesse lors de +la communication avec les conteneurs Docker et les VMs. + +Pour information : avec le pontage désactivé pour l'interface principale (eth0), alors le type de réseau personnalisé Docker sera réglé sur macvlan et masqué, sauf s'il y a d'autres interfaces sur votre système où le pontage est activé, auquel cas l'option ipvlan légataire est disponible. Pour utiliser le nouveau correctif discuté ici, vous voudrez garder cela réglé sur macvlan. + +## Page des pilotes système + +Naviguez vers ***Outils > Pilotes Système*** pour avoir une vision des pilotes disponibles/en cours d'utilisation sur votre système. Les pilotes tiers installés par les plugins (comme NVIDIA et Realtek) possèdent une icône qui lie à la page de support pour ce pilote. Vous pouvez également maintenant ajouter/modifier/supprimer le fichier de configuration modeprobe.d pour n'importe quel pilote sans avoir à trouver ce fichier sur votre clé flash. + +## Autres corrections de bogues et améliorations + +- Cette version résout des cas particuliers dans la mise en réseau, Libvirt, Docker, WireGuard, NTP, NGINX, NFS et RPC. Et inclut une amélioration du gestionnaire de VM pour qu'il conserve le mot de passe VNC lors d'une mise à jour. + +- Le processus d'arrêt a été modifié pour permettre au plugin NUT de bien éteindre le système. + +- Le temps d'affichage des notifications avant fermeture automatique est maintenant configurable (voir ***Paramètres > Paramètres de notification***). + +- Une petite modification est que les paquets dans /boot/extra sont désormais traités davantage comme des paquets installés par des plugins, et l'installation est consignée dans le syslog plutôt que sur la console. + +- Le processus de mise à jour du système d'exploitation mettra automatiquement à jour le script Helper-Update-Plugin si nécessaire. + +## Modifications par rapport à la [version 6.12.3](6.12.3.md) + +### Distro de base + +- create\_network\_ini : + - correctif pour le hook DHCP + - amélioration de la collecte d'adresses IP +- diagnostics : + - Ajout de la version Unraid précédente au fichier txt des diagnostics. + - Ajout de ntp.conf, sshd.config et servers.conf (avec des URLs anonymisées) + - anonymisation des adresses IP +- docker : + - ajout du routage lorsque le réseau shim ou macvtap est utilisé + - correction du routage lorsque "accès de l'hôte" est activé + - suppression de l'IPv6 de l'interface shim/vhost (certains routeurs sont incompatibles) +- libvirt, nginx, nfs, rpc : détection de processus en cours modifiée +- nfsclient : lancement de la négociation avec v4, désactivation de la modification atime +- rc.6 : laissez /usr et /lib montés pendant l'arrêt +- rc.docker : + - création du même réseau IPv6 pour les conteneurs et les services + - ajout de plus de journalisation lors de l'arrêt de dockerd +- rc.inet1 : + - ne pas utiliser le mode promiscuité pour le "Bridging" + - ajouter l'option persistante à dhcpcd +- rc.library : interfaces toujours listées dans le même ordre, corrige l'affichage ipv6 +- rc.libvirt : retirer la surveillance 'itco' du XML si présent +- rc.local : annoter le fichier auto-généré /etc/modprobe.d/zfs.conf +- rc.services : + - ajout de journalisation + - exclure les tunnels WireGuard "VPN accès canalisé pour docker" des services + - exclure les tunnels WireGuard pour ntp (optimisation du code) + +#### Mises à jour des packages + +- btrfs-progs : 6.3.3 +- curl : version 8.2.0 (CVE-2023-32001) +- firefox : version 117.0.r20230824132758 (AppImage) +- kernel-firmware : version 20230724\_59fbffa +- krb5 : version 1.19.2 (CVE-2023-36054) +- openssh : version 9.3p2 (CVE-2023-38408) +- openssl : version 1.1.1v (CVE-2023-3817 CVE-2023-3446) +- samba : version 4.17.10 (CVE-2023-3496 CVE-2022-2127 CVE-2023-34968 CVE-2023-3496 CVE-2023-3347) + +### Noyau Linux + +- version 6.1.49 (CVE-2023-20593) +- CONFIG\_SCSI\_MPI3MR: Pilote de contrôleur de stockage MPI3 Broadcom + +### WebGUI + +- Tableau de bord : masquez la barre ZFS lorsqu’aucun ZFS n’est utilisé +- Paramètres Docker : corrigez les tailles de sous-réseau +- Commentaires : restructurez le script de commentaires +- Paramètres réseau : corrigez les paramètres DNS parfois disparus +- Notifications : nouvelle option de notification : temps de fermeture automatique, par défaut à 5 secondes +- Pools : espace libre minimum : uniquement activé lorsque l'ensemble est arrêté +- Partages et Pools : montrez "Espace libre minimum" comme nombre absolu au lieu de pourcentage +- Pilotes Système : nouvelle page +- Traductions : taillez la clé et la valeur dans les fichiers de langue +- Gestionnaire de VM : Conservez le mot de passe VNC pendant la mise à jour. +- Gestionnaire de VM : supprimez les fichiers ".vv" téléchargés. +- CSS : définissez overflow-x sur 'auto' +- mettre à jour le monitor\_nchan + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md new file mode 100644 index 0000000000..20966ea4d0 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md @@ -0,0 +1,63 @@ +# Version 6.12.5 2023-11-27 + +## Notes de mise à niveau + +Cette version comprend des corrections de bogues et des mises à jour de sécurité. Il est recommandé à tous les utilisateurs de mettre à jour. + +### Problèmes connus + +Une atténuation est incluse pour un problème de [corruption de données ZFS](https://github.com/openzfs/zfs/issues/15526). Cela est réalisé en incluant cette option dans le fichier par défaut `/etc/modprobe.d/zfs.conf` : + +`zfs_dmu_offset_next_sync=0` + +Veuillez consulter les [notes de version 6.12.0](6.12.0.md#known-issues) pour les problèmes connus généraux. + +### Rétrogradation + +Si vous rétrogradez vers une version antérieure à 6.12.4, consultez également les [notes de version 6.12.4](6.12.4.md#rolling-back). + +## Changements par rapport à [6.12.4](6.12.4.md) + +### Corrections de bugs et améliorations + +- Remplacer le très ancien 'MemTest86+' par Memtest86+ version : 6.20 + - Il existe également des [options de démarrage](https://github.com/memtest86plus/memtest86plus#boot-options) disponibles. +- Lorsque 'mirror syslog to flash' est activé, visualisez syslog-précédent dans Outils -> Syslog et dans les diagnostics +- Docker : + - Les conteneurs Docker ne s'arrêtaient pas toujours, empêchant Docker de démonter + - Les conteneurs Docker utilisant IPv6 sur les réseaux personnalisés ne pouvaient pas démarrer +- emhttpd : si les partages utilisateurs ne sont pas activés, update\_cron n'était pas appelé lors de la séquence de démarrage de l'array. +- rc.nginx stop - forcer l'arrêt de nginx +- shfs : la méthode d'allocation ne fonctionnait pas correctement si six disques ou plus étaient spécifiés dans le masque 'inclure' +- webgui : + - Downgrade.php n'était pas mis à jour pour 6.12 + - toujours afficher le paramètre ipvlan / macvlan +- ZFS : utilisez « zfs import -f » pour garantir que les pools provenant d'autres systèmes sont importés +- empêcher l'auto-spindown des appareils non formatés + +### Mises à jour des packages + +- curl : version 8.4.0 (CVE-2023-38546 CVE-2023-38545 CVE-2023-38039) +- firefox : version 119.0.r20231106151204 (AppImage) +- intel-microcode : version 20231114 +- kernel-firmware : 20231024\_4ee0175 +- qemu : version 7.2.0 +- samba: version 4.17.12 (CVE-2023-3961 CVE-2023-4091 CVE-2023-4154 CVE-2023-42669 CVE-2023-42670) +- smartmontools : version 7.4 +- zfs : version 2.1.13 + +### Noyau Linux + +- version 6.1.63 +- CONFIG\_USB\_NET\_CDC\_NCM : Support CDC NCM +- CONFIG\_NFS\_V4\_1 : Support client NFS pour NFSv4.1 +- CONFIG\_NFS\_V4\_1\_MIGRATION : Support client NFSv4.1 pour la migration +- CONFIG\_NFS\_V4\_2 : Support client NFS pour NFSv4.2 +- CONFIG\_NFS\_V4\_2\_READ\_PLUS : NFS : Activer le support pour l'opération READ\_PLUS de NFSv4.2 +- CONFIG\_NFSD\_V4\_2\_INTER\_SSC : NFSv4.2 copie inter-serveurs + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md new file mode 100644 index 0000000000..990bc8ab6d --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md @@ -0,0 +1,64 @@ +# Version 6.12.6 2023-12-01 + +## Notes de mise à niveau + +Cette version inclut des correctifs de bugs et une mise à jour importante de OpenZFS. Il est conseillé à tous les utilisateurs de mettre à jour. + +### Problèmes connus + +#### Plugins obsolètes + +Les plugins obsolètes peuvent causer des problèmes, nous recommandons de les garder à jour. + +#### Traces d'appel et plantages liés à macvlan + +Si vous rencontrez des traçabilités d'appels liées à macvlan (ou tout autre incident inexpliqué), nous vous recommandons, dans un premier temps, de naviguer vers ***Paramètres > Docker***, de basculer en mode **avancé** et de changer le **type de réseau personnalisé Docker** de **macvlan** à **ipvlan**. Il s'agit de la configuration par défaut fournie avec Unraid depuis la version 6.11.5 et elle devrait fonctionner pour la plupart des systèmes. + +Notez que certains utilisateurs ont signalé des problèmes avec le transfert de port à partir de certains routeurs (Fritzbox) et une fonctionnalité réduite avec des outils avancés de gestion de réseau (Ubiquity) en mode ipvlan. Si cela vous affecte, consultez la solution alternative disponible depuis Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces). + +#### Problèmes de réseau dus aux trames jumbo + +Si vous avez des problèmes de réseau de quelque nature que ce soit, assurez-vous de ne pas avoir activé les jumbo frames. Allez dans ***Paramètres > Paramètres Réseau > eth0*** et vérifiez que le **MTU souhaité** est 1500. Pour plus d'informations, consultez l'[avertissement Problèmes Communs pour les jumbo frames](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Problèmes dus aux cartes réseau Realtek + +Les pilotes Realtek standard des derniers noyaux Linux causent des problèmes de réseau et de stabilité. Si vous rencontrez des problèmes et que ***Outils > Périphériques Système*** indique que vous avez un contrôleur Ethernet Realtek, notez le numéro de pièce affiché et recherchez dans les Applications Communautaires s'il existe un plugin de pilote Realtek pour cet appareil. Pour plus d'informations, consultez la [page de support pour les plugins de pilote Realtek](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### Adaptec série 7 HBA non compatible + +Si vous avez un HBA Adaptec de la série 7 utilisant le pilote aacraid, nous vous recommandons de rester sur la version 6.12.4 pour le moment car il y a une régression dans le pilote dans les derniers noyaux. Pour plus d'informations, consultez ce [rapport de bug dans le noyau Linux](https://bugzilla.kernel.org/show_bug.cgi?id=217599). + +#### Autres problèmes ? + +Nous recommandons vivement d'installer le plugin **Corriger les Problèmes Courants** car il vous avertira des problèmes de configuration courants. + +D'autres crashs ou problèmes de stabilité ? Rendez-vous dans ***Paramètres > Serveur Syslog*** et activez **Miroir syslog vers flash**. Cela entraînera une usure supplémentaire de la clé USB mais est utile à court terme pour collecter des journaux après un crash. Après le prochain redémarrage, allez sur ***Outils > Diagnostics*** et téléchargez vos diagnostics anonymisés (depuis la version 6.12.5, les diagnostics incluent automatiquement les journaux qui ont été miroités sur le lecteur flash). Ensuite, démarrez un nouveau sujet sous [Support Général](https://forums.unraid.net/forum/55-general-support/) et fournissez tous les détails du problème. Une fois le problème résolu, n'oubliez pas de désactiver **Miroir syslog vers flash**. + +### Rétrogradation + +Si vous rétrogradez vers une version antérieure à 6.12.4, consultez également les [notes de version 6.12.4](6.12.4.md#rolling-back). + +## Modifications par rapport à [6.12.5](6.12.5.md) + +### Corrections de bugs et améliorations + +- modprobe.d/zfs.conf : supprimer `zfs_dmu_offset_next_sync=0` mitigation - plus nécessaire +- réseau : Correction de l'attribution d'adresse statique IPv6 +- La solution de contournement pour [les plantages liés au pilote i915 sur les systèmes Rocket Lake](6.12.0.md#crashes-related-to-i915-driver) n'est plus nécessaire. Après la mise à niveau, n'hésitez pas à ouvrir un terminal web et à taper ceci, puis redémarrez : + + `rm /boot/config/modprobe.d/i915.conf` + +### Mises à jour des packages + +- nvme-cli: version 2.6 +- zfs: version 2.1.14 + +### Noyau Linux + +- version 6.1.64 + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md new file mode 100644 index 0000000000..186a285e46 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md @@ -0,0 +1,103 @@ +# Version 6.12.8 2024-02-15 + +## Notes de mise à niveau + +Cette version comporte deux correctifs très importants. Tout d’abord, nous avons mis à jour Docker pour intégrer les correctifs de leur [récente alerte de sécurité](https://www.docker.com/blog/docker-security-advisory-multiple-vulnerabilities-in-runc-buildkit-and-moby/). + +Deuxièmement, nous avons corrigé un bug dans un cas particulier qui peut entraîner une perte de données si un lecteur de tableau nouvellement ajouté a un agencement de partition non standard. Si vous ajoutez l'un de ces lecteurs, la deuxième fois que vous démarrez le tableau, le lecteur apparaîtra comme non formaté. Si cela se produit, veuillez contacter le support et nous pourrons vous aider à récupérer les données. Même si vous n'avez pas rencontré ce problème, nous vous recommandons de mettre à jour pour ne pas être affecté lors de l'ajout de lecteurs à l'avenir. + +Cette version inclut également quelques bons correctifs dans le réseau, les conteneurs Docker, le support Time Machine et les machines virtuelles, ainsi qu'un correctif pour un ralentissement que certains systèmes rencontraient sur le tableau de bord. Nous avons également amélioré la gestion des attributs SMART pour les disques NVME et SSD. Détails ci-dessous. + +### Problèmes connus + +#### Plugins obsolètes + +Les plugins obsolètes peuvent causer des problèmes, nous recommandons de les garder à jour. + +#### Traces d'appel et plantages liés à macvlan + +Si vous obtenez des traces d'appels liées à macvlan (ou à tout autre plantage inexpliqué), comme première étape, nous vous recommandons de naviguer vers ***Paramètres > Docker***, de passer à la vue **avancée**, et de changer le **type de réseau personnalisé Docker** de **macvlan** à **ipvlan**. C'est la configuration par défaut qu'Unraid a expédiée depuis la version 6.11.5 et devrait fonctionner pour la plupart des systèmes. + +Notez que certains utilisateurs ont signalé des problèmes avec le transfert de port depuis certains routeurs (Fritzbox) et une fonctionnalité réduite avec des outils de gestion de réseau avancés (Ubiquity) en mode ipvlan. Si cela vous affecte, consultez la solution alternative disponible depuis Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces). + +#### Problèmes de réseau dus aux trames jumbo + +Si vous rencontrez des problèmes réseau de quelque nature que ce soit, vérifiez que vous n'avez pas activé les jumbo frames. Allez à ***Paramètres > Paramètres réseau > eth0*** et confirmez que le **MTU désiré** est 1500. Pour plus d'informations, consultez l'[avertissement sur les problèmes courants pour les jumbo frames](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Problèmes dus aux cartes réseau Realtek + +Le noyau mis à jour corrige le problème de blocage avec les jumbo frames et le pilote interne Realtek 8125. Cependant, nous recommandons toujours de suivre les conseils ci-dessus concernant les jumbo frames. + +Si vous continuez à rencontrer des problèmes de stabilité réseau et que ***Outils > Dispositifs système*** affiche que vous avez un contrôleur Ethernet Realtek, récupérez le numéro de pièce affiché et recherchez dans les Applications Communautaires pour voir s'il y a un plugin de pilote fourni par Realtek pour cet appareil. Pour plus d'informations, voir la [page de support pour les plugins de pilotes Realtek](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### Autres problèmes ? + +Nous recommandons vivement d'installer le plugin **Corriger les Problèmes Courants** car il vous avertira des problèmes de configuration courants. + +Si vous rencontrez d'autres plantages ou des problèmes de stabilité, allez à ***Paramètres > Serveur Syslog*** et activez **Miroir syslog vers flash**. Cela entraînera une usure supplémentaire de votre périphérique de démarrage USB, mais est utile à court terme pour collecter des journaux après un plantage. + +Après le prochain redémarrage, naviguez vers ***Outils > Diagnostics*** et téléchargez vos diagnostics anonymisés (à partir de la version 6.12.5, les diagnostics incluent automatiquement les journaux qui étaient en miroir sur le lecteur flash). + +Enfin, commencez un nouveau sujet sous [Support Général](https://forums.unraid.net/forum/55-general-support/) et fournissez tous les détails du problème. Une fois le problème résolu, assurez-vous de désactiver **Miroir syslog vers flash**. + +### Rétrogradation + +Soyez conscient que revenir à une version précédente rendra votre système vulnérable aux problèmes de sécurité Docker et au scénario de perte de données potentielle mentionné dans [Notes de mise à niveau](#upgrade-notes). + +Si vous rétrogradez à une version antérieure à 6.12.6, consultez également les [notes de version 6.12.6](6.12.6.md#rolling-back). + +## Modifications par rapport à la version 6.12.7 + +Correction d'un problème lié à la mise à niveau des versions rc. + +## Changements par rapport à [6.12.6](6.12.6.md) + +### Corrections de bugs et améliorations + +- Docker : + - Correction des itinéraires WG ajoutés à la bonne interface (br0 ou eth0 ou bond0) + - Utilisation de "démonter paresseux" du docker image pour éviter le blocage de l'arrêt de l'array + - Mis à jour pour corriger plusieurs problèmes de sécurité (CVE-2024-21626, CVE-2024-24557) +- Améliorations réseau : + - Démarrez plus rapidement en vérifiant le support avant d'attribuer des adresses DHCP + - Suppression des zéros initiaux des adresses IPv4 et IPv6 + - Nouvelles commandes '/etc/rc.d/rc.inet1 status' et '/etc/rc.d/rc.inet1 status ip' pour aider au dépannage réseau depuis la ligne de commande +- Notifications : ajout de ntfy.sh aux agents de notification +- Améliorations SMART : + - Correction du test automatique NVME + - Correction de l'affichage de l'attribut SMART "Temps de puissance cumulée, heures:minutes xxxxx:yy" + - Afficher KB/MB/GB/TB écrits dans les Attributs SMART pour les SSD + - Ajout de l'attribut SMART 'Endurance restante SSD +- Journalisation système : + - Par défaut, syslog est copié sur la clé USB au démarrage, voir ***Paramètres > Serveur Syslog*** pour désactiver + - Les journaux ci-dessus et **Miroir syslog vers USB** sont maintenant disponibles au prochain démarrage sous ***Outils > Syslog*** et dans diagnostics +- Gestionnaire VM: Correction pour la rétrogradation : si le modèle de VM a été mis à jour vers le dernier type de machine QEMU, il ne sera pas trouvé lors de la rétrogradation. Ce changement trouve la version actuelle la plus récente pour un type de machine donné. +- ZFS : Utiliser le drapeau d'importation zpool "-f" pour permettre l'importation de pools étrangers +- Autres : + - Activer l'amorçage EFI par défaut pour les nouvelles installations + - Correction du ralentissement sur les pages de Dashboard et Docker (et réduit l'écriture sur périphérique flash) + - Formatage : ne pas initialiser la disposition des partitions de périphériques si elle est déjà valide. + - Mise à jour du système d'exploitation : refonte des pages de mise à jour et de rétrogradation du système d'exploitation, voir [article de blog](https://unraid.net/blog/new-update-os-tool) + - Correction de l'incapacité de MacOS à écrire sur le partage 'flash' et rétablissement de la compatibilité Time Machine (changements fruit) + - Permettre aux Applications Communautaires (si installées) de démarrer automatiquement les conteneurs lors d'une installation multiple + - Formulaire de retour : changer le bouton TERMINÉ en ANNULER + +### Mises à jour des packages + +- docker : version 24.0.9 +- kernel-firmware : version 20231226\_abfcad8 + +### Noyau Linux + +- version 6.1.74 + - CONFIG\_USB\_SERIAL\_XR : Pilote USB MaxLinear/Exar pour port série + - CONFIG\_CAN : Support du sous-système de bus CAN + - CONFIG\_CAN\_NETLINK : Pilotes de périphériques CAN avec support Netlink + - CONFIG\_CAN\_GS\_USB : Interfaces compatibles Geschwister Schneider UG et candleLight + - CONFIG\_SCSI\_LPFC : Support de la fibre optique Emulex LightPulse + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md new file mode 100644 index 0000000000..50ea50599f --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md @@ -0,0 +1,77 @@ +# Version 6.12.9 2024-03-26 + +## Notes de mise à niveau + +Il s'agit d'une version de correction de bogue, résolvant une belle collection de problèmes signalés par la communauté, détails ci-dessous. Nous recommandons fortement à tous les utilisateurs de passer à cette version. + +### Problèmes connus + +#### Plugins obsolètes + +Les plugins obsolètes peuvent causer des problèmes, nous recommandons de les garder à jour. + +#### Traces d'appel et plantages liés à macvlan + +Si vous obtenez des traces d'appels liées à macvlan (ou à tout autre plantage inexpliqué), comme première étape, nous vous recommandons de naviguer vers ***Paramètres > Docker***, de passer à la vue **avancée**, et de changer le **type de réseau personnalisé Docker** de **macvlan** à **ipvlan**. C'est la configuration par défaut qu'Unraid a expédiée depuis la version 6.11.5 et devrait fonctionner pour la plupart des systèmes. + +Notez que certains utilisateurs ont signalé des problèmes avec le transfert de port depuis certains routeurs (Fritzbox) et une fonctionnalité réduite avec des outils de gestion de réseau avancés (Ubiquity) en mode ipvlan. Si cela vous affecte, consultez la solution alternative disponible depuis Unraid [6.12.4](6.12.4.md#fix-for-macvlan-call-traces). + +#### Problèmes de réseau dus aux trames jumbo + +Si vous rencontrez des problèmes réseau de quelque nature que ce soit, vérifiez que vous n'avez pas activé les jumbo frames. Allez à ***Paramètres > Paramètres réseau > eth0*** et confirmez que le **MTU désiré** est 1500. Pour plus d'informations, consultez l'[avertissement sur les problèmes courants pour les jumbo frames](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702). + +#### Problèmes dus aux cartes réseau Realtek + +Le noyau mis à jour corrige le problème de blocage avec les jumbo frames et le pilote interne Realtek 8125. Cependant, nous recommandons toujours de suivre les conseils ci-dessus concernant les jumbo frames. + +Si vous continuez à rencontrer des problèmes de stabilité réseau et que ***Outils > Dispositifs système*** affiche que vous avez un contrôleur Ethernet Realtek, récupérez le numéro de pièce affiché et recherchez dans les Applications Communautaires pour voir s'il y a un plugin de pilote fourni par Realtek pour cet appareil. Pour plus d'informations, voir la [page de support pour les plugins de pilotes Realtek](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/). + +#### Autres problèmes ? + +Nous recommandons vivement d'installer le plugin **Corriger les Problèmes Courants** car il vous avertira des problèmes de configuration courants. + +Si vous rencontrez d'autres plantages ou des problèmes de stabilité, allez à ***Paramètres > Serveur Syslog*** et activez **Miroir syslog vers flash**. Cela entraînera une usure supplémentaire de votre périphérique de démarrage USB, mais est utile à court terme pour collecter des journaux après un plantage. + +Après le prochain redémarrage, naviguez vers ***Outils > Diagnostics*** et téléchargez vos diagnostics anonymisés (à partir de la version 6.12.5, les diagnostics incluent automatiquement les journaux qui étaient en miroir sur le lecteur flash). + +Enfin, commencez un nouveau sujet sous [Support Général](https://forums.unraid.net/forum/55-general-support/) et fournissez tous les détails du problème. Une fois le problème résolu, assurez-vous de désactiver **Miroir syslog vers flash**. + +### Rétrogradation + +La fonctionnalité de "Docker Patch 6.12.8" est désormais intégrée à Unraid. Si vous revenez à la version 6.12.8, vous souhaiterez peut-être réinstaller ce plugin. + +Si vous revenez à une version antérieure à 6.12.8, consultez également les [notes de version 6.12.8](6.12.8.md#rolling-back). + +## Modifications par rapport à [6.12.8](6.12.8.md) + +### Corrections de bugs et améliorations + +- Docker + - Ignorer les chemins vides dans le fichier de configuration lors de l'ajout ou de la mise à jour de conteneurs + - Résoudre certains problèmes de mise à jour des conteneurs + - Corriger les notifications lorsque des mises à jour de conteneur sont disponibles +- Page d'accès à la gestion + - Résoudre le problème d'affichage des URL IPv6 + - Retirer le support des certificats SSL 'unraid.net' hérités, et supprimer "UpdateDNS" +- Diagnostiques : inclure le journal d'erreurs php pour aider à résoudre les problèmes +- Pilotes Système : résoudre le problème avec les traductions qui empêchait l'affichage de la page +- C.U.D : + - Résoudre les problèmes avec les guillemets simples ou dupliqués dans la description du serveur + - Ne pas essayer de démarrer unraid-api s'il n'est pas installé +- Corriger l'erreur de redirection lors du changement de description ou de modèle de serveur en mode uniquement http, ou lors du changement de nom de serveur en mode http ou https +- Augmenter la limite de taille tmpfs de /run de 32M à 128M +- Introduire un délai entre la création de la table de partition GPT et l'ordre au noyau de relecture pour éviter l'erreur "périphérique ou ressource occupé" +- shfs : corriger la méthode d'allocation highwater en association avec les volumes zfs +- nfs : s'assurer que les montages NFSv4 sont activés par défaut +- Résoudre divers avertissements PHP +- Changer le serveur de temps par défaut pour les nouvelles installations à "time.google.com" + +### Noyau Linux + +- version 6.1.82 + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- Un sous-ensemble de mises à jour de sécurité, voir [ce blog post](https://unraid.net/blog/cvd) pour les détails. Nous recommandons de mettre à niveau vers la dernière version stable pour des mises à jour de sécurité supplémentaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md new file mode 100644 index 0000000000..270d1a0691 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md @@ -0,0 +1,680 @@ +## Version 6.9.0 2021-02-27 + +Résumé des nouvelles fonctionnalités + +## Pools multiples + +Cette fonctionnalité vous permet de définir jusqu'à 35 pools nommés, chacun pouvant contenir jusqu'à 30 appareils de stockage. + +- Note : Un disque/pool de cache pré-6.9.0 est maintenant simplement un pool nommé "cache". Lorsqu'un serveur avec un disque/pool de cache défini est mis à niveau, une sauvegarde de `config/disk.cfg` sera enregistrée dans `config/disk.cfg.bak`, et les paramètres de l'attribution de l'appareil de cache seront déplacés dans un nouveau fichier, `config/pools/cache.cfg`. Si vous revenez plus tard à une version antérieure de l'Unraid OS, vous perdez vos attributions de cache et devez réattribuer manuellement les appareils au cache. Tant que vous correctez les appareils, les données doivent rester intactes. + +Lorsque vous créez un partage utilisateur ou modifiez un partage utilisateur existant, vous pouvez spécifier quel pool doit être associé à ce partage. + +Un point à noter : lorsqu'une liste de répertoires est obtenue pour un partage, les volumes de disques d'array Unraid et tous les pools contenant ce partage sont fusionnés dans cet ordre : + +> pool assigné au partage +> +> disk1 +> +> « : » +> +> disk28 +> +> toutes les *autres* pools selon l'ordre +> [strverscmp()](https://man7.org/linux/man-pages/man3/strverscmp.3.html). + +Un pool à un seul appareil peut être formaté en xfs, btrfs ou (déprécié) reiserfs. Un pool à plusieurs appareils ne peut être formaté qu'en btrfs. Une future version inclura la prise en charge de plusieurs pools "Unraid array", ainsi qu'un certain nombre d'autres types de pools. + +- Note : Autre chose à prendre en compte : Supposons que vous ayez un pool btrfs à 2 appareils. Ce sera ce que btrfs appelle "raid1" et que la plupart des gens comprendraient comme "disques en miroir". Eh bien, c'est en grande partie vrai, car les mêmes données existent sur les deux disques, mais pas nécessairement au niveau du bloc. Supposons maintenant que vous créiez un autre pool, et ce que vous faites est de ne pas attribuer l'un des appareils de l'ancien pool btrfs à 2 appareils et de l'attribuer à ce pool. Maintenant, vous avez x2 pools btrfs à un seul appareil. Au démarrage de l'array, l'utilisateur pourrait logiquement supposer qu'il y a maintenant x2 pools avec exactement les mêmes données. Cependant, ce n'est pas le cas. Au lieu de cela, lorsqu'Unraid OS voit qu'un appareil btrfs a été supprimé d'un pool multi-appareils existant, au démarrage de l'array, il effectuera un `wipefs` sur cet appareil, de sorte qu'au montage, il ne sera pas inclus dans l'ancien pool. + +### Options de rééquilibrage btrfs supplémentaires + +Les pools multisupports sont toujours créés par défaut avec le profil *raid1* de %%BTRFSbtrfs%%. Si vous avez 3 périphériques ou plus dans un pool, vous pouvez maintenant rééquilibrer vers le profil *raid1c3* (x3 copies de données sur des périphériques distincts). Si vous avez 4 périphériques ou plus dans un pool, vous pouvez maintenant passer au *raid1c4* (x4 copies de données sur des périphériques distincts). Nous avons également modifié l'opération d'équilibrage du *raid6* pour définir les métadonnées en *raid1c3* (précédemment *raid1*). + +Cependant, nous avons remarqué que l'application de l'un de ces filtres d'équilibrage à un volume complètement vide laisse certaines étendues de données avec l'ancien profil. La solution est simplement de relancer le même équilibre. Nous considérons cela comme un bug de btrfs et si aucune solution ne se présente, nous ajouterons la deuxième balance par défaut au code. + +### Alignement de partition 1 MiB SSD + +Nous avons ajouté une autre disposition de partition où le début de la partition 1 est aligné sur une limite de 1 MiB. Autrement dit, pour les appareils qui présentent des secteurs de 512 octets, la partition 1 commencera au secteur 2048 ; pour les appareils ayant des secteurs de 4096 octets, au secteur 256. Ce type de partition est maintenant utilisé lors du formatage de tout stockage non rotatif non formaté uniquement. + +Il n'est pas clair quel avantage l'alignement sur 1 MiB offre. Pour certains appareils SSD, vous ne verrez aucune différence ; pour d'autres, peut-être une grande différence de performance. LimeTech ne recommande pas de repartitionner un appareil SSD existant à moins que vous n'ayez une raison impérieuse de le faire (ou que votre TOC ne vous laisse pas faire). + +Pour repartitionner un SSD, il est nécessaire de d'abord effacer toute structure de partition existante sur l'appareil. Bien sûr, cela effacera toutes les données présentes sur l'appareil. + +`blkdiscard /dev/xxx  # par exemple /dev/sdb ou /dev/nvme0n1 etc` + +AVERTISSEMENT : assurez-vous de taper le bon identifiant de périphérique car **toutes les données seront perdues sur ce périphérique !** + +Au prochain démarrage de l'array, le périphérique apparaîtra comme non formaté, et comme il n'y a maintenant plus de structure de partition, Unraid OS la créera. + +- Remarque : Si vous souhaitez repartitionner votre disque/pool de cache SSD tout en conservant les données, veuillez envisager de publier sur le [Forum de la Communauté Unraid](https://forums.unraid.net/forum/55-general-support/) pour obtenir une assistance avec votre configuration particulière. + +### Gestion SMART et Avertissements de Seuil de Stockage + +Il y a un fichier de configuration nommé `config/smart-one.cfg` qui stocke des informations relatives à SMART, par exemple, le type de contrôleur à passer à `smartctl` dans le but d'obtenir des informations SMART. De plus, les seuils de volume et de criticité des espaces libres sont stockés dans ce fichier. À partir de cette version, ces paramètres de configuration sont gérés différemment. + +Dans le cas de la configuration SMART, les réglages sont enregistrés par ID de l'appareil au lieu de par ID de slot. Cela nous permet de gérer SMART pour les appareils non affectés. Cela permet également à la configuration SMART de "suivre l'appareil" peu importe le slot auquel il est attribué. Cependant, l'implication est que vous devez manuellement reconfigurer les paramètres SMART pour tous les appareils qui diffèrent du défaut. + +Les paramètres de seuil de volume et d'espace critique ont été extraits de ce fichier de configuration et sont maintenant enregistrés dans `config/disk.cfg` (pour le tableau Unraid) et dans les fichiers de configuration de pool pour chaque pool. + +Après la mise à niveau, vous pouvez recevoir une notification telle que : `Avis [TOWER] - Disque 1 revenu à un niveau d'utilisation normal`. Comme expliqué ci-dessus, tous vos paramètres de configuration SMART ont été réinitialisés par défaut. Visitez `Paramètres -> Paramètres du disque` pour revoir les paramètres par défaut et les modifier pour des lecteurs individuels via `Principal -> Disque X -> Paramètres`. + +## Meilleur Support de Module/Pilote Tiers + +Rappelez-vous que nous distribuons des modules Linux et du firmware dans des fichiers squashfs séparés qui sont montés en lecture seule sur `/lib/modules` et `/lib/firmware`. Nous configurons maintenant un overlayfs sur chacun de ces points de montage, rendant possible l'installation de modules tiers à l'aide du système de plugins, à condition que ces modules soient construits contre la version actuelle du noyau. De plus, nous définissons un nouveau répertoire sur le périphérique USB flash de démarrage appelé `config/modprobe.d`, dont le contenu est copié dans `/etc/modprobe.d` au début de la séquence de démarrage avant le chargement du noyau Linux. + +Cette technique est utilisée pour installer le pilote Nvidia (voir ci-dessous) et peut être utilisée par les Développeurs de la Communauté pour fournir un moyen plus facile d'ajouter des modules non inclus dans le noyau Unraid: pas besoin de construire des fichiers bzimage, bzmodules, bzfirmware et bzroot personnalisés ! + +### Passage de Paramètres à des Modules + +L'utilisation de fichiers `conf` dans `config/modprobe.d` peut être utilisée pour spécifier des options et passer des arguments aux modules. + +Actuellement, nous n'avons pas de support UI pour spécifier quelle interface réseau devrait être "principale" dans un bond ; le pilote de bonding sélectionne simplement le premier membre par défaut. Dans certaines configurations, il peut être utile de spécifier une interface préférée explicite, par exemple, si vous avez un bond avec une interface 1Gbit/s (eth0) et une interface 10Gbit/sec (eth1). + +Puisque la configuration du bond implique le chargement du module noyau de bonding, +vous pouvez spécifier quelle interface doit être définie comme principale de cette manière : + +Créez un fichier sur la clé USB : `config/modprobe.d/bonding.conf` qui contient cette ligne unique, puis redémarrez : + +`options bonding primary=eth1` + +Après le redémarrage, vous pouvez vérifier si cela a fonctionné en entrant cette commande : + +`cat /proc/net/bonding/bond0` + +où vous devriez voir l'interface sélectionnée apparaître comme "Primary Slave". + +### Pilote Nvidia + +Le but de créer des superpositions squashfs montées sur `/lib/modules` et +`/lib/firmware`, ainsi que de fournir un mécanisme permettant de définir des paramètres de module personnalisés, est de permettre l'intégration de pilotes tiers dans Unraid OS sans nécessiter de compilations personnalisées des fichiers bz\*. Un des pilotes tiers les plus demandés pour Unraid OS est le pilote GPU Linux de Nvidia. Ce pilote est requis pour la capacité de transcodage dans les conteneurs Docker. Fournir ce pilote comme plugin pour Unraid OS a nécessité beaucoup de travail pour configurer un environnement dev, compiler le pilote et les outils, puis décompacter les bzmodules, ajouter le pilote, créer de nouveaux bzmodules, et enfin les remplacer dans le répertoire racine de la clé USB. Ce travail a été réalisé par les membres de la communauté [@chbmb](https://forums.unraid.net/profile/6219-chbmb/), [@bass\_rock](https://forums.unraid.net/profile/78406-bass_rock/), et d'autres. En s'appuyant sur leur travail, avec le membre [@ich777](https://forums.unraid.net/profile/72388-ich777/), nous créons maintenant des packages de pilotes Nvidia séparés compilés pour chaque nouvelle version d'Unraid OS utilisant un nouveau noyau, mais non inclus directement dans la distribution bz\*. + +Un fichier JSON décrivant la (ou les) version(s) de pilote prise(s) en charge avec chaque noyau peut être téléchargé ici : + +[https://s3.amazonaws.com/dnld.lime-technology.com/drivers/releases.json](https://s3.amazonaws.com/dnld.lime-technology.com/drivers/releases.json) + +Chaque paquet de pilotes comprend le pilote Nvidia Linux GPU ainsi qu'un ensemble d'outils de conteneur. + +`nvidia-container-runtime`\ +`nvidia-container-toolkit`\ +`libnvidia-container` + +Ces outils sont utiles pour faciliter le transcodage accéléré dans les conteneurs Docker. Un grand merci à +[@ich777](https://forums.unraid.net/profile/72388-ich777/) pour son aide et pour avoir fourni les outils. +[@ich777](https://forums.unraid.net/profile/72388-ich777/) a également fourni un [plugin pratique](https://raw.githubusercontent.com/ich777/unraid-nvidia-driver/master/nvidia-driver.plg) pour faciliter l'installation du pilote correct. + +L'inclusion de modules tiers dans Unraid OS en utilisant le système de plugins est encore en cours de développement. + +## Docker + +Il est maintenant possible de sélectionner différentes icônes pour plusieurs conteneurs du même type. + +Nous avons également apporté des modifications pour ajouter de la flexibilité dans l'attribution du stockage pour le moteur Docker. + +- Sous un vdisk formaté en btrfs monté en boucle sur /var/lib/docker. +- Sous un vdisk formaté en xfs monté en boucle sur /var/lib/docker. +- Dans un répertoire spécifié qui est monté en en-tête sur /var/lib/docker. + +Docker utilisera soit le pilote de stockage 'btrfs' dans le cas d'un vdisk/répertoire formaté en btrfs, ou le pilote de stockage 'overlay2' dans le cas d'un vdisk/répertoire formaté en xfs. + +Implémenté comme suit : Premièrement, `rc.docker` détectera le type de système de fichiers monté à `/var/lib/docker`. + +Ensuite, `mount_image` est modifié pour supporter un fichier monté en boucle formaté soit avec btrfs soit avec xfs. + +De plus, nous avons ajouté la possibilité de monter en en-tête un répertoire au lieu d'utiliser une boucle. + +## Virtualisation + +Nous avons intégré les modifications apportées à la page Outils → Appareils Système par l'utilisateur [@Skitals](https://forums.unraid.net/profile/97624-skitals/), avec les améliorations de l'utilisateur [@ljm42](https://forums.unraid.net/profile/61877-ljm42/). Vous pouvez maintenant sélectionner les périphériques PCI à isoler de Linux au démarrage simplement en cochant des cases. Cela facilite la réservation de ces périphériques pour l'affectation à des VM. Cette technique est connue sous le nom de *stubbing* (car un pilote factice est attribué au périphérique au démarrage, empêchant le vrai pilote Linux d'être attribué). + +On pourrait se demander, si nous pouvons *mettre en liste noire* les pilotes individuels, pourquoi devons-nous encore stubber ces appareils pour les attribuer à des VM ? La réponse est : vous pouvez. Mais, si vous avez plusieurs appareils du même type, où certains doivent être passés à une VM et d'autres doivent avoir le pilote hôte Linux installé, alors vous devez utiliser le stubbing pour que les appareils passent aux VM. + +Note : Si vous avez installé le plugin VFIO-PCI Config, vous devriez le supprimer car cette fonctionnalité est désormais intégrée à Unraid OS 6.9. + +## Support Multilingue + +Une autre nouvelle fonctionnalité passionnante dans Unraid 6.9 est la possibilité de télécharger des packs linguistiques et d'utiliser Unraid OS dans un certain nombre de langues différentes. + +Un énorme travail et effort ont été mis en œuvre par [@bonienl](https://forums.unraid.net/profile/2736-bonienl/) pour fournir un support multilingue dans l'outil de gestion Unraid OS, alias, WebGUI. Actuellement, *anglais, espagnol, français, allemand, néerlandais, arabe, chinois simplifié, portugais et polonais* sont disponibles, et plusieurs autres sont en cours de préparation. + +Grâce à [@Squid](https://forums.unraid.net/profile/10290-squid/), +les packs linguistiques sont installés via le plugin Applications Communautaires - +recherchez une nouvelle catégorie intitulée Langue. + +- Remarque : les applications communautaires doivent être à jour pour installer les langues. Pour plus de détails, [voir ici.](https://forums.unraid.net/topic/38582-plug-in-community-applications/page/124/?tab=comments#comment-866710) + +Chaque pack de langue existe dans des dépôts Github de l'organisation publique Unraid. + +*Pour plus d'informations sur le support multilingue, [veuillez consulter notre guide.](https://unraid.net/blog/unraid-6-9-multi-language-support)* + +Nous avons également ajouté une [section multilingue du forum communautaire Unraid](https://forums.unraid.net/forum/75-multi-language-section/). + +## Autre + +### Intégration des pilotes GPU + +Unraid OS comprend maintenant des pilotes d'arbres GPU intégrés. + +`/etc/modprobe.d/ast.conf`\ +`/etc/modprobe.d/i915.conf`\ +`/etc/modprobe.d/amdgpu.conf`\ +`/etc/modprobe.d/radeon.conf` + +Chacun de ces fichiers a une seule ligne qui *met en liste noire* le pilote, l'empêchant de se charger par le noyau Linux. + +Il est possible d'outrepasser les paramètres dans ces fichiers en créant un fichier `conf` personnalisé dans le répertoire `config/modprobe.d` sur votre périphérique USB de démarrage. + +`touch /boot/config/modprobe.d/amdgpu.conf` + +Cela ne doit être fait qu'une seule fois, il n'est pas nécessaire de l'ajouter à votre script go. + +Dans la version 6.9.1, si votre script go contient une commande modprobe pour votre GPU et/ou une commande pour corriger les permissions sur `/dev/dri`, vous devriez les supprimer : + +`modprobe amdgpu`\ +`chmod -R 777 /dev/dri` + +Dans la version 6.9.0, si le docker que vous utilisez n'arrive pas à accéder au GPU, ajoutez/gardez cette ligne dans votre script go : + +`chmod -R 777 /dev/dri` + +mais supprimez celle-ci : + +`modprobe amdgpu` + +### Noyau Linux + +Nous utilisons un noyau [LTS](https://www.kernel.org/) (Long Term Supported) : version 5.10.x. + +Nouvelles fonctionnalités activées dans le noyau : + +- Module WireGuard +- Module iScsi Target +- Module USB/IP + +Ces pilotes hors série sont inclus : + +- Support du pilote Ethernet QLogic QLGE 10Gb (provenant de la mise en attente) +- RealTek r8125 : version 9.003.05 (inclus pour les nouveaux r8125) +- HighPoint rr272x\_1x : version v1.10.6-19\_12\_05 (à la demande de l'utilisateur) + +Notez que lorsque nous mettons à jour le noyau Linux, si un pilote hors série ne se compile plus, il sera omis. + +Ces pilotes sont **omis** : + +- Highpoint RocketRaid r750 (ne compile pas) +- Highpoint RocketRaid rr3740a (ne compile pas) +- Tehuti Networks tn40xx (ne compile pas) + +Si vous avez besoin de l'un de ces pilotes, veuillez créer un rapport de bogue et nous prendrons le temps de chercher des alternatives. Encore mieux, harcelez le fabricant du contrôleur pour qu'il mette *à jour* ses pilotes. + +### Paquets de base + +Tous mis à jour aux dernières versions. De plus, Linux +PAM a été intégré. + +### Contrôle de rotation SAS + +Nous devrions maintenant pouvoir correctement gérer la montée/descente des dispositifs SAS (enfin) et avec l'incroyable aide de +[@doron](https://forums.unraid.net/profile/8006-doron/) nous y sommes presque. + +### Améliorations SSH + +Il y a des changements dans `/etc/ssh/sshd_conf` pour améliorer la sécurité (merci à [@Mihai](https://forums.unraid.net/profile/89549-mihai/) et [@ljm42](https://forums.unraid.net/profile/61877-ljm42/) pour les suggestions) : + +- Seul l'utilisateur root est autorisé à se connecter via ssh (rappelez-vous : pas d'utilisateurs traditionnels dans Unraid OS - juste 'root') +- un mot de passe non null est désormais requis. Pour définir un mot de passe, allez dans l'onglet Utilisateurs (ou Paramètres -> Utilisateurs, selon votre configuration), puis choisissez l'utilisateur "root", tapez un mot de passe complexe deux fois et appuyez sur CHANGE (pas RESET) +- le tunneling non-root est désactivé + +De plus, lors de la mise à jour, nous veillons à ce que le répertoire `config/ssh/root` existe sur le périphérique USB de démarrage. + +Donc, si vous aviez auparavant ajouté des commandes à votre script `go` pour copier `authorized_keys` et d'autres fichiers vers `/root/.ssh`, vous devez supprimer ces commandes et simplement mettre les fichiers dans `config/ssh/root`, puis redémarrer. + +Remarque : si vous examinez le script de démarrage sshd `/etc/rc.d/rc.sshd`, au démarrage tous les fichiers du répertoire `config/ssh` sont copiés dans `/etc/ssh`. + +### "erreurs GSO inattendues" + +Si votre journal système est inondé d'erreurs telles que : + +`Feb 20 09:09:21 Tower kernel: tun: unexpected GSO type: 0x0, gso_size 31, hdr_len 66` + +Vous devez éditer chaque VM et changer le type de modèle pour le pont Ethernet de `virtio` à `virtio-net`. + +```xml + + + + +
+ +``` + +### "noVNC a rencontré une erreur" + +Si vous recevez un message `noVNC a rencontré une erreur` après la mise à jour, veuillez vider le cache de votre navigateur. + +### Le support AFP a été supprimé + +Même Apple s'[�ecaigne](https://www.macworld.com/article/3600899/using-afp-to-share-a-mac-drive-its-time-to-change.html) de ce protocole. + +Pour une meilleure interopérabilité avec macOS, et pour exporter un partage à des fins de Time Machine, veuillez vous assurer que "Paramètres/Paramètres SMB/Interopérabilité macOS améliorée" est défini sur "Oui". + +## Journal des modifications + +#### Distro de base + +- aaa\_elflibs : version 15.0 build 27 +- acl : version 2.2.53 +- acpid : version 2.0.32 +- apcupsd : version 3.14.14 +- at-spi2-core : version 2.36.1 +- at : version 3.2.1 +- attr : version 2.4.48 +- avahi : version 0.8 +- bash : version 5.0.018 +- beep : version 1.3 +- bin : version 11.1 +- bluez-firmware : version 1.2 +- bridge-utils : version 1.7 +- brotli : version 1.0.9 build 2 +- btrfs-progs : version 5.10 +- bzip2 : version 1.0.8 +- ca-certificates : version 20201219 +- celt051 : version 0.5.1.3 +- cifs-utils : version 6.11 +- coreutils : version 8.32 +- cpio : version 2.13 +- cpufrequtils : version 008 +- cryptsetup : version 2.3.4 +- curl : version 7.74.0 (CVE-2020-8231 CVE-2020-8286 CVE-2020-8285 CVE-2020-8284) +- cyrus-sasl : version 2.1.27 +- db48 : version 4.8.30 +- dbus : version 1.12.20 +- dcron : version 4.5 +- devs : version 2.3.1 build 25 +- dhcpcd : version 8.1.9 +- diffutils : version 3.7 +- dmidecode : version 3.3 +- dnsmasq : version 2.84 (CVE-2020-25681 CVE-2020-25682 CVE-2020-25683 CVE-2020-25684 CVE-2020-25685 CVE-2020-25686 CVE-2020-25687) +- docker : version 19.03.14 +- dosfstools : version 4.1 +- e2fsprogs : version 1.45.6 +- ebtables : version 2.0.11 +- eject : version 2.1.5 +- elvis : version 2.2\_0 +- etc : version 15.0 +- ethtool : version 5.9 +- eudev : version 3.2.5 +- file : version 5.39 +- findutils : version 4.7.0 +- flex : version 2.6.4 +- floppy : version 5.5 +- fontconfig: version 2.13.92 +- freetype : version 2.10.4 +- fribidi : version 1.0.10 +- fuse3 : version 3.10.0 +- gawk : version 4.2.1 +- gd : version 2.2.5 +- gdbm : version 1.18.1 +- genpower : version 1.0.5 +- getty-ps : version 2.1.0b +- git : version 2.29.1 +- glib2 : version 2.66.2 +- glibc-solibs : version 2.30 build 2 +- glibc-zoneinfo : version 2020d +- glibc : version 2.30 build 2 +- gmp : version 6.2.0 +- gnutls : version 3.6.15 +- gptfdisk : version 1.0.5 +- grep : version 3.4 +- gtk+3 : version 3.24.23 +- gzip : version 1.10 +- harfbuzz : version 2.7.2 +- haveged : version 1.9.13 +- hdparm : version 9.60 +- hostname : version 3.23 +- htop : version 3.0.2 +- icu4c : version 68.1 +- inetd : version 1.79s +- infozip : version 6.0 +- inotify-tools : version 3.20.2.2 +- intel-microcode : version 20210216 +- iproute2 : version 5.9.0 +- iptables : version 1.8.5 +- iputils : version 20200821 +- irqbalance : version 1.6.0 +- jansson : version 2.13.1 +- jasper : version 2.0.22 +- jemalloc : version 5.2.1 +- jq : version 1.6 +- firmware noyau : version 20210211\_f7915a0 +- keyutils : version 1.6.1 +- kmod : version 27 +- krb5 : version 1.18.2 +- lbzip2 : version 2.5 +- lcms2 : version 2.11 +- less : version 563 +- libX11 : version 1.6.12 +- libaio : version 0.3.112 +- libarchive : version 3.4.3 +- libcap-ng : version 0.8 build 2 +- libcgroup : version 0.41 +- libdaemon : version 0.14 +- libdrm : version 2.4.102 +- libedit : version 20191231\_3.1 +- libestr : version 0.1.11 +- libevdev : version 1.10.0 +- libevent : version 2.1.12 +- libfastjson : version 0.99.8 +- libffi : version 3.3 +- libgcrypt : version 1.8.7 +- libglvnd : version 1.3.2 +- libgpg-error : version 1.39 +- libgudev : version 234 +- libidn : version 1.36 +- libjpeg-turbo : version 2.0.5 +- liblogging : version 1.0.6 +- libmnl : version 1.0.4 +- libnetfilter\_conntrack : version 1.0.8 +- libnfnetlink : version 1.0.1 +- libnftnl : version 1.1.8 +- libnl3 : version 3.5.0 +- libpcap : version 1.9.1 +- libpciaccess : version 0.16 +- libpng : version 1.6.37 +- libpsl : version 0.21.1 build 2 +- librsvg : version 2.50.1 +- libseccomp : version 2.4.3 +- libssh2 : version 1.9.0 +- libssh : version 0.9.5 +- libtasn1 : version 4.16.0 +- libtirpc : version 1.2.6 +- libunistring : version 0.9.10 +- libusb-compat : version 0.1.5 +- libusb : version 1.0.23 +- libuv : version 1.34.0 +- libvirt-php : version 0.5.5 +- libvirt : version 6.6.0 (CVE-2020-14339) +- libwebp : version 1.1.0 build 3 +- libwebsockets : version 3.2.2 +- libx86: version 1.1 +- libxkbcommon : version 1.0.1 +- libxml2 : version 2.9.10 build 3 +- libxslt : version 1.1.34 +- libzip : version 1.7.3 +- lm\_sensors : version 3.6.0 +- lmdb : version 0.9.27 +- logrotate : version 3.17.0 +- lshw : version B.02.17 +- lsof : version 4.93.2 +- lsscsi : version 0.31 +- lvm2 : version 2.03.10 +- lz4 : version 1.9.1 +- lzip : version 1.21 +- lzo: version 2.10 +- mc : version 4.8.25 +- miniupnpc: version 2.1 +- mpfr: version 4.1.0 +- nano : version 5.3 +- ncompress : version 4.2.4.6 +- ncurses : version 6.2\_20201024 +- net-tools : version 20181103\_0eebece +- nettle : version 3.6 +- network-scripts : version 15.0 build 9 +- nfs-utils : version 2.1.1 +- nghttp2 : version 1.41.0 +- nginx : version 1.19.5 (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516) +- nodejs : version 13.12.0 +- nss-mdns: version 0.14.1 +- ntfs-3g : version 2017.3.23 +- ntp : version 4.2.8p15 build 3 +- numactl : version 2.0.11 +- oniguruma : version 6.9.1 +- openldap-client : version 2.4.49 +- openssh : version 8.4p1 build 2 +- openssl-solibs : version 1.1.1i +- openssl : version 1.1.1i +- p11-kit : version 0.23.22 (CVE-2020-29361 CVE-2020-29361 CVE-2020-29361) +- pam : version 1.5.1 +- pango : version 1.46.2 +- patch: version 2.7.6 +- pciutils: version 3.7.0 +- pcre2 : version 10.35 +- pcre : version 8.44 +- php : version 7.4.15 (CVE-2019-11048 CVE-2020-7068 CVE-2020-7070 CVE-2020-7069) +- pixman: version 0.40.0 +- pkgtools : version 15.0 build 33 +- pm-utils : version 1.4.1 +- procps-ng : version 3.3.16 +- pv: version 1.6.6 +- qemu : version 5.1.0 (CVE-2020-10717, CVE-2020-10761) +- qrencode : version 4.0.2 +- reiserfsprogs: version 3.6.27 +- rpcbind : version 1.2.5 build 2 +- rsync: version 3.2.3 +- rsyslog : version 8.2002.0 +- samba : version 4.12.11 (CVE-2020-10700, CVE-2020-10704 CVE-2020-10730, CVE-2020-10745, CVE-2020-10760, CVE-2020-14303 CVE-2020-1472 CVE-2020-14318 CVE-2020-14318 CVE-2020-14318) +- sdparm : version 1.11 +- sed: version 4.8 +- sg3\_utils : version 1.45 +- shadow: version 4.8.1 +- shared-mime-info : version 2.0 +- smartmontools : version 7.1 +- spice : version 0.14.1 +- sqlite : version 3.33.0 +- ssmtp: version 2.64 +- sudo : version: 1.9.3p2 (CVE-2021-23239 CVE-2021-23240) +- sysfsutils: version 2.1.0 +- sysvinit-scripts : version 2.1 build 35 +- sysvinit : version 2.97 +- talloc : version 2.3.1 build 4 +- tar : version 1.32 +- tcp\_wrappers : version 7.6 build 3 +- tdb : version 1.4.3 build 4 +- telnet: version 0.17 +- tevent : version 0.10.2 build 4 +- traceroute: version 2.1.0 +- tree: version 1.8.0 +- ttyd : version 20200624 +- usbredir : version 0.7.1 +- usbutils : version 013 +- utempter: version 1.2.0 +- util-linux : version 2.36 build 2 +- vbetool: version 1.2.2 +- vsftpd : version 3.0.3 build 7 +- wget : version 1.20.3 +- which: version 2.21 +- wireguard-tools : version 1.0.20210223 +- wsdd : version 20180618 +- xev : version 1.2.4 +- xf86-video-vesa : version 2.5.0 +- xfsprogs : version 5.9.0 +- xinit : version 1.4.1 +- xkeyboard-config : version 2.31 +- xorg-server : version 1.20.9 build 3 +- xterm : version 361 +- xxHash : version 0.8.0 +- xz : version 5.2.5 +- yajl: version 2.1.0 +- zlib : version 1.2.11 +- zstd : version 1.4.5 + +#### Noyau Linux + +- version 5.10.19 +- CONFIG\_WIREGUARD : Tunnel de réseau sécurisé WireGuard +- CONFIG\_IP\_SET : Prise en charge des ensembles d'IP +- CONFIG\_SENSORS\_DRIVETEMP : Disques durs avec capteurs de température +- md/Unraid : version 2.9.17 + - support supprimé pour spinup group spinup/spdindown (fonctionnalité déplacée vers emhttpd) + - ajout de l’offset de démarrage de synchronisation configurable +- ajout de la prise en charge du noyau iSCSI :\n - CONFIG\_ISCSI\_TARGET : Pile du mode cible iSCSI de Linux-iSCSI.org + - CONFIG\_ISCSI\_TARGET\_CXGB4 : Pilote de déchargement de cible iSCSI Chelsio + - CONFIG\_LOOPBACK\_TARGET : Cible virtuelle TCM SAS et module de boucle tissu Linux/SCSI LDD + - CONFIG\_NVME\_TARGET : Prise en charge de la cible NVMe + - CONFIG\_NVME\_TARGET\_LOOP : Prise en charge du périphérique de bouclage NVMe + - CONFIG\_NVME\_TARGET\_PASSTHRU : Prise en charge du Passthrough NVMe Target + - CONFIG\_TARGET\_CORE : Mod de cible générique (TCM) et infrastructure ConfigFS + - CONFIG\_TCM\_FILEIO : Plugin de sous-système TCM/FILEIO pour Linux/VFS + - CONFIG\_TCM\_IBLOCK : Plugin de sous-système TCM/IBLOCK pour Linux/BLOCK + - CONFIG\_TCM\_PSCSI : Plugin de sous-système TCM/pSCSI pour Linux/SCSI + - CONFIG\_TCM\_USER2 : Plugin de sous-système TCM/USER pour Linux +- ajout de la prise en charge du noyau USB/IP :\n - CONFIG\_USBIP\_CORE : Prise en charge USB/IP\n - CONFIG\_USBIP\_VHCI\_HCD : VHCI hcd +- mpt3sas : ajout de /etc/modprobe.d/mpt3sas-workaround.conf pour définir\n "max\_queue\_depth=10000" +- oot: Realtek r8152: version 2.13.0 +- oot: Tehuti tn40xx: version 0.3.6.17.3 +- activation de pilotes natifs hwmon supplémentaires +- activation de pilotes hyperv supplémentaires + +#### Gestion + +- support AFP supprimé +- Support multilingue ajouté +- Support de plusieurs pools ajouté +- at: supprimer les messages d'ouverture/fermeture de session dans syslog +- éviter d'envoyer spinup/spindown aux périphériques non-rotatifs +- btrfs: inclure l'option de montage 'discard=async' +- correction de bug: renommer /etc/krb.conf en /etc/krb5.conf +- nettoyage passwd, shadow +- dhcpcd: ipv6: utiliser slaac hwaddr au lieu de slaac privé +- docker: corriger la logique d'affectation du driver de stockage +- docker: supporte à la fois les systèmes de fichiers btrfs et xfs +- emhtppd: supprimer le périphérique chiffré wipefs du pool multi-périphériques +- emhtptd: suivre l'arrêt propre/non propre en utilisant le fichier 'config/forcesync' +- emhttpd: ajout de la fonction wipefs (bouton 'Effacer' dans le WebGUI) +- emhttpd: éviter de supprimer inutilement le fichier mover.cron +- emhttpd: éviter d'utiliser le remount pour définir des options de montage supplémentaires +- emhttpd: correction de bug : pas de Smartdata pour le type de contrôleur non standard +- emhttpd: correction de bug : les températures initiales des périphériques ne s'affichent pas +- emhttpd: corriger la logique 'Effacer' pour les périphériques Unraid +- emhttpd: activer SMART sur les périphériques au démarrage +- emhttpd: corriger le réglage 'auto' où les pools activés pour le partage utilisateur ne doivent pas être exportés +- emhttpd: corriger le type de contrôleur "SMART" de disque non respecté lors de la lecture des températures +- emhttpd: corriger 'smartctl -n standby' externe causant le spinup du périphérique +- emhttpd : supprimer l'événement poll\_attributes +- emhttpd: implémenter le spinup/spindown de groupe; ajouter des appels spinup/spindown +- emhttpd : autoriser l'effacement des dispositifs de remplacement 'DISK\_DSBL\_NEW' +- emhttpd : restaurer l'appel de l'événement 'poll\_attributes' +- emhttpd: les périphériques non assignés s'arrêtent selon le défaut global +- emhttpd: encore une autre méthode de calcul 'free/used' btrfs +- corriger le crash d'emhttpd résultant de l'exportation de partages de disques NFS +- corriger les partitions de périphériques non-rotatifs qui n'étaient pas réellement alignées sur 1MiB +- se débarrasser du support de plugin 'system' (jamais utilisé) +- intégrer PAM +- intégrer les changements de script ljm42 vfio-pci +- loopbacks: permettre xfs ou btrfs basé sur le nom de fichier +- modprobe: lister en noir les pilotes GPU par défaut, config/modprobe.d/\* + peut annuler au démarrage +- monter tous les volumes btrfs avec l'option 'space\_cache=v2' +- monter les loopbacks avec l'option 'noatime'; activer 'direct-io' +- mount\_image : supporte le montage bind +- les partitions de périphériques non-rotatifs sont alignées par défaut sur une limite de 1MiB +- plugin: supporter la validation de fichiers sha256 +- rsyslog: corriger le "Mirror syslog to flash" cassé +- samba: désactiver aio par défaut +- shfs : déplacement : préserver ioctl\_iflags lors du déplacement entre les mêmes types de systèmes de fichiers +- shfs: déplacer: supporter les fichiers épars +- smart-one.cfg garde les informations SMART par ID au lieu de par emplacement; la configuration des avertissements critiques a été déplacée vers le fichier cfg disque/pool +- smb : problème de jointeure Ad corrigé +- smb: supprimer le paramétrage des options 'aio' dans smb.conf, utiliser les valeurs par défaut de samba +- ssh: ajouter un lien symbolique /root/.ssh au répertoire /boot/config/ssh/root +- ssh: autoriser uniquement l'utilisateur root, exiger des mots de passe, désactiver le tunneling non-root +- ssh: exiger des mots de passe, désactiver le tunneling non-root +- démarrage: configurer un overlayfs pour /lib/modules et /lib/firmware +- syslog: configurer pour écouter aussi sur le port udp localhost 514 +- terminal Web: inhiber la fenêtre pop-up d'avertissement lors de la fermeture de la fenêtre +- support wireguard : rc.wireguard : ajouter des règles iptables +- WebGUI: Correction des avertissements dockerupdate.php +- WebGUI: Mettre à jour le statut +- WebGUI: Ajouter l'option de carte de clavier 'Portugais (pt)' pour libvirt +- WebGUI: Ajouter un délai d'attente personnalisable lors de l'arrêt des conteneurs +- WebGUI: Ajouter une visionneuse de journaux pour vfio-pci +- WebGUI: Ajouter un agent de notification pour Discord +- WebGUI: Ajouter des informations sur les pools au diagnostic +- WebGUI: Ajouter des options d'équilibrage de pool raid1c3 et raid1c4 btrfs. +- WebGUI: Ajouter une boîte de dialogue de mise à jour au menu contextuel Docker +- WebGUI: Ajouter une option de redémarrage en "mode sécurisé" ponctuel +- WebGUI: Ajouter des informations btrfs pour tous les pools dans les diagnostics +- WebGUI: Nouveau paramètre d'affichage: afficher les identifiants de périphérique normalisés ou bruts +- WebGUI: Ajout du paramètre "Activer l'affectation du partage utilisateur" au pool de cache +- WebGUI: Prendre en charge les registres Docker privés avec authentification basique ou sans authentification, et améliorations pour l'authentification basée sur jetons +- WebGUI: Autoriser différents types d'images à télécharger avec un maximum de 512K +- WebGUI: Permettre aux conteneurs en double d'avoir des icônes différentes +- WebGUI : Autoriser le markdown dans les descriptions de containers +- WebGUI: Changer l'icône pour Info de la carte mère de l'engrenage (paramètres) à info +- WebGUI: Changé: Cohérence entre le tableau de bord et Docker sur l'accès aux journaux +- WebGUI: Tableau de bord: corriger les statistiques de l'interface manquante +- WebGUI: Tableau de bord: ajustement de style pour l'icône du serveur +- WebGUI: Détecter une session invalide et déconnecter l'onglet actuel +- WebGUI: Diagnostics : Supprimer les hachages SHA256 +- WebGUI: Interdire "?" dans les noms de partage +- WebGUI : Paramètres d'affichage : les couleurs doivent être des chiffres hexadécimaux de 3 ou 6 caractères +- WebGUI: Ne pas afficher les profils CA dans la liste Ajouter un conteneur +- WebGUI: Docker : autoriser le vdisk BTRFS ou XFS, ou l'emplacement de dossier +- WebGUI: Docker : gestion plus intuitive des images +- WebGUI: Corriger l'apparition de ' +- WebGUI: Corriger l'option de langue Azure / Gray Switch étant coupée +- WebGUI: Corriger les avertissements de bannières qui ne se ferment pas sans rechargement de page +- WebGUI: Corriger les VM démarrées qui n'apparaissent pas dans le tableau de bord +- WebGUI: Corriger le crash lors de la lecture de très gros fichiers journaux (limitation de la sortie à 1000 lignes). +- WebGUI : Corriger la suppression de toutes les notifications +- WebGUI: Corriger l'impossibilité de changer l'horaire de vérification de la parité s'il n'y a pas de pool de cache présent +- WebGUI: Corriger les notifications qui réapparaissent continuellement +- WebGUI: Corriger l'impossibilité d'utiliser les icônes en haut à droite si des notifications sont présentes +- WebGUI: Corriger la mauvaise référence d'URL de docker run +- WebGUI: Corriger: Tableau de bord / Défilement Docker sur iPad +- WebGUI: Corriger: correctement définir le cookie samesite (corriger le problème de connexion avec Safari) +- WebGUI: Pour profil de données de pool raid6 btrfs utilisez le profil de métadonnées raid1c3. +- WebGUI: Réorganisation des boutons d'icônes +- WebGUI: Page principale: masquer le bouton Déplacer lorsque les partages utilisateur ne sont pas activés +- WebGUI: Multilingue: Corriger l'erreur de régression : indicateur manquant pour les champs requis +- WebGUI: Multilangue : Correction impossible de supprimer / modifier les utilisateurs +- WebGUI: Paramètres réseau: montrer le premier serveur DNSv6 +- WebGUI: Réseau: autoriser la valeur métrique de zéro pour ne pas définir de passerelle par défaut +- WebGUI: Réseau: corriger les extensions de confidentialité non définies +- WebGUI: Nouvelles permissions: Prise en charge des pools multi-cache +- WebGUI: Notifications : Corriger l'écart sur blanc / noir +- WebGUI: Permettre la configuration du système de fichiers lorsque la matrice est démarrée pour les volumes non démontables. +- WebGUI: Empêcher "Ajouter" de revenir à l'anglais lors de l'ajout d'un nouvel utilisateur avec un nom d'utilisateur invalide +- WebGUI: Empêcher les nics regroupés d'être liés à vfio-pci aussi +- WebGUI: Retirer WG du Tableau de bord s'il n'y a pas de tunnels définis +- WebGUI: Afficher un message lorsqu'il y a trop de fichiers pour la navigation +- WebGUI: Prendre en charge les liens dans les notifications +- WebGUI: Supprimer le lien Autofan sur le Tableau de bord si le plugin n'est pas installé +- WebGUI: Supprimer WG du Tableau de bord si aucun tunnel n'est défini +- WebGUI: Basculer les Diagnostics sur socket Web +- WebGUI: SysDevs - avertir si vous quittez la page sans sauvegarder +- WebGUI: Révision de SysDevs avec liaison vfio-pci.cfg +- WebGUI: Fenêtre de sélection de cas à onglets +- WebGUI : plugins de tâches : capacité de définir Display\_Name +- WebGUI: Mise à jour de Feedback.php +- WebGUI: Mettre à jour jGrowl à la version 1.4.7 +- WebGUI: Mettre à jour noVNC à la version 1.2.0 +- WebGUI: Icônes de cas mises à jour +- WebGUI: Utiliser la boîte de dialogue d'image de mise à jour pour l'entrée de mise à jour dans le menu contextuel Docker +- WebGUI: VM Manager: ajouter 'virtio-win-0.1.189-1' à la liste des VirtIO-ISOs +- WebGUI: VM manager: Corriger: Passer des graphiques VM VNC au GPU passthrough +- WebGUI: VM manager: ajouter virtio-win-0.1.190-1 +- WebGUI: Gestionnaire de VM: nouveau paramètre "Modèle de réseau" +- WebGUI: VMs: Corrigé : L'ajout de NICs ou de montures VirtFS à une VM est limité +- WebGUI: VMs: Corrigé : dans de rares cas, le vdisk passe par défaut à Automatique alors qu'il devrait être Manuel +- WebGUI: VMs: changer le modèle de réseau par défaut sur virtio-net +- WebGUI : VM : gestion plus intuitive de la sélection d'image +- WebGUI: éviter une erreur de syntaxe php si le fichier source autov() n'existe pas +- WebGUI: meilleure gestion de plusieurs nics avec vfio-pci +- WebGUI: corriger le mauvais icône de cas affiché sur le formulaire de connexion +- WebGUI: ne pas essayer d'afficher les informations SMART qui causent un spin-up pour les appareils qui sont en veille +- WebGUI: dockerMan: Autoriser lire plus dans la vue avancée +- WebGUI: dockerMan: N'autoriser que les noms compatibles avec docker +- WebGUI: dockerMan: Démarrage sélectif à l'installation +- WebGUI: corriger: jGrowl couvrant les boutons +- WebGUI: corriger: invite de connexion lors du changement entre serveurs +- WebGUI : autres améliorations diverses +- WebGUI: les pools non activés pour les partages utilisateurs ne doivent pas être sélectionnables pour le cache +- WebGUI : assainir l'entrée sur tail\_log +- WebGUI : définir l'icône de boîtier par défaut 'mid-tower' +- WebGUI : support pour l'allumage/extinction et le suivi de température des dispositifs non assignés +- WebGUI : désactiver l'autocomplétion du nom d'utilisateur dans le formulaire de connexion +- WebGUI : gestionnaire de vm : préserver les paramètres de port VNC +- WebGUI : vnc : ajouter une rupture de cache du navigateur + +["WireGuard" et le logo "WireGuard" sont des marques déposées de Jason A. Donenfeld.](https://www.wireguard.com/) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md new file mode 100644 index 0000000000..eb94ac31e3 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md @@ -0,0 +1,65 @@ +## Version 6.9.1 2021-03-08 + +## Corrections de bogues notables et améliorations + +Correction du problème où le code en dehors de l'utilitaire de gestion de l'OS Unraid appelant +`smartctl` configurait les conditions où les appareils ne se lançaient jamais. +Note : vous avez toujours besoin de +[@doron](https://forums.unraid.net/profile/8006-doron/) du plugin \[SAS +Spindown +([https://forums.unraid.net/topic/97351-plugin-spin-down-sas-drives/](https://forums.unraid.net/topic/97351-plugin-spin-down-sas-drives/)) +pour gérer correctement le spindown du périphérique SAS. + +Pour Docker : si un pilote GPU en arbre est chargé ce qui entraîne la création de +nœuds de périphériques `/dev/dri/*`, nous définissons les autorisations pour ces nœuds à `0777` afin de faciliter l'intégration de conteneurs utilisant le GPU pour le transcodage. + +Taper 'exit' dans une fenêtre Terminal fermera désormais la fenêtre (hourra !). + +Nous avons ajouté un en-tête 'no-cache' à l'accès web NoVNC afin que les futures versions d'Unraid OS ne présentent plus de composants web obsolètes. + +Mise à jour du paquet openssl vers la version 1.1.1j qui comporte des mises à jour de sécurité. + +Mise à jour du noyau Linux vers 5.10.21, une version de correctif pour le noyau LTS 5.10. + +Inclusion des paramètres de configuration du noyau nécessaires pour inclure certains dispositifs de surveillance du matériel et ajout de la prise en charge de nouveaux dispositifs. + +### Mises à jour des pilotes + +Le pilote GPU Nvidia a été mis à jour à 460.56 et devrait fonctionner avec ce noyau 5.10.21. Veuillez installer le [plugin Nvidia-Driver](https://forums.unraid.net/topic/98978-plugin-nvidia-driver/) de @ich777 pour télécharger et installer ce pilote. + +## Journal des modifications vs. Unraid OS 6.9.0 + +#### Distro de base + +- openssl : version 1.1.1j (CVE-2021-23841 CVE-2021-23840) +- openssl-solibs : version 1.1.1j +- ttyd : version 1.6.3 + +#### Noyau Linux + +- version 5.10.21 +- CONFIG\_WATCHDOG: Support du minuteur de surveillance +- ajout de plusieurs nouveaux pilotes hwmon + +#### Gestion + +- emhttp : surveiller les statistiques de partition au lieu des + statistiques d'appareil dans la logique d'arrêt/démarrage +- rc.local : s'assurer de l'existence des répertoires requis sur le périphérique de démarrage USB +- rc.local : pour les conteneurs Docker : donner accès aux nœuds de + périphérique graphique /dev/dri/\* +- rc.nginx : ajouter l'en-tête Cache-Control:nocache à novnc +- WebGUI : Augmenter le tampon syslog de 1000 à 3000 lignes +- WebGUI : Correction de l'affichage des aberrations de SysDevs +- WebGUI : Diagnostics : inclure les fichiers modprobe.d +- WebGUI : Diagnostics : inclure go comme go.txt +- WebGUI : Mettre à jour le texte d'aide pour la sécurité de partage +- WebGUI : Déprécier les liens de donation dans les modèles au profit des + liens dans les profils CA +- WebGUI : Protéger l'interface GUI contre les fichiers .page invalides +- WebGUI : Supprimer les entrées de multicast ipv6 dans l'affichage de + table de routage +- WebGUI: synchroniser helptext.txt avec le dépôt lang-en\_US +- WebGUI : Gestion des utilisateurs - désactiver l'autocomplétion des + mots de passe +- WebGUI : Tableau de bord : Corriger la couleur pour l'utilisation du disque diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md new file mode 100644 index 0000000000..bdf55912f8 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md @@ -0,0 +1,46 @@ +## Version 6.9.2 2021-04-07 + +### **Restrictions de Connexion Échouée** + +Pour la connexion au WebGUI, vous disposez désormais de 3 tentatives de connexion par adresse IP avant qu'un temps de pause de 15 minutes ne soit appliqué. De plus, l'horodatage des trois dernières tentatives de connexion échouées par adresse IP est stocké dans des fichiers situés dans `/var/log/pwfail/`. Notez que cela ne s'applique qu'à la connexion WebGUI, et non à ssh ou telnet. + +### **Mises à Jour des Pilotes** + +Nous avons mis à jour le pilote GPU Nvidia du fournisseur à la version 465.19.01. Utilisez ce [plugin pratique](https://raw.githubusercontent.com/ich777/unraid-nvidia-driver/master/nvidia-driver.plg) du développeur communautaire [@ich777](https://forums.unraid.net/profile/72388-ich777/) pour faciliter l’installation du bon pilote. + +## Journal des Modifications par rapport à Unraid OS 6.9.1 + +#### Distro de base + +- docker : version 20.10.5 +- fuse3 : version 3.10.2 +- nginx : version 1.19.9 +- samba : verson 4.12.14 (CVE-2020-27840 CVE-2020-27840) + +#### Noyau Linux + +- version 5.10.28 +- inclure tous les modules CONFIG\_NF\_\* +- oot : realtek r8125 : version 9.005.01 + +#### Gestion + +- emhttpd : détecte le démarrage de spin-up des appareils hors bande +- shfs : ajouter le support de 'copy\_file\_range()' +- shfs : corriger 'mknod' créant un fifo +- WebGUI : connexion : implémenter un maximum de 3 tentatives de connexion échouées par intervalle de 15 minutes +- WebGUI : Corriger les liens sur les notifications absentes en mode affichage résumé +- WebGUI : Plugins : Déplacer les plugins incompatibles vers ../plugins-error +- WebGUI : Corriger l'absence de CSRF lors de la suppression du pool +- WebGUI : Corriger la couleur de .sweet-alert +- WebGUI : Ajustements de Traductions +- WebGUI : Diagnostics : Empêcher les doubles clics sur le bouton de téléchargement +- WebGUI : Corriger le seuil d'utilisation par défaut ne provoquant pas l'envoi de notifications +- WebGUI : Corriger la couleur de fond du CSS span.select +- WebGUI : Aligner à gauche les messages de diagnostic +- WebGUI : Corrigé une erreur JavaScript dans DeviceInfo.page empêchant + l'enregistrement des paramètres +- WebGUI : Mettre à jour DeviceInfo.page +- WebGUI : Empêcher le remplissage automatique des mots de passe sur les conteneurs +- WebGUI : Docker : Ne pas autoriser le pinning CPU si aucun modèle n'est présent +- WebGUI : Corriger la couleur de .sweet-alert .sa-icon, \* dans le CSS diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md new file mode 100644 index 0000000000..7e8b1c9ad3 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md @@ -0,0 +1,871 @@ +# Version 7.0.0 2025-01-09 + +Cette version de Unraid OS comprend des améliorations significatives dans tous les sous-systèmes, tout en essayant de maintenir autant que possible la rétrocompatibilité. + +Remerciements spéciaux : + +- @bonienl, @dlandon, @ich777, @JorgeB, @SimonF, et @Squid pour leur orientation, leur soutien et leur développement + sur cette version +- @bonienl pour l'intégration de son plugin **Dynamix File Manager** dans le webGUI +- @Squid pour l'intégration de ses plugins **GUI Search** et **Unlimited Width Plugin** dans le webGUI +- @ludoux (**Plugin Proxy Editor**) et @Squid (**Plugin Applications Communautaires**) pour avoir entrepris + le support du proxy HTTP, dont plusieurs idées ont été intégrées dans le webgui +- @ich777 pour la maintenance des plugins de pilotes tiers, et pour l'intégration [Tailscale Docker](#integration-tailscale) +- @SimonF pour les nouvelles fonctionnalités significatives dans le Gestionnaire de VM Unraid OS +- @EDACerton pour le développement du plugin Tailscale + +Consultez les [contributeurs à Unraid sur GitHub](https://github.com/unraid/webgui/graphs/contributors?from=2023-09-08\&to=2025-01-08\&type=c) avec des remerciements à ces membres de la communauté qui ont contribué par des PR (ce sont des ids de GitHub) : + +- almightyYantao +- baumerdev +- Commifreak +- desertwitch +- dkaser +- donbuehl +- FunkeCoder23 +- Garbee +- jbtwo +- jski +- Leseratte10 +- Mainfrezzer +- mtongnz +- othyn +- serisman +- suzukua +- thecode + +Et des remerciements sincères à tous ceux qui ont demandé des fonctionnalités, signalé des bugs et testé les pré-versions ! + +## Mise à niveau + +### Problèmes connus + +#### Pools ZFS + +Si vous utilisez des pools ZFS, veuillez noter ce qui suit : + +- Vous verrez un avertissement concernant les fonctionnalités non prises en charge dans vos pools ZFS existants. Ceci est dû au fait que la + version de ZFS dans 7.0 est mise à jour par rapport à 6.12 et contient de nouvelles fonctionnalités. Cet avertissement est inoffensif, ce qui + signifie que votre pool fonctionnera normalement. Un bouton apparaîtra vous permettant de mettre à niveau un pool pour prendre en charge les nouvelles fonctionnalités ZFS ; cependant, Unraid OS n'utilise pas ces nouvelles fonctionnalités, et une fois que les pools sont mis à niveau, les versions précédentes de Unraid OS ne pourront pas monter le pool. +- De même, les nouveaux pools créés dans 7.0 ne seront pas montés dans 6.12 car ZFS ne prend pas en charge les rétrogradations. Il n'y a pas de solution + pour résoudre ceci. +- Si vous décidez de rétrograder de 7.0 à 6.12, les pools hybrides déjà existants ne + seront pas reconnus après le redémarrage vers 6.12. Pour contourner cela, cliquez d'abord sur Outils/Nouvelle Configuration dans 7.0 tout en préservant + tous les emplacements, puis redémarrez vers 6.12 et vos pools hybrides devraient s'importer correctement. +- Les pièces de rechange ZFS ne sont pas prises en charge dans cette version. Si vous avez créé un pool hybride dans 6.12 qui inclut des pièces de rechange, + veuillez retirer le vdev « spares » avant de mettre à jour vers la v7.0. Cela sera corrigé dans une future version. +- Actuellement, il est impossible d'importer des pools TrueNAS. Cela sera corrigé dans une prochaine version. +- Si vous utilisez **Docker data-root=directory** sur un volume ZFS, consultez [Ajouter le support pour le driver de stockage overlay2](#ajouter-le-support-pour-overlay2). +- Nous vérifions que les noms de VM n'incluent pas de caractères non valides pour ZFS. Les VM existantes ne sont pas modifiées + mais lanceront une erreur et désactiveront la mise à jour si des caractères invalides sont trouvés. + +#### Problèmes généraux de pool + +Si vos pools existants échouent à s'importer avec *État du pool incorrect, extension invalide* ou *État du pool incorrect. Trop d'appareils incorrects ou manquants*, voir ce [post de forum](https://forums.unraid.net/topic/184435-unraid-os-version-700-available/#findComment-1508012). + +#### Problèmes liés à l'arrêt du disque + +Les disques peuvent ne pas se mettre en veille lorsqu'ils sont connectés à d'anciens contrôleurs de disques Marvell utilisant le pilote sata\_mv (c'est-à-dire Supermicro SASLP et SAS2LP) ou à d'anciens contrôleurs Intel (c'est-à-dire ICH7-ICH10). Cela peut être résolu par une future mise à jour du noyau. + +#### Activité excessive du lecteur flash ralentissant le système + +Si le système fonctionne lentement, vérifiez la page principale pour voir si elle affiche des lectures continues importantes depuis le lecteur flash pendant le fonctionnement normal. Si c'est le cas, le système peut éprouver une pression de la mémoire suffisante pour pousser l'OS hors de la RAM et le forcer à être relu depuis le lecteur flash. Depuis le terminal web, tapez : + +```shell +touch /boot/config/fastusr +``` + +et puis redémarrez. Cela utilisera environ 500 Mo de RAM pour s'assurer que les fichiers de l'OS restent toujours en mémoire. Merci de nous dire si cela aide. + +#### Les nouvelles modifications de Windows peuvent entraîner la perte d'accès aux partages publics. + +En raison des récents changements de sécurité dans Windows 11 24H2, l'accès "invité" aux partages publics Unraid peut ne pas fonctionner. La solution la plus simple est de créer un utilisateur sur Unraid portant le même nom que le compte Windows que vous utilisez pour vous connecter. Si le mot de passe de l'utilisateur Unraid n'est pas identique à celui du compte Windows, Windows demandera les identifiants. + +Si vous utilisez un compte Microsoft, il peut être préférable de créer un utilisateur dans Unraid avec un nom d'utilisateur simple, de définir un mot de passe, puis dans Windows, allez sur ***Panneau de configuration → Gestionnaire d'informations d'identification → Informations d'identification Windows → Ajouter une information d'identification Windows*** et ajoutez le nom du serveur Unraid correct et les informations d'authentification. + +Vous pouvez également [réactiver le retour invité de Windows](https://techcommunity.microsoft.com/blog/filecab/accessing-a-third-party-nas-with-smb-in-windows-11-24h2-may-fail/4154300) (non recommandé). + +#### Problèmes dus aux cartes réseau Realtek + +Il y a eu plusieurs rapports de problèmes avec le plugin de pilote Realtek après une mise à niveau vers des noyaux récents. Vous pouvez envisager de le désinstaller préventivement avant la mise à niveau, ou de le supprimer par la suite si vous rencontrez des problèmes de réseau. + +#### Une NIC virtuelle est assignée à eth0 sur certains systèmes + +Sur certains systèmes avec IPMI KVM, une carte NIC virtuelle est attribuée à eth0 au lieu de la carte NIC attendue. Consultez ce [post de forum](https://forums.unraid.net/bug-reports/stable-releases/61214-no-network-after-updating-eth0-assigned-to-virtual-usb-nic-cdc-ethernet-device-with-169-ip-instead-of-mellanox-10gbe-nic-r3407/) pour voir les options. + +#### Problèmes liés à l'utilisation des réseaux Docker personnalisés + +Si certains réseaux Docker personnalisés ne sont pas disponibles pour vos conteneurs Docker, accédez à ***Paramètres → Docker*** et corrigez les définitions CIDR pour le masque de sous-réseau et le pool DHCP sur ces réseaux personnalisés. Les systèmes sous-jacents sont devenus plus stricts et les définitions CIDR invalides qui fonctionnaient dans les versions précédentes ne fonctionnent plus. + +### Rétrogradation + +Consultez les avertissements sous **Problèmes connus** ci-dessus. + +Le Gestionnaire de fichiers Dynamix, la Recherche dans l'interface graphique et le plugin Unlimited Width Plugin sont désormais intégrés à Unraid. Si vous revenez à une version antérieure, vous devrez réinstaller ces plugins pour conserver leur fonctionnalité. + +Si vous avez désactivé l'array unRAID, nous vous recommandons de l'activer à nouveau avant de revenir en arrière. + +Si vous avez précédemment configuré des Proxies sortants via le plugin Proxy Editor ou un autre mécanisme, vous devrez réactiver ce mécanisme après retour en arrière. + +Si vous revenez en arrière après avoir activé le [driver de stockage overlay2](#ajouter-le-support-pour-overlay2), vous devrez supprimer le répertoire Docker et laisser Docker retélécharger les couches d'image. + +Si vous revenez en arrière après avoir installé [Tailscale dans un conteneur Docker](#integration-tailscale), vous devrez éditer le conteneur, effectuer une modification fictive, puis **Appliquer** pour reconstruire le conteneur sans l'intégration de Tailscale. + +Après le retour en arrière, effectuez une modification fictive à chaque configuration de WireGuard pour obtenir les paramètres appropriés à cette version d'Unraid. + +Si vous revenez en arrière à une version antérieure à 6.12.14, consultez également les [notes de version 6.12.14](6.12.14.md#rolling-back). + +## Stockage + +### Array unRAID optionnelle + +Vous pouvez désormais définir le nombre de slots d'array Unraid à 'aucun'. Cela permettra à l'array de démarrer sans aucun appareil assigné à l'array Unraid lui-même. + +Si vous exécutez un serveur entièrement SSD/NMVe, nous vous recommandons d'assigner tous les appareils à une ou plusieurs pools ZFS/BTRFS, car Trim/Discard n'est pas pris en charge avec les appareils de l'array unRAID. + +Pour désassigner l'array unRAID d'un serveur existant, désassignez d'abord tous les emplacements d'array sur la page Principale, puis définissez les emplacements sur 'aucun'. + +Pour les nouvelles installations, le nombre par défaut d'emplacements à réserver pour l'ensemble unRAID est désormais 'aucun'. + +### Le stockage secondaire des partages peut être attribué à une pool + +Les partages peuvent désormais être configurés avec des pools pour le stockage principal et secondaire, et le déménageur déplacera les fichiers entre ces pools. + +### L'option de système de fichiers ReiserFS a été désactivée + +Étant donné que ReiserFS est prévu pour être retiré du noyau Linux, l'option de formater un appareil avec ReiserFS a également été désactivée. Vous pouvez utiliser cette fonction de déplacement pour vider un disque d'array avant de le reformater avec un autre système de fichiers, voir ci-dessous. Nous ajouterons un bouton webGUI pour cela dans une prochaine version. + +### Utilisation de 'mover' pour vider un disque d'array + +Le Mover peut maintenant être utilisé pour vider un disque d'array. Avec l'array démarrée, exécutez cela dans un terminal web : + +```bash +mover start -e diskN |& logger & # où N est [1..28] +``` + +Mover examinera chaque directeur de niveau supérieur (partage) et déplacera ensuite les fichiers un à un vers d'autres disques de l'array, suivant les réglages config habituels (inclure/exclure, niveau de division, méthode d'allocation). Les cibles du déplacement sont restreintes uniquement à l'array Unraid. + +Lorsque le processus de déménagement se termine, le syslog affichera une liste des fichiers qui n'ont pas pu être déplacés : + +- peut-être que le fichier était en cours d'utilisation +- peut-être que le fichier est à la racine de /mnt/diskN +- peut-être que l'espace a manqué + +### Gestion des partages prédéfinis + +Le Gestionnaire de Docker Unraid OS est configuré par défaut pour utiliser ces partages prédéfinis : + +- système - utilisé pour stocker les couches d'images Docker dans une image en boucle stockée dans system/docker. +- appdata - utilisé par les applications Docker pour stocker les données des applications. + +Le Gestionnaire de VM Unraid OS est configuré par défaut pour utiliser ces partages prédéfinis : + +- système - utilisé pour stocker l'image en boucle libvirt stockée dans system/libvirt +- domaines - utilisé pour stocker les images vdisk des VM +- isos - utilisé pour stocker des images de démarrage ISO + +Lorsque Docker ou les VM sont activés, les partages prédéfinis requis sont créés si nécessaire selon ces règles : + +- si un pool nommé 'cache' est présent, des partages prédéfinis sont créés avec 'cache' comme stockage Principal + sans stockage Secondaire. +- si aucun pool nommé 'cache' n'est présent, les partages prédéfinis sont créés avec le premier pool présent alphabétiquement comme Principal sans stockage Secondaire. +- si aucun pool n'est présent, les partages prédéfinis sont créés sur l'array unRAID comme Principal sans + stockage Secondaire. + +### Implémentation ZFS + +- Support des pools ZFS hybrides aussi appelés sous-pools (sauf 'spares') +- Support de la récupération d'échecs multiples d'un pool ZFS avec une protection suffisante +- Support du chiffrement LUKS sur les pools et disques ZFS +- Définir des profils par défaut raisonnables pour les nouveaux pools et sous-pools ZFS +- Prise en charge de la mise à niveau des pools ZFS lors de la visualisation du statut du pool. Remarque : après la mise à niveau, le volume pourrait ne pas être montable dans les versions précédentes d'Unraid + +### Profils d'allocation pour btrfs, zfs et sous-pools zfs + +Lorsque un pool/sous-pool btrfs ou zfs est créé, l'allocation de stockage par défaut est déterminée par le nombre d'emplacements (appareils) initialement assignés au pool : + +- pour le pool principal (racine) zfs : + - emplacements == 1 => unique + - emplacements == 2 => miroir (1 groupe de 2 appareils) + - emplacements >= 3 => raidz1 (1 groupe d'appareils 'slots') + +- pour les sous-pools spéciaux, journaux et dédup zfs : + - emplacements == 1 => unique + - emplacements%2 == 0 => miroir (emplacements/2 groupes de 2 appareils) + - emplacements%3 == 0 => miroir (emplacements/3 groupes de 3 appareils) + - autrement => bande (1 groupe d'appareils 'slots') + +- pour les sous-pools cache et spare zfs : + - emplacements == 1 => unique + - emplacements >= 2 => bande (1 groupe d'appareils 'slots') + +- pour les pools btrfs : + - emplacements == 1 => unique + - emplacements >= 2 => raid1 (c'est-à-dire ce que btrfs appelle "raid1") + +### Considérations concernant les pools + +Lors de l'ajout d'appareils à (expansion) un pool à un seul emplacement, ces règles s'appliquent : + +Pour btrfs : ajouter un ou plusieurs appareils à un pool à seul emplacement entraînera la conversion du pool en raid1 (c'est-à-dire ce que btrfs définit comme raid1). Ajouter tout nombre d'appareils à un pool btrfs existant à plusieurs emplacements augmente la capacité de stockage du pool et ne modifie pas le profil de stockage. + +Pour zfs : ajouter un, deux ou trois appareils à un pool à un emplacement unique entraînera la conversion du pool en miroir 2 voies, 3 voies ou 4 voies. Ajouter un appareil unique à un miroir existant de 2 ou 3 voies convertit le pool en miroir de 3 ou 4 voies. + +Modification du type de système de fichiers d'un pool : + +Pour tous les pools à un seul emplacement, le type de système de fichiers peut être changé lorsque l'array est arrêté. + +Pour les pools multi-emplacements btrfs/zfs, le type de système de fichiers ne peut pas être modifié. Pour réutiliser les appareils, vous devez cliquer sur le bouton Effacer le pool. + +### Autres caractéristiques + +- Ajoutez l'activation/désactivation des appareils d'un pool en parallèle +- Ajouter un bouton "Supprimer le Pool", qui désassignera tous les appareils d'un pool puis supprimera le pool. Les appareils eux-mêmes ne sont pas modifiés. Cela est utile lorsque vous retirez physiquement des appareils d'un serveur. +- Ajout de la possibilité de changer la phrase/mot de passe de file de clé pour les disques cryptés LUKS +- Introduction de la variable 'config/share.cfg' 'shareNOFILE' qui définit le nombre maximal de descripteurs de fichiers ouverts pour le processus shfs (voir les problèmes connus) + +## Gestionnaire de VM + +### Améliorations + +Ajout du support pour les clones VM, les snapshots et evdev passthru. + +L'éditeur VM dispose désormais d'un nouveau mode XML inline en lecture seule pour les utilisateurs avancés, clarifiant comment les +choix de l'interface graphique affectent le XML sous-jacent utilisé par la VM. + +Grand merci à @SimonF pour ses améliorations continues des VM. + +### Autres changements + +- **Onglet VM** + - Afficher toutes les cartes graphiques et adresses IP attribuées aux VM + - version noVNC : 1.5 +- **Paramètres du gestionnaire de VM** + - Option de désactivation de l'autostart VM ajoutée +- **Ajouter/modifier le modèle VM** + - Option "vue XML inline" ajoutée + - Prise en charge des modèles VM créés par les utilisateurs + - Ajout de la cible qemu ppc64 + - Ajout du support qemu:override + - Ajout de la fonctionnalité de "passerelle de commande QEMU" + - Soutien multifonction VM, y compris "PCI Autre" + - Améliorations des modèles VM pour les VM Windows, y compris la prise en charge de hypervclock + - Ajouter une option on/off "migratable" pour le CPU émulé + - Ajout du support des décalages et des minuteries + - Ajout de l'option sans keymap et assurer que le clavier par défaut de la GPU virtuelle l'utilise. + - Ajouter une option sans gpu + - Ajout du support SR-IOV pour le iGPU Intel + - Ajout du remplacement de stockage pour spécifier où les images sont créées lors de l'ajout de VM + - Ajouter le drapeau SSD pour les disques virtuels + - Ajouter le support Décharger + - Vérifier que le nom de VM n'inclut pas de caractères non valides pour ZFS. +- **Tableau de bord** + - Ajouter les statistiques d'utilisation de VM au tableau de bord, activez via ***Paramètres → Gestionnaire de VM → Afficher l'utilisation de VM*** + +## Docker + +### Prévention des bombes à fourche Docker + +Pour empêcher les "bombes à fourche Docker" nous avons introduit un nouveau paramètre, ***Paramètres → Docker → Limite de PID Docker***, qui +spécifie le nombre maximal d'ID de processus qu'un conteneur peut avoir actif (avec un défaut de 2048). + +Si vous avez un conteneur qui nécessite plus d'ID de processus, vous pouvez soit augmenter ce paramètre, soit +outrepasser pour un conteneur spécifique en ajoutant, par exemple, `--pids-limit 3000` au +paramètre *Paramètres supplémentaires* du modèle Docker. + +### Ajouter un support pour le pilote de stockage overlay2 + +Si vous utilisez **Docker data-root=répertoire** sur un volume ZFS, nous vous recommandons de naviguer vers ***Paramètres → Docker*** et de passer le **pilote de stockage Docker** à **overlay2**, puis d'effacer le contenu du répertoire et de laisser Docker retélécharger les couches d'image. Le réglage hérité **native** provoque des problèmes de stabilité significatifs sur les volumes ZFS. + +Si conserver la possibilité de rétrograder vers des versions antérieures est important, alors passez à **Docker data-root=xfs vDisk** à la place. + +### Autres changements + +- Voir [intégration Tailscale](#integration-tailscale) +- Permettre la spécification de registre personnalisé avec un port +- Utilisation de "démonter paresseux" du docker image pour éviter le blocage de l'arrêt de l'array +- Mis à jour pour corriger plusieurs problèmes de sécurité (CVE-2024-21626, CVE-2024-24557) +- Gestionnaire Docker : + - Permettre aux utilisateurs de sélectionner les réseaux de conteneur dans le WebUI + - Identifier/afficher correctement les conteneurs non gérés par dockerman +- rc.docker : + - Ne stopper que les conteneurs gérés par Unraid + - Respecter la politique de redémarrage des conteneurs tiers +- Définir le MTU du pont Wireguard Docker pour correspondre au MTU par défaut de Wireguard + +## Réseau + +### Intégration Tailscale + +Unraid OS prend en charge [Tailscale](https://tailscale.com/) grâce à l'utilisation d'un plugin créé par le développeur de la communauté EDACerton. Lorsque ce plugin est installé, les certificats Tailscale sont pris en charge pour l'accès https au WebGUI, et les URL Tailnet seront affichées sur la page ***Paramètres → Accès de gestion***. + +Et dans Unraid de manière native, vous pouvez installer Tailscale dans presque n'importe quel conteneur Docker, +vous donnant la possibilité de partager des conteneurs avec des personnes spécifiques, d'y accéder en utilisant des certificats HTTPS valides, +et de leur fournir des routes alternatives vers Internet via des nœuds de sortie. + +Pour plus de détails, voir [la documentation](../system-administration/secure-your-server/tailscale.mdx) + +### Prise en charge de l'encadrement du webGUI + +Ajout du support « Content-Security-Policy frame-ancestors » pour permettre automatiquement au WebGUI d'être encadré par les domaines pour lesquels il +possède des certificats. Ce n'est pas exactement pris en charge, mais une personnalisation supplémentaire est possible en utilisant un script pour modifier +NGINX\_CUSTOMFA dans `/etc/defaults/nginx` + +### Autres changements + +- Mise à niveau vers OpenSSL 3 +- Autoriser toutes les adresses IPv4/IPv6 comme écouteurs. Cela résout le problème lorsque les adresses IPv4 ou IPv6 changent dynamiquement. +- Samba: + - Ajouter l'adresse d'écoute IPv6 uniquement lorsque NetBIOS est désactivé + - Correction de l'incapacité de MacOS à écrire sur le partage 'flash' et rétablissement de la compatibilité Time Machine (changements fruit) +- Le gestionnaire VPN ajoute maintenant toutes les interfaces aux tunnels WireGuard, effectuez une modification factice sur le tunnel après + une mise à jour ou un changement de paramètres réseau pour mettre à jour les configurations de tunnel WireGuard. + +## webGUI + +### Plugin File Manager Dynamix intégré + +Cliquez sur l'icône du gestionnaire de fichiers et naviguez dans votre structure de répertoires avec la possibilité d'effectuer +les opérations courantes telles que copier, déplacer, supprimer et renommer des fichiers et des répertoires. + +### Plugin de recherche GUI intégré + +Cliquez sur l'icône de recherche dans la barre de menus et tapez le nom de +paramètre que vous recherchez. + +### Gestionnaire de Proxy Sortant + +Si vous avez précédemment utilisé le plugin Éditeur de Proxy ou configuré un proxy sortant pour l'AC, ces derniers seront automatiquement supprimés/importés. Vous pourrez ensuite les ajuster dans ***Paramètres → Gestion du proxy sortant***. + +Pour plus de détails, voir le [manuel](../system-administration/secure-your-server/secure-your-outgoing-comms.mdx). + +Remarque : cette fonctionnalité est complètement sans rapport avec les proxys inversés que vous pourriez utiliser. + +### Agents de notification + +Les agents de notification xml sont désormais stockés comme des fichiers xml individuels, ce qui facilite +l'ajout d'agents de notification via un plugin. + +Voir ce [plugin exemple](https://github.com/Squidly271/Wxwork-sample) par @Squid + +- correction : Les notifications d'agent ne fonctionnent pas s'il y a un problème avec les notifications par email + +### Configuration NTP + +Pour les nouvelles installations, un seul serveur NTP par défaut est défini sur 'time.google.com'. + +Si votre serveur utilise nos anciens paramètres NTP par défaut de time1.google.com, time2.google.com etc., vous pourriez remarquer des messages liés au NTP déroutants dans votre syslog. Pour éviter cela, envisagez de passer à nos nouveaux paramètres par défaut : accédez à ***Paramètres → Date & Heure*** et configurez **Serveur NTP 1** à time.google.com, en laissant tous les autres vides. + +Bien sûr, vous êtes libre d'utiliser les serveurs temporels que vous préférez, ceci est simplement pour vous informer que nous avons +ajusté nos paramètres par défaut. + +### Partages NFS + +Nous avons ajouté quelques nouveaux paramètres pour aider à résoudre les problèmes avec les partages NFS. Dans ***Paramètres → Paramètres Globaux des Partages***, vous pouvez ajuster le nombre de descripteurs de fichier fuse et dans ***Paramètres → NFS***, vous pouvez ajuster la version du protocole NFS et le nombre de threads qu'il utilise. Voir l'aide en ligne pour plus de détails. + +- Prise en charge ajoutée pour NFS 4.1 et 4.2, et permettre les montages NFSv4 par défaut +- Ajoutez une boîte de texte pour configurer les règles NFS multi-lignes +- Correctif de bug : nfsd ne redémarre pas correctement + +### Tableau de Bord + +- Ajoutez la date et l'heure du serveur au Tableau de bord ; cliquez sur l'heure pour modifier les paramètres associés +- Revoir le carreau **Système** pour clarifier ce qui est montré, y compris les infobulles +- Montrer du contenu utile lorsque les tuiles du tableau de bord sont réduites +- Afficher l'utilisation de la RAM Docker sur le Tableau de bord + - Ajouter l'utilisation de la RAM Docker au Tableau de bord + - Renommez 'Services' en 'Système' +- Corriger la fuite de mémoire sur les pages du Tableau de bord, Gestionnaire de VM et Docker Manager + +### Améliorations SMART + +- Afficher KB/MB/GB/TB écrits dans les Attributs SMART pour les SSD +- Ajouter 'endurance restante du SSD' en Attribut SMART. + +### Diagnostics + +- Ajouter gpujson de gpu\_statistics aux diagnostics +- Anonymisation améliorée des journaux LXC +- Si le plugin FCP est installé, effectuer une analyse pendant les diagnostics +- Ajouter phplog pour identifier les erreurs PHP +- Anonymisation améliorée des adresses IPv6 +- Suppression ps.txt car il exposait les mots de passe dans la liste des processus + +### Autres changements + +- Prise en charge de seuils de température d'avertissement/critique différents pour les disques HDD/SSD/NVMe. Les seuils NVMe sont définis automatiquement par le lecteur lui-même, voir ***Paramètres → Paramètres Disque*** pour définir les seuils pour les HDD et SSD. Tous peuvent encore être remplacés pour des lecteurs individuels. +- Ajout de la page ***Paramètres → Paramètres de la Console Locale*** avec des options pour la disposition du clavier, le temps d'écran noirci et l'historique Bash persistant +- Ajouter ***Paramètres → Mode d'Alimentation*** pour optimiser le système pour l'efficacité énergétique, équilibré ou la performance +- Survolez une entrée dans **Outils** et **Paramètres** pour ajouter un élément aux favoris et revenez rapidement à celui-ci sur la nouvelle page **Favoris** de niveau supérieur. + Ou désactivez la fonctionnalité des Favoris dans \***Paramètres → Paramètres d'Affichage**. +- Écran d'arrêt/redémarrage amélioré montrant plus de détails du processus +- Simplifier les notifications en supprimant les sous-menus - Afficher, Historique et Accuser Réception s'appliquent désormais à tous les types de notifications +- Déplacer les paramètres de date et d'heure de **Paramètres d'Affichage** vers ***Paramètres → Paramètres de Date & Heure*** +- ***Paramètres → Paramètres d'affichage*** : nouveau paramètre "largeur" pour profiter des grands écrans +- Afficher en option l'utilisation de l'énergie NVMe ; voir ***Paramètres → Paramètres des Disques*** +- Améliorations des composants web – rétrogradations, mises à jour et enregistrement +- Empêcher le formatage des nouveaux disques en ReiserFS +- Utiliser des écritures atomiques pour les mises à jour des fichiers de configuration +- Modifications des paramètres de pool ZFS : + - Créer des descriptions de sous-pools ZFS significatives + - Modifier le texte du profil ZFS 'raid0' en 'stripe' +- Ajouter des options supplémentaires de passthrough d'appareils USB smartmontools au webgui (merci à l'utilisateur GitHub jski) +- Page des paramètres UPS (merci à @othyn) : + - Ajout de la capacité de définir une surcharge manuelle de capacité UPS. +- UserEdit : en plus des Ed25519, FIDO/U2F Ed25519 et RSA, supporte les types de clés SSH DSA, ECDSA et FIDO/U2F ECDSA +- OpenTerminal: utiliser le shell défini pour l'utilisateur root dans le fichier /etc/passwd +- Toujours afficher l'option "supprimer le partage", mais la désactiver lorsque le partage n'est pas vide + +## Divers + +### Autres changements + +- Remplacer le très ancien 'memtest' par Memtest86+ version 6.20 + - Il existe également des [Options de démarrage](https://github.com/memtest86plus/memtest86plus#boot-options) disponibles +- Supprimer le support pour les anciens certs unraid.net +- Supprimer la fonctionnalité "UpdateDNS" car elle utilise désormais des certificats SSL non legacy et non-wildcard 'unraid.net' +- Supprimez les informations de proxy et '&' du script go +- Correction du traitement du fichier passwd +- Quand le démon avahidaemon est en cours d'exécution, ajouter name.local au fichier hosts +- Retirer keys.lime-technology.com du fichier hosts +- rc.S: supprimer wsync du montage XFS pour éviter le gel du webGUI lors d'E/S intenses sur /boot +- rendre\_bootable\_linux : version 1.4 + - détecter si mtools est installé +- ntp.conf : réglez 'logconfig' pour ignorer LOG\_INFO +- Accélérez le processus : utilisez la commande de rechargement AVAHI au lieu de redémarrer +- Noyau Linux : forcer tous les boîtiers Seagate externes USB défectueux à se lier au stockage-USB au lieu du pilote UAS +- Améliorations du démarrage dans le script rc.S : + - Réparez automatiquement la sauvegarde du secteur de démarrage + - Démontez explicitement tous les systèmes de fichiers si vous ne pouvez pas continuer le démarrage + - Détectez une mauvaise valeur root dans syslinux.cfg + - le redémarrage ne doit pas invoquer l'arrêt + - Nettoyer les groupes vides +- Samba smb.conf : définissez "nmbd bind explicit broadcast = no" si NetBIOS est activé +- Ajouter fastcgi\_path\_info à la configuration nginx par défaut +- Assurez-vous que les appels à pgrep ou killall sont limités au namespace courant +- (Avancé) Ajout de la possibilité d'appliquer des règles udev personnalisées depuis `/boot/config/udev/` au démarrage +- Correction de bug : Gestion correcte du fichier Trial.key vide lorsque le téléchargement échoue +- Correction de bug : Correction de l'avertissement PHP pour l'état de l'UPS +- Créer un fichier significatif /etc/os-release +- Corrections diverses de traductions +- webgui: Correction de bug : Fonctionnalité de journalisation de la console JavaScript rétablie +- En cliquant sur le numéro de version Unraid, cela charge les notes de version du site Unraid Docs + +## Noyau Linux + +- version 6.6.68 + - CONFIG\_MISC\_RTSX\_PCI : Lecteur de carte Realtek PCI-E + - CONFIG\_MISC\_RTSX\_USB : Lecteur de carte Realtek USB + - CONFIG\_DRM\_XE : Graphiques Intel Xe + - CONFIG\_DRM\_XE\_DISPLAY : Activer le support d'affichage + - CONFIG\_AUDIT : Prise en charge de l'audit + - CONFIG\_USB\_SERIAL\_OPTION : Pilote USB pour modems GSM et CDMA + - CONFIG\_USB\_SERIAL\_SIMPLE : Pilote USB Série Simple + - CONFIG\_USB\_UAS : USB Attaché SCSI + - CONFIG\_NFS\_V4\_1 : Support client NFS pour NFSv4.1 + - CONFIG\_NFS\_V4\_1\_MIGRATION : Support client NFSv4.1 pour la migration + - CONFIG\_NFS\_V4\_2 : Support client NFS pour NFSv4.2 + - CONFIG\_NFS\_V4\_2\_READ\_PLUS : NFS : Activer le support pour l'opération READ\_PLUS de NFSv4.2 + - CONFIG\_NFSD\_V4\_2\_INTER\_SSC : NFSv4.2 copie inter-serveurs + - CONFIG\_USB\_NET\_CDC\_EEM : Support CDC EEM + - CONFIG\_USB\_NET\_CDC\_NCM : Support CDC NCM + - CONFIG\_USB\_SERIAL\_XR : Pilote USB MaxLinear/Exar pour port série + - CONFIG\_CAN : Support du sous-système de bus CAN + - CONFIG\_CAN\_NETLINK : Pilotes de périphériques CAN avec support Netlink + - CONFIG\_CAN\_GS\_USB : Interfaces compatibles Geschwister Schneider UG et candleLight + - CONFIG\_SCSI\_LPFC : Support de la fibre optique Emulex LightPulse + - CONFIG\_DRM\_VIRTIO\_GPU : Pilote GPU Virtio + - CONFIG\_DRM\_VIRTIO\_GPU\_KMS : Prise en charge du mode-setting du pilote GPU Virtio + - CONFIG\_LEDS\_TRIGGERS : Prise en charge du déclenchement de LED + - CONFIG\_LEDS\_TRIGGER\_ONESHOT : Déclencheur One-shot pour LEDs + - CONFIG\_LEDS\_TRIGGER\_NETDEV : Déclencheur Netdev pour LEDs + - CONFIG\_QED : Pilote principal QLogic QED 25/40/100Gb + - CONFIG\_QED\_SRIOV : Support SR-IOV QLogic QED 25/40/100Gb + - CONFIG\_QEDE : NIC Ethernet QLogic QED 25/40/100Gb + - CONFIG\_SCSI\_UFSHCD : Contrôleur de stockage Flash universel + - CONFIG\_SCSI\_UFS\_BSG : Node de périphérique BSG de stockage Flash universel + - CONFIG\_SCSI\_UFS\_HWMON : Notification de température UFS + - CONFIG\_SCSI\_UFSHCD\_PCI : Support du contrôleur UFS basé sur bus PCI + - CONFIG\_SCSI\_UFS\_DWC\_TC\_PCI : Support pci DesignWare utilisant une puce test G210 + - CONFIG\_SCSI\_UFSHCD\_PLATFORM : Support du contrôleur UFS basé sur bus plateforme + - CONFIG\_SCSI\_UFS\_CDNS\_PLATFORM : Pilote de plateforme contrôleur UFS Cadence + - CONFIG\_SCSI\_QLA\_FC : Support Channel QLogic QLA2XXX Fibre + - CONFIG\_LIQUIDIO : Support de LiquidIO Cavium + - CONFIG\_LIQUIDIO\_VF : Support VF de LiquidIO Cavium + - CONFIG\_NTFS\_FS : Support du système de fichiers NTFS \[supprimé - ceci est l'ancien module VFS en lecture seule] + - CONFIG\_NTFS3\_FS : Support du système de fichiers NTFS en lecture-écriture + - CONFIG\_NTFS3\_LZX\_XPRESS : activer le support des compressions externes lzx/xpress + - CONFIG\_NTFS3\_FS\_POSIX\_ACL : Listes de contrôle d'accès POSIX NTFS + - CONFIG\_UHID : Support du pilote I/O en espace utilisateur pour le sous-système HID +- md/unraid : version 2.9.33 + - corriger la régression : les emplacements vides avant le premier emplacement occupé renvoient NO\_DEVICES + - corrige la gestion de l'échec du périphérique lors de la reconstruction/synchronisation +- support XEN supprimé + +## Distro de base + +- aaa\_base : version 15.1 +- aaa\_glibc-solibs : version 2.40 +- aaa\_libraries : version 15.1 +- acl : version 2.3.2 +- acpid : version 2.0.34 +- adwaita-icon-theme : version 47.0 +- apcupsd : version 3.14.14 +- appres : version 1.0.7 +- at : version 3.2.5 +- at-spi2-atk: version 2.38.0 +- at-spi2-core : version 2.54.0 +- atk : version 2.38.0 +- attr : version 2.5.2 +- avahi : version 0.8 +- bash : version 5.2.037 +- bash-completion : version 2.16.0 +- beep : version 1.3 +- bin : version 11.1 +- bind : version 9.20.4 +- bluez-firmware : version 1.2 +- bridge-utils : version 1.7.1 +- brotli : version 1.1.0 +- btrfs-progs : version 6.12 +- bzip2 : version 1.0.8 +- ca-certificates : version 20241120 +- cairo : version 1.18.2 +- celt051 : version 0.5.1.3 +- cifs-utils : version 7.1 +- coreutils : version 9.5 +- cpio : version 2.15 +- cpufrequtils : version 008 +- cracklib : version 2.10.3 +- cryptsetup : version 2.7.5 +- curl : version 8.11.1 +- cyrus-sasl: version 2.1.28 +- db48 : version 4.8.30 +- dbus : version 1.16.0 +- dbus-glib: version 0.112 +- dcron : version 4.5 +- dejavu-fonts-ttf: version 2.37 +- devs : version 2.3.1 +- dhcpcd : version 10.0.10 +- diffutils : version 3.10 +- dmidecode : version 3.6 +- dnsmasq : version 2.90 +- docker : version 27.0.3 +- dosfstools : version 4.2 +- e2fsprogs : version 1.47.1 +- ebtables : version 2.0.11 +- editres : version 1.0.9 +- elfutils : version 0.192 +- elogind : version 255.5 +- elvis : version 2.2\_0 +- encodings : version 1.1.0 +- etc: version 15.1 +- ethtool: version 5.19 +- eudev : version 3.2.14 +- file : version 5.46 +- findutils : version 4.10.0 +- flex : version 2.6.4 +- floppy : version 5.5 +- fluxbox : version 1.3.7 +- fontconfig : version 2.15.0 +- freeglut : version 3.6.0 +- freetype : version 2.13.3 +- fribidi : version 1.0.16 +- fuse3 : version 3.16.2 +- gawk : version 5.3.1 +- gd: version 2.3.3 +- gdbm : version 1.24 +- gdk-pixbuf2 : version 2.42.12 +- genpower : version 1.0.5 +- git : version 2.47.1 +- glew: version 2.2.0 +- glib2 : version 2.82.4 +- glibc : version 2.40 +- glibc-zoneinfo : version 2024b +- glu : version 9.0.3 +- gmp : version 6.3.0 +- gnutls : version 3.8.8 +- gptfdisk : version 1.0.10 +- graphite2: version 1.3.14 +- grep : version 3.11 +- gtk+3 : version 3.24.43 +- gzip : version 1.13 +- harfbuzz : version 10.1.0 +- hdparm: version 9.65 +- hicolor-icon-theme : version 0.18 +- hostname : version 3.25 +- htop : version 3.3.0 +- hwloc : version 2.2.0 +- icu4c : version 76.1 +- imlib2 : version 1.7.1 +- inetd : version 1.79s +- infozip : version 6.0 +- inih : version 58 +- inotify-tools : version 4.23.9.0 +- intel-microcode : version 20241112 +- iperf3 : version 3.17.1 +- iproute2 : version 6.12.0 +- iptables : version 1.8.11 +- iputils : version 20240905 +- irqbalance : version 1.7.0 +- jansson : version 2.14 +- jemalloc: version 5.3.0 +- jq : version 1.6 +- json-c : version 0.18\_20240915 +- json-glib : version 1.10.6 +- kbd : version 2.7.1 +- kernel-firmware : version 20241220\_9e1d9ae +- keyutils : version 1.6.3 +- kmod : version 33 +- krb5 : version 1.21.3 +- lbzip2 : version 2.5 +- less : version 668 +- libICE : version 1.1.2 +- libSM : version 1.2.5 +- libX11 : version 1.8.10 +- libXau : version 1.0.12 +- libXaw : version 1.0.16 +- libXcomposite : version 0.4.6 +- libXcursor : version 1.2.3 +- libXdamage : version 1.1.6 +- libXdmcp : version 1.1.5 +- libXevie: version 1.0.3 +- libXext : version 1.3.6 +- libXfixes : version 6.0.1 +- libXfont2 : version 2.0.7 +- libXfontcache: version 1.0.5 +- libXft : version 2.3.8 +- libXi : version 1.8.2 +- libXinerama : version 1.1.5 +- libXmu : version 1.2.1 +- libXpm : version 3.5.17 +- libXrandr : version 1.5.4 +- libXrender : version 0.9.12 +- libXres : version 1.2.2 +- libXt : version 1.3.1 +- libXtst : version 1.2.5 +- libXxf86dga : version 1.1.6 +- libXxf86misc: version 1.0.4 +- libXxf86vm : version 1.1.6 +- libaio: version 0.3.113 +- libarchive : version 3.7.7 +- libcap-ng : version 0.8.5 +- libcgroup : version 0.41 +- libdaemon : version 0.14 +- libdeflate : version 1.23 +- libdmx : version 1.1.5 +- libdrm : version 2.4.124 +- libedit : version 20240808\_3.1 +- libepoxy: version 1.5.10 +- libestr : version 0.1.9 +- libevdev : version 1.13.3 +- libevent : version 2.1.12 +- libfastjson : version 0.99.9 +- libffi : version 3.4.6 +- libfontenc : version 1.1.8 +- libgcrypt : version 1.11.0 +- libglvnd : version 1.7.0 +- libgpg-error : version 1.51 +- libgudev : version 238 +- libidn : version 1.42 +- libjpeg-turbo : version 3.1.0 +- liblogging : version 1.0.6 +- libmnl: version 1.0.5 +- libnetfilter\_conntrack : version 1.1.0 +- libnfnetlink: version 1.0.2 +- libnftnl : version 1.2.8 +- libnl3 : version 3.11.0 +- libnvme : version 1.11.1 +- libpcap : version 1.10.5 +- libpciaccess : version 0.18.1 +- libpng : version 1.6.44 +- libpsl : version 0.21.5 +- libpthread-stubs : version 0.5 +- libseccomp : version 2.5.5 +- libssh: version 0.11.1 +- libssh2 : version 1.11.1 +- libtasn1: version 4.19.0 +- libtiff : version 4.7.0 +- libtirpc : version 1.3.6 +- libtpms : version 0.9.0 +- libunistring : version 1.3 +- libunwind : version 1.8.1 +- libusb : version 1.0.27 +- libusb-compat : version 0.1.8 +- libuv : version 1.49.2 +- libvirt : version 10.7.0 +- libvirt-php : version 0.5.8 +- libwebp : version 1.5.0 +- libwebsockets : version 4.3.2 +- libx86: version 1.1 +- libxcb : version 1.17.0 +- libxcvt : version 0.1.3 +- libxkbcommon : version 1.7.0 +- libxkbfile : version 1.1.3 +- libxml2 : version 2.13.5 +- libxshmfence : version 1.3.3 +- libxslt : version 1.1.42 +- libzip : version 1.11.2 +- listres : version 1.0.6 +- lm\_sensors : version 3.6.0 +- lmdb : version 0.9.33 +- logrotate : version 3.22.0 +- lshw: version B.02.19.2 +- lsof : version 4.99.4 +- lsscsi: version 0.32 +- lvm2 : version 2.03.29 +- lz4 : version 1.10.0 +- lzip : version 1.24.1 +- lzlib : version 1.14 +- lzo: version 2.10 +- mbuffer : version 20240107 +- mc : version 4.8.31 +- mcelog : version 202 +- mesa : version 24.2.8 +- miniupnpc: version 2.1 +- mkfontscale : version 1.2.3 +- mpfr : version 4.2.1 +- mtdev : version 1.1.7 +- nano : version 8.3 +- ncompress: version 5.0 +- ncurses : version 6.5 +- net-tools : version 20181103\_0eebece +- nettle : version 3.10 +- network-scripts : version 15.1 +- nfs-utils : version 2.8.2 +- nghttp2 : version 1.64.0 +- nghttp3 : version 1.7.0 +- nginx : version 1.27.2 +- noto-fonts-ttf : version 2024.12.01 +- nss-mdns: version 0.14.1 +- ntfs-3g : version 2022.10.3 +- ntp : version 4.2.8p18 +- numactl: version 2.0.13 +- nvme-cli : version 2.11 +- oniguruma : version 6.9.9 +- openssh : version 9.9p1 +- openssl : version 3.4.0 +- ovmf : version stable202411 +- p11-kit : version 0.25.5 +- pam : version 1.6.1 +- pango : version 1.54.0 +- patch: version 2.7.6 +- pciutils : version 3.13.0 +- pcre: version 8.45 +- pcre2 : version 10.44 +- perl : version 5.40.0 +- php : version 8.3.8 +- pixman : version 0.44.2 +- pkgtools: version 15.1 +- procps-ng : version 4.0.4 +- pv: version 1.6.6 +- qemu : version 9.1.0 +- qrencode: version 4.1.1 +- readline : version 8.2.013 +- reiserfsprogs: version 3.6.27 +- rpcbind: version 1.2.6 +- rsync : version 3.3.0 +- rsyslog: version 8.2102.0 +- sakura : version 3.5.0 +- samba : version 4.21.1 +- sdparm: version 1.12 +- sed : version 4.9 +- sessreg : version 1.1.3 +- setxkbmap : version 1.3.4 +- sg3\_utils : version 1.48 +- shadow : version 4.16.0 +- shared-mime-info : version 2.4 +- slim : version 1.3.6 +- smartmontools : version 7.4 +- spice: version 0.15.0 +- spirv-llvm-translator : version 19.1.2 +- sqlite : version 3.46.1 +- ssmtp: version 2.64 +- startup-notification: version 0.12 +- sudo : version 1.9.16p2 +- swtpm : version 0.7.3 +- sysfsutils: version 2.1.1 +- sysstat : version 12.7.6 +- sysvinit : version 3.12 +- sysvinit-scripts: version 15.1 +- talloc : version 2.4.2 +- tar : version 1.35 +- tcp\_wrappers : version 7.6 +- tdb : version 1.4.12 +- telnet: version 0.17 +- tevent : version 0.16.1 +- traceroute : version 2.1.6 +- transset : version 1.0.4 +- tree : version 2.1.1 +- usbredir: version 0.8.0 +- usbutils : version 018 +- userspace-rcu : version 0.15.0 +- utempter : version 1.2.1 +- util-linux : version 2.40.2 +- vbetool: version 1.2.2 +- virtiofsd : version 1.11.1 +- vsftpd: version 3.0.5 +- vte3 : version 0.50.2 +- wayland : version 1.23.1 +- wget : version 1.25.0 +- which: version 2.21 +- wireguard-tools: version 1.0.20210914 +- wqy-zenhei-font-ttf : version 0.8.38\_1 +- wsdd2 : version 1.8.7 +- xauth : version 1.1.3 +- xcb-util : version 0.4.1 +- xcb-util-keysyms : version 0.4.1 +- xclock : version 1.1.1 +- xdpyinfo : version 1.3.4 +- xdriinfo : version 1.0.7 +- xev : version 1.2.6 +- xf86-input-evdev : version 2.11.0 +- xf86-input-keyboard : version 1.9.0 +- xf86-input-mouse : version 1.9.3 +- xf86-input-synaptics : version 1.9.2 +- xf86-video-ast : version 1.1.5 +- xf86-video-mga : version 2.1.0 +- xf86-video-vesa : version 2.6.0 +- xfsprogs : version 6.12.0 +- xhost : version 1.0.9 +- xinit : version 1.4.2 +- xkbcomp : version 1.4.7 +- xkbevd : version 1.1.6 +- xkbutils : version 1.0.6 +- xkeyboard-config : version 2.43 +- xkill : version 1.0.6 +- xload : version 1.2.0 +- xlsatoms : version 1.1.4 +- xlsclients : version 1.1.5 +- xmessage : version 1.0.7 +- xmodmap : version 1.0.11 +- xorg-server : version 21.1.15 +- xprop : version 1.2.8 +- xrandr : version 1.5.3 +- xrdb : version 1.2.2 +- xrefresh : version 1.1.0 +- xset : version 1.2.5 +- xsetroot : version 1.1.3 +- xsm : version 1.0.6 +- xterm : version 396 +- xtrans : version 1.5.2 +- xwd : version 1.0.9 +- xwininfo : version 1.1.6 +- xwud : version 1.0.7 +- xxHash : version 0.8.3 +- xz : version 5.6.3 +- yajl: version 2.1.0 +- zfs : version 2.2.7\_6.6.68\_Unraid +- zlib : version 1.3.1 +- zstd : version 1.5.6 + +## Correctifs + +Avec le plugin Unraid Patch installé, visitez ***Outils → Unraid Patch*** pour obtenir les correctifs / corrections à chaud suivants : + +- le mover ne déplaçait pas les partages avec des espaces dans le nom de l'array vers le pool +- Gestionnaire de fichiers : autoriser l'accès aux partages distants UD +- Liste des partages : l'info-bulle affichait `%20` au lieu d'un espace +- Gestionnaire de VM : corriger le problème avec le champ Discard vide sur vDisk +- Inclure les correctifs installés dans les diagnostics + +Note : si vous avez le Plugin de Réglage du Mover installé, vous serez invité à redémarrer pour appliquer ces correctifs. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md new file mode 100644 index 0000000000..29e3d8fee6 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md @@ -0,0 +1,72 @@ +# Version 7.0.1 2025-02-25 + +## Notes de mise à niveau + +Ceci est une version de sécurité et de correction de bugs. Elle inclut tous les correctifs mis à disposition pour la version 7.0.0. + +Cela résout un problème de sécurité lorsque l'intégration de Tailscale est activée sur un conteneur fonctionnant en mode Host, puis partagée avec d'autres utilisateurs. À partir de cette version, le démarrage de tels conteneurs a été désactivé. Pour continuer, désactivez l'intégration de Tailscale pour les conteneurs en mode Host ou modifiez le Type de Réseau en Bridge ou "Personnalisé : eth0/bond0/br0." + +### Problèmes connus + +Pour les problèmes connus, consultez les [notes de version 7.0.0](7.0.0.md#known-issues). + +### Rétrogradation + +Si vous revenez en arrière à une version antérieure à 7.0.0, veuillez également voir les [notes de version 7.0.0](7.0.0.md#rolling-back). + +## Modifications par rapport à [7.0.0](7.0.0.md) + +### Corrections de bugs et améliorations + +- Intégration Docker Tailscale + - Empêchez les conteneurs ayant le type de réseau « Hôte » d'utiliser l'intégration Tailscale, désactivez la possibilité de démarrer des conteneurs existants dans cette configuration (sécurité) + - Empêchez les nouveaux conteneurs ayant le type de réseau « Conteneur » d'utiliser l'intégration Tailscale (le conteneur auxiliaire doit avoir Tailscale, pas le conteneur principal) + - Acceptez le répertoire d'état Tailscale par défaut des applications communautaires + - Installer ca\_certificates si nécessaire + - Amélioration de la gestion **des arguments post** lorsque l'intégration Tailscale est activée, tout avant le premier `;` est passé au conteneur, tout après est exécuté sur l'hôte + - Remarque : des améliorations supplémentaires sont en cours, notamment la possibilité de gérer le conteneur auxiliaire Tailscale officiel avec cette intégration +- Docker : masquer le statut de mise à jour pour les conteneurs gérés par des tiers +- Corrigez une cause possible de fuite de mémoire nchan +- Gestionnaire de fichiers : autoriser l'accès aux partages distants UD +- Nombre accru de périphériques sd détectés pendant le démarrage initial de 8 à 16 +- Résolution du problème *Etat de Pool Incorrect, expansion invalide* que les utilisateurs rencontraient lors de la mise à niveau de certains pools btrfs de 6.12 +- Empêchez l'importation de partitions vfat existantes +- Problème résolu tentant de démarrer l'array avec un pool défini mais non assigné +- Corriger mc ne préservant pas le répertoire de travail lors de la sortie avec F10 +- mover + - le mover ne déplaçait pas les partages avec des espaces dans le nom de l'array vers le pool + - le mover ne gérait pas correctement les liens physiques +- VMs + - correction : Impossible de démarrer/arrêter une machine virtuelle avec des apostrophes dans le nom + - correction : Dans certaines conditions, créer une machine virtuelle crée un nouveau partage avec le nom de la VM + - corrigez le problème avec le champ Discard vide sur vDisk +- Mettre sur liste noire le driver `cdc_ether` pour éviter les problèmes avec les NICs IPMI sur certaines cartes mères + Pour réactiver ce pilote, `touch /boot/config/modprobe.d/cdc_ether.conf` +- Rétrogradez vers une version antérieure de dhcpcd pour essayer de résoudre les problèmes DHCP que certains utilisateurs rencontrent +- Liste des partages : l'info-bulle affichait `%20` au lieu d'un espace +- Inclure les correctifs installés dans les diagnostics + +### Noyau Linux + +- version 6.6.78 +- correction : md/unraid permet le démarrage s'il y a seulement 2 parités et pas de disques de données + +### Distro de base + +- bind : version 9.20.5 (CVE-2024-12705 CVE-2024-11187) +- curl : version 8.12.1 (CVE-2025-0725 CVE-2025-0665 CVE-2025-0167) +- dhcpcd : version 9.5.3 (retour de v10.0.10) +- git : version 2.48.1 (CVE-2024-50349 CVE-2024-52006) +- gnutls : version 3.8.9 (CVE-2024-12243) +- libtasn1 : version 4.20.0 (CVE-2024-12133) +- libxml2 : 2.13.6 (CVE-2025-24928 CVE-2024-56171) +- mariadb : version 11.4.5 (CVE-2025-21490) +- mc : version 4.8.33 +- openssh : version 9.9p2 (CVE-2025-26465 CVE-2025-26466) +- openssl : version 3.4.1 +- rsync : version 3.4.1 (CVE-2024-12084 CVE-2024-12085 CVE-2024-12086 CVE-2024-12087 CVE-2024-12088 CVE-2024-12084) +- ttyd : version 20250129 + +## Correctifs + +Aucun correctif n'est actuellement disponible pour cette version. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md new file mode 100644 index 0000000000..26d6b3d12e --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md @@ -0,0 +1,331 @@ +# Version 7.1.0 2025-05-05 + +Cette version ajoute la mise en réseau sans fil, la possibilité d'importer TrueNAS et d'autres pools étrangers, plusieurs améliorations pour les machines virtuelles, les premiers pas vers un webGUI réactif, et plus encore. + +## Mise à niveau + +### Problèmes connus + +Cette version présente un problème potentiel de perte de données où la fonctionnalité récente "mover empty disk" ne gère pas correctement les niveaux de division sur les partages. Corrigé dans la version 7.1.2. + +#### Plugins + +Veuillez mettre à jour tous les plugins, notamment Unraid Connect et le pilote Nvidia. + +Pour d'autres problèmes connus, voir les [notes de version 7.0.0](7.0.0.md#known-issues). + +### Rétrogradation + +Nous apportons des améliorations à la manière dont nous distribuons les correctifs entre les versions, donc le plugin Patch autonome sera désinstallé à partir de cette version. Si vous revenez à une version antérieure, nous vous recommandons de le réinstaller. Plus de détails à venir. + +Si vous revenez en arrière à une version antérieure à 7.0.0, veuillez également voir les [notes de version 7.0.0](7.0.0.md#rolling-back). + +## Changements par rapport à [7.0.1](7.0.1.md) + +### Stockage + +- Importer des pools ZFS étrangers tels que TrueNAS, Proxmox, Ubuntu, QNAP. +- Importer la plus grande partition sur le disque plutôt que la première. +- Supprimer l'appareil d'un raid1 btrfs ou d'un miroir zfs à un seul vdev réduira maintenant le nombre d'emplacements dans le pool. + +#### Autres modifications de stockage + +- Correction : Les disques désactivés n'étaient pas affichés sur le tableau de bord. +- Correction : Au départ, seul le premier appareil du pool s'arrêtait après l'ajout d'un réglage d'arrêt personnalisé. +- Correction : Le démarrage de l'array était permis même avec 2 appareils de parité et aucun appareil de données. +- Correction : La notification de vérification de parité affichait souvent la vérification précédente et non l'actuelle. +- Correctif : Résolution de certains cas de *Mauvais état du pool. Trop de dispositifs erronés ou manquants* lors de la mise à niveau. +- Correction : Remplacement d'un appareil zfs par un vdev plus petit impossible. +- mover : + - Correction : Résolu le problème avec les anciens fichiers share.cfg qui empêchait le mover de fonctionner. + - Correction : Le mover échouerait à recréer le lien dur si le répertoire parent n'existait pas déjà. + - Correction : Le mover se bloquait sur les pipes nommés. + - Correction : [Utiliser le mover pour vider un disque de l'array](7.0.0.md#using-mover-to-empty-an-array-disk) ne déplace maintenant que les dossiers de premier niveau qui ont un fichier share.cfg correspondant, a également corrigé un bug empêchant la liste des fichiers *non déplacés* d'être affichée. + +### Réseau + +#### Réseau sans fil + +Unraid prend désormais en charge le WiFi ! Une connexion filaire est généralement préférable, mais si cela n'est pas possible pour votre situation, vous pouvez maintenant configurer le WiFi. + +Pour la configuration initiale, vous aurez besoin soit d'un clavier/écran local (démarrer en mode GUI) soit d'une connexion filaire. À l'avenir, l'outil USB Creator pourra configurer le réseau sans fil avant le premier démarrage. + +- Accédez au webGUI et allez dans ***Réglages → Paramètres Réseau → Sans fil wlan0*** + - Tout d'abord, activez le WiFi + - La **Région Réglementaire** peut généralement être laissée en **Automatique**, mais définissez-la sur votre emplacement si le réseau auquel vous souhaitez vous connecter n'est pas disponible + - Trouvez votre réseau préféré et cliquez sur l'icône **Se connecter à un réseau WiFi** + - Renseignez votre mot de passe WiFi et autres réglages, puis appuyez sur **Rejoindre ce réseau** + - Remarque : si votre objectif est d'utiliser des conteneurs Docker via WiFi, débranchez toute connexion filaire avant de démarrer Docker + +Détails supplémentaires + +- WPA2/WPA3 et WPA2/WPA3 Enterprise sont pris en charge, si à la fois WPA2 et WPA3 sont disponibles alors WPA3 est utilisé. +- Il n'est pas recommandé d'utiliser à la fois le filaire et le sans fil à long terme, il vaut mieux opter pour l'un ou l'autre. Mais si les deux connexions utilisent DHCP et que vous (dé)branchez un câble réseau alors que le sans fil est configuré, le système (à l'exception de Docker) devrait s'ajuster dans un délai de 45 à 60 secondes. +- Prise en charge des chipsets sans fil : Nous prévoyons un succès avec les adaptateurs WiFi modernes, mais les adaptateurs plus anciens peuvent ne pas fonctionner. Si votre adaptateur WiFi n'est pas détecté, veuillez créer un nouveau fil de discussion sur le forum et fournir vos diagnostics pour qu'il puisse être étudié. +- Si vous souhaitez utiliser un adaptateur WiFi USB, consultez cette liste d'[adaptateurs WiFi USB qui sont pris en charge avec les pilotes intégrés au noyau Linux](https://github.com/morrownr/USB-WiFi/blob/main/home/USB_WiFi_Adapters_that_are_supported_with_Linux_in-kernel_drivers.md) +- Avancé : Les nouveaux fichiers de microprogramme placés dans `/boot/config/firmware/` seront copiés dans `/lib/firmware/` avant le chargement des modules de pilotes (les fichiers existants ne seront pas écrasés). + +Limitations : il existe des limitations réseau lors de l'utilisation du sans fil, car un wlan ne peut avoir qu'une seule adresse MAC. + +- Un seul NIC sans fil est pris en charge, wlan0 +- wlan0 n'est pas capable de participer à un bond +- Conteneurs Docker + - Sur ***Réglages → Docker***, notez que lorsque le sans fil est activé, le système ignorera le réglage de **Type de réseau Docker personnalisé** et utilisera toujours **ipvlan** (macvlan n'est pas possible car le sans fil ne prend pas en charge plusieurs adresses MAC sur une seule interface) + - ***Réglages → Docker***, **Accès de l'hôte aux réseaux personnalisés** doit être désactivé + - Le **Type de réseau** d'un conteneur Docker ne peut pas utiliser br0/bond0/eth0 + - Docker a une limitation qui l'empêche de participer à deux réseaux partageant le même sous-réseau. Si vous changez entre filaire et sans fil, vous devrez redémarrer Docker et reconfigurer tous les conteneurs existants pour utiliser la nouvelle interface. Nous recommandons de configurer soit le filaire soit le sans fil et de ne pas changer. +- VMs + - Nous vous recommandons de définir la **Source Réseau** de votre VM sur **virbr0**, il n'y a pas de limite au nombre de VM que vous pouvez exécuter dans ce mode. Les VM auront un accès réseau complet, mais l'inconvénient est qu'elles ne seront pas accessibles depuis le réseau. Vous pouvez toujours y accéder via VNC vers l'hôte. + - Avec quelques configurations manuelles, une seule VM peut être rendue accessible sur le réseau : + - Configurez la VM avec une adresse IP statique + - Configurez la même adresse IP sur l'interface ipvtap, tapez : `ip addr add ADRESSE-IP dev shim-wlan0` + +#### Autres modifications réseau + +- Dans ***Paramètres → Paramètres Réseau***, vous pouvez maintenant ajuster les réglages DNS du serveur sans arrêter d'autres services d'abord. Voir le haut de la section **eth0**. +- Quand vous configurez une interface réseau, chaque interface a un bouton **Info** montrant les détails de la connexion actuelle. +- Lors de la configuration d'une interface réseau, le champ **MTU souhaité** est désactivé jusqu'à ce que vous cliquiez sur **Activer les trames jumbo**. Passez la souris sur l'icône pour un avertissement concernant la modification du MTU, dans la plupart des cas il doit être laissé à la valeur par défaut. +- Lors de la configuration de plusieurs interfaces réseau, par défaut les interfaces supplémentaires verront leur passerelle désactivée, ce qui est un paramètre par défaut sûr qui fonctionne sur la plupart des réseaux où une seule passerelle est requise. Si une passerelle supplémentaire est activée, elle se verra attribuer un métrique supérieur aux passerelles existantes afin d'éviter tout conflit. Vous pouvez ajuster cela si nécessaire. +- Les anciennes interfaces réseau sont automatiquement supprimées des fichiers de configuration lorsque vous enregistrez les modifications dans ***Réglages → Paramètres Réseau***. +- Corriger divers problèmes avec le DHCP. + +### Gestionnaire de VM + +#### Pilote GPU Nouveau + +Le pilote Nouveau pour les GPU Nvidia est maintenant inclus, désactivé par défaut car nous supposons que la plupart des utilisateurs préféreront le pilote Nvidia. Pour l'activer, désinstallez le plugin du pilote Nvidia et exécutez `touch /boot/config/modprobe.d/nouveau.conf` puis redémarrez. + +#### VirGL + +Vous pouvez désormais partager des GPU Intel et AMD entre plusieurs VM Linux en même temps en utilisant VirGL, le moteur de rendu 3D OpenGL virtuel. Utilisé de cette manière, le GPU fournira des graphismes accélérés mais n'affichera pas sur le moniteur. Notez que cela ne fonctionne pas encore avec les VM Windows ou le plugin standard Nvidia (cela fonctionne cependant avec les GPU Nvidia utilisant le pilote Nouveau). + +Pour utiliser le GPU virtuel dans une VM Linux, modifiez le modèle de VM et réglez la **Carte Graphique** sur **Virtuelle**. Ensuite, réglez le **Pilote Vidéo de la Console VM** sur **Virtio(3d)** et sélectionnez le **GPU de Rendu** approprié dans la liste des GPU disponibles (notez que les GPU liés à VFIO-PCI ou passés à d'autres VM ne peuvent pas être choisis ici, et les GPU Nvidia sont disponibles uniquement si le pilote Nouveau est activé). + +#### QXL GPUs virtuels + +Pour utiliser cette fonctionnalité dans une VM, éditez le modèle de VM et définissez la **Carte Graphique** sur **Virtuel** et le **Pilote Vidéo de la Console VM** sur **QXL (Meilleur)**, vous pouvez alors choisir combien d'écrans il prend en charge et quelle quantité de mémoire lui allouer. + +#### Le choix des CPU est optionnel + +Le choix des CPU est désormais optionnel, si aucun cœur n'est attribué à une VM, le système d'exploitation choisit quels cœurs utiliser. + +Depuis ***Réglages → Paramètres CPU*** ou lors de l'édition d'une VM, appuyez sur **Deselect All** pour désélectionner tous les cœurs pour cette VM et définissez le nombre de vCPUs à 1, augmentez selon le besoin. + +### Modèles VM utilisateur + +Pour créer un modèle utilisateur : + +- Éditez la VM, choisissez **Créer Modifier le Modèle** et attribuez-lui un nom. Il sera désormais enregistré en tant que **Modèle Utilisateur**, disponible sur l'écran **Ajouter une VM**. + +Pour utiliser un modèle utilisateur : + +- Dans la liste des VM, appuyez sur **Ajouter VM**, puis choisissez le modèle dans la zone **Modèles Utilisateur**. + +Importer/Exporter + +- Depuis l'écran **Ajouter VM**, survolez un modèle utilisateur et cliquez sur la flèche pour exporter le modèle vers un emplacement sur le serveur ou le télécharger. +- Sur un autre système Unraid appuyez sur **Importer depuis le fichier** ou **Télécharger** pour utiliser le modèle. + +#### Autres modifications de VM + +- Lorsque le GPU **Principal** est assigné en passthrough pour une VM, avertissez qu'il peut ne pas fonctionner sans charger un vBIOS compatible. +- Correction : Retirer le message **Chemin n'existe pas** déroutant lors de l'installation du service de VM +- Fonct : Les VMs d'Unraid peuvent désormais démarrer en mode GUI, lors de l'utilisation du pilote vidéo QXL +- Correction : Impossible de changer l'icône de VM lors de l'utilisation de la vue XML + +### WebGUI + +#### Changements CSS + +Dans le cadre de l'amélioration de la réactivité du webGUI, nous avons retravaillé le CSS. Dans l'ensemble, cela ne devrait pas être perceptible à part quelques ajustements mineurs de couleur. Nous prévoyons que la plupart des plugins s'en accommodera, bien que les auteurs de plugins puissent vouloir consulter [cette documentation](https://github.com/unraid/webgui/blob/master/emhttp/plugins/dynamix/styles/themes/README.md). La réactivité continuera d'être améliorée dans les futures versions. + +Si vous remarquez des problèmes d'alignement ou de couleur dans un thème officiel, veuillez nous en informer. + +#### problèmes de mémoire partagée nchan + +Nous avons apporté plusieurs changements qui devraient prévenir ce problème, et si nous détectons qu'il se produit, nous redémarrons nginx pour tenter de récupérer automatiquement. + +Si votre page principale ne se remplit jamais, ou si vous voyez "nchan : Mémoire partagée insuffisante" dans vos journaux, veuillez créer un nouveau fil de discussion sur le forum et fournir vos diagnostics. Vous pouvez éventuellement naviguer vers ***Paramètres → Paramètres d'Affichage*** et désactiver **Autoriser les mises à jour en temps réel sur les navigateurs inactifs** ; cela empêche votre navigateur de demander certaines mises à jour une fois qu'il perd le focus. Dans cet état, vous verrez une bannière indiquant **Mises à Jour en Temps Réel Suspendues**, il suffit de cliquer sur le webGUI pour le ramener au premier plan et réactiver les mises à jour en temps réel. Certaines pages rechargeront automatiquement pour s'assurer qu'elles affichent les dernières informations. + +#### Autres modifications du WebGUI + +- Correction : les outils de blocage de publicités pouvaient empêcher le tableau de bord de se charger +- Correction : Dans certaines circonstances, l'utilisation de la mémoire du navigateur sur le tableau de bord pouvait croître de façon exponentielle +- Correction : Empêcher un fichier de configuration corrompu de casser le tableau de bord + +## Divers + +### Autres changements + +- Sur ***Réglages → Date et Heure*** vous pouvez maintenant synchroniser votre horloge avec un serveur **PTP** (nous prévoyons que la plupart des utilisateurs continueront à utiliser **NTP**) +- Mise à niveau vers jQuery 3.7.1 et jQuery UI 1.14.1 +- Correction : Visiter boot.php n'arrêtera plus le serveur +- Correction : Sur l'onglet Docker, le menu déroulant pour le dernier conteneur était tronqué dans certaines situations +- Correction : Sur ***Réglages → Docker***, la suppression d'un **répertoire Docker** stocké sur un volume ZFS fonctionne maintenant correctement +- Correction : Au démarrage, la configuration SSH personnalisée est à nouveau copiée de `/boot/config/ssh/` vers `/etc/ssh/` +- Correction : Le Gestionnaire de Fichiers peut copier des fichiers d'un partage utilisateur vers un montage de disque non assigné +- Correction : Retirer le message déroutant **Chemin n'existe pas** lors de l'installation du service Docker +- Correction : mise à jour de `rc.messagebus` pour corriger le traitement de `/etc/machine-id` +- Diagnostics + - Correction : Amélioration de l'anonymisation des adresses IPv6 dans les diagnostics + - Correction : Amélioration de l'anonymisation des noms d'utilisateur dans certains fichiers de configuration dans les diagnostics + - Correction : les diagnostics pouvaient échouer en raison de chaînes multi-octets dans le syslog + - Fonct : les diagnostics enregistrent maintenant les erreurs dans logs/diagnostics.error.log + +### Noyau Linux + +- version 6.12.24-Unraid + - Appliquer : \[PATCH] [Revert "PCI : Éviter la réinitialisation lorsque désactivé via sysfs"](https://lore.kernel.org/lkml/20250414211828.3530741-1-alex.williamson@redhat.com/) + - CONFIG\_NR\_CPUS : augmenté de 256 à 512 + - CONFIG\_TEHUTI\_TN40 : Adaptateurs Ethernet 10G Tehuti Networks TN40xx + - CONFIG\_DRM\_XE : Graphiques Intel Xe + - CONFIG\_UDMABUF : pilote divers dmabuf espace utilisateur + - CONFIG\_DRM\_NOUVEAU : cartes Nouveau (NVIDIA) + - CONFIG\_DRM\_QXL : QXL GPU virtuel + - CONFIG\_EXFAT\_FS : prise en charge du système de fichiers exFAT + - CONFIG\_PSI : suivi des informations de blocage de pression + - CONFIG\_PSI\_DEFAULT\_DISABLED : besoin du paramètre de démarrage pour activer le suivi des informations de blocage de pression, c'est-à-dire `psi=1` + - CONFIG\_ENCLOSURE\_SERVICES : Services d'enceinte + - CONFIG\_SCSI\_ENCLOSURE : Support de l'enceinte SCSI + - CONFIG\_DRM\_ACCEL : Cadre d'accélération de calcul + - CONFIG\_DRM\_ACCEL\_HABANALABS : Accélérateurs AI HabanaLabs + - CONFIG\_DRM\_ACCEL\_IVPU : NPU (Unité de Traitement Neuronal) Intel + - CONFIG\_DRM\_ACCEL\_QAIC : Accélérateurs AI Cloud Qualcomm + - zfs : version 2.3.1 + +- Support sans fil + - Atheros/Qualcomm + - Broadcom + - Intel + - Marvell + - Microtek + - Realtek + +### Mises à jour de la distribution de base + +- aaa\_glibc-solibs : version 2.41 +- adwaita-icon-theme : version 48.0 +- at-spi2-core : version 2.56.1 +- bind : version 9.20.8 +- btrfs-progs : version 6.14 +- ca-certificates : version 20250425 +- cairo : version 1.18.4 +- cifs-utils : version 7.3 +- coreutils : version 9.7 +- dbus : version 1.16.2 +- dbus-glib : version 0.114 +- dhcpcd : version 9.5.2 +- diffutils : version 3.12 +- dnsmasq : version 2.91 +- docker : version 27.5.1 +- e2fsprogs : version 1.47.2 +- elogind : version 255.17 +- elfutils : version 0.193 +- ethtool : version 6.14 +- firefox : version 128.10 (AppImage) +- floppy : version 5.6 +- fontconfig : version 2.16.2 +- gdbm : version 1.25 +- git : version 2.49.0 +- glib2 : version 2.84.1 +- glibc : version 2.41 +- glibc-zoneinfo : version 2025b +- grep : version 3.12 +- gtk+3 : version 3.24.49 +- gzip : version 1.14 +- harfbuzz : version 11.1.0 +- htop : version 3.4.1 +- icu4c : version 77.1 +- inih : version 60 +- intel-microcode : version 20250211 +- iperf3 : version 3.18 +- iproute2 : version 6.14.0 +- iw : version 6.9 +- jansson : version 2.14.1 +- firmware du noyau : version 20250425\_cf6ea3d +- kmod : version 34.2 +- less : version 674 +- libSM : version 1.2.6 +- libX11 : version 1.8.12 +- libarchive : version 3.7.8 +- libcgroup : version 3.2.0 +- libedit : version 20250104\_3.1 +- libevdev : version 1.13.4 +- libffi : version 3.4.8 +- libidn : version 1.43 +- libnftnl : version 1.2.9 +- libnvme : version 1.13 +- libgpg-error : version 1.55 +- libpng : version 1.6.47 +- libseccomp : version 2.6.0 +- liburing : version 2.9 +- libusb : version 1.0.28 +- libuv : version 1.51.0 +- libvirt : version 11.2.0 +- libXft : version 2.3.9 +- libxkbcommon : version 1.9.0 +- libxml2 : version 2.13.8 +- libxslt : version 1.1.43 +- libzip : version 1.11.3 +- linuxptp : version 4.4 +- lvm2 : version 2.03.31 +- lzip : version 1.25 +- lzlib : version 1.15 +- mcelog : version 204 +- mesa : version 25.0.4 +- mpfr : version 4.2.2 +- nano: version 8.4 +- ncurses : version 6.5\_20250419 +- nettle : version 3.10.1 +- nghttp2 : version 1.65.0 +- nghttp3 : version 1.9.0 +- noto-fonts-ttf : version 2025.03.01 +- nvme-cli : version 2.13 +- oniguruma : version 6.9.10 +- openssh : version 10.0p1 +- openssl : version 3.5.0 +- ovmf : version stable202502 +- pam: version 1.7.0 +- pango : version 1.56.3 +- parted : version 3.6 +- patch : version 2.8 +- pcre2 : version 10.45 +- perl : version 5.40.2 +- php : version 8.3.19 +- procps-ng : version 4.0.5 +- qemu : version 9.2.3 +- rsync : version 3.4.1 +- samba : version 4.21.3 +- shadow : version 4.17.4 +- spice : version 0.15.2 +- spirv-llvm-translator : version 20.1.0 +- sqlite : version 3.49.1 +- sysstat : version 12.7.7 +- sysvinit : version 3.14 +- talloc : version 2.4.3 +- tdb : version 1.4.13 +- tevent : version 0.16.2 +- tree : version 2.2.1 +- userspace-rcu : version 0.15.2 +- utempter : version 1.2.3 +- util-linux: version 2.41 +- virglrenderer : version 1.1.1 +- virtiofsd : version 1.13.1 +- which : version 2.23 +- wireless-regdb : version 2025.02.20 +- wpa\_supplicant : version 2.11 +- xauth : version 1.1.4 +- xf86-input-synaptics : version 1.10.0 +- xfsprogs : version 6.14.0 +- xhost : version 1.0.10 +- xinit : version 1.4.4 +- xkeyboard-config : version 2.44 +- xorg-server : version 21.1.16 +- xterm : version 398 +- xtrans : version 1.6.0 +- xz: version 5.8.1 +- zstd : version 1.5.7 + +## Correctifs + +Aucun correctif n'est actuellement disponible pour cette version. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md new file mode 100644 index 0000000000..3a00833177 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md @@ -0,0 +1,33 @@ +# Version 7.1.1 2025-05-08 + +Ceci est une petite version, contenant une version mise à jour du micrologiciel OVMF qui revient sur un [commit](https://github.com/tianocore/edk2/commit/efaa102d00) pour résoudre un problème qui empêche certaines machines virtuelles (Fedora, Debian, Rocky, autres distributions basées sur CentOS) de démarrer. Voir aussi [cette discussion](https://github.com/tianocore/edk2/issues/10883). + +## Mise à niveau + +### Problèmes connus + +Cette version présente un problème potentiel de perte de données où la fonctionnalité récente "mover empty disk" ne gère pas correctement les niveaux de division sur les partages. Corrigé dans la version 7.1.2. + +Pour d'autres problèmes connus, voir les [notes de version 7.1.0](7.1.0.md#known-issues). + +### Rétrogradation + +Veuillez consulter les [notes de version 7.1.0](7.1.0.md#rolling-back). + +## Modifications par rapport à [7.1.0](7.1.0.md) + +### Gestionnaire de VM + +- Correction : comprend un firmware OVMF mis à jour pour résoudre un problème empêchant certains VM de démarrer + +### Noyau Linux + +- version 6.12.24-Unraid (aucun changement) + +### Mises à jour de la distribution de base + +- ovmf : version unraid202502 + +## Correctifs + +Aucun correctif n'est actuellement disponible pour cette version. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md new file mode 100644 index 0000000000..d746c5f733 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md @@ -0,0 +1,29 @@ +# Version 7.1.2 2025-05-11 + +C'est une petite mais importante version, résolvant un problème potentiel de perte de données dans 7.1.0 et 7.1.1 où la fonctionnalité "déplacer disque vide" récente ne gère pas correctement les niveaux de fractionnement sur les partages. + +Elle résout également un problème mineur où la fonctionnalité normale de déplacement ignore les niveaux de fractionnement lors du déplacement de fichiers. + +## Mise à niveau + +### Problèmes connus + +Veuillez voir les [notes de version 7.1.0](7.1.0.md#known-issues). + +### Rétrogradation + +Veuillez consulter les [notes de version 7.1.0](7.1.0.md#rolling-back). + +## Modifications par rapport à [7.1.1](7.1.1.md) + +### Stockage + +- Correction : "déplacer disque vide" ne gère pas correctement les niveaux de fractionnement sur les partages + +### Noyau Linux + +- version 6.12.24-Unraid (aucun changement) + +## Correctifs + +Aucun correctif n'est actuellement disponible pour cette version. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md new file mode 100644 index 0000000000..5d4871666b --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md @@ -0,0 +1,50 @@ +# Version 7.1.3 2025-06-04 + +Ceci est une petite mise à jour de correction de bugs et de sécurité. + +## Mise à niveau + +### Problèmes connus + +- Certains utilisateurs rencontrent des problèmes de réseau dans cette version, veuillez mettre à niveau vers [7.1.4](7.1.4.md) +- Veuillez également consulter les [notes de version 7.1.0](7.1.0.md#known-issues). + +### Rétrogradation + +Veuillez consulter les [notes de version 7.1.0](7.1.0.md#rolling-back). + +## Modifications par rapport à [7.1.2](7.1.2.md) + +### Réseau + +- Correction : Permettre aux affectations IP statiques de coexister avec le sans fil +- Correction : Amélioration des affectations de métriques automatiques +- Correction : Amélioration de la sélection des IP sur les interfaces + +### Docker + +- Correction : Permettre l'accès hôte docker sur l'interface sans fil +- Correction : Correction de l'interface shim-br0 parfois non créée, ce qui pouvait poser des problèmes d'accès hôte aux réseaux personnalisés sur br0 + +### Stockage + +- Correction : déplaceur : supprimer les répertoires vides qui peuvent rester après avoir vidé un disque contenant des liens physiques +- Correction : Obtenir le numéro et le schéma de partition directement au lieu d'utiliser la commande 'lsblk' +- Correction : /mnt/user0/sharename ne respecte parfois pas les méthodes d'allocation de partage + +### webGUI + +- Correction : Le mot de passe de chiffrement est parfois incorrect +- Correction : Revenir à permettre les menus contextuels docker au-dessus ou en dessous + +### Noyau Linux + +- version 6.12.24-Unraid (aucun changement) + +### Mises à jour de la distribution de base + +- curl-8.14.0-x86\_64-1 (CVE-2025-5025 CVE-2025-4947) + +## Correctifs + +Aucun correctif n'est actuellement disponible pour cette version. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md new file mode 100644 index 0000000000..64445c3bec --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md @@ -0,0 +1,51 @@ +# Version 7.1.4 2025-06-18 + +Ceci est une version corrective principalement axée sur les problèmes de réseau. + +## Mise à niveau + +### Problèmes connus + +Veuillez également consulter les [notes de version 7.1.0](7.1.0.md#known-issues). + +### Rétrogradation + +Veuillez consulter les [notes de version 7.1.0](7.1.0.md#rolling-back). + +## Modifications par rapport à [7.1.3](7.1.3.md) + +### Réseau + +- Correctif : Revert : Amélioration des attributions de métriques automatiques +- Correctif : Empêcher le script de surveillance de l'interface de supprimer la route par défaut dans certaines circonstances +- Correctif : S'assurer que les routes par défaut désactivées ne sont pas utilisées + +### Docker + +- Correctif : Ne pas limiter les sous-réseaux Docker à /25 +- Correctif : Ne pas afficher l'IP APIPA lorsqu'une meilleure est disponible +- Remarque : Si un conteneur Docker avec une adresse IP statique ne démarre pas, modifiez le conteneur et examinez l'adresse IP attribuée. + L'adresse IP doit être incluse dans l'un des sous-réseaux listés. Les sous-réseaux sont définis dans ***Paramètres → Paramètres Docker***. + +### VMs + +- Correctif : Interfaces virbr personnalisées manquantes +- Correctif : L'attribution de MAC était régénérée chaque fois qu'une interface différente était sélectionnée + +### Stockage + +- Correctif : Respecter le paramètre **Autotrim** lors du montage des disques BTRFS et XFS + +### webGUI + +- Correctif : Gestionnaire de fichiers : problème d'icône manquante dans le pied de page lorsque la tâche est minimisée +- Correctif : Gestionnaire de fichiers : respecter le paramètre **Écraser les fichiers existants** lors du déplacement des fichiers +- Correctif : Empêcher la modification des paramètres de compression/autotrim du pool lorsque la matrice est démarrée + +### Noyau Linux + +- version 6.12.24-Unraid (aucun changement) + +## Correctifs + +Aucun correctif n'est actuellement disponible pour cette version. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md new file mode 100644 index 0000000000..8cc4ae59d4 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md @@ -0,0 +1,282 @@ +# Version 7.2.0-rc.1 2025-10-01 + +L'interface webGUI d'Unraid est maintenant réactive ! L'interface s'adapte automatiquement à différentes tailles d'écran, la rendant utilisable sur les appareils mobiles, les tablettes et les moniteurs de bureau. L'API d'Unraid est désormais intégrée, et la version apporte également l'expansion RAIDZ, la prise en charge des formats Ext2/3/4, NTFS et exFAT, et la possibilité (facultative) de se connecter au webGUI via SSO, entre autres fonctionnalités et corrections de bugs. + +Veuillez noter que certains plugins peuvent avoir des problèmes visuels dans cette version ; veuillez donner aux auteurs de plugins le temps de procéder aux ajustements nécessaires. Auteurs de plugins, veuillez consulter cet article décrivant [comment mettre à jour vos plugins pour les rendre réactifs](https://forums.unraid.net/topic/192172-responsive-webgui-plugin-migration-guide/). + +## Mise à niveau + +Pour des instructions étape par étape, voir [Mise à jour de Unraid](../../unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx). + +### Problèmes connus + +#### Plugins + +Les plugins Theme Engine, Dark Theme et Dynamix Date Time sont incompatibles et seront automatiquement désinstallés, tout comme les versions obsolètes de Unraid Connect. + +Veuillez mettre à jour tous les plugins, en particulier Unraid Connect et le pilote Nvidia, avant de procéder à la mise à jour. +Veuillez noter que certains plugins peuvent avoir des problèmes visuels dans cette version ; veuillez donner aux auteurs de plugins le temps de procéder aux ajustements nécessaires. + +Pour d'autres problèmes connus, voir les [notes de version 7.1.4](7.1.4.md#known-issues). + +### Rétrogradation + +Si vous rétrogradez à une version antérieure à 7.1.4, consultez également les [notes de version 7.1.4](7.1.4.md#rolling-back). + +## Changements par rapport à [7.1.4](7.1.4.md) + +### Stockage + +#### Extension ZFS RAIDZ + +Vous pouvez maintenant étendre vos pools RAIDZ1/2/3 à un seul vdev, un disque à la fois : + +- Avec le tableau en cours d'exécution, sur ***Principal → Périphériques de la piscine***, sélectionnez le nom de la piscine pour voir les détails +- Dans la zone **Statut du Pool**, vérifiez l'existence d'un bouton **Mettre à jour le Pool**. Si c'est le cas, vous devrez cliquer dessus avant de continuer. Notez qu'une mise à jour du pool limitera votre capacité à revenir aux versions précédentes d'Unraid (7.1 devrait être OK, mais pas 7.0). +- Arrêtez l'array +- Sur ***Main → Pool Devices***, ajoutez un emplacement au pool +- Sélectionnez le disque approprié (doit être au moins aussi grand que le plus petit disque du pool) +- Démarrez l'array + +#### Améliorations + +- Correctif : Un avertissement "expansion invalide" s'affichera désormais si le pool doit être mis à niveau d'abord +- Amélioration : Meilleurs paramètres par défaut pour les vdevs ZFS RAIDZ + +#### Prise en charge des systèmes de fichiers Ext2/3/4, NTFS et exFAT + +Unraid prend désormais en charge les formats de disques Ext2/3/4, NTFS et exFAT en plus de XFS, BTRFS et ZFS. + +Cas d'utilisation : disons que vous êtes un créateur de contenu avec une boîte remplie de disques durs contenant toutes vos vidéos historiques. Lors de la première création d'une matrice (ou après avoir exécuté ***Outils → Nouvelle config***), ajoutez tous vos lecteurs de données existants (vides ou avec des données dans un format de lecteur pris en charge) à la matrice. Tous les disques de parité seront écrasés mais les disques de données conserveront leurs données. Vous pouvez bénéficier de la protection parité, les partager sur le réseau, et tirer pleinement parti de tout ce qu'Unraid a à offrir. + +Note critique : vous pouvez continuer d'ajouter des disques de données remplis à l'ensemble jusqu'à ce que vous démarriez l'ensemble avec un disque de parité installé. Une fois qu'un disque de parité a été ajouté, tous les nouveaux disques de données seront effacés lorsqu'ils seront ajoutés à l'ensemble. + +Pour clarifier, Unraid a toujours fonctionné ainsi, ce qui est nouveau c'est qu'Unraid prend maintenant en charge des formats de disques supplémentaires. + +De plus, vous pouvez créer des pools à un seul disque en utilisant également les nouveaux formats. + +- Amélioration de l'utilisabilité de la liste déroulante **Type de système de fichiers** car la liste des options disponibles s'agrandit + +#### Avertir sur les systèmes de fichiers dépréciés + +La page ***Principale*** informera désormais si des disques de tableaux ou de pools sont formatés avec ReiserFS ; ces disques doivent être migrés vers un autre système de fichiers dès que possible car ils ne seront pas utilisables dans une future version d'Unraid (probablement Unraid 7.3). De même, elle avertira s'il y a des disques formatés dans une version obsolète de XFS ; ceux-ci doivent être migrés avant 2030. Voir [Conversion à un nouveau type de système de fichiers](../using-unraid-to/manage-storage/file-systems.mdx#converting-to-a-new-file-system-type) dans la documentation pour plus de détails. + +#### Autres modifications de stockage + +- Les pools ZFS à deux dispositifs sont par défaut en mode miroir, mais vous pouvez les mettre en RAIDZ1 si vous prévoyez d'étendre ce vdev à l'avenir. +- Amélioration : Ajouter le **statut de système de fichiers** à la page **DeviceInfo**, indiquant si un lecteur est monté/démonté et vide/non vide +- Correction : Problème d'affichage sur la page Principale lorsque deux pools ont des noms similaires +- Correctif : [bug glibc](https://github.com/openzfs/zfs/issues/17629) qui pourrait entraîner une perte de données avec ZFS +- Correctif : les disques de l'ensemble BTRFS avec plusieurs signatures de système de fichiers ne montent pas +- Correctif : Résolution de certains problèmes pour les disques de parité avec des partitions alignées sur 1MiB existantes +- Correctif : Lors de l'arrêt de l'ensemble, ne pas tenter de 'démonter' les périphériques de l'ensemble qui ne sont pas montés +- Amélioration : Les partages exclusifs peuvent être sélectionnés pour l'exportation NFS +- Amélioration : Interdiction de créer des partages nommés `homes`, `global` et `printers` (ces noms ont une signification particulière dans Samba) +- Correctif : Gestion correcte des noms de partages insensibles à la casse +- Correctif : les partages avec des caractères invalides dans les noms ne pouvaient pas être supprimés ou modifiés +- Correctif : Améliorations de la lecture/écriture des paramètres de sécurité SMB + +### Réseau + +#### Autres modifications réseau + +- Fonctionnalité : les réseaux Docker personnalisés en IPv6 prennent désormais en charge les adresses locales uniques (ULA) en plus des adresses unicast globales (GUA) plus standard, en supposant que votre routeur fournisse les deux sous-réseaux lorsque l'hôte Unraid obtient une adresse IPv6 via DHCP ou SLAAC. Pour l'utiliser, assignez une IP statique personnalisée du sous-réseau approprié au conteneur. +- Correctif : La page ***Paramètres → Paramètres Réseau → Règles Interfaces*** affichait parfois le mauvais pilote réseau (ce n'était qu'un problème d'affichage) + +### Gestionnaire de VM + +- Fonctionnalité : Sauvegarde des données matérielles PCI, avertit si le matériel utilisé par une VM change +- Fonctionnalité : Prise en charge des cartes son virtuelles dans les VMs + +#### Autres modifications de VM + +- Amélioration : amélioration de la prise en charge multi-écrans, activation automatique de spicevmc lorsque nécessaire +- Fonctionnalité : Mise à jour vers noVNC v1.6 +- Suppression des modèles VM OpenElec et LibreElec historiques +- Correctif : La console VM ne fonctionnait pas lorsque les partages utilisateurs étaient désactivés +- Correctif : Ne pas autoriser les guillemets simples dans le chemin de stockage des Domaines + +### Unraid API + +L'API d'Unraid est maintenant intégrée à Unraid ! Le nouveau panneau de notifications est la première grande fonctionnalité à l'utiliser, au fil du temps, l'ensemble de l'interface webGUI sera mis à jour pour l'utiliser. + +L'API d'Unraid est entièrement open source : [https://github.com/unraid/api](https://github.com/unraid/api). Commencez dans les [documents API](../../API/index.mdx). + +Le plugin Unraid Connect ajoute des fonctionnalités qui communiquent avec nos serveurs cloud, il reste complètement optionnel. + +#### Autres changements d'API Unraid + +- dynamix.unraid.net 4.25.2 - [voir les changements](https://github.com/unraid/api/releases) + +### WebGUI + +#### CSS réactif + +Le webGUI d'Unraid est désormais réactif ! La plupart des écrans devraient désormais fonctionner aussi bien sur votre téléphone que sur votre moniteur de bureau. + +#### Connexion au WebGUI via SSO + +Connectez-vous au WebGUI d'Unraid en utilisant l'authentification unique (SSO) avec votre compte Unraid.net ou tout autre fournisseur conforme OIDC. Pour des détails sur cette fonctionnalité *optionnelle*, consultez [Configuration du fournisseur OIDC](../../API/oidc-provider-setup.mdx) dans la documentation. + +#### Autres modifications du WebGUI + +- Fonctionnalité : Ajouter une nouvelle vue de gestion des notifications, accessible via la cloche dans le coin supérieur droit du webGUI +- Fonctionnalité : Ajouter un indicateur de progression à la fenêtre contextuelle Docker / Plugin / VM +- Fonctionnalité : Afficher le compteur de temps sur la page de connexion lorsque l'accès est bloqué en raison de trop nombreuses tentatives de connexion incorrectes +- Fonctionnalité : Ajouter un bouton *Force Install* pour contourner les vérifications de version lors de l'installation manuelle de plugins +- Fonctionnalité : Ajout de la page ***Outils → Ouvrir le terminal*** ; vous pouvez l'accéder en recherchant "terminal". Il est possible de supprimer le bouton Terminal de la barre d'outils via ***Paramètres → Paramètres d'affichage → Afficher le bouton Terminal dans l'en-tête*** +- Fonctionnalité : ***Utilisateurs → Root → Clés SSH autorisées*** prend désormais en charge plus de formats (merci [wandercone](https://github.com/wandercone)) +- Fonctionnalité : Ajout d'un écran de bienvenue pour les nouveaux systèmes, affiché après avoir défini le mot de passe root +- Correctif : Réactivation des boutons de test intelligents après la fin du test +- Correctif : Empêcher le crash du WebGUI lorsque dynamix.cfg est corrompu, consigner tous les problèmes +- Correctif : les liens `blob:` ne doivent pas être considérés comme externes +- Fonctionnalité : Différencier entre les E-Cores et P-Cores d'Intel sur le tableau de bord +- Fonctionnalité : Le tableau de bord récupère désormais les statistiques d'utilisation du CPU à partir de l'API Unraid +- Correctif : Tableau de bord : Plus de 1 To de RAM n'était pas correctement signalé +- Tâche : Changer les bibliothèques de graphique sur le tableau de bord +- Correctif : Empêcher Firefox d'afficher la fenêtre contextuelle renvoyer/annuler lors du démarrage de l'ensemble +- Correctif : Gestionnaire de fichiers : arrêter l'indicateur d'attente et afficher une erreur en cas d'échec (merci [poroyo](https://github.com/poroyo)) +- Fonctionnalité : Accélérer le rendu des pages Plugins et Docker +- Correctif : Éviter les problèmes lors du clic sur un lien externe dans un journal des modifications + +## Divers + +- Fonctionnalité : Ne pas exécuter le script `go` en mode sécurisé, créer le script `/boot/config/go.safemode` si nécessaire +- Amélioration : Exiger une authentification sur `http://localhost`. Cela améliore la sécurité et permet à Tailscale Funnel de fonctionner avec l'interface webGUI. Notez qu'au démarrage en mode GUI, vous devrez maintenant vous reconnecter pour accéder à l'interface webGUI. +- Fonctionnalité : Ajouter un favicon et une prise en charge du manifeste d'application web +- Fonctionnalité : Les mises à niveau de clé de licence sont installées automatiquement, sans nécessiter de redémarrer l'array +- Fonctionnalité : Les appareils Thunderbolt seront automatiquement autorisés lorsqu'ils sont connectés +- Fonctionnalité : Améliorations des règles udev personnalisées et des scripts, au démarrage : + - `/boot/config/udev/*.rules` sont copiés vers `/etc/udev/rules.d/` + - `/boot/config/udev/*.sh` sont copiés vers `/etc/udev/scripts/` où ils peuvent être utilisés par vos règles udev personnalisées +- Correctif : Suppression de la prise en charge des URL ipv6.hash.myunraid.net non fonctionnelles +- Correctif : la création de réseau personnalisé Docker a échoué lorsque l'IPv6 était activée +- Correctif : Résolution de problèmes de charge CPU élevée due à nchan et lsof +- Amélioration : Retrait de l'option de désactiver les mises à jour en direct sur les navigateurs inactifs, ceci ne devrait plus être nécessaire +- Amélioration : Meilleure communication autour du déménageur et des "liens flottants" +- Correctif : Prévenir les erreurs liées à *searchLink* lors de l'installation de plugins +- Correctif : Avertissements PHP lors de l'importation de tunnels WireGuard +- Amélioration : Le fuseau horaire *Europe/Kiev* renommé en *Europe/Kyiv* pour s'aligner avec la base de données des fuseaux horaires de l'IANA +- Amélioration : Améliorer l'agent de notification Discord ; activer/désactiver l'agent pour recevoir les mises à jour (merci [mgutt](https://github.com/mgutt)) + +### Autres changements + +### Noyau Linux + +- version 6.12.47-Unraid + - intégré : CONFIG\_EFIVAR\_FS : système de fichiers des variables EFI + - CONFIG\_INTEL\_RAPL : support Intel RAPL via l'interface MSR + - CONFIG\_NLS\_DEFAULT : changement de "iso8859-1" à "utf8" + - Ajout de la prise en charge de l'eMMC : + - CONFIG\_MMC : support de carte MMC/SD/SDIO + - CONFIG\_MMC\_BLOCK : pilote de périphérique bloc MMC + - CONFIG\_MMC\_SDHCI : support de l'interface de contrôleur hôte Secure Digital + - CONFIG\_MMC\_SDHCI\_PCI : support SDHCI sur bus PCI + - CONFIG\_MMC\_SDHCI\_ACPI : support SDHCI pour contrôleurs SDHCI énumérés ACPI + - CONFIG\_MMC\_SDHCI\_PLTFM : aide aux pilotes de plate-forme et OF SDHCI + +### Mises à jour de la distribution de base + +- aaa\_glibc-solibs : version 2.42 +- adwaita-icon-theme : version 48.1 +- at-spi2-core : version 2.56.4 +- bash : version 5.3.003 +- bind: version 9.20.13 +- btrfs-progs : version 6.17 +- ca-certificates : version 20250812 +- cifs-utils : version 7.4 +- coreutils: version 9.8 +- cryptsetup: version 2.8.1 +- curl: version 8.16.0 +- e2fsprogs : version 1.47.3 +- ethtool : version 6.15 +- exfatprogs : version 1.2.9 +- fontconfig : version 2.17.1 +- freetype : version 2.14.0 +- gdbm : version 1.26 +- gdk-pixbuf2 : version 2.44.2 +- git : version 2.51.0 +- glib2: version 2.86.0 +- glibc : version 2.42 (build 2) +- gnutls : version 3.8.10 +- grub : version 2.12 +- gtk+3 : version 3.24.50 +- harfbuzz : version 12.0.0 +- intel-microcode : version 20250812 +- iproute2: version 6.17.0 +- inih : version 61 +- inotify-tools: version 4.25.9.0 +- iputils : version 20250605 +- iw : version 6.17 +- json-glib: version 1.10.8 +- kbd : version 2.9.0 +- kernel-firmware : version 20250924\_1269106 +- krb5 : version 1.22.1 +- less : version 679 +- libXfixes : version 6.0.2 +- libXpresent : version 1.0.2 +- libXres : version 1.2.3 +- libarchive : version 3.8.1 +- libdrm : version 2.4.125 +- libffi : version 3.5.2 +- libgcrypt : version 1.11.2 +- libjpeg-turbo: version 3.1.2 +- libnftnl : version 1.3.0 +- libnvme : version 1.15 +- libpng : version 1.6.50 +- libssh: version 0.11.3 +- libtiff : version 4.7.1 +- libtirpc : version 1.3.7 +- libunistring : version 1.4 +- liburing : version 2.12 +- libusb : version 1.0.29 +- libwebp : version 1.6.0 +- libvirt : version 11.7.0 +- libxkbcommon : version 1.11.0 +- libxml2: version 2.14.6 +- libzip : version 1.11.4 +- lsof : version 4.99.5 +- lvm2 : version 2.03.35 +- mcelog : version 206 +- mesa : version 25.2.3 +- nano : version 8.6 +- ncurses : version 6.5\_20250816 +- nettle : version 3.10.2 +- nghttp2 : version 1.67.1 +- nghttp3 : version 1.12.0 +- noto-fonts-ttf : version 2025.09.01 +- nvme-cli : version 2.15 +- openssl : version 3.5.3 +- ovmf : version unraid202502 +- p11-kit : version 0.25.10 +- pam : version 1.7.1 +- pcre2 : version 10.46 +- pango : version 1.56.4 +- pciutils : version 3.14.0 +- perl : version 5.42.0 +- php : version 8.3.26-x86\_64-1\_LT avec extension gettext +- pixman : version 0.46.4 +- rclone : version 1.70.1-x86\_64-1\_SBo\_LT.tgz +- readline : version 8.3.001 +- samba : version 4.23.1 +- shadow : version 4.18.0 +- smartmontools : version 7.5 +- spirv-llvm-translator : version 21.1.0 +- sqlite : version 3.50.4 +- sudo : version 1.9.17p2 +- sysstat: version 12.7.8 +- sysvinit : version 3.15 +- tdb : version 1.4.14 +- tevent : version 0.17.1 +- userspace-rcu : version 0.15.3 +- util-linux : version 2.41.2 +- wayland : version 1.24.0 +- wireguard-tools : version 1.0.20250521 +- wireless-regdb : version 2025.07.10 +- xdpyinfo : version 1.4.0 +- xdriinfo : version 1.0.8 +- xfsprogs: version 6.16.0 +- xkeyboard-config : version 2.45 +- xorg-server : version 21.1.18 +- xterm : version 402 +- zfs : version zfs-2.3.4\_6.12.47\_Unraid-x86\_64-2\_LT diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json new file mode 100644 index 0000000000..3eca32b06f --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "Notes de version", + "position": 6, + "link": { + "type": "generated-index", + "description": "Notes de version d'Unraid" + } +} diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json new file mode 100644 index 0000000000..25a3b3b2ff --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Administration système", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json new file mode 100644 index 0000000000..3e0fe489b2 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Outils avancés", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx new file mode 100644 index 0000000000..e0edfd601e --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx @@ -0,0 +1,459 @@ +--- +sidebar_position: 1 +sidebar_label: Interface en ligne de commande +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CliCpuInfo from './partials/command-line-interface/cpu-info.mdx'; +import CliMemoryInfo from './partials/command-line-interface/memory-info.mdx'; +import CliStorageInfo from './partials/command-line-interface/storage-info.mdx'; + +# Interface en ligne de commande + +Bien que la plupart des tâches dans Unraid puissent être exécutées à travers le %%WebGUI|web-gui%%, certaines opérations - particulièrement celles liées au diagnostic, à la gestion des disques ou au scripting - nécessitent l'utilisation de la console système ou du terminal %%SSH|ssh%%. Cette page propose des outils de ligne de commande spécifiques à Unraid et des exemples pouvant être utilisés sans nécessiter une connaissance approfondie de Linux. + +:::tip[Device chemins] +De nombreuses opérations au niveau des disques Unraid dépendent des noms de périphériques Linux, tels que `/dev/sdX`. Vous pouvez trouver l'identifiant de périphérique pour n'importe quel lecteur dans l'onglet **Principal** du WebGUI. Recherchez le label à trois lettres `sdX` ou `nvmeX` à côté de chaque disque. Utilisez l'identifiant approprié dans toutes les commandes, en remplaçant `sdX` par votre disque spécifique. +::: + +## Accéder au terminal + +Unraid inclut un terminal web intégré auquel vous pouvez accéder directement depuis le WebGUI. Utilisez simplement le menu déroulant en haut à droite et sélectionnez ">\_". Cela ouvre une session en ligne de commande en tant qu'utilisateur root, vous donnant un accès administratif complet à votre système. + +Vous pouvez également vous connecter à votre serveur Unraid depuis l'extérieur en utilisant %%SSH|ssh%% (shell sécurisé) avec un client comme %%PuTTY|putty%%. + +:::tip\[When devrais-je utiliser le terminal ? + +Si vous utilisez Windows, vous pourriez préférer %%PuTTY|putty%% pour l'accès %%SSH|ssh%% au lieu du terminal intégré. Il est léger, gratuit, et vous permet d'enregistrer des sessions pour un accès facile ultérieur. + +- Lancer des diagnostics et des outils en ligne de commande comme `smartctl`, `xfs_repair`, `tail` ou `top` +- Exécuter des scripts ou des outils de plug-ins qui ne nécessitent pas d'interface utilisateur. +- Résoudre des problèmes liés à la connectivité, aux services système, ou aux %%user shares|user-share%% + +::: + +### Test et surveillance des disques + +Si vous utilisez Windows, vous pourriez préférer %%PuTTY|putty%% pour l'accès %%SSH|ssh%% au lieu du terminal intégré. Il est léger, gratuit, et vous permet d'enregistrer des sessions pour un accès facile ultérieur. + +
+ Comment installer et utiliser PuTTY - Cliquer pour développer/réduire + + 1. Téléchargez %%PuTTY|putty%% depuis le [site officiel](https://www.putty.software/). + 2. Lancer l'application %%PuTTY|putty%%. + 3. Entrez l'adresse IP ou le nom d'hôte de votre serveur Unraid (par exemple, `tower.local`). + 4. Définissez le type de connexion sur `%%SSH|ssh%%`. + 5. (Facultatif) Enregistrez le nom de la session pour une utilisation ultérieure. + 6. Cliquez sur **Ouvrir** pour démarrer la session. + 7. Lorsque vous y êtes invité, connectez-vous en tant que `root` et entrez votre mot de passe. + + Une fois connecté, vous êtes dans l'environnement shell d'Unraid. Tapez `exit` lorsque vous avez terminé pour fermer la session. +
+ +:::note +Unraid configure automatiquement le serveur SSH lors du premier démarrage. Assurez-vous que votre réseau fonctionne correctement et que votre mot de passe root est défini avant de tenter une connexion à distance. +::: + +## Test et surveillance des disques + +Ces outils aident à évaluer la performance, vérifier la santé des disques, et diagnostiquer la lenteur de l'%%array|array%%. Toutes les commandes doivent être exécutées depuis le terminal ou via %%SSH|ssh%%. + +### `diskspeed.sh` + +Ce script permet des tests de performance de surface complets avec des rapports visuels. + +
+ Voir l'utilisation de diskspeed.sh - Cliquer pour développer/réduire + + Cela a été un script que vous téléchargiez depuis les forums Unraid. DiskSpeed est maintenant disponible dans un package plus raffiné : + + ```bash + hdparm -tT /dev/sdX + ``` + + L'option `-t` teste les lectures de disque mises en tampon, tandis que `-T` teste les lectures du cache. Cela mesure principalement les performances de lecture séquentielle et aide à identifier les disques exceptionnellement lents. + + **Effectuer plusieurs tests pour plus de précision :** + + ```bash + for ((i=0;i<5;i++)); do hdparm -tT /dev/sdX; done + ``` + + **Voir les informations sur le disque :** + + ```bash + hdparm -I /dev/sdX + ``` + + Cela affiche le modèle, le firmware, la taille du cache et les fonctionnalités supportées, ce qui aide à vérifier le type de disque et le comportement du contrôleur. +
+ +### `smartctl` + +Cette commande exécute des diagnostics %%SMART|smart%% et surveille la santé du disque. + +
+ Voir les options smartctl - Cliquer pour développer/réduire + + **Rapport %%SMART|smart%% de base :** + + ```bash + smartctl -a /dev/sdX + ``` + + Si cette commande retourne une erreur, essayez de spécifier le type de périphérique : `smartctl -a -d ata /dev/sdX` (utilisez `-d nvme` pour les disques NVMe). + + **Commencer les tests autonomes %%SMART|smart%% :** + + Test court (prend quelques minutes) + + ```bash + smartctl -t short /dev/sdX + ``` + + Test étendu (peut prendre plusieurs heures) + + ```bash + smartctl -t long /dev/sdX + ``` + + **Enregistrer le rapport %%SMART|smart-report%% dans un fichier :** + + ```bash + smartctl -a /dev/sdX > /boot/smart_report.txt + ``` + + Cela enregistre le rapport sur votre clé USB Unraid pour révision ou partage ultérieur sur le [forum](https://forums.unraid.net/). +
+ +### `top` + +Cette commande fournit un moniteur de processus et de ressources en temps réel. + +
+ Voir l'utilisation de top - Cliquer pour développer/réduire + + Cela a été un script que vous téléchargiez depuis les forums Unraid. DiskSpeed est maintenant disponible dans un package plus raffiné : + + Installez DiskSpeed depuis les [Applications Communautaires](../../using-unraid-to/run-docker-containers/community-applications.mdx) (***onglet Apps***) en recherchant "DiskSpeed", ou visitez le [référentiel GitHub](https://github.com/jbartlett777/DiskSpeed) pour des instructions d'installation manuelles. +
+ +--- + +## Surveillance du système + +Utilisez ces commandes pour surveiller la mémoire, les processus et les performances du système lorsque le %%WebGUI|web-gui%% n'est pas disponible ou pour des diagnostics plus détaillés. + +### `ps` + +Utilisez cette commande pour afficher les processus en cours avec des informations détaillées. + +
+ Voir les options ps - Cliquer pour développer/réduire + + ```bash + top + ``` + + - Affiche l'utilisation du CPU et de la mémoire pour chaque processus en temps réel. + - Appuyez sur `q` pour quitter. + - Utilisez les flèches pour faire défiler et `k` pour terminer les processus. + + **Trier par utilisation de la mémoire :** +
+ +### `free` + +Cette commande affiche les statistiques d'utilisation de la mémoire. + +
+ Voir l'utilisation de free - Cliquer pour développer/réduire + + ```bash + free -h + ``` + + Cela affiche l'utilisation de la RAM dans un format lisible par l'homme. L'option `-h` signifie que les tailles s'afficheront en Ko, Mo ou Go au lieu de bytes. + + :::tip[Comprendre la sortie] + Une lecture de mémoire "disponible" faible n'indique pas nécessairement un problème—Linux met en cache les données de manière agressive pour améliorer les performances. + ::: +
+ +### `df` + +Cette commande affiche l'utilisation de l'espace disque des systèmes de fichiers. + +
+ Voir utilisation de df - Cliquer pour développer/réduire + + **Lister tous les processus avec tous les détails :** + + ```bash + ps aux + ``` + + :::tip + Pensez à utiliser `htop` pour une interface plus conviviale avec des commandes améliorées. + ::: + + ```bash + ps aux --sort=-%mem | head -20 + ``` + + **Trier par utilisation du processeur :** + + ```bash + ps aux --sort=-%cpu | head -20 + ``` +
+ +--- + +## Utilitaires de stockage + +Ces commandes aident à vérifier l'utilisation des disques, les informations des partitions et à identifier les périphériques de stockage. + +### `lsblk` + +Liste tous les périphériques blocs en format arborescent. + +
+ Voir l'utilisation de lsblk - Cliquer pour développer/réduire + + ```bash + df -h + ``` + + Cette commande affiche l'espace utilisé et disponible sur tous les systèmes de fichiers montés. C'est pratique pour vérifier `/var/log` (qui utilise la journalisation basée sur la RAM) dans Unraid. Pour plus d'informations sur [la journalisation système](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx). +
+ +### `blockdev -getsz` + +Aide à déterminer si un disque de remplacement a suffisamment d'espace avant la reconstruction. + +
+ Voir l'utilisation de blockdev - Cliquer pour développer/réduire + + ```bash + fdisk -l /dev/sdX + ``` + + Cette commande affiche la disposition des partitions, les tailles et la géométrie du disque. Elle aide à résoudre les problèmes de tailles de disque incompatibles, en particulier lors du [remplacement de disques](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-disks). +
+ +### `blkid` + +Identifier les labels de systèmes de fichiers. + +
+ Voir l'utilisation de blkid - Cliquer pour développer/réduire + + ```bash + lsblk + ``` + + Cette commande affiche l'espace utilisé et disponible sur tous les systèmes de fichiers montés. C'est pratique pour vérifier `/var/log` (qui utilise la journalisation basée sur la RAM) dans Unraid. Pour plus d'informations sur [la journalisation système](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx). +
+ +### `blockdev -getsz` + +Aide à déterminer si un disque de remplacement a suffisamment d'espace avant la reconstruction. + +
+ Voir l'utilisation de fdisk - Cliquer pour développer/réduire + + **Syntaxe :** + + ``` + blockdev --getsz /dev/sdX + ``` + + Retourne le nombre brut de secteurs de 512 octets sur un périphérique - pratique pour confirmer qu'un disque de remplacement est suffisamment grand avant la reconstruction. +
+ +### `ss` + +Affiche les statistiques de socket et les connexions réseau. C'est le remplacement moderne de `netstat`. + +
+ Voir les options ss - Cliquer pour développer/réduire + + **Syntaxe :** + + ``` + blkid /dev/sdX1 + ``` + + Affiche le type et l'étiquette du système de fichiers. Utilisez cela à la place de la commande `vol_id` obsolète lors de la vérification que la clé USB Unraid est étiquetée `UNRAID`. +
+ +--- + +## Diagnostics réseau + +Outils pour dépanner la connectivité réseau et la configuration des interfaces. + +### `ping` + +Tester la connectivité réseau. + +
+ Voir l'utilisation de ping - Cliquer pour développer/réduire + + **Tester la connectivité en envoyant un nombre limité de paquets :** + + ```bash + ss -tuln + ``` + + - `-t`: Sockets TCP + - `-u`: Sockets UDP + - `-l`: Montrer uniquement les sockets à l'écoute + - `-n`: Afficher les numéros de port plutôt que les noms de service + + **Afficher les connexions établies :** + + ```bash + ss -tup + ``` + + Cette commande affiche les connexions actives avec les informations de process. +
+ +### `ethtool` + +Outil pratique pour interroger et ajuster les paramètres des cartes réseau (NIC), tels que la vitesse de lien, les fonctionnalités de déchargement et les statistiques. + +
+ Voir l'utilisation d'ethtool - Cliquer pour développer/réduire + + **Informations basiques sur le pilote et le firmware :** + + ```bash + ip addr show + ``` + + **Afficher les interfaces réseau avec couleurs :** + + ```bash + ip -c addr show + ``` + + Pour vérifier la vitesse et les paramètres de lien actuels de votre interface, exécutez : + + ```bash + ip route show + ``` +
+ +### `ping` + +Tester la connectivité réseau. + +
+ Voir les options ss - Cliquer pour développer/réduire + + **Afficher tous les ports à l'écoute :** + + ```bash + ping -c 4 google.com + ``` + + Cette commande envoie quatre paquets à la destination et s'arrête, ce qui la rend adaptée aux tests de connectivité de base sans sortie continue. +
+ +### `ethtool` + +Outil pratique pour interroger et ajuster les paramètres des cartes réseau (NIC), tels que la vitesse de lien, les fonctionnalités de déchargement et les statistiques. + +
+ Voir les options ip - Cliquer pour développer/réduire + + **Afficher toutes les interfaces réseau :** + + Utilisez cette commande pour obtenir des informations sur le pilote et le firmware de votre interface réseau : + + ``` + ethtool -i eth0 + ``` + + **Afficher la vitesse de lien actuelle et les paramètres :** + + **Afficher la table de routage :** + + ``` + ethtool eth0 + ``` + + **Afficher les statistiques d'interface étendues :** + + Pour des statistiques étendues relatives à l'interface, utilisez la commande suivante : + + ``` + ethtool -S eth0 + ``` + + Ces commandes peuvent vous aider à confirmer les vitesses de négociation pour les connexions gigabit, 2.5 GbE, ou 10 GbE, diagnostiquer les problèmes avec les câbles, ou identifier les paquets perdus qui pourraient provenir de déconnexions d'équipements. +
+ +--- + +## `tail` + +Surveiller les fichiers journaux en temps réel. + + + + + + + + + + + + + + + +--- + +## Maintenance du système + +Commandes pour l'arrêt du système, la surveillance des journaux et la gestion des services. + +### `tail` + +Surveiller les fichiers journaux en temps réel. + +
+ Voir l'utilisation de tail - Cliquez pour développer/réduire + + ```bash + tail -f /var/log/syslog + ``` + + Cette commande montre des mises à jour en direct du journal système. Pour quitter, utilisez `Ctrl+C`. + + **Afficher un nombre spécifique de lignes :** + + ```bash + tail -n 50 /var/log/syslog + ``` +
+ +### `powerdown` + +Arrêter le système en toute sécurité. + +
+ Voir l'utilisation de powerdown - Cliquez pour développer/réduire + + ```bash + powerdown + ``` + + Cette commande utilise le processus d'arrêt intégré d'Unraid pour arrêter le %%array|array%% et éteindre le système en toute sécurité. C'est préférable aux méthodes d'arrêt manuelles. +
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx new file mode 100644 index 0000000000..bbbef89104 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx @@ -0,0 +1,17 @@ +**Résumé de l'architecture CPU :** + +```bash +lscpu +``` + +Cette commande affiche des informations sur les cœurs, les threads, le support de la virtualisation, et les détails du cache. + +**Détection de fonctionnalités :** + +```bash +grep -E 'lm|vmx|svm' /proc/cpuinfo +``` + +- `lm`: Indique le support 64 bits +- `vmx`: Virtualisation Intel VT-x +- `svm`: Virtualisation AMD-V diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx new file mode 100644 index 0000000000..351997f2f2 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx @@ -0,0 +1,11 @@ +**Aperçu de l'utilisation de la mémoire :** + +```bash +free -h +``` + +**Répartition détaillée de la mémoire :** + +```bash +cat /proc/meminfo | head -20 +``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx new file mode 100644 index 0000000000..d6320da6ea --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx @@ -0,0 +1,11 @@ +**Liste des disques par série/modèle :** + +```bash +ls -l /dev/disk/by-id/ | grep -v part +``` + +**Vérifier les étiquettes de systèmes de fichiers :** + +```bash +ls -l /dev/disk/by-label/ +``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx new file mode 100644 index 0000000000..e804211c3f --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx @@ -0,0 +1,11 @@ +

Méthode terminal

+ +``` +wakeonlan MAC_ADDRESS +``` + +Installez-le avec `sudo apt install wakeonlan` si ce n'est pas déjà installé. + +

Alternative : WoL GUI

+ +Vous pouvez installer une interface graphique `wol` à partir du gestionnaire de paquets de votre distribution Linux. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx new file mode 100644 index 0000000000..6e8e1bc65c --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx @@ -0,0 +1,19 @@ +

Méthode terminal (recommandée)

+ +1. Installez `wakeonlan` en utilisant Homebrew : + + ``` + brew install wakeonlan + ``` + +2. Envoyez le paquet magique : + + ``` + wakeonlan MAC_ADDRESS + ``` + +

Alternative GUI : miniWOL

+ +1. Téléchargez [miniWOL v3](https://apps.apple.com/app/miniwol/id6474282023) depuis l'App Store. +2. Ajoutez votre serveur en utilisant son adresse MAC. +3. Cliquez sur l'icône du soleil pour réveiller votre serveur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx new file mode 100644 index 0000000000..fadb9c8793 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx @@ -0,0 +1,9 @@ +

Utilisation de WakeOnLan CMD

+ +1. Téléchargez [wolcmd.exe](https://www.depicus.com/wake-on-lan/wake-on-lan-cmd). + +2. Exécutez-le dans l'invite de commande : + + ``` + wolcmd.exe 255.255.255.255 + ``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx new file mode 100644 index 0000000000..beaac5e6f8 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx @@ -0,0 +1,109 @@ +--- +sidebar_position: 2 +sidebar_label: Wake-on-LAN (WoL) +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import WakeOnLanWindows from './partials/wake-on-lan/windows.mdx'; +import WakeOnLanMacos from './partials/wake-on-lan/macos.mdx'; +import WakeOnLanLinux from './partials/wake-on-lan/linux.mdx'; + +# Wake-on-LAN (WoL) + +%%Wake-on-LAN (WOL)|Wake-on-LAN%% vous permet de réveiller à distance votre serveur Unraid d'un état d'arrêt ou de veille en envoyant un « paquet magique » sur le réseau. Cette page vous aidera à configurer WoL pour votre réseau local. + +## Exigences + +Pour que WoL fonctionne correctement, assurez-vous de remplir les conditions suivantes : + +- **Support de la carte réseau** : Votre contrôleur d'interface réseau doit prendre en charge WoL ; la plupart des cartes modernes le font. + +- **Paramètres BIOS/UEFI** : Activez WoL dans le BIOS/%%UEFI|uefi%% de votre carte mère sous la gestion de l'alimentation. Voici quelques noms de paramètres courants : + + | Nom du paramètre | Description | + | -------------------------------------------- | --------------------------------------------- | + | Réveil sur LAN | Paramètre général de WoL | + | Réveil événement PME | Pour les événements de réveil PCIe | + | Mise sous tension par PCI/périphériques PCIe | Nom alternatif pour WoL | + | Prêt pour ErP | Doit être *désactivé* pour que WoL fonctionne | + +- **Connexion d'alimentation** : Assurez-vous que votre serveur est branché sur une source d'alimentation. + +- **Connexion réseau** : Connectez votre serveur à votre réseau local avec un câble Ethernet (WoL WiFi non supporté). + +:::caution[Hardware compatibilité] +Tout le matériel ne supporte pas fiablement le mode S3 ou le réveil sur réseau (WoL). Certains systèmes peuvent rencontrer des problèmes pour entrer en veille, ne pas se réveiller correctement ou nécessiter des réglages supplémentaires dans le BIOS/%%UEFI|uefi%%. Testez toujours ces fonctionnalités minutieusement avant de vous y fier. +::: + +## Mise en veille d'un serveur Unraid + +La méthode préférée et conviviale pour gérer la veille sur Unraid est d'utiliser le [**plugin Dynamix S3 Sleep**](https://unraid.net/community/apps/c/plugins/p3?srsltid=AfmBOorpfP2Psw_bCorklf-QVCUHvADYGsdbsAH-4CldU4V2hWgoO-09#r:~:text=%3E%3E-,Dynamix%20S3%20Sleep,-Dynamix%20Repository). Ce plugin offre une interface graphique pour aider à planifier la veille, le réveil et le comportement d'inactivité, tout en abordant les problèmes courants qui peuvent survenir avec diverses configurations matérielles. + +Pour installer et configurer : + +1. Ouvrez l'***onglet Applications*** dans l'%%WebGUI|interface web%% d'Unraid. +2. Recherchez "Dynamix S3 Sleep" et installez le plugin. +3. Naviguez vers ***Paramètres → Paramètres de veille*** pour configurer vos options de veille et de réveil. + +Le plugin gère la plupart des options de configuration de veille. + +
+ Méthode manuelle alternative - Cliquez pour développer/réduire + + Si vous souhaitez plus de contrôle ou avez besoin de personnalisation avancée, vous pouvez configurer les paramètres de veille et WoL via la ligne de commande. Cette méthode est recommandée pour les utilisateurs avancés. + + Pour configurer le mode veille manuellement : + + 1. Connectez-vous à votre serveur en utilisant le terminal %%WebGUI|web-gui%% ou [%%SSH|ssh%%](../../system-administration/advanced-tools/command-line-interface.mdx#accessing-the-terminal). + + 2. Identifiez votre interface réseau principale (généralement `eth0`) en exécutant la commande suivante : + + ``` + ifconfig + ``` + + Notez l'adresse MAC (étiquetée comme `ether`). + + 3. Activez WoL sur l'interface avec cette commande : + + ``` + ethtool -s eth0 wol g + ``` + + 4. Mettez le serveur en veille en entrant cette commande : + + ``` + echo -n mem > /sys/power/state + ``` + + :::attention[Persistance] + Les paramètres WoL configurés manuellement ne sont **pas persistants** lors des redémarrages par défaut. Pour les rendre permanents : + + 1. Créez un fichier `go` sur votre clé USB à l'emplacement `/boot/config/go`. + + 2. Ajoutez cette ligne : + + ``` + /sbin/ethtool -s eth0 wol g + ``` + ::: +
+ +## Réveillez votre serveur Unraid + +Pour réveiller votre serveur Unraid à distance, vous devez envoyer un "paquet magique" spécial sur votre réseau local. Ce paquet inclut l'adresse MAC de votre serveur et indique à l'interface réseau d'allumer le système depuis un état de veille ou d'arrêt. Différents systèmes d'exploitation offrent divers outils et méthodes pour envoyer ce paquet. Vous trouverez ci-dessous des instructions spécifiques pour Windows, macOS et Linux. + + + + + + + + + + + + + + diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json new file mode 100644 index 0000000000..8f9ccbfda7 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Maintenir et mettre à jour", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx new file mode 100644 index 0000000000..7470a46f43 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx @@ -0,0 +1,169 @@ +--- +sidebar_position: 3 +sidebar_label: Changement du dispositif de flash +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import BackupUsingWebGUI from './partials/backup-using-webgui.mdx'; +import BackupManualMethod from './partials/backup-manual-method.mdx'; +import ReplacementUsingCreator from './partials/replacement-using-creator.mdx'; +import ReplacementManualMethod from './partials/replacement-manual-method.mdx'; + +# Changement du dispositif de flash + +Le périphérique flash USB est crucial pour votre serveur Unraid car il stocke le système d'exploitation, les fichiers de configuration et la licence. Si ce périphérique tombe en panne ou devient peu fiable, un remplacement rapide est essentiel pour éviter la perte de données et minimiser les temps d'arrêt. + +:::caution +Lorsque vous remplacez votre dispositif USB Unraid, votre licence est transférée sur le nouvel appareil, et l'ancien appareil est mis sur liste noire **et ne peut plus être utilisé avec Unraid.** Cette action est permanente et irréversible. +::: + +Voici quelques signes courants indiquant que votre dispositif USB doit être remplacé : + +- Le serveur ne démarre pas ou des fichiers manquent sur l'appareil. +- L'appareil passe à plusieurs reprises en mode lecture seule ou affiche des erreurs de système de fichiers. +- L'appareil est perdu ou volé. +- La capacité de stockage est insuffisante pour les mises à jour ou les modifications de configuration. +- La taille physique de l'appareil ne convient pas à votre configuration de serveur. + +--- + +## Choix d'un appareil de remplacement + +Lorsque vous choisissez une nouvelle clé USB pour Unraid, privilégiez la fiabilité et la compatibilité plutôt que la vitesse. + +

Exigences

+ +| Exigence | Détails | +| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | +| Version USB | USB 2.0 recommandé (généralement plus fiable et largement compatible que USB 3.0) | +| GUID Unique | Doit contenir un GUID matériel unique dans la ROM programmable | +| Taille minimale | Au moins 4 Go | +| Taille maximale recommandée | 32 Go (pour faciliter les installations manuelles; les appareils plus grands peuvent fonctionner mais ne sont pas nécessaires) | +| Marque/fournisseur | Achetez auprès de marques réputées et de détaillants de confiance; évitez le marché noir ou la seconde main | +| Taille physique | Choisissez une forme qui s'adapte aux ports USB disponibles de votre serveur et aux contraintes physiques. | + +Pour plus de conseils sur le choix du meilleur appareil flash pour Unraid, consultez [le guide vidéo de Spaceinvader One sur les tests de clés USB](https://www.youtube.com/watch?v=jjkaidlZmgs). + +::::tip[Rules de la règle empirique pour le remplacement] +- Achetez des clés USB auprès de détaillants réputés et évitez les sites d'enchères et les vendeurs inconnus. +- Évitez les lecteurs d'occasion ou déjà utilisés. +- Testez le nouveau lecteur sur votre serveur avant de transférer votre licence. +- Soyez vigilant face aux produits contrefaits, même de marques bien connues. + :::note + ::: +L'[annonce du forum sur les clés USB SanDisk contrefaites](https://forums.unraid.net/topic/119052-psa-on-sandisk-usbs/) de janvier 2022 confirme que SanDisk n'est pas recommandé en raison des appareils contrefaits et des changements de fabrication entraînant des GUID non uniques. Cela affecte à la fois les clés SanDisk contrefaites et légitimes. +:::: + +::: + +::: + +::: + +::: + +--- + +## Remplacement de votre dispositif flash USB + +:::caution[Before Avant de remplacer] +Avant de remplacer votre clé flash actuelle, envisagez de vérifier s'il y a des erreurs : + +1. Éteignez votre serveur et retirez la clé flash. +2. Insérez l'appareil dans un ordinateur Windows ou Mac. +3. Utilisez Windows Scandisk ou l'utilitaire de disque Mac pour vérifier et réparer les erreurs. +4. Si des erreurs sont trouvées et réparées, vous pouvez continuer à utiliser l'appareil. Si les problèmes persistent ou réapparaissent, le remplacement est recommandé. + +Une seule panne de courant ou une écriture incomplète peut parfois causer une légère corruption, qui est généralement réparable. Cependant, des problèmes répétés signalent la nécessité d'un nouvel appareil. +::: + +Il existe deux façons de remplacer votre dispositif USB Unraid : l'outil recommandé [créateur de clé USB](https://unraid.net/download) pour Windows ou macOS, ou la méthode manuelle pour les utilisateurs avancés. **Sauvegardez toujours votre dispositif avant de commencer.** + +### Sauvegarde de votre appareil flash + + + + + + + + + + + +:::tip[Backup meilleures pratiques] +- Sauvegardez régulièrement votre clé USB, surtout après des changements de configuration importants. +- Stockez les sauvegardes hors serveur (sur un autre ordinateur ou un stockage cloud). +- Gardez une capture d'écran de vos attributions de disques après tout changement matériel. +::: + +:::important[Trial Clés d'essai et les changements d'appareils] +Si vous transférez une configuration d'essai sur une nouvelle clé flash, vous ne pourrez pas démarrer la %%array|array%% tant que vous n'aurez pas acheté une clé d'enregistrement valide. Les clés d'essai ne fonctionnent que sur l'appareil d'origine. +::: + +### Méthodes de remplacement + + + + + + + + + + + +Vous avez maintenant remplacé votre clé USB flash et transféré votre clé d'enregistrement Unraid. Le système affichera la date d'enregistrement et la prochaine date élue pour le remplacement. + +--- + +## Fréquence de remplacement de la clé d'enregistrement + +Remplacer votre clé d'enregistrement Unraid est simple, mais il y a d'importants détails sur le timing et l'éligibilité à garder à l'esprit. + +- Vous pouvez remplacer votre clé d'enregistrement à tout moment. Cependant, après le premier remplacement, vous devez attendre **12 mois** avant de pouvoir utiliser à nouveau la méthode en ligne automatisée. +- Si vous avez besoin de remplacer votre clé à nouveau dans les 12 mois, [contactez le support Unraid](https://unraid.net/contact). Pour un service plus rapide, incluez vos anciens et nouveaux %%GUIDs|guid%% USB, votre clé de licence, et l'adresse e-mail utilisée pour l'achat. + +:::important +Si vous êtes bloqué à cause de la limite de remplacement automatisée et avez besoin d'accéder immédiatement au serveur, configurez un nouvel essai Unraid avec une nouvelle clé USB, puis contactez le support pour transférer votre licence. +::: + +--- + +## Récupération après perte d'un dispositif flash défaillant sans sauvegarde + +Perdre votre clé flash sans connaître les attributions de disques peut être stressant, mais vous pouvez éviter la perte de données en prenant des mesures adéquates. + +:::caution +Ne jamais attribuer un disque de données en tant que %%parity drive|parity-drives%%. Des attributions incorrectes peuvent écrire la parité sur les données, entraînant une perte permanente de données. +::: + +:::tip[Identifying Tous les disques] +- **Les disques de parité** n'ont pas de système de fichiers montable. Si un disque ne peut pas être monté, il est probablement un disque de %%parity|de parité%%. +- **Les disques de données** utilisés précédemment par Unraid conservent leurs données même après réinitialisation de la configuration de la %%array|array%%. +- Si vous trouvez plus de disques non montables que prévu pour les disques %%parity|de parité%%, arrêtez et demandez de l'aide sur les [forums d'Unraid](https://forums.unraid.net/). +::: + +Pour reconfigurer en toute sécurité votre %%array|array%% : + +1. Préparez une nouvelle clé flash Unraid, selon les instructions fournies plus haut dans ce guide. +2. Allez à l'onglet ***Principal*** + - Assignez tous les disques comme disques de données et lancez l'%%array|array%%. + - Notez les numéros de série des disques qui ne montent pas ; ceux-ci sont probablement vos disques %%parity|de parité%%. + - Ne cliquez pas sur **Formater** pour un disque quelconque. Si plus de disques non montables apparaissent que prévu pour les disques %%parity|de parité%%, arrêtez et demandez de l'aide sur les forums. + - Vous pouvez également utiliser le [plugin Unassigned Devices](https://unraid.net/community/apps?q=Unassigned%20Devices) pour tester le montage de chaque disque (%%parity|parité%% ne montera pas), identifiant %%parity|la parité%% par élimination. + - Arrêtez l'%%array|array%% avant de continuer. +3. Allez à ***Outils → Nouvelle Configuration*** et créez une nouvelle configuration %%array|array%%, tout en conservant tous les disques configurés actuellement. +4. Attribuez les disques corrects comme %%parity|parité%% et le reste comme disques de données dans l'onglet **Principal**. +5. Si vous avez un seul disque de %%parity|parité%%, l'ordre des disques de données n'est pas critique. Cochez **La parité est valide** uniquement si vous êtes certain d'avoir attribué le même disque de parité physique et qu'aucune écriture n'a eu lieu depuis la configuration d'origine. Pour la double %%parity|parité%%, l'ordre des disques de données et l'attribution de parité1 et parité2 sont importants - parité1 et parité2 ne sont pas interchangeables, et la %%parity|parité%% doit être reconstruite si l'un ou l'autre est modifié. +6. Démarrez la %%array|array%% pour enregistrer les attributions. Les disques de données doivent être montés, et leur contenu doit rester intact. +7. Si vous avez coché **La parité est valide**, effectuez une [vérification de la %%parity|parité%%](../../using-unraid-to/manage-storage/array-configuration.mdx#checking-array-devices) corrective pour confirmer que votre configuration est correcte. + +:::note +Après avoir restauré votre %%array|array%%, vérifiez tous les paramètres d'inclusion/exclusion spécifiques aux partages, car l'ordre des disques de données peut avoir changé. +::: + +--- + +\* *"%%WireGuard|wireguard%%" et le logo "%%WireGuard|wireguard%%" sont des marques déposées de Jason A. Donenfeld.* diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx new file mode 100644 index 0000000000..b9bd1f6617 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx @@ -0,0 +1,3 @@ +1. Éteignez votre serveur et retirez la clé flash. +2. Insérez-le dans un autre ordinateur. +3. Copiez tous les fichiers du lecteur flash vers un endroit sûr pour sauvegarde. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx new file mode 100644 index 0000000000..edcd6f1d9a --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx @@ -0,0 +1,8 @@ +1. Allez à l'onglet **Principal** et sélectionnez votre appareil flash. +2. Dans les **paramètres de dispositif flash**, cliquez sur **SAUVEGARDE DU FLASH** pour télécharger une sauvegarde compressée sur votre ordinateur. + +
+ ![Sauvegarde du flash](/img/flashbackup.png) +
+ +Alternativement, utilisez [la sauvegarde automatisée Unraid Connect](../../../../unraid-connect/automated-flash-backup.mdx) pour les sauvegardes flash automatisées. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx new file mode 100644 index 0000000000..ed4df0ed6d --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx @@ -0,0 +1,25 @@ +:::caution +Cette méthode ne doit être utilisée que si vous êtes à l'aise avec la ligne de commande Linux, car des erreurs pourraient rendre votre système non démarrable. +::: + +1. Copiez l'URL du fichier ZIP de la version d'Unraid souhaitée depuis [Historique des versions](../../../download_list.mdx). +2. Connectez-vous via %%SSH|ssh%% ou console. +3. Exécutez les commandes suivantes *une par une* (remplacez `` par le lien copié) : + + ```bash + cd /tmp + rm -f unraid.zip + rm -rf unraid_install + wget -O unraid.zip + [[ -s unraid.zip ]] && echo "OK to continue" || echo "STOP: the file was not downloaded" + unzip -d unraid_install unraid.zip + [[ -s unraid_install/bzroot ]] && echo "OK to continue" || echo "STOP: the file was not extracted properly" + [[ ! -d /boot/previous ]] && mkdir /boot/previous + mv /boot/bz* /boot/previous + mv /boot/changes.txt /boot/previous + cp unraid_install/bz* /boot + cp unraid_install/changes.txt /boot + sync -f /boot + sleep 5 + reboot + ``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx new file mode 100644 index 0000000000..aa97fefe83 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx @@ -0,0 +1,7 @@ +1. Téléchargez le fichier ZIP de la version Unraid depuis [Historique des versions](../../../download_list.mdx). +2. Décompressez le fichier sur votre ordinateur. +3. Accédez au partage `flash` ou connectez le dispositif USB à votre ordinateur. +4. Créez un répertoire `previous` s'il n'existe pas déjà. +5. Déplacez tous les fichiers `bz*` et `changes.txt` dans le répertoire `previous`. +6. Copiez les nouveaux fichiers `bz*` et `changes.txt` à la racine de la clé USB. +7. Redémarrez votre serveur. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx new file mode 100644 index 0000000000..ffcc0b2524 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx @@ -0,0 +1,23 @@ +*Utilisez cette méthode si l'outil créateur de clé USB ne fonctionne pas avec votre système.* + +:::important[Before vous commencez] +Utilisez la méthode manuelle uniquement si vous êtes à l'aise avec la gestion de fichiers de base et que votre système ne prend pas en charge le créateur de clé USB. +::: + +1. Préparez une nouvelle clé en suivant la [méthode d'installation manuelle](../../../getting-started/set-up-unraid/create-your-bootable-media.mdx#manual-install-method). +2. Copiez votre dossier `config` sauvegardé sur le nouvel appareil, en écrasant les fichiers existants. +3. Éteignez le serveur, échangez les dispositifs flash et allumez. +4. Lorsque vous êtes invité avec `clé d'enregistrement invalide, manquante ou expirée`, sélectionnez **Clé d'enregistrement**. + +
+ ![Clé invalide](/img/Invalidkey.png) +
+ +5. Dans ***Outils → Enregistrement***, sélectionnez **Remplacer la clé** et entrez votre adresse e-mail. + +
+ ![Remplacer la clé](/img/Replacekey.png) +
+ +6. Suivez les instructions contenues dans l'e-mail pour installer votre nouvelle clé. +7. Sélectionnez **Terminé**. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx new file mode 100644 index 0000000000..9376e519f5 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx @@ -0,0 +1,32 @@ +*Recommandé pour la plupart des utilisateurs* + +1. Téléchargez l'outil [créateur de clé USB Unraid](https://unraid.net/download) pour Windows ou macOS. +2. Insérez votre nouveau périphérique USB dans votre ordinateur. +3. Dans l'outil créateur, cliquez sur le système d'exploitation, faites défiler vers le bas jusqu'à **Utiliser personnalisé** et parcourez votre fichier de sauvegarde ZIP. + +
+ ![Sélectionner la version](/img/Selectversion.png) +
+ +4. Choisissez votre nouveau dispositif flash USB comme destination et cliquez sur **Écrire**. +5. Éteignez votre serveur, remplacez l'ancien dispositif flash par le nouveau et allumez-le. +6. Lorsque vous êtes invité avec `clé d'enregistrement invalide, manquante ou expirée`, sélectionnez **Clé d'enregistrement**. + +
+ ![Clé invalide](/img/Invalidkey.png) +
+ +7. Si nécessaire, copiez votre fichier de clé de licence existant dans `boot/config` sur le nouvel appareil. +8. Assurez-vous qu'un seul fichier clé existe dans le dossier de configuration. +9. Dans ***Outils → Enregistrement***, sélectionnez **Remplacer la clé** et entrez votre adresse e-mail. + +
+ ![Remplacer la clé](/img/Replacekey.png) +
+ +10. Suivez les instructions contenues dans l'e-mail pour installer votre nouvelle clé. +11. Une fois terminé, sélectionnez **Terminé**. + +:::important +Si vous voyez une erreur "le fichier clé n'est pas valide", votre clé peut être sur liste noire ou n'est pas la dernière clé valide. [Contactez le support Unraid](https://unraid.net/support) pour obtenir de l'aide. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx new file mode 100644 index 0000000000..1bbf9f4998 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx @@ -0,0 +1,6 @@ +Pour les versions Unraid 6.11 et 6.12, suivez cette méthode de mise à jour traditionnelle : + +1. Dans le %%WebGUI|web-gui%%, allez à ***Outils → Mise à jour de l'OS***. +2. Cliquez sur **Vérifier les mises à jour**. +3. Si une nouvelle version est disponible, cliquez sur **Mettre à jour**. +4. Redémarrez votre serveur lorsque vous y êtes invité. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx new file mode 100644 index 0000000000..bad047789f --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx @@ -0,0 +1,11 @@ +La mise à niveau d'Unraid se fait grâce au nouvel **outil de mise à jour d'OS** avec une interface conviviale : + +1. Dans le %%WebGUI|web-gui%%, cliquez sur le menu déroulant en haut à droite et sélectionnez **Vérifier les mises à jour** ou accédez à ***Outils → Mise à jour de l'OS***. +2. Choisissez le canal **Stable** pour les versions stables ou le canal **Next** pour les bêtas et RCs. +3. Cliquez sur **Voir le journal des modifications pour démarrer la mise à jour**. Le journal des modifications apparaîtra pour que vous puissiez le revoir avant d'appuyer sur **Continuer**. +4. Cliquez sur **Confirmer et démarrer la mise à jour** pour appliquer la dernière version stable. +5. Lorsque vous y êtes invité, redémarrez votre serveur pour compléter la mise à niveau. + +:::note +Vous pourriez avoir besoin de vous connecter à votre compte Unraid pour accéder aux mises à jour, en particulier pour les versions "Next". +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx new file mode 100644 index 0000000000..1ee069ca16 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx @@ -0,0 +1,151 @@ +--- +sidebar_position: 2 +sidebar_label: Mise à niveau d'Unraid +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import UpgradeModern from './partials/upgrade-modern.mdx'; +import UpgradeLegacy611612 from './partials/upgrade-legacy-611-612.mdx'; +import ManualDowngradeSimplest from './partials/manual-downgrade-simplest.mdx'; +import ManualDowngradeCommandLine from './partials/manual-downgrade-command-line.mdx'; + +# Mise à niveau d'Unraid + +La mise à niveau d'Unraid OS garantit que vous disposez des fonctionnalités, des mises à jour de sécurité et du support matériel les plus récents. Cette page décrit le processus de mise à niveau standard, ainsi que des conseils de dépannage et des options de mise à niveau manuelle. + +:::note\[Prerequisites] + +Avant de commencer la mise à niveau, assurez-vous de créer une sauvegarde complète de votre périphérique USB. Pour plus de détails, consultez [Sauvegarder votre périphérique](../maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device). + +::: + +:::tip[Best pratiques avant la mise à niveau] +1. **Faites une sauvegarde** de votre clé USB et de toutes données importantes. +2. **Lisez les notes de version** de la version que vous prévoyez d'installer. +3. **Mettez à jour tous les plugins** vers leurs dernières versions. +4. **Optionnellement, arrêtez le réseau** avant de procéder. +5. **Mettez à jour Unraid OS** en utilisant la page ***Outils → Mise à jour de l'OS***. +6. **Redémarrez** votre serveur pour finaliser la mise à jour. +::: + +## Processus de mise à niveau standard + + + + + + + + + + + +:::caution[ZFS avertissements de mise à niveau du pool] +Lors de la mise à niveau vers Unraid 7.x, vous pouvez voir des avertissements concernant les mises à jour des fonctionnalités du pool %%ZFS|zfs%% durant le démarrage ou dans le %%WebGUI|web-gui%%. Ces avertissements ne sont pas un signe de problème; ils indiquent simplement que votre pool %%ZFS|zfs%% utilise des fonctionnalités d'une ancienne version de ZFS. + +Mettre à niveau votre pool n'est pas urgent, mais si vous décidez de le faire, gardez à l'esprit que cela peut ne pas fonctionner avec les versions précédentes d'Unraid. Cela signifie que vous ne pourrez peut-être pas revenir à une version antérieure d'Unraid après avoir effectué la mise à niveau. + +Comme toujours, n'oubliez pas de sauvegarder vos données avant de mettre à niveau vos pools %%ZFS|zfs%%. +::: + +--- + +## Dépannage des problèmes de mise à niveau + +Si vous rencontrez des problèmes après la mise à niveau, consultez la section correspondante ci-dessous pour obtenir de l'aide. + +
+ Les conteneurs de l'array ou de Docker sont lents à démarrer après la mise à niveau - Cliquez pour développer/réduire + + Une migration unique peut être nécessaire pour les conteneurs Docker après certaines mises à jour. Ce processus peut prendre du temps, surtout si vous avez de nombreuses images. Soyez patient pendant ce processus ; les performances devraient se normaliser après le démarrage initial. +
+ +
+ Les conteneurs Docker ne fonctionnent pas correctement après une mise à niveau - Cliquez pour développer/réduire + + Si vous rencontrez des erreurs du type *"les couches du manifeste ne correspondent pas à la configuration de l'image,"* il peut être nécessaire de reconstruire votre fichier d'image Docker. Voici comment : + + 1. Allez à ***Paramètres → Docker*** et arrêtez le service Docker. + 2. Cochez la case pour supprimer l'image Docker et cliquez sur le bouton supprimer. + 3. Redémarrez Docker pour recréer l'image. + 4. Naviguez vers l'onglet **Applications**, **Applications Précédentes**, cochez ce que vous souhaitez réinstaller, puis cliquez sur **"Installer xx Applications"**. +
+ +
+ Les conteneurs de l'array ou de Docker sont lents à démarrer après la mise à niveau - Cliquez pour développer/réduire + + Une migration unique peut être nécessaire pour les conteneurs Docker après certaines mises à jour. Ce processus peut prendre du temps, surtout si vous avez de nombreuses images. Soyez patient pendant ce processus ; les performances devraient se normaliser après le démarrage initial. + + 1. Allez à l'onglet **VMs** et modifiez chaque %%VM|vm%% (assurez-vous d'activer **Vue avancée**). + 2. Réglez le pont réseau sur `br0` et cliquez sur **Appliquer**. + 3. Allez à ***Paramètres → Gestionnaire de VM*** (en **Vue avancée**) et réglez le pont par défaut sur `br0`. +
+ +
+ Les conteneurs Docker ne fonctionnent pas correctement après une mise à niveau - Cliquez pour développer/réduire + + Si vous rencontrez des erreurs du type *"les couches du manifeste ne correspondent pas à la configuration de l'image,"* il peut être nécessaire de reconstruire votre fichier d'image Docker. Voici comment : + + 1. Modifiez la %%VM|vm%% de l'onglet **VMs** (sélectionnez **Vue avancée**). + 2. Réglez le **Pilote Vidéo %%VNC|vnc-session%%** sur **QXL** (recommandé). Essayez **Cirrus** ou **vmvga** si vous avez un succès limité avec QXL. + 3. Cliquez sur **Appliquer** pour enregistrer les modifications. +
+ +
+ Les VMs affichent "impossible d'obtenir l'interface MTU" ou des erreurs réseau - Cliquez pour développer/réduire + + If you have %%OVMF|ovmf%%-based %%VMs|vm%% created in older Unraid versions, you might encounter an EFI shell. You can boot the %%VM|vm%% by entering the following commands: + + 1. Tapez `fs0:`. + 2. Ensuite, tapez `cd efi/boot`. + 3. Enfin, tapez `bootx64.efi`. + + Si `fs0:` ne fonctionne pas, vous pouvez essayer `fs1:` à la place. Si vous continuez à avoir des problèmes, veuillez visiter les [forums Unraid](https://forums.unraid.net/) pour obtenir de l'aide. +
+ +
+ L'accès VNC aux VMs ne fonctionne pas ou est lent - Cliquez pour développer/réduire + + Pour résoudre ce problème, modifiez le %%VM|vm%% dans le %%WebGUI|web-gui%% et cliquez sur **Appliquer** sans apporter de modifications. Cette action mettra à jour le type de machine vers la version la plus récente supportée. +
+ +
+ La VM ne démarre pas (shell EFI apparaît) - Cliquez pour développer/réduire + + If you have %%OVMF|ovmf%%-based %%VMs|vm%% created in older Unraid versions, you might encounter an EFI shell. You can boot the %%VM|vm%% by entering the following commands: +
+ +--- + +## Mise à niveau ou rétrogradation manuelle + +Les mises à niveau manuelles sont rarement nécessaires mais peuvent être requises si vous ne pouvez pas accéder au %%WebGUI|web-gui%% ou avez besoin de revenir à une version antérieure. Avant de procéder, il est important de sauvegarder votre périphérique flash USB, dont les détails se trouvent dans [Sauvegarder votre périphérique flash](../maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device). + +### Utiliser l'outil de rétrogradation du système d'exploitation (si WebGUI est accessible) + +Si vous pouvez accéder au WebGUI : + +1. Connectez-vous au %%WebGUI|web-gui%%. +2. Allez à ***Outils → Rétrograder OS***. +3. Votre version précédente sera listée comme option de rétrogradation disponible. +4. Cliquez sur **Rétrograder** et suivez les instructions. +5. Redémarrez votre serveur lorsque vous y êtes invité. + +:::caution +Gardez à l'esprit que la rétrogradation peut entraîner des problèmes de compatibilité avec les plugins ou les conteneurs Docker. Sauvegardez toujours votre périphérique flash USB et toutes les données importantes au préalable. +::: + +### Méthodes manuelles (si WebGUI est inaccessible) + +Utilisez ces méthodes uniquement si vous ne pouvez pas accéder au %%WebGUI|web-gui%% : + + + + + + + + + + diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json new file mode 100644 index 0000000000..c077808b47 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Surveiller la performance", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx new file mode 100644 index 0000000000..8992dffb4e --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx @@ -0,0 +1,46 @@ +--- +sidebar_position: 2 +sidebar_label: Rapports SMART & santé du disque +--- + +# Rapports SMART & santé du disque + +**Technologie d'auto-surveillance, d'analyse et de rapport (%%SMART|smart%%)** est une fonctionnalité utile dans la plupart des disques durs et SSD modernes. Elle surveille l'état de santé et la fiabilité de vos disques. Dans Unraid, la surveillance %%SMART|smart%% agit comme un système d'alerte précoce, vous avertissant de pannes possibles avant de perdre des données. + +## Pourquoi la surveillance SMART est importante + +La surveillance %%SMART|smart%% vous aide à détecter des changements subtils dans l'état de santé de votre disque, comme l'augmentation du nombre d'erreurs ou de secteurs défectueux, avant qu'ils ne provoquent des problèmes graves, tels que des erreurs de lecture ou d'écriture. En tenant compte de ces avertissements, vous pouvez remplacer ou sauvegarder un disque défaillant, pour protéger vos données précieuses. Pour rester informé, activez les [notifications](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#notification-settings) pour recevoir des alertes même lorsque vous n'êtes pas connecté à la %%WebGUI|web-gui%% d'Unraid. + +:::note +La surveillance %%SMART|smart%% fonctionne pour les disques SATA mais n'est pas disponible pour les disques SAS. +::: + +## Comment Unraid utilise SMART + +Unraid vérifie constamment les principaux attributs %%SMART|smart%% de chaque lecteur connecté. Si l'un de ces attributs change, une icône orange apparaîtra à côté du lecteur concerné sur le tableau de bord. En cliquant sur l'icône, un menu s'affiche, vous permettant d'accuser réception du changement. Par la suite, Unraid ne vous avertira à nouveau que s'il y a d'autres mises à jour concernant cet attribut. + +Pour un examen plus approfondi des données %%SMART|smart%% d'un lecteur, cliquez sur son nom dans l'onglet **Principal** du %%WebGUI|web-gui%% d'Unraid. + +Certains attributs %%SMART|smart%% surveillés par défaut par Unraid incluent : + +| **ID** | **Attribut** | **Ce que cela signifie** | **Quand s'inquiéter / Action(s) à entreprendre** | +| ------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **5** | Compte de secteurs réalloués | Cela montre combien de zones défectueuses sur le disque ont été remplacées par des secteurs de secours. | Si c'est au-dessus de 0, votre lecteur commence à tomber en panne. Si ce chiffre augmente, [sauvegardez vos données](../../getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx#back-up-your-flash-device) et obtenez bientôt un nouveau lecteur. | +| **187** | Erreurs corrigées signalées | Ce sont des erreurs que le disque n'a pas pu corriger. | Si cela affiche un nombre supérieur à 0, c'est un signe sérieux. Remplacez le lecteur dès que possible. | +| **188** | Timeout de commande | Cela compte combien de fois les opérations ont duré trop longtemps, indiquant des problèmes possibles avec le disque ou le câble. | Des délais d'expiration occasionnels peuvent survenir à cause de problèmes d'alimentation. Si cela dépasse fréquemment 0, vérifiez vos câbles et connexions d'alimentation. | +| **197** | Compte des secteurs actuels/en attente | Cela indique des secteurs instables susceptibles d'échouer prochainement. | Tout nombre supérieur à 0 signifie que le disque ne peut pas lire correctement certaines zones. Si cela ne revient pas à 0 après quelques jours, remplacez le disque. | +| **198** | Compte de secteurs incorrigibles | Ces secteurs ne peuvent pas être lus ou écrits même après plusieurs tentatives. | Si vous voyez que ce nombre est supérieur à 0, cela signifie que vous avez perdu des données. Remplacez le lecteur immédiatement. | +| **199** | %%UDMA\|udma%% nombre d'erreurs %%CRC erreur\|crc-errors%% | Cela montre des erreurs dans le transfert de données entre le disque et l'ordinateur, souvent causées par des câbles défectueux. | Si ce nombre augmente, vérifiez et rebranchez les câbles SATA. Si cela cesse d'augmenter après cela, tout devrait bien aller. | + +## Que faire si vous recevez un avertissement SMART + +Si vous recevez un avertissement %%SMART|smart%%, voici ce que vous devez faire : + +- Vérifiez les attributs affectés dans le tableau ci-dessus. +- Si vous voyez que les comptes pour les secteurs réalloués, en attente ou incorrigibles augmentent, il est temps de planifier le remplacement du disque prochainement. +- Pour les erreurs %%CRC|crc-errors%%, inspectez vos câbles de données et assurez-vous qu'ils sont bien en place. +- Si vous avez des doutes sur un avertissement, n'hésitez pas à utiliser les [forums Unraid](https://forums.unraid.net/) ou à consulter la documentation du fabricant de votre disque. + +:::warning +Les avertissements %%SMART|smart%% sont des signaux précurseurs à ne pas ignorer. Prenez des mesures pour sauvegarder vos données et envisagez de remplacer le lecteur avant qu'il ne tombe en panne. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json new file mode 100644 index 0000000000..fba67eef90 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Sécuriser votre serveur", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx new file mode 100644 index 0000000000..8243bdaed9 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx @@ -0,0 +1,20 @@ +Cette méthode ne supprime que le **mot de passe %%root|root-user%%** et laisse les autres utilisateurs intacts. + +Pour réinitialiser via cette méthode : + +1. **Éteignez** votre serveur Unraid. + +2. **Connectez la clé USB** à un ordinateur (Windows ou Mac). + +3. **Ouvrez le fichier** situé à `/config/shadow` en utilisant un éditeur de texte (comme Notepad++). + +4. **Éditez la ligne** qui ressemble à : + `root:$&$&%*1112233484847648DHD$%.:15477:0:99999:7:::` + + à ceci : + + `root::15477:0:99999:7:::` + +5. **Sauvegardez les changements** au fichier et reconnectez la clé USB à votre serveur. + +6. **Démarrez votre serveur Unraid** et définissez un nouveau mot de passe root. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx new file mode 100644 index 0000000000..ae273effc9 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx @@ -0,0 +1,11 @@ +Cette méthode efface **tous les mots de passe utilisateur**, y compris\*%%root|root-user%% et les utilisateurs de partage. + +Pour la façon la plus simple de réinitialiser votre mot de passe : + +1. **Éteignez** votre serveur Unraid. +2. **Connectez la clé USB** à un ordinateur (Windows ou Mac). +3. **Supprimez ces fichiers** de la clé USB : + - `/config/shadow` + - `/config/smbpasswd` +4. **Déconnectez la clé USB** et reconnectez-la à votre serveur Unraid, puis démarrez-le. +5. **Créez un nouveau mot de passe root** lorsqu'il est demandé au démarrage. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx new file mode 100644 index 0000000000..b18e6ebbf2 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx @@ -0,0 +1,9 @@ +1. Sélectionnez l'icône œil ![Configuration du pair](/img/eye-icon.png) pour voir la configuration du pair. + +
+ ![Configuration du pair](/img/peer-eye.png) +
+ +2. Dans l'application mobile %%WireGuard|wireguard%%, choisissez **Créer à partir d'un code QR** et scannez le code QR. +3. Nommez la connexion et connectez. Le %%tunnel VPN|vpn-tunnel%% devrait démarrer rapidement. +4. Gardez le code QR privé - quiconque le possède peut accéder à votre VPN. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx new file mode 100644 index 0000000000..04953fdb4c --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx @@ -0,0 +1,10 @@ +1. Sélectionnez l'icône œil ![Configuration du pair](/img/eye-icon.png) pour voir la configuration du pair. + +
+ ![Configuration du pair](/img/peer-eye.png) +
+ +2. Téléchargez le fichier de configuration. +3. Transférez-le en toute sécurité vers l'appareil client (par exemple, via un e-mail de confiance ou un stockage cloud). +4. Décompressez et importez la configuration dans le client %%WireGuard|wireguard%%. +5. Protégez ce fichier pour éviter un accès VPN non autorisé. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx new file mode 100644 index 0000000000..5611f050b8 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx @@ -0,0 +1,71 @@ +--- +sidebar_position: 2 +sidebar_label: Sécurisation de votre clé USB +--- + +# Sécurisation de votre clé USB + +La clé USB est essentielle pour votre serveur Unraid, car elle stocke toutes les données de configuration, les licences, et les paramètres système. En raison de son importance, il est crucial de garder son contenu sécurisé et accessible en tout temps. + +## Sauvegardes + +Avoir une sauvegarde récente de votre clé USB vous assure de pouvoir rapidement récupérer d’une défaillance matérielle, de changements accidentels ou d’une corruption de données. Assurez-vous de créer des sauvegardes dans les situations suivantes : + +- Avant de mettre à niveau Unraid ou d'installer des plugins +- Après avoir ajouté ou supprimé des disques +- Après avoir modifié les paramètres réseau, de partage ou de sécurité +- Avant d'effectuer des changements de configuration majeurs +- Périodiquement, dans le cadre de votre routine de maintenance régulière + +Pour sauvegarder votre clé USB à l'aide du Unraid %%WebGUI|web-gui%%, suivez ces étapes : + +1. Sélectionnez votre clé USB depuis l’onglet **Principal**. +2. Dans les **Paramètres du périphérique USB**, cliquez sur **Sauvegarde USB**. + +
+ ![Sélectionnez le bouton de sauvegarde USB](/img/flashbackup.png) +
+ +3. Unraid créera un fichier ZIP contenant le contenu de la clé USB. +4. Enregistrez ce fichier ZIP dans un endroit sécurisé en dehors de votre serveur Unraid (comme un PC séparé, NAS ou stockage cloud). + +Si vous devez recréer votre clé USB, utilisez cette sauvegarde avec l'[outil de création USB](https://unraid.net/download). + +:::tip +Envisagez de garder une capture d'écran de vos [attributions de disque](../../getting-started/set-up-unraid/configure-your-array.mdx#assign-parity-and-data-disks) après toute modification matérielle. Cela garantit un placement correct des disques si vous devez restaurer à partir de votre sauvegarde. +::: + +--- + +## Accès réseau + +Vous pouvez contrôler si votre clé USB est accessible sur le réseau, de manière similaire aux autres partages dans Unraid. Cependant, l'accès au réseau doit être restreint car la clé USB contient des données sensibles de configuration et de licence. Considérez les éléments suivants : + +- **Visibilité réseau :** Décidez si votre clé USB doit être visible ou cachée sur votre réseau. +- **Droits d'accès :** Si l'accès réseau est activé, définissez les permissions pour limiter qui peut voir ou modifier son contenu. + +:::important[Reducing risques de sécurité] +- **Désactiver le partage :** Définissez l'exportation %%SMB|samba%% de la clé USB sur **Non** pour empêcher tout accès réseau. +- **Restreindre l'accès :** Si vous devez partager la clé USB, réglez la sécurité sur **Privé** et accordez l'accès uniquement aux utilisateurs de confiance avec des mots de passe forts. +- **Éviter l'accès public :** Ne laissez jamais le partage de la clé USB défini sur **Public** ou **Sécurisé** avec un accès invité en écriture. + +Ces étapes aident à prévenir les modifications non autorisées ou l'exposition de fichiers critiques. +::: + +--- + +## Permissions + +Pour améliorer la sécurité du système, les fichiers sur la clé USB ne peuvent plus se voir attribuer des permissions d'exécution. Ce changement empêche l'exécution directe de code malveillant ou non intentionnelle depuis la clé USB, réduisant ainsi le risque d'exploitation ou de modification accidentelle du système. + +Si vous avez des scripts ou programmes personnalisés stockés sur la clé USB, suivez ces étapes : + +1. **Copier les scripts à un emplacement exécutable :** + - Utilisez `/usr/local/bin` si vous souhaitez que les scripts soient dans le chemin système par défaut. + - Automatisez cela en ajoutant des commandes de copie dans votre fichier `config/go`. + - Après la copie, définissez l'autorisation d'exécution sur les fichiers. + +2. **Exécuter les scripts avec un interpréteur :** + - Préfixez le script avec l'interpréteur (par exemple, `bash /boot/config/scripts/myscript.sh`). + +Cette approche maintient votre système sécurisé tout en permettant aux utilisateurs avancés d'exécuter leurs scripts. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx new file mode 100644 index 0000000000..a7b69fb555 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx @@ -0,0 +1,187 @@ +--- +sidebar_position: 8 +sidebar_label: Sécurisez vos communications sortantes +--- + +# Sécurisez vos communications sortantes + +Le gestionnaire de proxy sortant et les nœuds de sortie de %%Tailscale|tailscale%% offrent un moyen de router les communications sortantes d'Unraid à travers des canaux sécurisés. Ces outils sont utiles pour contourner les pare-feu restrictifs, adhérer aux politiques réseau ou protéger votre trafic sortant. Bien que ces solutions se concentrent principalement sur le trafic système d'Unraid, des options de configuration permettent d'étendre leur couverture à votre réseau plus large. + +Il existe trois principales méthodes pour sécuriser vos communications sortantes : + +1. [**Gestionnaire de Proxy Sortant**](#setting-up-a-proxy-server) - Cet outil redirige le trafic HTTP via un serveur proxy, vous permettant de gérer et de diriger vos requêtes web en toute sécurité. +2. [**Points de sortie %%Tailscale|tailscale%%**](#tailscale-exit-nodes) - Avec les points de sortie %%Tailscale|tailscale%%, tout votre trafic peut être acheminé par le réseau maillé de %%Tailscale|tailscale%%, assurant une connexion sécurisée entre vos appareils. +3. [**%%WireGuard|wireguard%% %%VPN|vpn-tunnel%%**](#outgoing-vpn-connections) - Vous pouvez également utiliser %%WireGuard|wireguard%% %%VPN|vpn-tunnel%% pour acheminer votre trafic par des fournisseurs de %%VPN|vpn-tunnel%% commerciaux, ajoutant une couche supplémentaire de confidentialité et de sécurité. + +### Gestionnaire de Proxy Sortant vs. Tailscale/WireGuard/VPN + +| Cas d'utilisation | Outil recommandé | Pourquoi | +| ---------------------------------------------------------------- | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| Contourner le pare-feu pour les mises à jour système d'Unraid | Gestionnaire de Proxy Sortant | Redirige uniquement le trafic système d'Unraid via un proxy ; configuration simple et minimale. | +| Sécurisez tout le trafic sortant avec une mise en réseau maillée | Points de sortie %%Tailscale\|tailscale%% | Crypte le trafic via le réseau maillé de %%Tailscale\|tailscale%% ; configuration facile avec l'infrastructure %%Tailscale\|tailscale%% existante. | +| Sécurisez tout le trafic sortant (à l'échelle du système) | %%WireGuard\|wireguard%% %%VPN\|vpn-tunnel%% | Crypte et canalise tout le trafic d'Unraid (y compris Docker/VMs) vers des fournisseurs de %%VPN\|vpn-tunnel%% commerciaux. | +| Isoler le trafic Docker ou VM | %%VPN\|vpn-tunnel%% ou proxy de conteneur | Configurez le %%VPN\|vpn-tunnel%% au niveau du conteneur/VM pour un contrôle granulaire. | +| Accédez au réseau domestique de n'importe où | Points de sortie %%Tailscale\|tailscale%% | Acheminer le trafic via votre réseau domestique pour une IP et une géolocalisation cohérentes. | + +Pour la plupart des utilisateurs, des solutions comme [%%Tailscale|tailscale%%](./tailscale.mdx) ou [%%WireGuard|wireguard%%](./wireguard.mdx) sont préférées pour une sécurité et une confidentialité totales du système. Utilisez le Gestionnaire de Proxy Sortant lorsque vous avez seulement besoin de proxy les requêtes HTTP d'Unraid. + +### Configurer un serveur proxy + +Pour configurer un serveur proxy : + +1. Accédez à ***Settings → Outgoing Proxy Manager*** dans le %%WebGUI|web-gui%%. + +
+ ![Gestionnaire de Proxy Sortant](/img/outgoing-proxy-manager.png) +
+ +2. Ajoutez le nom, l'URL de votre proxy, et (si nécessaire) le nom d'utilisateur/mot de passe. +3. Cliquez sur **Appliquer**. +4. Sélectionnez votre nouveau proxy dans la liste et cliquez à nouveau sur **Appliquer**. + +Le %%WebGUI|web-gui%% utilisera automatiquement le proxy sélectionné pour le trafic système sortant. Si vous avez des terminaux web ouverts ou des sessions %%SSH|ssh%%, fermez-les et rouvrez-les pour appliquer les nouveaux paramètres proxy. Cette utilisation est transparente—surveillez les journaux du serveur proxy pour vérifier l'activité. + +### Choisir un serveur proxy HTTP + +- **Si votre organisation fournit un proxy :** Utilisez l'adresse et les identifiants délivrés par votre administrateur réseau. +- **Si vous devez configurer le vôtre :** + - Le conteneur Docker de serveur proxy par @ich777 est testé et fonctionne bien avec Unraid. + - Vous pouvez configurer ce conteneur pour faire passer le trafic par un %%VPN|vpn-tunnel%% commercial en utilisant Unraid's [%%WireGuard|wireguard%% %%VPN|vpn-tunnel%%](wireguard.mdx) ou le connecter à un autre service %%VPN|vpn-tunnel%% basé sur Docker. + - Pour plus de fiabilité, hébergez le serveur proxy sur un système séparé d'Unraid pour assurer la disponibilité du réseau au démarrage. + +Pour surveiller le trafic proxy, allez sur l'onglet **Docker** sur le système hôte proxy, sélectionnez le conteneur **Proxy Server**, et consultez les **Journaux**. + +### Importation automatique et compatibilité des plugins + +- Si vous utilisiez précédemment le plugin **Proxy Editor**, il sera automatiquement supprimé lors de la mise à niveau vers Unraid 7.0+ avec la prise en charge intégrée du proxy. +- Les paramètres de proxy hérités dans votre script `config/go` ou dans `community.applications/proxy.cfg` seront importés automatiquement, et les anciens fichiers seront renommés pour des raisons de sécurité. + +### Compatibilité des plugins + +- Les plugins utilisant la fonction `curl_init()` de PHP utiliseront automatiquement le proxy sortant. +- Les plugins utilisant `file_get_contents()` devraient migrer vers `curl_init()` pour la compatibilité avec le proxy. +- Pour les processus en ligne de commande, préférez `curl` à `wget` pour la prise en charge du proxy. + +Pour plus d'informations sur le développement et la compatibilité des plugins, visitez la [section Plugins de la documentation](../../using-unraid-to/customize-your-experience/plugins.mdx). + +## Points de sortie Tailscale + +%%Tailscale|tailscale%% exit nodes offer a secure and modern way to route your Unraid server's outgoing traffic through another device on your %%Tailnet|tailnet%%. This setup provides the security of a %%VPN|vpn-tunnel%% while leveraging %%Tailscale|tailscale%%'s easy-to-use mesh networking, making it ideal for users who want encrypted outgoing traffic without the complexity of traditional %%VPN|vpn-tunnel%%s. + +:::tip[When utiliser les points de sortie Tailscale] +Envisagez d'utiliser les points de sortie %%Tailscale|tailscale%% pour : + +- Sécuriser le trafic sortant de votre réseau domestique tout en voyageant +- Maintenir des adresses IP cohérentes pour les services qui bloquent le trafic VPN +- Intégration transparente avec l'infrastructure %%Tailscale|tailscale%% existante +::: + +### Configuration des points de sortie Tailscale + +Pour configurer un point de sortie %%Tailscale|tailscale%% pour le trafic sortant de votre serveur : + +1. **Installez le [plugin Tailscale](https://unraid.net/community/apps/c/plugins?q=tailscale#r:~:text=Plugins-,Tailscale%20\(Plugin\),-Derek%20Kaser)** depuis Community Applications s'il n'est pas déjà installé. +2. **Configurez un nœud de sortie** sur votre %%Tailnet|tailnet%%. \*\*Cela peut être un autre serveur Unraid, un conteneur Docker, ou tout appareil exécutant %%Tailscale|tailscale%%. +3. **Configurez votre serveur Unraid** pour utiliser le point de sortie : + - Accédez à ***Settings → Tailscale***. + - Dans le champ **Utiliser le point de sortie**, sélectionnez votre point de sortie disponible. + - Cliquez sur **Appliquer**. + +### Intégration Mullvad + +Tailscale s'est associé à Mullvad VPN pour fournir des nœuds de sortie commerciaux. Vous pouvez acheter [Mullvad VPN par le biais de Tailscale](https://tailscale.com/mullvad) et accéder à leur réseau mondial de serveurs en tant que nœuds de sortie. Cette combinaison offre le réseau maillé de Tailscale avec l'infrastructure axée sur la confidentialité de Mullvad. + +### Points de sortie des conteneurs Docker + +Vous pouvez également configurer un conteneur Docker pour fonctionner comme un point de sortie %%Tailscale|tailscale%% sur votre serveur Unraid. + +1. **Déployez un conteneur %%Tailscale|tailscale%%** en utilisant l'[image Docker officielle %%Tailscale|tailscale%%](https://hub.docker.com/r/tailscale/tailscale). +2. **Configurez le conteneur** en ajoutant l'option `--advertise-exit-node`. +3. **Approuvez le point de sortie** dans votre console d'administration %%Tailscale|tailscale%%. +4. **Sélectionnez le conteneur** comme point de sortie pour vos autres appareils sur le %%Tailnet|tailnet%%. + +## Connexions VPN sortantes + +Unraid prend en charge les connexions sortantes WireGuard VPN vers des fournisseurs commerciaux, vous permettant de router les conteneurs Docker ou tout le trafic de votre serveur à travers un tunnel sécurisé. Cela est utile pour la confidentialité, contourner les restrictions géographiques ou sécuriser les données sortantes. Pour des aperçus communautaires et du dépannage, consultez le [fil de discussion sur l'accès tunnelé WireGuard VPN](https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/). + +### Choisir un fournisseur de VPN + +Le choix du bon fournisseur %%VPN|vpn-tunnel%% dépend de vos priorités : vitesse, confidentialité, facilité d'utilisation et support. Les fournisseurs suivants sont bien pris en charge par Unraid et offrent une forte intégration %%WireGuard|wireguard%% : + +| Fournisseur | Idéal pour | Caractéristiques clés | Support dans Unraid | Notes | +| -------------------------------------------------------------------------------------------------------- | --------------------------------- | -------------------------------------------------- | ------------------- | ---------------------------------- | +| [NordVPN](https://nordvpn.com/) | Vitesse, confidentialité, valeur | Double NAT, pas de logs, réseau mondial | Excellent | Protocole NordLynx, rapide | +| [Surfshark](https://surfshark.com/) | Budget, appareils illimités | Pas de logs, liaisons illimitées, vitesses rapides | Excellent | Grande valeur, installation facile | +| [ProtonVPN](https://protonvpn.com/) | Confidentialité, open-source | Double NAT, Secure Core, pas de logs | Excellent | Open-source, forte confidentialité | +| [Mullvad](https://mullvad.net/en) | Anonymat, simplicité | Aucune info personnelle, tarifs fixes, open-source | Excellent | Payer en espèces, pas de courriel | +| [PureVPN](https://www.purevpn.com/) | Streaming, flexibilité | Grand réseau, intégration Unraid facile | Bien | Bon support, vitesses rapides | +| [CyberGhost](https://www.cyberghostvpn.com/) | Streaming, facilité d'utilisation | Serveurs optimisés, vitesses rapides | Bien | Applications conviviales | +| [IVPN](https://www.ivpn.net/en/), [OVPN](https://www.ovpn.com/en), [Windscribe](https://windscribe.com/) | Besoins spécifiques | Confidentialité avancée, options régionales | Bien | Supporté par la communauté | + +:::tip +Choisissez un fournisseur avec un support natif %%WireGuard|wireguard%% et des politiques de confidentialité solides. Évitez les fournisseurs nécessitant des clients personnalisés ou des protocoles propriétaires. +::: + +### Configurer un accès VPN en tunnel pour Docker + +Vous pouvez acheminer certains conteneurs Docker via un tunnel %%VPN|vpn-tunnel%% commercial - aucune modification du routeur requise. + +1. Téléchargez le fichier de configuration %%WireGuard|wireguard%% de votre fournisseur choisi. +2. Dans ***Settings → VPN Manager***, sélectionnez **Importer la configuration** et téléchargez le fichier. Cela crée un nouveau tunnel. +3. Le **Type d'accès du pair** est par défaut *Accès VPN en tunnel pour Docker*. Vous pouvez optionnellement lui donner un nom local. +4. Cliquez sur **Appliquer**. +5. Réglez le basculement du tunnel sur **Actif**. + +:::tip +Notez le nom du tunnel (par ex., `wg0`, `wg1`, `wg2`). Vous en aurez besoin lors de la configuration des conteneurs Docker.\ +Si votre fournisseur spécifie un serveur DNS dans leur configuration, enregistrez-le pour une utilisation ultérieure. Sinon, utilisez un DNS public comme `8.8.8.8`. +::: + +### Test du tunnel Docker + +Pour vérifier que votre tunnel Docker fonctionne et ne fuit aucune donnée DNS ou IP : + +1. Installez un conteneur Docker [Firefox](https://unraid.net/community/apps?q=Firefox) via Community Applications. +2. Réglez son **Type de réseau** sur **Personnalisé : wgX** (remplacez X par le nom de votre tunnel). +3. Basculez en vue **Avancée** et ajoutez votre fournisseur DNS aux **Paramètres supplémentaires** (par ex. : `--dns=8.8.8.8`). +4. Appliquez les modifications et démarrez le conteneur. +5. Lancez Firefox et visitez [whatismyipaddress.com](https://whatismyipaddress.com/) pour vérifier que votre adresse IP correspond au pays du serveur VPN. +6. Visitez [dnsleaktest.com](https://www.dnsleaktest.com/) et confirmez que seuls les serveurs DNS de votre VPN sont détectés. + +Vous pouvez assigner d'autres conteneurs à ce tunnel ou créer plusieurs tunnels. + +### Configurer un accès VPN en tunnel pour le système + +Pour faire passer tout le trafic Unraid par un VPN commercial : + +1. Téléchargez la configuration %%WireGuard|wireguard%% de votre fournisseur. +2. Dans ***Settings → VPN Manager***, sélectionnez **Importer la configuration** et téléchargez le fichier. +3. Optionnel : Renommez le tunnel. +4. Cliquez sur **Appliquer**. +5. Réglez le basculement du tunnel sur **Actif**. + +:::note +- Vous devrez peut-être désactiver temporairement le tunnel pour les mises à jour d'Unraid ou les installations de plugins. +- Un seul tunnel système à l'échelle peut être actif à la fois. +- Unraid ignore les paramètres DNS de la configuration importée. Définissez le DNS d'Unraid sur un serveur public fiable (par ex., `8.8.8.8`, `8.8.4.4`). +::: + +### Tester le tunnel système + +1. Installez le conteneur Docker [Firefox](https://unraid.net/community/apps?q=Firefox). +2. Acceptez tous les paramètres par défaut. +3. Lancez Firefox et visitez [whatismyipaddress.com](https://whatismyipaddress.com/). Votre adresse IP doit correspondre à l'emplacement de votre fournisseur VPN. + +--- + +### Ressources de soutien et communautaires + +Pour des conseils, une assistance en matière de dépannage et des astuces de la communauté à jour, visitez les ressources suivantes sur les [forums Unraid](https://forums.unraid.net/): + +- **[Accès Tunnelé WireGuard VPN](https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/)** - Cette discussion communautaire se concentre sur l'acheminement des conteneurs Docker ou du trafic à l'échelle système via des fournisseurs VPN commerciaux WireGuard. Elle inclut des exemples de configuration réels, des conseils pour tester les fuites DNS, et des conseils de dépannage pour les tunnels sortants. + +- **[Fil de discussion sur le plugin Dynamix WireGuard](https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/)** - Il s'agit du fil de discussion officiel pour le plugin Dynamix WireGuard. Il couvre les mises à jour du plugin, les demandes de fonctionnalités, les rapports de bugs, et des questions générales et réponses relatives au support intégré de WireGuard dans Unraid. + +- **[Démarrage Rapide WireGuard](https://forums.unraid.net/topic/84226-wireguard-quickstart/)** - Un guide étape par étape pour configurer des connexions VPN WireGuard entrantes vers Unraid. Cette ressource inclut des guides de configuration, des instructions de configuration des pairs, et des conseils pour l'accès à distance. + +\* *"WireGuard" et le logo "WireGuard" sont des marques déposées de Jason A. Donenfeld.* diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx new file mode 100644 index 0000000000..82fed42109 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx @@ -0,0 +1,296 @@ +--- +sidebar_position: 4 +sidebar_label: Sécurisation de votre connexion +--- + +# Sécurisation de votre connexion + +Sécuriser votre Unraid %%WebGUI|web-gui%% avec le cryptage %%SSL|ssl%% protège les données sensibles—telles que les identifiants de connexion et les détails de configuration—contre l'interception ou la falsification sur votre réseau local ou Internet. Vous pouvez utiliser des certificats %%SSL|ssl%% génériques fournis par [Let's Encrypt](https://letsencrypt.org/) pour les scénarios locaux et d'[accès à distance Unraid Connect](../../../unraid-connect/remote-access.mdx). + +:::important[The importance du SSL] +%%SSL|ssl%% (Secure Sockets Layer) crypte tout le trafic entre votre navigateur et le serveur Unraid, empêchant l'écoute clandestine et les attaques de type man-in-the-middle. Sans %%SSL|ssl%%, toute personne ayant accès à votre réseau pourrait potentiellement intercepter des données sensibles ou détourner votre session. L'utilisation de %%SSL|ssl%% est fortement recommandée pour la gestion locale et distante de votre serveur Unraid. +::: + +--- + +## Paramètres SSL + +Plusieurs paramètres dans Unraid affectent comment %%SSL|ssl%% est configuré et utilisé. Comprendre ces paramètres vous aide à choisir le bon certificat et la méthode de connexion adaptée à vos besoins. + +| Paramètre | Description | +| -------------------- | -------------------------------------------------------------------------------------- | +| **Nom du serveur** | Défini dans ***Paramètres → Identification***. Par défaut, c'est `tower`. | +| **TLD local** | Défini dans ***Paramètres → Accès de gestion***. Par défaut, c'est `local`. | +| **Utiliser SSL/TLS** | Réglé dans ***Paramètres → Accès à la gestion***. Contrôle si %%SSL\|ssl%% est activé. | +| **Port HTTP** | Défini dans ***Paramètres → Accès de gestion***. Par défaut, c'est `80`. | +| **Port HTTPS** | Défini dans ***Paramètres → Accès de gestion***. Par défaut, c'est `443`. | +| **Certificat** | Type de certificat %%SSL\|ssl%% utilisé (voir ci-dessous). | +| **IP lan** | L'adresse IP LAN de votre serveur, formatée pour être utilisée dans les URL. | +| **IP wan** | L'adresse IP publique de votre serveur, formatée pour être utilisée dans les URL. | +| **%%Hash\|hash%%** | Identifiant unique de 40 caractères attribué au certificat de votre serveur. | + +### Types de certificats SSL + +| Type | Quand l'utiliser | Avantages/Inconvénients | +| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | +| **Auto-signé** | Pour un accès local seulement lorsque vous n'avez pas besoin d'un certificat de confiance. | Facile à configurer, mais les navigateurs affichent des avertissements. Le trafic est chiffré une fois l'avertissement accepté. | +| **Myunraid.net** | Pour un accès sécurisé local et à distance, spécialement avec Unraid Connect ou si vous voulez un cert de confiance. | Fiable par les navigateurs, aucune alerte. Permet un accès à distance sécurisé via Unraid Connect. | +| **Personnalisé** | Pour les utilisateurs avancés qui souhaitent un certificat de domaine générique ou personnalisé (nécessite une configuration de %%DNS\|résolution-de-dns%%). | De confiance, flexible, mais nécessite une configuration supplémentaire. | + +--- + +## Moyens d'accéder à votre WebGUI + +Voici les principales façons d'accéder à votre Unraid %%WebGUI|web-gui%%, selon votre configuration %%SSL|ssl%% : + +#### HTTP uniquement (non chiffré) + +
+ Cliquer pour développer/réduire + + Avec HTTP uniquement, le trafic entre votre navigateur et le serveur n'est pas chiffré. + + 1. Allez dans ***Paramètres → Accès à la gestion***. + 2. Réglez **Utiliser SSL/TLS** sur *Non*. + 3. Conservez **TLD local** comme `local` à moins d'avoir votre propre DNS. + 4. Accéder aux URL : + - `http://[nom du serveur].[TLD local]` (ex. `http://tower.local`) + - `http://[adresse ip]` (ex. `http://192.168.100.1`) + 5. Cliquez sur **Appliquer**. + + :::warning + Toute personne sur votre réseau peut intercepter les données envoyées via HTTP. Utilisez HTTPS dès que possible. + ::: +
+ +--- + +#### HTTPS avec certificat auto-signé + +
+ Cliquer pour développer/réduire + + Le trafic est chiffré, mais les navigateurs afficheront un avertissement car le certificat n'est pas signé par une autorité de confiance. + + 1. Allez dans ***Paramètres → Accès à la gestion***. + 2. Réglez **Utiliser SSL/TLS** sur *Oui*. + 3. Conservez **TLD local** comme `local` à moins d'avoir votre propre DNS. + 4. Accéder aux URL : + - `https://[nom du serveur].[TLD local]` (ex. `https://tower.local`) + - `https://[adresse ip]` (ex. `https://192.168.100.1`) + 5. Cliquez sur **Appliquer**. + + :::important + Les navigateurs afficheront une erreur de certificat. Tout le trafic est toujours chiffré après acceptation de l'avertissement. + ::: +
+ +--- + +#### HTTPS avec certificat Myunraid.net et URL de repli + +
+ Cliquer pour développer/réduire + + Vous pouvez accéder à votre serveur de manière sécurisée via le %%WebGUI|web-gui%% en utilisant un certificat Myunraid.net, et configurer une URL de secours au cas où votre résolution %%DNS|dns-name-resolution%% est en panne. Tout le trafic sera chiffré, et le serveur est configuré pour revenir à une méthode secondaire lorsque %%DNS|dns-name-resolution%% est indisponible. + + 1. Allez dans ***Paramètres → Accès à la gestion***. + 2. Conservez **TLD local** aux valeurs par défaut de `local` sauf si vous pouvez fournir votre propre résolution DNS (cela est utilisé pour le certificat de repli). + 3. Laissez **Utiliser SSL/TLS** réglé sur *Non* ou *Oui*. + 4. Appuyez sur **Provision** pour générer le certificat myunraid.net. + + **Vos URL principales lorsque Utiliser SSL/TLS est réglé sur *Non* :** + + - `http://[nom du serveur].[TLD local]` (exemple : `http://tower.local`) + - `http://[adresse ip]` (exemple : `http://192.168.100.1`) + + **Vos URL principales lorsque Utiliser SSL/TLS est réglé sur *Oui* (utilise un certificat auto-signé) :** + + - `https://[nom du serveur].[TLD local]` (exemple : `https://tower.local`) + - `https://[adresse ip]` (exemple : `https://192.168.100.1`) + + **Votre URL myunraid.net alternative :** + + - `https://[lan-ip].[hash].myunraid.net` (exemple : `https://192-168-100-1.a1b2c3d4e5.myunraid.net`) + - Cette URL est affichée dans le champ **URLs d'accès local** sur la page **Accès à la gestion**. + - Si vous installez le plugin [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx), il apparaîtra également sur le tableau de bord Connect. + + :::info + Le certificat myunraid.net est approuvé par les navigateurs et ne montre pas d'avertissements. L'URL utilise votre adresse IP LAN avec les points remplacés par des tirets, plus un %%hash|hash%% unique de 40 caractères attribué à votre serveur. + ::: + + :::tip[Accès de secours] + Si la résolution %%DNS|dns-name-resolution%% devient indisponible (par exemple, votre connexion Internet est coupée), vous pouvez utiliser les URLs locales avec votre nom de serveur ou l'adresse IP comme méthodes d'accès de secours. + ::: +
+ +#### HTTPS avec certificat Myunraid.net et sans URL de secours + +
+ Cliquer pour développer/réduire + + Cette méthode offre le niveau le plus élevé d'application %%SSL|ssl%% en exigeant que tous les accès au %%WebGUI|web-gui%% utilisent le certificat Myunraid.net et l'URL. Elle est idéale pour les utilisateurs qui souhaitent une sécurité maximale et n'ont pas besoin d'accéder à leur serveur via l'IP locale ou le nom d'hôte si %%DNS|dns-name-resolution%% est indisponible. + + 1. Allez dans ***Paramètres → Accès à la gestion*** dans le %%WebGUI|web-gui%%. + 2. Conservez **TLD local** sur `local` sauf si vous avez votre propre résolution de noms %%DNS|dns-name-resolution%% (cela est utilisé pour le certificat de repli si vous exécutez ensuite la commande `use_ssl`). + 3. Cliquez sur **Provision** pour générer un certificat Myunraid.net. + 4. Si votre réseau n'a pas de problèmes de rebinding %%DNS|dns-name-resolution%%, l'option *Strict* pour **Utiliser SSL/TLS** sera disponible. + 5. Réglez **Utiliser SSL/TLS** sur *Strict* (ou *Auto* dans les versions Unraid antérieures). + 6. Votre URL d'accès sera :\ + `https://[lan-ip].[hash].myunraid.net` (ex : `https://192-168-100-1.a1b2c3d4e5.myunraid.net`) + + Si vous installez le plugin [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx), il apparaîtra également sur le tableau de bord Connect. + + :::caution + Si la résolution %%DNS|dns-name-resolution%% devient indisponible (par exemple, votre connexion Internet tombe en panne), vous ne pourrez pas accéder au %%WebGUI|web-gui%% en utilisant l'URL Myunraid.net. + + Pour retrouver l'accès : + + - Utilisez Telnet, %%SSH|ssh%% ou un clavier/écran local pour vous connecter. + - Exécutez `use_ssl no` pour passer à HTTP (`http://[nom du serveur].[TLD local]` ou `http://[adresse ip]`). + - Exécutez `use_ssl yes` pour passer à HTTPS en utilisant un certificat auto-signé (`https://[servername].[localTLD]` ou `https://[ipaddress]`). Voir [HTTPS avec un certificat auto-signé](#https-with-self-signed-certificate) ci-dessus pour plus de détails. + - Une fois que la %%DNS|dns-name-resolution%% est rétablie, réglez **Utiliser SSL/TLS** à *Strict* pour une sécurité totale. + ::: +
+ +--- + +## Redirections + +Lorsque vous accédez à `http://[nom du serveur].[TLD local]`, le comportement de redirection dépend de votre réglage **Utiliser SSL/TLS** : + +- **Strict** : Vous serez redirigé vers `https://[lan-ip].[hash].myunraid.net`. + :::note + Cela peut rendre l'accès local difficile si la %%DNS|dns-name-resolution%% est indisponible. Voir la mise en garde sous [HTTPS avec certificat Myunraid.net et sans URL de secours](#https-with-myunraidnet-certificate-and-with-no-fallback-url). + ::: + +- **Oui**: Vous serez redirigé vers `https://[servername].[localTLD]`. Cela fonctionnera même si votre connexion Internet est interrompue. + +- **Non** : L'URL HTTP se chargera directement, sans redirection ni cryptage. + +:::tip +Les redirections ne fonctionnent qu'à partir des URL HTTP, pas les URL HTTPS. +::: + +--- + +## Certificats personnalisés + +Les certificats personnalisés vous permettent de sécuriser votre Unraid %%WebGUI|web-gui%% avec votre propre certificat %%SSL|ssl%%, tel qu'un émis par une autorité de certificat commerciale ou un certificat wildcard pour votre domaine. + +Un certificat personnalisé est tout certificat %%SSL|ssl%% que vous fournissez et gérez vous-même, plutôt qu'un généré par Unraid ou Let's Encrypt. Ceci est utile si vous souhaitez utiliser votre propre nom de domaine, un certificat générique, ou intégrer avec l'infrastructure PKI de votre organisation. + +:::info\[When en utilisant un certificat personnalisé, vous êtes responsable de... + +- Obtenir le certificat auprès d'une autorité de certificat (CA) de confiance +- Gérer les enregistrements %%DNS|dns-name-resolution%% pour votre domaine choisi +- Télécharger et renouveler le certificat si nécessaire +- S'assurer que le certificat correspond au nom de domaine de votre serveur (dans les champs Subject ou Subject Alternative Name) + +::: + +Si votre certificat est invalide ou ne correspond pas à l'URL du serveur, Unraid le supprimera et reviendra à un certificat par défaut. + +### HTTPS avec certificat personnalisé (avec accès distant Unraid Connect en option) + +
+ Accès via HTTPS avec certificat personnalisé - Cliquez pour dérouler/replier + + 1. Allez dans ***Paramètres → Accès à la gestion***. + 2. Réglez **Utiliser SSL/TLS** sur *Oui*. + 3. Configurez **TLD local** avec le nom de domaine utilisé dans le Subject de votre certificat. + 4. Accédez à votre serveur à `https://[servername].[localTLD]` (par exemple, `https://tower.mydomain.com`). Vous devez gérer le DNS pour cette URL. + 5. Téléchargez votre certificat vers `/boot/config/ssl/certs/[nom du serveur]_unraid_bundle.pem`. + 6. Le certificat doit être valide pour `[nom du serveur].[TLD local]` ou en tant que wildcard `*.[TLD local]` (où `[TLD local]` correspond exactement à ce que vous avez entré dans le champ **TLD local**). + - Le domaine doit apparaître dans les champs Subject ou Subject Alternative Name (Unraid 6.10.3+ supporte les SAN). + - Si le certificat ne correspond pas, Unraid le supprimera. + 7. Activez en option [l'accès distant Unraid Connect](../../../unraid-connect/remote-access.mdx) pour une gestion à distance sécurisée, approuvée par les navigateurs. + + :::tip + Pour les certificats wildcard, assurez-vous que le champ Nom Alternatif du Sujet ou Sujet du certificat contient `*.[localTLD]` où `[localTLD]` est la valeur exacte que vous avez entré dans le champ **TLD Local** dans **Accès de gestion**. + ::: +
+ +--- + +## Dépannage SSL et configuration avancée + +Cette section couvre les problèmes courants liés au SSL et les options de configuration avancée qui s'appliquent lors de l'utilisation de certificats myunraid.net, que vous ayez installé Unraid Connect ou non. + +### Protection contre le rebinding DNS + +La protection contre le rebondissement DNS est une fonctionnalité de sécurité sur de nombreux routeurs qui empêche les entrées DNS publiques de se résoudre vers des adresses IP locales. Cela aide à protéger votre réseau de certaines attaques, mais peut causer des problèmes lors de l'utilisation de certificats %%SSL|ssl%% pour un accès local au %%WebGUI|web-gui%% Unraid. + +Si vous rencontrez une erreur de rebinding DNS lors de la provision d'un certificat %%SSL|ssl%% (par exemple, après avoir cliqué sur le bouton **Provisionner**), envisagez les étapes suivantes : + +- Cliquez sur **OK** dans le message d'erreur, attendez 2 à 5 minutes et réessayez. +- Si l'erreur persiste, vérifiez les paramètres de votre routeur pour des options liées à « protection contre le rebinding DNS » ou des termes similaires. +- Autoriser le rebinding DNS pour le domaine `myunraid.net`. +- Gardez à l'esprit que les changements DNS peuvent prendre du temps à se propager, donc vous pourriez voir l'erreur à nouveau après avoir effectué des mises à jour. + +Les étapes exactes peuvent varier selon le modèle et le firmware de votre routeur. + +### Accéder à votre serveur lorsque le DNS est en panne + +Lorsque %%SSL|ssl%% est activé avec un certificat myunraid.net, vous accédez généralement à votre serveur Unraid en utilisant un nom de domaine pleinement qualifié (FQDN), tel que : + +``` +https://ip.yourpersonalhash.myunraid.net +``` + +Ou, si vous utilisez un port HTTPS personnalisé : + +``` +https://ip.yourpersonalhash.myunraid.net: +``` + +Cela garantit que vous utilisez un certificat %%SSL|ssl%% valide pour un accès sécurisé. Cependant, si votre connexion Internet tombe en panne et que votre navigateur n'a pas mis en cache l'entrée DNS, vous pourriez perdre l'accès au %%WebGUI|web-gui%%. + +Si vous perdez l'accès DNS ou Internet : + +- Si l'option **Utiliser SSL/TLS** est définie sur **Oui**, essayez d'accéder à votre serveur à : + ``` + https://[servername].[localTLD] + ``` + Ou avec un port personnalisé : + ``` + https://servername.[localTLD]: + ``` + +- Si cela ne fonctionne pas, ou si **Utiliser SSL/TLS** est défini sur **Strict** : + 1. Utilisez telnet, %%SSH|ssh%%, ou un clavier/moniteur connecté directement pour vous connecter à votre serveur. + 2. Exécutez la commande : + ```bash + use_ssl no + ``` + 3. Vous pouvez maintenant accéder à l'interface %%WebGUI|web-gui%% à : + ``` + http:// + ``` + Ou, si vous utilisez un port personnalisé : + ``` + http://: + ``` + (Note : cela utilise HTTP, pas HTTPS.) + +Une fois l'accès Internet restauré, allez à ***Paramètres → Accès à la gestion*** et réglez **Utiliser SSL/TLS** sur **Strict** pour réactiver le SSL local. + +### Désactivation de SSL pour l'accès local + +Vous devriez désactiver %%SSL|ssl%% pour l'accès local si vous préférez une connexion HTTP simple sur votre réseau domestique de confiance ou si vous rencontrez des problèmes permanents avec la fourniture de certificats %%SSL|ssl%%, le rebinding DNS ou la compatibilité du navigateur. + +Pour désactiver %%SSL|ssl%% pour l'accès local : + +1. Allez à ***Paramètres → Accès à la gestion*** dans l'interface WebGUI. +2. Réglez **Utiliser SSL/TLS** sur **Non**. +3. Cliquez sur **Appliquer**. + +Ce changement désactivera également la fonction d'accès à distance, car %%SSL|ssl%% est nécessaire pour les connexions à distance sécurisées. + +:::caution +Désactiver %%SSL|ssl%% signifie que votre %%WebGUI|web-gui%% sera accessible via HTTP non chiffré. Cela expose vos identifiants de connexion et vos données de session à toute personne de votre réseau local et n'est pas recommandé à moins que vous soyez sûr que votre réseau est sécurisé et que vous n'ayez pas besoin d'un accès à distance. Pour une meilleure sécurité, maintenez %%SSL|ssl%% activé chaque fois que possible. +::: + +:::note +La gestion %%SSL|ssl%% est une fonctionnalité centrale d'Unraid et ne dépend pas du module complémentaire Unraid Connect. Vous pouvez désactiver %%SSL|ssl%% sans affecter les autres fonctionnalités d'Unraid. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx new file mode 100644 index 0000000000..fcc6446dee --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx @@ -0,0 +1,56 @@ +--- +sidebar_position: 5 +sidebar_label: Cryptage de vos données +--- + +# Cryptage de vos données + +Le cryptage de vos disques dans Unraid ajoute une couche de protection robuste pour les données sensibles, aidant à empêcher l'accès non autorisé en cas de perte ou de vol d'un disque. Le chiffrement est disponible pour le %%array|array%% et le %%cache pool|cache-pool%%. Cependant, soyez conscient que le cryptage peut compliquer la récupération des données. Il ne devrait être utilisé que si vous avez besoin d'un niveau spécifique de confidentialité des données, par exemple lors du stockage d'informations personnelles, commerciales ou réglementées sensibles. + +:::caution +Le chiffrement augmente la sécurité de vos données, mais peut compliquer la récupération après une défaillance matérielle. **N'activez le chiffrement que si vous avez un réel besoin et un système de sauvegarde fiable.** Si vous perdez votre clé ou fichier de chiffrement, vos données deviendront définitivement inaccessibles. +::: + +
+ Quand devez-vous envisager de crypter vos disques ? - Cliquez pour développer/réduire + + - Vous stockez des données confidentielles, réglementées ou sensibles sur votre serveur Unraid. + - Vous êtes préoccupé par le vol de données si un disque est physiquement retiré ou volé. + - Vous devez vous conformer aux exigences organisationnelles ou légales en matière de protection des données. + + Si vous utilisez principalement Unraid pour des médias domestiques ou des fichiers non sensibles, le cryptage peut ne pas être nécessaire et peut compliquer le dépannage et la récupération. +
+ +## Comment crypter un disque dans Unraid + +:::warning +Le cryptage d'un disque effacera toutes les données existantes sur ce disque. +::: + +:::important[Before chiffrement] +Déplacez toutes les données du disque que vous souhaitez chiffrer vers un autre emplacement (un autre disque dans votre %%array|array%%, un %%cache pool|cache-pool%%, ou une sauvegarde externe). Pour plus de détails sur le transfert sécuritaire de vos données, voir [Conversion à un nouveau type de système de fichiers](../../using-unraid-to/manage-storage/file-systems.mdx#converting-to-a-new-file-system-type). +::: + +Pour crypter un disque : + +1. Allez dans l'onglet **Main** du %%WebGUI|web-gui%%. +2. Arrêtez le %%array|array%%. +3. Sélectionnez le disque que vous souhaitez crypter. +4. Dans **Type de système de fichiers**, choisissez la version cryptée de votre système de fichiers souhaité (par exemple, `xfs-encrypted`, `btrfs-encrypted`). +5. Cliquez sur **Appliquer** pour valider le changement. +6. Cliquez sur **Terminé** pour revenir à l'onglet **Principal**. Le disque apparaîtra désormais comme non montable, et vous aurez l'option de formater les disques non montables. +7. Vérifiez soigneusement que vous avez sélectionné le bon disque, puis [formatez-le](../../using-unraid-to/manage-storage/file-systems.mdx#creating-a-file-system-formatting) pour terminer la configuration du cryptage. + +Après avoir activé le chiffrement, vous devez fournir la clé de chiffrement ou le fichier clé chaque fois que vous démarrez le %%array|array%%. Une fois déverrouillés, les disques chiffrés fonctionnent comme n'importe quel autre volume dans Unraid. + +--- + +## Gestion des clés de cryptage + +Unraid nécessite la même clé de cryptage ou le même fichier clé pour tous les disques cryptés dans votre système. + +- Vous pouvez utiliser une phrase secrète ou un fichier clé (comme un fichier image aléatoire). +- Stockez votre clé de chiffrement ou fichier clé dans un emplacement sécurisé, hors ligne. Ne comptez pas uniquement sur votre serveur Unraid pour le stockage des clés. +- Si vous perdez la clé ou le fichier clé, vos données cryptées ne peuvent pas être récupérées—pas d'exceptions. + +Les disques cryptés utilisent le format standard de l'industrie %%LUKS|luks%%, qui peut être déverrouillé sur n'importe quel système Linux moderne avec la clé correcte. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx new file mode 100644 index 0000000000..a0965ef83a --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx @@ -0,0 +1,172 @@ +--- +sidebar_position: 1 +sidebar_label: Fondamentaux de la sécurité +--- + +# Fondamentaux de la sécurité + +:::note[Principle de moindre privilège] +Le principe du moindre privilège signifie accorder aux utilisateurs et aux dispositifs uniquement le minimum d'accès nécessaire pour accomplir leurs tâches, jamais plus. Cette approche limite les dommages potentiels dus à des comptes compromis ou à des actions accidentelles et est un concept fondamental dans la sécurité moderne, y compris les modèles de zéro confiance. Appliquez ce principe tout au long de votre configuration Unraid, surtout en créant des utilisateurs de partage et en attribuant des permissions. +::: + +## Contrôle de l'accès aux dossiers partagés + +### Choisir un protocole de partage de fichiers réseau + +Lorsque vous partagez des fichiers avec votre serveur Unraid sur votre réseau domestique ou de bureau, vous avez plusieurs choix sur la manière de vous connecter. Unraid prend en charge des méthodes populaires, connues sous le nom de protocoles de communication, qui aident les appareils à communiquer entre eux. + +| Protocole | Utilisation principale | Avantage | Inconvénient | Cas d'utilisation recommandés | +| ------------------------------------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| %%SMB\|samba%% (Server Message Block) | Intégration native Windows/macOS | Support intégré à Windows ; prend en charge les imprimantes et le stockage VM ; rapide avec de gros fichiers | Les anciennes versions (SMBv1) ne sont pas sécurisées ; plus lentes avec des petits fichiers | Réseaux Windows et Mac ; environnements à ressources mixtes (imprimantes, VMs) | +| %%NFS\|nfs%% (Network File System) | Intégration native Unix/Linux | Optimisé pour Linux/Unix ; efficace pour les petits fichiers ; faible surcharge | Nécessite des outils supplémentaires pour Windows ; fiabilité du réseau cruciale ; verrouillage limité | Environnements Linux et Unix ; opérations sur petits fichiers ; charges de travail de données statiques | +| %%FTP\|ftp%% (Protocole de transfert de fichiers) | Compatibilité multiplateforme | Support client universel ; configuration simple ; transferts de fichiers par lots | Protocole en texte brut sans chiffrement ; identifiants envoyés non chiffrés ; sécurité obsolète | Uniquement pour les transferts non sensibles ou anciens ; utilisez FTPS (FTP sur TLS) ou SFTP (FTP sur SSH) pour un transfert de fichiers sécurisé | + +:::important +À partir de la version Unraid 6.9, le support pour **%%AFP|AFP%% (Apple Filing Protocol)** a été supprimé. Pour s'assurer que vos ordinateurs Mac fonctionnent bien avec votre serveur Unraid, y compris des fonctionnalités telles que les sauvegardes Time Machine, allez dans ***Paramètres → SMB*** et activez l'**interopérabilité macOS améliorée**. +::: + +Le choix du protocole à utiliser dépend des types d'appareils que vous avez et de ce que vous devez faire avec vos fichiers. Par défaut, Unraid active %%SMB|samba%% car il est largement pris en charge par les systèmes modernes Windows et macOS. %%NFS|nfs%% et %%FTP|ftp%% sont désactivés, mais peuvent être activés si nécessaire. + +Par exemple, si vous utilisez un client %%FTP|ftp%% pour vous connecter à votre serveur Unraid, vous pouvez facilement transférer de gros fichiers et même suspendre et reprendre vos chargements ou téléchargements si nécessaire. + +--- + +### Gestion de la visibilité réseau des partages + +Vous pouvez configurer différents niveaux d'accès pour vos dossiers réseau (partages) dans Unraid par : + +1. **Accédez à l'onglet Partages** : Commencez par cliquer sur l'onglet **Partages** dans le %%WebGUI|web-gui%%. + +2. **Sélectionnez un Partage** : Choisissez un partage existant que vous souhaitez ajuster. + +3. **Faites défiler jusqu'aux paramètres de sécurité** : En bas de la page de paramètres du partage, vous verrez une section pour les options de sécurité pour chaque protocole réseau activé. + +4. **Ajustez le paramètre d'exportation** : Ce paramètre contrôle comment le partage apparaît sur le réseau. Vous avez trois options : + + - **Oui** : Le partage est visible et toute personne naviguant sur le réseau peut y accéder. + - **Oui (Caché)** : Le partage ne s'affichera pas dans les listes de navigation réseau, mais si quelqu'un connaît le nom du partage, il peut toujours y accéder. + - **Non** : Le partage est complètement caché et n'est pas accessible via ce protocole spécifique. + +En modifiant ces options, vous pouvez gérer qui peut voir et accéder à chaque partage, ce qui facilite la sécurisation tout en garantissant que les bonnes personnes ont l'accès dont elles ont besoin, qu'elles utilisent %%SMB|samba%%, %%NFS|nfs%% ou %%FTP|ftp%%. + +--- + +### Configuration des autorisations utilisateur pour les partages + +Le contrôle de sécurité du partage détermine comment les utilisateurs accèdent aux fichiers partagés sur votre système. Vous pouvez configurer un partage pour qu'il nécessite un nom d'utilisateur et un mot de passe pour accéder aux fichiers, limiter l'accès en lecture seule ou le rendre complètement public sans nécessiter de connexions. + +:::note\[Example] + +Si vous créez un partage `movies` sur votre serveur Unraid, vous pouvez choisir de nécessiter un nom d'utilisateur et un mot de passe valide juste pour lire les données ou permettre l'accès public. Si vous avez besoin d'ajouter des utilisateurs, un %%root user|root-user%% peut créer des utilisateurs de partage en suivant le processus dans [**Gestion des utilisateurs**](./user-management.mdx#add-users). + +::: + +Lorsque vous allez dans l'onglet **Partages** et sélectionnez un partage, vous verrez ses paramètres, y compris une section de sécurité où vous pouvez gérer les [autorisations d'accès](#managing-network-visibility-of-shares) en fonction des protocoles que vous avez activés. De cette manière, vous pouvez personnaliser qui a accès à vos fichiers selon leurs besoins. + +Le paramètre **Sécurité** propose les options suivantes : + +| Type | Explication | Cas d'utilisation courant | +| ------------ | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | +| **Public** | Accès ouvert : tout le monde peut lire et écrire dans ce dossier. | Convient aux informations non sensibles, comme les médias partagés ou les téléchargements publics. | +| **Sécurisé** | Accès limité : tout le monde peut lire, mais seuls certains utilisateurs peuvent écrire. | Idéal pour les projets partagés où la collaboration est nécessaire, comme les dossiers de l'équipe. | +| **Privé** | Accès restreint : seuls des utilisateurs spécifiques peuvent lire ou écrire. | Idéal pour les informations sensibles, telles que les dossiers financiers ou les documents personnels. | + +:::caution[Windows Accès SMB] +Les versions modernes de Windows (Windows 10 1709+, Windows 11, Server 2019+) bloquent par défaut l'accès aux partages **Public** (invité/anonyme) %%SMB|samba%%, en raison de politiques de sécurité plus strictes. Tenter de se connecter à un partage public échouera généralement à moins que vous n'activiez manuellement les ouvertures de session invitées non sécurisées dans les paramètres de Windows - ce qui n'est pas recommandé pour des raisons de sécurité. + +**Meilleure pratique :** Configurez des comptes utilisateurs et des mots de passe pour vos partages Unraid et connectez-vous en utilisant ces identifiants pour un accès fiable depuis Windows. + +**Limitation des informations d'identification :** Windows ne permet qu'un seul ensemble de informations d'identification de connexion par serveur à la fois. Si vous essayez de vous connecter à différents partages sur le même serveur avec différentes informations d'identification, la connexion échouera. + +**Solution de contournement :** Si vous rencontrez des problèmes d'informations d'identification, essayez de vous connecter à un partage en utilisant le nom du serveur et à un autre en utilisant son adresse IP. Windows les traite comme des serveurs distincts. + +Pour plus de détails, voir [la documentation de Microsoft sur l'accès invité SMB](https://learn.microsoft.com/en-us/windows-server/storage/file-server/enable-insecure-guest-logons-smb2-and-smb3). +::: + +--- + +## Sécurité réseau + +### Définissez un mot de passe root fort + +Lorsque vous accédez pour la première fois au %%WebGUI|web-gui%% après l'installation, vous êtes tenu de définir un mot de passe pour le %%utilisateur root|root-user%%. Cependant, Unraid n'impose pas d'exigences de complexité de mot de passe - c'est à vous, en tant qu'utilisateur, de définir le niveau de sécurité du mot de passe pour votre serveur. + +- Accédez à l'onglet **Utilisateurs**, sélectionnez l'%%utilisateur root|root-user%% et définissez un mot de passe. +- Envisagez d'utiliser le plugin **Dynamix Password Validator** de [Community Apps](../../using-unraid-to/run-docker-containers/community-applications.mdx) pour un retour d'information en temps réel sur la solidité. +- Pour des conseils supplémentaires, consultez l'[outil d'évaluation de la solidité des mots de passe Bitwarden](https://bitwarden.com/) en ligne fourni. + +### Examinez et réduisez le plus possible la redirection de port + +Acheminer des ports de votre routeur vers votre serveur Unraid peut être nécessaire pour l'accès à distance aux services, mais cela expose votre réseau à des risques significatifs. Ne dirigez que les ports que vous comprenez complètement et dont vous avez besoin. + +| Port(s) | Utilisation typique | Risque de sécurité | Alternative plus sûre | +| ---------- | ------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 80 / 443 | %%WebGUI\|web-gui%% (HTTP/HTTPS) | Expose l'interface de gestion ; risque d'interception ou d'attaque par force brute si le mot de passe est faible | Utilisez Unraid Connect ou un VPN pour un accès à distance, notez qu'Unraid Connect nécessite le transfert de port WAN ou UPnP (pas un relais cloud toujours actif) | +| 445 | %%SMB\|samba%% (partages de fichiers) | Expose les partages à l'internet ; risque de vol ou de suppression de données | Utilisez un VPN pour un accès à distance sécurisé des fichiers | +| 111 / 2049 | %%NFS\|nfs%% | Expose les partages %%NFS\|nfs%% ; risques similaires à %%SMB\|samba%% | Utilisez un VPN pour l'accès à distance | +| 22 / 23 | %%SSH\|ssh%%/Telnet | Expose l'accès à la console ; risque d'attaque par force brute ou vol de données d'identification | Utilisez des clés %%SSH\|ssh%% ou un VPN ; ne jamais transférer Telnet | +| 57xx | %%VNC\|vnc-session%% pour %%VMs\|vm%% | Expose les consoles %%VM\|vm%% ; risque d'accès à distance non autorisé | Utilisez Unraid Connect ou un VPN | + +:::tip +Si vous voyez une règle de transfert de port que vous ne comprenez pas, supprimez-la et surveillez les problèmes. Vous pouvez toujours la rajouter si nécessaire. +::: + +:::caution +Ne placez jamais votre serveur dans le DMZ de votre réseau. Mettre votre serveur Unraid dans le DMZ expose tous les ports à Internet, augmentant considérablement le risque de compromission. Même avec des mots de passe forts, cela n'est jamais recommandé. +::: + +--- + +## Sécurité d'accès aux partages + +### Contrôlez la visibilité et les autorisations des partages + +- Utilisez l'onglet **Partages** dans le WebGUI pour définir les paramètres d'exportation et de sécurité de chaque partage. +- Privilégiez les partages privés ou sécurisés pour les données sensibles. Les partages publics sont accessibles par toute personne sur le réseau et sont bloqués par défaut dans les versions modernes de Windows pour des raisons de sécurité. +- Assignez des comptes d'utilisateurs avec uniquement les permissions nécessaires pour leur rôle (moins de privilèges). +- Limitez l'accès aux partages à des utilisateurs spécifiques autant que possible. + +### Assignez les permissions utilisateurs avec soin + +- Attribuez aux utilisateurs des droits d'accès en lecture seule ou en lecture/écriture selon les besoins. +- Le compte de %%utilisateur root|root-user%% est destiné à l'administration système et ne peut pas accéder aux partages réseau. Créez des comptes utilisateur dédiés pour l'accès aux partages réseau. +- Révisez régulièrement les permissions des utilisateurs et supprimez les comptes inutilisés. + +### Limitez l'accès aux partages à privé ou lecture seule + +Bien que l'accès aux partages sans mot de passe soit pratique, cela peut également mettre vos données en danger si des appareils sur votre réseau local deviennent compromis. Cela inclut les PC, Mac, appareils mobiles et appareils IoT. Par défaut, les partages Unraid sont configurés pour être lus et écrits publiquement, ce qui signifie que tout appareil sur votre réseau pourrait potentiellement voler, supprimer ou chiffrer vos fichiers s'il est compromis. De plus, des utilisateurs malveillants peuvent télécharger des données indésirables sur votre serveur. + +- Définissez les partages sensibles sur **Privé** dans l'onglet **partages** du %%WebGUI|web-gui%%. +- Si un partage **Public** est nécessaire, définissez-le comme **Lecture seule** quand c'est possible. +- Ne donnez l'accès en écriture qu'aux utilisateurs autorisés ayant des mots de passe forts. + +### Évitez d'exposer le partage flash - ou mettez-le en privé + +Le périphérique flash Unraid contient des fichiers système et de configuration critiques. Bien qu'il puisse être pratique d'exposer le partage flash via %%SMB|samba%% pour une configuration avancée, cela introduit un risque significatif s'il est laissé public. + +- N'exposez le partage flash que si absolument nécessaire et réglez-le sur **Privé**. +- Exigez un nom d'utilisateur et un mot de passe fort pour accéder. +- Supprimez ou désactivez le partage lorsqu'il n'est pas utilisé pour réduire le risque. + +### Gardez votre serveur à jour + +Les mises à jour régulières sont essentielles pour la sécurité. De nouvelles vulnérabilités (CVE) sont fréquemment découvertes, et Lime Technology publie activement des correctifs pour Unraid OS. La mise à jour n'est efficace que si vous appliquez réellement les mises à jour. + +- Vérifiez les mises à jour dans ***Outils → Mettre à jour l'OS*** dans le %%WebGUI|web-gui%%. +- Activez les notifications dans ***Paramètres → Notifications*** pour être alerté lorsque des mises à jour sont disponibles. +- Mettez à jour les plugins et les conteneurs Docker via l'onglet **Apps** pour vous assurer que tous les composants sont sécurisés et compatibles. +- Appliquez les mises à jour rapidement pour protéger votre serveur contre les menaces connues. + +### Utilisez des méthodes sécurisées pour l'administration à distance + +Ne jamais exposer directement le %%WebGUI|web-gui%% à Internet. Utilisez plutôt des solutions d'accès à distance sécurisées : + +- **%%Tailscale|tailscale%%** est une option recommandée, avec un plugin dédié pour Unraid. Il crée un réseau privé sécurisé (tailnet) pour accéder à votre serveur et à vos services de n'importe où, sans avoir besoin d'exposer les ports ou de configurer des règles de pare-feu complexes. +- **%%WireGuard|wireguard%% VPN** est intégré à Unraid et offre un tunnel sécurisé et chiffré pour la gestion à distance. +- **%%OpenVPN|openvpn%%** est disponible en tant que plugin ou conteneur Docker. +- De nombreux routeurs modernes offrent un support VPN intégré - consultez la documentation de votre routeur pour la configuration. +- Le plugin [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) permet un accès à distance au %%WebGUI|web-gui%%, mais nécessite qu'un port soit redirigé sur votre routeur. + +--- + +\* *"%%WireGuard|wireguard%%" et le logo "%%WireGuard|wireguard%%" sont des marques déposées de Jason A. Donenfeld.* diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx new file mode 100644 index 0000000000..56255bd27d --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx @@ -0,0 +1,183 @@ +--- +sidebar_position: 6 +sidebar_label: Tailscale +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Tailscale + +Unraid intègre désormais profondément [%%Tailscale|tailscale%%](https://tailscale.com/), grâce à un partenariat technologique qui connecte directement un réseau sécurisé et sans couture à votre serveur. %%Tailscale|tailscale%% n'est pas un VPN traditionnel - c'est un réseau de superposition moderne pair à pair basé sur %%WireGuard|wireguard%%. Il vous permet de connecter des appareils, serveurs et des conteneurs Docker individuels dans votre réseau privé sécurisé (%%Tailnet|tailnet%%), quel que soit leur emplacement physique ou environnement réseau. Le partenariat Unraid garantit que le plugin %%Tailscale|tailscale%% est entièrement maintenu et étroitement intégré, offrant un support de certificat natif et des fonctionnalités avancées dans Unraid 7 et versions ultérieures. + +- **Configuration simple :** Pas de redirection de port ou de casse-tête de pare-feu. +- **Sécurité renforcée :** Utilise le cryptage %%WireGuard|wireguard%% en arrière-plan. +- **Partage flexible :** Accordez l'accès à des appareils ou des conteneurs spécifiques, pas seulement à l'ensemble de votre réseau. +- **Support de premier ordre :** Plugin officiellement maintenu, avec des améliorations continues. + +--- + +## Commencer avec Tailscale + +Pour commencer, [inscrivez-vous pour un compte gratuit Tailscale](https://login.tailscale.com/start) et installez le client sur au moins un appareil (Windows, macOS, Linux, iOS, Android et plus). Les comptes gratuits prennent en charge jusqu'à trois utilisateurs et 100 appareils. + +Avant d'ajouter Unraid, considérez : + +- [Renommer votre %%Tailnet|tailnet%%](https://tailscale.com/kb/1217/tailnet-name) pour une identification plus facile. +- Activer [%%MagicDNS|magicdns%%](https://tailscale.com/kb/1081/magicdns) pour simplifier le nommage des appareils. +- Activer les [certificats HTTPS](https://tailscale.com/kb/1153/enabling-https) pour un accès sécurisé et de confiance. + +:::note +Les noms de machine dans les certificats HTTPS sont publics. Utilisez des noms que vous êtes à l'aise de partager. +::: + +### Ajouter Tailscale à Unraid + +Les étapes suivantes sont actuelles et exactes pour Unraid 7 et plus : + +1. Passez en revue les paramètres de votre compte Tailscale comme décrit ci-dessus. +2. Dans Unraid, recherchez l'onglet [**Applications Communautaires**](../../using-unraid-to/run-docker-containers/community-applications.mdx) pour le plugin %%Tailscale|tailscale%% officiel et installez-le. +3. Ouvrez ***Paramètres → Tailscale*** et cliquez sur Ré-authentifier. Connectez-vous avec votre compte %%Tailscale|tailscale%%. +4. Cliquez sur **Connecter** pour ajouter votre serveur Unraid à votre %%Tailnet|tailnet%%. +5. Visitez ***Paramètres → Gestion de l'accès*** pour voir vos URL %%Tailscale|tailscale%% pour le %%WebGUI|web-gui%%. +6. Dans ***Paramètres → Tailscale***, trouvez le nom et l'adresse IP de votre %%Tailnet|tailnet%% serveur. Utilisez-les pour accéder aux partages SMB/NFS, aux conteneurs Docker et plus depuis n'importe quel appareil sur votre %%Tailnet|tailnet%%. + +### Routage de sous-réseau (optionnel) + +Pour accéder à votre serveur Unraid par son IP LAN principal (ou pour atteindre des conteneurs Docker avec leurs IPs propres) : + +1. Allez à ***Paramètres → Tailscale***, cliquez sur Affichage, et connectez-vous. +2. Cliquez sur **Routeur de sous-réseau** et ajoutez : + - L'IP de votre serveur Unraid (par ex., `192.168.0.12/32`), ou + - Le sous-réseau entier de votre réseau (par ex., `192.168.0.0/24`). +3. Cliquez sur **Annoncer les routes**. +4. Approuvez la route en attente dans votre console admin Tailscale. +5. Une fois approuvé, les appareils sur votre %%Tailnet|tailnet%% peuvent accéder à votre serveur Unraid et/ou aux appareils LAN par leurs adresses IP habituelles. +6. Pour des détails avancés, consultez la [documentation %%Tailscale|tailscale%% %%subnet routing|subnet-routing%%](https://tailscale.com/kb/1019/subnets). + +--- + +## Ajouter Tailscale aux conteneurs Docker + +Unraid facilite la connexion des [conteneurs Docker](../../using-unraid-to/run-docker-containers/overview.mdx) à votre %%Tailnet|tailnet%%, donnant à chaque conteneur une identité d'appareil unique pour un accès distant sécurisé et flexible. Grâce à cette intégration, vous pouvez partager l'accès à des conteneurs individuels - sans exposer votre serveur entier - et profiter de fonctionnalités avancées comme les nœuds de sortie, Serve et Funnel sur une base par conteneur. La configuration est entièrement automatisée, donc les utilisateurs de tous niveaux peuvent bénéficier d'une sécurité améliorée et d'une mise en réseau simplifiée. + +
+ Comment fonctionne l'intégration Tailscale-Docker - Cliquez pour développer/réduire + + Lorsque vous activez **Utiliser %%Tailscale|tailscale%%** pour un conteneur Docker et appliquez les changements, Unraid automatise les étapes suivantes pour une intégration sans faille : + + 1. **Extraction d'Entrypoint :** Unraid identifie l'Entrypoint et CMD originaux du conteneur, préservant son comportement de démarrage prévu. + 2. **Injection du script d'intégration :** Le script `tailscale_container_hook` est monté à l'intérieur du conteneur, et l'Entrypoint est mis à jour pour exécuter ce script en premier. + 3. **Configuration de l'environnement :** L'Entrypoint original, CMD, et toutes les variables %%Tailscale|tailscale%% requises sont passées à la commande exécuter Docker. + 4. **Initialisation %%Tailscale|tailscale%% :** Au démarrage, le script incrusté installe toutes les dépendances, télécharge le client %%Tailscale|tailscale%% et le lance dans le conteneur. + 5. **Démarrage normal :** Le script démarre ensuite l'Entrypoint et le CMD originaux du conteneur, de sorte que votre application fonctionne comme d'habitude - avec le réseau Tailscale ajouté automatiquement. + + Une fois activé, le conteneur apparaît comme son propre appareil sur votre Tailnet, prêt pour un accès sécurisé et des fonctionnalités Tailscale avancées, sans nécessiter aucune configuration réseau manuelle ou de redirection de port. +
+ +:::warning[Container compatibilité] +L'intégration Tailscale ne fonctionne pas avec tous les conteneurs. Certains conteneurs peuvent ne pas fonctionner du tout si Tailscale est activé, en particulier ceux avec : + +- Exigences réseau personnalisées +- Besoins spécifiques d'isolation réseau +- Applications en conflit avec les modifications réseau de Tailscale + +Testez l'intégration Tailscale sur des conteneurs non critiques d'abord, et préparez-vous à la désactiver si le conteneur ne fonctionne pas correctement. +::: + +:::note\[Prerequisites] + +- Tout d'abord, installez %%Tailscale|tailscale%% sur n'importe quel ordinateur qui accédera à vos conteneurs Docker. +- Bien que le plugin Tailscale Unraid ne soit pas strictement nécessaire pour l'intégration Docker, il est fortement recommandé de l'installer et se connecter sur votre serveur Unraid pour une meilleure expérience. + +::: + +Pour ajouter %%Tailscale|tailscale%% à un conteneur Docker : + +1. Examinez les paramètres de votre compte %%Tailscale|tailscale%% comme décrit dans la [section Commencer](#getting-started-with-tailscale). +2. Dans Unraid, allez à l'onglet **Docker** et [modifiez le conteneur souhaité](../../using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx). +3. Activez l'interrupteur **Utiliser Tailscale**. +4. Entrez un **nom d'hôte Tailscale** pour le conteneur (doit être unique sur votre Tailnet). + +:::warning +Un certificat HTTPS sera généré pour ce nom d'hôte et publié dans un registre public de certificats. Choisissez un nom que vous êtes à l'aise de partager publiquement. Consultez les [docs HTTPS de Tailscale](https://tailscale.com/kb/1153/enabling-https) pour plus de détails. +::: + +5. Décidez si ce conteneur doit être un nœud de sortie (utile pour les conteneurs VPN). +6. Choisissez si le conteneur doit utiliser un nœud de sortie pour son trafic sortant. Si le plugin Tailnet est installé, vous verrez une liste des nœuds de sortie disponibles ; sinon, saisissez l'IP manuellement. +7. Si un nœud de sortie est utilisé, précisez si le conteneur doit également accéder à votre LAN. +8. Le champ **Network dans l'espace utilisateur de Tailscale** est généralement configuré automatiquement. Laissez-le désactivé sauf si vous avez un besoin spécifique. +9. Décidez d'activer ou non **%%Tailscale|tailscale%% %%SSH|ssh%%** (accès sécurisé à shell authentifié via %%Tailscale|tailscale%%). + +:::info[Serve vs. Tunnel] +- **Serve** : Vous permet d'accéder au site web ou au service web d'un conteneur de manière sécurisée depuis votre Tailnet en utilisant une URL HTTPS conviviale. Aucun transfert de port n'est nécessaire et seuls les appareils Tailnet peuvent se connecter. +- **Funnel** : Publie le site web du conteneur sur Internet via une URL HTTPS unique. Quiconque possède le lien peut y accéder, même s'il n'est pas sur votre Tailnet. Utilisez ceci avec prudence, car cela expose votre service à l'Internet large. +::: + +10. Activez **Serve** pour faire un proxy inverse de l'interface web du conteneur vers votre Tailnet, ou **Funnel** pour le rendre accessible depuis internet. Unraid détectera automatiquement le port à utiliser en fonction des paramètres WebUI du conteneur. Si nécessaire, des options avancées sont également disponibles. + +:::warning +Lors de l'utilisation de Serve ou Funnel, il n'y a pas de couche d'authentification supplémentaire - votre conteneur est responsable de la gestion de l'accès des utilisateurs. Sécurisez vos applications web en conséquence. +::: + +11. **Appliquez** vos modifications et vérifiez le **journal du conteneur** pour les messages Tailscale. Cliquez sur le lien "Pour authentifier, visitez" pour approuver le conteneur sur votre Tailnet. + +:::caution\[Troubleshooting] + +**Erreur d'état persistant** - Si vous voyez "*ERREUR : Impossible de détecter le répertoire Docker persistant pour .tailscale\_state*": + +- Modifiez le conteneur et identifiez un chemin mappé pour stocker les données d'état Tailscale (par ex., `/container-path/`). +- Activez les **Affichage des paramètres avancés** Tailscale et définissez le **Répertoire d'état** Tailscale à `/container-path/.tailscale_state`. +- Redémarrez le conteneur. +- Les auteurs de fichiers XML Docker peuvent simplifier cela en ajoutant `/container-path/.tailscale_state` au fichier XML du conteneur. + +::: + +--- + +## Mise à jour de Tailscale + +%%Tailscale|tailscale%% est fréquemment mis à jour pour offrir de nouvelles fonctionnalités et améliorer la sécurité. Pour garder votre système Unraid sécurisé et compatible, assurez-vous que le plugin Unraid %%Tailscale|tailscale%% et tous les conteneurs Docker utilisant %%Tailscale|tailscale%% sont à jour. + +Pour mettre à jour %%Tailscale|tailscale%% : + +- **Mettez à jour le plugin Unraid %%Tailscale|tailscale%%:** Lorsqu'une nouvelle version est disponible, mettez à jour le plugin via l'onglet Applications Unraid comme n'importe quel autre plugin. Vous pouvez toujours consulter les dernières modifications dans le [changelog %%Tailscale|tailscale%%](https://tailscale.com/changelog). + +- **Mettre à jour %%Tailscale|tailscale%% dans les conteneurs Docker :** + 1. Sur la page Docker, survolez l'icône %%Tailscale|tailscale%% pour tout conteneur. Si une mise à jour est disponible, vous verrez une notification. + 2. Mettez à jour le conteneur en : + - Passant à **Affichage Avancé** (coin supérieur droit), puis en cliquant sur **Forcer la mise à jour**. + - Modifiant le conteneur, en faisant une modification mineure (comme changer un paramètre), et en cliquant sur **Appliquer**. + +--- + +## Réseau en espace utilisateur + +**Network dans l'espace utilisateur** contrôle comment un conteneur se connecte à votre %%Tailnet|tailnet%% et au reste de votre réseau. Dans la plupart des cas, vous pouvez ignorer les détails si vous accédez aux conteneurs en utilisant leurs URL WebUI et que vous avez %%Tailscale|tailscale%% installé sur tous vos systèmes clients. + +- **Activé :** Le conteneur fonctionne dans un environnement restreint. Il ne peut pas initier de connexions à d'autres appareils %%Tailnet|tailnet%% ou utiliser le DNS %%Tailscale|tailscale%% mais reste accessible via à la fois le WebUI %%Tailscale|tailscale%% et l'URL WebUI d'origine. + +- **Désactivé :** Le conteneur a un accès %%Tailnet|tailnet%% complet et peut utiliser le DNS %%Tailscale|tailscale%%. Il peut communiquer avec d'autres appareils %%Tailnet|tailnet%%, mais l'URL WebUI d'origine peut ne pas être disponible. + +:::info[Feature exigences] +- Les conteneurs définis comme **Nœuds de sortie** ont toujours le réseau en espace utilisateur activé. +- Les conteneurs qui **Utilisent un Nœud de Sortie** ont toujours le réseau en espace utilisateur désactivé. +::: + +### Compatibilité des types de réseau + +Le comportement de l'intégration Tailscale et du réseau d'espace utilisateur dépend du type de réseau du conteneur. Utilisez le tableau ci-dessous pour comprendre les options de compatibilité et d'accès : + +| Type de réseau | Par défaut, réseau en espace utilisateur | Peut être changé ? | Accès WebUI (%%Tailscale\|tailscale%%) | Accès WebUI (Original) | Notes | +| -------------------- | ---------------------------------------- | ------------------ | -------------------------------------- | ------------------------------- | --------------------------------------------------------------------------------------- | +| `hôte` | Désactivé | Non | Non | Oui | Intégration %%Tailscale\|tailscale%% non disponible en mode hôte | +| `pont` | Désactivé | Oui | Oui | *Activé*: Oui *Désactivé*: Non | Activez les deux URLs si activé; uniquement WebUI %%Tailscale\|tailscale%% si désactivé | +| `eth0`/`br0`/`bond0` | Désactivé | Oui | Oui | Oui | Les deux URLs accessibles quel que soit le réglage | +| `conteneur`/`wg0` | Désactivé (non testé) | Oui | Inconnu | Inconnu | À utiliser avec prudence ; pas complètement testé | + +:::info[Keep à l'esprit] +- Les URL de l’interface Web de %%Tailscale|tailscale%% ne sont accessibles que depuis des appareils avec %%Tailscale|tailscale%% installé et rejoint à votre %%Tailnet|tailnet%%, ou avec le partage explicite activé. +- Pour la plupart des utilisateurs, les paramètres par défaut offrent un accès sécurisé et fiable. Des options avancées sont disponibles pour des besoins de mise en réseau spécialisés. +::: + +\* *"%%WireGuard|wireguard%%" et le logo "%%WireGuard|wireguard%%" sont des marques déposées de Jason A. Donenfeld.* diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx new file mode 100644 index 0000000000..013fe1484b --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx @@ -0,0 +1,137 @@ +--- +sidebar_position: 3 +sidebar_label: Gestion des utilisateurs +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ResetPasswordBasic from './partials/reset-password-basic.mdx'; +import ResetPasswordAdvanced from './partials/reset-password-advanced.mdx'; + +# Gestion des utilisateurs + +Unraid simplifie et sécurise la gestion des utilisateurs sur votre NAS, s'adressant à tout le monde, des débutants aux utilisateurs expérimentés. L'approche simplifiée aide à réduire la confusion tout en garantissant que la sécurité et le contrôle d'accès restent solides. + +:::note[Simplified approche] +Contrairement aux systèmes Linux traditionnels, Unraid offre un modèle utilisateur simplifié : + +- **Administrateur unique (%%root|root-user%%)** : Il n'y a qu'un utilisateur principal, ce qui simplifie les autorisations et renforce la sécurité. +- **Accès centré sur le partage** : L'accent est mis sur le partage des données, rendant cela moins compliqué pour les utilisateurs qui n'ont pas besoin des complexités d'environnements multi-utilisateurs. + +Ainsi, même si vous ne maîtrisez pas Linux, vous pouvez gérer facilement et en toute sécurité votre NAS. +::: + +## Aperçu + +### Utilisateur root + +Unraid fonctionne avec un super-utilisateur unique, connu sous le nom de %%root|root-user%%, qui a un contrôle total sur tout. + +%%Utilisateurs root|root-user%%... + +- Ont un accès complet aux interfaces %%WebGUI|web-gui%%, %%SSH|ssh%% et Telnet. +- Sont responsables de la gestion de tous les comptes utilisateurs et des paramètres. +- Ne peuvent pas accéder directement aux partages de fichiers via **%%SMB|samba%%**, **%%NFS|nfs%%** ou **%%FTP|ftp%%** pour des raisons de sécurité. +- Autoriser [l'authentification par clé %%SSH|ssh%%](../../system-administration/advanced-tools/command-line-interface.mdx#accessing-the-terminal) pour se connecter sans mot de passe. + +
+ ![Utilisateur root](/img/rootuser.png) +
+ +:::important +L'utilisateur %%root|root-user%% est essentiel pour maintenir la sécurité. Assurez-vous toujours qu'un [mot de passe fort](./security-fundamentals.mdx#set-a-strong-root-password) est défini et limitez l'accès %%SSH|ssh%% pour garder votre système sûr. +::: + +### Utilisateurs de partage + +Ces comptes sont conçus pour accéder à des partages spécifiques, sans aucun contrôle au niveau du système. + +Utilisateurs de partage... + +- Peuvent seulement être créés et gérés par l'%%utilisateur root|root-user%%. +- Peuvent accéder aux partages via **%%SMB|samba%%**, **%%NFS|nfs%%** ou **%%FTP|ftp%%** (si activé). +- N'ont pas accès au **%%WebGUI|web-gui%%**, **%%SSH|ssh%%** ou à **Telnet**. + +
+ ![Utilisateur root](/img/shareusers.png) +
+ +--- + +## Ajouter des utilisateurs + +Pour se connecter aux fichiers partagés sur Unraid à partir d'un autre appareil, vous aurez besoin d'un nom d'utilisateur et d'un mot de passe. Ces identifiants sont distincts de ceux que vous pourriez utiliser pour des applications spécifiques exécutées dans des conteneurs, qui ont leurs propres informations de connexion. + +Pour ajouter un utilisateur : + +1. **Accéder à la gestion des utilisateurs** + - Allez à ***Utilisateurs → Accès aux partages*** (ou ***Paramètres → Utilisateurs → Accès aux partages***). + - Cliquez sur **Ajouter un utilisateur**. + +2. **Configurer les identifiants utilisateur** + - **Nom d'utilisateur** : Choisissez un nom unique (comme `john_media`). Utilisez uniquement des lettres minuscules pour éviter les conflits, et gardez-le sous 30 caractères en raison des limites de Windows. + + - **Mot de passe** : Créez un mot de passe fort en utilisant un mélange de lettres, de chiffres et de symboles. Suivez le baromètre de robustesse du mot de passe pour vous guider. + +:::note\[Optionally] + +- **Ajouter une description** : Écrivez une note comme "Accès à la bibliothèque multimédia." +- **Image personnalisée** : Téléchargez une image PNG (comme un avatar d'utilisateur) pour l'identification visuelle. + +::: + +
+ ![Utilisateur root](/img/adduser.png) +
+ +3. Sélectionnez **Ajouter** pour créer l'utilisateur. + +--- + +## Supprimer des utilisateurs + +Vous pouvez facilement supprimer un compte utilisateur dans Unraid lorsqu'il n'est plus nécessaire. + +:::caution +La suppression d'un compte utilisateur est permanente et retire immédiatement l'accès aux partages et ressources partagées. +::: + +Pour supprimer un utilisateur : + +1. Allez dans le menu **Utilisateurs** et cliquez sur le nom du compte utilisateur que vous souhaitez supprimer. +2. Cochez la case intitulée **Supprimer**. Le bouton **Appliquer** deviendra un bouton **Supprimer**. +3. Cliquez sur **Supprimer** pour supprimer l'utilisateur. Un message de confirmation apparaîtra pour valider la suppression. +4. Sélectionnez **Terminé**. + +--- + +## Modifier un utilisateur + +Vous pouvez modifier un compte utilisateur dans Unraid si l'utilisateur a oublié son mot de passe ou a besoin d'un accès différent aux dossiers partagés. + +Pour modifier un compte utilisateur : + +1. Allez à ***Utilisateurs → Accès aux partages*** (ou ***Paramètres → Utilisateurs → Accès aux partages***), et cliquez sur le compte utilisateur que vous souhaitez changer. +2. *(Optionnel)* Dans l'écran **Modifier l'utilisateur**, vous pouvez mettre à jour toute information, sauf le **Nom d'utilisateur**. Pour définir un nouveau **Mot de passe**, tapez-le simplement et confirmez en le retapant. +3. *(Optionnel)* En bas, vous verrez une liste de dossiers (partages) auxquels l'utilisateur peut accéder. Vous pouvez ajuster les paramètres d'accès pour chacun de ces partages, mais vous ne pouvez pas en ajouter de nouveaux. +4. Cliquez sur **Appliquer** pour sauvegarder vos modifications. + +--- + +## Réinitialiser votre mot de passe + +Si vous avez oublié votre mot de passe %%root|root-user%%, ne vous inquiétez pas ! Voici deux méthodes simples pour retrouver l'accès à votre serveur Unraid. Vous aurez besoin d'un accès physique à votre **[périphérique USB](../../system-administration/maintain-and-update/changing-the-flash-device.mdx)** et d'un autre ordinateur. + + + + + + + + + + + +:::tip[Be attentif] +Toute personne ayant un accès physique au USB peut utiliser ces méthodes pour réinitialiser votre mot de passe %%root|root-user%% et obtenir un accès administratif complet. Gardez toujours votre USB en sécurité ! +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx new file mode 100644 index 0000000000..fd03943581 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx @@ -0,0 +1,237 @@ +--- +sidebar_position: 7 +sidebar_label: WireGuard +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import WireGuardConfigureMobile from './partials/wireguard-configure-mobile.mdx'; +import WireGuardConfigureOtherDevices from './partials/wireguard-configure-other-devices.mdx'; + +# WireGuard + +Bien que Tailscale offre une expérience conviviale pour la plupart des utilisateurs, [WireGuard](https://www.wireguard.com/) est une solution VPN robuste intégrée dans Unraid qui brille dans des scénarios avancés de mise en réseau spécifiques. Il est particulièrement utile lorsque vous avez besoin d'un contrôle détaillé sur le routage du VPN ou que vous nécessitez des connexions serveur à serveur ou LAN à LAN sans dépendre de services tiers. Voici quelques scénarios clés où WireGuard excelle. + +

Quand choisir WireGuard

+ +| Scénario | Pourquoi choisir %%WireGuard\|wireguard%% ? | +| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| **Configuration avancée** | Permet des configurations %%VPN Tunnel\|vpn-tunnel%% personnalisées et une intégration avec l'infrastructure réseau existante | +| **Tunnels serveur-à-serveur** | Vous permet de créer des liens cryptés persistants entre les serveurs Unraid | +| **Intégration LAN-à-LAN** | Connecte des réseaux entiers sans impliquer de services intermédiaires | +| **Tâches à forte bande passante** | Offre un minimum de surcharge de protocole pour un débit maximal | + +:::info +Pour la plupart des utilisateurs, [**Tailscale**](../secure-your-server/tailscale.mdx) peut accomplir tout ce que %%WireGuard|wireguard%% peut faire, souvent plus facilement. Il ne nécessite généralement pas de redirection de port ni de configuration manuelle. Cependant, si vous avez besoin de configurations VPN avancées et personnalisées ou avez des exigences de compatibilité spécifiques, opter pour %%WireGuard|wireguard%% peut être une meilleure option pour certains. +::: + +

Types de connexion et cas d'utilisation

+ +Connaître les types de connexion dans %%WireGuard|wireguard%% peut vous aider à décider si c'est le bon choix : + +| Type de connexion | Cas d'utilisation réel | +| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------- | +| Accès à distance au serveur | Accédez à l'Unraid %%WebGUI\|web-gui%%, aux conteneurs Docker, aux %%VM\|vm%%s et aux partages réseau à distance. | +| Accès à distance au LAN | Accédez à tous les appareils de votre réseau local à distance comme si vous étiez sur le réseau local. | +| Accès serveur à serveur | Connectez en toute sécurité deux serveurs Unraid pour le partage de données ou la sauvegarde. | +| Accès LAN-à-LAN | Connectez sans interruption deux LAN entiers pour une communication fluide entre réseaux. | +| Accès serveur hub & spoke | Permettre à plusieurs clients VPN de se connecter entre eux via le serveur. | +| Accès LAN hub & spoke | Permet la communication entre plusieurs LAN via un serveur central. | +| Accès VPN tunnelisé | Dirigez des conteneurs Docker spécifiques et %%VM\|vm%%s via un fournisseur de VPN commercial %%WireGuard\|wireguard%%. | +| Accès en tunnel à distance | Routez de manière sécurisée tout votre trafic Internet via votre serveur Unraid lorsque vous êtes sur des réseaux non sécurisés. | + +## Configuration de WireGuard sur Unraid + +:::note\[Prerequisites] + +- **DDNS (DNS Dynamique):** Configurez DDNS pour un accès fiable si votre IP publique change. Les options populaires incluent [Cloudflare](https://www.cloudflare.com/) (nécessite la propriété d'un domaine), [No-IP](https://www.noip.com/) ou [DuckDNS](https://www.duckdns.org/) (gratuit mais peut connaître des pannes occasionnelles). +- **Configuration du routeur :** + - Activez %%UPnP|upnp%% dans ***Paramètres → Accès à la gestion*** pour la redirection automatique des ports. + - Si %%UPnP|upnp%% n'est pas disponible, redirigez manuellement le port UDP 51820 vers l'IP de votre serveur Unraid. +- **Logiciel client :** Installez %%WireGuard|wireguard%% sur vos appareils ([Windows](https://www.wireguard.com/install/), [macOS](https://apps.apple.com/us/app/wireguard/id1451685025), [iOS](https://apps.apple.com/us/app/wireguard/id1441195209), [Android](https://play.google.com/store/apps/details?id=com.wireguard.android)). + +::: + +

Étape 1 : Générer des clés

+ +1. Accédez à ***Paramètres → Gestion des VPN***. + +
+ ![Gestion des VPN](/img/wg0.png) +
+ +2. Nommez votre tunnel (par exemple, "VPN Maison"). +3. Cliquez sur **Générer une paire de clés** pour créer des clés publiques/privées. + +:::warning +Stockez la clé privée en toute sécurité car elle offre un accès complet au réseau. +::: + +

Étape 2 : Configurez votre point d'extrémité

+ +- **Pour les utilisateurs de DDNS :** Remplacez l'IP dans **Point d'extrémité local** par votre URL DDNS (par exemple, `myhome.duckdns.org`). +- Conservez le port par défaut (`51820`) sauf s'il entre en conflit avec des services existants. + +

Étape 3 : Configurer le transfert de port

+ +- **Utilisateurs de %%UPnP|upnp%% :** Unraid transférera automatiquement les ports si activé dans ***Paramètres → Accès à la gestion***. + +
+ ![UPnP activé](/img/upnp-yes.png) +
+ +- **Configuration manuelle :** Si %%UPnP|upnp%% n'est pas disponible : + 1. Connectez-vous à votre routeur. + 2. Rediriger le port UDP `51820` vers l'IP LAN de votre serveur Unraid. + 3. Utilisez le même port pour les paramètres externes et internes. + +
+ ![UPnP désactivé](/img/upnp-no.png) +
+ +

Étape 4 : Activez votre tunnel

+ +1. Basculer sur **Actif** pour activer %%WireGuard|wireguard%%. +2. Activez **Démarrage automatique** pour exécuter %%WireGuard|wireguard%% au démarrage. + +
+ ![Basculer l'activation](/img/activate.png) +
+ +:::important[Security meilleures pratiques] +- **Accès de confiance uniquement :** L'accès VPN est similaire à l'accès physique au réseau, autorisez donc uniquement les appareils de confiance. +- **Gestion des clés :** Ne partagez jamais de clés privées ; traitez-les comme des mots de passe. +- **Segmentation réseau :** Pour des configurations complexes (Docker/%%VM|vm%%s personnalisés), isolez le trafic VPN à l'aide de VLANs ou de sous-réseaux séparés. +- **Audits réguliers :** Examinez les appareils connectés et les autorisations d'accès tous les trimestres. +::: + +### Définir un pair (client) + +Un pair est un appareil client - comme un téléphone, un ordinateur portable ou un autre serveur - qui se connecte à votre VPN Unraid %%WireGuard|wireguard%%. Définir un pair signifie créer une identité unique et sécuriser des clés pour cet appareil. + +1. Sélectionnez **Ajouter un pair**. + +
+ ![Ajouter un pair](/img/peer-add.png) +
+ +2. Nommez le pair (par exemple, *MonAndroid*). +3. Choisissez le type de connexion initial pour un accès complet au réseau, généralement *Accès à distance au LAN*. +4. Cliquez sur **Générer une paire de clés** pour créer des clés publiques et privées. Conservez la clé privée en sécurité. +5. Facultativement, générez une clé pré-partagée pour une sécurité supplémentaire. +6. Cliquez sur **Appliquer**. + +:::note +Bien que les pairs puissent générer leurs propres clés, laisser Unraid générer les clés simplifie la configuration en fournissant des fichiers de configuration complets. +::: + +:::caution +Ajouter un nouveau pair peut temporairement désactiver le tunnel %%WireGuard|wireguard%%, ce qui peut interrompre votre connexion. Assurez-vous d'avoir accès local à votre serveur avant de faire des changements. +::: + +### Configuration d'un pair (client) + + + + + + + + + + + +### Configuration de votre DNS + +1. Accédez aux appareils en utilisant des adresses IP ou des noms de domaine complets (par exemple, `yourpersonalhash.unraid.net`). + +:::note +Les noms courts comme "tour" ou les entrées DNS gérées par le routeur peuvent ne pas fonctionner via le VPN. +::: + +2. Pour activer la résolution de noms courts : + - Allez dans ***Paramètres → Gestion des VPN*** dans Unraid. + - Basculer du mode **Basique** au mode **Avancé**. + - Entrez l'adresse IP de votre serveur DNS préféré dans le champ **Serveur DNS pair**. + - Sauvegardez les modifications et mettez à jour le fichier de configuration du client. +3. Serveurs DNS recommandés : + - L'adresse IP de votre routeur LAN. + - Serveurs DNS publics comme `8.8.8.8`. + +Cette configuration est particulièrement importante pour le mode **Accès en tunnel à distance**, où le serveur DNS d'origine du client peut être inaccessible. + +:::note +Les adresses %%mDNS|mdns%% (par exemple, `tower.local`) ne fonctionnent que sur le réseau local et pas via le VPN %%WireGuard|wireguard%%. +::: + +### Réseaux complexes + +For most users, the default **Use NAT** setting works out of the box and allows access to Unraid and most LAN devices. However, if you use Docker containers with custom IPs or %%VM|vm%%s with strict networking requirements: + +1. Dans votre configuration de tunnel %%WireGuard|wireguard%%, réglez **Utiliser NAT** sur **Non**. +2. Sur votre routeur, ajoutez une route statique pour le réseau de tunnel WireGuard (par exemple, `10.253.0.0/24`) pointant vers l'IP de votre serveur Unraid. +3. Dans ***Paramètres → Paramètres Docker***, réglez **Accès hôte aux réseaux personnalisés** sur **Activé**. + +### Configurations à éviter + +| Paramètre d'utilisation de NAT | Accès hôte aux réseaux personnalisés | Serveur & Dockers (Pont/hôte) | Machines virtuelles & autres systèmes LAN | Dockers avec IP personnalisée | Notes | +| ------------------------------ | -------------------------------------- | ----------------------------- | ----------------------------------------- | ----------------------------- | ------------------------------------------------------------------------ | +| Oui | Désactivé (Route statique optionnelle) | Accessible | Accessible | Non accessible | Configuration réseau simple; recommandé pour la plupart des utilisateurs | +| Oui | Activé (Route statique optionnelle) | Accessible | Non accessible | Non accessible | Évitez cette configuration | +| Non | Désactivé (Aucune route statique) | Accessible | Non accessible | Non accessible | Évitez; nécessite une route statique pour fonctionner correctement | +| Non | Désactivé (Avec route statique) | Accessible | Accessible | Non accessible | Presque correct; activez l'accès hôte aux réseaux personnalisés | +| Non | Activé (Avec route statique) | Accessible | Accessible | Accessible | Configuration recommandée pour les réseaux complexes | + +## Dépannage de WireGuard + +WireGuard est conçu pour être peu intrusif - si quelque chose ne fonctionne pas, il ne fournira pas de messages d'erreur. Pour dépanner efficacement, vous devriez vérifier systématiquement chaque aspect de votre configuration. + +#### Liste de vérification de connexion + +- ✅ Le tunnel est actif à la fois sur Unraid et sur les appareils clients. *("Actif" signifie que le tunnel a démarré mais n'est pas nécessairement connecté.)* +- ✅ L'URL DDNS pointe vers votre IP publique actuelle et est définie dans **Point d'extrémité local**. +- ✅ Le port UDP correct est transféré de votre routeur vers Unraid, correspondant au port de l'**endpoint local**. +- ✅ Les clients disposent des derniers fichiers de configuration après des modifications côté serveur. +- ✅ Les modifications sont enregistrées avant de visualiser ou de distribuer les configurations de pairs (codes QR/fichiers). + +#### Suggestions supplémentaires de dépannage + +
+ Conseils pour la première configuration - Cliquez pour développer/réduire + + Si vous configurez WireGuard pour la première fois, ces conseils peuvent vous aider à éviter les pièges courants : + + - Configurez votre premier client en utilisant un appareil mobile sur des données cellulaires (pas en Wi-Fi) pour écarter les problèmes de réseau local. + - Utilisez la méthode du code QR pour le transfert de configuration le plus simple. +
+ +
+ Problèmes de connexion et de poignée de main - Cliquez pour développer/réduire + + Si vous ne voyez pas de poignée de main ou ne pouvez pas vous connecter, essayez ces vérifications ciblées : + + - Si vous ne voyez pas de poignée de main, essayez de générer du trafic (par exemple, pinger le serveur) pour déclencher la connexion. + - Désactivez les fonctionnalités d'économie d'énergie, de gestion des données ou d'économie de batterie sur les clients mobiles, car cela peut interférer avec le fonctionnement du VPN. + - Assurez-vous que les réseaux client et serveur utilisent des sous-réseaux différents (par exemple, évitez que les deux utilisent `192.168.1.0/24`). + - Si vous utilisez Cloudflare pour le DDNS, définissez le **statut du proxy** sur **DNS uniquement** (pas **Proxied**). Laissez le temps aux changements DNS de se propager. + - Si vous pouvez vous connecter depuis certains endroits mais pas d'autres, le réseau distant peut bloquer le trafic UDP. %%WireGuard|wireguard%% ne prend actuellement pas en charge TCP en tant que solution de repli. +
+ +
+ Conflits réseau avancés - Cliquez pour développer/réduire + + Si votre configuration réseau est plus complexe, ou si vous suspectez un conflit IP, consultez ces étapes avancées de dépannage : + + - En mode **Avancé**, confirmez que votre **pool de réseau de tunnel local** ne chevauche aucun réseau existant de chaque côté. S'il y a un conflit, passez à un sous-réseau privé différent (par exemple, `10.10.10.0/24`). + - Pour les conteneurs Docker avec IPs personnalisées ou %%VM|vm%%s avec des exigences strictes, voir la section [Réseaux complexes](#complex-networks). +
+ +
+ Récupération d'urgence - Cliquez pour développer/réduire + + Si vous perdez l'accès à l'Unraid %%WebGUI|web-gui%% et devez désactiver le démarrage automatique de %%WireGuard|wireguard%% + + - Supprimez `/boot/config/wireguard/autostart` de votre clé USB et redémarrez. +
+ +\* *"%%WireGuard|wireguard%%" et le logo "%%WireGuard|wireguard%%" sont des marques déposées de Jason A. Donenfeld.* diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json new file mode 100644 index 0000000000..a6b39e592d --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Dépannage", + "position": 5 +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json new file mode 100644 index 0000000000..4776ef5c23 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Problèmes courants", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx new file mode 100644 index 0000000000..955cf3ae46 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx @@ -0,0 +1,204 @@ +--- +sidebar_position: 1 +sidebar_label: Démarrage et échecs de charge +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Démarrage et échecs de charge + +Lorsque votre serveur Unraid ne démarre pas correctement, il peut être difficile d'identifier la cause sans une compréhension claire du processus de démarrage. Suivre ce guide vous permet de diagnostiquer rapidement et de résoudre la plupart des problèmes de démarrage, assurant que votre %%array|array%%, votre %%WebGUI|web-gui%% et vos services soient opérationnels avec un minimum de temps d'arrêt. + +## Préparation du dispositif flash + +Ce sujet est couvert en détail dans la section [Préparer votre périphérique USB](../../getting-started/set-up-unraid/create-your-bootable-media.mdx#prepare-your-usb-device). + +:::caution +Toujours [sauvegarder votre clé USB](../../system-administration/maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device) avant d'effectuer des modifications. Tous les paramètres spécifiques à l'utilisateur, y compris votre clé de licence, sont stockés dans le dossier `config`. Restaurer ce dossier après avoir préparé à nouveau votre clé USB aidera à préserver votre configuration actuelle. +::: + +## Activation du démarrage UEFI + +Les systèmes modernes nécessitent généralement le **mode de démarrage UEFI** pour une sécurité accrue et des temps de démarrage plus rapides. + +Pour configurer le démarrage %%UEFI|uefi%% dans les paramètres BIOS/%%UEFI|uefi%% de votre système : + +1. Entrez dans la configuration BIOS/%%UEFI|uefi%% de votre carte mère au démarrage (généralement en appuyant sur F2, DEL ou ESC) +2. Localiser les options de démarrage ou les paramètres de mode de démarrage +3. Définissez le mode de démarrage sur **UEFI** ou **UEFI avec CSM désactivé** +4. Assurez-vous que le dispositif flash Unraid est sélectionné comme périphérique de démarrage UEFI +5. Enregistrez vos modifications et quittez + +## Comprendre la séquence de démarrage + +La séquence de démarrage Unraid comporte plusieurs étapes : + +
+ 1. Démarrage BIOS - Cliquez pour développer/réduire + + Le firmware BIOS/UEFI initialise le matériel et localise le périphérique amorçable. C'est la base de l'ensemble du processus de démarrage. + + - Le BIOS de la carte mère reconnaît le dispositif flash amorçable Unraid. + - La définition du dispositif flash comme périphérique de démarrage par défaut varie en fonction de votre BIOS; vérifiez le manuel de votre carte mère pour obtenir des conseils. + - Le dispositif flash prend en charge les modes de démarrage **legacy (CSM)** et **%%UEFI|uefi%%**. + - Pour le démarrage %%UEFI|uefi%%, assurez-vous que le dossier `EFI` sur le dispositif flash ne comporte pas de trait d'union (`-`). +
+ +
+ 2. Chargeur Syslinux - Cliquez pour développer/réduire + + Le chargeur de démarrage présente des options de démarrage et charge le noyau Linux en mémoire. Cette étape détermine quel système d'exploitation ou outil de diagnostic sera exécuté. + + - Les entrées du menu de démarrage sont définies dans le fichier `syslinux/syslinux.cfg` sur le dispositif flash. + - Vous pouvez modifier ce fichier via le %%WebGUI|web-gui%% sous ***Main → Configuration de Syslinux***. + - **Memtest86+**, qui est inclus avec les versions actuelles d'Unraid, fonctionne en modes legacy et %%UEFI|uefi%%. Pour les anciennes versions d'Unraid, obtenez une version compatible sur [le site officiel de Memtest](https://www.memtest86.com/) pour %%UEFI|uefi%%. + - Si aucune option n'est sélectionnée, le démarrage par défaut après un délai est utile pour une opération sans tête. +
+ +
+ 3. Noyau Linux - Cliquez pour développer/réduire + + Le noyau Linux s'initialise et commence la détection du matériel. C'est ici que le système d'exploitation prend le contrôle du chargeur de démarrage. + + - **Syslinux** charge le noyau Linux depuis le dispositif flash dans la RAM. + - Vous verrez des messages de console affichant le chargement des fichiers bz\*. + - Les erreurs à cette étape indiquent souvent des problèmes avec le dispositif flash. + - Linux détecte le matériel lors du démarrage. +
+ +
+ 4. Services dépendants du flash - Cliquez pour développer/réduire + + Le périphérique flash devient accessible et des services essentiels commencent à se charger. Cette étape est cruciale pour la configuration et l'accès au réseau. + + - Le dispositif flash est monté sur `/boot`. + - S'il échoue à se monter, vous pouvez voir une invite de connexion, mais cela indique un démarrage incomplet. + - Utilisez la commande `df` pour vérifier si `/boot` est monté. + - Le dispositif flash doit être étiqueté **UNRAID** (en majuscules) pour un montage correct. + - Des pilotes et firmwares additionnels seront disponibles à cette étape. + - La configuration est chargée dans la RAM. + - Les services Linux standard, y compris la mise en réseau et %%WireGuard|wireguard%% VPN (si activé), démarrent ici. +
+ +
+ 5. Plugins - Cliquez pour développer/réduire + + Les extensions tierces et personnalisations sont chargées pour améliorer la fonctionnalité du système. Des problèmes de plugin peuvent empêcher un démarrage réussi. + + - Les plugins installés sont chargés durant cette étape. + - Les options de **démarrage en mode sans échec** peuvent supprimer le chargement des plugins si nécessaire. +
+ +
+ 6. WebGUI - Cliquez pour développer/réduire + + L'interface de gestion web devient disponible, permettant l'administration et la configuration à distance de votre serveur. + + - Le %%WebGUI|web-gui%% démarre à ce point. + - Le fichier `config/go` sur le dispositif flash peut exécuter des commandes utilisateur avant ou après le démarrage du %%WebGUI|web-gui%%. +
+ +
+ 7. Array - Cliquez pour développer/réduire + + Les périphériques de stockage sont montés et rendus disponibles, complétant ainsi le processus de démarrage. C'est ici que vos données deviennent accessibles. + + - Si l'auto-démarrage est activé, le %%array|array%% démarre ici ; sinon, un démarrage manuel sera requis. + - Les disques seront montés en tant que `/dev/diskX` et `/mnt/cache` (si présent). + - Les partages deviennent disponibles sur le réseau en tant que `/mnt/user/sharename`. + - Les conteneurs Docker démarreront dans l'ordre spécifié sur l'onglet Docker, avec des délais personnalisables. + - Les machines virtuelles (%%VMs|vm%%) à démarrage automatique seront également lancées. +
+ +À ce stade, le serveur Unraid est pleinement opérationnel. + +--- + +## Échec du démarrage + +Quand votre serveur ne démarre pas, un dépannage systématique aide à identifier et résoudre rapidement la cause profonde. Suivez ces étapes dans l'ordre pour éviter de manquer des problèmes critiques ou de faire des changements inutiles. Chaque étape s'appuie sur la précédente, alors ne sautez pas même si une étape semble non liée à votre problème spécifique. + +1. Utilisez un port USB 2.0 pour la clé USB si possible. Il est généralement plus fiable et moins sujet aux problèmes que l'USB 3.0. +2. Vérifiez vos paramètres BIOS/%%UEFI|uefi%% pour garantir que le dispositif flash est défini comme périphérique de démarrage principal. +3. Inspectez le dispositif flash pour toute erreur physique ou logique sur un ordinateur Windows ou macOS. +4. Réextraire les fichiers de la version Unraid bz\* sur le périphérique USB pour prévenir toute corruption potentielle. +5. Reconstruisez l'appareil flash en commençant par une copie propre d'Unraid, puis restaurez votre dossier `config`. +6. Essayez le démarrage en [mode sécurisé](../../using-unraid-to/customize-your-experience/plugins.mdx#troubleshooting-with-safe-mode) pour vérifier tout problème lié aux plugins. +7. Testez avec une nouvelle clé USB et effectuez une installation propre de Unraid. Cela aide à déterminer s'il y a des problèmes avec le matériel du serveur. +8. Si nécessaire, transférez votre licence sur un nouveau dispositif flash. + +--- + +## Récupération d'une disquette perdue et de lecteurs de parité inconnus + +:::important +Ce processus de récupération comporte un risque de perte de données si les disques sont incorrectement assignés. Avant de continuer : + +1. **Ne démarrez pas l'array** tant que vous n'êtes pas sûr des affectations de disques +2. **Documentez** quels disques étaient précédemment des disques de parité versus des disques de données +3. **Envisagez de demander de l'aide** sur les [forums Unraid](https://forums.unraid.net/) si vous n'êtes pas sûr + +Si vous avez des sauvegardes récentes ou une documentation de votre configuration d'array, examinez-les en premier. +::: + +Si votre disque de démarrage Unraid échoue et que vous n'avez pas de sauvegarde récente ou de connaissance des disques qui sont en parité, vous pouvez récupérer votre système en utilisant la capacité d'Unraid à reconnaître les disques de données par leurs systèmes de fichiers. Les %%parity-drives|parity-drives%% n'ont pas de système de fichiers valide, ce qui permet de les différencier. + +Unraid identifies data drives by detecting existing valid file systems. %%Parity drives|parity-drives%%, which lack a file system, appear unmountable. This characteristic allows you to distinguish %%parity drives|parity-drives%% from data drives after booting with a new flash device. + +### Procédure de récupération + +Cette procédure vous aide à restaurer la configuration de votre array lorsque vous avez perdu votre disque de démarrage et que vous ne vous souvenez pas des disques qui étaient en parité vs. données. Suivez chaque étape avec soin pour éviter toute perte de données. + +1. Créez un nouveau lecteur de démarrage Unraid. +2. Démarrez le serveur depuis ce nouveau lecteur (ne pas affecter de disques pour le moment). +3. Activez une licence, en utilisant soit un essai soit en transférant une existante. +4. Identifiez les %%parity drives|parity-drives%% en utilisant l'une des méthodes mentionnées ci-dessous. +5. Utilisez ***Outils → Nouvelle configuration*** pour réinitialiser l'%%array|array%% tout en conservant les affectations précédentes si possible. +6. Corrigez les attributions de disques dans l'onglet ***Principal***, en veillant à distinguer entre %%parity|parity%% et disques de données. +7. Démarrez l'%%array|array%% pour valider les affectations de disques. +8. Si la %%parity|parity%% est valide, cochez la case pour Para***ité déjà valide***. Sinon, laissez la %%parity|parity%% se reconstruire. + +:::warning[Multiple disques de parité] +Si vous avez plusieurs %%parity-drives|parity-drives%% et que vous avez dû les identifier en fonction des disques qui n'étaient pas montables, **ne pas** utiliser l'option **Parité est déjà valide**. Il y a une chance sur deux de se tromper dans les affectations, et si vous le faites, votre %%array|array%% peut sembler protégé mais en réalité ne l'est pas. Autorisez toujours la reconstruction de la parité dans ce scénario pour assurer une protection adéquate. +::: + +9. Révisez et ajustez tout inclusion/exclusion de partage utilisateur basé sur les nouvelles affectations. +10. Effectuez un %%parity check|parity-check%% pour vérifier l'intégrité, surtout si la %%parity|parity%% n'a pas été reconstruite. + +--- + +### Identification des disques de parité + +
+ Utilisation de la capacité intégrée d'Unraid (méthode préférée) - Cliquez pour développer/réduire + + Cette méthode ne nécessite pas de plugins, mais elle invalidera la %%parity|parity%%, nécessitant une reconstruction. + + Pour utiliser cette méthode : + + 1. Affectez tous les disques comme disques de données et démarrez-le. + 2. Les %%parity drives|parity-drives%% apparaîtront comme non montables car ils manquent d'un système de fichiers valide. + 3. Confirmez que le nombre de disques non montables correspond à votre nombre de %%parity|parity%%. + 4. Prenez note des numéros de série de ces disques. + 5. Le cas échéant, vous pouvez vérifier les disques de données montés pour confirmer leur ordre. +
+ +
+ Utilisation du plugin Unassigned Devices - Cliquez pour développer/réduire + + Cette méthode basée sur un plugin préserve la validité de la %%parity|parity%% en montant les disques en mode lecture seule. + + Pour utiliser cette méthode : + + 1. Installez le [plugin **Unassigned Devices**](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon) depuis l'onglet ***Apps***. + 2. Montez chaque disque en lecture seule, un à la fois. + 3. Les disques qui échouent à se monter sont probablement des %%parity drives|parity-drives%% (vous ne pouvez pas faire la différence entre parité1 et parité2). + 4. Inspectez les disques de données montés pour identifier leur ordre, si nécessaire. +
+ +Pour plus d'informations, consultez le fil des discussions du plugin [Unassigned Devices](https://forums.unraid.net/topic/55481-unassigned-devices-managing-unassigned-devices-without-rebooting/) dans les forums Unraid. + +--- + +\* *"%%WireGuard|wireguard%%" et le logo "%%WireGuard|wireguard%%" sont des marques déposées de Jason A. Donenfeld.* diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx new file mode 100644 index 0000000000..ec84308318 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx @@ -0,0 +1,333 @@ +--- +sidebar_position: 4 +sidebar_label: Récupération de données +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RepairXfs from './partials/data-recovery/repair-xfs.mdx'; +import RepairBtrfs from './partials/data-recovery/repair-btrfs.mdx'; +import XfsCheckWebGUI from './partials/data-recovery/xfs-check-webgui.mdx'; +import XfsCheckCli from './partials/data-recovery/xfs-check-cli.mdx'; + +# Récupération de données + +Comprendre la protection des données est important lors de la gestion de votre serveur Unraid. Bien qu'Unraid offre une forte protection contre les pannes matérielles courantes, aucun système ne peut garantir une immunité totale contre la perte de données. Cette section fournit des conseils sur les meilleures pratiques pour protéger vos données, reconnaître les problèmes potentiels et récupérer des données lorsque des problèmes surviennent. + +Une récupération de données efficace commence par des stratégies de protection des données solides, qui incluent des sauvegardes régulières, une surveillance proactive et une manipulation soigneuse des configurations des disques et baies. + +--- + +## Fondamentaux de la stratégie de sauvegarde + +Même si Unraid offre une protection contre diverses pannes matérielles, disposer de sauvegardes fiables de vos données cruciales est essentiel. Les sauvegardes sont votre dernier recours contre les échecs catastrophiques, les rançongiciels ou les suppressions accidentelles. + +- **Évaluer les données critiques :** Identifiez les fichiers irremplaçables ou essentiels, tels que les documents personnels, les photos et les vidéos importantes. +- **Plusieurs copies de sauvegarde :** Respectez la règle 3-2-1 : conservez au moins trois copies de vos données sur deux types de supports différents, avec une copie stockée hors site ou dans le cloud. Cela minimise le risque de catastrophes physiques comme les incendies ou le vol. +- **Fréquence de sauvegarde :** Planifiez des sauvegardes régulières pour réduire les risques de perte de données. +- **Protection contre les rançongiciels :** Au moins une copie de sauvegarde doit être hors ligne ou inaccessible pour se protéger contre une éventuelle corruption. +- **Outils de sauvegarde :** Pour Unraid 7.0 et au-delà, il est recommandé d'utiliser [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) pour les sauvegardes automatisées de vos configurations et de votre clé USB dans le cloud. D'autres solutions de sauvegarde populaires incluent : + - **[Duplicati](https://unraid-production-481d40bf.preview.craft.cloud/community/apps?q=Duplicati#r:~:text=of%202%20Apps-,duplicati,-Backup%2C%20Cloud):** Un outil de sauvegarde open-source polyvalent qui propose la déduplication et le chiffrement, prenant en charge les destinations en cloud, locales, USB et à distance. + - **[rclone](https://unraid-production-481d40bf.preview.craft.cloud/community/apps?q=rclone#r:~:text=various%20cloud%20services.-,rclone,-Waseh%27s%20Repository):** Une solution robuste pour synchroniser et sauvegarder les fournisseurs de stockage cloud. + - **[rsync](https://rsync.samba.org/):** Une option efficace pour les sauvegardes locales ou à distance. + - **[borgbackup](https://www.borgbackup.org/):** Un choix pour les utilisateurs avancés intéressés par des sauvegardes dédupliquées et chiffrées. + +Les utilisateurs doivent évaluer leur tolérance au risque et leurs besoins en sauvegarde, mais l'utilisation de l'intégration cloud et de l'automatisation est un bon point de départ pour la plupart des utilisateurs d'Unraid. + +:::tip[Modern stratégie de sauvegarde] +Avec Unraid 7.0 et plus, activez [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) pour les sauvegardes cloud automatisées de votre appareil flash et de votre configuration. Envisagez d'utiliser Duplicati, rclone ou des outils similaires pour les fichiers et partages importants afin de créer des sauvegardes planifiées vers des destinations locales, distantes ou cloud. Testez toujours votre processus de restauration pour vous assurer que vos sauvegardes fonctionneront en cas de besoin. +::: + +:::info[Proactive surveillance et assistance] +- **Activer les notifications :** Configurez les notifications dans ***Paramètres → Notifications*** pour recevoir des alertes immédiates concernant les problèmes système. +- **Consulter des experts :** Si vous n'êtes pas sûr des étapes de récupération, consultez les [forums Unraid](https://forums.unraid.net/) avant toute action. +- **Vérifications régulières de santé :** Surveillez le [SMART data](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx) de votre disque et effectuez des vérifications périodiques du système de fichiers. +::: + +--- + +## Réparation des fichiers systèmes + +:::caution +Utilisez ces instructions strictement pour les disques de données avec une corruption du système de fichiers. Ne les appliquez pas au disque de parité, aux problèmes matériels ou aux disques manquants. + +- Les outils de réparation de système de fichiers sont destinés uniquement à la réparation des disques de données ou de cache ayant des erreurs de système de fichiers ou de montage. +- Le disque de parité n'a **pas** de système de fichiers. L'exécution de tout outil de réparation sur le disque de parité peut le corrompre et entraîner une perte de données irréversible. +::: + +### Nommer l'appareil : chemins et symboles + +Lorsque vous utilisez le **%%WebGUI|web-gui%%**, les chemins des périphériques sont gérés automatiquement. Si vous choisissez de réparer via la ligne de commande, assurez-vous toujours d'utiliser le bon **chemin de partition** : + +| Étiquette | Chemin typique | Utilisation | %%Parity\|parity%% protégé(e) ? | +| ----------------------------- | -------------- | ---------------------------- | ----------------------------------- | +| Disque 7 | /mnt/disk7 | Point de montage Unraid | Oui (si disque de %%array\|array%%) | +| Partition de %%array\|array%% | /dev/md7p1 | Périphérique géré par Unraid | Oui | +| Partition brute | /dev/sdj1 | Accès direct au périphérique | Non | + +:::warning +Ne jamais exécuter d'outils de réparation de système de fichiers sur des disques entiers (comme `/dev/sdj`); utilisez toujours les chemins de partition (comme `/dev/sdj1` ou `/dev/mdXp1` géré par Unraid). + +- Pour les disques %%array|array%%, utilisez toujours le périphérique géré par Unraid (tel que `/dev/md5p1`) pour **préserver la protection %%parity|parity%%**. +- Utiliser la partition brute (par exemple, `/dev/sdj1`) ne mettra pas à jour le %%parity|parity%%, le rendant invalide. +::: + +- Utilisez toujours `/dev/mdXp1` pour les disques %%array|array%% afin de maintenir un %%parity|parity%% valide. +- For non-%%array|array%% drives (like %%cache|cache%%-only devices), use the direct partition path, e.g., `/dev/sdj1`. + +### Choisir la bonne méthode de réparation + +Toutes les versions d'Unraid depuis la **v6.0.0** prennent en charge les réparations de système de fichiers via le %%WebGUI|web-gui%% pour %%XFS|xfs%% et %%BTRFS|btrfs%%. + +Pour la plupart des utilisateurs, la méthode recommandée est : + +1. Ouvrez le %%WebGUI|web-gui%%. +2. Naviguer vers l'onglet **Principal**. +3. Cliquez sur le dispositif approprié %%array|array%% ou %%cache|cache%%. +4. Suivez les invites pour exécuter la vérification intégrée du système de fichiers et la réparation. + +Si vous préférez utiliser la ligne de commande, toujours : + +- Identifiez la bonne partition gérée par Unraid (`/dev/mdXp1`) pour les disques %%array|array%%. +- Utilisez les outils de réparation appropriés pour votre système de fichiers : + - **XFS :** `xfs_repair` + - **BTRFS :** `btrfs scrub` + +:::caution[Know votre système de fichiers] +Utiliser le mauvais outil de réparation peut causer plus de dommages. Vérifiez que votre disque est formaté en tant que **%%XFS|xfs%%**, **%%BTRFS|btrfs%%**, ou avec un autre type de système de fichiers pris en charge avant d'initier des réparations. +::: + +--- + +## Vérification et réparation des disques dans le WebGUI + +Cette section montre comment diagnostiquer et réparer la corruption du système de fichiers sur les disques de données en utilisant les outils intégrés d'Unraid. Des problèmes de système de fichiers peuvent survenir après des arrêts incorrects, des pannes de courant ou des problèmes matériels, mais Unraid fournit des méthodes de réparation sûres qui maintiennent votre protection %%parity|parity%% tout en corrigeant les problèmes sous-jacents. + +### Préparation du test + +| Système de fichiers | Mode de démarrage | Mode de maintenance requis? | Notes | +| ------------------- | ----------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------ | +| %%XFS\|xfs%% | Mode maintenance | Oui | %%L'array\|array%% doit être démarrée en mode de Maintenance (disques non montés) pour la vérification/réparation. | +| %%BTRFS\|btrfs%% | Mode normal | Non | %%L'array\|array%% doit être démarrée normalement, pas en mode Maintenance, pour la vérification/scrub. | + +- Identifiez le système de fichiers pour le lecteur cible : onglet **Principal** → Cliquez sur le nom du lecteur → Vérifiez le **type de système de fichiers**. +- Depuis l'écran principal, cliquez sur le disque à tester ou à réparer. + +### Exécution du test + +1. Par défaut, pour la plupart des systèmes de fichiers (comme %%XFS|xfs%%), une vérification en lecture seule est effectuée (sans modifications), généralement avec l'option `-n` (ne pas modifier). (Pour une sortie plus détaillée avec %%XFS|xfs%%, ajoutez l'option `-v` (verbeux), ce qui donne `-nv`.) +2. Pour %%BTRFS|btrfs%%, vous utiliserez la commande `scrub` au lieu de l'opération `balance`. +3. Cliquez sur **Vérifier** pour démarrer ; utilisez le bouton **Rafraîchir** pour suivre la progression si nécessaire. +4. Si aucune corruption n'est trouvée, passez à [**Après le test et la réparation**](#after-the-test-and-repair). + +### Exécution de la réparation + + + + + + + + + + + +### Après le test et la réparation + +Si vous avez utilisé %%Maintenance Mode|maintenance-mode%%, arrêtez la matrice et redémarrez-la en mode normal pour reprendre les opérations. + +:::tip[What à quoi s'attendre après la réparation] +- Les opérations de réparation et de vérification peuvent prendre jusqu'à une demi-heure ou plus, selon la taille et l'état de votre système de fichiers. +- Une corruption étendue peut créer un dossier `lost+found` contenant des fragments de fichiers et de dossiers récupérés. Examinez et restaurez-les si besoin ; supprimez-les quand c'est terminé. +- Cela est similaire à l'exécution de chkdsk ou scandisk sur Windows et au travail avec des fichiers renommés comme `File0000.chk`, etc. Prenez votre temps pour passer en revue le contenu de `lost+found`. +::: + +--- + +### Vérification et réparation XFS + + + + + + + + + + + +--- + +## Disque(s) non montable(s) + +Si un disque précédemment fonctionnel devient non montable, cela indique généralement une corruption du système de fichiers, souvent causée par un arrêt intempestif ou un échec d'écriture. + +:::danger[Critical action] +Ne formatez jamais un disque non montable via le %%WebGUI|web-gui%% ! Le formatage efface toutes les données et met à jour la %%parité|parity%%, rendant la récupération impossible. +::: + +### Procédure de récupération + +Lorsqu'un disque qui fonctionnait bien auparavant devient soudainement non montable, il est naturel de se soucier de vos données. Ce type de problème est souvent causé par une corruption du système de fichiers, qui peut survenir après un arrêt incorrect, une interruption de courant ou une opération d'écriture ratée. La chose la plus importante à retenir est : **ne formattez pas le disque** si demandé par le %%WebGUI|web-gui%%. Le formatage effacera toutes les données existantes et rendra la récupération difficile, voire impossible. + +Au lieu de cela, votre première étape devrait être de tenter une réparation du système de fichiers. Unraid fournit des outils intégrés pour cela, et suivre la bonne procédure peut souvent restaurer l'accès à vos données avec un risque minimal. + +Voici comment procéder : + +1. Consultez la [section de réparation du système de fichiers](#repair-file-systems). Ce guide vous accompagne tout au long du processus pour votre système de fichiers spécifique. + +2. Pour les disques utilisant le système de fichiers %%XFS|xfs%% (le défaut pour la plupart des configurations Unraid), exécutez : + + ``` + xfs_repair -v /dev/mdXp1 + ``` + + Remplacez **X** par le numéro de disque correct. L'option `-v` fournit des informations détaillées sur la progression. Cette commande vérifie et tente de réparer le système de fichiers sur le disque spécifié. + +3. Pour les disques formatés avec %%BTRFS|btrfs%%, exécutez d'abord une vérification en lecture seule : + + ``` + btrfs check /dev/mdXp1 + ``` + + Remplacez **X** par le numéro de disque correct. Utilisez le mode réparation uniquement si nécessaire et après avoir compris les risques : + + ``` + btrfs check --repair /dev/mdXp1 + ``` + +:::danger +L'option `--repair` est extrêmement dangereuse et peut entraîner une perte de données supplémentaire. Sauvegardez ou créez toujours une image du disque au préalable. Consultez [la documentation](https://btrfs.readthedocs.io/en/latest/btrfs-check.html) et envisagez de demander des conseils supplémentaires si vous n'êtes pas sûr. +::: + +Si ces tentatives de réparation ne résolvent pas le problème ou si vous rencontrez des erreurs que vous ne comprenez pas, il est préférable de faire une pause et de demander de l'aide sur les forums Unraid. De nombreux utilisateurs expérimentés et modérateurs sont disponibles pour vous guider dans les prochaines étapes, et obtenir un deuxième avis avant de poursuivre est toujours plus sûr. + +--- + +## Configuration d’array perdue + +Perdre votre configuration %%array|array%% peut être stressant, mais cela ne signifie pas que vos données sont perdues. Le fichier de configuration %%array|array%% (situé dans `config/super.dat` sur votre clé USB) indique à Unraid comment vos disques sont assignés et lesquels servent de %%parité|parity%%. Si vous avez perdu votre clé USB ou n'avez pas de sauvegarde récente, vous pouvez récupérer votre %%array|array%% en réassignant soigneusement les disques. + +Voici ce qu'il faut faire si vous vous trouvez dans cette situation : + +1. Dans le %%WebGUI|web-gui%%, assignez tous les disques disponibles en tant que disques de données. N'en assignez aucun en tant que %%parité|parity%% pour le moment. +2. Démarrez le %%array|array%%. Les disques précédemment utilisés pour la %%parité|parity%% apparaîtront comme non montables car ils ne contiennent pas de système de fichiers. +3. Notez ou prenez une capture d'écran des numéros de série de ces disques non montables - ce sont vos disques %%parity|parity%%. +4. Arrêtez le %%array|array%%. +5. Allez à ***Outils → Nouvelle Config*** et sélectionnez l'option pour conserver les assignations actuelles. +6. Cochez la case confirmant que vous voulez procéder et cliquez sur **Appliquer**. +7. Retournez à l'onglet **Main** et assignez correctement les disques %%parity|parity%% en utilisant les numéros de série que vous avez notés. +8. Démarrez l’%%array|array%% pour reconstruire le %%parity|parity%% basé sur vos assignations correctes. + +--- + +## Récupérer des données avec ddrescue + +Lorsque les méthodes de récupération Unraid standard, telles que la procédure [de remplacement de disques](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-disks), ne sont pas réalisables en raison de multiples échecs de disques ou d'une %%parity|parity%% invalide, des outils spécialisés comme **ddrescue** peuvent vous aider à récupérer le plus de données possible d'un disque défaillant. + +:::note[Best pratiques pour la récupération de données] +Avant de commencer, souvenez-vous que la récupération de données est un processus délicat. Travaillez toujours à partir d'une copie de votre disque en défaillance lorsque c'est possible, et évitez d'écrire de nouvelles données sur le disque source. Si vos données sont irremplaçables, envisagez des services de récupération professionnels avant de tenter une récupération avancée vous-même. Documentez vos actions et prenez le temps - se précipiter augmente le risque de perte de données permanente. +::: + +La méthode recommandée pour installer ddrescue est via le plugin **[Nerd Tools](https://unraid.net/community/apps?q=nerd+tools#r)** (qui a remplacé le NerdPack déprécié en 2022). + +Pour activer ddrescue : + +1. Installez [Nerd Tools](https://unraid-production-481d40bf.preview.craft.cloud/community/apps?q=nerd+tools#r:~:text=of%201%20App-,Nerd%20Tools,-unRaid.es) depuis l'onglet **Apps** dans le %%WebGUI|web-gui%% d'Unraid. +2. Ouvrez ***Paramètres → Nerd Tools*** et activez **ddrescue**. + +### Cloner un disque en panne + +Vous aurez besoin d'un disque de destination sain qui soit au moins aussi grand que le disque source en défaillance. Assurez-vous qu'aucun des disques n'est monté durant le processus. Revérifiez vos assignations de périphériques avant de commencer ; une mauvaise destination entraînera la réécriture et la destruction de ses données. + +Pour cloner l'intégralité du disque, ouvrez un terminal ou une session %%SSH|ssh%% et exécutez la commande suivante : + +``` +ddrescue -f /dev/sdX /dev/sdY /boot/ddrescue.log +``` + +- Remplacez **X** par la lettre de votre disque source et **Y** par la lettre de votre disque de destination. +- Le fichier `/boot/ddrescue.log` suivra la progression et vous permettra de reprendre si le processus est interrompu. + +Si vous souhaitez cloner directement sur un disque %%array|array%% tout en maintenant la %%parity|parity%%, utilisez l'appareil `md#` et démarrez l’%%array|array%% en mode Maintenance : + +``` +ddrescue -f /dev/sdX1 /dev/md\# /boot/ddrescue.log +``` + +- Remplacez **X** par la lettre de votre disque source (notez le `1` pour la partition). +- Remplacez **#** par le numéro de votre disque de destination. + +:::caution +Vérifiez toujours les assignations de périphériques avant d'exécuter ddrescue. Utiliser une mauvaise destination pourrait entraîner une perte totale de données sur ce disque. +::: + +### Traduire la sortie de ddrescue + +Pendant le processus de récupération, ddrescue affichera en temps réel la progression. + +Voici un exemple de ce que vous pourriez voir lors du premier passage : + +``` +GNU ddrescue 1.27 +ipos: 926889 MB, non-trimmed: 1695 kB, current rate: 95092 kB/s +opos: 926889 MB, non-scraped: 0 B, average rate: 79236 kB/s +non-tried: 1074 GB, bad-sector: 0 B, error rate: 0 B/s +rescued: 925804 MB, bad areas: 0, run time: 3h 14m 44s +pct rescued: 46.28%, read errors: 54, remaining time: 3h 18m +time since last successful read: 0s +Copying non-tried blocks... Pass 1 (forwards) +``` + +:::note[What qu'est-ce que cela signifie ?] +- **ipos/opos** : Positions actuelles de lecture/écriture sur les disques source et de destination. +- **rescued** : Quantité de données copiées avec succès. +- **bad areas/read errors** : Nombre de régions problématiques et d'erreurs de lecture rencontrées. +- **pct rescued** : Pourcentage du disque récupéré jusqu'à présent. +- **remaining time** : Temps estimé avant la fin. +- **Copying non-tried blocks...**: ddrescue fait sa première tentative pour lire tous les secteurs. +::: + +Après la copie initiale, ddrescue travaillera à récupérer les données des secteurs défectueux en effectuant plusieurs passages et parfois en lisant des blocs dans les deux directions. Cette phase peut prendre beaucoup plus de temps, surtout si le disque est gravement endommagé. + +Voici un exemple de sortie pendant cette phase : + +``` +GNU ddrescue 1.27 +ipos: 17878 MB, non-trimmed: 0 B, current rate: 0 B/s +opos: 17878 MB, non-scraped: 362496 B, average rate: 74898 kB/s +non-tried: 0 B, bad-sector: 93696 B, error rate: 102 B/s +rescued: 2000 GB, bad areas: 101, run time: 7h 25m 8s +pct rescued: 99.99%, read errors: 260, remaining time: 25m +time since last successful read: 10s +Scraping failed blocks... (forwards) +``` + +:::note[What's se passe-t-il maintenant ?] +- **Scraping failed blocks...** : ddrescue fait des tentatives répétées pour récupérer les secteurs illisibles. +- **bad areas/read errors** : Ces chiffres peuvent augmenter à mesure que ddrescue découvre plus de dommages, mais l'objectif est de minimiser les données non récupérables. +::: + +### Monter et vérifier le disque récupéré + +Une fois que ddrescue est terminé, vous pouvez essayer de monter le disque de destination. Utilisez le [plugin **Unassigned Devices**](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon) pour un montage facile dans le %%WebGUI|web-gui%%. Si le disque ne monte pas, exécutez l'outil de réparation de système de fichiers approprié, tel que `xfs_repair` ou `btrfs check`. Même si le disque monte, c'est une bonne idée de procéder à une vérification du système de fichiers pour assurer son intégrité. + +Une fois que vous avez récupéré les fichiers, copiez-les dans un endroit sûr sur votre %%array|array%%. Gardez à l'esprit que certains fichiers peuvent être corrompus, surtout si le disque a de nombreux secteurs illisibles. L'utilisation de %%checksums|checksum%% (ou %%BTRFS|btrfs%% avec vérification intégrée) peut vous aider à identifier les fichiers endommagés. + +### Identifier les fichiers corrompus sans sommes de contrôle + +Si vous n'avez pas de sommes de contrôle, vous pouvez toujours identifier les fichiers affectés par des secteurs défectueux en utilisant le mode remplissage de ddrescue : + +1. Créez un fichier temporaire avec une chaîne unique : + + ``` + printf "Unraid " > ~/fill.txt + ``` + +2. Remplissez les blocs défectueux sur le disque cloné avec cette chaîne : + + ``` + ddrescue --fill-mode='-' ~/fill.txt /dev/sdY /boot/ddrescue.log + ``` + + Remplacez **Y** par le disque de destination et utilisez le fichier de carte ddrescue existant. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx new file mode 100644 index 0000000000..f80bfa661e --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx @@ -0,0 +1,86 @@ +--- +sidebar_position: 5 +sidebar_label: Dépannage de Docker +--- + +# Dépannage de Docker + +:::info +Cette page offre des conseils de dépannage spécifiquement pour les conteneurs Docker sur Unraid, gérés par l'équipe Unraid. Pour un dépannage avancé, des détails techniques approfondis ou des sujets au-delà de l'implémentation spécifique à Unraid, veuillez vous référer à la [documentation officielle de Docker](https://docs.docker.com/). +::: + +Docker facilite l'exécution d'une variété d'applications sur votre serveur Unraid, mais des problèmes peuvent survenir, tels que des conteneurs qui ne démarrent pas, des fichiers d'image Docker corrompus ou des problèmes de réseau. Cette page aborde certains problèmes courants liés à Docker sur Unraid et propose les meilleures pratiques pour les résoudre efficacement. + +--- + +## Recréer le fichier image Docker + +Un fichier d'image Docker corrompu (`docker.img`) est un problème courant, souvent causé par le pool de %%cache|cache-pool%% à court d'espace ou un arrêt non propre. Heureusement, un conteneur bien configuré stocke toutes les données variables en dehors du fichier image (généralement dans le partage `appdata`), vous pouvez donc recréer l'image sans perdre vos configurations d'application ou données. + +Pour recréer le fichier image Docker : + +1. Allez dans ***Settings → Docker*** dans le %%WebGUI|web-gui%%. +2. Réglez **Activer Docker** sur **Non** et cliquez sur **Appliquer** pour arrêter le service Docker. +3. Sélectionnez l'option pour supprimer le fichier vdisk Docker, puis cliquez sur **Appliquer**. Vous pouvez également supprimer manuellement le fichier si nécessaire. +4. Confirmez l'emplacement et le nom de fichier pour le nouveau fichier vdisk Docker. Ce paramètre inclut à la fois le chemin d'accès au dossier et le nom du fichier. +5. Définissez la taille souhaitée pour le nouveau fichier image. La taille par défaut est généralement suffisante pour la plupart des utilisateurs. +6. Réglez **Activer Docker** sur **Oui** et cliquez sur **Appliquer**. Unraid créera et formatera un nouveau fichier `docker.img` en utilisant %%BTRFS|btrfs%%. + +Vous êtes maintenant prêt à réinstaller vos conteneurs en utilisant leurs paramètres sauvegardés. + +--- + +## Réinstaller des applications Docker + +Unraid sauvegarde automatiquement un modèle pour chaque conteneur installé sur votre clé USB. Ces modèles stockent votre configuration, facilitant ainsi la restauration des conteneurs après la recréation du fichier d'image Docker. + +Pour réinstaller vos conteneurs : + +1. Allez à l'onglet **Apps** dans le %%WebGUI|web-gui%%. +2. Ouvrez la section **Applications Précédentes**. +3. Sélectionnez les conteneurs que vous souhaitez réinstaller. +4. Procédez à l'installation. Unraid retéléchargera chaque conteneur et appliquera automatiquement vos paramètres précédents. + +:::important +Ce processus restaure vos conteneurs à leur état précédent, à condition que toutes les données variables soient mappées en dehors du fichier image Docker (par exemple, dans le partage `appdata`). +::: + +:::tip +Si un conteneur ne démarre pas après la réinstallation, vérifiez ses journaux dans le menu contextuel de l'onglet **Docker** pour des messages d'erreur et des indices de dépannage. +::: + +:::note +Vérifiez que tous les chemins hôtes mappés existent et ont les bonnes permissions après avoir restauré vos conteneurs. Les mappages incorrects ou les permissions sont une cause courante de problèmes de démarrage. +::: + +--- + +## Restaurer les réseaux personnalisés de Docker + +Les réseaux Docker personnalisés ne persistent pas si le fichier image Docker est supprimé. Avant de supprimer l'image, documentez vos noms de réseau personnalisés en ouvrant un terminal et en exécutant : + +``` +docker network ls +``` + +Notez les noms de tous les réseaux que vous avez créés (à l'exclusion des réseaux par défaut `bridge`, `host`, et `none`). + +Pour restaurer les réseaux personnalisés : + +1. Après avoir recréé le fichier image Docker, recréez chaque réseau personnalisé en utilisant : + + ``` + docker network create + ``` + + Remplacez `` par le nom exact que vous avez noté plus tôt. + +2. Mettez à jour vos conteneurs pour utiliser les réseaux restaurés si nécessaire. + +:::note +Vous pouvez activer l'accès hôte aux réseaux personnalisés sous ***Settings → Docker*** en réglant **Accès hôte aux réseaux personnalisés** sur **Activé** si votre configuration l'exige. +::: + +:::tip +Si les conteneurs ne peuvent pas communiquer comme prévu après la restauration, inspectez vos paramètres de réseau Docker pour des conflits ou des problèmes de connectivité. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx new file mode 100644 index 0000000000..e39c9d80c7 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx @@ -0,0 +1,7 @@ +- Utilisez `btrfs scrub` dans le %%WebGUI|web-gui%% pour rechercher et réparer certaines erreurs. +- Sur les disques uniques, le scrubbing peut détecter mais ne pas corriger certaines erreurs ; si c'est le cas, envisagez de copier les données et de reformater le disque ou le pool. + +:::note +- Les outils de réparation actuels pour %%BTRFS|btrfs%% peuvent ne pas corriger toutes les corruptions ; consultez la documentation Unraid pour des outils mis à jour si nécessaire. +- Pour plus de détails sur le scrubbing et la récupération, reportez-vous à la documentation respective %%BTRFS|btrfs%% ou aux forums Unraid pour obtenir des conseils. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx new file mode 100644 index 0000000000..66e1ec037b --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx @@ -0,0 +1,16 @@ +À partir d'Unraid 7.0, la réparation du système de fichiers XFS est maintenant entièrement automatisée via le WebGUI : + +1. **Vérification initiale** : Cliquez sur le bouton **VÉRIFIER** (aucune option à entrer) +2. **Résultats de la vérification** : + - **Aucune corruption détectée** : Affiche "aucune corruption du système de fichiers détectée" et le bouton **VÉRIFIER** reste + - **Corruption détectée** : Affiche "corruption du système de fichiers détectée" et un bouton **RÉPARER** apparaît +3. **Processus de réparation** : Cliquez sur **RÉPARER** pour réparer automatiquement le système de fichiers +4. **Actions supplémentaires** : Si nécessaire, un bouton **ZERO LOG** peut apparaître +5. **Achèvement** : Affiche "système de fichiers réparé" lorsque le processus est terminé + +Ce système automatisé élimine le besoin pour les utilisateurs d'entrer manuellement des options de réparation et garantit que la séquence de réparation correcte est suivie. + +:::note +- Les réparations maintiennent la protection %%parity|parity%% et peuvent prendre un temps considérable. +- Les options %%WebGUI|web-gui%% et ligne de commande sont prises en charge pour la réparation %%XFS|xfs%% (commandes ci-dessous). +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx new file mode 100644 index 0000000000..1e3a5c6268 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx @@ -0,0 +1,12 @@ +À la console ou via %%SSH|ssh%%, exécutez : + +``` +xfs_repair -v /dev/mdXp1 +``` + +Remplacez **X** par le bon numéro de disque (par exemple, `md1p1` pour Disque 1). + +- Examinez le rapport de réparation pour des étapes de remédiation supplémentaires si nécessaire. Si seuls des problèmes mineurs sont présents, exécuter `-v` est généralement suffisant. +- Si la réparation produit un répertoire `lost+found`, examinez et gérez comme ci-dessus. +- %%Parity|parity%% est maintenu pendant la réparation. +- Une fois terminé, arrêtez le %%array|array%% et redémarrez en mode normal. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx new file mode 100644 index 0000000000..7799c41a10 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx @@ -0,0 +1,7 @@ +1. Utilisez le %%WebGUI|web-gui%% pour les disques %%array|array%% formatés en %%XFS|xfs%%. +2. Démarrez le %%array|array%% en %%Maintenance Mode|maintenance-mode%% (non monté). +3. Depuis l'onglet Principal, sélectionnez le disque et ouvrez **Vérifier l'état du système de fichiers**. +4. Par défaut, une vérification utilise `-n` (non modifiant); pour plus de sorties, ajoutez `-v` pour `-nv`. +5. Pour réparer, retirez le drapeau `-n` pour permettre les corrections. + +Le processus %%WebGUI|web-gui%% maintient la protection %%parity|parity%% pendant la réparation. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx new file mode 100644 index 0000000000..cdc666751e --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx @@ -0,0 +1 @@ +Le statut de %%array|array%% est stocké sur votre dispositif USB. Si la clé USB devient indisponible ou passe en mode lecture seule, Unraid ne peut pas mettre à jour le statut d'arrêt, même si l'%%array|array%% s'arrête correctement. Cela entraîne la détection d'un arrêt incorrect au prochain démarrage. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx new file mode 100644 index 0000000000..95b4429eff --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx @@ -0,0 +1,5 @@ +Unraid attend que toutes les sessions terminales ou SSH ouvertes se ferment lors de l'arrêt. Si ces sessions restent actives et que le minuteur d'arrêt expire, un arrêt forcé se produit. + +:::tip +Le plugin [Dynamix Stop Shell](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository) peut automatiquement fermer les sessions bash ou SSH persistantes, aidant ainsi à garantir une fermeture en douceur. Cependant, soyez prudent si des opérations d'écriture sont en cours sur le %%array|array%%. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx new file mode 100644 index 0000000000..d36927224e --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx @@ -0,0 +1,5 @@ +Les interruptions de courant sont l'une des principales raisons des arrêts non propres. Protégez votre système avec un onduleur configuré correctement qui peut arrêter automatiquement Unraid avant que la batterie ne se décharge. + +:::note +Unraid prend en charge la plupart des unités UPS utilisant le protocole %%apcupsd|apcupsd%% (APC et CyberPower sont généralement compatibles). Si votre UPS n'est pas pris en charge, envisagez d'utiliser le plugin Network UPS Tools (NUT) de Community Applications. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx new file mode 100644 index 0000000000..9babbcbe98 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx @@ -0,0 +1,228 @@ +--- +sidebar_position: 3 +sidebar_label: Systèmes et stabilité des pannes +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Systèmes et stabilité des pannes + +Les pannes du système et les problèmes de stabilité peuvent être difficiles à diagnostiquer et résoudre. Ils proviennent souvent de défaillances matérielles, d'erreurs de configuration ou de conflits au sein du logiciel. Cette section vous guidera à travers les causes courantes, les étapes de diagnostic, et les meilleures pratiques pour aider à maintenir la stabilité de votre serveur Unraid. + +--- + +## Problèmes de mémoire vive (RAM) + +Les problèmes de mémoire figurent parmi les causes les plus fréquentes de l'instabilité du système et de la corruption des données. La RAM peut s'user avec le temps, entraînant des erreurs imprévisibles souvent difficiles à diagnostiquer. Cette section explique comment identifier et résoudre les problèmes de stabilité liés à la mémoire. + +Les symptômes courants des problèmes de RAM incluent : + +- Pannes de système inexpliquées ou gels +- Corruption de données dans les fichiers ou %%array|ensemble%% +- Erreurs aléatoires des applications +- Instabilité du système sous charge +- Échecs de %%parity checks|vérifications de parité%% + +### Test de la RAM + +Les tests de mémoire sont essentiels pour diagnostiquer les problèmes de stabilité. Le menu de démarrage d'Unraid inclut Memtest86+ pour des tests complets de la RAM, fonctionnant à la fois sur les systèmes Legacy et %%UEFI|uefi%%. + +Pour tester votre RAM : + +1. Redémarrez votre serveur et sélectionnez **Memtest86+** dans le menu de démarrage. +2. Laissez le test tourner pendant au moins 2 à 4 heures pour une couverture approfondie. +3. Surveillez les messages d'erreur ou les tests échoués. + +:::note[Other Outils de test de RAM] +- [**MemTest86+**](https://www.memtest.org/): Outil open source inclus avec Unraid +- [**MemTest86**](https://www.memtest86.com/): Outil commercial avec support pour un matériel moderne +- [**Test RAM Karhu**](https://www.karhusoftware.com/): Un outil payant mais très efficace basé sur Windows qui peut détecter des erreurs plus rapidement que les méthodes traditionnelles, avec des taux de détection de 95,67% en 30 minutes (idéal pour les systèmes DDR5) +- [**HCI MemTest**](https://hcidesign.com/memtest/): Testeur populaire, gratuit et basé sur Windows +- [**Prime95**](https://prime95.net/): Valide simultanément la stabilité de la RAM et du CPU +::: + +:::important[If vous trouvez des erreurs de RAM] +Si Memtest86+ montre des erreurs, essayez de réajuster les modules RAM et de relancer le test. Testez chaque barrette de RAM individuellement pour identifier les modules défectueux. Consultez la documentation de votre carte mère pour connaître les vitesses et configurations RAM prises en charge et évitez de mélanger différentes marques ou vitesses de RAM pour minimiser les problèmes de compatibilité. +::: + +### Overclocker la RAM + +L'overclocking de la RAM peut avoir un impact significatif sur la stabilité du système. De nombreux utilisateurs souhaitent faire fonctionner leur RAM à la vitesse maximale spécifiée par le fabricant, mais les combinaisons de cartes mères et de processeurs ont souvent des vitesses RAM maximales fiables inférieures à celles pour lesquelles la RAM est conçue. + +:::caution[RAM risques et recommandations d'overclocking] +**Achat :** Lorsque c'est possible, achetez toujours des RAM qui figurent sur la liste QVL (Qualified Vendor List) de votre carte mère, et non sur celle du fabricant de RAM. Cela garantit une meilleure compatibilité et stabilité. + +**Les profils Intel XMP et AMD AMP sont des overclocks.** Pour une meilleure stabilité, faites toujours fonctionner la RAM à des vitesses SPD, et non à des vitesses XMP/AMP. + +**Risques de l'overclocking :** + +- Instabilité du système et pannes aléatoires +- Corruption des données et erreurs de système de fichiers +- Durée de vie réduite du matériel +- Incompatibilité avec d'autres composants + +**Dépannage :** Si Memtest86+ réussit mais que vous rencontrez toujours des problèmes, désactivez XMP/AMP et essayez à nouveau. La différence de performance est généralement minime, mais l'amélioration de la stabilité peut être significative. +::: + +

Meilleures pratiques

+ +1. Vérifiez toujours les spécifications de votre carte mère et de votre CPU avant de tenter un overclocking. +2. **Pour une stabilité maximale :** Désactivez les profils XMP/AMP et réglez la RAM sur les vitesses par défaut SPD. +3. Commencez avec des paramètres prudents et augmentez progressivement. +4. Testez la stabilité avec Memtest86+ après chaque modification. +5. Si vous remarquez une instabilité, revenez immédiatement aux vitesses par défaut ou plus basses. +6. Considérer le compromis entre performance et stabilité pour les environnements serveur. + +## Facteurs critiques de stabilité + +La stabilité du système repose sur plus que la seule performance de la RAM ou du CPU. Plusieurs composants matériels et logiciels travaillent ensemble pour maintenir un fonctionnement fiable. Cette section couvre les domaines clés qui influencent la stabilité de votre serveur Unraid et fournit des étapes concrètes pour prévenir et résoudre les problèmes. + +La stabilité du système dépend généralement de : + +- La qualité et la fiabilité de l'alimentation électrique +- Une gestion thermique adéquate +- La santé des disques et les performances en I/O +- Compatibilité des plugins et des applications +- Versions actuelles du firmware et du BIOS +- Contrôle proactif et maintenance + +### Fiabilité de l'alimentation électrique + +
+ Cliquer pour développer/réduire + + Une alimentation électrique stable et suffisante est cruciale pour le fonctionnement ininterrompu du serveur. Les problèmes d'alimentation sont souvent négligés mais peuvent causer les problèmes de stabilité les plus frustrants. + + Les problèmes courants liés à l'alimentation incluent : + + - Pannes de système aléatoires ou gels + - Corruption de données lors des écritures + - Arrêts soudains sans avertissement + - Pannes de composants matériels + - Performance incohérente + +

Prévention et maintenance

+ + L'entretien proactif de l'alimentation électrique prévient les problèmes de stabilité les plus courants. Des vérifications régulières et une sélection appropriée des composants peuvent éviter des temps d'arrêt coûteux et des pertes de données. + + 1. Utilisez toujours une alimentation de haute qualité avec une capacité adéquate pour votre matériel. + 2. **Critique :** Assurez-vous que votre alimentation peut supporter un démarrage simultané de TOUS les périphériques de stockage attachés. Le courant nominal du rail 12V doit tenir compte du courant de démarrage de tous les disques à la fois, et non de manière échelonnée. + 3. Évitez les répartiteurs d'alimentation autant que possible. Ils peuvent provoquer des chutes de tension et de l'instabilité, surtout lors d'événements à haut courant comme le démarrage des disques. + 4. Envisagez des alimentations redondantes pour les systèmes d'entreprise et multi-baies. + 5. Assurez-vous que chaque unité d'alimentation est correctement insérée et connectée. + 6. Surveillez les indicateurs de santé de l'alimentation (comme les LEDs AC OK) si disponibles. + 7. Remplacez immédiatement les unités défaillantes pour éviter les temps d'arrêt. + 8. Vérifiez régulièrement que tous les câbles d'alimentation sont sécurisés. + 9. Vérifiez que les circuits ne sont pas surchargés. +
+ +### Gestion thermique et surchauffe + +
+ Cliquer pour développer/réduire + + La surchauffe est l'une des principales causes de défaillance matérielle et de comportement erratique du serveur. Les problèmes thermiques peuvent amener les composants à réduire leur performance ou à tomber en panne complètement. + + Les signes de problèmes thermiques incluent : + + - Accélération ou diminution des performances du système + - Pannes aléatoires sous forte charge + - Bruit anormal des ventilateurs ou comportement inhabituel de refroidissement + - Pannes de composants matériels + - Comportement système incohérent + +

Solutions de refroidissement et meilleures pratiques

+ + Un refroidissement approprié est essentiel pour maintenir la stabilité du système et prévenir le throttling thermique. Ces pratiques aident à s'assurer que votre serveur fonctionne dans des plages de température sûres. + + 1. Assurez-vous que votre serveur est placé dans un endroit bien ventilé. + 2. Maintenez des températures ambiantes contrôlées (idéalement 18-24°C/64-75°F). + 3. Utilisez des solutions de refroidissement adéquates (ventilateurs de haute qualité, climatisation montée en baie). + 4. Surveillez les températures du système à l'aide de capteurs matériels. + 5. Nettoyez régulièrement la poussière et les débris des composants de refroidissement. + 6. Évitez de placer les serveurs dans des espaces confinés ou mal ventilés. + 7. Envisagez un refroidissement supplémentaire pour les systèmes haute performance. + + Surveiller les températures de manière proactive aide à identifier les problèmes de refroidissement avant qu'ils ne causent une instabilité du système. Utilisez les capteurs de température intégrés d'Unraid ou des outils de suivi matériel compatibles avec votre système. +
+ +### Santé des disques et erreurs I/O + +
+ Cliquer pour développer/réduire + + Les erreurs de disque, qu'elles soient dues à des disques vieillissants ou à des défaillances soudaines, peuvent perturber la stabilité du système et compromettre les données. Les problèmes d'E/S se manifestent souvent par des problèmes de performance avant de causer des pannes complètes. + + Les symptômes des problèmes de disque incluent : + + - Charge serveur élevée ou performances lentes + - Échecs de %%parity checks|vérifications de parité%% + - Corruption des données ou erreurs de lecture/écriture + - Activité ou bruit inhabituel du disque + - Gel du système pendant les opérations sur disque + +

Maintenance préventive

+ + Un entretien régulier aide à détecter les problèmes de disque avant qu'ils ne causent des pertes de données ou une instabilité du système. Ces mesures proactives peuvent considérablement prolonger la durée de vie des disques et maintenir les performances. + + 1. Surveillez régulièrement les données %%SMART|smart%% du disque à l'aide des [outils de santé du disque](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx) intégrés d'Unraid. + 2. Run periodic [%%parity checks|parity-check%%s](../../using-unraid-to/manage-storage/array-configuration.mdx#parity--read-checks) to ensure data integrity. + 3. Surveillez les températures et les métriques de performance des disques. + 4. Veillez à bien ventiler et refroidir les disques. + +

Lorsque des problèmes surviennent

+ + Une réponse rapide aux problèmes de disque peut prévenir les pertes de données et minimiser les temps d'arrêt. Suivez ces étapes de manière systématique pour identifier et résoudre les problèmes. + + 1. Remplacez rapidement les disques défaillants pour éviter les pertes de données. + 2. Examinez l'état du câblage, de l'alimentation électrique et du contrôleur de disque. + 3. Vérifiez l'absence de connexions lâches ou de câbles endommagés. + 4. Envisagez d'exécuter des tests %%SMART|smart%% étendus pour les disques suspects. + 5. Surveillez les journaux système pour détecter les schémas d'erreurs I/O. +
+ +### Stabilité des applications et des plugins + +
+ Cliquer pour développer/réduire + + La flexibilité d'Unraid provient de son support pour les plugins et les conteneurs Docker. Cependant, les plugins tiers peuvent introduire de l'instabilité, surtout s'ils sont obsolètes ou incompatibles avec votre version actuelle d'Unraid. + + Lors du dépannage... + + - Utilisez le [Mode sans échec](../../using-unraid-to/customize-your-experience/plugins.mdx#troubleshooting-with-safe-mode) pour désactiver temporairement les plugins et identifier la source des problèmes. + - Privilégiez les conteneurs Docker aux plugins pour des fonctionnalités supplémentaires, car les conteneurs offrent une meilleure isolation du système d'exploitation de base et sont moins susceptibles de causer des problèmes à l'échelle du système. + - Mettez à jour ou supprimez régulièrement les plugins inutilisés ou non pris en charge pour maintenir la stabilité. +
+ +### Mises à jour du firmware et du BIOS + +
+ Cliquer pour développer/réduire + + Un firmware ou un BIOS obsolète peut entraîner une instabilité, des vulnérabilités de sécurité et des problèmes de compatibilité matérielle. Des mises à jour régulières sont essentielles pour maintenir la stabilité et la sécurité du système. + + - Planifiez des vérifications régulières des mises à jour de firmware et BIOS pour votre carte mère et pour les composants critiques. + - Sauvegardez toujours votre configuration avant de procéder à une mise à jour, et si possible, testez les mises à jour dans un environnement contrôlé. + - Documentez votre processus de mise à jour et examinez-le de temps en temps pour vous assurer de suivre les meilleures pratiques. + + Maintenir votre firmware système à jour aide à éviter des pannes inattendues et à débloquer de nouvelles fonctionnalités matérielles. + + :::tip[Recommandations] + - Utilisez les outils du fabricant pour des mises à jour sans risque, tels que [ASUS Armoury Crate](https://www.asus.com/supportonly/armoury%20crate/helpdesk_download/), [Gigabyte @BIOS](https://www.gigabyte.com/Support/Consumer/Download), ou [MSI Center](https://www.msi.com/Landing/MSI-Center). + - Vérifiez les paramètres du BIOS de votre carte mère pour les options de mise à jour automatique si disponibles. + ::: +
+ +### Surveillance proactive du système + +
+ Cliquer pour développer/réduire + + Une surveillance cohérente est essentielle pour la détection précoce des problèmes. + + - Activez la [journlaisation persistante](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx) dans Unraid pour conserver les journaux lors des redémarrages. + - Utilisez des outils de surveillance du système pour suivre les températures, les tensions et l'état des disques. Configurez des alertes pour les seuils critiques afin d'agir avant que des problèmes mineurs ne s'aggravent. + - Réviser régulièrement les journaux système vous permet de repérer les motifs et de traiter les causes sous-jacentes avant qu'elles ne conduisent à des interruptions de service. +
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx new file mode 100644 index 0000000000..c102b05363 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx @@ -0,0 +1,150 @@ +--- +sidebar_position: 2 +sidebar_label: Arrêts imprévus +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import UncleanShutdownsPower from './partials/unclean-shutdowns/unexpected-power-loss.mdx'; +import UncleanShutdownsFlash from './partials/unclean-shutdowns/flash-drive-failure.mdx'; +import UncleanShutdownsTerminal from './partials/unclean-shutdowns/open-terminal-sessions.mdx'; + +# Arrêts imprévus + +Un arrêt inopiné se produit lorsque Unraid détecte que le %%array|array%% n'a pas été correctement arrêté avant que le système ne s'éteigne. Cette situation peut déclencher un %%parity check|parity-check%% automatique lors du prochain démarrage pour garantir l'intégrité des données. + +:::important[Recommendations pour prévenir les arrêts non propres] +Prendre des mesures proactives peut vous aider à éviter ou à identifier les arrêts imprévus : + +- **Utilisez un onduleur** : Gardez votre serveur connecté à un appareil d'alimentation sans interruption (UPS) et configurez-le pour initier un arrêt contrôlé lorsque l'alimentation de la batterie est faible. +- **Tentez un arrêt en douceur :** Si votre serveur ne répond pas, appuyez brièvement sur le bouton d'alimentation pour initier un arrêt sécurisé. Ne maintenez pas le bouton enfoncé, car cela provoquerait une coupure d'alimentation brutale et entraînerait un arrêt inopiné. +- **Activez la journalisation persistante :** Allez dans ***Paramètres → Serveur Syslog*** pour activer la journalisation qui persiste après un redémarrage. Voir [Journalisation persistante (serveur Syslog)](../diagnostics/capture-diagnostics-and-logs.mdx#persistent-logs-syslog-server) pour plus de détails. +- **Joindre des diagnostics pour le support :** Si un arrêt non sécurisé se produit, Unraid tentera de sauvegarder les diagnostics dans `/log/diagnostics.zip` sur votre périphérique flash. Joignez ce fichier à vos publications dans le forum lorsque vous demandez de l'aide. +::: + +:::tip[UPS meilleures pratiques de configuration] +Un onduleur bien configuré est votre meilleure défense contre les arrêts imprévus dus à une perte d'alimentation. + +- **Connectez l'onduleur via USB** à votre serveur Unraid. +- **Activez le support de l'onduleur** dans ***Paramètres → Paramètres de l'onduleur***. +- **Configurer les délais d'arrêt :** Configurez l'onduleur pour déclencher un arrêt contrôlé avant que la batterie ne soit faible. Ajustez les seuils de « temps d'exécution restant de la batterie » ou « niveau de charge de la batterie » pour laisser suffisamment de temps à Unraid pour [arrêter le %%array|array%%](../../using-unraid-to/manage-storage/array-configuration.mdx#startstop-the-array) et pour éteindre en toute sécurité. +- **Testez votre configuration :** Simulez une perte de puissance pour garantir que l'onduleur et Unraid réagissent correctement. + +Consultez le [plugin NUT](https://unraid.net/community/apps/c/plugins/p4?srsltid=AfmBOop675PrJQW4iqb4JBN3GyPpwDDiSmnZReq78t27XyxkFdMX8inO#:~:text=NUT%20%2D%20Network%20UPS%20Tools) pour une compatibilité étendue avec des modèles UPS avancés ou du matériel non pris en charge. +::: + +## Événements qui causent des arrêts imprévus + +Comprendre les principales causes des arrêts inopinés vous aide à les prévenir. Explorez les onglets ci-dessous pour plus de détails sur chaque scénario. + + + + + + + + + + + + + + + +--- + +## Configurer les délais d'arrêt + +La configuration appropriée des délais d'arrêt est essentielle pour garantir que votre serveur Unraid peut arrêter tous les services efficacement, évitant ainsi les arrêts inopinés, notamment en cas de panne de courant ou de maintenance. Chaque composant de votre système - %%VM|vm%%s, conteneurs Docker, et le %%array|array%% global - a son propre paramètre de délai qui peut être ajusté. + +### Paramètres de délai d'attente recommandés + +| Paramètre | Par défaut | Minimum recommandé | Où configurer | +| ----------------------------------- | ---------- | -------------------------------------------------- | --------------------------------------------------------- | +| Délai d'arrêt de %%VM\|vm%% | 60s | 300s (5 min) | ***Paramètres → Gestionnaire de VM → Arrêt VM (Avancé)*** | +| Délai d'arrêt des conteneurs Docker | 10s | 30–60s | ***Paramètres → Docker (Avancé)*** | +| Délai d'arrêt général | 90s | 3 × délai de %%VM\|vm%% + délai de Docker + 15–30s | ***Paramètres → Paramètres disque → Délai d'arrêt*** | + +### Délai des machines virtuelles + +
+ Cliquer pour développer/réduire + + Unraid arrête d'abord toutes les machines virtuelles configurées (%%VMs|vm%%) avant d'interrompre les conteneurs Docker ou l'%%array|array%% elle-même. Le délai d'arrêt de la VM détermine combien de temps Unraid attend que chaque %%VM|vm%% s'arrête correctement. + +

Où définir

+ + - ***Paramètres → Gestionnaire de VM → Arrêt VM*** (vue Avancée activée) + +

Considérer

+ + - %%VMs|vm%% sous Windows peuvent prendre plus de temps à s'arrêter, surtout si des mises à jour sont en attente ou si la %%VM|vm%% est en veille/hibernation. + - Si le délai est trop court, les %%VMs|vm%% s'arrêteront de force, risquant une perte de données ou une corruption. + +

Bonne pratique

+ + Réglez le délai sur au moins 300 secondes (5 minutes) pour les %%VMs|vm%% Windows. Planifiez les mises à jour pour qu'elles s'exécutent au démarrage, et non à l'arrêt, afin d'éviter les retards. +
+ +### Délai des conteneurs Docker + +
+ Cliquer pour développer/réduire + + Après les %%VMs|vm%%, Unraid arrête tous les conteneurs Docker en cours d'exécution. Le délai d'arrêt du conteneur Docker contrôle combien de temps Unraid attend pour que chaque conteneur se termine proprement. + +

Où définir

+ + - ***Paramètres → Docker*** (vue avancée activée) + +

Considérer

+ + - Les conteneurs sont arrêtés en parallèle. + - Les conteneurs complexes, ou ceux avec de grandes bases de données, peuvent nécessiter plus de 10 secondes par défaut pour s'arrêter en toute sécurité. + - Si le temps imparti expire, les conteneurs sont arrêtés de force. + +

Bonne pratique

+ Augmentez le délai à 30-60 secondes si vous exécutez des conteneurs Docker qui nécessitent un temps d'arrêt supplémentaire. +
+ +### Délai d'arrêt général + +
+ Cliquer pour développer/réduire + + Le délai d'arrêt global est le temps maximum qu'Unraid permet pour tous les processus d'arrêt - %%VM|vm%%s, Docker, et opérations sur les disques - avant de forcer un arrêt. + +

Où définir

+ + - ***Paramètres → Paramètres disque → Délai d'arrêt*** + +

Comment calculer

+ + Additionnez vos délais %%VM|vm%% et Docker, puis ajoutez 15–30 secondes pour le démontage des disques et d'autres processus. + + - Exemple : `3 × délai d'arrêt ***VM*** + délai d'arrêt ***Docker*** + 15–30 secondes` + +

Bonne pratique

+ Réglez ce minuteur suffisamment haut pour couvrir votre scénario d'arrêt le plus lent, surtout si vous avez de nombreux lecteurs ou un grand %%array|array%%. +
+ +### Autonomie de la batterie UPS + +
+ Cliquer pour développer/réduire + + Votre UPS doit fournir suffisamment de temps de fonctionnement pour permettre à tous les délais d'arrêt de prendre fin avant que le serveur ne perde du courant. + +

Où définir

+ + - ***Paramètres → Paramètres de l’onduleur*** (voir **Temps restant** avec tous les disques en rotation) + +

Considérer

+ + - L'onduleur doit initier un arrêt suffisamment tôt pour permettre à la séquence d'arrêt complète de se terminer. + - Si la batterie se décharge avant que l'arrêt ne soit terminé, vous risquez un arrêt imprévu et une possible perte de données. + +

Bonne pratique

+ + Testez votre onduleur en simulant une panne de courant et en confirmant qu'Unraid s'arrête proprement avec du temps devant lui. +
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json new file mode 100644 index 0000000000..731f24cc96 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Diagnostics", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx new file mode 100644 index 0000000000..b41e7c8c69 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx @@ -0,0 +1,190 @@ +--- +sidebar_position: 1 +sidebar_label: Capture diagnostics et journaux +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import SyslogMirror from './partials/syslog-server/mirror.mdx'; +import SyslogRemote from './partials/syslog-server/remote.mdx'; +import SyslogLocal from './partials/syslog-server/local.mdx'; +import DockerLogsViaWebGUI from './partials/docker-logs/via-webgui.mdx'; +import DockerLogsCommandLine from './partials/docker-logs/command-line.mdx'; +import DockerLogsPersistent from './partials/docker-logs/persistent.mdx'; + +# Capture d'informations de diagnostic + +Lorsque vous rencontrez des problèmes avec votre serveur Unraid, rassembler des informations détaillées est crucial pour un dépannage efficace. Ces informations aident les autres à fournir une assistance précise et en temps opportun, surtout lorsque vous publiez sur des forums. + +:::info[Diagnostics inclus...] +Le fichier zip de diagnostics contient plusieurs fichiers texte anonymisés qui créent un instantané détaillé de votre système Unraid, y compris : + +- **Configuration du système** : Informations sur votre %%array|array%%, partages, paramètres réseau et plugins installés. +- **Journaux du système** : Journaux du noyau, %%WebGUI|web-gui%%, et des services système, documentant les événements ayant pu causer le problème. +- **Informations sur le matériel** : Détails concernant les disques connectés, contrôleurs, et autres composants matériels. +- **Infos Docker et %%VM|vm%%** : Configuration globale pour Docker et les machines virtuelles (aucune information sur vos containers individuels ou %%VMs|vm%% n'est incluse). +::: + +--- + +## Diagnostics du système + +Unraid fournit un outil de **Diagnostics** situé sous ***Tools → Diagnostics*** dans le %%WebGUI|web-gui%% pour capturer des informations système complètes pour le dépannage. Cet outil générera un fichier zip que vous pouvez télécharger et joindre aux messages dans les forums pour obtenir de l'aide. Tous les fichiers de diagnostics sont basés sur du texte, et les utilisateurs peuvent les revoir pour comprendre quelles informations sont incluses. + +| Scénario | Comment capturer | Notes | +| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| %%WebGUI\|web-gui%% disponible | Utilisez ***Outils → Diagnostics*** dans le **%%WebGUI\|web-gui%%** pour générer et télécharger le fichier zip de diagnostics. | Les diagnostics sont anonymisés par défaut pour protéger les données sensibles. | +| %%WebGUI\|web-gui%% non disponible | Accès via **%%SSH\|ssh%%**, telnet ou console directe pour exécuter la commande `diagnostics`. Le fichier zip se sauvegarde dans `/boot/logs`. | Capturez toujours les diagnostics avant de redémarrer pour conserver les journaux intacts. | +| %%Array\|array%% démarrée en mode normal | C'est la méthode privilégiée pour capturer les diagnostics, car elle fournit les informations les plus complètes, notamment sur l'état des disques. | Si ce n'est pas possible, consultez la section [Journaux persistants](#persistent-logs-syslog-server) pour des méthodes alternatives de capture. | + +
+ ![Logique de sélection du disque](/img/Diagnostics.jpg) +
+ +:::important +Joignez le fichier zip unique des diagnostics lors de la publication sur les forums - évitez de télécharger les fichiers extraits individuellement. +::: + +### Anonymisation des données de diagnostic + +By default, diagnostics are automatically anonymized. If you enable %%Mover|mover%% logging under ***Settings → Scheduler → Mover Settings***, the %%syslog|syslog%% will include details about files the %%Mover|mover%% processes. It's best to allow %%Mover|mover%% logging only when troubleshooting specific %%Mover|mover%%-related issues, as it may reveal file paths and names. + +Lorsque votre système s'éteint correctement, le journal de session est enregistré automatiquement sur le lecteur flash. Vous pouvez y accéder après le redémarrage en allant à ***Tools → Syslog → syslog-previous***. Ce journal est également inclus dans les diagnostics au prochain démarrage. Cependant, si le système se bloque, le journal système sera perdu. Dans ces cas, il est recommandé d'activer la mise en miroir du %%syslog|syslog%% sur le flash ou d'utiliser un %%syslog server|syslog-server%% distant pour préserver les journaux pour le dépannage. + +--- + +## Tester la performance de lecture des disques + +Vous pouvez utiliser les outils Linux intégrés pour évaluer les performances de lecture de vos disques durs. Cela est utile lors du diagnostic de synchronisations de %%parity|parity%% lentes, de réponses de disque lentes ou de vitesses non uniformes parmi les disques d'une %%array|array%% ou d'un %%cache|cache%%. + +:::important[When et pourquoi tester la vitesse] +Envisagez d'exécuter des tests de benchmark de lecture de disque si vous rencontrez : + +- Extremely slow %%parity|parity%% builds or %%parity check|parity-check%%s +- Des transferts de fichiers anormalement lents depuis un disque spécifique +- Des anomalies de performance après avoir ajouté ou remplacé des disques, particulièrement lors du mélange de SSDs et de HDDs +- Secteurs réalloués ou erreurs %%CRC UDMA|crc-errors%%, qui peuvent indiquer des disques défaillants + +Bien que ces tests ne vous donnent pas des vitesses de transfert de fichiers réelles précises, ils peuvent montrer des disques sous-performants et tout goulet d'étranglement du contrôleur. +::: + +### Test rapide (hdparm) + +L'outil `hdparm` mesure à la fois les vitesses de lecture en cache et en tampon d'un disque. + +Pour exécuter le test, remplacez `X` par votre périphérique de disque (comme `sdb` ou `sdg`) et entrez la commande suivante : + +``` +hdparm -tT /dev/sdX +``` + +- Le résultat `-T` affiche la vitesse de lecture du cache. +- Le résultat `-t` affiche la performance de lecture tamponnée (séquentielle) du disque. + +:::tip +Exécutez ce test plusieurs fois pour obtenir un banc d'essai plus fiable. Par exemple, vous pouvez utiliser la commande suivante pour exécuter le test 12 fois : + +``` +for ((i=0;i<12;i++)); do hdparm -tT /dev/sdX; done +``` +::: + +:::note +Assurez-vous de remplacer `/dev/sdX` par un appareil physique valide. Évitez les appareils logiques Unraid, tels que `/dev/md1`, qui incluent des processus de %%parity|parity%% susceptibles de fausser les lectures de performances brutes. +::: + +### Test complet (diskspeed.sh) + +Pour une évaluation plus détaillée de tous les disques connectés, y compris les disques de %%parity|parity%% et de données, envisagez d'utiliser le script communautaire `diskspeed.sh`. + +Ce script : + +- Testes les vitesses de lecture à plusieurs décalages linéaires sur la surface du disque +- Génère des données CSV et des cartes de chaleur de performance (images) +- Peut identifier des zones de mauvaise performance, ce qui pourrait être un signe de matériel défaillant ou de disques SMR problématiques + +Pour commencer avec `diskspeed.sh` : + +1. Téléchargez le script depuis les [forums Unraid](https://forums.unraid.net/topic/31073-disk-speed-test-graphs-disk-bottlenecks-identified-see-how-fast-your-disks-can-really-go/). +2. Placez-le dans un chemin persistant comme `/boot/scripts/`. +3. Rendez-le exécutable : + +``` +chmod +x /boot/scripts/diskspeed.sh +``` + +4. Exécutez le script : + +``` +bash /boot/scripts/diskspeed.sh +``` + +:::note +Ce script effectue uniquement des opérations en lecture seule et ne modifiera pas les données de vos disques. Cependant, il est préférable de programmer le test pendant les périodes d'inactivité, car cela peut affecter l'E/S du disque et interférer avec les performances de l'%%array|array%%. +::: + +--- + +## Journaux persistants (serveur syslog) + +Les journaux persistants sont essentiels pour conserver un enregistrement des événements système entre les redémarrages. Contrairement aux journaux standard qui se réinitialisent lorsque le système redémarre, les journaux persistants utilisent le %%syslog server|syslog-server%% intégré d'Unraid pour garantir que vous pouvez diagnostiquer les pannes ou les problèmes intermittents qui surviennent au fil du temps. + +### Choisir la bonne méthode de journalisation + +Allez à ***Settings → Syslog Server*** pour configurer la journalisation persistante. Chaque méthode a ses avantages et inconvénients : + +| Méthode | Avantages | Inconvénients | Idéal pour | +| ----------------------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------ | ----------------------------------------------- | +| **Miroir vers flash** | Capture les événements du processus de démarrage | Peut user rapidement la clé USB | Diagnostics à court terme (quelques jours) | +| **Journal %%syslog\|syslog%% à distance** | Les journaux sont stockés sur un autre appareil | Nécessite un serveur toujours en marche distinct | Surveillance à long terme (semaines à mois) | +| **Local %%syslog\|syslog%%** | Conserve les journaux sur l'%%array\|array%% ou le %%cache\|cache%%, réduisant l'usure du flash | Moins accessible s'il y a un plantage système | Journalisation continue sans appareils externes | + +:::tip +Pour obtenir de l'aide détaillée sur la configuration, consultez l'icône **Aide** dans la barre d'outils WebGUI. +::: + +### Activation du serveur syslog + + + + + + + + + + + + + + + +--- + +## Accès aux journaux des containers Docker + +Bien que les diagnostics standards ne fournissent que des données limitées pour Docker et %%VM|vm%%, vous pouvez accéder directement aux journaux des containers pour un dépannage plus détaillé. + +Pour récupérer les journaux Docker : + + + + + + + + + + + + + + + +### Journaux des machines virtuelles + +Les journaux %%VM|vm%% peuvent être accessibles via leurs hyperviseurs respectifs (par exemple, les journaux %%QEMU|qemu%% se trouvent dans `/var/log/libvirt/`). Consultez la documentation de votre plate-forme %%VM|vm%% pour plus de détails. + +:::important +N'oubliez pas de joindre les journaux pertinents des containers ou %%VM|vm%% séparément lorsque vous cherchez du support pour des problèmes spécifiques aux applications. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx new file mode 100644 index 0000000000..fb43bcfdca --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx @@ -0,0 +1,5 @@ +Utilisez la commande : + +```bash +docker logs [container_name] > /path/to/save/log.txt +``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx new file mode 100644 index 0000000000..84a6bc26ed --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx @@ -0,0 +1,5 @@ +Pour mapper les journaux des containers vers un chemin hôte, configurez votre modèle de container comme suit : + +``` +/path/in/container:/logs +``` diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx new file mode 100644 index 0000000000..e65065412a --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx @@ -0,0 +1,2 @@ +- Naviguer vers ***Docker > Conteneurs*** +- Cliquez sur l'icône **Logs** pour le conteneur souhaité diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx new file mode 100644 index 0000000000..3d1e62cd65 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx @@ -0,0 +1,15 @@ +Pour créer une copie persistante et fiable de votre %%syslog|syslog%% Unraid sur votre serveur : + +1. Réglez **Serveur syslog local** sur *Activé*. +2. Configurez les options suivantes : + - **Dossier %%syslog|syslog%% local** : Utilisez un partage en cache uniquement ou préféré (idéal pour les SSDs). + - **Paramètres de rotation** : Ajustez la taille et les limites de nombre de fichiers. +3. Pour de meilleurs résultats et pour vous assurer que toutes les données %%syslog|syslog%% (y compris les événements de démarrage) sont capturées, définissez le champ **Serveur %%syslog|syslog-server%% distant** sur l'adresse IP de votre propre serveur (la "méthode Loopback"), sinon le %%syslog|syslog%% ne sera pas sauvegardé sur le partage défini. + - Cela garantit que les événements %%syslog|syslog%% sont à la fois stockés localement et persistent entre les redémarrages, sans écrire sur la clé USB. +4. Cliquez sur **Appliquer**. + - Les journaux seront sauvegardés sur le partage que vous avez spécifié. + +:::note +- Si vous téléchargez des fichiers depuis le %%serveur syslog local|syslog-server%% vers le forum, ils **ne** seront **pas** anonymisés. +- Les journaux sauvegardés à l'aide de cette méthode ne sont pas inclus dans les diagnostics standard. Attachez-les séparément si vous avez besoin de support. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx new file mode 100644 index 0000000000..d4135acc28 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx @@ -0,0 +1,15 @@ +1. Sélectionnez **Oui** sous **Miroir vers flash**. +2. Cliquez **Appliquer**. Les journaux seront sauvegardés dans `/boot/logs/syslog` sur votre clé USB. + +Lors du prochain redémarrage, ce fichier sera renommé en `/boot/logs/syslog-previous`. Vous pouvez voir ce fichier via **Outils → Syslog → syslog-previous**, et il sera également inclus (anonymisé) dans les diagnostics. + +

Comment ça fonctionne

+ +- Par défaut, Unraid copie le %%syslog|syslog%% sur la clé USB lors de chaque arrêt en douceur. Ceci est géré par le paramètre "copier %%syslog|syslog%% sur clé USB à l'arrêt", qui est activé par défaut. +- Si vous résolvez des crashs, vous pouvez activer "Miroir vers USB". Cela écrira le %%syslog|syslog%% à la fois dans `/var/log/syslog` et `/boot/logs/syslog` en temps réel. Si un crash survient, toutes les entrées de %%syslog|syslog%% enregistrées sur clé USB avant le crash seront préservées. + +Les deux méthodes entraînent la création d'un fichier `/boot/logs/syslog-previous` après le prochain démarrage, auquel vous pouvez accéder via le visualiseur %%syslog|syslog%% et qui sera inclus dans les diagnostics. + +:::caution +Le réglage **Copiez %%syslog|syslog%% sur la mémoire flash lors de l'arrêt** est sûr pour votre clé USB. Cependant, activer **Miroir sur la mémoire flash** peut entraîner des écritures excessives si laissé activé pendant une période prolongée. Pour les besoins de journalisation à long terme, envisagez d'utiliser un serveur %%syslog|syslog-server%% local ou distant à la place. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx new file mode 100644 index 0000000000..317421565b --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx @@ -0,0 +1,12 @@ +1. Réglez **Serveur syslog local** sur *Activé*. +2. Entrez l'adresse IP de votre serveur syslog sous **Serveur syslog distant**. +3. Cliquez sur **Appliquer**. + - Les journaux seront diffusés vers l'appareil que vous avez spécifié. + +
+ ![Configuration syslog distant](/img/Syslog-server.jpg) +
+ +:::note +Si vous téléchargez des fichiers depuis un %%serveur syslog distant|syslog-server%% vers le forum, ils **ne** seront **pas** anonymisés. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx new file mode 100644 index 0000000000..d985779e7a --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx @@ -0,0 +1,142 @@ +--- +sidebar_position: 2 +sidebar_label: Erreurs UDMA CRC +--- + +# Erreurs UDMA CRC + +**Erreurs CRC %%UDMA|udma%% %%CRC|crc-errors%%** ([attribut %%SMART|smart%% 199](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx)) sont typiques pour les utilisateurs d'Unraid et apparaissent souvent dans les rapports de santé des disques. Pour la plupart des utilisateurs, ces erreurs indiquent un problème de communication entre le disque et le serveur plutôt qu'une défaillance du disque lui-même. + +Lorsqu'une erreur %%CRC|crc-errors%% se produit, le disque détecte que les données n'ont pas été correctement reçues de l'hôte. Unraid essaie automatiquement de récupérer en renvoyant les données. Si le renvoi réussit, l'opération continue comme d'habitude, bien que vous puissiez remarquer des vitesses d'écriture plus lentes en raison de la réessai. Ces événements sont enregistrés dans le %%syslog|syslog%%. + +Si les tentatives de récupération échouent après plusieurs réessais, Unraid le traite comme une erreur de lecture. Dans les %%array|parity%%-protégées à %%parité|parity%%, Unraid tentera de réécrire le secteur affecté en utilisant la %%parité|parity%% et les données provenant d'autres disques. Si cette réécriture réussit, l'opération reprend ; sinon, le disque est désactivé et marqué par un 'x' rouge dans le WebGUI. + +
+ Qu'est-ce qu'une erreur CRC ? (explication technique) - Cliquez pour développer/réduire + + A **%%cyclic redundancy check (CRC)|crc%%** is a mathematical checksum that detects accidental changes to raw data during transmission. In the context of %%UDMA|udma%% (ultra direct memory access), %%CRC errors|crc-errors%% mean the data sent between your drive and controller failed this integrity check. This usually indicates a physical communication issue - such as a loose or faulty cable - rather than a problem with the drive's platters or flash memory. +
+ +--- + +## Causes possibles des erreurs UDMA CRC + +Les erreurs UDMA CRC indiquent des problèmes de transmission de données entre vos disques et le système. Ces erreurs peuvent provoquer une corruption des données, des performances lentes, et des pannes de disque si elles ne sont pas corrigées. Comprendre les causes profondes vous aide à mettre en œuvre des correctifs ciblés plutôt que de deviner des solutions. + +

Causes courantes à examiner

+ +- **Câbles SATA desserrés ou mal assis :** Les connecteurs SATA ne sont pas très robustes et peuvent facilement se desserrer en raison des vibrations ou de la tension des câbles. Évitez de regrouper étroitement les câbles, car cela peut provoquer des interférences et des diaphonie. +- **Câbles SATA défectueux :** Les câbles endommagés ou de mauvaise qualité sont des sources courantes d'erreurs %%CRC|crc-errors%%. +- **Problèmes d'alimentation :** Une alimentation insuffisante ou instable, souvent due à des câbles séparateurs ou à une alimentation surchargée, peut provoquer des erreurs intermittentes. +- **Contrôleur de disque mal inséré :** Des erreurs de communication peuvent survenir si la carte contrôleur n'est pas complètement insérée dans son logement. +- **Défauts matériels du disque :** Bien que rares, un disque défaillant peut également produire des erreurs CRC. +- **Problèmes de gestion des câbles :** + - **Attaches :** Si vous utilisez des attaches pour la gestion des câbles, gardez-les lâches, pas serrées ou trop serrées. Utilisez idéalement des attaches Velcro à la place. + - **Routage des câbles d'alimentation et de données :** Évitez de faire passer les câbles d'alimentation à côté des câbles de données SATA. S'ils doivent se toucher ou être très proches, ils devraient se croiser à 90 degrés pour minimiser les interférences. + - **Courbure des câbles SATA :** Ne forcez jamais la courbure des câbles SATA pour effectuer des virages à 90 degrés. Cela peut endommager le câble et causer des problèmes de communication. + +--- + +## Processus de récupération + +Lorsque vous remarquez des erreurs %%CRC|crc-errors%%, la première étape consiste à vérifier soigneusement et réinsérer à la fois les câbles SATA et d'alimentation de vos disques. Remplacez tous les câbles qui semblent endommagés ou qui ne s'adaptent pas en toute sécurité. Si les erreurs persistent, vérifiez vos connexions d'alimentation et de contrôleur, et envisagez de remplacer les câbles ou les ports pour isoler le problème. + +Si les erreurs %%CRC|crc-errors%% persistent après avoir corrigé le câblage et l'alimentation, une enquête plus approfondie pourrait être nécessaire pour écarter un contrôleur ou un disque défaillant. + +--- + +## Comprendre les indicateurs d'erreurs CRC + +### Erreurs occasionnelles vs. fréquentes + +
+ Cliquer pour développer/réduire + + Understanding the frequency and pattern of %%CRC errors|crc-errors%% helps you determine the urgency of your response. Not all errors require immediate action, but patterns can reveal underlying problems that need attention. + +

Occasional errors (low concern)

+ A few %%CRC errors|crc-errors%% over weeks or months are typically not a concern. These isolated incidents may be caused by temporary power fluctuations, cable movement during maintenance, or other transient issues that resolve themselves. + +

Frequent errors (high concern)

+ %%CRC errors|crc-errors%% occurring daily or weekly, or rapidly increasing error counts, indicate a persistent problem that needs immediate investigation. This pattern often points to hardware issues like loose connections, failing cables, or power supply problems that will only worsen over time. + +

Quand agir

+ Enquêter immédiatement si les erreurs sont fréquentes ou en augmentation. Vérifiez votre cablage et l'alimentation pour des problèmes intermittents, et suivez les taux d'erreurs pour identifier les conditions qui se dégradent. Envisagez une maintenance préventive si les erreurs persistent, car ces problèmes se résolvent rarement d'eux-mêmes et peuvent conduire à des défaillances plus graves. +
+ +### Nombre de secteurs en attente + +
+ Cliquer pour développer/réduire + + The **Current Pending Sector Count** ([%%SMART|smart%% attribute 197](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx)) is a critical indicator that often appears alongside %%CRC errors|crc-errors%%. This combination signals a serious problem that requires immediate attention and careful monitoring. + + Pending sectors indicate unreliable disk areas that may not be readable when accessed. These are sectors that have experienced read errors and are now marked as potentially problematic by the drive's firmware. When pending sectors appear alongside %%CRC errors|crc-errors%%, it suggests that communication problems are causing physical damage to the drive's ability to store and retrieve data reliably. + +

Why this combination is dangerous

+ %%CRC errors|crc-errors%% indicate communication issues between the drive and controller, while pending sectors show that some areas of the disk are becoming unreliable. Together, they create a high-risk situation where your data protection may be compromised. If another drive fails while this one has pending sectors, your ability to recover data could be severely limited, potentially jeopardizing [data recovery](../../troubleshooting/common-issues/data-recovery.mdx) efforts. + + Quand vous voyez cette combinaison, vous devriez : + + - **Sauvegarder immédiatement** toutes les données critiques qui ne sont pas déjà protégées. + - Vérifiez la santé du disque en utilisant des tests %%SMART|smart%% étendus, et envisagez le remplacement du disque si les secteurs en attente continuent d'augmenter. + - Surveillez de près la situation pour d'autres signes d'avertissement, et soyez prêt à reconstruire votre tableau si le disque devient peu fiable. +
+ +### Persistance du compte CRC + +
+ Cliquer pour développer/réduire + + Le nombre d'erreurs %%CRC|crc-errors%% dans les données [%%SMART|smart%% du disque](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx) ne se réinitialise jamais - il ne fait qu'augmenter. + + Grâce à cette nature cumulative : + + - Le nombre représente les erreurs totales à vie de ce disque + - Surveillez le taux d'augmentation pour identifier les conditions qui se dégradent. + - Une fois qu'une erreur se produit, elle est enregistrée de façon permanente + - Utilisez le compte pour planifier une maintenance préventive avant que les problèmes ne s'aggravent + + Ne paniquez pas si vous voyez quelques erreurs CRC, mais suivez le taux d'augmentation. Une augmentation soudaine des erreurs indique souvent un nouveau problème qui nécessite une attention immédiate. +
+ +### Icône d'avertissement sur le tableau de bord + +
+ Cliquer pour développer/réduire + + When Unraid detects a %%CRC error|crc-errors%%, the **Dashboard** displays a warning icon next to the affected drive. This is a %%SMART|smart%% warning that should prompt you to review and address the issue. + +

Pourquoi cela importe

+ + - Système d'alerte précoce pour les problèmes matériels potentiels + - Aide à prévenir la perte de données en détectant tôt les problèmes + - Indique quand une maintenance préventive est nécessaire + - Fait partie du système de surveillance proactive d'Unraid + + Cliquez sur l'icône d'avertissement pour voir des informations détaillées %%SMART|smart%% et reconnaître l'avertissement. +
+ +### Reconnaissance des avertissements SMART + +
+ Cliquer pour développer/réduire + + Pour reconnaître et effacer les avertissements SMART : + + 1. Cliquez sur l'**icône orange d'avertissement** à côté du disque concerné + 2. Sélectionnez **Reconnaître** dans le menu d'options + 3. Confirmez l'action si demandé + 4. L'icône deviendra **verte** pour indiquer la reconnaissance + +

Ce que fait la reconnaissance

+ + - Efface l'avertissement de votre vue immédiate + - Enregistre que vous avez vu le problème + - Rappelle uniquement si le nombre d'erreurs augmente plus tard + - Maintient le suivi du problème sous-jacent + + :::important + Acknowledging a warning doesn't fix the underlying issue - it just tells Unraid you're aware of it. You should still investigate and resolve the root cause of the %%CRC errors|crc-errors%%. + ::: +
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx new file mode 100644 index 0000000000..891bbc741d --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx @@ -0,0 +1,421 @@ +--- +sidebar_position: 3 +sidebar_label: FAQ +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Questions Fréquemment Posées + +Si vous avez besoin d'aide avec le système d'exploitation Unraid, vous avez plusieurs options de support : + +- **Forums Unraid :** [Support général](https://forums.unraid.net/forum/55-general-support/), [Conception compulsive](https://forums.unraid.net/forum/35-unraid-compulsive-design/) +- **Documentation Officielle:** [Documentation Unraid](../../docs-home.mdx) +- **Discord:** [Communauté Discord Unraid](https://discord.unraid.net) +- **Portail de Support:** [Support Unraid](https://unraid.net/support) + +--- + +## Index + +- [**Construction & Matériel**](#build--hardware) + - [J'ai besoin d'aide pour une construction ou la configuration d'un système. Où dois-je aller ?](#build-help) + - [Quels contrôleurs sont recommandés pour Unraid ?](#hardware-raid-support) + - [Quelle est la meilleure façon d'ajouter plus de stockage si mon contrôleur intégré est plein ?](#add-more-storage) + - [Unraid a-t-il une fonction d'allocation qui se souvient des secteurs défectueux sur les disques pour éviter d'écrire dessus ?](#bad-sector-allocation) +- [**OS & Configuration**](#os--configuration) + - [Puis-je utiliser une clé HASP dans une VM sur Unraid ? Comment cela fonctionne-t-il avec plusieurs VMs ?](#hasp-key-vm) + - [Ma clé USB a échoué et je n'ai pas de sauvegarde. Comment rétablir ma configuration ?](#usb-failed-restore) + - [Que dois-je faire si j'ai oublié mon mot de passe root ?](#forgot-root-password) + - [Comment puis-je redémarrer complètement Unraid OS à partir de zéro ? (Procédure de réinitialisation d'usine)](#factory-reset) + - [Comment puis-je changer le nom d'hôte de mon serveur ?](#change-hostname) + - [Ma clé USB signale un GUID invalide. Que dois-je faire ?](#invalid-guid) +- [**Virtualisation & Appareils**](#virtualization--devices) + - [Chaque fois que j'arrête ma machine virtuelle Windows avec un GPU AMD assigné, elle ne redémarre pas. Que puis-je faire ?](#amd-gpu-vm-restart) + - [Comment puis-je passer par le GPU principal à une machine virtuelle si mon CPU n'a pas de graphiques intégrés ?](#primary-gpu-passthrough) +- [**Stockage & RAID**](#storage--raid) + - [Unraid prend-il en charge différents types de RAID comme RAID1/5/6/10 ?](#raid-types-support) + - [J'ai actuellement un ensemble de périphériques formatés avec une table de partition de type MBR et je souhaite passer au GPT. Comment faire ?](#mbr-to-gpt-conversion) +- [**Réseau**](#networking) + - [Existe-t-il un moyen de désactiver le pont br0 ?](#disable-br0-bridge) + - [Je n'arrive pas à accéder au WebGUI en utilisant `http://tower` ou `http://tower.local`. Que faire ?](#webgui-connection) +- [**Installation**](#installation) + - [Je ne parviens pas à installer Unraid sur mon périphérique flash USB avec le créateur de flash. Que faire ?](#usb-creator-issue) + - [Je dois configurer mon système pour démarrer en utilisant UEFI. Comment faire ?](#uefi-boot-config) + - [J'ai des problèmes d'utilisation de mon navigateur Web avec le WebGUI. Que puis-je faire ?](#webgui-browser-issues) + - [Comment puis-je prolonger mon essai d'Unraid ?](#extend-trial) +- [**Licences**](#licensing) + - Pour les questions liées aux licences, consultez la [FAQ des Licences](licensing-faq.mdx). + +--- + +## Construction & Matériel + +

J'ai besoin d'aide pour une construction ou la configuration d'un système. Où dois-je aller ?

+ +
+ Cliquer pour développer/réduire + + Pour obtenir des conseils sur la construction ou la mise à niveau de votre serveur Unraid, visitez le [forum Compulsive Design](https://forums.unraid.net/forum/35-unraid-compulsive-design/) ou rejoignez le [Discord Unraid](https://discord.unraid.net). La communauté est active et prête à vous aider, quel que soit votre niveau d'expérience. +
+ +
+ +

Quels contrôleurs sont recommandés pour Unraid ?

+ +
+ Cliquer pour développer/réduire + + Unraid fonctionne mieux avec des adaptateurs de bus hôte (HBA) non-%%RAID|raid%%. Il est préférable d'éviter les contrôleurs %%RAID|raid%% matériels, qui peuvent masquer les informations de santé des disques et compliquer la maintenance. + + Vérifiez toujours les mises à jour du firmware et assurez-vous que le contrôleur est réglé en mode HBA/IT, et non en mode %%RAID|raid%%. Vous pouvez vous référer au [fil de contrôleurs recommandés](https://forums.unraid.net/topic/102010-recommended-controllers-for-unraid/) pour des modèles que la communauté a testés avec succès. +
+ +
+ +

Quelle est la meilleure façon d'ajouter plus de stockage si mon contrôleur intégré est plein ?

+ +
+ Cliquer pour développer/réduire + + Unraid allows for the expansion of storage across multiple controllers. You can add a compatible HBA (as mentioned above). Ensure the controller operates in standard HBA (non-%%RAID|raid%%) mode and supports %%AHCI|ahci%%/SATA. Avoid using %%RAID|raid%%-only cards, as Unraid requires direct disk access for %%parity|parity%% and monitoring. +
+ +
+ +

Unraid a-t-il une fonction d'allocation qui se souvient des secteurs défectueux sur les disques pour éviter d'écrire dessus ?

+ +
+ Cliquer pour développer/réduire + + Unraid utilise les données %%SMART|smart%% de vos disques pour surveiller leur santé et détecter des problèmes tels que les secteurs défectueux. %%SMART|smart%% est intégré dans les disques durs et SSD modernes, suivant des attributs tels que les secteurs réalloués et en attente. + + Bien que Unraid n'ait pas de fonctionnalité d'allocation spécifique pour éviter les secteurs défectueux, il utilise les données %%SMART|smart%% pour vous notifier si un disque montre des signes de défaillance ou un nombre croissant de secteurs défectueux. Ces informations se trouvent dans l'%%WebGUI|interface-web%% sous l'état de santé du disque et les attributs %%SMART|smart%%. + + Si un disque montre un nombre élevé de secteurs réattribués ou en attente, envisagez de le remplacer bientôt pour éviter toute perte de données. + + Si vous n'êtes pas certain de l'état de santé d'un disque, vous pouvez partager vos données %%SMART|smart%% dans le [forum de support général](https://forums.unraid.net/forum/55-general-support/) pour obtenir de l'aide de la communauté. +
+ +
+ +--- + +## OS & Configuration + +

Puis-je utiliser une clé HASP dans une VM sur Unraid ? Comment cela fonctionne-t-il avec plusieurs VMs ?

+ +
+ Cliquer pour développer/réduire + + Si votre clé HASP est une clé USB, vous pouvez l'assigner à seulement un %%VM|vm%% à la fois. Notez que deux %%VM|vm%%s ne peuvent pas utiliser la même clé simultanément. Vous pourriez devoir passer par un contrôleur USB entier pour une meilleure compatibilité. Effectuez toujours des tests avec une licence d'essai pour confirmer que votre matériel fonctionne comme prévu. +
+ +
+ +

Ma clé USB a échoué et je n'ai pas de sauvegarde. Comment rétablir ma configuration ?

+ +
+ Cliquer pour développer/réduire + + Si vous aviez activé [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) pour les sauvegardes Flash, vous pouvez l'utiliser pour restaurer. Sinon, procurez-vous une nouvelle clé USB de haute qualité, installez Unraid dessus et utilisez la clé d'enregistrement que vous avez reçue par email. Réassignez vos disques comme ils l'étaient. Si vous ne pouvez pas vous souvenir des affectations, postez pour obtenir de l'aide dans le [forum de support général](https://forums.unraid.net/forum/55-general-support/). +
+ +
+ +

Que dois-je faire si j'ai oublié mon mot de passe root ?

+ +
+ Cliquer pour développer/réduire + + Référez-vous à [Réinitialiser votre mot de passe](../system-administration/secure-your-server/user-management.mdx#reset-your-password). + + :::note + Si vous utilisez des disques chiffrés et oubliez le mot de passe de chiffrement, la récupération des données n'est pas possible - il n'y a pas de porte dérobée. + ::: +
+ +
+ +

Comment puis-je redémarrer complètement Unraid OS à partir de zéro ? (Procédure de réinitialisation d'usine)

+ +
+ Cliquer pour développer/réduire + + 1. Sauvegardez toutes les données que vous souhaitez conserver. + 2. Arrêter le %%array|array%% et éteindre votre serveur. + 3. Retirez le périphérique flash USB. + 4. Utilisez l'outil Unraid USB Flash Creator pour reformater et réinstaller Unraid sur le périphérique flash. + 5. Réinsérez le périphérique flash et démarrez votre serveur. + 6. Dans le WebGUI, ouvrez un terminal et exécutez `lsblk` pour répertorier tous les disques (à l'exception du flash). + 7. Effacer les systèmes de fichiers existants de chaque disque de données : + + :::danger[Critique : Opération Destructive] + **Cette étape effacera définitivement TOUTES les données sur le ou les disques spécifiés et est IRRÉVERSIBLE !** + + - **Vérifiez que vous avez des sauvegardes** de toutes les données dont vous avez besoin avant de continuer + + - **Vérifiez deux fois l'identifiant du périphérique** dans le WebGUI ou avec `lsblk` avant d'exécuter cette commande + + - **Assurez-vous de cibler le bon disque** - la perte de données due à un mauvais disque ne peut pas être récupérée + + Pour chaque disque de données, exécutez : + + ``` + wipefs /dev/sdX + ``` + + Remplacez `X` par la lettre correcte du disque (ex. : sda, sdb, sdc) + ::: + + 8. Continuez avec la configuration et l'installation normales d'Unraid. +
+ +
+ +

Comment puis-je changer le nom d'hôte de mon serveur ?

+ +
+ Cliquer pour développer/réduire + + Pour changer le nom d'hôte de votre serveur Unraid, accédez au WebGUI dans **Paramètres → Paramètres Système → Identification**. + + **Effets du changement de nom d'hôte :** + + - Le nouveau nom d'hôte sera utilisé pour l'identification réseau (par ex., accès via `http://newname`). + - Vous devrez peut-être reconnecter tous les lecteurs réseau mappés ou raccourcis en utilisant le nouveau nom d'hôte. + - Certains appareils ou services peuvent mettre en cache l'ancien nom ; un redémarrage complet de l'appareil peut être nécessaire pour reconnaître le nouveau nom. +
+ +
+ +

Ma clé USB signale un GUID invalide. Que dois-je faire ?

+ +
+ Cliquer pour développer/réduire + + Unraid nécessite un périphérique flash USB avec un %%GUID|guid%% matériel unique (numéro de série). Certains fabricants peuvent réutiliser des %%GUID|guid%%s ou utiliser des valeurs génériques, rendant ces disques incompatibles entre eux. + + **Marques testées sur le terrain :** + + - Samsung FIT Plus / Bar Plus + - Kingston DataTraveler Exodia + - Lexar JumpDrive M45 + - PNY Elite-X + (Évitez les modèles SanDisk Ultra Fit/Cruzer plus récents à moins que vous puissiez confirmer un %%GUID|guid%% unique.) + + Il est préférable d'éviter les disques génériques ou sans marque, les SSD, les lecteurs de cartes USB et les adaptateurs de cartes SD, car ils manquent souvent de %%GUID|guid%%s uniques et peuvent ne pas être pris en charge pour démarrer Unraid. +
+ +
+ +--- + +## Virtualisation & Appareils + +

Chaque fois que j'arrête ma machine virtuelle Windows avec un GPU AMD assigné, elle ne redémarre pas. Que puis-je faire ?

+ +
+ Cliquer pour développer/réduire + + De nombreuses cartes graphiques AMD rencontrent des problèmes avec les réinitialisations au niveau des fonctions, ce qui contribue à ce problème. Les solutions de contournement incluent l'éjection de la carte graphique depuis Windows avant de l'éteindre ou l'utilisation d'une carte graphique NVIDIA, qui évite généralement ce problème. +
+ +
+ +

Comment puis-je passer par le GPU principal à une machine virtuelle si mon CPU n'a pas de graphiques intégrés ?

+ +
+ Cliquez pour développer/réduire + + C'est faisable mais nécessite des étapes supplémentaires. Consultez le guide vidéo de [SpaceInvaderOne](https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/) pour des instructions détaillées sur la façon de bien le faire. +
+ +
+ +--- + +## Stockage & RAID + +

Unraid prend-il en charge divers types de RAID tels que RAID1/5/6/10 ?

+ +
+ Cliquer pour développer/réduire + + Unraid dispose d'une architecture de stockage unique qui le distingue des systèmes %%RAID|raid%% traditionnels. Voici une comparaison des différentes options de stockage : + + | Fonctionnalité / Capacité | Unraid %%parity\|parity%% %%array\|array%% (md) | %%BTRFS\|btrfs%% pool (%%cache\|cache%%) | **%%ZFS\|zfs%% pool (7.x+)** | %%RAID 1\|raid1%%/%%RAID 5\|raid5%%/%%RAID 6\|raid6%%/%%RAID 10\|raid10%% | + | --------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------ | + | Modèle / de redondance %%parité\|parity%% | Disque(s) %%parité\|parity%% dédié(s) | Logiciel %%RAID 1\|raid1%%/%%RAID 10\|raid10%%/%%RAID 5\|raid5%%/%%RAID 6\|raid6%% via %%BTRFS\|btrfs%% | %%RAID 1\|raid1%%-Z1/Z2/Z3 ou miroirs | Parité rayée %%parity\|parity%% (%%RAID 5\|raid5%%/%%RAID 6\|raid6%%) ou miroirs (%%RAID 10\|raid10%%) | + | Division des données | Non | Oui (sauf %%RAID 1\|raid1%%) | Oui | Oui | + | Flexibilité de la taille du disque | Mélange de toutes tailles | Idéal avec des tailles similaires | Idéal avec des tailles similaires par vdev | Requiert des tailles assorties | + | Étendre un disque à la fois | Oui | Oui (ajouter ou remplacer des appareils) | Oui (par vdev\*) | Généralement non | + | Système de fichiers par disque | Oui | Non | Non | Non | + | Vitesse de lecture d'un seul disque | Vitesse native du disque | Agrégé (multi-disques) | Agrégé (multi-disques) | Agrégé | + | Dégradation de l'écriture lors de la reconstruction | Minimal (seul le lecteur en panne) | Dépend du niveau | Dépend de l'agencement vdev | Significatif | + | %%Bit rot\|bit-rot%% detection | Optionnel (%%BTRFS\|btrfs%%/%%ZFS\|zfs%% %%checksum\|checksum%%) | ✅ Intégré | ✅ End-to-end %%checksum\|checksum%%s | ❌ Non inhérent | + | %%Snapshot\|Instantané%% / envoi-réception | ❌ | ✅ (%%BTRFS\|btrfs%%) | ✅ Native | ❌ | + | Utilisation recommandée en production | Stockage média général | %%RAID 1\|raid1%%/%%RAID 10\|raid10%% (évitez %%RAID 5\|raid5%%/%%RAID 6\|raid6%%)\*\* | ✅ Tous les niveaux stables | Baies d'entreprise %%array\|array%%s | + + \* %%ZFS|zfs%% vdevs must be expanded by replacing **all** drives in the vdev or adding a new vdev.\ + \* %%BTRFS|btrfs%% %%RAID 5|raid5%%/%%RAID 6|raid6%% remains flagged as "experimental" upstream; use with caution. + + - **Unraid %%parity|parité%% %%array|grappe%%** est excellent pour une expansion incrémentielle, permettant des tailles de disque disparates avec un stress minimal lors de la reconstruction. + - Les **pools %%ZFS|zfs%%** (disponibles en 7.x) offrent une redondance de niveau entreprise, des %%snapshot|snapshot%%s, et des %%checksum|checksum%%s, ce qui les rend idéaux pour les %%VM|vm%%s et les bases de données. + - **Pools %%BTRFS|btrfs%%** excellent pour les %%cache|cache%%s SSD rapides, en mode %%RAID 1|raid1%%/%%RAID 10|raid10%% en miroir, en particulier. + - Les cartes matérielles %%RAID|raid%% traditionnelles ne sont *pas* nécessaires ; vous pouvez utiliser de simples cartes HBA pour permettre à Unraid de gérer directement les disques. +
+ +
+ +

Je dispose actuellement d'une grappe d'appareils formatée avec une table de partition de type MBR et je souhaite convertir en GPT. Comment faire ?

+ +
+ Cliquer pour développer/réduire + +

Pourquoi passer de MBR à GPT ?

+ MBR (Master Boot Record) prend en charge les disques jusqu'à 2 To et ne permet qu'un maximum de quatre partitions principales. En revanche, GPT (%%GUID|guid%% Partition Table) peut gérer des disques beaucoup plus volumineux et un nombre de partitions quasi illimité. Il est conseillé de passer à GPT si vous travaillez avec des disques plus importants ou si vous souhaitez une meilleure gestion des partitions. + + :::important[Utilisez le **Mode Maintenance**] + Avant de commencer le processus de conversion, placez votre %%array|tableau%% en **Mode Maintenance**. Cette étape garantit qu'aucune écriture n'intervient durant la conversion, protégeant vos données. + ::: + +

Processus de conversion

+ + 1. Assurez-vous d'avoir une %%parity|parité%% valide et une sauvegarde actuelle de votre lecteur flash. + 2. Entrez en **Mode de Maintenance** depuis l'onglet ***Principal***. + 3. Remplacez et reconstruisez d'abord votre lecteur de %%parity|parité%%. + 4. Remplacez chaque lecteur de données un à la fois, en reconstruisant le %%array|array%% après chaque remplacement. + 5. Le nouveau disque sera formaté avec le style de partitionnement approprié selon sa taille : + - **2 To ou moins** : Utilise un partitionnement MBR + - **Plus grand que 2 To** : Utilise un partitionnement GPT + 6. - **2 To ou moins** : Utilise un partitionnement MBR + - **Plus grand que 2 To** : Utilise un partitionnement GPT6. + + Ce processus garde vos données en sécurité tout en changeant le style de partitionnement. + + :::note[Notes additionnelles] + - **Le partitionnement est automatique** : Unraid choisit automatiquement le style de partitionnement basé sur la taille du disque : + - **2 To ou moins** : Utilise toujours un partitionnement MBR + - **Plus grand que 2 To** : Utilise toujours un partitionnement GPT + - À partir d'Unraid OS 6.9, la partition 1 commence à 32KiB pour les dispositifs rotatifs et à 1MiB pour les dispositifs non rotatifs, quel que soit le style de partition. + - Sauvegardez toujours votre [clé USB](../system-administration/secure-your-server/secure-your-flash-drive.mdx#backups) avant de commencer ce processus de conversion. + ::: +
+ +
+ +--- + +## Réseau + +

Y a-t-il un moyen de désactiver le pont br0 ?

+ +
+ Cliquer pour développer/réduire + + Oui. Le pont **br0** est un pont réseau Linux permettant aux conteneurs Docker et aux %%VM|vm%%s de se connecter directement à votre réseau local (LAN) avec leurs adresses IP. Il agit comme un commutateur réseau virtuel connectant votre interface réseau physique aux interfaces virtuelles utilisées par les conteneurs et les %%VM|vm%%s. + + :::note + Désactiver br0 signifie que les %%VMs|vm%% et les conteneurs Docker n'auront pas accès direct au LAN et pourraient perdre certaines fonctionnalités réseau avancées. + ::: +
+ +
+ +

Je n'arrive pas à me connecter au WebGUI en utilisant `http://tower` ou `http://tower.local`. Que faire ?

+ +
+ Cliquer pour développer/réduire + + Si vous avez du mal à vous connecter à l'%%interface-web|WebGUI%% par nom d'hôte, le problème pourrait venir de votre DNS local qui ne résout pas le nom du serveur. Essayez plutôt de vous connecter directement en utilisant l'adresse IP. + + **Comment trouver l'adresse IP de votre serveur :** + + - Vérifiez la liste des clients DHCP de votre routeur ou commutateur pour un appareil répertorié comme "Tower" ou similaire. + - Si vous avez attribué une IP statique lors de la création du flash, utilisez cette adresse. + - Branchez un moniteur et un clavier à votre serveur ; l'adresse IP apparaîtra sur la console locale après le démarrage. + + **Causes communes de ce problème :** + + - Votre ordinateur et votre serveur pourraient être sur différents sous-réseaux ou VLANs. + - Votre routeur peut ne pas prendre en charge la résolution locale des noms d'hôtes. + - Le serveur Unraid pourrait ne pas être connecté au réseau ou avoir une configuration réseau incorrecte. + - Les logiciels de sécurité ou pare-feu peuvent bloquer l'accès. + + Si vous ne parvenez pas à vous connecter, essayez de redémarrer votre serveur et les équipements réseau, et assurez-vous que tous les câbles sont correctement connectés. +
+ +
+ +--- + +## Installation + +

Je n'arrive pas à installer Unraid sur mon périphérique flash USB avec le créateur de flash. Que faire ?

+ +
+ Cliquer pour développer/réduire + + Si l'outil de création de clé USB ne fonctionne pas pour votre système ou votre clé USB, vous pouvez utiliser la [méthode d'installation manuelle](../getting-started/set-up-unraid/create-your-bootable-media.mdx#manual-install-method) pour préparer votre périphérique de démarrage Unraid. Cette méthode est compatible avec Windows, macOS, et Debian/Ubuntu Linux. +
+ +
+ +

J'ai besoin de configurer mon système pour démarrer en utilisant UEFI. Comment faire ?

+ +
+ Cliquer pour développer/réduire + + Vous pouvez configurer le mode de démarrage %%UEFI|uefi%% de plusieurs façons : + + **Option 1 : Lors de la création du flash** + + - Lors de l'utilisation du créateur de clé USB, sélectionnez l'option pour activer le mode de démarrage %%UEFI|uefi%% avant d'écrire Unraid sur le lecteur USB. + + **Option 2 : Après le démarrage en mode Legacy** + + - Dans le %%WebGUI|web-gui%%, rendez-vous sur la page ***Paramètres → périphérique Flash***. + - Activez le mode de démarrage %%UEFI|uefi%% et redémarrez votre serveur. + + **Option 3 : Renommer le dossier manuellement** + + - Sur le lecteur USB, renommez le dossier `EFI-` en `EFI` (retirez le tiret `-`). + - Insérez le lecteur USB dans votre serveur, puis accédez aux paramètres de votre BIOS/case%%UEFI|uefi%% de la carte mère. + - Définissez le flash USB comme périphérique de démarrage principal et activez le mode de démarrage %%UEFI|uefi%% (assurez-vous de désactiver le mode CSM/Legacy/Compatibilité, si disponible). +
+ +
+ +

J'ai des problèmes d'utilisation de mon navigateur Web avec le WebGUI. Que puis-je faire ?

+ +
+ Cliquer pour développer/réduire + + Si vous rencontrez des problèmes d'affichage ou de fonctionnalité avec le %%WebGUI|web-gui%%, prenez en compte les éléments suivants : + + - **Bloqueurs de publicités et de contenu :** Ces extensions de navigateur peuvent interférer avec le WebGUI. Essayez d'ajouter votre serveur Unraid à la liste blanche de votre bloqueur de publicités ou désactivez le bloqueur pour l'adresse de votre serveur. + - **Extensions de navigateur :** Certaines extensions peuvent bloquer des scripts ou altérer le contenu des pages. Désactivez les extensions ou essayez d'utiliser une fenêtre privée/incognito. + - **Navigateurs obsolètes :** Assurez-vous d'utiliser un navigateur moderne et à jour (comme Chrome, Firefox, ou Edge). Les navigateurs plus anciens peuvent ne pas complètement supporter le WebGUI. + - **Problèmes de cache :** Effacez votre cache du navigateur ou essayez un rafraîchissement forcé (Ctrl+F5 ou Cmd+Shift+R). + - **Problèmes de réseau :** Assurez-vous que votre ordinateur et le serveur sont connectés au même réseau et sous-réseau. + + Si les problèmes persistent, essayez d'accéder au %%WebGUI|web-gui%% depuis un autre navigateur ou appareil. +
+ +
+ +

Comment prolonger mon essai d'Unraid ?

+ +
+ Cliquer pour développer/réduire + + Si vous avez besoin de plus de temps avec votre [essai gratuit de 30 jours](https://unraid.net/download) de Unraid, vous pouvez le prolonger. Une fois votre essai initial expiré, arrêtez votre %%array|array%% et allez à la page **Enregistrement**. Vous devriez voir un bouton vous permettant de demander une extension de 15 jours. Vous pouvez le faire deux fois pour un total de 60 jours avant de devoir acheter une licence. + + :::important + Vous devez utiliser le même périphérique USB pour continuer votre essai. Changer de périphérique USB nécessitera de recommencer un essai à partir de zéro. + ::: +
+ +
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx new file mode 100644 index 0000000000..31fe011e7e --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx @@ -0,0 +1,303 @@ +--- +sidebar_position: 4 +sidebar_label: FAQ de la licence +--- + +import Details from '@theme/Details'; +import ManualKeyfileTabs from '@site/src/components/ManualKeyfileTabs'; + +# FAQ de la licence + +Cette page contient des questions fréquemment posées sur la licence du système Unraid OS. Pour les questions générales de dépannage, consultez la [FAQ principale](faq.mdx). + +--- + +## Index + +- [**Propriété de la licence**](#license-ownership) + - [Possède-je ma licence logicielle ?](#own-license) +- [**Achat**](#purchasing) + - [Comment acheter Unraid ?](#purchase-unraid) + - [Comment échanger un code d'activation de licence ?](#redeem-activation-code) + - [Je suis un revendeur / OEM nécessitant l'achat d'une licence au nom de mon client. Que dois-je faire ?](#oem-purchase) +- [**Gestion de la licence**](#license-management) + - [Comment mettre à niveau ma licence Unraid ?](#upgrade-license) + - [Comment installer manuellement mon fichier de clé de licence sur mon périphérique USB ?](#manual-keyfile-install) + - [Comment déterminer mon type d'enregistrement ?](#registration-type) +- [**Types de licence et fonctionnalités**](#license-types--features) + - [Unraid OS est-il un abonnement ?](#subscription) + - [Que se passe-t-il si je n'étends pas ma licence Starter ou Unleashed ?](#no-extension) + - [Qu'en est-il des pré-versions (version Beta/RC) ?](#pre-release-policy) + - [Que signifie "illimité" pour les périphériques de stockage connectés ?](#unlimited-storage) +- [**Dépannage**](#troubleshooting) + - [Que se passe-t-il si mon périphérique USB échoue ? Dois-je racheter une licence ?](#usb-failure-license) + - [Que devrais-je faire si je reçois une erreur d'enregistrement de mon périphérique flash : '####-####-####-#############' est déjà enregistré à un autre utilisateur ?](#guid-error) +- [**Licences d'essai**](#trial-licenses) + - [Comment fonctionnent les essais Unraid ?](#trial-license) + - [Puis-je transférer ma clé d'essai vers un nouveau périphérique flash ?](#trial-key-transfer) + +--- + +## Propriété de la licence + +

Suis-je propriétaire de ma licence de logiciel ?

+ +
+ Cliquez pour développer/réduire + + Lorsque vous [achetez une licence Unraid OS](https://unraid.net/pricing), vous possédez une copie perpétuelle du logiciel. Votre licence est valable pour toujours et n'expire pas, même si vous choisissez de ne pas payer les futures mises à jour. +
+ +
+ +--- + +## Achat + +

Comment acheter Unraid ?

+ +
+ Cliquez pour développer/réduire + + Vous avez deux options pour acheter Unraid : + + 1. **Depuis le %%WebGUI|web-gui%% :** Si vous avez commencé un essai, vous pouvez acheter une licence ou faire une mise à niveau directement depuis le menu en haut à droite dans le %%WebGUI|web-gui%%. + 2. **Avec un code d'activation :** Achetez un code d'activation de licence Unraid sur le [site Web Unraid](https://unraid.net/pricing). Les codes d'activation n'expirent pas et peuvent être échangés à tout moment. + + Toutes les licences sont par serveur. Utilisez l'essai gratuit de 30 jours pour vous assurer qu'Unraid répond à vos besoins avant d'acheter, car tous les achats sont définitifs. +
+ +
+ +

Comment échanger un code d'activation de licence ?

+ +
+ Cliquez pour développer/réduire + + 1. Achetez un code d'activation sur le [site Web Unraid](https://unraid.net/pricing). Votre code sera sur votre reçu d'achat. + 2. Configurez votre serveur Unraid en utilisant le [guide de démarrage](../getting-started/set-up-unraid/create-your-bootable-media.mdx). + 3. Connectez-vous à l'%%WebGUI|web-gui%% de votre serveur Unraid (`http://tower` ou `http://tower.local` par défaut). + 4. Connectez-vous à votre compte Unraid.net. + 5. Sélectionnez **Échanger le code d'activation** et entrez votre code. + 6. Votre clé de licence vous sera envoyée par email avec les instructions d'installation. + + :::important + Les codes d'activation sont à usage unique pour générer votre fichier clé de licence Unraid. + ::: + + :::note[Vidéo d'instructions] + Regardez la [vidéo d'instructions du code d'activation](https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2) pour une guidance détaillée. + ::: +
+ +
+ +

Je suis un revendeur / OEM nécessitant l'achat d'une licence au nom de mon client. Que dois-je faire ?

+ +
+ Cliquez pour développer/réduire + + Vous pouvez acheter une licence via le %%WebGUI|web-gui%% ou en obtenant un code d'activation sur le [site Unraid](https://unraid.net/pricing). + + Lors de la caisse, sélectionnez l'option "OEM" et entrez les détails de votre achat, y compris le nom et l'adresse e-mail de votre client. La clé de licence sera émise au nom de votre client et lui sera envoyée directement. Vous trouverez également un lien pour télécharger la facture après le paiement. + + Pour les tarifs en gros pour les revendeurs/FEO (10 licences ou plus), [contactez Unraid](https://unraid.net/contact) pour un tarif spécial. +
+ +
+ +--- + +## Gestion de la licence + +

Comment puis-je mettre à niveau ma licence Unraid ?

+ +
+ Cliquez pour développer/réduire + + Vous pouvez mettre à niveau votre licence à tout moment depuis le %%WebGUI|web-gui%% (***Outils → Enregistrement***) ou [via le portail de compte](https://account.unraid.net/keys) (en cliquant sur **••• Plus** et en sélectionnant **Mettre à niveau la clé**). + + | Chemin de mise à niveau | Frais de mise à niveau ponctuels | Nouvelle limite de périphériques¹ | + | ----------------------- | -------------------------------- | --------------------------------- | + | Starter → Unleashed | 69 $ USD | Illimité² | + | Starter → À vie | 209 $ USD | Illimité² | + | Unleashed → À vie | 149 $ USD | Illimité² | + | Basique → Unleashed | 49 $ USD | Illimité² | + | Plus → Unleashed | 19 $ USD | Illimité² | + | Basique → Plus | 89 $ USD | Jusqu'à 12 périphériques¹ | + | Basique → Pro | 139 $ USD | Jusqu'à 30 périphériques¹ | + | Plus → Pro | 109 $ USD | Jusqu'à 30 périphériques¹ | + + **Frais d'extension annuelle** (Starter et Unleashed uniquement) : 36 $ USD + + 1 Le terme dispositifs de stockage attachés se réfère au nombre total de disques que vous pouvez attacher avant de démarrer l'%%array|array%% (ne comprend pas le dispositif de démarrage USB).\ + 2 "Illimité" signifie que vous n'êtes pas limité par la licence, mais par les contraintes matérielles et du système d'exploitation. Des dispositifs de stockage supplémentaires peuvent être utilisés pour les %%VMs|vm%%, dispositifs non assignés ou autres fonctionnalités d'Unraid.\* +
+ +
+ +

Comment installer manuellement ma clé de licence sur mon périphérique USB ?

+ +
+ +
+ +
+ +

Comment puis-je déterminer mon type d'enregistrement ?

+ +
+ Cliquez pour développer/réduire + + Accédez à ***Outils → Inscription*** dans le %%WebGUI|web-gui%%. Ici, vous pouvez trouver votre type de licence actuel et les détails d'inscription. +
+ +
+ +--- + +## Types de licence et fonctionnalités + +

Unraid OS est-il un abonnement ?

+ +
+ Cliquez pour développer/réduire + + Non. Unraid OS est une **licence perpétuelle** : + + - **Starter** et **Unleashed** incluent une année de mises à jour, après laquelle vous pouvez payer un frais d'extension annuel de 36 $ USD (optionnel). + - **À vie** inclut des mises à jour pour la durée de vie du produit. + - Si vous choisissez de ne pas payer le frais d'extension, vous conservez votre version existante indéfiniment ; vous ne recevrez simplement plus les nouvelles mises à jour majeures. + + Vous continuez à posséder votre licence même si vous arrêtez de payer pour les mises à jour. +
+ +
+ +

Que se passe-t-il si je ne prolonge pas ma licence Starter ou Unleashed ?

+ +
+ Cliquez pour développer/réduire + + - Vous conservez votre licence et pouvez utiliser votre version actuelle d'Unraid OS indéfiniment. + - Vous ne recevrez pas de nouvelles mises à jour de fonctionnalités ou de mises à niveau de version majeure. + - Vous restez éligible pour les versions correctives et les mises à jour de sécurité au sein de la même version mineure (par exemple, 7.1.x si votre licence a expiré à 7.1.0). + - Une fois qu'une nouvelle version mineure est publiée (par exemple, 7.2.0), seules les correctifs de sécurité sont fournis pour la version mineure précédente. + - Lorsqu'une version atteint sa fin de vie (EOL), plus aucune mise à jour n'est fournie. + - Vous pouvez payer le frais d'extension à tout moment pour retrouver accès aux dernières mises à jour. +
+ +
+ +

Que se passe-t-il avec les préversions (Beta/RC) ?

+ +
+ Cliquez pour développer/réduire + + - Les versions préliminaires (Beta et Candidate de Relâche) sont destinées au test et peuvent contenir des bogues. + - Installez uniquement les pré-versions sur des systèmes non productifs. + - Le support des pré-versions se termine lorsque la version stable est publiée. + - Votre licence doit être éligible aux mises à jour de l'OS à la date de la version stable pour recevoir la version stable. + - Si votre licence expire avant la version stable, vous devez étendre votre licence pour effectuer une mise à niveau ou revenir à une version stable supportée. + - Votre licence reste valide après expiration ; vous avez seulement besoin d'une licence active pour les nouvelles mises à jour. +
+ +
+ +

Que signifie "illimité" pour les périphériques de stockage attachés ?

+ +
+ Cliquez pour développer/réduire + + "Illimité" se réfère au nombre maximum de dispositifs de stockage que vous pouvez attacher à votre serveur Unraid, selon le niveau de licence. + + Voici les limites actuelles : + + | Niveau de Licence | %%Parité\|parity%%-Protégé %%Tableau\|array%% | Pools Nommés | Périphériques par Pool | Total des Dispositifs de Stockage | + | ----------------- | ---------------------------------------------- | ------------ | ---------------------- | --------------------------------- | + | Débutant | Jusqu’à 6 | 1 | Jusqu’à 6 | 6 | + | Libéré | Jusqu'à 30 (28 données + 2 %%parity\|parity%%) | Jusqu’à 35 | Jusqu’à 60 | Illimité\* | + | À Vie | Jusqu'à 30 (28 données + 2 %%parity\|parity%%) | Jusqu’à 35 | Jusqu’à 60 | Illimité\* | + + \* *"Illimité" signifie que vous n'êtes pas limité par la licence, mais par les contraintes matérielles et du système d'exploitation. Des dispositifs de stockage supplémentaires peuvent être utilisés pour des machines virtuelles, des dispositifs non assignés ou d'autres fonctionnalités Unraid.* +
+ +
+ +--- + +## Dépannage + +

Que se passe-t-il si mon périphérique USB échoue ? Dois-je racheter une licence ?

+ +
+ Cliquez pour développer/réduire + + Non, vous n'avez pas besoin de racheter votre licence si votre périphérique USB tombe en panne. + + Pour transférer votre licence : + + 1. Préparez un nouveau [périphérique USB de haute qualité](../getting-started/set-up-unraid/create-your-bootable-media.mdx). + 2. Installez Unraid OS sur le nouveau périphérique en utilisant le créateur de flash USB ou une méthode manuelle. + 3. Démarrez votre serveur avec le nouveau périphérique flash. + 4. Allez à ***Outils → Enregistrement*** dans le %%WebGUI|web-gui%%. + 5. Cliquez sur **Remplacer la Clé** et suivez les instructions pour transférer votre licence sur le nouvel appareil. + + Le premier transfert peut être effectué à tout moment, tandis que les transferts suivants sont autorisés une fois tous les 12 mois via le système automatisé. Si vous avez besoin de transférer votre licence à nouveau avant la période de 12 mois, contactez le support Unraid avec vos anciens et nouveaux USB %%GUID|guid%%s pour une assistance manuelle. + + :::tip + Sauvegardez régulièrement votre dispositif USB à l'aide de [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) pour simplifier la récupération et éviter la perte de données. + ::: +
+ +
+ +

Que dois-je faire si je reçois une erreur lors de l'enregistrement de mon périphérique : '####-####-####-#############' est déjà enregistré pour un autre utilisateur ?

+ +
+ Cliquez pour développer/réduire + + Cette erreur indique que votre dispositif USB flash n'a pas d'identifiant matériel unique (%%GUID|guid%%), ce qui l'empêche d'être enregistré avec Unraid OS. Pour résoudre ce problème, utilisez une autre clé USB. Les marques connues pour avoir des %%GUID|guid%%s uniques incluent Lexar, Samsung, Kingston et PNY. +
+ +
+ +--- + +## Licences d'Essai + +

Comment fonctionnent les essais d'Unraid ?

+ +
+ Cliquez pour développer/réduire + + - Les licences d'essai durent 30 jours et offrent la fonctionnalité complète d'Unraid sans limitation de dispositif de stockage. + - Vous aurez besoin d'un périphérique flash USB de qualité et de l'outil créateur USB Unraid. + - Consultez le [guide de démarrage](../getting-started/set-up-unraid/create-your-bootable-media.mdx) pour les instructions de configuration du serveur. + - Les licences d'essai nécessitent une connexion Internet au démarrage pour une validation initiale. + - Vous pouvez prolonger votre essai de 15 jours supplémentaires si vous avez besoin de plus de temps pour évaluer Unraid. Vous pouvez le faire deux fois pour un total de 60 jours (détails ci-dessous). +
+ +
+ +

Comment prolonger mon essai ?

+ +
+ Cliquez pour développer/réduire + + Les clés d'enregistrement d'essai Unraid durent 30 jours et peuvent être prolongées deux fois pour 14 jours supplémentaires chaque fois. Après deux prolongations d'essai, aucune extension supplémentaire ne peut être accordée. Pour demander une extension, vous devez arrêter l'array, vous rendre sur la page Outils > Inscription, et cliquer sur "Demander une extension." + + Si les deux extensions supplémentaires n'ont pas été utilisées, et que cette option n'apparaît pas pour vous, ou si elle ne fonctionne pas pour une raison quelconque, veuillez nous envoyer l'identifiant GUID du flash drive depuis Outils - Inscription à [contact@unraid.net](mailto:contact@unraid.net), ou via notre portail de support à support.unraid.net et nous serons heureux de vous aider. +
+ +
+ +

Puis-je transférer ma clé d'essai sur un nouveau périphérique ?

+ +
+ Cliquez pour développer/réduire + + Non, les enregistrements d'essai ne sont valides que sur le dispositif USB flash d'origine. Si vous souhaitez acheter une licence, vous pouvez transférer votre configuration sur un nouveau dispositif et ensuite acheter une clé d'enregistrement ; cependant, l'essai ne peut pas être poursuivi sur un nouvel appareil. +
+ +
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx new file mode 100644 index 0000000000..e038df469c --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx @@ -0,0 +1,3 @@ +1. Si votre serveur fonctionne et que le partage flash est visible sur votre réseau, accédez au partage flash sous **Réseau**. +2. Glissez-déposez le fichier clé de licence dans le répertoire `config`. +3. Dans le %%WebGUI|web-gui%%, **Arrêtez** le %%array|array%%, puis **Démarrez** de nouveau le %%array|array%% pour appliquer la nouvelle clé. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx new file mode 100644 index 0000000000..20a28b0063 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx @@ -0,0 +1,6 @@ +1. Assurez-vous d'avoir une sauvegarde récente de votre clé USB. Utilisez [Unraid Connect](../../../../unraid-connect/overview-and-setup.mdx) (recommandé) ou l'option de sauvegarde locale dans ***Principal → Flash → Sauvegarde de Flash***. +2. Éteignez votre serveur Unraid et retirez le périphérique flash USB. +3. Insérez le périphérique USB dans un autre ordinateur. +4. Ouvrez la clé USB et copiez votre fichier `.key` dans le dossier `/config`. + *Assurez-vous qu'il s'agit du seul fichier `.key` présent—supprimez tous les autres.* +5. Éjectez en toute sécurité le périphérique flash USB, réinstallez-le dans votre serveur et redémarrez. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx new file mode 100644 index 0000000000..47f5fde793 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx @@ -0,0 +1,16 @@ +# Dépannage + +Les systèmes Unraid sont conçus pour la fiabilité, mais des problèmes peuvent parfois survenir. Cette section vous guidera dans la résolution des problèmes courants et fournira les meilleures pratiques pour un dépannage efficace. + +:::info[Built-in aide] +Le WebGUI offre une aide détaillée et contextuelle pour presque tous les paramètres. Cliquez sur le nom de n'importe quel champ ou utilisez l'icône ![Aide](/img/Help-icon.jpg) en haut à droite pour accéder à l'aide pour l'ensemble de la page. +::: + +:::tip[Stay informé] +Activez les notifications sous ***Paramètres → Préférences utilisateur → Paramètres de notification*** pour recevoir des alertes sur la santé de votre système. Les problèmes non résolus peuvent s'aggraver s'ils ne sont pas pris en charge. +::: + +Pour un support supplémentaire, les forums communautaires d'Unraid sont une ressource fantastique. Lorsque vous demandez de l'aide, n'oubliez pas de : + +- **Capturez les diagnostics avant de redémarrer.**\n Allez dans ***Outils → Diagnostics*** pour générer un fichier de diagnostics qui préserve les journaux et détails système nécessaires à la résolution des problèmes. +- **Partagez le fichier de diagnostic** dans un [post sur les forums Unraid](http://forums.unraid.net/) pour aider les autres à vous aider efficacement. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json new file mode 100644 index 0000000000..de51fe9553 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Utiliser Unraid pour", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json new file mode 100644 index 0000000000..247d89edc3 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Créer des machines virtuelles", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx new file mode 100644 index 0000000000..1b620094e9 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx @@ -0,0 +1,212 @@ +--- +sidebar_position: 1 +sidebar_label: Vue d'ensemble & préparation du système +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import HvmSupport from './partials/hvm-support.mdx'; +import IommuSupport from './partials/iommu-support.mdx'; +import GpuNvidia from './partials/gpu-nvidia.mdx'; +import GpuAmd from './partials/gpu-amd.mdx'; + +# Vue d'ensemble & préparation du système + +Les machines virtuelles (VM) permettent d'exécuter des systèmes d'exploitation complets, tels que Windows, macOS ou Linux, sur votre serveur Unraid, parallèlement aux conteneurs Docker. + +Les %%VMs|vm%% sont idéales pour : + +- Exécuter des applications qui nécessitent un système d'exploitation complet ou qui ne sont pas disponibles en tant que conteneurs. +- Attribuer du matériel dédié aux systèmes invités, comme les GPU ou les périphériques USB. +- Tester, développer, jouer ou exécuter des logiciels anciens. +- Héberger plusieurs environnements isolés pour différentes charges de travail. + +Pour une liste des systèmes d'exploitation testés avec Unraid, voir la page [%%VM|vm%% Setup](./vm-setup.mdx). + +
+ **Sous le capot :** Développez pour en savoir plus sur la pile technologique derrière la virtualisation d'Unraid + + La pile de virtualisation d’Unraid est conçue pour être flexible et performante, utilisant plusieurs technologies open-source pour prendre en charge une gestion efficace des %%machines virtuelles (VM)|vm%%. Cette vue d'ensemble explique les composants clés et leur interaction de manière conviviale. + +

Technologies de base

+ + | Technologie | Ce qu'il fait | Pourquoi c'est important | + | --------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | + | %%KVM\|kvm%% | Agit en tant que %%hyperviseur\|hypervisor%% intégré au noyau Linux. | Permet à Unraid de faire fonctionner les %%VMs\|vm%% en douceur avec accélération matérielle et un minimum de surcharge. | + | %%QEMU\|qemu%% | Émule le matériel essentiel (comme la carte mère, le CPU, et les contrôleurs) pour les %%VMs\|vm%%. | Fonctionne avec %%KVM\|kvm%% pour créer un environnement virtuel complet pour les systèmes d'exploitation invités. | + | %%Libvirt\|libvirt%% | Gère les définitions des %%VM\|vm%%, ainsi que les interfaces de stockage et réseau. | Stocke les configurations de %%VM\|vm%% dans `libvirt.img` et fournit une API de gestion cohérente. | + | %%VNC\|vnc-session%% | Offre un accès graphique à distance aux %%VM\|vm%%. | Permet d'interagir avec les %%VMs\|vm%% depuis n'importe quel appareil via un navigateur ou un client %%VNC\|vnc-session%%. | + | %%VirtIO\|virtio%% | Fournit des pilotes paravirtualisés haute performance pour les périphériques réseau et disque. | Améliore la vitesse et l'efficacité des %%VM\|vm%%, nécessitant l'installation de pilotes %%VirtIO\|virtio%% dans l'OS invité. | + | %%VirtFS\|virtfs%% (`9p`) | Facilite le partage de systèmes de fichiers entre l'hôte et les invités basés sur Linux. | Utile pour le développement et les besoins avancés de partage de fichiers. | + | %%HVM\|hvm%% | Supporte la virtualisation assistée par matériel (%%Intel VT-x\|intel-vt-x%%, %%AMD-V\|amd-v%%). | Nécessaire pour faire fonctionner les %%VMs\|vm%% avec une accélération matérielle complète. | + | %%VFIO\|vfio%% & %%IOMMU\|iommu%% | Permettent le passage direct de périphériques PCI aux %%VMs\|vm%% (comme les GPU et périphériques USB). | Essentiel pour obtenir une performance quasi-native et maintenir l'isolement sécuritaire. | + +

Comment Unraid implémente le support de %%VM|vm%%

+ + - %%KVM|kvm%%/%%QEMU|qemu%% : La virtualisation d'Unraid repose fondamentalement sur %%KVM|kvm%% et %%QEMU|qemu%%, offrant de robustes capacités d'hébergement de %%VM|vm%%. + - %%Libvirt|libvirt%%: Les définitions de %%VM|vm%% sont stockées en tant que fichiers XML dans `libvirt.img` (typiquement trouvé dans le partage `system`). + - **Partages par défaut** : + - `domains`: Contient les %%images de disque virtuel|virtual-disk-images%% de %%VM|vm%%. + - `isos`: Contient les ISOs d'installation et les images de pilotes. + - `system`: Stocke `libvirt.img` et d'autres fichiers système critiques. + - Tous par défaut à **Utiliser %%Cache|cache%% : Préféré** pour une performance optimale. + - %%VNC|vnc-session%% : Unraid dispose d'un client NoVNC intégré pour un accès facile via navigateur aux %%VMs|vm%%, avec la possibilité d'utiliser des clients %%VNC|vnc-session%% externes au besoin. + + :::tip + La plupart des utilisateurs n'ont pas besoin d'interagir directement avec ces technologies, mais comprendre ce qui se passe "sous le capot" peut être incroyablement utile pour le dépannage et la personnalisation avancés. Pour des informations plus détaillées, consultez la documentation officielle pour [KVM](https://www.linux-kvm.org/page/Main_Page), [QEMU](https://www.qemu.org/), [Libvirt](https://libvirt.org/) et [VirtIO](https://www.linux-kvm.org/page/Virtio). + ::: +
+ +## Exigences + +Pour exécuter des %%VMs|vm%% sur Unraid, votre système doit satisfaire aux exigences suivantes : + +| Composant | Exigence minimale | Recommandé pour les %%VMs\|vm%% & le passage %%GPU\|gpu-passthrough%%. | +| ---------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------ | +| CPU | 64 bits, 4 cœurs, 2,4 GHz+ (Intel/AMD) | 8+ cœurs, 3,0 GHz+ (Intel Core i7/i9, AMD Ryzen 7/9, ou plus récent) | +| Virtualisation | %%HVM\|hvm%% (%%Intel VT-x\|intel-vt-x%% ou %%AMD-V\|amd-v%%) | %%HVM\|hvm%% + %%IOMMU\|iommu%% (Intel VT-d ou AMD-Vi) | +| RAM | 8 Go | 16 Go ou plus (ajoutez de la RAM pour chaque %%VM\|vm%% active). | +| Stockage | SSD/NVMe pour les disques de %%VM\|vm%%. | NVMe haut de gamme pour une meilleure performance | +| Réseau | Ethernet Gigabit (PCIe recommandé) | Ethernet 2,5G/10G pour des charges de travail exigeantes | +| GPU (facultatif) | NVIDIA RTX moderne (recommandé) ou AMD Radeon RX | Série RTX 3000/4000 (NVIDIA recommandée pour une meilleure compatibilité de passage) | + +:::tip[GPU compatibilité de passage] +NVIDIA GPUs are **generally recommended** for %%VM|vm%% passthrough due to better compatibility and reliability. AMD GPUs can be more challenging to pass through, and some newer models (including RX 7000/9000 series) may not work reliably or at all with %%VMs|vm%%. If you're planning to use %%GPU passthrough|gpu-passthrough%%, consider NVIDIA options for the best experience. +::: + +:::note +Votre BIOS de carte mère doit activer la virtualisation assistée par matériel et le support %%IOMMU|iommu%%. Recherchez les paramètres étiquetés « %%Intel VT-x|intel-vt-x%% », « Intel VT-d », « %%AMD-V|amd-v%% » ou « AMD-Vi ». +::: + +### Ressources VM + +| Type de %%VM\|vm%% | RAM par %%VM\|vm%% | vCPUs par %%VM\|vm%% | Exemples d'utilisation | +| ---------------------- | ------------------ | -------------------- | ------------------------------------------------ | +| Serveur virtuel | 1–2 GB | 1–2 | Linux léger, utilitaires %%VMs\|vm%% | +| Bureau virtuel | 4–8 GB | 2–4 | Windows 11, bureau Ubuntu, RDP | +| %%VM\|vm%% hybride/jeu | 8–16 GB + | 4–8+ | %%GPU passthrough\|gpu-passthrough%%, gaming, ML | + +- La mémoire et le CPU ne sont consommés que lorsque les %%VMs|vm%% sont en cours d'exécution. +- Prévoir pour l'usage de pointe si plusieurs %%VMs|vm%% fonctionnent simultanément. +- Toujours allouer les ressources en fonction des besoins de l'OS invité et de la charge de travail. + +### HVM & IOMMU : Ce qu'ils permettent + + + + + + + + + + + +:::important[How pour vérifier la prise en charge] +Dans le %%WebGUI|web-gui%%, cliquez sur **Info** dans le menu supérieur. + +- **Support HVM :** Indique si la virtualisation matérielle est présente et activée. +- **Support IOMMU :** Indique si le passage de périphérique est disponible et activé. +::: + +--- + +### Passage de périphérique graphique + +Passer un GPU à une %%VM|vm%% permet d'obtenir des performances graphiques quasi-native, ce qui le rend idéal pour le jeu, le travail créatif ou l'apprentissage machine. + + + + + + + + + + + +:::tip[General conseils] +- Utilisez %%OVMF|ovmf%% (%%UEFI|uefi%%) pour les %%VMs|vm%% avec des GPU modernes. +- Utilisez toujours la dernière version d'Unraid pour un meilleur support matériel. +- Les technologies comme NVIDIA Optimus peuvent permettre le %%GPU passthrough|gpu-passthrough%% pour les ordinateurs portables ou les configurations avancées, mais les résultats varient. +::: + +:::info[Always changement] +La compatibilité matérielle et des pilotes change rapidement. Avant d'acheter un GPU pour le passage, consultez les [forums Unraid](https://forums.unraid.net/) et la documentation du fournisseur pour des rapports à jour et des expériences utilisateur. +::: + +--- + +## Préparation du système + +Avant de créer des machines virtuelles, effectuez ces tâches de configuration essentielles pour vous assurer que votre système est prêt. + +### Ajuster les paramètres du BIOS + +Pour utiliser pleinement les capacités de virtualisation d'Unraid, votre BIOS doit activer la virtualisation assistée par matériel et la gestion de mémoire I/O. Recherchez des réglages étiquetés **Virtualisation**, %%Intel VT-x|intel-vt-x%%, **Intel VT-d**, %%AMD-V|amd-v%%, ou **AMD-Vi** et définissez-les sur **Activé**. + +:::note +Les interfaces BIOS varient selon le fabricant. Consultez le manuel de votre carte mère pour l'emplacement exact de ces réglages. +::: + +### Configurer un pont réseau + +Les %%machines virtuelles|vm%% peuvent se connecter à votre réseau en utilisant l'un des deux types de pont. Choisissez celui qui convient le mieux à vos besoins : + +| Type de pont | Description | Cas d'utilisation | +| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| **NAT privé (virbr0)** | Géré par %%libvirt\|libvirt%%. Cette option fournit un serveur DHCP interne et un sous-réseau isolé. Les %%VMs\|vm%% peuvent accéder à Internet et aux partages de fichiers hôtes, mais sont isolées des autres appareils réseau. | Idéal pour les %%VMs\|vm%% isolées ayant besoin d'un accès Internet et hôte mais sans visibilité LAN. | +| **Pont public (br0)** | Géré par Unraid. Cette option connecte directement les %%VMs\|vm%% à votre LAN, avec des IP assignées par votre routeur. Les adresses MAC sont préservées pour une attribution d'IP cohérente. | Idéal pour les %%VMs\|vm%% qui doivent fonctionner comme des appareils ordinaires sur votre réseau, accessibles depuis d'autres appareils. | + +:::important +Si votre serveur Unraid est connecté à un réseau Wi-Fi, il est recommandé d'utiliser le pont réseau **Private NAT (virbr0)** pour vos %%machines virtuelles|vm%%. En effet, les interfaces Wi-Fi ne supportent qu'une seule adresse MAC, ce qui limite l'utilisation de ponts publics et de types de réseau personnalisés. En utilisant le pont **virbr0**, vos %%VMs|vm%% auront un accès réseau complet via %%NAT|nat%%, bien qu'elles ne soient pas directement accessibles depuis d'autres appareils sur le réseau local (LAN). Cependant, vous pouvez toujours accéder aux %%VMs|vm%% via %%VNC|vnc-session%% à travers l'hôte. +::: + +- Activez le pont public dans ***Paramètres du réseau → Activer le bridage***. +- Définissez votre pont préféré comme le **Pont réseau par défaut** dans les paramètres du %%VM|vm%%. Vous devrez peut-être activer l'affichage avancé pour voir cette option. + +--- + +### Partages utilisateurs pour la virtualisation + +Unraid crée deux partages %%user shares|user-share%% par défaut pour la %%virtualization|virt%% : + +- `isos`: Ce partage stocke les fichiers média d'installation pour vos %%VMs|vm%%. +- `domains`: Ce partage contient les %%images de disques virtuels|virtual-disk-images%% et les fichiers de configuration de %%virtual machine|vm%%. + +Envisagez de créer un partage séparé pour les sauvegardes %%VM|vm%% afin de protéger vos données. + +

Recommandations de configuration du partage

+ +- Store active %%VM|vm%% %%virtual disk images|virtual-disk-images%% on a %%cache|cache%%-only share for the best performance. +- Utiliser des SSDs dans votre %%cache pool|cache-pool%% améliore considérablement la réactivité des %%VM|vm%%. +- %%Cache|cache%% usage for the `isos` share is optional. + +:::important +Ne stockez pas les %%machines virtuelles|vm%% actives sur un partage avec **Utiliser %%cache|cache%%** défini sur **Oui**. Cela peut amener les %%VMs|vm%% à être déplacées vers le %%array|array%% durant le processus %%Mover|mover%%, entraînant une dégradation des performances. +::: + +## Configurer les préférences de virtualisation + +Avant de commencer, assurez-vous que votre système est prêt pour la virtualisation (consultez [Préparation du système](#system-preparation)). Configurer vos préférences de %%virtualisation|virt%% dans Unraid aide à garantir que vos %%machines virtuelles (VM)|vm%% sont configurées pour des performances optimales et une compatibilité. + +Pour définir vos préférences de virtualisation : + +1. Dans le %%WebGUI|web-gui%%, allez à ***Paramètres → Gestionnaire de VMs***. +2. **Pour les VMs Windows :** + - Téléchargez les derniers pilotes %%VirtIO|virtio%% Windows ISO stables depuis le [dépôt officiel](https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md). + - Copiez le fichier ISO %%VirtIO|virtio%% dans votre partage **isos**. + - Dans **Gestionnaire de VMs**, utilisez le sélecteur de fichiers pour **Pilotes ISO Windows VirtIO** pour sélectionner l'ISO que vous venez de copier. + - (Optionnel) Remplacez l'ISO du pilote par défaut pour chaque %%VM|vm%% en **Vue avancée**. +3. **Sélectionnez un pont de réseau par défaut :** + - Choisissez `virbr0` pour un pont réseau privé, ou sélectionnez un pont public (par ex. `br0`) créé dans **Paramètres réseau**. + - (Optionnel) Remplacez le pont de réseau par défaut pour chaque %%VM|vm%% en **Vue avancée**. +4. **Remplacement ACS PCIe (Avancé) :** + - Activez le **Remplacement ACS PCIe** sur **Activé** si vous devez attribuer plusieurs appareils PCI (comme des %%GPUs|gpu-passthrough%% ou des contrôleurs USB) à différentes %%VMs|vm%%. + - Cette option décompose les groupes %%IOMMU|iommu%%, permettant un passage de dispositif plus flexible. + +:::warning +Ce paramètre est expérimental et peut affecter la stabilité du système. Utilisez-le avec prudence. +::: + +5. Cliquez sur **Appliquer** pour enregistrer vos paramètres. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx new file mode 100644 index 0000000000..c741562807 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx @@ -0,0 +1,3 @@ +- Les séries Radeon RX 6000 sont généralement fiables pour le passage. +- Les séries RX 7000 peuvent avoir quelques problèmes non résolus ; veuillez vérifier les derniers rapports de compatibilité sur les [forums Unraid](https://forums.unraid.net/). +- Le bogue de réinitialisation AMD a été principalement résolu dans les modèles récents, mais il est toujours conseillé de vérifier avec votre matériel. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx new file mode 100644 index 0000000000..0476691838 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx @@ -0,0 +1,2 @@ +- Tous les RTX modernes (séries 3000/4000) supportent le passage et sont recommandés pour la meilleure performance. +- Les cartes Quadro et certains anciens modèles GTX sont également pris en charge, mais il est important de vérifier la compatibilité actuelle des pilotes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx new file mode 100644 index 0000000000..c33c86483e --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx @@ -0,0 +1,5 @@ +%%HVM|hvm%% (Machine virtuelle matérielle), également connu sous le nom de %%Intel VT-x|intel-vt-x%% ou %%AMD-V|amd-v%%, permet à votre CPU d'exécuter des %%machines virtuelles|vm%% avec accélération matérielle. + +- Nécessaire pour créer et exécuter n'importe quelle %%VM|vm%% sur Unraid. +- Fournit une virtualisation CPU efficace et de meilleures performances par rapport à la virtualisation uniquement logicielle. +- La plupart des CPU modernes (2015 et plus récents) incluent cette fonctionnalité. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx new file mode 100644 index 0000000000..86efef7196 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx @@ -0,0 +1,5 @@ +Le %%IOMMU|iommu%% (Unité de Gestion de Mémoire Entrée/Sortie, également connu sous le nom de Intel VT-d ou AMD-Vi) permet un passage sécurisé et efficace des dispositifs vers les %%VMs|vm%%. + +- Nécessaire pour attribuer des périphériques PCIe (GPU, contrôleurs USB, disques NVMe) directement à une %%VM|vm%%. +- Fournit un isolement et une protection de la mémoire, empêchant les périphériques d'accéder à des régions de mémoire non autorisées. +- Essentiel pour %%GPU passthrough|gpu-passthrough%%, le réseau avancé et les charges de travail hautes performances. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx new file mode 100644 index 0000000000..eae4733aec --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx @@ -0,0 +1,5 @@ +1. Téléchargez l'[ISO de Windows 11](https://www.microsoft.com/en-us/software-download/windows11). +2. Téléchargez l'ISO vers votre partage `isos` sur votre serveur Unraid. +3. Modifiez votre modèle %%VM|vm%% pour démarrer à partir de l'ISO dans le partage `isos`. +4. Démarrez le %%VM|vm%% à partir de l'ISO et effectuez l'installation propre. +5. Réinstallez vos applications et restaurez vos données à partir de la sauvegarde. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx new file mode 100644 index 0000000000..fe5187cd88 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx @@ -0,0 +1,3 @@ +1. Téléchargez l'[Assistant d'installation de Windows 11](https://www.microsoft.com/en-us/software-download/windows11). +2. Exécutez l'installateur et suivez les instructions à l'écran. +3. Redémarrez lorsque cela est demandé. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx new file mode 100644 index 0000000000..a930cbf70c --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx @@ -0,0 +1,3 @@ +1. Dans ***Paramètres → Gestionnaire de VM***, définissez un chemin ISO %%VirtIO|virtio%% par défaut (ex. : `/mnt/user/isos/virtio-win.iso`). +2. Lors de la création d'une %%VM|vm%% Windows, l'ISO sera automatiquement attaché en tant que CD-ROM virtuel. +3. Lors de l'installation de Windows, chargez les pilotes depuis l'ISO %%VirtIO|virtio%% quand il vous sera demandé pour les contrôleurs de stockage. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx new file mode 100644 index 0000000000..168b0aeea8 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx @@ -0,0 +1,14 @@ +1. Téléchargez l'[ISO des derniers pilotes stables VirtIO](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso) et enregistrez-le dans votre partage `isos` sur Unraid. + + :::tip[Vérifier l'intégrité du téléchargement] + Téléchargez le [fichier CHECKSUM](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/CHECKSUM) depuis le même répertoire pour vérifier l'intégrité de l'ISO. Cela permet d'assurer que votre téléchargement est complet et n'a pas été altéré. + ::: + +2. Modifiez les paramètres de votre %%VM|vm%% pour pointer vers le nouvel ISO dans le partage `isos`. + +3. Dans le Gestionnaire de Périphériques Windows : + - Cliquez droit sur les périphériques avec un avertissement jaune + - Sélectionnez **Mettre à jour le pilote → Parcourir mon ordinateur** + - Accédez au lecteur ISO %%VirtIO|virtio%% (généralement `D:\` ou `E:\`) + +4. Redémarrez après avoir mis à jour tous les pilotes. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx new file mode 100644 index 0000000000..6792339901 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx @@ -0,0 +1,140 @@ +--- +sidebar_position: 4 +sidebar_label: Unraid en tant que VM +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Unraid en tant que VM + +L'exécution d'Unraid en tant que machine virtuelle sur votre serveur Unraid principal peut être très utile pour le développement, le test et l'évaluation. Cette configuration vous permet de : + +- Développer et tester des plugins ou des conteneurs Docker sans risquer votre serveur de production. +- Évaluer les nouvelles versions d'Unraid avant de mettre à jour votre système principal. +- Créer des environnements isolés pour le dépannage ou la formation. + +:::caution[Important consid�e9rations] +- Lime Technology ne prend pas officiellement en charge cette configuration pour les données de production. +- La virtualisation introduit une certaine surcharge ; attendez-vous à des performances réduites par rapport à l'exécution directe sur le matériel. +- Vous aurez besoin d'une clé de licence valide distincte pour la %%VM|vm%%. +::: + +:::note\[Prerequisites] + +- Une clé de licence Unraid valide pour la %%VM|vm%% +- Un lecteur flash USB dédié (utilisez un fabricant différent de celui du lecteur de démarrage de votre hôte) +- Version 6.4.0 ou supérieure d'Unraid pour la %%VM|vm%% (les anciennes versions nécessitent une configuration manuelle) + +::: + +Pour faire fonctionner Unraid en tant que %%VM|vm%% : + +
+ 1. Préparez la clé USB pour la VM - Cliquez pour développer/réduire + + Préparer votre clé USB est crucial pour un processus de démarrage VM homogène et fiable. Voici comment configurer votre environnement VM avec un périphérique de démarrage unique et correctement configuré. + + 1. Utilisez l'outil [Unraid USB Creator](https://unraid.net/download) sur votre bureau pour préparer le lecteur flash : + - Sélectionnez **Autoriser le démarrage EFI**. + - Définir un nom de serveur unique (comme `TowerVM` si votre hôte est `Tower`). + - Écrire l'image sur le lecteur flash. + + 2. Modifier les fichiers de configuration : + - Renommer l'étiquette du lecteur flash de `UNRAID` en un nom unique (par exemple, `UNRAID-VM`). + + - Modifier le fichier `syslinux/syslinux.cfg` sur le lecteur flash : + + ``` + label Unraid OS + menu default + kernel /bzimage + append unraidlabel=UNRAID-VM initrd=/bzroot + ``` + + - Effectuez ce changement dans tous les modes de démarrage (GUI/Mode Sans Échec) dans le fichier. + + - Copiez le fichier `syslinux.cfg` mis à jour dans `EFI/boot/syslinux.cfg` + + 3. Créez un fichier nommé `startup.nsh` à la racine du lecteur flash avec ce contenu : + + ``` + \EFI\boot\bootx64.efi + ``` + + 4. Notez le fabricant du lecteur flash (vous en aurez besoin pour la configuration %%VM|vm%% plus tard). +
+ +
+ 1. Préparez la clé USB pour la VM - Cliquez pour développer/réduire + + La configuration de la %%VM|vm%% Unraid nécessite des paramètres spécifiques pour garantir un fonctionnement correct. + + Pour créer le modèle %%VM|vm%% : + + 1. Sur le serveur Unraid hôte, allez dans ***Paramètres → Gestionnaire de VM*** et assurez-vous que les %%VM|vm%% sont activées. + 2. Accédez à l'onglet **VMs** et cliquez sur **Add VM**. + 3. Sélectionnez le modèle **Slackware**, car il correspond le mieux à Unraid. + 4. (Optionnel) Si disponible, remplacez l'icône Slackware par l'icône Unraid. + 5. Nommez la %%VM|vm%% (par ex., `UNRAID-VM`). + 6. (Optionnel) Ajoutez une description, telle que *"Environnement de test Unraid - vX.XX.X."* + 7. Attribuer des ressources : + - CPUs : 2-4 cœurs + - RAM : 4-8 Go (définir Initial et Max avec la même valeur) + 8. Définissez **Type de machine** sur **Q35 (dernier)**. + 9. Définissez **BIOS** sur **OVMF** et **Contrôleur USB** sur **3.0 (QEMU XHCI)**. + 10. Configurer les disques virtuels : + - Ajouter des %%vDisks|vdisk%% pour le cache/les données en utilisant le format **RAW** et le bus **SATA**. + - Différenciez les tailles de disque pour une identification facile (par exemple, %%parity|parity%% > données > %%cache|cache%%). + 11. Laissez les paramètres par défaut pour les graphiques, le son et le réseau. + 12. Sous **Périphériques USB**, sélectionnez la clé USB par **fabricant**, pas par étiquette. + + :::important + La clé USB de la VM doit être d'un fabricant différent de celui du disque de démarrage de l'hôte. Si elles sont identiques, le lecteur VM ne sera pas visible. + ::: +
+ +
+ 2. Configurez la VM sur l'hôte - Cliquez pour développer/réduire + + Pour lancer la %%VM|vm%% après la configuration : + + 1. Décochez **Démarrer la VM après création** si vous souhaitez un contrôle manuel. + 2. Cliquez sur **Créer**. + 3. Dans l'onglet **VMs**, cliquez sur l'icône %%VM|vm%% Unraid et sélectionnez **Démarrer avec console (%%VNC|vnc-session%%)**. + 4. Surveillez le processus de démarrage dans la console %%VNC|vnc-session%% et notez l'adresse IP de la %%VM|vm%% affichée avant la connexion. +
+ +
+ 3. Créez et démarrez la VM - Cliquez pour développer/réduire + + Une fois la %%VM|vm%% en cours d'exécution, configurez-la comme un serveur Unraid physique : + + 1. Accédez au **WebGUI** de la %%VM|vm%% à `http://[VM-IP]`. + 2. Allez à ***Paramètres → Identification*** : + - Définissez un **Nom de serveur** unique (par exemple, `Unraid-VM`). + - Ajoutez une description comme "Instance de développement." + 3. (Optionnel) Allez à ***Paramètres → Paramètres d'affichage*** et choisissez un thème de couleur différent pour le distinguer de l'hôte. + 4. Allez à ***Paramètres → Paramètres %%SMB|samba%% → Paramètres de groupe de travail*** et définissez **Maître local** sur *Non* pour éviter les conflits. + 5. Pour le passage à travers UPS (si l'hôte a un onduleur) : + - Allez à ***Paramètres → UPS*** sur la %%VM|vm%%. + - Définissez **Câble UPS** sur *Ether*. + - Définissez **Type d'onduleur** sur *net*. + - Entrez l'IP de l'hôte dans **Appareil**. + - Configurez **Temps d'exécution** pour éteindre la %%VM|vm%% avant l'hôte. + 6. Démarrez l'%%array|array%% avec vos périphériques configurés. + 7. Installez [**Applications pour la communauté**](https://unraid.net/community/apps) pour tester des plugins/Docker. + 8. Mettez à jour la %%VM|vm%% via ***Outils → Mettre à jour l'OS***, comme pour un serveur physique. +
+ +### Dépannage + +Si vous rencontrez une *erreur d'exécution* liée au dispositif USB flash après la modification des paramètres %%VM|vm%% : + +1. Modifiez la %%VM|vm%% et passez en **Vue XML**. +2. Recherchez le nœud `` qui définit le dispositif flash (généralement près de la fin). +3. Supprimez l'ensemble du bloc `...`. +4. Cliquez sur **Update**. +5. Ré-éditez la %%VM|vm%% en **Vue formulaire**. +6. Re-sélectionnez le lecteur flash sous **Périphériques USB**. +7. Cliquez de nouveau sur **Mettre à jour**. La VM devrait maintenant démarrer normalement. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx new file mode 100644 index 0000000000..1622837b04 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx @@ -0,0 +1,440 @@ +--- +sidebar_position: 5 +sidebar_label: Conversion et migration de VM +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Conversion et migration de VM + +Lorsque vous consolidez du matériel, préservez des systèmes hérités ou testez des mises à niveau dans un environnement virtuel, vous pouvez avoir besoin de convertir un disque physique ou de migrer un système existant vers une %%machine virtuelle|vm%% sur Unraid. Ce processus s'applique aux systèmes Linux et Windows, vous permettant d'exécuter votre installation en tant que %%VM|vm%% au sein de votre serveur Unraid. + +:::note\[Prerequisites] + +- Votre serveur Unraid doit répondre aux [exigences matérielles minimales pour la virtualisation](./overview-and-system-prep.mdx#requirements) (voir tableau ci-dessous). +- Le disque source doit être connecté à votre serveur Unraid (via SATA, USB ou comme périphérique non assigné). +- Assurez-vous d'avoir suffisamment d'espace libre dans votre **%%array|array%%** ou **%%cache pool|cache-pool%%** pour accueillir la nouvelle image de disque virtuel. +- Sauvegardez toutes les données critiques avant de démarrer le processus de conversion ou de migration. + +::: + +## Exigences matérielles + +| Composant | Exigence minimale | Recommandé pour de meilleures performances | +| ------------------- | ------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------- | +| **Processeur** | 64 bits avec virtualisation matérielle (%%Intel VT-X\|intel-vt-x%%/%%AMD-V\|amd-v%%) | Processeur multicœur avec VT-d/AMD-Vi pour le passage direct | +| **RAM** | 8 Go | 16 Go ou plus | +| **Stockage** | Un pool de cache SSD ou NVMe %%cache pool\|cache-pool%% avec espace suffisant | Un pool de cache NVMe dédié %%cache pool\|cache-pool%% pour le stockage %%VM\|vm%% | +| **Carte mère/BIOS** | %%UEFI\|uefi%% avec virtualisation activée | %%UEFI\|uefi%% avec %%IOMMU\|iommu%%/VT-d/AMD-Vi activé | + +--- + +## Convertir un disque physique en VM + +Migrer un système Linux ou Windows existant vers une %%machine virtuelle|vm%% sur votre serveur Unraid peut être un excellent moyen de gagner de l'espace matériel, de maintenir les systèmes hérités en fonctionnement ou de tester de nouvelles mises à niveau en toute sécurité. + +Pour convertir un disque physique en %%VM|vm%% : + + + +

Étape 1 : Préparer le disque physique

+ + 1. Connectez le disque source à votre serveur Unraid (en utilisant SATA ou USB). + 2. Connectez-vous au %%WebGUI|web-gui%% (`http://tower` ou `http://tower.local`). + 3. Cliquez sur l'onglet **Principal**. + 4. Démarrez l'**%%array|array%%** s'il n'est pas déjà en cours d'exécution. + 5. Trouvez votre disque sous **Périphériques non assignés**. + 6. Take note of the device letter (e.g., `sdb`, `sdc`) and disk size. You’ll need at least this free space on your **%%array|array%%** or **%%cache pool|cache-pool%%** for the new %%virtual disk|vdisk%%. + +

Étape 2 : Créer une nouvelle machine virtuelle

+ + Référez-vous au guide [Créer vos propres machines virtuelles](../create-virtual-machines/vm-setup.mdx#creating-your-own-virtual-machines), avec les exceptions suivantes : + + - Réglez le **BIOS** sur **OVMF**. + Assurez-vous de spécifier l'ISO des **pilotes VirtIO** pour des [performances optimales](./overview-and-system-prep.mdx#set-up-virtualization-preferences). + - Stockez les images %%VM|vm%% sur un **%%cache pool|cache-pool%%** au lieu d'un %%array|array%% pour les [meilleures performances](./overview-and-system-prep.mdx#user-shares-for-virtualization). + +

Étape 3 : Convertir le disque physique en image de %%disque virtuel|vdisk%%

+ + Ouvrez un terminal ([%%SSH|ssh%%](../../system-administration/advanced-tools/command-line-interface.mdx) ou console locale) et connectez-vous en tant que `root`. + + Utilisez la commande suivante pour convertir le disque physique en image de %%disque virtuel|vdisk%% : + + ``` + qemu-img convert -p -O raw /dev/sdX /mnt/user/[vdisk_share]/[vmname]/vdisk1.img + ``` + + - **/dev/sdX** : Remplacez par la lettre du périphérique de l'étape 1 (ex. : `/dev/sdb`) + - **\[vdisk\_share]** : Le partage où vous enregistrez vos images %%VM|vm%% + - **\[vmname]** : Le nom que vous souhaitez pour votre %%VM|vm%% + + **Décomposition de la commande :** + + - `qemu-img convert` : Cet outil est utilisé pour la conversion d'images disque. + - `-p` : Affiche la progression en pourcentage. + - `-O raw` : Définit le format de sortie sur brut (par défaut Unraid). + - `/dev/sdX` : La source correspond à votre disque physique. + - `/mnt/user/[vdisk_share]/[vmname]/vdisk1.img` : Destination pour l'image %%disque virtuel|vdisk%%. + + Attendez que l'opération soit terminée. Le fichier `.img` résultant sera le disque principal pour votre %%VM|vm%%. +
+ + +

Étape 1 : Modifier le XML pour votre machine virtuelle

+ + - Dans l'onglet %%VMs|vm%%, cliquez sur l'icône %%VM|vm%% et sélectionnez **Modifier XML** dans le menu contextuel. + + - Next, scroll down the XML and find the `` tag for the `` that has a `` file set to `vdisk1.img`. It should look like this: + + ```xml + + + + + + + + +
+ + ``` + + - Pour le modifier, changez l'attribut **bus** dans l'étiquette `` de `virtio` à `ide`. + + - Ensuite, supprimez entièrement la ligne `
` pour ce ``. + + - Votre XML mis à jour devrait ressembler à ceci : + + ```xml + + + + + + + + + ``` + + - Enfin, cliquez sur **Mettre à jour** pour sauvegarder vos modifications dans le XML de la %%machine virtuelle|vm%%. + +

Étape 2 : Installez les pilotes VirtIO depuis l'intérieur de la VM (guests Windows uniquement)

+ + - Ouvrez l'**Explorateur de fichiers Windows** et accédez au %%CD-ROM virtuel VirtIO|virtio%% pour en explorer le contenu. + - Naviguez vers le dossier **Balloon**. + - Dans ce dossier, trouvez le sous-dossier de votre **version de Windows OS** (par exemple, `w8.1`). + - Allez dans le sous-dossier **amd64**. + - Faites un clic droit sur le fichier **balloon.inf** et sélectionnez **Installer** dans le menu contextuel. (Vous devez activer la visibilité des extensions de fichiers pour cela.) + - Répétez ces étapes pour chacun des dossiers suivants : + - **NetKVM** + - **vioserial** + - **viostor** + - Après avoir installé les pilotes, revenez dans le CD-ROM virtuel et ouvrez le dossier **guest-agent**. + - Double-cliquez sur **qemu-ga-x64.msi** pour installer l'agent invité %%QEMU|qemu%%/%%KVM|kvm%%. + +

Étape 3 : Convertir à nouveau le bus de disque en VirtIO

+ + - Si votre %%VM|vm%% est en cours d'exécution, allez-y et **arrêtez-le**. + - Dans l'onglet **VMs**, cliquez sur l'icône %%VM|vm%% et sélectionnez **Modifier l'XML** dans le menu contextuel. + - Localisez la section `` pour `vdisk1.img` et changez `bus='ide'` en `bus='virtio'` dans la balise ``. + - Cliquez sur **Mettre à jour** pour enregistrer vos modifications dans le %%VM|vm%%. + - Vous pouvez maintenant démarrer votre %%machine virtuelle|vm%% convertie ! + + + +--- + +## Migration d'un disque physique vers une VM + +Vous pouvez exécuter une installation Windows directement à partir d'un disque physique dans une machine virtuelle (VM) Unraid. Cette méthode aide à migrer un système Windows existant sans le convertir en une image de disque virtuel. Pour un guide visuel, consultez le tutoriel de Spaceinvader One :\ +[How to pass through hard drives, convert disks, and test performance in Unraid VMs (YouTube)](https://www.youtube.com/watch?v=QaB9HhpbDAI). + +:::important[Choosing votre approche de migration] +Il existe deux méthodes courantes pour migrer une installation Windows vers une %%VM|vm%% sur Unraid : + +**Pass-through de disque physique** : utilise le disque original directement dans la %%VM|vm%%. + +- Avantages : Méthode la plus rapide, pas besoin de conversion d'image. +- Inconvénients : Prend un port SATA ; Unraid ne peut pas utiliser le disque à d'autres fins lorsqu'il est attaché à la VM. + +**Conversion d'image de disque** : convertit le disque physique en image de %%disque virtuel|vdisk%% (`.img`) à utiliser dans la %%VM|vm%%. + +- Avantages : Plus de flexibilité, permet d'utiliser le disque comme partage Unraid ou pour les snapshots. +- Inconvénients : Nécessite du temps et de l'espace libre pour le processus de conversion. + +Choisissez le « passthrough » si vous souhaitez une migration simple ou envisagez de démarrer en double sur le disque. Optez pour la conversion d'image pour une meilleure portabilité et des options de sauvegarde. +::: + +:::note\[Prerequisites] + +- Sauvegardez votre installation Windows avant de commencer. +- Ayez une clé USB de rechange prête pour les outils de récupération. +- Sélectionnez un outil de préparation matérielle qui permet à Windows de démarrer sur un matériel virtualisé en modifiant les pilotes et la couche d'abstraction matérielle (HAL) : + - **Microsoft Sysprep** (gratuit et intégré dans Windows 8.1 et versions ultérieures) + - **Acronis True Image 2025** (solution commerciale avec des fonctionnalités avancées de migration) +- Assurez-vous que votre serveur Unraid dispose d'un port SATA ou NVMe libre pour le disque physique. + +::: + +

Étape 1 : Préparer le disque Windows pour la migration

+ +Déplacer une installation de Windows vers un nouveau matériel, qu'il soit physique ou virtuel, peut entraîner des échecs de démarrage en raison des différences matérielles. Suivez l'une des méthodes ci-dessous pour préparer votre système Windows : + +
Option A : Microsoft sysprep (recommandé - gratuit)
+ +Sysprep est intégré à Windows et élimine les informations système uniques, préparant Windows pour un matériel différent. + +:::note[Before exécution de sysprep] +- Désactivez temporairement tout logiciel antivirus. +- Nettoyez les profils utilisateurs et fichiers temporaires inutiles. +- Corrigez ou supprimez toute application problématique du Microsoft Store pouvant empêcher l'exécution de sysprep. +::: + +1. **Exécuter sysprep :** + - Ouvrir l'Invite de commandes en tant qu'administrateur. + - Accédez au répertoire sysprep : + + ```bash + cd C:\Windows\System32\Sysprep + ``` + - Exécutez sysprep avec généralisation : + ```bash + sysprep.exe /generalize /shutdown /oobe + ``` + - Le système généralisera l'installation puis s'éteindra. + +2. **Installez le disque dans votre serveur Unraid** après l'arrêt. + +
Option B : Acronis True Image 2025 (commercial)
+ +Acronis True Image 2025 inclut Universal Restore, qui assiste la migration matérielle. + +1. Téléchargez et installez [Acronis True Image 2025](https://www.acronis.com/en-us/products/true-image/). +2. Créez un média de récupération amorçable en utilisant les outils inclus : + - Choisissez l'interface de type Windows. + - Sélectionnez l'architecture qui correspond à votre Windows (32 bits ou 64 bits). +3. Démarrez votre système Windows depuis le support de récupération Acronis. +4. Suivez les instructions à l'écran pour appliquer Universal Restore à votre disque Windows. Cela mettra à jour les pilotes et le HAL pour une meilleure compatibilité avec le matériel virtualisé. +5. Arrêtez le système et installez le disque dans votre serveur Unraid. + +

Étape 2 : Identifier le disque physique dans Unraid

+ +1. Connectez-vous au %%WebGUI|web-gui%% (`http://tower` ou `http://tower.local`). +2. Allez dans l'onglet **Principal**. +3. Démarrez l'%%array|array%% s'il n'est pas déjà en cours d'exécution. +4. Localisez votre disque sous **Périphériques non assignés**. +5. Notez la lettre du périphérique (par exemple, `sdb`, `sdc`) pour l'utiliser dans la configuration %%VM|vm%%. + +

Étape 3 : Créer une nouvelle machine virtuelle

+ +1. Allez dans l'onglet **%%VMs|vm%%** dans le %%WebGUI|web-gui%%. Si l'onglet est manquant, assurez-vous que la virtualisation est activée et que les exigences matérielles sont remplies. +2. Cliquez sur **Ajouter une VM**. +3. Suivez le guide [Créer vos propres machines virtuelles](../create-virtual-machines/vm-setup.mdx#creating-your-own-virtual-machines), en utilisant ces paramètres : + - Réglez le **BIOS** sur %%SeaBIOS|seabios%% (essayez %%OVMF|ovmf%% si %%SeaBIOS|seabios%% échoue à démarrer). + - Laissez **OS Install ISO** vide. + - Spécifiez le **VirtIO Drivers ISO** pour des performances optimales après le démarrage. + - Pour le disque %%virtuel|vdisk%% principal, sélectionnez n'importe quel emplacement et taille (cela sera remplacé à l'étape suivante). + - Décochez **Start VM after creation**. + +

Étape 4 : Modifiez le XML de votre machine virtuelle

+ +Vous devez modifier la configuration XML du %%VM|vm%% pour connecter votre disque physique à la %%machine virtuelle|vm%%. + +1. Depuis l'onglet **VMs**, cliquez sur l'icône %%VM|vm%%, puis sélectionnez **Edit XML** dans le menu contextuel. + +2. Défilez vers le bas dans l'XML et trouvez l'entrée `` existante pour votre %%disque virtuel|vdisk%% principal. Cela pointe généralement vers un fichier `.img` et ressemblera à ceci : + + ```xml + + + + + + + + +
+ + ``` + + Remplacez ce bloc par ce qui suit, où `sdX` est la lettre du périphérique ou, mieux encore, utilisez `/dev/disk/by-id/[votre-id-disque]` pour une attribution de périphérique plus fiable (consultez le \[Unraid Docs : Utilisation d'un disque physique dans une VM]) : + + ```xml + + + + + + + ``` + + Si votre disque est IDE, changez le bus de "SATA" à "IDE". + + L'utilisation de `/dev/disk/by-id/` est préférable à `/dev/sdX` pour s'assurer que l'attribution du disque reste cohérente après les redémarrages ou les changements matériels. + +3. Cliquez sur **Update** pour enregistrer vos modifications XML. + +

Étape 5 : Installer les pilotes

+ +1. Démarrez votre %%VM|vm%%. +2. Une fois sous Windows, ouvrez le Gestionnaire de périphériques en cliquant avec le bouton droit sur le menu Démarrer et en sélectionnant **Device Manager**. +3. Recherchez les périphériques marqués d'un point d'exclamation jaune (indiquant des pilotes manquants). Cliquez droit sur chacun et sélectionnez **Mettre à jour le pilote**. +4. Choisissez **Browse my computer for drivers**. +5. Indiquez le disque où l'%%ISO des pilotes VirtIO|virtio%% est monté (habituellement D: ou E:). +6. Assurez-vous que **Include subfolders** est coché, puis cliquez sur **Next**. +7. Répétez ce processus pour chaque appareil avec des pilotes manquants, comprenant généralement : Contrôleur SCSI, Ethernet, Balloon et périphériques série. + +N'oubliez pas de réinstaller ces applications après la migration si vous utilisez des logiciels qui installent leurs propres pilotes (comme les programmes antivirus). + +:::tip +Si vous êtes bloqué à %%SeaBIOS|seabios%% avec un message "Démarrage depuis le disque dur", c'est probablement parce que votre OS Windows a été installé en utilisant %%UEFI|uefi%% au lieu du BIOS traditionnel. Dans ce cas, recréez la VM en utilisant %%OVMF|ovmf%% comme type de BIOS plutôt que %%SeaBIOS|seabios%%. La plupart des installations modernes de Windows (Windows 8.1, 10 et 11) supportent %%UEFI|uefi%% et peuvent avoir besoin de %%OVMF|ovmf%% pour démarrer avec succès. Le reste du processus de conversion restera le même. +::: + +--- + +## Migration de Xen vers KVM + +:::info[Historical Contexte] +Unraid a pris en charge %%Xen|xen-hvm%% depuis les versions 6.x précoces jusqu'à ce qu'il soit déprécié dans la version 6.2 (septembre 2016) et retiré entièrement par la suite. Ce guide de migration est pertinent pour les utilisateurs mettant à niveau des installations Unraid très anciennes (avant 2017) vers des versions modernes. +::: + +Un hyperviseur %%Xen|xen-hvm%% est une plateforme de virtualisation qui permet à plusieurs systèmes d'exploitation de fonctionner sur le même matériel. Dans Unraid, %%Xen|xen-hvm%% était historiquement utilisé pour les %%machines virtuelles|vm%%, mais %%KVM|kvm%% est désormais la norme. La migration de %%Xen|xen-hvm%% vers %%KVM|kvm%% est essentielle pour utiliser les fonctionnalités modernes d'Unraid, permettre le passage direct de matériel, et assurer la compatibilité avec les versions actuelles. + +Le processus de migration d'un %%VM|vm%% de %%Xen|xen-hvm%% à %%KVM|kvm%% varie selon que votre %%VM|vm%% est configuré comme un invité paravirtualisé (PV) ou virtualisé matériellement (%%HVM|hvm%%). Ce guide se concentre spécifiquement sur la conversion des VM Windows utilisant les pilotes GPLPV de Xen, car ils nécessitent une gestion particulière. + +Créez toujours une sauvegarde de votre disque virtuel %%Xen|xen-hvm%% avant de commencer ce processus. Et testez votre migration sur la sauvegarde pour éviter toute perte de données. + +:::info[Why migrer?] +Unraid ne prend plus en charge %%Xen|xen-hvm%% à partir de la version 6.2. %%KVM|kvm%% est maintenant obligatoire pour la gestion des VM, le passage direct du matériel, et les mises à jour continues. La migration garantit que vos VM restent sécurisées et compatibles avec les nouvelles fonctionnalités. +::: + +### Procédure de conversion Windows + +Pour convertir une VM Windows de %%Xen|xen-hvm%% à %%KVM|kvm%%, suivez ces étapes. N'oubliez pas de **retirer tout passage direct de périphérique PCI de votre configuration de domaine %%Xen|xen-hvm%%** avant de commencer. Ces périphériques pourront être ajoutés de nouveau après la migration. + +
+ Étape 1 : Déterminez si votre VM utilise les pilotes GPLPV de Xen - Cliquer pour développer/réduire + + 1. À l'intérieur de votre VM %%Xen|xen-hvm%%, ouvrez le **Gestionnaire de périphériques Windows** (appuyez sur *Touche Windows + X*, puis sélectionnez **Device Manager**). + 2. Développez **Carte réseau** et vérifiez le nom de l'appareil. + - Si le nom contient "Xen," vous utilisez des pilotes GPLPV. + - Si ce n'est pas le cas, passez à l'étape concernant le redémarrage en mode %%KVM|kvm%%. + + :::tip + Si vous n'utilisez pas les pilotes GPLPV, vous pouvez sauter les prochaines étapes et continuer à partir de la section de redémarrage en mode %%KVM|kvm%%. + ::: +
+ +
+ Étape 2 : Préparez Windows pour la suppression des pilotes GPLPV - Cliquer pour développer/réduire + + 1. Ouvrez une invite de commande en tant qu'Administrateur (**Menu Démarrer** → tapez `cmd` → clic droit sur **Invite de commandes** → sélectionnez **Exécuter en tant qu'administrateur**). + 2. Entrez la commande suivante : + ``` + bcdedit -set loadoptions nogplpv + ``` + 3. Redémarrez votre VM. +
+ +
+ Étape 1 : Déterminez si votre VM utilise les pilotes GPLPV de Xen - Cliquer pour développer/réduire + + Après le redémarrage, purgez tous les pilotes GPLPV de %%Xen|xen-hvm%% de votre système en utilisant le processus complet de suppression manuelle documenté dans le [Wiki du projet Xen](https://wiki.xenproject.org/wiki/Xen_Windows_GPLPV). + + :::tip + Si vous n'utilisez pas les pilotes GPLPV, vous pouvez sauter les prochaines étapes et continuer à partir de la section de redémarrage en mode %%KVM|kvm%%. + ::: +
+ +
+ Étape 2 : Préparez Windows pour la suppression des pilotes GPLPV - Cliquer pour développer/réduire + + 1. Assurez-vous que le **gestionnaire de VM** est activé : + - Allez sur ***Settings → VM manager***. + - Réglez **Enable VMs** sur **Oui**. + - Téléchargez le dernier **ISO des pilotes VirtIO** pour Windows en le sélectionnant dans le menu déroulant et en cliquant sur **Télécharger**. + + 2. Accédez à l'onglet **VMs** et cliquez sur **Add VM**. + + 3. Sélectionnez la version Windows qui correspond à votre machine virtuelle %%Xen|xen-hvm%% d'origine. + + 4. Configurez les paramètres de base : + - **Nom** : Attribuez un nom descriptif à votre VM. + - **ISO des pilotes VirtIO** : Choisissez la version que vous venez de télécharger. + + 5. Sous **Primary vDisk Location** : + - Parcourez et sélectionnez votre disque virtuel %%Xen|xen-hvm%% existant. + + 6. Ajoutez un **Secondary vDisk temporaire** : + - Cliquez sur le signe plus vert. + - Réglez la taille à **1M** (cela imposera la compatibilité du bus IDE lors du démarrage initial). + - Choisissez n'importe quel répertoire temporaire pour l'emplacement (cela sera supprimé plus tard). + + 7. Laissez les autres paramètres pour les graphismes et le son à leurs valeurs par défaut, puis cliquez sur **Créer**. + + 8. Forcez l'arrêt immédiat de la VM : + - Cliquez sur l'icône de la VM et choisissez **Force stop**. + + 9. Modifiez la configuration de la VM : + - Cliquez sur l'icône de la VM et sélectionnez **Edit**. + - Passez à la vue **XML** en utilisant le basculement en haut à droite. + + 10. Modifiez le XML du disque principal : + - Localisez la section `` pour votre disque virtuel principal. + - Supprimez la ligne entière `
`. + - Remplacez `bus='virtio'` par `bus='ide'` dans la balise ``. + - Cliquez sur **Update**. + + :::tip[Pourquoi le disque temporaire ?] + Le disque temporaire de 1 Mo force Unraid à assigner le disque principal comme `hda` (IDE) au lieu de `vda` (%%VirtIO|virtio%%), permettant à Windows de démarrer sans pilotes %%VirtIO|virtio%% au départ. Ce disque temporaire sera supprimé après l'installation du pilote. + ::: +
+ +
+ Étape 5 : Installez les pilotes VirtIO - Cliquer pour développer/réduire + + 1. Démarrez la VM depuis l'onglet **VMs**. + 2. Connectez-vous via %%VNC|vnc-session%% en cliquant sur l'icône de la VM et sélectionnez **Start with console (VNC)**. + 3. Pendant le démarrage : + - Windows détectera un nouveau matériel mais pourrait échouer à installer les pilotes. + - Choisissez **Reboot later** lorsque cela est demandé. + 4. Ouvrez le **Gestionnaire de périphériques** (appuyez sur Win+X et choisissez Gestionnaire de périphériques) : + - Installez les pilotes pour chaque appareil répertorié sous **Autres périphériques** (comme le Contrôleur Ethernet, le Périphérique PCI, etc.) : + 1. Cliquez avec le bouton droit sur le périphérique et sélectionnez **Update driver**. + 2. Choisissez **Browse my computer for drivers**. + 3. Indiquez le lecteur %%VirtIO|virtio%% ISO (par exemple, `D:\`). + 4. Cochez **Include subfolders**. + 5. Si demandé, acceptez toujours **Always trust Red Hat**. + 5. Installez l'agent %%QEMU|qemu%% %%guest agent|guest-agent%% : + - Ouvrez l'Explorateur de fichiers et accédez à `D:\guest-agent\`. + - Double-cliquez sur `qemu-ga-x64.msi`. + 6. Éteignez la VM. +
+ +
+ Étape 4 : Créer une nouvelle machine virtuelle KVM - Cliquer pour développer/réduire + + 1. Modifiez la VM : + - Supprimez le %%vDisk|vdisk%% secondaire temporaire en cliquant sur l'icône rouge moins. + - Confirmez que le %%vDisk|vdisk%% principal pointe vers votre disque %%Xen|xen-hvm%% d'origine. + 2. Mettez à jour la VM : + - Cliquez sur **Update** pour enregistrer vos modifications. + 3. Démarrez la VM normalement. + 4. Vérifiez dans le **Gestionnaire de périphériques** que : + - Aucune icône d'avertissement n'apparaît. + - Tous les périphériques utilisent les pilotes %%VirtIO|virtio%% (par exemple, "Adaptateur Ethernet %%VirtIO|virtio%% Red Hat"). + 5. (Optionnel) Activez %%VirtIO|virtio%% pour de meilleures performances : + - Modifiez la VM et passez à la vue XML. + - Changez l'`bus` du disque principal de `ide` à `virtio`. + - Cliquez sur **Update** et redémarrez la VM. + + :::tip[Pourquoi le disque temporaire ?] + Le disque temporaire de 1 Mo force Unraid à assigner le disque principal comme `hda` (IDE) au lieu de `vda` (%%VirtIO|virtio%%), permettant à Windows de démarrer sans pilotes %%VirtIO|virtio%% au départ. Ce disque temporaire sera supprimé après l'installation du pilote. + ::: + + 1. Réinstallez les pilotes %%VirtIO|virtio%% depuis l'ISO. + 2. Vérifiez les mises à jour Windows, qui peuvent fournir des pilotes plus récents. + 3. Visitez la page [Red Hat VirtIO Drivers](https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/) pour les dernières versions. + ::: +
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx new file mode 100644 index 0000000000..ba59d3308a --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx @@ -0,0 +1,425 @@ +--- +sidebar_position: 2 +sidebar_label: Configuration de VM +--- + +# Configuration de VM + +La configuration d'une machine virtuelle (VM) sur Unraid est un moyen flexible d'exécuter des systèmes d'exploitation complets - comme Windows, Linux, ou d'autres plateformes - aux côtés de vos conteneurs et applications natives. Que vous souhaitiez tester de nouveaux logiciels, exécuter des applications anciennes, héberger un environnement de bureau, ou utiliser le passage matériel pour le jeu ou le travail créatif, le **Gestionnaire de VM** d'Unraid rend le processus accessible à tous les niveaux de compétence. + +:::tip[New dans Unraid 7.0] +Unraid 7.x apporte des améliorations significatives aux %%machines virtuelles (VM)|vm%%, notamment : + +- Clones et instantanés des %%VM|vm%% +- Modèles de %%VM|vm%% créés par l'utilisateur +- Edition/visualisation XML en ligne +- Fonctionnalités avancées de partage et de passage GPU + +Consultez la section [fonctionnalités du gestionnaire de %%VM|vm%%](#new-in-unraid-7x-vm-manager) pour plus de détails. +::: + +Si vous ne l'avez pas déjà fait, veuillez consulter les instructions [Aperçu & préparation système](./overview-and-system-prep.mdx) pour vous assurer que votre matériel et vos partages sont prêts pour la virtualisation. + +## Créer vos propres machines virtuelles + +Une fois votre système préparé et vos préférences définies, vous pouvez créer une nouvelle %%machine virtuelle (VM)|vm%% en utilisant le %%WebGUI|web-gui%%. + +:::note[Before vous commencez] +- Confirmez que vos partages `isos` et `domains` sont configurés et accessibles. Découvrez-en plus sur [la gestion des partages](../manage-storage/shares.mdx) ici. +- Téléchargez votre ISO d'installation du système d'exploitation et, pour les %%VMs|vm%% Windows, l'ISO des derniers pilotes %%VirtIO|virtio%% sur le partage `isos`. +- Décidez si vous utiliserez le %%GPU passthrough|gpu-passthrough%% ou le %%VNC|vnc-session%% pour les graphiques. +::: + +Pour créer une %%VM|vm%% basique : + +1. Cliquez sur **Ajouter une VM** dans la page **Machines Virtuelles**. +2. Définissez le **Modèle** sur **Personnalisé**, ou sélectionnez un modèle de système d'exploitation prédéfini pour les distributions courantes. +3. Entrez un **Nom** et, si vous le souhaitez, une **Description** pour votre %%VM|vm%%. +4. Basculez **Démarrage automatique** si vous souhaitez que le %%VM|vm%% démarre automatiquement avec le %%array|array%%. +5. Sélectionnez le type de **Système d'Exploitation**. Cela ajustera également l'icône %%VM|vm%%. +6. Affectez des **cœurs CPU** à la %%VM|vm%%. Vous pouvez affecter jusqu'au nombre de cœurs physiques disponibles sur votre hôte. +7. Spécifiez la **Mémoire Initiale** (RAM) pour la %%VM|vm%%. Consultez la documentation de votre OS invité pour obtenir les valeurs recommandées. +8. Choisissez l'**ISO d'installation de l'OS** dans votre partage **isos**. +9. Configurez le **disque vDisk principal** (emplacement, taille, et type). + - Le %%vDisk|vdisk%% principal stocke le système d'exploitation de la VM. + - Ajoutez des %%vDisques|vdisk%% supplémentaires au besoin à l'aide du signe plus. +10. Sélectionnez une **Carte Graphique** : + - Choisissez %%VNC|vnc-session%% pour un accès à distance ou sélectionnez un GPU physique pour le passage. + - Attribuez un clavier/souris USB si vous utilisez un GPU physique. + - Définissez un mot de passe pour %%VNC|vnc-session%% si désiré. +11. Attribuez une **Carte Son** (optionnel, mais nécessaire pour l'audio HDMI via GPU). +12. Assignez des **Périphériques USB** selon les besoins. + - Les dispositifs doivent être attachés avant de démarrer la %%VM|vm%% (le branchement à chaud USB n'est pas supporté). + - Le périphérique USB Unraid n'est pas disponible pour l'affectation. +13. Cliquez sur **Créer la VM**. La %%VM|vm%% démarrera automatiquement à moins que vous ne décochiez **Démarrer la VM après la création**. + +--- + +## Modèles VM utilisateur + +Unraid 7.1+ introduit des modèles d'utilisateur %%VM|vm%%, simplifiant la sauvegarde et la réutilisation de vos configurations personnalisées %%VM|vm%%. Les modèles d'utilisateur rationalisent le déploiement %%VM|vm%% et assurent la cohérence des configurations. + +Pour créer un modèle utilisateur : + +1. Modifiez la %%VM|vm%% que vous souhaitez modéliser. +2. Sélectionnez **Créer/Modifier un modèle** et entrez un nom. +3. Votre modèle sera maintenant disponible dans l'espace des modèles utilisateur sur l'écran **Ajouter une VM**. + +Pour utiliser un modèle utilisateur : + +- Sur la page **VMs**, cliquez sur **ajouter une VM** et sélectionnez votre modèle dans la section **modèles utilisateur**. + +Importation/exportation : + +- Survolez un modèle utilisateur et cliquez sur la flèche pour l'exporter vers votre serveur ou le télécharger. +- Sur un autre système Unraid, utilisez **Importer à partir d'un fichier** ou **Télécharger** pour ajouter le modèle. + +--- + +## Nouveautés dans Unraid 7.x : Gestionnaire de VM + +Unraid 7.x introduit une gamme d’améliorations puissantes au **Gestionnaire de %%VM|vm%%**, simplifiant le processus d'exécution et de gestion des %%machines virtuelles|vm%%. Ces fonctionnalités s'adressent tant aux débutants qu'aux utilisateurs avancés, rendant le déploiement, la personnalisation et l'optimisation de vos %%VM|vm%% plus simples. + +:::tip\[Highlights] + +- Gagnez du temps avec des %%clones de VM|vm%%, instantanés, et des modèles réutilisables +- Ajustez finement la performance et la compatibilité avec des options avancées de passage et de stockage +- Profitez de la visibilité et du contrôle améliorés avec des statistiques d'utilisation et une édition `XML` en ligne + +::: + +
+ Améliorations du flux de travail + + - **Clones & instantanés de VM :** Dupliquez des %%VMs|vm%% ou sauvegardez/restaurez rapidement leur état pour des tests ou des sauvegardes. + - **Modèles de VM utilisateur :** Sauvegardez vos configurations %%VM|vm%% personnalisées et déployez de nouvelles %%VMs|vm%% en quelques clics. + - **Edition/visualisation XML en ligne :** Visualisez ou copiez instantanément le `XML` généré par le %%WebGUI|web-gui%% ; passez en mode `XML` pour des éditions avancées. + - **Désactivation du démarrage automatique :** Choisissez quels %%VMs|vm%% démarrent automatiquement avec votre %%array|array%%. + - **Statistiques d'utilisation de VM :** Suivez l'utilisation des ressources par %%VM|vm%% directement depuis le tableau de bord. +
+ +
+ Améliorations du flux de travail + + - **PCI multifonction/autre :** Assignez des dispositifs PCI complexes ou des groupes pour des scénarios avancés de passage. + - **Passage en ligne de commande QEMU :** Ajoutez des arguments QEMU personnalisés pour un réglage expert des %%VM|vm%%. + - **Remplacement de stockage :** Spécifiez l'emplacement de stockage pour chaque %%disque virtuel|vdisk%% de VM. + - **Indicateur SSD & deslocage :** Optimisez la performance des %%vDisques|vdisk%% pour les SSD et activez le support discard/unmap. + - **`SR-IOV` pour iGPU Intel :** Partagez les graphiques intégrés Intel entre plusieurs %%VMs|vm%%. + - **Validation du nom de VM pour ZFS :** Empêchez l'utilisation de caractères non pris en charge dans les noms de %%VM|vm%% pour les [%%pools ZFS|zfs%%](../../advanced-configurations/optimize-storage/zfs-storage.mdx). +
+ +
+ Options matérielles et de stockage avancées + + - **GPUs virtuels `VirGL` & `QXL` :** Partagez les GPUs Intel/AMD entre plusieurs %%VMs|vm%% Linux ou utilisez `QXL` pour des options multi-écrans/mémoire. + - **Mise en épingle %%CPU|cpu-pinning%% optionnelle :** Autorisez Unraid à gérer automatiquement l'allocation CPU ou fixez manuellement des cœurs selon les besoins. +
+ +
+ Améliorations des graphismes et du partage GPU + + - View all graphics cards and %%VM|vm%%-assigned IP addresses in the %%VM|vm%% tab + - Support pour la cible %%QEMU|qemu%% ppc64 et `qemu:override` + - Support hypervclock pour les %%VMs|vm%% Windows + - "Migratable" activé/désactivé pour le CPU émulé + - Options de configuration du Timer/décalage + - Pas d'options de keymap/nogpu disponibles pour des cas d'utilisation spécifiques + - Amélioration de la sélection et de l'édition des icônes de %%VM|vm%% + - Avertissements lors de l'affectation du GPU principal comme passage (peut nécessiter `vBIOS`) + - Démarrez les %%VMs|vm%% Unraid en mode GUI avec le pilote vidéo `QXL` + - Divers correctifs pour les problèmes de chemin et d'icône dans la vue `XML` +
+ +--- + +## Utilisation des GPUs virtuels et partage GPU + +Unraid supporte désormais le partage avancé de GPU via `VirGL` et `QXL` pour les %%VMs|vm%% Linux (et certains GPUs Nvidia avec le driver `Nouveau`). + +- Pour utiliser `VirGL` : définissez **la Carte Graphique** sur **Virtuel** et **le pilote vidéo de la console VM** sur **VirtIO(3D)**. +- Pour utiliser `QXL` : définissez **la Carte Graphique** sur **Virtuel** et **le pilote vidéo de la console VM** sur **`QXL` (meilleur)**. +- `VirGL` n'output pas vers un moniteur physique et n'est pas compatible avec les %%VMs|vm%% Windows ou les plugins Nvidia standard. +- `QXL` supporte le multi-écran et une mémoire vidéo configurable. + +--- + +## Options avancées + +
+ Développez cette section pour voir des conseils sur les options plus avancées + + Passez à la **Vue Avancée** sur la page **Ajouter une VM** pour accéder à des paramètres supplémentaires. + + Voici les options avancées les plus importantes, réparties en sections ciblées : + + **Mode CPU :** + + - **Passage de l'hôte** : Expose toutes les caractéristiques du CPU hôte à la %%VM|vm%% pour des performances maximales. + - **Émulation** : Utilise un modèle CPU générique, réduisant les problèmes de compatibilité mais limitant les performances. + + **Ballonnement de mémoire :** + + - Définissez une valeur de **Mémoire Max** pour activer l'allocation dynamique de mémoire (%%ballonnement de mémoire|memory-ballooning%%). + - Non disponible pour les %%VMs|vm%% avec des appareils PCI assignés (par exemple, %%GPU passthrough|gpu-passthrough%%). + + **Type de machine :** + + - **`i440fx`** : Défaut pour les %%VMs|vm%% Windows. Modifiez uniquement si vous avez des problèmes de %%GPU passthrough|gpu-passthrough%%. + - **`Q35`** : Par défaut pour les %%VMs|vm%% Linux et recommandé pour la plupart des systèmes d'exploitation modernes, surtout avec %%GPU passthrough|gpu-passthrough%%. + + **Type de BIOS :** + + - **SeaBIOS** : BIOS traditionnel pour les OSes hérités. + - **OVMF** : BIOS %%UEFI|uefi%% requis pour Windows 8+, la plupart des distributions Linux modernes, et %%GPU passthrough|gpu-passthrough%%. + + :::note + Le type de BIOS peut uniquement être défini lors de la création d'une nouvelle %%VM|vm%%. + ::: + + **Extensions Hyper-V :** + + - Pour les %%VMs|vm%% Windows, activez les extensions Hyper-V pour améliorer la compatibilité et les performances. + + **ISO des pilotes VirtIO :** + + - Remplacez l'ISO %%VirtIO|virtio%% par défaut si nécessaire, surtout pour tester ou utiliser des pilotes plus récents. + + **Type de vDisk :** + + - **`RAW`** : Meilleures performances, moins flexible pour les instantanés. + - **`QCOW2`** : Supporte les instantanés mais offre une performance légèrement inférieure. + + **Mappages VirtFS (VMs Linux) :** + + - Ajoutez plusieurs partages %%VirtFS|virtfs%% (`9p`) pour l'intégration du système de fichiers entre l'hôte et l'invité. + - Voir [la documentation %%QEMU|qemu%% 9p](http://wiki.qemu.org/Documentation/9psetup) pour plus de détails. + + **Paramètres réseau :** + + - Modifiez l'adresse **MAC du réseau** ou sélectionnez un **pont réseau** alternatif. + - Cliquez sur le symbole de rafraîchissement pour générer automatiquement une nouvelle adresse MAC. + - Ajoutez des interfaces réseau virtuelles supplémentaires selon besoin. +
+ +:::info[Troubleshooting conseils] +- Si votre %%VM|vm%% ne démarre pas, vérifiez vos chemins ISO et %%vDisk|vdisk%%. +- Pour %%GPU passthrough|gpu-passthrough%%, assurez-vous que votre matériel et vos paramètres BIOS prennent en charge %%IOMMU|iommu%%/VT-d/AMD-Vi. +- Certains périphériques USB peuvent ne pas fonctionner de manière fiable avec le passage - testez et consultez les [forums Unraid](https://forums.unraid.net/) pour des conseils spécifiques aux périphériques. +::: + +--- + +## Attachement des appareils PCI pour le passage + +Avant de pouvoir attribuer un GPU ou n'importe quel dispositif PCI à une %%machine virtuelle|vm%%, il est important de "lier" le périphérique au pilote **vfio-pci**. Ce processus cache le périphérique à Unraid et le consacre uniquement à votre %%VM|vm%%. + +Pour lier un dispositif PCI (GPU, contrôleur USB, NVMe, etc.) pour le passage : + +1. Naviguez vers ***Outils → Périphériques système*** dans le %%WebGUI|web-gui%%. +2. Passez en revue la liste de tous les appareils PCI détectés et leurs groupes %%IOMMU|iommu%%. +3. Cochez la case à côté de chaque appareil que vous souhaitez lier à **vfio-pci** (pour le masquer d'Unraid). + - Notez que les appareils déjà utilisés par Unraid (tels que les contrôleurs de disque et les cartes réseau) ne peuvent pas être sélectionnés. + - Si vous sélectionnez un GPU, choisissez le périphérique sonore associé. +4. Cliquez sur **Lier les sélectionnés à VFIO au démarrage** pour sauvegarder vos modifications. +5. Redémarrez votre serveur pour que le lien prenne effet. + +:::caution +Si vous effectuez des modifications matérielles (comme ajouter ou retirer des dispositifs PCI), retournez dans **Périphériques Système** pour vous assurer que les dispositifs corrects sont toujours liés. Si les dispositifs ne sont pas liés ou sont mal liés, ils peuvent ne pas apparaître pour le passage. +::: + +Après liaison, les appareils liés apparaîtront dans le menu déroulant **Autres Périphériques PCI** lors de l'édition ou de la création d'une %%VM|vm%%. + +
+ Chercher des problèmes + + - Si vous avez précédemment utilisé le plugin `VFIO-PCI` Config, désinstallez-le - cette fonctionnalité est maintenant intégrée. + - Pour réinitialiser toutes les liaisons, supprimez `/boot/config/vfio-pci.cfg` et redémarrez votre système. + - Après redémarrage, utilisez le bouton **Voir le journal `VFIO-PCI`** sur la page des **Périphériques système** pour un dépannage avancé. + - N'oubliez pas que si vous liez votre seul GPU, Unraid pourrait ne pas démarrer en mode GUI. Assurez-vous de prévoir cela. + - Pour plus d'informations, consultez le [guide officiel sur les forums Unraid](https://forums.unraid.net/topic/93781-guide-bind-devices-to-vfio-pci-for-easy-passthrough-to-vms/). +
+ +--- + +## Passerelle GPU pour machines virtuelles + +Le %%GPU passthrough|gpu-passthrough%% vous permet d'assigner une carte graphique physique directement à une %%machine virtuelle (VM)|vm%%, offrant des performances quasi-native pour les jeux, le travail créatif ou l'apprentissage automatisé. + +:::info[Why utiliser la transmission directe du GPU?] +- **Performance :** Accès direct au matériel pour des applications exigeantes. +- **Compatibilité :** Exécutez des charges de travail intensives en graphique nécessitant une carte graphique dédiée. +- **Flexibilité :** Transformez votre serveur Unraid en une station de travail polyvalente. +::: + +

Prérequis

+ +**Matériel :** + +- CPU supportant Intel VT-d ou AMD-Vi (%%IOMMU|iommu%% activé dans le BIOS). +- GPU compatible avec le passage (voir [matériel testé par la communauté](https://docs.google.com/spreadsheets/d/1LnGpTrXalwGVNy0PWJDURhyxa3sgqkGXmvNCIvIMenk/edit#ggid=0)). +- Une carte mère qui isole correctement les périphériques PCIe. + +**Logiciel :** + +- Unraid 6.9+ avec la virtualisation activée. +- Le BIOS OVMF (UEFI) est recommandé pour les %%VM|vm%% sur %%SeaBIOS|seabios%%). + +Pour configurer la transmission directe du GPU : + +1. Assurez-vous que votre matériel prend en charge %%IOMMU|iommu%% et est activé dans votre BIOS. +2. Activez les fonctionnalités de virtualisation dans le BIOS (Intel VT-x/VT-d ou AMD-v/AMD-vi). +3. Mettez à jour Unraid à la dernière version stable. +4. Attribuez la carte graphique à la %%VM|vm%% lors de la création ou de l'édition depuis l'écran sous la section carte graphique. +5. Assignez un clavier et une souris USB au %%VM|vm%% si vous utilisez le %%GPU passthrough|gpu-passthrough%%. +6. Utilisez le BIOS %%OVMF|ovmf%% pour le %%VM|vm%% pour une meilleure compatibilité avec le %%GPU passthrough|gpu-passthrough%%. +7. Démarrez la %%VM|vm%% et vérifiez que le GPU est bien passé. + +:::note +Certaines cartes graphiques peuvent nécessiter une configuration supplémentaire ou une injection ROM pour un passage correct. +::: + +### Injection ROM manuelle + +Certaines GPU, en particulier certains modèles NVIDIA, nécessitent qu'un fichier ROM soit manuellement fourni à la VM pour s'initialiser correctement. Cela est souvent nécessaire lorsque le firmware embarqué du GPU n'est pas correctement transmis par défaut, causant des problèmes comme des écrans noirs ou des échecs de démarrage. L'injection manuelle de ROM est un dernier recours après avoir essayé des ajustements de BIOS et de configuration VM. + +Pour injecter un ROM : + +1. **Télécharger le ROM de la carte graphique :** + - Visitez la [base de données VGA BIOS de TechPowerUp](https://www.techpowerup.com/vgabios/). + - Recherchez le modèle de votre carte graphique et téléchargez le fichier ROM correct. + - Stockez la rom dans votre partage `isos` ou `domains` sur Unraid. + +2. **Éditez le %%VM|vm%% XML :** + - Arrêtez la %%VM|vm%% et ouvrez sa configuration XML (**Éditer l'XML** depuis le menu contextuel de la %%VM|vm%%). + - Localisez le bloc `` du GPU et ajoutez le tag `` : + + ```xml + + + + +
+ + +
+ + ``` + +3. **Enregistrez et testez :** Cliquez sur **Mettre à jour** et démarrez la %%VM|vm%%. + +--- + +## Problèmes courants + +Cette section aborde les sujets avancés et les solutions pour les problèmes courants lors de la gestion des %%machines virtuelles (VMs)|vm%% sur Unraid. Déroulez les sections ci-dessous pour des instructions étape par étape et des conseils de dépannage. + +### Agrandir un vDisk + +
+ Cliquer pour développer/réduire + + Si votre %%VM|vm%% manque d'espace disque, vous pouvez augmenter la taille de son %%disque virtuel (**vDisk**)|vdisk%% directement depuis le %%WebGUI|web-gui%%. + + Pour agrandir un %%vDisk|vdisk%% : + + 1. Allez à l'onglet **VMs** dans le %%WebGUI|web-gui%%. + 2. Assurez-vous que la %%VM|vm%% est arrêtée. + 3. Cliquez sur le nom de la VM pour développer ses détails. + 4. Localisez le %%vDisk|vdisk%% que vous souhaitez agrandir. Cliquez sur la valeur dans le champ **Capacité** pour la rendre modifiable. + 5. Entrez la nouvelle taille souhaitée (par exemple, `100G` pour 100 gigaoctets) et appuyez sur **Entrer**. + 6. La nouvelle capacité est maintenant définie. + + :::note + Vous ne pouvez pas réduire un %%vDisk|vdisk%% depuis l'interface graphique d'Unraid ; seule l'expansion est prise en charge. + ::: + +

Extension de la partition dans votre système d'exploitation invité

+ + Après avoir redimensionné le %%vDisk|vdisk%%, démarrez votre %%VM|vm%%. Vous devez étendre la partition dans le système d'exploitation invité pour utiliser le nouvel espace: + + - **Windows :** Utilisez l'outil intégré de gestion des disques pour étendre votre partition. + + - **Linux (LVM) :** Utilisez des outils comme `fdisk`, `pvresize`, `lvextend`, et `resize2fs` pour étendre les partitions et volumes logiques. + + **Exemple :** + + ```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 + ``` + + Ajustez les noms de périphériques selon vos besoins. + + :::tip + Toujours sauvegarder votre %%VM|vm%% avant de modifier les disques. + ::: +
+ +### Bloqué à l'UEFI shell + +
+ Cliquer pour développer/réduire + + Si votre %%VM|vm%% démarre sur un %%UEFI|uefi%% shell au lieu de votre système d'exploitation, vous pouvez démarrer le processus de démarrage manuellement : + + À l'invite de commande du %%UEFI|uefi%% shell, entrez : + + ```bash + fs0: + cd efi/boot + bootx64.efi + ``` + + La %%VM|vm%% devrait maintenant continuer à démarrer dans votre système d'exploitation. + + :::tip + Si cela se produit fréquemment, vérifiez l'ordre de démarrage de votre VM et assurez-vous que le bon %%vDisk|vdisk%% ou ISO est défini comme périphérique de démarrage principal dans les paramètres de la VM. + ::: +
+ +### Écran noir après le démarrage de la VM + +
+ Cliquer pour développer/réduire + + Si votre %%VM|vm%% démarre mais que l'écran reste vide : + + 1. **Vérifiez les paramètres BIOS :** + - Réglez la carte graphique principale sur le GPU intégré (iGPU), pas sur le GPU de passage. + - Mettez à jour le BIOS de la carte mère et de la carte graphique aux dernières versions. + + 2. **Ajustez les paramètres de la %%VM|vm%% :** + - Passez de %%SeaBIOS|seabios%% à %%OVMF|ovmf%% (%%UEFI|uefi%%) dans les paramètres de la %%VM|vm%%. + - Changez **Type de Machine** de i440fx à Q35. + + 3. **Injection ROM manuelle (dernier recours) :** [Injectez un ROM GPU manuellement](#injection-rom-manuelle). +
+ +### Erreur : "Impossible de définir IOMMU pour container : opération non autorisée" + +
+ Cliquer pour développer/réduire + + Cette erreur indique généralement des conflits de groupe %%IOMMU|iommu%% ou un manque de remappage d'interruptions : + + 1. **Activer le remplacement PCIe ACS :** + - Allez à ***Paramètres → Gestionnaire de VMs***. + - Réglez **remplacement PCIe ACS** sur *Downstream* ou *Both*. + - Redémarrez Unraid. + + 2. **Autoriser les interruptions non sécurisées (avancé) :** + - Éditez `syslinux.cfg` sur votre clé USB Unraid : + + ```bash + append vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot + ``` + + - Utilisez ceci uniquement si vous faites entièrement confiance à vos invités %%VM|vm%%. + + :::note + Pour des explications détaillées sur les groupes %%IOMMU|iommu%%, nous vous recommandons de consulter [le blog d'Alex Williamson](http://vfio.blogspot.com/2014/08/iommu-groups-inside-and-out.html). + ::: +
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx new file mode 100644 index 0000000000..eecf4c75ec --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx @@ -0,0 +1,287 @@ +--- +sidebar_position: 3 +sidebar_label: Windows sur une VM +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import WindowsVirtioAutomatic from './partials/windows-virtio-automatic.mdx'; +import WindowsVirtioManual from './partials/windows-virtio-manual.mdx'; +import WindowsUpgradeInPlace from './partials/windows-upgrade-in-place.mdx'; +import WindowsUpgradeCleanInstall from './partials/windows-upgrade-clean-install.mdx'; + +# Windows sur une VM + +Windows est l'un des systèmes d'exploitation invités les plus populaires pour les utilisateurs d'Unraid, en particulier pour les jeux, la productivité et le support des applications héritées. Voici des considérations essentielles pour exécuter Windows %%VM|vm%%. + +:::caution[Before vous commencez] +- Microsoft a mis fin au support de Windows 7 en janvier 2020, de Windows 8.1 en janvier 2023, et de Windows 10 en octobre 2025. Utilisez Windows 11 (ou plus récent) ou Server 2022 (ou plus récent) pour des mises à jour de sécurité continues. +- Testez toujours la stabilité de votre %%VM|vm%% avant d'activer votre licence Windows. +- Pour le passage du %%GPU|gpu-passthrough%%, utilisez le BIOS %%OVMF|ovmf%% (%%UEFI|uefi%%) avec Windows 11 ou plus récent. +::: + +### Configurations prises en charge + +| Édition Windows | BIOS recommandé | Type de machine | Notes | +| ------------------- | ------------------ | ------------------------------- | ----------------------------------------------- | +| Windows 11 | TPM %%OVMF\|ovmf%% | %%Q35\|q35%% | Nécessite l'émulation TPM 2.0 | +| Windows Server 2022 | %%OVMF\|ovmf%% | %%Q35\|q35%% | Idéal pour les charges de travail en entreprise | +| Windows 10 | %%OVMF\|ovmf%% | %%Q35\|q35%% | Obsolète (fin du support en oct. 2025) | +| Windows Server 2019 | %%OVMF\|ovmf%% | %%i440fx\|i440fx%%/%%Q35\|q35%% | Compatible mais non recommandé | + +--- + +### Gestion des pilotes VirtIO + +Windows nécessite des pilotes paravirtualisés pour des performances optimales avec la pile de virtualisation d'Unraid. + +Pour installer ou mettre à jour les pilotes : + + + + + + + + + + + +:::tip +En utilisant Unraid 7 ou une version ultérieure, vous pouvez automatiquement injecter des pilotes %%VirtIO|virtio%% lors de l'installation de Windows. Activez ceci dans ***Paramètres VM → Options avancées***. +::: + +--- + +### Configurer l'hibernation + +L'hibernation vous permet de sauvegarder l'état entier de votre %%VM|vm%% Windows - y compris les applications et documents ouverts - sur le disque. Cela vous permet d'éteindre le %%VM|vm%% sans perdre de travail. Lorsque vous reprenez, Windows restaure tout exactement comme vous l'avez laissé, sans passer par le processus de démarrage normal. Cette fonctionnalité est pratique lorsque vous devez redémarrer ou éteindre votre hôte Unraid ou que vous souhaitez économiser de l'énergie tout en gardant l'état de votre %%VM|vm%% intact. + +:::note[Benefits de l'hibernation] +- Économisez de l'énergie en éteignant les %%VM|vm%% inactives sans perdre de progression +- Reprenez rapidement le travail après la maintenance ou les mises à jour de l'hôte +- Réduisez l'usure des SSD par rapport aux arrêts et redémarrages fréquents +::: + +To use hibernation reliably, you must install the %%QEMU|qemu%% %%Guest Agent|guest-agent%% in your Windows %%VM|vm%%. This agent allows Unraid to communicate with the %%VM|vm%% for advanced operations like hibernation, shutdown, and live statistics reporting. + +
+ Comment installer le %%Agent invité QEMU|qemu%% %%Guest Agent|guest-agent%% - Cliquez pour développer/réduire + + 1. Démarrez votre VM %%VM|vm%% Windows avec l'ISO des pilotes %%VirtIO|virtio%% monté. + 2. Ouvrez **l'Explorateur de Fichiers** et accédez aux médias des pilotes %%VirtIO|virtio%%. + 3. Ouvrez le dossier `guest-agent`. + 4. Exécutez `qemu-ga-x64.msi` pour installer l'agent. (Vous pouvez brièvement voir une boîte de commande; aucun dialogue de confirmation ne s'affichera.) +
+ +
+ Comment activer l'hibernation dans Windows - Cliquez pour voir/fermer + + 1. Ouvrez **Panneau de Configuration** et recherchez **Options d'alimentation**. + 2. Cliquez sur **Choisir ce que font les boutons d'alimentation**. + 3. Cliquez sur **Modifier les paramètres actuellement non disponibles** pour déverrouiller les paramètres d'arrêt. + 4. Cochez l'option **Hibernation**. + 5. Cliquez sur **Sauvegarder les modifications**. + + L'option **Hibernation** apparaîtra maintenant dans le menu d'alimentation Windows. +
+ +:::important[What si l'hibernation échoue?] +If your %%VM|vm%% fails to hibernate or resume properly, you may lose unsaved work or face a failed restore. Always save important data before hibernating. If issues persist, ensure the %%QEMU|qemu%% %%Guest Agent|guest-agent%% is installed and updated, and check the Windows event log for errors. +::: + +--- + +### Optimisation des performances + +Optimiser votre %%VM|vm%% Windows peut améliorer la réactivité, réduire l'utilisation du disque et éviter les problèmes courants avec le passage de périphériques ou l'arrêt. Ces ajustements sont facultatifs et peuvent être appliqués selon les besoins. + +#### Désactiver le démarrage rapide + +Désactiver le démarrage rapide peut aider à prévenir les problèmes de passage de périphériques. Cela garantit que votre matériel %%VM|vm%% s'initialise correctement à chaque démarrage. Bien que ce paramètre soit conçu pour des PC physiques, dans un environnement virtuel, il peut souvent causer plus de problèmes que de bénéfices. + +
+ Comment désactiver le démarrage rapide - Cliquez pour voir/fermer + + 1. Ouvrez **Panneau de Configuration** et recherchez **Alimentation**. + 2. Cliquez sur **Choisir ce que font les boutons d'alimentation**. + 3. Cliquez sur **Modifier les paramètres actuellement non disponibles**. + 4. Décochez **Activer le démarrage rapide** sous **Paramètres d'arrêt**. + 5. Cliquez sur **Sauvegarder les modifications**. +
+ +#### Désactiver hiberfil.sys + +L'hibernation dans Windows crée un grand fichier caché nommé `hiberfil.sys`. Ce fichier peut consommer un espace disque significatif et augmenter l'activité du disque dans votre %%VM|vm%%. Si vous ne vous appuyez pas sur l'hibernation, la désactiver libérera de l'espace de stockage et réduira l'activité I/O inutile. + +
+ Comment désactiver l'hibernation et supprimer hiberfil.sys - Cliquez pour voir/fermer + + 1. Cliquez droit sur le bouton **Démarrer** et sélectionnez **Terminal Windows (Admin)** ou **Invite de Commandes (Admin)**. + 2. Tapez : `powercfg /h off` + 3. Appuyez sur Entrée et redémarrez votre %%VM|vm%%. Le fichier `hiberfil.sys` sera supprimé de votre disque C:. +
+ +#### Désactiver l'indexation de Windows + +Windows Search indexing continuously scans your %%virtual machine|vm%%'s storage to catalog files for faster search results. However, on a %%virtual machine|vm%%, this can cause unnecessary disk I/O, slow down performance, and increase wear on your physical storage, especially SSDs in your [%%cache pool|cache-pool%%](../manage-storage/cache-pools.mdx). + +
+ Comment désactiver l'indexation de Windows - Cliquez pour voir/fermer + + 1. Appuyez sur **Windows + R** pour ouvrir le dialogue Exécuter, tapez `services.msc` et appuyez sur Entrée. + 2. Dans la fenêtre Services, faites défiler vers le bas et cliquez droit sur **Recherche Windows**, puis sélectionnez **Arrêter**. + 3. Double-cliquez sur **Recherche Windows**, changez **Type de démarrage** à **Désactivé**, et cliquez sur **OK**. +
+ +#### Désactiver la défragmentation automatique du disque + +Windows est conçu pour défragmenter automatiquement les disques durs physiques à intervalles réguliers. Sur un %%VM|vm%% - en particulier lorsqu'on utilise le stockage SSD ou des %%vDisks|vdisk%% à provisionnement léger - la défragmentation automatique est inutile et peut également réduire la durée de vie du disque et dégrader les performances. + +
+ Comment désactiver la défragmentation automatique du disque - Cliquez pour voir/fermer + + 1. Ouvrez **l'Explorateur de fichiers**, faites un clic droit sur le lecteur C: et sélectionnez **Propriétés**. + 2. Allez dans l'onglet **Outils** et cliquez sur **Optimiser**. + 3. Cliquez sur **Modifier les paramètres**. + 4. Décochez **Exécuter selon un calendrier** et cliquez sur **OK**. +
+ +#### Activer le mode haute performance + +Les fonctionnalités de gestion de l'alimentation de Windows sont conçues pour économiser de l'énergie sur les ordinateurs portables et de bureau. Dans un environnement %%VM|vm%%, ces fonctionnalités peuvent inutilement réduire les performances ou suspendre votre %%VM|vm%%, le rendant moins réactif et plus difficile à gérer. + +Activer le mode **Haute Performance** garantit que votre %%VM|vm%% fonctionne toujours à pleine vitesse et est moins susceptible de se mettre en pause ou de se suspendre de manière inattendue. + +
+ Comment activer le mode haute performance - Cliquez pour voir/fermer + + 1. Ouvrez **Panneau de Configuration** et recherchez "alimentation." + 2. Cliquez sur **Choisir un mode de gestion de l'alimentation**. + 3. Sélectionnez **Haute performance** sous **Modes de gestion préférés**. +
+ +#### Activer l'accès à distance + +Le protocole de bureau à distance (RDP) vous permet d'accéder à votre %%VM|vm%% Windows depuis un autre appareil. Il offre de meilleures performances et compatibilité par rapport à %%VNC|vnc-session%%. Notez que le RDP est pris en charge uniquement sur les éditions Professionnel et Entreprise de Windows. De plus, votre compte utilisateur Windows **doit** avoir un mot de passe défini. + +:::caution +RDP n'est pas disponible sur les éditions Famille de Windows. Définissez toujours un mot de passe sécurisé pour votre compte utilisateur Windows avant d'activer le RDP. +::: + +
+ Comment activer l'accès à distance (RDP) - Cliquez pour voir/fermer + + Pour activer l'accès RDP, suivez ces étapes : + + 1. Appuyez sur **Windows + I** pour ouvrir les Paramètres, puis allez dans ***Système → À propos*** et cliquez sur **Paramètres système avancés**. + 2. Dans la fenêtre Propriétés système, cliquez sur l'onglet **Distant**, puis sélectionnez **Activer le Bureau à distance**. + 3. Cliquez sur **OK** pour confirmer les changements. + 4. Depuis votre appareil client, utilisez un client RDP de Microsoft pour vous connecter à l'**adresse IP de la %%VM|vm%%** (pas le serveur Unraid). + + :::tip + Les clients RDP officiels de Microsoft sont disponibles pour Windows, Mac, Android et iOS. Assurez-vous que votre %%VM|vm%% est sur un pont réseau qui permet l'accès LAN. + ::: +
+ +#### Corriger l'audio HDMI avec les interruptions MSI + +If you're having trouble with HDMI audio in a Windows %%VM|vm%% that uses %%GPU passthrough|gpu-passthrough%% (which often occurs with NVIDIA graphics cards), enabling Message Signaled Interrupts (MSI) might help. MSI enhances the way interrupts are managed for passed-through devices. + +
+ Comment activer les interruptions MSI - Cliquez pour voir/fermer + + :::caution + Sauvegardez votre %%VM|vm%% avant de faire des modifications dans le registre. Des modifications incorrectes peuvent causer une instabilité du système. + ::: + + 1. **Vérifiez la capacité MSI :** + - Démarrez votre %%VM|vm%% avec le %%GPU PassThrough|gpu-passthrough%% activé. + - Accédez à Unraid via [WebTerminal ou SSH](../../system-administration/advanced-tools/command-line-interface.mdx). + - Exécutez la commande `lspci -v -s 01:00.0` (remplacez `01:00.0` par l'adresse PCI de votre GPU). + - Cherchez la ligne : `Capacités : [68] MSI : Activer+ Compter=1/1 Masquable- 64bit+`. + + 2. **Activez MSI dans Windows :** + - Si MSI affiche `Enable-`, suivez le [guide de Microsoft](https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/enabling-message-signaled-interrupts-in-the-registry) ou utilisez l'[outil MSI Mode Utility](https://forums.guru3d.com/threads/windows-line-based-vs-message-signaled-based-interrupts-msi-tool.378044/) pour modifier les paramètres du registre Windows. + - Redémarrez la %%VM|vm%% après avoir apporté les modifications. + + Pour plus de détails techniques, voyez [Explication des interruptions VFIO](https://vfio.blogspot.com/2014/09/vfio-interrupts-and-how-to-coax-windows.html). +
+ +--- + +### Mettre à niveau vers Windows 11 + +Windows 11 exige TPM 2.0 et Démarrage Sécurisé. Le BIOS **OVMF-TPM** d'Unraid fournit le support TPM virtuel nécessaire à ces exigences. + +:::important[Before mise à niveau] +- Créez une sauvegarde complète de votre %%VM|vm%%. +- Assurez-vous qu'Unraid exécute la version 6.10 ou plus. +- Vérifiez que votre %%VM|vm%% Windows 10 répond aux [exigences système de Windows 11](https://www.microsoft.com/fr-fr/windows/windows-11-specifications). +::: + +Pour ajouter le support TPM : + +1. Éteignez votre Windows 10 %%VM|vm%%. +2. Modifiez les paramètres du %%VM|vm%%. +3. Changez le **BIOS** de *%%OVMF|ovmf%%* à *%%OVMF|ovmf%%-TPM*. +4. Enregistrez les modifications et démarrez le %%VM|vm%%. + +#### Méthodes de mise à niveau + + + + + + + + + + + +## Étendre les partitions de vDisk VM Windows + +:::caution[Data risque de perte] +L'extension ou la modification des %%vDisks|vdisk%% et des dispositions de partitions peut entraîner une perte de données irréversible si elle n'est pas réalisée avec soin. Créez toujours une sauvegarde complète ou un cliché instantané de votre %%VM|vm%% avant de procéder. +::: + +Après avoir étendu votre %%vDisk|vdisk%% suivant les étapes de [Extension d'un vDisk](../create-virtual-machines/vm-setup.mdx#expand-a-vdisk), vous pourriez rencontrer un problème où la partition de récupération par défaut de Windows vous empêche d'étendre facilement votre partition système (C:) pour utiliser le nouvel espace. Pour résoudre ce problème, vous devez supprimer la partition de récupération, puis utiliser la Gestion des disques Windows pour étendre la partition. + +
+ ![Resize vDisk 2](/img/Resize_vdisk_2.png) +
+ +Après avoir complété l'extension initiale du %%vDisk|vdisk%% : + +1. Démarrez votre VM Windows. +2. **Ouvrir l'invite de commande :** Appuyez sur la touche Windows, tapez `cmd`, et appuyez sur Entrée. +3. **Lancez diskpart :** Tapez `diskpart` et appuyez sur Entrée. +4. **Liste des disques :** Tapez `list disk` et appuyez sur Entrée. +5. **Sélectionnez le disque étendu :** Tapez `select disk #`, en remplaçant `#` par le bon numéro de disque. +6. **Liste des partitions :** Tapez `list partition` et appuyez sur Entrée. +7. **Identifiez la partition de récupération :** Recherchez la partition de récupération qui suit votre partition principale. +8. **Sélectionnez et supprimez la partition de récupération :** + - Tapez `select partition #`, en remplaçant `#` par le numéro de la partition de récupération. + - Tapez `delete partition override` et appuyez sur Entrée. +9. **Étendre la partition C: :** + - Cliquez avec le bouton droit sur le menu Démarrer et sélectionnez **Gestion des disques**. + - Cliquez avec le bouton droit sur la partition que vous souhaitez étendre (généralement C:) et choisissez **Étendre le volume...**. + - Suivez les invites pour utiliser l'espace non alloué. + +
+
+ Redimensionner vDisk 3 +
+ +
+ Redimensionner vDisk 4 +
+
+ +:::tip +Vous avez seulement besoin de supprimer la partition de récupération si elle bloque l'accès à l'espace libre adjacent. Si l'espace non alloué est déjà à côté de votre partition C:, vous pouvez l'étendre sans rien supprimer. +::: + +:::warning +Les modifications apportées aux partitions de disque sont permanentes et ne peuvent pas être annulées. Assurez-vous que vos données sont sauvegardées en toute sécurité avant de supprimer des partitions. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json new file mode 100644 index 0000000000..2d46162a4b --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Personnaliser votre expérience", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/image.png b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/image.png new file mode 100644 index 0000000000000000000000000000000000000000..1fc01b17c6607b200175785113b5810c2f0454ef GIT binary patch literal 562 zcmV-20?qx2P)3>* zO-~b16o${(X{UGQeoUoPkmG!bH@ z#iFH&@ejCiVQ}rrwg17rMiUXP8N`+tIC&N)Ie8ZEn*;2qL70vYXcv<@c<_IBP*vuU z3Ah#T;4Xkn!~b*Dx^XT9qCzPH3A+$c83TlAZm6%CAE-`8s@4HFCqs|U$9OHbQ_Gby zhKy+?8@@26%a{U)%B#z9{$`f9ihOJ4fc6Z3UEE!>c(d^J@#Ij@zqe+6x^qVG5&*Z- zSTgy`{Db+ys}n{g8?I!-*CvenbA!B=`}I7xkkoxD`~GxldnI||uds2+t8J(>F0$*9IcV>Qn!CM?02_Dot7}6 zvHqS+td~;O=l6ZSo90`^Wh*iq^rxeN4w+c*aL`XE1C=p^se3=4%S&|4_vPW)#Z(Xk z*)5YUh + ![Langues - Applications communautaires](/img/languages_CA.png) + + +4. Trouvez votre pack de langue préféré et cliquez sur le bouton **Téléchargement** ![Télécharger](/img/download_button_icon.png). +5. Le pack de langue sera installé et disponible pour sélection. + +Vous pouvez également utiliser la barre de recherche dans Applications Communautaires pour trouver des packs de langue. + +:::tip[How pour revenir à l'anglais] +Pour revenir à l'anglais, cliquez sur le ![bouton basculer en arrière](/img/switch_toggle_icon.png) **Basculer en arrière** dans le coin supérieur droit du %%WebGUI|web-gui%%. Ce bouton alterne entre l'anglais et votre dernière langue sélectionnée. +::: + +## Exigences des développeurs pour la prise en charge multilingue + +Pour activer la prise en charge multilingue dans votre plugin Unraid, veuillez vous assurer que votre plugin répond aux exigences suivantes : + +- Utilisez les fonctionnalités linguistiques intégrées d'Unraid pour tous les textes orientés utilisateur. +- Fournissez un fichier maître de traduction en anglais comme référence pour les traducteurs communautaires. +- Permettez aux membres de la communauté de contribuer aux traductions pour les autres langues supportées. + +Bien qu'il n'y ait pas d'exigence stricte pour que les plugins prennent en charge plusieurs langues, cela améliore l'accessibilité et l'utilisabilité pour la communauté mondiale d'Unraid. Les plugins sans support multilingue fonctionneront toujours, mais tout le texte de l'interface apparaîtra en anglais (ou dans la langue codée en dur par le développeur). + +:::note +Si vous avez besoin d'aide ou souhaitez contribuer aux traductions, visitez la [Section Multilingue des forums Unraid](https://forums.unraid.net/forum/75-multi-language-section/) pour vous connecter avec d'autres utilisateurs qui parlent votre langue. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx new file mode 100644 index 0000000000..53ad570c60 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx @@ -0,0 +1,3 @@ +1. Redémarrez votre serveur Unraid. +2. Au menu de démarrage, sélectionnez **Unraid OS Safe Mode**. +3. Appuyez sur Entrée pour continuer. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx new file mode 100644 index 0000000000..9324674e70 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx @@ -0,0 +1,5 @@ +Préféré, car il ne nécessite même pas d'écran connecté à votre serveur. + +1. Dans le **%%WebGUI|web-gui%%**, allez à ***Main → Array Operation***. +2. Cochez la case **Reboot en mode sans échec**. +3. Cliquez sur **Reboot** pour redémarrer votre serveur directement en mode sans échec - aucun clavier ou moniteur requis. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx new file mode 100644 index 0000000000..a0649570fb --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx @@ -0,0 +1,69 @@ +--- +sidebar_position: 1 +sidebar_label: Plugins +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import SafeModePreferred from './partials/safe-mode-preferred.mdx'; +import SafeModeAlternative from './partials/safe-mode-alternative.mdx'; + +# Plugins + +Les plugins sont des extensions logicielles qui s'intègrent directement avec Unraid OS. Ils vous permettent d'améliorer les fonctionnalités de votre système ou d'ajouter une fonctionnalité avancée. + +:::tip +Chaque fois que vous le pouvez, utilisez les [conteneurs Docker](../run-docker-containers/overview.mdx) pour les applications ou services. Réservez les plugins pour les fonctionnalités nécessitant une intégration directe avec Unraid OS. +::: + +## Quand utiliser des plugins + +Les plugins sont adaptés pour les situations suivantes : + +- Services ou améliorations au niveau système qui nécessitent un accès direct à Unraid OS ou au %%WebGUI|web-gui%%. +- Fonctionnalités qui ne peuvent être fournies en tant que conteneurs Docker. + +Il est conseillé d'éviter d'utiliser des plugins pour des applications à usage général pouvant fonctionner en toute sécurité dans des conteneurs isolés. + +## Considérations sur les plugins + +Avant d'installer un plugin, réfléchissez à ces aspects : + +| Avantages | Inconvénients | +| --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | +| Intégration approfondie avec Unraid OS et le **%%WebGUI\|web-gui%%** | Peut causer une instabilité du système, surtout après les mises à jour de l'OS | +| Active les fonctionnalités de matériel et de stockage au niveau matériel | Un accès complet au système de fichiers augmente les risques de sécurité | +| Souvent open source pour plus de transparence | Nécessite un entretien manuel et des vérifications de compatibilité | +| Nécessaire pour certaines fonctionnalités avancées de stockage ou de réseau | | + +:::important[Security consid�e9rations] +- N'installez des plugins que depuis des sources approuvées ou des développeurs bien connus. +- Recherchez chaque plugin avant l'installation ; vérifiez les retours de la communauté et l'historique des mises à jour. +- Gardez les plugins à jour et examinez régulièrement ceux installés pour la compatibilité. +::: + +## Gestion des plugins + +Vous pouvez gérer les plugins depuis l'onglet **Plugins** dans le **%%WebGUI|web-gui%%** d'Unraid. + +Si un plugin est disponible dans **[Applications Communautaires](../run-docker-containers/community-applications.mdx)**, il est recommandé de l'installer depuis l'onglet **Apps** pour des vérifications supplémentaires et de compatibilité. + +:::note +Au fur et à mesure qu'Unraid évolue, certaines fonctionnalités des plugins peuvent être ajoutées au système d'exploitation de base. Les Applications Communautaires n'offriront que des plugins considérés comme compatibles avec votre version actuelle, mais elles ne supprimeront pas automatiquement les plugins incompatibles déjà installés. Avant de mettre à niveau Unraid, lisez les Notes de Version de la version cible pour vérifier les notes spéciales concernant vos plugins installés. +::: + +## Dépannage en mode sans échec + +Si votre système devient instable après l'installation ou la mise à jour des plugins, vous pouvez résoudre les problèmes en utilisant le **Mode Sans Échec**. Le Mode Sans Échec ne charge que les composants essentiels et désactive tous les plugins. + +Pour démarrer en mode sans échec : + + + + + + + + + + diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json new file mode 100644 index 0000000000..906e268e70 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Gérer le stockage", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx new file mode 100644 index 0000000000..12eb65ae6f --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx @@ -0,0 +1,119 @@ +--- +sidebar_position: 5 +sidebar_label: Apple Time Machine +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Apple Time Machine + +L’outil de sauvegarde Time Machine d’Apple est fourni avec chaque Mac. Il facilite la protection de vos fichiers, applications et paramètres système en les sauvegardant automatiquement. En connectant Time Machine à votre serveur Unraid, vous pouvez stocker ces sauvegardes en toute sécurité sur votre propre matériel. Cette configuration vous offre non seulement plus de contrôle mais permet également une évolutivité plus facile et une tranquillité d'esprit accrue. + +::::note[macOS compatibilité] +Ce guide s'applique aux versions macOS Ventura (13.x), Sonoma (14.x), et Sequoia (15.x). Certaines fonctionnalités, comme les améliorations de %%SMB|samba%% et la prise en charge de Time Machine via %%SMB|samba%%, nécessitent des versions de macOS qui supportent ces protocoles. + +Pour obtenir les meilleurs résultats, gardez votre Mac à jour avec la dernière version de macOS compatible avec votre matériel. +:::caution[mises en garde macOS Sequoia (15.x)] +Certains utilisateurs signalent des problèmes intermittents avec Time Machine et les partages réseau sur macOS Sequoia. Si vous rencontrez des échecs de sauvegarde, envisagez d'utiliser le [conteneur Docker Time Machine](https://unraid.net/community/apps?q=time+machine#r) comme alternative. +::: +:::: + +::: + +::: + +::: + +::: + +## Créer un partage Time Machine + +:::caution[Before vous commencez] +Assurez-vous que **%%SMB|samba%%** est activé dans le %%WebGUI|web-gui%% : + +1. Accédez à ***Paramètres → SMB*** sous "Services Réseau." +2. Réglez **Activer %%SMB|samba%%** sur **Oui** (vous devez arrêter le %%array|array%% pour changer cela). +3. Réglez **Interopérabilité macOS améliorée** sur **Oui**. + +
+ ![Interopérabilité macOS améliorée](/img/enhancedmacos.png) +
+::: + +Pour créer un partage Time Machine : + +1. Dans le %%WebGUI|web-gui%%, allez à **Partages** et cliquez sur **Ajouter un %%user share|user-share%%**. + +2. Configurez les paramètres suivants : + + | Paramètre | Description | + | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | **Nom du %%partage utilisateur\|user-share%%** | Nommez votre %%user share\|user-share%% (par exemple, Time Machine). | + | **Espace libre minimum** | Définissez sur **1** (1 KB) pour de meilleurs résultats. Cela empêche Time Machine d'échouer lorsque les disques approchent de la capacité. | + | **Disque(s) inclus** | Sélectionnez le(s) disque(s) dans le %%array\|array%% à utiliser pour le %%user share\|user-share%% Time Machine. | + | **Activer l'écriture différée** | Gardez sur **Auto** pour de meilleures performances. | + | **Exportation %%SMB\|samba%%** | Réglez sur **Oui (Time Machine)** pour activer la prise en charge de Time Machine. | + | **Taille du volume Time Machine** | Définissez la taille maximale souhaitée, ou laissez non défini. Si vous ne définissez pas l'espace libre minimum sur 1, appliquez d'abord le partage, puis rééditez et définissez la taille du volume à moins que l'espace libre minimum calculé qui apparaît. | + | **Paramètres de sécurité** | Configurer les paramètres de sécurité %%SMB\|samba%% selon votre convenance. | + +3. Cliquez sur **Appliquer** pour créer le %%user share|user-share%%. + +Pour plus de détails sur la création et la gestion des partages, consultez [Shares utilisateurs](./shares.mdx). + +## Connexion depuis macOS + +Pour vous connecter à votre %%user share|user-share%% depuis votre Mac : + +1. Dans **Finder**, appuyez sur **Command + K** pour ouvrir la fenêtre "Se connecter au serveur". +2. Entrez l'adresse %%SMB|samba%% de votre serveur Unraid. Par exemple, utilisez le format `smb://[serveur-ip]/[nom du partage Time Machine]` et cliquez sur **Se connecter**. +3. Lorsque cela est demandé, entrez votre nom d'utilisateur et mot de passe Unraid pour accéder au partage, puis cliquez sur **Connecter**. +4. Ouvrez **Réglages Système** si vous utilisez macOS Ventura 13.0 ou ultérieur, ou **Préférences Système** si vous êtes sous macOS Monterey 12.x ou antérieur. Puis accédez à **Time Machine**. +5. Cliquez sur **Sélectionner le disque** ou **Ajouter un disque de sauvegarde**, choisissez votre %%user share|user-share%% Time Machine Unraid, puis cliquez sur **Utiliser le disque**. +6. (Optionnel) Si vous souhaitez protéger votre sauvegarde par un mot de passe, activez **Crypter les sauvegardes**. +7. Si demandé, confirmez la connexion et ressaisissez vos identifiants %%root user|root-user%% d'Unraid si nécessaire. +8. Time Machine commencera automatiquement la sauvegarde initiale. Gardez à l'esprit que la première sauvegarde peut prendre du temps, mais les sauvegardes futures seront plus rapides puisqu'elles sont incrémentielles. + +:::tip +Pour plus de contrôle sur la planification et les options de sauvegarde, envisagez d'utiliser un outil tiers comme [Time Machine Editor](https://tclementdev.com/timemachineeditor/). + +
+ ![Éditeur Time Machine](/img/TimeMachineEditor.png) +
+::: + +## Configurations multiples de Time Machine + +:::tip +Pour les familles ou les environnements avec plusieurs Macs, cette méthode offre une séparation claire des sauvegardes, améliore la sécurité et simplifie la gestion. +::: + +Pour créer des sauvegardes distinctes pour différents utilisateurs ou Macs sur votre serveur Unraid : + +1. **Créez des comptes d'utilisateur uniques Unraid %%root user|root-user%%** pour chaque personne ou Mac qui sauvegardera des données. Par exemple, des utilisateurs nommés `larry`, `curly`, et `moe`. Cela garantit que chaque utilisateur possède sa propre identité et ses permissions. + +2. **Create individual Time Machine %%user shares|user-share%%** for each user, naming them clearly to match the user, such as `tm-larry`, `tm-curly`, and `tm-moe`. Keeping shares separate helps with managing storage and access for each user. + +3. **Attribuez les autorisations utilisateur appropriées** pour chaque %%user share|user-share%% : + - Réglez les paramètres de sécurité %%SMB|samba%% du %%user share|user-share%% pour s'assurer que seul l'utilisateur correspondant a accès. + - Assurez-vous que seul l'utilisateur prévu peut lire et écrire sur son %%user share|user-share%% Time Machine. + +4. **Configurez Time Machine sur chaque Mac** pour se connecter à son %%user share|user-share%% désigné : + - Sur chaque Mac, connectez-vous au serveur Unraid en utilisant le chemin %%SMB|samba%% pour leur %%user share|user-share%% spécifique (par exemple, `smb://unraid-server/tm-larry`). + - Suivez les étapes habituelles de configuration de Time Machine pour sélectionner le %%user share|user-share%% comme disque de sauvegarde. + +5. **Surveillez et gérez l'utilisation de l'espace de stockage** : + - Vous pouvez éventuellement définir des limites de taille de volume sur chaque %%user share|user-share%% Time Machine pour empêcher un utilisateur de prendre trop d'espace. + - Vérifiez régulièrement l'utilisation et ajustez les quotas si nécessaire. + +Pour plus d'informations sur la gestion des utilisateurs et la sécurité, voir [Gestion des utilisateurs](../../system-administration/secure-your-server/user-management.mdx). + +## Dépannage + +Si les sauvegardes Time Machine échouent ou deviennent peu fiables : + +1. **Essayez le conteneur Docker Time Machine** : [Disponible via les Applications Communautaires](https://unraid.net/community/apps?q=time+machine#r), cette option peut fournir des sauvegardes plus stables que les %%user shares|user-share%% %%SMB|samba%% directs. +2. **Vérifiez le pare-feu macOS** : Désactivez temporairement le pare-feu pour voir s'il bloque les connexions. +3. **Créez une nouvelle destination de sauvegarde** : Supprimez et recréez le %%user share|user-share%% Time Machine si les problèmes persistent. + +Pour plus d'aide en matière de dépannage, consultez [Dépannage](../../troubleshooting/troubleshooting.mdx) ou visitez les [forums Unraid](https://forums.unraid.net/). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx new file mode 100644 index 0000000000..34df35774d --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx @@ -0,0 +1,974 @@ +--- +sidebar_position: 2 +sidebar_label: Configuration de l'Array +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import AddDataDiskParityProtected from './partials/add-data-disk-parity-protected.mdx'; +import AddDataDiskNoParity from './partials/add-data-disk-no-parity.mdx'; +import ParitySwapWhat from './partials/parity-swap-what.mdx'; +import ParitySwapWhen from './partials/parity-swap-when.mdx'; +import RemoveDataDiskStandard from './partials/remove-data-disk-standard.mdx'; +import RemoveDataDiskParityPreserve from './partials/remove-data-disk-parity-preserve.mdx'; +import ArrayCheckParity from './partials/array-check-parity.mdx'; +import ArrayCheckRead from './partials/array-check-read.mdx'; +import TroubleshootMissingDisks from './partials/troubleshoot-missing-disks.mdx'; +import TroubleshootDeviceLimit from './partials/troubleshoot-device-limit.mdx'; +import TroubleshootLicenseIssues from './partials/troubleshoot-license-issues.mdx'; +import TroubleshootKeyServer from './partials/troubleshoot-key-server.mdx'; +import TroubleshootWithdrawnRelease from './partials/troubleshoot-withdrawn-release.mdx'; + +# Configuration de l'Array + +Le système de stockage d'Unraid combine flexibilité et protection des données grâce à son architecture %%array|array%% et %%cache|cache%%. L'%%array|array%% gère votre stockage principal avec une protection %%parity|parity%% optionnelle, tandis que les caches pools accélèrent les performances. + +Voici quelques principes importants de configuration de l'array : + +
+ Utilisez toujours vos plus grands disques pour la parité. + + Lorsque vous ajoutez plus de disques à votre %%array|tableau%% plus tard, rappelez-vous que vous ne pouvez pas utiliser un disque de données plus grand que vos %%parity disks|disques de parité%%. Il est préférable d’acheter le plus gros disque dur pour vos %%parity disks|disques de parité%% dès le début. Ainsi, vous ne serez pas limité par de plus petites tailles lors de l'expansion par la suite. + + Si vous utilisez deux %%parity disks|disques de parité%%, ils peuvent être de tailles différentes. Cependant, gardez à l'esprit qu'aucun disque de votre %%array|tableau%% ne peut être plus grand que le plus petit %%parity disks|disques de parité%% que vous avez. +
+ +
+ Ne pas utiliser de SSD dans le tableau – gardez-les pour les pools ou les appareils non assignés. + + Unraid ne supporte pas les opérations TRIM ou Discard pour les SSD dans le tableau principal. Avec le temps, cela entraînera une dégradation des performances des SSD s'ils sont utilisés comme membres du tableau. Pour de meilleurs résultats, utilisez les SSD dans les %%cache pools|cache-pool%% ou comme appareils non assignés, où ces fonctionnalités sont prises en charge et la performance à long terme est maintenue. La plupart des SSD modernes, y compris NVMe, fonctionnent bien dans ces rôles. +
+ +
+ Utiliser un cache améliorera les performances d'écriture du tableau. + + Au lieu d'écrire directement sur le stockage principal, les données sont d'abord envoyées à un disque dédié ou à un groupe de disques. Ces données sont ensuite transférées vers le stockage principal à des heures programmées, généralement une fois par jour à 3h40. L'avantage est que les données enregistrées sur le %%cache|cache%% apparaissent toujours via vos %%user shares|partages utilisateurs%%, vous n'avez donc pas besoin de modifier votre façon d'accéder à vos fichiers. +
+ +
+ Créer un pool de cache aide à préserver la sécurité de vos données mises en cache. + + N'utiliser qu'un seul appareil de cache compromet la sécurité de vos données mises en cache jusqu'à ce qu'elles soient déplacées vers le tableau principal. Pour protéger vos données à tout moment, utilisez plusieurs appareils configurés comme un %%cache pool|cache-pool%%. Cette configuration assure une redondance des données mises en cache, réduisant le risque de perte de données en cas de défaillance d'un appareil de cache. +
+ +
+ Les appareils de cache SSD sont parfaits pour les applications et les machines virtuelles. + + L'utilisation des SSD aide les applications et les machines virtuelles (VM) à fonctionner plus rapidement car elles peuvent accéder aux données plus rapidement. Les SSD fonctionnent bien dans un %%cache pool|cache-pool%%, offrant un excellent mélange de vitesse, d'efficacité et de sécurité des données. +
+ +
+ Le chiffrement est désactivé par défaut. + + Si vous souhaitez utiliser le chiffrement sur votre système, vous devez reformater le disque avec un type de système de fichiers crypté — ce processus efface toutes les données existantes sur le disque. Avant d'activer le chiffrement, déplacez vos données hors du disque, changez le système de fichiers pour une option cryptée, formatez le disque, puis déplacez à nouveau vos données. Pour plus de détails, consultez [Comment chiffrer un disque dans Unraid](../../system-administration/secure-your-server/securing-your-data.mdx#how-to-encrypt-a-drive-in-unraid). + + Gardez à l'esprit que l'utilisation du cryptage peut rendre difficile la récupération des données si quelque chose tourne mal, utilisez-le donc uniquement si vous en avez vraiment besoin. +
+ +:::info[Disk Reconnaissance et flexibilité des ports] +Unraid identifie les disques en fonction de leurs numéros de série et de leurs tailles, et non des ports SATA spécifiques auxquels ils sont connectés. Cela signifie que vous pouvez changer les disques entre différents ports SATA sans affecter leurs affectations dans Unraid. Cette fonction est particulièrement utile pour diagnostiquer des problèmes matériels, comme trouver un port défaillant ou remplacer des câbles d'alimentation ou SATA peu fiables. +::: + +:::caution +Votre array ne démarrera pas si vous attribuez ou attachez plus de périphériques que votre clé de licence ne le permet. +::: + +## Lancer/Arrêter l'array + +Lorsque votre système démarre, il alimente généralement automatiquement la matrice de disques. Cependant, si vous avez récemment modifié la configuration des disques, comme ajouter un nouveau disque, la matrice restera éteinte pour vous permettre de vérifier votre configuration. + +:::caution +Unraid propose plusieurs options de maintenance et de configuration pour votre array de stockage. Les opérations clés incluent : +::: + +Pour démarrer ou arrêter l'array : + +1. Cliquez sur l'onglet **Principal**. +2. Accédez à la section **Array Operation**. +3. Cliquez sur **Démarrer** ou **Arrêter**. Vous devrez peut-être cocher la case qui dit "Oui, je veux faire cela" avant de continuer. + +--- + +## Configuration de nouveaux disques + +Unraid propose plusieurs options de maintenance et de configuration pour votre matrice de stockage. Les opérations clés incluent : + +import DocCardList from '@theme/DocCardList'; + + + +--- + +### Ajout de disques + +#### Configuration de nouveaux disques + +1. Allez à ***Main → Dispositifs de l'array*** dans l'interface. +2. Choisissez l'emplacement où vous souhaitez ajouter le disque et sélectionnez le disque dans la liste déroulante. +3. Par défaut, les nouveaux disques de la matrice seront formatés avec %%XFS|xfs%%. Si vous souhaitez utiliser %%ZFS|zfs%% ou %%BTRFS|btrfs%% à la place, sélectionnez votre système de fichiers préféré dans le menu déroulant. + +:::tip[Hot-Swap Fonctionnalité] +Si vous utilisez du matériel moderne compatible avec Unraid, vous pouvez changer les disques sans éteindre votre serveur. Cette fonction, connue sous le nom de hot-swap, est disponible dans les serveurs LimeTech depuis le début. +::: + +#### Effacer vs Pré-Effacer + +Unraid nécessite que les disques soient dans un état nettoyé - complètement remplis de zéros et marqués d'une signature spéciale - avant de les ajouter à une matrice protégée par parité. Ce processus garantit l'intégrité de la parité et maintient la matrice en ligne pendant la préparation du disque. + +Clearance is mandatory when adding a data disk to a %%parity|parity%%-protected array. If you are adding a %%parity disk|parity-drives%% or working with an array that does not use %%parity|parity%%, clearance is not required. + +L'opération de nettoyage intégrée écrit des zéros sur le disque en arrière-plan, permettant à la matrice de rester disponible. Une fois le processus terminé, le disque doit être formaté avant utilisation. Cette méthode est efficace, ne nécessite pas d'outils tiers et est idéale pour des extensions rapides. + +Pour une approche plus approfondie, l'opération de pré-nettoyage - disponible via des plugins comme [Unassigned Devices Preclear](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=enable%20destructive%20mode.-,Unassigned%20Devices%20Preclear,-dlandon) - effectue une pré-lecture pour vérifier les mauvais secteurs, écrit des zéros sur le disque, puis vérifie l'intégrité avec une post-lecture. Cette étape supplémentaire aide à détecter les pannes prématurées des disques mais prend beaucoup plus de temps et nécessite l'installation manuelle du plugin. + +**Règle générale :** Utilisez l'opération d'effacement intégrée pour des ajouts rapides à votre array, ou choisissez le pré-effacement si vous souhaitez des tests étendus de la santé des disques avant de mettre un disque en service. + +

Comparaison Effacer vs Pré-Effacer

+ +
+ | | Effacer | Pré-Effacer | + | ---------------------- | --------------------------------- | ---------------------------------------------------- | + | **Objectif** | Assure la compatibilité de base | Teste le disque et le prépare à l'emploi | + | **Vitesse** | Fonctionne rapidement | Processus beaucoup plus lent | + | **Impact sur l'array** | Fonctionne en arrière-plan | Nécessite que le disque soit retiré de l'utilisation | + | **Meilleur Pour** | Idéal pour des expansions rapides | Parfait pour vérifier de nouveaux disques | +
+ +%%Parity disks|parity-drives%% are a helpful feature that provide an extra layer of protection for your data. They allow your storage system to recover information if a hard drive fails. While using %%parity disks|parity-drives%% is optional, it's highly recommended to keep your data safe. + +**Pré-Effacer** prend plus de temps mais fournit un test approfondi, garantissant qu'un nouveau disque est fiable avant de devenir une partie de votre array. + +:::caution[Critical Remarque] +Évitez de formater un disque pré-effacé avant de l'inclure dans l'array, car cela supprime la signature de dédouanement. +::: + +#### Ajout de disques de données + +Ajouter des disques de données est un excellent moyen d'augmenter l'espace de stockage de votre matrice Unraid. En ajoutant plus de disques, vous pouvez conserver plus de fichiers, d'applications et de sauvegardes, tout en protégeant vos données. + +:::important[Important Remarque :] +When adding a new data disk, it must be the same size or smaller than your current %%parity disks|parity-drives%%. If you want to use a larger disk, you'll need to replace the %%parity disks|parity-drives%% first with the larger one, then use the old %%parity disks|parity-drives%% as a data disk. +::: + +
+ En profondeur : Comment la parité affecte-t-elle les performances d'écriture ? - Cliquez pour développer/réduire + + ```mdx-code-block + + + + + + + + + + + ``` +
+ +#### Ajout de disques de parité + +%%Parity disks|parity-drives%% are a helpful feature that provide an extra layer of protection for your data. They allow your storage system to recover information if a hard drive fails. While using %%parity disks|parity-drives%% is optional, it's highly recommended to keep your data safe. + +:::important\[Requirements] + +- **Parité Unique :** Le disque doit être au moins de la même taille que votre plus grand disque de données. +- **Double Parité :** Les deux %%parity disks|parity-drives%% doivent également être au moins de la taille de votre plus grand disque de données, mais ils peuvent être de tailles différentes. + +::: + +L'ajout d'un %%parity disk|parity-drives%% est similaire à l'ajout d'un disque de données, mais il y a une étape importante à garder à l'esprit : + +1. Après avoir sélectionné le disque de %%parité|parity-drives%% et démarré votre matrice de stockage, un processus appelé **calcul de parité** commence. +2. Pendant que ce processus s'exécute, vous pouvez toujours accéder à vos fichiers. Cependant, le système peut fonctionner un peu plus lentement car il calcule la parité. + +
+ Approfondissement : Qu'est-ce que la parité et pourquoi est-ce important ? - Cliquez pour développer/réduire + + %%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. + + Unraid repose sur cette parité en temps réel pour deux objectifs principaux : + + - Reconstruire les données lorsqu'un disque échoue + - Corriger les erreurs lorsqu'un secteur défectueux est trouvé + + Cette fonctionnalité vous permet de garder vos données en sécurité, même si les disques finiront par échouer au fil du temps. +
+ +
+ Approfondissement : Comment fonctionne la parité dans Unraid ? - Cliquez pour développer/réduire + + Unraid works with a special bit called the *parity bit*, which is stored for each bit position across all data disks and is 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, a process known as even parity. + + Voici comment cela fonctionne : + + - Unraid utilise l'opération XOR (ou exclusif) pour ce calcul. + - Par exemple, si vous avez quatre disques et que leurs 57e bits sont 1, 1, 1, 1, le bit de parité pour cette position sera 0 (car 1 + 1 + 1 + 1 + 0 = pair). + - Cependant, si les 57e bits sont 1, 0, 0, 0, la %%parité|parity%% pour cette position sera 1 (pour s'assurer que le total reste pair). + + Lors de l'ajout d'un nouveau disque, Unraid le nettoie d'abord en écrivant des zéros sur tous les bits. Cela permet une inclusion rapide dans la matrice protégée puisque l'écriture de zéros n'interfère pas avec les calculs de parité actuels. +
+ +
+ Approfondissement : Comment les données sont-elles reconstruites à l'aide de la parité ? - Cliquez pour développer/réduire + + Unraid peut reconstruire un disque manquant ou réparer un secteur défectueux en utilisant les étapes suivantes : + + - Il lit tous les disques restants, y compris le disque de %%parité|parity-drives%%. + - Il applique la %%parité|parity%% paire pour résoudre les données manquantes. + + Par exemple, si le disque 2 échoue : + + - Si les bits associés sont 1, 1, 1 (en plus de la %%parité|parity%%), Unraid calcule : 1 + x + 1 + 1 + 0 = pair. Ici, x doit être 1 pour maintenir un total pair. + - Si les bits sont 1, x, 0, 0, 1 = pair, alors x sera égal à 0. + + Cette fonctionnalité de %%parité|parity%% permet à Unraid de « simuler » le disque manquant. Vous pouvez continuer à utiliser la matrice comme si le disque était toujours fonctionnel. Une fois qu'un nouveau disque est installé dans l'emplacement défaillant, Unraid recréera toutes les données manquantes en se basant sur l'état actuel de la %%parité|parity%% et des autres disques. + + Pour assurer une protection continue et une récupération efficace, il est important d'effectuer des %%parity checks|vérifications de parité%% réguliers. +
+ +
+ Quelle doit être la taille de mon disque de parité ? - Cliquez pour développer/réduire + + Your %%parity disk|parity-drives%% must be **equal to or larger than your largest data disk**. For instance: + + - Si votre plus grand disque de données est de 10 To, votre disque de %%parité|parity-drives%% doit être d'au moins 10 To. + - Vous pouvez utiliser divers autres tailles de disques de données librement, tant qu'aucune ne dépasse la taille du disque de %%parité|parity-drives%%. +
+ +
+ Approfondissement : Comment la parité affecte-t-elle les performances d'écriture ? - Cliquez pour développer/réduire + + Writing to a %%parity|parity%%-protected array involves four disk operations for each write: reading data, reading %%parity|parity%%, writing data, and writing %%parity|parity%%. This process requires a full rotation from each affected drive, so the overall write speed is limited by the slowest drive involved in the operation. + + Adding a faster %%parity disk|parity-drives%% won't necessarily improve write speeds unless you're writing to multiple slow data disks simultaneously, allowing the %%parity disk|parity-drives%% to handle the load. Typically, the write speed is constrained by the slowest data drive being written to. +
+ +
+ Comment ajouter un disque de données + + Dual %%parity|parity%% enables recovery from **two simultaneous disk failures**. In Unraid, the second %%parity disk|parity-drives%% doesn't simply mirror the first. Instead: + + - **Parité 1 :** Utilise des calculs de %%parité|parity%% XOR (pair) standard. + - **Parité 2 :** Utilise un algorithme plus complexe (champ de Galois, plutôt que Reed-Solomon comme dans la %%RAID 6|raid6%% traditionnelle), permettant à Unraid de reconstruire à partir de deux disques manquants en même temps. Cette fonctionnalité est significative pour les grandes matrices, où le risque de pannes multiples augmente. La double %%parité|parity%% améliore considérablement la résilience sans le surcoût de la redondance miroir. +
+ +:::caution\[Remember] + +When setting up a new data storage system, add your data disks **first**, making sure they all use a compatible file system. **After** placing your data disks, you can add a %%parity disk|parity-drives%% to protect against drive failures. + +Once your %%parity disk|parity-drives%% is added, remember that any new disk you want to include in the array must be cleared (zeroed) before it's integrated. This is to ensure that the %%parity|parity%% remains valid and continues to protect your data. + +::: + +#### Remplacement des disques + +Vous pouvez mettre à niveau votre(vos) dispositif(s) de disque de %%parité|parity-drives%% vers un plus grand afin d'utiliser des disques de plus grande taille dans la matrice ou ajouter un disque de %%parité|parity-drives%% supplémentaire. + +:::caution +Si vous envisagez de suivre les étapes suivantes et que vous n'avez qu'un seul disque de %%parity disk|parité%%, gardez à l'esprit ces points : + +- Vos données ne seront pas protégées tant que la reconstruction de la %%parity|parity%% ne sera pas terminée. Si un disque de données tombe en panne pendant ce temps, vous pourriez perdre les informations sur ce disque. +- Si vous disposez déjà d'un disque de données défaillant, procéder ainsi vous empêchera de pouvoir reconstruire ce disque. Dans ce cas, vous devez suivre la procédure de **remplacement de la parité**. +::: + +Pour retirer un disque de parité : + +1. **Arrêtez la matrice :** Utilisez le WebGUI pour arrêter la matrice. + +:::tip +Si votre serveur prend en charge le hot-swap, vous n'avez pas besoin de l'éteindre pour changer les disques. Vous pouvez passer en toute sécurité les étapes 2 et 4. +::: + +2. **Éteignez le serveur :** Éteignez votre serveur pour effectuer en toute sécurité des modifications matérielles. +3. **Installez le nouveau %%parity disk|parity-drives%% :** Placez le nouveau, plus grand %%parity disk|parity-drives%% dans votre serveur. +4. **Allumez le serveur :** Rallumez le serveur. +5. **Assignez le nouveau disque :** Allez dans l'emplacement de parité dans vos paramètres et assignez le nouveau disque, remplaçant l'ancien. +6. **Démarrez l'array :** Utilisez le %%WebGUI|web-gui%% pour redémarrer l'array. + +Une fois l'array de nouveau en marche, Unraid commencera à reconstruire la %%parity|parity%% sur le nouveau disque. Vous pouvez toujours accéder à vos données pendant ce temps, mais gardez à l'esprit que cela pourrait être un peu plus lent jusqu'à ce que le processus soit terminé. Une fois que la reconstruction de la %%parity|parity%% est terminée, vos données sont de nouveau protégées ! + +:::important[Important Conseils] +- **Conservez l'ancien disque :** Ne retirez pas le vieux %%parity disk|parity-drives%% tant que la nouvelle reconstruction de la %%parity|parity%% n'est pas terminée. Si un disque de données échoue pendant la mise à niveau, avoir l'ancien disque pourrait vous aider à récupérer vos données. + +- **Utilisateurs de parité double :** Si vous avez deux disques de %%parité|parity-drives%%, mettez à niveau un à la fois pour plus de sécurité. + +- **Réutilisez l'ancien disque :** Après la mise à niveau, vous pouvez utiliser l'ancien disque de %%parité|parity-drives%% comme disque de données s'il répond toujours à vos besoins de stockage. +::: + +--- + +### Remplacement des disques + +Vous pouvez avoir besoin de remplacer des disques dans votre matrice pour deux raisons principales : + +1. [**Mise à niveau de la capacité**](#upgrading-capacity) : Votre stockage est presque plein, et vous souhaitez utiliser des disques plus grands. +2. [**Défaillance ou retraite**](#replacing-faileddisabled-disks) : Un disque a échoué ou n'est plus pris en charge. + +Bien que le processus de remplacement des disques soit similaire dans les deux cas, soyez prudent, car il y a un risque de perte de données pendant le remplacement. Les dispositifs de parité aident à protéger vos données ; un dispositif de parité peut protéger contre une défaillance de disque unique, tandis que deux peuvent protéger contre la perte de données si deux disques échouent. Soyez toujours conscient de votre niveau de protection lors de remplacement de disques. + +#### Mise à niveau de la capacité + +Lors de la mise à niveau de votre disque de données vers un plus grand, voici quelques points à garder à l'esprit : + +- **Disques non montables :** Corrigez tous les disques non montables avant de mettre à jour. Un statut non montable ne sera pas résolu pendant la reconstruction. + +- **Risques de parité unique :** Si vous avez une parité unique, vous risquez une perte de données si un autre lecteur échoue pendant la mise à jour. Cherchez des conseils dans les forums si cela se produit. + +- **Protection par double parité :** Avec une double parité, vous êtes à l'abri de la perte de données si un lecteur échoue lors de la mise à jour d'un seul disque. Vous pouvez également mettre à niveau deux disques à la fois, mais notez que cela augmente le risque puisque vous n'aurez pas de protection contre l'échec d'un autre lecteur. + +- **Sauvegardez l'ancien disque :** Conservez le disque original intact jusqu'à ce que la mise à niveau soit confirmée réussie. Cela offre une option de secours si quelque chose tourne mal. + +:::warning +Le remplacement des disques comporte toujours un risque. Si un autre disque tombe en panne lors de la mise à niveau, surtout avec une seule parité, vous risquez de perdre des données. Vérifiez toujours la santé de vos disques avant de commencer le processus et assurez-vous de conserver l'ancien disque intact jusqu'à ce que la mise à niveau soit terminée et que vos données soient confirmées comme sécurisées. +::: + +Pour mettre à niveau un disque de données existant : + +1. **Run a parity check:** First, ensure the integrity of your data by running a %%parity check|parity-check%%. Go to [***Tools → Parity Check***](#checking-array-devices) and make sure there are **zero errors**. If parity isn't valid, rebuilding the disk will corrupt its file system. + +2. **Arrêter la matrice :** Ensuite, vous voudrez arrêter la matrice. Naviguez vers ***Principale → Opération de la Matrice*** et sélectionnez **Arrêter**. + +3. **Désattribuez le disque cible :** Une fois la matrice arrêtée, trouvez le disque que vous souhaitez remplacer. Retirez-le de son emplacement dans ***Principale → Dispositifs de la Matrice***. + +4. **Démarrez la matrice :** Maintenant, redémarrez la matrice. Unraid va émuler le disque manquant en utilisant les disques de parité et de données existants. Vous avez deux modes à choisir : + - **%%Maintenance Mode|maintenance-mode%%:** This mode prevents any writes to the %%emulated disk|emulated-disk%%. + - **Normal Mode:** If you need read/write access to the %%emulated disk|emulated-disk%%, select this option. + +:::note +Le démarrage de la matrice en Mode Normal à ce point est optionnel. Vous pouvez l'utiliser pour vérifier que le disque émulé est monté et que les données semblent correctes avant de procéder, mais elle n'est pas requise pour le processus de mise à niveau. +::: + +5. Avant de commencer, assurez-vous que le disque de données que vous souhaitez remplacer est désactivé. Si le disque a échoué (affiche un indicateur rouge), il est déjà désactivé. Si le disque est en bon état mais que vous voulez le remplacer, désattribuez le disque et démarrez l'array une fois sans lui pour forcer Unraid à le marquer comme désactivé. + +6. Si votre disque de données de remplacement n'est pas plus grand que votre disque de parité, utilisez plutôt la procédure standard [Remplacement d'un disque de données](#replacing-faileddisabled-disks). + +7. **Start the array to rebuild:** Finally, start the array again. Unraid will now rebuild the contents of the %%emulated disk|emulated-disk%% onto the new disk. The file system will automatically adjust to take full advantage of the larger disk's capacity. + +#### Remplacement des disques échoués/désactivés + +
+ Qu'est-ce qu'un disque échoué/désactivé ? + + Un disque échoué ou désactivé est un disque qu'Unraid a cessé d'utiliser pour l'écriture de données, généralement parce qu'il a rencontré une erreur d'écriture. Gardez à l'esprit que cela ne signifie pas toujours que le disque lui-même est cassé ; parfois, cela peut être dû à de mauvaises connexions, des problèmes d'alimentation, ou simplement un problème temporaire. + + Certains signes incluent : + +
+ ![Un "X" rouge indique une erreur d'écriture](/img/Diskfailureindicator.png) +

*Ce "X" rouge indique quel disque doit être remplacé.*

+
+ +
+ +
+ ![Alerte de notification d'échec](/img/Diskfailurenotification.png) +

*Soyez attentif à ces alertes.*

+
+ +
+ +
+ Cliquez pour voir comment différentes configurations de parité gèrent les pannes de disque + + | Scénario d'échec | Pas de parité | Parité simple | Double parité | + | ---------------- | ------------- | ------------- | ------------- | + + \| **1 Panne de disque** | Données perdues | Reconstructible | Reconstructible | + \| **2 Pannes de disque** | Données perdues | Données perdues | Reconstructible | + + :::tip[Conseils pour des reconstructions sûres] + - **Pour une seule parité :** Vous ne pouvez remplacer qu'un disque à la fois. Si un autre disque échoue pendant la reconstruction, vous pourriez perdre des données. + - **Pour une double parité :** Vous pouvez remplacer un ou deux disques en même temps, mais soyez prudent si plus de deux disques échouent. + ::: + + :::important + Si vous faites face à une situation où **plus de disques échouent que votre parité ne peut protéger :** + + 1. **Arrêtez immédiatement toutes les opérations d'écriture** pour éviter une perte de données supplémentaire. + 2. Cherchez de l'aide en postant votre problème sur les [forums Unraid](https://forums.unraid.net/) avec des diagnostics. + 3. **N'essayez pas une reconstruction** avant d'avoir reçu des conseils - concentrez-vous d'abord sur le sauvetage de vos données. + ::: +
+
+ +
+ Comment diagnostiquer le problème + + Pour diagnostiquer le problème, commencez par vérifier le %%syslog|journal système%% et les %%SMART reports|rapports SMART%% : + + - Si le %%syslog|syslog%% montre que le lecteur a été réinitialisé, il pourrait y avoir un problème de connexion ou de câbles. + - %%SMART reports|smart-report%% can help assess the drive's health, but the best way to check is by running a %%SMART|smart%% extended test. If it completes without errors, the drive is likely fine. + - Si vous voyez des erreurs de %%CRC|crc-errors%%, cela indique généralement des problèmes avec le câblage. Surveillez ces erreurs, car elles s'accumulent avec le temps et ne se réinitialisent pas. + + :::tip + Pour rester informé des problèmes de disque, [activez les notifications](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#notification-settings) dans Unraid. Ainsi, vous êtes immédiatement alerté si quelque chose ne va pas, réduisant ainsi le risque pour vos données. + ::: +
+ +
+ Qu'est-ce que l'émulation ? + + When a drive is disabled, Unraid will use its parity and other working drives to emulate the failed drive. This means your system continues to operate, and you can still access the data stored on the %%emulated drive|emulated-disk%%: + + - Unraid cessera d'écrire sur le disque physique, et toutes les mises à jour seront sauvegardées en parité et dans l'émulation à la place. + - Before replacing the failed drive, you can check and recover data from the %%emulated drive|emulated-disk%%, which keeps the physical drive intact for potential recovery. + - If you can't access the %%emulated drive|emulated-disk%%, repairing the file system is essential before any rebuild since fixing the file system is quicker and more effective than a rebuild. +
+ +
+ Préparer le remplacement du disque + + Lorsque vous devez remplacer un disque, assurez-vous que le nouveau disque est au moins aussi grand que le disque défaillant, mais pas plus grand que votre plus petit disque de parité. Si vous devez utiliser un disque plus grand, suivez la procédure de **Permutation de parité**. + + Bien que cela ne soit pas obligatoire, de nombreux utilisateurs choisissent de pré-effacer les nouveaux disques pour les tester et aider à prévenir les défaillances précoces. Vous pouvez le faire avec le plugin Preclear, un test étendu %%SMART|smart%%, ou les outils du fabricant. + + :::caution + If you try to rebuild using an unmountable %%emulated drive|emulated-disk%%, the new drive will also become unmountable. Always repair the file system before attempting a rebuild. + ::: +
+ +If a disk in your Unraid system has failed or is disabled, don't worry! You can replace it and recover your data. Just follow these simple steps. Remember, you need a new disk that is the same size or larger than the one you're replacing, but it can't be larger than your smallest %%parity disk|parity-drives%%. + +:::important +Avant de commencer, assurez-vous de vérifier les erreurs de disque ou les avertissements. Unraid doit être capable de lire tous les disques restants sans aucun problème pour que la reconstruction fonctionne correctement. Si un autre disque échoue, cela pourrait mener à une perte de données. +::: + +Pour remplacer et reconstruire un disque : + +1. **Démarrez l'array pour commencer la reconstruction des données.** + + - Connectez-vous au %%WebGUI|web-gui%% d'Unraid (l'interface web). + - Vous pouvez utiliser l'array pendant la reconstruction, mais pour de meilleures performances, limitez l'utilisation. + +:::tip +After completion, you will have a larger parity disk and a replaced data disk. Many users run a %%parity check|parity-check%% afterward for extra confidence, though this is optional. +::: + +2. **Éteignez votre serveur** (seulement si vous **n'utilisez pas** le hot-swap): + - Si votre serveur ne supporte pas le hot-swap, vous devrez l'éteindre complètement. + +3. **Remplacez le disque défaillant :** + - Retirez l'ancien disque défaillant de votre serveur. + - Insert the new disk. Just remember, it has to be at least the same size as the old disk but no bigger than your smallest %%parity disk|parity-drives%%. + +4. **Allumez le serveur** (si vous l'avez éteint): + - Redémarrez votre serveur si vous l'avez éteint. + +5. **Attribuer le nouveau disque :** + - Retournez au %%WebGUI|web-gui%% d'Unraid. + - Trouvez l'emplacement pour le disque défaillant et attribuez votre nouveau disque à cet emplacement. + +6. **Confirmez votre action :** + - Vous verrez une boîte de confirmation. Cochez la case qui dit **Oui, je veux faire ça** et confirmez. + +7. **(Optionnel) Choisissez le %%mode maintenance|maintenance-mode%% :** + - Vous pouvez sélectionner le **Mode de Maintenance**, ce qui peut rendre le processus de reconstruction plus rapide. Cependant, pendant ce temps, vous n'aurez pas accès à la matrice. + - Si vous choisissez le %%mode maintenance|maintenance-mode%%, assurez-vous de cliquer sur **Sync** pour commencer la reconstruction. + +8. **Commencez la reconstruction :** + - Click **Start** to begin the process. Unraid will copy your data from the %%emulated disk|emulated-disk%% to the new disk. + - Si votre nouveau disque est plus grand, Unraid gérera l'espace supplémentaire pour vous. + +:::warning +Si Unraid vous demande de formater le nouveau disque pendant la reconstruction, **ne le faites pas**. Le formatage effacera toutes les données et rendra la récupération impossible. +::: + +

À quoi s'attendre pendant la reconstruction

+ +- **Arrêtez l'array :** Commencez par accéder au %%WebGUI|web-gui%% et en arrêtant l'array. +- **Unassign the %%parity drives|parity-drives%%:** Locate the %%parity drives|parity-drives%% slot and set it to "Unassigned." +- **Démarrez l'array :** Enfin, redémarrez l'array pour valider les changements et retirer avec succès les disques de parité %%parity drives|parity-drives%% de la configuration. +- Si l'ancien disque était non montable en raison de problèmes de système de fichiers, le nouveau disque ne sera également pas montable. Veuillez corriger tous les problèmes de système de fichiers avant de commencer la reconstruction. + +:::note[Additional notes] +- Avec une double parité, vous pouvez récupérer d'un seul lecteur défaillant, mais soyez conscient que vous ne pourrez pas survivre à une autre défaillance pendant le processus de reconstruction. +- Avec une seule parité, vous perdez toute redondance, ce qui signifie que toute défaillance supplémentaire pourrait entraîner une perte de données. +::: + +::: + +#### Échange de parité + +```mdx-code-block + + + + + + + + + + +``` + +
+ Scénario d'exemple + + Vous avez une configuration Unraid avec un **disque de parité de 2 To** et un **disque de données de 1 To** et vous voulez remplacer le disque de 1 To par un **disque de 4 To**. + + Tout d'abord, affectez le nouveau disque de 4 To comme disque de parité, qui remplacera le disque de 2 To. Ensuite, déplacez le disque de 2 To original vers l'emplacement de données, et retirez complètement le disque de 1 To. + + Après ces changements, vous aurez un disque de 4 To comme nouvelle parité, assurant que vous pouvez ajouter des disques de données futurs jusqu'à 4 To. Le disque de 2 To contiendra désormais vos données existantes, tandis que le disque de 1 To peut être réutilisé. + + Cet échange garde vos données sécurisées et votre array protégé, permettant des mises à niveau futures. +
+ +:::important\[Prerequisites] + +- Avant de commencer, assurez-vous que le disque de données que vous souhaitez remplacer est désactivé. Si le disque a échoué (affiche un indicateur rouge), il est déjà désactivé. Si le disque est en bon état mais que vous voulez le remplacer, désattribuez le disque et démarrez l'array une fois sans lui pour forcer Unraid à le marquer comme désactivé. +- Si votre disque de données de remplacement n'est pas plus grand que votre disque de parité, utilisez plutôt la procédure standard [Remplacement d'un disque de données](#replacing-faileddisabled-disks). +- Cette procédure est uniquement nécessaire pour remplacer des disques de données dans une matrice Unraid par un disque plus grand que le disque de parité actuel. Si vous avez seulement besoin de mettre à niveau votre disque de parité, retirez simplement l'ancien disque de parité, ajoutez le nouveau, et démarrez la matrice. La parité se reconstruira automatiquement. + +::: + +:::warning\[Warnings] + +- Always verify the health of all drives using %%SMART reports|smart-report%% before starting a %%parity swap|parity-swap%%. Attempting this procedure with another failing or unhealthy disk increases the risk of data loss. +- Précleurez le nouveau disque si possible. Bien que cela ne soit pas requis, le prédéclairage teste la résistance du disque et réduit le risque de défaillance précoce. +- Identifiez correctement tous les disques avant de commencer. Notez les numéros de modèle et les quatre derniers caractères de chaque numéro de série pour éviter les erreurs lors de l'affectation. + +::: + +Pour effectuer un échange de parité : + +:::note +Si le disque à remplacer est déjà désactivé (défaillant), vous n'avez pas besoin de réaliser les étapes 1 à 4. Si vous avez déjà installé le nouveau disque de remplacement (par exemple, après l'avoir précleuré), vous pouvez passer les étapes 5 à 8. +::: + +1. **Arrêtez l'array** s'il est en cours d'exécution. +2. **Désattribuez l'ancien disque de données** s'il est encore attribué. Si le disque était auparavant en bon état, vous pouvez voir des notifications d'erreur pour un disque manquant - cela est prévu. +3. **Démarrez l'array.** Si une invite apparaît, cochez la case pour confirmer votre action. Le disque de données devrait maintenant s'afficher comme "Non installé." +4. **Arrêtez à nouveau l'array.** À ce stade, l'array traite le disque comme défaillant. +5. **Éteindre le serveur.** + + :::tip + Si votre système prend en charge le **hot-swap**, vous n'avez pas besoin d'éteindre pour retirer ou installer des disques. Assurez-vous simplement que le tableau est arrêté avant de procéder à tout changement matériel. + ::: + +::: + +6. *(Optional)* **Remove the old drive.** You may wish to keep it installed for testing or reassignment. +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. If you see a message about retrying to unmount disk shares, disable Docker and/or VM services in Settings, reboot, and try again. +10. **Unassign the parity drive.** +11. **Assign the new drive to the parity slot.** You may receive error notifications - this is normal. +12. **Assign the old %%parity drive|parity-drives%% to the data slot** of the drive being replaced. Both the parity and replacement data drives should now display blue status indicators. +13. **Go to *Main → Array Operation.*** You should see a **Copy** button and a message stating "Copy will copy the parity information to the new %%parity disk|parity-drives%%." +14. **Confirm and start the copy process.** Check the confirmation box and click **Copy**. The array will not be available during this operation. + +- Le processus de copie peut prendre plusieurs heures, en fonction de la taille du disque. Une fois terminé, l'array sera arrêté et prêt pour une reconstruction de données. + +15. **Démarrez l'array pour commencer la reconstruction des données.** + - Confirmez votre action si vous y êtes invité. L'array est maintenant démarré et les données sont reconstruites sur le nouveau disque de données. + - Vous pouvez utiliser l'array pendant la reconstruction, mais pour de meilleures performances, limitez l'utilisation. + - Le processus de reconstruction prendra également plusieurs heures. + +:::warning +Ne formatez jamais un disque pendant ce processus. Le formatage effacera toutes les données et mettra à jour la parité, rendant la récupération impossible. +::: + +After completion, you will have a larger parity disk and a replaced data disk. Many users run a %%parity check|parity-check%% afterward for extra confidence, though this is optional. + +--- + +### Retirer des disques + +Il peut arriver que vous souhaitiez retirer un disque de votre matrice Unraid. Que vous cherchiez à économiser de l'énergie, à retirer un disque ancien ou peu fiable, ou à réaffecter le matériel à un autre usage, le processus est assez simple. + +#### Retirer des disques de parité + +If you find that you no longer need the level of %%parity|parity%% protection in your setup, you can remove a %%parity disk|parity-drives%% whenever you want. + +Pour retirer un disque de parité %%parity drives|parity-drives%% : + +1. **Arrêtez l'array :** Commencez par accéder au %%WebGUI|web-gui%% et en arrêtant l'array. +2. **Unassign the %%parity drives|parity-drives%%:** Locate the %%parity drives|parity-drives%% slot and set it to "Unassigned." +3. **Démarrez l'array :** Enfin, redémarrez l'array pour valider les changements et retirer avec succès les disques de parité %%parity drives|parity-drives%% de la configuration. + +:::warning +Avant d'apporter des modifications, gardez ceci à l'esprit : si vous avez déjà des disques de données défaillants dans votre tableau, retirer un disque de %%parité|parity-drives%% peut réduire le nombre de défaillances qu'Unraid peut gérer sans risque de perte de données. + +- Avec une double parité, vous pouvez récupérer d'un seul lecteur défaillant, mais soyez conscient que vous ne pourrez pas survivre à une autre défaillance pendant le processus de reconstruction. +- Avec une seule parité, vous perdez toute redondance, ce qui signifie que toute défaillance supplémentaire pourrait entraîner une perte de données. +::: + +#### Retrait de disques de données + +Retirer un disque de données est un processus simple, mais il est important de se rappeler que vous devrez effectuer une synchronisation de %%parité|parity%% par la suite. Jusqu'à ce que cette synchronisation soit terminée, il y a un risque de perte de données si un autre disque échoue. + +Vous pouvez choisir parmi deux méthodes pour retirer un disque de données : + +1. **Méthode standard** - Recommandée pour la plupart des utilisateurs. +2. **Méthode de préservation de la parité** - Convient aux utilisateurs avancés qui souhaitent maintenir la parité pendant le retrait. + +```mdx-code-block + + + + + + + + + + +``` + +--- + +### Vérification des appareils du tableau + +Regularly checking your Unraid array is crucial for maintaining data integrity and identifying potential issues before they result in data loss. 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%%. + +
+ ![Le bouton de vérification vous permet d'effectuer des vérifications de parité et de lecture](/img/Check_button.PNG) +
+ +Unraid fournit des rapports de statut qui vous aident à suivre la santé de votre matrice de stockage. Ces rapports sont un moyen rapide de vérifier si l'un de vos disques est désactivé ou rencontre des problèmes de lecture ou d'écriture de données. + +#### Vérifications de Parité & Lecture + +```mdx-code-block + + + + + + + + + + +``` + +#### Vérifiez l'historique + +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. + +Unraid propose divers modes d'écriture pour gérer les opérations sur l'array, chacun ayant ses propres avantages et inconvénients en termes de vitesse, de consommation d'énergie et d'usure des disques. Savoir comment ces modes fonctionnent, ainsi que le rôle d'un disque ou d'un pool de cache, peut vous aider à affiner votre serveur pour répondre au mieux à vos besoins. + +--- + +### Arrêter ou démarrer les disques tournants + +Unraid allows you to control the power states of your hard drives. You can easily %%spin them up or down|spin-state%%, and manage SSDs to be active or in standby. This helps save energy, extend the life of your drives, and reduce noise when the disks are not being used. + +

Pourquoi activer ou désactiver ?

+ +- **Désactiver :** Si vous avez des disques qui ne sont pas fréquemment utilisés, les désactiver peut économiser de l'énergie et les faire durer plus longtemps. +- **Activer :** Si vous savez que vous aurez bientôt besoin des fichiers, activer les disques à l'avance peut réduire les temps d'attente. + +

Comment contrôler les états d'activation

+ +Vous pouvez contrôler les états d'activation des disques via l'onglet **Principal** dans le %%WebGUI|web-gui%% : + +1. **Allez à l'onglet Principal** et recherchez vos appareils de matrice +2. **Trouvez les boutons de contrôle d'activation** - chaque disque affichera soit : + - Cliquez sur le bouton 🔘 pour **Activer** si le disque est actuellement désactivé + - Cliquez sur le bouton 🟢 pour **Désactiver** si le disque est actuellement actif +3. **Cliquez sur le bouton approprié** pour l'action souhaitée : + - Cliquez sur **Désactiver** 🟢 pour mettre hors tension un disque inactif et économiser de l'énergie + - Cliquez sur **Activer** 🔘 pour mettre sous tension un disque actuellement désactivé + +N'oubliez pas que si un disque est en cours d'accès (par exemple si vous ouvrez un fichier), il restera actif et ignorera toute demande de désactivation. + +Lorsque un disque est désactivé, sa température ne s'affiche pas dans le %%WebGUI|web-gui%%. Cependant, dès qu'une application ou un utilisateur y accède, il se réactivera automatiquement. + +:::tip +Utilisez les commandes de rotation pour économiser de l'énergie et réduire l'usure de vos disques. Rappelez-vous que les disques en cours d'utilisation resteront actifs jusqu'à ce que toutes les tâches soient terminées. +::: + +--- + +### Réinitialiser la configuration de la matrice + +Réinitialiser la configuration de votre array est une étape importante qui doit être entreprise avec soin. Ce processus est généralement nécessaire lors du retrait d'un disque, de la mise en place d'une nouvelle configuration de l'array, ou de la résolution de problèmes d'attribution de disque. Veuillez noter que cette action peut avoir un impact sur la protection des données et la parité, alors assurez-vous de n'y procéder que lorsque c'est réellement nécessaire. + +Lors de l'utilisation d'Unraid, la vitesse à laquelle vous pouvez lire les fichiers est principalement déterminée par le disque individuel qui contient chaque fichier. Contrairement aux systèmes %%RAID|raid%% traditionnels, qui combinent plusieurs disques pour améliorer les performances, Unraid stocke chaque fichier sur un seul disque. Cela signifie que les vitesses de lecture ne seront pas boostées par les vitesses combinées de plusieurs disques. + +- **Retrait ou remplacement de disques :** Si vous devez retirer ou changer des disques dans votre matrice. +- **Recommencer à neuf :** Lorsque vous cherchez à créer une toute nouvelle configuration pour votre matrice. +- **Correction d'erreurs d'attribution de disque :** Pour corriger tout problème concernant l'attribution actuelle des disques. +- **Récupération de problèmes de configuration :** En cas de difficultés avec votre configuration existante. + +
+ ![La réinitialisation de votre configuration de disques peut être effectuée via la nouvelle page de configuration](/img/Newconfig.png) +
+ +Pour réinitialiser votre configuration de matrice : + +1. Si un disque est désactivé et que ses données sont en cours de reconstruction, Unraid utilisera les disques restants avec les informations de parité pour recréer les données. Pendant ce processus, la vitesse de lecture peut ralentir à 30–60 Mo/s ou même moins, en fonction du disque le plus lent de votre système. +2. Any ongoing operations in the array, such as a %%parity check|parity-check%% or rebuilding a drive, can also affect read performance. This is due to increased movement of the drive heads and overall contention for resources. + ::: +3. Confirmez votre choix en cochant la case, puis cliquez sur **Appliquer**. +4. Revenez à l'onglet **Main**. Après avoir appliqué les modifications, votre configuration aura été réinitialisée. +5. Apportez toutes les modifications nécessaires à votre configuration en attribuant ou retirant des disques selon les besoins. +6. Lancez la matrice en Mode Normal ou %%Mode de Maintenance|maintenance-mode%% pour finaliser vos mises à jour. + +:::important +- **Préservation des données :** Unraid tentera de reconnaître les disques déjà utilisés et de préserver les données lorsque c'est possible. +- **Impact sur la parité :** Retirer un disque de données invalidera toujours la parité à moins que ce disque ait été préparé (« zeroed ») avant son retrait. +- **Changement d'ordre des disques :** Modifier l'ordre des disques n'affectera pas la parité1, mais cela *peut* invalider la parité2. +::: + +:::caution +Lorsque vous voyez le bouton **Démarrer**, il y a une case à cocher étiquetée **Parité est valide**. Ne cochez cette case que si vous êtes certain qu'elle est correcte ou si un utilisateur expérimenté d'Unraid vous a conseillé de le faire lors de la récupération. Cocher cette option incorrectement peut entraîner une perte de données. + +N'utilisez pas **Nouvelle Config** si votre objectif est de reconstruire un disque. Effectuer une Nouvelle Config efface l'historique de la matrice requis pour une reconstruction, et Unraid ne proposera pas de reconstruire le disque par la suite. Suivez plutôt la procédure de reconstruction du disque. +::: + +#### Annuler une réinitialisation + +Si vous devez annuler une réinitialisation : + +1. **Pas de protection par parité :** Les données ne sont pas protégées tant qu'elles ne sont pas déplacées vers l’ensemble. +2. **Risques de récupération :** Le %%BTRFS|btrfs%% %%RAID 5|raid5%%/%%RAID 6|raid6%% est instable ; les pools à un seul disque manquent de redondance. +3. **Considérations pour ZFS :** %%ZFS|zfs%% nécessite plus de RAM et a des exigences matérielles plus strictes que %%BTRFS|btrfs%%. +4. Redémarrez votre serveur, et votre configuration de matrice précédente devrait être restaurée. + +--- + +### Rapports d'état + +Unraid fournit des rapports de statut qui vous aident à suivre la santé de votre matrice de stockage. Ces rapports sont un moyen rapide de vérifier si l'un de vos disques est désactivé ou rencontre des problèmes de lecture ou d'écriture de données. + +- **Statut actuel :** Les rapports de statut affichent l'état actuel de votre array. Il est important de noter que ces informations sont réinitialisées après le redémarrage du système, elles ne conserveront donc pas un historique des problèmes passés. + +- **Aucune donnée historique :** Si vous souhaitez voir ce qui s'est passé avant un redémarrage, vous devrez chercher ailleurs, car ces rapports ne sauvegardent pas les états passés. + +:::important +Remember that the status reports don't include %%SMART|smart%% data. %%SMART reports|smart-report%% give you a more detailed view of individual disk health. So, even if your status report shows everything is fine, checking the %%SMART reports|smart-report%% regularly is still a good idea to catch any potential problems early. +::: + +--- + +## Modes d'écriture de matrice + +Unraid propose divers modes d'écriture pour gérer les opérations sur l'array, chacun ayant ses propres avantages et inconvénients en termes de vitesse, de consommation d'énergie et d'usure des disques. Savoir comment ces modes fonctionnent, ainsi que le rôle d'un disque ou d'un pool de cache, peut vous aider à affiner votre serveur pour répondre au mieux à vos besoins. + +**Modes d'écriture en un clin d'œil** + +| Mode d'écriture | Vitesse (Typique) | Consommation d'énergie | Quand les disques s'activent | Protection des données | Meilleur cas d'utilisation | +| ----------------------------- | ---------------------------------------- | ---------------------- | -------------------------------- | ------------------------- | ------------------------------------------------------------------------ | +| Lire/Modifier/Écrire | 20–40 Mo/s | Faible | Seulement parité et disque cible | Oui | La plupart des charges de travail, économie d'énergie, petites écritures | +| Écriture Turbo (Reconstruire) | 40–120 Mo/s | Élevée | Tous les disques | Oui | Large file transfers, array rebuilds, %%parity checks\|parity-check%% | +| Écriture sur Cache (SSD/NVMe) | 50–110 Mo/s (SSD), 250–900 Mo/s (NVMe)\* | Varie | Seulement disques de cache | Non (jusqu'à déplacement) | Applications, VM, écritures fréquentes, maximisation de la vitesse | + +

Lire/Modifier/Écrire

+ +
+ Cliquez pour développer/réduire + +

Comment ça marche

+ Ce mode lit les données existantes et la parité, calcule la nouvelle parité, puis écrit les données mises à jour. Seuls le %%parity drive|disque de parité%% et le disque de données cible s'activent, ce qui entraîne une consommation d'énergie et une usure des disques réduites. Cependant, cela peut être plus lent en raison des cycles supplémentaires de lecture/écriture. + +

Quand l'utiliser

+ + - À tout moment, surtout si vous souhaitez économiser l'énergie et que les disques inactifs s'arrêtent. + - Idéal pour les petites ou rares écritures. +
+ +

Écriture Turbo (Reconstruction d'écriture)

+ +
+ Cliquez pour développer/réduire + + Le turbo write, également connu sous le nom d'écriture reconstructrice, est une fonction conçue pour accélérer la vitesse d'écriture de votre tableau Unraid. Il fonctionne en lisant tous les disques de données et en mettant à jour simultanément la parité. Ce processus élimine les délais causés par l'attente de la rotation des plateaux, comme on le voit dans le mode d'écriture par défaut. Cependant, il est important de noter que tous les disques du tableau doivent être en marche et fonctionner correctement pour que cela fonctionne efficacement. + +

Comment ça fonctionne

+ + - Lorsque vous écrivez de nouvelles données, Unraid lit de tous les autres disques de données et recalcule la parité en même temps. Les nouvelles données et la parité mise à jour sont écrites ensemble. + - Tous les disques de la matrice doivent être opérationnels et activement en rotation. + - Cette méthode améliore significativement les vitesses d'écriture par rapport au mode d'écriture par défaut. + +

Quand utiliser l'écriture turbo

+ + - Utilisez l'écriture turbo lors du transfert de grands fichiers séquentiels dans la matrice. + - It's effective during array rebuilds or %%parity checks|parity-check%%, as all drives will already be spinning. + - Ce mode est très utile lorsque minimiser le temps d'écriture est une priorité et que vous pouvez confirmer que tous les disques sont en bon état. + +

Quand éviter l'écriture turbo

+ + - Évitez d'utiliser ce mode si vous souhaitez que vos disques s'arrêtent durant les périodes d'inactivité pour économiser de l'énergie. + - L'écriture turbo n'est pas idéale pour les petites écritures rares puisque cela déclenche la rotation de tous les disques à chaque écriture, augmentant ainsi la consommation d'énergie et l'usure des disques. + - Si vous pensez qu'un disque échoue ou est peu fiable, il est préférable d'éviter l'écriture turbo car elle repose sur le bon fonctionnement de chaque disque. + + :::info + Le turbo write est le mieux adapté pour les opérations en masse et les scénarios nécessitant un débit élevé. Cependant, cela pourrait ne pas être le meilleur choix pour les tâches quotidiennes si vous vous concentrez sur les économies d'énergie et la minimisation de l'usure du disque. + ::: +
+ +

Écriture sur Cache

+ +
+ Cliquez pour développer/réduire + +

Comment ça fonctionne

+ + Les données sont d'abord écrites sur un SSD ou NVMe %%cache|cache%% rapide, puis peuvent être déplacées vers le tableau principal plus tard par un processus appelé %%Mover|mover%%. Les vitesses varient : + + - SSD : 50–110 Mo/s + - NVMe : 250–900 Mo/s (ce qui peut utiliser des réseaux 10GbE) + + Une fois que les données sont déplacées vers la matrice, elles sont protégées par la parité. + +

Quand utiliser l'écriture sur cache

+ + - Pour les partages avec des opérations d'écriture fréquentes comme les applications, les machines virtuelles, ou les téléchargements. + - Pour améliorer la performance et réduire toute latence de l'écriture perçue. + +

Attentes de performance

+ + - Sans un disque de cache : Moyenne de 20–30 Mo/s, avec des pics jusqu'à 40 Mo/s. + - Avec cache SSD : 50–110 Mo/s. + - Avec cache NVMe : 250–900 Mo/s selon les contraintes du réseau ou du disque. + + :::tip + Pensez à utiliser un pool de cache (plusieurs dispositifs) pour plus de redondance et la protection des données avant que le %%Mover|mover%% ne fonctionne. + ::: +
+ +:::info[Automated solutions] +- Le mode **Auto** (une future fonctionnalité) activera l'écriture turbo uniquement lorsque tous les disques seront déjà en rotation. +- Des plugins communautaires (cherchez "Turbo Write" dans l'onglet Applications) peuvent offrir des options d'automatisation ou de planification améliorées. +::: + +Pour changer le Mode d'Écriture : + +1. Naviguez vers ***Paramètres → Paramètres des Disques***. +2. Localisez **Reglable (méthode\_md\_écriture)**. +3. Choisissez votre mode préféré : + - **Lire/Modifier/Écrire** (par défaut) + - **Reconstruire Écriture** (Écriture Turbo) + - **Auto** (fonctionnalité future) +4. Cliquez sur **Appliquer** pour confirmer votre choix. + +:::important[Quick récapitulatif] +- Utilisez **Écriture Turbo** lorsque vous avez besoin de vitesse, mais soyez conscient de l'augmentation de la consommation d'énergie et de l'activation des disques. +- Utilisez **Écriture sur Cache** pour une performance optimale, particulièrement avec les disques SSD ou NVMe. +- Pour la plupart des utilisateurs, le mode d'écriture par défaut offre le meilleur équilibre, sauf si vous avez spécifiquement besoin de vitesses plus élevées. +::: + +--- + +## Modes de lecture + +Lors de l'utilisation d'Unraid, la vitesse à laquelle vous pouvez lire les fichiers est principalement déterminée par le disque individuel qui contient chaque fichier. Contrairement aux systèmes %%RAID|raid%% traditionnels, qui combinent plusieurs disques pour améliorer les performances, Unraid stocke chaque fichier sur un seul disque. Cela signifie que les vitesses de lecture ne seront pas boostées par les vitesses combinées de plusieurs disques. + +

Attentes de performance

+ +- **HDD unique typique :** 70–250 Mo/s (dépend du modèle de disque, de son âge, et de l'emplacement des données) +- **SSD SATA typique :** 400–550 Mo/s +- **NVMe SSD (dans un pool) :** 250–7,000 Mo/s (limites de la génération PCIe et du réseau/PCIe; par exemple, le réseau 10GbE plafonne à \~1,100 Mo/s) + +:::note[Special cas] +- Si un disque est désactivé et que ses données sont en cours de reconstruction, Unraid utilisera les disques restants avec les informations de parité pour recréer les données. Pendant ce processus, la vitesse de lecture peut ralentir à 30–60 Mo/s ou même moins, en fonction du disque le plus lent de votre système. +- Any ongoing operations in the array, such as a %%parity check|parity-check%% or rebuilding a drive, can also affect read performance. This is due to increased movement of the drive heads and overall contention for resources. +::: + +--- + +## Caches temporaires + +Les %%Cache pools|cache-pool%% dans Unraid offrent des avantages significatifs, notamment pour les tâches intensives en écriture, les machines virtuelles (VM) et les conteneurs Docker. Ces pools fonctionnent séparément de l'ensemble principal et peuvent être configurés avec plusieurs disques en utilisant soit le système de fichiers %%BTRFS|btrfs%% soit le %%ZFS|zfs%%, prenant en charge diverses configurations %%RAID|raid%% pour la vitesse et la protection des données. + +

Pools de cache vs ensemble principal

+ +| Fonctionnalité | Pool de cache (BTRFS) | Pool de cache (ZFS) | Ensemble principal (Unraid) | +| ------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------- | +| **Vitesse de lecture** | SSD : 400–550 Mo/s, NVMe : 250–7,000 Mo/s\* | SSD : 400–550 Mo/s, NVMe : 250–7,000 Mo/s\* | HDD : 70–250 Mo/s (par disque) | +| **Vitesse d'écriture** | SSD : 400–550 Mo/s, NVMe : 250–7,000 Mo/s\* | SSD : 400–550 Mo/s, NVMe : 250–7,000 Mo/s\* | 20–120 Mo/s (dépend du mode parité) | +| **Protection des données** | RAID 1\|raid1%%/RAID 10\|raid10%% ; RAID 5\|raid5%%/RAID 6\|raid6%% (expérimental, non pour des données critiques) | RAID 1\raid1%%/RAID 10\raid10%% ; RAIDZ1\raidz1%%/RAIDZ2\raidz2%%/RAIDZ3\raidz3%% (stable, prêt pour la production) | Basé sur la parité, agnostique du système de fichiers | +| **Expansion** | Taille de disque variée; ajout/suppression de dispositifs de manière dynamique | Support d'ajout/suppression limité; impossible de supprimer de RAIDZ; ajout d'un seul dispositif pour étendre un seul-vdev RAIDZ dans Unraid 7.2 | Ajout de disques, mais pas de striping ni d'extension de performances | +| **Complexité de récupération** | Risque accru de perte de données ; outils %%BTRFS\|btrfs%% requis | Risque élevé de perte de données ; outils ZFS\|zfs%% requis | Reconstruction plus facile basée sur la parité | +| **Meilleur pour** | Applications, VM, écritures fréquentes | Applications, VM, écritures fréquentes, charges de travail d'entreprise | Stockage en vrac, bibliothèques multimédia | + +\*Les vitesses réelles NVMe dépendent de la génération PCIe, du refroidissement et de la bande passante réseau (par exemple, le 10GbE plafonne à \~1,100 Mo/s).\* + +

Avantages des pools de cache

+ +- **Performance élevée :** Les pools NVMe peuvent saturer les réseaux 10GbE/40GbE (1 100–3 500 Mo/s). +- **RAID flexible :** Les %%BTRFS|btrfs%% et %%ZFS|zfs%% prennent en charge %%RAID 1|raid1%%/%%RAID 10|raid10%% pour la redondance sans tailles de disque identiques. +- **Faible latence :** Idéal pour les bases de données, les VM et les conteneurs Docker. +- **Avantages de ZFS :** %%ZFS|zfs%% offre des fonctionnalités de niveau entreprise telles que la vérification de l'intégrité des données, la compression et les instantanés. + +

Inconvénients des pools de cache

+ +- **Pas de protection par parité :** Les données ne sont pas protégées tant qu'elles ne sont pas déplacées vers l’ensemble. +- **Risques de récupération :** Le %%BTRFS|btrfs%% %%RAID 5|raid5%%/%%RAID 6|raid6%% est instable ; les pools à un seul disque manquent de redondance. +- **Considérations pour ZFS :** %%ZFS|zfs%% nécessite plus de RAM et a des exigences matérielles plus strictes que %%BTRFS|btrfs%%. + +For more detailed information about %%cache pools|cache-pool%%, including how to set them up, manage them, and advanced features, check the [Cache pools](./cache-pools.mdx) page. + +--- + +## Dépannage + +### Dépannage des échecs de démarrage de l'ensemble + +Si votre array ne démarre pas, suivez ces étapes pour identifier et résoudre les problèmes courants. Recherchez les messages d'erreur sous ***Main → Opérations de l'array***. + +```mdx-code-block + + + + + + + + + + + + + + + + + + + + + + +``` + +### Échec de disque pendant une reconstruction + +Si un second disque échoue pendant que vous en reconstruisez un autre, ce que vous pouvez faire dépendra de votre configuration de parité. + +

Disque de %%parité unique|parity-drives%%

+ +Si un disque échoue pendant la reconstruction d’un autre, la reconstruction s’arrêtera car les données ne peuvent pas être restaurées avec précision. Malheureusement, vous ne pourrez pas récupérer vos données dans cette situation. + +

Double disque de %%parité|parity-drives%%

+ +If you have two %%parity drives|parity-drives%%, you have more options: + +- Vous pouvez attendre la fin de la première reconstruction puis gérer le deuxième disque défaillant. +- Ou, vous pouvez arrêter la reconstruction actuelle, remplacer le second disque défaillant, puis démarrer l'ensemble pour reconstruire les deux disques en même temps. + +Si la première reconstruction est presque terminée, il est généralement préférable de la laisser se terminer. Si elle vient de commencer, il peut être plus rapide de reconstruire les deux en même temps. + +:::warning +Rebuilding disks puts a lot of stress on all drives, which increases the chance of new failures. Always check drive health using %%SMART reports|smart-report%% before starting a rebuild. +::: + +:::info\[Rebuild Temps + +Préparez-vous à ce que le processus de reconstruction prenne plusieurs heures. Le temps peut varier en fonction de la taille du disque et de l'activité de votre système. Les disques plus grands et les systèmes occupés peuvent prendre plus de temps. + +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx new file mode 100644 index 0000000000..e0c56e4643 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx @@ -0,0 +1,394 @@ +--- +sidebar_position: 3 +sidebar_label: Caches temporaires +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RemoveDiskGui from './partials/remove-disk-gui.mdx'; +import RemoveDiskCommandLine from './partials/remove-disk-command-line.mdx'; +import PoolSingleDeviceMode from './partials/pool-single-device-mode.mdx'; +import PoolMultiDeviceMode from './partials/pool-multi-device-mode.mdx'; +import MovePoolToArray from './partials/move-pool-to-array.mdx'; +import MoveArrayToPool from './partials/move-array-to-pool.mdx'; +import MoveBetweenPoolsUsingMover from './partials/move-between-pools-using-mover.mdx'; +import MoveBetweenPoolsManual from './partials/move-between-pools-manual.mdx'; + +# Caches temporaires + +Dans Unraid, un %%cache pool|cache-pool%% est une collection d'un ou plusieurs disques, généralement des SSD ou des HDD haute-vitesse. Ces disques stockent temporairement des données avant qu'elles ne soient déplacées vers votre [%%array|array%%](./array-configuration.mdx) principal. Utiliser des %%cache pools|cache-pool%% peut améliorer significativement les vitesses d'écriture, protéger vos données, et fournir un stockage dédié pour certaines tâches comme l'exécution de conteneurs Docker ou [%%machines virtuelles|vm%%](../create-virtual-machines/overview-and-system-prep.mdx). + +Les %%Cache pools|cache-pool%% offrent plusieurs avantages, ce qui en fait un ajout précieux à votre configuration Unraid, tels que : + +1. **Vitesses d'écriture plus rapides :** Les %%Cache pools|cache-pool%% vous permettent d'écrire rapidement des données sur des disques plus rapides avant qu'elles ne soient transférées vers le %%array|array%% principal. Cela améliore considérablement la performance perçue lors de l'enregistrement de fichiers. + +2. **Protection des données pour les fichiers en cache :** En utilisant plusieurs disques dans un %%cache pool|cache-pool%% (en les configurant par exemple en %%RAID 1|raid1%%), vous ajoutez de la redondance. Cela signifie que vos données en cache sont protégées contre la défaillance d'un disque avant même qu'elles atteignent l'%%array|array%% principal. + +3. **Stockage optimisé pour les applications :** Stocker des applications comme des conteneurs Docker ou des %%machines virtuelles|vm%% sur un %%cache temporaire|cache-pool%% améliore leur performance, réduit l'usure de votre %%array|array%% principal et minimise le temps nécessaire pour accéder aux fichiers fréquemment utilisés. + +4. **Stockage flexible et dédié :** Avec plusieurs %%cache pools|cache-pool%%, vous pouvez assigner des pools spécifiques pour différentes tâches. Par exemple, vous pourriez avoir un pool dédié aux téléchargements et un autre aux %%machines virtuelles|vm%%, réduisant ainsi la concurrence pour les ressources et améliorant l'efficacité. + +:::info\[Keep \[En connaissance de cause] + +- **Multiples pools :** Vous pouvez créer et nommer différents %%caches temporaires|cache-pool%%, les adaptant à vos besoins spécifiques. +- **SSD vs. HDD :** Les SSD sont excellents pour la vitesse, tandis que vous pouvez utiliser les HDD pour des charges de travail de données séquentielles et volumineuses. De plus, les HDD peuvent aider à prolonger la durée de vie de vos SSD. +- **La redondance est importante :** Pour protéger vos données, utilisez plus d'un disque dans un %%cache pool|cache-pool%%. Un pool à disque unique ne vous protégera pas d'une éventuelle défaillance de disque. +- **Choix du système de fichiers :** Le système de fichiers par défaut pour les %%cache pools|cache-pool%% est %%BTRFS|btrfs%%, qui prend en charge divers options de %%RAID|raid%% pour une redondance et une flexibilité accrues. Pour plus de détails sur la sélection de systèmes de fichiers, consultez [Systèmes de fichiers](./file-systems.mdx). +- **Intégration avec le %%Mover|mover%% :** Les données écrites sur un %%cache pool|cache-pool%% sont automatiquement transférées vers votre %%array|array%% principal selon un calendrier que vous définissez. Cela garde vos [%%user shares|user-share%%](./shares.mdx) organisées et faciles à gérer. +- **Performance des applications :** En plaçant les conteneurs Docker, les données des applications et les disques de %%machines virtuelles|vm%% sur un %%cache temporaire|cache-pool%%, vous améliorez la vitesse d'accès et réduisez la charge sur votre stockage principal. + +::: + +--- + +## Modes de pool + +Unraid %%cache pools|cache-pool%% can operate in two main modes: **single device mode** and **multi-device mode**. Knowing the difference between these modes will help you find the right balance between performance, flexibility, and data protection for your needs. + + + + + + + + + + + +Les tâches courantes pour le %%cache temporaire|cache-pool%% incluent : + +- Sauvegarder votre pool vers le %%array|array%% +- Basculer entre les modes appareil unique et multi-appareil +- Ajout de disques à un pool +- Remplacer des disques dans un pool + +## Sauvegarder votre cache temporaire vers le tableau + +Backing up your %%cache pool|cache-pool%% to the main %%array|array%% is a crucial step before making any upgrades, reformatting, or replacing your cache devices. This process ensures that important data - like Docker containers, app data, and %%virtual machine|vm%% files - are securely stored on the main %%array|array%%, minimizing the risk during maintenance. + +

Pourquoi sauvegarder votre %%cache pool|cache-pool%% ?

+ +- **Protection des données :** Protégez vos fichiers importants avant d'effectuer des changements matériels ou des mises à niveau. +- **Prévention de perte accidentelle :** Réduisez le risque de perdre des données lors de reformatage ou de remplacement d'appareils. +- **Restauration facile :** Assurez-vous de pouvoir rapidement restaurer vos données d'application et de %%machines virtuelles|vm%% après maintenance. + +:::important +Ce processus arrêtera tous les conteneurs Docker et les %%machines virtuelles|vm%%, alors assurez-vous de planifier un temps d'arrêt et d'informer les utilisateurs si nécessaire. Pour plus d'informations sur la gestion des conteneurs Docker, consultez [Gérer et personnaliser les conteneurs](../run-docker-containers/managing-and-customizing-containers.mdx). +::: + +Pour sauvegarder votre %%cache temporaire|cache-pool%% : + +1. **Arrêter tous les conteneurs Docker et %%machines virtuelles|vm%% en cours :** C'est essentiel pour un processus de sauvegarde fluide. +2. **Désactiver les %%machines virtuelles|vm%% :** + - Allez à ***Paramètres → Gestionnaire de VMs***. + - Éteignez les %%VMs|vm%% et cliquez sur **Appliquer**. +3. **Désactiver Docker** : + - Naviguez vers ***Paramètres → Docker***. + - Éteignez Docker et cliquez sur **Appliquer**. +4. **Définir le stockage partagé et l'action Mover (cache → tableau) :** + - Allez dans l'onglet **Partages**. + - For each %%user share|user-share%% you want to move, set **Primary storage** to the source %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. + - Définissez **Action du Mover** sur **cache → tableau**. +5. **Vérifiez l'espace sur le %%array|array%% :** Assurez-vous de disposer de suffisamment d'espace libre pour vos fichiers. +6. **Move files to the %%array|array%%**: From the **Main** page, click **Move Now**. This transfers files from the %%cache pool|cache-pool%% to the %%array|array%% based on the Mover action. +7. **Vérifiez que votre pool est vide :** Une fois que le %%Mover|mover%% a terminé, vérifiez qu'il ne reste pas de fichiers dans le %%cache temporaire|cache-pool%%. + +:::note +N'oubliez pas que les fichiers situés directement sur l'appareil du pool (non inclus dans un partage) doivent être déplacés manuellement. +::: + +### Restaurer des fichiers sur le cache temporaire + +Après avoir terminé votre maintenance ou remplacé votre appareil, vous pouvez restaurer des fichiers depuis le %%array|array%% vers le %%cache temporaire|cache-pool%% en suivant ces étapes : + +1. **Définir le stockage partagé et l'action Mover (tableau → cache)** : + - Allez dans l'onglet **Partages**. + - For each %%user share|user-share%% you want to restore, set **Primary storage** to the destination %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. + - Définissez **Action du Mover** sur **array → cache**. +2. \*\*Vérifiez l'espace sur le pool : Assurez-vous qu'il y a suffisamment d'espace libre sur le %%cache temporaire|cache-pool%%. +3. \*\*Déplacez les fichiers vers le pool : Allez à la page **Principale** et cliquez sur **Déplacer maintenant** pour transférer les fichiers vers le %%cache temporaire|cache-pool%%. +4. **Vérifiez le contenu du pool :** Après que le déplacement soit terminé, vérifiez que votre %%cache temporaire|cache-pool%% contient les fichiers attendus et que les partages sont vides sur le %%array|array%%. +5. **Réactivez Docker :** Allez à ***Paramètres → Docker*** et réactivez Docker, puis cliquez sur **Appliquer**. +6. **Réactivez les %%machines virtuelles|vm%% :** Allez à ***Paramètres → Gestionnaire de VM*** et rallumez les %%VMs|vm%%, puis cliquez sur **Appliquer**. +7. **Redémarrez les conteneurs Docker et les %%VMs|vm%% :** Enfin, redémarrez tous les conteneurs Docker ou les %%machines virtuelles|vm%% que vous souhaitez faire à nouveau fonctionner. + +--- + +## Passer au mode Multi-Appareils + +%%Cache pools|cache-pool%% in Unraid can be expanded from a single device to multiple devices, allowing for increased capacity and redundancy. To take advantage of multi-device mode, your pool must be formatted as %%BTRFS|btrfs%% or %%ZFS|zfs%%. + +### Converting a pool to BTRFS or ZFS + +Si votre %%cache temporaire|cache-pool%% n'est pas déjà formaté en %%BTRFS|btrfs%% ou %%ZFS|zfs%%, suivez ces étapes simples : + +1. **Sauvegardez vos données** : Tout d'abord, assurez-vous de sauvegarder tout contenu important. (Voir [Sauvegarder votre pool de cache sur le tableau](#backing-up-your-cache-pool-to-the-array)) +2. **Arrêtez le %%array|array%% :** Assurez-vous de stopper le %%array|array%% pour débuter le processus de conversion. +3. **Changer le système de fichiers** : Cliquez sur le bassin dans l'onglet **Principal** et sélectionnez **BTRFS** ou **ZFS** comme format de système de fichiers. +4. **Démarrez le %%array|array%% :** Après avoir changé le format, démarrez le %%array|array%%. +5. **Formater le pool** : Le pool apparaîtra comme **non montable** et offrira l'option de formatage. Confirmez et cliquez sur le bouton **Format**. +6. **Formatage complet :** Une fois le formatage terminé, vous aurez un pool %%BTRFS|btrfs%% ou %%ZFS|zfs%%, bien qu'il n'aura qu'un seul appareil à ce stade. +7. **Ajoutez des disques supplémentaires si désiré :** Vous pouvez procéder à ajouter plus de disques à votre pool si vous le souhaitez. +8. **Restaurez vos données :** Enfin, suivez les étapes de restauration à partir de la procédure de sauvegarde pour déplacer vos données de retour vers le pool. + +### Ajout de disques pour créer un pool multi-appareils + +Une fois votre pool formaté en %%BTRFS|btrfs%% ou %%ZFS|zfs%%, vous pouvez ajouter d'autres disques pour la redondance et pour étendre le stockage. + +Pour ajouter plus de disques pour la redondance : + +1. **Arrêtez le %%array|array%%:** Commencez à nouveau par arrêter le %%array|array%%. +2. **Attribuez des disques supplémentaires :** Dans l'onglet **Principal**, vous pouvez attribuer un ou plusieurs nouveaux appareils à votre pool. +3. **Démarrez le %%array|array%% :** Une fois les disques assignés, démarrez le %%array|array%%. +4. **Équilibrage/résilience automatique :** Unraid incorporera automatiquement les nouveaux appareils dans le pool et lancera un **équilibrage** (%%BTRFS|btrfs%%) ou une **résilience** (%%ZFS|zfs%%) pour distribuer et protéger les données à travers les appareils. +5. **Suivez les progrès :** Dans l'onglet **Principal**, cliquez sur le premier appareil du pool, puis vérifiez **Statut de l'équilibrage** (pour %%BTRFS|btrfs%%) ou **statut du zpool** (pour %%ZFS|zfs%%) pour suivre les progrès et confirmer que le nouvel appareil a été ajouté avec succès. +6. **Pool maintenant en mode multi-appareils :** Une fois l'équilibrage terminé, votre pool fonctionnera en **mode multi-appareils** avec une capacité et une redondance améliorées. + +:::tip +Vous pouvez utiliser le [calculateur d'utilisation du disque BTRFS](http://carfax.org.uk/btrfs-usage/) pour estimer l'espace disponible et la redondance en fonction de votre niveau de %%RAID|raid%% choisi et des tailles des appareils. +::: + +--- + +## Ajout de disques à un pool + +À mesure que vos besoins de stockage augmentent, vous pouvez vouloir étendre votre pool de cache en ajoutant des disques supplémentaires. Ce processus vous permet d'augmenter à la fois la capacité et la performance tout en maintenant la protection des données grâce aux configurations RAID. + +:::note +Si vous souhaitez ajouter des disques à votre pool, assurez-vous simplement que votre pool est déjà formaté en %%BTRFS|btrfs%% ou %%ZFS|zfs%%. Si ce n'est pas le cas, vous devrez d'abord le formater comme expliqué dans [la section précédente](#converting-a-pool-to-btrfs-or-zfs). +::: + +Pour ajouter un disque à un pool : + +1. **Arrêtez le %%array|array%% :** Commencez par arrêter le %%array|array%% actuel pour vous assurer que le processus se déroule sans problème. +2. **Ouvrir l'onglet Principal** : Allez dans l'onglet **Principal** dans le %%WebGUI|web-gui%%. C'est ici que vous gérerez vos disques. +3. **Trouvez la section Dispositifs de pool** : Faites défiler vers le bas jusqu'à ce que vous voyiez la section *Dispositifs de pool*. C'est ici que vous pouvez apporter des modifications à votre configuration de disque. +4. **Ajuster le nombre de slots** : Définissez **Slots** sur exactement le nombre d'appareils supplémentaires que vous ajoutez. Vous ne pouvez pas laisser de slots vides supplémentaires ; le tableau ne démarrera pas avec des slots de pool non utilisés. +5. **Assignez vos appareils :** Choisissez quels appareils (disques) vous souhaitez ajouter au pool et assignez-les aux emplacements disponibles. +6. **Démarrez le %%array|array%% :** Après avoir assigné vos appareils, démarrez à nouveau le %%array|array%% pour activer ces modifications. + +--- + +## Retirer des disques d'un pool + +Removing a disk from a %%BTRFS|btrfs%% or %%ZFS|zfs%% multi-device %%cache pool|cache-pool%% can help you reclaim hardware, replace a failing drive, or reconfigure your storage. This process is only possible if your pool is set up for redundancy (like %%RAID 1|raid1%% for both data and metadata) and the remaining devices have enough space to hold all of your data. + + + + + + + + + + + +### Changer les niveaux de RAID de la pool + +%%BTRFS|btrfs%% provides the ability to change %%RAID|raid%% levels for %%cache pools|cache-pool%% dynamically, allowing you to adjust settings without stopping the %%array|array%% or losing any data. This flexibility lets you optimize for performance, redundancy, or storage efficiency as your requirements change. + +

Niveaux de %%RAID|raid%% pris en charge

+ +| Niveau %%RAID\|raid%% | Protection des données | Efficacité de l'espace | Cas d'utilisation | +| --------------------- | ---------------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------- | +| Unique | Aucune | 100 % | Stockage temporaire ou données non critiques où la redondance n'est pas nécessaire. | +| %%RAID 0\|raid0%% | Aucune | 100 % | Maximise la performance et la capacité, mais déconseillé pour les données critiques. | +| %%RAID 1\|raid1%% | 1 panne de disque | 50% | Défaut pour les pools Unraid. Idéal pour le stockage Docker/%%VM\|vm%% et les données critiques. | +| %%RAID 10\|raid10%% | 1 panne de disque | 50% | Allie la vitesse de %%RAID 0\|raid0%% à la redondance de %%RAID 1\|raid1%% pour les besoins de haute performance. | +| %%RAID 5\|raid5%%\* | 1 panne de disque | 67-94% | **Expérimental.** Équilibre capacité et redondance pour le stockage multimédia volumineux. | +| %%RAID 6\|raid6%%\* | 2 pannes de disque | 50-88% | **Expérimental.** Offre une protection supplémentaire pour le stockage d'archives avec de grands disques. | + +:::important +Les %%RAID 5|raid5%% et %%RAID 6|raid6%% sont considérés comme expérimentaux dans le %%BTRFS|btrfs%%. Le %%ZFS|zfs%% offre un support plus mature pour ces niveaux de %%RAID|raid%%. Utilisez avec précaution et assurez-vous d'avoir des sauvegardes. Évitez d'utiliser des niveaux %%RAID|raid%% expérimentaux pour des données critiques. +::: + +Pour changer le niveau de %%RAID|raid%% d'une pool : + +1. **Démarrer l'%%array|array%%** en mode normal si ce n'est pas déjà le cas. +2. **Cliquez sur le nom de la pool** dans l'onglet **Principal**. +3. **Faites défiler jusqu'à Statut de l'Équilibre** : Vérifiez les niveaux actuels de %%RAID|raid%% pour les données et les métadonnées. +4. **Sélectionnez le nouveau profil de %%RAID|raid%%** : Choisissez parmi un menu déroulant de profils prédéfinis. +5. **Démarrer l'opération d'équilibrage** : Cliquez sur **Équilibrer** pour commencer la conversion. + +
+ ![Conversion de %%RAID 1|raid1%% à Single profile](/img/Btrfs-raid1.jpg) +

*Exemple : Conversion de %%RAID 1|raid1%% à Single profile*

+
+ +6. **Surveiller le progrès :** Les opérations d'équilibrage peuvent prendre plusieurs heures, voire des jours, selon la quantité de données dans le pool, les vitesses des disques et la complexité du niveau de %%RAID|raid%% sélectionné. + +
+ Dépannage des opérations d'équilibrage si bloquées - Cliquez pour développer/réduire + + Si une opération d'équilibrage semble bloquée ou ne répond pas, suivez ces étapes : + + 1. **Vérifiez les journaux** : Allez dans ***Outils → Journaux*** et filtrez pour les entrées `btrfs`. + 2. **Arrêtez et reprenez l'opération** : + - Cliquez sur **Annuler l'Équilibre**. + - Redémarrer l'%%array|array%%. + - Initiez à nouveau l'opération d'équilibrage. + 3. **Vérifier l'état des disques** : Exécutez des tests %%SMART|smart%% sur tous les appareils du pool. Pour plus d'informations sur la surveillance de la santé des disques, voir [Rapports SMART et santé des disques](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx). + 4. **Vérifiez l'espace libre** : Assurez-vous qu'il y ait au moins 10-15% d'espace libre disponible sur la pool. + 5. **Diagnostic des publications** : Partagez les journaux sur les [forums Unraid](https://forums.unraid.net/) si les problèmes persistent. Pour obtenir des conseils sur la capture de diagnostics, consultez [Capture diagnostics et journaux](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx). +
+ +Pour des détails de configuration avancée pour %%BTRFS|btrfs%%, référez-vous au [wiki BTRFS](https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices). + +--- + +## Remplacer un disque dans une pool + +Remplacer un disque dans votre %%cache pool|cache-pool%% est une tâche importante qui aide à maintenir la performance et la fiabilité de votre système de stockage. + +:::note\[Prerequisites] + +- **Vérifiez la configuration de votre pool :** Assurez-vous que votre pool est configuré avec un profil %%RAID|raid%% redondant, comme %%RAID 1|raid1%%. Vous pouvez le faire en allant à ***Principal → Pool → État de l'équilibre*** (pour %%BTRFS|btrfs%%) ou à l'état du pool ZFS (pour %%ZFS|zfs%%) dans votre interface de gestion. +- **Choisissez le bon disque de remplacement :** Le nouveau disque doit être de la même taille ou plus grand que celui que vous remplacez. +- **Capacité de remplacement à chaud :** Si votre matériel supporte le remplacement à chaud, vous n'aurez pas besoin d'éteindre votre système pour remplacer le disque. + +::: + +Pour remplacer un disque dans une pool : + +1. **Stop the %%array|array%%**: Go to the **Main** tab, find the **Array Operation** section, and click the **Stop** button. This will safely halt the %%array|array%% to prepare for disk replacement. +2. **(Optionnel) Retirez l'ancien disque** : Si vous n'avez pas de configuration à échange à chaud, vous devrez détacher physiquement l'ancien disque. Assurez-vous de le faire avec précaution pour éviter tout dommage. +3. **Installez le disque de remplacement** : Insérez le nouveau disque dans votre système. Assurez-vous qu'il est correctement connecté et sécurisé. +4. **Rafraîchir le %%WebGUI|web-gui%%** : Retournez à l'onglet **Principal** et rafraîchissez la page pour permettre au système de détecter votre nouveau disque. +5. **Assignez le nouveau disque :** Une fois détecté, trouvez l'emplacement de la pool où l'ancien disque était situé et assignez le nouveau disque à cet endroit. +6. **Démarrez le %%array|array%% :** Cliquez sur le bouton **Démarrer** pour commencer le processus d'intégration du nouveau disque dans le %%array|array%%. +7. **Surveillez la reconstruction** : Le système commencera automatiquement à reconstruire les données sur le nouveau disque. Vous pouvez suivre l'avancement dans le %%WebGUI|web-gui%%. + +:::important\[Timing] + +La reconstruction peut prendre du temps, en fonction de la taille du disque et de la charge actuelle de votre système. Par exemple, la reconstruction d'un SSD de 4 To dans une configuration %%RAID 1|raid1%% peut prendre environ 3 à 6 heures. Il est conseillé de planifier cela lorsque vous pouvez permettre au système de travailler sans interruption. + +::: + +--- + +## Espace libre minimum pour une pool de cache + +Setting a minimum free space for your %%cache pool|cache-pool%% can provide better control over file placement, especially when dealing with large files like high-resolution videos. This setting helps Unraid know when to stop writing to the pool and start writing directly to the larger storage %%array|array%%, avoiding interruptions or data corruption. + +:::tip\[Example] + +Si vous téléchargez souvent des fichiers d'environ 10 Go, définissez l'espace libre minimum à au moins 10 Go, mais idéalement 20 Go pour permettre des ajustements. + +::: + +Vous pouvez accéder à l'Espace libre minimum en cliquant sur le nom de la pool dans l'onglet **Principal** et en allant dans **Paramètres de Pool Individuel**. + +

Comment ça fonctionne

+ +- Lorsque vous transférez un fichier vers un partage qui inclut un pool, Unraid respectera le premier paramètre de seuil qu'il rencontre (soit l'espace libre minimum du partage, soit celui du pool, selon le cas atteint en premier). +- Le paramètre d'espace libre minimum indique à Unraid d'arrêter d'utiliser la %%cache pool|cache-pool%% lorsque l'espace libre tombe en dessous de ce montant. +- Si votre partage utilise une %%cache pool|cache-pool%% comme **Stockage Principal**, les fichiers vont à la pool jusqu'à ce qu'elle atteigne l'espace libre minimum, puis ils sont envoyés directement au %%array|array%%. +- Si elle est réglée pour utiliser exclusivement la %%cache pool|cache-pool%% (pas de **Stockage Secondaire**), ce paramètre n'est pas appliqué. +- Si elle est réglée pour n'utiliser que le %%array|array%% comme **Stockage Principal**, les fichiers vont directement au %%array|array%%. + +:::tip\[Use exemple de cas]. + +Le partage Média a le sol fixé à 20 Go, ce qui est approprié pour les fichiers dans ce partage. Cependant, si vous utilisez également le pool pour une VM et que vous souhaitez laisser une marge au cas où le vdisk se développerait, vous pouvez définir le sol du pool à 50 Go. De cette façon, tout transfert vers le partage Media après que le pool ait moins de 50 Go libres irait directement au tableau. + +::: + +:::tip[Best pratique] +Définissez l'espace libre minimum à au moins la taille du fichier le plus grand que vous attendez, de préférence le double de la taille. Par exemple, si votre plus grand fichier est de 30 Go, définissez le minimum à 60 Go. +::: + +:::caution +**Ne définissez pas l'espace libre minimum à 0.** Cela peut entraîner des erreurs de disque plein. Utilisez toujours une valeur raisonnable. +::: + +--- + +## Déplacer des fichiers entre une pool et l'array + +There are times when you may need to move files between your %%cache pool|cache-pool%% and the main %%array|array%%, such as when preparing for maintenance, upgrading hardware, or optimizing performance. Unraid provides a built-in tool called %%Mover|mover%% to automate this process for [%%user shares|user-share%%](./shares.mdx). + +:::tip +Désactivez toujours les services Docker et %%VM|vm%% avant de déplacer des fichiers avec le %%Mover|mover%%. Cela empêche les fichiers ouverts d'être omis durant le transfert. +::: + + + + + + + + + + + +
+ Pourquoi les fichiers se retrouvent-ils parfois dans le mauvais pool ou cache ? - Cliquez pour déplier/plier + + When you move files between [%%user shares|user-share%%](./shares.mdx) at the Linux level (for example, using `mv` or within a Docker container), Linux tries to optimize the operation. If both the source and destination appear on the same mount point (`/mnt/user`), Linux might rename the file instead of moving it. This can result in files remaining on the original disk or pool, even if the share's "Use cache" setting is set to "No." + + Pour vous assurer que les fichiers se déplacent comme prévu, prenez en compte les options suivantes : + + - Utilisez l'outil %%Mover|mover%%. + - Copiez les fichiers, puis supprimez les originaux. + - Déplacez les fichiers via le réseau. + + Ces méthodes aident à éviter que des fichiers se retrouvent au mauvais endroit. +
+ +--- + +## Multiples pools + +Unraid vous permet de créer et de gérer jusqu'à 35 pools de stockage distincts, chacun avec jusqu'à 60 appareils. Plusieurs pools vous donnent la flexibilité d'allouer du stockage pour différentes tâches, d'améliorer les performances et de personnaliser la redondance selon vos besoins. Chaque pool peut utiliser un système de fichiers différent, un niveau de %%RAID|raid%% et un type de périphérique (SSD, HDD, NVMe, etc.). + +

Pourquoi utiliser plusieurs pools ?

+ +- **Optimisez la performance :** Les pools séparés pour les %%VMs|vm%%, conteneurs Docker, téléchargements ou médias peuvent améliorer la vitesse et réduire les conflits. +- **Protégez les données :** Assignez différents niveaux %%RAID|raid%% ou systèmes de fichiers à chaque pool pour une redondance et des options de sauvegarde personnalisées. +- **Isolez les charges de travail :** Gardez les applications critiques sur des pools plus rapides et redondants et stockez les données volumineuses sur des appareils plus grands et rentables. +- **Gérez de manière flexible :** Vous pouvez agrandir, réduire ou formater les pools indépendamment sans impact sur les autres. + +

Cas d'utilisation courants

+ +| Cas d'utilisation | Exemple de configuration | Bénéfice | +| ----------------------------------- | -------------------------------------------------------------------------- | --------------------------------------------------------- | +| %%VMs à haute performance\|vm%% | Pool NVMe SSD, %%RAID 1\|raid1%%, %%BTRFS\|btrfs%% ou %%ZFS\|zfs%% | Entrée/Sortie rapide avec redondance | +| Stockage Docker/Appdata | Pool SSD, %%RAID 1\|raid1%%, %%BTRFS\|btrfs%% ou %%ZFS\|zfs%% | Accès rapide et protection des données | +| Téléchargements de médias en vrac | Grand pool HDD, %%RAID 0\|raid0%% ou unique, %%XFS\|xfs%%/%%BTRFS\|btrfs%% | Grande capacité avec moins de redondance | +| Isolation de projet/équipe | Pools séparés pour chaque équipe/projet | Réduit les conflits de ressources | +| Cibles de sauvegarde et instantanés | Pool %%ZFS\|zfs%%, %%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%% (multi-appareil) | Prend en charge les instantanés natifs et les sauvegardes | + +:::info[Supported Systèmes de fichiers] +- %%BTRFS|btrfs%% : Meilleur pour les pools multi-appareils (prend en charge %%RAID 0|raid0%%, %%RAID 1|raid1%%, %%RAID 10|raid10%%, %%RAID 5|raid5%%, %%RAID 6|raid6%%). +- %%ZFS|zfs%% : Excellent pour les pools à un ou plusieurs appareils (Unraid 6.12+), avec un support mature pour %%RAIDZ1|raidz1%% et %%RAIDZ2|raidz2%%. Pour des fonctionnalités avancées de ZFS et sa configuration, voir [Stockage ZFS](../../advanced-configurations/optimize-storage/zfs-storage.mdx). +- %%XFS|xfs%% : Convient pour les pools à un seul appareil. +::: + +Lors de l'accès à une [partage utilisateur %%user share|user-share%%](./shares.mdx) de plusieurs pools et de disques %%array|array%%, Unraid fusionne les listes de répertoires dans cet ordre : + +1. Pool assigné au partage +2. Disques %%array|array%% (disk1, disk2, ..., disk28) +3. Autres pools (dans l'ordre) + +### Déplacement de fichiers entre pools + +Unraid ne permet pas le déplacement direct de fichiers entre pools via le %%WebGUI|web-gui%%, mais vous pouvez le faire en utilisant l'outil %%Mover|mover%% ou en ligne de commande. + +:::note\[Remember] + +Si certains des fichiers appartiennent à un conteneur Docker et/ou à une %%VM|vm%%, les services doivent être désactivés pour que les fichiers soient déplacés avec succès. + +::: + + + + + + + + + + + +:::warning +If you remove a device from a %%BTRFS|btrfs%% or %%ZFS|zfs%% pool and move it to a new pool, Unraid will erase all data on it when the %%array|array%% restarts. Always back up important data before changing pool configurations. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx new file mode 100644 index 0000000000..a1aa218d7e --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx @@ -0,0 +1,478 @@ +--- +sidebar_position: 4 +sidebar_label: Systèmes de fichiers +--- + +# Systèmes de fichiers + +### Sélection d'un type de système de fichiers + +Sélectionner le bon système de fichiers pour votre %%array|array%% Unraid ou %%cache pool|cache-pool%% est crucial. Cela vous aide à obtenir un équilibre entre performance, protection des données et fonctionnalités avancées. Unraid supporte plusieurs systèmes de fichiers modernes Linux, chacun avec ses propres forces uniques et cas d'utilisation spécifiques. + +| Système de fichiers | Protection des données | Efficacité de l'espace | Fonctionnalités avancées | Meilleur cas d'utilisation | +| ------------------- | ------------------------------------------------------------------------------------- | --------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| %%XFS\|xfs%% | Aucune redondance intégrée | 100 % | Résistant à la corruption | Par défaut pour les disques d'une baie ; haute fiabilité | +| %%ZFS\|zfs%% | %%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%%/%%RAIDZ3\|raidz3%%, miroirs, etc. | Varie selon le niveau de %%RAID\|raid%% | %%Checksums\|checksum%%, %%Snapshots\|snapshot%%, %%RAID\|raid%% | Baies multi-appareils, %%VMs\|vm%%, Docker, utilisateurs avancés | +| %%BTRFS\|btrfs%% | %%RAID 0\|raid0%%/%%RAID 1\|raid1%%/%%10\|raid10%%/%%5\|raid5%%/%%6\|raid6%%, miroirs | Varie selon le niveau de %%RAID\|raid%% | %%Checksums\|checksum%%, %%Snapshots\|snapshot%%, %%RAID\|raid%% | Baies multi-appareils, mélange SSD/HDD, baies flexibles | + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import FileSystemXfs from './partials/file-system-xfs.mdx'; +import FileSystemZfs from './partials/file-system-zfs.mdx'; +import FileSystemBtrfs from './partials/file-system-btrfs.mdx'; +import BtrfsBalance from './partials/btrfs-balance.mdx'; +import BtrfsScrub from './partials/btrfs-scrub.mdx'; +import FsCheckCliXfs from './partials/fs-check-cli-xfs.mdx'; +import FsCheckCliBtrfs from './partials/fs-check-cli-btrfs.mdx'; +import FsCheckCliZfs from './partials/fs-check-cli-zfs.mdx'; +import FsRepairCliXfs from './partials/fs-repair-cli-xfs.mdx'; +import FsRepairCliBtrfs from './partials/fs-repair-cli-btrfs.mdx'; +import FsRepairCliZfs from './partials/fs-repair-cli-zfs.mdx'; + + + + + + + + + + + + + + + +:::note[Additional Notes] +- Mélanger différents types de systèmes de fichiers dans votre système Unraid est tout à fait acceptable ; le système de %%parité|parity%% d'Unraid fonctionne indépendamment du système de fichiers utilisé. +- Formatez toujours et partitionnez les disques dans Unraid pour assurer la compatibilité. +- Les systèmes Linux peuvent lire ces systèmes de fichiers nativement ; cependant, Windows et macOS nécessitent des logiciels supplémentaires pour y accéder. +- Vous pouvez chiffrer des disques pour une sécurité accrue, mais gardez à l'esprit que les disques chiffrés peuvent poser des défis pour la récupération en cas de corruption. +- Pour les disques de transfert ou les appareils externes, il est recommandé d'utiliser le plugin **[Unassigned Devices](#using-the-unassigned-devices-plugins)**, qui prend en charge des systèmes de fichiers supplémentaires. +::: + +:::tip\[Still besoin d'aide pour choisir? + +- **Pour les disques de baie :** %%XFS|xfs%% est généralement le meilleur choix pour la plupart des utilisateurs. +- **Pour des performances élevées ou des fonctionnalités avancées :** Choisissez %%ZFS|zfs%% ou %%BTRFS|btrfs%% pour %%cache pools|cache-pool%% ou des configurations multi-appareils. +- **Pour les baies mixtes ou en expansion :** %%BTRFS|btrfs%% est idéal si vous voulez utiliser différentes tailles de disques ou ajouter ou retirer facilement des appareils. + +Si vous êtes incertain, commencer avec les paramètres par défaut est une bonne approche : utilisez %%XFS|xfs%% pour les disques %%array|array%% et %%BTRFS|btrfs%% pour les %%cache pools|cache-pool%%. + +::: + +--- + +## Définir un type de système de fichiers + +Lors de l'ajout d'un nouveau disque à Unraid, vous pouvez sélectionner le type de système de fichiers qui correspond le mieux à vos besoins. Le système de fichiers détermine comment les données sont organisées et protégées sur le disque. + +Pour définir le type de système de fichiers : + +1. **Définir le paramètre par défaut globalement** : + - Accédez à ***Settings → Disk Settings*** pour définir le système de fichiers par défaut pour les nouveaux disques %%array|array%% uniquement. + - Unraid utilise par défaut %%XFS|xfs%% pour les disques %%array|array%%. + - **Remarque :** Il n'y a actuellement aucun paramètre par défaut global pour les %%cache pools|cache-pool%%. Ils seront toujours par défaut sur %%BTRFS|btrfs%% si laissés sur « auto ». + +2. **Définir le système de fichiers pour un disque individuel** : + - Arrêtez le %%array|array%%. + - Cliquez sur le lecteur dans l'onglet **Principal**. + - Choisissez le type de système de fichiers souhaité dans le menu déroulant. + - Si vous sélectionnez **auto**, Unraid utilisera le paramètre par défaut global. + - Pour les %%cache pools|cache-pool%% multi-appareils, seuls %%BTRFS|btrfs%% ou %%ZFS|zfs%% sont pris en charge. + +--- + +## Création d'un système de fichiers (formatage) + +Avant d'utiliser un nouveau disque dans Unraid, vous devez le formater avec le système de fichiers choisi. **Souvenez-vous, le formatage effacera tout le contenu existant sur le disque.** + +Pour commencer avec le formatage : + +1. **Démarrez le %%array|array%%**. +2. **Identifier les disques non montables** : Les disques qui ne sont pas reconnus apparaîtront comme **non montables**. +3. **Vérifiez la sélection des disques** : Vérifiez que tous les disques non montables sont ceux que vous souhaitez formater. +4. **Confirmez et formatez** : Cochez la case pour confirmer, lisez attentivement la boîte de dialogue d'avertissement, et cliquez sur **Formater**. +5. **Surveillez le processus** : Le processus de formatage va démarrer. Pour les nouveaux disques, Unraid réécrira d'abord la table de partition. +6. **Attendez la fin** : Le formatage prend généralement quelques minutes. Si vous ne voyez pas de progression, rafraîchissez l'onglet **Principal**. + +Une fois le formatage terminé, le disque est prêt à stocker des fichiers. + +--- + +## Changer un type de système de fichiers + +Vous pourriez vouloir changer le type de système de fichiers sur un disque spécifique pour profiter de nouvelles fonctionnalités ou pour assurer la compatibilité avec vos autres disques. + +:::warning +Changer le type de système de fichiers **effacera toutes les données existantes** sur le disque. Pensez toujours à sauvegarder les fichiers importants avant de commencer. +::: + +Pour changer le type de système de fichiers sur un disque particulier : + +1. **Arrêtez la baie** : Commencez par arrêter votre %%array|array%% pour vous assurer qu'aucune opération n'est en cours pendant le changement. +2. **Sélectionnez le disque** : Dans l'onglet **Principal**, cliquez sur le disque pour lequel vous voulez changer le format. +3. **Choisissez le nouveau système de fichiers** : Dans le menu déroulant, sélectionnez le format de système de fichiers souhaité. Si vous avez plusieurs disques à modifier, répétez cette étape pour chacun. +4. **Démarrez la baie** : Une fois que vous avez sélectionné les nouveaux systèmes de fichiers, redémarrez votre %%array|array%%. +5. **Formater les disques non montables** : L'onglet **Principal** affichera une option pour formater les disques non montables. Prenez un moment pour vérifier la liste et assurez-vous que seuls les disques que vous souhaitez modifier sont inclus. +6. **Confirmez et formatez** : Cochez la case pour confirmer le changement, puis cliquez sur le bouton **Formater** pour continuer. +7. **Attendez la fin du processus** : Le formatage prend généralement juste quelques minutes. Si vous constatez que le statut ne se met pas à jour, vous pouvez rafraîchir l'onglet **Principal** pour vérifier la progression. + +Si vous rencontrez des problèmes, n'hésitez pas à visiter les [forums Unraid](https://forums.unraid.net/). Joignez votre fichier de diagnostic système zip (trouvé sous ***Outils → Diagnostics***) pour obtenir de l'aide. + +--- + +## Conversion vers un nouveau type de système de fichiers + +:::important +À partir d'Unraid 7.2, la page ***Principale*** avertira si des disques de l'array ou du pool sont formatés dans des systèmes de fichiers obsolètes : + +- Tous les disques formatés en ReiserFS doivent être migrés vers un autre système de fichiers dès que possible, car ils ne seront plus utilisables dans une future version d'Unraid (probablement Unraid 7.3). +- Tous les disques formatés dans une ancienne version de XFS doivent être migrés avant 2030. +::: + +Ce processus est particulièrement courant pour les utilisateurs passant du ReiserFS obsolète (utilisé dans les anciennes versions d'Unraid) au %%XFS|xfs%% ou au %%BTRFS|btrfs%%, mais il s'applique à toute conversion de système de fichiers. + +:::important +Ce processus nécessite de déplacer temporairement vos données vers un autre emplacement. Assurez-vous d'avoir suffisamment d'espace libre ailleurs dans votre %%array|array%% ou sur un appareil externe avant de commencer. +::: + +Pour convertir en toute sécurité vers un nouveau type de système de fichiers : + +1. **Copiez toutes les données du lecteur :** Déplacez vos fichiers vers un autre emplacement. Cela pourrait être un autre lecteur dans votre %%array|array%%, un %%cache pool|cache-pool%%, ou une sauvegarde externe. + - Avant Unraid 7.0, vous devrez déplacer les fichiers manuellement. + - À partir de Unraid 7.0, vous pouvez déplacer des fichiers [utiliser 'mover' pour vider un disque de la matrice](../../release-notes/7.0.0.md#using-mover-to-empty-an-array-disk) vers d'autres disques de la matrice via la ligne de commande. + - À partir de Unraid 7.2, vous pouvez vider un disque de la matrice vers d'autres disques de la matrice via le WebGUI : + - Naviguez vers ***Principal → Opération de la matrice*** et arrêtez la matrice. + - Naviguez vers ***Paramètres → Paramètres de partage global***. Dans la zone **Vider disque(s)**, sélectionnez le(s) disque(s) à vider et **Appliquer**. Note : ce statut sera automatiquement supprimé lorsque la matrice est arrêtée. + - Naviguez vers ***Principal → Opération de la matrice*** et démarrez la matrice. + - Sur ***Principal → Opération de la matrice*** cliquez sur **Déplacer** (ou attendez que le mover s'exécute selon son calendrier normal). + - Mover vide le disque selon vos paramètres de partage. Notez que les fichiers à la racine du lecteur sont en dehors de tout partage et ne seront pas déplacés. + - Vérifiez ***Outils → Journal du système*** pour les messages concernant les fichiers qui n'ont pas pu être déplacés en raison d'une utilisation ou d'un manque d'espace libre. + - Naviguez vers ***Principal → Périphériques de la matrice*** et explorez le disque pour confirmer qu'il est vide. Ne continuez que lorsque vous êtes certain que le disque est vide. +2. **Changez le type de système de fichiers :** Suivez la procédure pour [changer un type de système de fichiers](#changing-a-file-system-type). Cela formatera le lecteur et effacera tout le contenu, vous laissant avec un lecteur vierge dans le nouveau format. +3. **Copiez vos données arrière** : (Facultatif) Selon l'endroit où vous avez déplacé les fichiers, vous voudrez peut-être les déplacer de nouveau sur le disque nouvellement formaté. +4. **Répétez au besoin** : Si vous avez plus d'un disque à convertir, répétez ces étapes pour chaque disque, en transférant les données selon les besoins. + +:::note\[Timing] + +Le processus peut prendre plusieurs heures, en fonction de la quantité de données et de la vitesse de vos lecteurs. La majeure partie du temps est consacrée à la copie des fichiers, qui peut être effectuée sans surveillance. + +::: + +--- + +## Reformatage d'un disque + +Reformater un lecteur dans Unraid effacera toutes vos données et créera un nouveau système de fichiers vide. Ce processus est utile pour résoudre les erreurs de système de fichiers persistantes ou pour repartir à zéro avec un nouveau format. + +:::warning +Le reformatage effacera définitivement toutes les données sur le lecteur. Sauvegardez toujours les fichiers importants avant de commencer. +::: + +Pour reformater **en toute sécurité** votre disque : + +1. **Arrêtez la matrice**. +2. **Changez le type de système de fichiers** : + - Allez à l'onglet **Principal** et cliquez sur le disque que vous souhaitez reformater. + - Sélectionnez un type de système de fichiers différent (par exemple, changez de %%XFS|xfs%% à %%BTRFS|btrfs%%). + - Démarrez le %%array|array%%, et le disque s'affichera comme **non montable**. + - Lorsque vous y êtes invité, formatez le disque. +3. **(Optionnel) Revenez à votre type de système de fichiers d'origine** : + - Arrêtez à nouveau le %%array|array%%. + - Changez le système de fichiers à votre type préféré. + - Démarrez le %%array|array%% et formatez à nouveau le disque. + +Ce processus simple garantit que le lecteur est complètement effacé et formaté comme vous le souhaitez. Le processus de formatage prend généralement juste quelques minutes. + +### Reformatage d'un disque cache + +Parfois, il est nécessaire de reformater un disque %%cache|cache%% pour les raisons suivantes : + +- Pour changer le type de système de fichiers (par exemple, de %%BTRFS|btrfs%% à %%XFS|xfs%% ou vice versa) +- Pour corriger des erreurs persistantes du système de fichiers +- Pour démarrer à neuf pour de nouvelles charges de travail + +

Procédure recommandée pour reformater un disque de cache

+ +1. **Arrêtez la matrice**. +2. **Désactivez les services Docker et %%VM|vm%%** dans **Paramètres**. +3. **Démarrez la baie** (cela empêchera les onglets Docker et %%VM|vm%% d'apparaître). + +Pour déplacer les données hors du cache : + +4. **Définissez le stockage partagé et l'action du Mover (cache → array) :** Pour chaque partage ayant des fichiers dans le %%cache|cache%%, définissez le **Stockage principal** à la source %%cache|cache%% pool et le **Stockage secondaire** à l'%%array|array%%. Réglez l'**action du Mover** sur **cache → array**. + - Notez tout partage que vous modifiez et leurs réglages d'origine. +5. **Exécutez le %%Mover|mover%% :** Exécutez le %%Mover|mover%% depuis l'onglet **Principal**. Attendez qu'il finisse et assurez-vous que le %%cache|cache%% est vide. + - Si des fichiers restent, arrêtez et consultez les forums pour obtenir de l'aide. + +Pour reformater le disque cache : + +6. **Arrêtez la matrice**. +7. **Définissez le format du disque de cache** (choisissez entre %%XFS|xfs%% ou %%BTRFS|btrfs%%). + - Pour un %%cache|cache%% à un seul disque, %%XFS|xfs%% est l'option recommandée. + - Notez que %%XFS|xfs%% est disponible uniquement si vous avez un seul emplacement de %%cache|cache%%. +8. **Démarrez la matrice**. +9. **Formatez le disque cache** : + - Confirmez que seul le disque du %%cache|cache%% est répertorié comme non montable. + - Procéder au formatage du disque. + +Pour restaurer les données et les paramètres : + +10. **Restaurez les paramètres de partage** : Pour chaque partage que vous avez modifié, rétablissez les valeurs originales de **Stockage principal** et **Stockage secondaire**. +11. **Déplacez les données (array → cache) :** Réglez le **Stockage principal** à la destination %%cache|cache%% pool et le **Stockage secondaire** à l'%%array|array%% pour chaque partage que vous avez changé. Réglez l'**action du Mover** sur **array → cache**, puis exécutez à nouveau le %%Mover|mover%% pour déplacer vos données de retour vers le %%cache|cache%%. +12. **Arrêtez la matrice**. +13. **Réactivez les services Docker et VM**. +14. **Démarrez la matrice**. + +:::note\[Timing] + +Le temps nécessaire pour déplacer les données avec le **Mover** et formater le disque peut varier de plusieurs minutes à plusieurs heures, selon la quantité de données et la vitesse du disque. + +::: + +--- + +## Opérations BTRFS + +Maintenir vos pools %%BTRFS|btrfs%% dans Unraid est essentiel pour assurer leur bon fonctionnement et la sécurité de vos données. Deux outils clés que vous voudrez utiliser régulièrement sont **Balance** et **Scrub**. Ces opérations aident à résoudre les problèmes d'allocation d'espace, à optimiser l'utilisation de votre stockage, et à protéger vos données contre la corruption cachée. + +Décomposons ce que fait chaque opération et quand les utiliser : + + + + + + + + + + + +:::tip +Tant **Balance** que **Scrub** peuvent être effectués pendant que le système est en ligne, mais gardez à l'esprit que la performance peut être affectée pendant ces opérations. Vous pouvez surveiller l'avancement dans le %%WebGUI|web-gui%%. +::: + +Pour plus de détails sur les fonctionnalités avancées %%BTRFS|btrfs%%, consultez [la documentation officielle BTRFS](https://btrfs.readthedocs.io/en/latest/Introduction.html). + +--- + +## Disques non assignés + +Les lecteurs non assignés sont des dispositifs de stockage connectés à votre serveur Unraid qui ne font pas partie de l'%%array|array%% principal ou de tout %%cache pool|cache-pool%%. Vous pouvez utiliser ces lecteurs pour transférer des fichiers, créer des backups, ou fournir un stockage rapide pour des %%machines virtuelles|vm%%. + +:::note +Tous les lecteurs connectés à votre serveur au démarrage de l'%%array|array%% comptent vers votre limite de licence de périphériques attachés Unraid, même s'ils ne sont pas assignés à l'%%array|array%% ou à un pool. +::: + +

Utilisations courantes pour les disques non assignés

+ +- Connectez des disques amovibles pour des transferts de fichiers ou des sauvegardes faciles. +- Utilisez des disques dédiés pour des tâches haute performance comme exécuter des machines virtuelles ou pour du stockage temporaire de données. + +### Utilisation des plugins Unassigned Devices + +Pour tirer le meilleur parti de vos disques non assignés, envisagez d'installer les plugins suivants depuis l'onglet **Apps** : + +- **[Périphériques non attribués](https://unraid.net/community/apps?q=dlandon\&r=0#:~:text=and%20iso%20files.-,Unassigned%20Devices,-dlandon):** Ce plugin vous permet de monter, partager et gérer des disques avec des systèmes de fichiers pris en charge par Unraid, comme %%XFS|xfs%%, %%BTRFS|btrfs%% ou NTFS. + +- **[Unassigned Devices Plus](https://unraid.net/community/apps?q=dlandon\&r=0#:~:text=and%20iso%20files.-,Unassigned%20Devices%20Plus,-\(Addon\))** : Cette extension élargit vos options en supportant des systèmes de fichiers supplémentaires, y compris ExFAT et HFS+. + +Ces plugins permettent : + +- De monter et démonter facilement des disques depuis l'interface web d'Unraid. +- Partager vos disques non assignés sur le réseau. +- D'automatiser le montage lors du démarrage du serveur. +- De formater ou d'effacer des disques pour une utilisation future. +- De déconnecter en toute sécurité les disques USB ou externes sans tracas. + +Pour plus de détails sur l'installation et la gestion des plugins, consultez [Plugins](../customize-your-experience/plugins.mdx). + +--- + +## Dépannage + +### Le disque apparaît comme non montable + +Si vous voyez qu'un disque dans Unraid est **non montable**, cela peut être dû à deux raisons principales : + +1. **Nouveau lecteur ajouté :** Si vous venez d'ajouter un nouveau lecteur à votre configuration, il apparaîtra comme non montable jusqu'à ce que vous le formatiez. Le formatage crée un système de fichiers qui permet au disque de stocker des fichiers. Vous pouvez trouver les étapes pour formater un lecteur [ici](#creating-a-file-system-formatting). + +2. **Problèmes de système de fichiers :** Si un lecteur qui fonctionnait auparavant montre soudainement comme non montable, il a probablement un problème de système de fichiers. Cela peut arriver en raison d'arrêts inattendus, de problèmes lors de l'écriture de données, ou si le lecteur a été marqué comme désactivé (ce qui apparaît comme un 'x' rouge dans le %%WebGUI|web-gui%%). + +:::important +Do not format an unmountable drive unless you are okay with losing all the data on it. Formatting will erase everything and update the %%parity|parity%% information, making recovery impossible. Always try to fix the file system first. +::: + +Si votre disque est non montable : + +1. **Identifiez la situation** : Déterminez s'il s'agit d'un nouveau disque ou d'un disque fonctionnant précédemment. +2. **Pour les nouveaux disques** : Formatez le disque pour créer un nouveau système de fichiers (consultez les [étapes de formatage](#creating-a-file-system-formatting)). +3. **Pour les lecteurs qui fonctionnaient auparavant :** Effectuez une vérification ou une réparation du système de fichiers (voir [Vérification d'un système de fichiers](#checking-a-file-system)). Évitez de formater si vous souhaitez conserver les données. + +:::note +Si un lecteur est à la fois non montable et désactivé ('x' rouge), exécutez d'abord la vérification/réparation du système de fichiers sur le lecteur **émulé**. Si le lecteur émulé est également non montable et que vous tentez de le reconstruire, le nouveau lecteur sera également non montable. +::: + +Réparer le système de fichiers prend généralement moins de temps que de reconstruire le lecteur, vous permettant d'accéder à vos données sans rien perdre. Rappelez-vous, reconstruire un lecteur ne résout **pas** les problèmes de système de fichiers ; il assure simplement que le lecteur physique correspond à celui émulé, en conservant les problèmes existants. + +:::important[Why la parité n'est-elle pas suffisante?] +Bien que la %%parité|parity%% aide à récupérer un disque défectueux, elle ne peut pas résoudre les problèmes de système de fichiers. Si le système de fichiers est corrompu, la %%parité|parity%% ne fera que reproduire cette corruption sur le nouveau disque. + +Si vous n'êtes pas sûr : + +- Téléchargez les journaux de votre système en naviguant vers **Outils → Diagnostiques**. +- Pour une assistance experte, postez votre problème ainsi que les diagnostics sur les [forums d'Unraid](https://forums.unraid.net/). +::: + +:::note[Just pour réitérer] +- Ne formatez que les disques non montables s'ils sont neufs ou si vous souhaitez effacer toutes les données. +- Utilisez la vérification/réparation du système de fichiers pour corriger les fichiers corrompus ; ne comptez pas sur la %%parité|parity%% pour résoudre ces problèmes. +- Pour les %%cache pools|cache-pool%% avec plusieurs disques, envisagez d'utiliser soit le %%BTRFS|btrfs%% soit le %%ZFS|zfs%%. +- Vérifiez toujours avant de formater ou de réparer des disques pour éviter la perte accidentelle de données. +::: + +--- + +### Vérifier un système de fichiers + +Si un disque qui montait sans problème auparavant montre maintenant comme **non montable**, cela indique généralement une corruption du système de fichiers. Cela peut résulter d'un arrêt inapproprié, d'une opération d'écriture échouée, ou du disque étant marqué comme désactivé dans le %%WebGUI|web-gui%%. Vérifier et réparer le système de fichiers est généralement plus rapide et plus sûr que de reconstruire, il est donc conseillé d'essayer cela avant de formater ou reconstruire le disque. + +:::important +Si le %%WebGUI|web-gui%% suggère de formater un lecteur non montable, ne formatez pas à moins que vous n'ayez l'intention d'effacer toutes les données. Le formatage détruira le contenu du lecteur et mettra à jour la %%parité|parity%%, rendant la récupération impossible. +::: + +

Préparation à la vérification ou à la réparation

+ +1. **Identifiez le type de système de fichiers** : + - Accédez à l'onglet **Principal** et sélectionnez votre disque (ex : Disque 3, Cache). + - Trouvez le **type de système de fichiers** (doit être %%XFS|xfs%%, %%BTRFS|btrfs%% ou %%ZFS|zfs%%). + +2. **Démarrez le réseau en mode correct** : + - Pour **%%XFS|xfs%%**, démarrez la %%array|array%% en mode **%%maintenance|maintenance-mode%%**. + - Pour **%%BTRFS|btrfs%%**, démarrez l'%%array|array%% en **mode normal** pour un %%scrub|scrub%% ou en **mode maintenance** pour une réparation. + - Pour **ZFS**, référez-vous à la section **ZFS** ci-dessous. + +3. **Handle emulated disks**: If the disk is disabled and being emulated, run the check/repair on the %%emulated disk|emulated-disk%% before attempting a rebuild. If the %%emulated disk|emulated-disk%% is unmountable, the rebuilt disk will also be unmountable. + +

Messages d'erreur courants

+ +| Message | Signification / Action | +| ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| **Superblock a un mauvais nombre magique** | Corruption sévère; tentez une réparation du système de fichiers. | +| **Système de fichiers est sale** | Arrêt non net ; effectuez une vérification du système de fichiers. | +| **Corruption de métadonnées détectée** | Les structures du système de fichiers sont endommagées ; initier une réparation. | +| **Aucun %%BTRFS\|btrfs%% valide trouvé** | Le disque peut ne pas appartenir à un pool valide; vérifiez les assignations de pool. | +| **Montage: mauvais type fs, mauvaise option, etc.** | Sélection incorrecte du système de fichiers ou disque non formaté. | +| **Impossible de monter /dev/mdX: La structure a besoin d'un nettoyage** | Le système de fichiers est corrompu; effectuez une réparation. | + +#### Via le WebGUI + +1. **Démarrez l'array :** Démarrez l'%%array|array%% en mode correct (reportez-vous aux étapes ci-dessus). +2. **Sélectionnez le disque** : Allez à l'onglet **Principal** et sélectionnez le disque à vérifier. +3. **Accédez aux options de vérification** : Faites défiler jusqu'à **Vérifier l'état du système de fichiers**. +4. **Pour XFS (Unraid 7.0+) :** Vous verrez un bouton **VÉRIFIER** sans options à entrer. Le système détermine automatiquement les actions nécessaires en fonction des résultats de la vérification. +5. **Pour d'autres systèmes de fichiers** : Entrez toute option nécessaire (pour les détails, consultez **Aide** en haut à droite). +6. **Commencez la vérification** : Cliquez sur **Vérifier** pour lancer. +7. **Surveillez les progrès :** Surveillez les progrès dans la boîte de sortie. Utilisez **Rafraîchir** si nécessaire. +8. **Passez en revue les résultats :** Passez en revue les résultats. Si vous n'êtes pas sûr, copiez la sortie et postez-la sur les [forums](https://forums.unraid.net/) pour obtenir des conseils. + +#### Flux de travail de réparation automatique XFS (Unraid 7.0+) + +À partir d'Unraid 7.0, la réparation du système de fichiers XFS est maintenant entièrement automatisée via le WebGUI : + +1. **Vérification initiale** : Cliquez sur le bouton **VÉRIFIER** (aucune option à entrer) +2. **Résultats de la vérification** : + - **Aucune corruption détectée** : Affiche "aucune corruption du système de fichiers détectée" et le bouton **VÉRIFIER** reste + - **Corruption détectée** : Affiche "corruption du système de fichiers détectée" et un bouton **RÉPARER** apparaît +3. **Processus de réparation** : Cliquez sur **RÉPARER** pour réparer automatiquement le système de fichiers +4. **Actions supplémentaires** : Si nécessaire, un bouton **ZERO LOG** peut apparaître +5. **Achèvement** : Affiche "système de fichiers réparé" lorsque le processus est terminé + +Ce système automatisé élimine le besoin pour les utilisateurs d'entrer manuellement des options de réparation et garantit que la séquence de réparation correcte est suivie. + +#### Via la ligne de commande + + + + + + + + + + + + + + + +:::tip +- Les réparations du système de fichiers sont généralement plus rapides qu'une reconstruction complète et peuvent restaurer l'accès sans perte de données. +- Reconstruire un disque ne résout **pas** la corruption du système de fichiers ; effectuez toujours une vérification ou une réparation d'abord. +- Si vous avez des doutes, publiez vos diagnostics et messages d'erreur sur les [forums d'Unraid](https://forums.unraid.net/) pour obtenir de l'aide d'experts. +::: + +--- + +### Réparation d'un système de fichiers + +Si une vérification de votre système de fichiers trouve des erreurs, vous devrez peut-être exécuter une réparation pour retrouver l'accès à vos données. Les réparations prennent généralement moins de temps qu'une reconstruction complète, mais il est important de lire attentivement la sortie et de demander de l'aide sur les [forums](https://forums.unraid.net/) si vous n'êtes pas sûr de quelque chose. + +:::note\[Timing] + +Les réparations peuvent prendre de quelques minutes à plusieurs heures, surtout pour les systèmes de fichiers plus grands ou lourdement corrompus. Le progrès peut sembler lent, mais vous pouvez vérifier l'activité en regardant les statistiques de lecture/écriture sur la page principale. + +::: + +

Préparation à la réparation

+ +1. **Identifier le type de système de fichiers** : Allez à l'onglet **Principal**, cliquez sur le disque, et découvrez de quel type de système de fichiers il s'agit (%%XFS|xfs%%, %%BTRFS|btrfs%%, ou %%ZFS|zfs%%). + +2. **Démarrez le réseau en mode correct** : + + - **Pour %%XFS|xfs%% :** Utilisez **module de maintenance**. + - **Pour %%BTRFS|btrfs%% :** Utilisez **mode normal** pour un %%scrub|scrub%% ; utilisez **module de maintenance** pour une réparation. + - **Pour %%ZFS|zfs%% :** Utilisez le **mode normal** et exécutez un %%scrub|scrub%% pour vérifier les erreurs. Consultez la [page de stockage ZFS](../../advanced-configurations/optimize-storage/zfs-storage.mdx) pour obtenir des conseils sur l'entretien et les procédures de réparation des pools %%ZFS|zfs%%. + +3. **Gérer les disques émulés** : Si le disque est désactivé et est en cours d'émulation, effectuez la réparation sur le %%emulated disk|disque émulé%% avant de tenter une reconstruction. + +#### Via le WebGUI + +1. **Démarrez le réseau**: Démarrez le %%array|array%% en mode correct (voir la section ci-dessus). +2. **Sélectionnez le disque**: Allez à l'onglet **Principal** et cliquez sur le disque que vous souhaitez réparer. +3. **Accéder aux options de réparation**: Faites défiler vers le bas jusqu'à **Vérification de l'état du système de fichiers**. +4. **Pour XFS (Unraid 7.0+) :** Le processus de réparation est entièrement automatisé. Cliquez sur **VÉRIFIER**, puis **RÉPARER** si une corruption est détectée, et **ZERO LOG** si on vous le demande. +5. **Pour d'autres systèmes de fichiers** : Supprimez toutes les options qui exécuteraient le processus en mode vérification seule (comme `--readonly` pour %%BTRFS|btrfs%%). +6. **Ajoutez les options suggérées** : Si vous y êtes incité, ajoutez les options suggérées comme indiqué dans les résultats de vérification. +7. **Commencer la réparation** : Cliquez sur **Vérifier** pour commencer la réparation. +8. **Surveillez les progrès :** Gardez un œil sur les progrès dans la boîte de sortie. Utilisez **Rafraîchir** si nécessaire. +9. **Vérifiez les fichiers perdus :** Si vous remarquez un dossier `lost+found` après la réparation, il peut contenir des fichiers ou dossiers qui n'ont pas pu être entièrement récupérés. Utilisez des sauvegardes ou la commande `file` de Linux pour identifier le contenu si nécessaire. + +:::info +Si vous n'êtes pas sûr de la sortie, copiez-la et partagez-la sur les [forums Unraid](https://forums.unraid.net/) pour une aide experte. Utilisez l'option de formatage de code pour la rendre lisible. +::: + +#### Via la ligne de commande + + + + + + + + + + + + + + + +:::info[After la réparation] +- Arrêtez et redémarrez le %%array|array%% en **mode normal**. +- Le lecteur devrait maintenant être monté et accessible. +- Si vous voyez un dossier `lost+found`, vérifiez son contenu pour d'éventuels fichiers importants. +::: + +Si vous ne comprenez pas le résultat de la réparation ou si le processus échoue, partagez vos diagnostics et le journal de réparation sur les [forums d'Unraid](https://forums.unraid.net/) pour obtenir de l'aide supplémentaire. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx new file mode 100644 index 0000000000..ab436fbdf6 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx @@ -0,0 +1,21 @@ +Pour ajouter un disque de données à un array sans protection de parité : + +1. **Arrêtez l'array :** Utilisez l'Unraid %%WebGUI|web-gui%% pour arrêter l'array. + +2. **Éteignez votre serveur :** Éteignez votre serveur en toute sécurité. + +3. **Installez le(s) nouveau(x) disque(s) dur(s) :** Ajoutez physiquement le(s) nouveau(x) disque(s). + +4. **Redémarrez le serveur :** Redémarrez votre serveur. + +5. **Attribuez le(s) nouveau(x) disque(s) :** Utilisez l'%%WebGUI|web-gui%% pour attribuer les nouveaux disques aux emplacements de données disponibles. + +6. **Démarrez l'array :** Redémarrez l'array. + + - L'étape d'effacement est complètement écartée lorsqu'il n'y a pas de %%parity disk|parity-drives%% dans l'array. + +7. **Formater le disque :** Le nouveau disque s'affichera comme non montable dans le %%WebGUI|web-gui%%. Vous serez invité à le formater. + +:::important +Vérifiez toujours le numéro de série pour vous assurer que vous formatez le bon disque. Le formatage effacera tout sur ce disque, et cette action ne peut pas être annulée. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx new file mode 100644 index 0000000000..0024d10897 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx @@ -0,0 +1,30 @@ +Pour ajouter un disque de données à un array protégé par la parité : + +1. **Arrêtez l'array :** Utilisez l'Unraid %%WebGUI|web-gui%% pour arrêter l'array. + +2. **Éteignez votre serveur :** Éteignez votre serveur en toute sécurité. + +3. **Installez le(s) nouveau(x) disque(s) dur(s) :** Ajoutez physiquement le(s) nouveau(x) disque(s). + +4. **Redémarrez le serveur :** Redémarrez votre serveur. + +5. **Attribuez le(s) nouveau(x) disque(s) :** Utilisez l'%%WebGUI|web-gui%% pour attribuer les nouveaux disques aux emplacements de données disponibles. + +6. **Démarrez l'array :** Redémarrez l'array. + + - Unraid lancera automatiquement une **opération de vidage** sur le nouveau disque. Cela remplit le disque de zéros et s'assure qu'il est prêt à l'emploi tout en maintenant l'intégrité des données. + - L'opération de vidage se déroule en arrière-plan, de sorte que vous pouvez toujours accéder à votre ensemble. Cependant, le nouveau disque ne sera pas utilisable tant que le processus ne sera pas terminé et le disque formaté. + - Si vous avez pré-effacé le disque, Unraid sautera cette étape, reconnaissant qu'il est déjà prêt à l'emploi. + +7. **Après la fin du vidage :** Une fois le processus de vidage terminé, le disque apparaîtra comme non-montable dans le %%WebGUI|web-gui%%. Vous serez invité à le formater. + +:::important +Vérifiez toujours le numéro de série pour vous assurer que vous formatez le bon disque. Le formatage effacera tout sur ce disque, et cette action ne peut pas être annulée. +::: + +8. **Confirmer le format :** Cochez la case de confirmation et cliquez sur le bouton **Format**. Unraid vous avertira des conséquences de cette action. +9. **Processus de formatage :** Le formatage prendra quelques minutes. Une fois terminé, le disque sera affiché comme monté et prêt à l'emploi. Il est normal de voir une petite quantité d'espace utilisé en raison de la surcharge du système de fichiers. + +:::note +Vous pouvez ajouter plusieurs disques, mais ils ne seront pas utilisables tant qu'ils n'auront pas tous été effacés et formatés. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx new file mode 100644 index 0000000000..2bb192ee61 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx @@ -0,0 +1,59 @@ +A %%parity check|parity-check%% is essential when your array includes at least one assigned parity device. During this process, all data disks are read simultaneously. The system recalculates the parity and compares it to the information stored on your %%parity disk(s)|parity-drives%%. + +
+ En profondeur : Synchronisation de parité vs Contrôle de parité - Quelle est la différence ? - Cliquez pour développer/réduire + + A %%parity|parity%% sync reads all data disks and creates %%parity|parity%% from scratch, saving the results on the %%parity drives|parity-drives%%. This process typically happens when you add or replace a %%parity drives|parity-drives%% or after significant configuration changes. + + A %%parity check|parity-check%% reads all data disks along with the %%parity drives|parity-drives%%. It recalculates the %%parity|parity%% values and compares them to the stored values. There are two modes for running a %%parity check|parity-check%%: + + - **Correctif (CORRECT) :** S'il trouve un décalage, il met à jour le disque de %%parité|parity-drives%% et journalise l'événement. + - **Non-correctif (NOCORRECT) :** Journalise uniquement les erreurs trouvées sans mettre à jour la parité. + + Pour éviter une journalisation excessive, seules les 100 premières adresses avec erreurs sont signalées lors d'un contrôle de %%parité|parité%%. Ces décalages sont appelés **erreurs de synchronisation** et indiquent où la parité ne correspond pas aux données, généralement en raison de problèmes tels que des coupures de courant soudaines ou des problèmes matériels. Chaque erreur de synchronisation est comptée en blocs de 4Ko - c'est la taille de l'unité d'E/S du système (connue sous le nom de taille de page Linux). +
+ +
+ En profondeur : Que signifie "valide" pour les disques de parité et de matrice ? - Cliquez pour développer/réduire + + Un **disque de %%parité|parity%% valide** indique qu'après la dernière synchronisation de %%parité|parity%% réussie, Unraid a reconnu la %%parité|parity%% comme "bonne", c'est-à-dire qu'elle est adaptée à la récupération des données en cas de défaillance d'un disque. Le statut "valide" s'applique à chaque disque de la matrice, pas seulement à celui de la %%parité|parity%%. Si tous les disques sauf un sont valides, Unraid peut reconstruire les données du disque manquant ou défaillant en utilisant la %%parité|parity%%. + + Unraid maintains the %%parity disk|parity-drives%%'s "valid" status even when some sync errors occur following a non-correcting check. This ensures that you can still recover a failed disk. If the %%parity|parity%% were marked as invalid, you would risk having two invalid disks after just one additional failure, leading to potential data loss. +
+ +Tant qu'un contrôle de %%parité|parité%% est en cours, vous pouvez toujours utiliser l'ensemble. Cependant, soyez conscient que les performances peuvent ralentir en raison de la concurrence des disques, car à la fois les opérations de fichier et le contrôle se disputent les ressources. + +Normalement, si la %%parity check|parity-check%% identifie des erreurs, Unraid mettra à jour le disque de %%parité|parity-drives%% pour s'aligner avec les données calculées et incrémentera le compteur d'erreurs de synchronisation. + +:::tip +Si vous préférez exécuter une vérification sans apporter de corrections, il suffit de décocher **Écrire les corrections sur la parité** avant de commencer. De cette manière, les erreurs seront signalées mais non corrigées. +::: + +:::important +After an "Unsafe Shutdown"—when the array is restarted without being properly stopped—Unraid automatically initiates a %%parity check|parity-check%% using the mode configured under **Settings → Scheduler → Parity Check** (non-correcting by default). To change how the automatic check runs, open **Settings → Scheduler → Parity Check** and adjust the options there. Unexpected power loss is the most common trigger for an unsafe shutdown, so using an uninterruptible power supply (UPS) is strongly recommended to protect your data. +::: + +

Que sont les erreurs de parité ?

+ +%%Parity|parity%% errors happen when the %%parity|parity%% information your system calculates doesn't match what's stored on your %%parity drives|parity-drives%%. This mismatch can arise from several issues, including: + +- Pertes de puissance soudaines ou arrêts non sécurisés +- Lecteurs défaillants ou erreurs de disque +- Problèmes de câbles ou de connexions +- Arrêts non propres ou plantages système inattendus + +When %%parity|parity%% errors occur, either the %%parity drives|parity-drives%% or the data disks could be out of sync. Ideally, a %%parity check|parity-check%% should report zero errors so everything functions correctly. + +

Que faire si vous rencontrez des erreurs de %%parité|parity%%

+ +Si votre %%parity check|parity-check%% révèle des erreurs : + +1. **Investigate the problem:** Start by checking %%SMART reports|smart-report%%, which provide detailed information about your drives' health. Look for any signs of disk or connection problems. +2. **Chercher de l'aide sur nos forums :** Si vous ne pouvez pas résoudre le problème par vous-même, envisagez de demander des conseils sur les forums Unraid. La communauté peut offrir des idées et des suggestions précieuses basées sur leurs expériences. +3. **Effectuez une autre vérification :** Après avoir résolu tout problème matériel, effectuer un autre %%parity check|parity-check%% est une bonne idée pour s'assurer que tout est redevenu normal. + +:::info\[Rebuild Temps + +Remember that %%parity checks|parity-check%% can take several hours, depending on the size of your disks and the activity level of your system. For the best results, schedule these checks during times of low system usage. + +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx new file mode 100644 index 0000000000..5055a1b0de --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx @@ -0,0 +1,38 @@ +Un %%contrôle de lecture|read-check%% est une tâche importante que vous devriez effectuer dans certaines conditions pour garantir la santé de votre matrice de stockage. Ce contrôle est nécessaire **si votre matrice n’a pas de dispositifs de parité assignés** ou **si vous avez plus de disques désactivés que de disques de parité disponibles**. + +Pendant un %%contrôle de lecture|read-check%%, chaque secteur de chaque disque dans la matrice est examiné. L'objectif est de vérifier que toutes les données sont accessibles et d'identifier toute erreur de lecture irrécupérable. + +
+ ![L'historique vous permet de consulter les statistiques de vos opérations de vérification de lecture](/img/History_button.PNG) +
+ +

Pourquoi les vérifications de lecture sont importantes

+ +Les contrôles de lecture sont essentiels pour surveiller la santé de vos disques, notamment dans les configurations sans protection par parité. Si un disque rencontre une erreur de lecture irrécupérable lors du contrôle, les données concernées ne peuvent pas être récupérées, ce qui pourrait entraîner une perte de données. Il est donc crucial de surveiller les résultats de ces contrôles et de prendre des mesures lorsque des erreurs sont signalées. + +Vous pouvez également consulter l'historique des opérations de %%read check|read-check%% dans l'interface Unraid, ce qui vous aide à repérer les tendances ou les problèmes récurrents au fil du temps. + +

Quand utiliser une vérification de lecture

+ +Envisagez d'effectuer une %%read check|read-check%% dans les situations suivantes : + +- **Aucun dispositif de parité assigné :** Lorsque votre tableau manque de protection parative. +- **Vérification de l'intégrité des disques :** Pour confirmer l'intégrité de chaque disque sans apporter de corrections. +- **Après la résolution de problèmes matériels :** Après avoir corrigé des problèmes matériels, pour s'assurer que tous les disques sont en bonne santé. + +

Que faire si des erreurs sont trouvées

+ +Si votre %%read check|read-check%% signale des erreurs, voici quelques étapes à suivre : + +1. **Review SMART reports:** Check the %%SMART reports|smart-report%% for the affected disks to understand their health status. +2. **Vérifiez les connexions :** Assurez-vous que les connexions physiques et les câbles sont sécurisés. +3. **Envisagez des remplacements :** Si un disque montre des erreurs persistantes, envisagez de le remplacer. +4. **Sauvegardez les données critiques :** Déplacez rapidement les données importantes de tous les disques signalant des erreurs pour prévenir la perte de données. + +:::warning +Sans protection paritaire, toute erreur de lecture irrécupérable entraînera une perte de données permanente pour les fichiers ou secteurs concernés. +::: + +:::tip +Pour maintenir la santé de vos disques, il est sage de **programmer des vérifications régulières %%read checks|read-check%%**, surtout si votre tableau n'a pas de protection parité. Cette mesure proactive vous aidera à détecter d'éventuels problèmes tôt et à protéger vos données. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx new file mode 100644 index 0000000000..e0c977d580 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx @@ -0,0 +1,19 @@ +L'opération de **Balance** redistribue les données et les métadonnées à travers votre pool %%BTRFS|btrfs%%. Ce processus aide à libérer de l'espace, résout les problèmes d'allocation et peut corriger les erreurs "espace insuffisant sur le périphérique" même quand de l'espace semble disponible. + +

Quand exécuter Balance

+ +- Lorsque vous rencontrez des erreurs de type « espace insuffisant sur l'appareil » mais que vous avez de l'espace libre. +- Après avoir ajouté ou retiré des disques dans un pool. +- Pour optimiser l'utilisation de l'espace et améliorer les performances. + +

Comment exécuter Balance

+ +1. **Accédez au pool** : Dans le **WebGUI**, cliquez sur le pool dans l'onglet **Principal** et sélectionnez **Balance**. +2. **Ajoutez des paramètres (optionnels)** : Si nécessaire, ajoutez des paramètres pour une utilisation avancée (consultez l'aide d'Unraid pour plus de détails). +3. **Démarrez le processus** : Cliquez sur **Démarrer** pour commencer le processus. + +:::note\[Timing] + +Les opérations de Balance peuvent prendre de quelques minutes à plusieurs heures, selon la taille du pool et la quantité de données. + +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx new file mode 100644 index 0000000000..16f3b6939b --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx @@ -0,0 +1,23 @@ +Lop�30ration de **scrutation** lit toutes les donn�8 es et m�87tadonn�8 es, v�69rifie l�9int�81grit�87 des sommes de contr�64le et r�89pare tous les blocs d�89fectueux �80 l�91aide des copies redondantes disponibles. La scrutation permet d�91identifier et de corriger la corruption silencieuse des donn�1f es, appel�89e "pourriture de bits", avant qu�92elle ne devienne un probl�88 e important. + +

Quand exécuter Scrub

+ +- Dans le cadre de la maintenance régulière (voir le programme recommandé ci-dessous). +- Après des arrêts imprévus ou si vous suspectez une corruption. +- Plus fréquemment sur les pools à utilisation intensive. + +

Programme recommandé

+ +- Pools à utilisation intensive : **Une fois par semaine** +- Tous les autres pools : **Une fois par mois** + +

Comment exécuter Scrub

+ +1. **Accédez au pool** : Dans le **WebGUI**, cliquez sur le pool dans l'onglet **Principal** et sélectionnez **Scrub**. +2. **Démarrez le processus** : Cliquez sur **Démarrer** pour initier le processus. + +:::note\[Timing] + +Les opérations de vérification sont généralement plus rapides qu'une analyse complète du disque car elles ne vérifient que les données allouées. En fonction de la taille et de l'utilisation du pool, cela peut prendre de quelques minutes à quelques heures. + +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx new file mode 100644 index 0000000000..d4af2ceace --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx @@ -0,0 +1,5 @@ +%%BTRFS|btrfs%% offre un support %%RAID|raid%% flexible, des %%checksums|checksum%% pour l'intégrité des données, et une gestion efficace des lecteurs de tailles mixtes dans les pools. Il sert de système de fichiers par défaut pour les %%cache pools|cache-pool%% et prend en charge les configurations à un ou plusieurs dispositifs. + +- **Protection des données :** Supporte %%RAID 0|raid0%%/%%1|raid1%%/%%10|raid10%%/%%5|raid5%%/%%6|raid6%% (notez que %%RAID 5|raid5%%/%%6|raid6%% sont encore expérimentaux). +- **Performance :** Bonne, avec flexibilité pour l'expansion et la contraction. +- **Meilleur pour :** %%Cache pools|cache-pool%%, surtout si vous prévoyez de mélanger des SSD et HDD ou avez besoin d'un moyen facile d'étendre. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx new file mode 100644 index 0000000000..4b925c87a4 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx @@ -0,0 +1,5 @@ +**%%XFS|xfs%%** est le système de fichiers par défaut pour les lecteurs %%array|array%% dans Unraid. Il est connu pour sa robustesse et sa capacité à se remettre des corruptions après des arrêts inopinés ou des plantages. Chaque lecteur formaté avec %%XFS|xfs%% agit comme un système de fichiers autonome, ce qui rend la récupération de données simple sur tout système Linux. + +- **Protection des données :** Pas de redondance intégrée ; s'appuie sur la %%parité|parity%% d'Unraid pour la protection. +- **Performance :** Cohérent et fiable. +- **Meilleur pour :** Disques %%Array|array%%, surtout lorsque la stabilité et la facilité de récupération de données sont des priorités. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx new file mode 100644 index 0000000000..9daae4fa65 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx @@ -0,0 +1,7 @@ +%%ZFS|zfs%% est un système de fichiers moderne qui est fourni avec des fonctionnalités avancées telles que les %%checksums|somme de contrôle%% pour détecter la %%bit rot|corruption de bits%%, des %%snapshots|instantanés%% pour les sauvegardes, et des options de support %%RAID|raid%% natives comme %%RAIDZ1|raidz1%%/%%RAIDZ2|raidz2%%/%%RAIDZ3|raidz3%% et des miroirs. %%ZFS|zfs%% peut être utilisé pour des pools à un seul disque ou à plusieurs disques dans Unraid 6.12 et versions ultérieures. + +- **Protection des données :** Supporte divers niveaux de %%RAID|raid%% pour la redondance. +- **Performance :** Excellent, en particulier pour les pools multi-appareils. +- **Idéal pour :** environnements haute performance, %%virtual machines|machines virtuelles%%, Docker, ou lorsqu'il est nécessaire d'utiliser des fonctionnalités avancées comme les %%snapshots|instantanés%%. + +Pour explorer en profondeur les fonctionnalités, la configuration et les meilleures pratiques de %%ZFS|zfs%%, consultez notre section dédiée sur le [stockage ZFS](../../../advanced-configurations/optimize-storage/zfs-storage.mdx). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx new file mode 100644 index 0000000000..daeb82e246 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx @@ -0,0 +1,10 @@ +Pour vérifier un système de fichiers %%BTRFS|btrfs%% via la ligne de commande : + +- Pour effectuer un %%scrub|scrub%% (qui vérifie et répare de nombreuses erreurs automatiquement), démarrez le %%array|array%% en **mode normal** et exécutez : `btrfs scrub start /mnt/diskX` +- Pour une vérification en lecture seule, démarrez le %%array|array%% en **module de maintenance** et exécutez : `btrfs check --readonly /dev/mdXp1` +- Remplacez `X` par le numéro de disque. +- Pour les disques hors du %%array|array%% : `btrfs check --readonly /dev/sdX1` + +:::warning +Exécuter cette commande sur un disque %%array|array%% en dehors du **module de maintenance** invalidera la %%parity|parité%%. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx new file mode 100644 index 0000000000..18aa76aff3 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx @@ -0,0 +1,12 @@ +Pour vérifier un système de fichiers %%XFS|xfs%% via la ligne de commande : + +- Démarrez le %%array|array%% en **module de maintenance**. +- Exécutez la commande suivante : `xfs_repair -v /dev/mdXp1` +- Remplacez `X` par le numéro de disque (par ex., `/dev/md1p1`). +- Pour %%XFS|xfs%% chiffré, utilisez `/dev/mapper/mdXp1`. +- Pour les disques qui ne sont pas dans l'%%array|array%% : `xfs_repair -v /dev/sdX1` +- Assurez-vous d'utiliser le bon identificateur de périphérique. + +:::warning +Exécuter cette commande sur un disque %%array|array%% en dehors du **module de maintenance** invalidera la %%parity|parité%%. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx new file mode 100644 index 0000000000..b57d7ed53b --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx @@ -0,0 +1,25 @@ +Pour vérifier un système de fichiers %%ZFS|zfs%% via la ligne de commande : + +

Méthode recommandée

+ +%%ZFS|zfs%% utilise **l'analyse**, au lieu des vérifications traditionnelles du système de fichiers comme `fsck`. Un %%scrub|analyse%% examine toutes les données du pool pour vérifier les sommes de contrôle et répare automatiquement toute corruption trouvée sur des configurations redondantes. + +- Démarrez le %%array|array%% en **mode normal** et exécutez : `zpool scrub poolname` + - Remplacez `poolname` par le nom réel de votre pool %%ZFS|zfs%%. + +

Vérifiez l'état du pool

+Pour voir la santé actuelle et tout progrès %%scrub|scrub%% en cours, utilisez la commande : `zpool status -v poolname` + +Cette commande montre des informations détaillées sur la santé du pool, les erreurs éventuelles et la progression du %%scrub|scrub%%. + +

Commandes %%ZFS|zfs%% supplémentaires

+ +- Pour mettre en pause un %%scrub|scrub%% : `zpool scrub -p poolname` +- Pour arrêter un %%scrub|scrub%% : `zpool scrub -s poolname` +- Pour lister tous les pools : `zpool list` + +:::info +%%ZFS|zfs%% ne nécessite pas et ne prend pas en charge les utilitaires `fsck` traditionnels. La nature transactionnelle de %%ZFS|zfs%% signifie qu'il passe atomiquement d'un état cohérent à un autre, ce qui fait du "scrubbing" la méthode préférée pour la vérification de l'intégrité. +::: + +Pour des conseils complets sur les systèmes de fichiers %%ZFS|zfs%%, consultez la section dédiée [ZFS stockage](../../../advanced-configurations/optimize-storage/zfs-storage.mdx). diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx new file mode 100644 index 0000000000..f909a3b888 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx @@ -0,0 +1,14 @@ +- Pour effectuer un %%scrub|scrub%% (qui détecte et répare de nombreuses erreurs automatiquement), démarrez le %%array|array%% en **mode normal** et exécutez : `btrfs scrub start /mnt/diskX`. +- Pour une réparation complète, démarrez le %%array|array%% en **%%Maintenance Mode|mode de maintenance%%** et exécutez : `btrfs check --repair /dev/mdXp1`. Utilisez seulement `--repair` si conseillé par les [forums](https://forums.unraid.net/) ou la documentation, car cela peut parfois entraîner d'autres problèmes. + +:::caution\[Use `--repair` avec prudence + +L'option `--repair` peut parfois entraîner une perte de données ou aggraver la corruption si elle est mal utilisée. Utilisez-la uniquement lorsque : + +- Vous avez consulté les [forums d'Unraid](https://forums.unraid.net/) pour votre erreur spécifique +- Vous avez une sauvegarde récente de vos données +- Vous comprenez les risques encourus + +Pour la plupart des problèmes %%BTRFS|btrfs%%, essayez d'exécuter un `scrub` d'abord (ce qui est plus sûr) ou demandez conseil à un expert avant d'essayer des réparations. + +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx new file mode 100644 index 0000000000..f810517982 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx @@ -0,0 +1,9 @@ +- Démarrez le %%array|array%% en **module de maintenance**. +- Exécutez la commande suivante : `xfs_repair /dev/mdXp1`. Remplacez `X` par le numéro du disque (par ex., `/dev/md1p1`). +- Pour un %%XFS|xfs%% chiffré, utilisez : `/dev/mapper/mdXp1`. +- Si vous êtes invité à utiliser `-L`, relancez la commande ainsi : `xfs_repair -L /dev/mdXp1`. Ceci est généralement sûr et nécessaire pour compléter la réparation. +- Pour les disques qui ne font pas partie de l'%%array|array%% : `xfs_repair /dev/sdX1`. + +:::caution +Exécuter cette commande sur un disque %%array|array%% en dehors du **module de maintenance** invalidera la parité. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx new file mode 100644 index 0000000000..df4405bf47 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx @@ -0,0 +1,18 @@ +Les pools %%ZFS|zfs%% offrent des capacités de vérification intégrée de l'intégrité et de réparation automatique, ce qui élimine souvent le besoin de réparations traditionnelles du système de fichiers. + +

Pour les pools %%ZFS|zfs%%

+ +- **Vérifiez la santé du pool :** Utilisez la commande `zpool status poolname` pour voir l'état de votre pool. +- **Exécuter un nettoyage :** Exécutez `zpool scrub poolname`. Cette commande détecte et répare automatiquement toute corruption. +- **Effacez les erreurs :** Après avoir résolu les problèmes sous-jacents, exécutez `zpool clear poolname` pour vider l'état d'erreur. + +

Pour les disques %%ZFS|zfs%% dans la matrice

+ +- **Vérifiez la santé des ensembles de données :** Utilisez `zfs list -o name,health` pour vérifier la santé de vos ensembles de données. +- **Exécutez un scrub :** Vous pouvez également exécuter `zpool scrub poolname` pour tout disque appartenant à un pool spécifique. + +ZFS identifie et corrige automatiquement la corruption des données lorsque la redondance est disponible, comme dans les configurations en miroir ou %%RAIDZ1%%/%%RAIDZ2%%/%%RAIDZ3%%. Contrairement aux systèmes de fichiers traditionnels, ZFS ne nécessite généralement pas de commandes de réparation manuelles car il surveille en continu l'intégrité des données avec des sommes de contrôle. + +:::tip +Pour une compréhension complète de la gestion %%ZFS|zfs%%, du dépannage et des scénarios de réparation avancée, consultez la page dédiée [ZFS stockage](../../../advanced-configurations/optimize-storage/zfs-storage.mdx) pour des guides détaillés et des bonnes pratiques. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx new file mode 100644 index 0000000000..c5c15ab5a6 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx @@ -0,0 +1,12 @@ +:::info[Common cas d'utilisation] +Déplacer les fichiers vers le %%cache pool|cache-pool%% après maintenance ou après avoir ajouté un nouvel appareil cache pour améliorer les performances. +::: + +Pour déplacer des fichiers du %%array|array%% vers un pool : + +1. **Désactivez les services Docker et %%VM|vm%%** : Allez dans **Paramètres** et désactivez le gestionnaire Docker et %%VM|vm%% pour éviter que des fichiers ouverts n'interfèrent. +2. **Définir le stockage partagé et l'action Mover (array → cache)** : Dans l'onglet **Partages**, pour chaque partage que vous souhaitez déplacer (comme `appdata` ou `system`), définissez **Stockage principal** sur le pool de %%cache|cache-pool%% de destination et **Stockage secondaire** sur l'%%array|array%%. Définissez l'**action Mover** sur **array → cache**. +3. **Exécutez le %%Mover|mover%%** : Allez à l'onglet **Principal** et cliquez sur **Déplacer maintenant** pour commencer à déplacer les fichiers du %%array|array%% vers le %%cache pool|cache-pool%%. +4. **Vérifiez le déplacement** : Après que le %%Mover|mover%% soit terminé, vérifiez que les fichiers sont maintenant sur le %%cache pool|cache-pool%%. +5. **Réactivez les services Docker et %%VM|vm%%** : Une fois le déplacement terminé, réactivez le gestionnaire Docker et %%VM|vm%% dans **Paramètres**. +6. **(Facultatif) Définissez le partage pour utiliser exclusivement le %%cache pool|cache-pool%%** : Si vous souhaitez que tous les fichiers d'un partage restent sur le %%cache pool|cache-pool%%, définissez **Stockage principal** sur votre %%cache pool|cache-pool%% et **Stockage secondaire** sur **Aucun** pour ce partage. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx new file mode 100644 index 0000000000..c27183b741 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx @@ -0,0 +1,8 @@ +1. **Désactivez les services Docker et %%VM|vm%%** comme décrit ci-dessus. +2. Utilisez les commandes `rsync` ou `mv` pour transférer des fichiers entre les points de montage (par exemple, `/mnt/pool1/share` vers `/mnt/pool2/share`). +3. Vérifiez les fichiers avant de les supprimer du pool d'origine. +4. Réactivez les services Docker et %%VM|vm%%. + +:::caution +Vérifiez toujours vos chemins de fichiers et utilisez les noms de partage corrects pour éviter toute perte de données. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx new file mode 100644 index 0000000000..7984ab3c4b --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx @@ -0,0 +1,16 @@ +1. **Désactivez les services Docker et %%VM|vm%%** : Allez dans **Paramètres** et désactivez le gestionnaire Docker et %%VM|vm%% pour éviter les fichiers ouverts. +2. **Déplacez les fichiers de pool1 vers le %%array|array%% (cache → array)** : + - Allez à l'onglet **Partages**. Pour chaque partage actuellement situé sur pool1, définissez le **Stockage principal** sur pool1 et le **Stockage secondaire** sur l'%%array|array%%. + - Définissez **Action du Mover** sur **cache → tableau**. + - Dans l'onglet **Principal**, cliquez sur **Déménager Maintenant** pour exécuter le %%Mover|mover%%. Attendez qu'il termine. +3. **Déplacez les fichiers du %%array|array%% vers pool2 (array → cache) :** + - Dans l'onglet **Partages**, définissez **Stockage principal** sur pool2 et **Stockage secondaire** sur le %%array|array%% pour chaque partage. + - Définissez **Action du Mover** sur **array → cache**. + - Dans l'onglet **Principal**, cliquez à nouveau sur **Déménager Maintenant**. Les fichiers se déplaceront de l'%%array|array%% vers pool2. +4. **Réactivez les services Docker et %%VM|vm%%** (si nécessaire). + +:::note\[Timing] + +Le déplacement de grands ensembles de données peut prendre des heures, selon la taille des fichiers et les vitesses des appareils. + +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx new file mode 100644 index 0000000000..76cee45a40 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx @@ -0,0 +1,11 @@ +:::info[Common cas d'utilisation] +Déplacer des fichiers de la %%cache pool|cache-pool%% vers l'%%array|array%% avant d'effectuer la maintenance ou des mises à niveau pour assurer la sécurité de vos données. +::: + +Pour déplacer des fichiers de votre pool à l'%%array|array%% : + +1. **Désactiver les services Docker et %%VM|vm%%**: Allez dans **Paramètres** et désactivez le gestionnaire Docker et %%VM|vm%%. Cela empêche que des fichiers restent ouverts, permettant ainsi au %%Mover|mover%% de tout transférer en douceur. +2. **Définir le stockage partagé et l'action du Mover (cache → array)**: Dans l'onglet **Partages**, pour chaque partage que vous souhaitez déplacer (comme `appdata` ou `système`), définissez le **Stockage principal** sur le pool de %%cache|cache-pool%% source et le **Stockage secondaire** sur l'%%array|array%%. Définissez l'**action du Mover** sur **cache → array**. +3. **Exécutez %%Mover|mover%%** : Allez à l'onglet **Principal** et cliquez sur **Déplacer maintenant** pour transférer les fichiers du %%cache pool|cache-pool%% vers le %%array|array%%. +4. **Vérifiez le déplacement** : Après que le %%Mover|mover%% ait terminé, vérifiez que les fichiers ont été déplacés en cliquant sur l'icône de dossier à côté de l'entrée cache dans l'onglet **Principal**. +5. **Réactivez les services Docker et %%VM|vm%% :** Une fois tous les fichiers sur le %%array|array%%, vous pouvez rallumer ces services en toute sécurité. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx new file mode 100644 index 0000000000..7c1390e802 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx @@ -0,0 +1 @@ +A %%parity swap|parity-swap%% is a special procedure in Unraid used when you need to replace a data disk with a disk that is larger than your current parity disk. The process moves your current parity disk to the data slot, then installs a new, larger disk as the new parity disk. This ensures your array remains protected and allows for larger data drives in the future. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx new file mode 100644 index 0000000000..b7bc098396 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx @@ -0,0 +1 @@ +Utilisez une %%parity swap|parity-swap%% lorsque votre nouveau lecteur de données est plus grand que votre disque de parité actuel. Cela n'est pas nécessaire si votre nouveau lecteur de données est de la même taille ou plus petit que votre disque de parité. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx new file mode 100644 index 0000000000..fadfe45578 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx @@ -0,0 +1,5 @@ +Lorsque vous configurez une %%cache pool|cache-pool%% avec plus d'un appareil, elle passe en mode **multidispositif**. Voici ce que vous devez savoir : + +- **Protection des données :** Ce mode utilise %%BTRFS|btrfs%% ou %%ZFS|zfs%% pour dupliquer les données entre différents appareils, aidant à protéger vos données mises en cache contre les défaillances des disques. Vous pouvez perdre un appareil sans perdre de données. +- **Mélanger et assortir :** Vous pouvez ajouter ou retirer des appareils de différentes tailles et types, y compris mélanger des SSD et des HDD. +- **Gestion de la capacité :** Utilisez le [calculateur d'utilisation de disque BTRFS](http://carfax.org.uk/btrfs-usage/) pour estimer l'espace dont vous disposerez en fonction du niveau %%RAID|raid%% et des tailles des appareils que vous utilisez. Pour les pools %%ZFS|zfs%%, consultez le [guide de stockage ZFS](../../../advanced-configurations/optimize-storage/zfs-storage.mdx) pour des détails de configuration. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx new file mode 100644 index 0000000000..15473db256 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx @@ -0,0 +1,10 @@ +En **mode appareil unique**, votre %%cache pool|cache-pool%% consiste en un seul appareil. Cela signifie : + +- **Pas de redondance :** Si l'appareil échoue, toutes les données qui y sont stockées et qui n'ont pas été transférées vers votre %%array|array%% seront perdues. +- **Options de système de fichiers :** Vous pouvez utiliser des systèmes de fichiers autres que %%BTRFS|btrfs%%, comme %%XFS|xfs%% ou %%ZFS|zfs%%. + +:::important +If you choose a non-%%BTRFS|btrfs%% or non-%%ZFS|zfs%% file system in single device mode and later decide to add more devices to the pool, you will need to reformat the device as %%BTRFS|btrfs%% or %%ZFS|zfs%% first. That's why %%BTRFS|btrfs%% is the default file system for %%cache pools|cache-pool%%, even when using just one device. Both %%BTRFS|btrfs%% and %%ZFS|zfs%% support adding devices later to create mirrored pools. For more information on file system selection and compatibility, see [File systems](../file-systems.mdx). +::: + +Le mode simple appareil est simple. Vous pouvez facilement ajouter ou retirer l'appareil, mais vous n'aurez pas d'options pour des fonctionnalités avancées comme la redondance ou l'expansion. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx new file mode 100644 index 0000000000..6324dcf459 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx @@ -0,0 +1,76 @@ +La méthode de préservation de la parité vous permet de supprimer un disque de données de votre tableau Unraid sans perdre votre protection de parité. Ce processus nécessite une préparation minutieuse et certaines connaissances techniques et n'est recommandé que pour les utilisateurs avancés. + +

Ce que fait cette méthode

+ +Cette méthode efface efficacement le disque de données que vous souhaitez supprimer, vous permettant de conserver votre parité intacte. Puisqu'un disque rempli de zéros n'affecte pas la parité, votre tableau reste protégé tout au long de la procédure. + +

Quand utiliser cette méthode

+ +Utilisez la méthode %%parity|parity%%-preserve pour retirer un disque de données tout en gardant votre %%parity|parity%% valide en toute sécurité. Cela est particulièrement utile pour éviter une synchronisation complète de %%parity|parity%% après le retrait. Veuillez vous assurer que le disque que vous retirez est sain. + +:::important\[Prerequisites] + +Avant de commencer, assurez-vous de répondre aux conditions suivantes : + +- Cette méthode vous permet de retirer un seul disque à la fois. +- Notez qu'il n'y a aucun support officiel de LimeTech pour ce processus ; veuillez procéder avec prudence. + +::: + +:::warning +Cette méthode effacera toutes les données sur le disque sélectionné. Veuillez vérifier que toutes les données importantes ont été déplacées avant de continuer. +::: + +Pour retirer un disque en utilisant la méthode de préservation de parité : + +1. **Démarrez l'ensemble en mode maintenance :** Cliquez sur le disque que vous souhaitez retirer, puis cliquez sur le bouton **Effacer**. Cela supprimera le système de fichiers de l'appareil tout en maintenant la parité, puis arrêtera l'ensemble. +2. **Démarrez le tableau :** Démarrez le tableau en mode normal ; le disque à effacer ne se montera pas, mais les disques restants seront en ligne pendant le processus. +3. **Enregistrez les affectations de l'array :** Notez vos affectations du tableau, notamment le %%parity drive|parity-drives%%, en tant que mesure de sécurité. +4. **(Facultatif) Activez l'écriture Turbo :** Pour un vidage plus rapide, activez l'écriture reconstructive (« Écriture Turbo ») dans **Paramètres → Paramètres du disque**, mais uniquement si tous les disques sont en bonne santé. +5. **Videz le disque :** Utilisez la méthode d'interface de ligne de commande alternative ci-dessous pour vider manuellement le disque. +6. **Arrêtez le tableau :** Une fois le vidage terminé, arrêtez le tableau. +7. **Réinitialisez la configuration du tableau :** Conservez toutes les affectations actuelles lors de la réinitialisation de la configuration du tableau. +8. **Désaffectez le disque :** Désaffectez le disque que vous souhaitez retirer, en vérifiant doublement toutes les affectations, en particulier le %%parity drive|parity-drives%%. +9. **Confirmez l'état de la parité :** Cochez la case indiquant « La parité est déjà valide ». +10. **Démarrez à nouveau le tableau :** Démarrez le tableau pour terminer le processus de retrait. +11. **(Facultatif) Vérifiez la parité :** Vous pouvez effectuer un %%parity check|parity-check%% correctif par la suite pour assurer l'intégrité de la parité. + +
+ **Méthode alternative de ligne de commande pour vider un disque** + + Si vous êtes à l'aise avec l'utilisation de la ligne de commande Linux, vous pouvez vider manuellement votre disque en suivant les instructions suivantes. Assurez-vous de choisir la commande qui correspond à votre version d'Unraid. + + Comme le vidage d'un disque peut prendre de nombreuses heures, il est recommandé d'utiliser quelque chose comme le [Tmux Terminal Manager TTM plugin](https://forums.unraid.net/topic/183427/plugin-tmux-terminal-manager-ttm/) pour taper les commandes et vous assurer que la session reste active. + + **Pour Unraid 6.12 ou ultérieur :** + + 1. D'abord, démontez le disque : + ```bash + umount /mnt/diskX + ``` + 2. Videz le disque avec la commande suivante : + ```bash + dd bs=1M if=/dev/zero of=/dev/mdXp1 status=progress + ``` + + **Pour Unraid 6.11 et antérieur :** + + 1. Commencez par démonter le disque : + ```bash + umount /mnt/diskX + ``` + 2. Ensuite, utilisez cette commande pour vider le disque : + ```bash + dd bs=1M if=/dev/zero of=/dev/mdX status=progress + ``` + + :::note + N'oubliez pas de remplacer `X` par le numéro spécifique du disque de données que vous retirez. + ::: + + :::caution + Avant d'exécuter ces commandes, vérifiez bien le numéro du disque pour éviter d'effacer par erreur des données sur le mauvais disque. + ::: + + N'hésitez pas à visiter les [forums Unraid](https://forums.unraid.net/). Là-bas, vous pouvez trouver des ressources utiles et le soutien de la communauté. +
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx new file mode 100644 index 0000000000..04b831c09a --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx @@ -0,0 +1,13 @@ +Cette méthode est idéale pour les utilisateurs cherchant un moyen simple de retirer un disque de données. + +1. **Arrêtez l'array :** Commencez par arrêter l'array pour retirer en sécurité le disque. +2. **(Optionnel) Documentez vos attributions de disques :** Envisagez de prendre une capture d'écran de vos attributions de disques actuelles depuis l'onglet Principal. +3. **Réinitialisez la configuration de l'array :** Utilisez la procédure [Réinitialisez la configuration de l'array](#reset-the-array-configuration). Assurez-vous de choisir l'option de préserver toutes les attributions actuelles. +4. **Désaffectez le disque :** Identifiez et désaffectez le disque que vous souhaitez retirer. +5. **Démarrez le tableau :** Après avoir désaffecté le disque, redémarrez le tableau, mais ne cochez pas la case « La parité est valide ». + +Une fois que vous démarrez l'array, une synchronisation %%parity|parity%% s'initiera si vous avez un %%parity disk|parity-drives%% attribué. Gardez à l'esprit que l'array sera vulnérable à la perte de données jusqu'à ce que cette synchronisation soit complétée. + +:::tip +Déplacez toutes les données importantes du disque avant de le supprimer. Le processus de synchronisation de %%parity|parité%% peut prendre plusieurs heures, selon la taille du disque et l'activité du système. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx new file mode 100644 index 0000000000..fbebe92624 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx @@ -0,0 +1,49 @@ +Si vous êtes à l'aise avec la ligne de commande, cette méthode vous donne plus de contrôle et peut être utile si l'option %%WebGUI|web-gui%% n'est pas disponible. Pour plus d'informations sur l'utilisation de l'interface de ligne de commande, voir [Interface en ligne de commande](../../../system-administration/advanced-tools/command-line-interface.mdx). + +:::note[Before au début] +- Assurez-vous que le profil %%RAID|raid%% de votre pool permet le retrait d'appareils ; vous ne pouvez pas retirer un appareil d'une pool %%RAID 1|raid1%% à deux appareils sans la changer d'abord en profil unique. +- Vérifiez que les appareils restants auront suffisamment d'espace pour vos données. +::: + +Pour retirer un disque en utilisant la ligne de commande : + +1. **Ouvrir une session terminale** : Assurez-vous que l'%%array|array%% est en cours d'exécution et ouvrez votre interface de ligne de commande. + +2. **Retirer l'appareil** : Tapez la commande ci-dessous, en remplaçant `X` par la lettre correspondant au disque que vous souhaitez retirer (comme indiqué dans l'onglet Principal) : + + ```bash + btrfs device remove /dev/sdX1 /mnt/cache + ``` + + - Pour les appareils chiffrés, utilisez : `/dev/mapper/sdX1`. + - Pour les appareils NVMe, utilisez : `nvmeXn1p1`. + +3. **Attendre la fin de l'opération** : l'appareil sera retiré une fois que vous verrez le curseur revenir. + +4. **Faire en sorte que Unraid "oublie" le membre supprimé** : + - Arrêtez le %%array|array%%. + - Désassigner tous les appareils de la pool. + - Démarrer l'%%array|array%% (Unraid effacera la configuration de la pool). + - Si des services Docker/%%VM|vm%% utilisent cette pool, désactivez-les avant de démarrer l'%%array|array%% pour éviter que Unraid ne recrée des images ailleurs. + +5. **Réassigner les appareils** : Arrêtez à nouveau l'%%array|array%%, réassignez tous les membres restants de la pool sauf l'appareil retiré, puis redémarrez l'%%array|array%%. + +**Pour retirer plusieurs appareils** : + +Vous pouvez le faire en une seule commande : + +```bash +btrfs device remove /dev/sdX1 /dev/sdY1 /mnt/cache +``` + +Cependant, gardez à l'esprit que le retrait se fera toujours un par un. + +:::note\[Timing] + +Similaire à la méthode %%WebGUI|web-gui%%, retirer des appareils et rééquilibrer peut prendre plusieurs heures selon le volume de données et la vitesse des appareils. + +::: + +:::important +Si vous ne disposez que d'un seul appareil dans le pool, vous devrez convertir le profil %%RAID|raid%% en **single** pour assurer le bon fonctionnement de tout. Pour plus d'instructions, reportez-vous à la section sur [Changer le niveau RAID du Pool en Single](#changing-pool-raid-levels). +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx new file mode 100644 index 0000000000..7b9c265258 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx @@ -0,0 +1,18 @@ +:::note[Before au début] +- Vous ne pouvez supprimer qu'un disque à la fois en utilisant le GUI. +- Assurez-vous que votre pool utilise un profil de %%RAID|raid%% redondant (comme %%RAID 1|raid1%% pour à la fois les données et les métadonnées). +- Pour vérifier le niveau %%RAID|raid%% de votre pool, accédez à l'onglet Principal et cliquez sur le pool. Faites défiler vers le bas jusqu'à la section Statut de l'équilibre (pour %%BTRFS|btrfs%%) ou l'état du pool ZFS (pour %%ZFS|zfs%%). +::: + +Pour retirer un disque en utilisant le %%WebGUI|web-gui%% : + +1. **Arrêter l'%%array|array%%** : Allez dans l'onglet **Principal** et cherchez l'option pour arrêter votre %%array|array%%. +2. **Désassigner le disque de la pool** : Trouvez le disque que vous souhaitez retirer et désassignez-le dans l'onglet **Principal**. +3. **Démarrez le %%array|array%% :** Redémarrez le %%array|array%% pour appliquer les modifications. +4. **Vérifier le retrait** : Cliquez sur le premier appareil de la pool dans l'onglet **Principal**, puis vérifiez **Statut de l'Équilibre** (pour le %%BTRFS|btrfs%%) ou **statut Zpool** (pour le %%ZFS|zfs%%) pour confirmer que l'appareil a été retiré correctement. + +:::note\[Timing] + +Gardez à l'esprit que retirer un disque et rééquilibrer la pool peut prendre plusieurs heures, selon la quantité de données et la vitesse de vos appareils. + +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx new file mode 100644 index 0000000000..cf1d6107d2 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx @@ -0,0 +1,3 @@ +1. Définissez le **Utiliser le Cache** du partage sur *Préféré*. +2. Le **%%Mover|mover%%** fonctionne automatiquement selon votre calendrier pour déplacer les fichiers, et les exécutions manuelles sont facultatives. +3. Après le déplacement des fichiers, vous pouvez changer **Utiliser le Cache** sur *Non* si vous préférez. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx new file mode 100644 index 0000000000..77d1b55925 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx @@ -0,0 +1,3 @@ +1. Dans les paramètres du partage, définissez **Stockage Principal** sur *Cache* et **Stockage Secondaire** sur *Array*. +2. Définissez l'**action du Mover** sur *Array -> Cache*. +3. Le **%%Mover|mover%%** fonctionne automatiquement selon votre calendrier pour déplacer les fichiers, les exécutions manuelles étant une option. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx new file mode 100644 index 0000000000..7d084b7574 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx @@ -0,0 +1,3 @@ +1. Modifiez le paramètre **Utiliser le Cache** du partage sur *Oui*. +2. Le **%%Mover|mover%%** transfère les fichiers automatiquement selon votre programme. Les exécutions manuelles sont facultatives. +3. Après le déplacement des fichiers, vous pouvez changer le paramètre **Utiliser le Cache** sur *Seulement* si vous le souhaitez. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx new file mode 100644 index 0000000000..0a44b114bd --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx @@ -0,0 +1,3 @@ +1. Dans les paramètres du partage, définissez **Stockage Principal** sur *Cache* et **Stockage Secondaire** sur *Array*. +2. Définissez l'**action du Mover** sur *Cache -> Array*. +3. Le **%%Déplaceur|mover%%** fonctionne automatiquement selon votre calendrier pour transférer des fichiers. Les opérations manuelles du %%Déplaceur|mover%% sont possibles mais pas nécessaires. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx new file mode 100644 index 0000000000..71112bbb75 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx @@ -0,0 +1,12 @@ +Unraid utilise le **%%Mover|mover%%** pour gérer le placement des fichiers entre la %%cache|cache%% et le %%array|array%%, contrôlé par le réglage **Utiliser le Cache pour les Nouveaux Fichiers** pour chaque partage : + +- **Oui :** Les nouveaux fichiers vont vers le %%cache|cache%% si l'espace le permet ; sinon, vers le %%array|array%%. %%Mover|mover%% transfère les fichiers du %%cache|cache%% au %%array|array%%. +- **Non :** Les nouveaux fichiers vont directement vers le %%array|array%%. %%Mover|mover%% ne fait rien pour ce partage. +- **Unique :** Les nouveaux fichiers sont écrits uniquement sur le %%cache|cache%%. S'il n'y a pas assez d'espace, l'écriture échoue. %%Mover|mover%% ne déplacera pas les fichiers du %%array|array%% vers le %%cache|cache%%. +- **Préférer :** Les nouveaux fichiers vont vers le %%cache|cache%% s'il y a de l'espace ; sinon, vers le %%array|array%%. %%Mover|mover%% essaie de déplacer les fichiers du %%array|array%% vers le %%cache|cache%% lorsque c'est possible. + +Ce réglage est le défaut pour les partages `appdata` et `system` afin d'améliorer les performances Docker et VM. + +:::note +À partir de la version Unraid 6.9, plusieurs %%pools|cache-pool%% peuvent être créés et utilisés comme %%cache|cache%%. N'importe lequel de ces %%pools|cache-pool%% peut agir comme un %%cache|cache%%, quel que soit leur nom. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx new file mode 100644 index 0000000000..c610ae2628 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx @@ -0,0 +1,23 @@ +Le paramètre **Stockage Principal** détermine où les nouveaux fichiers pour un partage sont initialement écrits—cela peut être le **%%cache|cache%%**, le **%%array|array%%**, ou tout **%%pool|cache-pool%%** nommé. Le paramètre **Stockage Secondaire** spécifie un emplacement alternatif pour les nouveaux fichiers et dossiers si le stockage principal tombe en dessous du seuil de **Espace Libre Minimum**. + +La fonction **%%Mover|mover%%** transfère automatiquement les fichiers entre le stockage principal et secondaire selon votre planning, garantissant des performances optimales et une utilisation du stockage. + +
+ ![Stockage Principal à Stockage Secondaire](/img/primarytosecondarystorage.png) +
+ +:::note +Si vous sélectionnez le %%array|array%% pour le stockage principal ou secondaire, vous devez également configurer sa **%%allocation method|allocation-method%%**, son **%%split level|split-level%%**, et tout **%%included or excluded disks|included-or-excluded-disks%%**. Ces paramètres ne s'appliquent pas aux %%pools|cache-pool%%. +::: + +**Menu déroulant du stockage principal :** + +- Ce paramètre est requis pour chaque partage. +- Vous devez sélectionner un dispositif de stockage principal ou %%pool|cache-pool%% (par défaut **Cache**). +- Vous pouvez choisir tout %%pool|cache-pool%% nommé ou l'%%array|array%%. + +**Menu déroulant du stockage secondaire :** + +- **Aucun :** Aucun stockage secondaire n'est défini pour le partage (optionnel). +- Si le stockage principal est un %%pool|cache-pool%%, **Aucun**, **Array**, et **Autre pool** sont disponibles. +- Si le stockage principal est le **Array**, **Aucun** et tout %%pools|cache-pool%% éligible sont disponibles. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx new file mode 100644 index 0000000000..bf1f635325 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx @@ -0,0 +1,18 @@ +**Message :** +`Trop d'appareils connectés. Veuillez envisager de mettre à niveau votre clé d'enregistrement.` + +![Erreur de limite de dispositif](/img/Toomanydevices.png) + +Les règles pour la connexion de stockage s'appliquent uniquement avant le démarrage de l'array. Une fois l'array démarrée, vous pouvez ajouter plus de stockage, y compris des lecteurs USB pour les machines virtuelles. Cependant, sachez que Unraid limite actuellement le nombre de périphériques de stockage connectés à la [**licence de départ**](https://unraid.net/pricing) +(limite de 6 appareils). + +:::tip +Le maximum s'applique à tous les dispositifs sauf au USB de démarrage. +::: + +Pour résoudre cette erreur : + +1. Arrêtez l'ensemble. +2. Retirez tous les dispositifs de stockage non nécessaires. +3. Démarrez l'ensemble. +4. Rebranchez les dispositifs par la suite pour l'utilisation des **Dispositifs non assignés**. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx new file mode 100644 index 0000000000..8a97ca318d --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx @@ -0,0 +1,6 @@ +**Message :** +`Impossible de contacter le serveur de clés` + +Si vous avez une licence d'essai, vous verrez un message indiquant que vous devez contacter le serveur de licences Unraid pour démarrer votre array. Cependant, si vous avez une licence payée, vous pouvez démarrer l'array sans étapes supplémentaires. + +Pour les utilisateurs en essai, votre serveur tente de se connecter au serveur de clés de licence pour vérifier votre licence lors du premier démarrage. S'il ne peut pas se connecter dans les 30 secondes, l'array ne démarrera pas. Mais ne vous inquiétez pas ! À chaque actualisation ou navigation sur le %%WebGUI|interface web%%, il essaiera à nouveau de valider rapidement votre licence. Une fois validée avec succès, votre serveur n'aura plus besoin de vérifier à nouveau sauf en cas de redémarrage. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx new file mode 100644 index 0000000000..11f8b0fec6 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx @@ -0,0 +1,23 @@ +**Message:** +`Clé d'enregistrement invalide ou manquante.` + +![Clé manquante](/img/Invalidormissingkey.png) + +Une clé d'enregistrement valide est requise pour démarrer le tableau. Pour acheter ou obtenir une clé d'essai : + +1. Allez à ***Tools → Registration***. +2. Cliquez sur **Obtenir une clé d'essai** ou **Acheter une clé**. +3. Installez la clé en retournant à **Registration**, collez-la dans le champ, et cliquez sur le bouton **Installer la clé**. + +:::note[Trial vs. Licences Payées] +- **Licence d'Essai :** Accès complet au système Unraid pendant 30 jours, comme les niveaux de licence supérieurs. Vous pouvez utiliser un nombre illimité de dispositifs de stockage, mais vous aurez besoin d'une connexion Internet pour le démarrer. [Commencez un nouvel essai ici.](https://unraid.net/getting-started) +- **Licence payée :** C'est la vôtre pour toujours ! Cependant, il y a des limites au nombre d'appareils selon le plan que vous choisissez (**Starter**, **Unleashed**, ou **Lifetime**). Après l'avoir activée, vous n'avez plus besoin de vous connecter à Internet. +::: + +:::tip +Si vous voyez une erreur de "clé invalide", cela pourrait signifier que votre essai a **expiré**. Pour continuer à utiliser Unraid, vous pouvez [acheter une licence ici](https://unraid.net/pricing). +::: + +:::caution[Blacklisted Périphériques USB flash] +Si votre serveur est en ligne et que votre essai n'est pas terminé, il se peut que votre clé USB ait un %%GUID|guid%% qui ne peut pas enregistrer une clé. Cela peut se produire si le %%GUID|guid%% n'est pas unique ou a déjà été enregistré par quelqu'un d'autre. L'utilisation d'un lecteur de carte SD via USB peut également causer ce problème car il a souvent un %%GUID|guid%% générique. Si votre clé USB est **sur liste noire**, elle ne peut plus être utilisée, et vous devrez trouver un autre appareil pour l'installation de votre système d'exploitation Unraid Server. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx new file mode 100644 index 0000000000..1371214876 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx @@ -0,0 +1,10 @@ +**Message :** +`Trop de disques manquants et/ou incorrects !` + +![Erreur de parité unique](/img/Toomanywrong.png) + +Avec **un %%parity drive|parity-drives%%**, vous ne pouvez avoir qu'un seul disque manquant. Avec deux %%parity drives|parity-drives%%, **deux** disques peuvent être manquants et vous pouvez quand même démarrer l'array, et ainsi de suite. La parité aide jusqu'à ce que vous puissiez remplacer le disque manquant. + +**Que faire :** +Remplacez le disque manquant. Pour les configurations en double parité, remplacez les disques manquants un par un. +Si vous ne pouvez pas récupérer les données (ou si plus de 2 disques échouent dans une configuration à double parité), allez à ***Outils → Nouvelle Config*** pour effectuer la procédure Nouvelle Config. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx new file mode 100644 index 0000000000..a26910272c --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx @@ -0,0 +1,11 @@ +**Message :** `Cette version d'Unraid a été retirée.` + +Si vous voyez ce message, cela signifie que vous utilisez une version beta ou candidate d'Unraid qui n'est pas activée pour une utilisation régulière. + +Pour résoudre cela : + +1. Ouvrez Unraid. +2. Allez à ***Tools → Mettre à jour le système***. +3. Installez la dernière version stable. + +Une fois la mise à jour terminée, redémarrez votre serveur pour démarrer votre ensemble. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx new file mode 100644 index 0000000000..1cb3020397 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx @@ -0,0 +1,613 @@ +--- +sidebar_position: 1 +sidebar_label: Partages +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import SharesPrimaryStorage612 from './partials/shares-primary-storage-612.mdx'; +import SharesPrimaryStorage611 from './partials/shares-primary-storage-611.mdx'; +import SharesCacheToArray612 from './partials/shares-cache-to-array-612.mdx'; +import SharesCacheToArray611 from './partials/shares-cache-to-array-611.mdx'; +import SharesArrayToCache612 from './partials/shares-array-to-cache-612.mdx'; +import SharesArrayToCache611 from './partials/shares-array-to-cache-611.mdx'; + +# Partages + +Une caractéristique clé d'Unraid est la gestion des partages. Les partages sont des dossiers ou des disques sur votre serveur Unraid qui peuvent être accessibles via un réseau. Vous pouvez créer autant de partages que vous le souhaitez sur votre serveur Unraid. Ces partages peuvent être sécurisés, et leur configuration détermine comment les données sont écrites et distribuées dans votre %%array|array%% ou dans le %%pool|cache-pool%% nommé de disques. + +Unraid propose deux types de partages pour optimiser la gestion de vos données : + +- [**Partages utilisateurs**](#user-shares) : Ceux-ci utilisent **Linux FUSE** et représentent des dossiers dans le système de fichiers plus global. +- [**Partages de disques**](#disk-shares) : Ceux-ci partagent le disque entier en utilisant le [système de fichiers](./file-systems.mdx) du disque. + +
+ ![Partages Utilisateurs vs Partages de Disques](/img/usersharesvsdiskshares.png) +
+ +Il est important de se rappeler que les deux types de partages présentent des vues différentes du même système de fichiers sous-jacent ; tout fichier ou dossier visible dans un %%user share|user-share%% apparaîtra également sous le partage de disque pour son disque physique respectif. + +Lorsque vous démarrez des services comme Docker ou le gestionnaire de machines virtuelles, Unraid crée automatiquement un [ensemble de partages utilisateur par défaut](#default-shares) conçus pour prendre en charge les plugins courants, les conteneurs Docker et les **machines virtuelles (VMs)**. Vous pouvez facilement créer des partages supplémentaires pour vos données personnelles selon vos besoins. + +:::note +To manage your shares, simply navigate to the **Shares** tab in the WebGUI. Here, you can easily enable or disable shares through ***Settings → Global Share Settings***. By default, %%user shares|user-share%% are enabled, providing a straightforward starting point for your file organization. +::: + +--- + +## Partages utilisateurs + +%%User shares|user-share%% provide an aggregated view of top-level folders with the same name across **%%cache|cache%%** and **array drives**. The share name corresponds to the folder name, creating a unified network-accessible view that spans multiple drives. It's important to note that while directories appear merged, individual files remain stored on a single drive. + +### Gestion des partages utilisateurs + +Vous pouvez accéder et gérer les %%partages utilisateurs|user-share%% depuis l'onglet **Partages** dans le **WebGUI**. Cette interface vous permet de: + +- Examiner tous les partages existants +- Créer de nouveaux partages +- Modifier ou supprimer des partages existants + +Tout dossier de niveau supérieur créé manuellement sur un disque est automatiquement reconnu comme un partage utilisateur et se voit attribuer des attributs par défaut. + +### Structure du système de fichiers + +At the Linux level, %%User shares|user-share%% are accessible under `/mnt/user`, which combines files from both the %%array|array%% and %%pools|cache-pool%%. This logical view overlays the physical file system, meaning files are also visible through **Disk Shares** at the drive level. + +:::warning +Le point de montage obsolète `/mnt/user0` (qui exclut les fichiers de %%pool|cache-pool%%) pourrait être supprimé dans les futures versions d'Unraid. +::: + +### Allocation de stockage + +The physical drive that stores a file is determined by share settings such as **%%Allocation Method|allocation-method%%**, **%%Included/Excluded Disks|included-or-excluded-disks%%**, and **%%Split Level|split-level%%**. Changes to these settings will affect only new files; existing files will remain untouched unless moved manually. + +:::caution\[Critical] + +**Ne mélangez pas les Partages Utilisateurs et les Partages Disques** + +Ne copiez ou ne déplacez jamais de fichiers directement entre un **user share** et un **disk share** (par exemple, entre `/mnt/user/share` et `/mnt/disk1/share`) - surtout si les noms de dossier sont les mêmes. Cela peut entraîner une corruption de fichiers ou une perte de données permanente. + +Pour des pratiques de gestion des fichiers sécurisées et plus de détails, voir les [lignes directrices sur les Partages de Disques](#disk-share-guidelines) ci-dessous. + +::: + +### Ajouter un partage + +Avant de créer un partage, réfléchissez à comment vous allez l'utiliser, vos besoins en performances, la sécurité, et où les fichiers doivent être stockés. + +Pour ajouter un partage : + +1. **Démarrer le processus :** Allez à l'onglet **Shares** et cliquez sur **Ajouter un partage**. + +2. **Choisir un nom de partage :** Choisissez un nom unique pour votre partage, comme `Média` ou `Documents`. + +:::important[Share nom] +Même si les partages réseau (%%SMB|samba%%) ne se préoccupent pas des majuscules (par exemple, `MEDIA` est le même que `media`), les systèmes de fichiers Linux le font. Évitez d'utiliser des noms identiques ne différant que par la casse pour prévenir les problèmes. +::: + +3. **Paramètres optionnels :** + - **Commentaires :** Écrivez une courte description pour identifier votre partage (par ex., "Photos de famille"). + - **Espace minimum libre :** Décidez d'une quantité minimale d'espace libre (par exemple, `50GB` pour les gros fichiers). (Pour plus de détails, voir [espace minimum libre](#minimum-free-space)) + +4. **Sélectionnez les emplacements de stockage :** + + - **Stockage principal :** Choisissez où le partage sera initialement stocké (par ex., **%%cache|cache%%**, **%%array|array%%**, ou un %%pool|cache-pool%% spécifique). + - **Stockage secondaire :** Définissez un emplacement de débordement qui peut être utilisé lorsque le stockage principal est plein, servant également comme destination finale pour le mouvement par le %%Mover|mover%%. + + (Pour plus de détails, voir [Stockage principal et secondaire](#primary-and-secondary-storage).) + +5. **Définir les règles de données :** + - **%%allocation-method%% :** Choisissez comment les données seront stockées - les options comprennent high-water, remplir, ou le plus libre. (Pour plus de détails, voir [Méthode d'allocation](#allocation-method).) + - **%%Split Level|split-level%%:** Determine how folders should be organized. (For more details, see [Split level](#split-level).) + +6. **Gérer les disques :** + + - **Disques inclus :** Choisissez des disques spécifiques à inclure (par ex., `disk1,disk2`). + - **Disques exclus :** Spécifiez tout disque que vous souhaitez exclure (comme les disques anciens). + + (Pour plus de détails, voir [Disques inclus ou exclus](#included-or-excluded-disks).) + +:::tip +Vous pouvez configurer soit **Disques inclus** soit **Disques exclus**, mais pas les deux en même temps. +::: + +7. **Paramètres du Mover (si nécessaire)** + + - **Action du Mover :** Décider de la direction du mouvement des données (soit *Principal → Secondaire* soit *Secondaire → Principal*). + + (Pour plus de détails, voir [Déplacement des fichiers entre le cache et l'array](#moving-files-between-cache-and-array).) + +8. **Terminer le processus :** Cliquez sur **Ajouter un partage** pour terminer la configuration de votre nouveau partage. + +:::important +Par défaut, un nouveau partage ne sera pas partagé sur le réseau. Vous devez configurer [l'accès réseau](../../system-administration/secure-your-server/security-fundamentals.mdx#managing-network-visibility-of-shares) après la création du partage. +::: + +### Supprimer un partage + +:::important +Pour éviter toute perte de données potentielle, les partages contenant des données ne peuvent pas être supprimés. Par conséquent, vous devez d'abord supprimer ou déplacer tout le contenu à l'intérieur du partage. Vérifiez toujours deux fois pour vous assurer que le partage est vide avant de procéder à sa suppression pour un processus sécurisé. +::: + +**Partages contenant des données** + +Pour les partages contenant des données : + +1. **Vider d'abord le partage :** + - Utilisez le gestionnaire de fichiers intégré accessible via les raccourcis système (***Outils → Gestionnaire de Fichiers***) ou cliquez sur l'icône ![Gestionnaire de Fichiers](/img/filemanager.png) en haut à droite. + - Trouvez votre partage dans **Shares** et cliquez sur l'icône **Parcourir**. + - Supprimez ou déplacez tous les fichiers à l'aide du gestionnaire de fichiers. + +
+ Utilisation de la ligne de commande (Avancé) + + 1. **Ouvrir le terminal :** Utilisez le **Terminal Web** (***Outils → Terminal***) ou connectez-vous via %%SSH|ssh%%. + + 2. **Supprimer les fichiers :** + Exécutez cette commande, en remplaçant `[share_name]` par le nom de votre partage : + + ``` + rm -rf /mnt/user/[share_name]/* + ``` + + 3. **Supprimer le partage :** Suivez les étapes pour supprimer un partage vide ci-dessus. + + :::caution + - La commande `rm -rf` supprimera définitivement les fichiers. Vérifiez bien avant de l'utiliser. + - Assurez-vous qu'aucun service Docker ou VM n'utilise le partage avant de le supprimer. + ::: +
+ +:::note[Alternative Méthode] +Si vous pouvez accéder au partage via le réseau : + +- Utilisez **l'Explorateur Windows** (%%SMB|samba%%) ou **le Finder de macOS** (%%AFP|AFP%%/%%SMB|samba%%) pour vous connecter au partage. +- Supprimez manuellement les fichiers, puis retirez le partage via le **WebGUI**. +::: + +2. **Supprimer le partage :** + - Retournez à **Shares** et cliquez sur le partage désormais vide. + - Cochez la case **Supprimer** et cliquez sur **Supprimer**. + - Confirmez et cliquez sur **Fait**. + +#### Suppression d'un partage vide + +1. Allez dans l'onglet **Partages**. +2. Cliquez sur le partage que vous souhaitez supprimer. +3. Cochez la case à côté de **Supprimer**. Le bouton deviendra **Supprimer**. +4. Cliquez sur **Supprimer**. +5. Confirmez la suppression et cliquez sur **Fait**. + +--- + +## Paramètres du partage + +### Espace libre minimal + +The **Minimum Free Space** setting works in conjunction with the **%%allocation method|allocation-method%%** and **%%split level|split-level%%** to determine where new files are stored. This setting specifies the amount of free space that must remain on a drive for it to be considered eligible for new file writes. If a drive’s free space falls below this threshold, Unraid will stop placing new data on that drive, provided that the **%%split level|split-level%%** permits splitting to another disk. + +
+ Comment ça fonctionne - Cliquer pour développer/réduire + + Lors du transfert d'un fichier (par exemple, `fichier.eg`), Unraid sélectionne un disque en fonction des paramètres disponibles mais ne peut pas prédire la taille finale du fichier. Si le disque choisi est plein pendant le transfert, l'opération échouera avec une erreur "disque plein". Pour éviter cela, définissez l'espace libre minimum (**Minimum Free Space**) sur une valeur supérieure à votre plus grand fichier. Cela garantit qu'Unraid évite les disques ne pouvant pas accueillir l'ensemble du fichier. +
+ +

Recommandations

+ +Définissez cette valeur à **deux fois la taille de votre plus gros fichier**. Par exemple : + +- Si votre plus grand fichier est de 8 Go, alors définissez l'Espace Libre Minimum à 16 Go. + +Ce tampon tient compte des variations de taille de fichier et aide à prévenir les échecs de transfert. + +

Configuration

+ +- Entrez la valeur en Ko, Mo, Go, ou To (par ex., `50GB`). +- Les nouveaux %%user shares|user-share%% par défaut à 10% de la capacité totale du disque. + +:::warning +Configurez toujours **Espace libre minimum** lors de l'utilisation de la méthode d'%%allocation|allocation-method%% *remplissage*. Si vous ne le définissez pas, vous risquez de rencontrer des erreurs du type "espace disque plein" lors des opérations d'écriture. +::: + +:::caution +Il existe un paramètre **Espace libre minimum** distinct pour les **%%cache pools|cache-pool%%**. Vous pouvez y accéder en allant sur l'onglet **Principal** et en cliquant sur un %%pool|cache-pool%%. Assurez-vous de définir cette valeur plus élevée que votre fichier le plus grand pour éviter tout débordement, en particulier pour les partages configurés avec les modes de cache *Oui* ou *Préférer*. +::: + +

Limitations

+ +- Unraid prioritizes **%%split level|split-level%%** rules over free space settings. If splitting is not allowed, files may still fill up a disk regardless of the free space threshold. +- La mise à jour des fichiers existants (par exemple, lors de l'expansion des fichiers de sauvegarde) ne déclenche pas de redistribution, ce qui peut conduire à des erreurs "disque plein" au fil du temps. + +Pour des recommandations plus détaillées, utilisez l'icône **Aide** dans le **WebGUI** lors de la configuration de vos partages. + +--- + +## Stockage principal et secondaire + +La gestion du stockage par Unraid vous permet de contrôler où les nouveaux fichiers sont écrits et comment les données se déplacent entre les %%pools|cache-pool%%, le %%cache|cache%% et le %%array|array%%. Les options et la terminologie diffèrent entre Unraid 6.12+ et les versions antérieures. + + + + + + + + + + + +--- + +### Déplacement des fichiers entre cache et array + +Unraid provides a straightforward way to manage file placement between **%%cache pools|cache-pool%%** and the **%%array|array%%**, allowing you to optimize performance and manage your data effectively. The key is to set up your share settings based on your preferred data flow and let the **%%Mover|mover%%** handle file transfers automatically according to its schedule. + +:::tip[Scheduling le Mover] +You can configure the [**%%Mover|mover%%** schedule](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#scheduler) by going to **Settings → Scheduler → Mover Settings**. Running it automatically during off-peak hours helps move files between the %%cache|cache%% and %%array|array%% without requiring manual action. +::: + +#### Cache vers array + +*Cas d'utilisation :* Déplacer des fichiers de votre %%cache|cache%% à haute vitesse vers l'%%array|array%% pour un stockage à long terme. + + + + + + + + + + + +#### Array vers cache + +*Cas d'utilisation :* Améliorer les performances des conteneurs Docker et des VM en déplaçant les fichiers vers le %%cache|cache%%. + + + + + + + + + + + +:::tip[Enabling Activation de la journalisation du Mover pour le dépannage] +Si vous rencontrez des problèmes avec le déplacement de fichiers, vous pouvez activer le **journal des déplacements** via la page ***Paramètres → Planificateur → Paramètres des déplacements***. Cela enregistre chaque fichier déplacé et peut être consulté dans ***Outils → Journal Système***. +::: + +:::caution[Critical Étapes pour les deux directions] +- Assurez-vous que votre %%parity|parité%% est valide avant de déplacer des fichiers de l'%%array|array%% vers le %%cache|cache%%. +- Si vous traitez de grands jeux de données, suivez l'activité du %%Mover|mover%% via les journaux. +- Si les fichiers semblent "bloqués", envisagez de désactiver temporairement Docker et le Gestionnaire de VM, puis d'exécuter le %%Mover|mover%% manuellement via ***Principal → Opérations de l'Array → Déplacer***. +::: + +--- + +### Méthode d'allocation + +Lorsque vous créez un nouveau partage utilisateur ou ajoutez un fichier ou un dossier à l'intérieur, le système doit décider où stocker ces données. En général, il choisira le disque de données qui a le plus d'espace libre disponible. Cependant, vous pouvez ajuster la façon dont cette décision est prise à l'aide de certains paramètres. + +Il existe trois options simples que vous pouvez sélectionner pour déterminer comment le système alloue le stockage pour votre partage utilisateur : + + + +

Comment ça fonctionne

+ + La méthode **Moitié pleine (High-water)** remplit progressivement les disques en utilisant des "points de basculement" basés sur la moitié de la capacité du plus grand disque. Cela équilibre l'utilisation des disques tout en gardant les fichiers connexes ensemble et limite le démarrage des disques. + +

Exemple avec des disques de 8 To, 3 To et 2 To

+ + 1. **Premier passage :** Remplir le disque de 8 To jusqu'à ce qu'il reste 4 To libre (la moitié de 8 To). + 2. **Deuxième passage :** Remplir les disques de 8 To/3 To jusqu'à ce qu'il reste 2 To libre. + 3. **Troisième passage :** Remplir tous les disques jusqu'à ce qu'il reste 1 To libre. + +

Meilleur pour :

+ + - Serveurs multimédias (par exemple, Plex) + - Scénarios où maintenir des fichiers sur moins de disques améliore l'efficacité de l'arrêt des disques + - Arrays avec des tailles de disques mixtes + + :::note + La méthode Moitié pleine est la méthode par défaut et fonctionne bien pour la plupart des utilisateurs. Elle réduit le brassage des disques comparé à "Le plus libre". + ::: +
+ + +

Comment ça fonctionne

+ + La méthode **Le plus libre (Most-free)** sélectionne le disque ayant le plus d'espace libre pour chaque nouveau fichier. Cela maximise l'efficacité du stockage mais augmente le brassage des disques. + +

Impact sur les performances

+ + - Des commutateurs fréquents de disques gardent plusieurs disques allumés + - Peut réduire la vitesse d'écriture de la %%parité|parity%% en raison des opérations qui se chevauchent + +

Meilleur pour :

+ + - Flux de travail à haut débit (par exemple, montage vidéo) + - Temporary or %%cache|cache%%-like data + - Arrays où la performance est plus importante que les économies d'énergie + + :::tip + Combine with **%%split level|split-level%%** settings to group related files despite frequent disk switching. + ::: +
+ + +

Comment ça fonctionne

+ + La méthode **Fill-up** écrit sur les disques dans l'ordre numérique jusqu'à ce qu'ils atteignent le seuil de l'**Espace Libre Minimum**, puis passe au disque suivant. + +

Exigences

+ + - Toujours définir **Espace Libre Minimum** (par exemple, 2x la taille de fichier la plus grande) + - Configurer **Niveau de Fractionnement** pour contrôler le regroupement des fichiers + +

Meilleur pour :

+ + - Archives de données statiques + - Utilisateurs préférant une gestion manuelle des disques + - Arrays de disques de tailles identiques + + :::caution + Sans espace libre minimum (**Minimum Free Space**) configuré, des erreurs "disque plein" se produiront lorsqu'un disque est près de sa capacité. + ::: +
+
+ +--- + +### Niveau de découpe + +The **Split Level** setting in Unraid helps manage how files and folders are organized across multiple disks. It determines how deep folder structures can go on different disks while keeping certain files together. The %%split level|split-level%% is numbered starting from 1, where the top level (the main share) is considered level 1. + + + +

Comportement

+ + Unraid crée les dossiers requis sur le disque sélectionné, quel que soit la profondeur du dossier. Les nouveaux fichiers et dossiers sont placés en fonction de la méthode d'allocation (%%allocation method|allocation-method%%) et de l'espace disponible, même si leurs répertoires parents n'existent pas déjà sur ce disque. + +

Cas d'utilisation

+ + Idéal pour les partages de données générales où la structure des dossiers n'est pas critique, comme les téléchargements ou les bibliothèques multimédia mixtes. Cela permet une flexibilité maximale pour le placement des fichiers et l'utilisation des disques. +
+ + +

Comportement

+ + Unraid ne créera que des sous-dossiers de premier niveau sur un disque s'ils n'existent pas déjà. Pour les dossiers plus profonds, de nouveaux fichiers et dossiers sont placés sur le disque où le répertoire parent existe. + +

Cas d'utilisation

+ + Idéal pour les bibliothèques multimédia (par ex., Films/Titre) où vous souhaitez que tous les fichiers pour un sous-dossier spécifique (comme un film ou une série) restent ensemble sur le même disque. +
+ + +

Comportement

+ + Vous spécifiez combien de niveaux de répertoire (N) Unraid gérera automatiquement. Pour les dossiers au niveau N ou au-dessus, Unraid peut les créer selon les besoins. Pour les niveaux plus profonds, de nouveaux fichiers sont placés sur le disque où le répertoire parent existe. + +

Cas d'utilisation

+ + Utile pour des structures de dossiers complexes, telles que des répertoires de projets imbriqués, où vous souhaitez regrouper le contenu lié au-delà du niveau supérieur. +
+ + +

Comportement

+ + Unraid ne place que les nouveaux fichiers ou dossiers sur les disques où le répertoire parent existe déjà. Aucun nouveau répertoire n'est créé automatiquement. + +

Cas d'utilisation

+ + Idéal pour les utilisateurs avancés qui souhaitent un contrôle manuel total sur le placement des fichiers, ou pour les données d'archives où la structure des dossiers doit rester fixe. +
+
+ +:::important +S'il y a des conflits entre **Espace Minimum Libre**, **Niveau de Division**, et **%%allocation-method%%**, le paramètre **Niveau de Division** prend la priorité. Cela peut entraîner des erreurs « espace insuffisant », même si d'autres disques ont de l'espace disponible. +::: + +--- + +### Disques inclus ou exclus + +Ces paramètres vous aident à gérer quels disques peuvent contenir des fichiers pour votre partage. Vous pouvez soit inclure des disques spécifiques soit en exclure certains - mais ne faites pas les deux en même temps ! Si vous ne choisissez aucun disque spécifique, tous les disques autorisés dans ***Paramètres → Paramètres Globaux de Partage*** seront utilisés. + +Unraid first checks any included disks, then looks at excluded disks to determine where to store a file. After that, it uses the %%split level|split-level%% and %%allocation method|allocation-method%% to select an appropriate disk. + +
+ ![Logiciel de sélection de disques](/img/diskselectionlogic.png) +
+ +:::important +The settings for %%included and excluded disks|included-or-excluded-disks%% only affect where new files can be saved. Any existing files in folders that match your share name will still be accessible for reading, even if they’re on a different disk. +::: + + + +

Comportement

+ + Unraid ne prendra en compte que les disques listés lorsqu'il décide où placer de nouveaux fichiers pour le partage. Tous les autres disques sont ignorés pour les nouvelles écritures, mais les fichiers déjà présents sur d'autres disques restent accessibles en lecture. + +

Cas d'utilisation

+ + Utilisez ce paramètre si vous souhaitez restreindre un partage à certains disques, comme conserver des documents importants sur des disques plus récents ou de plus grande capacité, ou isoler une bibliothèque multimédia à des disques spécifiques pour des raisons de performances ou d'organisation. +
+ + +

Comportement

+ + Unraid utilisera tous les disques éligibles sauf ceux listés ici lors du placement de nouveaux fichiers pour le partage. Comme avec les disques inclus, les fichiers déjà présents sur les disques exclus restent accessibles en lecture. + +

Cas d'utilisation

+ + Utilisez ce paramètre pour empêcher un partage d'utiliser certains disques, tels que l'exclusion de disques plus anciens, de disques plus lents, ou de disques réservés à d'autres types de données. +
+
+ +--- + +### Partages par défaut + +Lorsque vous utilisez Unraid avec **Docker** ou des **Machines Virtuelles (VMs)**, il crée automatiquement certains partages par défaut. + +:::important +Ces partages ne sont créés qu'après avoir démarré leurs services respectifs (Docker ou Gestionnaire de VM). Si vous ne voyez pas ces partages, assurez-vous que Docker et/ou le Gestionnaire de VM sont activés et fonctionnent. +::: + +Vous n'êtes pas obligé d'utiliser ces partages si vous ne le souhaitez pas, et vous pouvez les supprimer si vous le préférez, mais nous recommandons généralement de les conserver pour plus de commodité. Ces partages aident à garder les choses organisées et à faciliter le support pour tous en cas de problème. + +Voici un aperçu rapide de la fonction de chaque partage par défaut : + +- `appdata`: C'est là que tous les fichiers de travail pour vos conteneurs Docker sont stockés. Chaque conteneur Docker a généralement son propre dossier ici. +- `system` : Ce partage contient les fichiers essentiels pour vos applications Docker et les modèles XML pour vos VMs. +- `domains` : Ce partage est désigné pour le stockage des images de disques virtuels (vdisks) utilisées par vos VMs. +- `isos` : C’est ici que vous pouvez enregistrer les images ISO de CD que vous souhaitez utiliser avec vos VMs. + +:::important +Il est préférable de ne pas modifier les permissions sur la plupart de ces partages par défaut car cela pourrait causer des problèmes avec le fonctionnement des conteneurs Docker et des VMs. Le seul partage pour lequel il est recommandé de modifier les permissions est le partage `isos`, car celui-ci peut être accessible via le réseau pour ajouter de nouveaux fichiers ISO pour les machines virtuelles. +::: + +--- + +## Partages de disques + +Les partages de disque sont simplement des lecteurs individuels ou des %%pools|cache-pool%% de disques au sein de votre système Unraid qui peuvent être accessibles via le réseau. Par défaut, ces partages sont désactivés, mais vous pouvez facilement les activer dans la section ***Paramètres → Paramètres Globaux de Partage***. + +Pour garantir la sécurité, assurez-vous de définir [les permissions d'accès utilisateur](../../system-administration/secure-your-server/user-management.mdx) pour ces partages de manière appropriée. Cela est particulièrement important si vous avez plusieurs utilisateurs accédant à votre réseau. + +Pour activer les partages de disques : + +1. Navigatez vers **Paramètres**. +2. Cliquez sur **Paramètres Globaux de Partage**. +3. Activez les partages de disques pour les rendre visibles dans votre réseau. + +Une fois activés, vous remarquerez les partages de disque dans l'interface graphique d'Unraid sous une section intitulée **Partages de Disque** dans l'onglet **Partages**. Chaque lecteur de votre %%array|array%% peut être accessible de cette manière : + +- **Lecteurs individuels :** Ils apparaissent sous la forme `/mnt/diskX` où X est le numéro du disque (par exemple, `disk1`, `disk2`, etc.). +- **Pools de lecteurs :** Si vous avez plusieurs lecteurs groupés ensemble, ils apparaîtront sous `/mnt/nom-du-pool`. Les %%pools|cache-pool%% les plus courants sont appelés `cache`, mais vous pouvez nommer vos %%pools|cache-pool%% comme vous le souhaitez. + +:::important +Le périphérique flash Unraid, qui stocke vos paramètres Unraid, n'est pas traité comme un partage de disque. Si vous souhaitez qu'il soit accessible sur le réseau, vous pouvez le configurer comme un partage nommé 'flash'. Ce périphérique est monté sur `/boot` sous Linux. + +Pour des raisons de sécurité, il est préférable de garder vos partages en mode *Privé* et de ne donner accès qu'aux utilisateurs de confiance. +::: + +### Directives de partage de disque + +:::danger[Important Rappel] +**Ne copiez jamais des fichiers directement entre un partage utilisateur et un partage de disque** si leurs noms de dossier sont identiques. Cela pourrait entraîner une corruption ou une suppression des fichiers, entraînant une perte de données permanente. +::: + +Les **user shares** et les **disk shares** peuvent sembler différents dans l'interface mais peuvent pointer vers les mêmes fichiers sur le disque. Les commandes Linux comme `cp` ou `rsync` ne peuvent pas toujours faire la différence, ce qui peut entraîner l'écrasement ou la suppression accidentelle des fichiers. + +**Conseils pour une copie sécurisée** + +1. **Adoptez un seul type de partage :** + - Copiez seulement des fichiers entre les %%user shares|user-share%% OU les partages de disque, pas les deux en même temps. + - *Exemple :* Pour copier un fichier d'un partage utilisateur à un autre : `cp /mnt/user/share1/file /mnt/user/share2/file` + +2. **Utilisez les lecteurs externes en toute sécurité :** + - Connectez les disques externes en utilisant le **[plugin Unassigned Devices](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon)** pour éviter les problèmes. + - Copiez les fichiers depuis `/mnt/disks/` plutôt que depuis les chemins principaux du %%array|array%% ou %%cache|cache%%. + +3. **Vérifiez vos copies :** lors du déplacement de fichiers localement, vous pouvez utiliser `rsync -c` pour vérifier que les fichiers ont bien été copiés. + +4. **Ne mélangez pas les types de partage :** Évitez d'utiliser des chemins qui mélangent les %%user shares|user-share%% et les partages de disque, tels que `/mnt/user/share/` avec `/mnt/disk1/share/` dans la même commande. + +--- + +## Transfert de fichiers depuis un partage réseau + +Il existe plusieurs outils que vous pouvez utiliser pour copier des fichiers depuis un partage Windows ou Linux vers votre serveur Unraid. Pour rester simple et fiable, commencez par l'outil de gestion de fichiers intégré d'Unraid avant d'explorer des options tierces. + +### Utilisation de Midnight Commander (intégré) + +Unraid inclut **Midnight Commander** (`mc`), un gestionnaire de fichiers basé sur du texte et à double fenêtre. Vous pouvez y accéder via le [terminal Web](../../system-administration/advanced-tools/command-line-interface.mdx). + +1. **Ouvrez le terminal web :** vous trouverez cette option dans le menu en haut à droite du %%WebGUI|web-gui%% Unraid. +2. **Lancez Midnight Commander :** + + ```bash + mc + ``` + + Cette interface propose une navigation par glisser-déposer entre les partages locaux et les chemins réseau montés. +3. **Montez un partage réseau** (s'il n'est pas déjà monté) : + + ```bash + mkdir /work + mount -t cifs //workstation/share /work -o username=youruser,password=yourpassword,iocharset=utf8 + ``` + + - Remplacez `workstation`, `share` et `youruser` par les valeurs appropriées. + - L'option `iocharset=utf8` aide à maintenir les noms de fichiers internationaux. +4. **Utilisez les volets de MC** pour transférer des fichiers entre `/work` (le partage réseau) et n'importe quel partage `/mnt/user/` ou `/mnt/diskX`. +5. **Nettoyez après :** + + ```bash + umount /work + rmdir /work + ``` + +Midnight Commander fonctionne entièrement dans le système intégré, nécessitant aucune installation supplémentaire. Il convient à la plupart des besoins de transfert, y compris ceux impliquant des noms de fichiers Unicode, et il préserve les attributs de fichier lorsque la source et la destination les prennent en charge. + +### Utilisation de Krusader + +Si vous préférez une interface utilisateur graphique, vous pouvez utiliser des conteneurs Docker tels que [Krusader](https://unraid.net/community/apps?q=krusader#r:~:text=batch%20renaming%2C%20etc.-,Krusader,-Productivity%2C%20Tools) comme solution tierce. + +1. **Installez Krusader :** + - Naviguez jusqu'à l'onglet **Apps** (Applications Communautaires). + - Recherchez et installez le conteneur Docker **Krusader**. +2. **Lancez Krusader :** démarrez le conteneur et accédez à son WebUI à partir de l'onglet **Docker**. +3. **Connectez-vous aux partages distants** dans Krusader, et utilisez le glisser-déposer ou le copier-coller pour transférer des fichiers entre le partage réseau et votre %%array|array%% Unraid. + +:::info +D'autres conteneurs de gestion de fichiers populaires incluent [**Double Commander**](https://unraid.net/community/apps?q=double+commander#r:~:text=of%201%20App-,doublecommander,-Tools%20/%20Utilities%2C) et [**CloudCommander**](https://unraid.net/community/apps?q=cloudcommander#r:~:text=of%201%20App-,CloudCommander,-Tools%20/%20Utilities%2C), tous deux disponibles via les Applications Communautaires. +::: + +### Méthodes en ligne de commande + +Pour les utilisateurs avancés ou ceux utilisant l'automatisation, vous pouvez également utiliser des méthodes de transfert en ligne de commande. + +
+ Cliquer pour déplier les instructions en ligne de commande + + 1. **Ouvrez le terminal** (Terminal Web ou %%SSH|ssh%% en tant que `root`). + + 2. **Créez et montez un partage réseau :** + + ```bash + mkdir /work + mount -t cifs //workstation/share /work -o username=youruser,password=yourpassword,iocharset=utf8 + ``` + + 3. **Copiez les fichiers :** + - Vous pouvez utiliser `cp` : + + ```bash + cp -r /work/* /mnt/disk1 + ``` + + - Ou, utilisez `rsync` pour un suivi détaillé : + + ```bash + rsync -av --progress /work/ /mnt/disk1/ + ``` + + 4. **Démontez et supprimez le répertoire temporaire :** + + ```bash + umount /work + rmdir /work + ``` +
+ +:::caution +Lors du transfert de fichiers avec des caractères spéciaux ou internationaux, montez toujours le partage avec l'option `iocharset=utf8`. Ne pas le faire peut entraîner des noms de fichiers incorrects ou des fichiers illisibles sur d'autres plateformes. + +De plus, si vous copiez des fichiers en tant que `root` via le terminal, ils peuvent avoir des permissions restrictives. Si cela se produit, utilisez l'outil **Nouvelles permissions** dans le menu **Outils** du WebGUI ou **Docker Safe New Perms** si vous traitez avec des partages impliquant Docker pour réinitialiser les permissions, garantissant que tous les utilisateurs ont accès au réseau. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json new file mode 100644 index 0000000000..3cbcc7b39b --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Exécuter des conteneurs Docker", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx new file mode 100644 index 0000000000..a021ffc5ae --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx @@ -0,0 +1,144 @@ +--- +sidebar_position: 2 +sidebar_label: Applications Communautaires +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CommunityAppsInstalling from './partials/community-apps-installing.mdx'; +import CommunityAppsRemoving from './partials/community-apps-removing.mdx'; +import CommunityAppsReinstalling from './partials/community-apps-reinstalling.mdx'; + +# Applications Communautaires + +Les applications communautaires fournissent un catalogue organisé de plus de 2 000 conteneurs Docker gratuits et plugins maintenus par la communauté Unraid. Chaque conteneur ou plugin permet à votre serveur d'assumer de nouveaux rôles, tels que l'exécution d'un serveur multimédia, d'un client DNS dynamique ou d'une solution de sauvegarde. + +- Les **conteneurs Docker** sont des packages légers qui incluent tout ce qui est nécessaire pour exécuter une application, la gardant isolée du reste de votre %%array|array%% et de votre %%cache pool|cache-pool%%. En savoir plus sur la [configuration des arrays](../manage-storage/array-configuration.mdx) et les [pools de cache](../manage-storage/cache-pools.mdx). +- Les **plugins** améliorent des propres Unraid OS. Pour plus d'informations sur les plugins, visitez la page des [Plugins](../customize-your-experience/plugins.mdx). + +:::caution +Lime Technology ne fournit ni ne supporte directement les applications communautaires. L'équipe des applications communautaires assure une vérification et une modération basiques, mais il est important de consulter la documentation et les ressources de support pour chaque application avant l'installation. +::: + +## Comment fonctionne Community Applications + +Le plugin des applications communautaires ajoute un onglet **Applications** au %%WebGUI|web-gui%% d'Unraid, offrant une interface semblable à une boutique d'applications. Vous pouvez parcourir, rechercher et filtrer les applications par catégorie ou mot-clé. Chaque liste indique clairement s'il s'agit d'un conteneur Docker ou d'un plugin. + +Les listes incluent des étiquettes telles que : + +- **Bêta :** L'application est en développement actif et peut comporter des bugs. +- **Installé :** L'application est actuellement installée sur votre serveur. +- **Mis à jour :** Une nouvelle version est disponible. +- **Spotlight CA Mensuel :** Mis en avant par l'équipe de modération pour sa qualité ou popularité. + +En cliquant sur une application, vous accédez à plus de détails, des liens de support et des options d'installation. + +--- + +## Installation du plugin + +Pour installer le plugin Community Applications : + +1. Ouvrez le %%WebGUI|web-gui%% et allez à l'onglet **Plugins**. +2. Cliquez sur **Installer**. + +
+ ![Installation de Community Applications](/img/ca_installation.png) +
+ +3. Une fois l'installation terminée, actualisez la page. L'écran ouvrira automatiquement l'onglet **Applications** et vous présentera les applications communautaires. + +:::tip +Avant d'installer, envisagez de sauvegarder votre clé USB pour protéger votre configuration. Consultez [Sécurisez votre clé USB](../../system-administration/secure-your-server/secure-your-flash-drive.mdx) pour obtenir des conseils de sauvegarde. +::: + +--- + +## Gérer les applications + + + + + + + + + + + + + + + +## Support pour les applications + +Si vous utilisez des conteneurs Docker et des plugins, vous constaterez que la plupart sont accompagnés de ressources de support dédiées pour vous aider. Il existe plusieurs moyens simples d'accéder à ces options de support : + +- **Onglet Applications** : Cliquez sur l'onglet **Applications**, puis filtrez sur **Applications installées**. De là, localisez l'application et sélectionnez **Support**. + +- **Tableau de bord ou onglets Docker** : Naviguez vers les onglets **Tableau de bord** ou **Docker**, cliquez sur l'icône du conteneur que vous utilisez, et sélectionnez **Support**. + +- **Onglet Plugins** : Dans l'onglet **Plugins**, chaque plugin aura un lien **Fil de support** directement dans son résumé pour un accès rapide. + +:::tip[Support préférences] +En accédant aux options de support, recherchez ces options déroulantes : + +- **Discord** : Si disponible, Discord est généralement le lieu de support préféré des mainteneurs au lieu du forum. +- **Projet** : Les questions sur l'application elle-même sont mieux traitées via les canaux officiels du projet. +::: + +Ces ressources vous connecteront aux forums communautaires et aux discussions entre développeurs où vous pourrez obtenir de l'aide, résoudre des problèmes et rester informé. + +--- + +## Mise à jour des applications (Action Center) + +Le **Centre d'Action** est situé dans l'onglet **Apps** dans le %%WebGUI|web-gui%% et sert de hub central pour gérer l'état des applications. Il fournit des informations sur : + +- **Mises à jour disponibles** : Applications ayant des versions plus récentes prêtes à être installées +- **Applications obsolètes** : Applications qui ne sont plus maintenues ou recommandées +- **Applications incompatibles** : Applications qui peuvent ne pas fonctionner avec votre version actuelle d'Unraid +- **Applications sur liste noire** : Applications qui ont été retirées du catalogue pour des raisons de sécurité ou de compatibilité + +Lorsque vous accédez au Centre d'Action, vous voyez des alertes pour les applications nécessitant une attention. Pour mettre à jour une application, cliquez sur Actions pour l'application qui doit être mise à jour, puis sélectionnez **Mise à jour** pour exécuter le script de mise à jour. Les mises à jour régulières sont essentielles pour maintenir la sécurité, la stabilité et la compatibilité de votre installation Unraid. Voir [Mise à niveau d'Unraid](../../system-administration/maintain-and-update/upgrading-unraid.mdx) pour plus d'informations. + +--- + +## Contribuer vos propres applications + +L'écosystème **Applications Communautaires** prospère grâce aux contributions de la communauté Unraid. Que vous développiez des applications ou des plugins, votre travail peut aider les autres à améliorer leurs serveurs Unraid. Vous trouverez ci-dessous des directives pour soumettre vos créations, basées sur les [politiques officielles](https://forums.unraid.net/topic/87144-ca-application-policies-notes/). + +### Exigences de soumission + +Pour garantir la qualité et la maintenabilité, toutes les soumissions doivent : + +- Inclure un fil de support dédié sur les [forums Unraid](https://forums.unraid.net/). +- Fournir une documentation claire pour l'installation, la configuration et le dépannage. +- Utiliser une licence open-source à moins que l'application ne nécessite des composants propriétaires. +- Évitez les conflits avec les fonctionnalités de base d'Unraid ou les applications communautaires existantes. + +Les soumissions sont examinées par l'équipe de modération des Community Applications qui effectue une vérification de base pour la sécurité, la fonctionnalité et le respect des principes de conception d'Unraid. + +### Attentes en matière de maintenance + +Les développeurs qui publient des applications dans les Applications Communautaires sont censés maintenir leurs projets pour assurer la compatibilité et la fiabilité pour la communauté Unraid. Cette section décrit les responsabilités continues qui aident à maintenir la qualité des applications disponibles. + +Une fois publiés, les développeurs doivent : + +- Mettre à jour régulièrement les applications pour maintenir la compatibilité avec les nouvelles versions d'Unraid. +- Répondre aux demandes de support dans leurs fils de discussion du forum. +- Étiqueter clairement les versions bêta ou expérimentales. +- Notifier l'équipe de modération en cas d'abandon de support pour une application. + +:::note +L'équipe de modération se réserve le droit de supprimer les applications devenues incompatibles avec les versions actuelles d'Unraid ou manquant de support continu. Pour les mises à jour de sécurité urgentes, ils peuvent temporairement prendre en charge la maintenance des projets abandonnés. +::: + +### Workflow de publication + +Si vous êtes un développeur intéressé par la contribution à la communauté Unraid en publiant votre application, ce workflow garantit un contrôle qualité et fournit aux utilisateurs des applications fiables et bien documentées. + +1. Préparez les fichiers de modèle de votre application et la documentation. +2. Créez un fil de support sur les [forums Unraid](https://forums.unraid.net/). +3. Soumettez votre candidature via le [formulaire de soumission des applications communautaires](https://form.asana.com/?k=qtIUrf5ydiXvXzPI57BiJw\&d=714739274360802). +4. L'équipe de modération examine généralement les soumissions sous 48 heures. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx new file mode 100644 index 0000000000..3d2380d2ce --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx @@ -0,0 +1,230 @@ +--- +sidebar_position: 3 +sidebar_label: Gestion et personnalisation des conteneurs +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import DockerNetworkType from './partials/managing-and-customizing-containers/network-type.mdx'; +import DockerVolumeMappings from './partials/managing-and-customizing-containers/volume-mappings.mdx'; +import DockerPortMappings from './partials/managing-and-customizing-containers/port-mappings.mdx'; +import DockerEnvironmentVariables from './partials/managing-and-customizing-containers/environment-variables.mdx'; +import DockerCommandStart from './partials/managing-and-customizing-containers/command-start.mdx'; +import DockerCommandStop from './partials/managing-and-customizing-containers/command-stop.mdx'; +import DockerCommandRestart from './partials/managing-and-customizing-containers/command-restart.mdx'; +import DockerCommandStatus from './partials/managing-and-customizing-containers/command-status.mdx'; +import DockerCommandLogs from './partials/managing-and-customizing-containers/command-logs.mdx'; + +# Gestion et personnalisation des conteneurs + +:::caution\[Disclaimer] + +Cette page est rédigée pour aider les utilisateurs de tous niveaux à tirer le meilleur parti des conteneurs Docker sur Unraid OS. Les astuces et bonnes pratiques proviennent de l'équipe Unraid, qui veille à ce qu'elles soient adaptées aux besoins de la plupart des utilisateurs. Cependant, gardez à l'esprit que Docker évolue constamment, donc pour obtenir les fonctionnalités les plus à jour, les configurations avancées, ou résoudre des problèmes qui vont au-delà de la couverture d'Unraid, il est toujours bon de consulter la [documentation officielle de Docker](https://docs.docker.com/). + +::: + +Avant de personnaliser un conteneur Docker dans Unraid, il est utile de comprendre les options de configuration de base. Chaque [modèle de conteneur](./community-applications.mdx) fournit une interface conviviale pour configurer le réseau, le stockage et les variables d'environnement, vous permettant d'adapter le comportement du conteneur à vos besoins sans utiliser d'outils complexes en ligne de commande. + + + + + + + + + + + + + + + + + + + +## Création et démarrage des conteneurs + +Une fois que vous avez configuré le réseau de votre conteneur, les mappages de volumes, les mappages de ports et les variables d'environnement, vous êtes prêt à créer et à lancer votre conteneur Docker. Cette section vous guidera à travers le processus de création, expliquera comment gérer l'ordre de démarrage et les dépendances, et fournira des astuces pour une personnalisation avancée du démarrage. + +### Création d'un conteneur + +Après avoir examiné vos paramètres de configuration dans le modèle de conteneur : + +1. Cliquez sur **Créer** pour commencer à télécharger et configurer le conteneur. + - Évitez de fermer votre fenêtre de navigateur ou de naviguer ailleurs jusqu'à ce que le processus soit terminé. + - Le téléchargement initial pour un nouveau dépôt peut prendre plus de temps que les téléchargements ultérieurs. +2. Une fois le processus terminé, cliquez sur **Terminé** pour revenir à la page Docker, où vous pourrez gérer ou ajouter d'autres conteneurs. + +### Planification de votre séquence de démarrage + +Certains conteneurs dépendent d'autres pour fonctionner correctement. Par exemple, une application pourrait nécessiter qu'un conteneur de base de données soit en cours d'exécution en premier, ou un service pourrait exiger qu'un conteneur [%%VPN|vpn-tunnel%%](../../system-administration/secure-your-server/tailscale.mdx) soit actif avant son lancement. + +:::important[Plan votre démarrage] +- Identifiez les conteneurs qui fournissent des services essentiels (comme les bases de données, les %%VPNs|vpn-tunnel%% ou les passerelles de stockage). +- Assurez-vous que les conteneurs dépendants ne sont démarrés qu'après que leurs prérequis aient été lancés et prêts. +- Consultez la documentation pour chaque conteneur afin de comprendre les exigences spécifiques de démarrage. +::: + +--- + +## Démarrage avancé des conteneurs + +Unraid vous donne un contrôle flexible sur les conteneurs qui démarrent automatiquement et dans quel ordre. C'est particulièrement utile si vous avez des conteneurs qui dépendent d'autres (comme une base de données ou un service %%VPN|vpn-tunnel%%). + +Pour garantir qu'un conteneur démarre automatiquement au démarrage de l'%%array|array%% : + +1. Allez dans l'onglet **Docker** dans le %%WebGUI|web-gui%%. +2. Basculez l'interrupteur **Démarrage automatique** sur **ON** pour chaque conteneur que vous voulez lancer automatiquement. + +### Personnaliser l'ordre et les délais de démarrage + +Par défaut, Unraid démarre tous les conteneurs à démarrage automatique aussi rapidement que possible, dans l'ordre où ils apparaissent sur l'onglet Docker. Vous pouvez personnaliser cet ordre et ajouter des temps d'attente entre les démarrages des conteneurs : + +1. Sur l'onglet **Docker**, déverrouillez la liste des conteneurs en utilisant l'icône de cadenas. +2. Faites glisser et déposez les conteneurs pour réorganiser leur ordre. +3. Passez à la **Vue avancée** en utilisant le bouton bascule en haut à droite. +4. Dans la colonne **AutoStart**, entrez un temps d'attente (en secondes) dans le champ **attente** pour tout conteneur nécessitant un supplément de temps avant que le suivant ne démarre. + - Utilisez l'essai et l'erreur pour déterminer les meilleurs temps d'attente pour votre configuration. + +:::tip +Définir l'ordre correct et les temps d'attente est particulièrement important pour les conteneurs qui dépendent de services fournis par d'autres (par exemple, démarrer une base de données avant une application qui l'utilise, ou un %%VPN|vpn-tunnel%% avant des applications dépendantes). +::: + +### Tester votre séquence de démarrage + +Bien qu'Unraid ne possède pas de fonctionnalité dédiée de "test de séquence de démarrage", vous pouvez simuler et vérifier votre ordre de démarrage : + +1. Arrêtez tous les conteneurs depuis l'onglet **Docker**. +2. Démarrez chaque conteneur manuellement, dans cet ordre planifié, en utilisant le bouton **Démarrer**. +3. Surveillez les journaux des conteneurs et le comportement des applications pour vous assurer que les dépendances sont satisfaites et que les services se lancent comme prévu. +4. Ajustez l'ordre de démarrage ou les temps d'attente si nécessaire. + +:::important +Testez votre séquence de démarrage après avoir modifié les dépendances de conteneurs ou ajouté de nouveaux services, surtout si votre configuration repose sur un timing de démarrage spécifique. +::: + +--- + +## Contrôler vos conteneurs + +Une fois que vous avez créé et démarré votre conteneur Docker, sa gestion est facile grâce au %%WebGUI|web-gui%%. Ce guide vous expliquera comment utiliser le menu contextuel, comprendre les indicateurs de santé du conteneur et accéder aux mappages de volumes à l'intérieur de votre conteneur. + +Pour accéder au menu contextuel du conteneur, allez dans l'onglet **Docker** ou **Tableau de Bord** et cliquez sur l'icône du conteneur que vous souhaitez gérer. Ce menu offre un accès direct aux actions courantes : + +
+ ![Docker Guide - Controlling](/img/Dockerguide-controlling.png) +
+ +| Option | Description | +| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| **WebUI** | Ouvre l'interface web du conteneur dans un nouvel onglet du navigateur (si disponible). | +| **Console** | Ouvre une interface en ligne de commande pour interagir directement avec le conteneur. | +| **Arrêter** | Arrête le conteneur en cours d'exécution. | +| **Pause** | Met le conteneur en pause, arrêtant temporairement tous les processus. | +| **Redémarrer** | Redémarre le conteneur, appliquant les modifications de configuration. | +| **Journaux** | Affiche la sortie des journaux du conteneur pour le dépannage. | +| **Modifier** | Changez les paramètres du conteneur, tels que les mappages de port ou de volume. Les modifications s'appliquent immédiatement après enregistrement. | +| **Supprimer** | Supprime le conteneur. Vous pouvez choisir de supprimer uniquement le conteneur ou aussi supprimer son image. | +| **Page du projet** | Ouvre la page du projet du conteneur pour la documentation et le support. | +| **Support** | Fournit l'accès aux ressources de support et à l'aide pour le conteneur. | +| **Plus d'info** | Affiche des informations supplémentaires sur le conteneur et sa configuration. | + +### Indicateur de santé + +Vous trouverez un indicateur de santé coloré à côté de l'icône de chaque conteneur : + +- 🟢 **Sain** : Indique que le conteneur fonctionne et répond comme prévu. +- 🟡 **Non sain** : Le conteneur est en cours d'exécution mais a échoué à son contrôle de santé. Consultez les journaux ou les paramètres du conteneur pour plus d'informations. +- ⚪ **Pas de contrôle de santé** : Cela signifie qu'aucun contrôle de santé n'est configuré pour le conteneur. C'est fréquent pour de nombreuses applications, et pas forcément un problème. + +:::note +Les contrôles de santé sont définis par l'auteur du conteneur et peuvent ne pas être présents pour toutes les images. +::: + +--- + +## Mappages de volumes à l'intérieur d'un conteneur + +Lors de la configuration de votre application via son interface web, référencez le **chemin du conteneur** que vous avez configuré lors de la configuration - pas le chemin hôte. + +Par exemple, si vous avez mappé `/mnt/user/media` sur l'hôte à `/unraid_media` dans le conteneur, vous devez utiliser `/unraid_media` dans les paramètres de l'application. + +

Scénarios d'exemple

+ +Voici des exemples montrant des configurations de mappages de chemins couramment nécessaires lors de la configuration de conteneurs Docker. Ils démontrent comment traduire entre les chemins du système de fichiers hôte d'Unraid et les chemins internes du conteneur, vous aidant à configurer correctement les applications. + +- **Serveur multimédia :**\n Chemin de l'hôte : `/mnt/user/media`\nChemin du conteneur : `/unraid_media` + + Dans l'application, définissez l'emplacement de votre bibliothèque multimédia sur `/unraid_media`. + +- **Stockage d'appdata :**\n Chemin de l'hôte : `/mnt/user/appdata/myapp`\nChemin du conteneur : `/config` + + Dans l'application, utilisez `/config` pour le stockage des configurations. + +- **Multiple %%user shares|user-share%%:** + Host path: `/mnt/user/media` → Container path: `/media`\ + Host path: `/mnt/user/data` → Container path: `/data` + + Référencez `/media` ou `/data` dans l'application selon les besoins. + +:::important[Best pratique] +Utilisez toujours le [mode d'accès](../manage-storage/shares.mdx) le plus restrictif (lecture seule ou lecture/écriture) qui permet à votre conteneur de fonctionner correctement. +::: + +--- + +## Planifier le démarrage et l'arrêt + +Unraid ne supporte pas nativement les actions planifiées de démarrage ou d'arrêt pour les **conteneurs Docker**, mais vous pouvez facilement automatiser ce processus en utilisant le [plugin **User Scripts**](../customize-your-experience/plugins.mdx). Cet outil puissant vous permet d'exécuter des scripts personnalisés selon un planning, permettant un contrôle automatique de vos conteneurs. + +### Plugin User Scripts + +Le plugin **User Scripts** vous permet de créer, gérer et planifier des scripts shell personnalisés directement depuis le %%WebGUI|web-gui%%. Vous pouvez l'utiliser pour diverses tâches d'automatisation, comme démarrer ou arrêter des conteneurs, sauvegarder des données ou exécuter des routines de maintenance. + +- Installez le plugin depuis l'onglet **Apps** si vous ne l'avez pas encore fait. +- Accédez-y via ***Paramètres → User Scripts*** pour créer et gérer vos scripts. + +Pour en savoir plus sur les plugins, consultez [Plugins](../customize-your-experience/plugins.mdx). + +### Planification des actions des conteneurs + +Pour automatiser le démarrage ou l'arrêt de vos conteneurs selon un planning : + +1. Installez le **plugin User Scripts** depuis l'onglet **Apps**. +2. Accédez à ***Paramètres → User Scripts***. +3. Créez un nouveau script pour chaque planning unique. Vous pouvez inclure des commandes pour plusieurs conteneurs dans un seul script s'ils partagent le même planning. +4. Définissez le planning à l'aide du menu déroulant ou utilisez une expression `cron` personnalisée pour des options de chronométrage plus avancées. +5. Cliquez sur **Appliquer** pour enregistrer et activer votre script. + +:::tip +Les expressions Cron permettent une planification flexible au-delà des options intégrées. Par exemple, `0 3 * * 1` exécute votre script à 3h00 tous les lundis. +::: + +### Exemples de commandes + + + + + + + + + + + + + + + + + + + + + + + +:::tip +Vous pouvez trouver le nom du conteneur dans l'onglet Docker ou en visualisant la commande `docker run` sur l'écran de configuration du conteneur. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx new file mode 100644 index 0000000000..39f2dbe92d --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx @@ -0,0 +1,48 @@ +--- +sidebar_position: 1 +sidebar_label: Aperçu +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Aperçu + +Docker vous permet d'exécuter des applications Linux dans des environnements isolés connus sous le nom de « conteneurs ». Sur Unraid, Docker est la méthode idéale pour déployer et gérer une grande variété d'applications sans se soucier de la compatibilité ou des conflits système. Cette approche transforme votre serveur Unraid en un serveur d'%%application|application-server%% flexible, vous permettant d'exécuter directement sur votre système des applications populaires comme **Plex**, **Home Assistant**, et de nombreuses autres. + +Si vous souhaitez en savoir plus sur la technologie de base de Docker ou explorer des utilisations avancées, consultez la [documentation officielle de Docker](https://docs.docker.com/). + +## Comment Unraid utilise Docker + +L'intégration Docker d'Unraid est conçue pour être conviviale pour tout le monde. Chaque application fonctionne dans son propre conteneur, garantissant que les mises à jour ou les modifications n'affectent pas votre système d'exploitation Unraid ni d'autres applications. Unraid utilise un partage `appdata` dédié pour stocker les paramètres et fichiers de travail de chaque conteneur. Cela garde vos données d'application organisées et rend les sauvegardes et les migrations simples. + +
+ **Sous le capot :** Développer pour en savoir plus sur l'implémentation des containers Docker dans Unraid + + Unraid utilise Docker pour créer des environnements distincts permettant d'exécuter des applications basées sur Linux. Chaque conteneur Docker fonctionne indépendamment du système d'exploitation Unraid et des autres conteneurs, ce qui améliore à la fois la stabilité et la compatibilité. + +

Détails de l'implémentation

+ + - **Storage:** All the data and programs for each container are stored in a single %%virtual disk image|virtual-disk-images%% file called `docker.img`. By default, this file is found in the `system` %%user share|user-share%%, which usually utilizes the %%cache pool|cache-pool%% for better speed. + - **Système de fichiers :** Le fichier `docker.img` utilise le système de fichiers %%BTRFS|btrfs%% et est monté en interne par Unraid. Pour plus d'informations sur les systèmes de fichiers, voir [Systèmes de fichiers](../manage-storage/file-systems.mdx). + - **Configuration :** Lorsque vous configurez un conteneur, Unraid sauvegarde votre configuration comme un modèle %%VM XML|vm-xml-templates%% sur le lecteur flash. Cela facilite la réinstallation ou la restauration des conteneurs avec vos paramètres préférés. + - **Modèles :** De nombreux containers populaires sont fournis avec des modèles prêts à l'emploi, simplifiant ainsi la configuration initiale. + - **Performance :** Il est conseillé de stocker `docker.img` sur le %%cache pool|cache-pool%% (si vous en disposez d'un) pour obtenir les meilleures performances. + - **Limitations :** Unraid ne prend pas nativement en charge Docker Compose. Pour les configurations plus complexes, consultez la [documentation officielle de Docker Compose](https://docs.docker.com/compose/). + + :::tip + La plupart des utilisateurs n'auront pas besoin d'interagir directement avec le fichier `docker.img`. Cependant, connaître son rôle peut être utile pour le dépannage ou la compréhension des messages de journal. + ::: +
+ +## Applications Communautaires (Plugin) + +Le plugin Applications Communautaires est le moyen le plus simple et le plus populaire pour découvrir, installer et gérer à la fois les conteneurs Docker et les plugins sur votre serveur Unraid. Il offre une expérience de type magasin d'applications directement dans le WebGUI d'Unraid, rendant la navigation et le déploiement d'une large gamme d'applications maintenues par la communauté simples. + +Pour un guide complet sur l'installation et l'utilisation du plugin Applications Communautaires, y compris les fonctionnalités avancées et le dépannage, consultez [Applications Communautaires](./community-applications.mdx). + +:::note[Notes et Support] +- La plupart des containers dans Applications Communautaires sont maintenus par les communautés plus larges d'Unraid et de Docker. +- Pour obtenir de l'aide sur un container spécifique, consultez sa documentation ou son fil de support lié dans l'onglet **Apps**. +- Lime Technology fournit un support pour le sous-système Docker lui-même mais ne prend pas en charge les containers communautaires individuels. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx new file mode 100644 index 0000000000..2aad26fd44 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx @@ -0,0 +1,17 @@ +Pour installer un conteneur ou un plugin Docker, cliquez simplement sur le bouton **Installer** depuis le carreau de l'application ou le panneau d'information situé dans l'onglet **Applications** du %%WebGUI|web-gui%%. Cela démarrera le processus d'installation. + +
+
+ ![Installer l'application](/img/CA_Tile1.png) +
+ +
+ ![Exemple de vignette d'application](/img/CA_Tile3.png) +
+
+ +Gardez la fenêtre d'installation ouverte jusqu'à la fin complète du processus. + +:::tip[Security conseil] +Avant de procéder à l'installation, prenez un moment pour lire la description de l'application. Vérifiez la réputation du développeur et assurez-vous que le dépôt source est fiable. Il est préférable de choisir des applications de développeurs bien connus ou ayant des fils de support actifs. Soyez toujours prudent en accordant l’accès à votre %%array|array%%, %%cache pool|cache-pool%% ou à toute donnée sensible. Apprenez-en plus sur les [principes fondamentaux de la sécurité](../../../system-administration/secure-your-server/security-fundamentals.mdx). +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx new file mode 100644 index 0000000000..c68c4c1bf1 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx @@ -0,0 +1,9 @@ +Si vous devez réinstaller un conteneur Docker ou un plugin (par exemple, si votre fichier `docker.img` est corrompu), Community Applications simplifie cette opération pour vous. Tous les paramètres des applications sont enregistrés sous forme de fichiers XML de modèle Docker dans `/boot/config/plugins/dockerMan/templates-user`. Pour plus d'informations sur le schéma XML du modèle Docker et les balises personnalisées, consultez la [documentation du schéma XML du modèle Docker](https://forums.unraid.net/topic/38619-docker-template-xml-schema/) sur les forums Unraid. + +Pour réinstaller une application : + +1. Allez à l'onglet **Apps** dans le %%WebGUI|web-gui%%. +2. Sélectionnez le filtre **Previous Apps**. +3. Trouvez l'application que vous souhaitez réinstaller et suivez les invites. + +Vos paramètres enregistrés seront restaurés automatiquement, permettant une récupération rapide et facile. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx new file mode 100644 index 0000000000..1049d622f3 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx @@ -0,0 +1,4 @@ +Pour supprimer une application : + +1. Utilisez le filtre **Applications Installées** dans l'onglet **Applications**. Cela vous montrera tous les conteneurs Docker et plugins installés sous forme de tuiles. +2. Cliquez sur **Actions** et sélectionnez **Désinstaller** pour l'application que vous souhaitez supprimer. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx new file mode 100644 index 0000000000..f198434fdf --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx @@ -0,0 +1,7 @@ +Pour voir les journaux d'un conteneur (utile pour le dépannage) : + +``` +docker logs "container-name" +``` + +Cela affiche la sortie des journaux récents pour le conteneur spécifié. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx new file mode 100644 index 0000000000..dd86d253cc --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx @@ -0,0 +1,7 @@ +Pour redémarrer un conteneur (utile après avoir mis à jour les configurations ou en cas de dépannage) : + +``` +docker restart "container-name" +``` + +Remplacez `"container-name"` par le nom réel comme indiqué dans l'onglet Docker. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx new file mode 100644 index 0000000000..098e282f14 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx @@ -0,0 +1,7 @@ +Pour démarrer un conteneur, utilisez la commande : + +``` +docker start "container-name" +``` + +Remplacez `"container-name"` par le nom réel comme indiqué dans l'onglet Docker. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx new file mode 100644 index 0000000000..089844fb29 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx @@ -0,0 +1,7 @@ +Pour vérifier si un conteneur est en cours d'exécution : + +``` +docker ps --filter "name=container-name" +``` + +Cela listera le conteneur s'il est actuellement en cours d'exécution. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx new file mode 100644 index 0000000000..c50853f5db --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx @@ -0,0 +1,7 @@ +Pour arrêter un conteneur, utilisez la commande : + +``` +docker stop "container-name" +``` + +Remplacez `"container-name"` par le nom réel comme indiqué dans l'onglet Docker. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx new file mode 100644 index 0000000000..ad59797218 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx @@ -0,0 +1,25 @@ +Les variables d'environnement peuvent personnaliser le comportement de votre conteneur Docker à l'exécution. Elles vous permettent de transmettre des paires clé-valeur que votre application conteneurisée peut lire et utiliser. + +

Utilisations courantes des variables d'environnement

+ +- Définir le fuseau horaire +- Configurer les IDs utilisateur et groupe +- Spécifier les préférences linguistiques +- Ajuster les paramètres spécifiques à l'application, tels que les clés API ou les bascules de fonctionnalités + +

Gestion des variables d'environnement dans le %%WebGUI|web-gui%%

+ +- Vous pouvez ajouter, modifier ou supprimer des variables d'environnement dans l'écran de configuration du conteneur via le %%WebGUI|web-gui%%. +- De nombreux modèles de conteneurs viennent avec des variables d'environnement communes déjà définies, mais vous pouvez toujours en ajouter d'autres si nécessaire. +- Assurez-vous de consulter la documentation spécifique de l'application pour savoir quelles variables d'environnement sont disponibles et quelles valeurs sont valides. + +:::info[Examples des variables d'environnement] +- `TZ=America/New_York` : Ceci définit le fuseau horaire du conteneur. +- `PUID=99` et `PGID=100` : Cela définit les IDs utilisateur et groupe pour les permissions de fichiers. +- `UMASK=022` : Cela contrôle les permissions par défaut des fichiers créés. +- `API_KEY=your_api_key_here` : Cela pourrait être utilisé par une application pour l'authentification avec un service externe. +::: + +:::tip +Utilisez des variables d'environnement pour éviter de coder en dur des informations sensibles ou spécifiques à un environnement dans vos images de conteneurs. Cette pratique améliore la portabilité et la sécurité de vos conteneurs. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx new file mode 100644 index 0000000000..5a431944c2 --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx @@ -0,0 +1,17 @@ +Unraid prend en charge plusieurs modes réseau Docker. Le type de réseau que vous choisissez détermine comment votre conteneur communique avec d'autres appareils et conteneurs : + +- **Pont (par défaut) :** Le conteneur est placé sur un réseau interne Docker. Seuls les ports que vous mappez explicitement seront accessibles depuis votre serveur Unraid ou votre réseau local. C'est l'option la plus sûre et la plus courante pour la plupart des applications. + +- **Hôte :** Le conteneur partage la pile réseau du serveur Unraid. Il peut utiliser n'importe quel port disponible, mais vous devez vous assurer qu'il n'y a pas de conflit de ports avec d'autres services. Utilisez ce mode uniquement si l'application nécessite un accès réseau direct. + +- **Aucun :** Le conteneur n'a aucun accès réseau. Utilisez ceci pour des charges de travail isolées qui n'exigent aucune connectivité réseau. + +- **Personnalisé (macvlan/ipvlan) :** Le conteneur reçoit sa propre adresse IP sur votre réseau local, le faisant apparaître comme un appareil distinct. Cela est utile pour des scénarios avancés mais peut nécessiter une configuration supplémentaire dans votre environnement réseau. + +:::tip +Le type de réseau par défaut spécifié dans le modèle de conteneur est recommandé pour la plupart des utilisateurs. +::: + +:::caution[Wi-Fi et Limitations du Réseau Docker] +Docker a une limitation qui l'empêche de participer dans deux réseaux partageant le même sous-réseau. Si vous passez d'une connexion filaire à une connexion sans fil, vous devrez redémarrer Docker et reconfigurer tous les conteneurs existants pour utiliser la nouvelle interface. Ce changement de [configuration réseau](/unraid-os/system-administration/secure-your-server/securing-your-connection) nécessite une reconfiguration des conteneurs. +::: diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx new file mode 100644 index 0000000000..fd59a3e40a --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx @@ -0,0 +1,11 @@ +Les mappages de ports déterminent comment le trafic réseau est acheminé de votre serveur Unraid vers le conteneur. + +- **Réseau en pont :** Vous pouvez mapper des ports de conteneur internes à différents ports hôtes. Par exemple, si trois conteneurs utilisent le port 8000 en interne, vous pouvez les mapper à 8000, 8001 et 8002 sur l'hôte. + +- **Réseau hôte :** Le conteneur peut utiliser n'importe quel port disponible. Évitez d'exécuter plusieurs conteneurs avec le même port pour éviter les conflits. + +:::important +Ne modifiez que la valeur du port de l'hôte. Ne changez pas le port du conteneur à moins que vous ne sachiez que l'application le supporte. +::: + +La plupart des modèles proposent des valeurs par défaut sensées, mais vous pouvez ajouter ou ajuster des mappages de ports. diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx new file mode 100644 index 0000000000..8655dd40db --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx @@ -0,0 +1,17 @@ +Les mappages de volume contrôlent comment votre conteneur accède aux fichiers sur votre serveur Unraid. Chaque mappage relie un dossier à l'intérieur du conteneur (chemin du conteneur) à un dossier sur votre serveur Unraid (chemin de l'hôte). + +- **Chemin du conteneur :** Le répertoire à l'intérieur du conteneur (par exemple, `/config` ou `/unraid_media`). +- **Chemin hôte :** Le répertoire sur votre serveur Unraid (par exemple, `/mnt/user/appdata/myapp`). +- **Mode d'accès :** Contrôle les permissions - lecture seule ou lecture/écriture. Utilisez le mode le plus restrictif qui permet toujours au conteneur de fonctionner. + +:::tip[Best pratique] +Stockez les données d'application (paramètres, bibliothèques, etc.) en dehors du conteneur, généralement dans le partage utilisateur `appdata` %%user share|user-share%%. Cette [gestion de partage](../../../manage-storage/shares.mdx) garde vos données en sécurité pendant les mises à jour ou les réinstallations. +::: + +:::note +- Les chemins sont sensibles à la casse. +- Les chemins des conteneurs doivent commencer par un `/`. +- Si vous utilisez un périphérique non attribué comme chemin hôte, réglez le mode d’accès à une option "Esclave" pour garantir une détection correcte. +- Les chemins hôtes sont créés automatiquement s'ils n'existent pas au démarrage du conteneur. +- L'apparition de dossiers inattendus sur votre serveur peut indiquer un mappage mal configuré. +::: diff --git a/i18n/fr/docusaurus-theme-classic/footer.json b/i18n/fr/docusaurus-theme-classic/footer.json new file mode 100644 index 0000000000..5577d6f1ab --- /dev/null +++ b/i18n/fr/docusaurus-theme-classic/footer.json @@ -0,0 +1,54 @@ +{ + "link.title.Documentation": { + "message": "Documentation", + "description": "The title of the footer links column with title=Documentation in the footer" + }, + "link.title.Community": { + "message": "Communauté", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "Plus", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Home": { + "message": "Accueil", + "description": "The label of footer link with label=Home linking to /" + }, + "link.item.label.Contribute on Github": { + "message": "Contribuer sur Github", + "description": "The label of footer link with label=Contribute on Github linking to https://github.com/unraid/docs" + }, + "link.item.label.Forums": { + "message": "Forums", + "description": "The label of footer link with label=Forums linking to https://forums.unraid.net" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.unraid.net/" + }, + "link.item.label.Unraid Home": { + "message": "Unraid Accueil", + "description": "The label of footer link with label=Unraid Home linking to https://unraid.net" + }, + "link.item.label.Unraid Connect": { + "message": "Unraid Connect", + "description": "The label of footer link with label=Unraid Connect linking to https://connect.myunraid.net" + }, + "link.item.label.Newsletter": { + "message": "Newsletter", + "description": "The label of footer link with label=Newsletter linking to https://newsletter.unraid.net" + }, + "link.item.label.Blog": { + "message": "Blog", + "description": "The label of footer link with label=Blog linking to https://unraid.net/blog" + }, + "copyright": { + "message": "Droits d'auteur © 2005-2025 Lime Technology, Inc.
Unraid® est une marque déposée de Lime Technology, Inc.
", + "description": "The footer copyright" + }, + "logo.alt": { + "message": "Logo Unraid", + "description": "The alt text of footer logo" + } +} diff --git a/i18n/fr/docusaurus-theme-classic/navbar.json b/i18n/fr/docusaurus-theme-classic/navbar.json new file mode 100644 index 0000000000..f2ff4fa27a --- /dev/null +++ b/i18n/fr/docusaurus-theme-classic/navbar.json @@ -0,0 +1,26 @@ +{ + "title": { + "message": "Unraid Docs", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Mon logo de site", + "description": "The alt text of navbar logo" + }, + "item.label.More": { + "message": "Plus", + "description": "Navbar item with label More" + }, + "item.label.Unraid Home": { + "message": "Unraid Accueil", + "description": "Navbar item with label Unraid Home" + }, + "item.label.Forums": { + "message": "Forums", + "description": "Navbar item with label Forums" + }, + "item.label.Docs Github": { + "message": "Docs Github", + "description": "Navbar item with label Docs Github" + } +} diff --git a/i18n/zh/code.json b/i18n/zh/code.json new file mode 100644 index 0000000000..de75a59a48 --- /dev/null +++ b/i18n/zh/code.json @@ -0,0 +1,476 @@ +{ + "theme.NotFound.title": { + "message": "页面未找到", + "description": "The title of the 404 page" + }, + "theme.NotFound.p1": { + "message": "我们无法找到您要找的内容。", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "请联系链接您到原始网址的站点所有者并告知他们链接已失效。", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.ErrorPageContent.title": { + "message": "此页面崩溃了。", + "description": "The title of the fallback page when the page crashed" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "回到顶部", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "归档", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "归档", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "博客文章页面导航", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "较新的帖子", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "较旧的帖子", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "博客列表页导航", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "较新条目", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "较旧条目", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.tags.tagsPageLink": { + "message": "查看所有标签", + "description": "The label of the link targeting the tag list page" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "面包屑导航", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.DocCard.categoryDescription.plurals": { + "message": "1 项|{count} 项", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.colorToggle.ariaLabel": { + "message": "切换深色和浅色模式(当前为{mode})", + "description": "The ARIA label for the color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "深色模式", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "浅色模式", + "description": "The name for the light color mode" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "文档页面", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "上一篇", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "下一篇", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "一个文档标记|{count} 个文档标记", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} 标记为 \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "版本: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "这是 {siteTitle} {versionLabel} 版本的未发布文档。", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "这是 {siteTitle} {versionLabel} 版本的文档,此版本不再维护。", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "有关最新文档,请参见 {latestVersionLink} ({versionLabel})。", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "最新版本", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "编辑此页", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "直接链接到 {heading}", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " 于 {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " 由 {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "最后更新{atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "版本", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "关闭", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.tags.tagsListLabel": { + "message": "标签:", + "description": "The label alongside a tag list" + }, + "theme.admonition.caution": { + "message": "注意", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.admonition.danger": { + "message": "危险", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "信息", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.note": { + "message": "备注", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "提示", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.warning": { + "message": "警告", + "description": "The default label used for the Warning admonition (:::warning)" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "博客最近文章导航", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.CodeBlock.copied": { + "message": "已复制", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "复制代码到剪贴板", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copy": { + "message": "复制", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "切换自动换行", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.DocSidebarItem.expandCategoryAriaLabel": { + "message": "展开侧栏类别 '{label}'", + "description": "The ARIA label to expand the sidebar category" + }, + "theme.DocSidebarItem.collapseCategoryAriaLabel": { + "message": "折叠侧栏类别 '{label}'", + "description": "The ARIA label to collapse the sidebar category" + }, + "theme.NavBar.navAriaLabel": { + "message": "主导航", + "description": "The ARIA label for the main navigation" + }, + "theme.blog.post.readMore": { + "message": "阅读更多", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "阅读更多关于 {title}", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "语言", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "本页内容", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.blog.post.readingTime.plurals": { + "message": "一分钟阅读|{readingTime} 分钟阅读", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.breadcrumbs.home": { + "message": "主页", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "折叠侧栏", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "折叠侧栏", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.navAriaLabel": { + "message": "文档侧栏", + "description": "The ARIA label for the sidebar navigation" + }, + "theme.docs.sidebar.closeSidebarButtonAriaLabel": { + "message": "关闭导航栏", + "description": "The ARIA label for close button of mobile sidebar" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← 返回主菜单", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.docs.sidebar.toggleSidebarButtonAriaLabel": { + "message": "切换导航栏", + "description": "The ARIA label for hamburger menu button of mobile navigation" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "展开侧栏", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "展开侧栏", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.SearchBar.seeAll": { + "message": "查看所有 {count} 个结果" + }, + "theme.SearchPage.documentsFound.plurals": { + "message": "找到一个文档|找到 {count} 个文档", + "description": "Pluralized label for \"{count} documents found\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.SearchPage.existingResultsTitle": { + "message": "搜索 \"{query}\" 的结果", + "description": "The search page title for non-empty query" + }, + "theme.SearchPage.emptyResultsTitle": { + "message": "搜索文档", + "description": "The search page title for empty query" + }, + "theme.SearchPage.inputPlaceholder": { + "message": "在此处输入搜索内容", + "description": "The placeholder for search page input" + }, + "theme.SearchPage.inputLabel": { + "message": "搜索", + "description": "The ARIA label for search page input" + }, + "theme.SearchPage.algoliaLabel": { + "message": "由 Algolia 提供搜索", + "description": "The ARIA label for Algolia mention" + }, + "theme.SearchPage.noResultsText": { + "message": "未找到结果", + "description": "The paragraph for empty search result" + }, + "theme.SearchPage.fetchingNewResults": { + "message": "正在获取新结果...", + "description": "The paragraph for fetching new search results" + }, + "theme.SearchBar.label": { + "message": "搜索", + "description": "The ARIA label and placeholder for search button" + }, + "theme.SearchModal.searchBox.resetButtonTitle": { + "message": "清除查询", + "description": "The label and ARIA label for search box reset button" + }, + "theme.SearchModal.searchBox.cancelButtonText": { + "message": "取消", + "description": "The label and ARIA label for search box cancel button" + }, + "theme.SearchModal.startScreen.recentSearchesTitle": { + "message": "最近", + "description": "The title for recent searches" + }, + "theme.SearchModal.startScreen.noRecentSearchesText": { + "message": "无最近搜索", + "description": "The text when no recent searches" + }, + "theme.SearchModal.startScreen.saveRecentSearchButtonTitle": { + "message": "保存此搜索", + "description": "The label for save recent search button" + }, + "theme.SearchModal.startScreen.removeRecentSearchButtonTitle": { + "message": "从历史记录中移除此搜索", + "description": "The label for remove recent search button" + }, + "theme.SearchModal.startScreen.favoriteSearchesTitle": { + "message": "收藏", + "description": "The title for favorite searches" + }, + "theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle": { + "message": "从收藏中移除此搜索", + "description": "The label for remove favorite search button" + }, + "theme.SearchModal.errorScreen.titleText": { + "message": "无法获取结果", + "description": "The title for error screen of search modal" + }, + "theme.SearchModal.errorScreen.helpText": { + "message": "您可能需要检查您的网络连接。", + "description": "The help text for error screen of search modal" + }, + "theme.SearchModal.footer.selectText": { + "message": "来选择", + "description": "The explanatory text of the action for the enter key" + }, + "theme.SearchModal.footer.selectKeyAriaLabel": { + "message": "回车键", + "description": "The ARIA label for the Enter key button that makes the selection" + }, + "theme.SearchModal.footer.navigateText": { + "message": "来导航", + "description": "The explanatory text of the action for the Arrow up and Arrow down key" + }, + "theme.SearchModal.footer.navigateUpKeyAriaLabel": { + "message": "上箭头", + "description": "The ARIA label for the Arrow up key button that makes the navigation" + }, + "theme.SearchModal.footer.navigateDownKeyAriaLabel": { + "message": "下箭头", + "description": "The ARIA label for the Arrow down key button that makes the navigation" + }, + "theme.SearchModal.footer.closeText": { + "message": "来关闭", + "description": "The explanatory text of the action for Escape key" + }, + "theme.SearchModal.footer.closeKeyAriaLabel": { + "message": "Esc键", + "description": "The ARIA label for the Escape key button that close the modal" + }, + "theme.SearchModal.footer.searchByText": { + "message": "搜索提供者", + "description": "The text explain that the search is making by Algolia" + }, + "theme.SearchModal.noResultsScreen.noResultsText": { + "message": "无结果", + "description": "The text explains that there are no results for the following search" + }, + "theme.SearchModal.noResultsScreen.suggestedQueryText": { + "message": "尝试搜索", + "description": "The text for the suggested query when no results are found for the following search" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsText": { + "message": "相信这个查询应该返回结果吗?", + "description": "The text for the question where the user thinks there are missing results" + }, + "theme.SearchModal.noResultsScreen.reportMissingResultsLinkText": { + "message": "告诉我们。", + "description": "The text for the link to report missing results" + }, + "theme.SearchModal.placeholder": { + "message": "搜索文档", + "description": "The placeholder of the input of the DocSearch pop-up modal" + }, + "theme.IdealImageMessage.loading": { + "message": "加载中...", + "description": "When the full-scale image is loading" + }, + "theme.IdealImageMessage.load": { + "message": "点击加载{sizeMessage}", + "description": "To prompt users to load the full image. sizeMessage is a parenthesized size figure." + }, + "theme.IdealImageMessage.offline": { + "message": "您的浏览器处于离线状态。图像未加载", + "description": "When the user is viewing an offline document" + }, + "theme.IdealImageMessage.404error": { + "message": "404. 图片未找到", + "description": "When the image is not found" + }, + "theme.IdealImageMessage.error": { + "message": "错误。点击重新加载", + "description": "When the image fails to load for unknown error" + }, + "theme.blog.post.plurals": { + "message": "一个帖子|{count} 个帖子", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} 标记为 \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.blog.author.pageTitle": { + "message": "{authorName} - {nPosts}", + "description": "The title of the page for a blog author" + }, + "theme.blog.authorsList.pageTitle": { + "message": "作者", + "description": "The title of the authors page" + }, + "theme.blog.authorsList.viewAll": { + "message": "查看所有作者", + "description": "The label of the link targeting the blog authors page" + }, + "theme.blog.author.noPosts": { + "message": "此作者尚未撰写任何帖子。", + "description": "The text for authors with 0 blog post" + }, + "theme.contentVisibility.unlistedBanner.title": { + "message": "未列出页面", + "description": "The unlisted content banner title" + }, + "theme.contentVisibility.unlistedBanner.message": { + "message": "此页面未列出。搜索引擎将不索引它,只有拥有直接链接的用户才能访问。", + "description": "The unlisted content banner message" + }, + "theme.contentVisibility.draftBanner.title": { + "message": "草稿页", + "description": "The draft content banner title" + }, + "theme.contentVisibility.draftBanner.message": { + "message": "这是一个草稿页面。它仅在开发中可见,并且将从生产构建中排除。", + "description": "The draft content banner message" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "再试一次", + "description": "The label of the button to try again rendering when the React error boundary captures an error" + }, + "theme.common.skipToMainContent": { + "message": "跳到主要内容", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsPageTitle": { + "message": "标签", + "description": "The title of the tag list page" + }, + "theme.colorToggle.ariaLabel.mode.system": { + "message": "系统模式", + "description": "The name for the system color mode" + }, + "theme.navbar.mobileDropdown.collapseButton.expandAriaLabel": { + "message": "展开下拉菜单", + "description": "The ARIA label of the button to expand the mobile dropdown navbar item" + }, + "theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel": { + "message": "折叠下拉菜单", + "description": "The ARIA label of the button to collapse the mobile dropdown navbar item" + } +} diff --git a/i18n/zh/docusaurus-plugin-content-blog/options.json b/i18n/zh/docusaurus-plugin-content-blog/options.json new file mode 100644 index 0000000000..d7d0a51279 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-blog/options.json @@ -0,0 +1,14 @@ +{ + "title": { + "message": "博客", + "description": "The title for the blog used in SEO" + }, + "description": { + "message": "博客", + "description": "The description for the blog used in SEO" + }, + "sidebar.title": { + "message": "最近的文章", + "description": "The label for the left sidebar" + } +} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current.json b/i18n/zh/docusaurus-plugin-content-docs/current.json new file mode 100644 index 0000000000..6f5fe8f376 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,130 @@ +{ + "version.label": { + "message": "下一篇", + "description": "The label for version current" + }, + "sidebar.unraidSidebar.category.Unraid OS": { + "message": "Unraid 操作系统", + "description": "The label for category Unraid OS in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Getting started with Unraid": { + "message": "开始使用 Unraid", + "description": "The label for category Getting started with Unraid in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Set up Unraid": { + "message": "设置 Unraid", + "description": "The label for category Set up Unraid in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Explore the user interface": { + "message": "探索用户界面", + "description": "The label for category Explore the user interface in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Using Unraid to": { + "message": "使用 Unraid", + "description": "The label for category Using Unraid to in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Manage storage": { + "message": "管理存储", + "description": "The label for category Manage storage in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Run Docker containers": { + "message": "运行 Docker 容器", + "description": "The label for category Run Docker containers in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Create virtual machines": { + "message": "创建虚拟机", + "description": "The label for category Create virtual machines in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Customize your experience": { + "message": "自定义您的体验", + "description": "The label for category Customize your experience in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.System administration": { + "message": "系统管理", + "description": "The label for category System administration in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Monitor performance": { + "message": "监控性能", + "description": "The label for category Monitor performance in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Maintain and update": { + "message": "维护和更新", + "description": "The label for category Maintain and update in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Secure your server": { + "message": "保护您的服务器", + "description": "The label for category Secure your server in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Advanced tools": { + "message": "高级工具", + "description": "The label for category Advanced tools in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Advanced configurations": { + "message": "高级配置", + "description": "The label for category Advanced configurations in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Optimize storage": { + "message": "优化存储", + "description": "The label for category Optimize storage in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Troubleshooting": { + "message": "故障排除", + "description": "The label for category Troubleshooting in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Common issues": { + "message": "常见问题", + "description": "The label for category Common issues in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Diagnostics": { + "message": "诊断", + "description": "The label for category Diagnostics in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Release notes": { + "message": "发行说明", + "description": "The label for category Release notes in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Release notes.link.generated-index.description": { + "message": "Unraid 发行说明", + "description": "The generated-index page description for category Release notes in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.7.2": { + "message": "7.2", + "description": "The label for category 7.2 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.7.1": { + "message": "7.1", + "description": "The label for category 7.1 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.7.0": { + "message": "7.0", + "description": "The label for category 7.0 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.12": { + "message": "6.12", + "description": "The label for category 6.12 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.11": { + "message": "6.11", + "description": "The label for category 6.11 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.10": { + "message": "6.10", + "description": "The label for category 6.10 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.6.9": { + "message": "6.9", + "description": "The label for category 6.9 in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Unraid Connect": { + "message": "Unraid Connect", + "description": "The label for category Unraid Connect in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Unraid API": { + "message": "Unraid API", + "description": "The label for category Unraid API in sidebar unraidSidebar" + }, + "sidebar.unraidSidebar.category.Contribute": { + "message": "贡献", + "description": "The label for category Contribute in sidebar unraidSidebar" + } +} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/API/_category_.json new file mode 100644 index 0000000000..1e4ded6ca3 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/API/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Unraid API", + "position": 4 +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx new file mode 100644 index 0000000000..3e1f2809ad --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/API/api-key-app-developer-authorization-flow.mdx @@ -0,0 +1,100 @@ +# API密钥授权流程 + +本文档描述了第三方应用程序的自助API密钥创建流程。 + +## 概述 + +应用程序可以通过将用户重定向到一个特殊授权页面,来请求访问 Unraid 服务器的 API。在该页面上,用户可以查看请求的权限,并通过一次点击创建一个 API 密钥。 + +## 流程 + +1. **应用程序启动请求**:应用程序将用户重定向至: + + ``` + https://[unraid-server]/ApiKeyAuthorize?name=MyApp&scopes=docker:read,vm:*&redirect_uri=https://myapp.com/callback&state=abc123 + ``` + +2. **用户身份验证**:如果尚未登录,用户将被重定向到登录页面(标准 Unraid 身份验证)。 + +3. **同意屏幕**:用户看到: + - 应用程序名称和描述 + - 请求的权限(带复选框以批准/拒绝特定范围) + - API密钥名称字段(预填充) + - 授权和取消按钮 + +4. **API密钥创建**:授权后: + - API密钥与已批准的范围一起创建 + - 密钥显示给用户 + - 如果提供了`redirect_uri`,用户会被重定向回密钥 + +5. **回调**:应用程序接收到API密钥: + ``` + https://myapp.com/callback?api_key=xxx&state=abc123 + ``` + +## 查询参数 + +- `name`(必填):请求应用程序的名称 +- `description`(可选):应用程序的描述 +- `scopes`(必填):请求范围的逗号分隔列表 +- `redirect_uri`(可选):授权后的重定向URL +- `state`(可选):用于维护状态的不透明值 + +## 范围格式 + +范围遵循模式:`resource:action` + +### 示例: + +- `docker:read` - Docker的读取访问 +- `vm:*` - 完全访问VM +- `system:update` - 系统更新访问 +- `role:viewer` - 观看者角色访问 +- `role:admin` - 管理员角色访问 + +### 可用资源: + +- `docker`、`vm`、`system`、`share`、`user`、`network`、`disk`等等。 + +### 可用操作: + +- `create`、`read`、`update`、`delete`或`*`代表所有 + +## 安全注意事项 + +1. **需要HTTPS**:重定向URI必须使用HTTPS(开发中的本地主机除外) +2. **用户同意**:用户需明确批准每项权限 +3. **基于会话**:使用现有的 Unraid 身份验证会话。 +4. **一次性显示**:API密钥仅显示一次,必须安全保存 + +## 示例集成 + +```javascript +// JavaScript example +const unraidServer = 'tower.local'; +const appName = 'My Docker Manager'; +const scopes = 'docker:*,system:read'; +const redirectUri = 'https://myapp.com/unraid/callback'; +const state = generateRandomState(); + +// Store state for verification +sessionStorage.setItem('oauth_state', state); + +// Redirect user to authorization page +window.location.href = + `https://${unraidServer}/ApiKeyAuthorize?` + + `name=${encodeURIComponent(appName)}&` + + `scopes=${encodeURIComponent(scopes)}&` + + `redirect_uri=${encodeURIComponent(redirectUri)}&` + + `state=${encodeURIComponent(state)}`; + +// Handle callback +const urlParams = new URLSearchParams(window.location.search); +const apiKey = urlParams.get('api_key'); +const returnedState = urlParams.get('state'); + +if (returnedState === sessionStorage.getItem('oauth_state')) { + // Save API key securely + saveApiKey(apiKey); +} +``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/cli.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/API/cli.mdx new file mode 100644 index 0000000000..0244f75ac3 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/API/cli.mdx @@ -0,0 +1,212 @@ +--- +title: CLI参考 +description: 有关所有 Unraid API CLI 命令的完整参考 +sidebar_position: 4 +--- + +# CLI命令 + +:::info[Command 结构] +所有命令遵循模式:`unraid-api [options]` +::: + +## 🚀 服务管理 + +### 开始 + +```bash +unraid-api start [--log-level ] +``` + +Starts the Unraid API service. + +选项: + +- `--log-level`:设置日志记录级别(trace|debug|info|warn|error|fatal) + +替代:您也可以使用 `LOG_LEVEL` 环境变量设置日志级别: + +```bash +LOG_LEVEL=trace unraid-api start +``` + +### 停止 + +```bash +unraid-api stop [--delete] +``` + +Stops the Unraid API service. + +- `--delete`: 可选。删除PM2主目录 + +### 重启 + +```bash +unraid-api restart [--log-level ] +``` + +重新启动 Unraid API 服务。 + +选项: + +- `--log-level`:设置日志记录级别(trace|debug|info|warn|error|fatal) + +替代:您也可以使用 `LOG_LEVEL` 环境变量设置日志级别: + +```bash +LOG_LEVEL=trace unraid-api restart +``` + +### 日志 + +```bash +unraid-api logs [-l ] +``` + +查看API日志。 + +- `-l, --lines`: 可选。要尾部的行数(默认: 100) + +## ⚙️ 配置命令 + +### 配置 + +```bash +unraid-api config +``` + +显示当前配置值。 + +### 切换环境 + +```bash +unraid-api switch-env [-e ] +``` + +在生产和测试环境间切换。 + +- `-e, --environment`: 可选。目标环境(生产|暂存) + +### 开发者模式 + +:::tip[Web GUI管理] +您也可以通过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 --enable-modal # Enable modal testing tool +unraid-api developer --disable-modal # Disable modal testing tool +``` + +配置API的开发人员功能: + +- **GraphQL沙箱**:启用/禁用Apollo GraphQL沙箱位于 `/graphql` +- **模态测试工具**:在 Unraid 菜单中启用/禁用用户界面模态测试 + +## API密钥管理 + +:::tip[Web GUI管理] +您也可以通过Web GUI管理API密钥,路径为 **设置** → **管理访问** → **API密钥** +::: + +### API密钥命令 + +```bash +unraid-api apikey [options] +``` + +通过CLI创建和管理API密钥。 + +选项: + +- `--name `:密钥名称 +- `--create`:创建新密钥 +- `-r, --roles `:角色列表,逗号分隔 +- `-p, --permissions `:权限列表,逗号分隔 +- `-d, --description `:密钥描述 + +## SSO (单点登录)管理 + +:::info\[OIDC 配置 + +有关OIDC/SSO提供商配置,请参阅Web界面在 **设置** → **管理访问** → **API** → **OIDC** 或参考 [OIDC提供商设置](./oidc-provider-setup.mdx) 指南。 + +::: + +### SSO基础命令 + +```bash +unraid-api sso +``` + +#### 添加SSO用户 + +```bash +unraid-api sso add-user +# or +unraid-api sso add +# or +unraid-api sso a +``` + +为SSO认证添加新用户。 + +#### 移除SSO用户 + +```bash +unraid-api sso remove-user +# or +unraid-api sso remove +# or +unraid-api sso r +``` + +从SSO中移除用户(或所有用户)。 + +#### 列出SSO用户 + +```bash +unraid-api sso list-users +# or +unraid-api sso list +# or +unraid-api sso l +``` + +列出所有配置的SSO用户。 + +#### 验证SSO令牌 + +```bash +unraid-api sso validate-token +# or +unraid-api sso validate +# or +unraid-api sso v +``` + +验证SSO令牌并返回其状态。 + +## 报告生成 + +### 生成报告 + +```bash +unraid-api report [-r] [-j] +``` + +生成系统报告。 + +- `-r, --raw`:显示原始命令输出 +- `-j, --json`:以JSON格式显示输出 + +## 笔记 + +1. 大多数命令需要适当的权限来修改系统状态 +2. 某些命令需要API正在运行或停止 +3. 安全存储API密钥,因为它们提供系统访问 +4. SSO配置更改可能需要服务重启 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx new file mode 100644 index 0000000000..4a95844903 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/API/how-to-use-the-api.mdx @@ -0,0 +1,241 @@ +--- +title: 使用 Unraid API +description: 学习如何通过 GraphQL API 与您的 Unraid 服务器交互 +sidebar_position: 2 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ManageApiKeysGui from './partials/manage-api-keys-gui.mdx'; +import ManageApiKeysCli from './partials/manage-api-keys-cli.mdx'; + +# 使用 Unraid API + +:::tip[Quick 开始] +Unraid API 提供了一个强大的 GraphQL 接口,用于管理您的服务器。本指南涵盖认证、常见查询和最佳实践。 +::: + +Unraid API 提供了一个 GraphQL 接口,允许您与您的 Unraid 服务器进行交互。本指南将帮助您开始探索和使用该 API。 + +## 🎮 启用 GraphQL 沙箱 + +### Web GUI方法(推荐) + +:::info[Preferred 方法] +使用Web GUI是启用GraphQL沙盒最简单的方式。 +::: + +1. 导航到 **设置** → **管理访问** → **开发者选项** +2. 启用 **GraphQL 沙箱** 切换 +3. 通过导航到以下位置访问 GraphQL playground: + + ```txt + http://YOUR_SERVER_IP/graphql + ``` + +### CLI 方法 + +或者,您可以使用 CLI 启用开发者模式: + +```bash +unraid-api developer --sandbox true +``` + +或使用交互模式: + +```bash +unraid-api developer +``` + +## 🔑 身份验证 + +:::warning[Required 大多数操作需要] +大多数查询和变更需要认证。请务必在请求中包含适当的凭据。 +::: + +您可以使用以下方式进行身份验证: + +1. **API 密钥** - 对编程访问来说 +2. **Cookies** - 当登录到 WebGUI 时自动 +3. **SSO/OIDC** - 配置为与外部提供商一起使用时 + +### API 密钥管理 + + + + + + + + + + + +### 使用 API 密钥 + +生成的 API 密钥应作为标头包含在您的 GraphQL 请求中: + +```json +{ + "x-api-key": "YOUR_API_KEY" +} +``` + +## 📊 可用模式 + +API 提供对 Unraid 服务器各个方面的访问: + +### 系统信息 + +- 查询系统详细信息,包括 CPU、内存和操作系统信息 +- 监控系统状态和健康 +- 访问主板和硬件信息 + +### 阵列管理 + +- 查询阵列状态和配置 +- 管理阵列操作(启动/停止) +- 监控磁盘状态和健康 +- 执行校验检查 + +### Docker 管理 + +- 列出和管理 Docker 容器 +- 监控容器状态 +- 管理 Docker 网络 + +### 远程访问 + +- 配置和管理远程访问设置 +- 处理 SSO 配置 +- 管理允许的来源 + +### 💻 示例查询 + +#### 检查系统状态 + +```graphql +query { + info { + os { + platform + distro + release + uptime + } + cpu { + manufacturer + brand + cores + threads + } + } +} +``` + +#### 监控阵列状态 + +```graphql +query { + array { + state + capacity { + disks { + free + used + total + } + } + disks { + name + size + status + temp + } + } +} +``` + +#### 列出 Docker 容器 + +```graphql +query { + dockerContainers { + id + names + state + status + autoStart + } +} +``` + +## 🏗️ 模式类型 + +API 包括几个核心类型: + +### 基本类型 + +- `Node`:适用于具有唯一 ID 的对象的接口 - 请参阅[对象识别](https://graphql.org/learn/global-object-identification/) +- `JSON`:用于复杂的 JSON 数据 +- `DateTime`:用于时间戳值 +- `Long`:用于 64 位整数 + +### 资源类型 + +- `Array`: 阵列和磁盘管理 +- `Docker`: 容器和网络管理 +- `Info`: 系统信息 +- `Config`: 服务器配置 +- `Connect`: 远程访问设置 + +### 基于角色的访问 + +可用角色: + +- `admin`:完全访问 +- `connect`:远程访问功能 +- `guest`:有限读取访问 + +## ✨ 最佳实践 + +:::tip[Pro 提示] +1. 使用 Apollo Sandbox 探索模式和测试查询 +2. 从小查询开始,逐渐按需添加字段 +3. 监控您的查询复杂度以保持性能 +4. 对于您的 API 密钥,使用适当的角色和权限 +5. 保持您的 API 密钥安全并定期更换 +::: + +## ⏱️ 速率限制 + +:::caution[Rate 限制] +API 实施了速率限制以防止滥用。确保您的应用程序适当地处理速率限制响应。 +::: + +## 🚨错误处理 + +API 以以下格式返回标准的 GraphQL 错误: + +```json +{ + "errors": [ + { + "message": "Error description", + "locations": [...], + "path": [...] + } + ] +} +``` + +## 📚 额外资源 + +:::info[Learn 更多] +- 使用 Apollo Sandbox 的模式浏览器浏览所有可用类型和字段 +- 查看 Apollo Sandbox 中的文档选项卡以获取详细的字段描述 +- 使用 `unraid-api status` 监控 API 的健康状况 +- 使用 `unraid-api report` 生成报告以进行故障排除 + +有关特定命令和配置选项的更多信息,请参阅 [CLI 文档](cli.mdx) 或运行 `unraid-api --help`。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/images/advanced-rules.png b/i18n/zh/docusaurus-plugin-content-docs/current/API/images/advanced-rules.png new file mode 100644 index 0000000000000000000000000000000000000000..dd60e6dc0d62443c8e07980846f7762929219f87 GIT binary patch literal 103268 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

=TL8t|d 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 I(gxoD3n!4utN;K2 literal 0 HcmV?d00001 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/images/button-customization.png b/i18n/zh/docusaurus-plugin-content-docs/current/API/images/button-customization.png new file mode 100644 index 0000000000000000000000000000000000000000..516cd0c3cd9d703315129c918a2dea2e13392439 GIT binary patch literal 97812 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 Q*BOAo)78&qol`;+04(}33;+NC literal 0 HcmV?d00001 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/images/default-unraid-provider.png b/i18n/zh/docusaurus-plugin-content-docs/current/API/images/default-unraid-provider.png new file mode 100644 index 0000000000000000000000000000000000000000..8d1f3227d6d04960a730ec48fa864ccd5243f78e GIT binary patch literal 131176 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 + +## 🌟 关键功能 + +:::info[Core 功能] +API 提供了: + +- **GraphQL 接口**:现代、灵活的 API,具有强类型 +- **认证**:包括 API 密钥、会话 cookie 和 SSO/OIDC 多种方法 +- **综合覆盖**:访问系统信息、阵列管理和 Docker 操作 +- **开发者工具**:内置 GraphQL 沙盒,可通过 Web 端或 CLI 配置 +- **基于角色的访问**:细粒度的权限控制 +- **Web 管理**:通过 Web 界面管理 API 密钥和设置 +::: + +## 🚀 开始使用 + + + + + + + + + + + +有关详细使用说明,参见 [CLI 命令](./cli) 参考。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx new file mode 100644 index 0000000000..415bdbf3b6 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/API/oidc-provider-setup.mdx @@ -0,0 +1,419 @@ +--- +title: OIDC提供商设置 +description: 为 Unraid API 配置 OIDC (OpenID Connect) 提供商以用于 SSO 身份验证 +sidebar_position: 3 +--- + +# OIDC提供商设置 + +:::info\[What 什么是OIDC? + +OpenID Connect (OIDC) 是一种认证协议,允许用户使用现有账户(如Google、Microsoft或公司身份提供商)登录。它为无缝和安全登录提供了单点登录(SSO)支持。 + +::: + +This guide walks you through configuring OIDC (OpenID Connect) providers for SSO authentication in the Unraid API using the web interface. + +## 🚀 快速开始 + +
+ 前往OIDC设置 + + 1. Navigate to your Unraid server's web interface + 2. 进入**设置** → **管理访问** → **API** → **OIDC** + 3. 您将看到不同提供商的选项卡 - 单击\*\*+\*\*按钮以添加新提供商 +
+ +### OIDC提供商界面概览 + +![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* + +界面包括: + +- **提供商选项卡**: 每个配置的提供商(Unraid.net,Google等)以选项卡形式出现。 +- **添加提供商按钮**: 单击\*\*+\*\*按钮以添加新提供商 +- **授权模式下拉菜单**: 在“简单”和“高级”模式之间切换 +- **简单授权部分**: 配置允许的电子邮件域和具体地址 +- **添加项目按钮**: 单击以添加多条授权规则 + +## 理解授权模式 + +界面提供了两种授权模式: + +### 简单模式(推荐) + +简单模式是配置授权的最简单方法。您可以: + +- 允许特定电子邮件域(例如,@company.com) +- 允许特定电子邮件地址 +- Configure who can access your Unraid server with minimal setup + +**何时使用简单模式:** + +- 您想允许来自您公司域的所有用户 +- 您有一个特定用户的小名单 +- 你对OIDC配置比较陌生 + +
+ 高级模式 + + 高级模式通过基于声明的规则提供细粒度的控制。您可以: + + - 基于JWT声明创建复杂的授权规则 + - 使用操作符如等于、包含、以…结束、以…开始 + - 使用OR/AND逻辑结合多个条件 + - 选择是否任何规则通过(OR模式)或所有规则通过(AND模式) + + **何时使用高级模式:** + + - 您需要检查组成员资格 + - 您想验证多个声明(例如,电子邮件域和验证状态) + - 您有复杂的授权需求 + - 您需要对规则的评估方式进行精细化控制 +
+ +## 授权规则 + +![授权规则配置](/img/api/advanced-rules.png) +*高级授权规则显示以电子邮件为基础的访问控制的JWT声明配置及操作符以…结束* + +### 简单模式示例 + +#### 允许公司域 + +在简单授权中: + +- **允许的电子邮件域**: 输入`company.com` +- 这允许任何带有@company.com邮箱的人 + +#### 允许特定用户 + +- **特定电子邮件地址**: 添加单个电子邮件 +- 单击**添加项目**以添加多个地址 + +
+ 高级模式示例 + + #### 授权规则模式 + + 使用多个规则时,您可以选择它们的评估方式: + + - **OR模式**(默认): 如果任何规则通过,用户将被授权 + - **AND模式**: 仅当所有规则通过时,用户才被授权 + + #### 电子邮件域与验证(AND模式) + + 要求同时进行电子邮件域与验证: + + 1. 将**授权规则模式**设置为`AND` + 2. 添加两条规则: + - 规则 1: + - **声明**: `email` + - **操作符**: `endsWith` + - **值**: `@company.com` + - 规则 2: + - **声明**: `email_verified` + - **操作符**: `equals` + - **值**: `true` + + 这确保用户必须同时拥有公司邮箱和已验证的电子邮件地址。 + + #### 基于组的访问(OR模式) + + 为了允许对多个组的访问: + + 1. 将**授权规则模式**设置为`OR`(默认) + 2. 为每个组添加规则: + - **声明**: `groups` + - **操作符**: `contains` + - **值**: `admins` + 或添加另一个规则: + - **声明**: `groups` + - **操作符**: `contains` + - **值**: `developers` + + 在`admins`或`developers`组中的用户将被授权。 + + #### 多个域 + + - **声明**: `email` + - **操作符**: `endsWith` + - **值**: 添加多个域(例如,`company.com`, `subsidiary.com`) + + #### 复杂授权(AND模式) + + 对于需要多种条件的严格安全要求: + + 1. 将**授权规则模式**设置为`AND` + 2. 添加所有必须通过的多条规则: + - 电子邮件必须来自公司域 + - 电子邮件必须经过验证 + - 用户必须位于特定组中 + - 账户须启用双重身份验证(如果声明可用) +
+ +
+ 配置界面详情 + + ### 提供商选项卡 + + - 每个配置的提供商显示为顶部的选项卡 + - 单击选项卡在提供商配置之间切换 + - 右侧的\*\*+\*\*按钮添加新的提供商 + + ### 授权模式切换区 + + - **简单**: 最适合基于电子邮件的授权(大多数用户推荐) + - **高级**: 用于复杂的基于JWT声明的规则 + + ### 简单授权字段 + + 选择“简单”模式时,您将看到: + + - **允许的电子邮件域**: 输入不带@的域名(例如,`company.com`) + - 帮助文本:“这些域名结尾的电子邮件可以登录” + - **特定电子邮件地址**: 添加单个电子邮件地址 + - 帮助文本:“只有这些精确的电子邮件地址可以登录” + - **添加项目**按钮添加多个条目 + + ### 高级授权字段 + + 选择“高级”模式时,您将看到: + + - **授权规则模式**: 选择`OR`(任何规则通过)或`AND`(所有规则必须通过) + - **授权规则**: 添加基于声明的多条规则 + - **对于每条规则**: + - **声明**: 要检查的JWT声明 + - **操作符**: 如何比较(等于、包含、以…结束、以…开始) + - **值**: 匹配对象 + + ### 附加界面元素 + + - **启用开发者沙盒**: 切换以启用位于`/graphql`的GraphQL沙盒 + - 界面使用深色主题以提高可见性 + - 字段验证指示器帮助确保正确配置 +
+ +### 重定向URI是必须的 + +:::caution\[Important 配置 + +所有提供商必须使用此精确重定向URI格式进行配置: + +::: + +```bash +http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback +``` + +:::tip +将`YOUR_UNRAID_IP`替换为您实际的服务器IP地址(例如,`192.168.1.100`或`tower.local`)。 +::: + +### 发布者URL格式 + +**发布者URL**字段接受这两种格式,但**强烈推荐基础URL**以保障安全: + +- **基础URL**(推荐): `https://accounts.google.com` +- **完整发现URL**: `https://accounts.google.com/.well-known/openid-configuration` + +**⚠️ 安全注意**:始终尽量使用基本URL格式。系统会自动附加`/.well-known/openid-configuration`以便进行OIDC发现。直接使用完整发现URL会禁用重要的发行者验证检查,OpenID Connect规范不推荐这样做。 + +**正确基础URL的示例:** + +- Google: `https://accounts.google.com` +- Microsoft/Azure: `https://login.microsoftonline.com/YOUR_TENANT_ID/v2.0` +- Keycloak: `https://keycloak.example.com/realms/YOUR_REALM` +- Authelia: `https://auth.yourdomain.com` + +## ✅ 测试您的配置 + +![登录页面显示 SSO 按钮](/img/api/sso-with-options.png) +*Unraid 登录页面显示传统的用户名/密码认证和带有定制提供商按钮的 SSO 选项* + +1. 保存您的提供商配置 +2. 登出(如果已登录) +3. 导航到登录页面 +4. 您的配置提供商按钮应出现 +5. 单击以测试登录流程 + +## 🔧 故障排除 + +### 常见问题 + +#### “找不到提供商”错误 + +- 确保发布者URL正确 +- 检查提供商是否支持OIDC发现(/.well-known/openid-configuration) + +#### “认证失败” + +- 在简单模式中:检查电子邮件域是否正确输入(不带@) +- 在高级模式中: + - 验证声明名称是否与提供商发送的完全匹配 + - 检查授权规则模式是否设置正确(OR vs AND) + - 确保令牌中存在所有必需的声明 +- 启用调试日志以查看实际声明和规则评估 + +#### “无效重定向URI” + +- 确保您的提供商中的重定向URI完全匹配 +- 如果使用非标准配置,请包括正确的端口 +- 验证重定向URI协议是否与服务器配置匹配(HTTP或HTTPS) + +#### 无法看到登录按钮 + +- 检查至少配置了一条授权规则 +- 验证提供者已启用/保存 + +### 调试模式 + +要排除故障: + +1. 启用调试日志: + +```bash +LOG_LEVEL=debug unraid-api start --debug +``` + +2. 检查日志: + +- 从提供商接收到的声明 +- 授权规则评估 +- 令牌验证错误 + +## 🔐 安全最佳实践 + +1. **使用简单模式进行授权** - 防止过于宽松的配置并减少错误配置风险 +2. **授权时要具体** - 不要使用过于宽泛的规则 +3. **定期旋转密钥** - 定期更新客户端密钥 +4. **全面测试** - 验证仅预定用户可以访问 + +## 💡 需要帮助吗? + +- 检查提供商的OIDC文档 +- 查看 Unraid API 日志以获取详细的错误信息 +- 确保您的提供商支持标准的 OIDC 发现 +- 验证 Unraid 和提供商之间的网络连接 + +## 🏢 提供者特定设置 + +### Unraid.net 提供者 + +Unraid.net 提供商是内置且预配置的。您只需在界面中配置授权规则。 + +**配置:** + +- **发行者 URL**: 预配置(内置提供程序) +- **客户端 ID/Secret**: 预配置(内置提供程序) +- **重定向 URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +:::tip[Redirect URI 协议] +**匹配协议至您的服务器设置:** 如果在没有 SSL/TLS 的情况下访问您的 Unraid 服务器(通常用于本地网络访问),请使用 `http://`。如果您在服务器上配置了 SSL/TLS,请使用 `https://`。某些 OIDC 提供商(如 Google)要求 HTTPS,不会接受 HTTP 重定向 URI。 +::: + +使用简单模式(允许的电子邮件域/地址)或高级模式来配置授权规则,以满足复杂的需求。 + +### Google + +
+ 📋 设置步骤 + + 在 [Google Cloud Console](https://console.cloud.google.com/) 中设置 OAuth 2.0 凭据: + + 1. 转到 **API 和服务** → **凭据** + 2. 点击 **创建凭据** → **OAuth 客户端 ID** + 3. 选择 **Web 应用程序** 作为应用程序类型 + 4. 将您的重定向 URI 添加到 **授权重定向 URI** + 5. 如果出现提示,请配置 OAuth 同意屏幕 +
+ +**配置:** + +- **发行者 URL**:`https://accounts.google.com` +- **客户端 ID/Secret**: 来自您的 OAuth 2.0 客户端凭据 +- **所需范围**: `openid`, `profile`, `email` +- **重定向 URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +:::warning[Google 域名要求] +\*\*Google 要求 OAuth 重定向 URI 的有效域名。\*\*本地 IP 地址和 `.local` 域不被接受。要在 Unraid 服务器上使用 Google OAuth,您需要: + +- **选项 1: 反向代理** - 设置一个反向代理(如 NGINX 代理管理器或 Traefik),使用有效域名指向您的 Unraid API +- **选项 2: Tailscale** - 使用 Tailscale 获取 Google 可接受的有效 `*.ts.net` 域 +- **选项 3: 动态 DNS** - 使用 DDNS 服务为您的服务器获取公共域名 + +请记得在 Google Cloud 控制台和 Unraid OIDC 配置中更新您的重定向 URI 以使用有效的域名。 +::: + +对于 Google Workspace 域,使用高级模式和 `hd` 声明来限制对您组织域的访问。 + +### Authelia + +在 Authelia `configuration.yml` 中配置 OIDC 客户端,使用客户端 ID `unraid-api` 并使用 Authelia hash-password 命令生成一个哈希密钥。 + +**配置:** + +- **发行者 URL**:`https://auth.yourdomain.com` +- **客户端 ID**:`unraid-api`(或在 Authelia 中配置) +- **客户端 Secret**:您的未哈希密钥 +- **所需范围**: `openid`, `profile`, `email`, `groups` +- **重定向 URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +使用带 `groups` 声明的高级模式进行基于组的授权。 + +### Microsoft/Azure AD + +在 [Azure Portal](https://portal.azure.com/) 中,Azure Active Directory → 应用注册项下注册一个新应用。记录应用 ID,创建客户端密钥,并记录您的租户 ID。 + +**配置:** + +- **发行者 URL**: `https://login.microsoftonline.com/YOUR_TENANT_ID/v2.0` +- **客户端 ID**: 您的应用程序(客户端)ID +- **客户端 Secret**: 生成的客户端秘密 +- **所需范围**: `openid`, `profile`, `email` +- **重定向 URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +可以在界面中配置授权规则,使用电子邮件域或者高级声明。 + +### Keycloak + +在 Keycloak 管理控制台中创建一个新的保密客户端,使用 `openid-connect` 协议,并从凭据选项卡复制客户端密钥。 + +**配置:** + +- **发行者 URL**:`https://keycloak.example.com/realms/YOUR_REALM` +- **客户端 ID**: `unraid-api`(或在 Keycloak 中配置) +- **客户端 Secret**: 来自 Keycloak 凭据选项卡 +- **所需范围**: `openid`, `profile`, `email` +- **重定向 URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +对于基于角色的授权,使用 `realm_access.roles` 或 `resource_access` 声明的高级模式。 + +### Authentik + +在 Authentik 中创建一个新的 OAuth2/OpenID 提供者,然后创建一个应用程序并将其链接到提供者。 + +**配置:** + +- **发行者 URL**: `https://authentik.example.com/application/o//` +- **客户端 ID**: 来自 Authentik 提供者配置 +- **客户端 Secret**: 来自 Authentik 提供者配置 +- **所需范围**: `openid`, `profile`, `email` +- **重定向 URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +可以在界面中配置授权规则。 + +### Okta + +在 Okta 管理控制台中创建一个新的 OIDC Web 应用程序,并分配适当的用户或组。 + +**配置:** + +- **发行者 URL**: `https://YOUR_DOMAIN.okta.com` +- **客户端 ID**: 来自 Okta 应用程序配置 +- **客户端 Secret**: 来自 Okta 应用程序配置 +- **所需范围**: `openid`, `profile`, `email` +- **重定向 URI**: `http://YOUR_UNRAID_IP/graphql/api/auth/oidc/callback` + +可以在界面中配置授权规则,使用电子邮件域或者高级声明。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx new file mode 100644 index 0000000000..1470a33502 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/API/partials/get-started-pre72.mdx @@ -0,0 +1,5 @@ +1. 从社区应用安装 Unraid Connect 插件 +2. 无需 Unraid Connect 登录即可本地访问 API +3. 配置插件设置 +4. 启用 GraphQL 沙盒 +5. 开始探索 API! diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx new file mode 100644 index 0000000000..8187fa7350 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/API/partials/get-started-v72.mdx @@ -0,0 +1,5 @@ +1. API 已安装并正在运行 +2. 在 **设置** → **管理访问** → **API** 中访问设置 +3. 启用 GraphQL 沙盒进行开发 +4. 创建您的第一个 API 密钥 +5. 开始进行 GraphQL 查询! diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx new file mode 100644 index 0000000000..2975cddc20 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-cli.mdx @@ -0,0 +1,12 @@ +您也可以使用 CLI 创建 API 密钥: + +```bash +unraid-api apikey --create +``` + +按照提示设置: + +- 名称 +- 描述 +- 角色 +- 权限 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx new file mode 100644 index 0000000000..0f0b014bf3 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/API/partials/manage-api-keys-gui.mdx @@ -0,0 +1,6 @@ +导航到 Unraid web 界面的 **设置** → **管理访问** → **API 密钥** 来: + +- 查看现有 API 密钥 +- 创建新的 API 密钥 +- 管理权限和角色 +- 撤销或重新生成密钥 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx new file mode 100644 index 0000000000..767b610c54 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/API/programmatic-api-key-management.mdx @@ -0,0 +1,250 @@ +--- +title: Programmatic API Key Management +description: 通过编程方式创建、使用和删除 API 密钥,以实现自动化工作流 +sidebar_position: 4 +--- + +# Programmatic API Key Management + +本指南解释了如何利用 Unraid API CLI 通过编程方式创建、使用和删除 API 密钥,从而实现自动化工作流和脚本。 + +## 概述 + +`unraid-api apikey` 命令支持交互模式和非交互模式,适用于: + +- 自动化部署脚本 +- CI/CD 管道 +- 临时访问权限供应 +- 基础设施即代码工作流 + +:::tip[Quick 开始] +跳转到 [完整工作流示例](#complete-workflow-example) 查看一切操作。 +::: + +## 通过编程方式创建 API 密钥 + +### 使用 JSON 输出进行基本创建 + +使用 `--json` 标志获取机器可读的输出: + +```bash +unraid-api apikey --create --name "workflow key" --roles ADMIN --json +``` + +**输出:** + +```json +{ + "key": "your-generated-api-key-here", + "name": "workflow key", + "id": "generated-uuid" +} +``` + +### 高级创建以及权限管理 + +```bash +unraid-api apikey --create \ + --name "limited access key" \ + --permissions "DOCKER:READ_ANY,ARRAY:READ_ANY" \ + --description "Read-only access for monitoring" \ + --json +``` + +### 处理现有密钥 + +如果已有同名密钥,使用 `--overwrite`: + +```bash +unraid-api apikey --create --name "existing key" --roles ADMIN --overwrite --json +``` + +:::warning[Key 替换] +`--overwrite` 标志将永久替换现有密钥。旧密钥会立即失效。 +::: + +## 通过编程方式删除 API 密钥 + +### 非交互删除 + +通过名称删除密钥,无提示: + +```bash +unraid-api apikey --delete --name "workflow key" +``` + +**输出:** + +``` +Successfully deleted 1 API key +``` + +### 删除的 JSON 输出 + +使用 `--json` 标志获取机器可读的删除确认: + +```bash +unraid-api apikey --delete --name "workflow key" --json +``` + +**成功输出:** + +```json +{ + "deleted": 1, + "keys": [ + { + "id": "generated-uuid", + "name": "workflow key" + } + ] +} +``` + +**错误输出:** + +```json +{ + "deleted": 0, + "error": "No API key found with name: nonexistent key" +} +``` + +### 错误处理 + +指定密钥不存在时: + +```bash +unraid-api apikey --delete --name "nonexistent key" +# Output: No API keys found to delete +``` + +**JSON 错误输出:** + +```json +{ + "deleted": 0, + "message": "No API keys found to delete" +} +``` + +## 完整工作流示例 + +以下是一个临时访问权限供应的完整示例: + +```bash +#!/bin/bash +set -e + +# 1. Create temporary API key +echo "Creating temporary API key..." +KEY_DATA=$(unraid-api apikey --create \ + --name "temp deployment key" \ + --roles ADMIN \ + --description "Temporary key for deployment $(date)" \ + --json) + +# 2. Extract the API key +API_KEY=$(echo "$KEY_DATA" | jq -r '.key') +echo "API key created successfully" + +# 3. Use the key for operations +echo "Configuring services..." +curl -H "Authorization: Bearer $API_KEY" \ + -H "Content-Type: application/json" \ + -d '{"provider": "azure", "clientId": "your-client-id"}' \ + http://localhost:3001/graphql + +# 4. Clean up (always runs, even on error) +trap 'echo "Cleaning up..."; unraid-api apikey --delete --name "temp deployment key"' EXIT + +echo "Deployment completed successfully" +``` + +## 命令参考 + +### 创建命令选项 + +| 标志 | 描述 | 示例 | +| ----------------------- | -------- | --------------------------------- | +| `--name ` | 密钥名称(必需) | `--name "my key"` | +| `--roles ` | 逗号分隔的角色 | `--roles ADMIN,VIEWER` | +| `--permissions ` | 资源:操作对 | `--permissions "DOCKER:READ_ANY"` | +| `--description ` | 密钥描述 | `--description "CI/CD key"` | +| `--overwrite` | 替换现有密钥 | `--overwrite` | +| `--json` | 机器可读输出 | `--json` | + +### 可用角色 + +- `ADMIN` - 完整系统访问 +- `CONNECT` - Unraid Connect 功能 +- `VIEWER` - 只读访问 +- `GUEST` - 限制访问 + +### 可用资源和操作 + +**资源:** `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` + +**操作:** `CREATE_ANY`, `CREATE_OWN`, `READ_ANY`, `READ_OWN`, `UPDATE_ANY`, `UPDATE_OWN`, `DELETE_ANY`, `DELETE_OWN` + +### 删除命令选项 + +| 标志 | 描述 | 示例 | +| --------------- | ---------- | ----------------- | +| `--delete` | 启用删除模式 | `--delete` | +| `--name ` | 要删除的密钥(可选) | `--name "my key"` | + +**注意:** 如果省略 `--name`,命令将以交互方式运行。 + +## 最佳实践 + +:::info[Security 最佳实践] +**最小权限** + +- 尽可能使用特定权限代替 ADMIN 角色 +- 示例:`--permissions "DOCKER:READ_ANY"` 而不是 `--roles ADMIN` + +**密钥生命周期管理** + +- 使用后始终清理临时密钥 +- 安全地存储 API 密钥(环境变量、秘密管理) +- 使用描述性名称和描述进行审计跟踪 +::: + +### 错误处理 + +- 每个命令后检查退出代码 (`$?`) +- 在 bash 脚本中使用 `set -e` 实现快速失败 +- 使用 `trap` 实现适当的清理 + +### 密钥命名 + +- 使用包含用途和日期的描述性名称 +- 名称必须仅包含字母、数字和空格 +- 支持 Unicode 字母 + +## 故障排除 + +### 常见问题 + +:::note[Common 错误信息] +**"API 密钥名称只能包含字母、数字和空格"** + +- **解决方法:** 删除特殊字符如连字符、下划线或符号 + +**"名为 'x' 的 API 密钥已存在"** + +- **解决方法:** 使用 `--overwrite` 标志或选择不同名称 + +**"请为密钥添加至少一个角色或权限"** + +- **解决方法:** 指定 `--roles` 或 `--permissions`(或两者皆有) +::: + +### 调试模式 + +为故障排除,使用调试日志运行: + +```bash +LOG_LEVEL=debug unraid-api apikey --create --name "debug key" --roles ADMIN +``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx new file mode 100644 index 0000000000..a410b6f4f9 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/API/upcoming-features.mdx @@ -0,0 +1,171 @@ +--- +title: 路线图与功能 +description: Unraid API 的当前状态和即将推出的功能 +sidebar_position: 10 +--- + +# 路线图与功能 + +:::info[Development 状态] +This roadmap outlines completed and planned features for the Unraid API. Features and timelines may change based on development priorities and community feedback. +::: + +## 功能状态图例 + +| 状态 | 描述 | +| ---------- | ---------- | +| ✅ **已完成** | 功能已完成并可用 | +| 🚧 **进行中** | 目前正在积极开发中 | +| 📅 **计划中** | 计划进行未来开发 | +| 💡 **考虑中** | 正在评估是否将来纳入 | + +## 核心基础设施 + +### 已完成的功能 ✅ + +| 功能 | 自何时可用 | +| ------------------------- | ------------------ | +| **API开发环境改进** | v4.0.0 | +| **包括 API 在 Unraid 操作系统中** | Unraid v7.2-beta.1 | +| **将API从Connect插件中分离** | Unraid v7.2-beta.1 | + +### 即将推出的功能 📅 + +| 功能 | 目标时间线 | +| ----------- | -------------------------------------------------------- | +| **使API开源** | 已完成 — 2025年1月开源([GitHub](https://github.com/unraid/api)) | +| **插件的开发工具** | 2025年第二季度 | + +## 安全与认证 + +### 已完成的功能 ✅ + +| 功能 | 自何时可用 | +| -------------- | ------------------ | +| **权限系统重写** | v4.0.0 | +| **OIDC/SSO支持** | Unraid v7.2-beta.1 | + +### 开发中 🚧 + +- **用户界面组件库** - 改进了UI的安全组件 + +## 用户界面改进 + +### 计划中的功能 📅 + +| 功能 | 目标时间线 | 描述 | +| ------------ | ----------- | ----------------------- | +| **新设置页面** | 2025年第二季度 | 现代化的设置界面,改善的用户体验 | +| **自定义主题创作者** | 2025年第二至三季度 | 允许用户创建和分享自定义主题 | +| **新连接设置界面** | 2025年第一季度 | 重新设计的 Unraid Connect 配置 | + +## 阵列管理 + +### 已完成的功能 ✅ + +| 功能 | 自何时可用 | +| ---------- | ------ | +| **阵列状态监控** | v4.0.0 | + +### 计划中的功能 📅 + +| 功能 | 目标时间线 | 描述 | +| ----------- | --------- | ---------- | +| **存储池创建界面** | 2025年第二季度 | 简化的池创建工作流程 | +| **存储池状态界面** | 2025年第二季度 | 实时池健康状况监控 | + +## Docker集成 + +### 已完成的功能 ✅ + +| 功能 | 自何时可用 | +| ---------------- | ------ | +| **Docker容器状态监控** | v4.0.0 | + +### 计划中的功能 📅 + +| 功能 | 目标时间线 | 描述 | +| -------------------- | --------- | ---------------------- | +| **新Docker状态界面设计** | 2025年第三季度 | 现代化的容器管理UI | +| **新Docker状态界面** | 2025年第三季度 | 新设计的实施 | +| **Docker容器设置界面** | 2025年第三季度 | 精简的容器部署 | +| **Docker Compose支持** | 待定 | 原生docker-compose.yml支持 | + +## 共享管理 + +### 已完成的功能 ✅ + +| 功能 | 自何时可用 | +| --------------- | ------ | +| **阵列/缓存共享状态监控** | v4.0.0 | + +### 考虑中 💡 + +- **存储共享创建与设置** - 改进的共享配置选项 +- **存储共享管理界面** - 统一的共享管理仪表盘 + +## 插件系统 + +### 计划中的功能 📅 + +| 功能 | 目标时间线 | 描述 | +| ---------- | --------- | ------------ | +| **新插件界面** | 2025年第三季度 | 重新设计的插件管理UI | +| **插件管理界面** | 待定 | 高级插件配置 | +| **插件开发工具** | 待定 | 用于开发者的SDK和工具 | + +## 通知 + +### 已完成的功能 ✅ + +| 功能 | 自何时可用 | +| -------- | ------ | +| **通知系统** | v4.0.0 | +| **通知界面** | v4.0.0 | + +--- + +## 最近发布 + +:::info[Full 发布历史] +有关所有版本、变更日志和下载链接的完整列表,请访问[Unraid API GitHub Releases](https://github.com/unraid/api/releases)页面。 +::: + +### Unraid v7.2-beta.1亮点 + +- 🎉 **API 已包含在 Unraid 操作系统中** – 本地集成 +- 🔐 **OIDC/SSO支持** - 企业级身份验证 +- 📦 **独立的API** - 从Connect插件中分离 + +### v4.0.0亮点 + +- 🛡️ **权限系统重写** - 增强的安全性 +- 📊 **全面监控** - 阵列、Docker和共享状态 +- 🔔 **通知系统** - 实时警报和通知 +- 🛠️ **开发者环境** - 改进的开发工具 + +## 社区反馈 + +:::tip[Have 一个功能请求?] +已收到社区反馈;API于2025年1月开源!请通过以下方式提交功能请求和反馈: + +- [Unraid论坛](https://forums.unraid.net) +- [GitHub问题](https://github.com/unraid/api/issues) - 该API现在是开源的! +::: + +## 版本支持 + +| Unraid 版本 | API版本 | 支持状态 | +| ------------------- | --------- | ------ | +| Unraid v7.2-beta.1+ | 最新 | ✅ 活跃 | +| 7.0 - 7.1.x | 通过插件的v4.x | ⚠️ 有限 | +| 6.12.x | 通过插件的v4.x | ⚠️ 有限 | +| \< 6.12 | 不支持 | ❌ 终止支持 | + +:::warning[Legacy 支持] +在 Unraid 7.2 之前的版本,需要通过 Unraid Connect 插件来安装API。一些功能可能在旧版本上不可用。 +::: + +:::tip[Pre-release 版本] +您始终可以安装 Unraid Connect 插件以访问 API 的预发布版本,并在其包含于 Unraid 操作系统发布之前获取新功能的抢先体验。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/contribute/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/contribute/_category_.json new file mode 100644 index 0000000000..52a3547e4d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/contribute/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "贡献", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx new file mode 100644 index 0000000000..761263606c --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/contribute/style-guide.mdx @@ -0,0 +1,161 @@ +--- +sidebar_position: 1 +sidebar_label: 样式指南 +--- + +# Unraid 文档样式指南 + +Unraid OS 是由 LimeTech 团队和 Unraid 社区共同塑造的。我们的文档旨在做到全面、准确和最新。由于我们的用户来自全球各地,本指南为统一、清晰地撰写 Unraid 文档奠定基础。 + +--- + +## 写作惯例 + +### 风格和语气 + +我们的语气在友好和正式之间取得平衡,旨在为用户提供详细准确且有亲和力的内容。 + +- 在操作固定且没有偏差余地时,使用正式直接的指令。 +- 在提供上下文或场景时,使用对话性、解释性的语气,使内容更易接近。 + +作为贡献者,选择语气时要考虑上下文和受众。 + +:::important +由于 Unraid OS 拥有全球用户,我们避免使用专业术语、俚语或成语。这些可能会让非英语母语者感到困惑,并加大翻译过程的复杂性。 +::: + +### 目标受众:为所有水平的读者写作 + +我们的读者从了解系统内部的 Linux 专家到初次使用 Unraid 的新手都有。 + +以清晰和包容的方式书写,以便专家和新手都能顺畅地跟随。 + +### ABC 方法:准确、简洁、清晰 + +我们优先考虑: + +- **准确性**:确保内容正确并经过彻底测试。 +- **简洁性**:在不牺牲必要细节的前提下简明扼要。 +- **清晰性**:使用简单的语言和结构来保证内容易于理解。 + +--- + +## 语法结构 + +Unraid 文档结合使用 Markdown 格式和特定文本样式,帮助用户快速识别界面元素并导航 WebGUI。 + +| 元素类型 | 样式惯例 | Markdown 语法 | 示例 / 描述 | +| --------- | ------------ | ------------------- | ------------------------ | +| 选项或按钮名称 | 粗体 | `**text**` | 选择 **完成** | +| 用户输入值 | 斜体 | `*text*` | 输入值 *50gb* | +| 导航路径 | 粗体 + 斜体;使用 → | `***nav1 → nav2***` | ***设置 → 磁盘设置*** | +| 选项卡标签 | 粗体 | **标签名称** | 要选择的选项卡名称 | +| 复选框标签 | 粗体 | **复选框标签** | 复选框选项的标签 | +| 下拉菜单选项 | 斜体 | *下拉选项* | 下拉菜单中的可选选项 | +| 对话框标题 | 三级标题 | `### Dialog Title` | 弹出对话框或模态窗口的标题 | +| 工具提示文本 | 内联斜体 | *tooltip text* | 悬停时显示的简短说明 | +| 菜单项 | 粗体 + 斜体 | ***菜单 → 子菜单 → 项目*** | 通过嵌套菜单进行导航 | +| CLI 和系统输出 | 等宽字体(内联代码) | `` `text` `` | 导航到 `http://tower.local` | +| 错误消息 | 等宽字体(内联代码) | `` `错误:消息` `` | 精确的错误字符串或日志 | +| 文档标题 | 一级标题 | `# 标题` | (渲染为)`

标题

` | +| 文档部分 | 二级标题 | `## 标题` | (渲染为)`

标题

` | +| 文档子章节 | 三级标题 | `### 标题` | (渲染为)`

标题

` | + +:::note +每一个二级标题(`##`)及更小的标题都显示在页面目录(TOC)侧边栏中,便于导航。 +::: + +--- + +## 列表和表格格式化 + +有效使用结构化元素(如列表和表格)能改善信息清晰度,帮助理解,并支持快速参考。 + +### 列表 + +列表帮助用户吸收、回忆和遵循关键要点或步骤。主要有两种类型,各有明确的用例: + +- **无序列表**(符号):用于分组相关项目,而不暗示顺序。 + *例子:* “常见的 Unraid OS 工具列表。” + +- **有序列表**(编号):用于显示必要的顺序或过程。 + *例子:* “要启动 %%array|array%%...” + +:::tip[Best 实践] +- 尝试用一个以冒号结尾的清晰提示句引导列表。 +- 在无序列表中使用 4-6 个项目的最大方便扫描和记忆。更长的列表可能作为表格更好。 +::: + +### 表格 + +表格是通过将信息分组为行和列来组织相关数据的好方法,从而使比较更快更精确。 + +:::tip[Best 实践] +- 对于需要并排比较的多个相关数据点,使用表格。 +- 避免使用仅有 1 或 2 个单元的表格;改用符号列表或句子。 +- 用一个说明其目的和内容的句子来引入表格。 +::: + +--- + +## 缩写、首字母缩写和简称 + +为了减少读者的混淆,请遵循这些关于缩写的原则: + +- **缩写**是单词的缩短形式,通常在 Unraid 文档中不必要,除非它们是普遍认可的。 +- **首字母缩写词**通过其他词的首字母创建新词(例如,RAID)。 +- **简称**使用首字母并分别发音(例如,OS,ZFS)。 + +**建议:** + +- 优先使用现有的、熟知的首字母缩写词或简称,读者熟悉的。 +- 避免仅为简洁而创建新缩写。 +- 首次使用不常见的首字母缩写词或简称时,务必拼出完整形式,并在后面加括号注明缩写。 + *例子:* 虚拟机磁盘 (VMDK) + +--- + +## 链接到其他文件或网站 + +战略性链接允许读者探索相关主题并增强他们的理解。使用这些指南来实现实用且可访问的超链接。 + +### 链接文本指南 + +- 链接文本应清楚地描述目的地,帮助所有读者掌握链接的用途。 +- 避免使用诸如“点击此处”或“阅读更多”之类的模糊链接文本,因为这些缺乏上下文。 +- 避免使用原始 URL 作为内联链接文本。 + +### 链接格式化 + +- 使用内联 Markdown 链接: + +``` +You can also check our [getting started guide](../unraid-os/getting-started/quick-start-guide.mdx). +``` + +- 始终链接到最相关的权威资源。 + +### 添加术语表术语 + +Unraid 文档利用了集中的术语表系统,以确保技术术语的一致性和可访问性。术语表条目保存在根目录的 `glossary.yaml` 文件中。 + +添加或更新术语: + +1. 使用以下模板编辑 `glossary.yaml`: + +``` +GlossaryTerm: + term: Display Name + def: Full definition text. + link:
Optional detailed link +``` + +2. 要添加工具提示功能,请在文档中使用以下语法引用术语: + + ``` + %%Term|GlossaryTerm%% + ``` + + ……管道左侧为希望显示的文本,右侧为 YAML 文件中的相应术语条目。 + +3. 3. [术语表页面](../glossary.mdx)将自动更新以包含新术语。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/docs-home.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/docs-home.mdx new file mode 100644 index 0000000000..027e63bf22 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/docs-home.mdx @@ -0,0 +1,55 @@ +--- +slug: / +sidebar_position: 0 +--- + +import Term from "@lunaticmuch/docusaurus-terminology/components/tooltip.js"; + +# Unraid 文档 + +欢迎使用官方的 Unraid 文档!这一全面的资源旨在帮助您充分利用您的 Unraid 服务器,无论您是在设置首个系统,还是管理一个复杂的家庭实验室环境。 + +## 开始入门 + +如果您是 Unraid 新手,建议先阅读这些基本指南: + +- **[Unraid 是什么?](unraid-os/getting-started/what-is-unraid.mdx)** - 了解 Unraid 的核心功能和优势 +- **[设置 Unraid](unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx)** - 从安装到首次启动的完整设置指南 +- **[浏览 WebGUI](./unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx)** - 自信地导航 WebGUI + +## 需要帮助吗? + +### 社区论坛 + +[Unraid论坛](https://forums.unraid.net/)是Unraid社区的核心。在这里你可以找到: + +- 用户讨论和故障排除 +- 插件和 Docker 容器支持 +- 硬件推荐和兼容性讨论 +- 社区开发的解决方案和变通方法 + +### 官方资源 + +- **[Unraid 首页](https://unraid.net/)** - 产品信息、下载和许可 +- **[社区应用程序](https://unraid.net/community/apps)** - 浏览和安装插件及 Docker 容器 +- **[Unraid Connect](https://connect.myunraid.net/)** - 远程管理仪表板 + +### 支持选项 + +- **社区支持**:在[论坛](https://forums.unraid.net/)中发布问题 +- **文档支持**:使用搜索功能和导航来查找答案 +- **插件支持**:检查[社区应用程序](https://forums.unraid.net/forum/89-community-applications/)部分中的单个插件主题 + +## 术语表术语 + +在本文档中,您会注意到以 %%WebGUI|web-gui%% 格式的术语。这些是术语表中的术语,提供快速定义和解释。 + +要使用它们,将鼠标悬停在术语表术语上以查看包含定义的工具提示。 您可以在 [术语表页面](glossary.mdx) 中查看整个术语表。 + +## 贡献 + +发现错误或有建议?该文档是开源的,并托管在 [GitHub](https://github.com/unraid/docs) 。我们欢迎来自社区的贡献! + +--- + +**准备好深入了解了吗?** 从 [入门指南](unraid-os/getting-started/what-is-unraid.mdx) 部分开始,或者使用搜索功能查找特定信息。如果您找不到所需内容,[Unraid论坛](https://forums.unraid.net/) 始终为您提供帮助! diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/glossary.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/glossary.mdx new file mode 100644 index 0000000000..590ec32971 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/glossary.mdx @@ -0,0 +1,8 @@ +--- +sidebar_position: 999 +sidebar_label: 词汇表 +--- + +# 词汇表 + +%%RemarkAutoGlossary::list\_all%% diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json new file mode 100644 index 0000000000..1df4890eba --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Unraid Connect", + "position": 2, + "link": { + "type": "generated-index" + } +} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx new file mode 100644 index 0000000000..20f73da83a --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/automated-flash-backup.mdx @@ -0,0 +1,116 @@ +--- +sidebar_position: 2 +sidebar_label: 自动闪存备份 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# 自动闪存备份 + +备份您的 Unraid 闪存驱动器对于快速恢复因硬件故障、意外删除或数据损坏等问题至关重要。虽然本地备份(如将闪存驱动器复制到其他 USB 设备或网络共享)可以轻松访问和控制,但它们可能会受到盗窃、火灾或可能影响整个设置的硬件故障的影响。另一方面,云备份为您的配置提供安全的异地存储,保护您免受本地灾难的影响,并允许您从任何地方恢复。 + +与专注于用户数据、VMs或Docker容器的传统备份不同,闪存备份特别保留您的Unraid OS配置、许可和系统设置。这一重点使您能够迅速恢复服务器的操作,而无需从头开始。Unraid Connect允许自动、基于云的OS配置备份。如果闪存设备出现故障,您可以使用[Unraid USB闪存创建工具](https://unraid.net/download)快速恢复您的最新备份。 + +使用 Unraid Connect 时,闪存备份是完全可选的。 + +:::tip +使用本地和云备份方法以获得最大保护效果。云备份提供了本地解决方案所不具有的额外弹性层。 +::: + +## 数据收集和隐私 + +
+ 点击查看收集了哪些数据以及我们如何处理 + + Unraid Connect在使用闪存备份时严肃对待您的隐私和数据: + +

目的

+ + Flash 备份仅保留恢复 Unraid OS 环境所需的配置文件。这样有助于在闪存设备发生故障时快速恢复并保持服务连续性。 + +

数据收集

+ + 备份仅包括配置文件,确保排除敏感信息,例如密码和%%WireGuard|wireguard%% 密钥。Docker模板XML文件可能是备份的一部分,并可能包含特定应用程序的凭据。 + +

数据保留

+ + 仅保留最新的备份。如果备份超过某些限制——特别是如果单个文件超过10 MB或总存储库大小超过100 MB——它将被删除并重新创建。当您停用闪存备份功能或在一定时间不活动后,备份也会被移除。 + +

数据共享

+ + 闪存备份数据绝不会与第三方共享。它仅用于为您提供备份和恢复服务。 +
+ +## 启用闪存备份 + +Unraid Connect 在完整加密可用之前,不包括敏感数据(如帐户密码和 %%WireGuard|wireguard%% 密钥);然而,Docker 模板 XML 文件(可能包含应用程序凭据)是包括在内的。加密解决方案正在开发中。 + +启用闪存备份: + +1. 前往 ***设置 → 管理访问 → Unraid API***。 + +
+ ![闪存备份激活](/img/flashbackupbutton.png) +
+ +2. 在**闪存备份**下,点击**激活**。 +3. 等待激活和初始备份完成。完成后状态会显示 **已激活:最新**。 + +激活后,任何配置更改将在1-2分钟内自动备份至云端。 + +:::important +备份不包括 config/shadow 和 config/smbpasswd 文件。用户帐户会被保留,但密码不会。在恢复后,您需要重置所有用户密码,包括 root 密码。%%WireGuard|wireguard%% 密钥也未包括在内。 +::: + +Flash 备份旨在存储必要的配置文件,而不是闪存盘的完整副本。它不会备份临时文件(例如日志)或应用程序二进制文件。插件配置包括在内,但应用程序文件将在启动时需要重新下载。单个文件支持最多 10 MB 的备份;如果总备份超过 100 MB,就会被删除和重新创建。 + +## 恢复闪存备份 + +要恢复您的配置: + +1. 登录 Unraid Connect。 +2. 在Dashboard上选择**详细信息**。 +3. 在闪存备份框中,点击**生成闪存备份**。 +4. 系统会创建一个包含您的OS配置和发布版本的zip文件。 +5. 点击**下载闪存备份**以获取zip文件。 +6. 使用[Unraid USB闪存创建工具](https://unraid.net/download)将备份恢复到新的闪存驱动器。 + +### 恢复后步骤 + +使用恢复的闪存驱动器启动后: + +- 在 ***设置 → 管理访问 → Unraid API*** 中重新激活闪存备份。 +- 在用户页面为所有用户(包括root)重置密码。 +- 为**设置→VPN 管理器**中的每个%%VPN Tunnel|vpn-tunnel%%和对等方生成新密钥并下载更新的客户端配置。 +- 如果在启动后无法立刻使用互联网访问,则在恢复连接后通过 ***Apps → Previous Apps*** 重新安装插件。配置文件将准备好使用。 + +## 禁用闪存备份 + +要关闭闪存备份: + +1. 在 ***设置 → 管理访问 → Unraid API*** 中,点击 **停用** 闪存备份。 +2. 在确认对话框中,如果您希望立即删除备份,请勾选 **也删除云备份**。否则,备份将在空闲一段时间后自动删除。 + +## 隐私与安全 + +### 备份加密 + +当前,Flash 备份存储在云中且未加密。作为预防措施,备份中从不包括敏感数据,包括所有用户和 root 密码以及所有 %%WireGuard|wireguard%% 密钥。 + +### 敏感数据政策 + +为保护您的隐私,以下内容**绝不会**存储在云备份中: + +- Unraid root或用户账户密码 +- 公共、私有或共享%%WireGuard|wireguard%%密钥 + +:::note\[Reminder] + +Flash 备份仅用于配置恢复。始终为数据和关键密钥采纳额外的备份策略。 + +::: + +--- + +\* “%%WireGuard|wireguard%%”和“%%WireGuard|wireguard%%”徽标是Jason A. Donenfeld的注册商标。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx new file mode 100644 index 0000000000..aab0354f70 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/overview-and-setup.mdx @@ -0,0 +1,234 @@ +--- +sidebar_position: 1 +sidebar_label: 综述和设置 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ConnectChangeBanner from './partials/customization/change-banner.mdx'; +import ConnectRearrangeDashboard from './partials/customization/rearrange-dashboard.mdx'; +import ConnectSwitchThemes from './partials/customization/switch-themes.mdx'; + +# Unraid Connect 概述及设置 + +**Unraid Connect** 是一个云启用的伴侣,旨在增强您的 Unraid OS 服务器体验。它使服务器管理、监控和维护比以往更简单,将云便利性直接带到您的家庭实验室或企业设置中。 + +Unraid Connect 无缝地与 Unraid OS 协同工作,在不改变核心功能的情况下提升您的服务器体验。您可以将 Unraid Connect 视为您的远程指挥中心。无论身在何处,它通过提供安全的基于 Web 的访问和高级功能来扩展您的 Unraid 服务器的功能。 + +通过 Unraid Connect,您可以: + +- 从世界上任何设备远程访问和管理您的 Unraid 服务器。 +- 监控实时服务器健康状况和资源使用情况,包括存储、网络和Docker容器状态。 +- 执行并安排安全的在线闪存备份以保护您的配置和许可证信息。 +- 接收有关服务器健康、存储状态和关键事件的通知。 +- 使用动态远程访问和服务器深度链接快速导航到特定管理页面或解决问题。 +- 从单一仪表板管理多个服务器,非常适合拥有多台 Unraid 系统的用户。 + +Unraid Connect不仅仅是一个附加组件;它是Unraid平台的一个重要扩展,旨在最大化Unraid OS投资的价值、安全性和便利性。 + +[**点击此处进入 Unraid Connect!**](https://connect.myunraid.net) + +## 数据收集和隐私 + +
+ 点击查看收集了哪些数据以及我们如何处理 + + Unraid Connect 优先考虑您的隐私和透明度。以下是关于我们如何处理您的数据的须知: + +

收集哪些数据及原因

+ + 当您的服务器连接到 Unraid.net 时,它会与我们的基础设施建立一个安全连接,并仅传输无缝体验 Unraid Connect 仪表板所需的数据。这包括: + + - 服务器主机名、描述和图标 + - 密钥文件详细信息和闪存 %%GUID|guid%% + - 本地访问URL和LAN IP(仅当安装了证书时) + - 远程访问URL和WAN IP(如果启用了远程访问) + - 已安装的 Unraid 版本和正常运行时间 + - Unraid Connect插件版本和unraid-api版本/运行时间 + - %%Array|array%% 大小和使用情况(仅限数字,无文件具体信息) + - 安装和运行的Docker容器和%%VMs|vm%%的数量 + + 我们仅将此数据用于启用 Unraid Connect 功能,例如远程监控、管理和通知。这些数据不会用于广告或分析。 + +

数据保留政策

+ + - 我们只保留您的服务器最近的更新;不存储过去的数据。 + - 只要您的服务器注册并使用 Unraid Connect,数据就会被保留。 + - 要删除您的数据,只需卸载插件并移除通过Let's Encrypt颁发的%%SSL|ssl%%证书。 + +

数据共享

+ + - 除非必要用于 Unraid Connect 服务,否则您的数据 **不会与第三方共享**,例如通过 Let’s Encrypt 进行证书配置。 + - 除上述规定外,我们不会收集或分享任何用户内容、文件详细信息或个人信息。 + + 欲了解更多详细信息,请查阅我们的[政策](https://unraid.net/policies)页面。 +
+ +## 安装 + +Unraid Connect 作为一个插件提供,需要 Unraid OS 6.10 或更高版本。在开始之前,请确保您的服务器已连接到互联网并安装了 [Community Applications](../unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx) 插件。 + +安装 Unraid Connect: + +1. 在 Unraid %%WebGUI|web-gui%%中导航到 **应用程序** 标签。 +2. 搜索 **Unraid Connect** 并继续安装插件。请等待安装完全完成后再关闭对话框。 +3. 在 Unraid %%WebGUI|web-gui%% 的右上角,点击 Unraid 标志,然后选择 **登录**。 + +
+ ![Unraid Connect 图标](/img/icon_unraidconnect.png) +
+ +4. 使用您的 Unraid.net 凭据登录或在必要时创建一个新帐户。 +5. 按照屏幕上的说明将您的服务器注册到 Unraid Connect。 +6. 注册后,您可以访问[Unraid Connect仪表板](https://connect.myunraid.net)进行集中管理。 + +:::note +Unraid Connect 需要一个 myunraid.net 证书来进行安全的远程管理和访问。要颁发证书,请转到 %%WebGUI|web-gui%% 中的 ***设置 → 管理访问***,然后在证书部分点击 **颁发**。 +::: + +## 仪表盘 + +**Unraid Connect 仪表板**提供您所有注册的Unraid服务器的集中云视图,具有以下功能: + +- \*\*我的服务器:\*\*所有链接的服务器会在侧边栏中显示为互动磁贴,便于选择。 +- **状态(概览):** 快速查看哪些服务器在线或离线,以及它们的 Unraid OS 版本、许可证类型和最近的活动。 +- \*\*健康和警报:\*\*视觉指示器显示服务器健康、通知和更新状态。 + +当您点击服务器上的**详情**时,您将会看到: + +- \*\*在线/离线:\*\*实时连接状态。 +- **许可证类型:** Starter, Unleashed, 或 Lifetime。 +- \*\*运行时间:\*\*服务器已运行的时长。 +- \*\*Unraid OS版本:\*\*当前版本和更新可用性。 +- \*\*存储:\*\*所有阵列和池的总空间和可用空间。 +- \*\*健康指标:\*\*CPU使用率、内存使用率和温度(如支持)。 +- \*\*通知:\*\*硬件/软件警报、警告和错误。 +- \*\*闪存备份:\*\*最后一次成功备份的状态和日期。 + +--- + +## 远程管理您的服务器 + +:::tip +要使用所有管理功能,请在您的服务器上的***设置→管理访问***下颁发myunraid.net证书。 +::: + +具备有效的**myunraid.net**证书,Unraid Connect直接从连接的网络界面启用安全的远程服务器管理。 + +远程管理功能包括: + +- **远程WebGUI访问:** 从任何地方访问%%WebGUI|web-gui%%。 +- **Array controls:** Start or stop %%array|array%%s and manage storage pools. +- **Docker and VM management:** View, start, stop, and monitor containers and %%VM|vm%%s. +- **奇偶校验和擦洗:** 启动 %%parity check|parity-check%% 或 %%ZFS|zfs%%/%%BTRFS|btrfs%% 擦洗工作。 +- \*\*闪存备份:\*\*触发并监控到云端的闪存设备备份。 +- \*\*诊断:\*\*下载用于支持的诊断zip文件 +- \*\*通知:\*\*查看并确认系统警报。 +- \*\*服务器控制:\*\*远程重新启动或关闭服务器。 +- **用户管理:** 管理 Unraid.net 账户访问和注册。 + +您可以通过单个浏览器窗口从任何设备 - 手机、平板电脑或计算机 - 管理多个服务器。 + +--- + +## 深度链接 + +在 Unraid Connect 中的深度链接让您可以通过单击直接跳转到 Unraid %%WebGUI|web-gui%% 的特定部分。只需单击 Connect 接口中的任一圆圈链接按钮(如下所示)即可直接进入服务器的相关管理页面。 + +
+ ![深度链接](/img/Deep-linking.png) +
+ +--- + +## 自定义 + +Unraid Connect 提供灵活的仪表板体验,允许您个性化服务器视图和外观。定制选项列举如下,方便参考。 + + + + + + + + + + + + + + + +--- + +## 许可证管理 + +在 Unraid Connect 中管理您的许可证很简单。在 **我的密钥** 部分,您可以: + +- 查看或重新发布到新USB的密钥。 +- 直接从Connect用户界面升级您的许可证级别。 +- 下载注册密钥文件以备份或转移。 +- 查看许可证状态和到期(如果适用)。 + +
+ ![我的密钥](/img/mykeys.png) +
+ +您无需离开连接界面即可管理或升级您的许可证。 + +--- + +## 语言本地化 + +Unraid Connect 支持多种语言,以迎合全球用户的需求。您可以通过 Connect 界面的语言选择器更改语言偏好。 + +要更改您的语言偏好: + +1. 打开Connect用户界面。 +2. 转到语言选择器。 + +
+ ![语言选择器](/img/languageselector.png) +
+ +3. 从列表中选择您的首选语言。 + +界面将自动更新以反映您的选择。 + +--- + +## 退出登录 + +您可以随时从 ***设置 → 管理访问 → Unraid Connect → 账户状态*** 点击 **退出登录** 按钮来注销 Unraid Connect。 + +当您退出登录时: + +- 服务器仍留在Connect仪表板上,但您将失去访问远程管理功能的权限。 +- 对于该服务器,远程访问、基于云的闪存备份和其他 Unraid Connect 功能将会被禁用。 +- 您仍然可以下载您的注册密钥,但在您重新登录之前,您无法远程管理或监控服务器。 +- 退出登录**不会**将服务器从本地网络断开连接或影响本地访问。 + +--- + +## 卸载插件 + +卸载 Unraid Connect 插件时: + +- 所有闪存备份文件将被停用并从本地闪存驱动器中删除。 +- 云备份标记为从 Unraid 服务器中移除;它们将保留 30 天,之后将永久清除。如需立即删除,请在卸载前[禁用闪存备份](./automated-flash-backup.mdx)。 +- 远程访问将被禁用。确保从路由器中移除任何相关的端口转发规则。 +- 您的服务器将从 Unraid.net 注销。 + +:::note +卸载插件**不会**将服务器的 URL 从 `https://yourpersonalhash.unraid.net` 恢复为 `http://computername`。如果您希望更改访问 URL,请参考[禁用本地访问的 SSL](../unraid-os/system-administration/secure-your-server/securing-your-connection.mdx#disabling-ssl-for-local-access)。 +::: + +--- + +## 连接错误 + +如果在Unraid Connect中遇到连接错误,请从%%WebGUI|web-gui%%[打开终端](../unraid-os/system-administration/advanced-tools/command-line-interface.mdx),然后运行: + +``` +unraid-api restart +``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx new file mode 100644 index 0000000000..5c53b5a191 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/change-banner.mdx @@ -0,0 +1 @@ +要在 Connect 仪表盘上展示您服务器的横幅图片,请从您的 %%WebGUI|web-gui%% 中上传或选择横幅图片,路径为 ***设置 → 显示设置 → 横幅***。此横幅将自动显示在您的 Connect 仪表盘中。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx new file mode 100644 index 0000000000..bec8e128ea --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/rearrange-dashboard.mdx @@ -0,0 +1 @@ +您可以通过拖放服务器块来自定义您的仪表盘布局。在 Connect 仪表盘上,点击任一磁贴上的汉堡(≡)按钮来重新排列其位置。这使您可以优先选择对您最重要的信息和服务。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx new file mode 100644 index 0000000000..13579c363b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/customization/switch-themes.mdx @@ -0,0 +1 @@ +通过点击 Connect UI 最右侧的太阳或月亮图标在暗模式和亮模式之间切换。您的主题偏好将立即应用于 Connect 仪表盘,以确保一致的体验。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx new file mode 100644 index 0000000000..1a5bf054ea --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/dynamic.mdx @@ -0,0 +1,5 @@ +**动态远程访问**提供到您的 WebGUI 的安全按需访问。 + +- **只有在需要时才启用访问。** WebGUI 默认情况下是关闭的,从而最小化攻击面。 +- **支持与 UPnP 或手动端口转发一起使用。** +- **通过 Connect 仪表板或 API 自动开启和关闭访问**,会话受时长限制,以增加安全性。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx new file mode 100644 index 0000000000..3f01526a19 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/partials/remote-access/static.mdx @@ -0,0 +1,4 @@ +**静态远程访问**使您的 WebGUI 始终可以通过互联网访问。 + +- **服务器总是可以通过配置的端口从互联网访问。** +- **较高风险:** WebGUI 始终暴露在广域网中,增加了潜在的漏洞。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx new file mode 100644 index 0000000000..bbd46a9edc --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-connect/remote-access.mdx @@ -0,0 +1,155 @@ +--- +sidebar_position: 3 +sidebar_label: 远程访问 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RemoteAccessDynamic from './partials/remote-access/dynamic.mdx'; +import RemoteAccessStatic from './partials/remote-access/static.mdx'; + +# 远程访问 + +从任何地方远程访问您的 Unraid WebGUI,解锁安全的基于浏览器的访问。这一功能对于在家外管理服务器非常理想——不需要复杂的网络或 VPN Tunnel 设置。对于更高级的需求,如连接到 Docker 容器或访问网络驱动器,仍建议使用 VPN Tunnel。 + +:::important[Security 提醒] +在启用远程访问之前,请确保您的 root 密码是强且唯一的。如有需要,请在 **用户** 页面上进行更新。此外,保持您的 Unraid 操作系统更新至最新版本,以防范安全漏洞。[了解更多关于更新 Unraid 的信息](../unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx)。 +::: + +通过 Unraid Connect 提供的远程访问: + +- **便利性** - 通过安全的云托管连接快速从任何地方访问您的服务器管理界面。 +- **安全性** - 动态访问模式仅在必要时允许对互联网的访问,帮助减少自动化攻击的风险。 +- **简易性** - 对于基本管理任务,无需手动端口转发或 VPN 客户端设置。 + +:::tip +对于全面的网络访问或高级使用案例,请考虑设置[Tailscale](../unraid-os/system-administration/secure-your-server/tailscale.mdx)或 VPN 解决方案。 +::: + +--- + +## 初步设置 + +要启用远程访问: + +1. 在 Unraid WebGUI 导航到***设置 → 管理访问***。 +2. 检查 **HTTPS 端口**(默认:443)。如果此端口正在被使用(例如,由 Docker 占用),请选择一个未使用的端口号,如 3443、4443 或 5443。 +3. 如果更改了任何设置,请点击**应用**。 +4. 在**CA 签名证书文件**下,点击**提供**以生成受信任的证书。 + +您的 Unraid 服务器将准备好通过 WebGUI 接受使用配置端口和受信任证书的安全远程连接。 + +--- + +## 选择远程访问类型 + +Unraid Connect 提供两种模式: + + + + + + + + + + + +| 功能 | 动态远程访问 | 静态远程访问 | +| -------------------------- | --------------- | --------- | +| %%WebGUI\|web-gui%% 向互联网开放 | 仅在启用时 | 始终 | +| 攻击面 | 最小化 | 最大化 | +| 自动化 | 通过 Connect 自动开关 | 手动设置,总是开启 | +| %%UPnP\|upnp%% 支持 | 可以 | 可以 | +| | **推荐给大多数人** | | + +## 动态远程访问设置 + +要设置动态远程访问: + +1. 在***设置 → 管理访问 → Unraid API***中,选择远程访问下拉菜单中的动态选项: + - **动态 - UPnP:** 使用%%UPnP|upnp%%自动打开和关闭随机端口(需要在路由器上启用%%UPnP|upnp%%)。 + - \*\*动态 - 手动端口转发:\*\*需要您手动在路由器上转发选定的端口。 + +2. 导航到 [Unraid Connect](https://connect.myunraid.net/),并进入管理或服务器详细页面。 + +3. 如果您的服务器当前无法从您的位置访问,则**动态远程访问**卡片将显示一个按钮。 + +4. 点击按钮以启用 WAN 访问。如果使用 %%UPnP|upnp%%,将创建一个新端口转发租约(通常为 30 分钟)并在活动期间自动续订。 + +5. 该卡将显示当前状态和 UPnP 状态。 + +6. 在 10 分钟不活动后 - 或者如果您点击 **禁用远程访问** - 将自动撤销互联网访问。%%UPnP|upnp%% 租约也会被移除。 + +--- + +## 使用 UPnP(通用即插即用) + +UPnP 自动化了端口转发,简化了远程访问而无需手动路由器配置。 + +配置 UPnP: + +1. **在您的路由器上启用 %%UPnP|upnp%%。** + 确保您的路由器支持 %%UPnP|upnp%% 并确认在路由器设置中已启用。 + +2. **在 Unraid 中启用 %%UPnP|upnp%%。** + 前往 ***设置 → 管理访问*** 并更改 **使用 %%UPnP|upnp%%** 为 **是**。 + +3. **在 Unraid Connect 中选择 %%UPnP|upnp%%。** + 在 Unraid Connect 设置页面,选择远程访问选项为 %%UPnP|upnp%%(选择动态或始终开启)然后点击 **应用**。 + +4. **验证端口转发(仅限“始终打开”)。** + 点击 **检查** 按钮。如果成功,您将看到“您的 Unraid 服务器可从互联网访问”的消息。 + + 对于动态转发,需要点击[Unraid Connect](https://connect.myunraid.net/)中的 **启用动态远程访问** 以允许访问。 + +:::caution\[Troubleshooting] + +如果在重新加载时设置从 %%UPnP|upnp%% 更改为手动端口转发,Unraid 可能无法与您的路由器通信。请仔细检查 %%UPnP|upnp%% 是否已启用,并考虑更新您的路由器固件。 + +::: + +--- + +## 使用手动端口转发 + +手动端口转发提供更大的控制,并且适用于大多数路由器。 + +配置手动端口转发: + +1. \*\*选择一个WAN端口:\*\*选择一个1000以上的随机端口号(例如13856或48653),而不是使用默认的443。 + +2. **在 Unraid 中应用设置:**点击**应用**以保存您选择的端口。 + +3. **配置您的路由器:** 在您的路由器上设置一个端口转发规则,将您选择的 WAN 端口指向服务器的 HTTPS 端口。Unraid 界面提供正确的端口和 IP 地址。 + + 某些路由器可能要求 WAN 端口和 HTTPS 端口一致。如果是这样,请为两者使用相同高随机数。 + +4. **验证端口转发(仅限“始终打开”):** 按 **检查** 按钮。如果一切正常,您将看到“您的 Unraid 服务器可从互联网访问”的消息。 + + 对于动态转发,请确保点击 [Unraid Connect](https://connect.myunraid.net/) 中的 **启用动态远程访问** 以开启访问。 + +5. **访问您的服务器:**登录 [Unraid Connect](https://connect.myunraid.net/),然后点击**管理**链接以远程连接到您的服务器。 + +--- + +## 启用安全本地访问 + +安全本地访问确保所有连接到您的 Unraid WebGUI 的连接,即使在您的家庭或办公室网络内,也通过 HTTPS 加密,从而保护所有敏感信息,例如登录凭据和配置数据。 + +安全本地访问的好处包括: + +- **加密** - 浏览器与服务器之间交换的所有数据都受到保护。 +- **一致性** - 本地和远程访问使用相同的安全 URL。 +- **合规性** - 遵循保护管理界面的安全最佳实践。 + +启用安全本地访问: + +1. 转到***设置 → 管理访问***。 +2. 在**CA 签名证书**部分,检查 DNS 重绑定警告。 + - 如果没有显示警告,将**使用 SSL/TLS** 设置为 **严格**。 + - 如果出现警告,请查看 [DNS 重绑定保护](../unraid-os/system-administration/secure-your-server/securing-your-connection.mdx#dns-rebinding-protection)。 + +:::important +当 %%SSL|ssl%%/%%TLS|tls%% 设置为严格时,客户端设备必须解析服务器的 DNS 名称。如果您的互联网连接失败,可能会失去对 %%WebGUI|web-gui%% 的访问。请参阅[在 DNS 故障时访问您的服务器](../unraid-os/system-administration/secure-your-server/securing-your-connection.mdx#accessing-your-server-when-dns-is-down)以了解恢复步骤。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/_category_.json new file mode 100644 index 0000000000..561152217d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Unraid 操作系统", + "position": 1, + "link": { + "type": "generated-index" + } +} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json new file mode 100644 index 0000000000..a450a8488f --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "高级配置", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json new file mode 100644 index 0000000000..d4c9fde090 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "优化存储", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file 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 new file mode 100644 index 0000000000..bcc9fee110 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx @@ -0,0 +1,342 @@ +--- +sidebar_position: 1 +sidebar_label: ZFS 存储 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# ZFS 存储 + +:::important[Special 谢谢] +我们想要感谢Ed Rawlings([Spaceinvader One](https://www.youtube.com/c/SpaceinvaderOne))所做的专业指导和贡献,这份 %%ZFS|zfs%% 存储文档正是从他的教程和见解中得来的。感谢他持续为 Unraid 用户提供帮助,帮助众多用户掌握高级存储技术。我们珍视他对 Unraid 社区的持续贡献。 +::: + +%%ZFS|zfs%% 为您的 Unraid 系统带来高级的数据完整性、灵活的存储配置和高性能。本指南解释 %%ZFS|zfs%% 的核心概念,并引导您通过 Unraid %%WebGUI|web-gui%% 直接管理 %%ZFS|zfs%% 池。无论您是部署新的 %%ZFS|zfs%% 存储还是整合现有的池,您都可以在这里获取启动所需的步骤和背景。 + +--- + +## 为什么选择 ZFS? + +%%ZFS|zfs%% 是一种现代文件系统和卷管理器,旨在保护您的数据、预防损坏并简化存储管理。 + +使用 %%ZFS|zfs%%,您可以获得: + +- 自动数据完整性检查和自我修复 +- 内置 %%RAID|raid%% 支持(镜像、RAIDZ) +- %%Snapshots|snapshot%% 和克隆功能,用于轻松备份和回滚 +- %%ZFS|zfs%% 发送/接收,高效复制 +- 即使压缩 + +Unraid supports %%ZFS|zfs%% for any storage pool. You can create a new %%ZFS|zfs%% pool, import one from another system, or use Unraid’s unique hybrid %%ZFS|zfs%% setup: add a %%ZFS|zfs%%-formatted disk directly to the Unraid %%array|array%% (not a pool) and combine %%ZFS|zfs%% features with Unraid’s %%parity|parity%% protection. + +:::info\[Example] + +您可以在单个磁盘上使用 %%ZFS|zfs%% %%snapshots|snapshot%% 和复制作为备份目标,或将快速 SSD %%ZFS|zfs%% 池复制到由 Unraid %%parity|parity%% 保护的 %%ZFS|zfs%% 磁盘中的 %%array|array%%,以获得双重优势。 + +::: + +
+ ![](/img/zfs1.png) +
+ +:::note +The hybrid %%ZFS|zfs%%-in-array approach is helpful for specific backup or replication scenarios but is not a replacement for a full %%ZFS|zfs%% pool. %%ZFS|zfs%% disks in the %%array|array%% are managed individually; you do not get the combined performance, redundancy, or self-healing of a true multi-disk %%ZFS|zfs%% pool. For full %%ZFS|zfs%% functionality, always use dedicated %%ZFS|zfs%% pools. +::: + +### 池、vdevs 和冗余 + +一个 %%ZFS|zfs%% 池(称为“zpool”)由一个或多个 vdevs(虚拟设备)组成。在每个 vdev 内,多个物理盘通过某种冗余级别组合到一起。%%ZFS|zfs%% 在多个 vdev 上写入数据,但每个 vdev 负责自己的容错。 + +:::caution +冗余总是针对每个 vdev 的。如果任何一个 vdev 失败,整个池将失败,即使其他 vdev 是健康的。请仔细规划您的 vdev! +::: + +
+ ![](/img/zfs2.png) +
+ +--- + +## 创建一个 ZFS 池 + +要使用 %%WebGUI|web-gui%% 创建 %%ZFS|zfs%% 池: + +1. 停止%%array|array%%。 +2. 点击**添加池**。 + +
+ ![](/img/zfs3.png) +
+ +3. 为您的存储池选择一个名称(例如,`raptor`)。 +4. 设置槽位数量以匹配您想要在主数据 vdev(s) 中的磁盘数量。 + +:::note +此初始槽位数量仅用于数据 vdev。支持 vdev(例如日志或缓存驱动器)可以在创建池后单独添加。 +::: + +
+ ![](/img/zfs4.png) +
+ +5. 将磁盘分配到池中(磁盘顺序无关紧要)。 + +
+ ![](/img/zfs5.png) +
+ +6. 点击池名称(例如 `raptor`)以打开其配置屏幕。 +7. 将文件系统类型设置为 `zfs` 或 `zfs-encrypted`(用于 LUKS 加密)。 + +
+ ![](/img/zfs6.png) +
+ +8. 选择您的分配配置文件 - 这会决定您的池的冗余和性能。 + +:::tip +在最终确定之前,检查关于分配配置文件和拓扑结构的章节以做出明智的选择。 +::: + +
+ ![](/img/zfs7.png) +
+ +
+ ![](/img/zfs8.png) +
+ +9. 如果需要,可以启用压缩(推荐用于大多数工作负载)。 +10. 点击**完成**,然后启动 %%array|array%%。 + +--- + +## 将 ZFS 磁盘添加到阵列(混合设置) + +您可以将独立的 %%ZFS|zfs%% 磁盘添加到您的 Unraid %%array|array%%(而不是 %%ZFS|zfs%% 池)中,以结合 %%ZFS|zfs%% 功能和 Unraid 的 %%parity|parity%% 保护。 + +:::info[What this enables] +- **%%Parity Protection%%:** ZFS 磁盘由 Unraid 的 %%array|array%% %%parity|parity%% 保护,确保您的数据免受单个(或多个,取决于您的 %%parity drives|parity-drives%%)磁盘故障的影响。 + +- **数据完整性:** %%ZFS|zfs%% 提供块级完整性检查(校验)。尽管单个磁盘无法自愈位腐烂,%%ZFS|zfs%% 能检测到损坏并提醒您,以便在静默数据丢失之前从备份中恢复。 + +- **%%ZFS|zfs%% 特性:** 您可以在此磁盘上使用 %%ZFS|zfs%% %%snapshots|snapshot%% 和复制,使其成为备份目标、特定数据集或需要将 %%ZFS|zfs%% 特性与传统 Unraid 存储结合的场景的理想选择。 +::: + +将 %%ZFS|zfs%% 磁盘添加到 %%array|array%%: + +1. 在 %%WebGUI|web-gui%% 中转到 **Main** 标签。 +2. 停止%%array|array%%。 +3. 点击**阵列设备**下的空槽。 +4. 选择您要添加的磁盘。 + +
+ ![](/img/zfs9.png) +
+ +5. 在 **文件系统** 下,选择 `zfs` 或 `zfs-encrypted`。 + +
+ ![](/img/zfs9.png) +
+ +6. 点击 **应用**。 +7. 启动 %%array|array%%,并在需要时让磁盘格式化。 + +--- + +## 选择分配配置文件 + +当您设置 %%ZFS|zfs%% 池时,您的分配配置文件将决定您的数据如何受到保护、池的性能以及其可扩展性。以下是一些简单的比较帮助您决定哪个配置文件适合您的需求: + +
+ ![](/img/zfs11.png) +
+ +| 配置 | 冗余 | 性能 | 扩展 | 空间效率 | 典型用例 | +| ------ | ------------------------- | ----------------------- | --------- | ---- | ----------- | +| 条带 | 无 | 快,但风险大 | 增加更多磁盘 | 100% | 临时/临时存储 | +| 镜像 | 1:1(%%RAID 1\|raid1%% 样式) | 对于随机 I/O 表现出色 | 增加更多镜像 | 50% | 高性能,易于扩展 | +| RAIDZ1 | 每个 vdev 1 个盘 | 在处理大文件时速度快。不适合小文件或随机写入。 | 增加新的 vdev | 高 | 通用用途,1 盘容错 | +| RAIDZ2 | 每个 vdev 2 个盘 | 与 Z1 类似,但写入略慢(额外的奇偶校验) | 增加新的 vdev | 中等 | 重要数据,2 盘容错 | +| RAIDZ3 | 每个 vdev 3 个盘 | 与 Z2 类似,写入更多负担(最大安全性) | 增加新的 vdev | 低 | 任务关键型,3 盘容错 | + +:::important[How to choose] +- 选择 **镜像** 如果您想要最佳性能和易于、灵活的扩展,并且愿意使用更多磁盘空间来确保冗余。 +- 选择 **RAIDZ1/2/3** 如果您想最大化可用空间并存储大文件,但要记住扩展的灵活性较低,随机写性能较差。 +- **条带** 只适用于非关键性、临时数据 - 如果任何磁盘故障,您将失去所有数据。 +::: + +--- + +## 拓扑和扩展 + +您如何将磁盘分组到 vdevs 中会影响数据安全性和速度。 + +
+ ![](/img/zfs12.png) +
+ +- 如果您将所有磁盘放入一个大型 RAIDZ2 vdev,您可以在不丢失数据的情况下丢失任意两个磁盘。然而,扩展意味着需要添加另一个完整的 vdev。 +- 如果将磁盘分割成多个较小的 RAIDZ1 vdev,您将获得更好的并行性能。请注意,如果同一 vdev 中有两个磁盘故障,您将失去整个池。 +- %%ZFS|zfs%% 将数据跨 vdev 条带化,而不是单个磁盘,因此更多的 vdev 能够提升处理很多小文件或随机 I/O 的工作负载性能。 +- 扩展一个 %%ZFS|zfs%% 容量池通常意味着添加一个新的相同布局的 vdev,而不仅仅是单个磁盘。 + +:::tip +规划池的布局以满足需求和未来的增长。与 Unraid %%array|array%% 不同,您不能通过 %%WebGUI|web-gui%% 向现有 vdev 添加单个磁盘。 +::: + +--- + +## 压缩和 RAM + +%%ZFS|zfs%% 提供的高级功能能够显著提高 Unraid 的存储效率和性能。压缩和内存需求是两个常见的关注点。 + +%%ZFS|zfs%% 压缩是透明的 - 它在后台运行,在数据到达磁盘之前缩小数据。 + +这提供了两个主要优点: + +- **减少磁盘使用量:** 所需存储空间更少。 +- **提高性能:** 写入和读取较少数据可以导致更快的操作,特别是在现代 CPU 上。 + +
+ ![](/img/zfs13.png) +
+ +:::tip +为大多数 Unraid %%ZFS|zfs%% 池启用 %%ZFS|zfs%% 压缩。这是一种安全和高效的方式,并且对兼容性或稳定性几乎没有影响。 +::: + +
+ ZFS RAM 神话 - 点击展开/折叠 + + 您可能听过过时的建议:“%%ZFS|zfs%% 要求每 TB 存储 1 GB RAM”。这对大多数用户来说不再适用。%%ZFS|zfs%% 使用 RAM 作为其自适应替换缓存(ARC),加速频繁访问的读取。 + + Unraid 自动限制 %%ZFS|zfs%% 使用系统内存的一部分(通常是总 RAM 的 1/8)。这使 %%ZFS|zfs%% 可以良好运作,而不会影响到 Docker 容器、%%VMs|vm%% 或 Unraid 操作系统。 + +
+ ![](/img/zfs14.png) +
+
+ +:::info +%%ZFS|zfs%% 随可用内存进行良好扩展。更多的 RAM 可以增强缓存性能,但 %%ZFS|zfs%% 在较低配置的硬件上依然可靠。不要让旧的建议阻止您在 Unraid 上使用 %%ZFS|zfs%% 。 +::: + +--- + +## 导入其他系统创建的 ZFS 池 + +Unraid 可以轻松导入其他平台上创建的 %%ZFS|zfs%% 池。 + +
+ 如何导入 ZFS 池 - 点击展开/折叠 + + 1. **停止阵列:** 确保您的 Unraid %%array|array%% 已停止。 + 2. **添加新池:** 点击 **添加池**。 + 3. **分配所有驱动器:** + - 将 **数据槽位数量** 设置为您的 %%ZFS|zfs%% 池中磁盘(包括数据 vdevs 和支持 vdevs)总数。 + - 将每个驱动器分配到正确的插槽。 + - *示例:* 对于具有 4 个驱动器镜像 vdev 和 2 个驱动器 L2ARC vdev 的池,设置 6 个插槽并分配所有六个驱动器。 + 4. **设置文件系统为 "Auto":** 点击池名称(例如,`raptor`)并将 **文件系统** 设置为 **Auto**。 + 5. **完成并启动阵列:** 点击 **完成**,然后启动 %%array|array%%。 + + :::info[自动检测] + Unraid 将自动检测并导入 %%ZFS|zfs%% 池。支持 vdevs (如日志,缓存/L2ARC,特殊/去重) 会列在 %%WebGUI|web-gui%% 中的 **子池** 下。在启动导入后不需要单独添加子池。Unraid 会在所有所需驱动器被分配后,与主数据磁盘一起自动导入。 + ::: + + 导入后,强烈建议运行 %%scrub|scrub%% 以验证数据完整性。 + + - 点击池名(例如 `raptor`)以打开其配置。 + - 在 **池状态** 下,检查状态并点击 **Scrub**。 + +
+ ![](/img/zfs15.png) +
+
+ +--- + +## 支持 vdev(子池) + +Unraid 将 %%ZFS|zfs%% 支持 vdevs 称作子池。大多数用户**不**需要这些,但有经验的用户可能会使用: + +
+ ![](/img/zfs16.png) +
+ +| 支持的 vdev(子池) | 用途 | 风险/注意事项 | +| -------------- | --------------------- | ------------------------------------------ | +| 特殊 vdev | 存储元数据和小文件 | 如果丢失,池将无法读取。 | +| 去重 vdev | 启用去重功能 | 需要大量的 RAM; 对于大多数用户来说风险较大。除非您有专业需求,否则请避免使用。 | +| 日志 vdev(SLOG) | 提高同步写入性能 | 可选。仅对某些工作负载有益。 | +| 缓存 vdev(L2ARC) | 提供基于 SSD 的读取缓存 | 可选。可以提高大型工作集的读取速度。 | +| 备用 vdev | Unraid(截至 7.1.2 版)不支持 | | + +:::caution +大多数 Unraid 用户应避免支持 vdevs/子池,除非您有特定并且明确的需求。它们是针对专门工作负载设计的,滥用会带来复杂性或风险。 +::: + +--- + +## 导入时未分配重要的支持 vdev 驱动器 + +当将 %%ZFS|zfs%% 池导入到 Unraid 时,您需要指定原始池中的每个驱动器,包括用于支持 vdevs 的驱动器,确保将其分配到池槽中。Unraid 将在 %%array|array%% 启动后自动识别每个驱动器的角色(数据、日志、缓存、特殊或去重)。您不需要手动指定每个驱动器的用途。 + +如果在导入期间忘记包含一个支持 vdev 的驱动器,结果将取决于 vdev 的功能: + +| Vdev 类型 | 导入时驱动器缺失情况 | 结果 | +| ---------------- | -------------- | --------------------------------------------------------------------------------------------------------------------- | +| 特殊 vdev 或去重 vdev | 池将无法导入或无法使用 | These vdevs store critical metadata or deduplication tables. Without them, %%ZFS\|zfs%% cannot safely mount the pool. | +| 日志(SLOG)vdev | 池导入,但同步写入性能下降。 | 池仍然可访问,但你可能会注意到依赖同步写入的工作负载的性能变慢。 | +| 缓存(L2ARC)vdev | 池导入,但读取缓存丢失 | 池正常工作,但您将失去 L2ARC 缓存带来的性能提升。没有数据丢失。 | + +:::tip +Always assign every physical drive from your original %%ZFS|zfs%% pool, including all support vdevs, when importing into Unraid. This ensures smooth detection and integration. For new pools created in Unraid, support vdevs are optional and generally not needed for most users. +::: + +--- + +## 扩展存储 + +%%ZFS|zfs%% 功能强大,但重要的是要了解其存储扩展是如何工作的—尤其是在规划未来增长时。 + +以往,%%ZFS|zfs%% 的 vdev 宽度是固定的。您无法通过增加磁盘来增加现有 RAIDZ vdev 的大小。 + +扩展池的方法包括: + +- **添加新 vdev:** 通过添加新的 vdev(如新镜像或 RAIDZ 组)来扩展您的池。这增加了容量,但您必须以符合 vdev 配置的方式成组地增加磁盘。 +- **用更大的磁盘替换驱动:** 一次替换每个 vdev 驱动为更大的磁盘。请参阅 [驱动替换](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-faileddisabled-disks) 以获取详尽步骤。在所有驱动替换并且池解析之后,vdev 的容量将增加。 +- **创建新池:** 启动一个新的 %%ZFS|zfs%% 池可将不同的数据类型或工作负载组织并独立管理。 + +:::tip[Planning ahead] +在建立池之前,考虑您需要多少存储空间 - 不仅是今天,还包括未来的需要。%%ZFS|zfs%% 在良好规划时会带来回报,特别是当您想要避免以后繁琐的升级时。 +::: + +--- + +## 在现有 Unraid 服务器上使用 ZFS 池 + +如果你运行传统 Unraid %%array|array%% 并希望添加 %%ZFS|zfs%% 池,以下是一些有效的集成方法: + +| 使用场景 | 描述 | 详细信息/示例 | +| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | +| 用于 appdata 和 Docker 的快速 SSD/NVMe 池 | Store the appdata share for fast, responsive containers and databases. This supports %%snapshot\|snapshot%%s for easy rollbacks and can also host %%VM\|vm%%s for high I/O. | 许多用户选择 2 驱动 %%ZFS\|zfs%% 镜像。此方式扩展简单并提供强大的性能。 | +| 用于重要数据的%%ZFS\|zfs%%池 | 使用 %%ZFS\|zfs%% 镜像或 RAIDZ2 池来存储不可替代的文件,如照片、税务记录和 %%user-share\|用户共享%% 数据。%%ZFS\|zfs%% 检查腐败并通过冗余自愈。 | 这种设置通过自动的完整性检查和自我修复功能保护关键数据。 | +| 每日备份或复制目标 | 使用 %%ZFS\|zfs%% 盘(即便是在 Unraid %%array\|array%% 中)作为复制目标。您可以在本地或从另一个 Unraid 服务器复制其他池。 | 利用 `zfs send/receive` 或诸如 Syncoid 之类的工具,以实现快速可靠的备份和还原。 | +| %%Snapshot\|snapshot%%-based recovery pool | Keep point-in-time %%snapshot\|snapshot%%s of critical data or containers. %%snapshot\|snapshot%%s can be auto-scheduled and are space-efficient. | 此功能可以从意外删除或配置错误中快速恢复。 | + +## 避免常见的 ZFS 错误 + +%%ZFS|zfs%% 是一个强大的文件系统,但有几个常见的陷阱可能削弱其优势。在配置您的池之前,要牢记以下几点以获取更流畅的体验: + +- **RAIDZ 内磁盘大小不匹配:** %%ZFS|zfs%% 视 RAIDZ vdev 中所有磁盘为最小磁盘的大小。为了确保最高效,请使用每个 vdev 中大小相同的驱动器。 + +- **通过 %%WebGUI|web-gui%% 扩展 RAIDZ vdev:** 虽然 Unraid 7.1.x 及更新版本支持通过命令行扩展 RAIDZ,但此功能尚未在 %%WebGUI|web-gui%% 中可用。目前,请通过 CLI 展开或通过 GUI 添加新 vdev。 + +- **%%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. + +- **未满足 RAM 的去重功能:** 去重需要大量内存,禁用去重会对性能产生重大影响。只有在完全了解需求的情况下启用去重功能。 + +- **Vdev 冗余是局部的:** %%ZFS|zfs%% 中的冗余是局部的,不是在整个池上共享。请确保规划 vdev 布局以实现所需的强度。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx new file mode 100644 index 0000000000..59137dd997 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/download_list.mdx @@ -0,0 +1,12 @@ +--- +sidebar_position: 7 +title: 版本历史 +--- + +import {VersionsTable} from '@site/src/components/VersionsTable'; + +# 版本历史 + +需要 USB 创建工具吗?[开始使用 Unraid](https://unraid.net/getting-started) + + diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json new file mode 100644 index 0000000000..fafa4eefb7 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "开始使用 Unraid", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json new file mode 100644 index 0000000000..f91ad71a65 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "探索用户界面", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx new file mode 100644 index 0000000000..bd9fdcd8ed --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/key-features.mdx @@ -0,0 +1,21 @@ +--- +sidebar_position: 1 +sidebar_label: 关键特点 +--- + +# 关键特点 + +您可以通过一个直观的[网页界面](./tour-the-web-gui.mdx),即由其简称为 WebGUI 的界面,管理您的 Unraid 系统。该界面提供用于常见任务的基本控制,同时也为有经验的用户提供高级调整选项。Unraid 自动选择适合大多数用户的默认设置,但也允许您根据具体需求自定义这些设置。 + +这种设计使得 Unraid 在需要简单操作时易于使用,并在需要定制时可以进行调整。简化的管理功能包括: + +- **[仪表板视图](./tour-the-web-gui.mdx#1-dashboard)** - 仪表板提供系统的详细实时概览,显示磁盘健康状况、温度、资源利用率和应用状态的指示。 +- **[Array Operation](./tour-the-web-gui.mdx#2-main)** - Manage your %%array|array%% effortlessly. You can assign devices for use in either the %%array|array%% or %%cache|cache%%, spin individual disks up and down, start and stop the %%array|array%%, and even perform on-the-fly %%parity checks|parity-check%%, all from a single page. +- **[共享管理](../../using-unraid-to/manage-storage/shares.mdx)** - 在Unraid上设置共享非常简单。只需为共享命名,选择性应用访问和分发策略,然后点击“创建!” +- **[磁盘调优](../set-up-unraid/customize-unraid-settings.mdx#disk-settings)** - 控制设备何时以及如何闲置,选择默认文件系统格式,并调整其他高级设置以减少设备的磨损和功耗。 +- **[网络控制](../set-up-unraid/customize-unraid-settings.mdx#network-settings)** - 启用 %%NIC bonding|nic-bonding%% 和 %%bridging|nic-bridging%%,设置时间服务器,并配置其他网络设置。 +- **[APC UPS 安全关机](../set-up-unraid/customize-unraid-settings.mdx#ups-settings)** - 当连接到 APC UPS 时,在断电的情况下,Unraid 可以安全关闭系统。 +- **[系统通知](../set-up-unraid/customize-unraid-settings.mdx#notification-settings)** - Unraid 可以通过 web 管理界面以及通过电子邮件和其他通知系统提醒您重要事件。 +- **[Task Scheduler](../set-up-unraid/customize-unraid-settings.mdx#scheduler)** - Specify when to perform automatic %%parity checks|parity-check%% and how often the %%Mover|mover%% script should transfer files from the %%cache|cache%% to the %%array|array%%. +- **[Docker容器](../../using-unraid-to/run-docker-containers/overview.mdx)** - 从单一界面管理应用程序控制。使用社区提供的模板轻松添加应用程序。 +- **[虚拟机](../../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx)** - 从预创建的%%虚拟机|vm%%镜像中选择或从头开始创建自定义%%VMs|vm%%。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx new file mode 100644 index 0000000000..2358e4949b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui.mdx @@ -0,0 +1,119 @@ +--- +sidebar_position: 2 +--- + +# 浏览 WebGUI + +%%WebGUI|web-gui%% 是管理和配置您的 Unraid 服务器的主要界面。它通过一个组织良好的导航栏和用户友好的界面提供对所有系统功能、监控工具和配置选项的访问。这种布局旨在帮助您高效管理存储、用户、应用程序和系统设置。 + +## 导航栏 + +水平导航栏使用户可以访问 Unraid 系统的主要功能区域。您可以通过插件自定义它,以添加额外的菜单和选项,详见 [社区应用程序部分](../../using-unraid-to/run-docker-containers/community-applications.mdx)。 + +![已注释的导航栏](/img/navbar3.png) + +### 1. 仪表板 + +**仪表板**选项卡提供对 Unraid 服务器上硬件和软件组件的实时监控。它以网格形式显示管理的各个方面,如系统识别、CPU、RAM、存储、网络信息、容器、%%VMs|vm%%、用户和共享。![仪表板选项卡](/img/dashboard.png) +您可以通过[社区应用程序](../../using-unraid-to/run-docker-containers/community-applications.mdx)增强仪表板。 + +### 2. 主页 + +The **Main** screen enables efficient management of your Unraid storage and disk operations. You can configure your %%array|array%%, %%cache pools|cache-pool%%, and flash devices, as well as manage USB storage and unassigned devices, including remote shares. It displays key information about each storage device, such as health, capacity, and file systems. +![Main tab](/img/maintab.png) +At the bottom, the Array Operation section provides maintenance options to keep your %%array|array%% running smoothly. + +### 3. 共享 + +**共享**选项卡分为[用户共享](../../using-unraid-to/manage-storage/shares.mdx#user-shares)和[磁盘共享](../../using-unraid-to/manage-storage/shares.mdx#disk-shares)。 + +您可以通过选择名称访问每个共享的详细信息和管理选项。 + +### 4. 用户 + +**用户** 屏幕允许管理 Unraid 服务器上的所有用户账户,详细信息请参见[用户管理部分](../../system-administration/secure-your-server/user-management.mdx)。 + +![用户标签](/img/userstab.png) + +### 5. 设置 + +**设置** 屏幕允许您管理 Unraid 服务器上的所有系统设置,包括: + +- **系统设置**:配置 Unraid 核心组件的参数和行为。 +- **网络服务**:设置各种通信协议,并配置您的%%Wireguard|wireguard%% %%VPN|vpn-tunnel%%。 +- **用户偏好**:调整各个用户的偏好设置,如通知和显示设置。 +- **用户实用工具**:管理通过插件添加的各个实用工具。 + +![设置标签](/img/settingstab.png) + +### 6. 插件 + +**插件** 屏幕显示您 Unraid 服务器上安装的所有插件。 + +![插件标签](/img/pluginstab.png) + +:::note +有关插件安装步骤,请参见[社区应用程序](../../using-unraid-to/run-docker-containers/community-applications.mdx)。 +::: + +### 7. Docker + +**Docker**屏幕显示从[社区应用程序](../../using-unraid-to/run-docker-containers/community-applications.mdx)安装的所有容器。您可以启动、停止和配置每个容器,包括它们的自动启动设置。 + +:::note +关于运行Docker容器的详细信息,请参见[运行Docker容器](../../using-unraid-to/run-docker-containers/overview.mdx)。 +::: + +### 8. 虚拟机 + +**虚拟机**屏幕可让您管理 Unraid 服务器上的%%虚拟机|vm%%。它显示您创建的所有%%虚拟机|vm%%及其主要属性,如 CPU 分配、%%虚拟磁盘分配|vdisk-allocation%%和显卡设置。 + +:::note +This option will **only** appear in the Navigation Bar if your Unraid server meets the %%hardware virtualization|hvm%% requirements. +::: + +### 9. 应用程序 + +**应用** 列表,“社区应用程序”,是 Unraid 应用的官方来源。 + +![应用程序标签](/img/appstab.png) + +它提供社区来源的插件和 Docker 容器,增强 Unraid 的功能超出基本的 NAS。更多详情,请查看[社区应用程序部分](../../using-unraid-to/run-docker-containers/community-applications.mdx)。 + +### 10. 工具 + +**工具** 屏幕提供各种工具以管理 Unraid OS,自定义 %%WebGUI|网页界面%% 的外观和系统更新。 + +![工具标签](/img/toolstab.png) + +### 11. 系统快捷键 + +**系统快捷方式** 部分提供直接从导航栏快速访问 Unraid 基本功能和工具。 + +![系统快捷方式](/img/systemshortcuts.png) + +导航栏显示 Unraid 功能的快捷方式,例如: + +- ![登出](/img/logout.png) **登出:** 从 Unraid 服务器登出。 +- ![终端](/img/terminal.png) **终端:** 打开终端窗口。 +- ![文件管理器](/img/filemanager.png) **文件管理器:** 访问内置文件管理器。 +- ![反馈](/img/feedback.png) **反馈:** 提交反馈、报告问题或留下评论。 +- ![信息](/img/infoicon.png) **信息:** 查看服务器属性摘要。 +- ![日志](/img/logicon.png) **日志:** 查看系统事件列表。 +- ![帮助](/img/helpicon.png) **帮助:** 启用当前页面的帮助。 +- ![通知](/img/notificationicon.png) **通知:** 查看系统警报、警告和通知。 + +### 12. 帐户选项 + +在%%WebGUI|web-gui%%的右上角,在服务器名称旁边是用于**帐户选项**的汉堡菜单(☰)。此菜单允许您管理 Unraid 帐户,访问[Unraid Connect](../../../unraid-connect/overview-and-setup.mdx),升级许可证密钥,并注销。 + +如果您处于试用模式,您也可以在此处兑换许可证密钥以激活 Unraid 为 Starter、Unleashed 或 Lifetime。 + +### 13. 状态栏 + +![Status Bar](/img/status-bar2.png) +The **Status Bar** at the bottom of the %%WebGUI|web-gui%% shows the current state of your %%array|array%% and the status of ongoing operations like %%Mover|mover%% or %%parity checks|parity-check%%. Some plugins also display important information, like system temperatures. + +--- + +\* “%%WireGuard|wireguard%%”和“%%WireGuard|wireguard%%”徽标是Jason A. Donenfeld的注册商标。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json new file mode 100644 index 0000000000..842515339d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "设置 Unraid", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx new file mode 100644 index 0000000000..40f0086430 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx @@ -0,0 +1,87 @@ +--- +sidebar_position: 4 +sidebar_label: 完成您的后续设置必要步骤 +--- + +# 完成您的后续设置必要步骤 + +恭喜您完成初始设置! + +现在,是时候探索一些更重要的方面,以增强您的服务器功能和安全性。 + +## 备份您的闪存设备 + +在进行重大配置更改后,请始终备份您的 Unraid 闪存设备。强烈建议定期备份。 + +要备份您的闪存设备,请转到**主**选项卡,选择设备,然后点击**闪存备份**。 + +:::warning +Store backups outside the Unraid %%array|array%% for easy access if the %%array|array%% isn't operational. [Learn more about flash device management here](../../system-administration/maintain-and-update/changing-the-flash-device.mdx). +::: + +:::note +或者,您可以使用 [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) 插件自动备份到 LimeTech 的云服务器。 +::: + +## 使用内置帮助 + +Unraid provides extensive help text for settings in the %%WebGUI|web-gui%%. Enable it by clicking the ![Help icon](/img/helpicon.png) icon at the top-right corner. You can also toggle help on individual fields by clicking their names. The %%WebGUI|web-gui%% help will typically offer the most up-to-date information help information. + +
+ ![内置帮助](/img/toolbar.png) +
+ +## 查看安全最佳实践 + +由于您的 Unraid 服务器包含有价值的数据,建议在文档中查看[安全最佳实践](../../system-administration/secure-your-server/security-fundamentals.mdx),以避免潜在攻击并保护您的信息。 + +## Unraid Connect + +[Unraid Connect](../../../unraid-connect/overview-and-setup.mdx) 是Unraid的一个插件,可以在社区应用程序部分找到。通过Unraid Connect,您可以通过[统一面板](https://connect.myunraid.net/)管理所有服务器实例。 + +![Unraid Connect 仪表板](/img/unraidconnectdashboard.png) + +Unraid Connect 使用您的 Unraid.net 凭据进行访问管理,并通过安全连接与我们的云服务器通信。 + +有关我们如何处理您的数据的更多信息,请查阅我们 Unraid Connect 文档中的[隐私部分](../../../unraid-connect/overview-and-setup.mdx#data-collection-and-privacy)。 + +## 将您的许可密钥链接到帐户 + +如果您已有 Unraid 许可密钥,但尚未将其链接到您的 Unraid.net 帐户,您可以这样做,以启用其他功能和更轻松的许可证管理。 + +链接许可密钥的好处包括: + +- **集中管理:** 从您的 Unraid.net 帐户查看和管理所有许可证 +- **便捷访问:** 从任何地方下载您的许可密钥文件 +- **增强支持:** 通过链接账户信息简化支持体验 +- **预发布访问:** 如果有资格,下载 beta 和发布候选版本 + +要链接您的许可密钥: + +1. **从 WebGUI:** + - 在你的 Unraid 服务器的 WebGUI 中,转到**工具 → 注册** + - 如果您还没有,点击 **登录到 Unraid.net** + - 您的许可密钥将自动链接到您的帐户 + +2. **从账户门户:** + - 访问 [account.unraid.net/keys](https://account.unraid.net/keys) + - 使用您的 Unraid.net 凭据登录 + - 点击 **链接现有密钥** 并按提示操作 + +3. **服务器设置期间:** + - 如果您使用现有许可证设置新服务器,您可以在初始配置期间登录到您的 Unraid.net 帐户 + - 您的许可证将自动链接 + +:::note +Linking your license key to your account is a one-time process. Once linked, you can manage your license from either the WebGUI or your online account portal. +::: + +:::important +如果您在链接许可密钥时遇到问题,请确保: + +- 您的 Unraid.net 账户电子邮件与您的许可证购买相关的电子邮件匹配 +- 您使用的是正确的许可密钥文件 +- 您的服务器有互联网访问权限用于账户验证 +::: + +有关许可证管理的更详细信息,请参阅[许可证常见问题](../../troubleshooting/licensing-faq.mdx)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx new file mode 100644 index 0000000000..b4c2905617 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/configure-your-array.mdx @@ -0,0 +1,89 @@ +--- +sidebar_position: 3 +sidebar_label: 配置你的阵列 +--- + +# 配置你的阵列 + +安装您的注册码后,下一步是为存储配置,通过将设备分配到 %%array|阵列%% 和 **池设备**中。此设置决定了 Unraid OS 如何管理数据、通过 %%parity|校验%% 保护数据,并通过 %%cache pools|高速缓存池%% 优化性能。 + +:::important +如果您在 Unraid 安装的任何部分遇到困难,请务必查看我们的[安装常见问题解答](../../troubleshooting/faq.mdx#installation)! +::: + +## 分配校验盘和数据盘 + +您将使用 Unraid %%WebGUI|web-gui%% 中的 **Main** 标签来分配和查看设备,包括 %%array|array%% 和池分配,以及任何未分配的设备和您的启动设备(即 **USB 闪存设备**)。 + +![配置阵列](/img/configuringarray1.png) + +### 设备角色 + +Unraid OS用于不同目的的驱动器: + +- **阵列设备**,分为两类: + - **校验设备:** 提供容错功能,如果数据磁盘出现故障,可进行数据恢复。您最多可以分配两个校验驱动器。 + - \*\*数据设备:\*\*存储您的自定义共享和文件夹,以及您添加的任何文件,例如媒体文件。 + +- **存储池设备:**主要用作**缓存**的高性能驱动器,在转移到%%array|array%%之前暂时存储文件以提高性能。 + +- **启动设备:** 包含 Unraid OS 的 USB 闪存设备,它启动您的服务器。 + +
+ 磁盘分配推荐 + + 这些磁盘分配建议旨在优化您的 Unraid %%array|array%%,提高性能、数据保护和未来扩展性。通过遵循这些建议,您可以有效地最大化存储设备并避免常见设置问题。 + + 1. **Select the largest %%parity device|parity-drives%%:** + Always choose the largest available storage device as your %%parity device|parity-drives%%(s). When expanding your %%array|array%%, data disks must be equal to or smaller than your %%parity device|parity-drives%%(s). You should purchase the largest **HDD** for your initial %%parity device|parity-drives%% to avoid future limitations. For dual %%parity disks|parity-drives%%, each parity disk must be greater than or equal to the largest data disk. + + 2. **使用 HDD 为 %%array|array%%,使用 SSD/NVMe 驱动器为池:** + 为获得最佳性能,在 %%array|array%% 中使用 **HDDs** 作为主要存储设备用于一般存储和 %%parity|parity%% 保护。分配 **SSD** 或 **NVMe** 驱动器到 %%cache pool|cache-pool%% 或专用池,以提高高速读写操作。这种设置通过利用不同驱动器类型的优势来提高整体性能。 + + 3. **用 %%multi-device pool|multi-device-pool%% 保护缓存数据:** + 为保护缓存数据,将多个设备分配到 %%cache pool|cache-pool%%。单一设备无法提供数据丢失保护。%%Cache pools|cache-pool%% 可按需扩展。 + + :::warning + SSD 在 %%array|array%% 中的支持是实验性的。由于%%TRIM/Discard|trim-discard%% 实现的差异,一些 SSDs 性能可能不佳,可能导致不良结果。这不适用于 %%cache pools|cache-pool%%。 [在这里了解更多关于文件系统选项的信息](../../using-unraid-to/manage-storage/file-systems.mdx)。 + ::: + + :::note + 基于 SSD 的池是为应用程序和虚拟机优化的,利用 SSD 性能进行更快的交互。[在这里了解更多关于运行应用程序的信息](../../using-unraid-to/run-docker-containers/overview.mdx)。 + ::: +
+ +:::important +如果超过许可证密钥允许的存储设备数量,您的 %%array|array%% 将无法启动。 +::: + +## 启动并格式化阵列 + +分配所有设备后,单击**阵列操作**下的**启动**按钮以挂载它们并启动%%array|array%%。 + +
+ ![阵列操作启动](/img/arrayoperation_start.png) +
+ +新设备将显示为*未格式化*,在格式化之前无法使用。 Unraid 对阵列设备默认使用 %%XFS|xfs%% 文件系统。对于 %%cache pools|cache-pool%%,默认在自动模式下采用 %%BTRFS|btrfs%%,但在将设备添加到池中时,您可以选择所需的文件系统。您可以在***设置 → 系统设置 → 磁盘设置***中更改阵列的默认文件系统。 + +要格式化您的设备,请在**阵列操作**下勾选**格式化**框,仔细阅读提示,然后单击**格式化**按钮。 + +校验同步将在后台运行,以保护 %%array|array%%,即使在格式化完成之前。同步完成之前,%%array|array%% 将在不受保护的状态下运行,因此最好在添加数据之前等待。 + +### 更改现有驱动器的文件系统 + +要更改现有驱动器的文件系统: + +1. **备份您的数据**:重新格式化会擦除驱动器上的所有数据。 +2. **停止阵列**。 +3. **单击驱动器**并更改文件系统类型(例如,%%XFS|xfs%%,%%BTRFS|btrfs%%)。 +4. **启动阵列**并在**阵列操作**下勾选**格式化**框。 +5. **单击格式化**以应用新文件系统。 + +:::caution +重新格式化驱动器将删除其所有数据。对于 %%RAID|raid%% 设置,请检查 %%parity|parity%% 以避免在重建过程中数据丢失。在重新格式化之前,请使用[未分配的设备插件](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon)备份文件。 +::: + +:::info +您可以在**主界面**选项卡的同一**阵列操作**部分中使用相应按钮停止阵列、关闭或重启。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx new file mode 100644 index 0000000000..1ad97fd9b2 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/create-your-bootable-media.mdx @@ -0,0 +1,80 @@ +--- +sidebar_position: 1 +sidebar_label: 创建你的可启动媒体 +--- + +# 创建你的可启动媒体 + +Unraid OS 安装在 USB 闪存驱动器上,作为服务器的启动设备。您可以使用我们推荐的 [自动安装方法](./create-your-bootable-media.mdx#automated-install-method) 通过 [USB Flash Creator](https://unraid.net/download) 工具创建此可启动媒体,或者按照 [手动安装方法](./create-your-bootable-media.mdx#manual-install-method) 进行操作。在这两种情况下,您都需要一个高质量的 USB 闪存驱动器(4 到 32 GB 之间),并且具有唯一的 %%GUID|guid%%。 + +## 自动安装方法 + +自动安装方法是设置 Unraid OS 的最佳方式。它简化了过程,减少了错误,且确保您的 USB 闪存驱动器可准备好以适应大多数硬件配置。对于大多数用户来说,这一方法提供了最快且最可靠的成功安装途径。 + +1. **准备你的 USB 设备:** + 插入高质量的 USB 闪存驱动器到你的电脑中。 + +2. **下载並安装 Unraid USB 闪存创建工具和 Unraid OS 到驱动器。** + [Windows](https://releases.unraid.net/dl/stable/usb-creator.exe) | [Mac](https://releases.unraid.net/dl/stable/usb-creator.dmg) | [Linux](https://releases.unraid.net/dl/stable/usb-creator.deb) + +3. **完成设置:** + 自定义你的服务器名称和网络设置。 + +4. **弹出并安装:** + 安全移除 USB 驱动器并将其插入你的服务器。 + +5. **配置您的服务器 BIOS 设置** + - 将启动设备设置为 USB 闪存驱动器。 + - Enable %%hardware virtualization|hvm%% features, including %%IOMMU|iommu%%. (See [HVM & IOMMU configuration](../../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx#hvm--iommu-what-they-enable) for details.) + +6. **启动到 Unraid OS:** + 保存你的 BIOS 配置,然后退出以启动到 Unraid OS。 + +## 手动安装方法 + +手动安装方法专为 USB Flash Creator 工具不可用或与您的硬件不兼容的情况设计。此方法提供了对格式化和设置过程的完全控制,使其非常适合高级用户或用于特定 USB 设备问题的排查。 + +### 准备你的 USB 设备 + +1. 插入 USB 闪存设备。 +2. 格式化为 FAT32(**不是** ex-FAT 或 NTFS)。 +3. 将卷标设置为 `UNRAID` (大小写敏感,全大写)。 + +:::important +在 Windows 上,使用内置的格式化工具无法将大于 32 GB 的驱动器格式化为 FAT32(默认格式为 exFAT)。对于大于 32 GB 的驱动器,您需要使用第三方工具,例如 [Rufus](https://rufus.ie/zh/) 来格式化为 FAT32。 +::: + +### 下载并提取 + +1. 前往 [Unraid 下载存档](../../download_list.mdx) 并下载您选择版本的 ZIP 文件。 +2. 将 ZIP 内容提取到 USB 设备。 +3. 确认文件已复制。 + +### 使 USB 设备可启动 + +:::note +此部分仅在启用 Legacy 启动时需要。如果设置为 UEFI 启动,则不需要运行这些脚本。 +::: + +运行适合您操作系统的脚本: + +**Windows 7 或更高版本:** + +- 右键单击 `make_bootable` 并选择 **以管理员身份运行**。 + +**Mac:** + +- 双击 `make_bootable_mac` 并输入您的管理员密码。 + +**Linux:** + +- 将 `make_bootable_linux` 复制到您的硬盘。 +- 卸载 USB 驱动器。 +- 在终端中运行: + ``` + sudo bash ./make_bootable_linux + ``` + +:::note +在此过程中,闪存设备可能会暂时消失并多次重新出现。这是正常现象。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx new file mode 100644 index 0000000000..eeceb509bc --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx @@ -0,0 +1,224 @@ +--- +sidebar_position: 5 +sidebar_label: 定制 Unraid 设置 +--- + +# 定制 Unraid 设置 + +Unraid OS 可以自动运行,但允许通过 Unraid **%%WebGUI|web-gui%%** 的 **设置** 选项卡进一步自定义设置,例如 IP 地址、主机名、磁盘可调参数和更多选项。 + +:::tip[Tailscale 集成] +**Tailscale** 是一个可选插件,您可以通过在 **应用** 选项卡中搜索 "Tailscale" 来安装。它为您的网络提供安全的远程访问,并在 **设置** 中添加一个 **Tailscale** 部分,以增强远程管理功能。 +::: + +
+ ![工具栏 - 设置](/img/toolbar_settings.png) +
+ +别忘了 - %%WebGUI|web-gui%% 包括内置帮助。要访问特定字段的帮助,请单击其旁边的提示,或使用界面右上角的 **帮助** 图标 ![Help icon](/img/helpicon.png) 来切换所有字段的帮助。 + +## 系统设置 + +**系统设置** 使您可以配置网络、共享、%%VM|vm%% 和磁盘设置等关键功能。 + +### CPU 固定 + +%%CPU Pinning|cpu-pinning%% allows you to assign specific CPU cores to %%VMs|vm%% (Virtual Machines) or Docker containers. This is particularly important for performance-sensitive workloads, such as gaming %%VMs|vm%%. Even if you manually assign Docker containers to avoid conflicts with your gaming %%VM|vm%%, the host operating system may still utilize those cores for tasks like managing the %%WebGUI|web-gui%%, running a %%parity check|parity-check%%, or performing %%BTRFS|btrfs%% operations. + +- 当您将一个核心固定到 %%VM|vm%% 或 Docker 容器时,该核心即被分配给 %%VM|vm%% 或容器。然而,Unraid OS 可能仍然会出于常规任务访问它。 +- 当您隔离一个核心时,它将专用于 %%虚拟机|vm%% 或容器,并且 Unraid OS 将不再可以访问。 +- 您可以在不需要重启服务器的情况下固定核心,但应用 CPU 隔离更改确实需要系统重启。 + +### 日期和时间 + +在此页面,您可以设置时区并切换使用多达四个 NTP 服务器。您应调整 Unraid 以匹配您的时区,以确保时间准确。 + +
+ ![工具栏 - 设置](/img/date-time.png) +
+ +### 磁盘设置 + +You can modify additional settings for your disk devices on this page. Enable your %%array|array%% to start automatically on boot, adjust disk %%spin-down timers|spin-down-timers%%, and even change advanced driver settings like %%SMART polling frequency|smart-polling%%. + +
+
+ 磁盘设置 +
+ +
+ 全局 SMART 设置 +
+
+ +### Docker + +Docker 容器允许您将预配置的 Linux 应用程序集成到您的 Unraid 服务器中。有关详细信息,请参阅 [Docker 管理](../../using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx) 页面。 + +
+ ![设置 - Docker](/img/settings-docker.png) +
+ +### 标识 + +Unraid 默认的主机名为 `tower`,但您可以在此处更改它。您还可以为您的系统添加描述或型号编号。 + +
+ ![设置 - 标识](/img/settings-identification.png) +
+ +### 管理访问 + +您可以为 Unraid 服务器配置各种访问设置,包括启用 Telnet 或 %%SSH|ssh%%、设置 %%SSL|ssl%%/%%TLS|tls%%、HTTP 和 HTTPS 的端口,并定义 Unraid 的默认登录页面。有关使用 %%SSL|ssl%% 证书保护您的 %%WebGUI|web-gui%% 的详细信息,请参见 [保护您的连接](../../system-administration/secure-your-server/securing-your-connection.mdx)。 + +
+ ![设置 - 管理访问](/img/settings-management-access.png) +
+ +### 网络设置 + +By default, Unraid tries to obtain an IP address from a DHCP server on your local network, usually provided by your router. On this page, you can configure a static IP address, set up %%bonding|nic-bonding%%, %%bridging|nic-bridging%%, or explore other options. While setting a static IP is recommended, it is not necessary to use Unraid. + +
+ ![网络设置](/img/settings-network.png) +
+ +### 电源模式 + +**电源模式** 设置允许您为 Unraid 服务器优化能源效率、平衡操作或最大性能。您可以从可用模式选择 - **最佳能源效率**、**平衡操作** 或 **最佳性能**,以匹配您的工作负载和能耗偏好。调整电源模式可以帮助减少能耗、降低系统温度,或为高要求的任务提供额外资源。 + +更改立即生效,无需系统重启。 + +
+ ![电源模式](/img/settings-powermode.png) +
+ +### 全局共享设置 + +%%User shares|user-share%% can greatly simplify the organization and access of content across multiple disks in the %%array|array%%. You have the option to specify which disks are allowed to participate in %%user shares|user-share%% through global inclusion or exclusion settings. + +
+ ![全局共享设置](/img/settings-globalshare.png) +
+ +### UPS 设置 + +Unraid 可以连接到 APC(或兼容的)UPS(不间断电源),以便在断电时安全关闭系统,同时仍接收电池电力。您可以在此页面配置 UPS 连接并设置关机命令的策略。 + +
+ ![UPS 设置](/img/settings-ups.png) +
+ +### VM管理器 + +**虚拟机**(VMs)可以将您的服务器变成桌面或媒体播放器,并运行不是为 Linux 设计的应用程序。有关在 Unraid 上管理 %%VMs|vm%% 的详细信息,请参见 [VM 设置](../../using-unraid-to/create-virtual-machines/vm-setup.mdx)。 + +
+ ![虚拟机管理器](/img/settings-vmmanager.png) +
+ +## 网络服务 + +**网络服务** 让您可以在 Unraid 服务器上配置网络通信协议,这对用户和磁盘共享至关重要。您还可以启用 %%FTP|ftp%% 服务器、日志服务器,并设置 %%VPN|vpn-tunnel%% 以实现安全的远程访问。 + +### NFS (网络文件系统) + +NFSv4 support is available in Unraid. You can enable or disable it for %%user shares|user-share%% and adjust the `fuse_remember` tunable to help resolve *NFS Stale File Handle* errors. + +
+ ![NFS](/img/settings-nfs.png) +
+ +### SMB (服务器消息块) + +SMB 协议用于微软 Windows 客户端。您可以在此页面启用这个协议,定义一个工作组或加入一个活动目录域。 + +
+ ![SMB](/img/settings-smb.png) +
+ +### FTP (文件传输协议) + +用户只能通过 %%FTP|ftp%% 连接,如果他们被添加到此页面上的 **FTP 用户** 字段中。如果没有用户被添加,则 %%FTP|ftp%% 服务将不会启动。 + +
+ ![FTP](/img/settings-ftp.png) +
+ +### 系统日志服务器 + +The %%Syslog server|syslog-server%% permanently stores your system log, which is useful for troubleshooting since Unraid clears the log after each reboot. + +
+ ![系统日志服务器](/img/settings-syslog.png) +
+ +### Tailscale + +:::note +只要您安装了Tailscale插件,才有可用的 Tailscale 部分。 +::: + +%%Tailscale|tailscale%% 部分允许通过 %%Tailscale|tailscale%% %%VPN|vpn-tunnel%% 进行安全远程访问。在这里,您可以登录以将 Unraid 服务器连接到您的 %%Tailnet|tailnet%%,查看分配的 IP 地址和主机名,以及启用或禁用 %%Tailscale|tailscale%% 连接。 + +You can also configure your server as a %%Subnet Router|subnet-routing%% for local devices or as an Exit Node to route internet traffic. This section enables management of advertised routes, exit node status, Docker container integration options, and connection status monitoring for troubleshooting. + +
+ ![Tailscale 设置](/img/settings-tailscale.png) +
+ +### VPN 管理器 + +您可以使用 [%%Wireguard|wireguard%%](https://www.wireguard.com/) 建立至 Unraid 服务器的 %%VPN|vpn-tunnel%% 连接,以确保互联网连接的安全。 + +
+ ![VPN 管理器](/img/settings-vpnmanager.png) +
+ +## 用户偏好 + +用户偏好允许您配置与 Unraid OS 交互的各个方面,包括通知、显示设置、UI 自定义和 %%Mover|mover%% 日程。 + +### 确认 + +您可以在此位置启用/禁用在执行各种任务时需确认的需求。 + +
+ ![确认](/img/settings-confirmations.png) +
+ +### 控制台设置 + +允许您自定义本地系统控制台。您可以选择键盘布局,调整屏幕熄灭超时,以及启用或禁用跨重启的持久 Bash 历史记录。这些选项增强了您在使用连接的显示器和键盘时使用 Unraid 的体验。 + +
+ ![控制台设置](/img/settings-console.png) +
+ +### 显示设置 + +在此页面自定义 Unraid %%WebGUI|web-gui%% 的外观,调整日期和时间格式、数字格式,并在选项卡式和非选项卡式视图之间切换。您还可以选择温度单位,并从不同的主题中选择用户界面的外观。 + +
+ ![显示设置](/img/settings-display.png) +
+ +### 通知设置 + +您可以在此页面配置浏览器和电子邮件通知,订阅不同类型并为 %%SMART|smart%% 属性值设定自定义警报。 + +
+ ![通知设置](/img/settings-notifications.png) +
+ +### 调度程序 + +调度程序设置页面可让您轻松配置自动任务的频率,包括%%parity checks|parity-check%%、缓存%%Mover|mover%%和SSD的%%TRIM/Discard|trim-discard%%操作。 + +## 用户实用工具 + +此处显示第三方插件,增强了 Unraid 的功能,并为您提供更多服务器控制。例如,[社区应用程序插件](../../using-unraid-to/run-docker-containers/community-applications.mdx) 已包含其中。其他插件提供了系统监控、维护、存储管理和 `appdata` 备份等功能。 + +--- + +\* “%%WireGuard|wireguard%%”和“%%WireGuard|wireguard%%”徽标是Jason A. Donenfeld的注册商标。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx new file mode 100644 index 0000000000..1f508e0590 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os.mdx @@ -0,0 +1,99 @@ +--- +sidebar_position: 2 +sidebar_label: 部署和配置 Unraid OS +--- + +# 部署和配置 Unraid OS + +首次启动 Unraid OS 后,您将使用 %%WebGUI|web-gui%% 完成系统配置。此界面允许您管理服务器、设置存储、配置用户共享功能以及控制诸如 %%hardware virtualization|hvm%% 和 Docker 容器等功能。 + +:::info\[Localize] + +用户在配置语言设置后可能更易于遵循本指南。查看[多语言支持](../../using-unraid-to/customize-your-experience/multi-language-support.mdx),以便在您偏爱的语言中让%%WebGUI|web-gui%%更易访问。 + +::: + +## 连接到 Unraid %%WebGUI|web-gui%% + +您可以通过两种方式连接到 %%WebGUI|web-gui%%: + +- **GUI 模式:** 在 GUI 模式下启动 Unraid,并使用连接到服务器的键盘和显示器进行登录。使用 `root` 作为用户名,初始密码为空。 +- **网页浏览器:** 在本地网络上的其他设备上,访问 `http://tower.local`。如果您设置了不同的主机名,请使用它代替 `tower`(例如,对于主机名 `unraidserver`,您应该访问 `http://unraidserver.local`)。%%mDNS|mdns%% 处理这些 `.local` 地址的解析。 + +:::important +Unraid 服务器在完全启动后即可在您的局域网中访问。您可以在路由器的 DHCP 客户端列表中找到 IP 地址,或使用网络扫描工具获取。 +::: + +## 设置 root 密码 + +首次访问 %%WebGUI|web-gui%% 时,系统会提示您为 %%root 用户|root-user%% 创建强密码。 + +请确保您的密码: + +- 唯一 +- 至少 8 个字符。 (不过,最佳实践推荐使用 12+ 个字符来确保密码的最大安全性!) +- 字母、数字和特殊字符的组合 + +我们推荐使用密码管理器来安全存储。 + +
+ ![设置 root 密码](/img/Set_root_password.png) +
+ +:::tip +如果您忘记了 root 密码,可以根据 [重置您的密码](../../system-administration/secure-your-server/user-management.mdx#reset-your-password) 指南进行重置。您也可以在 %%WebGUI|web-gui%% 的用户页面更新您的密码。 +::: + +## 注册您的许可证密钥 + +设置 root 密码后,登录您的 Unraid.net 帐户以获取许可证密钥: + +1. 在 %%WebGUI|web-gui%% 中,转到 **快速入门** 部分。 + +
+ ![快速入门](/img/Upc_get_started.png) +
+ +2. 登录或创建帐户后,将自动安装试用密钥。 + +
+ ![安装试用密钥](/img/Upc_install_trial_key.png) +
+ + 此过程允许您管理 Unraid OS 许可证密钥、获取新密钥、恢复丢失密钥或升级许可证。 + +:::important +有关许可证的详细信息,请访问 ***工具 → 注册*** 在 %%WebGUI|web-gui%%。 +::: + +## BIOS 建议 + +在部署 Unraid OS 之前,务必验证系统的 BIOS 和存储控制器设置。下面是一个检查清单,帮助确保兼容性、稳定性,并获取关键功能。 + +
+ 点击展开我们的 BIOS 和存储控制器检查清单 + + 正确配置 BIOS 和存储控制器对稳定的 Unraid OS 部署至关重要。第一次引导前请使用此清单。 + + ### 基本设置 + + ✅ 设置 USB 闪存驱动器为主要启动设备。\n✅ 配置存储控制器为通过 SATA 连接的 **%%AHCI|ahci%%** 模式。\n✅ 将控制器设置为 **%%HBA 模式|hba-mode%%** (不是 **%%RAID|raid%%**)。\n✅ 禁用 **安全启动**,因为 Unraid OS 不支持此功能。 + + ### 高级设置 + + ✅ Enable **%%hardware virtualization|hvm%%** features (e.g., **%%Intel VT-x|intel-vt-x%%** or **%%AMD-V|amd-v%%**) for **%%virtual machines (VMs)|vm%%**.\ + ✅ Enable **%%IOMMU|iommu%%** support (Intel VT-d or AMD-Vi) for PCI device assignment to VMs. + + ### 故障排除技巧 + + 如果 Unraid OS 无法启动,尝试: + + ✅ 调整启动顺序为:**Forced-FDD**、**USB-HDD**、**USB-ZIP**。\n✅ 禁用 USB 2.0/3.0 支持。\n✅ 切换任何快速启动功能。\n✅ 切换 USB 键盘支持。 + + 欲了解更多帮助,请访问 [Unraid 一般支持论坛](https://forums.unraid.net/)。 + + :::重要 + 许多主板将可启动设备限制为 12 个硬盘。如果您的 USB 闪存驱动器被识别为硬盘,则在安装 12 个物理硬盘后,您可能无法从中启动。在可能的情况下,将 BIOS 配置为将闪存驱动器视为可移动设备。 + + 如果使用附加的 HBA,则您可以禁用 INT 13h 支持,以防止其连接的驱动器出现在可启动设备列表中,从而帮助保持在 12 驱动器限制范围内。\n ::: +
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx new file mode 100644 index 0000000000..098330c0eb --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/unraid-net.mdx @@ -0,0 +1,31 @@ +--- +sidebar_position: 2 +sidebar_label: Unraid.net +--- + +# Unraid.net + +一个 Unraid.net 账户是您访问 Unraid 在线服务的入口,包括 [论坛](https://forums.unraid.net/)、[Unraid 连接](../../unraid-connect/overview-and-setup.mdx)和许可证管理。虽然基本的服务器功能不需要它,但拥有一个账户可以提供多个好处,比如简化许可证管理、访问预发布版本和增强的支持。 + +#### Unraid.net账号的优势包括: + +- **%%Single Sign-On (SSO)|sso%%:** Access Unraid's systems with one set of credentials. +- **许可证管理:** 轻松管理您的许可证密钥和服务器注册。 +- **访问预发布版本:** 下载和测试 Unraid 的预发布版本。 +- **增强支持:** 加入论坛并接收您的账户更新。 +- **安全认证:** 享受安全登录,并支持多因素认证(MFA)。 + +### 您的账号和存储的数据 + +Unraid.net 在 account.unraid.net 通过 %%AWS Cognito|aws-cognito-oauth%% 使用 %%SSO|sso%% 系统进行安全认证。您的数据储存安全且被加密。%%AWS Cognito|aws-cognito-oauth%% 用户池数据库为注册用户存储以下信息: + +| 数据类型 | 描述 | +| ---------------------------- | ----------------------- | +| 用户ID | 账户的唯一标识符 | +| 用户名 | 您选择的 Unraid.net 用户名。 | +| 电子邮箱地址 | 用于通信和账户恢复 | +| Unraid 论坛 ID | 将您的帐户链接到论坛活动 | +| 预发布授权 | 指示您是否可以下载 Unraid 预发布版本。 | +| %%密码哈希\|hash%% | 您密码的安全、加盐、单向(散列)版本 | +| MFA详细信息 | 多因素认证的信息 | +| Google/Apple %%SSO\|sso%% 信息 | 第三方登录属性(如使用) | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx new file mode 100644 index 0000000000..f48b02147c --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/getting-started/what-is-unraid.mdx @@ -0,0 +1,186 @@ +--- +sidebar_position: 1 +sidebar_label: 什么是 Unraid? +--- + +# 什么是 Unraid? + +Unraid is an embedded operating system designed to give you complete control over your hardware. It functions as a robust network-attached storage (NAS) system, an %%application server|application-server%%, and a host for %%virtual machines (VMs)|vm%%. + +Unraid 安装在 USB 闪存驱动器上并从中启动,加载到根 RAM 文件系统中。 它使用了现代 Linux 内核和更新的硬件驱动程序,允许它以最小的内存容量运行在几乎所有 64 位 x86\_64 系统上。 操作系统的所有配置数据都存储在闪存驱动器上,并与操作系统同时加载。 + +Unraid 具有用户友好的 [网页界面](./explore-the-user-interface/tour-the-web-gui.mdx) ,易于管理。 它为常见任务提供基本控制,为经验丰富的用户提供高级设置。 虽然默认设置适合大多数人,但也允许自定义。 这种简单性和灵活性的结合有效地帮助您存储、保护、共享和享受内容。 + +**Unraid 的核心功能集中在三个主要方面:** + +
+

软件定义NAS

允许用户高效地在网络上共享存储容量。
+ + ### 阵列和校验 + + Unraid 提供了一种简单灵活的解决方案,可以将任何支持 64 位的系统转换为网络附加存储 (NAS) 设备。它可以处理各种驱动器,无论是通过 IDE、SATA 还是 SAS 连接,并支持不同的驱动器大小。这意味着您可以随着存储需求的增长逐个添加新驱动器,而无需在扩展设置时重新整理现有数据。 + + The main job of an Unraid %%array|array%% is to organize and protect the data stored across several drives. It does this by using up to two special drives called %%parity drive|parity-drives%%s. These %%parity drive|parity-drives%%s are important because they help reconstruct your data if one of the other drives fails. In fact, with just one %%parity drive|parity-drives%%, you can protect all the other drives in your %%array|array%%, keeping your data safe. Plus, you can mix different sized drives and easily expand your storage over time, making Unraid a user-friendly option for anyone looking to manage their data effectively. + +
+ 校验工作原理 - 点击展开/折叠 + + In Unraid, %%parity|parity%% information is updated in real time. To understand how this works, imagine the contents of a hard drive as a long stream of bits, where each bit is either a zero or a one. By summing the nth bit values across all drives and determining whether that sum is even or odd, the corresponding nth %%parity|parity%% bit can be set accordingly. If a data drive ever fails, this %%parity|parity%% information allows for an accurate determination of the exact bit values, facilitating a precise rebuild on the replacement drive. + + 例如: + +
+ ![无校验](/img/No_parity_500px.png) +
+ + 在上面的图像中,三个驱动器包含的比特流因设备大小而异。这些驱动器未被保护,因此如果一个驱动器发生故障,数据将丢失。为防止故障,我们需要第四个磁盘作为 %%parity disk|奇偶校验驱动器%%,其大小必须等于或大于最大的驱动数据盘。 + + 为了设置 %%parity|奇偶校验%% 位,我们找到每列的总和。如果总和为偶数,则 %%parity|奇偶校验%% 位是0;如果为奇数,则 %%parity|奇偶校验%% 位是1。 + + 这是与之前相同的图像,但其中的 %%parity|奇偶校验%% 是根据每个帧计算的: + +
+ ![校验](/img/Parity@500px.png) +
+ + 假设我们的例子中磁盘2出现故障,并购买了新磁盘来替换它: + +
+ ![磁盘故障](/img/Drive_failure@500px.png) +
+ + 要在新磁盘上重建数据,我们确定缺失的位,而不是计算 %%parity|奇偶校验%% 位。对于第1列,总和是0,所以缺失的位是0。对于第6列,总和是1, 所以缺失的位是1。 + + 使用 %%parity|奇偶校验%% 重建磁盘可防止数据丢失并提供容错能力,即使驱动器故障仍确保系统的完全访问。 +
+ + ### 用户份额 + + Unraid 的不同之处在于,它将数据保存在单个驱动器上,而不是将它们合并成一个驱动器。作为 %%root user|root 用户%%,您可以创建 %%user shares|用户共享%%,它们就像顶级文件夹,收集 %%array|阵列%% 或 %%cache pool|缓存池%% 中多个驱动器上的文件。这意味着您不必担心哪个特定驱动器存储您的文件;它们已为您整理好。 + + 您还可以自定义这些共享以包含或排除某些驱动器,并决定如何将文件分布在存储中。此外,您可以通过设置网络选项来管理用户如何访问共享,例如 %%SMB|samba%% 和 %%NFS|nfs%% ,并应用安全设置。为了保障私人数据安全,您可以创建用户账户并为可信个体设置访问限制。 + + ```mdx-code-block + +
+
+ User shares distribution example + +
User shares - Distribution
+
+ +
+ User shares distribution example larger + +
User shares - Access
+
+
+ + ``` + + ### 理解缓存驱动器 + + Unraid 的一大突出特点是 %%cache drive|缓存%%,可以加快数据传输速度。当您在三台或更多驱动器旁边使用 %%cache drive|缓存%% 时,数据写入速度可提高高达**三倍**。当您将文件保存到使用 %%cache drive|缓存%% 的 %%user shares|用户共享%% 时,数据首先储存在 %%cache drive|缓存%% 上。这允许快速写入,然后一个称为 %%Mover|搬运者%% 的过程将数据传输到主存储 %%array|阵列%% 中——通常在晚上——为 %%cache drive|缓存%% 腾出空间。 + + 为了增强数据安全性,您可以设置具有多个驱动器的 %%cache pool|缓存池%%。这种设置不仅可以增加存储空间,还可以使用 %%ZFS|zfs%% 或 %%BTRFS|btrfs%% 提供类似 %%RAID 1|raid1%% 的额外数据保护。总体而言,Unraid 的共享和 %%cache drives|缓存%% 管理方案提供了灵活、高效且安全的存储解决方案。 + + [在此处了解有关配置共享和缓存的更多信息。](../using-unraid-to/manage-storage/array-configuration.mdx) + +
+ ![缓存池数据捕获工作原理](/img/Cache-pool.gif) +
+
+ +
+

应用程序服务器

支持容器化应用程序的执行。
+ + Unraid 通过 Docker 容器技术将您的存储解决方案变成多功能 %%application server|应用服务器%%。这种方法克服了传统 NAS 的局限性,同时保持系统稳定性和易用性。 + + 传统的NAS解决方案在应用程序托管方面面临三个关键挑战: + + 1. **操作系统兼容性问题** - 无法运行为不同操作系统设计的应用程序。 + 2. **复杂的生命周期管理** - 困难的安装体验可能会在删除后留下残留物。 + 3. **应用程序冲突** - 软件组件可能会干扰彼此或系统操作。 + + Unraid 使用Docker通过以下三种关键方式解决这些挑战: + + 1. **操作系统独立性** - 每个容器在自己的Linux环境中运行,消除了与主操作系统的兼容性问题。 + 2. **基于映像的部署** - 预配置的应用程序包允许一键安装和完全卸载应用程序。 + 3. **进程隔离** - 容器化应用程序在单独的用户空间中运行,防止软件之间的任何冲突。 + + Docker 容器允许您在隔离、轻量的环境中运行应用程序,而不需承担 %%virtual machines|虚拟机%% 相关开销。Unraid 通过 [Docker Hub](https://hub.docker.com/) 和 [Community Applications](../using-unraid-to/run-docker-containers/community-applications.mdx) 提供的预配置应用程序,简化了 Docker 的使用。这种容器化方法使 Unraid 用户能够同时运行多个应用程序而不会有兼容性问题。它还通过使用独立的应用程序包帮助保持系统有序,并便于通过 Docker 的生态系统增强服务器功能。 + + :::note + 有关高级 Docker 设置,请查看 [Run Docker Containers](../using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx)。 + ::: +
+ +
+

虚拟化平台

允许以接近裸机硬件的性能运行虚拟机。
+ + Unraid 作为虚拟化主机运作,通过使用 %%hypervisor|虚拟机管理程序%% 安全分配资源给虚拟化的客户环境。这使您能够在隔离环境中运行各种应用程序,而不仅仅是网络附加存储。 + + :::tip + 要在 Unraid 中使用硬件虚拟化,请确保您的 CPU、芯片组、BIOS 和设备驱动程序兼容。完整的要求列表可在 [VM setup guide](../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx) 中找到。如果您的服务器不符合这些要求,Unraid 的 %%VMs|虚拟机%% 菜单将会在 %%WebGUI|WebGUI%% 中禁用。 + ::: + +
+ 使用虚拟机的好处 - 点击展开/折叠 + + 虽然 Docker 容器在基于 Linux 的应用程序中很受欢迎,%%虚拟机|vm%% 提高了 Unraid 服务器设置的灵活性和效率,并为您的 Unraid 服务器提供了显著优势: + + - **隔离:**%%VMs|vm%%在独立的环境中运行,确保其中一个失败不会影响其他。 + + - **整合:** 将多个物理服务器整合到一台 Unraid 机器上,减少硬件需求,简化维护。 + + - **资源分配:** Unraid 允许您为每个 %%虚拟机|vm%% 分配特定的 CPU、内存、存储和网络资源,以确保关键任务获得必要的资源。 + + - **测试与开发:**%%VMs|vm%%允许轻松创建和测试软件在不同环境中的运行,而不需要多台物理机器。 + + - **安全:**%%VMs|vm%%的隔离增强了安全性,使恶意软件很难在它们之间传播。 + + - **遗留应用程序支持:**%%VMs|vm%%允许您运行可能与现代硬件不兼容的遗留应用程序或操作系统。 + + - \*\*资源隔离:\*\*每个%%VM|vm%%可以具有专用资源,防止%%VMs|vm%%之间的性能问题。 + + - \*\*资源过度承诺:\*\*您可以运行比通常的物理资源允许的更多%%VMs|vm%%,理解到并非所有资源会同时完全利用它们的分配。 +
+ +
+ 用于虚拟化的可分配设备支持 - 点击展开/折叠 + + Unraid's %%KVM|kvm%%-based virtualization uses modern tools for flexible hardware assignment while maintaining host stability. + + 主要组件包括: + + **核心技术** + + - %%QEMU|qemu%% 和 %%libvirt|libvirt%%:管理 %%VM|vm%% 生命周期。 + - %%VFIO|vfio%% 设备直通:提供直接硬件访问。 + - %%VirtIO|virtio%% 和 %%VirtFS|virtfs%%:优化存储和网络性能。 + - %%OVMF|ovmf%%:支持 %%UEFI|uefi%% 和安全启动。 + + **分配资源** + + - **计算:** 通过 %%CPU pinning|cpu-pinning%% 绑定专用 CPU 核心。 + - **内存:** 隔离的内存。 + - **存储:** 通过 %%VirtIO|virtio%% 优化的 SSD 虚拟磁盘。 + - **外设:** 全 PCI/USB 设备直通,包括 %%GPU passthrough|gpu-passthrough%% 支持。 + + **平台灵活性** + + - 支持 %%i440fx|i440fx%% 和 %%Q35|q35%% 机器类型。 + - 兼容 %%Xen HVM|xen-hvm%% 和 %%Xen PV|xen-pv%% 工作负载。 + - 启用 %%Intel VT-x|intel-vt-x%% 和 %%AMD-V|amd-v%% 硬件虚拟化。 + +
+ ![可分配资源](/img/KVM@2x.png) +
+
+ + 对于 %%虚拟机|vm%% 设置步骤,请查看 [创建虚拟机](../using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx)。 + + :::caution + %%GPU passthrough|GPU直通%% 需要兼容的硬件(参见 [VM setup](../using-unraid-to/create-virtual-machines/vm-setup.mdx))。 + ::: +
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md new file mode 100644 index 0000000000..9e541ed235 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.0.md @@ -0,0 +1,885 @@ +## 版本 6.10.0 2022-05-07 + +更改和新功能摘要 + +### UPC 和我的服务器插件 + +WebGUI 头部右上角出现的最新可见功能是我们称之为“用户配置组件 (UPC)“ 的功能。UPC 允许用户更好地管理他们的注册密钥并安装可选的 *我的服务器* 插件。 + +*我的服务器* 是我们的一套基于云的服务和功能,能够与 Unraid 服务器集成。在安装完 *我的服务器* 插件后,您将被提示使用现有的 Unraid.net 账户登录服务器或创建一个新账户。安装完成后,以下是 *我的服务器* 的一些功能: + +- *实时状态* - 安装插件后,“我的服务器仪表板” 上每个服务器图块将显示实时状态,例如服务器是否在线、存储利用率等信息。 +- 本地访问链接 - 这是指向您的 LAN 上服务器 WebGUI 的直接链接。 +- 远程访问链接 - **如果启用,** “我的服务器仪表板” 上将显示一个链接,可以通过互联网远程打开服务器的 WebGUI。 +- 自动闪存备份 - 每个注册的服务器都配有一个私有 git 仓库,最初填充您 USB 闪存启动设备的内容(某些包含私人信息的文件除外,如密码)。此后,配置更改会自动提交。提供了一个链接以下载定制的 zip 文件,该文件可以作为输入使用 USB Flash Creator 工具将配置移动到新的 USB 闪存设备。 +- 通知关键的安全相关更新。当发现并修补严重的安全漏洞时,我们会向所有注册服务器关联的电子邮件地址发送通知。 +- 在一组新的我的服务器论坛板块中拥有发布特权。 + +登录服务器与基于云的 Lime Technology 代理服务器保持 websocket 连接,用于中继实时状态。有关更多信息,请参考我的服务器隐私部分。 + +### 安全变更 + +现在必须定义 *root* 密码,更改 *root* 用户密码将会登出所有 WebGUI 浏览器会话。 + +我们还在用户页面中创建了一个部分,以区分 *root* 用户和其他用户名。*root* 用户编辑页面包括一个用于粘贴 SSH 授权密钥的文本框。 + +对于新配置,*flash* 共享的默认导出设置为“否”。 + +对于新配置,SMBv1 默认禁用。 + +对于新配置,默认情况下禁用 telnet 和 ssh。 + +对于所有新的用户共享,默认导出设置为否。 + +我们从诊断中删除了一些字符串,比如在“go”文件中找到的密码。 + +#### 迁移到 Let's Encrypt 通配符 SSL 证书 + +从此版本开始,**我们不再颁发新的单主机 SSL 证书**(我们称之为旧证书)。相反,所有新的 Unraid.net SSL 证书都是**通配符证书**(仍然由 Let's Encrypt 提供)。 + +使用通配符证书访问服务器的 URL 格式如下: + +- `https://[lan-ip].[hash].myunraid.net` + +其中, + +- `[lan-ip]` 是您的服务器 LAN IP 地址,点号被更改为破折号 +- `[hash]` 是该服务器独有的 40 字符十六进制字符串(160 位)(与旧证书中的 `[hash]` 不同) + +例如: + +- `https://192-168-100-1.af01305221921f93aabae93f13800dcea41dc681e.myunraid.net` + +我们添加了一个新的 DDNS 服务器,监听 "myunraid.net"。该服务器从域名中提取 `[lan-ip]` 并返回由破折号还原为点的 IP 地址。此方法对我们和用户都有几个好处: + +- 在第一次\_配置\_证书或服务器 LAN IP 地址(或 WAN IP 地址)更改时,消除了 DNS 传播延迟。由于域名包含 IP 地址,因此任何 IP 地址更改也会更改域名,因此不会包含在任何中间 DNS 缓存中。我们还将 TTL 从 1 小时更改为 7 天,以进一步减少开销,并缓解某些人互联网短时间中断的问题。 +- 服务器不再需要主动更新 DDNS 服务器。 +- 提升了隐私性,因为您无法通过简单地在本地访问 URL 前加“www”来确定远程访问 WAN IP 地址。 +- 将 DNS 功能从“unraid.net”域移出并将其隔离在“myunraid.net”域中。 + +在以前的版本中,*配置*(分配和下载) Unraid.net SSL 证书的代码会首先测试用户 LAN 上是否强制执行了 *DNS 重新绑定保护*;如果是,则不会配置证书。由于 LE 证书有其他用途,我们更改了代码以便 *配置* 总是可以继续进行。接下来,我们更改了管理访问页面上“使用 SSL/TLS” 设置的 *自动* 选择逻辑。现在只有在已经配置 LE 证书且未强制执行 DNS 重新绑定保护的情况下,才能选择自动选择。这是一个细微的变化,但允许某些 *我的服务器* 功能如远程访问。 + +升级后,您将需要修改所有服务器书签的新 URL。或者,如果您安装了 *我的服务器* 插件,仪表板中每个服务器将包含一个本地访问链接。如果您没有安装 *我的服务器* 插件,由于没有 DDNS 更新守护程序,我们建议为您的服务器设置静态 DHCP 租约或分配静态 IP 地址。最后,我们设置了 nginx,使得 URL 为: + +- `http://./` + +或 + +- `https://./` + +将会重定向至 `https://[lan-ip].[hash].myunraid.net` + +有关更多信息和用例,请参阅 [此处](../system-administration/secure-your-server/securing-your-connection.mdx)的文档。 + +### 虚拟化 + +libvirt 和 qemu 都已更新。此外,qemu 已使用 OpenGL 支持编译,并支持 ARM 仿真(实验性)。 + +#### Windows 11 支持 + +为了支持需要 TPM 和安全启动的 Windows 11,我们添加了 TPM 仿真;并新增了一个 "Windows 11" 虚拟机模板,自动选择支持 TPM 的 OVMF BIOS。也提供了将 Windows 10 虚拟机升级到 Windows 11 的说明。特别感谢 [@ich777](https://forums.unraid.net/profile/72388-ich777/),他研究并确定了提供此功能所需的更改和组件。 + +### Docker + +#### Docker 标签 + +- 添加了 Docker 标签,以便使用 Docker compose の人可以利用图标和 GUI 访问 +- 查看 Docker 'run' 命令输出以查看使用了哪些标签 + +#### Docker 自定义网络 + +- 可以使用新的自定义网络设置。最初,自定义网络使用 macvlan 模式创建,升级到版本 6.10 时保留该模式。 +- 引入了新的 ipvlan 模式,以应对某些人在使用 macvlan 模式时遇到的崩溃。如果您遇到这种情况,请切换到 ipvlan 模式并测试。更改模式不需要重新配置 Docker 级别的任何内容,内部所有设置都会自动完成。 + +#### Docker 桥接网络(docker0) + +- docker0 现在支持 IPv6。这是通过为 docker0 分配一个私有 IPv6 子网(fd17::/64)实现的,类似于 IPv4,并使用网络翻译与外界通信。 +- 连接到桥接网络的容器现在同时具有 IPv4 和 IPv6 连接(当然,系统必须在网络配置中配置 IPv6) +- 此外,为改进 IPv6 实现中若干增强调以更好地处理 IPv6 的使用(或不使用) + +### WireGuard + +WireGuard 插件已集成到 WebGUI 中,这意味着不再需要插件。如果您之前安装了插件,它将被卸载并移动到 "插件/插件文件安装错误" 页面。无须采取任何操作,除非您想按删除按钮将其从该页面移除。您的 WireGuard 隧道和设置将被保留。[请参阅此帖以开始使用 WireGuard](https://forums.unraid.net/topic/84226-wireguard-quickstart/)。 + +网络专家 [@bonienl](https://forums.unraid.net/profile/2736-bonienl/) 添加了将 WireGuard 虚拟网络接口绑定到 Docker 容器的功能。该功能可用于配置启用了 WireGuard 的 VPN,然后专门被该容器使用,而您的主服务器使用正常的 LAN 网络接口。[有关详细信息,请参阅此帖。](https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access-to-a-commercial-vpn-provider/#comment-781381) + +### Linux 内核 + +升级到 Linux 5.15.x LTS 内核,其中包括所谓的 *Sequoia* 和 *Dirty Pipe* 漏洞缓解措施。 + +如果检测到相应硬件,**内建 GPU 驱动** 现在默认加载: + +- amdgpu +- ast +- i915 +- radeon + +这些驱动程序主要用于在\_GUI 启动\_模式中使用的主板板载图形。可以通过创建以驱动程序命名的适当文件来禁止加载驱动程序。 + +`echo "blacklist i915" > /boot/config/modprobe.d/i915.conf` + +或者,可以通过系统设备页面将设备与 Linux 完全隔离。请注意,在 Unraid OS 6.9 版本中,内建 GPU 驱动程序默认被列入黑名单,要启用驱动程序加载,您需要创建一个空的 “conf” 文件。升级到 Unraid OS 6.10 后,您可以删除这些文件,或将它们保持原样。此次更改大大改善了新用户的\_桌面 GUI\_体验。 + +**其他内核更改:** + +- 增加了对 Intel GVT-g 的支持,该功能允许您将 Intel i915 集成显卡分割成多个虚拟 GPU,并通过 [@ich777](https://forums.unraid.net/profile/72388-ich777/) 的 *Intel-GVT-g* 插件传输给多个虚拟机。 +- 增加了对 gnif/vendor-reset 的支持。这简化了 [@ich777](https://forums.unraid.net/profile/72388-ich777/) 的 *AMD Vendor Reset* 插件, 该插件允许用户正确重置他们的 AMD 显卡。 +- 添加了所谓的 "add-relaxable-rmrr-5\_8\_and\_up.patch" ,并为我们的内核进行了修改:[https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5\_8\_and\_up.patch](https://github.com/kiler129/relax-intel-rmrr/blob/master/patches/add-relaxable-rmrr-5_8_and_up.patch) 感谢 [@ich777](https://forums.unraid.net/profile/72388-ich777/) 的提醒。 +- 启用了额外的 ACPI 内核选项 +- 启用了 TPM 内核模块(尚未使用)- 请注意,这是用于 Unraid 主机利用物理 TPM,而不是虚拟机的模拟 TPM 支持。 +- 支持 Realtek RTL8152/RTL8153 基于 USB 以太网适配器 +- 启用 NFSv4 支持。 + +### 基础包 + +几乎所有的基础包套件都更新了。 + +对于 SMB:Samba 版本 4.15 SMB3 多通道不再标记为 "实验性",但是默认情况下**禁用**。可以在 "设置/SMB 设置" 页面启用。一些用户报告 SMB3 多通道在与某些网络绑定配置结合使用时出现问题。 + +按要求,我们添加了 mcelog 包。包括此包后,如果您有 AMD 处理器,系统日志中可能会出现以下错误信息: + +`mcelog: ERROR: AMD 处理器系列 23: mcelog 不支持此处理器。请改用 edac_mce_amd 模块。` + +我们不确定如何处理此问题。似乎 mcelog 正在被 rasdaemon 取代。这是我们需要进一步研究的问题。 + +### 其他改进 + +其他改进可能不那么明显,难以从版本说明中发现,其中一些改进是内部的,并不真正可见: + +**事件驱动模型** 用于获取服务器信息并实时更新 WebGUI + +- 该模型的优点在于其可扩展性。可以在不受太大影响的情况下同时打开多个浏览器访问 WebGUI。 +- 此外,过期的浏览器会话不会再产生任何 CSRF 错误 +- 那些全天候 24/7 保持浏览器打开的人会发现 WebGUI 始终保持响应 +- 在同一服务器开放的不同浏览器实例之间保持一致的状态信息 + +**插件页面** + +- 插件页面现在分两步加载信息。首先创建插件列表,然后在后台检索耗时较长的插件状态字段。结果是加载插件页面速度更快,尤其是在您安装了大量插件时。 + +**仪表盘图表** + +- 仪表板现在有两个图表可用。默认显示 CPU 图表,而 NETWORK 图表是接口下的新选项(请参见 "常规信息" 选择)。 +- 如果不需要,可以隐藏 CPU 图表 +- 两个图表都具有可配置的时间线,默认是 30 秒,可以单独更改每个图表的时间线以查看更长或更短的历史。 +- 图表实时更新,对于观察服务器在不同情况下的行为非常有用 + +**调度程序改进** + +- 您现在可以将奇偶校验检查分成较小的部分,并在多天甚至数周的时间内进行。例如,检查可以在几个连续的日子内在凌晨 01:00 到 06:00 的时间框架内进行,直到完成。这样长时间的奇偶校验检查不会干扰日常活动,比如看电影。 +- 添加了安排池的“平衡”和“清理”作业的能力,并计算是否推荐进行完整的平衡。 + +**内建火狐浏览器** 可在\_GUI模式\_引导时使用,并作为 AppImage 构建,并位于 *bzfirmware* 压缩文件系统镜像中。这节省了大约 60MB 的 RAM。 + +**简化社区应用程序插件的安装。** WebGUI 自动包含应用程序菜单项,如果 CA 尚未安装,该页面提供一个安装按钮。无需寻找插件链接。 + +**我们增大了终端字体大小**,并修复了 macOS *Monterey* 的问题。终端字体大小可通过设置/显示设置页面进行配置。 + +**Mover**将创建“.partial”文件,然后在完成后重命名。 + +**系统启动**将在引导时检查bz文件的sha256sums以验证是否没有损坏。 + +**对于 WebGUI 管理的 cookie**,将 sameSite cookie 属性从 'strict' 更改为 'lax'。此更改旨在解决 Safari 中无法打开终端窗口的问题。 + +**添加了ServerChan和Pushplus**通知代理,感谢[@ludoux](https://forums.unraid.net/profile/168579-ludoux/) + +**模板存储库**被移除,请参见[此文章获取其替换信息](https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265) + +### 其他错误修复 + +- 我们切换到称为wsdd2的更好维护的WSD服务器组件版本,以消除wsd守护进程会开始消耗100%的CPU核心实例。 +- 修复了无法在包含空格的共享名称上创建docker镜像的问题。 +- 修复了“mover”不会移动到包含空格的池名称的问题。 +- 修复了[用户共享](../using-unraid-to/manage-storage/shares.mdx#user-shares)文件系统中权限未被遵守的问题。 +- 修复了巨型帧无法工作的问题。 +- sysctl: 处理 net.netfilter.nf\_conntrack\_count 超出最大值(将设置增加至 131072) - 向社区成员 [@DieFalse](https://forums.unraid.net/profile/77686-diefalse/) 致敬 +- 修复了 [@thohell](https://forums.unraid.net/profile/12113-thohell/) 发现的错误,问题是 md\_sync\_limit 未被用来限制其他 I/O 活跃时使用条带头缓存。这项修复的效果是,如果其他 I/O 正在进行中(如流视频),则会大大减慢奇偶校验操作的速度。可以通过更改“设置/磁盘设置/可调(md\_sync\_limit)”值来调整奇偶校验同步操作的节流。 +- 修复了 btrfs 池设备替换的一些边角情况。重要提示:若从 btrfs 多设备池中 "取消分配" 设备,而该设备仍然物理存在,则启动数组时我们会**擦除**设备上存在的 LUKS 头,如果存在,并**删除**分区结构,从而有效地擦除设备上包含的所有数据。这是必需的,以便说服 btrfs 不再使用该设备,并且将其释放以分配给另一个池。 +- 修复了在多设备btrfs池中更换设备时仍标记旧设备为缺失的错误。 +- 修复了热插拔服务器中设备时若SAS驱动器处于停转状态,可能导致SAS驱动器显示未分配的问题。 +- 修复了在docker和/或VM启动后服务器从Windows网络消失的问题。 +- 修复了 md/unraid 驱动程序的倒退,该问题会使 XFS 误以为发生了在线缩小。 +- 修复:防止当虚拟机处于暂停或挂起状态时,停止阵列时 Unraid 挂起。 +- 许多其他小错误修复和改进。 + +## 与 Unraid OS 6.9.2 的变更日志 + +#### 基本发行版 + +- aaa\_base: 版本 15.0 +- aaa\_glibc-solibs: 版本 2.33 +- aaa\_libraries : 版本 15.0 +- acl:版本2.3.1 +- acpid:版本2.0.33 +- apcupsd:版本3.14.14 +- at:版本3.2.3 +- attr:版本2.5.1 +- avahi:版本0.8 +- bash:版本5.1.016 +- beep:版本1.3 +- bin:版本11.1 +- bind:版本9.16.27 +- bluez-firmware:版本1.2 +- bridge-utils:版本1.7.1 +- brotli:版本1.0.9 +- btrfs-progs:版本5.16 +- bzip2:版本1.0.8 +- ca-certificates:版本20220403 +- celt051:版本0.5.1.3 +- cifs-utils:版本6.14 +- coreutils:版本9.0 +- cpio:版本2.13 +- cpufrequtils:版本008 +- cracklib:版本2.9.7 +- cryptsetup:版本2.4.3 +- curl:版本7.83.1 (CVE-2022-22576 CVE-2022-27774 CVE-2022-27775 CVE-2022-27776 CVE-2022-27778 CVE-2022-27779 CVE-2022-27780 CVE-2022-27781 CVE-2022-27782 CVE-2022-30115) +- cyrus-sasl:版本2.1.27 +- db48:版本4.8.30 +- dbus:版本1.12.20 +- dcron:版本4.5 +- devs:版本2.3.1 +- dhcpcd:版本9.4.1 +- diffutils:版本3.8 +- dmidecode:版本3.3 +- dnsmasq:版本2.86 +- docker:版本20.10.14 (CVE-2022-24769) +- dosfstools:版本4.2 +- e2fsprogs:版本1.46.5 +- ebtables:版本2.0.11 +- eject:版本2.1.5 +- elogind:版本246.10 +- elvis: 版本 2.2\_0 +- etc:版本15.0 +- ethtool:版本5.16 +- eudev:版本3.2.11 +- file:版本5.41 +- findutils:版本4.8.0 +- flex:版本2.6.4 +- floppy:版本5.5 +- fuse3:版本3.10.5 +- gawk:版本5.1.1 +- gdbm:版本1.22 +- genpower:版本1.0.5 +- getty-ps:版本2.1.0b +- git:版本2.35.3 (CVE-2022-24765) +- glib2:版本2.70.3 +- glibc:版本2.33 +- glibc-zoneinfo:版本2022a +- gmp:版本6.2.1 +- gnutls:版本 3.7.2 +- gptfdisk:版本1.0.8 +- grep:版本3.7 +- gzip:版本1.12 (CVE-2022-1271) +- hdparm:版本9.63 +- hostname:版本3.23 +- htop:版本3.1.2 +- icu4c:版本69.1 +- inetd:版本1.79s +- infozip:版本6.0 +- inih:版本53 +- inotify-tools:版本3.20.11.0 +- iproute2:版本5.16.0 +- iptables:版本1.8.7 +- iputils:版本20211215 +- irqbalance:版本1.7.0 +- jansson:版本2.14 +- jemalloc:版本5.2.1 +- jq:版本1.6 +- json-c: 版本 0.15\_20200726 +- json-glib:版本1.6.6 +- kbd:版本1.15.3 +- keyutils:版本1.6.3 +- kmod:版本29 +- krb5:版本1.19.2 +- lbzip2:版本2.5 +- less:版本590 +- libaio:版本0.3.112 +- libarchive:版本3.6.1 +- libcap-ng:版本0.8.2 +- libcgroup:版本0.41 +- libdaemon:版本0.14 +- libdrm:版本2.4.109 +- libedit: 版本 20210910\_3.1 +- libepoxy:版本1.5.9 +- libestr:版本0.1.9 +- libevent:版本2.1.12 +- libfastjson:版本0.99.9 +- libffi:版本3.3 +- libgcrypt:版本1.9.4 +- libgpg-error:版本1.44 +- libgudev:版本237 +- libidn:版本1.38 +- libjpeg-turbo:版本2.1.2 +- liblogging:版本1.0.6 +- libmnl:版本1.0.4 +- libnetfilter\_conntrack: 版本 1.0.8 +- libnfnetlink:版本1.0.1 +- libnftnl:版本1.2.1 +- libnl3:版本3.5.0 +- libpcap:版本1.10.1 +- libpciaccess:版本0.16 +- libpng:版本1.6.37 +- libpsl:版本0.21.1 +- libseccomp:版本2.5.1 +- libssh:版本0.9.6 +- libssh2:版本1.10.0 +- libtasn1:版本4.18.0 +- libtirpc:版本1.3.2 +- libtpms:版本0.9.0 +- libunistring:版本0.9.10 +- libunwind:版本1.6.2 +- libusb:版本1.0.24 +- libusb-compat:版本0.1.7 +- libuv:版本1.41.0 +- libvirt:版本8.2.0 +- libvirt-php: 版本 0.5.6a +- libwebp: 版本 1.2.2 +- libwebsockets: 版本 4.2.0 +- libx86: 版本 1.1 +- libxml2: 版本 2.9.14 (CVE-2022-29824) +- libxslt: 版本 1.1.35 +- libzip: 版本 1.8.0 +- lm\_sensors: 版本 3.6.0 +- lmdb: 版本 0.9.29 +- logrotate: 版本 3.18.1 +- lshw: 版本 B.02.19.2 +- lsof: 版本 4.94.0 +- lsscsi: 版本 0.32 +- lvm2: 版本 2.03.13 +- lz4: 版本 1.9.3 +- lzip: 版本 1.22 +- lzo: 版本 2.10 +- mc: 版本 4.8.27 +- mcelog: 版本 180 +- miniupnpc: 版本 2.1 +- mpfr: 版本 4.1.0 +- nano: 版本 6.0 +- ncompress: 版本 5.0 +- ncurses: 版本 6.3 +- net-tools: 版本 20181103\_0eebece +- nettle: 版本 3.7.3 +- network-scripts: 版本 15.0 +- nfs-utils: 版本 2.5.4 +- nghttp2: 版本 1.46.0 +- nginx: 版本 1.21.6 +- nss-mdns: 版本 0.14.1 +- ntfs-3g: 版本 2021.8.22 +- ntp: 版本 4.2.8p15 +- numactl: 版本 2.0.13 +- oniguruma: 版本 6.9.7.1 +- openssh: 版本 8.8p1 +- openssl: 版本 1.1.1o (CVE-2022-1292) +- openssl-solibs: 版本 1.1.1o (CVE-2022-1292) +- p11-kit: 版本 0.24.1 +- pam: 版本 1.5.2 +- patch: 版本 2.7.6 +- pciutils: 版本 3.7.0 +- pcre: 版本 8.45 +- pcre2: 版本 10.39 +- php: 版本 7.4.29 (CVE-2021-21708) +- pixman: 版本 0.40.0 +- pkgtools: 版本 15.0 +- procps-ng: 版本 3.3.17 +- pv: 版本 1.6.6 +- qemu: 版本 6.2.0 +- qrencode: 版本 4.1.1 +- reiserfsprogs: 版本 3.6.27 +- rpcbind: 版本 1.2.5 +- rsync: 版本 3.2.3 +- rsyslog: 版本 8.2102.0 +- samba: 版本 4.15.7 (CVE-2021-44141 CVE-2021-44142 CVE-2022-0336 CVE-2021-44141 CVE-2021-441412 CVE-2022-0336) +- sdparm: 版本 1.12 +- sed: 版本 4.8 +- sg3\_utils: 版本 1.47 +- shadow: 版本 4.8.1 +- smartmontools: 版本 7.3 +- spice: 版本 0.15.0 +- sqlite: 版本 3.37.2 +- ssmtp: 版本 2.64 +- sudo: 版本 1.9.9 +- swtpm: 版本 0.7.3 (CVE-2022-23645) +- sysfsutils: 版本 2.1.0 +- sysvinit: 版本 2.99 +- sysvinit-scripts: 版本 15.0 +- talloc: 版本 2.3.2 +- tar: 版本 1.34 +- tcp\_wrappers: 版本 7.6 +- tdb: 版本 1.4.6 +- telnet: 版本 0.17 +- tevent: 版本 0.11.0 +- traceroute: 版本 2.1.0 +- tree: 版本 1.8.0 +- ttyd: 版本 20211023 +- usbredir: 版本 0.8.0 +- usbutils: 版本 014 +- utempter: 版本 1.2.0 +- util-linux: 版本 2.37.4 +- vbetool: 版本 1.2.2 +- vsftpd: 版本 3.0.5 +- wayland: 版本 1.20.0 +- wget: 版本 1.21.2 +- which: 版本 2.21 +- wireguard-tools: 版本 1.0.20210914 +- wsdd2: 版本 20111022 +- xfsprogs: 版本 5.13.0 +- xxHash: 版本 0.8.1 +- xz: 版本 5.2.5 (CVE-2022-1271) +- yajl: 版本 2.1.0 +- zlib: 版本 1.2.12 +- zstd: 版本 1.5.2 + +#### 包含GUI模式 + +- adwaita-icon-theme: 版本 40.1.1 +- at-spi2-atk: 版本 2.38.0 +- at-spi2-core: 版本 2.42.0 +- atk: 版本 2.36.0 +- cairo: 版本 1.16.0 +- dbus-glib: 版本 0.112 +- freetype: 版本 2.11.1 +- fribidi: 版本 1.0.11 +- gd: 版本 2.3.3 +- gdk-pixbuf2: 版本 2.42.6 +- graphite2: 版本 1.3.14 +- gtk+3: 版本 3.24.31 +- harfbuzz: 版本 3.2.0 +- hicolor-icon-theme: 版本 0.17 +- libtiff: 版本 4.3.0 +- libxkbcommon: 版本 1.3.1 +- pango: 版本 1.48.11 +- shared-mime-info: 版本 2.1 +- startup-notification: 版本 0.12 +- appres: 版本 1.0.5 +- dejavu-fonts-ttf: 版本 2.37 +- editres: 版本 1.0.7 +- encodings: 版本 1.0.5 +- fontconfig: 版本 2.13.92 +- freeglut: 版本 3.2.1 +- glew: 版本 2.2.0 +- glu: 版本 9.0.2 +- libICE: 版本 1.0.10 +- libSM: 版本 1.2.3 +- libX11: 版本 1.7.3.1 +- libXau: 版本 1.0.9 +- libXaw: 版本 1.0.14 +- libXcomposite: 版本 0.4.5 +- libXcursor: 版本 1.2.0 +- libXdamage: 版本 1.1.5 +- libXdmcp: 版本 1.1.3 +- libXevie: 版本 1.0.3 +- libXext: 版本 1.3.4 +- libXfixes: 版本 6.0.0 +- libXfont: 版本 1.5.2 +- libXfont2: 版本 2.0.5 +- libXfontcache: 版本 1.0.5 +- libXft: 版本 2.3.4 +- libXi: 版本 1.8 +- libXinerama: 版本 1.1.4 +- libXmu: 版本 1.1.3 +- libXpm: 版本 3.5.13 +- libXrandr: 版本 1.5.2 +- libXrender: 版本 0.9.10 +- libXres: 版本 1.2.1 +- libXt: 版本 1.2.1 +- libXtst: 版本 1.2.3 +- libXxf86dga: 版本 1.1.5 +- libXxf86misc: 版本 1.0.4 +- libXxf86vm: 版本 1.1.4 +- libdmx: 版本 1.1.4 +- libevdev: 版本 1.12.0 +- libfontenc: 版本 1.1.4 +- libglvnd: 版本 1.3.3 +- libpthread-stubs: 版本 0.4 +- libxcb: 版本 1.14 +- libxkbfile: 版本 1.1.0 +- libxshmfence: 版本 1.3 +- listres: 版本 1.0.4 +- mkfontscale: 版本 1.2.1 +- mtdev: 版本 1.1.6 +- sessreg: 版本 1.1.2 +- setxkbmap: 版本 1.3.2 +- transset: 版本 1.0.2 +- xauth: 版本 1.1.1 +- xcb-util: 版本 0.4.0 +- xdpyinfo: 版本 1.3.2 +- xdriinfo: 版本 1.0.6 +- xev: 版本 1.2.4 +- xf86-input-evdev: 版本 2.10.6 +- xf86-input-keyboard: 版本 1.9.0 +- xf86-input-mouse: 版本 1.9.3 +- xf86-input-synaptics: 版本 1.9.1 +- xf86-video-ast: 版本 1.1.5 +- xf86-video-mga: 版本 2.0.0 +- xf86-video-vesa: 版本 2.5.0 +- xhost: 版本 1.0.8 +- xinit: 版本 1.4.1 +- xkbcomp: 版本 1.4.5 +- xkbevd: 版本 1.1.4 +- xkbutils: 版本 1.0.4 +- xkeyboard-config: 版本 2.34 +- xkill: 版本 1.0.5 +- xload: 版本 1.1.3 +- xlsatoms: 版本 1.1.3 +- xlsclients: 版本 1.1.4 +- xmessage: 版本 1.0.5 +- xmodmap: 版本 1.0.10 +- xorg-server: 版本 1.20.14 +- xprop: 版本 1.2.5 +- xrandr: 版本 1.5.1 +- xrdb: 版本 1.2.1 +- xrefresh: 版本 1.0.6 +- xset: 版本 1.2.4 +- xsetroot: 版本 1.1.2 +- xsm: 版本 1.0.4 +- xtrans: 版本 1.4.0 +- xwd: 版本 1.0.8 +- xwininfo: 版本 1.1.5 +- xwud: 版本 1.0.5 +- imlib2: 版本 1.7.1 +- fluxbox: 版本 1.3.7 +- slim: 版本 1.3.6 +- vte3: 版本 0.50.2 +- sakura: 版本 3.5.0 +- xclock: 版本 1.0.9 +- xterm: 版本 370 +- hwloc: 版本 2.2.0 + +#### Linux kernel + +- 版本: 5.15.40-Unraid (CVE-2021-33909 CVE-2021-33910 + CVE-2022-0847) +- 补丁: "drm/i915/gen11: 移动 WAs 到 icl\_gt\_workarounds\_init()" +- 补丁: "add-relaxable-rmrr-5\_8\_and\_up.patch" 为此内核进行了修改 +- 新增功能: + - 多个与 ACPI 相关的 CONFIG 设置 + - CONFIG\_TCG\_TPM 及关联的 TPM 芯片驱动 + - CONFIG\_NFS\_V4: NFS 版本 4 的 NFS 客户端支持 + - CONFIG\_NFSD\_V4: NFS 版本 4 的 NFS 服务器支持 + - CONFIG\_USB\_RTL8152: 基于 Realtek RTL8152/RTL8153 的 USB 以太网适配器 + - CONFIG\_USB\_NET\_AQC111: Aquantia AQtion USB 到 5/2.5GbE 控制器支持 + - CONFIG\_USB4: USB4 和 Thunderbolt 统一支持 + - CONFIG\_USB4\_NET: 通过 USB4 和 Thunderbolt 线缆的网络支持 + - CONFIG\_DRM\_I915\_GVT: 启用 Intel GVT-g 图形虚拟化主机支持 + - CONFIG\_DRM\_I915\_GVT\_KVMGT: 启用 KVM/VFIO 支持 Intel GVT-g + - CONFIG\_VFIO\_MDEV: 中介设备驱动框架 + - CONFIG\_VFIO\_MDEV\_DEVICE: 用于中介设备的 VFIO 驱动 + - CONFIG\_FTRACE: 跟踪器 + - CONFIG\_FUNCTION\_TRACER: 内核函数跟踪器 + - CONFIG\_KPROBES: Kprobes + - CONFIG\_DEBUG\_KERNEL: 内核调试 + - CONFIG\_KALLSYMS\_ALL: 将所有符号包含在 kallsyms 中 + - CONFIG\_ISCSI\_TCP: iSCSI Initiator 通过 TCP/IP(由社区成员 [@ich777](https://forums.unraid.net/profile/72388-ich777/) 提供) + - CONFIG\_GIGABYTE\_WMI: Gigabyte WMI 温度驱动 +- BPF 内核选项(用户请求): + - CONFIG\_BPF\_SYSCALL: 启用 bpf() 系统调用 + - CONFIG\_BPF\_JIT: 启用 BPF Just In Time 编译器 + - CONFIG\_BPF\_JIT\_ALWAYS\_ON: 永久启用 BPF JIT 并移除 BPF 解释器 + - CONFIG\_NET\_CLS\_BPF: 基于 BPF 的分类器 + - CONFIG\_NET\_CLS\_ACT: 行动 + - CONFIG\_NET\_ACT\_BPF: 基于 BPF 的行动 + - CONFIG\_IKHEADERS: 通过 /sys/kernel/kheaders.tar.xz 启用内核头文件 + - CONFIG\_NET\_SCH\_SFQ: 随机公平队列 (SFQ) + - CONFIG\_NET\_ACT\_POLICE: 流量控制 + - CONFIG\_NET\_ACT\_GACT: 通用行动 + - CONFIG\_GACT\_PROB: 支持概率 + - CONFIG\_NET\_SCH\_INGRESS: Ingress/分类器行动排队调度器 (Qdisc) + - CONFIG\_CGROUP\_BPF: 支持附加到 cgroups 的 eBPF 程序 +- md/unraid: 版本 2.9.22 + - 修复: md\_sync\_limit 被忽略 + +#### 管理 + +- 更好的 IPv6 支持 +- 诊断:添加 bz\*.sha256 值 +- 诊断:改进的匿名化 +- 诊断: 匿名化移动器 +- 诊断:在 folders.txt 中更好的软件包列表 +- 诊断:不对 169.254.x.x 地址进行匿名化 +- emhttp 新默认设置: + - 需要根密码 + - 默认情况下不导出新创建的共享 + - 预定义的 'flash' 共享默认不导出 + - ssh,telnet:默认禁用 + - 默认情况下禁用 NetBIOS + - 默认启用 WSD (并使用更新的 'wsdd2' 包) + - 默认启用增强的 macOS 互操作性 + - 对于“域”和“系统”共享,将“启用写时复制”默认设置从“否”更改为“自动” + - 更改 poll\_attributes 可调默认值从 30 分钟到 30 秒。 +- emhttpd: 添加 'rootshare' 保留名称 +- emhttpd:修复回归:默认应启用用户共享 +- emhttpd:尽量减少 UpdateDNS 函数传输的信息 +- emhttpd:在共享配置更改时使用 shfs ioctl 使 shfs 缓存的共享信息无效 +- emhttpd:修正未分配设备读写计数的错误处理 +- emhttpd:修复某些情况下热插拔未分配设备分配错误设备名称 +- emhttpd:修复 btrfs-替换案例 +- emhttpd:修正 btrfs 池设备替换仍然显示“缺失” +- emhttpd:更改根密码时删除所有 PHP 会话(注销所有人) +- emhttpd: 更正单槽池的设备状态处理 +- emhttpd:合并 nvme /dev/disk/by-id 符号链接中的多个下划线为单个下划线 +- firefox: 版本 91.0.r20210823123856 (AppImage) +- mover:修复不会移动嵌入空格的共享的错误 +- mover:在移动过程中将“.partial”后缀附加到文件名 +- rc.docker:修复启动网络竞赛条件 +- rc.libvirt:防止在阵列停止时 Unraid 挂起,而虚拟机处于暂停或挂起状态 +- rc.libvirt:在将虚拟机添加到 NAMES 列表之前测试其存在 +- rc.mcelog: mcelog 已添加到基础发行版 +- rc.nginx: 将 fastcgi\_read\_timeout 从 120 秒改为 640 秒 +- rc.nginx: 移除 ttyd 侧加载 +- rc.nginx: 支持 Lets Encrypt 通配符证书 +- rc.nginx: 支持自定义通配符自签名证书 +- rc.nginx:自签名证书主题 OU 从“unRAID”更改为“Unraid” +- rc.nginx:处理自定义证书主题字段时忽略大小写 +- rc.nginx: 删除默认服务器块,如果 USE\_SSL==no 及无 CA 签名证书,则返回 404 +- rc.samba: 默认禁用 SMB 多通道;在设置/SMB 设置页面添加控制 +- rc.S: 在初始启动期间检查 bz 文件 sha256 +- shfs: 修复权限被忽略的错误(挂载命令中缺少 'default\_permissions') +- sysctl: 处理 net.netfilter.nf\_conntrack\_count 超过最大值(增加设置至 131072) +- ttyd:修复本地 Firefox 终端窗口中的乱码文本 +- upgradepkg:如果现有软件包更新则不升级 +- wsdd2: 默认情况下仅监听在活动接口上(br0,bond0 或 eth0) +- WebGUI:整合头部 UPC +- WebGUI: 添加应用程序链接以安装 CA +- WebGUI:添加内部容器参考 +- WebGUI: 新增设置"终端字体大小" +- WebGUI: 为 Pushplus 添加通知代理 +- WebGUI:为 ServerChan 添加通知代理 +- WebGUI:添加对文件树中“根”文件夹的保护 +- WebGUI:添加系统关闭后的跟踪 +- WebGUI:在虚拟机中添加 vmxnet3 和 e1000 到可用网卡 +- WebGUI:在管理访问页面中添加“用户‘root’”参考 +- WebGUI:插件安装失败时添加通知 +- WebGUI:新增:累积奇偶校验检查。这允许奇偶校验检查被划分到多个时间窗口。 +- WebGUI:在主要页面和共享页面上调整行突出显示,以更好地适应色盲人士 +- WebGUI:允许 CA 获取所有 docker 信息,而无需下载图标(如果不存在) +- WebGUI:允许所有通知代理发送链接 +- WebGUI:允许为rsyslog.conf中的本地规则设置规则集 +- WebGUI: 允许容器同时显示日志和控制台窗口 +- WebGUI: 始终显示用户指定 URL 的 "WebUI" +- WebGUI: BTRFS均衡和擦洗调度器 +- WebGUI: BTRFS均衡:修复卷为空时的建议消息 +- WebGUI: 当打开多个会话时更好的阵列同步 +- WebGUI: 更好地翻译Docker容器变量 +- WebGUI: CSS小调整 +- WebGUI:将“Dashboard Parity status”更改为无效且非模拟。 +- WebGUI:更改页面切换以更好地适应移动设备上的Safari +- WebGUI:将并发同步通知从错误级别更改为通知级别 +- WebGUI:更改标题选择以更好地支持安卓 +- WebGUI:检查闪存是否离线/快速检查其是否已损坏 +- WebGUI:清理样式文件夹 +- WebGUI:压缩下拉菜单中过长的共享名称 +- WebGUI:添加ContextMenu选项“按钮”:默认为“左”(当前行为),其他选项为“右”和“双” +- WebGUI: 将通知轮询转换为Nchan +- WebGUI: 创建favicon.ico +- WebGUI:用户注销时创建syslog条目 +- WebGUI:仪表板:添加CPU和网络图表 +- WebGUI: 仪表板:修复禁用磁盘阈值时的条形颜色 +- WebGUI: 仪表板:分离CPU详细信息和图形视图 +- WebGUI:删除DockerRepositories.page请参见[此帖子了解其替代品的信息](https://forums.unraid.net/topic/112170-allow-template-repositories-to-be-hosted-from-other-sources/page/2/#comment-1126265) +- WebGUI: 将 Device\_list 的 .png 图标替换为字体图标 +- WebGUI:诊断修复插件已弃用的最大版本错误 +- WebGUI:诊断:添加共享摘要 +- WebGUI:诊断:包括当前的插件版本 +- WebGUI:诊断:移除“go”中包含密码等的行 +- WebGUI: 诊断: 改进匿名化处理 +- WebGUI: 诊断: 添加DHCP日志 +- WebGUI: 诊断: 添加DNS重绑定保护检查 +- WebGUI: 诊断: 添加URL详情 +- WebGUI: 诊断: 私有化可路由IP地址 +- WebGUI:显示设置:添加“显示横幅渐变” +- WebGUI:不要突出显示误报的ERST错误 +- WebGUI: Docker页面加载改进 +- WebGUI: Docker设置:抑制浏览器预设 +- WebGUI: Docker利用警告仅用于图像文件 +- WebGUI: Docker:添加网络/隐私类别 +- WebGUI:Docker:将加密作为一个类别 +- WebGUI:Docker:不更新已安装的用户模板 +- WebGUI:Docker:在删除/重建图像时修复不正确的缓存 +- WebGUI:Docker:处理在某些不太可能的情况下涉及浏览器后退按钮的极端情况 +- WebGUI: Docker: 忽略对默认问号的图标引用 +- WebGUI: Docker: 仅保存模板为v2 +- WebGUI: Docker: 如果存在损坏,编辑模板时静音PHP错误 +- WebGUI: Docker: 支持CA标签 +- WebGUI: Docker: 支持ReadMe在上下文菜单 +- WebGUI: Docker: 为所有自定义网络添加描述 +- WebGUI: Docker: 为远程WireGuard添加路由: + - "启用对自定义网络的主机访问"必须开启以允许访问 + - 通过‘br0’网络的容器可以通过WireGuard远程访问,无需在家庭路由器(网关)上配置静态路由 +- WebGUI: Docker: 在设置中添加时间单位 +- WebGUI: Docker: 在网络选择中添加WireGuard描述 +- WebGUI: Docker: 压缩过长的作者名称 +- WebGUI: Docker: 修复多个窗口打开时GUI可能挂起 +- WebGUI: Docker: 修复容器ID显示重叠 +- WebGUI: Docker: 尝试卸载不存在的容器后,修复旋转指示器不消失 +- WebGUI: Docker: 修复文件树有时不可见 +- WebGUI: Docker: 修复标题显示导致间隙 +- WebGUI: Docker: 修复固定视图模式下的列表显示 +- WebGUI: Docker: 修复不存在容器时模板移除 +- WebGUI: Docker: 使弹出窗口适合浏览器窗口 +- WebGUI: Docker: 优化上下文菜单 +- WebGUI: Docker: 处理网络日志显示中bash ANSI颜色 +- WebGUI: Docker: 去掉弹出窗口中的关闭按钮 +- WebGUI: Docker: 翻译优化 +- WebGUI: Docker: 更新窗口使用所选主题的颜色 +- WebGUI: 编辑/添加容器:修复浏览器控制台错误 +- WebGUI:根据待机延迟设置启用/禁用SMART扩展测试 +- WebGUI:端口错误检查等用于syslog服务器 +- WebGUI:在文本输入提交中转义双引号 +- WebGUI:扩展文件类型图标选择 +- WebGUI:扩展ipaddr()支持协议:协议默认为ipv4,适用于ipv4和ipv6 +- WebGUI: 修复CPU型号有时不显示 +- WebGUI:修复计算平衡级别时的PHP错误 +- WebGUI:在发出新配置后修复损坏检查 +- WebGUI:修复通知中的CSRF令牌丢失 +- WebGUI:修复监视器误报 +- WebGUI:修复网络绑定显示 +- WebGUI:修复空池存在时主页面池显示 +- WebGUI: 修复主题auzre和gray的回归错误 +- WebGUI:修复主题Azure/gray在Firefox中的侧边栏 +- WebGUI:修复:改进DNS重绑定检查 +- WebGUI:修复共享和磁盘计算的PHP错误 +- WebGUI:修正设备名称中带有“-”符号时无法保存的平衡/擦洗计划 +- WebGUI:仅为选定磁盘修复注释字段 +- WebGUI:修复暂停/恢复时的并发持续时间和速度 +- WebGUI:修复有时不可能的SMART温度设置 +- WebGUI:修复:VM 9p添加共享问题 +- WebGUI:修复:设备信息中没有设备时按钮无法工作 +- WebGUI:修复:cookie中缺少的SameSite属性 +- WebGUI:修复:有时错误处理的并发历史 +- WebGUI:修复:阵列停止时的竞态条件和设备分配更改 +- WebGUI:修复:仅针对池设备的特定磁盘设置 +- WebGUI:修复:并发检查的速度计算 +- WebGUI:修复:Docker命令后指示灯一直可见 +- WebGUI:浏览功能的修复和增强 +- WebGUI:字体文件更新: +- 调整CSS设置 + - 清理字体文件,仅使用woff格式 + - 恢复clear-sans字体 +- 更新bitstream字体 + - bitstream → source code pro + - clear-sans → source sans pro +- WebGUI:强制创建根密码 +- WebGUI:当光标悬停在阵列或共享上时高亮显示所选行 +- WebGUI:改进的后台进程检测和处理 +- WebGUI:改进了过期和错误插件页面的格式 +- WebGUI: 在电子邮件和Discord代理通知中包含链接 +- WebGUI:将“showBannerGradient”选项设置默认为“是” +- WebGUI:在超宽显示器上限制弹出窗口宽度 +- WebGUI:记录Docker图标下载失败 +- WebGUI:降低监视器功能的更新频率,以更好地适应移动设备 +- WebGUI:主页面-降低表格更新频率以更好地响应链接 +- WebGUI:在“全页”上显示WireGuard商标 +- WebGUI:使帮助文本中的链接突出显示(红色) +- WebGUI:管理:修复正在使用端口的检查 +- WebGUI: 杂项更新和修复 +- WebGUI:将启动按钮移到加密字段下方 +- WebGUI:NFS:修复读取操作后hostList复制 +- WebGUI:Nchan:使用多路复用通道并添加错误报告 +- WebGUI:仅允许上传png文件作为用户图像 +- WebGUI:以动态大小打开终端窗口 +- WebGUI:并发检查:允许在操作暂停时旋转 +- WebGUI: 并发检查: 完成后重新引入"完成"按钮 +- WebGUI:并发操作增强: + - 添加磁盘清理操作 + - 在历史视图中添加并发操作 + - 在并发历史中添加“大小”列 + - 在SMART属性中调整CSS + - 对于小于并发的数据重建,进行正确计算 + - 将并发同步和数据重建分离为独立操作 + - 在阵列停止状态下显示更多按钮 + - 文本增强 + - 使用Nchan更新复制/清除进度 +- WebGUI:并发:显示排除空闲时间的持续时间 +- WebGUI:插件管理器:修复分支选择不必要地禁用 +- WebGUI:插件页面加载改进 +- WebGUI:主动脚本安全加固 +- WebGUI:放宽SMART检测逻辑 +- WebGUI:稍微降低更新频率 +- WebGUI: 移除Nchan错误检测(依靠Nchan的自动重连在慢速通信时重新建立连接) +- WebGUI: 移除不赞成使用的字体扩展:eot、svg、ttf +- WebGUI: 用事件驱动的Nchan接口替换轮询脚本 +- WebGUI: 恢复设备名称的默认大小写 +- WebGUI: 修订filedrop.js +- WebGUI:右键单击或长按菜单项应打开所选菜单 +- WebGUI:SSH授权密钥UI +- WebGUI:将主页面的更新频率设置为1秒以更好地支持移动设备 +- WebGUI:共享:修复错误的大小计算 +- WebGUI:在VM管理器VM页面上显示IP +- WebGUI:显示用户的管理访问和共享访问组 +- WebGUI:JavaScript禁用时显示警告 +- WebGUI:需要登录以配置/更新 Unraid LE SSL 证书。 +- WebGUI: 在syslinux页面上消除PHP错误,如果闪存驱动器丢失 +- WebGUI: 支持未来的T2FA +- WebGUI:支持文件树显示的多语言 +- WebGUI:在路由表中抑制IPv6任播地址 +- WebGUI:在路由表中抑制无关的IPv6路由 +- WebGUI:系统设备添加 +- WebGUI:系统信息:修复翻译 +- WebGUI:翻译支持(Unraid.net) +- WebGUI:翻译:修复空会话的创建 +- WebGUI:更新Credits.page +- WebGUI:更新DashStats.page +- WebGUI:更新FileTree.php +- WebGUI:用最新的帮助文本更新GUI +- WebGUI: 更新 Outlook/Hotmail smtp 设置 +- WebGUI:更新警报文本 +- WebGUI:将CSS文件更新为仅使用WOFF和WOFF2格式 +- WebGUI:更新DNS优先使用IPv4,然后是IPv6 +- WebGUI:更新Bitstream字体以支持更多语言 +- WebGUI:更新显示设置和Docker的帮助文本 +- WebGUI:使用后台检查闪存损坏 +- WebGUI:使用HTTPS进行互联网连接检查 +- WebGUI:为设备信息页面使用标签视图 +- WebGUI:使用TTYD进行日志窗口 +- WebGUI:VM管理器:添加virtio-win-0.1.208.iso下载链接 +- WebGUI:VM管理器:添加Windows 11模板和OVMF TPM +- WebGUI:VM编辑器样式更新 +- WebGUI:VM:修复缺失的路径选择(用于GPU固件文件) +- WebGUI:VMs:自动更新Virtio-win ISO列表 +- WebGUI:VMs:优化右键菜单 +- WebGUI:在应用前验证WebGUI端口 +- WebGUI:验证VirtIO ISO下载的目的地 +- WebGUI:查看源代码时,识别哪一个.page文件负责 +- WebGUI:集成WireGuard +- WebGUI:WireGuard更新: + - 添加隧道路由用于Docker容器 + - 自动使WG隧道对容器可用(自定义网络) + - 使VPN提供商的配置文件导入更可靠。 + - VPN隧道访问Docker + - 系统的VPN隧道访问 +- WebGUI:WireGuard:添加隧道删除失败的警告 +- WebGUI:WireGuard:引入新网络模式: +- WebGUI:WireGuard:添加逻辑以在重启后重建网络 +- WebGUI:WireGuard:修复IPv4与IPv6隧道的正确处理 +- WebGUI:WireGuard:使用“远程隧道访问”预设对等DNS服务器 +- WebGUI:WireGuard:隧道不活跃时使用断开开关 +- WebGUI:WireGuard:用户 nginx 设置和 unraid.net 接口 +- WebGUI:WireGuard:当直接连接公共IP时发出警告 +- WebGUI:WireGuard:修复导入功能以接受所有密钥 +- WebGUI:WireGuard:管理接口可选择: +- WebGUI:WireGuard:管理接口可选择: + - 默认为eth0 - 未来扩展 +- WebGUI:WireGuard:从文件输入中剥离ListenPort + - ListenPort必须是唯一的,让WG生成随机本地端口 +- WebGUI:CSS 滚动条增强功能 +- WebGUI:诊断:修复:匿名化myunraid.net URLs +- WebGUI:dockerMan安全:从配置元素中移除HTML标签 +- WebGUI:dockerMan:从描述中去除HTML +- WebGUI:修复:密码锁定未正确清除 +- WebGUI:修复:从邮件通知中移除重新认证信息 +- WebGUI:改善:在鼠标悬停于阵列或共享时高亮选定行 +- WebGUI:jQuery:版本3.6.0 +- WebGUI:将CA签名证书主题显示为链接 +- WebGUI:在诊断中将主机私有化 +- WebGUI:重构UpdateDNS.php:默认为匿名详细输出,其他改进 +- WebGUI:移除“我的服务器”骨架页面 +- WebGUI:签署进入以获得证书 +- WebGUI:支持同时使用本地SSL自签证书和DNS设置的Lets Encrypt证书 +- WebGUI:各种多语言修正 + +["WireGuard"和"WireGuard"徽标是Jason A. Donenfeld注册的商标。](https://www.wireguard.com/) + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md new file mode 100644 index 0000000000..39cf18cacd --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.1.md @@ -0,0 +1,19 @@ +## 版本 6.10.1 2022-05-21 + +有些用户从 USB 闪存分区引导,而不是从 "1" 引导。例如,而不是 /dev/sda1,一些用户将 /dev/sda2 设置为卷标签 UNRAID,甚至有用户在闪存上没有任何分区。在这种情况下,它将挂载 /dev/sda 到 /boot。 + +在 6.10.0 中,检测标有 UNRAID 的引导设备时引入了一个回归错误,该错误仅考虑了分区 1,使这些用户无法完成引导顺序。 + +这个问题在6.10.1中已修复——这也是6.10.1相对于6.10.0的唯一功能变化。 + +## 变更日志与 Unraid OS 6.10.0 + +#### 管理 + +- 启动:修复回归:支持从非分区1的USB闪存启动 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md new file mode 100644 index 0000000000..c561f7f52d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.2.md @@ -0,0 +1,95 @@ +## 版本 6.10.2 2022-05-27 + +### tg3 驱动可能导致数据损坏,当启用 Intel VT-d 时 + +Linux 5.15 内核、tg3 驱动程序与开启的 Intel VT-d 结合使用 +似乎导致数据损坏。此问题已在多个平台上验证,这些平台包括 Broadcom NetXtreme Gigabit Ethernet +NIC(注意:可能还有其他平台)。本版本包括以下 +解决方法: + +在服务器启动的早期阶段(rc.S),如果检测到启用了 Intel VT-d,脚本将无条件创建文件: + +`/etc/modprobe.d/tg3.conf` + +内容如下: + +`blacklist tg3` + +因此,如果默认状态下启用了 VT-d,即没有在 Bios 或通过内核"intel\_iommu=off"禁用,那么我们将在所有平台上将 tg3 驱动程序列入黑名单。如果某些人在某个平台上启用 VT-d 后,tg3 驱动程序没有出现问题, +那么他们必须在闪存设备中创建一个\_空白\_文件: + +`config/modprobe.d/tg3.conf` + +当启动序列继续时,它将执行: + +`install -p -m 0644 /boot/config/modprobe.d/* /etc/modprobe.d` + +在闪存上存储一个\_空白\_的tg3.conf文件,然后有效地将其解除黑名单。 + +会有用户因为他们的 NIC 被列入黑名单而失去网络连接。如果您正在使用问题平台,您应该进入您的 Bios 并禁用 VT-d。如果这是一个没有问题的平台, +那么您需要在您的闪存 config/modprobe.d 目录中创建空白的 tg3.conf 文件。 + +可能需要一些时间来识别和集成对此问题的适当修复,然后我们将删除自动将其列入黑名单的代码。 + +#### 如何在带 E3-1265LV2 的 HP MicroServer Gen 8 上禁用 Intel VT-d + +重启服务器,然后: + +- 启动时按 F9 键进入 BIOS。 +- 一旦 bios 加载完成,进入菜单 系统选项 → 处理器选项 → Intel(R) VT-d +- 将其设置为禁用 +- 按 Esc 返回到顶部菜单 +- 按 F10 退出 BIOS 并保存 + +服务器现在应该能够正常启动。向社区成员 +Oceanic 表示感谢 +对于指导。 + +### 安全相关变更 + +- Firefox 浏览器已更新至 100.0.2 版本,以 + 解决一个非常严重的安全漏洞。如果您使用 Firefox + 我们还建议在所有平台上进行升级。 +- 我们修复了一个问题,即使该用户名包含字符串 "root",WebGUI 登录可以接受来自非“root”用户的密码。 +- Linux 内核已更新至 5.15.43 以解决“安全绕过”漏洞。 + +### 其他变更 + +- 在管理访问页面的 "使用 SSL/TLS" 设定中,我们将下拉菜单中的 "自动" 改成了 "严格"。此举更好地描述了此设置的作用。 +- Docker 管理器现在将使用 Docker 标签作为图标的后备。 +- 虚拟机管理器现在提供使用 libvirt 网络的选项,无需编辑虚拟机的 XML。 +- 改进了自定义 SSL 证书的处理。 +- \[6.10.1] 修复回归问题:支持分区 1 以外的 USB 闪存启动 +- 其他杂项错误修复 + +## 与 Unraid OS 6.10.1 的变更日志 + +#### 基本发行版 + +- firefox AppImage:版本:100.0.r20220519220738 (CVE-2022-1802 CVE-2022-1529) + +#### Linux kernel + +- 版本 5.15.43-Unraid (CVE-2022-21499) + +#### 管理 + +- nginx:避免在重定向 URL 中附加默认端口号 +- nginx:自签名证书文件:接受普通名称和所有备用名称 +- 启动:修复多个网络接口分配相同 MAC 地址的问题 +- 启动:如果启用 Intel VT-d,则默认将 tg3 列入黑名单 +- WebGUI:管理访问: 使用 SSL/TLS 设置:将“Auto”改为“Strict” +- WebGUI: 已修复:选择控制器时未包含 smGlue +- WebGUI:修复:允许共享名称中嵌入 & 符号 +- WebGUI:添加 LXC 终端支持(用于 LXC 插件) +- WebGUI:Docker Web UI 使用 Docker 标签作为图标的后备 +- WebGUI:虚拟机管理器:支持 libvirt 网络(使 libvirt 网络可通过 gui 访问) +- WebGUI:修复问题,即‘root’登录可以使用包含‘root’字符串的其他用户名的密码 +- WebGUI:更新系统页面拼写修正:warninging → warning +- WebGUI:帮助文本复查:小修正 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md new file mode 100644 index 0000000000..3aad7a3337 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.10.3.md @@ -0,0 +1,51 @@ +## 版本 6.10.3 2022-06-14 + +### 改进内容 + +已修复在某些平台(尤其是 HP Microserver Gen8/9)上启用 Intel VT-d 时可能发生的数据损坏问题。 +通过将 Linux 内核默认 IOMMU 操作模式从"DMA 翻译"更改为"直通"解决此问题。 + +- 同时在启用 Intel VT-d 时移除了 'tg3' 黑名单。此措施是出于谨慎,因为所有早期的数据损坏报告都涉及使用'tg3'网络驱动程序的平台(这只是巧合)。如果您创建了一个空的 'config/modprobe.d/tg3.conf' 文件,您可以删除它。 + +**插件作者:** 插件文件可能包含一个 `` 标签,当有新版本可用时会显示一个 markdown 格式的消息。 +在升级之前使用它向用户提供指示或警告。 + +恢复了日志窗口中的颜色编码。 + +### 错误修复 + +修复检测Mellanox NIC的问题。 + +杂项 WebGUI 错误修复 + +## 变更日志 vs. Unraid OS 6.10.2 + +### 基本发行版 + +- 无更改 + +### Linux kernel + +- 版本 5.15.46-Unraid +- CONFIG\_IOMMU\_DEFAULT\_PASSTHROUGH: 透传 + +### 管理 + +- 启动:改进网络设备检测 +- WebGUI:在日志文件中添加颜色编码 +- WebGUI:如果闪存损坏,请再试一次测试 +- WebGUI:改进了系统日志读取 +- WebGUI:查看系统日志时添加日志大小设置 +- WebGUI:插件管理器:添加ALERT消息功能 +- WebGUI:在横幅中添加INFO图标 +- WebGUI:在PageMap页面添加翻译 +- WebGUI:修复:在安装非英语语言包时,实际进行的非校正校验 +- WebGUI:更新了Azure/Gray主题 + - 更好地支持Firefox + - 将利用率和通知指示器移至右侧 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md new file mode 100644 index 0000000000..fe7f3f605d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.0.md @@ -0,0 +1,314 @@ +## 版本 6.11.0 2022-09-23 + +### 改进内容 + +- 本次版本更新包括大量基本软件包更新,其中涵盖了多个CVE的缓解措施。 + +- Linux 内核更新包含了 [处理器 MMIO 过时数据漏洞](https://lwn.net/Articles/898011/) 的缓解措施。 + +- 插件系统已重新构建,以便使"插件安装"可以在后台进行。这解决了用户可能认为安装已经崩溃并关闭窗口的问题,但实际上并未崩溃。 + +- 其他 WebGUI 改进。 + +- 在虚拟机管理器表单编辑器中添加了指定自定义 VNC 端口的支持。使用 XML 编辑器指定的自定义端口号将在切换到基于表单的编辑器时保留。 + +- 非旋转设备的休眠现在将这些设备置于待机模式(如设备支持)。类似地,唤醒或任何 I/O 到设备将恢复正常操作。 + +- 显示从 SMART 信息中获取的 NVMe 设备功能。 + +- 增加内核配置选项以支持 Sr-iov 与 Mellanox ConnectX4+ 卡。 + +- 将 Dynamix SSD Trim 插件合并到 Unraid OS WebGUI 中。 + +- 对 cgroup2 的初步支持。在 syslinux 的附加行中传递“unraidcgroup2”以激活。 + +- 基础发行版中包含 Perl。 + +### 错误修复 + +- 修正了在虚拟机管理器中,当虚拟机名称嵌入“#”字符时导致虚拟机日志无法打开的问题。 + +- 修复了按计划暂停/恢复校验时出现的问题。 + +- 修正了安装注册密钥的问题。 + +- 更新了'samba'以解决安全问题。还应消除内核信息中关于“试图通过flock(2)设置LOCK\_MAND锁”的抱怨信息。 + +- 修复了从“test”分支切换到“next”时的问题。 + +- 停止尝试关闭不支持待机模式的设备。 + +- 修正了由于过时的 cyras-sasl 库而导致的广告加入问题 + +- 若 CPU 不支持(大部分 AMD 处理器),请勿启动 mcelog 守护进程。 + +- 修正在 nginx 未正确识别 SSL 证书续订的问题。 + +- wireguard:在启动 WG 隧道之前检查网关(下一跳)的可达性。 + +- 忽略在“btrfs filesystem show”命令输出中混入的“ERROR:”字符串。这解决了 libblkid 标签可能将奇偶校验磁盘标记为拥有 btrfs 文件系统的问题,因为它查找“魔数”的地方恰好匹配 btrfs。后续"btrfs fi"命令将尝试从此设备读取 btrfs 元数据,由于实际没有 btrfs 文件系统,因此操作失败。 + +- 修复了mover 中的错误,该错误阻止文件从 unRAID 阵列移动到缓存池(首选模式),如果共享名称包含空格。 + +## 变更日志对比 Unraid OS 6.10.3 + +#### 管理 + +- 在 unRAIDServer.plg 中添加未压缩文件的 sha256 校验。 +- bash:在 /etc/profile 中从 PATH 中省略 “.”(当前目录) +- docker:如果没有运行的容器,不会调用 'docker stop'。 +- emhttpd:增强待机(旋转)支持。 +- mover:修复了当共享名称包含空格时阻止从阵列移动到缓存的问题 +- rc.nginx:为包含 OCSP 响应者 URL 的证书启用 OCSP 置入。 +- rc.nginx:压缩 'woff' 字体文件并指示浏览器缓存 +- rc.wireguard:为 WireGuard 自动启动提供更好的故障排除 +- rc.S:支持插件驱动模块的早期加载 +- SMB:修复 USB 闪存引导设备的 'fruit' 设置 +- SMB:删除 NTLMv1 支持,因为已从 Linux 内核中移除 +- SMB:(暂时)移动vfs\_fruit设置到单独的/etc/samba/smb-fruit.conf文件中 +- SMB:(暂时)消除Samba 'idmap\_hash已弃用' 的提示行 +- 启动:防止安装可能存在于 /boot/extra 中的降级版软件包 +- upc: 版本 v1.3.0 +- WebGUI:插件系统更新 + - 解绑前端和后端操作 + - 使用 nchan 作为通信通道 + - 允许在后端继续时关闭窗口 + - 使用 SWAL 作为窗口管理器 + - 在插件页面增加多删除能力 + - 添加更新所有插件及详情 +- WebGUI:docker:使用 docker 标签作为 WebUI 的主要来源 + - 使“net.unraid.docker.webui”docker 标签成为解析 Web 用户界面地址时的主要来源。如果缺少 docker 标签,将使用模板值。 +- WebGUI:更新Credits.page +- WebGUI:虚拟机管理器:修复虚拟机日志在虚拟机名嵌入“#”时无法打开的问题 +- WebGUI:管理访问页面:添加自签名证书详情 +- WebGUI:校验校验:修复回归错误 +- WebGUI:移除脚本中的会话创建 +- WebGUI:更新 SSH 密钥正则表达式 + - 添加对 ed25519/sk-ed25519 的支持 + - 删除对 ecdsa 的支持(不安全) + - 使用正确的正则表达式检查有效密钥类型 +- WebGUI:杂项样式更新 +- WebGUI:管理访问:HTTP 端口设置应始终启用 +- WebGUI:修复:保留 VNC 端口设置 +- WebGUI:修复插件系统中回归错误 +- WebGUI:修复安装注册密钥的问题 +- WebGUI:当选择自定义图像时高亮显示案例选择 +- WebGUI:修复(upc):v1.4.2 apiVersion 检查回归 +- WebGUI:更新 NVME 驱动器的磁盘功能页面 +- WebGUI:杂项(upc):v1.6.0 +- WebGUI:插件系统和 docker 更新 +- WebGUI:系统信息 - 样式更新 +- WebGUI:插件:保持标题按钮在同一位置 +- WebGUI:在低分辨率中防止容器尺寸溢出 +- WebGUI:虚拟机管理器:在 GUI 中添加启动顺序和 CD 热插拔功能 +- WebGUI:Docker 管理器:增加根据容器标签指定 shell 的功能。 +- WebGUI:修复 Discord 通知代理 URL +- WebGUI:当无信息可用时,抑制横幅消息中的信息图标 +- WebGUI:增加待机消息并且在SCSI驱动器中使用 -n 表示身份。 +- WebGUI:修复 SAS 自检 +- WebGUI:修复插件多重更新 +- WebGUI:UPS 显示增强: + - 为每个类别添加图标 + - 在仪表盘的 UPS 部分添加翻译 + - 添加输出电压/频率值 + - 根据设置添加颜色 + - 标准化单位 + - 使更新接近实时 + - 增加 UPS 型号字段 +- WebGUI:JQuery:版本 3.6.1 +- WebGUI:JQueryUI:版本 1.13.2 +- WebGUI:改善字体文件 URL 的 “缓存破坏” +- WebGUI:修复:docker 弹出窗口中的文本颜色有时错误 +- WebGUI:修复:在校验读取中显示读取错误 +- WebGUI:虚拟机管理器:添加 USB 启动策略,增加缺少 USB 的支持 +- WebGUI:Docker:修复没有容器时出现的 JavaScript 错误 +- WebGUI:增加第三方系统诊断 + - 增加针对第三方插件包的诊断 + - 增加对 /dev/dri 设备的诊断 + - 增加对 /dev/dvb 设备的诊断 + - 增加对 NVIDIA 设备的诊断 + +#### Linux kernel + +- 版本 5.19.9(CVE-2022-21123 (CVE-2022-21123 CVE-2022-21125 CVE-2022-21166) +- md/unraid: 版本 2.9.24 +- CONFIG\_IOMMU\_DEFAULT\_PASSTHROUGH: 透传 +- CONFIG\_VIRTIO\_IOMMU:Virtio IOMMU 驱动程序 +- CONFIG\_X86\_AMD\_PSTATE: AMD处理器P-State驱动程序 +- CONFIG\_FIREWIRE:FireWire驱动程序栈 +- CONFIG\_FIREWIRE\_OHCI:OHCI-1394控制器 +- CONFIG\_FIREWIRE\_SBP2:存储设备 (SBP-2协议) +- CONFIG\_FIREWIRE\_NET:基于1394的IP网络 +- CONFIG\_INPUT\_UINPUT:用户级驱动支持 +- CONFIG\_INPUT\_JOYDEV:摇杆接口 +- CONFIG\_INPUT\_JOYSTICK:摇杆/游戏手柄 +- CONFIG\_JOYSTICK\_XPAD:Xbox游戏手柄支持 +- CONFIG\_JOYSTICK\_XPAD\_FF:Xbox游戏手柄震动支持 +- CONFIG\_JOYSTICK\_XPAD\_LEDS:Xbox360控制器“BigX”LED支持 +- CONFIG\_MLX5\_TLS:Mellanox Technologies TLS Connect-X支持 +- CONFIG\_MLX5\_ESWITCH:Mellanox Technologies MLX5 SRIOV E-Switch支持 +- CONFIG\_MLX5\_CLS\_ACT:MLX5 TC分类器动作支持 +- CONFIG\_MLX5\_TC\_SAMPLE:MLX5 TC样本卸载支持 +- CONFIG\_MLXSW\_SPECTRUM:Mellanox Technologies Spectrum系列支持 +- CONFIG\_NET\_SWITCHDEV:交换设备(及类似交换设备)支持 +- CONFIG\_TLS:传输层安全性支持 +- CONFIG\_TLS\_DEVICE:传输层安全性硬件卸载 +- CONFIG\_TLS\_TOE:传输层安全性TCP栈旁路 +- CONFIG\_VMD:英特尔卷管理设备驱动程序 +- 增加了其他传感器驱动: + - CONFIG\_AMD\_SFH\_HID:AMD传感器融合中心 + - CONFIG\_SENSORS\_AQUACOMPUTER\_D5NEXT:Aquacomputer D5 Next水冷泵 + - CONFIG\_SENSORS\_MAX6620:Maxim MAX6620风扇控制器 + - CONFIG\_SENSORS\_NZXT\_SMART2:NZXT RGB和风扇控制器/智能设备v2 + - CONFIG\_SENSORS\_SBRMI:模拟SB-RMI传感器 + - CONFIG\_SENSORS\_SHT4x:Sensiron湿度和温度传感器。SHT4x及兼容。 + - CONFIG\_SENSORS\_SY7636A:Silergy SY7636A + - CONFIG\_SENSORS\_INA238:Texas Instruments INA238 + - CONFIG\_SENSORS\_TMP464:Texas Instruments TMP464及兼容 + - CONFIG\_SENSORS\_ASUS\_WMI:ASUS WMI X370/X470/B450/X399 + - CONFIG\_SENSORS\_ASUS\_WMI\_EC:ASUS WMI B550/X570 + - CONFIG\_SENSORS\_ASUS\_EC:ASUS EC传感器 +- 补丁:在 drivers/bluetooth/btrtl.c 中添加缺失的固件引用 + - rtl8723d\_fw\.bin + - rtl8761b\_fw\.bin + - rtl8761bu\_fw\.bin + - rtl8821c\_fw\.bin + - rtl8822cs\_fw\.bin + - rtl8822cu\_fw\.bin +- CONFIG\_BPF\_UNPRIV\_DEFAULT\_OFF:默认禁用不受信任的BPF +- 补丁:Team Group MP33 M.2 2280 1TB NVMe 的特性(全球范围内在 nsid 上重复 ID) +- 启用所有IPv6内核选项: + - CONFIG\_INET6\_\* + - CONFIG\_IPV6\_\* +- CONFIG\_RC\_CORE:遥控器支持 +- CONFIG\_SFC\_SIENA:Solarflare SFC9000支持 +- CONFIG\_SFC\_SIENA\_MCDI\_LOGGING:Solarflare SFC9000系列MCDI日志支持 +- CONFIG\_SFC\_SIENA\_MCDI\_MON:Solarflare SFC9000系列hwmon支持 +- CONFIG\_SFC\_SIENA\_SRIOV:Solarflare SFC9000系列SR-IOV支持 +- CONFIG\_ZRAM:压缩RAM块设备支持 +- CONFIG\_ZRAM\_DEF\_COMP\_LZ4:默认内存压缩器(lz4) +- 启用所有EDAC内核选项: + - CONFIG\_EDAC:EDAC(错误检测及校正)报告 + - CONFIG\_EDAC\_\* + +#### 基本发行版 + +- aaa\_base:版本15.1 +- aaa\_glibc-solibs:版本2.36 +- aaa\_libraries:版本15.1 +- at:版本3.2.3 +- bind:版本 9.18.6 +- btrfs-progs:版本 5.19.1 +- ca-certificates:版本 20220622 +- cifs-utils:版本 7.0 +- coreutils:版本 9.1 +- cracklib:版本 2.9.8 +- cryptsetup:版本 2.5.0 +- curl:版本 7.85.0 +- cyrus-sasl:版本 2.1.28 +- dbus:版本 1.14.0 +- dhcpcd:版本9.4.1 +- dmidecode:版本 3.4 +- docker:版本 20.10.17 (CVE-2022-29526 CVE-2022-30634 CVE-2022-30629 CVE-2022-30580 CVE-2022-29804 CVE-2022-29162 CVE-2022-31030) +- etc:版本 15.1 +- ethtool:版本 5.19 +- eudev:版本3.2.11 +- file:版本 5.43 +- findutils:版本 4.9.0 +- firefox:版本105.0.r20220922151854-x86\_64 (AppImage) +- fuse3: 版本 3.12.0 +- gawk:版本 5.2.0 +- gdbm: 版本 1.23 +- git:版本 2.37.3 +- glib2:版本 2.72.3 +- glibc:版本 2.36 +- glibc-zoneinfo:版本 2022c +- gnutls:版本 3.7.7 +- gptfdisk: 版本 1.0.9 +- grep:版本 3.8 +- gzip:版本 1.12 +- hdparm:版本 9.65 +- htop:版本 3.2.1 +- icu4c:版本 71.1 +- inotify-tools:版本 3.22.6.0 +- iperf3:版本 3.11 +- iproute2:版本 5.19.0 +- iptables:版本 1.8.8 +- jemalloc:版本 5.3.0 +- json-c:版本0.16\_20220414 +- json-glib:版本1.6.6 +- kmod:版本 30 +- krb5:版本 1.20 +- libaio:版本 0.3.113 +- libarchive:版本3.6.1 +- libcap-ng:版本 0.8.3 +- libcgroup:版本 3.0.0 +- libdrm:版本 2.4.113 +- libepoxy:版本 1.5.10 +- libffi:版本 3.4.2 +- libgcrypt:版本 1.10.1 +- libgpg-error:版本 1.45 +- libidn:版本 1.41 +- libjpeg-turbo:版本 2.1.4 +- libmnl:版本 1.0.5 +- libnetfilter\_conntrack:版本1.0.9 +- libnfnetlink:版本 1.0.2 +- libnftnl:版本 1.2.3 +- libnl3:版本 3.7.0 +- libpng:版本 1.6.38 +- libssh:版本 0.10.4 +- libtasn1:版本 4.19.0 +- libtirpc:版本 1.3.3 +- liburcu:版本 0.13.1 +- libusb:版本 1.0.26 +- libwebp:版本 1.2.4 +- libxml2:版本 2.9.14 +- libxslt:版本 1.1.36 +- libzip:版本 1.9.2 +- logrotate:版本 3.20.1 +- lsof:版本 4.95.0 +- lzip:版本 1.23 +- mc:版本 4.8.28 +- mcelog:版本 189 +- nano:版本 6.4 +- nfs-utils:版本 2.6.2 +- nghttp2:版本 1.49.0 +- nginx:版本 1.22.0 +- ntfs-3g:版本 2022.5.17 +- ntp: 版本 4.2.8p15 +- oniguruma:版本 6.9.8 +- openssh:版本 9.0p1 +- openssl:版本 1.1.1q (CVE-2022-1292 CVE-2022-2097 CVE-2022-2274) +- openssl-solibs:版本 1.1.1q (CVE-2022-1292) +- p11-kit: 版本 0.24.1 +- pciutils:版本 3.8.0 +- pcre2:版本 10.40 +- perl:版本 5.36.0 +- php:版本 7.4.30 (CVE-2022-31625 CVE-2022-31626) +- pkgtools:版本 15.1 +- rpcbind:版本 1.2.6 +- rsync:版本 3.2.6 +- samba:版本 4.17.0 (CVE-2022-2031 CVE-2022-32744 CVE-2022-32745 CVE-2022-32746 CVE-2022-32742) +- sqlite:版本 3.39.3 +- sudo:版本 1.9.11p3 +- sysfsutils:版本 2.1.1 +- sysstat:版本 12.6.0 +- sysvinit-scripts:版本 15.1 +- talloc:版本 2.3.4 +- tar: 版本 1.34 +- tevent:版本 0.13.0 +- tree:版本 2.0.2 +- util-linux:版本 2.38.1 +- wayland:版本 1.21.0 +- wget:版本 1.21.3 +- xfsprogs:版本 5.18.0 +- xz:版本 5.2.6 +- zlib: 版本 1.2.12 + +["WireGuard"和"WireGuard"徽标是Jason A. Donenfeld注册的商标。](https://www.wireguard.com/) + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md new file mode 100644 index 0000000000..d5cfdf79e7 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.1.md @@ -0,0 +1,93 @@ +## 版本 6.11.1 2022-10-06 + +### 改进内容 + +更新了 qemu 和 libvirt 到最新版本: + +- 增加了 ppc、riscv32/riscv64 和 aarch64 支持。 + +更新 docker 到 v20.10.18 并改进了网络: + +- 当使用 DHCP 时,在系统启动时等待 IPv4 分配完成后再继续,这避免了启用主机访问自定义网络时的可能竞争条件。 +- 允许用户自定义网络在Docker服务启动时重新连接。现在所有定义的网络将自动重新连接。 + +VM 管理器改进: + +- 实施了使用 Virtiofs 将 Unraid 主机共享映射到虚拟机的选项。 +- 为虚拟机添加了 Spice HTML 客户端(实验)。 + +### 显著的错误修复 + +- 修复了打开某些页面(例如,仪表板)时,不必要地导致对USB闪存启动设备的写入问题。 + +- 修复了Docker容器在系统启动时未自动启动WG隧道时仍可访问互联网的问题。**建议用户重新生成WG配置。** 这可以通过例如点击字段以更改值,然后再更改回去以使应用按钮亮起来完成。然后点击应用。 + +- 修复了某些浏览器和设备上显示空弹出窗口的问题。 + +- 恢复了传入 SMB 连接的 "NTLMv1 认证"。 + +## 与 Unraid OS 6.11.0 的更改日志 + +#### 基本发行版 + +- acpid: 版本 2.0.34 +- bash: 版本 5.2.000 +- bind: 版本 9.18.7 +- ca-certificates: 版本 20220922 +- dbus: 版本 1.14.2 +- dnsmasq: 版本 2.87 +- docker: 版本 20.10.18 (CVE-2022-27664 CVE-2022-32190 CVE-2022-36109) +- git: 版本 2.38.0 +- glib2: 版本 2.72.4 +- glibc-zoneinfo: 版本 2022d +- gnutls: 版本 3.7.8 +- harfbuzz: 版本 5.2.0 +- intel-microcode: 版本 20220809 +- libXtst: 版本 1.2.4 +- libXxf86vm: 版本 1.1.5 +- libffi: 版本 3.4.3 +- libvirt: 版本 8.7.0 +- libvirt-php: 版本 0.5.6 +- lsof: 版本 4.96.3 +- nghttp2: 版本 1.50.0 +- pango: 版本 1.50.11 +- qemu:版本7.1.0(构建时添加了ppc,riscv32/64支持,用aarch64替换arm) +- sqlite: 版本 3.39.4 +- xterm:版本373 +- xz:版本 5.2.7 + +#### Linux kernel + +- 版本 5.19.14 +- CONFIG\_DRM\_MGAG200: Matrox G200 +- CONFIG\_X86\_SGX: 软件保护扩展 (SGX) +- CONFIG\_X86\_SGX\_KVM: 软件保护扩展 (SGX) 虚拟化 +- CONFIG\_CRYPTO\_ZSTD: Zstd 压缩算法 +- md/unraid: 版本 2.9.25 +- 补丁:静默 "全部为零的 EDID 块" 和 "有损坏的头部" 消息 +- 补丁:为用户报告的不合规设备添加NVMe特殊处理。 + +#### 管理 + +- WebGUI: VM 管理器:更新 GUI 选项 + - 包括 9P 和 Virtiofs + - 移除 Windows 的 9P 选项。 + - 如果是 virtiofs 和 Windows,则更新 XML 除了 Linux 之外。 + - 更新虚拟机共享界面选项 +- WebGUI: 修复:VM 页面显示错误反馈 +- WebGUI: 页面:将图形数据存储在文件中而不是在 cookie 中 +- WebGUI: 在降级操作系统之前要求用户提供诊断 +- WebGUI: 除 VNC 外,还提供 Spice HTML 客户端 +- WebGUI: 改进 windows 样式配置文件的处理 +- WebGUI: WireGuard: 在路由中添加显式接口名称 +- WebGUI: SWAL: 拦截 "esc" 按钮以在窗口关闭时停止 nchan +- WebGUI:nchan:延迟命令执行 + - 这可以防止某些浏览器和设备上出现空弹出窗口 + +["WireGuard"和"WireGuard"徽标是Jason A. Donenfeld注册的商标。](https://www.wireguard.com/) + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md new file mode 100644 index 0000000000..e026dd3f26 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.2.md @@ -0,0 +1,110 @@ +## 版本 6.11.2 2022-11-04 + +此版本专注于错误修复和小改进。请注意,Samba 中有重要的安全缓解措施,所有用户均应进行更新。 + +### VM管理器 + +如果您从传递的物理 USB 设备启动虚拟机,则必须将新设置中的**启用 USB 启动**设置为**是**。这是由于最新的 OVMF 组件中的功能变更。 + +更改: + +- 为 USB 和 USB 启动选项添加启动顺序。使用“启动顺序”字段,虚拟机可以从传递的 NVMe 控制器/设备启动。 +- 添加 virtiofs/9p Unraid 共享映射。 +- CD热插拔错误修复。 +- 修复模板内的热插拔。 +- 修复从直通变为自定义 CPU 的更改。 +- 测试访客代理以抑制libvirt日志中的错误消息,并显示访客未运行或未安装客代理的文本。 +- 修复无法更改HyperV设置。 +- 添加"从控制台开始"选项。 +- OVMF for QEMU:版本edk2-stable202208 + +### WireGuard + +更改: + +- 修复使用默认network.cfg设置时设置通道的问题。 +- 修复设置路由时的拼写错误。 + +### 插件管理器 + +更改: + +- 如果无法从CDN URL读取插件文件,则回退到非CDN URL。 +- 强制插件文件必须以".plg"结尾。 +- 修复插件下载失败时的后钩子失败。 +- 调整wget参数以防止无限挂起。 + +### 调度程序 + +对于计划的校验检查,将默认模式更改为非纠正。在校验检查期间如果磁盘出现问题,默认设置为非纠正将更安全。如果检测到同步错误,用户可以分析日志并相应地处理。 + +### 其他 WebGUI + +更改: + +- DashStats:当数值为xxx.x时,入站网络状态不正确。 +- Docker:在Docker自定义网络设置中添加/澄清帮助。 +- Docker:修复孤立图像上的显示异常 +- SMART属性:将消息"无法读取属性"更改为"属性不可用" +- ShareEdit/ShareList:当共享池不是定义的池时显示池未定义 + +### Linux kernel + +- 版本 5.19.17 +- 修补:用户报告的设备不兼容的额外 NVMe BOGUS\_NID问题 +- 声音支持: + - CONFIG\_SOUND:声卡支持 + - CONFIG\_SND:高级 Linux 声音架构 + - CONFIG\_SND\_OSSEMUL: 启用 OSS 模拟 + - CONFIG\_SND\_PCM\_OSS:OSS PCM(数字音频)API + - CONFIG\_SND\_HRTIMER:HR 定时器后端支持 + - CONFIG\_SND\_SUPPORT\_OLD\_API:支持旧版 ALSA API + - CONFIG\_SND\_PROC\_FS:声音 Proc FS 支持 +- CONFIG\_IPV6: IPv6 协议(从模块更改为内置) + +### 基础发行版 + +包括CVE缓解措施的软件包更新: + +- bash:版本5.2.002 +- bind:版本9.18.8(CVE-2022-38178 CVE-2022-38178 CVE-2022-3080 CVE-2022-2795) +- btrfs-progs:版本6.0 +- curl:版本 7.86.0 +- dbus:版本1.14.4 +- freeglut:版本3.4.0 +- git:版本2.38.1(CVE-2022-39253 CVE-2022-39260) +- glibc-zoneinfo:版本2022e +- harfbuzz:版本5.3.1 +- icu4c:版本72.1 +- iproute2:版本6.0.0 +- kernel-firmware:版本 20221017\_48407ff +- less:版本608 +- libXmu:版本1.1.4 +- libXrender:版本0.9.11 +- libedit:版本 20221009\_3.1 +- libffi:版本3.4.4 +- libgpg-error:版本1.46 +- libpciaccess:版本0.17 +- libunistring:版本1.1 +- libxkbfile:版本1.1.1 +- libxshmfence:版本1.3.1 +- lsof:版本4.96.4 +- nginx:版本1.22.1 +- openssh:版本9.1p1 +- php:版本7.4.32 +- pixman:版本0.42.0 +- rsync:版本3.2.7 +- samba:版本 4.17.2 (CVE-2021-20251 CVE-2022-3437 CVE-2022-3592) +- sudo:版本1.9.12 +- tree:版本2.0.4 +- xkeyboard-config:版本2.37 +- xterm:版本375 +- zlib:版本1.2.13(CVE-2022-37434) + +["WireGuard"和"WireGuard"徽标是Jason A. Donenfeld注册的商标。](https://www.wireguard.com/) + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md new file mode 100644 index 0000000000..45c0f8563e --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.3.md @@ -0,0 +1,36 @@ +## 版本 6.11.3 2022-11-08 + +此版本专注于错误修复和小改进。特别是因为一个错误,使大于 2TB 的设备无法格式化,我们需要还原一个基础库。 + +### 管理 + +- 已还原 'libpopt.so.0.0.1' 以解决用于格式化大于 2TB 设备的 'sgdisk' 错误。 +- 修复了“root”用户的描述设置在重启后未被保留的问题。 +- 修复有时信息窗口打开为空的问题。 + +### VM管理器 + +- 在编辑时为 USB 启动和共享选择设置正确的值。 +- 添加网卡启动顺序。 + +### 基础发行版 + +- gptfdisk: 版本 1.0.8 (从版本 1.0.9 还原) +- libXext: 版本 1.3.5 +- libXinerama: 版本 1.1.5 +- libdrm: 版本 2.4.114 +- libedit: 版本 20221030\_3.1 +- mcelog: 版本 190 +- ntfs-3g: 版本 2022.10.3 +- openssl: 版本 1.1.1s +- openssl-solibs: 版本 1.1.1s +- pixman: 版本 0.42.2 +- sessreg: 版本 1.1.3 +- sudo: 版本 1.9.12p1 +- xsetroot: 版本 1.1.3 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md new file mode 100644 index 0000000000..d525d04590 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.4.md @@ -0,0 +1,60 @@ +## 版本 6.11.4 2022-11-18 + +此版本专注于错误修复和小幅改进。 + +### 诊断 + +- 在诊断中修复共享信息。 + +### Docker + +- docker: 版本 20.10.21 (CVE-2022-39253 CVE-2022-2879 CVE-2022-2880 CVE-2022-41715) +- 修复:移除孤立镜像后显示“请稍候”信息。 +- 将 IPVLAN 设为新安装的默认设置。 + +### Samba + +- samba: 版本 4.17.3 (CVE-2022-42898) +- 将默认“最大打开文件数”设置为当前的 'ulimit -n' 值,即40960。 + +### VM管理器 + +- 允许网络PCI设备设置启动顺序。 +- 更改为使用 libvirt\_domain\_interface\_addresses, 该功能已经存在很长时间,但在 API 手册中未被记录。 使用此函数可防止污染警告被写入日志,例如:“域 id=4 被污染:自定义-ga-命令”。 +- 修复虚拟机重命名问题。 + +### 其他 + +- 修复了试用密钥阻止阵列自动启动的问题。 +- 修复多字节 UTF-8 字符密码的编码问题。 +- 校验历史:在日期中添加星期几。 +- 共享:修复:不允许创建隐藏的共享名称。 +- 主页:打开新浏览器会话时重新初始化磁盘传输统计信息。 +- 管理访问页面:改进SSL消息传递 +- Firefox: 版本 107.0.r20221110173214 (AppImage) +- 在所有浏览器会话关闭时,停止不必要的后台进程。 + +### 基础发行版 + +- bash: 版本 5.2.009 +- btrfs-progs: 版本 6.0.1 +- gdk-pixbuf2: 版本 2.42.10 +- glibc-zoneinfo: 版本 2022f +- intel-microcode: 版本 20221108 +- libX11: 版本 1.8.2 +- libnftnl: 版本 1.2.4 +- nghttp2: 版本 1.51.0 +- php: 版本 7.4.33 (CVE-2022-31630 CVE-2022-37454) +- sed: 版本 4.9 +- sysstat: 版本 12.7.1 +- xkbevd: 版本 1.1.5 +- xkill: 版本 1.0.6 +- xlsatoms: 版本 1.1.4 +- xlsclients: 版本 1.1.5 +- xz: 版本 5.2.8 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md new file mode 100644 index 0000000000..a8b050dfa7 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.11.5.md @@ -0,0 +1,13 @@ +## 版本 6.11.5 2022-11-20 + +此版本恢复了一个错误更改了文件的更改。这导致无法选择“macvlan”自定义docker网络类型。现在仅新安装将默认选择“ipvlan”。 + +### Docker + +- 修复:仅对新安装将 IPVLAN 设置为默认。 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md new file mode 100644 index 0000000000..2bb94b7a24 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.0.md @@ -0,0 +1,565 @@ +# 版本 6.12.0 2023-06-14 + +## 升级说明 + +启动时,如果 `config/vfio-pci.cfg` 中指定的所有 PCI 设备未正确绑定,将禁止虚拟机自动启动。您仍旧可以单独启动虚拟机。这样做是为了避免 Unraid 主机在因内核更新或物理硬件更改而导致 PCI 硬件 ID 发生变化时崩溃。要恢复虚拟机自动启动,请检查 `/var/log/vfio-pci-errors` 并从 `config/vfio-pci.cfg` 文件中删除有问题的 PCI ID,然后重启。 + +如果您从 6.12 降级到 6.11.5 或更早版本,您必须强制更新所有 Docker 容器并在降级后手动启动它们。这是因为从 6.12.0-rc1 开始切换到 cgroup v2 所导致的底层变更。 + +Linux [Multi-Gen LRU](https://lwn.net/Articles/856931/) 是一个较新的特性,现在已默认包含但未启用。您可以通过在您的 'config/go' 文件中添加以下行来启用: + +`echo y > /sys/kernel/mm/lru_gen/enabled` + +如果从 6.12 回滚到 6.11.5 或更早版本,可能需要移除此行。 + +如果你使用 6.12.0-beta5 创建了任何 zpool,请擦除这些池并重新创建。 + +### 过时/损坏的插件 + +有一些插件已知与 Unraid 6.12 不兼容,启动时将不会安装。您将收到每个受影响插件的通知,并可以通过访问 **插件/插件文件安装错误** 查看列表。 + +- disklocation-master 版本 2022.06.18(olehj 的 `Disk Location`,导致仪表板中断) + - 在升级操作系统前,请更新此插件。 +- plexstreams 版本 2022.08.31(dorgan 的 `Plex Streams`,导致仪表板中断) + - 在升级操作系统前,请更新此插件。 +- corsairpsu 版本 2021.10.05(Fma965 的 `Corsair PSU Statistics`,导致仪表板中断) + - 在升级操作系统前,请更新此插件。 +- gpustat 版本 2022.11.30a(b3rs3rk 的 `GPU Statistics`,导致仪表板中断) + - 切换到 SimonF 的 `GPU Statistics` +- ipmi 版本 2021.01.08(dmacias72 的 `IPMI Tools`,导致仪表板中断) + - 切换到 SimonF 的 `IPMI Tools` +- nut 版本 2022.03.20(dmacias72 的 `NUT - 网络 UPS 工具`,导致仪表板中断) + - 切换到 SimonF 的 `NUT - 网络 UPS 工具` +- NerdPack 版本 2021.08.11(dmacias72 的 `Nerd Tools`) + - 切换到 UnRAIDES 的 `NerdTools` +- upnp-monitor 版本 2020.01.04c(ljm42 的 `UPnP Monitor`,与 PHP 8 不兼容) +- ZFS-companion 版本 2021.08.24(campusantu 的 `ZFS-Companion`,导致仪表板中断) + +一些受影响的插件已被不同的开发者接管,我们建议您访问 **应用程序** 页面并搜索替代品。请在该插件的支持线程中询问插件特定的问题。 + +### 已知问题 + +#### 与 i915 驱动程序相关的崩溃 + +注意:截至 Unraid [6.12.6](6.12.6.md#bug-fixes-and-improvements) 此问题已不再存在。 + +我们知道某些 11 代英特尔 Rocket Lake 系统出现与 i915 iGPU 相关的崩溃。如果您的 Rocket Lake 系统在 Unraid 6.12.0-6.12.5 期间崩溃,请打开 web 终端并输入以下命令,然后重启: + +`echo "options i915 enable_dc=0" >> /boot/config/modprobe.d/i915.conf` + +设置此选项可能会导致更高的功耗,但可能会解决这些 GPU 的问题。 + +#### 与 macvlan 相关的调用跟踪 + +如果您收到与 macvlan 相关的调用跟踪,首先建议您导航到 ***设置 > Docker***,切换到高级视图,并将 **Docker 自定义网络类型** 从 **macvlan** 更改为 **ipvlan**。这是 Unraid 从 6.11.5 版本开始所采用的默认配置,应该适用于大多数系统。 + +然而,一些用户报告在使用某些路由器(Fritzbox)进行端口转发时存在问题,并且在 ipvlan 模式下高级网络管理工具(Ubiquity)的功能减少。 + +在 6.12.0 中,[双网卡 Docker 分段方法](https://forums.unraid.net/topic/137048-guide-how-to-solve-macvlan-and-ipvlan-issues-with-containers-on-a-custom-network/) 是个行之有效的解决办法,不过我们建议升级到 Unraid [6.12.4](6.12.4.md),这一版本提供了更好的解决方案。 + +#### Plex + +如果 Docker 容器在一段时间后启动有问题,并且你正在运行 Plex,请进入 Plex Docker 容器设置, +切换到高级视图,并在额外参数中添加:`--no-healthcheck` + +### 回滚 + +请参见 [升级说明](#upgrade-notes) 下的评论 + +## ZFS 池 + +此版本新增功能允许在用户定义的池中创建 ZFS 文件系统。您也可以用单设备 ZFS 文件系统格式化 Unraid 阵列中的任何数据设备。想了解 ZFS 的详细概述,请参见 [本文](https://arstechnica.com/information-technology/2020/05/zfs-101-understanding-zfs-storage-and-performance/)。 + +我们将在两个 Unraid OS 发布版本中分步实现完整的 ZFS 支持。本次发布中的初始支持包括: + +- 支持 raid0、镜像、raidz1、raidz2 和 raidz3 根配置文件。在镜像 vdev 中最多支持 4 向镜像。支持多个 vdev 组。 +- 支持删除单个设备:如果设备仍然存在于服务器中,使用 'wipefs' 清除分区表。 +- 支持用相同或更大尺寸的新设备替换单个缺失设备。 +- 支持计划修剪 ZFS 池。 +- 支持池重命名。 +- 池名称必须以小写字母开头,仅包含小写字母、数字、下划线和连字符。池名称不能以数字结尾。 +- 非根 vdev 无法在此版本中配置,但可以导入。注意:导入的混合池可能无法在此版本中扩展。 +- 在其他系统上创建的池可能会或可能不会导入,具体取决于池的创建方式。未来的更新将允许从任何系统导入池。 + +ZFS 池有三个变量: + +- 配置 - 根数据组织:raid0、镜像(最多 4 路)、raidz1、raidz2、raidz3 +- 宽度 - 每个根 vdev 的设备数量 +- 组 - 池中根 vdev 的数量 + +在创建 ZFS 池时,WebGUI 将根据分配给池的设备数量提供所有拓扑选项。 + +对单根 vdev 镜像的特殊处理: + +- 单设备 ZFS 池可以通过一次操作添加最多 3 个额外设备转换为多设备镜像。 +- 可以通过添加单个设备将2设备镜像增加到3设备;类似地,可以通过添加单个设备将3设备镜像增加到4设备。 + +要添加额外的根 vdev,您必须同时为池分配 'width' 数目的新设备。新 vdev 将采用与现有 vdevs 相同的 '配置文件' 创建。将来的一次更新将提供在添加/扩展 vdevs 时更多的灵活性。 + +使用 **steini84** 插件创建的池可以如下导入:首先创建一个与要导入池中的设备数量相应的插槽数的新池。接下来将所有设备分配给新池。启动阵列时应识别该池,但某些 zpool 拓扑可能无法识别(请报告)。请注意,本次发布中仅能导入使用分区 #1 的池,例如: `lsblk` 输出: + +```bash +# lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS +sdb 8:16 0 7.3T 0 disk +├─sdb1 8:17 0 2G 0 part +└─sdb2 8:18 0 7.3T 0 part +``` + +表示磁盘的第二个(`sdb2`)分区正在用于数据,且**不能**导入。 + +不支持混合拓扑。例如,具有镜像根 vdev 和 raidz 根 vdev 的池将不被识别。 + +Autotrim 可以配置为 **开** 或 **关**(unRAID 阵列中的单设备 ZFS 卷除外)。 + +压缩可以配置为 **开** 或 **关**,其中 **开** 选择 **lz4**。将来的一次更新将允许指定其他算法/级别。 + +创建新的 ZFS 池时,可以选择 **zfs - 加密**,就像其他加密卷一样,通过 LUKS 应用设备级加密。目前尚不支持 ZFS 原生加密。 + +系统启动期间,文件 /etc/modprobe.d/zfs.conf 将自动生成以将 ZFS ARC 限制为已安装内存的 1/8。如果需要,可以通过创建自定义 'config/modprobe.d/zfs.conf' 文件来覆盖这个限制。将来的一次更新将包括通过 WebGUI 配置 ARC 的功能,自动根据内存压力调整,例如虚拟机的启动/停止。 + +在 ZFS 池中创建的顶级用户共享作为数据集,而不是普通目录。 + +## 共享存储概念变更 + +此版本中的一项概念性变化是存储被分配给共享的方式。以前的概念是将 Unraid 阵列作为主存储,配以可选的 "缓存",这种说法对许多新用户产生了困惑,尤其是\_缓存\_ 在 ZFS 中有特定含义。 + +如下面所述,我们引入了 *独占共享* 的概念。这不过是一个共享,其所有数据都位于一个命名池中。在这种情况下,基于 FUSE 的用户共享文件系统将返回指向池中实际共享目录的 **符号链接**。因此,所有共享中的操作,包括数据传输,都绕过 FUSE,从而提高了性能。此功能主要是为了最大程度地提高通过快速网络访问的大的快速 ZFS 池的 I/O。 + +这只是前端更改;现有共享将在升级后自动使用这种新结构查看, +如果回滚到早期版本,则将自动恢复到先前样式。 + +共享存储选项的配置使用两个输入指定: + +- 主存储 +- 辅助存储 + +主存储是创建 **新** 文件/文件夹的位置。如果主存储低于最小可用空间设置,则将在次级存储中创建新文件和文件夹(如果有配置)。 + +每个输入显示一个下拉菜单,列出“阵列”、“无”和每个命名池,符合一些配置规则: + +主存储下拉菜单: + +- “无”选项被省略,即必须选择主存储 +- 可以选择任何命名池 +- 可以选择“阵列”(意为 unRAID 阵列) + +辅助存储下拉菜单: + +- 包括“无”选项,即辅助存储是可选的 +- 如果主存储是一个池名称,则唯一的选项是 "无" 和 "阵列"。将来,这里还会列出其他池。 +- 如果主存储是“阵列”,则仅“无”出现为选项 + +当主或辅助存储选为“阵列”时,会出现一组额外设置: + +- 分配方法 +- 包含的磁盘 +- 排除的磁盘 +- 分级水平 + +当选中 *btrfs* 命名池作为主存储或辅助存储时,会出现额外设置: + +- 启用写时复制 + +当为主存储或次级存储选择一个 *ZFS* 命名池时,目前没有其他设置,但未来可能会有。例如,由于共享是作为 ZFS 数据集创建的,如果我们需要实现这一点,它可以与上级池有不同的压缩设置。 + +### 搬运动作 + +当为共享配置了辅助存储时,“搬运动作”设置被启用,允许用户选择搬运器的传输方向: + +- 主到辅助(默认) +- 辅助到主 + +### 专属共享 + +我们新增了一个设置:“Settings/Global Share Settings/Permit exclusive shares” \[是/否] 默认:否。如果设置为是且共享的主存储为池,而次级存储设置为“无”,则会在/mnt/user/\_share\_中创建指向池共享目录的符号链接。(还会进行额外检查,以确保共享不存储在任何其他卷上。) + +有一个新的状态标志,'独占访问',当符号链接到位时设置为 '是';否则设置为 '否'。共享页面上也会指出独占共享。 + +设置符号链接的优势在于 I/O 绕过基于 FUSE 的用户共享文件系统(shfs),这可以显著提升性能。 + +有一些限制: + +- 在专属共享中创建新文件时,忽略共享的最小自由空间和池的最小自由空间设置。 +- 如果共享通过NFS导出,则不能是排他性的,即不会创建符号链接。这是因为符号链接在NFS客户端而不是服务器上解析。我们希望在未来的更新中取消此限制。 + +### 清理按钮 + +在共享页面上,启用了一个名为清理的按钮,表示有 config/share/*share*.cfg 文件对应不存在的共享。点击此按钮将删除这些文件。 + +## 其他改进 + +### btrfs + +在池中使用时,Autotrim 可以配置为 **开** 或 **关**。 + +压缩可以配置为 **开** 或 **关**。 **开** 选择 **zstd**。未来更新将允许指定其他算法/级别。 + +### xfs + +在用作单槽池时,Autotrim 可以配置为 **开** 或 **关**。 + +### Docker + +可以将 **Docker 数据根目录** 配置为放置在 ZFS 存储池中的目录。在这种情况下,Docker 将使用 'zfs' 存储驱动程序。该驱动程序为每个镜像层创建一个单独的数据集。因此,以下是我们建议使用 **目录** 设置 Docker 的推荐方案: + +首先,创建一个**docker**用户共享,其配置如下: + +- 共享名称:**docker** +- 主存储: ***您的 ZFS 池名称*** +- 次要存储:**无** + +接下来,在**Docker设置**页面上: + +- 启用docker:**是** +- Docker数据根目录:**目录** +- Docker目录:**/mnt/user/docker** + +如果您需要删除 Docker 的持久性状态,则打开 Docker 设置页面并将 **启用 docker** 设置为 **否**,然后单击 **应用**。Docker 停止后,选中 **删除目录** 复选框,然后单击 **删除**。这将导致删除各种文件和目录,同时删除作为数据集存储的所有层。 + +在再次启用Docker之前,请确保首先按照上述说明重新创建**docker**共享。 + +#### 其他Docker变更 + +- CreateDocker: 更改了标签 **Docker Hub URL** 为 **Registry URL**,因为 GHCR 和其他新的容器注册越来越受欢迎。 +- 尊重用户设置的停止超时时间。 +- 接受OCI格式的镜像。 +- 添加选项以禁用容器表的readmore-js。 +- 修复:如果选择bash,Docker容器控制台将不会使用。 +- 修复检测Docker正确关机问题。 +- rc.docker:给予dockerd 30秒而不是15秒来启动。 + +### VM管理器 + +如果您为虚拟控制台启用复制/粘贴功能,则需要在客户端上安装额外的软件,除了已经安装的 QEMU 代理外。[这是](https://www.spice-space.org/download.html) Windows 和 Linux 的 spice-vdagent 位置。请注意,复制/粘贴功能将无法与 web spice 查看器配合使用,您需要使用 virt-viewer。 + +#### 其他虚拟机更改 + +- 为vdisk添加串行选项。 +- 修复用户使用非标准GUI端口定义的Spice错误。 +- OVMF for QEMU:版本stable202302 +- 修复bus文本问题。 +- 启用虚拟控制台的复制粘贴选项。 +- 更新Virtiofs的内存备份处理。 +- 修复无虚拟机存在时的锁定问题。 +- 为rtl8139网络模型添加支持。 +- 修复翻译遗漏。 +- 为可排序项目添加锁定/解锁功能。 +- 如果启用复制粘贴,修复Spice鼠标问题。 +- 即使PCI设备显得缺失或被错误分配,也让页面加载。 +- 使远程查看器和Web控制台选项可选。 +- 选项:下载.vv文件,并启动远程查看器,浏览器设置为在下载时打开.vv文件。 +- 添加远程查看器控制台支持。 +- 移除-lock-posix='on'-flock='on'/ +- 修复VM标为自动启动未在手动阵列启动后启动的问题。 +- 修复最大内存> 1TB的问题。 +- 修复用户移除vcpu绑定时VM页面加载问题。 +- ovmf-stable:版本202305(构建3)。 +- 修复通知主题。 + +### 仪表盘 + +WebGUI 仪表板已经过重新设计,现在可以上下移动元素(图块)以及在列之间移动。这样允许用户以他们希望的任何方式组织图块。在菜单栏上有一个小的 **锁定** 图标,必须单击以启用此功能: + +- 绿色为正常状态(页面已锁定) +- 红色为注意状态(页面已解锁) + +注意:**锁定**图标也出现在Docker和VM页面上,必须点击以重新排列启动顺序。 + +### 网络改进 + +我们添加了一个新部分:设置/网络设置/接口额外 + +此新部分允许用户定义 Unraid 服务使用的接口。默认情况下,所有常规接口及其 IP 地址都包含在监听接口列表中。 + +Unraid 内置的 WireGuard 功能的隧道在激活或停用时会自动添加或从列表中删除。用户可以将这些隧道从监听接口列表中排除。 + +要使用 Tailscale 或 Zerotier 接口,需要将通信的接口名称或 IP 地址添加到包含的监听接口列表中。**重要说明:** 在将接口添加到列表之前,Tailscale 或 Zerotier 容器必须正在运行。有关更多信息,请参见[这个社区论坛帖子](https://forums.unraid.net/bug-reports/prereleases/unraid-os-version-6120-rc7-available-r2427/?tab=comments#comment-24235)。 + +#### 其他网络变更 + +- 支持自定义接口(例如Tailscale VPN隧道或zerotier L2隧道) +- create\_network\_ini - 网络变更完成时重启smb +- rc.inet1 - 添加iptables处理以桥接接口,使其操作与macvlan接口相似 +- rc.avahidaemon - 仅让服务监听具有IP地址的常规接口,包括主接口+设置IPv4 / IPv6支持 +- rc.docker - 当设置为仅IPv4时,抑制docker0和shim接口的IPv6本地链路地址 +- rc.samba - 仅让smb,nmb服务监听具有IP地址的常规接口,包括主接口+设置IPv4 / IPv6支持(也用于wsdd2) +- rc.ssh - 仅监听具有IP地址的常规接口,包括主接口+设置IPv4 / IPv6支持 +- 修复在auto/static之间切换DNS服务器时/etc/resolve.conf可能被删除的问题。 +- 修复处理描述字段时的错误。 +- 修复nginx识别来自慢速DHCP服务器的IP地址 + +### 其他改进/漏洞修复 + +- 将每个池的最大设备数从 30 增加到 60。将在未来的版本中完全消除上限。 +- webTerminal: 为了更好的可读性,在设置了 'w+o' 的目录列表上更改了背景颜色。同时将渲染器从webgl更改为canvas,以解决最新Chrome版本的问题。 +- 固定NTP漂移文件从持久USB闪存“config”目录保存/恢复。 +- 移除多余的/root/.config/remmina文件 +- 共享编辑:使用无效的 ZFS 名称时发出警告。 +- 共享编辑:允许一个字母的名称 +- 添加[Pushbits代理](https://github.com/pushbits/server)以进行Matrix/Synapse集成。 +- cgroup2现在是默认值 +- 不再使用directio挂载回环图像 +- newperms脚本限制为仅在/mnt/上操作。 +- 升级pkg修改,防止用旧版本替换现有软件包。 +- 升级 Unraid OS 时,当前 PCI 总线/设备信息保存于 '/boot/previous/hardware' 文件中。 +- NFS:启用UPD传输 +- emhttp:修复缓存池(null)系统日志字符串 +- emhttp:修复缓存池显示错误设备尺寸,对于所选替换设备 +- mover:修复软链处理不当 +- mover:修复syslog条目的格式与以前的版本不同 +- 插件:在错误消息中显示运行命令的返回值 +- shfs:忽略顶级隐藏目录(名称以'.'开头) +- 终端:OpenTerminal:更改终止信号(硬停止) +- 升级 Unraid OS:检查是否存在未重启的早期升级。 +- WebGUI:支持PHP8,将PHP最大内存从128M增加到256M +- WebGUI:管理访问:当eth0上没有IP时禁用Provision/Renew/Upgrade按钮 +- WebGUI:管理访问:支持将WireGuard本地IP地址与myservers.unraid.net SSL证书结合使用 +- WebGUI:将“查看”图标移到主页面和共享页面左侧 +- WebGUI:使解散的横幅保持隐藏一个月 +- WebGUI:仪表板:修复“选择用例”中的回归错误 +- WebGUI:仪表板:使项在列之间可以移动 +- WebGUI:仪表板:API用于添加自定义瓷砖 +- WebGUI:仪表板:重新排列处理器信息 +- WebGUI:仪表板:重新排列UPS信息 +- WebGUI:仪表板:重新排列内存信息 +- WebGUI:仪表板:VPN标头重新排列 +- WebGUI:仪表板:标头重新排列 +- WebGUI:为移动设备添加jqueryUI touch punch +- WebGUI:对于出现多次的元素,将ID更改为CLASS +- WebGUI:使白色和黑色主题中的标头可滚动 + - 当屏幕空间出现不多项目时,用户现在可以滚动查看这些项目(以前这些项目是不可见的) +- WebGUI:仪表板和Docker:为可排序项目引入锁按钮 + - 默认情况下,可排序项目被锁定,这允许移动设备滚动页面。根据请求,可以使项目变得可排序。 +- WebGUI:用户:标题栏中添加图标 +- WebGUI:工具:新功能 -> PHP设置 + - 查看PHP信息 + - 配置错误报告 + - 打开日志以实时查看错误 +- WebGUI:系统信息:修复读取非活动端口问题 +- WebGUI:插件:包括正在执行的实际命令 +- WebGUI:系统信息:缓存增强 +- WebGUI:系统信息:内存增强 +- WebGUI:设备信息:擦除操作运行时禁用按钮 +- WebGUI:Docker:文件树修正 +- WebGUI:仪表板:修复每个池的温度警报显示 +- WebGUI:通知:操作修订 + - 新的通知3秒后自动关闭 + - 修复通知在关闭后重新出现 +- WebGUI:设备列表:在离线状态下添加文件系统类型 +- WebGUI:添加Bark通知代理 +- WebGUI:主页面:在磁盘未挂载时隐藏浏览图标 +- WebGUI:诊断:添加额外的 btrfs 和 zfs 信息。 +- WebGUI:仪表板:添加 ZFS 内存使用情况。 +- WebGUI:新权限修订 + - 选择磁盘或共享(不能同时选择两者) +- WebGUI:在诊断中添加testparm +- WebGUI:支持新的UD保留挂载点/mnt/addons +- WebGUI:在温度显示设置为华氏温度时,修复显示属性的问题 +- WebGUI:仪表板变更: + - 完全锁定仪表板:仅在解锁页面时,才能进行编辑/移动 + - 当相应的瓷砖重新出现时,重新填充空列,无需重置所有内容 + - 在Docker和VM页面上添加了可视的“移动指示器”,更清楚地表明可以移动行。 + - 启用移动时改变光标形状 + - 使用瓷砖标题作为索引 +- WebGUI:修复:本地Firefox帐户弹出消息不工作 +- WebGUI:因为没有选择旋转暂停延迟而无法对UD磁盘运行SMART测试 +- WebGUI:在应用共享配置设置更改时,状态页脚卡在“启动服务”上。 +- WebGUI:修复孤儿镜像的表格布局 +- WebGUI:插件:当不兼容时不显示更新按钮 +- WebGUI:插件:使wget百分比检测更强大 +- WebGUI:OpenTerminal:限制客户端 +- WebGUI:上下文菜单:自动三角形位置 +- WebGUI: 仪表盘:修复池警告 +- WebGUI: 允许 SMART 长测 UD +- WebGUI: 从/proc/cpuinfo读取处理器类型 +- WebGUI: CSS:解决 Firefox 中的滚动条问题 +- WebGUI: 添加共享:修复隐藏共享名称检查 +- WebGUI: 显示设置:添加缺失的默认值 +- WebGUI: 阵列操作:防止双击启动按钮 +- WebGUI: 设备信息:用单位显示 shareFloor +- WebGUI: 设备信息:添加自动楼层计算 +- WebGUI: 增加自动调整大小消息 +- WebGUI: 共享:增加信息图标 +- WebGUI: 更新设备信息和共享页面 +- WebGUI: 修复网络显示异常 +- WebGUI: 自动填充新的共享的最小空闲空间 +- WebGUI: feat(upc): 更新为连接的 v3 +- WebGUI: 共享/池大小计算:显示和允许百分比值 +- WireGuard: 为WG隧道IP地址添加SSL支持(仅限myunraid.net通配符证书) +- WireGuard: 修复部分WireGuard配置时的Nginx问题 + +### 发布\_bz\_文件差异 + +Unraid OS 由一组位于USB闪存启动设备根目录下的 5 个所谓的\_bz\_文件组成: + +- bzimage - Linux内核 +- bzroot - 根文件系统(不含控制台桌面) +- bzroot-gui - 控制台桌面所需的附加文件 +- bzmodules - 与 Linux 内核相关的模块(驱动程序) +- bzfirmware - 由某些模块所需的设备固件 + +从6.12版开始,这些文件的内容已被重新排列: + +- bzimage - Linux内核(与以前相同) +- bzroot - 根文件系统,不包含/usr目录树 +- bzroot-gui - 一个自动启动控制台桌面的单一文件(为兼容性) +- bzmodules - 与 Linux 内核相关的模块(驱动程序)和由某些模块所需的设备固件 +- bzfirmware - /usr目录及其中包含的所有文件,包括控制台桌面 + +这些更改加快了启动过程,并释放了近 1G 的 RAM。它还允许我们在未来为 Unraid OS 添加更多"东西"而无需更多 RAM。最后,在**非 GUI** 模式启动时,可以通过在控制台登录并输入 'slim' 命令启动桌面。 + +#### 手动更新 + +手动更新是指在不使用 **工具/更新 OS** 功能的情况下,更新您 USB 闪存启动设备上的 Unraid OS。通常有以下两种方式: + +- 打开一个终端窗口,wget下载发布的zip文件,解压缩发行版本,然后将\_bz\_文件复制到启动设备的根目录。 + +或 + +- 在网络上导出'flash'共享,并将\_bz\_文件从PC直接拖到闪存中。 + +无论哪种方法,从6.12开始**可能会失败**,因为\_bzfirmware\_文件会在仍然挂载的时候被覆盖 - 这不好。 + +为了解决此问题,您必须首先在闪存设备上创建一个临时目录,然后将所有现有的 *bz* 文件移动(或拖放)到此临时目录中。现在,您可以将新的 *bz* 文件复制到闪存设备的根目录并重新启动。 + +## Linux kernel + +- 版本6.1.33 +- md/unraid: 版本 2.9.27 +- CONFIG\_FS\_DAX:基于文件系统的直接访问(DAX)支持 +- CONFIG\_VIRTIO\_FS:Virtio文件系统 +- CONFIG\_ZONE\_DEVICE:设备内存(pmem,HMM等)热插拔支持 +- CONFIG\_USBIP\_HOST:主机驱动程序 +- CONFIG\_INTEL\_MEI:英特尔管理引擎接口 +- CONFIG\_INTEL\_MEI\_ME: 启用ME的英特尔芯片组 +- CONFIG\_INTEL\_MEI\_GSC: 英特尔MEI GSC嵌入式设备 +- CONFIG\_INTEL\_MEI\_PXP: ME接口的英特尔PXP服务 +- CONFIG\_INTEL\_MEI\_HDCP: ME接口的英特尔HDCP2.2服务 +- CONFIG\_INTEL\_PMC\_CORE: 英特尔PMC核心驱动程序 +- CONFIG\_DRM\_I915\_PXP: 启用英特尔PXP支持 +- CONFIG\_SCSI\_FC\_ATTRS: 光纤通道传输属性 +- CONFIG\_FUSION\_SPI: Fusion MPT ScsiHost SPI驱动程序 +- CONFIG\_FUSION\_FC: Fusion MPT ScsiHost FC驱动程序 +- CONFIG\_FUSION\_CTL: Fusion MPT杂项设备(ioctl)驱动程序 +- CONFIG\_FUSION\_LOGGING: Fusion MPT日志记录设施 +- CONFIG\_X86\_AMD\_PSTATE: AMD处理器P-State驱动程序 +- CONFIG\_LRU\_GEN: 多代LRU +- CONFIG\_SERIAL\_8250\_NR\_UARTS=32: 8250/16550串口的最大数量 +- CONFIG\_SERIAL\_8250\_RUNTIME\_UARTS=4: 运行时注册的8250/16550串口数量 +- CONFIG\_FANOTIFY: 文件系统范围的访问通知 + +## 基础发行版更新 + +- aaa\_glibc-solibs: 版本2.37 +- adwaita-icon-theme: 版本 43 +- at-spi2-core: 版本 2.46.0 +- bash: 版本 5.2.015 +- bash\_completion: 版本2.11 +- bind: 版本 9.18.12 +- btrfs-progs: 版本 6.2.1 +- ca-certificates: 版本 20221205 +- cryptsetup: 版本 2.6.1 +- curl: 版本 7.88.1 +- dbus: 版本 1.14.6 +- diffutils: 版本 3.9 +- dnsmasq: 版本 2.89 +- docker: 版本 23.0.6 +- e2fsprogs: 版本 1.47.0 +- encodings: 版本 1.0.7 +- file: 版本 5.44 +- firefox: 版本 111.0 (AppImage) +- freetype: 版本 2.13.0 +- fuse3: 版本 3.12.0 +- gawk: 版本 5.2.1 +- git: 版本 2.39.2 +- glib2: 版本 2.74.6 +- glibc: 版本 2.37 +- glibc-zoneinfo: 版本 2022g +- gnutls: 版本 3.7.9 +- gptfdisk: 版本 1.0.9 +- gtk+3: 版本 3.24.37 +- harfbuzz: 版本 7.1.0 +- htop: 版本 3.2.2 +- iproute2: 版本 6.2.0 +- iptables: 版本 1.8.9 +- iputils: 版本 20221126 +- kernel-firmware: 20230531\_fc90c59 +- less: 版本 612 +- libICE: 版本 1.1.1 +- libSM: 版本 1.2.4 +- libX11: 版本 1.8.4 +- libXau: 版本 1.0.11 +- libXcomposite: 版本 0.4.6 +- libXdamage: 版本 1.1.6 +- libXdmcp: 版本 1.1.4 +- libXpm: 版本 3.5.15 +- libXrandr: 版本 1.5.3 +- libXres: 版本 1.2.2 +- libXxf86dga: 版本 1.1.6 +- libarchive: 版本 3.6.2 +- libdrm: 版本 2.4.115 +- libfontenc: 版本 1.1.7 +- libglvnd: 版本 1.6.0 +- libjpeg-turbo: 版本 2.1.5.1 +- libpcap: 版本 1.10.3 +- libpng: 版本 1.6.39 +- libpsl: 版本 0.21.2 +- liburcu: 版本 0.14.0 +- libwebp: 版本 1.3.0 +- libxkbcommon: 版本 1.5.0 +- libxkbfile: 版本 1.1.2 +- libxshmfence:版本1.3.2 +- lmdb: 版本 0.9.30 +- logrotate: 版本 3.21.0 +- lsof: 版本 4.98.0 +- lz4: 版本 1.9.4 +- lzlib: 版本 1.13 +- mc: 版本 4.8.29 +- mcelog: 版本 191 +- mpfr: 版本 4.2.0 +- nano: 版本 7.2 +- ncurses: 版本 6.4 +- nginx: 版本 1.23.3 +- nghttp2: 版本 1.52.0 +- openssh: 版本 9.2p1 +- openssl: 版本 1.1.1t +- openssl-solibs: 版本 1.1.1t +- openzfs:版本2.1.12 +- pango: 版本 1.50.14 +- pciutils: 版本 3.9.0 +- pcre2: 版本 10.42 +- php: 版本 8.2.4 +- php-libvirt: 版本 0.5.7 +- php-markdown: 版本 2.0.0 +- samba: 版本 4.17.7 +- sqlite: 版本 3.41.0 +- sudo: 版本 1.9.13p2 +- sysstat: 版本 12.7.2 +- tdb: 版本 1.4.8 +- tevent: 版本 0.14.1 +- traceroute: 版本 2.1.2 +- transset: 版本 1.0.3 +- tree: 版本 2.1.0 +- usbutils: 版本 015 +- xcb-util: 版本 0.4.1 +- xdriinfo: 版本 1.0.7 +- xf86-video-vesa: 版本 2.6.0 +- xfsprogs: 版本 6.1.1 +- xhost: 版本 1.0.9 +- xinit: 版本 1.4.2 +- xkbcomp: 版本 1.4.6 +- xkeyboard-config: 版本 2.38 +- xorg-server: 版本 21.1.7 +- xprop: 版本 1.2.6 +- xrandr: 版本 1.5.2 +- xset: 版本 1.2.5 +- xterm: 版本 379 +- xz: 版本 5.4.1 +- zstd: 版本 1.5.4 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md new file mode 100644 index 0000000000..17ecdcfbc7 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.1.md @@ -0,0 +1,56 @@ +# 版本 6.12.1 2023-06-20 + +更改与 [6.12.0](6.12.0.md)相对照 + +## 升级说明 + +### 已知问题 + +请参阅 [6.12.0 发行说明](6.12.0.md#known-issues) 了解一般已知问题。 + +### 回滚 + +若回滚至早于6.12.0版本,请参阅 [6.12.0 发行说明](6.12.0.md#rolling-back)。 + +## 错误修复 + +- emhttpd:从保留名称列表中移除"Unraid" +- emhttpd:正确处理 'btrfs filesystem show' 命令输出中的"ERROR"字符串 +- emhttpd:防止在已启动时执行 cmdStart +- network: 修改了服务重载功能:确保服务仅被重载一次 +- network: rc.library: 直接从接口读取 IP 地址而不是文件 +- network: NTP: 修复监听接口 +- network: NTP: 排除WG隧道和用户定义的接口 +- network: NTP: 在配置中添加接口名称 +- network: SSH: 在配置中添加接口名称 +- WebGUI: 修复 UPS 设置页面中的 PHP8 警告 +- WebGUI: 仪表板:根据 c\_max 值显示 ZFS 百分比 +- WebGUI: 仪表板:取消 ZFS 利用率条的颜色显示 +- WebGUI:仪表板:其他杂项修复 + +## Linux kernel + +- 版本 6.1.34 + +## 基础发行版 + +- ttyd:版本 1.7.3(解决了某些 FireFox 版本下显示不出下划线字符的问题) + +### 安全更新 + +- ca-certificates:版本 20230506 +- curl:版本 8.1.2(CVE-2023-28322 CVE-2023-28321 CVE-2023-28320 CVE-2023-28319) +- git:版本 2.35.8(CVE-2023-25652 CVE-2023-25815 CVE-2023-29007) +- ntp:版本 4.2.8p17(CVE-2023-26551 CVE-2023-26552 CVE-2023-26553 CVE-2023-26554 CVE-2023-26555) +- openssl:版本 1.1.1u (CVE-2023-2650) +- openssh:版本 9.3p1 +- php:版本 8.2.7 +- libX11:版本 1.8.6 (CVE-2023-3138) +- libssh:版本 0.10.5 (CVE-2023-1667 CVE-2023-2283) +- zstd:版本 1.5.5 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md new file mode 100644 index 0000000000..d628cdfbd0 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.10.md @@ -0,0 +1,67 @@ +# 版本 6.12.10 2024-04-03 + +## 升级说明 + +该版本回退到早期版本的 Linux 内核,以解决在 6.12.9 中报告的两个问题。它还包括一个 'curl' 安全更新和一个边缘案例的错误修复。 + +注意:Unraid OS v6.12.x 及所有更早版本**不**易受 xz 后门漏洞 [CVE-2024-3094](https://nvd.nist.gov/vuln/detail/CVE-2024-3094) 的影响。 + +### 已知问题 + +#### 过时的插件 + +过时的插件可能会导致问题,我们建议保持它们的最新状态。 + +#### 与macvlan相关的调用跟踪和崩溃 + +如果您收到与 macvlan 相关的调用跟踪(或任何无法解释的崩溃),第一步我们建议您导航到 ***设置 > Docker***,切换到**高级**视图,然后将 **Docker 自定义网络类型** 从 **macvlan** 更改为 **ipvlan**。这是自版本 6.11.5 以来 Unraid 随附的默认配置,应该适用于大多数系统。 + +请注意,某些用户报告在使用某些路由器(Fritzbox)进行端口转发时遇到问题,并且在 ipvlan 模式下使用高级网络管理工具(Ubiquity)时功能受到限制。如果这影响到您,请查看自 Unraid 版本 [6.12.4](6.12.4.md#fix-for-macvlan-call-traces) 起提供的替代解决方案。 + +#### 由于jumbo frames导致的网络问题 + +如果您有任何类型的网络问题,请确认您没有启用 Jumbo 桢。导航到 ***设置 > 网络设置 > eth0*** 并确认 **期望的 MTU** 为 1500。有关更多信息,请参阅 [关于 Jumbo 框架的常见问题警告](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702)。 + +#### 由于Realtek网卡导致的问题 + +升级的内核修复了与 Jumbo 框架和内核中 Realtek 8125 驱动程序的死锁问题。然而,我们仍然建议遵循上述关于 Jumbo 框架的建议。 + +如果您继续遇到网络稳定性问题,并且\_**工具 > 系统设备**\_ 显示您拥有 Realtek 以太网控制器,请获取显示的零件号并搜索社区应用,看看是否有专用的 Realtek 驱动程序插件。有关更多信息,请参阅 [Realtek 驱动程序插件支持页面](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/)。 + +#### 其他问题? + +我们强烈推荐安装**Fix Common Problems**插件,因为它会警告您常见配置问题。 + +如果您遇到其他崩溃或稳定性问题,请导航到 ***设置 > 系统日志服务器*** 并启用 **镜像系统日志到闪存**。这将在您的 USB 闪存启动设备上造成额外的磨损,但在崩溃后收集日志短期内是有用的。 + +下次重启后,导航到\_**工具 > 诊断**\_并下载您的匿名诊断(从版本6.12.5起,诊断会自动包含镜像到闪存驱动器的日志)。 + +最后,在 [常规支持](https://forums.unraid.net/forum/55-general-support/) 下开始一个新主题,并提供问题的所有详细信息。一旦问题解决,请务必禁用 **镜像系统日志到闪存**。 + +### 回滚 + +如果回滚到早于 6.12.9 的版本,请参见 [6.12.9 版本说明](6.12.9.md#rolling-back)。 + +## 与[6.12.9](6.12.9.md)的变更对比 + +### 漏洞修复和改进 + +- 解决通过 Unassigned Devices 插件挂载远程 SMB 共享的问题。 +- 解决某些 Asmedia 控制器未检测到所有已连接设备的问题。 +- nfs: (恢复)默认使用 NFSv4 挂载 +- zfs: 检测导入的池缺少设备时定义的池槽是否不足。 +- 修复 SystemDrivers 的翻译问题 + +### Linux kernel + +- 版本 6.1.79 + +### 基本发行版 + +- curl: 版本: 8.7.1 (CVE-2024-2466 CVE-2024-2398 CVE-2024-2379 CVE-2024-2004) + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md new file mode 100644 index 0000000000..4e17bcdf3c --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.11.md @@ -0,0 +1,73 @@ +# 版本 6.12.11 2024-07-16 + +## 升级说明 + +这些发布包括一些很好的漏洞修复,这些漏洞来自我们在 Unraid 7 上的工作,其中包括 OpenSSH 的安全修复以及 Linux 内核和 OpenZFS 的更新。 + +### 已知问题 + +#### 过时的插件 + +过时的插件可能会导致问题,我们建议保持它们的最新状态。 + +#### Docker fork bomb + +破损或恶意的 Docker 容器可能会使用系统上所有可用的进程 ID,从而导致不稳定。我们正在 Unraid 7 中测试一项修复,并将在未来的版本中移植该修复(注意:此修复在 [6.12.12](6.12.12.md) 中)。如果您怀疑自己受到了影响,可以通过在 Docker 模板 *额外参数* 设置中添加 `--pids-limit 2048` 来限制一个容器可以使用的进程 ID 数量。 + +#### 与macvlan相关的调用跟踪和崩溃 + +如果您收到与 macvlan 相关的调用跟踪(或任何无法解释的崩溃),第一步我们建议您导航到 ***设置 > Docker***,切换到**高级**视图,然后将 **Docker 自定义网络类型** 从 **macvlan** 更改为 **ipvlan**。这是自版本 6.11.5 以来 Unraid 随附的默认配置,应该适用于大多数系统。 + +请注意,某些用户报告在使用某些路由器(Fritzbox)进行端口转发时遇到问题,并且在 ipvlan 模式下使用高级网络管理工具(Ubiquity)时功能受到限制。如果这影响到您,请查看自 Unraid 版本 [6.12.4](6.12.4.md#fix-for-macvlan-call-traces) 起提供的替代解决方案。 + +#### 由于jumbo frames导致的网络问题 + +如果您有任何类型的网络问题,请确认您没有启用 Jumbo 桢。导航到 ***设置 > 网络设置 > eth0*** 并确认 **期望的 MTU** 为 1500。有关更多信息,请参阅 [关于 Jumbo 框架的常见问题警告](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702)。 + +#### 由于Realtek网卡导致的问题 + +升级的内核修复了与 Jumbo 框架和内核中 Realtek 8125 驱动程序的死锁问题。然而,我们仍然建议遵循上述关于 Jumbo 框架的建议。 + +如果您继续遇到网络稳定性问题,并且\_**工具 > 系统设备**\_ 显示您拥有 Realtek 以太网控制器,请获取显示的零件号并搜索社区应用,看看是否有专用的 Realtek 驱动程序插件。有关更多信息,请参阅 [Realtek 驱动程序插件支持页面](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/)。 + +#### 其他问题? + +我们强烈推荐安装**Fix Common Problems**插件,因为它会警告您常见配置问题。 + +如果您遇到其他崩溃或稳定性问题,请导航到 ***设置 > 系统日志服务器*** 并启用 **镜像系统日志到闪存**。这将在您的 USB 闪存启动设备上造成额外的磨损,但在崩溃后收集日志短期内是有用的。 + +下次重启后,导航到\_**工具 > 诊断**\_并下载您的匿名诊断(从版本6.12.5起,诊断会自动包含镜像到闪存驱动器的日志)。 + +最后,在 [常规支持](https://forums.unraid.net/forum/55-general-support/) 下开始一个新主题,并提供问题的所有详细信息。一旦问题解决,请务必禁用 **镜像系统日志到闪存**。 + +### 回滚 + +如果回滚到6.12.10之前的版本,请参阅[6.12.10版本说明](6.12.10.md#rolling-back)。 + +## 与[6.12.10](6.12.10.md)的变化 + +### 漏洞修复和改进 + +- 修复登录时的错误500 +- 仪表盘 + - 修复磁贴管理显示空白对话框 + - 清理留在格式错误状态的可见性cookie +- 虚拟机 + - 修复从桥接值更改时不能更新多个NIC的虚拟机且虚拟机无法启动的问题 + - 修复移除gpu并添加虚拟时可能导致无输出的问题 +- 在“立即修剪”和定时任务间保持修剪一致 + +### Linux kernel + +- 版本6.1.99 +- zfs:版本2.1.15 + +### 基本发行版 + +- openssh:版本9.8p1 (CVE-2024-6387) + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md new file mode 100644 index 0000000000..fb1cac2edc --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.12.md @@ -0,0 +1,80 @@ +# 版本 6.12.12 2024-08-20 + +## 升级说明 + +Unraid 6.12 继续从 Unraid 7 的开发工作中受益,此版本包括了几个从 Unraid 7 回溯的错误修复,以及一个针对 curl 的安全修复。 + +### 已知问题 + +#### 过时的插件 + +过时的插件可能会导致问题,我们建议保持它们的最新状态。 + +#### 与macvlan相关的调用跟踪和崩溃 + +如果您收到与 macvlan 相关的调用跟踪(或任何无法解释的崩溃),第一步我们建议您导航到 ***设置 > Docker***,切换到**高级**视图,然后将 **Docker 自定义网络类型** 从 **macvlan** 更改为 **ipvlan**。这是自版本 6.11.5 以来 Unraid 随附的默认配置,应该适用于大多数系统。 + +请注意,某些用户报告在使用某些路由器(Fritzbox)进行端口转发时遇到问题,并且在 ipvlan 模式下使用高级网络管理工具(Ubiquity)时功能受到限制。如果这影响到您,请查看自 Unraid 版本 [6.12.4](6.12.4.md#fix-for-macvlan-call-traces) 起提供的替代解决方案。 + +#### 由于jumbo frames导致的网络问题 + +如果您有任何类型的网络问题,请确认您没有启用 Jumbo 桢。导航到 ***设置 > 网络设置 > eth0*** 并确认 **期望的 MTU** 为 1500。有关更多信息,请参阅 [关于 Jumbo 框架的常见问题警告](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702)。 + +#### 由于Realtek网卡导致的问题 + +升级的内核修复了与 Jumbo 框架和内核中 Realtek 8125 驱动程序的死锁问题。然而,我们仍然建议遵循上述关于 Jumbo 框架的建议。 + +如果您继续遇到网络稳定性问题,并且\_**工具 > 系统设备**\_ 显示您拥有 Realtek 以太网控制器,请获取显示的零件号并搜索社区应用,看看是否有专用的 Realtek 驱动程序插件。有关更多信息,请参阅 [Realtek 驱动程序插件支持页面](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/)。 + +#### 其他问题? + +我们强烈推荐安装**Fix Common Problems**插件,因为它会警告您常见配置问题。 + +如果您遇到其他崩溃或稳定性问题,请导航到 ***设置 > 系统日志服务器*** 并启用 **镜像系统日志到闪存**。这将在您的 USB 闪存启动设备上造成额外的磨损,但在崩溃后收集日志短期内是有用的。 + +下次重启后,导航到\_**工具 > 诊断**\_并下载您的匿名诊断(从版本6.12.5起,诊断会自动包含镜像到闪存驱动器的日志)。 + +最后,在 [常规支持](https://forums.unraid.net/forum/55-general-support/) 下开始一个新主题,并提供问题的所有详细信息。一旦问题解决,请务必禁用 **镜像系统日志到闪存**。 + +### 回滚 + +如果回滚到 6.12.11 之前的版本,请参见 [6.12.11 的发行说明](6.12.11.md#rolling-back)。 + +## 与 [6.12.11](6.12.11.md) 的更改 + +### 漏洞修复和改进 + +- 通过将默认 *Docker PID 限制* 添加到 ***设置 > Docker 设置*** 来防止 Docker 分叉炸弹 +- shfs: 修复 "分裂层级 0"(手动分裂层级)退化问题 +- 移除 keys.lime-technology.com 的硬编码 host 文件条目 +- 使用 "go 链接" 链接到文档 +- 修复 UPS 设置页在配置包含空值时的问题 +- update.php:使用后释放文件指针 +- 诊断:匿名化 IPv6 地址 +- 修复:停止并重新启动阵列后,nfsd 未运行 +- 修复:删除共享后未从 SMB 和 NFS 中删除 +- 修复:仅在英文中保存路由 +- rc.S 脚本中的启动改进: + - 自动修复引导扇区备份 + - 如果无法继续引导,明确卸载所有文件系统 +- 在共享页面按自然顺序排序用户 +- webgui: 替换 document.write() 的用法 +- 修复帮助文本中的拼写错误 +- 删除已废弃的 /etc/apcupsd/doshutdown 脚本 +- UserEdit:在 Ed25519、FIDO/U2F Ed25519 和 RSA 之外,支持 SSH 密钥类型 DSA、ECDSA 和 FIDO/U2F ECDSA +- 修复:PHPSettings.page: 修复不一致的 PHP 错误报告默认值 +- 仪表板:在校验/同步时弱化消息 + +### Linux kernel + +- 版本 6.1.103 + +### 基本发行版 + +- curl:版本 8.9.1 (CVE-2024-7264) + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md new file mode 100644 index 0000000000..f589d3775d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.13.md @@ -0,0 +1,35 @@ +# 版本 6.12.13 2024-08-22 + +## 升级说明 + +这是一个快速发布版本,更新了 Linux 内核以纠正某些 HDD 设备无法旋停的[回归问题](https://lore.kernel.org/lkml/45cdf1c2-9056-4ac2-8e4d-4f07996a9267@kernel.org/T/)。 + +有关最近更改的更多详细信息,请参阅[6.12.12 版本说明](6.12.12.md)。 + +### 已知问题 + +#### Windows 虚拟机应使用 VirtIO-net 驱动程序 + +由于内核回归,使用 VirtIO 网络驱动程序的 Windows 虚拟机中任何传出的传输性能显著下降。解决方法是切换到 VirtIO-net 驱动程序。(注意:此问题在[6.12.14](6.12.14.md)中已解决)。 + +有关其他已知问题,请参见[6.12.12版本说明](6.12.12.md#known-issues)。 + +### 回滚 + +如果回滚到 6.12.12 之前的版本,请参阅[6.12.12 版本说明](6.12.12.md#rolling-back)。 + +## 与[6.12.12](6.12.12.md)的变更对比 + +### 漏洞修复和改进 + +- 更新内核以解决硬盘驱动器旋停问题 + +### Linux kernel + +- 版本 6.1.106 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md new file mode 100644 index 0000000000..b5224e993d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.14.md @@ -0,0 +1,66 @@ +# 版本 6.12.14 2024-11-26 + +## 升级说明 + +此版本包含重要的错误修复和安全更新。 + +***强烈建议所有用户升级*** + +### 已知问题 + +#### Windows新更改可能导致公共共享无法访问 + +由于 Windows 11 24H2 的最近安全更改,Unraid 公共共享的 "guest" 访问可能无法使用。解决此问题的最简单方法是在 Unraid 中创建一个与您用于连接的 Windows 帐户相同名称的用户。如果 Unraid 用户密码与 Windows 帐户密码不同,Windows 将提示输入凭据。 + +如果您使用的是 Microsoft 帐户,可能更好是在 Unraid 中创建一个简单用户名的用户,设置密码,然后在 Windows 中进入 ***控制面板 → 凭据管理器 → Windows 凭据 → 添加 Windows 凭据*** 并添加正确的 Unraid 服务器名称和凭据。 + +或者,您可以[重新启用Windows访客回退](https://techcommunity.microsoft.com/blog/filecab/accessing-a-third-party-nas-with-smb-in-windows-11-24h2-may-fail/4154300)(不推荐)。 + +#### 由于Realtek网卡导致的问题 + +在升级到最新内核后,有多个关于Realtek驱动程序插件问题的报告。您可能希望在升级前主动卸载它,或者如果出现网络问题,则在升级后将其移除。 + +有关其他已知问题,请参见[6.12.12版本说明](6.12.12.md#known-issues)。 + +### 回滚 + +如果回滚到早于6.12.13的版本,也请参见[6.12.13版本说明](6.12.13.md#rolling-back)。 + +## 与[6.12.13](6.12.13.md)的变更对比 + +### 漏洞修复和改进 + +- emhttpd:修复交换禁用操作没有正确清除目标剩余空间的问题 +- ShareList:当共享主池无效(例如重命名或删除)时显示指示器。 +- ShareEdit:警告用户重命名池可能会影响使用该池的共享。 +- DiskSettings:明确 "默认文件系统" 适用于 unRAID 阵列磁盘。 +- 从诊断中移除ps.txt以免暴露容器的VPN凭据。 +- 添加有关从Windows 11 24H2访问公共共享的帮助文本。 +- 更新反馈表单并要求提供电子邮件地址 +- 修复了\_**设置 → UPS设置**\_页面上的apcupsd手册链接 +- 修复了在帮助文本中的btrfs手册页链接 +- rc.docker - 确保自定义接口索引大于0的位置能够正确重建 +- rc.rsyslogd:使用pgrep,通过PID命名空间进行killall。 +- WebGUI:改进了对http查询参数的处理 +- 内核:解决了与Windows虚拟机和VirtIO网络驱动器相关的性能下降问题,这些问题是在[6.12.13](6.12.13.md)中引入的 + +### Linux kernel + +- 版本 6.1.118 + +### 基本发行版 + +- firefox:版本132.0.r20241110231641 (AppImage) (CVE-2024-11691 - 11699) +- intel-microcode:版本20241112 +- libssh:版本0.10.6 +- libssh2:版本1.11.1 (CVE-2023-48795) +- openssl:版本1.1.1zb (CVE-2024-9143) +- php:版本8.2.26 [多个CVE](https://www.php.net/ChangeLog-8.php#8.2.26) +- samba:版本4.19.9 (CVE-2018-14628) +- wget:版本1.25.0 (CVE-2024-10524) + +## 补丁 + +此版本目前没有补丁,但我们建议安装[Unraid补丁插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/),以便在补丁可用时获取。 + +请注意,在较新的版本中嵌有其他安全更新,详细信息请参见[此博客文章](https://unraid.net/blog/cvd)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md new file mode 100644 index 0000000000..cbf8569f11 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.15.md @@ -0,0 +1,59 @@ +# 版本 6.12.15 2025-01-21 + +## 升级说明 + +此版本包含重要的错误修复和安全更新。 + +***强烈建议所有用户升级*** + +### 已知问题 + +#### Windows新更改可能导致公共共享无法访问 + +由于 Windows 11 24H2 的最近安全更改,Unraid 公共共享的 "guest" 访问可能无法使用。解决此问题的最简单方法是在 Unraid 中创建一个与您用于连接的 Windows 帐户相同名称的用户。如果 Unraid 用户密码与 Windows 帐户密码不同,Windows 将提示输入凭据。 + +如果您使用的是 Microsoft 帐户,可能更好是在 Unraid 中创建一个简单用户名的用户,设置密码,然后在 Windows 中进入 ***控制面板 → 凭据管理器 → Windows 凭据 → 添加 Windows 凭据*** 并添加正确的 Unraid 服务器名称和凭据。 + +或者,您可以[重新启用Windows访客回退](https://techcommunity.microsoft.com/blog/filecab/accessing-a-third-party-nas-with-smb-in-windows-11-24h2-may-fail/4154300)(不推荐)。 + +#### 由于Realtek网卡导致的问题 + +在升级到最新内核后,有多个关于Realtek驱动程序插件问题的报告。您可能希望在升级前主动卸载它,或者如果出现网络问题,则在升级后将其移除。 + +有关其他已知问题,请参见[6.12.12版本说明](6.12.12.md#known-issues)。 + +### 回滚 + +unRAID 阵列可选 + +## 与 [6.12.14](6.12.14.md) 的更改 + +### 漏洞修复和改进 + +- WebGUI: 修复仪表板、虚拟机管理器和Docker管理器页面上的内存泄漏 +- WebGUI: Bug 修复:JavaScript 控制台日志功能已恢复 +- WebGUI: 单击 Unraid 版本号加载 Unraid Docs 网站的发布说明 +- WebGUI: 切换 CA 安装 URL 至新仓库 +- 修复:将 Docker Wireguard 桥接的 MTU 设置为匹配 Wireguard 默认 MTU +- 修复:下载失败时空的 Trial.key 处理不当 +- 修复:邮件通知有问题时代理通知无法工作 +- 修复:nfsd 无法正常重启 +- 修复:清除池对话框不显示池名称 +- 创建有意义的 /etc/os-release 文件 +- make\_bootable\_linux: 版本 1.4 + - 检测是否安装 mtools + +### Linux kernel + +- 版本 6.1.126 +- md/unraid: 修复在重建/同步过程中设备故障的处理 + +### 基本发行版 + +- git: 版本 2.46.3 (CVE-2024-50349 CVE-2024-52006) +- php: 版本 8.2.27 +- rsync: 版本 3.4.1 (CVE-2024-12084 CVE-2024-12085 CVE-2024-12086 CVE-2024-12087 CVE-2024-12088 CVE-2024-12747) + +## 补丁 + +此版本目前没有补丁,但我们建议安装[Unraid补丁插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/),以便在补丁可用时获取。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md new file mode 100644 index 0000000000..35541d5e9d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.2.md @@ -0,0 +1,63 @@ +# 版本 6.12.2 2023-06-29 + +相比 [6.12.1](6.12.1.md) 的变更 + +## 升级说明 + +### 已知问题 + +请参阅 [6.12.0 发行说明](6.12.0.md#known-issues) 了解一般已知问题。 + +### 回滚 + +若回滚至早于6.12.0版本,请参阅 [6.12.0 发行说明](6.12.0.md#rolling-back)。 + +## 亮点 + +这主要是一个修复bug的版本更新,也包括了一个小的安全更新。 其他亮点包括: + +- 我们将 **docker** 从 Unraid OS 6.12 开发中引入的 v23.0.6 版本,恢复到 Unraid OS 6.11 中使用的最新补丁发布 v20.10.24,以解决发现的 **docker** 内存使用量增加和其他问题。 +- 在 WireGuard 隧道启动或停止时,自动对所有 'config/wireguard/\*.conf' 文件应用调用我们 'update\_services' 脚本进行必要的小改动。当通过更新 OS 页面进行更新时,这是自动完成的。对于手动更新或降级,需在设置/VPN 管理器页面的设置上做一次“虚假更改”,然后点击应用。 + +## 漏洞修复和改进 + +- 电子邮件通知:在 /etc/php.ini 中添加一行:'mail.mixed\_lf\_and\_crlf=On',以应对 PHP8 CRLF 处理的更改 +- emhttpd:修复问题:未识别模拟 ZFS 卷 +- emhttpd:修复问题:如果 diskFsType==auto 且 defaultFsType 指定了加密,则格式化失败 +- emhttpd:修复问题:如果 diskFsType==auto,则挂载失败 +- htop:移除预定义的 /root/.config/htop/htoprc 文件 +- 网络:RC 服务更新: + - NFS - 修复服务重载 + - RPC - 修复服务重载 + - NGINX - 在 FQDN 重定向时移除 HTTPS 端口(默认 443) + - 所有服务 - 注册 IPv4 本地链路分配(169.254.xxx.xxx) + - 所有服务 - 使锁定文件可编程 + - WireGuard:延迟服务更新以避免竞态条件 + - rc.library:不允许在绑定列表中出现重复项 +- WebGUI:仪表板更新: + - 重新引入显示/隐藏卡片内容 + - 新增图标功能,一次性显示/隐藏所有内容 + - 减少列之间的间隔 + - 描述 -> 模型 + - ZFS:将百分比值修正为最大 100% + - 使用原型函数:这使第三方开发者更容易自动隐藏动态内容 + - 处理重复的 IP 分配并发出警告 + - 将标题内存更改为系统 +- WebGUI:操作系统更新:添加复选框以确认阅读发行说明后执行升级 +- WebGUI:诊断:包含重复分配列表 +- WebGUI:NFS:对于安全/私人,将规则字段从 256 个字符增加到 512 个字符。 + +## Linux kernel + +- 版本 6.1.36 + +## 基础发行版 + +- bind: 版本 -9.16.42 (CVE-2023-2911) +- docker: 20.10.24(从 v23.0.6 恢复) + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md new file mode 100644 index 0000000000..c1e958e20c --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.3.md @@ -0,0 +1,60 @@ +# 版本 6.12.3 2023-07-14 + +与 [6.12.2](6.12.2.md) 的变更 + +## 升级说明 + +### 已知问题 + +请参阅 [6.12.0 发行说明](6.12.0.md#known-issues) 了解一般已知问题。 + +### 回滚 + +若回滚至早于6.12.0版本,请参阅 [6.12.0 发行说明](6.12.0.md#rolling-back)。 + +## 网络 + +此版本修复了网络问题,特别是在 IPv6 相关方面。一个副作用是,这应该解决 WebGUI 在某些情况下无法加载的问题。 + +注意:如果您的“go”脚本中有代码用于禁用IPv6,请将其删除并改为通过“设置/网络设置”页面禁用它。手动禁用IPv6会导致冲突。 + +## Docker + +此版本解决了 Docker 在阵列停止时未能正常停止的问题,这可能导致不干净的关机。 + +如果 Docker 容器在一段时间后启动有问题,并且你正在运行 Plex,请进入 Plex Docker 容器设置, +切换到高级视图,并在额外参数中添加:`--no-healthcheck` + +## 漏洞修复和改进 + +- rc.docker: + - 修订的 Docker 守护进程运行检查 + - rc.docker:根据需要更改主接口的路由度量以避免与 shim 接口发生冲突 +- rc.library: + - 代码优化:IPv6最大/最小 + - 支持 IPv4 映射地址 +- rc.nginx:在 lo 接口上明确选择 IPv4/IPv6 +- shfs:修正当 ZFS 是其中一个卷时的共享大小计算 +- WebGUI: + - VM 设置页面:修复拼写错误 + - 共享编辑页面:使最小可用空间设置始终可用 + - Wireguard:修复 IPv6 掩码中的拼写错误 + - 路由表:修复当度量值为零时的显示 + +## Linux kernel + +- 版本 6.1.38 +- 新增支持监控和限制 Intel Core(第二代及以上)CPU 型号的功耗: + - CONFIG\_POWERCAP:通用电源限制sysfs驱动程序 + - CONFIG\_INTEL\_RAPL:通过MSR接口支持Intel RAPL + - CONFIG\_IDLE\_INJECT:空闲注入框架 + +## 基础发行版 + +- firefox:版本 115.0.r20230710165010 (AppImage) + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md new file mode 100644 index 0000000000..eacb74e6ab --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.4.md @@ -0,0 +1,147 @@ +# 版本 6.12.4 2023-08-31 + +## 升级说明 + +### 已知问题 + +请参阅 [6.12.0 发行说明](6.12.0.md#known-issues) 了解一般已知问题。 + +### 回滚 + +在回滚到早期版本之前,务必确保启用桥接: + +- ***设置 > 网络设置 > eth0 > 启用桥接*** = 是 + +然后启动阵列(连同 Docker 和 VM 服务一起)以更新您的 Docker 容器、虚拟机和 WireGuard 隧道,以便恢复到应在旧版本中可工作的先前设置。 + +进入旧版本后,确认这些设置对您的设置是正确的: + +- ***设置 > Docker > 主机访问自定义网络*** +- ***设置 > Docker > Docker 自定义网络类型*** + +若回滚至早于6.12.0版本,请参阅 [6.12.0 发行说明](6.12.0.md#rolling-back)。 + +## 修复 macvlan 调用跟踪 + +此次发布的重大消息是,我们已解决与 macvlan 调用跟踪和崩溃相关的问题! + +问题的根源在于,当父接口是桥接(如 br0)时,macvlan 用于自定义 Docker 网络不可靠,最好在物理接口(如 eth0)或绑定接口(如 bond0)上使用。我们相信这是一个长期存在的内核问题,并已经发布了[错误报告](https://bugzilla.kernel.org/show_bug.cgi?id=217777)。 + +如果您遇到与 macvlan 相关的调用跟踪问题,作为第一步,我们建议您导航到\_**设置 > Docker**\_,切换到高级视图,并将“Docker 自定义网络类型”从 macvlan 更改为 ipvlan。这是 Unraid 自 6.11.5 版本以来的默认配置,应该适用于大多数系统。如果您对这个设置满意,那么您已经完成!您将不再有与 macvlan 相关的调用跟踪,可以跳到[下一节](#system-drivers-page)。 + +但是,一些用户报告称,在 ipvlan 模式下,某些路由器(Fritzbox)的端口转发和使用高级网络管理工具(Ubiquity)时功能受到限制。 + +对于这些用户,我们有一种新的方法,通过重新设置网络避免与 macvlan 相关的问题。调整一些设置,您的 Docker 容器,虚拟机和 WireGuard 通道应该会自动调整使用它们: + +- ***设置 > 网络设置 > eth0 > 启用绑定*** = 是或否,任何一种都可以 +- ***设置 > 网络设置 > eth0 > 启用桥接*** = 否(这将自动启用 macvlan) +- ***设置 > Docker > 主机访问自定义网络*** = 已启用 + +注意:如果您之前使用过 [2-nic docker 分段方法](https://forums.unraid.net/topic/137048-guide-how-to-solve-macvlan-and-ipvlan-issues-with-containers-on-a-custom-network/),您也将希望还原: + +- ***设置 > Docker > 自定义网络在接口 eth0 或 bond0***(即确保 eth0/bond0 为自定义网络配置,而不是 eth1/bond1) + +当您启动阵列时,主机、虚拟机和 Docker 容器都将能够通信,并且不再有调用跟踪! + +### 故障排除 + +- 如果您的Docker容器使用自定义IP地址无法启动,请编辑它们并将“网络类型”更改为“自定义:eth0”或“自定义:bond0”。我们尝试自动执行此操作,但根据自定义情况,您可能需要手动操作。 +- 如果您的虚拟机有网络问题,请编辑它们并将网络源设置为“vhost0”。还要确保分配了 MAC 地址。 +- 如果您的 WireGuard 隧道无法启动,请对每个隧道进行虚拟更改并保存。 +- 如果您在对Docker容器进行端口转发时遇到问题(尤其是使用Fritzbox路由器),请在路由器中删除并重新创建端口转发。 + +### 了解更技术的内容… + +升级到此版本后,如果在 eth0 上仍启用桥接,那么所有内容将如以前一样工作。您可以尝试通过禁用自定义 Docker 网络、使用 ipvlan 替代 macvlan 或使用 2-nic Docker 分段方法将容器放在 eth1 来解决调用跟踪问题。 + +从此版本开始,当您禁用 eth0 上的桥接时,我们会创建一个用于 Docker 容器和虚拟机的新 macvtap 网络。它的父级为 eth0 而非 br0,从而避免调用跟踪问题。 + +一个附带的好处是,据报 macvtap 网络比桥接网络更快,因此在与 Docker 容器和虚拟机通信时,您可能会看到速度提升。 + +请注意:禁用主接口(eth0)的桥接后,Docker 自定义网络类型将设置为 macvlan 并隐藏,除非您的系统上有其他启用了桥接的接口,在这种情况下,传统 ipvlan 选项是可用的。要使用此处讨论的新修复,您需要保持设置为 macvlan。 + +## 系统驱动程序页面 + +导航到 ***工具 > 系统驱动程序***,以查看您系统上可用或正在使用的驱动程序。插件安装的第三方驱动程序(如 NVIDIA 和 Realtek)带有链接到该驱动程序支持页面的图标。您还可以添加/修改/删除任何驱动程序的 modeprobe.d 配置文件,而无需在您的闪存驱动器上找到该文件。 + +## 其他错误修复和改进 + +- 此版本解决了网络、Libvirt、Docker、WireGuard、NTP、NGINX、NFS和RPC的特殊情况,并改进了虚拟机管理器,使其在更新期间保留VNC密码。 + +- 关闭过程已修改,允许 NUT 插件正确关闭系统。 + +- 在自动关闭前,通知的显示时间现在是可配置的(请参见 ***设置 > 通知设置***)。 + +- 一个小改动是,/boot/extra中的软件包现在被视为插件安装的软件包,且安装记录到syslog而不是控制台。 + +- 更新操作系统过程将自动更新插件更新助手脚本(如果需要)。 + +## 与 [6.12.3](6.12.3.md) 的变化 + +### 基本发行版 + +- create\_network\_ini: + - 修复 dhcp 挂钩 + - 改进的 IP 地址收集 +- 诊断: + - 将以前的 Unraid 版本添加到诊断版本 txt 文件中。 + - 添加 ntp.conf、sshd.config 和 servers.conf(匿名化 URL) + - 匿名化 IP 地址 +- docker: + - 当使用 shim 或 macvtap 网络时添加路由 + - 当“主机访问”已启用时修复路由 + - 从 shim/vhost 接口移除 IPv6(一些路由器不兼容) +- libvirt、nginx、nfs、rpc:更改正在运行的进程检测 +- nfsclient:以 v4 开始协商,关闭 atime 修改 +- rc.6:关闭期间保留 /usr 和 /lib 挂载 +- rc.docker: + - 为容器和服务创建相同的 IPv6 网络 + - 停止 dockerd 时添加更多记录 +- rc.inet1: + - 不使用桥接的混杂模式 + - 将持久选项添加到 dhcpcd +- rc.library:接口始终以相同顺序列出,修复 show ipv6 +- rc.libvirt:如果存在,从 XML 中移除“itco”看门狗 +- rc.local:注释自动生成的 /etc/modprobe.d/zfs.conf 文件 +- rc.services: + - 添加日志 + - 将 WireGuard "VPN 隧道访问 Docker" 隧道排除在服务之外 + - 将 WireGuard 隧道排除在 ntp 之外(代码优化) + +#### 软件包更新 + +- btrfs-progs:6.3.3 +- curl:版本 8.2.0(CVE-2023-32001) +- firefox:版本 117.0.r20230824132758(AppImage) +- kernel-firmware: 版本 20230724\_59fbffa +- krb5:版本 1.19.2(CVE-2023-36054) +- openssh:版本 9.3p2(CVE-2023-38408) +- openssl:版本 1.1.1v(CVE-2023-3817 CVE-2023-3446) +- samba:版本 4.17.10(CVE-2023-3496 CVE-2022-2127 CVE-2023-34968 CVE-2023-3496 CVE-2023-3347) + +### Linux kernel + +- 版本 6.1.49(CVE-2023-20593) +- CONFIG\_SCSI\_MPI3MR: Broadcom MPI3 存储控制器设备驱动程序 + +### WebGUI + +- 仪表板:当不使用 ZFS 时隐藏 ZFS 条 +- Docker 设置:修复子网大小 +- 反馈:重构反馈脚本 +- 网络设置:修复 DNS 设置有时消失 +- 通知:新增通知选项:自动关闭时间,默认是5秒 +- 池:最小空闲空间:仅当阵列停止时启用 +- 共享和池:显示“最小可用空间”为绝对数字而不是百分比 +- 系统驱动程序:新页面 +- 翻译:修剪语言文件中的键和值 +- 虚拟机管理器:在更新期间保留 VNC 密码。 +- 虚拟机管理器:移除已下载的 '.vv' 文件。 +- CSS:设置overflow-x为“auto” +- 更新 monitor\_nchan + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md new file mode 100644 index 0000000000..1cdeff9eaa --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.5.md @@ -0,0 +1,63 @@ +# 版本 6.12.5 2023-11-27 + +## 升级说明 + +本次发布包含错误修复和安全更新。建议所有用户升级。 + +### 已知问题 + +为[ZFS数据损坏](https://github.com/openzfs/zfs/issues/15526)问题提供了缓解措施。 这是通过在默认文件`/etc/modprobe.d/zfs.conf`中包含以下选项来实现的: + +`zfs_dmu_offset_next_sync=0` + +请参阅 [6.12.0 发行说明](6.12.0.md#known-issues) 了解一般已知问题。 + +### 回滚 + +如果回滚到早于6.12.4的版本,请参见6.12.4发行说明。 + +## 与 [6.12.4](6.12.4.md) 的变更 + +### 漏洞修复和改进 + +- 用 Memtest86+ 版本 6.20 替换非常旧的 'MemTest86+' + - 此外还有 [引导选项](https://github.com/memtest86plus/memtest86plus#boot-options) 可用。 +- 启用 '将 syslog 镜像到闪存' 时,可在 "工具" -> "Syslog" 和 "诊断" 中查看 syslog-previous +- Docker: + - Docker 容器未能始终停止,导致 docker 无法卸载 + - 使用 IPv6 的 Docker 容器在自定义网络上无法启动 +- emhttpd:如果未启用用户共享,在启动阵列期间未调用 update\_cron +- rc.nginx stop - 强制 nginx 停止 +- shfs:如果在“包含”掩码中指定了 6 个或更多磁盘,分配方法无法正常工作 +- WebGUI: + - Downgrade.php 未更新至 6.12 + - 始终显示 ipvlan / macvlan 设置 +- ZFS:使用 'zfs import -f' 确保从其他系统导入池 +- 防止未格式化设备的自动待机 + +### 软件包更新 + +- curl:版本 8.4.0 (CVE-2023-38546 CVE-2023-38545 CVE-2023-38039) +- firefox:版本 119.0.r20231106151204 (AppImage) +- intel-microcode:版本 20231114 +- kernel-firmware:20231024\_4ee0175 +- qemu:版本 7.2.0 +- samba:版本 4.17.12 (CVE-2023-3961 CVE-2023-4091 CVE-2023-4154 CVE-2023-42669 CVE-2023-42670) +- smartmontools:版本 7.4 +- zfs:版本 2.1.13 + +### Linux kernel + +- 版本 6.1.63 +- CONFIG\_USB\_NET\_CDC\_NCM:CDC NCM 支持 +- CONFIG\_NFS\_V4\_1:NFS 客户端支持 NFSv4.1 +- CONFIG\_NFS\_V4\_1\_MIGRATION:NFSv4.1 客户端迁移支持 +- CONFIG\_NFS\_V4\_2:NFS 客户端支持 NFSv4.2 +- CONFIG\_NFS\_V4\_2\_READ\_PLUS:NFS:启用 NFSv4.2 READ\_PLUS 操作支持 +- CONFIG\_NFSD\_V4\_2\_INTER\_SSC:NFSv4.2 服务器间的服务器到服务器复制 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md new file mode 100644 index 0000000000..730000e1ba --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.6.md @@ -0,0 +1,65 @@ +# 版本 6.12.6 2023-12-01 + +## 升级说明 + +此版本包括错误修复和OpenZFS的重要补丁更新。建议所有用户进行升级。 + +### 已知问题 + +#### 过时的插件 + +过时的插件可能会导致问题,我们建议保持它们的最新状态。 + +#### 与macvlan相关的调用跟踪和崩溃 + +如果您遇到与 macvlan 相关的调用追踪(或任何无法解释的崩溃),首先建议导航到 **设置 > Docker**,切换到 **高级** 视图,并将 **Docker 自定义网络类型** 从 **macvlan** 更改为 **ipvlan**。 这是自版本 6.11.5 起 Unraid 提供的默认配置,应该适用于大多数系统。 + +请注意,某些用户报告在使用某些路由器(Fritzbox)进行端口转发时遇到问题,并且在 ipvlan 模式下使用高级网络管理工具(Ubiquity)时功能受到限制。如果这影响到您,请查看自 Unraid 版本 [6.12.4](6.12.4.md#fix-for-macvlan-call-traces) 起提供的替代解决方案。 + +#### 由于jumbo frames导致的网络问题 + +如果您遇到任何网络问题,请确认您没有启用巨型帧。导航到\_**设置 > 网络设置 > eth0**\_并确认**期望MTU**为1500。有关更多信息,请参见[巨型帧常见问题警告](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702)。 + +#### 由于Realtek网卡导致的问题 + +最新的Linux内核中的Realtek驱动程序会导致网络和稳定性问题。如果您遇到问题,并且\_**工具 > 系统设备**\_显示您有一个Realtek以太网控制器,请获取显示的零件号并搜索社区应用程序,查看是否有适用于该设备的Realtek驱动程序插件。有关更多信息,请参见[Realtek驱动程序插件支持页](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/)。 + +#### Adaptec 7系列HBA不兼容 + +如果您有使用aacraid驱动程序的Adaptec 7系列HBA,我们建议暂时停留在6.12.4版本,因为最新内核中的驱动程序存在回归问题。有关更多信息,请参见此[Linux内核错误报告](https://bugzilla.kernel.org/show_bug.cgi?id=217599)。 + +#### 其他问题? + +我们强烈推荐安装**Fix Common Problems**插件,因为它会警告您常见配置问题。 + +遇到其他崩溃或稳定性问题了吗?导航到\_**设置 > 日志服务器***并启用**镜像日志到闪存**。这将增加闪存驱动器的磨损,但在短期内有助于在崩溃后收集日志。重启后,导航到***工具 > 诊断**\_并下载匿名诊断(从6.12.5起,诊断自动包含镜像到闪存的日志)。然后在[常规支持](https://forums.unraid.net/forum/55-general-support/)下发起新话题,并提供问题的所有细节。问题解决后,请确保禁用**镜像日志到闪存**。 + +### 回滚 + +如果回滚到早于6.12.4的版本,请参见6.12.4发行说明。 + +## 与6.12.5的变更 + +### 漏洞修复和改进 + +- modprobe.d/zfs.conf:移除`zfs_dmu_offset_next_sync=0`缓解措施 - 不再需要 +- 网络:修复IPv6静态地址分配 +- 关于 [Rocket Lake 系统上与 i915 驱动有关的崩溃](6.12.0.md#crashes-related-to-i915-driver) 的解决方法不再需要。 + 升级后,可以打开网络终端输入此命令,然后重启: + + `rm /boot/config/modprobe.d/i915.conf` + +### 软件包更新 + +- nvme-cli: 版本 2.6 +- zfs: 版本 2.1.14 + +### Linux kernel + +- 版本 6.1.64 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md new file mode 100644 index 0000000000..8f98a71f33 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.8.md @@ -0,0 +1,103 @@ +# 版本 6.12.8 2024-02-15 + +## 升级说明 + +此版本包括两个非常重要的修复。首先,我们更新了 Docker,以纳入其[近期安全公告](https://www.docker.com/blog/docker-security-advisory-multiple-vulnerabilities-in-runc-buildkit-and-moby/)中的修复。 + +其次,我们修复了一个在新添加的阵列驱动器具有非标准分区布局时,可能导致数据丢失的边缘案例错误。如果添加这些驱动器,第二次启动阵列时驱动器将显示为未格式化。如果发生这种情况,请联系支持人员,我们可以帮助您进行数据恢复。即使尚未遇到此问题,我们仍建议进行升级,以便将来在添加驱动器时不受影响。 + +此版本还包括网络、Docker 容器、Time Machine 支持和 虚拟机中的一些好修复,以及为某些系统在仪表板上出现的性能变慢问题进行的修复。我们还改进了 NVME 和 SSD 驱动器的 SMART 属性处理。详情如下。 + +### 已知问题 + +#### 过时的插件 + +过时的插件可能会导致问题,我们建议保持它们的最新状态。 + +#### 与macvlan相关的调用跟踪和崩溃 + +如果您收到与 macvlan 相关的调用跟踪(或任何无法解释的崩溃),第一步我们建议您导航到 ***设置 > Docker***,切换到**高级**视图,然后将 **Docker 自定义网络类型** 从 **macvlan** 更改为 **ipvlan**。这是自版本 6.11.5 以来 Unraid 随附的默认配置,应该适用于大多数系统。 + +请注意,某些用户报告在使用某些路由器(Fritzbox)进行端口转发时遇到问题,并且在 ipvlan 模式下使用高级网络管理工具(Ubiquity)时功能受到限制。如果这影响到您,请查看自 Unraid 版本 [6.12.4](6.12.4.md#fix-for-macvlan-call-traces) 起提供的替代解决方案。 + +#### 由于jumbo frames导致的网络问题 + +如果您有任何类型的网络问题,请确认您没有启用 Jumbo 桢。导航到 ***设置 > 网络设置 > eth0*** 并确认 **期望的 MTU** 为 1500。有关更多信息,请参阅 [关于 Jumbo 框架的常见问题警告](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702)。 + +#### 由于Realtek网卡导致的问题 + +升级的内核修复了与 Jumbo 框架和内核中 Realtek 8125 驱动程序的死锁问题。然而,我们仍然建议遵循上述关于 Jumbo 框架的建议。 + +如果您继续遇到网络稳定性问题,并且\_**工具 > 系统设备**\_ 显示您拥有 Realtek 以太网控制器,请获取显示的零件号并搜索社区应用,看看是否有专用的 Realtek 驱动程序插件。有关更多信息,请参阅 [Realtek 驱动程序插件支持页面](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/)。 + +#### 其他问题? + +我们强烈推荐安装**Fix Common Problems**插件,因为它会警告您常见配置问题。 + +如果您遇到其他崩溃或稳定性问题,请导航到 ***设置 > 系统日志服务器*** 并启用 **镜像系统日志到闪存**。这将在您的 USB 闪存启动设备上造成额外的磨损,但在崩溃后收集日志短期内是有用的。 + +下次重启后,导航到\_**工具 > 诊断**\_并下载您的匿名诊断(从版本6.12.5起,诊断会自动包含镜像到闪存驱动器的日志)。 + +最后,在 [常规支持](https://forums.unraid.net/forum/55-general-support/) 下开始一个新主题,并提供问题的所有详细信息。一旦问题解决,请务必禁用 **镜像系统日志到闪存**。 + +### 回滚 + +请注意,回滚到早期版本将使您的系统可能受到 Docker 安全问题和[升级说明](#upgrade-notes)中提到的潜在数据丢失场景的影响。 + +如果回滚到 6.12.6 之前的版本,请同时查看[6.12.6 发行说明](6.12.6.md#rolling-back)。 + +## 与 6.12.7 的变更 + +修复了与 rc 版本升级相关的问题。 + +## 与 [6.12.6](6.12.6.md) 的变更 + +### 漏洞修复和改进 + +- Docker: + - 修复了将 WG 路由添加到正确的接口(br0 或 eth0 或 bond0)。 + - 使用“延迟卸载”来卸载 Docker 镜像以防止阻塞阵列停止。 + - 更新以解决多个安全问题(CVE-2024-21626, CVE-2024-24557) +- 网络改进: + - 通过在分配 DHCP 地址之前检查载波来加速启动。 + - 从 IPv4 和 IPv6 地址中去除前导零。 + - 新增 “/etc/rc.d/rc.inet1 status” 和 “/etc/rc.d/rc.inet1 status ip” 命令,以帮助在命令行进行网络故障排除。 +- 通知:将 ntfy.sh 添加到通知代理。 +- SMART 改进: + - 修复 NVME 自检。 + - 修正显示“累计开机时间,小时:分钟 xxxxx:yy” SMART 属性。 + - 在 SSD 的 SMART 属性中显示已写入的 KB/MB/GB/TB。 + - 新增“SSD 耐用度剩余”SMART 属性。 +- 系统日志: + - 默认情况下,系统日志在关闭时复制到引导闪存中,查看\_**设置 > 系统日志服务器**\_以禁用。 + - 上述日志和**将系统日志镜像到闪存**的日志现在在下次启动时可通过\_**工具 > 系统日志**\_和诊断页面获得。 +- VM管理器:降级修复:如果VM模板已更新到最新的QEMU机器类型,降级时可能找不到。此更改可以找到给定机器类型的最新版本。 +- ZFS:使用 zpool import "-f" 标志允许导入外来池。 +- 其他: + - 默认情况下在新安装中启用 EFI 引导。 + - 修复仪表盘和 Docker 页面上的性能下降(并减少闪存设备写入)。 + - 格式化:如果设备分区布局已有效,则不初始化。 + - 更新操作系统:重新设计系统更新和降级页面,详见[博客文章](https://unraid.net/blog/new-update-os-tool) + - 修复 MacOS 无法写入“闪存”共享并恢复时间机器兼容性(fruit 变更) + - 允许社区应用程序(如果已安装)在执行多重安装时自动启动容器。 + - 反馈表单:将完成按钮更改为取消。 + +### 软件包更新 + +- docker:版本 24.0.9 +- 内核固件:版本20231226\_abfcad8 + +### Linux kernel + +- 版本 6.1.74 + - 配置\_USB串行XR:USB MaxLinear/Exar USB到串行驱动 + - 配置\_CAN:CAN总线子系统支持 + - 配置\_CAN\_NETLINK:支持Netlink的CAN设备驱动程序 + - 配置\_CAN\_GS\_USB:兼容Geschwister Schneider UG和candleLight的接口 + - 配置\_SCSI\_LPFC:Emulex LightPulse光纤通道支持 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md new file mode 100644 index 0000000000..624c620039 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.12.9.md @@ -0,0 +1,77 @@ +# 版本 6.12.9 2024-03-26 + +## 升级说明 + +这是一个错误修复版本,解决了社区报告的一系列问题,详情如下。我们强烈建议所有用户升级到此版本。 + +### 已知问题 + +#### 过时的插件 + +过时的插件可能会导致问题,我们建议保持它们的最新状态。 + +#### 与macvlan相关的调用跟踪和崩溃 + +如果您收到与 macvlan 相关的调用跟踪(或任何无法解释的崩溃),第一步我们建议您导航到 ***设置 > Docker***,切换到**高级**视图,然后将 **Docker 自定义网络类型** 从 **macvlan** 更改为 **ipvlan**。这是自版本 6.11.5 以来 Unraid 随附的默认配置,应该适用于大多数系统。 + +请注意,某些用户报告在使用某些路由器(Fritzbox)进行端口转发时遇到问题,并且在 ipvlan 模式下使用高级网络管理工具(Ubiquity)时功能受到限制。如果这影响到您,请查看自 Unraid 版本 [6.12.4](6.12.4.md#fix-for-macvlan-call-traces) 起提供的替代解决方案。 + +#### 由于jumbo frames导致的网络问题 + +如果您有任何类型的网络问题,请确认您没有启用 Jumbo 桢。导航到 ***设置 > 网络设置 > eth0*** 并确认 **期望的 MTU** 为 1500。有关更多信息,请参阅 [关于 Jumbo 框架的常见问题警告](https://forums.unraid.net/topic/120220-fix-common-problems-more-information/page/2/#comment-1167702)。 + +#### 由于Realtek网卡导致的问题 + +升级的内核修复了与 Jumbo 框架和内核中 Realtek 8125 驱动程序的死锁问题。然而,我们仍然建议遵循上述关于 Jumbo 框架的建议。 + +如果您继续遇到网络稳定性问题,并且\_**工具 > 系统设备**\_ 显示您拥有 Realtek 以太网控制器,请获取显示的零件号并搜索社区应用,看看是否有专用的 Realtek 驱动程序插件。有关更多信息,请参阅 [Realtek 驱动程序插件支持页面](https://forums.unraid.net/topic/141349-plugin-realtek-r8125-r8168-and-r81526-drivers/)。 + +#### 其他问题? + +我们强烈推荐安装**Fix Common Problems**插件,因为它会警告您常见配置问题。 + +如果您遇到其他崩溃或稳定性问题,请导航到 ***设置 > 系统日志服务器*** 并启用 **镜像系统日志到闪存**。这将在您的 USB 闪存启动设备上造成额外的磨损,但在崩溃后收集日志短期内是有用的。 + +下次重启后,导航到\_**工具 > 诊断**\_并下载您的匿名诊断(从版本6.12.5起,诊断会自动包含镜像到闪存驱动器的日志)。 + +最后,在 [常规支持](https://forums.unraid.net/forum/55-general-support/) 下开始一个新主题,并提供问题的所有详细信息。一旦问题解决,请务必禁用 **镜像系统日志到闪存**。 + +### 回滚 + +“Docker Patch 6.12.8”的功能现在内置在 Unraid 中。如果您回滚到 6.12.8,可能需要重新安装该插件。 + +如果回滚至早于 6.12.8 的版本,请参阅 [6.12.8 发布说明](6.12.8.md#rolling-back)。 + +## 与 [6.12.8](6.12.8.md)的变化 + +### 漏洞修复和改进 + +- Docker + - 在添加或更新容器时忽略配置文件中的空路径 + - 解决更新容器时的某些问题 + - 修复当有容器更新时的通知问题 +- 管理访问页面 + - 解决显示 IPv6 URL 的问题 + - 移除对旧版 'unraid.net' SSL 证书的支持,并移除 "UpdateDNS" +- 诊断工具:包含 PHP 错误日志以协助故障排除 +- 系统驱动程序:解决导致页面无法显示的翻译问题 +- UPC: + - 解决服务器描述中的单引号或双引号问题 + - 如果未安装 unraid-api,则不尝试启动它 +- 修复仅 HTTPS 模式、仅 HTTP 模式或通过 http 更改服务器描述或型号时的重定向错误。 +- 将 /run tmpfs 尺寸限制从 32M 增至 128M +- 在创建 GPT 分区表和通知内核重新读取之间引入延迟,以防止"设备或资源正忙"错误。 +- shfs:修复与 zfs 卷有关的高层次分配方法 +- nfs:确保默认启用 NFSv4 挂载 +- 解决各种 PHP 警告 +- 将新安装的默认时间服务器更改为 "time.google.com" + +### Linux kernel + +- 版本 6.1.82 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- 一部分安全更新,详情请参阅 [这篇博客文章](https://unraid.net/blog/cvd)。我们建议升级到最新稳定版本以获取其他安全更新。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md new file mode 100644 index 0000000000..2095603b3b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.0.md @@ -0,0 +1,708 @@ +## 版本 6.9.0 2021-02-27 + +新功能摘要 + +## 多个池 + +该功能允许您定义多达35个命名的池,每个池最多包含30个存储设备。池通过主页创建和管理。 + +- Note: A pre-6.9.0 cache disk/pool is now simply a pool named + "cache".  When you upgrade a server which has a cache disk/pool + defined, a backup of `config/disk.cfg` will be saved to + `config/disk.cfg.bak`, and then cache device assignment settings are + moved out of `config/disk.cfg` and into a new file, + `config/pools/cache.cfg`.  If later you revert back to a pre-6.9.0 + Unraid OS release you will lose your cache device assignments and + you will have to manually re-assign devices to cache.  As long as + you reassign the correct devices, data should remain intact. + +创建用户共享或修改现有用户共享时,您可以指定与该共享关联的池。指定的池功能与当前缓存池操作相同。 + +需注意的是:当获取共享的目录列表时,Unraid 数组磁盘卷和所有包含该共享的池将按以下顺序合并。 + +> 分配给共享的池 +> +> disk1 +> +> `:` +> +> disk28 +> +> 所有其他的池在 \[strverscmp()]\([https://man7.org/linux/man-pages/man3/strverscmp.3.html](https://man7.org/linux/man-pages/man3/strverscmp.3.html)) 顺序中。 + +A single-device pool may be formatted with either xfs, btrfs, or +(deprecated) reiserfs.  A multiple-device pool may only be formatted +with btrfs.  A future release will include support for multiple "Unraid +array" pools, as well as a number of other pool types. + +- Note: Something else to be aware of: Let's say you have a 2-device + btrfs pool. This will be what btrfs calls "raid1" and what most + people would understand to be "mirrored disks". Well, this is + mostly true in that the same data exists on both disks but not + necessarily at the block-level.  Now let's say you create another + pool, and what you do is un-assign one of the devices from the + existing 2-device btrfs pool and assign it to this pool.  Now you + have x2 single-device btrfs pools.  Upon array Start user might + understandably assume there are now x2 pools with exactly the same + data.  However, **this is not the case**. Instead, when Unraid OS + sees that a btrfs device has been removed from an existing + multi-device pool, upon array Start it will do a `wipefs` on that + device so that upon mount it will not be included in the old pool. + This of course effectively deletes all the data on the moved device. + +### 额外的 btrfs 平衡选项 + +多个设备池仍然默认使用 btrfs *raid1* 配置文件创建。如果池中有 3 个或更多设备,您现在可以重新平衡到 *raid1c3* 配置文件(在不同设备上的 3 个数据副本)。如果您在一个池中有 4 个或更多设备,您现在可以重新平衡到 *raid1c4*(在不同设备上的 4 个数据副本)。我们还修改了 *raid6* 平衡操作,将元数据设置为 *raid1c3*(以前是 *raid1*)。 + +然而,我们注意到将其中一个平衡过滤器应用于完全空的卷后,会留下带有先前配置文件的数据区块。解决方案是简单地再次运行相同的平衡。我们认为这是一个btrfs错误,如果没有解决方案,我们将默认添加第二个平衡。目前,保持不变。 + +### SSD 1 MiB 分区对齐 + +我们添加了另一种分区布局,其中分区1的开始对齐在1 MiB边界。这意味着,对于呈现512字节扇区的设备,分区1将从扇区2048开始;对于具有4096字节扇区的设备,从扇区256开始。这种分区类型现在用于格式化所有未格式化的非旋转存储(仅此)。 + +It is not clear what benefit 1 MiB alignment offers.  For some SSD +devices, you won't see any difference; for others, perhaps big +performance difference.  LimeTech does not recommend re-partitioning an +existing SSD device unless you have a compelling reason to do so (or +your OCD just won't let it be). + +要重新分区SSD,必须先清除设备上的现有分区结构。当然,**这将擦除设备上的所有数据**。或许最简单的方法是,在阵列停止时,识别要清除的设备,并使用'blkdiscard'命令: + +`blkdiscard /dev/xxx # 例如 /dev/sdb 或 /dev/nvme0n1 等` + +警告:请确保您键入了正确的设备标识符,因为设备上的 **所有数据将丢失!** + +在下次阵列启动时,设备将显示为未格式化,因为现在没有分区结构,Unraid OS 将创建它。 + +- 注意:如果您想要重新分区基于SSD的缓存磁盘/池并保留数据,请考虑在[Unraid社区论坛](https://forums.unraid.net/forum/55-general-support/)上发帖,以获得对于您特定配置的帮助。同时参考在预发布版板块的[这篇帖子](https://forums.unraid.net/bug-reports/prereleases/unraid-os-version-690-beta29-available-r1066/)。 + +### SMART 处理和存储阈值警告 + +有一个名为`config/smart-one.cfg`的配置文件,其中存储了与SMART相关的信息,例如,提供给`smartctl`的控制器类型用于获取SMART信息。从这个版本开始,这些配置设置的处理方式有所不同。 + +在SMART配置的情况下,设置是按照设备ID保存的,而不是按槽位ID。这允许我们为未分配的设备管理SMART。它还允许SMART配置“跟随设备”,无论其被分配到哪个槽位。然而,这意味着您必须手动为所有与默认不同的设备重新配置SMART设置。 + +The volume warning and critical space threshold settings have been moved +out of this configuration file and instead are saved now in +`config/disk.cfg` (for the Unraid array) and in the pool configuration +files for each pool.  The implication is that you must manually +reconfigure these settings for all volumes which vary from default. + +升级后,您可能会收到通知,例如:`注意 [TOWER] - 磁盘 1 返回到正常利用水平`。如上所述,您所有的SMART配置设置均已重置为默认值。访问`设置 -> 磁盘设置`查看默认值,并在`主页 -> 磁盘 X -> 设置`上覆盖个别磁盘。 + +## 更好的模块/第三方驱动支持 + +请记住,我们将Linux模块和固件分发在独立的squashfs文件中,并在`/lib/modules`和`/lib/firmware`上以只读方式挂载。我们现在在每个挂载点上设置一个overlayfs,使得能够使用插件系统安装第三方模块,前提是这些模块针对当前运行的内核版本构建。此外,我们在USB闪存启动设备上定义了一个新目录`config/modprobe.d`,其内容在引导序列中的早期阶段复制到`/etc/modprobe.d`,在Linux内核加载任何模块之前。 + +这种技术用于安装 Nvidia 驱动程序(请参阅下文),社区开发人员也可使用它来提供一种更简便的方法来添加不包括在基本 Unraid OS 中的模块:无须构建自定义 bzimage、bzmodules、bzfirmware 和 bzroot 文件! + +### 向模块传递参数 + +`config/modprobe.d` 中的 `conf` 文件可以用来指定选项并向模块传递参数。 + +举个例子:目前,我们没有UI支持指定哪个网络接口应该"主"用于bond;绑定驱动程序只是默认选择第一个成员。在某些配置中,可能需要指定一个明确的首选接口,例如,如果您有一个包含1Gbit / s(eth0)和10Gbit / sec(eth1)接口的bond。 + +由于设置绑定涉及加载绑定内核模块,您可以通过这种方法指定哪个接口设置为主接口: + +在闪存上创建一个文件:`config/modprobe.d/bonding.conf`,其中包含这一行,然后重启: + +`options bonding primary=eth1` + +重启后,您可以通过键入此命令来检查它是否有效: + +`cat /proc/net/bonding/bond0` + +您应该可以看到选择的接口显示为 "主要从属设备"。 + +### Nvidia 驱动程序 + +创建挂载在 `/lib/modules` 和 `/lib/firmware` 上的 squashfs 叠加层的目的是提供一个集成第三方驱动程序到 Unraid OS 的机制而无需定制 bz\* 文件构建。最受欢迎的第三方驱动之一是 Unraid OS 所需的 Nvidia 的 GPU Linux 驱动程序。此驱动程序是 Docker 容器中转码能力所需的。作为 Unraid OS 插件提供此驱动程序需要设置开发环境、编译驱动程序和工具,然后解压 bzmodules,添加驱动程序,创建新的 bzmodules,最后替换到 USB 闪存根目录。这项工作由社区成员 \[@chbmb]\([https://forums.unraid.net/profile/6219-chbmb/)、\\\[@bass\_rock\\](https://forums.unraid.net/profile/6219-chbmb/\)、\\\[@bass_rock\\)]\([https://forums.unraid.net/profile/78406-bass\_rock/](https://forums.unraid.net/profile/78406-bass_rock/)) 和其他人完成。在他们的基础上,成员 \[@ich777]\([https://forums.unraid.net/profile/72388-ich777/](https://forums.unraid.net/profile/72388-ich777/)) 我们现在创建了与每个新的 Unraid OS 版本对应的独立 Nvidia 驱动程序包,但该包不直接包含在基本 bz\* 分发版本中。 + +可以在此处下载描述支持每个内核版本的驱动程序版本的 JSON 文件: + +[https://s3.amazonaws.com/dnld.lime-technology.com/drivers/releases.json](https://s3.amazonaws.com/dnld.lime-technology.com/drivers/releases.json) + +每个驱动程序包包括Nvidia Linux GPU驱动程序和一组容器工具。容器工具包括: + +`nvidia-container-runtime`\ +`nvidia-container-toolkit`\ +`libnvidia-container` + +这些工具有助于在Docker容器中实现加速转码。感谢社区成员[@ich777](https://forums.unraid.net/profile/72388-ich777/)的帮助和提供这些工具。[@ich777](https://forums.unraid.net/profile/72388-ich777/)还提供了一个[方便的插件](https://raw.githubusercontent.com/ich777/unraid-nvidia-driver/master/nvidia-driver.plg),方便安装正确的驱动程序。 + +The inclusion of third-party modules into Unraid OS using the plugin +system is still a work-in-progress. For example, another candidate would +be to replace the Linux in-tree Intel ethernet drivers with Intel's +custom Linux drivers. + +## Docker + +现在可以为相同类型的多个容器选择不同的图标。此更改需要重新下载所有已安装的docker应用程序的图标。初次加载仪表板或Docker选项卡时可能会有延迟,这是预料之中的,直到容器显示出来。 + +我们还做出了一些更改以增加为Docker引擎分配存储的灵活性。这可以通过设置/ Docker设置/ Docker数据根设置来配置。这让您可以选择如何保留Docker永久状态(图像层): + +- 在btrfs格式化的vdisk中,通过loopback挂载到/var/lib/docker。在这种情况下,图像文件的名称必须是'docker.img'。 +- 在xfs格式化的vdisk中,通过loopback挂载到/var/lib/docker。在这种情况下,图像文件的名称必须是'docker-xfs.img'。 +- 在指定的目录中,通过bind挂载到/var/lib/docker。此外,该目录所在的文件系统必须是btrfs或xfs。 + +Docker 将在 btrfs 格式化的 vdisk/目录中使用 "btrfs" 存储驱动程序,或在 xfs 格式化的 vdisk/目录中使用 "overlay2" 存储驱动程序。 + +实现如下:首先,`rc.docker`将检测挂载在`/var/lib/docker`的文件系统类型。我们现在支持btrfs或xfs,并相应地设置docker存储驱动程序。 + +接下来,`mount_image`修改以支持通过环回文件格式化的文件,格式可以是btrfs或xfs,具体取决于环回文件名的后缀。例如,文件名以`.img`结尾,如`docker.img`,然后我们使用`mkfs.btrfs`。如果文件名以`-xfs.img`结尾,如`docker-xfs.img`,则我们使用`mkfs.xfs`。 + +此外,我们添加了将目录bind挂载的能力,而不是使用环回。如果文件名没有以`.img`结尾,那么代码假定这是一个目录的名称(可能在共享上)绑定到`/var/lib/docker`。例如,如果是`/mnt/user/system/docker/docker`,那么我们首先创建,在需要时,在用户分享的目录`/mnt/user/system/docker/docker`。如果该路径位于用户共享上,我们首先解除引用该路径以获得磁盘路径,然后绑定挂载到`/var/lib/docker`。例如,如果`/mnt/user/system/docker/docker`位于“disk1”上,我们将绑定挂载`/mnt/disk1/system/docker/docker`。注意:共享应为仅缓存或无缓存,以便“搬运工”不会试图移动目录,但脚本不检查此点。 + +## 虚拟化 + +我们整合了由用户 \[@Skitals]\([https://forums.unraid.net/profile/97624-skitals/](https://forums.unraid.net/profile/97624-skitals/)) 和用户 \[@ljm42]\([https://forums.unraid.net/profile/61877-ljm42/](https://forums.unraid.net/profile/61877-ljm42/)) 提出的对工具→系统设备页面的更改。现在,您可以简单地通过勾选一些方框来从启动时隔离出 Linux 的 PCI 设备。更容易将这些设备保留给虚拟机使用。这一技术被称为 *stubbing* (因为一个存根或虚拟驱动程序在引导时被分配到设备上,防止真正的 Linux 驱动程序被分配)。 + +有些人可能想知道,如果我们可以\_黑名单\_个别驱动程序,为什么还需要存根这些设备来分配给虚拟机?答案是:您可以。但如果您有多个同类型设备,其中一些需要传递给虚拟机,而另一些需要安装主机 Linux 驱动程序,则必须对传递给虚拟机的设备使用存根。 + +注意:如果您安装了VFIO-PCI配置插件,您应该移除它,因为该功能现已集成到Unraid OS 6.9中。如果您通过修改Syslinux文件手动存根设备,请考虑切换到[vfio-pci指南](https://forums.unraid.net/topic/93781-guide-bind-devices-to-vfio-pci-for-easy-passthrough-to-vms/)中描述的新方法。 + +## 多语言支持 + +Unraid 6.9 的另一个令人兴奋的新功能是可以下载语言包并以多种语言使用 Unraid OS。 + +由社区成员 \[@bonienl]\([https://forums.unraid.net/profile/2736-bonienl/](https://forums.unraid.net/profile/2736-bonienl/)) 实施了大量工作和努力,为 Unraid OS 管理工具,也被称为 WebGUI,提供多语言支持。目前,\_英语、西班牙语、法语、德语、荷兰语、阿拉伯语、简体中文、葡萄牙语和波兰语\_可用,并且还有其他几种语言正在开发中。 + +感谢 [@Squid](https://forums.unraid.net/profile/10290-squid/),语言包通过社区应用程序插件进行安装 - 请查找一个名为语言的新类别。 + +- 注意:社区应用程序必须是最新的,以便安装语言。详情请参阅[这里。](https://forums.unraid.net/topic/38582-plug-in-community-applications/page/124/?tab=comments#comment-866710) + +每个语言包在公共[Unraid组织github仓库](https://github.com/unraid)中可用。有兴趣的用户可以克隆并提交拉取请求以纠正翻译错误。语言翻译和PR合并由[@SpencerJ](https://forums.unraid.net/profile/88446-spencerj/)管理。 + +*有关多语言支持的更多信息,\[请查看我们的指南。]\([https://unraid.net/blog/unraid-6-9-multi-language-support](https://unraid.net/blog/unraid-6-9-multi-language-support))* + +我们还添加了[Unraid社区论坛多语言版块](https://forums.unraid.net/forum/75-multi-language-section/)。 + +## 其他 + +### GPU 驱动集成 + +Unraid OS现在包括选定的内置GPU驱动程序:ast(Aspeed)、i915(Intel)、amdgpu和radeon(AMD)。为了向后兼容,这些驱动程序默认通过对应的`conf`文件在`/etc/modprobe.d`中被黑名单。 + +`/etc/modprobe.d/ast.conf`\ +`/etc/modprobe.d/i915.conf`\ +`/etc/modprobe.d/amdgpu.conf`\ +`/etc/modprobe.d/radeon.conf` + +这些文件中的每一个都有一行\_黑名单\_驱动程序,防止它被 Linux 内核加载。 + +可以通过在USB闪存启动设备上的`config/modprobe.d`目录中创建自定义`conf`文件来覆盖这些文件中的设置。例如,要解除对amdgpu驱动程序的黑名单,通过在终端会话中输入这个命令创建一个空文件: + +`touch /boot/config/modprobe.d/amdgpu.conf` + +此操作只需执行一次,不需要添加到go 脚本中。 + +在 6.9.1 中,如果您的 go 脚本包含用于 GPU 的 modprobe 命令和/或修复 `/dev/dri` 权限的命令,您应该移除它们: + +`modprobe amdgpu`\ +`chmod -R 777 /dev/dri` + +在 6.9.0 中,如果您使用的 docker 无法访问 GPU,请在您的 go 脚本中添加/保留此行: + +`chmod -R 777 /dev/dri` + +但请移除此行: + +`modprobe amdgpu` + +### Linux 内核 + +我们使用的是[LTS](https://www.kernel.org/)(长期支持)内核:版本 5.10.x。 + +启用的新内核功能: + +- WireGuard 模块 +- iScsi 目标模块 +- USB/IP 模块 + +这些外部驱动已包含: + +- QLogic QLGE 10Gb 以太网驱动支持(来自预备阶段) +- RealTek r8125:版本 9.003.05(为更新的 r8125 包含) +- HighPoint rr272x\_1x:版本 v1.10.6-19\_12\_05(根据用户要求) + +请注意,当我们更新 Linux 内核时,如果外部驱动无法构建,将省略这些驱动。 + +省略的驱动包括: + +- Highpoint RocketRaid r750(无法构建) +- Highpoint RocketRaid rr3740a(无法构建) +- Tehuti Networks tn40xx(无法构建) + +如果您需要其中的一个驱动程序,请创建 Bug 报告,我们将会花一些时间寻找替代方案。更好的是,请催促控制器的制造商让\_他们\_更新他们的驱动程序。 + +### 基础包 + +全部更新至最新版本。此外,已整合[Linux PAM](https://en.wikipedia.org/wiki/Linux_PAM)。这将允许我们在未来的版本中安装两因素认证包。 + +### SAS 旋转控制 + +我们还应现在能够正确支持SAS设备的启动/停止旋转功能(终于)并通过[@doron](https://forums.unraid.net/profile/8006-doron/)的额外帮助,我们几乎完成了。SAS设备通常为企业环境设计,其中设备停止旋转是罕见的,许多设备在围绕此功能的行为不一致。此发行版本身尚不包含内置的SAS设备旋转处理功能,但[@doron](https://forums.unraid.net/profile/8006-doron/)提供了一个插件,我们继续解决某些令人恼火的细节。 + +### SSH 改进 + +在 `/etc/ssh/sshd_conf` 中进行了更改以提高安全性(感谢 +[@Mihai](https://forums.unraid.net/profile/89549-mihai/) 和 +[@ljm42](https://forums.unraid.net/profile/61877-ljm42/) 的建议): + +- 只有root用户被允许通过ssh登录(请记住:Unraid OS中没有传统用户 - 只有'root')。 +- 现在需要不为空的密码。要设置密码,请转到用户标签(或者根据您的配置转到设置→用户),然后选择 "root" 用户,输入复杂密码两次并按更改(而不是重置)。 +- 禁用非root用户隧道 + +此外,在升级时,我们确保`config/ssh/root`目录在USB闪存启动设备上存在;并且,我们设置了一个符号链接:`/root/.ssh`到此目录。这意味着您可能放入的任何文件`/root/.ssh`在重启时都将保持持久。 + +因此,如果您之前已向 `go` 脚本中添加命令以复制 `authorized_keys` 和其他文件到 `/root/.ssh`,您应该删除这些命令,只需将文件放入 `config/ssh/root`,然后重新启动。 + +注意:如果您检查sshd启动脚本`/etc/rc.d/rc.sshd`,在引导时,来自`config/ssh`目录的所有文件将复制到`/etc/ssh`(但不包括子目录)。其目的是恢复主机ssh密钥;然而,这种机制也可用于定义自定义`ssh_conf`和`sshd_conf`文件。 + +### “意外的 GSO 错误” + +如果您的系统日志中充满了诸如以下的错误: + +`Feb 20 09:09:21 Tower kernel: tun: unexpected GSO type: 0x0, gso_size 31, hdr_len 66` + +您需要编辑每个VM并将以太网桥的模型类型从`virtio`更改为`virtio-net`。在大多数情况下,只需点击“表单视图”上的更新即可完成。在其他网络配置中可能需要直接编辑xml。例如: + +```xml + + + + + +
+ +``` + +### "noVNC 遇到了一个错误" + +如果您在升级后收到 `noVNC 遇到了一个错误` 信息,请清除您的浏览器缓存。 + +### AFP 支持已被移除 + +即使 Apple 也在[逐渐弃用](https://www.macworld.com/article/3600899/using-afp-to-share-a-mac-drive-its-time-to-change.html)该协议。 + +为了与 macOS 的最佳互操作性,并为 Time Machine 提供一个共享,请确保 "设置/SMB 设置/增强 macOS 互操作性" 设置为 “是”。 + +## 更改日志 + +#### 基本发行版 + +- aaa\_elflibs:版本 15.0 build 27 +- acl:版本 2.2.53 +- acpid:版本 2.0.32 +- apcupsd:版本3.14.14 +- at-spi2-core:版本 2.36.1 +- at:版本 3.2.1 +- attr:版本 2.4.48 +- avahi:版本0.8 +- bash:版本 5.0.018 +- beep:版本1.3 +- bin:版本11.1 +- bluez-firmware:版本1.2 +- bridge-utils:版本 1.7 +- brotli:版本 1.0.9 构建 2 +- btrfs-progs:版本 5.10 +- bzip2:版本1.0.8 +- ca-certificates:版本 20201219 +- celt051:版本0.5.1.3 +- cifs-utils:版本 6.11 +- coreutils:版本 8.32 +- cpio:版本2.13 +- cpufrequtils:版本008 +- cryptsetup:版本 2.3.4 +- curl:版本 7.74.0(CVE-2020-8231 CVE-2020-8286 CVE-2020-8285 CVE-2020-8284) +- cyrus-sasl:版本2.1.27 +- db48:版本4.8.30 +- dbus:版本1.12.20 +- dcron:版本4.5 +- devs:版本 2.3.1 构建 25 +- dhcpcd:版本 8.1.9 +- diffutils:版本 3.7 +- dmidecode:版本3.3 +- dnsmasq:版本 2.84(CVE-2020-25681 CVE-2020-25682 CVE-2020-25683 CVE-2020-25684 CVE-2020-25685 CVE-2020-25686 CVE-2020-25687) +- docker:版本 19.03.14 +- dosfstools:版本 4.1 +- e2fsprogs:版本 1.45.6 +- ebtables:版本2.0.11 +- eject:版本2.1.5 +- elvis: 版本 2.2\_0 +- etc:版本15.0 +- ethtool:版本 5.9 +- eudev:版本 3.2.5 +- file:版本 5.39 +- findutils:版本 4.7.0 +- flex:版本2.6.4 +- floppy:版本5.5 +- fontconfig: 版本 2.13.92 +- freetype:版本 2.10.4 +- fribidi:版本 1.0.10 +- fuse3:版本 3.10.0 +- gawk:版本 4.2.1 +- gd:版本 2.2.5 +- gdbm:版本 1.18.1 +- genpower:版本1.0.5 +- getty-ps:版本2.1.0b +- git:版本 2.29.1 +- glib2:版本 2.66.2 +- glibc-solibs:版本 2.30 构建 2 +- glibc-zoneinfo:版本 2020d +- glibc:版本 2.30 构建 2 +- gmp:版本 6.2.0 +- gnutls:版本 3.6.15 +- gptfdisk:版本 1.0.5 +- grep:版本 3.4 +- gtk+3:版本 3.24.23 +- gzip:版本 1.10 +- harfbuzz:版本 2.7.2 +- haveged:版本 1.9.13 +- hdparm:版本 9.60 +- hostname:版本3.23 +- htop:版本 3.0.2 +- icu4c:版本 68.1 +- inetd:版本1.79s +- infozip:版本6.0 +- inotify-tools:版本 3.20.2.2 +- intel-microcode:版本 20210216 +- iproute2:版本 5.9.0 +- iptables:版本 1.8.5 +- iputils:版本 20200821 +- irqbalance:版本 1.6.0 +- jansson:版本 2.13.1 +- jasper:版本 2.0.22 +- jemalloc:版本5.2.1 +- jq:版本1.6 +- kernel-firmware:版本 20210211\_f7915a0 +- keyutils:版本 1.6.1 +- kmod:版本 27 +- krb5:版本 1.18.2 +- lbzip2:版本2.5 +- lcms2:版本 2.11 +- less: 版本 563 +- libX11: 版本 1.6.12 +- libaio:版本0.3.112 +- libarchive: 版本 3.4.3 +- libcap-ng: 版本 0.8 构建 2 +- libcgroup:版本0.41 +- libdaemon:版本0.14 +- libdrm: 版本 2.4.102 +- libedit:版本 20191231\_3.1 +- libestr: 版本 0.1.11 +- libevdev: 版本 1.10.0 +- libevent:版本2.1.12 +- libfastjson: 版本 0.99.8 +- libffi:版本3.3 +- libgcrypt: 版本 1.8.7 +- libglvnd: 版本 1.3.2 +- libgpg-error: 版本 1.39 +- libgudev: 版本 234 +- libidn: 版本 1.36 +- libjpeg-turbo: 版本 2.0.5 +- liblogging:版本1.0.6 +- libmnl:版本1.0.4 +- libnetfilter\_conntrack: 版本 1.0.8 +- libnfnetlink:版本1.0.1 +- libnftnl: 版本 1.1.8 +- libnl3:版本3.5.0 +- libpcap: 版本 1.9.1 +- libpciaccess:版本0.16 +- libpng:版本1.6.37 +- libpsl: 版本 0.21.1 构建 2 +- librsvg: 版本 2.50.1 +- libseccomp: 版本 2.4.3 +- libssh2: 版本 1.9.0 +- libssh: 版本 0.9.5 +- libtasn1: 版本 4.16.0 +- libtirpc: 版本 1.2.6 +- libunistring:版本0.9.10 +- libusb-compat: 版本 0.1.5 +- libusb: 版本 1.0.23 +- libuv: 版本 1.34.0 +- libvirt-php: 版本 0.5.5 +- libvirt: 版本 6.6.0 (CVE-2020-14339) +- libwebp: 版本 1.1.0 构建 3 +- libwebsockets: 版本 3.2.2 +- libx86: 版本 1.1 +- libxkbcommon: 版本 1.0.1 +- libxml2: 版本 2.9.10 构建 3 +- libxslt: 版本 1.1.34 +- libzip: 版本 1.7.3 +- lm\_sensors: 版本 3.6.0 +- lmdb: 版本 0.9.27 +- logrotate: 版本 3.17.0 +- lshw: 版本 B.02.17 +- lsof: 版本 4.93.2 +- lsscsi: 版本 0.31 +- lvm2: 版本 2.03.10 +- lz4: 版本 1.9.1 +- lzip: 版本 1.21 +- lzo: 版本 2.10 +- mc: 版本 4.8.25 +- miniupnpc: 版本 2.1 +- mpfr: 版本 4.1.0 +- nano: 版本 5.3 +- ncompress: 版本 4.2.4.6 +- ncurses:版本 6.2\_20201024 +- net-tools: 版本 20181103\_0eebece +- nettle: 版本 3.6 +- network-scripts: 版本 15.0 构建 9 +- nfs-utils: 版本 2.1.1 +- nghttp2: 版本 1.41.0 +- nginx: 版本 1.19.5 (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516) +- nodejs: 版本 13.12.0 +- nss-mdns: 版本 0.14.1 +- ntfs-3g: 版本 2017.3.23 +- ntp: 版本 4.2.8p15 构建 3 +- numactl: 版本 2.0.11 +- oniguruma: 版本 6.9.1 +- openldap-client: 版本 2.4.49 +- openssh: 版本 8.4p1 构建 2 +- openssl-solibs: 版本 1.1.1i +- openssl: 版本 1.1.1i +- p11-kit: 版本 0.23.22 (CVE-2020-29361 CVE-2020-29361 CVE-2020-29361) +- pam: 版本 1.5.1 +- pango: 版本 1.46.2 +- patch: 版本 2.7.6 +- pciutils: 版本 3.7.0 +- pcre2: 版本 10.35 +- pcre: 版本 8.44 +- php: 版本 7.4.15 (CVE-2019-11048 CVE-2020-7068 CVE-2020-7070 CVE-2020-7069) +- pixman: 版本 0.40.0 +- pkgtools: 版本 15.0 构建 33 +- pm-utils: 版本 1.4.1 +- procps-ng: 版本 3.3.16 +- pv: 版本 1.6.6 +- qemu: 版本 5.1.0 (CVE-2020-10717, CVE-2020-10761) +- qrencode: 版本 4.0.2 +- reiserfsprogs: 版本 3.6.27 +- rpcbind: 版本 1.2.5 构建 2 +- rsync: 版本 3.2.3 +- rsyslog: 版本 8.2002.0 +- samba: 版本 4.12.11 (CVE-2020-10700, CVE-2020-10704 CVE-2020-10730, CVE-2020-10745, CVE-2020-10760, CVE-2020-14303 CVE-2020-1472 CVE-2020-14318 CVE-2020-14318 CVE-2020-14318) +- sdparm: 版本 1.11 +- sed: 版本 4.8 +- sg3\_utils:版本 1.45 +- shadow: 版本 4.8.1 +- shared-mime-info: 版本 2.0 +- smartmontools: 版本 7.1 +- spice: 版本 0.14.1 +- sqlite: 版本 3.33.0 +- ssmtp: 版本 2.64 +- sudo: 版本: 1.9.3p2 (CVE-2021-23239 CVE-2021-23240) +- sysfsutils: 版本 2.1.0 +- sysvinit-scripts: 版本 2.1 构建 35 +- sysvinit: 版本 2.97 +- talloc: 版本 2.3.1 构建 4 +- tar: 版本 1.32 +- tcp\_wrappers:版本 7.6 build 3 +- tdb: 版本 1.4.3 构建 4 +- telnet: 版本 0.17 +- tevent: 版本 0.10.2 构建 4 +- traceroute: 版本 2.1.0 +- tree: 版本 1.8.0 +- ttyd: 版本 20200624 +- usbredir: 版本 0.7.1 +- usbutils: 版本 013 +- utempter: 版本 1.2.0 +- util-linux: 版本 2.36 构建 2 +- vbetool: 版本 1.2.2 +- vsftp: 版本 3.0.3 构建 7 +- wget: 版本 1.20.3 +- which: 版本 2.21 +- wireguard-tools: 版本 1.0.20210223 +- wsdd: 版本 20180618 +- xev: 版本 1.2.4 +- xf86-video-vesa: 版本 2.5.0 +- xfsprogs: 版本 5.9.0 +- xinit: 版本 1.4.1 +- xkeyboard-config: 版本 2.31 +- xorg-server: 版本 1.20.9 构建 3 +- xterm: 版本 361 +- xxHash: 版本 0.8.0 +- xz: 版本 5.2.5 +- yajl: 版本 2.1.0 +- zlib: 版本 1.2.11 +- zstd: 版本 1.4.5 + +#### Linux kernel + +- 版本 5.10.19 +- CONFIG\_WIREGUARD:WireGuard 安全网络隧道 +- CONFIG\_IP\_SET:IP 设置支持 +- CONFIG\_SENSORS\_DRIVETEMP:带温度传感器的硬盘驱动器 +- md/Unraid: 版本 2.9.17 + - 移除 spinup 组 spinup/spindown 支持 (功能移动到 emhttpd) + - 添加可配置的同步启动偏移 +- 添加 iSCSI 内核支持:\n  - CONFIG\_ISCSI\_TARGET:Linux-iSCSI.org iSCSI 目标模式栈 + - CONFIG\_ISCSI\_TARGET\_CXGB4:Chelsio iSCSI 目标卸载驱动程序 + - CONFIG\_LOOPBACK\_TARGET:TCM 虚拟 SAS 目标和 Linux/SCSI LDD\n fabric 回送模块 + - CONFIG\_NVME\_TARGET:NVMe 目标支持 + - CONFIG\_NVME\_TARGET\_LOOP:NVMe 回送设备支持 + - CONFIG\_NVME\_TARGET\_PASSTHRU:NVMe 目标直通支持 + - CONFIG\_TARGET\_CORE:通用目标核心模组(TCM)和 ConfigFS 基础设施 + - CONFIG\_TCM\_FILEIO:TCM/FILEIO 子系统插件适用于 Linux/VFS + - CONFIG\_TCM\_IBLOCK:TCM/IBLOCK 子系统插件适用于 Linux/BLOCK + - CONFIG\_TCM\_PSCSI:TCM/pSCSI 子系统插件适用于 Linux/SCSI + - CONFIG\_TCM\_USER2:TCM/USER 子系统插件适用于 Linux +- 添加 USB/IP 内核支持:\n   - CONFIG\_USBIP\_CORE:USB/IP 支持\n   - CONFIG\_USBIP\_VHCI\_HCD:VHCI hcd +- mpt3sas:添加 /etc/modprobe.d/mpt3sas-workaround.conf 以设置 "max\_queue\_depth=10000" +- oot: Realtek r8152: 版本 2.13.0 +- oot: Tehuti tn40xx: 版本 0.3.6.17.3 +- 启用额外的hwmon本地驱动程序 +- 启用其他hyperv驱动程序 + +#### 管理 + +- 移除AFP支持 +- 多语言支持已添加 +- 添加了多个池支持 +- at: 抑制会话打开/关闭的syslog消息 +- 避免向非旋转设备发送spinup/spindown信号 +- btrfs: 包含'discard=async'挂载选项 +- bug修复:将/etc/krb.conf重命名为/etc/krb5.conf +- 清理passwd, shadow +- dhcpcd: ipv6: 使用slaac hwaddr代替slaac private +- docker: 修正存储驱动程序分配逻辑 +- docker: 支持btrfs和xfs备份文件系统 +- emhtppd: 从多设备池中移除wipefs加密设备 +- emhtptd: 使用文件'config/forcesync'跟踪清洁/非清洁关机 +- emhttpd: 添加wipefs函数(WebGUI '擦除'按钮) +- emhttpd: 避免不必要地删除mover.cron文件 +- emhttpd: 避免使用重新挂载来设置其他挂载选项 +- emhttpd: Bug修复:对于非标准控制器类型没有SMART数据 +- emhttpd: Bug修复:初始设备温度未显示 +- emhttpd: correct 'Erase' logic for Unraid array devices +- emhttpd: 启动时在设备上启用SMART +- emhttpd: 修复自动设置,使启用用户共享的池不应导出 +- emhttpd: 修复磁盘"SMART控制器类型"在读取温度时未被遵循 +- emhttpd: 修复外部'smartctl -n standby'导致设备启动 +- emhttpd:去掉 poll\_attributes 事件 +- emhttpd: 实现spinup组的spinup/spindown;添加spinup/spindown调用 +- emhttpd:允许抹掉 "DISK\_DSBL\_NEW" 替换设备 +- emhttpd:恢复 'poll\_attributes' 事件调用 +- emhttpd:未分配设备根据全局默认设置停止旋转 +- emhttpd: 另一种btrfs'free/used'计算方法 +- 修复emhttpd因导出NFS磁盘共享引起的崩溃 +- 修复未旋转设备分区实际上没有对齐到1MiB +- 移除'系统'插件支持(从未使用过) +- 集成PAM +- 集成ljm42 vfio-pci脚本更改 +- 环回: 根据文件名允许使用xfs或btrfs +- modprobe: 默认将GPU驱动列入黑名单,config/modprobe.d/\*可以在启动时覆盖 +- 所有 btrfs 卷使用 'space\_cache=v2' 选项挂载 +- 使用'noatime'选项挂载环回; 启用'direct-io' +- mount\_image: 支持绑定挂载 +- 未旋转设备分区默认对齐到1MiB边界 +- 插件: 支持sha256文件验证 +- rsyslog: 修复“将系统日志镜像到闪存”损坏问题 +- samba: 默认禁用aio +- shfs: 移动:在同类型文件系统之间移动时保留 ioctl\_iflags +- shfs:移动:支持稀疏文件 +- smart-one.cfg按ID而非插槽保持SMART信息; 磁盘警告/关键配置移至磁盘/池配 +- smb: 修复Ad加入问题 +- smb: 移除在smb.conf中设置'aio'选项,使用samba默认 +- ssh: 增加/root/.ssh到/boot/config/ssh/root目录的符号链接 +- ssh: 仅允许root用户,要求密码,禁用非root隧道 +- ssh: 要求密码, 禁用非root隧道 +- 启动: 为/lib/modules和/lib/firmware设置overlayfs +- syslog: 配置以侦听本地主机udp端口514 +- Web终端: 禁止关闭窗口时弹出警告 +- Wireguard 支持: rc.wireguard: 添加iptables规则 +- WebGUI: 修复dockerupdate.php警告 +- WebGUI:更新状态检查 +- WebGUI: 添加'Portuguese (pt)'键映射选项给libvirt +- WebGUI: 增加配置的超时,当停止容器时 +- WebGUI: 添加日志查看器用于vfio-pci +- WebGUI: 添加通知代理用于Discord +- WebGUI: 在诊断中添加池信息 +- WebGUI: 增加raid1c3 和raid1c4 btrfs 池平衡选项。 +- WebGUI: 添加更新对话框到docker上下文菜单 +- WebGUI: 增加"安全模式"一次性安全模式重启选项 +- WebGUI: 在诊断中为所有池添加btrfs信息 +- WebGUI: 新显示设置: 显示标准化或原始设备标识符 +- WebGUI: 添加新设置 "启用用户共享分配" 给缓存池 +- WebGUI:新增对具有基本身份验证或无身份验证的私有docker注册表的支持,并改善了基于令牌的身份验证 +- WebGUI: 允许上传不同的图像类型,最大为512K +- WebGUI: 允许重复容器有不同的图标 +- WebGUI: 在容器描述中允许markdown +- WebGUI: 将主板信息的图标从齿轮(设置)变更为信息 +- WebGUI: 更改: 在访问日志时,仪表板和docker之间的一致性 +- WebGUI: 仪表板: 修复缺失接口的统计信息 +- WebGUI: 仪表板: 服务器图标的样式调整 +- WebGUI: 检测无效会话并注销当前标签页 +- WebGUI: 诊断:移除SHA256 哈希 +- WebGUI: 不允许"?"出现在共享名称中 +- WebGUI: 显示设置: 颜色应该是3或6字符的十六进制数字 +- WebGUI: 不在添加容器列表中显示CA配置文件 +- WebGUI: Docker: 允许BTRFS或XFS vdisk或文件夹位置 +- WebGUI: Docker: 更直观地处理图像 +- WebGUI: 修复' 出现 +- WebGUI: 修复Azure / Gray切换语言被切断 +- WebGUI: 修复横幅警告不重新加载页面就无法消失的问题 +- WebGUI: 修复启动的虚拟机未显示在仪表板的问题 +- WebGUI: 修复读取超大日志文件时崩溃(限制输出1000行) +- WebGUI:修复“忽略所有通知”功能 +- WebGUI: 修复如果没有缓存池则无法更改校验计划 +- WebGUI: 修复通知不断重新出现 +- WebGUI: 修复如果通知存在, 无法使用右上角图标的问题 +- WebGUI: 修复错误的docker运行URL引用 +- WebGUI: 修复: 在iPad设备上, 仪表板/Docker滚动 +- WebGUI: 修复: 正确设置samesite cookie(修复Safari上的登录问题) +- WebGUI: raid6 btrfs 池数据配置文件使用raid1c3元数据配置文件。 +- WebGUI: 重新排列图标按钮 +- WebGUI: 主页: 当未启用用户共享时隐藏移动按钮 +- WebGUI: 多语言: 修复回归错误: 缺少必填字段指示器 +- WebGUI: 多语言: 修复无法删除/编辑用户 +- WebGUI: 网络设置: 显示第一个DNSv6服务器 +- WebGUI: 网络: 允许零值度量以设置无默认网关 +- WebGUI: 网络: 修复隐私扩展未设置 +- WebGUI: 新权限: 支持多缓存池 +- WebGUI: 通知: 修复白色/黑色间隙 +- WebGUI: 当未挂载的卷在阵列启动时允许文件系统配置。 +- WebGUI: 防止“添加”在为用户输入错误用户名时恢复为英语 +- WebGUI: 防止捆绑的nics也绑定到vfio-pci +- WebGUI: 如果未定义隧道,则从仪表板中移除WG +- WebGUI: 当浏览文件过多时显示消息 +- WebGUI: 支持通知上的链接 +- WebGUI: 如果未安装插件则禁止仪表板上的Autofan链接 +- WebGUI: 如果未定义隧道,则禁止仪表板上的WG +- WebGUI: 将诊断切换到web socket +- WebGUI: SysDevs - 离开页面无保存时警告 +- WebGUI: SysDevs全面升级与vfio-pci.cfg绑定 +- WebGUI: 标签式机壳选择窗口 +- WebGUI: 任务插件:提供定义 Display\_Name 的能力 +- WebGUI: 更新 Feedback.php +- WebGUI: 更新到 version 1.4.7 的 jGrowl +- WebGUI: 更新 noVNC 到 v1.2.0 +- WebGUI: 更新机箱图标 +- WebGUI: 在docker上下文菜单中使用更新图像对话框进行更新输入 +- WebGUI: 虚拟机管理器: 添加'virtio-win-0.1.189-1'到VirtIO-ISOs列表 +- WebGUI: 虚拟机管理器: 修复: 从VM VNC图形改为GPU透传 +- WebGUI: 虚拟机管理器: 添加virtio-win-0.1.190-1 +- WebGUI: 虚拟机管理器: 新设置"网络模型" +- WebGUI: 虚拟机: 修复: 添加NICs或VirtFS挂载到虚拟机受限 +- WebGUI: 虚拟机: 修复: 在罕见情况下vdisk默认设置为Auto而应为Manual +- WebGUI: 虚拟机: 将默认网络模型更改为virtio-net +- WebGUI: 虚拟机: 更直观地处理图像选择 +- WebGUI: 如果autov()源文件不存在,避免php语法错误 +- WebGUI: 更好地处理多个与vfio-pci相关的nics +- WebGUI: 修正登录表单显示错误图标 +- WebGUI: 不要尝试显示导致未启动设备启动的SMART信息 +- WebGUI: dockerMan: 在高级视图中允许使用更多信息 +- WebGUI: dockerMan: 仅允许与docker兼容的名称 +- WebGUI: dockerMan: 可选安装时启动 +- WebGUI: 修复: jGrowl覆盖按钮 +- WebGUI: 修复: 在服务器之间切换时弹出登录提示 +- WebGUI:其他杂项改进 +- WebGUI: 不应选择未启用用户共享的池作为缓存 +- WebGUI: 对 tail\_log 的输入进行清理 +- WebGUI: 设置 'mid-tower' 默认机箱图标 +- WebGUI: 支持未分配设备的磁盘唤醒/休眠和温度监控 +- WebGUI: 禁用登录表单中的用户名自动完成 +- WebGUI: 虚拟机管理器:保留 VNC 端口设置 +- WebGUI: vnc: 添加浏览器缓存清除功能 + +["WireGuard"和"WireGuard"徽标是Jason A. Donenfeld注册的商标。](https://www.wireguard.com/) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md new file mode 100644 index 0000000000..b08c78e0f8 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.1.md @@ -0,0 +1,54 @@ +## 版本 6.9.1 2021-03-08 + +## 显著的错误修复和改进 + +修正了在Unraid系统管理工具外调用`smartctl`的代码导致设备永不降速的问题。 +注意:仍然需要[@doron](https://forums.unraid.net/profile/8006-doron/)的[SAS降速插件](https://forums.unraid.net/topic/97351/plugin-spin-down-sas-drives/)来正确支持SAS设备降速。 + +对于 Docker:如果加载了内置的 GPU 驱动程序,创建 `/dev/dri/*` 设备节点,会将这些节点的权限设置为 `0777`,以便于使用 GPU 进行转码的容器的集成。 + +在终端窗口中输入 'exit' 后,现在将关闭该窗口(耶!)。 + +我们在 NoVNC web 访问中添加了 'no-cache' 头,因此未来的 Unraid 操作系统版本将不再有过时的 web 组件。 + +将 openssl 包更新到了版本 1.1.1j,该版本包含安全更新。 + +将 Linux 内核更新到 5.10.21,一个 5.10 LTS 内核的补丁版本。 + +包含了内核配置设置,必要时包括特定硬件监控设备,并添加对新设备的支持。 + +### 驱动程序更新 + +Nvidia GPU驱动已更新至460.56,并应与此内核5.10.21一起正常工作。请安装[@ich777](https://forums.unraid.net/profile/72388-ich777/)的[Nvidia-Driver插件](https://forums.unraid.net/topic/98978/plugin-nvidia-driver/)以下载并安装此驱动。 + +## 更改日志与 Unraid 操作系统 6.9.0 + +#### 基本发行版 + +- openssl: 版本 1.1.1j (CVE-2021-23841 CVE-2021-23840) +- openssl-solibs: 版本 1.1.1j +- ttyd: 版本 1.6.3 + +#### Linux kernel + +- 版本 5.10.21 +- CONFIG\_WATCHDOG:看门狗计时器支持 +- 新增了几个新的硬件监控驱动程序 + +#### 管理 + +- emhttp: 在休眠/唤醒逻辑中监控分区统计数据而非设备统计数据 +- rc.local: 确保 USB 闪存启动设备上存在所需目录 +- rc.local: 对于 Docker 容器:授予图形设备节点 /dev/dri/\* 的访问权限 +- rc.nginx: 为 novnc 添加 Cache-Control:nocache 头 +- WebGUI: 将 syslog 缓冲区从 1000 行增加到 3000 行 +- WebGUI: SysDevs 解决显示异常 +- WebGUI: 诊断:包含 modprobe.d 文件 +- WebGUI: 诊断:包含 go 作为 go.txt +- WebGUI: 更新共享安全帮助文本 +- WebGUI: 在模板中弃用捐赠链接,改为使用 CA 配置文件中的链接 +- WebGUI: 保护 GUI 免遭无效 .page 文件攻击 +- WebGUI: 在路由表显示中抑制 ipv6 多播条目 +- WebGUI:将 helptext.txt 与 lang-en\_US 仓库同步 +- WebGUI: 用户管理 - 禁用密码自动完成 +- WebGUI: 仪表板:修复磁盘使用率的颜色 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md new file mode 100644 index 0000000000..5b5d358eed --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/6.9.2.md @@ -0,0 +1,45 @@ +## 版本 6.9.2 2021-04-07 + +### **登录失败限制** + +在 WebGUI 登录时,您现在每个 IP 地址有 3 次登录尝试机会,随后会强制执行 15 分钟的冷却期。此外,每个 IP 地址的最后三次失败登录尝试的时间戳将存储在 `/var/log/pwfail/` 文件中。请注意,这仅适用于 WebGUI 登录,不适用于 ssh 或 telnet。 + +### **驱动更新** + +我们已将Nvidia供应商GPU驱动程序更新至版本465.19.01。使用此[便利的插件](https://raw.githubusercontent.com/ich777/unraid-nvidia-driver/master/nvidia-driver.plg)由社区开发者[@ich777](https://forums.unraid.net/profile/72388-ich777/)提供,以便于安装正确的驱动程序。 + +## 变更日志 vs. Unraid OS 6.9.1 + +#### 基本发行版 + +- docker:版本 20.10.5 +- fuse3:版本 3.10.2 +- nginx:版本 1.19.9 +- samba:版本 4.12.14 (CVE-2020-27840 CVE-2020-27840) + +#### Linux kernel + +- 版本 5.10.28 +- 包括所有 CONFIG\_NF\_\* 模块 +- oot:realtek r8125:版本 9.005.01 + +#### 管理 + +- emhttpd:检测带外设备启动 +- shfs: 添加 'copy\_file\_range()' 支持 +- shfs:修正 'mknod' 创建 fifo +- WebGUI:登录:实现每 15 分钟最多 3 次失败登录尝试 +- WebGUI:修复通知上链接在汇总显示时的缺失问题 +- WebGUI:插件:将不兼容的插件移动到 ../plugins-error +- WebGUI:修复在删除池时缺少 CSRF +- WebGUI:修复 .sweet-alert 的颜色 +- WebGUI:翻译调整 +- WebGUI:诊断:防止下载按钮的双击操作 +- WebGUI:修复默认使用阈值不发送通知的问题 +- WebGUI:修复 CSS span.select 背景颜色 +- WebGUI:使诊断消息左对齐 +- WebGUI:修复在 DeviceInfo.page 上的 JavaScript 错误,防止设置被保存 +- WebGUI:更新 DeviceInfo.page +- WebGUI:防止在容器上自动填充密码 +- WebGUI:Docker:不允许 CPU 锁定,如果没有模板 +- WebGUI:修复 .sweet-alert .sa-icon 颜色,\* 在 CSS 中 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md new file mode 100644 index 0000000000..da3d256db8 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.0.md @@ -0,0 +1,852 @@ +# 版本 7.0.0 2025-01-09 + +该版本的 Unraid OS 在所有子系统中均进行了重大改进,同时尽可能保持向后兼容性。 + +特别感谢: + +- 感谢 @bonienl、@dlandon、@ich777、@JorgeB、@SimonF 和 @Squid 在此版本中的指导、支持及开发工作。 +- 感谢@bonienl将他们的 **Dynamix 文件管理器** 插件合并到 WebGUI 中 +- 感谢@Squid将他们的 **GUI 搜索** 和 **无限宽度插件** 插件合并到 WebGUI 中 +- 感谢@ludoux (**代理编辑器** 插件) 和 @Squid (**社区应用程序** 插件) 在 http 代理支持方面所做的先锋工作,其中一些想法已被合并到 WebGUI 中 +- 感谢@ich777维护第三方驱动插件,并为[Tailscale Docker 集成](#tailscale-integration)做出的贡献 +- @SimonF 为 Unraid OS VM 管理器带来了重大新功能 +- 感谢@EDACerton开发的Tailscale插件 + +查看[GitHub 上对 Unraid 的贡献者](https://github.com/unraid/webgui/graphs/contributors?from=2023-09-08\&to=2025-01-08\&type=c),感谢这些社区成员,他们贡献了PR(这些是GitHub ID): + +- almightyYantao +- baumerdev +- Commifreak +- desertwitch +- dkaser +- donbuehl +- FunkeCoder23 +- Garbee +- jbtwo +- jski +- Leseratte10 +- Mainfrezzer +- mtongnz +- othyn +- serisman +- suzukua +- thecode + +并由衷感谢所有请求功能、报告错误和测试预发布版本的人! + +## 升级 + +### 已知问题 + +#### ZFS 池 + +如果您正在使用 ZFS 池,请注意以下事项: + +- 您将看到有关现有 ZFS 池不支持功能的警告。这是因为 7.0 版本的 ZFS 已升级,相较之 6.12 版本具有新功能。此警告是无害的,意味着您的池仍能正常运行。界面上将出现一个按钮,可用于升级池以支持新的 ZFS 功能;但 Unraid OS 本身并不使用这些新功能,并且一旦升级,旧版本的 Unraid OS 将无法挂载该池。 +- 同样,在 7.0 中创建的新池将无法在 6.12 中挂载,因为 ZFS 不支持降级。对此没有解决办法。 +- 如果您决定从7.0降级到6.12,任何先前存在的混合池在进入6.12后将无法识别。要解决此问题,请首先在7.0中点击工具/新配置,保留所有槽位,然后进入6.12重新启动,您的混合池应被正确导入。 +- 此版本不支持 ZFS 备用。如果您在 6.12 中创建的混合池中包括备用,请在升级到 7.0 之前移除“备用”vdev。这将在未来版本中修复。 +- 目前无法导入TrueNAS池。这将在未来的版本中修复。 +- 如果您在 ZFS 卷上使用 **Docker data-root=directory**,请参见 [添加对 overlay2 存储驱动程序的支持](#add-support-for-overlay2-storage-driver)。 +- 我们检查 VM 名称中是否包含在 ZFS 中无效的字符。现有的 VM 不会被修改,但如果发现无效字符,会抛出错误并禁用更新。 + +#### 一般池问题 + +如果现有的池无法导入并出现\_不正确的池状态, 无效扩展\_或\_不正确的池状态。太多错误或缺失的设备\_,请参阅此[论坛帖子](https://forums.unraid.net/topic/184435-unraid-os-version-700-available/#findComment-1508012)。 + +#### 当连接到使用sata\_mv驱动程序的旧Marvell驱动器控制器(如超级微 SASLP 和 SAS2LP)或旧的Intel控制器(如ICH7-ICH10)时,驱动器可能无法闲置。 + +当驱动器连接到使用sata\_mv驱动程序的老旧Marvell驱动控制器(例如:Supermicro SASLP和SAS2LP)或较旧的Intel控制器(例如:ICH7-ICH10)时,驱动器可能无法旋转下来。未来的内核更新可能会解决此问题。 + +#### 如果是这样,系统可能会经历足够的内存压力,从而将操作系统推送出RAM并导致它从闪存驱动器重新读取。 + +如果系统运行缓慢,请检查主页面是否显示在正常操作期间从闪存驱动器读取的显著连续。若是,系统可能正在经历足够的内存压力以推送操作系统出RAM并导致从闪存驱动器重新读取。通过网络终端输入: + +```shell +这将使用大约500 MB的RAM以确保OS文件始终保留在内存中。 +``` + +然后重启。这将使用大约500 MB的内存以确保操作系统文件始终保留在内存中。请告知我们是否有帮助。 + +#### Windows新更改可能导致公共共享无法访问 + +由于 Windows 11 24H2 的最近安全更改,Unraid 公共共享的 "guest" 访问可能无法使用。解决此问题的最简单方法是在 Unraid 中创建一个与您用于连接的 Windows 帐户相同名称的用户。如果 Unraid 用户密码与 Windows 帐户密码不同,Windows 将提示输入凭据。 + +如果您使用的是 Microsoft 帐户,可能更好是在 Unraid 中创建一个简单用户名的用户,设置密码,然后在 Windows 中进入 ***控制面板 → 凭据管理器 → Windows 凭据 → 添加 Windows 凭据*** 并添加正确的 Unraid 服务器名称和凭据。 + +或者,您可以[重新启用Windows访客回退](https://techcommunity.microsoft.com/blog/filecab/accessing-a-third-party-nas-with-smb-in-windows-11-24h2-may-fail/4154300)(不推荐)。 + +#### 由于Realtek网卡导致的问题 + +在升级到最新内核后,有多个关于Realtek驱动程序插件问题的报告。您可能希望在升级前主动卸载它,或者如果出现网络问题,则在升级后将其移除。 + +#### 请参阅此[论坛帖子](https://forums.unraid.net/bug-reports/stable-releases/61214-no-network-after-updating-eth0-assigned-to-virtual-usb-nic-cdc-ethernet-device-with-169-ip-instead-of-mellanox-10gbe-nic-r3407/)获取选项。 + +在某些带有IPMI KVM的系统中,将虚拟NIC分配给eth0,而不是预期的NIC。有关选项请参阅此[论坛帖子](https://forums.unraid.net/bug-reports/stable-releases/61214-no-network-after-updating-eth0-assigned-to-virtual-usb-nic-cdc-ethernet-device-with-169-ip-instead-of-mellanox-10gbe-nic-r3407/)。 + +#### 底层系统变得更为严格,以前版本中工作的无效CIDR定义不再有效。 + +如果某些自定义Docker网络不可供您的Docker容器使用,请导航到\_**设置 → Docker**\_并修复这些自定义网络的子网掩码和DHCP池的CIDR定义。底层系统变得更严格,早期版本中可用的无效CIDR定义不再可用。 + +### 回滚 + +如果您回滚到早期版本,您将需要重新安装这些插件以保持它们的功能。 + +Dynamix 文件管理器、GUI 搜索和无限宽度插件现已内置于 Unraid 中。如果你回滚到早期版本,你需要重新安装这些插件以保留它们的功能。 + +如果您禁用了 unRAID 阵列,我们建议在回滚前再次启用它。 + +如果在Docker容器中安装[Tailscale](#tailscale-integration)后进行回滚,您将需要编辑容器,做一个虚拟更改,然后**应用**以构建没有Tailscale集成的新容器。 + +在回滚后,对每个WireGuard配置进行虚拟更改以获取适合该版本Unraid的设置。 + +如果回滚早于6.12.14,请参阅[6.12.14 版本说明](6.12.14.md#rolling-back)。 + +回滚后,对每个 WireGuard 配置进行虚拟更改,以获取与该版本的 Unraid 相应的设置。 + +unRAID 阵列可选 + +## 存储 + +### unRAID 阵列可选 + +您现在可以将 unRAID 阵列槽位设定为“无”。这将允许阵列在未分配任何设备至 unRAID 阵列自身时启动。 + +如果您拥有全 SSD/NVMe 服务器,我们建议将所有设备分配到一个或多个 ZFS/BTRFS 池中,因为 unRAID 阵列设备不支持 Trim/Discard。 + +要从现有服务器上取消分配 unRAID 阵列,首先在主界面上取消分配所有阵列插槽,然后将插槽数量设置为“无”。 + +对于新安装,预设为 unRAID 阵列保留的插槽数量现在为“无”。 + +### ReiserFS 文件系统选项已被禁用 + +由于ReiserFS计划从Linux内核中移除,因此格式化设备为ReiserFS的选项也被禁用。 + +### 您可以使用此迁移工具功能在使用新的文件系统重新格式化之前清空阵列磁盘,请参见下文。 + +由于 ReiserFS 计划从 Linux 核心中移除,格式化设备为 ReiserFS 的选项也已被禁用。您可以使用此移动功能在重新格式化前清空阵列磁盘,详情请见下文。我们将在未来版本中添加 webGUI 按钮。 + +### 启动阵列后,在网页终端运行以下命令: + +传送器现在可以用来清空一个数组磁盘。在阵列启动的情况下,在网页终端中运行: + +```bash +移动目标仅限于unRAID阵列。 +``` + +移动程序会查看每个顶级目录(共享),然后逐个将文件移动到阵列上的其他磁盘,遵循常用的配置设置(包括/排除、分层级别、分配方法)。移动目标仅限于 unRAID 阵列。 + +监视syslog以获取状态。当传送器过程结束时,syslog将显示无法移动的文件列表: + +- 也许我们空间不足 +- 预定义共享的处理 +- Unraid OS Docker 管理器默认配置为使用这些预定义共享: + +### system - 用于在 system/docker 中存储 Docker 镜像层的回环镜像。 + +Unraid OS Docker管理器默认配置为使用这些预定义共享: + +- Unraid OS 虚拟机管理器默认配置为使用这些预定义共享: +- system - 用于在 system/libvirt 中存储 libvirt 回环镜像 + +Unraid OS虚拟机管理器默认配置为使用这些预定义共享: + +- isos - 用于存储ISO启动镜像 +- 当启用Docker或虚拟机时,根据这些规则创建所需的预定义共享: +- 如果存在名为“cache”的池,预定义共享将创建为“cache”作为主存储,而没有二级存储。 + +如果不存在名为“cache”的池,则将第一个按字母顺序排列的现有池创建为主存储而没有二级存储的预定义共享。 + +- 如果存在名为'cache'的池,则会创建预定义共享,将'cache'作为主要存储,并无次要存储。 +- 如果不存在名为'cache'的池,则创建的预定义共享以字母顺序的第一个池为主要存储,并无次要存储。 +- 若无池存在,预定义的共享会作为主存储在 unRAID 阵列中创建,没有次级存储。 + +### ZFS 实现 + +- 支持混合 ZFS 池(亦称亚池,除 '备用' 外) +- 支持从多个驱动器故障中恢复的 ZFS 池(具有足够保护) +- 支持在 ZFS 池和驱动器上进行 LUKS 加密 +- 为新的 ZFS 池和亚池设定合理的默认配置文件 +- 支持在查看池状态时升级 ZFS 池。注意:升级后,该卷可能无法在旧版 Unraid 中挂载 + +### btrfs, zfs, 和 zfs 子池的分配配置文件 + +创建 btrfs 或 zfs 池/亚池时,默认存储分配由最初分配给池的槽位(设备)数量决定: + +- 对于 zfs 主(根)池: + - 插槽 >= 3 => raidz1 (1组“插槽”个设备) + - 对于zfs特定、日志和去重子池: + - 插槽 == 1 =>单个 + +- 对于 zfs 特殊、日志和去重亚池: + - 插槽 >= 3 => raidz1 (1组“插槽”个设备) + - 插槽%2 == 0 => 镜像 (插槽/2 组2个设备) + - 插槽%3 == 0 => 镜像 (插槽/3 组3个设备) + - 插槽 == 1 =>单个 + +- 对于 zfs 缓存和备用亚池: + - 插槽 >= 3 => raidz1 (1组“插槽”个设备) + - 插槽 == 1 =>单个 + +- 插槽 >= 2 => raid1 (即,btrfs所谓的“raid1”) + - 插槽 >= 3 => raidz1 (1组“插槽”个设备) + - 在向单插槽池添加设备(扩展)时,适用以下规则: + +### 对于btrfs:向单插槽池添加一个或多个设备将导致池转换为raid1(即,btrfs定义的raid1)。 + +向现有的多插槽btrfs池添加任何数量的设备会增加该池的存储容量,并且不会更改存储配置文件。 + +对于btrfs:向单插槽池添加一个或多个设备将导致将池转换为raid1(即btrfs定义的raid1)。向现有的多插槽btrfs池添加设备会增加池的存储容量,并且不会改变存储配置文件。 + +对于 zfs:向单插槽池添加一个、两个或三个设备将导致池转换为 2 倍、3 倍或 4 倍镜像。向原有的 2 倍或 3 倍镜像中添加一个设备会将池转换为 3 倍或 4 倍镜像。 + +更改存储池的文件系统类型: + +对于所有单卡槽存储池,当阵列停止时,可以更改文件系统类型。 + +对于 btrfs/zfs 多插槽池,文件系统类型无法更改。要重新利用这些设备,您必须点击擦除池按钮。 + +### 其他功能 + +- 添加并行启动/关闭存储池中的设备 +- 添加“删除池”按钮,该按钮取消池中所有设备的分配,然后删除池。设备本身不被修改。这在物理上从服务器中移除设备时很有用。 +- 添加更改 LUKS 加密磁盘加密短语/密钥文件的能力 +- 引入 'config/share.cfg' 变量 'shareNOFILE',用于设置 shfs 进程的最大打开文件描述符(参见已知问题) + +## VM管理器 + +### 改进内容 + +新增对虚拟机克隆、快照和 evdev 直通的支持。 + +虚拟机编辑器现在为高级用户提供新的只读内联 XML 模式,使 GUI 选项如何影响虚拟机使用的基础 XML 更加明确。 + +特别感谢 @SimonF 对虚拟机的持续增强。 + +### 其他更改 + +- **虚拟机标签** + - 显示分配给虚拟机的所有图形卡和 IP 地址 + - noVNC 版本:1.5 +- **虚拟机管理器设置** + - 添加虚拟机自动启动禁用选项 +- **添加/编辑虚拟机模板** + - 添加“内联 XML 查看”选项 + - 支持用户创建的虚拟机模板 + - 添加 qemu ppc64 目标 + - 添加 qemu:override 支持 + - 添加“QEMU 命令行直通”功能 + - 添加虚拟机多功能支持,包括 "PCI 其它" + - 为 Windows 虚拟机增强虚拟机模板,包括 hypervclock 支持 + - 为仿真 CPU 添加“可迁移”开/关选项 + - 添加偏移量和计时器支持 + - 添加无键盘映射选项并将虚拟 GPU 默认键盘设置为使用此选项 + - 添加nogpu选项 + - 为 Intel iGPU 添加 SR-IOV 支持 + - 添加存储覆盖以指定创建图像的位置 + - 为虚拟磁盘添加 SSD 标记 + - 添加 Unmap 支持 + - 检查虚拟机名称不包含对 ZFS 无效的字符。 +- **仪表板** + - 在仪表板中添加虚拟机使用统计信息,启用 ***设置 → 虚拟机管理器 → 显示虚拟机使用情况*** + +## Docker + +### 防止 Docker 分叉炸弹 + +为了防止 "Docker 分叉炸弹",我们引入了一个新设置,***设置 → Docker → Docker PID 限制***, +指定任何容器可能使用的最大 PID(默认值为 2048)。 + +如果您有一个需要更多 PID 的容器,您可以增加此设置,或者您可以通过在 Docker 模板 *额外参数* 设置中添加 `--pids-limit 3000` +来覆盖特定容器。 + +### 添加对 overlay2 存储驱动程序的支持 + +如果您在 ZFS 卷上使用 **Docker data-root=目录**,我们建议您前往 +***设置 → Docker*** 并将 **Docker 存储驱动** 切换到 **overlay2**, +然后删除目录内容,让 Docker 重新下载图像层。 + +如果保留降级到早期版本的能力重要,那么请切换到 **Docker data-root=xfs vDisk**。 + +### 其他更改 + +- 参见 [Tailscale 集成](#tailscale-integration) +- 允许自定义注册表并指定端口 +- 使用“延迟卸载”来卸载 Docker 镜像以防止阻塞阵列停止。 +- 更新以解决多个安全问题(CVE-2024-21626, CVE-2024-24557) +- Docker 管理器: + - 允许用户在 WebUI 中选择容器网络 + - 正确识别/显示非 Dockerman 管理的容器 +- rc.docker: + - 仅停止 Unraid 管理的容器 + - 遵循第三方容器的重启策略 +- 将 Docker Wireguard 网桥的 MTU 设置为匹配 Wireguard 默认 MTU + +## 网络 + +### Tailscale 集成 + +Unraid OS 通过社区开发者 EDACerton 创建的插件支持 [Tailscale](https://tailscale.com/)。安装此插件后,https webGUI 访问中提供 Tailscale 证书支持,并且 Tailnet URLs 将显示在 ***设置 → 管理访问*** 页面。 + +在 Unraid 中,您可以选择在几乎任何 Docker 容器中安装 Tailscale, +使您能够与特定人员共享容器,使用有效的 https 证书访问它们, +并通过出口节点为它们提供备用互联网路由。 + +有关详细信息,请参见 [文档](../system-administration/secure-your-server/tailscale.mdx) + +### 支持将 WebGUI 置于 iframe 中 + +添加了 "Content-Security-Policy frame-ancestors" 的支持,以自动允许那些有证书的域使用 iframe 嵌入 webGUI。 尽管这并不是完全支持,但可以通过使用脚本修改 `/etc/defaults/nginx` 中的 NGINX\_CUSTOMFA 进行额外定制。 + +### 其他更改 + +- 升级到 OpenSSL 3 +- 允许所有IPv4/IPv6地址作为监听器。这解决了当IPv4或IPv6地址动态更改的问题。 +- Samba: + - 仅在禁用 NetBIOS 时添加 IPv6 监听地址 + - 修复 MacOS 无法写入“闪存”共享并恢复时间机器兼容性(fruit 变更) +- VPN管理器现已将所有接口添加到WireGuard隧道中,升级或更改网络设置后,对隧道进行虚拟更改以更新WireGuard隧道配置。 + +## webGUI + +### 集成 Dynamix 文件管理器插件 + +单击文件管理器图标并导航您的目录结构,执行复制、移动、删除和重命名文件和目录等常见操作。 + +### 集成 GUI 搜索插件 + +单击菜单栏上的搜索图标并输入您正在查找的设置名称。 + +### 外发代理管理器 + +如果您之前使用了Proxy Editor插件或为CA设置了出口代理,这些将自动被移除/导入。然后可以在\_**设置 → 出口代理管理器**\_中调整它们。 + +更多详细信息,请参见[手册](../system-administration/secure-your-server/secure-your-outgoing-comms.mdx)。 + +注意:此功能与您可能正在使用的任何反向代理完全无关。 + +### 通知代理 + +现在将通知代理 XML 存储为单独的 XML 文件,通过插件更容易添加通知代理。 + +参见 @Squid 提供的 [示例插件](https://github.com/Squidly271/Wxwork-sample) + +- 修复:邮件通知有问题时代理通知无法工作 + +### NTP 配置 + +对于新安装,单个默认 NTP 服务器设置为 'time.google.com'。 + +如果您的服务器使用我们以前的NTP默认值time1.google.com,time2.google.com等,您可能会注意到您的syslog中出现一些困惑的NTP相关信息。要避免这种情况,请考虑切换到我们的新默认值:导航到\_**设置 → 日期和时间**\_并将**NTP服务器1**配置为time.google.com,其他保持为空。 + +当然,您可以使用任何您喜欢的时间服务器,只是通知您我们调整了默认设置。 + +### NFS 共享 + +我们添加了一些新设置以帮助解决NFS共享的问题。在\_**设置 → 全局共享设置***中,您可以调整保险丝文件描述符的数量,并在***设置 → NFS**\_中调整NFS协议版本和它使用的线程数。请参阅在线帮助以获取详细信息。 + +- 新增对 NFS 4.1 和 4.2 的支持,默认允许 NFSv4 挂载 +- 添加一个文本框以配置多行 NFS 规则 +- 修复错误:nfsd 未正确重启 + +### 仪表盘 + +- 在仪表板中添加服务器日期和时间;单击时间以编辑相关设置 +- 重构**系统**选项卡以明确显示的内容,包括工具提示 +- 当仪表板选项卡最小时显示有用内容 +- 在仪表板上显示 Docker RAM 使用情况 + - 在仪表板中添加 Docker RAM 使用情况 + - 将“服务”重命名为“系统” +- 修复仪表板、虚拟机管理器和 Docker 管理器页面的内存泄漏 + +### SMART 改进 + +- 在 SSD 的 SMART 属性中显示已写入的 KB/MB/GB/TB。 +- 添加“SSD 耐久度剩余”SMART 属性。 + +### 诊断 + +- 将gpu统计中的gpuson添加到诊断中 +- 改进 LXC 日志的匿名化 +- 如果安装了 FCP 插件,请在诊断中运行扫描 +- 添加 phplog 来识别 PHP 错误 +- 改进 IPv6 地址的匿名化 +- 移除 ps.txt 因为它在进程列表中暴露密码 + +### 其他更改 + +- 支持为HDD/SSD/NVMe驱动器设置不同的警告/关键温度阈值。NVMe阈值由驱动器本身自动设置,请参见 ***设置 → 磁盘设置*** 以设置HDD和SSD的阈值。所有这些仍可以为单个驱动器提供覆盖。 +- 添加 ***设置 → 本地控制台设置*** 页面,提供键盘布局、屏幕空闲时间和持久化 Bash 历史记录选项 +- 添加 ***设置 → 电源模式*** 以优化系统电源效率、平衡或性能 +- 在**工具** 和 **设置** 中悬停在一个条目上以将其标记为收藏项,并在新的顶级 **收藏** 页面上快速返回到它。或在 \***设置 → 显示设置** 中禁用收藏功能。 +- 增强的关闭/重启屏幕,显示更多过程细节 +- 通过移除子菜单简化通知 - 查看、历史和确认现在适用于所有通知类型 +- 将日期和时间设置从 **显示设置** 移至 ***设置 → 日期和时间设置*** +- ***设置 → 显示设置***:新设置“宽度”,以利用更大屏幕 +- 可选择显示 NVMe 电能使用;参见 ***设置 → 磁盘设置*** +- Web 组件增强 - 降级、更新和注册 +- 禁止将新驱动器格式化为 ReiserFS +- 使用原子写入更新配置文件 +- ZFS 存储池设置更改: + - 创建有意义的 ZFS 子池说明 + - 将 ZFS 配置文本 'raid0' 改为 'stripe' +- 添加额外的 USB 设备直通 smartmontools 选项到 WebGUI(感谢 GitHub 用户 jski) +- UPS 设置页面(感谢 @othyn): + - 添加手动 UPS 容量覆盖的能力。 +- UserEdit:在 Ed25519、FIDO/U2F Ed25519 和 RSA 之外,支持 SSH 密钥类型 DSA、ECDSA 和 FIDO/U2F ECDSA +- OpenTerminal:在 /etc/passwd 文件中使用为 root 用户定义的 shell +- 始终显示“删除共享”选项,但当共享不为空时禁用它 + +## 其他 + +### 其他更改 + +- 用 Memtest86+ 版本 6.20 替换非常旧的 'memtest' + - 还提供 [启动选项](https://github.com/memtest86plus/memtest86plus#boot-options) +- 移除对旧版 unraid.net 证书的支持 +- 移除“UpdateDNS”功能,因为不再使用旧版非通配符 'unraid.net' SSL 证书 +- 从 go 脚本中删除代理信息和 '&' +- 更正 passwd 文件处理 +- 当 avahidaemon 运行时,将 name.local 添加到 hosts 文件 +- 从 hosts 文件中移除 keys.lime-technology.com +- rc.S:从 XFS 挂载中移除 wsync 以防止在/boot上进行大量 I/O 时 WebGUI 冻结 +- make\_bootable\_linux: 版本 1.4 + - 检测是否安装 mtools +- 在ntp.conf中:设置'logconfig'来忽略LOG\_INFO +- 加快速度:使用AVAHI重新加载而不是重新启动 +- Linux内核:强制所有存在问题的希捷外部USB机箱绑定到usb-storage,而不是UAS驱动程序 +- rc.S 脚本中的启动改进: + - 自动修复引导扇区备份 + - 如果无法继续引导,明确卸载所有文件系统 + - 检测syslinux.cfg中的错误根值 + - 重启不应调用关机 + - 清理空cgroups +- Samba smb.conf:如果启用NetBIOS,则设置“nmbd bind explicit broadcast = no” +- 将fastcgi\_path\_info添加到默认nginx配置中 +- 确保对pgrep或killall的调用限制在当前命名空间 +- (高级)添加从`/boot/config/udev/`应用自定义udev规则的功能 +- 错误修复:下载失败时正确处理空的Trial.key +- 错误修复:修复UPS状态的PHP警告 +- 创建有意义的 /etc/os-release 文件 +- 其他翻译修正 +- 错误修复:恢复JavaScript控制台日志记录功能 +- 单击 Unraid 版本号以从 Unraid Docs 网站加载发行说明。 + +## Linux kernel + +- 版本 6.6.68 + - CONFIG\_MISC\_RTSX\_PCI: Realtek PCI-E卡读取器 + - CONFIG\_MISC\_RTSX\_USB: Realtek USB卡读取器 + - CONFIG\_DRM\_XE:Intel Xe图形 + - CONFIG\_DRM\_XE\_DISPLAY: 启用显示支持 + - CONFIG\_AUDIT: 审计支持 + - CONFIG\_USB\_SERIAL\_OPTION: GSM和CDMA调制解调器的USB驱动 + - CONFIG\_USB\_SERIAL\_SIMPLE: USB串行简单驱动程序 + - CONFIG\_USB\_UAS: USB附加SCSI + - CONFIG\_NFS\_V4\_1:NFS 客户端支持 NFSv4.1 + - CONFIG\_NFS\_V4\_1\_MIGRATION:NFSv4.1 客户端迁移支持 + - CONFIG\_NFS\_V4\_2:NFS 客户端支持 NFSv4.2 + - CONFIG\_NFS\_V4\_2\_READ\_PLUS:NFS:启用 NFSv4.2 READ\_PLUS 操作支持 + - CONFIG\_NFSD\_V4\_2\_INTER\_SSC:NFSv4.2 服务器间的服务器到服务器复制 + - CONFIG\_USB\_NET\_CDC\_EEM: CDC EEM支持 + - CONFIG\_USB\_NET\_CDC\_NCM:CDC NCM 支持 + - 配置\_USB串行XR:USB MaxLinear/Exar USB到串行驱动 + - 配置\_CAN:CAN总线子系统支持 + - 配置\_CAN\_NETLINK:支持Netlink的CAN设备驱动程序 + - 配置\_CAN\_GS\_USB:兼容Geschwister Schneider UG和candleLight的接口 + - 配置\_SCSI\_LPFC:Emulex LightPulse光纤通道支持 + - CONFIG\_DRM\_VIRTIO\_GPU: Virtio GPU驱动程序 + - CONFIG\_DRM\_VIRTIO\_GPU\_KMS: Virtio GPU驱动程序模式设置支持 + - CONFIG\_LEDS\_TRIGGERS: LED触发器支持 + - CONFIG\_LEDS\_TRIGGER\_ONESHOT: LED一键触发 + - CONFIG\_LEDS\_TRIGGER\_NETDEV: LED网卡触发 + - CONFIG\_QED: QLogic QED 25/40/100Gb核心驱动 + - CONFIG\_QED\_SRIOV: QLogic QED 25/40/100Gb SR-IOV支持 + - CONFIG\_QEDE: QLogic QED 25/40/100Gb以太网网卡 + - CONFIG\_SCSI\_UFSHCD: 通用闪存存储控制器 + - CONFIG\_SCSI\_UFS\_BSG: 通用闪存存储BSG设备节点 + - CONFIG\_SCSI\_UFS\_HWMON: UFS温度通知 + - CONFIG\_SCSI\_UFSHCD\_PCI: 基于PCI总线的UFS控制器支持 + - CONFIG\_SCSI\_UFS\_DWC\_TC\_PCI: 使用G210测试芯片的DesignWare pci支持 + - CONFIG\_SCSI\_UFSHCD\_PLATFORM: 基于平台总线的UFS控制器支持 + - CONFIG\_SCSI\_UFS\_CDNS\_PLATFORM: Cadence UFS控制器平台驱动 + - CONFIG\_SCSI\_QLA\_FC: QLogic QLA2XXX光纤通道支持 + - CONFIG\_LIQUIDIO: Cavium LiquidIO支持 + - CONFIG\_LIQUIDIO\_VF: Cavium LiquidIO VF支持 + - CONFIG\_NTFS\_FS: NTFS文件系统支持 \[已删除 - 这是旧的只读vfs模块] + - CONFIG\_NTFS3\_FS: NTFS读写文件系统支持 + - CONFIG\_NTFS3\_LZX\_XPRESS: 激活对外部压缩lzx/xpress的支持 + - CONFIG\_NTFS3\_FS\_POSIX\_ACL: NTFS POSIX访问控制列表 + - CONFIG\_UHID: HID子系统的用户空间I/O驱动支持 +- md/unraid:版本2.9.33 + - 修复回归:在第一个占用槽位前的空槽位返回 NO\_DEVICES + - 修复设备故障在重建/同步期间的处理 +- 移除XEN支持 + +## 基本发行版 + +- aaa\_base:版本15.1 +- aaa\_glibc-solibs: 版本 2.40 +- aaa\_libraries:版本15.1 +- acl:版本2.3.2 +- acpid: 版本 2.0.34 +- adwaita-icon-theme:版本47.0 +- apcupsd:版本3.14.14 +- appres:版本1.0.7 +- at:版本3.2.5 +- at-spi2-atk: 版本 2.38.0 +- at-spi2-core:版本2.54.0 +- atk:版本2.38.0 +- attr:版本2.5.2 +- avahi:版本0.8 +- bash:版本5.2.037 +- bash-completion:版本2.16.0 +- beep:版本1.3 +- bin:版本11.1 +- bind:版本9.20.4 +- bluez-firmware:版本1.2 +- bridge-utils:版本1.7.1 +- brotli:版本1.1.0 +- btrfs-progs:版本6.12 +- bzip2:版本1.0.8 +- ca-certificates:版本20241120 +- cairo:版本1.18.2 +- celt051:版本0.5.1.3 +- cifs-utils:版本7.1 +- coreutils:版本9.5 +- cpio:版本2.15 +- cpufrequtils:版本008 +- cracklib:版本2.10.3 +- cryptsetup:版本2.7.5 +- curl:版本8.11.1 +- cyrus-sasl:版本 2.1.28 +- db48:版本4.8.30 +- dbus:版本1.16.0 +- dbus-glib: 版本 0.112 +- dcron:版本4.5 +- dejavu-fonts-ttf: 版本 2.37 +- devs:版本2.3.1 +- dhcpcd:版本10.0.10 +- diffutils:版本3.10 +- dmidecode:版本3.6 +- dnsmasq:版本2.90 +- docker:版本27.0.3 +- dosfstools:版本4.2 +- e2fsprogs:版本1.47.1 +- ebtables:版本2.0.11 +- editres:版本1.0.9 +- elfutils:版本0.192 +- elogind:版本255.5 +- elvis: 版本 2.2\_0 +- encodings:版本1.1.0 +- etc:版本 15.1 +- ethtool:版本 5.19 +- eudev:版本3.2.14 +- file:版本5.46 +- findutils:版本4.10.0 +- flex:版本2.6.4 +- floppy:版本5.5 +- fluxbox: 版本 1.3.7 +- fontconfig:版本2.15.0 +- freeglut:版本3.6.0 +- freetype:版本2.13.3 +- fribidi:版本1.0.16 +- fuse3:版本3.16.2 +- gawk:版本5.3.1 +- gd: 版本 2.3.3 +- gdbm:版本1.24 +- gdk-pixbuf2:版本2.42.12 +- genpower:版本1.0.5 +- git:版本2.47.1 +- glew: 版本 2.2.0 +- glib2:版本 2.82.4 +- glibc:版本2.40 +- glibc-zoneinfo:版本2024b +- glu:版本9.0.3 +- gmp:版本6.3.0 +- gnutls:版本3.8.8 +- gptfdisk:版本1.0.10 +- graphite2: 版本 1.3.14 +- grep:版本3.11 +- gtk+3:版本3.24.43 +- gzip:版本1.13 +- harfbuzz: 版本 10.1.0 +- hdparm:版本 9.65 +- hicolor-icon-theme: 版本 0.18 +- hostname: 版本 3.25 +- htop: 版本 3.3.0 +- hwloc: 版本 2.2.0 +- icu4c: 版本 76.1 +- imlib2: 版本 1.7.1 +- inetd:版本1.79s +- infozip:版本6.0 +- inih: 版本 58 +- inotify-tools: 版本 4.23.9.0 +- intel-microcode:版本20241112 +- iperf3: 版本 3.17.1 +- iproute2: 版本 6.12.0 +- iptables: 版本 1.8.11 +- iputils: 版本 20240905 +- irqbalance:版本1.7.0 +- jansson:版本2.14 +- jemalloc:版本 5.3.0 +- jq:版本1.6 +- json-c: 版本 0.18\_20240915 +- json-glib: 版本 1.10.6 +- kbd: 版本 2.7.1 +- kernel-firmware: 版本 20241220\_9e1d9ae +- keyutils:版本1.6.3 +- kmod: 版本 33 +- krb5: 版本 1.21.3 +- lbzip2:版本2.5 +- less: 版本 668 +- libICE: 版本 1.1.2 +- libSM: 版本 1.2.5 +- libX11: 版本 1.8.10 +- libXau: 版本 1.0.12 +- libXaw: 版本 1.0.16 +- libXcomposite: 版本 0.4.6 +- libXcursor: 版本 1.2.3 +- libXdamage: 版本 1.1.6 +- libXdmcp: 版本 1.1.5 +- libXevie: 版本 1.0.3 +- libXext: 版本 1.3.6 +- libXfixes: 版本 6.0.1 +- libXfont2: 版本 2.0.7 +- libXfontcache: 版本 1.0.5 +- libXft: 版本 2.3.8 +- libXi: 版本 1.8.2 +- libXinerama: 版本 1.1.5 +- libXmu: 版本 1.2.1 +- libXpm: 版本 3.5.17 +- libXrandr: 版本 1.5.4 +- libXrender: 版本 0.9.12 +- libXres: 版本 1.2.2 +- libXt: 版本 1.3.1 +- libXtst: 版本 1.2.5 +- libXxf86dga: 版本 1.1.6 +- libXxf86misc: 版本 1.0.4 +- libXxf86vm: 版本 1.1.6 +- libaio:版本 0.3.113 +- libarchive: 版本 3.7.7 +- libcap-ng: 版本 0.8.5 +- libcgroup:版本0.41 +- libdaemon:版本0.14 +- libdeflate: 版本 1.23 +- libdmx: 版本 1.1.5 +- libdrm: 版本 2.4.124 +- libedit: 版本 20240808\_3.1 +- libepoxy:版本 1.5.10 +- libestr:版本0.1.9 +- libevdev: 版本 1.13.3 +- libevent:版本2.1.12 +- libfastjson:版本0.99.9 +- libffi:版本 3.4.6 +- libfontenc: 版本 1.1.8 +- libgcrypt: 版本 1.11.0 +- libglvnd: 版本 1.7.0 +- libgpg-error: 版本 1.51 +- libgudev: 版本 238 +- libidn: 版本 1.42 +- libjpeg-turbo: 版本 3.1.0 +- liblogging:版本1.0.6 +- libmnl:版本 1.0.5 +- libnetfilter\_conntrack: 版本 1.1.0 +- libnfnetlink:版本 1.0.2 +- libnftnl: 版本 1.2.8 +- libnl3: 版本 3.11.0 +- libnvme: 版本 1.11.1 +- libpcap: 版本 1.10.5 +- libpciaccess: 版本 0.18.1 +- libpng: 版本 1.6.44 +- libpsl: 版本 0.21.5 +- libpthread-stubs: 版本 0.5 +- libseccomp: 版本 2.5.5 +- libssh: 版本 0.11.1 +- libssh2: 版本 1.11.1 +- libtasn1:版本 4.19.0 +- libtiff: 版本 4.7.0 +- libtirpc: 版本 1.3.6 +- libtpms:版本0.9.0 +- libunistring: 版本 1.3 +- libunwind: 版本 1.8.1 +- libusb: 版本 1.0.27 +- libusb-compat: 版本 0.1.8 +- libuv: 版本 1.49.2 +- libvirt: 版本 10.7.0 +- libvirt-php: 版本 0.5.8 +- libwebp: 版本 1.5.0 +- libwebsockets: 版本 4.3.2 +- libx86: 版本 1.1 +- libxcb: 版本 1.17.0 +- libxcvt: 版本 0.1.3 +- libxkbcommon: 版本 1.7.0 +- libxkbfile: 版本 1.1.3 +- libxml2: 版本 2.13.5 +- libxshmfence: 版本 1.3.3 +- libxslt: 版本 1.1.42 +- libzip: 版本 1.11.2 +- listres: 版本 1.0.6 +- lm\_sensors: 版本 3.6.0 +- lmdb: 版本 0.9.33 +- logrotate: 版本 3.22.0 +- lshw: 版本 B.02.19.2 +- lsof: 版本 4.99.4 +- lsscsi: 版本 0.32 +- lvm2: 版本 2.03.29 +- lz4: 版本 1.10.0 +- lzip: 版本 1.24.1 +- lzlib: 版本 1.14 +- lzo: 版本 2.10 +- mbuffer: 版本 20240107 +- mc:版本 4.8.31 +- mcelog: 版本 202 +- mesa: 版本 24.2.8 +- miniupnpc: 版本 2.1 +- mkfontscale: 版本 1.2.3 +- mpfr: 版本 4.2.1 +- mtdev: 版本 1.1.7 +- nano: 版本 8.3 +- ncompress: 版本 5.0 +- ncurses: 版本 6.5 +- net-tools: 版本 20181103\_0eebece +- nettle: 版本 3.10 +- network-scripts: 版本 15.1 +- nfs-utils: 版本 2.8.2 +- nghttp2: 版本 1.64.0 +- nghttp3: 版本 1.7.0 +- nginx: 版本 1.27.2 +- noto-fonts-ttf: 版本 2024.12.01 +- nss-mdns: 版本 0.14.1 +- ntfs-3g: 版本 2022.10.3 +- ntp: 版本 4.2.8p18 +- numactl: 版本 2.0.13 +- nvme-cli: 版本 2.11 +- oniguruma: 版本 6.9.9 +- openssh: 版本 9.9p1 +- openssl: 版本 3.4.0 +- ovmf: 版本 stable202411 +- p11-kit: 版本 0.25.5 +- pam: 版本 1.6.1 +- pango: 版本 1.54.0 +- patch: 版本 2.7.6 +- pciutils:版本 3.13.0 +- pcre: 版本 8.45 +- pcre2: 版本 10.44 +- perl: 版本 5.40.0 +- php: 版本 8.3.8 +- pixman: 版本 0.44.2 +- pkgtools:版本 15.1 +- procps-ng: 版本 4.0.4 +- pv: 版本 1.6.6 +- qemu: 版本 9.1.0 +- qrencode: 版本 4.1.1 +- readline: 版本 8.2.013 +- reiserfsprogs: 版本 3.6.27 +- rpcbind:版本 1.2.6 +- rsync: 版本 3.3.0 +- rsyslog: 版本 8.2102.0 +- sakura: 版本 3.5.0 +- samba: 版本 4.21.1 +- sdparm: 版本 1.12 +- sed: 版本 4.9 +- sessreg: 版本 1.1.3 +- setxkbmap: 版本 1.3.4 +- sg3\_utils: 版本 1.48 +- shadow: 版本 4.16.0 +- shared-mime-info: 版本 2.4 +- slim: 版本 1.3.6 +- smartmontools:版本 7.4 +- spice: 版本 0.15.0 +- spirv-llvm-translator: 版本 19.1.2 +- sqlite: 版本 3.46.1 +- ssmtp: 版本 2.64 +- startup-notification: 版本 0.12 +- sudo: 版本 1.9.16p2 +- swtpm: 版本 0.7.3 +- sysfsutils:版本 2.1.1 +- sysstat: 版本 12.7.6 +- sysvinit: 版本 3.12 +- sysvinit-scripts:版本 15.1 +- talloc: 版本 2.4.2 +- tar: 版本 1.35 +- tcp\_wrappers: 版本 7.6 +- tdb: 版本 1.4.12 +- telnet: 版本 0.17 +- tevent: 版本 0.16.1 +- traceroute: 版本 2.1.6 +- transset: 版本 1.0.4 +- tree: 版本 2.1.1 +- usbredir: 版本 0.8.0 +- usbutils: 版本 018 +- userspace-rcu: 版本 0.15.0 +- utempter: 版本 1.2.1 +- util-linux: 版本 2.40.2 +- vbetool: 版本 1.2.2 +- virtiofsd: 版本 1.11.1 +- vsftpd: 版本 3.0.5 +- vte3: 版本 0.50.2 +- wayland: 版本 1.23.1 +- wget: 版本 1.25.0 +- which: 版本 2.21 +- wireguard-tools: 版本 1.0.20210914 +- wqy-zenhei-font-ttf: 版本 0.8.38\_1 +- wsdd2: 版本 1.8.7 +- xauth: 版本 1.1.3 +- xcb-util: 版本 0.4.1 +- xcb-util-keysyms: 版本 0.4.1 +- xclock: 版本 1.1.1 +- xdpyinfo: 版本 1.3.4 +- xdriinfo: 版本 1.0.7 +- xev: 版本 1.2.6 +- xf86-input-evdev: 版本 2.11.0 +- xf86-input-keyboard: 版本 1.9.0 +- xf86-input-mouse: 版本 1.9.3 +- xf86-input-synaptics: 版本 1.9.2 +- xf86-video-ast: 版本 1.1.5 +- xf86-video-mga: 版本 2.1.0 +- xf86-video-vesa: 版本 2.6.0 +- xfsprogs: 版本 6.12.0 +- xhost: 版本 1.0.9 +- xinit: 版本 1.4.2 +- xkbcomp: 版本 1.4.7 +- xkbevd: 版本 1.1.6 +- xkbutils: 版本 1.0.6 +- xkeyboard-config: 版本 2.43 +- xkill: 版本 1.0.6 +- xload: 版本 1.2.0 +- xlsatoms: 版本 1.1.4 +- xlsclients: 版本 1.1.5 +- xmessage: 版本 1.0.7 +- xmodmap: 版本 1.0.11 +- xorg-server: 版本 21.1.15 +- xprop: 版本 1.2.8 +- xrandr: 版本 1.5.3 +- xrdb: 版本 1.2.2 +- xrefresh: 版本 1.1.0 +- xset: 版本 1.2.5 +- xsetroot: 版本 1.1.3 +- xsm: 版本 1.0.6 +- xterm: 版本 396 +- xtrans: 版本 1.5.2 +- xwd: 版本 1.0.9 +- xwininfo: 版本 1.1.6 +- xwud: 版本 1.0.7 +- xxHash: 版本 0.8.3 +- xz: 版本 5.6.3 +- yajl: 版本 2.1.0 +- zfs: 版本 2.2.7\_6.6.68\_Unraid +- zlib: 版本 1.3.1 +- zstd: 版本 1.5.6 + +## 补丁 + +安装 [Unraid Patch 插件](https://forums.unraid.net/topic/185560-unraid-patch-plugin/) 后,访问 ***工具 → Unraid Patch*** 获取以下补丁/紧急修复: + +- mover 未将名称中含空格的共享从阵列移动到池中 +- 文件管理器:允许访问 UD 远程共享 +- 共享列表:工具提示显示 `%20` 而不是空格 +- 虚拟机管理器:修正了 vDisk 上丢空丢弃字段的问题 +- 在诊断中包含已安装的补丁 + +注意:如果您安装了Mover Tuning 插件,系统将提示您重新启动以应用这些补丁。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md new file mode 100644 index 0000000000..403501b1eb --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.0.1.md @@ -0,0 +1,72 @@ +# 版本 7.0.1 2025-02-25 + +## 升级说明 + +这是一个安全和漏洞修复版本。它包括所有针对7.0.0版本提供的补丁。 + +此更新解决了在 Host 模式下运行 Tailscale 集成的容器并与其他用户共享时出现的安全问题。在此版本中,启动此类容器的功能已被禁用。要继续,请禁用 Host 模式下的容器 Tailscale 集成,或将网络类型更改为 Bridge 或 “Custom: eth0/bond0/br0”。 + +### 已知问题 + +有关已知问题,请参见[7.0.0 版本说明](7.0.0.md#known-issues)。 + +### 回滚 + +如果回滚到早于7.0.0的版本,请参阅[7.0.0发行说明](7.0.0.md#rolling-back)。 + +## 与 [7.0.0](7.0.0.md) 的更改 + +### 漏洞修复和改进 + +- Tailscale Docker 集成 + - 防止网络类型为“主机”的容器使用 Tailscale 集成,禁用在此配置中启动现有容器的能力(安全性) + - 防止新建网络类型为“容器”的容器使用 Tailscale 集成(侧车容器应具有 Tailscale,而不是主容器) + - 接受来自社区应用程序的默认Tailscale状态目录 + - 如果需要,安装 ca\_certificates + - 当启用 Tailscale 集成时,改进了**post 参数**处理,第一个 `;` 之前的所有内容会被传递到容器中,之后的所有内容在主机上执行 + - 注意:正在进行额外的改进,尤其是使用此集成来管理官方的 Tailscale 侧车容器的能力 +- Docker:隐藏由第三方管理的容器的更新状态 +- 修复了 nchan 内存泄漏的可能原因 +- 文件管理器:允许访问 UD 远程共享 +- 在早期启动期间检测到的 sd 设备数量从 8 增加到 16 +- 解决了用户在将某些btrfs池从6.12升级时遇到的 *错误池状态,无效扩展* 问题 +- 防止导入现有的 vfat 分区 +- 解决了试图启动定义但未分配的池的问题时发生的问题 +- 修复 mc 在 F10 退出时未保留 cwd +- 移动工具 + - mover 未将名称中含空格的共享从阵列移动到池中 + - mover 未正确处理硬链接 +- 虚拟机 + - 修复:无法启动/停止名称中含单引号的虚拟机 + - 修复:在某些条件下,创建虚拟机会创建一个以虚拟机名称命名的新共享 + - 修复 vDisk 上的空“丢弃”字段问题 +- 黑名单 `cdc_ether` 驱动程序以防止在某些主板上与 IPMI NIC 出现问题 + 若要重新启用此驱动程序,请 `touch /boot/config/modprobe.d/cdc_ether.conf` +- 降级至早期版本的 dhcpcd 以尝试解决某些用户遇到的 DHCP 问题 +- 共享列表:工具提示显示 `%20` 而不是空格 +- 在诊断中包含已安装的补丁 + +### Linux kernel + +- 版本 6.6.78 +- 修复:md/unraid 允许在只有 2 个奇偶校验而没有数据磁盘时启动 + +### 基本发行版 + +- bind:版本 9.20.5 (CVE-2024-12705 CVE-2024-11187) +- curl:版本 8.12.1 (CVE-2025-0725 CVE-2025-0665 CVE-2025-0167) +- dhcpcd:版本 9.5.3(从 v10.0.10 恢复) +- git:版本 2.48.1 (CVE-2024-50349 CVE-2024-52006) +- gnutls:版本 3.8.9 (CVE-2024-12243) +- libtasn1:版本 4.20.0 (CVE-2024-12133) +- libxml2:2.13.6 (CVE-2025-24928 CVE-2024-56171) +- mariadb:版本 11.4.5 (CVE-2025-21490) +- mc:版本 4.8.33 +- openssh:版本 9.9p2 (CVE-2025-26465 CVE-2025-26466) +- openssl:版本 3.4.1 +- rsync:版本 3.4.1 (CVE-2024-12084 CVE-2024-12085 CVE-2024-12086 CVE-2024-12087 CVE-2024-12088 CVE-2024-12084) +- ttyd:版本 20250129 + +## 补丁 + +当前版本没有可用补丁。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md new file mode 100644 index 0000000000..bfc04ef9e9 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.0.md @@ -0,0 +1,331 @@ +# 版本 7.1.0 2025-05-05 + +This release adds wireless networking, the ability to import TrueNAS and other foreign pools, multiple enhancements to VMs, early steps toward making the webGUI responsive, and more. + +## 升级 + +### 已知问题 + +此版本存在潜在的数据丢失问题,最近的"移动空盘"功能无法正确处理共享架构中的分级。已在7.1.2版本中修复。 + +#### 插件 + +Please upgrade all plugins, particularly Unraid Connect and the Nvidia driver. + +有关其他已知问题,请参阅[7.0.0 发行说明](7.0.0.md#known-issues)。 + +### 回滚 + +我们正在改进补丁在各版本间的分发方式,因此本版本中将卸载独立补丁插件。如果回滚到早期版本,建议重新安装该插件。更多详情待发布。 + +如果回滚到早于7.0.0的版本,请参阅[7.0.0发行说明](7.0.0.md#rolling-back)。 + +## 更改 vs. [7.0.1](7.0.1.md) + +### 存储 + +- Import foreign ZFS pools such as TrueNAS, Proxmox, Ubuntu, QNAP. +- 导入磁盘上最大的分区而不是第一个。 +- Removing device from btrfs raid1 or zfs single-vdev mirror will now reduce pool slot count. + +#### 其他存储更改 + +- 修正:仪表板不显示禁用的磁盘。 +- 修正:添加自定义盘片设置后,最初仅第一个池设备停止旋转。 +- 修复:仅有 2 个奇偶校验设备而无数据设备时允许数组启动。 +- 修正:奇偶校验检查通知经常显示了先前的奇偶校验检查而不是当前的。 +- 修复:升级时解决某些情况下\_错误的池状态。太多错误或缺失设备\_的问题。 +- Fix: Not possible to replace a zfs device from a smaller vdev. +- 移动器: + - 修正:解决了旧的share.cfg文件阻止移动程序运行的问题。 + - 修复:如果父目录不存在,则移动程序无法重新创建硬链接。 + - 修正:移动程序会卡在命名管道上。 + - 修正:[使用移动程序清空阵列磁盘](7.0.0.md#using-mover-to-empty-an-array-disk)现在只移动具有相应share.cfg文件的顶级文件夹,还修复了一个bug,无法显示\_未移动的文件\_列表。 + +### 网络 + +#### 无线网络 + +Unraid 现在支持WiFi!通常更倾向于有线连接,但如果对您的情况不可能,现在可以设置WiFi。 + +初始化设置时,您需要一个本地键盘/显示器(进入GUI模式),或使用有线连接。未来,USB Creator将能够在首次启动之前配置无线网络。 + +- Access the webGUI and visit ***Settings → Network Settings → Wireless wlan0*** + - 首先,启用WiFi + - **法规区域**通常可以留为**自动**,但如果想要连接的网络不可用,则设置为您的位置。 + - 找到您首选的网络并单击**连接到WiFi网络**图标 + - 填写您的WiFi密码和其他设置,然后按**加入此网络** + - 注意:如果您的目标是通过WiFi使用Docker容器,请在启动Docker之前拔下任何有线连接 + +附加细节 + +- 支持WPA2/WPA3和WPA2/WPA3企业版,如果同时可用WPA2和WPA3,则使用WPA3。 +- 长期使用时不建议同时使用有线和无线连接,应选择其一。但如果两个连接都使用DHCP且您在配置了无线后插拔网络电缆,系统(不包括Docker)应在45至60秒内调整。 +- 无线芯片组支持:预计可以成功使用现代WiFi适配器,但旧款适配器可能无法工作。如果WiFi适配器未被检测到,请启动一个新帖子并提供诊断信息以进行调查。 +- 如果想使用USB WiFi适配器,请参阅此[支持Linux内核驱动的USB WiFi适配器列表](https://github.com/morrownr/USB-WiFi/blob/main/home/USB_WiFi_Adapters_that_are_supported_with_Linux_in-kernel_drivers.md) +- 高级:将新的固件文件放置在`/boot/config/firmware/`中,将在加载驱动程序模块前复制到`/lib/firmware/`中(现有文件不会被覆盖)。 + +限制:使用无线时有网络限制,因为wlan只能有一个mac地址。 + +- 仅支持一个无线NIC,wlan0 +- wlan0无法参与bond +- Docker容器 + - 在\_**设置→Docker**\_,注意启用无线时,系统将忽略**Docker自定义网络类型**设置并始终使用**ipvlan**(不能使用macvlan,因为无线不支持单个接口上的多个mac地址) + - ***设置→Docker***,**主机访问自定义网络**必须禁用 + - Docker容器的**网络类型**不能使用br0/bond0/eth0 + - Docker存在不能参与共享同一子网的两个网络的限制。如果在有线和无线之间切换,您需要重启Docker并重新配置所有现有容器以使用新接口。建议设置有线或无线中的一种并不进行切换。 +- 虚拟机 + - 建议将虚拟机的**网络来源**设置为**virbr0**,在此模式下可以运行无限数量的虚拟机。虚拟机将拥有完整的网络访问权限,但缺点是无法从网络访问。您仍然可以通过VNC访问主机。 + - 通过一些手动配置,一个虚拟机可以在网络上访问: + - 为虚拟机分配静态IP地址 + - 在ipvtap界面上配置相同的IP地址,类型:`ip addr add IP-地址 dev shim-wlan0` + +#### 其他网络更改 + +- 在\_**设置 → 网络设置**\_,现在无需先停止其他服务便可调整服务器的DNS设置。请查看**eth0**部分的顶部。 +- 配置网络接口时,每个接口都有一个**信息**按钮显示当前连接的详细信息。 +- 配置网络接口时,**期望的MTU**字段默认禁用,直到点击**启用巨型帧**。将鼠标悬停在图标上可查看更改MTU的警告,大多数情况下应保持默认设置。 +- 配置多个网络接口时,默认情况下,其他接口的网关将被禁用,这是适用于大多数需要单网关的网络的安全默认设置。如果启用了额外的网关,它将被赋予比现有网关更高的优先级,以避免冲突。根据需要可进行覆盖。 +- 当您保存更改到\_**设置→网络设置**\_时,旧的网络接口将从配置文件中自动移除。 +- 修正各种DHCP问题。 + +### VM管理器 + +#### Nouveau GPU驱动 + +默认情况下包含Nvidia显卡的Nouveau驱动程序,但大多数用户可能更希望使用Nvidia驱动程序。要启用,需卸载Nvidia驱动程序插件并运行`touch /boot/config/modprobe.d/nouveau.conf`,然后重新启动。 + +#### VirGL + +现在可以使用VirGL在多个Linux虚拟机之间共享Intel和AMD显卡,VirGL是虚拟3D OpenGL渲染器。当以这种方式使用时,GPU将提供加速的图形,但不会在显示器上输出。请注意,这尚不适用于Windows虚拟机或标准Nvidia插件(但可在使用Nouveau驱动程序的Nvidia显卡上运行)。 + +要在Linux虚拟机中使用虚拟GPU,请编辑虚拟机模板,将**显卡**设置为**虚拟**。然后将**VM控制台视频驱动程序**设置为**Virtio(3d)**,并从可用的GPU列表中选择合适的**渲染GPU**。(注意,绑定到VFIO-PCI或传递给其他虚拟机的GPU不能在此处选择,Nvidia显卡仅在启用Nouveau驱动程序时可用。) + +#### QXL虚拟GPU + +要在虚拟机中使用此功能,编辑虚拟机模板并将**显卡**设置为**虚拟**,将**虚拟机控制台视频驱动程序**设置为**QXL (最佳)**,然后您可以选择支持的屏幕数量以及分配给它的内存大小。 + +#### CPU固定是可选的 + +CPU固定现在是可选的,如果没有将内核固定到虚拟机,则操作系统选择使用哪个内核。 + +在\_**设置→CPU设置**\_中或编辑虚拟机时,按**取消全选**取消固定此虚拟机的所有核心,并将vCPU数量设置为1,按需增加。 + +### 用户虚拟机模板 + +创建用户模板: + +- 编辑虚拟机,选择**创建修改模板**并命名。它将以**用户模板**的形式存储在**添加虚拟机**屏幕中。 + +使用用户模板: + +- 从虚拟机列表中,按**添加虚拟机**,然后从**用户模板**区域中选择模板。 + +导入/导出 + +- 在**添加虚拟机**页面上,将鼠标悬停在用户模板上,单击箭头将模板导出到服务器上的位置或下载它。 +- 在另一台 Unraid 系统上,使用 **从文件导入** 或 **上传** 来使用模板。 + +#### 其他虚拟机更改 + +- 当 **Primary** GPU 被分配为虚拟机的直通时,警告其可能无法在不加载兼容的 vBIOS 时运行。 +- 修正:当设置虚拟机服务时,移除误导的\_路径不存在\_消息 +- Feat: Unraid VMs can now boot into GUI mode, when using the QXL video driver +- 修正:使用XML视图时无法更改虚拟机图标 + +### WebGUI + +#### CSS更改 + +为让webGUI响应更好,我们重做了CSS。除了一些细微的颜色调整外,这在大多数情况下不应引起注意。我们预计大多数插件也能正常工作,尽管插件作者可能希望查看[此文档](https://github.com/unraid/webgui/blob/master/emhttp/plugins/dynamix/styles/themes/README.md)。未来版本将继续改善响应性。 + +如果您在任何官方主题中注意到对齐问题或颜色问题,请告知我们。 + +#### nchan共享内存问题 + +我们进行了几项更改以预防此问题,并且如果检测到问题发生,我们将重新启动 nginx 以尝试自动恢复。 + +If your Main page never populates, or if you see "nchan: Out of shared memory" in your logs, please start a new forum thread and provide your diagnostics. You can optionally navigate to ***Settings → Display Settings*** and disable **Allow realtime updates on inactive browsers**; this prevents your browser from requesting certain updates once it loses focus. When in this state you will see a banner saying **Live Updates Paused**, simply click on the webGUI to bring it to the foreground and re-enable live updates. Certain pages will automatically reload to ensure they are displaying the latest information. + +#### WebGUI 其他更改 + +- 修正:广告拦截器可能会阻止仪表板加载。 +- 修正:在某些情况下,仪表板上的浏览器内存使用率可能会成倍增长。 +- 修正:防止损坏的配置文件破坏仪表板。 + +## 其他 + +### 其他更改 + +- 在\_**设置→日期和时间**\_您现在可以使用**PTP**服务器同步时钟(我们预计大多数用户会继续使用**NTP**) +- 升级到jQuery 3.7.1和jQuery UI 1.14.1 +- 修正:访问boot.php将不再关闭服务器 +- 修正:在Docker选项卡上,最后一个容器的下拉菜单在某些情况下被截断 +- Fix: On ***Settings → Docker***, deleting a **Docker directory** stored on a ZFS volume now works properly +- 修正:启动时,自定义ssh配置从`/boot/config/ssh/`复制到`/etc/ssh/` +- 修正:文件管理器可以将文件从用户共享复制到未分配的磁盘挂载点 +- 修正:删除Docker服务时的误导性\_路径不存在\_消息 +- 修正:更新`rc.messagebus`以更正`/etc/machine-id`的处理 +- 诊断 + - 修正:提高诊断中IPv6地址的匿名化 + - 修正:提高诊断中某些配置文件的用户名匿名化 + - 修正:诊断可能因syslog中的多字节字符串而失败 + - 功能:诊断现在记录错误在logs/diagnostics.error.log中记录 + +### Linux kernel + +- 版本 6.12.24-Unraid + - 应用:\[补丁] [还原 "PCI: 在通过sysfs禁用时避免重置"](https://lore.kernel.org/lkml/20250414211828.3530741-1-alex.williamson@redhat.com/) + - CONFIG\_NR\_CPUS:从256增加到512 + - CONFIG\_TEHUTI\_TN40:Tehuti Networks TN40xx 10G以太网适配器 + - CONFIG\_DRM\_XE:Intel Xe图形 + - CONFIG\_UDMABUF:用户空间dmabuf杂项驱动程序 + - CONFIG\_DRM\_NOUVEAU:Nouveau(NVIDIA)显卡 + - CONFIG\_DRM\_QXL:QXL虚拟GPU + - CONFIG\_EXFAT\_FS:exFAT文件系统支持 + - CONFIG\_PSI:压力坍塌信息跟踪 + - CONFIG\_PSI\_DEFAULT\_DISABLED:需要启动参数启用压力坍塌信息跟踪,即`psi=1` + - CONFIG\_ENCLOSURE\_SERVICES:机箱服务 + - CONFIG\_SCSI\_ENCLOSURE:SCSI机箱支持 + - CONFIG\_DRM\_ACCEL:计算加速框架 + - CONFIG\_DRM\_ACCEL\_HABANALABS:HabanaLabs人工智能加速器 + - CONFIG\_DRM\_ACCEL\_IVPU:Intel神经处理单元(NPU) + - CONFIG\_DRM\_ACCEL\_QAIC:Qualcomm云AI加速器 + - zfs: 版本 2.3.1 + +- 无线支持 + - Atheros/高通 + - 博通 + - 英特尔 + - Marvell + - Microtek + - Realtek + +### 基础发行版更新 + +- aaa\_glibc-solibs:版本2.41 +- adwaita-icon-theme: 版本 48.0 +- at-spi2-core: 版本 2.56.1 +- bind: 版本 9.20.8 +- btrfs-progs: 版本 6.14 +- ca-certificates: 版本 20250425 +- cairo: 版本 1.18.4 +- cifs-utils: 版本 7.3 +- coreutils: 版本 9.7 +- dbus: 版本 1.16.2 +- dbus-glib: 版本 0.114 +- dhcpcd: 版本 9.5.2 +- diffutils: 版本 3.12 +- dnsmasq: 版本 2.91 +- docker: 版本 27.5.1 +- e2fsprogs: 版本 1.47.2 +- elogind: 版本 255.17 +- elfutils: 版本 0.193 +- ethtool: 版本 6.14 +- firefox: 版本 128.10 (AppImage) +- floppy: 版本 5.6 +- fontconfig: 版本 2.16.2 +- gdbm: 版本 1.25 +- git: 版本 2.49.0 +- glib2: 版本 2.84.1 +- glibc: 版本 2.41 +- glibc-zoneinfo: 版本 2025b +- grep: 版本 3.12 +- gtk+3: 版本 3.24.49 +- gzip: 版本 1.14 +- harfbuzz: 版本 11.1.0 +- htop: 版本 3.4.1 +- icu4c: 版本 77.1 +- inih: 版本 60 +- 英特尔微码: 版本 20250211 +- iperf3: 版本 3.18 +- iproute2: 版本 6.14.0 +- iw: 版本 6.9 +- jansson: 版本 2.14.1 +- kernel-firmware:版本20250425\_cf6ea3d +- kmod: 版本 34.2 +- less: 版本 674 +- libSM: 版本 1.2.6 +- libX11: 版本 1.8.12 +- libarchive: 版本 3.7.8 +- libcgroup: 版本 3.2.0 +- libedit:版本20250104\_3.1 +- libevdev: 版本 1.13.4 +- libffi: 版本 3.4.8 +- libidn: 版本 1.43 +- libnftnl: 版本 1.2.9 +- libnvme: 版本 1.13 +- libgpg-error: 版本 1.55 +- libpng: 版本 1.6.47 +- libseccomp: 版本 2.6.0 +- liburing: 版本 2.9 +- libusb: 版本 1.0.28 +- libuv: 版本 1.51.0 +- libvirt: 版本 11.2.0 +- libXft: 版本 2.3.9 +- libxkbcommon: 版本 1.9.0 +- libxml2: 版本 2.13.8 +- libxslt: 版本 1.1.43 +- libzip: 版本 1.11.3 +- linuxptp: 版本 4.4 +- lvm2: 版本 2.03.31 +- lzip: 版本 1.25 +- lzlib: 版本 1.15 +- mcelog: 版本 204 +- mesa: 版本 25.0.4 +- mpfr: 版本 4.2.2 +- nano: 版本 8.4 +- ncurses:版本6.5\_20250419 +- nettle: 版本 3.10.1 +- nghttp2: 版本 1.65.0 +- nghttp3: 版本 1.9.0 +- noto-fonts-ttf: 版本 2025.03.01 +- nvme-cli: 版本 2.13 +- oniguruma: 版本 6.9.10 +- openssh: 版本 10.0p1 +- openssl: 版本 3.5.0 +- ovmf: 稳定版 202502 +- pam: 版本 1.7.0 +- pango: 版本 1.56.3 +- parted: 版本 3.6 +- patch: 版本 2.8 +- pcre2: 版本 10.45 +- perl: 版本 5.40.2 +- php: 版本 8.3.19 +- procps-ng: 版本 4.0.5 +- qemu: 版本 9.2.3 +- rsync: 版本 3.4.1 +- samba: 版本 4.21.3 +- shadow: 版本 4.17.4 +- spice: 版本 0.15.2 +- spirv-llvm-translator: 版本 20.1.0 +- sqlite: 版本 3.49.1 +- sysstat: 版本 12.7.7 +- sysvinit: 版本 3.14 +- talloc: 版本 2.4.3 +- tdb: 版本 1.4.13 +- tevent: 版本 0.16.2 +- tree: 版本 2.2.1 +- userspace-rcu: 版本 0.15.2 +- utempter: 版本 1.2.3 +- util-linux: 版本 2.41 +- virglrenderer: 版本 1.1.1 +- virtiofsd: 版本 1.13.1 +- which: 版本 2.23 +- 无线-regdb: 版本 2025.02.20 +- wpa\_supplicant:版本2.11 +- xauth: 版本 1.1.4 +- xf86-input-synaptics: 版本 1.10.0 +- xfsprogs: 版本 6.14.0 +- xhost: 版本 1.0.10 +- xinit: 版本 1.4.4 +- xkeyboard-config: 版本 2.44 +- xorg-server: 版本 21.1.16 +- xterm: 版本 398 +- xtrans: 版本 1.6.0 +- xz: 版本 5.8.1 +- zstd: 版本 1.5.7 + +## 补丁 + +当前版本没有可用补丁。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md new file mode 100644 index 0000000000..ab19670416 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.1.md @@ -0,0 +1,33 @@ +# 版本 7.1.1 2025-05-08 + +这是一个小规模发布,包含更新的 OVMF 固件版本,该版本回滚了[提交](https://github.com/tianocore/edk2/commit/efaa102d00),以解决某些虚拟机(例如 Fedora、Debian、Rocky 和其他基于 CentOS 的发行版)无法启动的问题。另见[此讨论](https://github.com/tianocore/edk2/issues/10883)。 + +## 升级 + +### 已知问题 + +此版本存在潜在的数据丢失问题,最近的"移动空盘"功能无法正确处理共享架构中的分级。已在7.1.2版本中修复。 + +有关其他已知问题,请参阅[7.1.0 版本说明](7.1.0.md#known-issues)。 + +### 回滚 + +请参阅 [7.1.0 发行说明](7.1.0.md#rolling-back). + +## 相对于 [7.1.0](7.1.0.md) 的更改 + +### VM管理器 + +- 修复:包括更新的 OVMF 固件,以解决阻止某些虚拟机启动的问题 + +### Linux kernel + +- 版本 6.12.24-Unraid (无更改) + +### 基础发行版更新 + +- ovmf: 版本 unraid202502 + +## 补丁 + +当前版本没有可用补丁。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md new file mode 100644 index 0000000000..f5c45985b0 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.2.md @@ -0,0 +1,29 @@ +# 版本 7.1.2 2025-05-11 + +这是一个小但非常重要的版本,它解决了7.1.0和7.1.1中潜在的数据丢失问题,在这些版本中,最近的"空磁盘移动"功能未能正确处理共享中的拆分级别。 + +它还解决了一个较小的问题,即常规移动功能在移动文件时忽略了拆分级别。 + +## 升级 + +### 已知问题 + +请参阅[7.1.0版本说明](7.1.0.md#known-issues)。 + +### 回滚 + +请参阅 [7.1.0 发行说明](7.1.0.md#rolling-back). + +## 与[7.1.1](7.1.1.md)的变化 + +### 存储 + +- 修复:"空磁盘移动"未能正确处理共享中的拆分级别 + +### Linux kernel + +- 版本 6.12.24-Unraid (无更改) + +## 补丁 + +当前版本没有可用补丁。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md new file mode 100644 index 0000000000..93068dedda --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.3.md @@ -0,0 +1,50 @@ +# 版本 7.1.3 2025-06-04 + +这是一个小的漏洞修复和安全更新版本。 + +## 升级 + +### 已知问题 + +- 一些用户在此版本中遇到网络问题,请升级到 [7.1.4](7.1.4.md) +- 请参阅 [7.1.0 发行说明](7.1.0.md#known-issues). + +### 回滚 + +请参阅 [7.1.0 发行说明](7.1.0.md#rolling-back). + +## 与 [7.1.2](7.1.2.md) 的变化 + +### 网络 + +- 修复: 允许静态 IP 分配与无线共存 +- 修复: 改进自动指标分配 +- 修复: 改进接口的 IP 选择 + +### Docker + +- 修复: 允许 Docker 主机访问无线接口 +- 修复: 修复有时未创建 shim-br0 接口,可能导致主机访问 br0 上的自定义网络出现问题 + +### 存储 + +- 修复: 移动程序: 删除在清空包含硬链接的磁盘后可能遗留的空目录 +- 修复: 直接获取分区号和分区方案,而不是使用 'lsblk' 命令 +- 修复: /mnt/user0/sharename 有时不遵循共享分配方法 + +### webGUI + +- 修复: 加密密码短语有时不正确 +- 修复: 允许 Docker 上下文菜单在上面或下面 + +### Linux kernel + +- 版本 6.12.24-Unraid (无更改) + +### 基础发行版更新 + +- curl-8.14.0-x86\_64-1 (CVE-2025-5025 CVE-2025-4947) + +## 补丁 + +当前版本没有可用补丁。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md new file mode 100644 index 0000000000..a65737a11d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.1.4.md @@ -0,0 +1,51 @@ +# 版本 7.1.4 2025-06-18 + +这是一个主要集中于网络问题的错误修复版本。 + +## 升级 + +### 已知问题 + +请参阅 [7.1.0 发行说明](7.1.0.md#known-issues). + +### 回滚 + +请参阅 [7.1.0 发行说明](7.1.0.md#rolling-back). + +## 与 [7.1.3](7.1.3.md) 的变化 + +### 网络 + +- 修正:恢复自动指标分配的改善 +- 修正:防止接口监控脚本在某些情况下删除默认路由 +- 修正:确保禁用的默认路由不被使用 + +### Docker + +- 修正:不要将 Docker 子网限制为 /25 +- 修正:当有更好的可用时,不显示 APIPA IP +- 注意:如果具有静态IP地址的Docker容器无法启动,请编辑容器并查看分配的IP地址。 + IP必须包含在列出的子网之一中。子网定义在\_**设置 → Docker设置**\_中。 + +### 虚拟机 + +- 修正:缺少自定义 virbr 接口 +- 修正:每当选择不同的接口时,MAC 分配都会重新生成 + +### 存储 + +- 修正:挂载 BTRFS 和 XFS 驱动器时遵循 **自动修剪** 设置 + +### webGUI + +- 修正:文件管理器:修复当作业最小化时底部缺少的图标 +- 修正:文件管理器:移动文件时尊重 **覆盖现有文件** 设置 +- 修正:防止阵列启动时更改池的压缩/自动修剪设置 + +### Linux kernel + +- 版本 6.12.24-Unraid (无更改) + +## 补丁 + +当前版本没有可用补丁。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md new file mode 100644 index 0000000000..9a83a83a8d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/7.2.0.md @@ -0,0 +1,282 @@ +# 版本 7.2.0-rc.1 2025-10-01 + +Unraid 的 webGUI 现在具有响应能力!界面能够自动适应不同的屏幕尺寸,使其在移动设备、平板电脑和桌面显示器上可用。Unraid API 现已集成,此版本还带来 RAIZ 扩展、Ext2/3/4、NTFS 和 exFAT 支持,以及通过 SSO 登录到 webGUI 的(可选)功能,另外还进行了其他功能和错误修复。 + +请注意,此版本中某些插件可能会出现视觉问题;请给予插件作者时间进行调整。插件作者请参阅这篇文章了解[如何更新插件以使其响应式](https://forums.unraid.net/topic/192172-responsive-webgui-plugin-migration-guide/)。 + +## 升级 + +有关分步说明,请参阅[升级 Unraid](../../unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx)。 + +### 已知问题 + +#### 插件 + +Theme Engine、Dark Theme 和 Dynamix Date Time 插件不兼容将自动卸载,Unraid Connect 过时版本亦然。 + +请升级所有插件,特别是 Unraid Connect 和 Nvidia 驱动程序,然后再进行更新。 +请注意,此版本中某些插件可能会出现视觉问题;请给予插件作者时间进行调整。 + +对于其他已知问题,请参阅 [7.1.4 发行说明](7.1.4.md#known-issues)。 + +### 回滚 + +如果回滚到早于 7.1.4 的版本,也请参阅 [7.1.4 发行说明](7.1.4.md#rolling-back)。 + +## 变更对比 [7.1.4](7.1.4.md) + +### 存储 + +#### ZFS RAIDZ 扩展 + +您现在可以通过一次一个驱动器扩展单个 vdev 的 RAIDZ1/2/3 池: + +- 在 ***Main → Pool Devices*** 上,选择池名称以查看详细信息 +- 在**池状态**区域,检查是否有**升级池**按钮。如果存在,您需要在继续之前点击该按钮。注意,升级池会限制您降级到较早版本的 Unraid 的能力(7.1 应该可以,但 7.0 不适用)。 +- 停止阵列 +- 在 ***Main → Pool Devices*** 上,向池添加一个插槽 +- 选择合适的驱动器(至少要与池中最小的驱动器一样大) +- 启动阵列 + +#### 增强功能 + +- 修复:如果池需要首先升级,现在将有“无效扩展”警告。 +- 改进:为 ZFS RAIDZ vdev 提供更好的默认设置。 + +#### Ext2/3/4、NTFS 和 exFAT 支持 + +Unraid 现在支持除了 XFS、BTRFS 和 ZFS 外的 Ext2/3/4、NTFS 和 exFAT 驱动器格式。 + +用例:假设您是一位内容创作者,拥有一个装满硬盘的箱子,其中包含您所有的历史视频。在第一次创建阵列时(或运行 ***工具 → 新配置*** 后),将所有现有的数据驱动器(空白或具有受支持的驱动器格式的数据)添加到阵列中。任意奇偶校验驱动器将被覆盖,但数据驱动器将保留其数据。您可以享受奇偶校验保护,将其共享到网络中,并充分利用 Unraid 的所有功能。 + +重要注意:您可以继续将已填满的数据驱动器添加到阵列中,直到您开始启用校验盘。当校验盘被添加后,任何新的数据驱动器在添加到阵列时将被清零。 + +为澄清,Unraid 一直以来都这样工作,新的之处在于现在 Unraid 支持额外的磁盘格式。 + +此外,您也可以使用新格式创建单驱动器池。 + +- 改进了 **File System Type** 下拉菜单的可用性,因为可用选项的列表正在增加 + +#### 警告:即将弃用的文件系统 + +主页面现在会警告任何使用 ReiserFS 格式化的阵列或池驱动器,这些驱动器在未来的 Unraid 版本(很可能是 Unraid 7.3)中将无法使用,需尽快迁移到其他文件系统。同样地,如果驱动器使用不推荐版本的 XFS 格式化,将会被警告,这些驱动器需要在 2030 年之前迁移。详情请参阅文档中的[转换为新文件系统类型](../using-unraid-to/manage-storage/file-systems.mdx#converting-to-a-new-file-system-type)。 + +#### 其他存储更改 + +- 改进:默认情况下,两个设备的 ZFS 池是镜像的,但如果您计划将来扩展该 vdev,则可以将其设置为 RAIDZ1 +- 改进:在 **DeviceInfo** 页面添加**文件系统状态**,显示驱动器是已挂载/卸载及是否为空 +- 修复:主页面上两个资源池名称相似时的显示问题 +- 修复:[glibc bug](https://github.com/openzfs/zfs/issues/17629) 可能导致 ZFS 数据丢失 +- 修复:BTRFS 阵列磁盘中有多个文件系统签名无法挂载的问题 +- 修复:解决了与现有 1MiB 对齐分区的奇偶校验磁盘相关的问题 +- 修复:停止阵列时,不再尝试在未挂载的阵列设备上执行 'umount' +- 改进:独占共享可以选择用于 NFS 导出 +- 改进:不允许共享使用 `homes`、`global` 和 `printers` 命名(这些在 Samba 中具有特殊意义) +- 修复:正确处理大小写不敏感的共享名称 +- 修复:名称中含有非法字符的共享无法删除或修改的问题 +- 修复:改进读取/写入 SMB 安全设置 + +### 网络 + +#### 其他网络更改 + +- 功能:IPv6 Docker 自定义网络现在支持本地唯一地址(ULA),除此之外,还支持更多标准的全球单播地址(GUA),前提是您的路由器在 Unraid 主机通过 DHCP 或 SLAAC 获取 IPv6 地址时提供了两个子网。要使用,请为容器从相应子网分配一个自定义静态 IP。 +- 修复:***Settings → Network Settings → Interface Rules*** 页面有时显示错误的网卡驱动程序(仅是显示问题) + +### VM管理器 + +- 功能:保存 PCI 硬件数据,当被虚拟机使用的硬件更改时发出警告 +- 功能:支持虚拟机中的虚拟声卡 + +#### 其他虚拟机更改 + +- 改进:增强多监视器支持,在需要时自动启用 spicevmc +- 功能:升级到 noVNC v1.6 +- 移除历史 OpenElec 和 LibreElec 虚拟机模板 +- 修复:禁用用户共享时,虚拟机控制台无法工作 +- 修复:不允许在域存储路径中使用单引号 + +### Unraid API + +Unraid API 现已内置于 Unraid!新的通知面板是使用它的第一个主要功能,随着时间的推移,整个 webGUI 都将使用它。 + +Unraid API 完全开源:[https://github.com/unraid/api](https://github.com/unraid/api)。在 [API 文档](../../API/index.mdx)中开始。 + +Unraid Connect 插件添加了与我们云服务器通信的功能,它仍是完全可选的。 + +#### Unraid API 其他更改 + +- dynamix.unraid.net 4.25.2 - [查看更改](https://github.com/unraid/api/releases) + +### WebGUI + +#### 响应式 CSS + +Unraid 的 webGUI 现已响应式!大多数屏幕在手机上应像在桌面显示器上一样运作良好。 + +#### 通过 SSO 登录 WebGUI + +使用 Single Sign‑On (SSO) 通过 Unraid.net 账户或任何其他遵循 OIDC 的提供商登录 Unraid WebGUI。有关此\_可选\_功能的详细信息,请参阅文档中[OIDC 提供商设置](../../API/oidc-provider-setup.mdx)。 + +#### WebGUI 其他更改 + +- 功能:添加新的通知管理视图,通过 webGUI 的右上角铃铛图标访问 +- 功能:在 Docker / 插件 / 虚拟机弹出窗口中添加进度指示器 +- 功能:当因多次登录失败导致锁定,登录页面上显示倒计时计时器 +- 功能:添加 *Force Install* 按钮,在手动安装插件时绕过版本检查 +- 功能:添加\_**工具 → 打开终端***页面;可以通过搜索“终端”访问。可以选择通过***设置 → 显示设置 → 在标题中显示终端按钮**\_从工具栏中移除终端按钮。 +- 功能:***用户 → Root → SSH 授权密钥*** 现在支持更多格式(感谢 [wandercone](https://github.com/wandercone)) +- 功能:为新系统添加欢迎屏,在设置 root 密码后显示 +- 修复:再次启用智能测试按钮在测试完成后 +- 修复:当 dynamix.cfg 损坏时,防止 webGUI 崩溃并记录任何问题 +- 修复:`blob:` 链接不应被视为外部链接 +- 功能:仪表盘上可区分 Intel E-Cores 和 P-Cores +- 功能:仪表盘现在从 Unraid API 获取 CPU 使用情况统计数据 +- 修复:仪表盘上报告的 RAM 超过 1TB 未正确显示 +- 任务:更改仪表盘上的图表库 +- 修复:防止在启动阵列时 Firefox 弹出重新发送/取消弹窗 +- 修复:文件管理器:失败时停止旋转并显示错误(感谢 [poroyo](https://github.com/poroyo)) +- 功能:加速插件和 Docker 页面的渲染速度 +- 修复:防止在更改日志中点击外部链接时出现问题 + +## 其他 + +- 功能:在安全模式下不执行 `go` 脚本,必要时创建 `/boot/config/go.safemode` 脚本 +- 改进:在 `http://localhost` 上要求身份验证。这提高了安全性,并允许 Tailscale Funnel 在 webGUI 上运行。注意,在引导到 GUI 模式时,您现在需要再次登录以访问 webGUI。 +- 功能:添加 favicon 和 web 应用程序清单支持 +- 功能:许可证密钥升级会自动安装,无需重新启动阵列 +- 功能:连接时雷电设备将自动授权 +- 功能:改善自定义 udev 规则和脚本,在启动时: + - `/boot/config/udev/*.rules` 被复制到 `/etc/udev/rules.d/` + - `/boot/config/udev/*.sh` 被复制到 `/etc/udev/scripts/`,可以由您自定义的 udev 规则使用 +- 修复:移除不工作的 ipv6.hash.myunraid.net URL 支持 +- 修复:启用 IPv6 时自定义 Docker 网络创建失败 +- 修复:解决由于 nchan 和 lsof 引起的高 CPU 负载问题 +- 改进:删除在非活动浏览器上禁用实时更新的选项,应该不再需要 +- 改进:有关 mover 和“悬空链接”的更好消息 +- 修复:安装插件时,防止与 *searchLink* 相关的错误 +- 修复:导入 WireGuard 隧道时出现的 PHP 警告 +- 改进:*Europe/Kiev* 时区重命名为 *Europe/Kyiv* ,以与 IANA 时区数据库保持一致 +- 改进:增强 Discord 通知代理;启用/禁用代理以获取更新(感谢 [mgutt](https://github.com/mgutt)) + +### 其他更改 + +### Linux kernel + +- 版本 6.12.47-Unraid + - 内置:CONFIG\_EFIVAR\_FS:EFI 变量文件系统 + - CONFIG\_INTEL\_RAPL:通过 MSR 接口支持 Intel RAPL + - CONFIG\_NLS\_DEFAULT:更改为 "utf8" 而非 "iso8859-1" + - 添加 eMMC 支持: + - CONFIG\_MMC:MMC/SD/SDIO 卡支持 + - CONFIG\_MMC\_BLOCK:MMC 块设备驱动程序 + - CONFIG\_MMC\_SDHCI:安全数字主机控制器接口支持 + - CONFIG\_MMC\_SDHCI\_PCI:PCI 总线上的 SDHCI 支持 + - CONFIG\_MMC\_SDHCI\_ACPI:ACPI 枚举 SDHCI 控制器的 SDHCI 支持 + - CONFIG\_MMC\_SDHCI\_PLTFM:SDHCI 平台和 OF 驱动程序助手 + +### 基础发行版更新 + +- aaa\_glibc-solibs:版本 2.42 +- adwaita-icon-theme:版本 48.1 +- at-spi2-core:版本 2.56.4 +- bash:版本 5.3.003 +- bind:版本 9.20.13 +- btrfs-progs:版本 6.17 +- ca-certificates:版本 20250812 +- cifs-utils:版本 7.4 +- coreutils:版本 9.8 +- cryptsetup:版本 2.8.1 +- curl:版本8.16.0 +- e2fsprogs:版本 1.47.3 +- ethtool:版本 6.15 +- exfatprogs:版本 1.2.9 +- fontconfig:版本 2.17.1 +- freetype:版本2.14.0 +- gdbm:版本 1.26 +- gdk-pixbuf2:版本2.44.2 +- git:版本 2.51.0 +- glib2:版本 2.86.0 +- glibc:版本 2.42 (构建 2) +- gnutls:版本 3.8.10 +- grub:版本 2.12 +- gtk+3:版本 3.24.50 +- harfbuzz: 版本 12.0.0 +- intel-microcode:版本20250812 +- iproute2:版本 6.17.0 +- inih:版本 61 +- inotify-tools:版本 4.25.9.0 +- iputils:版本 20250605 +- iw: 版本 6.17 +- json-glib:版本 1.10.8 +- kbd: 版本 2.9.0 +- kernel-firmware:版本 20250924\_1269106 +- krb5: 版本 1.22.1 +- less:版本 679 +- libXfixes: 版本 6.0.2 +- libXpresent:版本 1.0.2 +- libXres:版本 1.2.3 +- libarchive:版本 3.8.1 +- libdrm:版本 2.4.125 +- libffi:版本 3.5.2 +- libgcrypt:版本 1.11.2 +- libjpeg-turbo:版本 3.1.2 +- libnftnl:版本 1.3.0 +- libnvme:版本 1.15 +- libpng:版本 1.6.50 +- libssh: 版本 0.11.3 +- libtiff: 版本 4.7.1 +- libtirpc: 版本 1.3.7 +- libunistring: 版本 1.4 +- liburing: 版本 2.12 +- libusb: 版本 1.0.29 +- libwebp: 版本 1.6.0 +- libvirt: 版本 11.7.0 +- libxkbcommon: 版本 1.11.0 +- libxml2:版本 2.14.6 +- libzip: 版本 1.11.4 +- lsof: 版本 4.99.5 +- lvm2: 版本 2.03.35 +- mcelog: 版本 206 +- mesa: 版本 25.2.3 +- nano:版本 8.6 +- ncurses:版本 6.5\_20250816 +- nettle: 版本 3.10.2 +- nghttp2:版本 1.67.1 +- nghttp3: 版本 1.12.0 +- noto-fonts-ttf: 版本 2025.09.01 +- nvme-cli: 版本 2.15 +- openssl: 版本 3.5.3 +- ovmf: 版本 unraid202502 +- p11-kit:版本 0.25.10 +- pam: 版本 1.7.1 +- pcre2:版本 10.46 +- pango: 版本 1.56.4 +- pciutils: 版本 3.14.0 +- perl: 版本 5.42.0 +- php: 版本 8.3.26-x86\_64-1\_LT 搭配 gettext 扩展 +- pixman: 版本 0.46.4 +- rclone: 版本 1.70.1-x86\_64-1\_SBo\_LT.tgz +- readline: 版本 8.3.001 +- samba: 版本 4.23.1 +- shadow: 版本 4.18.0 +- smartmontools: 版本 7.5 +- spirv-llvm-translator: 版本 21.1.0 +- sqlite: 版本 3.50.4 +- sudo: 版本 1.9.17p2 +- sysstat: 版本 12.7.8 +- sysvinit: 版本 3.15 +- tdb: 版本 1.4.14 +- tevent: 版本 0.17.1 +- userspace-rcu: 版本 0.15.3 +- util-linux: 版本 2.41.2 +- wayland: 版本 1.24.0 +- wireguard-tools: 版本 1.0.20250521 +- wireless-regdb: 版本 2025.07.10 +- xdpyinfo: 版本 1.4.0 +- xdriinfo: 版本 1.0.8 +- xfsprogs:版本 6.16.0 +- xkeyboard-config: 版本 2.45 +- xorg-server: 版本 21.1.18 +- xterm:版本402 +- zfs:版本 zfs-2.3.4\_6.12.47\_Unraid-x86\_64-2\_LT diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json new file mode 100644 index 0000000000..4296ae2461 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/release-notes/_category_.json @@ -0,0 +1,8 @@ +{ + "label": "发行说明", + "position": 6, + "link": { + "type": "generated-index", + "description": "Unraid 发行说明" + } +} diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json new file mode 100644 index 0000000000..31c670d7da --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "系统管理", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json new file mode 100644 index 0000000000..f912442dd2 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "高级工具", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx new file mode 100644 index 0000000000..adb5891914 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/command-line-interface.mdx @@ -0,0 +1,457 @@ +--- +sidebar_position: 1 +sidebar_label: 命令行界面 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CliCpuInfo from './partials/command-line-interface/cpu-info.mdx'; +import CliMemoryInfo from './partials/command-line-interface/memory-info.mdx'; +import CliStorageInfo from './partials/command-line-interface/storage-info.mdx'; + +# 命令行界面 + +While most tasks in Unraid can be performed through the %%WebGUI|web-gui%%, certain operations - especially those related to diagnostics, drive management, or scripting - require using the system console or %%SSH|ssh%% terminal. This page offers Unraid-specific command-line tools and examples that can be used without needing extensive Linux knowledge. + +:::tip[Device 路径] +Many disk-level Unraid operations depend on Linux device names, like `/dev/sdX`. You can find the device identifier for any drive in the **Main** tab of the %%WebGUI|web-gui%%. Look for the three-letter label `sdX` or `nvmeX` next to each disk. Use the appropriate identifier in all commands, replacing `sdX` with your specific disk. +::: + +## 访问终端 + +Unraid includes a built-in web terminal that you can access directly from the %%WebGUI|web-gui%%. Simply use the top-right dropdown menu and select ">\_". This opens a command-line session as the %%root user|root-user%%, giving you full administrative access to your system. + +您也可以使用 %SSH|ssh%(安全壳)与 %%PuTTY|putty%% 等客户端外部连接到 Unraid 服务器。 + +:::tip[When 我应该使用终端吗?] +如果您使用的是Windows,可能更喜欢使用%%PuTTY|putty%%进行%%SSH|ssh%%访问,而不是内置终端。这个软件轻量级、免费,并允许您保存会话以便日后轻松访问。 + +- 运行例如 `smartctl`、`xfs_repair`、`tail` 或 `top` 等诊断和命令行工具 +- 执行不需要用户界面的插件脚本或工具 +- Troubleshooting issues related to connectivity, system services, or %%user shares|user-share%% +::: + +### 驱动器测试和监控 + +如果您使用的是Windows,可能更喜欢使用%%PuTTY|putty%%进行%%SSH|ssh%%访问,而不是内置终端。这个软件轻量级、免费,并允许您保存会话以便日后轻松访问。 + +
+ 如何安装和使用 PuTTY - 单击以展开/折叠 + + 1. 从[官方网站](https://www.putty.software/)下载 %%PuTTY|putty%% 。 + 2. 启动 %%PuTTY|putty%% 应用程序。 + 3. 输入您的 Unraid 服务器的 IP 地址或主机名(如 `tower.local`)。 + 4. 将连接类型设置为 `%%SSH|ssh%%`。 + 5. (可选)保存会话名称以供将来使用。 + 6. 点击 **打开** 开始会话。 + 7. 遇到提示时,以 `root` 登录,然后输入您的密码。 + + 登录后,您已进入 Unraid 的 shell 环境。完成后输入 `exit` 关闭会话。 +
+ +:::note +Unraid automatically configures the SSH server on the first boot. Ensure your networking is working properly and that your root password is set before attempting a remote connection. +::: + +## 驱动器测试和监控 + +这些工具有助于评估性能、检查驱动器健康情况以及解决%%array|array%%速度慢的问题。所有命令都应从终端或通过%%SSH|ssh%%执行。 + +### `diskspeed.sh` + +此脚本允许进行全面的表面性能测试,并生成可视化报告。 + +
+ 查看 diskspeed.sh 用法 - 单击以展开/折叠 + + 以前这脚本需要从 Unraid 论坛下载。DiskSpeed 现在提供了一个更完善的软件包: + + ```bash + hdparm -tT /dev/sdX + ``` + + `-t` 标志测试缓冲磁盘读取,而 `-T` 测试缓存读取。这主要衡量顺序读取性能,有助于识别异常缓慢的驱动器。 + + **运行多个测试以提高准确性:** + + ```bash + for ((i=0;i<5;i++)); do hdparm -tT /dev/sdX; done + ``` + + **查看驱动器信息:** + + ```bash + hdparm -I /dev/sdX + ``` + + 这将显示型号、固件、缓存大小和支持的功能,帮助验证磁盘类型和控制器行为。 +
+ +### `smartctl` + +此命令运行 %%SMART|smart%% 诊断并监控驱动器健康。 + +
+ 查看 smartctl 选项 - 单击以展开/折叠 + + **基本 %%SMART|smart%% 报告:** + + ```bash + smartctl -a /dev/sdX + ``` + + 如果此命令返回错误,请尝试指定设备类型:`smartctl -a -d ata /dev/sdX`(对于 NVMe 驱动器使用 `-d nvme`)。 + + **启动 %%SMART|smart%% 自检:** + + 短测试(需数分钟) + + ```bash + smartctl -t short /dev/sdX + ``` + + 扩展测试(可能需数小时) + + ```bash + smartctl -t long /dev/sdX + ``` + + **将 %%SMART 报告|smart-report%% 保存到文件:** + + ```bash + smartctl -a /dev/sdX > /boot/smart_report.txt + ``` + + 这会将报告保存到您的 Unraid 闪存驱动器,以便稍后查看或在 [论坛](https://forums.unraid.net/) 上共享。 +
+ +### `top` + +此命令提供实时的进程和资源监控。 + +
+ 查看 top 用法 - 单击以展开/折叠 + + 以前这脚本需要从 Unraid 论坛下载。DiskSpeed 现在提供了一个更完善的软件包: + + 在 [社区应用程序](../../using-unraid-to/run-docker-containers/community-applications.mdx) (***应用程序选项卡***)中搜索 "DiskSpeed" 来安装 DiskSpeed,或者访问 [GitHub 仓库](https://github.com/jbartlett777/DiskSpeed) 以获取手动安装说明。 +
+ +--- + +## 系统监控 + +在 %%WebGUI|web-gui%% 不可用或需要更详细诊断时,使用这些命令监控内存、进程和系统性能。 + +### `ps` + +使用此命令显示正在运行的进程及其详细信息。 + +
+ 查看 ps 选项 - 单击以展开/折叠 + + ```bash + top + ``` + + - 实时显示每个进程的 CPU 和内存使用情况。 + - 按 `q` 退出。 + - 使用方向键滚动,按 `k` 终止进程。 + + **按内存使用排序:** +
+ +### `free` + +此命令显示内存使用统计信息。 + +
+ 查看 free 用法 - 单击以展开/折叠 + + ```bash + free -h + ``` + + 这将以人类可读的格式显示 RAM 使用情况。`-h` 标志表示大小将以 KB、MB 或 GB 而非字节显示。 + + :::tip[理解输出] + "可用"内存读数低并不一定表示问题——Linux 积极缓存数据以提高性能。 + ::: +
+ +### `df` + +此命令显示文件系统磁盘空间使用情况。 + +
+ 查看 df 用法 - 单击以展开/折叠 + + **列出所有进程的详细信息:** + + ```bash + ps aux + ``` + + :::tip + 考虑使用 `htop` 获取更友好的界面和增强的控制。 + ::: + + ```bash + ps aux --sort=-%mem | head -20 + ``` + + **按 CPU 使用排序:** + + ```bash + ps aux --sort=-%cpu | head -20 + ``` +
+ +--- + +## 存储工具 + +这些命令有助于检查磁盘使用情况、分区信息和识别存储设备。 + +### `lsblk` + +以树形格式列出所有块设备。 + +
+ 查看 lsblk 用法 - 单击以展开/折叠 + + ```bash + df -h + ``` + + 此命令显示所有已挂载文件系统的已用和可用空间。它便于检查 Unraid 中的 `/var/log`(使用基于 RAM 的日志记录)。更多关于[系统日志记录](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx)的信息。 +
+ +### `blockdev -getsz` + +帮助确定替换驱动器在重建前是否有足够的空间。 + +
+ 查看 blockdev 用法 - 单击以展开/折叠 + + ```bash + fdisk -l /dev/sdX + ``` + + 此命令显示分区布局、大小和磁盘几何结构。它有助于解决磁盘大小不匹配的问题,特别是在[替换磁盘](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-disks)时。 +
+ +### `blkid` + +识别文件系统标签。 + +
+ 查看 blkid 用法 - 单击以展开/折叠 + + ```bash + lsblk + ``` + + 此命令显示所有已挂载文件系统的已用和可用空间。它便于检查 Unraid 中的 `/var/log`(使用基于 RAM 的日志记录)。更多关于[系统日志记录](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx)的信息。 +
+ +### `blockdev -getsz` + +帮助确定替换驱动器在重建前是否有足够的空间。 + +
+ 查看 fdisk 用法 - 单击以展开/折叠 + + **语法:** + + ``` + blockdev --getsz /dev/sdX + ``` + + 返回设备上 512 byte 扇区的原始数量 - 方便在重建前确认替换驱动器的大小。 +
+ +### `ss` + +显示套接字统计和网络连接。这是`netstat`的现代替代品。 + +
+ 查看 ss 选项 - 单击以展开/折叠 + + **语法:** + + ``` + blkid /dev/sdX1 + ``` + + 输出文件系统类型和标签。用于验证 Unraid 闪存是否标记为 `UNRAID`,可替代已弃用的 `vol_id` 命令。 +
+ +--- + +## 网络诊断 + +用于排除网络连接和接口配置问题的工具。 + +### `ping` + +测试网络连接。 + +
+ 查看 ping 用法 - 单击以展开/折叠 + + **通过发送有限数量的包来测试连接:** + + ```bash + ss -tuln + ``` + + - `-t`:TCP 套接字 + - `-u`:UDP 套接字 + - `-l`:仅显示监听套接字 + - `-n`:显示端口号而不是服务名称 + + **显示已建立的连接:** + + ```bash + ss -tup + ``` + + 此命令显示活动连接及其过程信息。 +
+ +### `ethtool` + +用于查询和调整网络接口卡 (NIC) 参数的实用工具,例如链接速度、卸载功能和统计数据。 + +
+ 查看 ethtool 用法 - 单击以展开/折叠 + + **基本驱动程序和固件信息:** + + ```bash + ip addr show + ``` + + **以颜色显示网络接口:** + + ```bash + ip -c addr show + ``` + + 要检查接口的当前链接速度和设置,请运行: + + ```bash + ip route show + ``` +
+ +### `ping` + +测试网络连接。 + +
+ 查看 ss 选项 - 单击以展开/折叠 + + **显示所有监听端口:** + + ```bash + ping -c 4 google.com + ``` + + 此命令向目标发送四个数据包后停止,适合进行基础的连接测试而不会产生连续输出。 +
+ +### `ethtool` + +用于查询和调整网络接口卡 (NIC) 参数的实用工具,例如链接速度、卸载功能和统计数据。 + +
+ 查看 ip 选项 - 单击以展开/折叠 + + **显示所有网络接口:** + + 使用此命令获取网络接口驱动程序和固件信息: + + ``` + ethtool -i eth0 + ``` + + **显示当前链接速度和设置:** + + **显示路由表:** + + ``` + ethtool eth0 + ``` + + **显示扩展接口统计:** + + 对于界面的扩展统计,请使用以下命令: + + ``` + ethtool -S eth0 + ``` + + 这些命令可以帮助您确认千兆、2.5 GbE 或 10 GbE 连接的协商速度,诊断与电缆相关的问题,或识别可能由于卸载不匹配而产生的丢包。 +
+ +--- + +## `尾` + +实时监控日志文件。 + + + + + + + + + + + + + + + +--- + +## 系统维护 + +系统关闭、日志监控和服务管理的命令。 + +### `尾` + +实时监控日志文件。 + +
+ 查看尾命令用法 - 点击展开/折叠 + + ```bash + tail -f /var/log/syslog + ``` + + 该命令显示系统日志的实时更新。要退出,请使用 `Ctrl+C`。 + + **显示特定行数:** + + ```bash + tail -n 50 /var/log/syslog + ``` +
+ +### `关机` + +安全关闭系统。 + +
+ 查看关机用法 - 点击展开/折叠 + + ```bash + powerdown + ``` + + 此命令利用 Unraid 内置的关机过程来停止 %%array|array%% 并安全地关闭系统。它优于手动关闭方法。 +
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx new file mode 100644 index 0000000000..b8baadb8a1 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/cpu-info.mdx @@ -0,0 +1,17 @@ +**CPU 架构概况:** + +```bash +lscpu +``` + +此命令显示有关核心、线程、虚拟化支持和缓存详细信息。 + +**功能检测:** + +```bash +grep -E 'lm|vmx|svm' /proc/cpuinfo +``` + +- `lm`:表示支持 64 位 +- `vmx`:Intel VT-x 虚拟化 +- `svm`:AMD-V 虚拟化 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx new file mode 100644 index 0000000000..2a928622b4 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/memory-info.mdx @@ -0,0 +1,11 @@ +**内存使用概述:** + +```bash +free -h +``` + +**详细内存分解:** + +```bash +cat /proc/meminfo | head -20 +``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx new file mode 100644 index 0000000000..f5cb392181 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/command-line-interface/storage-info.mdx @@ -0,0 +1,11 @@ +**按序列号/型号列出驱动器:** + +```bash +ls -l /dev/disk/by-id/ | grep -v part +``` + +**检查文件系统标签:** + +```bash +ls -l /dev/disk/by-label/ +``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx new file mode 100644 index 0000000000..e82eb5537b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/linux.mdx @@ -0,0 +1,11 @@ +

终端方法

+ +``` +wakeonlan MAC_ADDRESS +``` + +如果未安装,请使用 `sudo apt install wakeonlan` 安装。 + +

替代方案: WoL GUI

+ +您可以从 Linux 发行版的软件包管理器中安装 `wol` GUI 前端。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx new file mode 100644 index 0000000000..02c7825b56 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/macos.mdx @@ -0,0 +1,19 @@ +

终端方法(推荐)

+ +1. 使用 Homebrew 安装 `wakeonlan`: + + ``` + brew install wakeonlan + ``` + +2. 发送魔术数据包: + + ``` + wakeonlan MAC_ADDRESS + ``` + +

GUI 替代方案: miniWOL

+ +1. 从 App Store 下载 [miniWOL v3](https://apps.apple.com/app/miniwol/id6474282023)。 +2. 使用 MAC 地址添加您的服务器。 +3. 点击太阳图标唤醒您的服务器。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx new file mode 100644 index 0000000000..e8483010d0 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/partials/wake-on-lan/windows.mdx @@ -0,0 +1,9 @@ +

使用 WakeOnLan CMD

+ +1. 下载 [wolcmd.exe](https://www.depicus.com/wake-on-lan/wake-on-lan-cmd)。 + +2. 在命令提示符下运行: + + ``` + wolcmd.exe 255.255.255.255 + ``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx new file mode 100644 index 0000000000..6b843c5538 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/advanced-tools/wake-on-lan.mdx @@ -0,0 +1,109 @@ +--- +sidebar_position: 2 +sidebar_label: 远程唤醒(WoL) +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import WakeOnLanWindows from './partials/wake-on-lan/windows.mdx'; +import WakeOnLanMacos from './partials/wake-on-lan/macos.mdx'; +import WakeOnLanLinux from './partials/wake-on-lan/linux.mdx'; + +# 远程唤醒(WoL) + +%%Wake-on-LAN (WOL)|远程唤醒 (WOL)%% 允许您通过网络发送一个“魔术包”来远程唤醒已关机或睡眠状态的 Unraid 服务器。此页面将帮助您为本地网络设置 WoL。 + +## 要求 + +为了让 WoL 正常工作,请确保满足以下要求: + +- **网卡支持**:您的网络接口控制器应支持 WoL;大多数现代网卡支持。 + +- **BIOS/UEFI 设置**:在主板的 BIOS/%%UEFI|UEFI%% 下的电源管理中启用 WoL。以下是一些常见的设置名称: + + | 设置名称 | 描述 | + | ---------------- | ------------------- | + | 远程唤醒 | 通用 WoL 设置 | + | PME 事件唤醒 | 用于 PCIe 唤醒事件 | + | 通过 PCI/PCIe 设备开机 | WoL 的替代名称 | + | ErP 准备 | 为了让 WoL 正常工作,必须*禁用* | + +- **电源连接**: 确保您的服务器连接到电源。 + +- **网络连接**:使用以太网线将服务器连接到局域网(不支持 WiFi WoL)。 + +:::caution[Hardware 兼容性] +并不是所有硬件都能可靠地支持 S3 睡眠或远程唤醒。一些系统在进入睡眠时可能会遇到问题,无法正确唤醒,或者需要额外设置 BIOS/%%UEFI|uefi%%。在依赖这些功能之前,应彻底测试。 +::: + +## 使 Unraid 服务器进入休眠状态 + +在 Unraid 上管理睡眠的首选且用户友好方法是使用 [**Dynamix S3 Sleep 插件**](https://unraid.net/community/apps/c/plugins/p3?srsltid=AfmBOorpfP2Psw_bCorklf-QVCUHvADYGsdbsAH-4CldU4V2hWgoO-09#r:~:text=%3E%3E-,Dynamix%20S3%20Sleep,-Dynamix%20Repository)。此插件提供了图形界面,以帮助计划睡眠、唤醒和空闲行为,并解决可能与各种硬件配置相关的常见问题。 + +安装和配置: + +1. 在 Unraid %%WebGUI|web-gui%% 中打开 ***应用程序标签*** 。 +2. 搜索 "Dynamix S3 Sleep" 并安装插件。 +3. 导航到 ***设置 → 睡眠设置*** 以设置睡眠和唤醒选项。 + +插件管理大多数睡眠配置选项。 + +
+ 替代的手动方法 - 点击展开/折叠 + + 如果您需要更多的控制或高级的自定义设置,可以通过命令行配置睡眠和WoL设置。此方法推荐给高级用户。 + + 手动配置睡眠: + + 1. 使用 %%WebGUI|web-gui%% 终端或 [%%SSH|ssh%%](../../system-administration/advanced-tools/command-line-interface.mdx#accessing-the-terminal) 连接到您的服务器。 + + 2. 通过运行以下命令识别主网络接口(通常为 'eth0'): + + ``` + ifconfig + ``` + + 记下 MAC 地址(标记为 `ether`)。 + + 3. 使用此命令在接口上启用 WoL: + + ``` + ethtool -s eth0 wol g + ``` + + 4. 输入此命令使服务器进入休眠状态: + + ``` + echo -n mem > /sys/power/state + ``` + + :::caution[持久性] + 手动配置的WoL设置**默认情况下在重启时不会持久**。要使其永久有效: + + 1. 在您的闪存驱动器上的 `/boot/config/go` 创建一个 `go` 文件。 + + 2. 添加此行: + + ``` + /sbin/ethtool -s eth0 wol g + ``` + ::: +
+ +## 唤醒您的 Unraid 服务器 + +要远程唤醒您的 Unraid 服务器,需要通过本地网络发送一个特殊的“魔术包”。该数据包包含服务器的 MAC 地址,并指示网络接口从睡眠或关闭状态开启系统。不同操作系统提供了不同的工具和方法来发送此数据包。以下是 Windows、macOS 和 Linux 的具体指示。 + + + + + + + + + + + + + + diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json new file mode 100644 index 0000000000..737ec61201 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "维护和更新", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx new file mode 100644 index 0000000000..c2dcbc2099 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx @@ -0,0 +1,168 @@ +--- +sidebar_position: 3 +sidebar_label: 更换闪存设备 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import BackupUsingWebGUI from './partials/backup-using-webgui.mdx'; +import BackupManualMethod from './partials/backup-manual-method.mdx'; +import ReplacementUsingCreator from './partials/replacement-using-creator.mdx'; +import ReplacementManualMethod from './partials/replacement-manual-method.mdx'; + +# 更换闪存设备 + +USB 闪存设备对您的 Unraid 服务器至关重要,因为它存储操作系统、配置文件和许可证。如果此设备发生故障或变得不可靠,及时更换至关重要,以避免数据丢失并最大限度地减少停机时间。 + +:::caution +当您更换 Unraid USB 闪存设备时,您的许可证将被转移到新设备,并且旧的闪存设备将被列入黑名单\*\*,且无法再用于Unraid。\*\* 此操作是永久的,不能撤销。 +::: + +一些常见的迹象表明您的USB闪存设备可能需要更换,包括: + +- 服务器无法启动,或者设备中的文件丢失。 +- 设备反复进入只读模式或显示文件系统错误。 +- 设备丢失或被盗。 +- 存储容量不足以进行更新或配置更改。 +- 设备的物理尺寸不适合您的服务器设置。 + +--- + +## 选择替换设备 + +选择新的 Unraid 专用 USB 闪存时,更应注重可靠性和兼容性,而非速度。 + +

要求

+ +| 需求 | 详情 | +| ------- | --------------------------------- | +| USB版本 | 推荐使用USB 2.0(通常比USB 3.0更可靠、更兼容) | +| 唯一的GUID | 必须包含可编程ROM中的唯一硬件GUID | +| 最小尺寸 | 至少4 GB | +| 建议最大尺寸 | 32 GB(为了便于手动安装;更大设备可能可用,但不必要) | +| 品牌/供应商 | 从信誉良好的品牌和可信赖的零售商处购买;避免购买二手或灰色市场产品 | +| 物理尺寸 | 选择符合您服务器可用USB端口和物理限制的外形尺寸 | + +欲了解更多关于如何选择适合 Unraid 的最佳闪存设备,请查看[Spaceinvader One 的 USB 闪存驱动测试视频指南](https://www.youtube.com/watch?v=jjkaidlZmgs)。 + +:::tip[Rules 替换规则] +- 从信誉良好的零售商处购买USB驱动器,避免拍卖网站和未知卖家。 +- 避免使用二手或以前使用过的驱动器。 +- 在传输许可证之前,请在您的服务器上测试新驱动器。 +- 即使是知名品牌的产品,也要注意假冒产品。 + :::注 +2022 年 1 月发布的[关于假冒 SanDisk 驱动的论坛公告](https://forums.unraid.net/topic/119052-psa-on-sandisk-usbs/)确认,由于假冒设备和制造变更导致生成非唯一 GUID,SanDisk 不被推荐。这影响了假冒和正品 SanDisk 驱动。 +::: + +::: + +::: + +::: + +::: + +--- + +## 更换您的USB闪存设备 + +:::caution[Before 在更换之前] +在更换当前闪存设备之前,请考虑检查其错误: + +1. 关闭服务器并移除闪存设备。 +2. 将设备插入Windows或Mac计算机。 +3. 使用Windows的Scandisk或Mac的Disk Utility检查并修复错误。 +4. 如果发现并修复了错误,您可以继续使用该设备。如果问题持续存在或再次出现,建议更换。 + +单次断电或不完整的写入有时可能导致轻微的损坏,但通常可修复。然而,反复出现的问题表明需要更换设备。 +::: + +有两种方法可以替换Unraid USB闪存设备:推荐用于Windows或macOS的[USB闪存创建工具](https://unraid.net/download),或针对高级用户的手动方法。 **在开始之前,请始终备份您的闪存设备。** + +### 备份您的闪存设备 + + + + + + + + + + + +:::tip[Backup 最佳做法] +- 定期备份您的闪存设备,尤其是在进行重大配置更改后。 +- 在服务器之外存储备份(在另一台计算机或云存储上)。 +- 在任何硬件更改后保留磁盘分配的截图。 +::: + +:::important[Trial 试用密钥和设备更换] +如果您将试用配置转移到新闪存设备上,您将无法在购买有效注册码前启动%%array|array%%。试用密钥仅适用于原始设备。 +::: + +### 替换方法 + + + + + + + + + + + +您现已替换您的 USB 闪存设备并转移了您的 Unraid 注册密钥。系统将显示注册日期和下次可更换的日期。 + +--- + +## 注册码更换频率 + +Replacing your Unraid registration key is straightforward, but there are important details about timing and eligibility to keep in mind. + +- 您可以随时更换注册码。但是,在第一次更换之后,您必须等待**12个月**才能再次使用自动在线方法。 +- If you need to replace your key again within 12 months, [contact Unraid support](https://unraid.net/contact). For faster service, include your old and new USB %%GUIDs|guid%%, your license key, and the email address used for purchase. + +:::important +如果因超过自动替换限制而被锁定,需要立即访问服务器,请使用新的USB驱动器设置新的 Unraid 试用版,然后联系支持以转移您的许可证。 +::: + +--- + +## 在没有备份的情况下从失败的闪存设备中恢复 + +丢失闪存设备且不知道磁盘分配可能会令人紧张,但通过谨慎步骤可以避免数据丢失。 + +:::caution +Never assign a data disk as a %%parity drive|parity-drives%%. Incorrect assignments can overwrite data with parity information, resulting in permanent data loss. +::: + +:::tip[Identifying 所有驱动器] +- **%%Parity drives|parity-drives%%** do not have a mountable file system. If a drive cannot be mounted, it is likely a %%parity|parity%% drive. +- **Data drives** previously used by Unraid retain their data even after resetting the %%array|array%% configuration. +- 如果您发现比预期的更多无法挂载的驱动器%%parity|parity%%驱动器,请停止并在[Unraid论坛](https://forums.unraid.net/)中寻求帮助。 +::: + +要安全重新配置您的%%array|array%%: + +1. 按照本指南中提供的说明,准备一个新的 Unraid 闪存驱动器。 +2. 转到***Main***选项卡 + - 将所有驱动器分配为数据驱动器并启动%%array|array%%。 + - 注意未挂载的驱动器序列号,这些可能是您的%%parity|parity%%驱动器。 + - Do not click **Format** on any drive. If more unmountable drives appear than expected %%parity|parity%% drives, stop and seek help in the forums. + - 您还可以使用[未分配设备插件](https://unraid.net/community/apps?q=Unassigned%20Devices)测试挂载每个驱动器(%%parity|parity%%不会挂载),通过排除法识别%%parity|parity%%。 + - 在继续之前停止%%array|array%%。 +3. 前往***工具 → 新的配置***并创建一个新的%%array|array%%配置,保留所有当前配置的驱动器。 +4. 在**主**标签中,将正确的驱动器分配为%%parity|parity%%,其余的作为数据驱动器。 +5. If you have a single %%parity|parity%% drive, the order of data drives is not critical. Check **Parity is Valid** only if you are certain you assigned the same physical parity disk and no writes occurred since the original configuration. For dual %%parity|parity%%, both the order of the data drives and the assignment of parity1 and parity2 are important—parity1 and parity2 are not interchangeable, and %%parity|parity%% must be rebuilt if either is changed. +6. Start the %%array|array%% to commit assignments. Data drives should mount, and their contents should remain intact. +7. 如果您勾选了**校验有效**,请运行一个校正的[%%parity|parity%%检查](../../using-unraid-to/manage-storage/array-configuration.mdx#checking-array-devices)以确认您的配置是否正确。 + +:::note +恢复%%array|array%%后,验证任何特定共享的包含/排除设置,因为数据驱动器的顺序可能发生了变化。 +::: + +--- + +\* “%%WireGuard|wireguard%%”和“%%WireGuard|wireguard%%”徽标是Jason A. Donenfeld的注册商标。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx new file mode 100644 index 0000000000..cb91587a27 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-manual-method.mdx @@ -0,0 +1,3 @@ +1. 关闭服务器并移除闪存设备。 +2. 将其插入另一台计算机。 +3. 将所有文件从闪存驱动器复制到安全的备份位置。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx new file mode 100644 index 0000000000..d0bb247bf7 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/backup-using-webgui.mdx @@ -0,0 +1,8 @@ +1. 转到**Main**选项卡并选择您的闪存设备。 +2. 在**闪存设备设置**下,单击**FLASH BACKUP**以下载压缩备份到您的计算机。 + +
+ ![闪存备份](/img/flashbackup.png) +
+ +或者,使用 [Unraid Connect 闪存备份](../../../../unraid-connect/automated-flash-backup.mdx) 进行自动化的闪存备份。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx new file mode 100644 index 0000000000..dde871485a --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-command-line.mdx @@ -0,0 +1,25 @@ +:::caution +这种方法仅应在您熟悉 Linux 命令行时使用,因为操作错误可能会让系统无法启动。 +::: + +1. 从 [版本历史](../../../download_list.mdx) 复制所需 Unraid 版本 ZIP 文件的 URL。 +2. 通过 %%SSH|ssh%% 或控制台登录。 +3. 逐个执行以下命令(将 `` 替换为复制的链接): + + ```bash + cd /tmp + rm -f unraid.zip + rm -rf unraid_install + wget -O unraid.zip + [[ -s unraid.zip ]] && echo "OK to continue" || echo "STOP: the file was not downloaded" + unzip -d unraid_install unraid.zip + [[ -s unraid_install/bzroot ]] && echo "OK to continue" || echo "STOP: the file was not extracted properly" + [[ ! -d /boot/previous ]] && mkdir /boot/previous + mv /boot/bz* /boot/previous + mv /boot/changes.txt /boot/previous + cp unraid_install/bz* /boot + cp unraid_install/changes.txt /boot + sync -f /boot + sleep 5 + reboot + ``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx new file mode 100644 index 0000000000..91ca95c167 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/manual-downgrade-simplest.mdx @@ -0,0 +1,7 @@ +1. 从 [版本历史](../../../download_list.mdx) 下载所需的 Unraid 版本 ZIP 文件。 +2. 在电脑上解压文件。 +3. 访问 `flash` 共享或者将 USB 闪存设备连接到电脑。 +4. 如果不存在,请创建一个 `previous` 目录。 +5. 将所有 `bz*` 和 `changes.txt` 文件移到 `previous` 目录中。 +6. 将新 `bz*` 和 `changes.txt` 文件复制到闪存驱动器根目录。 +7. 重新启动您的服务器。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx new file mode 100644 index 0000000000..1c63490fe2 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-manual-method.mdx @@ -0,0 +1,23 @@ +*如果USB闪存创建工具不适用于您的系统,请使用此方法* + +:::important[Before 开始] +仅在您对基本文件管理感到舒适并且您的系统不支持USB闪存创建器时使用手动方法。 +::: + +1. 按照[手动安装方法](../../../getting-started/set-up-unraid/create-your-bootable-media.mdx#manual-install-method)准备一个新的闪存设备。 +2. 将备份的`config`文件夹复制到新闪存设备,覆盖现有文件。 +3. 关闭服务器,交换闪存设备并打开电源。 +4. 当提示`无效、缺少或过期的注册码`时,选择**注册码**。 + +
+ ![无效密钥](/img/Invalidkey.png) +
+ +5. 在***工具→注册码***中选择**更换密钥**并输入您的电子邮件地址。 + +
+ ![无效密钥](/img/Replacekey.png) +
+ +6. 按照电子邮件中的说明安装您的新密钥。 +7. 选择 **完成**。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx new file mode 100644 index 0000000000..aab9f5bd08 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/replacement-using-creator.mdx @@ -0,0 +1,32 @@ +*推荐大多数用户使用* + +1. 下载适用于Windows或macOS的[Unraid USB闪存创建工具](https://unraid.net/download)。 +2. 将新的USB闪存设备插入计算机。 +3. 在创建工具中,点击操作系统,向下滚动至**使用自定义**并浏览到您的备份ZIP文件。 + +
+ ![选择版本](/img/Selectversion.png) +
+ +4. 选择新的USB闪存设备作为目标并单击**写入**。 +5. 关闭服务器,用新设备替换旧闪存设备并打开电源。 +6. 当提示`无效、缺少或过期的注册码`时,选择**注册码**。 + +
+ ![无效密钥](/img/Invalidkey.png) +
+ +7. 如有需要,将现有的许可证密钥文件复制到新设备的`boot/config`中。 +8. 确保config文件夹中仅存在一个密钥文件。 +9. 在***工具→注册码***中选择**更换密钥**并输入您的电子邮件地址。 + +
+ ![无效密钥](/img/Replacekey.png) +
+ +10. 按照电子邮件中的说明安装您的新密钥。 +11. 完成后,选择**完成**。 + +:::important +如果您看到"密钥文件无效"错误,您的密钥可能被列入黑名单,或不是最后一个有效密钥。 [联系 Unraid 支持](https://unraid.net/support)以获取帮助。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx new file mode 100644 index 0000000000..b830d9de11 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-legacy-611-612.mdx @@ -0,0 +1,6 @@ +对于 Unraid 版本 6.11 和 6.12,请遵循传统更新方法: + +1. 在 %%WebGUI|web-gui%% 中,转到 ***工具 → 更新OS***。 +2. 点击 **检查更新**。 +3. 如果有新版本可用,点击 **更新**。 +4. 当提示时,重启服务器。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx new file mode 100644 index 0000000000..2461e4ac41 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/partials/upgrade-modern.mdx @@ -0,0 +1,11 @@ +使用新的 **更新操作系统工具** 升级 Unraid,界面友好: + +1. 在 %%WebGUI|web-gui%% 中,点击右上角的下拉菜单并选择**检查更新**或者进入***工具 → 更新OS***。 +2. 选择 **稳定** 通道以获取稳定版本,或选择 **下一个** 通道以获取测试版和 RC。 +3. 点击 **查看更改日志开始更新**。更改日志将显示,供您在点击 **继续** 之前查看。 +4. 单击 **确认并开始更新** 以应用最新的稳定版本。 +5. 当提示时,重启服务器以完成升级。 + +:::note +您可能需要登录到 Unraid 帐户以访问更新,尤其是对于“下一个”分支版本。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx new file mode 100644 index 0000000000..cf2635b037 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx @@ -0,0 +1,151 @@ +--- +sidebar_position: 2 +sidebar_label: 升级 Unraid +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import UpgradeModern from './partials/upgrade-modern.mdx'; +import UpgradeLegacy611612 from './partials/upgrade-legacy-611-612.mdx'; +import ManualDowngradeSimplest from './partials/manual-downgrade-simplest.mdx'; +import ManualDowngradeCommandLine from './partials/manual-downgrade-command-line.mdx'; + +# 升级 Unraid + +升级 Unraid OS 可确保您获得最新功能、安全更新和硬件支持。本页概述了标准升级过程,提供了疑难解答技巧和手动升级选项。 + +:::note\[Prerequisites] + +在开始升级之前,请确保完整备份您的USB闪存设备。有关更多详细信息,请参阅[备份闪存设备](../maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device)。 + +::: + +:::tip[Best 升级前的实践] +1. **备份**您的闪存驱动器和任何重要数据。 +2. **阅读您计划安装版本的发布说明**。 +3. **将所有插件更新**至最新版本。 +4. **可选步骤,停止阵列**后再进行。 +5. 在 ***工具 → 更新操作系统*** 页面上**更新 Unraid OS**。 +6. 重启服务器以完成升级。 +::: + +## 标准升级流程 + + + + + + + + + + + +:::caution[ZFS 存储池升级警告] +When upgrading to Unraid 7.x, you may see warnings about [%%ZFS|zfs%%](../../advanced-configurations/optimize-storage/zfs-storage.mdx) pool feature upgrades during boot or in the %%WebGUI|web-gui%%. These warnings are not a sign of a problem; they simply indicate that your %%ZFS|zfs%% pool is using features from an older version of ZFS. + +升级您的池并不紧急,但如果您决定升级,请注意它可能无法与以前的 Unraid 版本一起使用。这意味着进行升级后,您可能无法返回到以前的 Unraid 版本。 + +如以往一样,升级您的%%ZFS|zfs%%池之前,请记得备份数据。 +::: + +--- + +## 排查升级问题 + +如果升级后遇到问题,请查看下面相关部分获取帮助。 + +
+ 升级后阵列或 Docker 容器启动较慢 - 点击以展开/收起 + + 在某些升级后可能需要对 Docker 容器进行一次性迁移。此过程可能需要一些时间,特别是如果您有很多镜像。在此过程中请耐心等待;性能应在初始启动后恢复正常。 +
+ +
+ 升级后 Docker 容器无法正常工作 - 点击以展开/收起 + + 如果您遇到类似 "layers from manifest don't match image configuration" 的错误,您可能需要重新构建您的 Docker 镜像文件。以下是方法: + + 1. 前往 ***设置 → Docker*** 并停止 Docker 服务。 + 2. 选中删除 Docker 镜像的复选框并单击删除按钮。 + 3. 重新启动 Docker 以重建镜像。 + 4. 导航到 **应用** 标签页,选择 **先前的应用**,勾选要重新安装的应用并点击 **安装 xx 应用**。 +
+ +
+ 升级后阵列或 Docker 容器启动较慢 - 点击以展开/收起 + + 在某些升级后可能需要对 Docker 容器进行一次性迁移。此过程可能需要一些时间,特别是如果您有很多镜像。在此过程中请耐心等待;性能应在初始启动后恢复正常。 + + 1. 前往 **VMs** 标签页并编辑每个 %%VM%%(确保启用 **高级视图**)。 + 2. 将网络桥接设置为 `br0` 并点击 **应用**。 + 3. 前往 ***设置 → VM 管理器***(在 **高级视图** 中)并将默认桥接设置为 `br0`。 +
+ +
+ 升级后 Docker 容器无法正常工作 - 点击以展开/收起 + + 如果您遇到类似 "layers from manifest don't match image configuration" 的错误,您可能需要重新构建您的 Docker 镜像文件。以下是方法: + + 1. 在 **VMs** 标签页编辑 %%VM%%(选择 **高级视图**)。 + 2. 将 **VNC 视频驱动程序** 设置为 **QXL**(推荐)。如果 QXL 不成功,可以尝试 **Cirrus** 或 **vmvga**。 + 3. 点击 **应用** 以保存更改。 +
+ +
+ VMs 显示“无法获取接口 MTU”或网络错误 - 点击以展开/收起 + + If you have %%OVMF|ovmf%%-based %%VMs|vm%% created in older Unraid versions, you might encounter an EFI shell. You can boot the %%VM|vm%% by entering the following commands: + + 1. 键入 `fs0:`。 + 2. 然后键入 `cd efi/boot`。 + 3. 最后,键入 `bootx64.efi`。 + + 如果 `fs0:` 不起作用,您可以尝试 `fs1:`。如果问题仍然存在,请访问 [Unraid 论坛](https://forums.unraid.net/) 寻求帮助。 +
+ +
+ VNC 无法访问或速度慢 - 点击以展开/收起 + + 为了解决此问题,在 %%WebGUI|web-gui%% 中编辑 %%VM|vm%%,然后在不进行任何修改的情况下点击 **Apply**。此操作将更新机器类型为最新支持版本。 +
+ +
+ VM 无法启动(出现 EFI shell) - 点击以展开/收起 + + If you have %%OVMF|ovmf%%-based %%VMs|vm%% created in older Unraid versions, you might encounter an EFI shell. You can boot the %%VM|vm%% by entering the following commands: +
+ +--- + +## 手动升级或降级 + +手动升级通常不必要,但如果无法访问 WebGUI 或需要恢复到之前的版本时可能需要。在进行之前,请务必备份 USB 闪存设备,详细信息可以在[备份闪存设备](../maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device)中找到。 + +### 使用降级 OS 工具进行降级(如果 WebGUI 可访问) + +如果可以访问 WebGUI: + +1. 登录到 %%WebGUI|web-gui%%。 +2. 导航到 ***工具 → 降级操作系统***。 +3. 之前的版本将列为可供降级的选项。 +4. 点击**降级**并按提示操作。 +5. 当提示时,重启服务器。 + +:::caution +请记住,降级可能会导致插件或 Docker 容器的兼容性问题。请务必提前备份您的 USB 闪存设备和任何重要数据。 +::: + +### 手动方法(如果无法访问 WebGUI) + +只有在无法访问 %%WebGUI|web-gui%% 的情况下才使用这些方法: + + + + + + + + + + diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json new file mode 100644 index 0000000000..76fa3c6a02 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "监控性能", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx new file mode 100644 index 0000000000..39ae736d8f --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health.mdx @@ -0,0 +1,46 @@ +--- +sidebar_position: 2 +sidebar_label: SMART 报告及磁盘健康 +--- + +# SMART 报告及磁盘健康 + +**Self-Monitoring, Analysis, and Reporting Technology (%%SMART|smart%%)** is a helpful feature in most modern hard drives and SSDs. It keeps an eye on the health and reliability of your drives. In Unraid, %%SMART|smart%% monitoring acts as an early warning system, alerting you to possible drive failures before you lose any data. + +## 为何 SMART 监控很重要 + +%%SMART|smart%%监控帮助您发现驱动器健康的微小变化,例如错误计数增加或坏扇区等,预防严重问题,如读写错误。注意这些警告,您可以替换或备份故障驱动器,保护您的宝贵数据。想要保持消息通畅,请启用[通知](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#notification-settings),即使未登录Unraid %%WebGUI|web-gui%%也能接收警报。 + +:::note +%%SMART|smart%% 监控适用于 SATA 驱动器,但不适用于 SAS 驱动器。 +::: + +## Unraid 如何使用 SMART + +Unraid 不断检查每个连接驱动器的关键 %%SMART|smart%% 属性。如果这些属性中的任何一个发生更改,您将在仪表板上的受影响驱动器旁边看到一个橙色图标。点击该图标会弹出一个菜单,允许您确认更改。之后,只有当该属性有进一步更新时,Unraid 才会再次通知您。 + +若要更仔细地查看驱动器的 %%SMART|smart%% 数据,请在 Unraid %%WebGUI|web-gui%% 的 **主页面** 标签中点击其名称。 + +Unraid 默认监控的一些 %%SMART|smart%% 属性包括: + +| **ID** | **属性** | **含义** | **当需要关注/采取的行动** | +| ------- | ---------------------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **5** | 重分配扇区计数 | 这显示驱动器上有多少坏区域已被备用扇区替换。 | 如果该值高于 0,则您的驱动器开始出现故障。如果该数字增长,[备份您的数据](../../getting-started/set-up-unraid/complete-your-post-setup-essentials.mdx#back-up-your-flash-device)并尽快更换新驱动器。 | +| **187** | 报告的不可纠正错误 | 这些是驱动器无法修复的错误。 | 如果此数值大于0,这是一个严重的信号。请立即更换驱动器。 | +| **188** | 命令超时 | 这记录了操作花费太长时间的次数,可能指向驱动器或电缆问题。 | 偶尔的超时可能是由电源问题引起的。如果这种情况频繁发生超过0,请检查电缆和电源连接。 | +| **197** | 当前/待处理扇区计数 | 这表示可能很快失效的不稳定扇区。 | 如果数值超过0,表示驱动器无法正常读取某些区域。如果几天后数值仍未恢复为0,请更换驱动器。 | +| **198** | 无法纠正的扇区计数 | 这些扇区即使经过多次尝试也无法读取或写入。 | 如果此数字大于0,表示您的数据已丢失。请立即更换驱动器。 | +| **199** | %%UDMA\|udma%% %%CRC 错误\|crc-errors%% 计数 | 这说明驱动器与计算机之间的数据传输错误,通常由坏电缆引起。 | 如果数值上升,请检查并重新连接SATA电缆。如果在此后不再增加,应当一切正常。 | + +## 当收到 SMART 警告时该怎么做 + +如果收到 %%SMART|smart%% 警告,您应该执行以下操作: + +- 检查上表中受影响的属性。 +- 如果发现已重新分配、待处理或无法纠正的扇区计数正在上升,请计划尽快更换驱动器。 +- 对于 %%CRC 错误|crc-errors%%,检查您的数据电缆并确保其牢固安装。 +- 如果不确定一个警告,请不要犹豫使用 [Unraid 论坛](https://forums.unraid.net/) 或参考您的驱动器制造商的文档。 + +:::warning +%%SMART|smart%% 警告是不能忽视的早期信号。采取措施备份数据,并在硬盘出现故障之前考虑更换驱动器。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json new file mode 100644 index 0000000000..0a8a61c53d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "保护您的服务器", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx new file mode 100644 index 0000000000..ae24b460ea --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx @@ -0,0 +1,20 @@ +这种方法仅移除 **%%root|root-user%% 密码**,其他用户不受影响。 + +通过此方法重置: + +1. **关闭** 您的 Unraid 服务器。 + +2. **连接 USB 闪存驱动器** 到计算机(Windows 或 Mac)。 + +3. **使用文本编辑器**(如 Notepad++)打开位于 `/config/shadow` 的文件。 + +4. **编辑如下行**: + `root:$&$&%*1112233484847648DHD$%.:15477:0:99999:7:::` + + 将其更改为: + + `root::15477:0:99999:7:::` + +5. **保存更改** 到文件并将 USB 驱动器重新连接到您的服务器。 + +6. **启动您的 Unraid 服务器** 并设置新的 root 密码。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx new file mode 100644 index 0000000000..19b193aecd --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx @@ -0,0 +1,11 @@ +此方法将清除**所有用户密码**,包括\*%%root|root-user%% 和共享用户。 + +要重置密码的最简单方法: + +1. **关闭** 您的 Unraid 服务器。 +2. **连接 USB 闪存驱动器** 到计算机(Windows 或 Mac)。 +3. **删除这些文件** 从 USB 驱动器中: + - `/config/shadow` + - `/config/smbpasswd` +4. **断开 USB 闪存驱动器** 并将其重新连接到您的 Unraid 服务器,然后启动它。 +5. **在启动时创建新 root 密码**。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx new file mode 100644 index 0000000000..3df3455188 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-mobile.mdx @@ -0,0 +1,9 @@ +1. 选择眼睛![对等配置](/img/eye-icon.png)图标查看对等配置。 + +
+ ![对等配置](/img/peer-eye.png) +
+ +2. 在%%WireGuard|wireguard%%移动应用中,选择**通过QR码创建**并扫描QR码。 +3. 请命名连接并进行连接。%%VPN 隧道|vpn-tunnel%% 应该迅速启动。 +4. 保密QR码——任何拥有它的人都可以访问您的VPN。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx new file mode 100644 index 0000000000..3d50f5cf39 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/partials/wireguard-configure-other-devices.mdx @@ -0,0 +1,10 @@ +1. 选择眼睛![对等配置](/img/eye-icon.png)图标查看对等配置。 + +
+ ![对等配置](/img/peer-eye.png) +
+ +2. 下载配置文件。 +3. 通过可信邮件或云存储将其安全地传输到客户端设备。 +4. 解压并将配置导入到%%WireGuard|wireguard%%客户端。 +5. 保护此文件,以防止未经授权的VPN访问。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx new file mode 100644 index 0000000000..42ee56c9ea --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-flash-drive.mdx @@ -0,0 +1,71 @@ +--- +sidebar_position: 2 +sidebar_label: 确保您的闪存驱动器安全 +--- + +# 确保您的闪存驱动器安全 + +The flash drive is essential to your Unraid server, as it stores all configuration data, licensing, and system settings. Due to its importance, it’s crucial to keep its contents secure and accessible at all times. + +## 备份 + +拥有闪存驱动器的最新备份可以保证您在硬件故障、意外更改或数据损坏时能够快速恢复。请务必在以下情况备份: + +- 在升级 Unraid 或安装插件之前 +- 添加或移除驱动器后 +- 更改网络、共享或安全设置后 +- 进行重大配置更改之前 +- 定期作为日常维护的一部分 + +要使用 Unraid %%WebGUI|web-gui%% 备份您的闪存驱动器,请按照以下步骤操作: + +1. 在**主**选项卡中选择您的闪存驱动器。 +2. 在**闪存设备设置**中,点击**闪存备份**。 + +
+ ![选择闪存备份按钮](/img/flashbackup.png) +
+ +3. Unraid 将创建一个包含闪存驱动器内容的 ZIP 文件。 +4. Save this ZIP file to a secure location outside your Unraid server (like a separate PC, NAS, or cloud storage). + +如果需要重新创建您的闪存驱动器,请使用此备份和[USB Creator工具](https://unraid.net/download)。 + +:::tip +在进行任何硬件更改后,建议保留 [磁盘分配](../../getting-started/set-up-unraid/configure-your-array.mdx#assign-parity-and-data-disks) 的屏幕截图。这确保了在需要从备份恢复时可以正确放置驱动器。 +::: + +--- + +## 网络访问 + +You can control whether your flash drive is accessible over the network, similar to other shares in Unraid. However, network access should be restricted since the flash drive contains sensitive configuration and licensing data. Consider the following: + +- **网络可见性:** 决定是否需要在网络上显示或隐藏您的闪存驱动器。 +- **访问权限:** 如果启用了网络访问,请设置权限以限制谁可以查看或修改其内容。 + +:::important[Reducing 安全风险] +- **禁用共享:** 将闪存驱动器的%%SMB|samba%%导出设置为**否**以完全阻止网络访问。 +- **限制访问:** 如果必须共享闪存驱动器,请将安全性设置为**私有**,仅允许受信任的用户使用强密码访问。 +- **避免公共访问:** 切勿将闪存驱动器共享设置为**公开**或**安全**且具有访客写入访问权限。 + +这些步骤有助于防止未经授权的更改或关键文件的暴露。 +::: + +--- + +## 权限 + +为了增强系统安全性,闪存驱动器上的文件不再授予执行权限。此更改可防止恶意或意外代码直接从闪存驱动器上运行,减少被利用或意外系统修改的风险。 + +如果您在闪存驱动器上存储了自定义脚本或程序,请按以下步骤操作: + +1. **复制脚本到可执行位置:** + - 如果您希望脚本位于默认系统路径,请使用`/usr/local/bin`。 + - 通过向`config/go`文件添加复制命令来自动化这一过程。 + - 复制后,为文件设置执行权限。 + +2. **用解释器运行脚本:** + - 为脚本添加解释器前缀(例如,`bash /boot/config/scripts/myscript.sh`)。 + +这种方法可以让系统保持安全,同时允许高级用户运行他们的脚本。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx new file mode 100644 index 0000000000..a6eddbda4d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms.mdx @@ -0,0 +1,186 @@ +--- +sidebar_position: 8 +sidebar_label: 确保您的外发通信安全 +--- + +# 确保您的外发通信安全 + +传出代理管理器和 %%Tailscale|tailscale%% 出口节点提供了一种通过安全通道路由 Unraid 出站通信的方式。这些工具对于绕过限制性防火墙、遵循网络策略或保护出站流量非常有用。虽然这些解决方案主要集中在 Unraid 系统通信上,但可以通过配置选项将其扩展到更广泛的网络。 + +有三种主要方法可以保护您的外发通信: + +1. [**外发代理管理器**](#setting-up-a-proxy-server) - 该工具通过代理服务器路由HTTP流量,使您能够安全管理和定向您的网络请求。 +2. [**%%Tailscale|tailscale%% 出口节点**](#tailscale-exit-nodes) - 使用%%Tailscale|tailscale%% 出口节点,您的所有流量都可通过%%Tailscale|tailscale%% 的网状网络路由,确保设备间的安全连接。 +3. [**%%WireGuard|wireguard%% %%VPN|vpn-tunnel%%**](#outgoing-vpn-connections) - 您还可以使用%%WireGuard|wireguard%% %%VPN|vpn-tunnel%% 通过商业%%VPN|vpn-tunnel%% 提供商来路由流量,增加隐私和安全层。 + +### 外发代理管理器与Tailscale/WireGuard/VPN + +| 使用场景 | 推荐工具 | 原因 | +| -------------------- | ---------------------------------------- | ----------------------------------------------------------------------- | +| 绕过防火墙以进行 Unraid 系统更新 | 外发代理管理器 | 仅通过代理路由 Unraid 的系统流量;配置简单,最小。 | +| 使用网状网络保护所有外发流量 | %%Tailscaletailscale%% 出口节点 | 通过 %%Tailscaletailscale%% 的网状网络加密流量;现有 %%Tailscaletailscale%% 基础设施易于设置。 | +| 保护所有外发流量(系统范围) | %%WireGuardwireguard%% %%VPNvpn-tunnel%% | 加密并通过隧道将 Unraid (包括 Docker/VM) 的所有流量发送到商业 %%VPN\|vpn-tunnel%% 提供商。 | +| 隔离Docker或VM流量 | %%VPNvpn-tunnel%% 或容器代理 | 在容器/VM 级别配置 %%VPNvpn-tunnel%% 以进行细粒度控制。 | +| 从任何地方访问家庭网络 | %%Tailscaletailscale%% 出口节点 | 通过家庭网络路由流量以保证一致的IP和地理位置。 | + +对于大多数用户来说,像 [%%Tailscale|tailscale%%](./tailscale.mdx) 或 [%%WireGuard|wireguard%%](./wireguard.mdx) 这样的解决方案更适合于完整系统的安全性和隐私保护。当您仅需要代理 Unraid 的 HTTP 请求时,请使用传出代理管理器。 + +### 设置代理服务器 + +要设置代理服务器: + +1. 在%%WebGUI|web-gui%%中导航到 ***设置 → 出站代理管理器*** 。 + +
+ ![外发代理管理器](/img/outgoing-proxy-manager.png) +
+ +2. 添加代理的名称、URL 和(如果需要)用户名/密码。 +3. 点击 **应用**。 +4. 从列表中选择新的代理并再次点击**应用**。 + +%%WebGUI|web-gui%% 将自动使用所选择的代理进行出站系统流量。如果您有开着的网页终端或%%SSH|ssh%%会话,关闭并重新打开它们以应用新的代理设置。此使用是透明的——监控代理服务器日志以验证活动。 + +### 选择HTTP代理服务器 + +- **如果您的组织提供代理:** 使用网络管理员提供的地址和凭据。 +- **如果您需要自行设置:** + - 由@ich777提供的[代理服务器Docker容器](https://forums.unraid.net/profile/72388-ich777/)经过测试并与Unraid运行良好。 + - 您可以配置此容器通过 Unraid 的 [%%WireGuard|wireguard%% %%VPN|vpn-tunnel%%](wireguard.mdx) 将流量路由到商业 %%VPN|vpn-tunnel%%,或连接到其他基于 Docker 的 %%VPN|vpn-tunnel%% 服务。 + - 为了保证可靠性,将代理服务器托管在与 Unraid 分开的系统上,以确保在启动期间网络可用。 + +要监控代理流量,请转到代理主机系统上的**Docker**标签,选择**代理服务器**容器,并查看**日志**。 + +### 自动导入和插件兼容性 + +- 如果您之前使用过 **代理编辑器** 插件,在升级到带内置代理支持的 Unraid 7.0+ 时将自动移除。 +- `config/go`脚本或`community.applications/proxy.cfg`中的遗留代理设置将自动导入,并且旧文件将重命名以确保安全。 + +### 插件兼容性 + +- 使用PHP的`curl_init()`函数的插件将自动使用外发代理。 +- 使用`file_get_contents()`的插件应迁移到`curl_init()`以实现代理兼容性。 +- 对于命令行进程,优先使用`curl`而非`wget`以支持代理。 + +有关插件开发和兼容性的更多信息,请访问[文档中的插件部分](../../using-unraid-to/customize-your-experience/plugins.mdx)。 + +## Tailscale出口节点 + +%%Tailscale|tailscale%% exit nodes offer a secure and modern way to route your Unraid server's outgoing traffic through another device on your %%Tailnet|tailnet%%. This setup provides the security of a %%VPN|vpn-tunnel%% while leveraging %%Tailscale|tailscale%%'s easy-to-use mesh networking, making it ideal for users who want encrypted outgoing traffic without the complexity of traditional %%VPN|vpn-tunnel%%s. + +:::tip[When 使用 Tailscale 出口节点] +考虑使用%%Tailscale|tailscale%% 出口节点: + +- 在旅行时保护来自家庭网络的外发流量 +- 维护IP地址的一致性以防止封锁VPN流量的服务 +- 与现有%%Tailscale|tailscale%% 基础设施无缝集成 +::: + +### 配置Tailscale出口节点 + +要为服务器的外发流量设置%%Tailscale|tailscale%% 出口节点: + +1. **从社区应用安装[Tailscale插件](https://unraid.net/community/apps/c/plugins?q=tailscale#r:~:text=Plugins-,Tailscale%20\(Plugin\),-Derek%20Kaser)**,如果尚未安装。 +2. \*\*在你的 %%Tailnet|tailnet%% 上设置出口节点。\*\*这可以是另一个 Unraid 服务器、Docker 容器或任何运行 %%Tailscale|tailscale%% 的设备。 +3. **配置你的 Unraid 服务器**以使用出口节点: + - 导航到***设置 → Tailscale***。 + - 在**使用出口节点**字段中选择可用的出口节点。 + - 点击 **应用**。 + +### Mullvad集成 + +Tailscale 与 Mullvad VPN 合作提供商业退出节点。您可以通过[Tailscale购买Mullvad VPN](https://tailscale.com/mullvad),从而获得其全球服务器网络作为退出节点。此组合提供了Tailscale的网状网络与Mullvad隐私优先的基础设施。 + +### Docker容器出口节点 + +你还可以设置 Docker 容器,使其在 Unraid 服务器上充当 %%Tailscale|tailscale%% 出口节点。 + +1. **通过使用[官方%%Tailscale|tailscale%% Docker镜像](https://hub.docker.com/r/tailscale/tailscale)部署%%Tailscale|tailscale%%容器**。 +2. **通过添加`--advertise-exit-node`标志配置容器。** +3. **在您的%%Tailscale|tailscale%% 管理控制台中批准出口节点。** +4. **选择容器作为%%Tailnet|tailnet%%上其他设备的出口节点。** + +## 外发VPN连接 + +Unraid 支持与商业供应商的出站 WireGuard VPN 连接,允许您通过安全隧道路由 Docker 容器或整个服务器的流量。此举对于隐私、绕过地域限制或安全保护外发数据非常有用。有关社区见解和故障排除,请参见[WireGuard VPN隧道访问论坛主题](https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/)。 + +### 选择VPN提供商 + +选择合适的 %%VPN|vpn-tunnel%% 提供商取决于您的优先事项——速度、隐私、易用性和支持。以下提供商在 Unraid 上支持良好,并提供强大的 %%WireGuard|wireguard%% 集成: + +| 提供商 | 最佳用于 | 关键特性 | Unraid 中的支持 | 笔记 | +| -------------------------------------------------------------------------------------------------------- | -------- | ----------------- | ----------- | -------------- | +| [NordVPN](https://nordvpn.com/) | 速度、隐私、价值 | 双NAT,无日志,全球网络 | 优秀 | NordLynx协议,速度快 | +| [Surfshark](https://surfshark.com/) | 预算,无限设备 | 无日志,无限连接,速度快 | 优秀 | 性价比高,设置简单 | +| [ProtonVPN](https://protonvpn.com/) | 隐私,开源 | 双NAT,安全核心,无日志 | 优秀 | 开源,隐私强 | +| [Mullvad](https://mullvad.net/en) | 匿名性,简单性 | 无个人信息,统一定价,开源 | 优秀 | 可用现金支付,无需邮箱 | +| [PureVPN](https://www.purevpn.com/) | 流媒体,灵活性 | 大型网络,轻松 Unraid 集成 | 良好 | 良好的支持,速度快 | +| [CyberGhost](https://www.cyberghostvpn.com/) | 流媒体,易用性 | 优化服务器,速度快 | 良好 | 用户友好型应用 | +| [IVPN](https://www.ivpn.net/en/), [OVPN](https://www.ovpn.com/en), [Windscribe](https://windscribe.com/) | 小众需求 | 高级隐私,区域选择 | 良好 | 社区支持 | + +:::tip +选择一个本身支持%%WireGuard|wireguard%%且具有强隐私政策的提供商。避免需要自定义客户端或专有协议的提供商。 +::: + +### 配置Docker的VPN隧道访问 + +您可以通过商用%%VPN|vpn-tunnel%% 隧道路由特定的Docker容器——无需更改路由器。 + +1. 从所选提供商下载%%WireGuard|wireguard%% 配置文件。 +2. 在***设置 → VPN管理器***中,选择**导入配置**并上传文件。这将创建一个新的隧道。 +3. **访问类型的类型**默认设置为*Docker的VPN隧道访问*。可选地,给它一个本地名称。 +4. 点击 **应用**。 +5. 将隧道开关设置为**活动**。 + +:::tip +记录隧道名称(例如,`wg0`,`wg1`,`wg2`)。在配置 Docker 容器时您将需要此名称。 如果您的供应商在他们的配置中指定了 DNS 服务器,请记录下来以备后用。如果没有,请使用公共 DNS,例如`8.8.8.8`。 +::: + +### 测试Docker隧道 + +要验证您的Docker隧道是否工作正常且未泄露DNS或IP信息: + +1. 通过社区应用安装[Firefox](https://unraid.net/community/apps?q=Firefox) Docker容器。 +2. 将其**网络类型**设置为**自定义:wgX**(用您的隧道名称替换X)。 +3. 切换到**高级**视图,并将DNS提供商添加到**额外参数**(例如,`--dns=8.8.8.8`)。 +4. 应用更改并启动容器。 +5. 启动Firefox并访问[whatismyipaddress.com](https://whatismyipaddress.com/)以验证您的IP地址与VPN服务器的国家匹配。 +6. 访问[dnsleaktest.com](https://www.dnsleaktest.com/)并确认仅检测到您的VPN的DNS服务器。 + +您可以将额外的容器分配到此隧道或创建多个隧道。 + +### 配置系统的VPN隧道访问 + +将所有 Unraid 流量通过商业 VPN 路由: + +1. 从您的提供商下载%%WireGuard|wireguard%%配置。 +2. 在***设置 → VPN管理器***中,选择**导入配置**并上传文件。 +3. 可以选择重命名隧道。 +4. 点击 **应用**。 +5. 将隧道开关设置为**活动**。 + +:::note +- 您可能需要暂时禁用隧道以进行 Unraid 更新或插件安装。 +- 一次只能有一个系统范围内的隧道处于活动状态。 +- Unraid 忽略从导入的配置中获取的 DNS 设置。将 Unraid 的 DNS 设置为可靠的公共服务器(例如,`8.8.8.8`,`8.8.4.4`)。 +::: + +### 测试系统隧道 + +1. 安装[Firefox](https://unraid.net/community/apps?q=Firefox) Docker容器。 +2. 接受所有默认设置。 +3. 启动 Firefox 并访问[whatismyipaddress.com](https://whatismyipaddress.com/)。您的 IP 地址应与您的 VPN 提供商的位置匹配。 + +--- + +### 支持和社区资源 + +欲获取最新指导、故障排除帮助和社区建议,请访问[Unraid论坛](https://forums.unraid.net/)上的以下资源: + +- **[WireGuard VPN隧道访问](https://forums.unraid.net/topic/84316-wireguard-vpn-tunneled-access/)** - 本社区讨论聚焦于通过商业WireGuard VPN提供商路由Docker容器或系统全局流量。它包括实际设置示例、DNS泄漏测试提示和出站隧道故障排除建议。 + +- **[Dynamix WireGuard 插件主题](https://forums.unraid.net/topic/84229-dynamix-wireguard-vpn/)** - 这是 Dynamix WireGuard 插件的官方主题。它涵盖了插件更新、功能请求、错误报告以及与 Unraid 内置 WireGuard 支持相关的一般问题和答案。 + +- **[WireGuard快速入门](https://forums.unraid.net/topic/84226-wireguard-quickstart/)** - 为设置到Unraid的入站WireGuard VPN连接提供的分步骤指南。此资源包括配置演练、对等设置说明以及远程访问提示。 + +\* *"WireGuard"及其标志是Jason A. Donenfeld的注册商标。* diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx new file mode 100644 index 0000000000..68a657fb9d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-connection.mdx @@ -0,0 +1,296 @@ +--- +sidebar_position: 4 +sidebar_label: 保护您的连接 +--- + +# 保护您的连接 + +使用%%SSL|ssl%%加密保护你的Unraid %%WebGUI|web-gui%%安全,保护敏感数据(如登录凭证和配置细节)免于在本地网络或互联网被截取或篡改。你可以使用由[Let's Encrypt](https://letsencrypt.org/)在本地及[Unraid Connect远程访问](../../../unraid-connect/remote-access.mdx)场景下获得的通配符%%SSL|ssl%%证书。 + +:::important[The SSL 的重要性] +%%SSL|ssl%% (Secure Sockets Layer) encrypts all traffic between your browser and the Unraid server, preventing eavesdropping and man-in-the-middle attacks. Without %%SSL|ssl%%, anyone with access to your network could potentially intercept sensitive data or hijack your session. Using %%SSL|ssl%% is strongly recommended for both local and remote management of your Unraid server. +::: + +--- + +## SSL 参数 + +Several parameters in Unraid affect how %%SSL|ssl%% is configured and used. Understanding these helps you choose the right certificate and connection method for your needs. + +| 参数 | 描述 | +| ------------------ | ------------------------------------- | +| **服务器名称** | 设置在***设置 → 识别***中。默认是`塔`. | +| **本地 TLD** | 设置在***设置 → 管理访问***中。默认是`本地`. | +| **使用 SSL/TLS** | 在***设置→管理访问***中设置。控制是否启用%%SSL\|ssl%%。 | +| **HTTP 端口** | 设置在***设置 → 管理访问***中。默认是`80`. | +| **HTTPS 端口** | 设置在***设置 → 管理访问***中。默认是`443`. | +| **证书** | 使用的 %%SSL\|ssl%% 证书类型(参见下文)。 | +| **局域网 ip** | 服务器的局域网 IP 地址,格式适用于 URL 使用。 | +| **广域网 ip** | 服务器的公共 IP 地址,格式适用于 URL 使用。 | +| **%%Hash\|hash%%** | 分配给服务器证书的唯一 40 字符标识符。 | + +### SSL 证书类型 + +| 类型 | 使用时机 | 优缺点 | +| ---------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| **自签名** | 用于仅本地访问时不需要可信证书的情况。 | 设置简单,但浏览器会显示警告。一旦接受警告,流量即被加密。 | +| **Myunraid.net** | 用于安全的本地和远程访问,特别是使用 Unraid Connect 或者如果需要可信的证书。 | Trusted by browsers, no warnings. Enables secure remote access via Unraid Connect. | +| **自定义** | 对于需要通配符或自定义域证书的高级用户(需要 %%DNS\|dns-name-resolution%% 配置)。 | 可信、灵活,但需要额外设置。 | + +--- + +## 访问您的 WebGUI 的方式 + +以下是在不同 %%SSL|ssl%% 配置下访问您的 Unraid %%WebGUI|web-gui%% 的主要方式: + +#### 仅 HTTP(未加密) + +
+ 点击展开/折叠 + + 在仅有 HTTP 的情况下,浏览器和服务器之间的流量未加密。 + + 1. 转到***设置 → 管理访问***。 + 2. 将 **使用 SSL/TLS** 设置为*否*。 + 3. 将 **本地 TLD** 保持为 `local`,除非您拥有自己的 DNS。 + 4. 访问 URL: + - `http://[服务器名].[本地 TLD]` (例如:`http://tower.local`) + - `http://[ip 地址]` (例如:`http://192.168.100.1`) + 5. 点击 **应用**。 + + :::警告 + 您网络上的任何人都可以拦截通过HTTP发送的数据。请尽可能使用HTTPS。 + ::: +
+ +--- + +#### HTTPS 配合自签名证书 + +
+ 点击展开/折叠 + + 流量已加密,但因为证书不是由可信机构签署,浏览器会显示警告。 + + 1. 转到***设置 → 管理访问***。 + 2. 将 **使用 SSL/TLS** 设置为*是*。 + 3. 将 **本地 TLD** 保持为 `local`,除非您拥有自己的 DNS。 + 4. 访问 URL: + - `https://[服务器名].[本地 TLD]` (例如:`https://tower.local`) + - `https://[ip 地址]` (例如:`https://192.168.100.1`) + 5. 点击 **应用**。 + + :::重要 + 浏览器将显示证书错误。接受警告后,所有流量仍然加密。 + ::: +
+ +--- + +#### 用 Myunraid.net 证书和备用 URL 的 HTTPS 访问 + +
+ 点击展开/折叠 + + 您可以通过使用Myunraid.net证书的 %%WebGUI|web-gui%% 安全地访问您的服务器,并在%%DNS|dns-name-resolution%% 分辨率不可用时配置备用URL。所有流量将被加密,服务器配置为当%%DNS|dns-name-resolution%% 不可用时回退到辅助方法。 + + 1. 转到***设置 → 管理访问***。 + 2. 保持 **本地 TLD** 的默认值 `local`,除非您可以提供自己的 DNS 名称解析(用于备用证书)。 + 3. 将 **使用 SSL/TLS** 设置为*否*或*是*。 + 4. 按下 **生成** 来生成 myunraid.net 证书。 + + **当使用 SSL/TLS 设置为*否*时的主要 URL**: + + - `http://[服务器名].[本地 TLD]` (例如:`http://tower.local`) + - `http://[ip 地址]` (例如:`http://192.168.100.1`) + + **当使用 SSL/TLS 设置为*是*时的主要 URL(使用自签名证书)**: + + - `https://[服务器名].[本地 TLD]` (例如:`https://tower.local`) + - `https://[ip 地址]` (例如:`https://192.168.100.1`) + + **您的替代 myunraid.net URL**: + + - `https://[lan-ip].[hash].myunraid.net` (例如:`https://192-168-100-1.a1b2c3d4e5.myunraid.net`) + - 此 URL 显示在 **访问管理** 页面的 **本地访问 URL** 字段中。 + - 如果您安装了 [Unraid Connect 插件](../../../unraid-connect/overview-and-setup.mdx),它也会显示在 Connect 仪表板上。 + + :::信息 + myunraid.net证书受浏览器信任,不显示警告。URL使用您的LAN IP地址,其中点更改为破折号,加上分配给您服务器的唯一40字符%%hash|hash%%。 + ::: + + :::提示\[后备访问] + 如果 %%DNS|dns-name-resolution%% 分辨率不可用(例如,您的互联网断开),您可以使用本地URL与服务器名称或IP地址作为备用访问方法。 + ::: +
+ +#### 用 Myunraid.net 证书且无备用 URL 的 HTTPS 访问 + +
+ 点击展开/折叠 + + 这种方法通过要求所有 %%WebGUI|web-gui%% 访问使用 Myunraid.net 证书和 URL 提供了最高级别的 %%SSL|ssl%% 执行。它适合希望最大安全性并且不需要通过本地IP或主机名访问服务器的用户,如果 %%DNS|dns-name-resolution%% 不可用。 + + 1. 在 %%WebGUI|web-gui%% 中的 ***设置 → 访问管理***。 + 2. 保持 **本地 TLD** 设置为 `local`,除非您有自己的 %%DNS|dns-name-resolution%% 名称解析(用于备用证书,如果您稍后运行 `use_ssl` 命令)。 + 3. 点击 **生成** 来生成 Myunraid.net 证书。 + 4. 如果您的网络没有 %%DNS|dns-name-resolution%% 重新绑定问题,**使用 SSL/TLS** 的*严格*选项将可用。 + 5. 将 **使用 SSL/TLS** 设置为*严格*(或早期 Unraid 版本中的*自动*)。 + 6. 您的访问 URL 将是:\ + `https://[lan-ip].[hash].myunraid.net` (例如:`https://192-168-100-1.a1b2c3d4e5.myunraid.net`) + + 如果您安装了 [Unraid Connect 插件](../../../unraid-connect/overview-and-setup.mdx),它也会显示在 Connect 仪表板上。 + + :::注意 + 如果 %%DNS|dns-name-resolution%% 分辨率不可用(例如,您的互联网连接断开),您将无法使用 Myunraid.net URL 访问 %%WebGUI|web-gui%% 。 + + 重新获得访问权限的方法: + + - 使用 Telnet、%%SSH|ssh%% 或本地键盘/显示器登录。 + - 运行 `use_ssl no` 切换到 HTTP (`http://[服务器名].[本地 TLD]` 或 `http://[ip 地址]`)。 + - 运行`use_ssl yes`以切换到使用自签名证书的HTTPS(`https://[servername].[localTLD]`或`https://[ipaddress]`)。详细信息请参阅上文[自签名证书的HTTPS](#https-with-self-signed-certificate)。 + - 一旦 %%DNS|dns-name-resolution%% 恢复,将 **使用 SSL/TLS** 设置为*严格*以获得完整安全性。 + ::: +
+ +--- + +## 重定向 + +当您访问 `http://[服务器名].[本地 TLD]` 时,重定向行为取决于您的 **使用 SSL/TLS** 设置: + +- **严格**:您将被重定向到 `https://[lan-ip].[hash].myunraid.net`。 + :::注意 + 如果 %%DNS|dns-name-resolution%% 不可用,这可能会使本地访问困难。请参阅 [HTTPS 使用 Myunraid.net 证书并且无备用 URL](#https-with-myunraidnet-certificate-and-with-no-fallback-url)下的注意事项。 + ::: + +- **是**:您将被重定向到`https://[servername].[localTLD]`。即使您的互联网连接中断,这也能正常工作。 + +- **否**:HTTP URL 将直接加载,无重定向或加密。 + +:::tip +重定向仅在您从 HTTP URL 开始时才有效,而不是 HTTPS URL。 +::: + +--- + +## 自定义证书 + +自定义证书允许您使用自己的 %%SSL|ssl%% 证书,如由商业证书颁发机构签发的证书或域的通配符证书来保护 Unraid %%WebGUI|web-gui%%。 + +A custom certificate is any %%SSL|ssl%% certificate that you provide and manage yourself, rather than one generated by Unraid or Let's Encrypt. This is useful if you want to use your own domain name, a wildcard certificate, or integrate with your organization's PKI infrastructure. + +:::info\[When 使用自定义证书时,您需负责... + +- 从可信的证书颁发机构(CA)采购证书 +- 管理所选域的 %%DNS|dns-name-resolution%% 记录 +- 根据需要上传和更新证书 +- 确保证书与服务器的域名匹配(在主题或主题备用名称字段中) + +::: + +如果您的证书无效或与服务器的 URL 不匹配,Unraid 将删除它并恢复为默认证书。 + +### HTTPS 配合自定义证书(可选的 Unraid Connect 远程访问) + +
+ 通过 HTTPS 和自定义证书访问 - 点击以展开/折叠 + + 1. 转到***设置 → 管理访问***。 + 2. 将 **使用 SSL/TLS** 设置为*是*。 + 3. 将 **本地 TLD** 设置为证书主题中的域名。 + 4. 通过`https://[servername].[localTLD]`(例如,`https://tower.mydomain.com`)访问您的服务器。您必须为此URL管理DNS。 + 5. 将您的证书上传到 `/boot/config/ssl/certs/[服务器名]_unraid_bundle.pem`。 + 6. 证书必须对 `[服务器名].[本地 TLD]` 或通配符 `*.[本地 TLD]` 有效(其中 `[本地 TLD]` 与您在 **本地 TLD** 字段中输入的完全相符)。 + - 域必须出现在主题或主题备用名称字段中(Unraid 6.10.3+ 支持 SANs)。 + - 如果证书不匹配,Unraid 将删除它。 + 7. 可选启用 [Unraid Connect 远程访问](../../../unraid-connect/remote-access.mdx) 以实现安全、浏览器受信任的远程管理。 + + :::提示 + 对于通配符证书,确保证书的主题备用名称或主题字段包含 `*.[localTLD]`,其中 `[localTLD]` 是您在 **管理访问** 中输入的确切值。 + ::: +
+ +--- + +## SSL 故障排除和高级配置 + +本节介绍了一些关于使用 myunraid.net 证书的常见 SSL 相关问题和高级配置选项,无论您是否安装了 Unraid Connect。 + +### DNS 重绑定保护 + +DNS rebinding protection is a security feature on many routers that prevents public DNS entries from resolving to local IP addresses. This helps protect your network from certain attacks, but can cause issues when trying to use %%SSL|ssl%% certificates for local access to the Unraid %%WebGUI|web-gui%%. + +如果在尝试提供 %%SSL|ssl%% 证书时遇到DNS重绑定错误(例如,点击 **提供** 按钮后),请考虑以下步骤: + +- 在错误信息上点击 **确定**,等待2至5分钟,然后重试。 +- 如果错误仍然出现,请检查路由器设置中与“DNS重绑定保护”或类似术语相关的选项。 +- 允许对 `myunraid.net` 域进行DNS重绑定。 +- 请记住,DNS更改需要时间传播,因此在更新后可能会再次看到错误。 + +具体步骤可能根据您的路由器型号和固件而有所不同。 + +### 当DNS失效时访问服务器 + +当 %%SSL|ssl%% 开启并使用 myunraid.net 证书时,通常通过一个完全限定域名(FQDN)访问 Unraid 服务器,例如: + +``` +https://ip.yourpersonalhash.myunraid.net +``` + +或者,如果您使用自定义HTTPS端口: + +``` +https://ip.yourpersonalhash.myunraid.net: +``` + +这确保您使用有效的%%SSL|ssl%%证书进行安全访问。然而,如果您的互联网连接中断且浏览器未缓存DNS条目,您可能会失去访问%%WebGUI|web-gui%%的权限。 + +如果您失去了DNS或互联网访问: + +- 如果**使用SSL/TLS**设置为**是**,请尝试访问您的服务器: + ``` + https://[servername].[localTLD] + ``` + 或者使用自定义端口: + ``` + https://servername.[localTLD]: + ``` + +- 如果这不起作用,或者 **使用SSL/TLS** 设置为 **严格**: + 1. 使用telnet、%%SSH|ssh%% 或直接连接的键盘/显示器登录到您的服务器。 + 2. 运行命令: + ```bash + use_ssl no + ``` + 3. 您现在可以在以下位置访问 %%WebGUI|web-gui%% : + ``` + http:// + ``` + 或者,如果使用自定义端口: + ``` + http://: + ``` + (注意:这使用的是HTTP,而不是HTTPS。) + +互联网访问恢复后,前往***设置→管理访问***并将 **使用SSL/TLS** 设置回 **严格** 以重新启用本地SSL。 + +### 禁用本地访问的SSL + +如果您希望在受信的家庭网络上使用简单的HTTP连接,或面临 %%SSL|ssl%% 证书提供、DNS重绑定或浏览器兼容性的问题,应禁用本地访问的 %%SSL|ssl%% 。 + +要禁用本地访问的 %%SSL|ssl%% : + +1. Go to ***Settings → Management Access*** in the WebGUI. +2. 将 **使用SSL/TLS** 设置为 **否**。 +3. 点击 **应用**。 + +此更改还将禁用远程访问功能,因为 %%SSL|ssl%% 对于安全的远程连接是必要的。 + +:::caution +禁用%%SSL|ssl%%意味着您的%%WebGUI|web-gui%%将通过未加密的HTTP访问。这将会暴露您的登录凭证和会话数据给本地网络中的任何人,除非您确信您的网络是安全的且不需要远程访问,否则不建议这么做。为了实现最佳安全,尽可能保持%%SSL|ssl%%启用。 +::: + +:::note +%%SSL|ssl%% management is a core feature of Unraid and does not rely on the Unraid Connect plugin. You can disable %%SSL|ssl%% without affecting other Unraid functionality. +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx new file mode 100644 index 0000000000..92459a859d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/securing-your-data.mdx @@ -0,0 +1,56 @@ +--- +sidebar_position: 5 +sidebar_label: 加密您的数据 +--- + +# 加密您的数据 + +在 Unraid 中加密您的驱动器为敏感数据增加了强大的保护层,有助于防止当驱动器丢失或被盗时未经授权的访问。加密可用于 %%array|array%% 和 %%cache pool|cache-pool%% 。不过,请注意加密可能会使数据恢复复杂化,因此仅在您需要特定级别的数据机密性时使用,例如存储敏感个人、业务或受监管的信息时。 + +:::caution +加密增加了数据安全性,但可能会使硬件故障的恢复变得复杂。\*\*只有在真正需要和可靠的备份系统情况下才启用加密。\*\*如果丢失加密密钥或密钥文件,您的数据将永久无法访问。 +::: + +
+ 何时应考虑加密硬盘驱动器? - 点击展开/折叠 + + - 您在 Unraid 服务器上存储机密、受监管或敏感的数据。 + - 您担心如果驱动器被物理移除或盗窃的数据失窃。 + - 您需要遵守组织或法律的数据保护要求。 + + 如果您主要将 Unraid 用于家庭媒体或非敏感文件,可能不需要加密,因为这会使故障排除和恢复变得复杂。 +
+ +## 如何在 Unraid 中加密驱动器 + +:::warning +加密驱动器将清除驱动器上的所有现有数据。 +::: + +:::important[Before 加密] +Move all data off the drive you want to encrypt to another location (another drive in your %%array|array%%, a %%cache pool|cache-pool%%, or external backup). For details on safely moving your data, see [Converting to a new file system type](../../using-unraid-to/manage-storage/file-systems.mdx#converting-to-a-new-file-system-type). +::: + +加密驱动器: + +1. 在 %%WebGUI|web-gui%% 中转到 **Main** 标签。 +2. 停止%%array|array%%。 +3. 选择您要加密的驱动器。 +4. 在**文件系统类型**中,选择您所需文件系统的加密版本 (例如,`xfs-encrypted`,`btrfs-encrypted`)。 +5. 点击**应用**以提交更改。 +6. 点击 **完成** 返回到 **主** 标签。现在,驱动器将显示为无法挂载,您将可以选择格式化无法挂载的驱动器。 +7. 仔细检查您是否选择了正确的驱动器,然后 [格式化它](../../using-unraid-to/manage-storage/file-systems.mdx#creating-a-file-system-formatting) 以完成加密设置。 + +After enabling encryption, you must provide the encryption key or key file each time you start the %%array|array%%. Once unlocked, encrypted drives function just like any other volume in Unraid. + +--- + +## 加密密钥管理 + +Unraid requires the same encryption key or key file for all encrypted drives in your system. + +- 您可以使用密码短语或密钥文件(如随机图像文件)。 +- Store your encryption key or key file in a secure, offline location. Do not rely solely on your Unraid server for key storage. +- 如果您丢失密钥或密钥文件,您的加密数据将无法恢复—没有例外。 + +加密驱动器使用行业标准%%LUKS|luks%%格式,可以在任何现代Linux系统上使用正确的密钥解锁。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx new file mode 100644 index 0000000000..3121da6a7a --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/security-fundamentals.mdx @@ -0,0 +1,174 @@ +--- +sidebar_position: 1 +sidebar_label: 安全基础 +--- + +# 安全基础 + +:::note[Principle 最低权限] +最小权限原则意味着仅赋予用户和设备执行任务所需的最低权限,绝不超越。这种方法限制了被入侵账户或意外操作造成的潜在损害,是现代安全的核心概念,包括零信任模型。在您的 Unraid 配置中应用此原则,尤其是在创建共享用户和分配权限时。 +::: + +## 控制共享文件夹的访问 + +### 选择网络文件共享协议 + +通过家庭或办公室网络共享文件到 Unraid 服务器时,您有多种连接选择。Unraid 支持常见的通信协议,以帮助设备之间进行通信。 + +| 协议 | 主要用途 | 优势 | 劣势 | 推荐使用场景 | +| ----------------------- | ----------------- | -------------------------------- | --------------------------------- | ------------------------------------------------------------- | +| %%SMB\|samba%% (服务器消息块) | 原生Windows/macOS集成 | 内置Windows支持;支持打印机和虚拟机存储;处理大文件速度快 | 旧版本(SMBv1)不安全;处理小文件速度慢 | 适用于Windows和Mac网络;资源混合环境(打印机、虚拟机) | +| %%NFS\|nfs%% (网络文件系统) | 本地 Unix/Linux 集成 | 针对 Linux/Unix 优化;对小文件实现高效;低开销 | 需要额外的工具用于Windows;网络可靠性至关重要;锁定功能有限 | 适用于Linux和Unix环境;小文件操作;静态数据工作负载 | +| %%FTP\|ftp%% (文件传输协议) | 跨平台兼容性 | 通用客户端支持;简单设置;批量文件传输 | 明文协议,无加密;凭证未加密发送;过时的安全性 | 仅用于非敏感或旧系统传输;为安全文件传输使用 FTPS(FTP over TLS)或 SFTP(FTP over SSH) | + +:::important +从 Unraid 版本 6.9 开始,\*\*%%AFP|AFP%%(Apple Filing Protocol)\*\*支持已被移除。为了确保您的 Mac 电脑与 Unraid 服务器良好协作,包括使用时间机器备份等功能,请进入 ***设置 → SMB*** 并启用 **增强的 macOS 互通性**。 +::: + +选择使用何种协议取决于您拥有的设备类型以及对文件的需求。默认情况下,Unraid 启用 %%SMB|samba%%,因为它被现代 Windows 和 macOS 系统广泛支持。%%NFS|nfs%% 和 %%FTP|ftp%% 处于关闭状态,但可以在需要时启用。 + +例如,如果您使用 %%FTP|ftp%% 客户端连接到 Unraid 服务器,您可以轻松传输大文件,甚至需要时暂停和恢复上传或下载。 + +--- + +### 管理共享的网络可见性 + +您可以通过以下方式在 Unraid 中为网络文件夹(共享)设置不同的访问权限: + +1. **转到共享选项卡**:首先点击%%WebGUI|web-gui%%中的**共享**选项卡。 + +2. **选择一个共享**:选择您想要调整的现有共享。 + +3. **滚动到安全设置**:在共享设置页面底部,您将看到针对每个启用协议的安全选项部分。 + +4. **调整导出设置**:此设置控制共享在网络上的可见性。您有三个选项: + + - **是**:共享是可见的,任何浏览网络的人都可以访问它。 + - **是(隐藏)**:共享不会出现在网络浏览列表中,但如果有人知道共享的名称,他们仍然可以访问。 + - **否**:共享完全隐藏,通过该特定协议不可访问。 + +通过调整这些选项,您可以管理每个共享的可见性和访问权限,从而更轻松地保持安全,同时确保合适的人可以使用 %%SMB|samba%%、%%NFS|nfs%% 或 %%FTP|ftp%% 进行访问。 + +--- + +### 设置用户权限用于共享 + +共享安全控制用户如何访问您系统上的共享文件。您可以设置共享以要求用户名和密码来访问文件,限制为只读访问,或使其完全公开无需凭据。 + +:::note\[Example] + +如果您在 Unraid 服务器上创建一个 `movies` 共享,您可以选择是否要求有效的用户名和密码仅用于读取数据或允许公开访问。如果需要添加用户,%%root 用户|root-user%%可以按照 [**用户管理**](./user-management.mdx#add-users) 中的流程创建共享用户。 + +::: + +访问 **共享** 标签并选择一个共享,您将看到其设置,包括一个安全部分,您可以根据启用的协议管理[访问权限](#managing-network-visibility-of-shares)。通过这种方式,您可以根据他们的需求定制谁可以访问您的文件。 + +**安全**设置有以下选项: + +| 类型 | 解释 | 常见使用场景 | +| ------ | ------------------------- | -------------------- | +| **公开** | 开放访问:每个人都可以读取和写入此文件夹。 | 适合非敏感信息,如共享媒体或公开下载。 | +| **安全** | 限制访问:每个人可以读取,但只有特定用户可以写入。 | 适用于需要协作的共享项目,如团队文件夹。 | +| **私有** | 限制访问:只有特定用户可以读取或写入。 | 适用于敏感信息,如财务记录或个人文件。 | + +:::caution\[Windows SMB 访问 + +由于更严格的安全策略,现代版本的 Windows(Windows 10 1709+、Windows 11、Server 2019+)默认阻止访问 **公共**(访客/匿名)%%SMB|samba%% 共享。除非您在 Windows 设置中手动启用不安全的访客登录,否则尝试连接公共共享通常会失败——出于安全原因不建议这样做。 + +**最佳实践:** 为您的 Unraid 共享设置用户帐户和密码,并使用这些凭据从 Windows 可靠访问。 + +**凭证限制:** Windows每次仅允许对一个服务器使用一组登录凭证。如果尝试使用不同凭证连接同一服务器上的不同共享,连接将失败。 + +**解决方法:** 如果遇到凭证问题,请尝试使用服务器名称连接一个共享,而使用其IP地址连接另一个共享。Windows将它们视为不同的服务器。 + +有关更多详细信息,请参阅[Microsoft关于SMB访客访问的文档](https://learn.microsoft.com/en-us/windows-server/storage/file-server/enable-insecure-guest-logons-smb2-and-smb3)。 + +::: + +--- + +## 网络安全 + +### 设置强大的 root 密码 + +当您首次安装后访问 %%WebGUI|web-gui%% 时,系统会要求您为 %%root user|root-user%% 设置密码。然而,Unraid 并不强制执行密码复杂性要求——由您自行决定为服务器设置密码安全性的程度。 + +- 转到**用户**选项卡,选择%%root用户|root-user%%并设置密码。 +- 考虑使用来自[社区应用](../../using-unraid-to/run-docker-containers/community-applications.mdx)的**Dynamix密码验证器**插件进行实时强度反馈。 +- 有关更多指导,请查看在线提供的[Bitwarden密码强度工具](https://bitwarden.com/)。 + +### 审查和最小化端口转发 + +从您的路由器转发端口到 Unraid 服务器可能是远程访问服务所必需的,但这会将您的网络暴露在重大风险中。仅转发您完全了解和需要的端口。 + +| 端口 | 典型用途 | 安全风险 | 更安全的替代方案 | +| ---------- | ----------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------------------ | +| 80 / 443 | %%WebGUI\|web-gui%% (HTTP/HTTPS) | 暴露管理界面;如果密码较弱,存在被拦截或暴力破解的风险 | 使用 Unraid Connect 或 VPN 进行远程访问,请注意 Unraid Connect 需要进行 WAN 端口转发或使用 UPnP(而不是始终在线的云中继) | +| 445 | %%SMB\|samba%% (文件共享) | 将共享暴露在互联网上;存在数据盗窃或删除的风险 | 使用VPN进行安全的远程文件访问 | +| 111 / 2049 | %%NFS\|nfs%% | 公开 %%NFS\|nfs%% 共享;与 %%SMB\|samba%% 类似的风险 | 使用VPN进行远程访问 | +| 22 / 23 | %%SSH\|ssh%%/Telnet | 暴露控制台访问;存在暴力破解或凭证盗窃的风险 | 使用 %%SSH\|ssh%% 密钥或 VPN;永远不要转发 Telnet | +| 57xx | %%VNC\|vnc-session%% 用于 %%VMs\|vm%% | 公开 %%VM\|vm%% 控制台;有未经授权的远程访问风险 | 使用 Unraid Connect 或 VPN | + +:::tip +如果看到不理解的端口转发规则,请删除它并监控问题。如有必要,可以重新添加。 +::: + +:::caution +切勿将您的服务器置于网络的 DMZ 中。将 Unraid 服务器放在 DMZ 中会将所有端口暴露在互联网上,大大增加被攻陷的风险。即使有强密码,也永远不建议这样做。 +::: + +--- + +## 共享访问安全 + +### 控制共享的可见性和权限 + +- 使用 WebGUI 中的 **Shares** 选项卡设置每个共享的导出和安全设置。 +- 对于敏感数据,建议使用私人或安全共享。公共共享可被网络上的任何人访问,在现代Windows版本中默认被阻止以确保安全。 +- 为用户账户分配其角色所需的权限(最小特权)。 +- 尽可能限制共享访问给特定用户。 + +### 仔细分配用户权限 + +- 根据需要使用只读或读/写访问将用户分配给共享。 +- %%root用户|root-user%%账户用于系统管理,不能访问网络共享。为网络共享访问创建专用用户账户。 +- 定期检查用户权限并移除未使用账户。 + +### 限制共享访问至私有或只读 + +尽管无密码访问共享文件很方便,但如果您的本地网络设备遭到入侵,这也可能使您的数据处于风险之中。这包括 PC、Mac、移动设备和 IoT 设备。默认情况下,Unraid 共享设置为可公开读取和写入,意味着网络上的任何设备可能在遭到入侵时窃取、删除或加密您的文件。此外,恶意用户可以上传不需要的数据到您的服务器。 + +- 在%%WebGUI|web-gui%%的**共享**选项卡中将敏感共享设置为**私有**。 +- 如果需要**公开**共享,请尽可能将其设置为**只读**。 +- 只将写入权限给予拥有强密码的授权用户。 + +### 避免公开闪存共享,或使其保密 + +Unraid 闪存设备包含关键的系统和配置文件。虽然通过 %%SMB|samba%% 公开闪存共享以进行高级配置可能很方便,但如果公开,会带来显著的风险。 + +- 仅在绝对必要时曝光闪存共享并将其设为**私有**。 +- 访问时要求用户名和强密码。 +- 在不使用时删除或禁用共享以降低风险。 + +### 保持服务器更新 + +定期更新对于安全至关重要。经常发现新的漏洞 (CVEs),Lime Technology 积极地为 Unraid OS 发布补丁。更新只有在您实际应用更新时才有效。 + +- 在%%WebGUI|web-gui%%中的***工具 → 更新OS***中检查更新。 +- 在***设置 → 通知***中启用通知,以便在有更新时收到提醒。 +- 通过**应用程序**选项卡更新插件和Docker容器,确保所有组件安全且兼容。 +- 及时应用更新,确保您的服务器免受已知威胁。 + +### 使用安全的方法进行远程管理 + +绝不要将%%WebGUI|web-gui%%直接暴露于互联网。相反,请使用安全的远程访问解决方案: + +- **%%Tailscale|tailscale%%** 是推荐的选项,在 Unraid 中有专用的插件。它为从世界任何地方访问您的服务器和服务创建了安全的私人网络 (tailnet),无需暴露端口或配置复杂的防火墙规则。 +- **%%WireGuard|wireguard%% VPN** 是内置于 Unraid 中的,并提供了远程管理的安全加密隧道。 +- **%%OpenVPN|openvpn%%** 可作为插件或Docker容器使用。 +- 许多现代路由器提供内置VPN支持 - 查看路由器文档了解设置。 +- [Unraid Connect](../../../unraid-connect/overview-and-setup.mdx)插件使得可以远程访问%%WebGUI|web-gui%%,但需要在路由器上转发端口。 + +--- + +\* “%%WireGuard|wireguard%%”和“%%WireGuard|wireguard%%”徽标是Jason A. Donenfeld的注册商标。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx new file mode 100644 index 0000000000..7bb065ad24 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/tailscale.mdx @@ -0,0 +1,183 @@ +--- +sidebar_position: 6 +sidebar_label: Tailscale +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Tailscale + +Unraid 现在通过与 [%%Tailscale|tailscale%%](https://tailscale.com/) 的技术合作,提供了深度集成,使您的服务器能够实现无缝、安全的网络连接。%%Tailscale|tailscale%% 不是传统的 VPN,而是一种基于 %%WireGuard|wireguard%% 的现代点对点覆盖网络。它可以将设备、服务器和单个 Docker 容器连接到您的安全私人网络 (%%Tailnet|tailnet%%),无论其物理位置或网络环境如何。Unraid 的合作确保了 %%Tailscale|tailscale%% 插件的完整维护和紧密集成,为 Unraid 7 及更新版本提供原生证书支持和高级功能。 + +- **简单设置:** 无需端口转发或防火墙困扰。 +- **强大的安全性:** 使用 %%WireGuard|wireguard%% 加密核心技术。 +- **灵活共享:** 仅授予对特定设备或容器的访问权限,而不是整个网络。 +- **一流支持:** 官方维护的插件,持续增强。 + +--- + +## 开始使用 Tailscale + +首先,[注册一个免费的 Tailscale 帐户](https://login.tailscale.com/start) 并在至少一个设备(Windows, macOS, Linux, iOS, Android 等)上安装客户端。免费帐户最多支持三位用户和 100 台设备。 + +在添加 Unraid 之前,请考虑: + +- [为更易识别重命名您的 %%Tailnet|tailnet%%](https://tailscale.com/kb/1217/tailnet-name)。 +- 启用 [%%MagicDNS|magicdns%%](https://tailscale.com/kb/1081/magicdns) 以简化设备命名。 +- 启用 [HTTPS 证书](https://tailscale.com/kb/1153/enabling-https) 以实现安全、可信的访问。 + +:::note +HTTPS证书中的机器名称是公开的。使用您愿意分享的名称。 +::: + +### 将 Tailscale 添加到 Unraid + +以下步骤适用于 Unraid 7 及更高版本: + +1. 按上述描述检查您的 Tailscale 帐户设置。 +2. 在 Unraid 中,搜索 [**Community Apps**](../../using-unraid-to/run-docker-containers/community-applications.mdx) 标签中的官方 %%Tailscale|tailscale%% 插件并安装。 +3. 打开***设置→Tailscale***并单击重新验证。使用您的%%Tailscale|tailscale%%账户登录。 +4. 点击 **连接** 以将您的 Unraid 服务器添加到您的 %%Tailnet|tailnet%%。 +5. 访问 ***Settings → Management Access*** 查看您的 %%Tailscale|tailscale%% 用于 WebGUI 的 URL。 +6. 在***设置→Tailscale***中,找到您的服务器的%%Tailnet|tailnet%%名称和IP。使用这些信息从您的%%Tailnet|tailnet%%上的任何设备访问SMB/NFS共享、Docker容器等。 + +### 子网路由(可选) + +要通过其主 LAN IP 访问您的 Unraid 服务器(或访问具有自有 IP 的 Docker 容器): + +1. 转到 ***Settings → Tailscale***,点击查看,并登录。 +2. 点击 **子网路由器** 并添加: + - 您的 Unraid 服务器的 IP(例如,`192.168.0.12/32`),或 + - 您的整个网络的子网(例如,`192.168.0.0/24`)。 +3. 点击 **发布路由**。 +4. 在您的 Tailscale 管理控制台中批准待处理路由。 +5. 一旦获得批准,您的 %%Tailnet|tailnet%% 设备就可以通过其常规 IP 地址访问您的 Unraid 服务器和/或 LAN 设备。 +6. For advanced details, see the [%%Tailscale|tailscale%% %%subnet routing|subnet-routing%% documentation](https://tailscale.com/kb/1019/subnets). + +--- + +## 将 Tailscale 添加到 Docker 容器 + +Unraid使连接[Docker容器](../../using-unraid-to/run-docker-containers/overview.mdx)到您的%%Tailnet|tailnet%%变得简单,给每个容器分配一个唯一的设备身份以实现安全、灵活的远程访问。通过这种集成,您可以分享对单个容器的访问权限,而无需暴露整个服务器,并可利用高级功能,如出口节点、Serve、Funnel等,按容器独立配置。设置完全自动化,因此所有技术水平的用户都可以受益于增强的安全性和简化的网络连接。 + +
+ 如何运作 Tailscale-Docker 集成 - 点击展开/折叠 + + 当您启用 Docker 容器的 **使用 %%Tailscale|tailscale%%** 并应用更改时,Unraid 会自动执行以下步骤以实现无缝集成: + + 1. **入口点提取:** Unraid 识别容器的原始入口点和命令,保留其预期的启动行为。 + 2. **集成脚本注入:** `tailscale_container_hook` 脚本会被挂载到容器内,并更新入口点以首先运行此脚本。 + 3. **环境设置:** 将原始入口点、命令和所有必需的 %%Tailscale|tailscale%% 变量传递给 Docker 运行命令。 + 4. **%%Tailscale|tailscale%% 初始化:** 启动时,挂载脚本会安装任何依赖项,下载并在容器内启动 %%Tailscale|tailscale%% 客户端。 + 5. **正常启动:** 然后脚本会启动容器的原始入口点和命令,因此您的应用程序可以照常运行 - 并自动层叠上 Tailscale 网络。 + + 一旦启用,容器就会显示为您 Tailnet 上的一个独立设备,准备好用于安全访问和高级 Tailscale 功能,无需手动网络配置或端口转发。 +
+ +:::warning[Container 兼容性] +Tailscale集成不适用于所有容器。如果启用了Tailscale,某些容器可能根本无法运行,特别是以下情况的容器: + +- 自定义网络要求 +- 特定的网络隔离需求 +- 与 Tailscale 网络修改相冲突的应用程序 + +请首先在非关键容器上测试 Tailscale 集成,并准备在容器无法正常工作时禁用它。 +::: + +:::note\[Prerequisites] + +- 首先,在任何将访问您 Docker 容器的计算机上安装 %%Tailscale|tailscale%%。 +- 尽管 Unraid Tailscale 插件不是 Docker 集成的必要条件,但强烈建议在您的 Unraid 服务器上安装并登录以获得最佳体验。 + +::: + +将 %%Tailscale|tailscale%% 添加到 Docker 容器: + +1. 请查看您的 %%Tailscale|tailscale%% 帐户设置,如 [开始使用部分](#getting-started-with-tailscale) 所述。 +2. 在 Unraid 中,转到 **Docker** 选项卡并 [编辑所需的容器](../../using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx)。 +3. 启用 **使用 Tailscale** 开关。 +4. 为容器输入一个 **Tailscale 主机名**(必须在您的 Tailnet 上唯一)。 + +:::warning +HTTPS 证书将为此主机名生成,并发布在公共证书册中。选择您愿意公开分享的名称。有关详细信息,请参阅 [Tailscale HTTPS 文档](https://tailscale.com/kb/1153/enabling-https)。 +::: + +5. 决定此容器是否应成为出口节点(对于 VPN 容器非常有用)。 +6. 选择容器是否应使用出口节点处理其外发流量。如果安装了 Tailnet 插件,您将看到可用的出口节点列表;否则,请手动输入 IP。 +7. 如果使用出口节点,指定容器是否还应访问您的 LAN。 +8. Tailscale **用户空间网络** 字段通常自动设置。除非有特定需求,否则请保持禁用状态。 +9. 决定是否启用 **%%Tailscale|tailscale%% %%SSH|ssh%%**(通过 %%Tailscale|tailscale%% 认证的安全外壳访问)。 + +:::info[Serve 与漏斗] +- **Serve**:允许您使用友好的 HTTPS URL 从您的 Tailnet 安全访问容器的网页或 Web 服务。不需要端口转发,且只能通过 Tailnet 设备进行连接。 +- **Funnel**: 通过独特的HTTPS URL将容器的网站发布到公共互联网。任何拥有链接的人,即使不在您的Tailnet上,也可以访问该网站。谨慎使用,因为这会将您的服务暴露给更广泛的互联网用户。 +::: + +10. 启用 **Serve** 可将容器的 Web 界面反向代理到您的 Tailnet,或启用 **Funnel** 以使其在公共互联网中可访问。Unraid 将根据容器的 WebUI 设置自动检测要使用的端口。如有需要,还提供高级选项。 + +:::warning +使用 Serve 或 Funnel 时,没有额外的身份验证层 - 容器负责管理用户访问。请相应地保护您的 Web 应用程序。 +::: + +11. **应用** 您的更改并检查 **容器日志** 中的 Tailscale 消息。点击 "要进行身份验证,请访问" 链接以批准您的 Tailnet 上的容器。 + +:::caution\[Troubleshooting] + +**持久状态错误** - 如果您看到 "*错误:未检测到 .tailscale\_state 的持久 Docker 目录*": + +- 编辑容器并标识映射路径以存储 Tailscale 状态数据(例如,`/container-path/`)。 +- 启用 Tailscale **显示高级设置** 并设置 Tailscale **状态目录** 为 `/container-path/.tailscale_state`。 +- 重启容器。 +- Docker XML 作者可以通过在容器的 XML 文件中添加 `/container-path/.tailscale_state` 来简化这一过程。 + +::: + +--- + +## 更新 Tailscale + +%%Tailscale|tailscale%% 经常更新以提供新功能和安全改进。为使您的 Unraid 系统保持安全和兼容,请确保 Unraid %%Tailscale|tailscale%% 插件和使用 %%Tailscale|tailscale%% 的任何 Docker 容器都是最新的。 + +要更新 %%Tailscale|tailscale%%: + +- **更新 Unraid %%Tailscale|tailscale%% 插件:** 当有新版本时,请通过 Unraid 应用程序标签更新插件,就像其他插件一样。您始终可以在 [%%Tailscale|tailscale%% 更改日志](https://tailscale.com/changelog) 中查看最新更改。 + +- **在 Docker 容器中更新 %%Tailscale|tailscale%%:** + 1. 在 Docker 页面,悬停在某个容器的 %%Tailscale|tailscale%% 图标上。如果有可用更新,您将看到通知。 + 2. 通过以下方式更新容器: + - 切换到 **高级视图**(右上角),然后点击 **强制更新**。 + - 编辑容器,进行微小更改(如切换一个设置),并点击 **应用**。 + +--- + +## 用户空间网络 + +**用户空间网络** 控制容器如何连接到您的 %%Tailnet|tailnet%% 及其他网络。在大多数情况下,如果您使用他们的 %%Tailscale|tailscale%% WebUI URLs 访问容器并在所有客户端系统上安装了 %%Tailscale|tailscale%%,则可以忽略详细信息。 + +- **启用:** 容器在受限环境中操作。它无法启动与其他 %%Tailnet|tailnet%% 设备的连接或使用 %%Tailscale|tailscale%% DNS,但仍可通过 %%Tailscale|tailscale%% WebUI 和原始 WebUI URL 访问。 + +- **禁用:** 容器具有完整的 %%Tailnet|tailnet%% 访问权限,并可以使用 %%Tailscale|tailscale%% DNS。它可以与其他 %%Tailnet|tailnet%% 设备通信,但原始 WebUI URL 可能无法使用。 + +:::info[Feature 要求] +- 设置为 **出口节点** 的容器始终开启用户空间网络。 +- 使用出口节点的容器始终关闭用户空间网络。 +::: + +### 网络类型兼容性 + +Tailscale 集成和用户空间网络的行为取决于容器的网络类型。使用下表了解兼容性和访问选项: + +| 网络类型 | 用户空间网络默认 | 可以改变吗? | WebUI 访问(%%Tailscale\|tailscale%%) | WebUI 访问(原始) | 笔记 | +| -------------------- | --------- | ------ | ---------------------------------- | ------------------- | ------------------------------------------------------ | +| `host` | 禁用 | 不可以 | 不可以 | 可以 | 宿主模式下未提供 %%Tailscale\|tailscale%% 集成 | +| `bridge` | 禁用 | 可以 | 可以 | *启用*: 可以 *禁用*: 不可以 | 如果启用,则启用两个 URL;如果禁用,只启用 %%Tailscale\|tailscale%% WebUI | +| `eth0`/`br0`/`bond0` | 禁用 | 可以 | 可以 | 可以 | 无论设置如何,都可以访问两个 URL | +| `container`/`wg0` | 已禁用(未经测试) | 可以 | 未知 | 未知 | 使用时请谨慎;尚未完全测试 | + +:::info[Keep 记住] +- %%Tailscale|tailscale%% 的 WebUI 地址仅可由安装了 %%Tailscale|tailscale%% 并加入您 %%Tailnet|tailnet%% 的设备访问,或者在显式共享启用时访问。 +- 对于大多数用户,默认设置提供安全且可靠的访问。针对特殊的网络需求提供高级选项。 +::: + +\* “%%WireGuard|wireguard%%”和“%%WireGuard|wireguard%%”徽标是Jason A. Donenfeld的注册商标。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx new file mode 100644 index 0000000000..8ff5a4c179 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/user-management.mdx @@ -0,0 +1,137 @@ +--- +sidebar_position: 3 +sidebar_label: 用户管理 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ResetPasswordBasic from './partials/reset-password-basic.mdx'; +import ResetPasswordAdvanced from './partials/reset-password-advanced.mdx'; + +# 用户管理 + +Unraid 使管理您的 NAS 上的用户变得简单安全,适合从初学者到经验丰富的用户。精简的方法有助于减少混淆,同时确保安全性和访问控制保持强大。 + +:::note[Simplified 方法] +与传统的 Linux 系统不同,Unraid 提供了一个简单的用户模型: + +- **单一管理员(%%root|root-user%%)**:只有一个主要用户,这简化了权限并增强了安全性。 +- **以共享为中心的访问**:重点是数据共享,对于不需要多用户环境复杂性的用户来说,这样更简单。 + +这样,即使您不熟悉 Linux,也可以轻松安全地管理您的 NAS。 +::: + +## 概述 + +### 根用户 + +Unraid 以一个超级用户(%%root|root-user%%)运作,拥有对所有内容的完全控制。 + +%%根用户|root-user%%... + +- 全面访问 %%WebGUI|web-gui%%、%%SSH|ssh%% 和 Telnet 接口。 +- 负责管理所有用户账户和设置。 +- 因安全原因,无法通过 **%%SMB|samba%%**、**%%NFS|nfs%%** 或 **%%FTP|ftp%%** 直接访问文件共享。 +- 允许通过 [%%SSH|ssh%% 密钥认证](../../system-administration/advanced-tools/command-line-interface.mdx#accessing-the-terminal) 无密码登录。 + +
+ ![根用户](/img/rootuser.png) +
+ +:::important +%%root user|root-user%% 对于维持安全性至关重要。始终确保设置 [强密码](./security-fundamentals.mdx#set-a-strong-root-password),并限制 %%SSH|ssh%% 访问以保证系统安全。 +::: + +### 共享用户 + +这些账户设计为访问特定共享文件,没有系统级控制权限。 + +共享用户... + +- 只能由%%root 用户|root-user%%创建和管理。 +- 可以通过 **%%SMB|samba%%**、**%%NFS|nfs%%** 或 **%%FTP|ftp%%**(如果启用)访问共享。 +- 无法访问 **%%WebGUI|web-gui%%**、**%%SSH|ssh%%** 或 **Telnet**。 + +
+ ![根用户](/img/shareusers.png) +
+ +--- + +## 添加用户 + +要从另一设备连接到 Unraid 上的共享文件,您需要用户名和密码。这些凭据与您可能用于容器中运行的特定应用程序的凭据是分开的,并且它们的登录信息不同。 + +要添加用户: + +1. **访问用户管理** + - 进入***用户 → 共享访问***(或***设置 → 用户 → 共享访问***)。 + - 点击 **添加用户**。 + +2. **设置用户凭证** + - **用户名**:选择一个唯一名称(如 `john_media`)。仅使用小写字母以避免冲突,并将其保持在 30 个字符以内,由于 Windows 的限制。 + + - **密码**:使用字母、数字和符号的混合来创建一个强密码。按照密码强度计来指导。 + +:::note\[Optionally] + +- **添加描述**:写一个如"媒体库访问"的注释。 +- **自定义图片**:上传一个 PNG 图像(如用户头像)以便于识别。 + +::: + +
+ ![根用户](/img/adduser.png) +
+ +3. 选择 **添加** 以创建用户。 + +--- + +## 删除用户 + +当不再需要时,您可以轻松移除 Unraid 中的用户账户。 + +:::caution +删除用户账户是永久性操作且会立即移除对共享和共享资源的访问。 +::: + +要删除用户: + +1. 进入 **用户** 菜单并点击您想删除的用户账户名。 +2. 选中标记为 **删除** 的框。**应用**按钮将更改为**删除**按钮。 +3. 点击 **删除** 以移除用户。将出现确认消息以确认删除。 +4. 选择 **完成**。 + +--- + +## 修改用户 + +如果用户忘记了密码或需要更改共享文件夹访问权限,您可以在 Unraid 中更改用户账户。 + +要修改用户账户: + +1. 进入***用户 → 共享访问***(或 ***设置 → 用户 → 共享访问***),然后点击您要更改的用户账户。 +2. *(可选)* 在 **编辑用户** 屏幕上,您可以更新除 **用户名** 以外的任何信息。要设置新**密码**,只需输入并通过重新输入确认即可。 +3. *(可选)* 在底部,您将看到用户可以访问的文件夹(共享)列表。您可以调整这些共享中的任何一个的访问设置,但不能添加新的。 +4. 点击 **应用** 保存您的更改。 + +--- + +## 重置您的密码 + +如果您忘记了 %%root|root-user%% 密码,别担心!这里有两种简单的方法来重新获得对 Unraid 服务器的访问。您需要物理访问您的\*\*[USB 闪存设备](../../system-administration/maintain-and-update/changing-the-flash-device.mdx)\*\*和另一台计算机。 + + + + + + + + + + + +:::tip[Be 注意] +任何具有 USB 设备物理访问权限的人都可以使用这些方法重置您的 %%root|root-user%% 密码并获得完全管理员访问权限。始终确保您的 USB 安全! +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx new file mode 100644 index 0000000000..a9b28172cd --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/system-administration/secure-your-server/wireguard.mdx @@ -0,0 +1,237 @@ +--- +sidebar_position: 7 +sidebar_label: WireGuard +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import WireGuardConfigureMobile from './partials/wireguard-configure-mobile.mdx'; +import WireGuardConfigureOtherDevices from './partials/wireguard-configure-other-devices.mdx'; + +# WireGuard + +虽然 Tailscale 为大多数用户提供了友好的体验,但 [WireGuard](https://www.wireguard.com/) 是 Unraid 中一种强大的内置 VPN 解决方案,在特定的高级网络场景中表现出色。特别是在您需要详细控制 VPN 路由或需要不依赖第三方服务的服务器对服务器或局域网对局域网连接时,它尤其有用。下面是 WireGuard 表现优异的关键场景。 + +

何时选择WireGuard

+ +| 场景 | 为何选择 %%WireGuard\|wireguard%%? | +| -------------- | ----------------------------------------------- | +| **高级配置** | 允许自定义 %%VPN Tunnel\|vpn-tunnel%% 设置并与现有网络基础设施集成 | +| **服务器到服务器的隧道** | 允许您创建持久加密链接以连接 Unraid 服务器。 | +| **LAN到LAN的集成** | 在不涉及中介服务的情况下连接整个网络 | +| **带宽密集型任务** | 为最大吞吐量提供最小的协议开销 | + +:::info +对于大多数用户, [**Tailscale**](../secure-your-server/tailscale.mdx) 可以完成 WireGuard 可以完成的一切,通常更为简便。它通常不需要端口转发或手动配置。然而,如果您需要高级、定制的 VPN 设置或具有特定兼容性要求,选择 WireGuard 可能是某些用户的更好选择。 +::: + +

连接类型和使用场景

+ +了解%%WireGuard|wireguard%%中的连接类型可以帮助您决定它是否适合您: + +| 连接类型 | 实际使用案例 | +| :-------------------- | :----------------------------------------------------------------------------------------------------------- | +| 远程访问服务器 | Access Unraid %%WebGUI\|web-gui%%, Docker containers, %%VM\|vm%%s, and network shares remotely. | +| 远程访问LAN | 远程访问LAN上的所有设备,就像您在本地网络上一样。 | +| 服务器到服务器访问 | 安全连接两个 Unraid 服务器以进行数据共享或备份。 | +| LAN到LAN访问 | 无缝连接两个完整的LAN,以实现网络间的平滑通信。 | +| 服务器枢纽和辐射访问 | 允许多个%%VPNvpn-tunnel%%客户端通过服务器互相连接。 | +| LAN枢纽和辐射访问 | 通过中心服务器启用多个LAN之间的通信。 | +| %%VPN隧道vpn-tunnel%%访问 | Route specific Docker containers and %%VM\|vm%%s through a commercial %%WireGuard\|wireguard%% VPN provider. | +| 远程隧道访问 | 在不受信任的网络中,安全地通过 Unraid 服务器路由所有互联网流量。 | + +## 在 Unraid 上设置 WireGuard + +:::note\[Prerequisites] + +- **动态 DNS:** 如果您的公共 IP 发生变化,请设置 DDNS 以确保可靠的访问。流行选项包括 [Cloudflare](https://www.cloudflare.com/)(需要域拥有权)、[No-IP](https://www.noip.com/) 或 [DuckDNS](https://www.duckdns.org/)(免费但可能会偶尔中断)。 +- **路由器配置:** + - 在***设置 → 管理访问***中启用%%UPnP|upnp%%以进行自动端口转发。 + - 如果 %%UPnP|upnp%% 不可用,请手动将 UDP 端口 51820 转发至您的 Unraid 服务器的 IP。 +- **客户端软件:** 在您的设备上安装%%WireGuard|wireguard%%([Windows](https://www.wireguard.com/install/), [macOS](https://apps.apple.com/us/app/wireguard/id1451685025), [iOS](https://apps.apple.com/us/app/wireguard/id1441195209), [Android](https://play.google.com/store/apps/details?id=com.wireguard.android))。 + +::: + +

步骤1:生成密钥

+ +1. 前往***设置 → VPN管理***。 + +
+ ![VPN管理](/img/wg0.png) +
+ +2. 为您的隧道命名(例如,“家庭VPN”)。 +3. 点击 **生成密钥对** 来创建公钥/私钥。 + +:::warning +安全地存储私钥,因为它提供了完整的网络访问。 +::: + +

步骤2:配置您的端点

+ +- **对于DDNS用户:** 将**本地端点**中的IP替换为您的DDNS URL(例如,`myhome.duckdns.org`)。 +- 除非与现有服务冲突,否则保持默认端口(`51820`)。 + +

步骤3:设置端口转发

+ +- **%%UPnP|upnp%% 用户:** 如果在 ***设置 → 管理访问*** 中启用,Unraid 将自动转发端口。 + +
+ ![UPnP启用](/img/upnp-yes.png) +
+ +- **手动设置:** 如果%%UPnP|upnp%%不可用: + 1. 登录到您的路由器。 + 2. 将 UDP 端口 `51820` 转发至您的 Unraid 服务器的 LAN IP。 + 3. 对外部和内部设置使用相同的端口。 + +
+ ![UPnP禁用](/img/upnp-no.png) +
+ +

步骤4:激活您的隧道

+ +1. 切换**活动**以启用%%WireGuard|wireguard%%。 +2. 启用**自动启动**以在启动时运行%%WireGuard|wireguard%%。 + +
+ ![激活切换](/img/activate.png) +
+ +:::important[Security 最佳做法] +- **仅限受信任的访问:** VPN访问类似于物理网络访问,所以只授权受信任的设备。 +- **密钥管理:** 切勿共享私钥;像密码一样对待它们。 +- **网络分段:** 对于复杂的设置(自定义 Docker/%%VM|vm%%s),使用 VLAN 或独立子网隔离 VPN 流量。 +- **定期审核:** 每季度审查连接设备和访问权限。 +::: + +### 定义一个对等(客户端) + +对等是一个连接到您的 Unraid %%WireGuard|wireguard%% VPN 的客户端设备,比如手机、笔记本电脑或另一台服务器。定义对等意味着为该设备创建唯一身份并确保密钥。 + +1. 选择**添加对等**。 + +
+ ![增加对等](/img/peer-add.png) +
+ +2. 为对等命名(例如,*MyAndroid*)。 +3. 选择初始连接类型以获得完整的网络访问,通常是*远程访问LAN*。 +4. 点击**生成密钥对**来创建公钥和私钥。确保私钥安全。 +5. 可选地,生成预共享密钥以增加安全性。 +6. 点击 **应用**。 + +:::note +虽然 peer 可以生成它们自己的密钥,但让 Unraid 生成密钥可以通过提供完整的配置文件简化设置。 +::: + +:::caution +添加新对等可能会暂时禁用%%WireGuard|wireguard%%隧道,这可能会中断您的连接。在进行更改之前,确保您可以本地访问您的服务器。 +::: + +### 配置对等(客户端) + + + + + + + + + + + +### 配置您的DNS + +1. 使用IP地址或完全限定的域名访问设备(例如,`yourpersonalhash.unraid.net`)。 + +:::note +像“tower”这样的短名称或由路由器管理的DNS条目可能无法通过VPN工作。 +::: + +2. 要启用短名称解析: + - 转到 Unraid 中的 ***设置 → VPN 管理器***。 + - 从**基本**模式切换到**高级**模式。 + - 在**对等DNS服务器**字段中输入所选DNS服务器的IP地址。 + - 保存更改并更新客户端配置文件。 +3. 推荐的DNS服务器: + - 您的LAN路由器的IP地址。 + - 公共DNS服务器如`8.8.8.8`。 + +这种设置对于**远程隧道访问**模式尤为重要,在这种模式下,客户端的原始DNS服务器可能不可访问。 + +:::note +%%mDNS|mdns%%地址(例如,`tower.local`)只能在本地网络上工作,而在%%WireGuard|wireguard%% VPN上则不能。 +::: + +### 复杂网络 + +对于大多数用户,默认的 **启用 NAT** 设置开箱即用,并允许访问 Unraid 和大多数 LAN 设备。然而,如果您使用具有自定义 IP 的 Docker 容器或具有严格网络需求的%%VM|vm%%s: + +1. 在您的%%WireGuard|wireguard%%隧道配置中,将**使用NAT**设置为**否**。 +2. 在您的路由器上,为 WireGuard 隧道网络(例如,`10.253.0.0/24`)添加静态路由,指向您的 Unraid 服务器的 IP。 +3. 在***设置→Docker设置***中,将**主机访问自定义网络**设置为**启用**。 + +### 应避免的配置 + +| 使用NAT设置 | 自定义网络的主机访问 | 服务器和Dockers(桥接/主机) | %%VMs\|vm%% 和其他 LAN 系统 | 具有自定义IP的Dockers | 笔记 | +| ------- | ---------- | ------------------ | ---------------------- | --------------- | ----------------- | +| 可以 | 禁用(静态路由可选) | 可访问 | 可访问 | 不可访问 | 简单的网络设置;推荐给大多数用户 | +| 可以 | 启用(静态路由可选) | 可访问 | 不可访问 | 不可访问 | 避免这种配置 | +| 不可以 | 禁用(无静态路由) | 可访问 | 不可访问 | 不可访问 | 避免;需要静态路由正确运行 | +| 不可以 | 禁用(带静态路由) | 可访问 | 可访问 | 不可访问 | 几乎正确;启用主机自定义网络的访问 | +| 不可以 | 启用(带静态路由) | 可访问 | 可访问 | 可访问 | 复杂网络的推荐设置 | + +## WireGuard故障排除 + +WireGuard 的设计是非干扰的——如果某些东西无法正常工作,它不会提供错误消息。为了有效地排查故障,您应系统地检查您设置中的每个方面。 + +#### 连接检查表 + +- ✅ 隧道在 Unraid 和客户端设备上均处于活动状态。*("活动" 意味着隧道已启动,但不一定已连接。)* +- ✅ DDNS URL指向您当前的公网IP并设置在**本地端点**中。 +- ✅ 从路由器到 Unraid 转发正确的 UDP 端口,匹配 **本地端点** 端口。 +- ✅ 客户端在任何服务器端更改后都拥有最新的配置文件。 +- ✅ 在查看或分发对等配置(QR 代码/文件)之前保存更改。 + +#### 其他故障排除方法 + +
+ 第一次设置技巧 - 点击以展开/折叠 + + 如果您是首次设置WireGuard,这些提示可以帮助您避免常见问题: + + - 使用移动设备在蜂窝数据(而非 Wi-Fi)上设置您的第一个客户端,以排除本地网络问题。 + - 使用二维码方法进行最简便的配置传输。 +
+ +
+ 握手和连接问题 - 点击以展开/折叠 + + 如果未看到握手或无法连接,请尝试以下有针对性的检查: + + - 如果您看不到握手,请尝试生成流量(例如,ping 服务器)以触发连接。 + - 禁用移动客户端上的节能、数据节省或电池节能功能,因为这些功能可能会干扰 VPN 操作。 + - 确保客户端和服务器网络使用不同的子网(例如,避免同时使用 `192.168.1.0/24`)。 + - 如果使用 Cloudflare 进行 DDNS,请将 **代理状态** 设置为**仅 DNS**(而非 **代理**)。等待 DNS 更改传播。 + - 如果您可以从某些位置连接但无法从其他位置连接,则可能是远程网络阻止了 UDP 流量。%%WireGuard|wireguard%% 当前不支持将 TCP 作为备用。 +
+ +
+ 高级网络冲突 - 点击以展开/折叠 + + 如果您的网络设置更复杂,或怀疑 IP 冲突,请查看这些高级故障排除步骤: + + - 在**高级**模式下,确认您的**本地隧道网络池**不与任意一方的现有网络重叠。如果有冲突,请更改为不同的专用子网(例如,`10.10.10.0/24`)。 + - 对于具有自定义 IP 的 Docker 容器或满足严格要求的 %%VM|vm%%s,请参阅 [复杂网络](#complex-networks) 部分。 +
+ +
+ 紧急恢复 - 点击以展开/折叠 + + 如果您失去对 Unraid %%WebGUI|web-gui%% 的访问权限并需要禁用 %%WireGuard|wireguard%% 自动启动 + + - 从您的闪存驱动器中删除 `/boot/config/wireguard/autostart` 并重启。 +
+ +\* “%%WireGuard|wireguard%%”和“%%WireGuard|wireguard%%”徽标是Jason A. Donenfeld的注册商标。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json new file mode 100644 index 0000000000..687ca42220 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "故障排除", + "position": 5 +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json new file mode 100644 index 0000000000..3ced99f473 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "常见问题", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx new file mode 100644 index 0000000000..feddc46429 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/boot-and-startup-failures.mdx @@ -0,0 +1,204 @@ +--- +sidebar_position: 1 +sidebar_label: 引导和启动故障 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# 引导和启动故障 + +When your Unraid server fails to start correctly, it can be challenging to identify the cause without a clear understanding of the boot process. Following this guide lets you quickly diagnose and resolve most startup problems, ensuring that your %%array|array%%, %%WebGUI|web-gui%%, and services are operational with minimal downtime. + +## 准备闪存设备 + +本主题在[准备你的USB设备](../../getting-started/set-up-unraid/create-your-bootable-media.mdx#prepare-your-usb-device)部分有详细介绍。 + +:::caution +在进行更改之前,请始终[备份您的闪存驱动器](../../system-administration/maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device)。所有用户特定的设置,包括您的许可证密钥,均存储在 `config` 文件夹中。重新准备闪存设备后恢复此文件夹将帮助保留您当前的配置。 +::: + +## 启用UEFI引导 + +现代系统通常需要**UEFI引导模式**以增强安全性和加快启动速度。 + +要在系统BIOS/%%UEFI|uefi%%设置中配置%%UEFI|uefi%%引导: + +1. 在启动时进入主板的BIOS/%%UEFI|uefi%%设置(通常按F2、DEL或ESC键) +2. 找到引导选项或引导模式设置 +3. 将引导模式设置为**UEFI**或**禁用CSM的UEFI** +4. 确保选择 Unraid 闪存设备作为 UEFI 启动设备 +5. 保存更改并退出 + +## 理解启动顺序 + +Unraid 启动序列有多个阶段: + +
+ 1. BIOS 启动 - 点击展开/折叠 + + BIOS/UEFI 固件初始化硬件并定位可启动设备。这是整个启动过程的基础。 + + - 主板 BIOS 识别出 Unraid 可启动的闪存设备。 + - 将闪存设备设置为默认引导设备因BIOS而异;请查阅主板手册以获得指导。 + - 闪存设备支持\*\*传统(CSM)**和**%%UEFI|uefi%%\*\*引导模式。 + - 对于%%UEFI|uefi%%引导,请确保闪存设备上的`EFI`文件夹末尾没有连字符(`-`)。 +
+ +
+ 2. Syslinux 启动加载程序 - 点击展开/折叠 + + 引导加载程序呈现启动选项并将 Linux 内核加载到内存中。此阶段决定运行哪个操作系统或诊断工具。 + + - 启动菜单条目定义在闪存设备上的`syslinux/syslinux.cfg`文件中。 + - 你可以通过%%WebGUI|web-gui%%下的***主 → Syslinux配置***编辑此文件。 + - **Memtest86+** 随同当前版本的 Unraid 提供,可在传统和 %%UEFI|uefi%% 模式下运行。对于旧版本的 Unraid,请从 [官方 Memtest 网站](https://www.memtest86.com/) 获取与 %%UEFI|uefi%% 兼容的版本。 + - 如果没有选择选项,默认将在超时后引导,这对于无头操作很有用。 +
+ +
+ 3. Linux 核心 - 点击展开/折叠 + + Linux 内核初始化并开始硬件检测。在此阶段,操作系统从引导加载程序中接管控制。 + + - **Syslinux**从闪存设备将Linux核心加载到RAM中。 + - 您会看到控制台消息显示bz\*文件正在加载。 + - 这一阶段的错误通常表示闪存设备问题。 + - Linux在启动期间检测硬件。 +
+ +
+ 4. Flash 依赖服务 - 点击展开/折叠 + + 闪存设备变得可访问并开始加载基本服务。此阶段对于配置和网络访问至关重要。 + + - 闪存设备在`/boot`上挂载。 + - 如果挂载失败,你可能还会看到登录提示,但这表示引导不完全。 + - 使用`df`命令检查`/boot`是否已挂载。 + - 闪存设备必须标记为**UNRAID**(全部大写)以进行正确挂载。 + - 此阶段将提供额外的驱动程序和固件。 + - 配置被加载到RAM中。 + - 标准Linux服务,包括网络和%%WireGuard|wireguard%% VPN(如果启用),在此阶段启动。 +
+ +
+ 5. 插件 - 点击展开/折叠 + + 加载第三方扩展和定制以增强系统功能。插件问题可能会阻止成功启动。 + + - 安装的插件在此步骤加载。 + - 如果需要,**安全引导**选项可以抑制插件加载。 +
+ +
+ 6. WebGUI - 点击展开/折叠 + + 基于web的管理接口变得可用,允许远程管理和配置你的服务器。 + + - %%WebGUI|web-gui%%在此点启动。 + - 闪存设备上的`config/go`文件可以在%%WebGUI|web-gui%%启动之前或之后运行用户命令。 +
+ +
+ 7. 阵列 - 点击展开/折叠 + + 存储设备已挂载并可用,完成启动过程。这是您的数据变得可访问的地方。 + + - 如果启用了自动启动,则在此处启动%%array|array%%;否则,手动启动将是必需的。 + - 驱动器将被挂载为`/dev/diskX`和`/mnt/cache`(如果存在)。 + - 共享在网络中可用作为`/mnt/user/sharename`。 + - Docker容器将按Docker选项卡中指定的顺序启动,具有可自定义的延迟。 + - 自动启动虚拟机(%%VMs|vm%%)也将启动。 +
+ +此时,Unraid 服务器已完全运行。 + +--- + +## 引导故障 + +当您的服务器无法启动时,系统化的故障排除有助于快速识别和解决根本原因。按照这些步骤操作,以避免遗漏关键问题或进行不必要的更改。每一步都建立在前一步的基础上,即使某个步骤似乎与您的具体问题无关,也不要跳过。 + +1. 如果可能,请为闪存设备使用 USB 2.0 端口。它通常比 USB 3.0 更可靠且问题更少。 +2. 检查你的BIOS/%%UEFI|uefi%%设置以确保闪存设备被设置为主引导设备。 +3. 在Windows或macOS计算机上检查闪存设备是否有物理或逻辑错误。 +4. 重新提取 Unraid 发布版本的 bz\* 文件到闪存设备上,以防止潜在的损坏。 +5. 通过从干净的 Unraid 副本开始重建闪存设备,然后恢复您的 `config` 文件夹。 +6. 尝试在[安全模式](../../using-unraid-to/customize-your-experience/plugins.mdx#troubleshooting-with-safe-mode)下引导以检查是否有插件相关的问题。 +7. 使用新的闪存设备进行测试,并执行干净的 Unraid 安装。这有助于确定服务器硬件是否存在问题。 +8. 如有必要,将许可证转移到新的闪存设备上。 + +--- + +## 从丢失的引导驱动器和未知的奇偶校验驱动器恢复 + +:::important +如果驱动器分配不正确,此恢复过程涉及数据丢失风险。继续之前: + +1. **不要启动阵列** 除非你对驱动分配很有信心 +2. **记录** 曾是什么驱动器是奇偶校验与数据驱动器 +3. **考虑寻求帮助** 如果你不确定,请访问[Unraid论坛](https://forums.unraid.net/) + +如果你最近有阵列配置的备份或文档,先查看这些。 +::: + +If your Unraid boot drive fails and you don’t have a recent backup or knowledge of which drives are parity, you can recover your system by using Unraid’s ability to recognize data drives by their file systems. %%Parity drives|parity-drives%% do not have a valid file system, which helps differentiate them. + +Unraid identifies data drives by detecting existing valid file systems. %%Parity drives|parity-drives%%, which lack a file system, appear unmountable. This characteristic allows you to distinguish %%parity drives|parity-drives%% from data drives after booting with a new flash device. + +### 恢复程序 + +该程序帮助您在丢失引导驱动器并记不清哪些是奇偶校验与数据驱动器时,恢复阵列配置。请小心谨慎地遵循每一步,以避免数据丢失。 + +1. Create a new Unraid boot drive. +2. 从此新驱动器引导服务器(暂不分配任何驱动器)。 +3. 激活许可证,使用试用或转移现有许可证。 +4. 使用其中一个方法识别%%parity drives|parity-drives%%。 +5. 使用***工具 → 新配置***重置%%array|array%%,如果可能,保留以前的分配。 +6. 在***主***选项卡上纠正驱动器分配,确保区分%%parity|parity%%和数据驱动器。 +7. 启动%%array|array%%以确认驱动器分配。 +8. 如果%%parity|parity%%有效,勾选***奇偶校验已有效***框。如果无效,允许%%parity|parity%%重建。 + +:::warning[Multiple 校验驱动器] +如果您有多个%%parity drives|parity-drives%%并且需要根据哪些驱动无法挂载来识别它们,**千万不要**使用**Parity is Already Valid**选项。分配错误的机会是50:50,如果您弄错了,您的%%array|array%%可能看似受保护但实际上并不是。在这种情况下,总是让校验重新建立以确保适当的保护。 +::: + +9. 根据新分配审阅和调整任何用户共享的包含/排除。 +10. 运行一次%%parity check|parity-check%%以验证完整性,特别是如果%%parity|parity%%没有重建。 + +--- + +### 识别奇偶校验驱动器 + +
+ 使用 Unraid 内置功能(推荐方法) - 点击展开/折叠 + + 此方法不需要插件,但会使%%parity|parity%%无效,需要重建。 + + 要使用该方法: + + 1. 将所有驱动器分配为数据驱动器并启动。 + 2. 由于缺乏有效的文件系统,%%parity drives|parity-drives%%将显示为不可挂载。 + 3. 确认无法挂载的驱动器数与你的%%parity|parity%%数量相匹配。 + 4. 记录这些驱动器的序列号。 + 5. 如有需要,可以检查已挂载的数据驱动器以确认其顺序。 +
+ +
+ 使用未分配设备插件 - 点击展开/折叠 + + 这种基于插件的方法通过以只读模式挂载驱动器来保持%%parity|parity%%的有效性。 + + 要使用该方法: + + 1. 从***应用***选项卡安装[**未分配设备**插件](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon)。 + 2. 将每个磁盘只读地挂载,依次进行。 + 3. 那些无法挂载的驱动器很可能是%%parity drives|parity-drives%%(无法区分奇偶校验1和奇偶校验2)。 + 4. 如有需要,检查已挂载的数据驱动器以识别其顺序。 +
+ +有关更多信息,请参阅Unraid论坛中的[未分配设备插件主题](https://forums.unraid.net/topic/55481-unassigned-devices-managing-unassigned-devices-without-rebooting/)。 + +--- + +\* “%%WireGuard|wireguard%%”和“%%WireGuard|wireguard%%”徽标是Jason A. Donenfeld的注册商标。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx new file mode 100644 index 0000000000..c1eebe4a03 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/data-recovery.mdx @@ -0,0 +1,335 @@ +--- +sidebar_position: 4 +sidebar_label: 数据恢复 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RepairXfs from './partials/data-recovery/repair-xfs.mdx'; +import RepairBtrfs from './partials/data-recovery/repair-btrfs.mdx'; +import XfsCheckWebGUI from './partials/data-recovery/xfs-check-webgui.mdx'; +import XfsCheckCli from './partials/data-recovery/xfs-check-cli.mdx'; + +# 数据恢复 + +Understanding data protection is important when managing your Unraid server. While Unraid offers strong protection against common hardware failures, no system can guarantee complete immunity to data loss. This section provides guidance on best practices for safeguarding your data, recognizing potential issues, and recovering data when problems occur. + +有效的数据恢复从稳固的数据保护策略开始,包括定期备份、主动监控以及对驱动器和阵列配置的谨慎处理。 + +--- + +## 备份策略基础 + +Even though Unraid offers protection against various hardware failures, having reliable backups of your crucial data is vital. Backups are your last defense against catastrophic failures, ransomware, or accidental deletion. + +- \*\*评估重要数据:\*\*识别不可替代或必需的文件,例如个人文档、照片和重要视频。 +- **多个备份副本:** 遵循3-2-1规则:保留至少三份数据副本在两种不同的媒体类型上,其中一份副本存储在异地或云中。这将最大限度降低物理灾害(如火灾或盗窃)的风险。 +- **备份频率:** 安排定期备份以减少数据丢失的可能性。 +- **勒索软件保护:** 至少一个备份副本应离线或不可接触,以防止潜在的损坏。 +- **备份工具:** 对于Unraid 7.0及以上版本,建议使用[Unraid Connect](../../../unraid-connect/overview-and-setup.mdx)进行闪存和配置的自动云备份。其他流行的备份解决方案包括: + - **[Duplicati](https://unraid-production-481d40bf.preview.craft.cloud/community/apps?q=Duplicati#r:~:text=of%202%20Apps-,duplicati,-Backup%2C%20Cloud):** 一个多功能开源备份工具,提供重复数据删除和加密,支持云端、本地、USB 和远程目的地。 + - **[rclone](https://unraid-production-481d40bf.preview.craft.cloud/community/apps?q=rclone#r:~:text=various%20cloud%20services.-,rclone,-Waseh%27s%20Repository):** 一个强大的用于同步和备份云存储提供商的解决方案。 + - **[rsync](https://rsync.samba.org/):** 一种用于本地或远程备份的高效选择。 + - **[borgbackup](https://www.borgbackup.org/):** 适合对重复数据删除和加密备份有需求的高级用户。 + +用户应该评估他们的风险承受能力和备份需求,但利用云集成和自动化对大多数 Unraid 用户来说是一个良好的起点。 + +:::tip[Modern 备份策略] +在 Unraid 7.0 及更高版本中,启用 [Unraid 连接](../../../unraid-connect/overview-and-setup.mdx) 以实现对闪存设备和配置的自动云备份。可以考虑使用 Duplicati、rclone 或类似工具为重要文件和共享创建定期备份到本地、远程或云端目标。始终测试您的恢复过程以确保备份在需要时有效。 +::: + +:::info\[Proactive 监控和支持 + +- **启用通知:** 在***设置 → 通知***中设置通知以接收有关系统问题的即时警报。 +- **寻求专家指导:** 如果您不确定恢复步骤,请在采取任何动作前咨询 [Unraid 论坛](https://forums.unraid.net/)。 +- **定期健康检查:** 密切关注您驱动器的 [SMART 数据](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx),并定期执行文件系统检查。 + +::: + +--- + +## 修复文件系统 + +:::caution +这些指令仅适用于文件系统损坏的数据驱动器。请勿将其应用于校验盘、硬件问题或缺失的驱动器。 + +- 文件系统修复工具仅用于修复具有文件系统或挂载错误的数据或缓存驱动器。 +- 校验盘**没有**文件系统。对校验盘运行任何修复工具可能会损坏它,并可能导致不可逆的数据丢失。 +::: + +### 设备命名:路径和符号 + +使用\*\*%%WebGUI|web-gui%%**时,设备路径会自动管理。如果选择通过命令行修复,始终确保使用正确的**分区路径\*\*: + +| 标签 | 典型路径 | 用途 | %%Parity\|奇偶%% 保护是否启用? | +| ---------------- | ---------- | ------------ | ------------------------ | +| 磁盘 7 | /mnt/disk7 | Unraid 挂载点 | 是 (如果是 %%array\|阵列%% 磁盘) | +| %%Array\|阵列%% 分区 | /dev/md7p1 | Unraid 管理的设备 | 可以 | +| 原始分区 | /dev/sdj1 | 直接设备访问 | 不可以 | + +:::warning +切勿在整个驱动器(如 `/dev/sdj`)上运行文件系统修复工具;要始终使用分区路径(如 `/dev/sdj1` 或 Unraid 管理的 `/dev/mdXp1`)。 + +- 对于 %%array|array%% 驱动器,始终使用 Unraid 管理的设备(如 `/dev/md5p1`)以**保留 %%parity|parity%% 保护**。 +- 使用原始分区(例如,`/dev/sdj1`)不会更新 %%parity|parity%%,会使其无效。 +::: + +- 始终使用 `/dev/mdXp1` 对于 %%array|array%% 驱动器以保持有效的 %%parity|parity%%。 +- 对于非%%array|array%%驱动器(如%%cache|cache%%-only设备),请使用直接分区路径,例如`/dev/sdj1`。 + +### 选择正确的修复方法 + +自 **v6.0.0** 以来的所有 Unraid 版本都支持通过 %%WebGUI|web-gui%% 对 %%XFS|xfs%% 和 %%BTRFS|btrfs%% 进行文件系统修复。 + +对于大多数用户,推荐的方法是: + +1. 打开 %%WebGUI|web-gui%%。 +2. 导航到 **主** 选项卡。 +3. 点击适当的 %%array|array%% 或 %%cache|cache%% 设备。 +4. 按照提示运行内置的文件系统检查和修复。 + +如果您更喜欢使用命令行,请始终: + +- 识别适用于 %%array|array%% 驱动器的正确 Unraid 管理分区(`/dev/mdXp1`)。 +- 使用适合您文件系统的修复工具: + - **XFS:** `xfs_repair` + - **BTRFS:** `btrfs scrub` + +:::caution[Know 您的文件系统] +使用错误的修复工具可能会造成进一步的损害。在开始修复前,验证您的磁盘是否格式化为\*\*%%XFS|xfs%%**、**%%BTRFS|btrfs%%\*\*或其他受支持的文件系统类型。 +::: + +--- + +## 在 WebGUI 中检查和修复驱动器 + +This section covers how to diagnose and repair file system corruption on data drives using Unraid's built-in tools. File system issues can occur after unclean shutdowns, power failures, or hardware problems, but Unraid provides safe repair methods that maintain your %%parity|parity%% protection while fixing the underlying problems. + +### 准备测试 + +| 文件系统 | 启动模式 | 需要维护模式? | 笔记 | +| ---------------- | ---- | ------- | ---------------------------------------- | +| %%XFS\|xfs%% | 维护模式 | 可以 | %%阵列\|array%%必须在维护模式下启动(驱动器未挂载)以进行检查/修复。 | +| %%BTRFS\|btrfs%% | 正常模式 | 不可以 | 请正常启动 %%array\|阵列%%,而非维护模式,以便进行擦除/检查。 | + +- 为目标驱动器确定文件系统: **主** 选项卡 → 点击驱动器名称 → 检查 **文件系统类型**。 +- 从主要界面,点击要测试或修复的磁盘。 + +### 进行测试 + +1. 大多数文件系统(如%%XFS|xfs%%)的默认设置是只读检查(无更改),通常使用`-n`(不修改)选项。(对于更详细的输出与%%XFS|xfs%%,增加`-v`(详细)选项,生成`-nv`。) +2. 对 %%BTRFS|btrfs%% 使用 `scrub` 命令,而不是进行 `balance` 操作。 +3. 点击 **检查** 开始操作;如有需要,使用 **刷新** 按钮监控进度。 +4. 如未发现损坏,请继续进行 [**测试和修复后**](#after-the-test-and-repair)。 + +### 进行修复 + + + + + + + + + + + +### 测试和修复后 + +如果您使用了 %%维护模式|maintenance-mode%%,请停止阵列并重新启动至正常模式以恢复操作。 + +:::tip[What 修复后的期望] +- 修复和检查操作可能需要长达半小时或更长时间,具体取决于您文件系统的大小和状态。 +- 严重的损坏可能会产生一个`lost+found`文件夹,其中包含恢复的文件和文件夹碎片。根据需要检查并恢复这些碎片;完成后删除。 +- 这类似于在 Windows 上运行 chkdsk 或 scandisk 并处理重命名为 `File0000.chk` 等的文件。在查看 `lost+found` 内容时请耐心。 +::: + +--- + +### XFS 检查和修复 + + + + + + + + + + + +--- + +## 不可挂载磁盘 + +如果一个以前功能正常的磁盘无法挂载,通常表明文件系统损坏,通常是由于非清洁关机或写入故障引起的。 + +:::danger[Critical 行动] +切勿通过 %%WebGUI|web-gui%% 格式化无法挂载的磁盘!格式化会擦除所有数据并更新 %%parity|parity%%,使恢复变得不可能。 +::: + +### 恢复程序 + +当一个以前运行正常的磁盘突然变得无法挂载时,自然会对数据感到担忧。这类问题通常是由文件系统损坏引起的,可能在非正常关机、断电或写入操作失败后发生。记住的最重要的事情是:**如果由%%WebGUI|web-gui%%提示,请不要格式化驱动器**。格式化会删除所有现有数据,并使恢复变得困难,甚至不可能。 + +Instead, your first step should be to attempt a file system repair. Unraid provides built-in tools for this, and following the correct procedure can often restore access to your data with minimal risk. + +以下是操作方法: + +1. 查看[文件系统修复部分](#repair-file-systems)。本指南将为您特定的文件系统逐步介绍这一过程。 + +2. 对于使用 %%XFS|xfs%% 文件系统的磁盘(大多数 Unraid 设置的默认设置),运行: + + ``` + xfs_repair -v /dev/mdXp1 + ``` + + 将**X**替换为正确的磁盘号。`-v`标志提供详细的进度信息。此命令检查并尝试修复特定磁盘上的文件系统。 + +3. 对于格式化为 %%BTRFS|btrfs%% 的磁盘,首先运行只读检查: + + ``` + btrfs check /dev/mdXp1 + ``` + + 将**X**替换为正确的磁盘号。仅在绝对必要的情况下并在了解风险后使用修复模式: + + ``` + btrfs check --repair /dev/mdXp1 + ``` + +:::danger +`--repair` 选项极其危险,可能导致进一步的数据丢失。在开始操作前,一定要先备份或克隆磁盘。查看 [相关文档](https://btrfs.readthedocs.io/en/latest/btrfs-check.html),如果您不确定,建议寻求额外的建议。 +::: + +If these repair attempts do not resolve the issue or if you encounter errors you don’t understand, it’s best to pause and ask for help on the Unraid forums. Many experienced users and moderators are available to help guide you through the next steps, and getting a second opinion before proceeding further is always safer. + +--- + +## 丢失阵列配置 + +Losing your %%array|array%% configuration can be stressful, but it doesn't mean your data is gone. The %%array|array%% configuration file (located at `config/super.dat` on your flash device) tells Unraid how your drives are assigned and which ones serve as %%parity|parity%%. If you've lost your flash drive or don’t have a recent backup, you can recover your %%array|array%% by carefully reassigning the drives. + +如果您发现自己处于这种情况,请按以下步骤操作: + +1. 在%%WebGUI|web-gui%%中,将所有可用驱动器分配为数据驱动器。暂时不要分配任何驱动器为%%parity|parity%%。 +2. 启动%%array|array%%。以前用作%%parity|parity%%的驱动器将显示为*无法挂载*,因为它们不包含文件系统。 +3. 记下或对这些无法挂载的驱动器拍摄其序列号截图——这些是您的 %%parity|parity%% 驱动器。 +4. 停止%%array|array%%。 +5. 转到***工具 → 新配置*** 然后选择保留当前分配的选项。 +6. 勾选确认要继续的复选框并点击**应用**。 +7. 返回到**主**选项卡,并使用您记下的序列号正确分配 %%parity|parity%% 驱动器。 +8. 启动 %%array|array%% 以根据您的正确分配重建 %%parity|parity%%。 + +--- + +## 使用 ddrescue 恢复数据 + +当标准 Unraid 恢复方法(如 [更换磁盘](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-disks) 过程)由于多个磁盘故障或 %%parity|parity%% 无效不可行时,像 **ddrescue** 这样的专业工具可以帮助您从失败的驱动器中拯救尽可能多的数据。 + +:::note[Best 数据恢复实践] +在开始之前,记住数据恢复是一个微妙的过程。尽可能从故障磁盘的副本工作,避免将新数据写入源磁盘。如果您的数据不可替代,请在尝试高级恢复之前考虑专业恢复服务。记录您的操作并花时间——仓促处理增加了永久性数据丢失的风险。 +::: + +推荐通过 **[Nerd Tools](https://unraid.net/community/apps?q=nerd+tools#r)** 插件安装ddrescue(该插件在2022年取代了已弃用的NerdPack)。 + +要启用 ddrescue: + +1. 从 Unraid %%WebGUI|web-gui%% 的 **应用程序**选项卡中安装 [Nerd Tools](https://unraid-production-481d40bf.preview.craft.cloud/community/apps?q=nerd+tools#r:~:text=of%201%20App-,Nerd%20Tools,-unRaid.es)。 +2. 打开 ***设置 → Nerd Tools*** 并启用 **ddrescue**。 + +### 克隆故障磁盘 + +您需要一个健康的目标磁盘,它的大小至少与故障源磁盘一样大。确保在此过程中,无论是目标磁盘还是源磁盘都未挂载。开始前请仔细检查设备分配;错误的目标将覆盖并破坏其数据。 + +要克隆整个磁盘,请打开终端或 %%SSH|ssh%% 会话并运行以下命令: + +``` +ddrescue -f /dev/sdX /dev/sdY /boot/ddrescue.log +``` + +- 将 **X** 替换为你的源磁盘的字母,**Y** 替换为你的目标磁盘的字母。 +- `/boot/ddrescue.log` 文件将跟踪进度并允许你在进程被中断时恢复。 + +如果您希望在保持%%parity|parity%%的同时直接克隆到%%array|array%%磁盘上,请使用`md#`设备并在维护模式下启动%%array|array%%: + +``` +ddrescue -f /dev/sdX1 /dev/md\# /boot/ddrescue.log +``` + +- 用您的源磁盘字母替换**X**(注意分区使用`1`)。 +- 替换 **#** 为你的目标磁盘编号。 + +:::caution +在运行ddrescue前请始终验证设备分配。使用错误的目标可能导致该磁盘上的数据完全丢失。 +::: + +### 翻译 ddrescue 输出 + +在恢复过程中,ddrescue将显示实时进度。 + +以下是你可能在第一次通过时看到的示例: + +``` +GNU ddrescue 1.27 +ipos: 926889 MB, non-trimmed: 1695 kB, current rate: 95092 kB/s +opos: 926889 MB, non-scraped: 0 B, average rate: 79236 kB/s +non-tried: 1074 GB, bad-sector: 0 B, error rate: 0 B/s +rescued: 925804 MB, bad areas: 0, run time: 3h 14m 44s +pct rescued: 46.28%, read errors: 54, remaining time: 3h 18m +time since last successful read: 0s +Copying non-tried blocks... Pass 1 (forwards) +``` + +:::note[What 这是什么意思?] +- **ipos/opos**:源和目标磁盘上的当前读写位置。 +- **rescued**:成功复制的数据量。 +- **坏区域/读取错误**:遇到的问题区域和读取错误的数量。 +- **恢复百分比**:到目前为止恢复的磁盘百分比。 +- **剩余时间**:估计完成时间。 +- **正在复制未尝试的块...**: ddrescue 正在首次尝试读取所有扇区。 +::: + +在初始复制后,ddrescue将通过多次传递和有时以两种方向读取块来恢复坏扇区中的数据。这一阶段可能需要更长的时间,尤其是在磁盘严重损坏的情况下。 + +这是此阶段的示例输出: + +``` +GNU ddrescue 1.27 +ipos: 17878 MB, non-trimmed: 0 B, current rate: 0 B/s +opos: 17878 MB, non-scraped: 362496 B, average rate: 74898 kB/s +non-tried: 0 B, bad-sector: 93696 B, error rate: 102 B/s +rescued: 2000 GB, bad areas: 101, run time: 7h 25m 8s +pct rescued: 99.99%, read errors: 260, remaining time: 25m +time since last successful read: 10s +Scraping failed blocks... (forwards) +``` + +:::note[What's 正在发生?] +- **刮取失败的块...**: ddrescue正在重复尝试恢复不可读的扇区。 +- **坏区域/读取错误**:随着 ddrescue 发现更多损坏,这些数字可能会增加,但目标是尽量减少无法恢复的数据。 +::: + +### 挂载和检查已恢复的磁盘 + +ddrescue完成后,您可以尝试挂载目标磁盘。使用[**未分配的设备**插件](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon)在%%WebGUI|web-gui%%中轻松挂载。如果磁盘无法挂载,请运行适当的文件系统修复工具,如`xfs_repair`或`btrfs check`。即使磁盘挂载了,运行文件系统检查以确保完整性也是一个好主意。 + +一旦恢复了文件,将它们复制到您的%%array|array%%上的安全位置。请注意,如果磁盘存在许多不可读的扇区,某些文件可能会损坏。使用%%checksums|checksum%%(或内置校验的%%BTRFS|btrfs%%)可以帮助您识别损坏的文件。 + +### 没有校验和识别损坏文件 + +如果你没有校验和,你仍然可以使用 ddrescue 的填充模式识别受坏区影响的文件: + +1. 创建包含唯一字符串的临时文件: + + ``` + printf "Unraid " > ~/fill.txt + ``` + +2. 用该字符串填充克隆磁盘上的坏块: + + ``` + ddrescue --fill-mode='-' ~/fill.txt /dev/sdY /boot/ddrescue.log + ``` + + 替换 **Y** 为目标磁盘并使用现有的 ddrescue 映射文件。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx new file mode 100644 index 0000000000..3eec3a46cf --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/docker-troubleshooting.mdx @@ -0,0 +1,86 @@ +--- +sidebar_position: 5 +sidebar_label: Docker 故障排除 +--- + +# Docker 故障排除 + +:::info +此页面专门提供关于 Unraid 的 Docker 容器的故障排除指南,Unraid 团队对此进行管理。对于高级故障排除、更深入的技术细节或超出 Unraid 特定实现的话题,请参考[官方 Docker 文档](https://docs.docker.com/)。 +::: + +Docker 让您可以轻松在 Unraid 服务器上运行各种应用程序,但有时会出现问题,例如容器无法启动、Docker 镜像文件损坏或网络故障。本页面解决了一些与 Unraid 上 Docker 相关的常见问题,并提供了有效解决它们的最佳实践。 + +--- + +## 重新创建 Docker 映像文件 + +A corrupted Docker image file (`docker.img`) is a common issue, often caused by the %%cache pool|cache-pool%% running out of space or an unclean shutdown. Luckily, a well-configured container stores all variable data outside the image file (usually in the `appdata` share), so you can safely recreate the image without losing your application settings or data. + +要重新创建 Docker 映像文件: + +1. 转到 WebGUI 中的 ***Settings → Docker***。 +2. 将 **Enable Docker(启用 Docker)** 设置为 **No(否)**,然后单击 **Apply(应用)** 停止 Docker 服务。 +3. 选择删除 Docker vdisk 文件选项,然后点击**应用**。如果需要,您还可以手动删除该文件。 +4. 确认新 Docker vdisk 文件的位置和文件名。此设置包含文件夹路径和文件名。 +5. 设置新镜像文件的所需大小。默认大小对于大多数用户来说通常是足够的。 +6. 将**启用 Docker**设置为**是**,然后点击**应用**。Unraid 将使用 %%BTRFS|btrfs%% 创建并格式化新的 `docker.img` 文件。 + +现在您可以使用其保存的设置重新安装容器。 + +--- + +## 重新安装 Docker 应用程序 + +Unraid 会自动将每个已安装的容器模板保存在您的闪存驱动器上。这些模板存储您的配置,方便在重建 Docker 镜像文件后恢复容器。 + +要重新安装您的容器: + +1. 转到%%WebGUI|WebGUI%%的**应用**选项卡。 +2. 打开 **Previous Apps(以前的应用)** 部分。 +3. 选择要重新安装的容器。 +4. 继续进行安装。Unraid 将重新下载每个容器并自动应用您先前的设置。 + +:::important +如果所有可变数据映射在 Docker 映像文件之外(例如,在 `appdata` 共享中),这个过程会将您的容器恢复到先前状态。 +::: + +:::tip +如果容器在重新安装后无法启动,请从 **Docker** 选项卡的上下文菜单中检查其日志,以查找错误消息和故障排除提示。 +::: + +:::note +在恢复容器后,验证所有映射的主机路径是否存在并具有正确的权限。错误的映射或权限是启动问题的常见原因。 +::: + +--- + +## 恢复 Docker 自定义网络 + +如果删除 Docker 镜像文件,定制的 Docker 网络将无法持久化。在删除镜像之前,进入终端并运行以下命令来记录您的自定义网络名称: + +``` +docker network ls +``` + +记下您创建的任何网络的名称(不包括默认的 `bridge`、`host` 和 `none` 网络)。 + +要恢复自定义网络: + +1. 在重新创建 Docker 映像文件后,使用以下命令重建每个自定义网络: + + ``` + docker network create + ``` + + 将 `` 替换为您先前记录的准确名称。 + +2. 根据需要更新您的容器以使用恢复的网络。 + +:::note +如果您的设置需要,您可以在 ***Settings → Docker*** 中通过将 **主机访问自定义网络** 设置为 **启用** 来启用对自定义网络的主机访问。 +::: + +:::tip +如果在恢复后容器无法按预期通信,请检查您的 Docker 网络设置是否存在冲突或连接问题。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx new file mode 100644 index 0000000000..dae12d326a --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-btrfs.mdx @@ -0,0 +1,7 @@ +- 在 %%WebGUI|web-gui%% 中使用 `btrfs scrub` 扫描并修复某些错误。 +- 在单个驱动器上,scrub 可能会检测但无法修复某些错误;如是,请考虑复制数据并重新格式化磁盘或存储池。 + +:::note +- 当前 %%BTRFS|btrfs%% 修复工具可能无法解决所有损坏;如需要,请查阅 Unraid 文档以获取更新工具。 +- 有关 scrub 和恢复的更多详细信息,请参考相应的 %%BTRFS|btrfs%% 文档或 Unraid 论坛以获取指导。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx new file mode 100644 index 0000000000..d676870b74 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx @@ -0,0 +1,16 @@ +从 Unraid 7.0 开始,通过 WebGUI 完全自动化 XFS 文件系统修复: + +1. **初始检查**: 点击 **CHECK** 按钮(无需输入选项) +2. **检查结果**: + - **未检测到损坏**:显示“未检测到文件系统损坏”,**CHECK** 按钮保持不变 + - **检测到损坏**:显示“检测到文件系统损坏”,出现 **FIX** 按钮 +3. **修复过程**: 点击 **FIX** 自动修复文件系统 +4. **其他操作**: 如有需要,可能会出现 **ZERO LOG** 按钮 +5. **完成**: 过程完成后显示“文件系统已修复” + +此自动系统消除了用户手动输入修复选项的需求,并确保了正确的修复顺序。 + +:::note +- 修复保持 %%parity|parity%% 保护,并可能需要相当长的时间。 +- 对于 %%XFS|xfs%% 修复,支持 %%WebGUI|web-gui%% 和命令行选项(如下所示的命令)。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx new file mode 100644 index 0000000000..4f4f902abe --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-cli.mdx @@ -0,0 +1,12 @@ +在控制台或通过 %%SSH|ssh%%,运行: + +``` +xfs_repair -v /dev/mdXp1 +``` + +用正确的磁盘编号替换 **X**(例如,Disk 1 为 `md1p1`)。 + +- 查看维修报告以获取进一步的补救步骤(如果需要)。如果只有小问题,通常运行 `-v` 就足够了。 +- 如果修复产生了 `lost+found` 目录,请按照上述方式检查和管理。 +- 在修复期间,%%校验|校验%% 被维持。 +- 完成后,停止 %%array|array%% 并在正常模式下重新启动。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx new file mode 100644 index 0000000000..c21733b874 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/data-recovery/xfs-check-webgui.mdx @@ -0,0 +1,7 @@ +1. 使用 %%WebGUI|web-gui%% 对于格式化为 %%XFS|xfs%% 的 %%array|array%% 驱动器。 +2. 以 %%Maintenance Mode|maintenance-mode%%(未挂载)启动 %%array|array%%。 +3. 从主选项卡中选择磁盘并打开 **检查文件系统状态**。 +4. 默认情况下,检查使用 `-n`(非修改);想要更多输出,请在 `nv` 上添加 `-v`。 +5. 要修复,请删除 `-n` 标志以允许修复。 + +%%WebGUI|web-gui%% 过程在修复期间保持 %%parity|parity%%。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx new file mode 100644 index 0000000000..94df3e54df --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/flash-drive-failure.mdx @@ -0,0 +1 @@ +"%%array|array%% 状态存储在您的 USB 闪存设备上。如果闪存不可用或进入只读状态,Unraid 无法更新关机状态,即使 %%array|array%% 正确停止。这会导致在下次启动时检测出不干净关机。" diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx new file mode 100644 index 0000000000..a5bc339ad9 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/open-terminal-sessions.mdx @@ -0,0 +1,5 @@ +Unraid waits for all open terminal or SSH sessions to close during shutdown. If these sessions remain active and the shutdown timer expires, a forced shutdown occurs. + +:::tip +The [Dynamix Stop Shell](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository) plugin can automatically close lingering bash or SSH sessions, helping ensure a graceful shutdown. However, be cautious if there are ongoing write operations to the %%array|array%%. +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx new file mode 100644 index 0000000000..3c9dc3c51e --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/partials/unclean-shutdowns/unexpected-power-loss.mdx @@ -0,0 +1,5 @@ +Power interruptions are one of the main reasons for unclean shutdowns. Protect your system with a properly configured UPS that can automatically shut down Unraid before the battery runs out. + +:::note +Unraid 支持大多数使用 %%apcupsd 协议|apcupsd%% 协议的 UPS 单元(APC 和 CyberPower 通常兼容)。如果您的 UPS 不受支持,建议使用来自社区应用程序的网络 UPS 工具(NUT)插件。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx new file mode 100644 index 0000000000..cbf2c4772e --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx @@ -0,0 +1,232 @@ +--- +sidebar_position: 3 +sidebar_label: 系统崩溃与稳定性 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# 系统崩溃与稳定性 + +系统崩溃和稳定性问题可能难以诊断和解决。它们通常源于硬件故障、配置错误或软件中的冲突。本节将指导您了解常见原因、诊断步骤和最佳实践,以帮助保持 Unraid 服务器的稳定性。 + +--- + +## 内存问题 + +内存问题是系统不稳定和数据损坏的最常见原因之一。RAM 随时间的推移会磨损,导致难以诊断的不可预测错误。本节介绍如何识别和解决与内存相关的稳定性问题。 + +内部存储器问题的常见症状包括: + +- 无法解释的系统崩溃或冻结 +- 文件或%%array|数组%%中的数据损坏 +- 随机的应用程序错误 +- 在负载下系统不稳定 +- %%parity checks|校验%%失败 + +### 检测RAM + +内存测试是诊断稳定性问题的关键。Unraid 启动菜单包括用于全面 RAM 测试的 Memtest86+,适用于 Legacy 和 %%UEFI|uefi%% 系统。 + +要检测您的RAM: + +1. 重启你的服务器,从启动菜单中选择**Memtest86+**。 +2. 让测试运行至少 2-4 小时以进行全面覆盖。 +3. 监控任何错误消息或失败的测试。 + +:::note[Other RAM测试工具] +- [**MemTest86+**](https://www.memtest.org/): Open source tool included with Unraid +- [**MemTest86**](https://www.memtest86.com/): 支持现代硬件的商业工具 +- [**Karhu RAM Test**](https://www.karhusoftware.com/):一款付费但有效的Windows工具,可比传统方法更快地检测错误,检测率在30分钟内达到95.67%(理想适用于DDR5系统) +- [**HCI MemTest**](https://hcidesign.com/memtest/):流行的、免费的Windows检测工具 +- [**Prime95**](https://prime95.net/):同时验证RAM和CPU的稳定性 +::: + +:::important\[If 你发现内存错误 + +如果 Memtest86+ 显示错误,请尝试重新插入内存模块并重新运行测试。单独测试每个内存条以找出有故障的模块。请参考您的主板文档以获取支持的内存速度和配置,并避免混用不同的内存品牌或速度,以减少兼容性问题。 + +::: + +### 超频RAM + +内存超频会显著影响系统稳定性。许多用户希望以制造商指定的最高速度运行他们的内存,但主板和 CPU 组合的最大可靠内存速度通常低于内存规定的速度。 + +:::caution\[RAM 超频风险和建议 + +**购买:** 如有可能,总是购买列在主板的 QVL (合格供应商列表)上的内存,而不是内存制造商的 QVL。这确保了更好的兼容性和稳定性。 + +**Intel XMP和AMD AMP配置文件是超频**。为了最佳稳定性,总是以SPD速度而不是XMP/AMP速度运行RAM。 + +**超频的风险:** + +- 系统不稳定和随机崩溃 +- 数据损坏和文件系统错误 +- 硬件寿命缩短 +- 与其他组件不兼容 + +**故障排除:** 如果 Memtest86+ 通过测试但您仍然遇到问题,请禁用 XMP/AMP 再试一次。性能差异通常很小,但稳定性改进可能是显著的。 + +::: + +

最佳做法

+ +1. 在尝试超频之前,始终检查您的主板和CPU规范。 +2. \*\*为了最大稳定性:\*\*禁用XMP/AMP配置文件,并以默认SPD速度运行RAM。 +3. 从保守的设置开始,并逐渐增加。 +4. 在任何更改后,用Memtest86+检测稳定性。 +5. 如果发现不稳定,立即恢复到默认或较低的速度。 +6. 在服务器环境中考虑性能与稳定性之间的平衡。 + +## 关键稳定性因素 + +系统稳定性不仅依赖于 RAM 或 CPU 性能。多个硬件和软件组件共同作用以保持可靠运行。本节涵盖影响 Unraid 服务器稳定性的关键领域,并提供可操作的步骤以防止和解决问题。 + +系统稳定性通常取决于: + +- 电源质量和可靠性 +- 适当的热管理 +- 磁盘健康和I/O性能 +- 插件和应用程序兼容性 +- 当前固件和BIOS版本 +- 主动监控和维护 + +### 电源可靠性 + +
+ 点击展开/折叠 + + 稳定且充足的电源供应是保证服务器不间断运行的关键。电源问题常常被忽视,但可能导致最恼人的稳定性问题。 + + 常见的电力相关问题包括: + + - 无法解释的系统崩溃或冻结 + - 写入过程中数据损坏 + - 突发无警告的关机 + - 硬件组件故障 + - 不一致的性能 + +

预防和维护

+ + 主动进行电源维护可预防最常见的稳定性问题。定期检查和选择合适的组件可避免昂贵的停机和数据丢失。 + + 1. 始终为您的硬件使用高质量、适当额定的PSU。 + 2. \*\*关键:\*\*确保您的电源能处理所有连接存储设备的同时启动。12V 轨电流额定值必须考虑到所有驱动器的同时启动电流,而不是分级启动。 + 3. 尽可能避免使用电源分配器。它们可能导致电压下降和不稳定,尤其是在驱动器启动等高电流事件中。 + 4. 考虑对企业和多硬盘系统使用冗余电源。 + 5. 确保每个PSU单元正确插入和连接。 + 6. 如果可用,请监测PSU健康指示器(如AC OK LED)。 + 7. 立即更换故障单元以避免停机。 + 8. 定期检查所有电源线是否牢固。 + 9. 确认电路没有过载。 +
+ +### 热管理与过热 + +
+ 点击展开/折叠 + + 过热是硬件故障和服务器异常行为的主要原因之一。温度问题可能导致组件降速运行或彻底失效。 + + 热问题的迹象包括: + + - 系统节能或性能降低 + - 高负载时随机崩溃 + - 风扇噪音或不寻常的冷却行为 + - 硬件组件故障 + - 系统行为不一致 + +

冷却解决方案与最佳实践

+ + 适当的冷却对于维持系统稳定性和防止热节流至关重要。这些做法有助于确保服务器在安全温度范围内运行。 + + 1. 确保服务器位于通风良好的区域。 + 2. 保持环境温度控制(理想温度18-24°C/64-75°F)。 + 3. 使用足够的冷却方案(高质量风扇、机架式空调)。 + 4. 使用硬件传感器监测系统温度。 + 5. 定期清洁冷却组件上的灰尘和碎片。 + 6. 避免将服务器放置在狭窄或通风不良的空间中。 + 7. 考虑对高性能系统额外冷却。 + + Monitoring temperatures proactively helps identify cooling issues before they cause system instability. Use Unraid's built-in temperature sensors or hardware monitoring tools compatible with your system. +
+ +### 磁盘健康和I/O错误 + +
+ 点击展开/折叠 + + 无论是因为驱动老化还是突然故障,磁盘错误都可能破坏系统稳定性并危及数据。IO问题通常表现为性能问题,然后才导致完全故障。 + + 磁盘问题的症状包括: + + - 服务器高负载或性能缓慢 + - %%parity checks|校验%%失败 + - 数据损坏或读/写错误 + - 磁盘活动异常或噪音 + - 磁盘操作期间系统冻结 + +

预防性维护

+ + 定期维护有助于在磁盘问题导致数据丢失或系统不稳定之前发现问题。这些主动步骤可以显著延长驱动器寿命并维护性能。 + + 1. 定期使用 Unraid 内置的[磁盘健康工具](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx)监控驱动器的 %%SMART|smart%% 数据。 + 2. 定期运行[%%parity checks|parity-check%%s](../../using-unraid-to/manage-storage/array-configuration.mdx#parity--read-checks)以确保数据完整性。 + 3. 监控磁盘温度和性能指标。 + 4. 保持驱动器适当通风和冷却。 + +

当问题发生时

+ + 快速响应磁盘问题可以防止数据丢失并将停机时间降到最低。系统地按照这些步骤来识别和解决问题。 + + 1. 及时更换故障驱动器以防止数据丢失。 + 2. 检查电缆、电源供应和驱动器控制器健康状况。 + 3. 检查松动的连接或损坏的电缆。 + 4. 考虑为可疑的驱动器运行扩展 %%SMART|smart%% 测试。 + 5. 监控系统日志以获取I/O错误模式。 +
+ +### 应用程序和插件稳定性 + +
+ 点击展开/折叠 + + Unraid’s flexibility comes from its support for plugins and Docker containers. However, third-party plugins can introduce instability, especially if they are outdated or incompatible with your current Unraid version. + + 进行故障排除时... + + - 使用[安全模式](../../using-unraid-to/customize-your-experience/plugins.mdx#troubleshooting-with-safe-mode)暂时禁用插件并识别问题来源。 + - 优先使用Docker容器而不是插件来添加功能,因为容器提供了更好的核心操作系统隔离,不太可能导致系统范围的问题。 + - 定期更新或删除未使用或不再支持的插件以保持稳定性。 +
+ +### 固件和BIOS更新 + +
+ 点击展开/折叠 + + 过时的固件或BIOS可能导致不稳定性、安全漏洞和硬件兼容性问题。定期更新对于维护系统稳定性和安全性至关重要。 + + - 为您的主板和关键组件定期检查固件和BIOS更新。 + - 在更新之前始终备份您的配置,并如可能在受控环境中测试更新。 + - 记录您的更新流程,并时不时进行审核以确保您遵循最佳做法。 + + 保持系统固件更新有助于避免意外崩溃,并解锁新的硬件功能。 + + :::tip[推荐] + - 使用制造商的工具进行无风险更新,例如[华硕Armoury Crate](https://www.asus.com/supportonly/armoury%20crate/helpdesk_download/)、[技嘉@BIOS](https://www.gigabyte.com/Support/Consumer/Download)或[MSI中心](https://www.msi.com/Landing/MSI-Center)。 + - 检查主板BIOS设置中是否有自动更新选项。 + ::: +
+ +### 主动系统监控 + +
+ 点击展开/折叠 + + 持续监控对早期问题检测至关重要。 + + - 在 Unraid 中启用[持久日志记录](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx),以保留跨重启的日志。 + - 利用系统监控工具跟踪温度、电压和驱动器健康。为关键阈值设置警报,以便在小问题升级前采取行动。 + - 定期查看系统日志,发现模式并解决潜在原因,避免它们导致停机。 +
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx new file mode 100644 index 0000000000..03d1fc4dc6 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx @@ -0,0 +1,150 @@ +--- +sidebar_position: 2 +sidebar_label: 非正常关机 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import UncleanShutdownsPower from './partials/unclean-shutdowns/unexpected-power-loss.mdx'; +import UncleanShutdownsFlash from './partials/unclean-shutdowns/flash-drive-failure.mdx'; +import UncleanShutdownsTerminal from './partials/unclean-shutdowns/open-terminal-sessions.mdx'; + +# 非正常关机 + +当 Unraid 检测到 %%array|array%% 没有在系统断电前正确停止时,就会出现不干净关机。这种情况可能会在下次启动时触发自动 %%parity check|parity-check%% 以确保数据完整性。 + +:::important[Recommendations 防止不洁的关闭] +采取一些主动的步骤可以帮助你避免或识别非正常关机: + +- \*\*使用不间断电源(UPS):\*\*确保服务器连接到UPS并设置在电池电量不足时自动关闭。 +- \*\*尝试优雅关闭:\*\*如果您的服务器无响应,短按电源按钮以触发安全关闭。不要长按该按钮,因为这将强制硬关机并导致不洁关机。 +- **启用持久日志记录:**前往***设置 → 系统日志服务器***以激活在重新启动后持久存在的日志记录。详细信息请参阅[持久日志 (系统日志服务器)](../diagnostics/capture-diagnostics-and-logs.mdx#persistent-logs-syslog-server)。 +- **附加诊断信息以获得支持:** 如果发生非正常关机,Unraid 将尝试将诊断信息保存到您的闪存设备的 `/log/diagnostics.zip` 中。当您寻求帮助时,请将此文件附加到论坛帖子中。 +::: + +:::tip[UPS 配置最佳实践] +配置良好的 UPS 是防止因掉电导致非正常关机的最佳防卫。 + +- **通过 USB 连接 UPS 到 Unraid 服务器。** +- **在设置中启用 UPS 支持。** +- \*\*配置关机超时时间:\*\*设置UPS以便在电池电量不足之前触发受控关机。调整“剩余电池运行时间”或“电池充电电平”阈值,以提供足够的时间让Unraid [停止%%array|array%%](../../using-unraid-to/manage-storage/array-configuration.mdx#startstop-the-array) 并安全关机。 +- **测试配置:** 模拟掉电以确保 UPS 和 Unraid 的正确反应。 + +了解 [NUT 插件](https://unraid.net/community/apps/c/plugins/p4?srsltid=AfmBOop675PrJQW4iqb4JBN3GyPpwDDiSmnZReq78t27XyxkFdMX8inO#:~:text=NUT%20%2D%20Network%20UPS%20Tools),它可以更广泛地兼容更多高级 UPS 型号或未支持的硬件。 +::: + +## 导致非正常关机的事件 + +了解导致不洁关机的主要触发因素有助于您防止此类事件发生。探索下方选项卡以获取每种情况的详细信息。 + + + + + + + + + + + + + + + +--- + +## 配置关机超时 + +Properly configuring shutdown timeouts is essential to ensure your Unraid server can stop all services effectively, preventing unclean shutdowns, particularly during power loss or maintenance. Each component of your system - %%VM|vm%%s, Docker containers, and the overall %%array|array%% - has its own timeout setting that can be adjusted. + +### 推荐的超时设置 + +| 设置 | 默认值 | 推荐最小值 | 配置位置 | +| --------------- | --- | -------------------------------------- | ---------------------------- | +| %%VM\|vm%% 关机超时 | 60秒 | 300秒(5 分钟) | ***设置 → 虚拟机管理 → 虚拟机关机(高级)*** | +| Docker 容器停止超时时间 | 10秒 | 30–60秒 | ***设置 → Docker(高级)*** | +| 通用关机超时时间 | 90秒 | 3 × %%VM\|vm%% 超时 + Docker 超时 + 15–30秒 | ***设置 → 磁盘设置 → 关机超时*** | + +### 虚拟机超时时间 + +
+ 点击展开/折叠 + + 在停止 Docker 容器或 %%array|array%% 自身之前,Unraid 首先关闭所有配置的虚拟机 (%%VMs|vm%%)。 虚拟机关闭超时决定了 Unraid 等待每个 %%VM|vm%% 优雅关闭的时间。 + +

设置位置

+ + - ***设置 → 虚拟机管理 → 虚拟机关机(高级)*** + +

考虑

+ + - Windows %%虚拟机|vm%% 可能需要更长时间关机,尤其是如果更新待处理或虚拟机处于睡眠/休眠中。 + - 如果超时时间过短,%%虚拟机|vm%% 将被强制停止,有可能导致数据丢失或损坏。 + +

最佳做法

+ + 将超时设置为至少 300 秒(5 分钟),用于 Windows %%VMs|vm%%。计划更新在启动时运行,而不是在关闭时运行,以避免延迟。 +
+ +### “Docker 容器超时时间” + +
+ 点击展开/折叠 + + 在虚拟机之后,Unraid 停止所有正在运行的 Docker 容器。容器停止超时控制 Unraid 等待每个容器干净退出的时间。 + +

设置位置

+ + - ***设置 → Docker*** (启用高级视图) + +

考虑

+ + - 容器是并行停止的。 + - 复杂容器,或具有大型数据库的容器,可能需要超过默认的 10 秒时间进行安全关闭。 + - 如果定时器到期,容器将被强制停止。 + +

最佳做法

+ 如果运行需要额外关闭时间的 Docker 容器,请将超时增加到 30–60 秒。 +
+ +### 通用关机计时器 + +
+ 点击展开/折叠 + + The overall Shutdown time-out is the maximum time Unraid allows for all shutdown processes - %%VM|vm%%s, Docker, and disk operations - before forcing a shutdown. + +

设置位置

+ + - ***设置 → 磁盘设置 → 关机超时*** + +

如何计算

+ + 加上 %%虚拟机|vm%% 和 Docker 超时时间,然后加上 15–30 秒用于磁盘卸载和其他进程。 + + - 示例:`3 × ***虚拟机关机超时*** + ***Docker 停止超时*** + 15–30 秒` + +

最佳实践

+ 设置这个计时器高于您最慢的关机场景,尤其当您有许多驱动器或大型 %%array|array%% 时。 +
+ +### UPS电池寿命 + +
+ 点击展开/折叠 + + 您的 UPS 必须提供足够的运行时间,以允许所有关闭计时器在服务器失去电力前到期。 + +

设置位置

+ + - ***设置 → UPS 设置*** (查看 **剩余运行时间**,所有磁盘旋转起来) + +

考虑

+ + - UPS 应该在关机序列完成前触发关闭。 + - 如果电池在关闭完成之前耗尽,您将面临不完全关闭和可能的数据丢失的风险。 + +

最佳做法

+ + 通过模拟断电来测试您的 UPS,并确认 Unraid 可以在时间充裕的情况下干净关闭。 +
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json new file mode 100644 index 0000000000..3d81f017e5 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "诊断", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx new file mode 100644 index 0000000000..7e25d422f4 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx @@ -0,0 +1,192 @@ +--- +sidebar_position: 1 +sidebar_label: 捕获诊断和日志 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import SyslogMirror from './partials/syslog-server/mirror.mdx'; +import SyslogRemote from './partials/syslog-server/remote.mdx'; +import SyslogLocal from './partials/syslog-server/local.mdx'; +import DockerLogsViaWebGUI from './partials/docker-logs/via-webgui.mdx'; +import DockerLogsCommandLine from './partials/docker-logs/command-line.mdx'; +import DockerLogsPersistent from './partials/docker-logs/persistent.mdx'; + +# 捕获诊断信息 + +当您的 Unraid 服务器出现问题时,收集详细信息至关重要,以便进行有效的故障排除。这些信息有助于其他人提供准确和及时的帮助,特别是在论坛上发帖时。 + +:::info\[Diagnostics 包括... + +诊断 zip 文件包含多个匿名文本文件,创建您 Unraid 系统的详细快照,包括: + +- **系统配置**:信息关于您的%%array|array%%、共享、网络设置和已安装的插件。 +- **系统日志**:来自内核、%%WebGUI|web-gui%% 和系统服务的日志,记录可能导致问题的事件。 +- **硬件信息**:有关连接驱动器、控制器和其他硬件组件的详细信息。 +- **Docker和%%VM|vm%%信息**:整体配置用于Docker和虚拟机(不包括关于您个人容器或%%VMs|vm%%的信息)。 + +::: + +--- + +## 系统诊断 + +Unraid 在 %%WebGUI|web-gui%% 的 ***Tools → Diagnostics*** 下提供了一个用于故障排除的 **Diagnostics** 工具。 该工具将生成一个 zip 文件,您可以下载并附加到论坛帖子以获取支持。所有诊断文件都是基于文本的,用户可以查看它们以了解所包含的信息。 + +| 场景 | 如何捕获 | 笔记 | +| ----------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | +| %%WebGUI\|web-gui%% 可用 | 在 **%%WebGUI\|web-gui%%** 中使用 ***工具 → 诊断*** 来生成并下载诊断 zip 文件。 | 诊断默认是匿名的,以保护敏感数据。 | +| %%WebGUI\|web-gui%% 不可用 | 通过 **%%SSH\|ssh%%**、telnet 或直接控制台访问以运行 `diagnostics` 命令。zip 文件保存到 `/boot/logs`。 | 重启前务必捕获诊断以保持日志完整。 | +| %%阵列\|array%% 在正常模式下启动 | 这是捕获诊断的首选方法,因为它提供了最完整的信息,尤其是关于驱动器状态的信息。 | 如果这不可能,请参阅 [Persistent logs section](#persistent-logs-syslog-server) 以找到替代捕获方法。 | + +
+ ![Disk selection logic](/img/Diagnostics.jpg) +
+ +:::important +在论坛发帖时附加单个诊断zip文件-避免单独上传提取的文件。 +::: + +### 诊断数据的匿名化 + +By default, diagnostics are automatically anonymized. If you enable %%Mover|mover%% logging under ***Settings → Scheduler → Mover Settings***, the %%syslog|syslog%% will include details about files the %%Mover|mover%% processes. It's best to allow %%Mover|mover%% logging only when troubleshooting specific %%Mover|mover%%-related issues, as it may reveal file paths and names. + +当您的系统正常关闭时,会话日志会自动保存到闪存驱动器中。重新启动后,您可以通过 ***Tools → Syslog → syslog-previous*** 访问它。这个日志也会在下次启动时包含在诊断中。然而,如果系统崩溃,系统日志将丢失。在这些情况下,建议启用 %%syslog|syslog%% 镜像到闪存或使用远程 %%syslog 服务器|syslog-server%% 来保留日志以进行故障排除。 + +--- + +## 测试驱动器读取性能 + +您可以使用内置的 Linux 工具来评估硬盘的读取性能。这在诊断缓慢的 %%parity|parity%% 同步、缓慢的磁盘响应或 %%array|array%% 或 %%cache|cache%% 中驱动器间不匹配的速度时非常有帮助。 + +:::important[When 以及为什么要测试驾驶速度] +如果您遇到以下问题,请考虑运行磁盘读取基准测试: + +- 极其缓慢的 %%parity|parity%% 构建或 %%parity check|parity-check%%s +- 来自特定磁盘的文件传输速度异常慢 +- 添加或更换磁盘后,尤其是在混合使用SSD和HDD时,驱动器不匹配 +- 重新分配的扇区或%%UMDA|udma%%CRC错误,可能表明驱动器故障 + +尽管这些测试不会为您提供确切的实际文件传输速度,但它们可以指出性能不佳的磁盘和任何控制器瓶颈。 +::: + +### 快速测试 (hdparm) + +`hdparm`工具测量磁盘的缓存和缓冲读取速度。 + +要运行测试,请将`X`替换为您的磁盘设备(如`sdb`或`sdg`),然后输入以下命令: + +``` +hdparm -tT /dev/sdX +``` + +- `-T`结果显示缓存读取速度。 +- `-t`结果显示缓冲(顺序)磁盘读取性能。 + +:::tip +多次运行此测试以获得更可靠的基准。例如,您可以使用以下命令行将测试运行 12 次: + +``` +for ((i=0;i<12;i++)); do hdparm -tT /dev/sdX; done +``` +::: + +:::note +确保替换 `/dev/sdX` 为有效的物理设备。避免选择像 `/dev/md1` 这样的逻辑 Unraid 设备,因为这些设备包含可能会扭曲原始性能读数的 %%parity|parity%% 过程。 +::: + +### 全面测试(diskspeed.sh) + +要更详细地评估所有连接的驱动器,包括 %%parity|parity%% 和数据驱动器,考虑使用社区脚本 `diskspeed.sh`。 + +该脚本: + +- 在磁盘表面多个线性偏移处测试读取速度 +- 生成CSV数据和性能热图(图像) +- 可以识别出表现不佳的区域,这可能是硬件故障或问题SMR驱动器的征兆 + +要开始使用`diskspeed.sh`: + +1. 从[Unraid论坛](https://forums.unraid.net/topic/31073-disk-speed-test-graphs-disk-bottlenecks-identified-see-how-fast-your-disks-can-really-go/)下载脚本。 +2. 将它放在像`/boot/scripts/`这样持久的路径中。 +3. 使其可执行: + +``` +chmod +x /boot/scripts/diskspeed.sh +``` + +4. 运行脚本: + +``` +bash /boot/scripts/diskspeed.sh +``` + +:::note +此脚本仅执行只读操作,不会修改驱动器上的任何数据。然而,最好在空闲期间安排测试,因为它可能会影响磁盘 I/O 并干扰 %%array|array%% 性能。 +::: + +--- + +## 持久日志(syslog server) + +持久日志对于在重启之间保留系统事件记录至关重要。与系统重启时重置的标准日志不同,持久日志使用 Unraid 的内置 %%syslog 服务器|syslog-server%% 来保障您可以诊断随时间出现的崩溃或间歇性问题。 + +### 选择正确的日志记录方法 + +前往 ***Settings → Syslog Server*** 设置持久日志记录。每种方法都有优缺点: + +| 方法 | 优点 | 缺点 | 最佳用于 | +| ------------------------- | --------------------------------------------------- | ------------ | ---------------- | +| **镜像到闪存** | 捕获启动过程事件 | 可能迅速磨损闪存驱动器 | 短期诊断(几天) | +| **远程 %%syslog\|syslog%%** | 日志存储在另一台设备上 | 需要一个独立的常开服务器 | 长期监控(几周到几个月) | +| **本地 %%syslog\|syslog%%** | 在 %%array\|array%% 或 %%cache\|cache%% 上保持日志,减少闪存磨损。 | 如果系统崩溃,则较难访问 | 无需外部设备即可进行持续日志记录 | + +:::tip +有关详细的配置帮助,请查看 WebGUI 工具栏中的 **帮助** 图标。 +::: + +### 启用syslog服务器 + + + + + + + + + + + + + + + +--- + +## 访问Docker容器日志 + +虽然标准诊断仅提供有限的Docker和%%VM|vm%%数据,但您可以直接访问容器日志以获得更详细的故障排除信息。 + +检索Docker日志: + + + + + + + + + + + + + + + +### 虚拟机日志 + +%%VM|vm%% 日志可以通过各自的 hypervisor 访问(例如,%%QEMU|qemu%% 日志位于 `/var/log/libvirt/` )。查看 %%VM|vm%% 平台的文档以获取更多详细信息。 + +:::important +当您需要针对应用程序特定问题寻求支持时,请记住单独附上相关的容器或%%VM|vm%%日志。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx new file mode 100644 index 0000000000..f9b3dcf171 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/command-line.mdx @@ -0,0 +1,5 @@ +使用命令: + +```bash +docker logs [container_name] > /path/to/save/log.txt +``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx new file mode 100644 index 0000000000..9508987821 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/persistent.mdx @@ -0,0 +1,5 @@ +要将容器日志映射到主机路径,请按以下方式配置您的容器模板: + +``` +/path/in/container:/logs +``` diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx new file mode 100644 index 0000000000..f93e2fc305 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/docker-logs/via-webgui.mdx @@ -0,0 +1,2 @@ +- 导航至 ***Docker > Containers*** +- 点击所需容器的 **Logs** 图标 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx new file mode 100644 index 0000000000..a289bfb93c --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/local.mdx @@ -0,0 +1,15 @@ +要在服务器上创建 Unraid %%syslog|syslog%% 的持久可靠副本: + +1. 将**本地syslog服务器**设为*启用*。 +2. 配置以下选项: + - **本地%%syslog|syslog%%文件夹**:使用仅缓存或首选共享(SSD最适合)。 + - **旋转设置**:调整文件大小和数量限制。 +3. 为了获得最佳的结果并确保所有 %%syslog|syslog%% 数据(包括启动事件)都被捕获,请将 **远程 %%syslog 服务器|syslog-server%%** 字段设置为您服务器的 IP 地址("环回方法"),否则 %%syslog|syslog%% 将不会保存到指定共享中。 + - 这确保%%syslog|syslog%%事件既存储在本地又在重启之间持续保存,而无需写入闪存驱动器。 +4. 点击 **应用**。 + - 日志将被保存到您指定的共享中。 + +:::note +- 如果您将从本地%%syslog server|syslog-server%%上传文件到论坛,它们将**不**会被匿名。 +- 使用这种方法保存的日志不会包含在标准诊断中。如果您需要支持,请单独附上。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx new file mode 100644 index 0000000000..a6bd75ed0b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/mirror.mdx @@ -0,0 +1,15 @@ +1. 在**镜像到闪存**下选择**是**。 +2. 点击 **应用**。日志将保存到闪存驱动器上的 `/boot/logs/syslog` + +在下次重启时,该文件将重命名为 `/boot/logs/syslog-previous`。您可以通过 **工具 → Syslog → syslog-previous** 查看此文件,并且它还将包含在(匿名)诊断中。 + +

原理

+ +- 默认情况下,Unraid 在每次正常关闭时将 %%syslog|syslog%% 复制到闪存驱动器。这通过“在关闭时将 %%syslog|syslog%% 复制到闪存”设置进行管理,并且默认启用。 +- 如果您正在排查崩溃,可以启用“镜像到闪存”。这将同步 %%syslog|syslog%% 到 `/var/log/syslog` 和 `/boot/logs/syslog`。如果发生崩溃,崩溃前记录到闪存的 %%syslog|syslog%% 条目将被保留。 + +两种方法在下次启动后都会生成一个`/boot/logs/syslog-previous`文件,您可以通过%%syslog|syslog%%查看器访问,并且将被包含在诊断中。 + +:::caution +"在关闭时复制 %%syslog|syslog%% 到闪存" 设置对于您的闪存盘是安全的。然而,启用 "镜像到闪存" 可能会导致长时间开启时过多写入。对于长期记录需求,请考虑使用本地或远程 %%syslog server|syslog-server%%。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx new file mode 100644 index 0000000000..121994bdff --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/partials/syslog-server/remote.mdx @@ -0,0 +1,12 @@ +1. 将**本地syslog服务器**设为*启用*。 +2. 在**远程syslog服务器**下输入您的syslog服务器的IP地址。 +3. 点击 **应用**。 + - 日志将流式传输到您指定的设备。 + +
+ ![远程syslog配置](/img/Syslog-server.jpg) +
+ +:::note +如果您将从远程%%syslog server|syslog-server%%上传文件到论坛,它们将**不**会被匿名。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx new file mode 100644 index 0000000000..bbef0d25cb --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/diagnostics/udma-crc-errors.mdx @@ -0,0 +1,142 @@ +--- +sidebar_position: 2 +sidebar_label: UDMA CRC 错误 +--- + +# UDMA CRC 错误 + +**%%UDMA|UDMA%% %%CRC错误|CRC-错误%%** ([%%SMART|SMART%% 属性 199](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx)) 在 Unraid 用户中很常见,并且经常出现在硬盘健康报告中。对于大多数用户,这些错误表示驱动器与服务器之间的通信问题,而不是驱动器自身的故障。 + +当发生 %%CRC错误|CRC-错误%% 时,驱动器检测到从主机接收的数据不正确。Unraid 会自动尝试通过重新发送数据来恢复正常。如果重发成功,操作将继续如常,尽管由于重试,您可能会注意到写入速度变慢。这些事件会记录在 %%syslog|syslog%% 中。 + +If recovery attempts fail after several retries, Unraid treats it as a read error. In %%parity|parity%%-protected %%arrays|array%%, Unraid will attempt to rewrite the affected sector using %%parity|parity%% and data from other drives. If this rewrite is successful, operation resumes; if not, the drive is disabled and marked with a red 'x' in the %%WebGUI|web-gui%%. + +
+ 什么是 CRC 错误?(技术解释) - 点击展开/收起 + + A **%%cyclic redundancy check (CRC)|crc%%** is a mathematical checksum that detects accidental changes to raw data during transmission. In the context of %%UDMA|udma%% (ultra direct memory access), %%CRC errors|crc-errors%% mean the data sent between your drive and controller failed this integrity check. This usually indicates a physical communication issue - such as a loose or faulty cable - rather than a problem with the drive's platters or flash memory. +
+ +--- + +## UDMA CRC 错误的可能原因 + +UDMA CRC 错误表示驱动器与系统之间的数据传输问题。如果不加以检查,这些错误可能导致数据损坏、性能下降和驱动器故障。了解根本原因可以帮助您更有针对性地修复问题,而不是盲目猜测解决方案。 + +

常见原因调查

+ +- **松动或安装不良的 SATA 电缆:** SATA 接口不够稳固,由于振动或电缆张力问题,可能会松动。避免将电缆捆绑得太紧,因为这可能导致串扰和干扰。 +- \*\*故障的 SATA 电缆:\*\*损坏或低质量的电缆是 %%CRC 错误|CRC-错误%% 的常见来源。 +- \*\*电源传输问题:\*\*由于分路电缆或电源超载,不足或不稳定的电源可能造成间歇性错误。 +- \*\*未插入的磁盘控制器:\*\*如果控制器卡未完全插入其插槽可能会发生通信错误。 +- \*\*驱动器硬件故障:\*\*虽然罕见,但故障的驱动器也可能产生 CRC 错误。 +- **电缆管理问题:** + - \*\*扎带:\*\*如果使用扎带进行电缆管理,请不要扎得太紧或过紧。理想情况下使用魔术贴带。 + - **电源和数据电缆的布线:** 避免将电源线与 SATA 数据线一起布线。如果它们必须接触或非常接近,应该以90度交叉,以最大限度地减少干扰。 + - **SATA 电缆弯曲:** 切勿强行弯曲 SATA 电缆以实现 90 度转弯。这可能会损坏电缆并导致通信问题。 + +--- + +## 恢复过程 + +当注意到 %%CRC错误|CRC-错误%% 时,首先要仔细检查并重新安装连接到驱动器的 SATA 和电源电缆。更换任何看起来损坏或不紧密的电缆。如果错误持续,检查电源和控制器连接,并考虑交换电缆或端口以隔离问题。 + +如果在解决电缆和电源问题后,%%CRC错误|CRC-错误%% 仍然继续,则可能需要进一步调查以排除故障控制器或驱动器。 + +--- + +## 了解 CRC 错误指示器 + +### 偶发与频繁错误 + +
+ 点击展开/折叠 + + 了解 %%CRC 错误|crc-errors%% 的频率和模式有助于您确定响应的紧急性。并非所有错误都需要立即采取行动,但模式可以揭示需要注意的潜在问题。 + +

偶尔出现错误(关注度较低)

+ 数周或数月内出现几个 %%CRC 错误|crc-errors%% 通常无需担心。这些孤立的事件可能是由临时电源波动、维护期间电缆移动或其他会自行解决的瞬时问题引起的。 + +

频繁出现错误(关注度较高)

+ 每天或每周发生的 %%CRC 错误|crc-errors%%,或者迅速增加的错误数量,表明需要立即调查的持续问题。这种模式通常表明硬件问题,如连接松动、线路故障或电源问题,这些问题会随着时间的推移而恶化。 + +

何时采取行动

+ 如果错误频繁或增加,请立即调查。检查您的电缆和电源设置以查找间歇性问题,并监控错误率以识别恶化的条件。如果错误持续,考虑进行预防性维护,因为这些问题很少能自行解决,会导致更严重的故障。 +
+ +### 待处理扇区计数 + +
+ 点击展开/折叠 + + **当前挂起扇区计数**([%%SMART|smart%% 属性 197](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx))是一个常与 %%CRC 错误|crc-errors%% 一同出现的关键指标。这种组合表明需要立即关注和仔细监控的严重问题。 + + 待处理扇区表示在访问时可能无法读取的不可靠磁盘区域。这些扇区已经历读错误,现在由驱动器固件标记为潜在问题。当待处理扇区与 %%CRC 错误|crc-errors%% 一起出现时,这表明通信问题正导致驱动器的存储和检索数据能力出现物理损害。 + +

为什么这种组合很危险

+ %%CRC 错误|crc-errors%% 表示驱动器和控制器之间的通信问题,而待处理扇区显示磁盘的某些区域变得不可靠。两者结合创造了高风险情况,可能会危及您的数据保护。如果另一个驱动器在此刻存在待处理扇区时发生故障,您的数据恢复能力可能会受到严重限制,潜在破坏 [数据恢复](../../troubleshooting/common-issues/data-recovery.mdx) 努力。 + + 当看到这种组合时,您应该: + + - **立即**备份任何尚未保护的关键数据。 + - 使用扩展 %%SMART|SMART%% 测试检查驱动器的状态,如果待处理扇区继续增加,考虑更换驱动器。 + - 密切监视情况是否有其他警告信号,并做好在驱动器变得不可靠时重建阵列的准备。 +
+ +### CRC 计数持久性 + +
+ 点击展开/折叠 + + 您的驱动器中的 [%%SMART|SMART%% 数据](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx) 中的 %%CRC错误|CRC-错误%% 计数从不重置 - 只会增加。 + + 这种累积性意味着: + + - 该计数代表该驱动器的总寿命错误 + - 监控增加速度以识别恶化条件 + - 一旦发生错误,它将被永久记录 + - 使用计数安排预防性维护,以防止问题升级 + + 如果看到少量 CRC 错误,不要惊慌,但要跟踪增长速度。错误的突然激增通常表明需要立即关注的新问题。 +
+ +### 仪表板警告图标 + +
+ 点击展开/折叠 + + 当 Unraid 检测到 %%CRC 错误|crc-errors%% 时,**仪表盘**会在受影响的驱动器旁显示警告图标。这是一个 %%SMART|smart%% 警告,应该提示您检查和解决问题。 + +

重要性

+ + - 潜在硬件问题的预警系统 + - 通过早期发现问题来防止数据丢失 + - 指示需要预防性维护的时机 + - Unraid 的主动监控系统的一部分 + + 点击警告图标查看详细的 %%SMART|SMART%% 信息并确认警告。 +
+ +### 确认 SMART 警告 + +
+ 点击展开/折叠 + + 确认并清除 SMART 警告: + + 1. 点击受影响驱动器旁边的 **橙色警告图标** + 2. 从选项菜单中选择 **确认** + 3. 如果提示,请确认操作 + 4. 图标将变为 **绿色** 表示已确认 + +

确认的作用

+ + - 清除您当前视图中的警告 + - 记录您已看到问题 + - 仅当错误计数进一步增加时重新提醒 + - 保持对潜在问题的监控 + + :::重要 + 确认警告不会解决潜在问题 —— 只是告诉 Unraid 您知道它。您仍然应该调查并解决 %%CRC 错误|crc-errors%% 的根本原因。 + ::: +
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx new file mode 100644 index 0000000000..0f8731eae4 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/faq.mdx @@ -0,0 +1,420 @@ +--- +sidebar_position: 3 +sidebar_label: 常见问题 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# 常见问题解答 + +如果您需要 Unraid OS 的帮助,您有几种支持选项: + +- **Unraid 论坛:** [一般支持](https://forums.unraid.net/forum/55-general-support/), [强迫性设计](https://forums.unraid.net/forum/35-unraid-compulsive-design/) +- **官方文档:** [Unraid 文档](../../docs-home.mdx) +- **Discord:** [Unraid Discord 社区](https://discord.unraid.net) +- **支持门户:** [Unraid 支持](https://unraid.net/support) + +--- + +## 目录 + +- [**组装与硬件**](#build--hardware) + - [我需要有关组装或系统配置的帮助。我该去哪里?](#build-help) + - [Unraid 推荐使用哪些控制器?](#hardware-raid-support) + - [如果内置控制器已满,添加更多存储的最佳方法是什么?](#add-more-storage) + - [Unraid 是否有分配功能可以记住磁盘上的坏扇区以防止写入?](#bad-sector-allocation) +- [**操作系统与配置**](#os--configuration) + - [Can I use a HASP key within a VM on Unraid? How does that work with multiple VMs?](#hasp-key-vm) + - [我的USB闪存已损坏,我没有备份。我该如何恢复我的配置?](#usb-failed-restore) + - [如果我忘记了 root 密码,我该怎么办?](#forgot-root-password) + - [如何完全重新安装 Unraid 系统?(恢复出厂设置)](#factory-reset) + - [如何更改我服务器的主机名?](#change-hostname) + - [我的闪存驱动器报告GUID无效。我该怎么办?](#invalid-guid) +- [**虚拟化与设备**](#virtualization--devices) + - [每当我关闭带有AMD GPU分配的Windows虚拟机时,它无法重新启动。我该怎么办?](#amd-gpu-vm-restart) + - [如果 CPU 没有集成图形,如何将主 GPU 传递给虚拟机?](#primary-gpu-passthrough) +- [**存储与 RAID**](#storage--raid) + - [Unraid 支持 RAID1/5/6/10 等各种 RAID 类型吗?](#raid-types-support) + - [我目前有一个设备阵列使用MBR风格分区表格式化,想转换为GPT。我该怎么做?](#mbr-to-gpt-conversion) +- [**网络**](#networking) + - [有没有办法禁用 br0 桥接?](#disable-br0-bridge) + - [我似乎无法使用`http://tower`或`http://tower.local`连接到WebGUI。我该怎么办?](#webgui-connection) +- [**安装**](#installation) + - [I can't get the USB flash creator to install Unraid on my flash device. What do I do?](#usb-creator-issue) + - [我需要配置系统以使用UEFI启动。我该怎么做?](#uefi-boot-config) + - [使用我的Web浏览器时遇到WebGUI问题。我该怎么办?](#webgui-browser-issues) + - [如何延长我的 Unraid 试用期?](#extend-trial) +- [**许可**](#licensing) + - 有关许可相关的问题,请参阅 [许可常见问题](licensing-faq.mdx)。 + +--- + +## 组装与硬件 + +

我需要构建或系统配置的帮助。我该去哪里?

+ +
+ 点击展开/折叠 + + 要了解如何构建或升级 Unraid 服务器,请访问 [强迫性设计论坛](https://forums.unraid.net/forum/35-unraid-compulsive-design/) 或加入 [Unraid Discord](https://discord.unraid.net)。无论您的经验水平如何,社区都活跃且随时准备协助您。 +
+ +
+ +

Unraid 推荐使用哪些存储控制器?

+ +
+ 点击展开/折叠 + + Unraid 在非 %%RAID|raid%% 主机总线适配器 (HBA) 上表现最好。最好避免使用硬件 %%RAID|raid%% 控制器,这些控制器可能会隐藏驱动器健康信息并使维护复杂化。 + + 始终检查固件更新并确保控制器设置为 HBA/IT 模式,而不是 %%RAID|raid%% 模式。您可以参考 [推荐控制器线程](https://forums.unraid.net/topic/102010-recommended-controllers-for-unraid/) 获取社区已成功测试的型号。 +
+ +
+ +

如果内置控制器已满,为添加更多存储的最佳方法是什么?

+ +
+ 点击展开/折叠 + + Unraid allows for the expansion of storage across multiple controllers. You can add a compatible HBA (as mentioned above). Ensure the controller operates in standard HBA (non-%%RAID|raid%%) mode and supports %%AHCI|ahci%%/SATA. Avoid using %%RAID|raid%%-only cards, as Unraid requires direct disk access for %%parity|parity%% and monitoring. +
+ +
+ +

Unraid 是否具有分配功能,可以记住硬盘上的坏扇区以避免向这些区域写入数据?

+ +
+ 点击展开/折叠 + + Unraid 使用来自驱动器的 %%SMART|smart%% 数据来监控其健康状况并检测坏扇区等问题。%%SMART|smart%% 已经内置于现代硬盘和 SSD 中,可跟踪重新分配和待处理扇区等属性。 + + 虽然 Unraid 没有特定的分配功能来避免坏扇区,但它确实使用 %%SMART|smart%% 数据通知您是否有任何驱动器显示故障迹象或坏扇区数量增加。此信息可以在驱动器健康状况和 %%SMART|smart%% 属性的 %%WebGUI|web-gui%% 中找到。 + + 如果驱动器显示出高计数的重新分配或未决扇区,建议及时更换以防止数据丢失。 + + 如果您对驱动器的健康状况不确定,可以在 [常规支持论坛](https://forums.unraid.net/forum/55-general-support/) 分享您的 %%SMART|smart%% 数据以获得社区的协助。 +
+ +
+ +--- + +## 操作系统与配置 + +

Can I use a HASP key within a VM on Unraid? How does that work with multiple VMs?

+ +
+ 点击展开/折叠 + + If your HASP key is a USB dongle, you can assign it to only one %%VM|vm%% at a time. Note that two %%VM|vm%%s cannot use the same key simultaneously. You might need to pass through an entire USB controller for better compatibility. Always run tests with a Trial license to confirm that your hardware performs as expected. +
+ +
+ +

我的USB闪存失败了,而且没有备份。我该如何恢复我的配置?

+ +
+ 点击展开/折叠 + + 如果您启用了 [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) 进行闪存备份,则可以使用它进行恢复。如果没有,请获取一个新的高质量闪存驱动器,在其上安装 Unraid,并使用您通过电子邮件收到的注册密钥。重新分配您的驱动器。如果您不记得分配,请在 [常规支持论坛](https://forums.unraid.net/forum/55-general-support/) 上寻求协助。 +
+ +
+ +

如果我忘记了root密码怎么办?

+ +
+ 点击展开/折叠 + + 请参考 [重置您的密码](../system-administration/secure-your-server/user-management.mdx#reset-your-password)。 + + :::note + 如果您正在使用加密驱动器且忘记了加密密码,则无法进行数据恢复——没有后门。 + ::: +
+ +
+ +

How do I completely start Unraid OS from scratch? (Factory reset procedure)

+ +
+ 点击展开/折叠 + + 1. 备份任何你希望保留的数据。 + 2. 停止%%array|array%%并关闭服务器。 + 3. 移除 USB 闪存设备。 + 4. 使用 Unraid USB Flash Creator 工具重新格式化和重新安装 Unraid 到闪存驱动器。 + 5. 重新插入闪存设备并启动服务器。 + 6. 在 WebGUI 中打开终端并运行 `lsblk` 列出现有驱动器(不包括闪存)。 + 7. 清除每个数据驱动器上的现有文件系统: + + :::danger[关键:破坏性操作] + **此步骤将永久擦除指定驱动器上的所有数据,并且无法恢复!** + + - **在继续之前,确保您已经备份**所需的任何数据 + + - **Double-check the device identifier** in the WebGUI or with `lsblk` before running this command + + - **确保您锁定了正确的驱动器** - 错误驱动器的数据损失无法恢复 + + 对于每个数据驱动器,运行: + + ``` + wipefs /dev/sdX + ``` + + 将 `X` 替换为正确的驱动器字母(例如,sda、sdb、sdc) + ::: + + 8. 继续正常的 Unraid 设置和配置。 +
+ +
+ +

如何更改我服务器的主机名?

+ +
+ 点击展开/折叠 + + 要更改 Unraid 服务器的主机名,请在 WebGUI 中导航到 ***设置 → 系统设置 → 标识***。 + + **更改主机名的影响:** + + - 新主机名将用于网络标识(例如,通过 `http://newname` 访问)。 + - 您可能需要重新连接任何使用新主机名的映射网络驱动器或快捷方式。 + - 某些设备或服务可能缓存旧名称;可能需要完全重新启动设备以识别新名称。 +
+ +
+ +

我的闪存驱动器报告了无效的GUID。我该怎么办?

+ +
+ 点击展开/折叠 + + Unraid requires a USB flash device with a unique hardware %%GUID|guid%% (serial number). Some manufacturers may reuse %%GUID|guid%%s or use generic values, making these drives incompatible with each other. + + **经过实地测试的品牌:** + + - 三星 FIT Plus / Bar Plus + - 金士顿 DataTraveler Exodia + - 雷克沙 JumpDrive M45 + - PNY Elite-X + (除非可以确认具有唯一 %%GUID|guid%%,否则避免使用较新的 SanDisk Ultra Fit/Cruzer 型号。) + + It's best to avoid generic or unbranded drives, SSDs, USB card readers, and SD card adapters, as these often lack unique %%GUID|guid%%s and may not be supported for booting Unraid. +
+ +
+ +--- + +## 虚拟化与设备 + +

每当我关闭分配有AMD GPU的Windows虚拟机时,它无法重新启动。我该怎么办?

+ +
+ 点击展开/折叠 + + 许多 AMD GPU 在功能级别复位时会出现问题,从而导致此问题。解决方法包括在 Windows 中关闭前弹出 GPU 或使用通常可以避免该问题的 NVIDIA GPU。 +
+ +
+ +

如果我的CPU没有集成图形,如何将主GPU传递给虚拟机?

+ +
+ 点击展开/折叠 + + 这是可行的,但需要额外步骤。查看 [SpaceInvaderOne 的视频指南](https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/) 了解如何正确执行此操作的详细说明。 +
+ +
+ +--- + +## 存储 & RAID + +

Does Unraid support various RAID types such as RAID1/5/6/10?

+ +
+ 点击展开/折叠 + + Unraid 具有独特的存储架构,使其与传统的 %%RAID|raid%% 系统区分开来。以下是不同存储选项的比较: + + | 特性 / 能力 | Unraid %%parity\|parity%% %%array\|array%% (md) | %%BTRFS\|btrfs%% 池 (%%cache\|cache%%) | **%%ZFS\|zfs%% 池(7.x+)** | 传统 %%RAID 1\|raid1%%/%%RAID 5\|raid5%%/%%RAID 6\|raid6%%/%%RAID 10\|raid10%% | + | ------------------------------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------ | -------------------------------------------------------------------------------------- | + | %%Parity\|parity%% / 冗余模型 | 专用 %%parity\|parity%% 磁盘 | 通过 %%BTRFS\|btrfs%% 的软件 %%RAID 1\|raid1%%/%%RAID 10\|raid10%%/%%RAID 5\|raid5%%/%%RAID 6\|raid6%% | %%RAID 1\|raid1%%-Z1/Z2/Z3 或镜像 | 条带化 %%parity\|parity%% (%%RAID 5\|raid5%%/%%RAID 6\|raid6%%) 或镜像 (%%RAID 10\|raid10%%) | + | 数据条带化 | 不可以 | 是的(除了 %%RAID 1\|raid1%%) | 可以 | 可以 | + | 磁盘大小灵活性 | 支持混合大小 | 相似大小更佳 | 每个 vdev 相似更佳 | 需要匹配的大小 | + | 一次扩展一块磁盘 | 可以 | 是(添加或更换设备) | 是的(每个 vdev\*) | 通常否 | + | 每个磁盘的文件系统 | 可以 | 不可以 | 不可以 | 不可以 | + | 单磁盘读取速度 | 本地磁盘速度 | 聚合(多磁盘) | 聚合(多磁盘) | 聚合 | + | 重建期间写入劣化 | 最小(仅失败驱动器) | 取决于级别 | 取决于 vdev 布局 | 显著 | + | %%Bit rot\|bit-rot%% 检测 | 可选 (%%BTRFS\|btrfs%%/%%ZFS\|zfs%% %%checksum\|checksum%%) | ✅ 内置 | ✅ End-to-end %%checksum\|checksum%%s | ❌ 非固有 | + | %%Snapshot\|snapshot%% / 发送-接收 | ❌ | ✅ (%%BTRFS\|btrfs%%) | ✅ 原生 | ❌ | + | 推荐生产使用 | 一般媒体存储 | %%RAID 1\|raid1%%/%%RAID 10\|raid10%% (避免 %%RAID 5\|raid5%%/%%RAID 6\|raid6%%)\*\* | ✅ 所有级别稳定 | Enterprise %%array\|array%%s | + + \* %%ZFS|zfs%% vdevs 必须通过更换 **所有** 驱动器或添加新的 vdev 来扩展。\ + \* %%BTRFS|btrfs%% %%RAID 5|raid5%%/%%RAID 6|raid6%% 仍然被“实验性”上游标记;谨慎使用。 + + - **Unraid %%parity|parity%% %%array|array%%** 非常适合增量扩展,允许不匹配的驱动器大小并且重建压力较小。 + - **%%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. + - 传统硬件 %%RAID|raid%% 卡*不是*必要的;你可以使用简单的 HBA 让 Unraid 直接管理驱动器。 +
+ +
+ +

我目前有一组设备格式化为MBR样式分区表,想转换为GPT。我该如何做?

+ +
+ 点击展开/折叠 + +

为什么从 MBR 转换为 GPT?

+ MBR(主引导记录)分区支持的磁盘最大为 2TB,只允许最多四个主分区。另一方面,GPT(%%GUID|guid%% 分区表)可以处理更大的磁盘和几乎无限的分区。如果您使用较大的驱动器或希望更好的分区管理,建议转换为 GPT。 + + :::important[使用 **维护模式**] + 在开始转换过程之前,请将您的 %%array|array%% 置于 **维护模式**。此步骤可确保在转换期间没有写入,从而保护您的数据。 + ::: + +

转换过程

+ + 1. 确保您有一个有效的%%parity|parity%%和一个最新的闪存驱动器备份。 + 2. 从主标签页进入**维护模式**。 + 3. 首先替换并重建您的%%parity|parity%%驱动器。 + 4. 一次替换每个数据驱动器,并在每次更换后重建%%array|array%%。 + 5. 新的驱动器将根据其大小被格式化为适当的分区样式: + - **2TB或更小**:使用MBR分区 + - **大于2TB**:使用GPT分区 + 6. 在所有驱动器更换并重建后,退出**维护模式**。 + + 此过程在更改分区格式时保证您的数据安全。 + + :::note[附加说明] + - **分区是自动的**:Unraid 会根据磁盘大小自动选择分区类型: + - **2TB或更小**:始终使用MBR分区 + - **大于2TB**:始终使用GPT分区 + - 从 Unraid OS 6.9 开始,分区 1 对旋转设备从 32KiB 开始,对非旋转设备从 1MiB 开始,无论分区类型。 + - 始终在开始此转换过程之前[备份您的闪存驱动器](../system-administration/secure-your-server/secure-your-flash-drive.mdx#backups)。 + ::: +
+ +
+ +--- + +## 网络 + +

有什么办法可以禁用br0桥接吗?

+ +
+ 点击展开/折叠 + + 是的。**br0** 桥接是一个允许 Docker 容器和 %%VM|vm%%s 直接连接到本地局域网(LAN)并获得其 IP 地址的 Linux 网络桥接器。它充当虚拟网络交换机,将物理网络接口连接到容器和 %%VM|vm%%s 使用的虚拟接口。 + + :::note + 禁用 br0 意味着 %%VMs|vm%% 和 Docker 容器将无法直接访问 LAN,并可能失去一些高级网络功能。 + ::: +
+ +
+ +

我似乎无法通过 `http://tower` 或 `http://tower.local` 连接到WebGUI。我该怎么办?

+ +
+ 点击展开/折叠 + + 如果在通过主机名连接 %%WebGUI|web-gui%% 时遇到问题,则可能是由于本地 DNS 无法解析服务器名称。请尝试使用 IP 地址直接连接。 + + **如何找到服务器的 IP 地址:** + + - 检查您的路由器或交换机的 DHCP 客户端列表,查找标记为“Tower”或类似名称的设备。 + - 如果您在创建闪存时分配了静态 IP,请使用该地址。 + - 插上显示器和键盘到您的服务器;IP 地址将在本地控制台启动后显示。 + + **该问题的常见原因:** + + - 您的计算机和服务器可能在不同的子网或 VLAN 上。 + - 您的路由器可能不支持本地主机名解析。 + - Unraid 服务器可能未连接到网络或网络配置错误。 + - 防火墙或安全软件可能阻止了访问。 + + 如果您仍然无法连接,尝试重启服务器和网络设备,确保所有电缆牢固连接。 +
+ +
+ +--- + +## 安装 + +

I can't get the USB flash creator to install Unraid on my flash device. What do I do?

+ +
+ 点击展开/折叠 + + 如果 USB 闪存创建工具不适用于您的系统或闪存驱动器,您可以使用 [手动安装方法](../getting-started/set-up-unraid/create-your-bootable-media.mdx#manual-install-method) 准备您的 Unraid 启动设备。此方法兼容 Windows、macOS 和 Debian/Ubuntu Linux。 +
+ +
+ +

我需要配置我的系统使用UEFI启动。我该如何做?

+ +
+ 点击展开/折叠 + + 您可以通过几种不同的方法设置%%UEFI|uefi%%启动模式: + + **选项 1:在创建闪存期间** + + - 使用 USB 闪存创建器时,在将 Unraid 写入闪存驱动器前选择启用 %%UEFI|uefi%% 启动模式选项。 + + **选项 2: 在遗留模式启动后** + + - 在%%WebGUI|web-gui%%中,前往闪存设备***设置→闪存设备***页面。 + - 启用 %%UEFI|uefi%% 启动模式并重新启动服务器。 + + **选项 3:手动重命名文件夹** + + - 在闪存驱动器上,将 `EFI-` 文件夹重命名为 `EFI`(去掉破折号`-`)。 + - 将闪存驱动器插入服务器,然后进入主板 BIOS/%%UEFI|uefi%% 设置。 + - 设置USB闪存为主要启动设备并启用%%UEFI|uefi%%启动模式(确保禁用CSM/Legacy/Compatibility模式,若有)。 +
+ +
+ +

我在使用WebGUI时遇到浏览器问题。我该怎么办?

+ +
+ 点击展开/折叠 + + 如果您在使用%%WebGUI|web-gui%%时遇到显示或功能问题,请考虑以下几点: + + - **Ad-blockers and content blockers:** These browser extensions may interfere with the %%WebGUI|web-gui%%. Try adding your Unraid server to your ad-blocker's whitelist or disabling the blocker for your server's address. + - \*\*浏览器扩展:\*\*某些扩展可能会阻止脚本或更改页面内容。禁用扩展或尝试使用隐私/无痕窗口。 + - **过时的浏览器:** 确保你使用的是现代的、最新的浏览器(如Chrome、Firefox或Edge)。旧版浏览器可能无法完全支持%%WebGUI|web-gui%%。 + - **缓存问题:** 清除浏览器缓存或尝试进行硬刷新(Ctrl+F5 或 Cmd+Shift+R)。 + - \*\*网络问题:\*\*确保您的计算机和服务器连接到同一网络和子网。 + + 如果问题仍然存在,请尝试从其他浏览器或设备访问%%WebGUI|web-gui%%。 +
+ +
+ +

How do I extend my Unraid trial?

+ +
+ 点击展开/折叠 + + 如果您需要 [Unraid 的 30 天免费试用](https://unraid.net/download) 的更多时间,可以申请延期。在原始试用期到期后,停止 %%array|array%% 并转到 **注册** 页面。您应该看到一个按钮,允许您申请 15 天的延长。您可以这样做两次,总共延长 60 天,然后需要购买许可证。 + + :::important + 您必须使用相同的 USB 闪存设备以继续您的试用。更换闪存设备将需要重新开始新的试用。 + ::: +
+ +
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx new file mode 100644 index 0000000000..5805c2469e --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/licensing-faq.mdx @@ -0,0 +1,303 @@ +--- +sidebar_position: 4 +sidebar_label: 许可证常见问题解答 +--- + +import Details from '@theme/Details'; +import ManualKeyfileTabs from '@site/src/components/ManualKeyfileTabs'; + +# 许可证常见问题解答 + +此页面包含有关 Unraid 操作系统许可的常见问题。对于一般故障排除问题,请参阅[主要常见问题解答](faq.mdx)。 + +--- + +## 目录 + +- [**许可证所有权**](#license-ownership) + - [我是否拥有我的软件许可证?](#own-license) +- [**购买**](#purchasing) + - [我如何购买Unraid?](#purchase-unraid) + - [我如何兑换许可证激活码?](#redeem-activation-code) + - [我是经销商/OEM,需要代表客户购买许可证。我该怎么办?](#oem-purchase) +- [**许可证管理**](#license-management) + - [我如何升级我的 Unraid 许可证?](#upgrade-license) + - [如何手动将我的许可证密钥文件安装到USB闪存设备?](#manual-keyfile-install) + - [我如何确定我的注册类型?](#registration-type) +- [**许可证类型和功能**](#license-types--features) + - [Unraid OS是订阅制的吗?](#subscription) + - [如果我不延长我的Starter或Unleashed许可证,会怎样?](#no-extension) + - [关于预发布(Beta/RC版本)会发生什么?](#pre-release-policy) + - [“无限”对连接存储设备意味着什么?](#unlimited-storage) +- [**故障排除**](#troubleshooting) + - [如果我的 USB 闪存设备发生故障,会发生什么?我需要重新购买许可证吗?](#usb-failure-license) + - [如果我注册我的闪存设备时出现错误:“####-####-####-#############”已注册到其他用户, 我应该怎么办?](#guid-error) +- [**试用许可证**](#trial-licenses) + - [Unraid 试用版如何运作?](#trial-license) + - [我可以将试用密钥转移到新的闪存设备吗?](#trial-key-transfer) + +--- + +## 许可证所有权 + +

我拥有我的软件许可证吗?

+ +
+ 点击展开/折叠 + + 当您[购买 Unraid 操作系统许可证](https://unraid.net/pricing)时,您将拥有该软件的永久副本。您的许可证有效期永久,不会过期,即使您选择不为未来的更新付费。 +
+ +
+ +--- + +## 购买 + +

如何购买 Unraid?

+ +
+ 点击展开/折叠 + + 您有两种购买 Unraid 的选项: + + 1. **从%%WebGUI|web-gui%%:** 如果您已开始试用,您可以直接从%%WebGUI|web-gui%%右上角菜单购买许可证或升级。 + 2. **使用激活码:** 从[Unraid 网站](https://unraid.net/pricing)购买 Unraid 许可证激活码。激活码不会过期,可以随时兑换。 + + 所有许可证都是每台服务器。使用免费的30天试用版,确保 Unraid 满足您的需求再购买,因为所有销售都是最终的。 +
+ +
+ +

如何兑换许可证激活码?

+ +
+ 点击展开/折叠 + + 1. 从 [Unraid 网站](https://unraid.net/pricing)购买激活码。您的代码将在购买收据上。 + 2. 使用[入门指南](../getting-started/set-up-unraid/create-your-bootable-media.mdx)设置您的Unraid服务器。 + 3. 登录到您的 Unraid 服务器的 %%WebGUI|web-gui%% (默认情况下为 `http://tower` 或 `http://tower.local`)。 + 4. 登录您的 Unraid.net 账户。 + 5. 选择**兑换激活码**并输入您的代码。 + 6. 您的注册密钥将通过电子邮件发送给您,并附有安装说明。 + + :::important + 激活码是用于生成您的 Unraid 许可证密钥文件的一次性使用。 + ::: + + :::note[教学视频] + 观看[激活码教学视频](https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2),获取逐步指导。 + ::: +
+ +
+ +

我是经销商/OEM,需要代表客户购买许可证。我该怎么办?

+ +
+ 点击展开/折叠 + + 您可以通过%%WebGUI|web-gui%%或从[Unraid网站](https://unraid.net/pricing)获取激活码来购买许可证。 + + 在结账时,选择“OEM”选项并输入您的购买详细信息,包括客户的姓名和电子邮件地址。许可证密钥将以客户名义颁发并直接发送给他们。结帐后,您还将找到发票下载链接。 + + 对于批量OEM/转售定价(10个或更多许可证),请[联系Unraid](https://unraid.net/contact)获取特价。 +
+ +
+ +--- + +## 许可证管理 + +

如何升级我的 Unraid 许可证?

+ +
+ 点击展开/折叠 + + 您可以随时从%%WebGUI|web-gui%% (***工具→注册***)或[通过账户门户](https://account.unraid.net/keys) (点击\*\*•••更多**并选择**升级密钥\*\*)升级您的许可证。 + + | 升级路径 | 一次性升级费用 | 新设备限制¹ | + | ------- | ------- | ---------- | + | 入门版→无限版 | $69 美元 | 无限² | + | 入门版→终身版 | $209 美元 | 无限² | + | 无限版→终身版 | $149 美元 | 无限² | + | 基础版→无限版 | $49 美元 | 无限² | + | 高级版→无限版 | $19 美元 | 无限² | + | 基础版→高级版 | $89 美元 | 最多支持12个设备¹ | + | 基础版→专业版 | $139 美元 | 最多支持30个设备¹ | + | 高级版→专业版 | $109 美元 | 最多支持30个设备¹ | + + **年度延长费用**(仅限入门版和无限版):$36 美元 + + 1 附加存储设备是指在启动 %%array|array%% 前您可以连接的总驱动器数量(不包括 USB 闪存启动设备)。\ + 2“无限制”表示您不受许可证限制,但受硬件和操作系统约束。其他存储设备可用于 %%VMs|vm%%、未分配设备或其他 Unraid 功能。\* +
+ +
+ +

如何手动安装我的许可证密钥文件到我的 USB 闪存设备?

+ +
+ +
+ +
+ +

我如何确定我的注册类型?

+ +
+ 点击展开/折叠 + + 导航至 ***Tools → Registration*** 在 %%WebGUI|web-gui%%。在这里,您可以找到您的当前许可证类型和注册详情。 +
+ +
+ +--- + +## 许可证类型和功能 + +

Unraid 操作系统是订阅的吗?

+ +
+ 点击展开/折叠 + + 不,Unraid 操作系统是**永久许可证**: + + - **Starter** 和 **Unleashed** 包含一年更新,之后您可以支付36美元的年度延长费用(可选)。 + - **Lifetime** 包括产品生命周期内的更新。 + - 如果您选择不支付延长费用,您将无限期保留现有版本;您将无法收到新的重大更新。 + + 即使您停止支付更新费用,您仍然拥有您的许可证。 +
+ +
+ +

如果我不延长我的 Starter 或 Unleashed 许可证,会发生什么?

+ +
+ 点击展开/折叠 + + - 您保留许可证并可以无限期使用您当前版本的 Unraid OS。 + - 您将不会收到新的功能更新或主要版本升级。 + - 您仍然有资格在同一小版本中(例如,如果您的许可证在7.1.0到期,则7.1.x)获得补丁和安全更新。 + - 一旦发布新的小版本(例如7.2.0),只有安全补丁会提供给之前的小版本。 + - 当一个版本达到生命周期结束(EOL)时,不再提供任何更新。 + - 您可以随时支付延长费用,以重新获得最新更新的访问权限。 +
+ +
+ +

测试版/RC 版本会怎样?

+ +
+ 点击展开/折叠 + + - 预发布(测试版和候选发布版)是用于测试的版本,可能包含错误。 + - 仅在非生产系统上安装预发布版本。 + - 当稳定版发布时,对预发布版的支持将结束。 + - 您的许可证必须在稳定版本的发行日期有资格用于OS更新,以接收稳定版本。 + - 如果您的许可证在稳定版发布之前到期,您必须延长您的许可证以进行升级或回滚到受支持的稳定版本。 + - 即使过期,您的许可证仍然有效;您只需一个活跃的许可证即可获取新更新。 +
+ +
+ +

“无限”对于附加存储设备意味着什么?

+ +
+ 点击展开/折叠 + + “无限制”指根据您许可证级别可连接到 Unraid 服务器的最大存储设备数量。 + + 以下是当前的限制: + + | 许可级别 | %%Parity\|parity%%-Protected %%Array\|array%% | 命名池 | 每个池的设备 | 总存储设备 | + | ---- | --------------------------------------------- | ----- | ------ | ----- | + | 标准版 | 最多6个 | 1 | 最多6个 | 6 | + | 无拘版 | 最多 30 个(28 数据 + 2 %%parity\|parity%%) | 最多35个 | 最多60个 | 无限制\* | + | 终身版 | 最多 30 个(28 数据 + 2 %%parity\|parity%%) | 最多35个 | 最多60个 | 无限制\* | + + \* *“无限制”表示您不受许可证限制,但受硬件和操作系统约束。其他存储设备可用于虚拟机、未分配设备或其他 Unraid 功能。* +
+ +
+ +--- + +## 故障排除 + +

如果我的 USB 闪存设备发生故障,会发生什么?我需要重新购买许可证吗?

+ +
+ 点击展开/折叠 + + 不,如果您的USB闪存设备出现故障,您不需要重新购买许可证。 + + 要转移您的许可: + + 1. 准备一个新的高质量[USB闪存设备](../getting-started/set-up-unraid/create-your-bootable-media.mdx)。 + 2. 使用 USB Flash Creator 或手动方法在新设备上安装 Unraid OS。 + 3. 使用新闪存设备启动您的服务器。 + 4. 前往***工具→注册***选项在%%WebGUI|web-gui%%中。 + 5. 点击**替换密钥**并按照提示将许可证转移到新设备。 + + The first transfer can be done at any time, while subsequent transfers are allowed once every 12 months using the automated system. If you need to transfer your license again before the 12-month period, contact Unraid support with your old and new USB %%GUID|guid%%s for manual assistance. + + :::tip + 通过使用 [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) 定期备份您的 USB 设备,以简化恢复并避免数据丢失。 + ::: +
+ +
+ +

如果我收到 '####-####-####-#########' 的注册错误,提示已经注册到其他用户,我该怎么办?

+ +
+ 点击展开/折叠 + + This error indicates that your USB flash device does not have a unique hardware ID (%%GUID|guid%%), which prevents it from being registered with the Unraid OS. To resolve this issue, use a different USB flash drive. Brands known for having unique %%GUID|guid%%s include Lexar, Samsung, Kingston, and PNY. +
+ +
+ +--- + +## 试用许可证 + +

Unraid 试用如何运作?

+ +
+ 点击展开/折叠 + + - 试用许可证有效期为 30 天,并提供完整的 Unraid 功能,无存储设备限制。 + - 您需要一个优质的 USB 闪存驱动器和 Unraid USB Creator 工具。 + - 请参阅[入门指南](../getting-started/set-up-unraid/create-your-bootable-media.mdx)以获取服务器设置说明。 + - 试用许可证在启动时需要互联网连接进行初次验证。 + - 如果您需要更多时间评估 Unraid,您可以将试用期延长 15 天。您可以执行此操作两次,最长可达 60 天(详情如下)。 +
+ +
+ +

我如何延长试用期?

+ +
+ 点击展开/折叠 + + -Unraid 试用注册密钥有效期为 30 天,可以延长两次,每次延长 14 天。两次试用延长后,将无法再授予其它延长请求。要请求延长,您必须停止阵列,导航到工具>注册页面,并点击“请求延长”。 + + -如果两次额外的延长未使用,并且此选项未出现,或由于任何原因无法使用,请将闪存驱动器 GUID 从工具 - 注册发送至 [contact@unraid.net](mailto:contact@unraid.net) 或通过我们的支持门户 support.unraid.net 联系我们,我们很乐意协助您。 +
+ +
+ +

我可以将我的试用密钥转移到新的闪存设备吗?

+ +
+ 点击展开/折叠 + + 不,试用注册仅在原始 USB 闪存设备上有效。 如果您想购买许可证,您可以将配置文件转移到新的闪存设备,然后购买注册密钥;然而,试用版不能在新设备上继续。 +
+ +
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx new file mode 100644 index 0000000000..de896d1ed3 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx @@ -0,0 +1,3 @@ +1. 如果您的服务器正在运行并且网络中显示闪存共享,请在**网络**下导航到闪存共享。 +2. 拖放注册密钥文件到`config`目录。 +3. 在 %%WebGUI|web-gui%% 中,先**停止** %%array|array%% ,再**启动** %%array|array%% 以应用新的密钥。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx new file mode 100644 index 0000000000..b5f7a415ed --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx @@ -0,0 +1,6 @@ +1. 确保您的USB驱动器有最近的备份。使用[Unraid Connect](../../../../unraid-connect/overview-and-setup.mdx)(推荐)或在 ***主菜单 → Flash → Flash备份***中使用本地备份选项。 +2. 关闭您的 Unraid 服务器并移除 USB 闪存设备。 +3. 将USB闪存设备插入另一台计算机。 +4. 打开 USB 驱动器,将您的 `.key` 文件复制到 `/config` 文件夹中。 + *确保这是唯一的 `.key` 文件——删除其他文件。* +5. 安全弹出USB闪存设备,重新插入您的服务器并重新启动。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx new file mode 100644 index 0000000000..da66ef61c8 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/troubleshooting/troubleshooting.mdx @@ -0,0 +1,17 @@ +# 故障排除 + +Unraid 系统旨在提高可靠性,但偶尔也会出现问题。 本节将指导您解决常见问题,并提供有效的故障排除最佳实践。 + +:::info[Built-in 帮助] +WebGUI 为几乎每个设置提供详细的上下文相关帮助。单击任何字段名称或使用右上角的 ![Help](/img/Help-icon.jpg) 图标来访问整页帮助。 +::: + +:::tip[Stay 得到通知] +在 ***设置 → 用户首选项 → 通知设置*** 下启用通知以接收有关系统健康状况的警报。如果不加处理,不解决的问题可能会恶化。 +::: + +对于额外的支持,Unraid 社区论坛是一个极好的资源。当寻求帮助时,请记住: + +- **在重启之前捕获诊断信息。** + 前往 ***工具 → 诊断*** 以生成包含必要日志和系统详细信息的诊断文件,用于故障排查。 +- **在[Unraid 论坛的帖子](http://forums.unraid.net/) 中分享诊断文件**,以帮助他人有效地协助您。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json new file mode 100644 index 0000000000..29081a8ebc --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "使用 Unraid", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json new file mode 100644 index 0000000000..c43524ba03 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "创建虚拟机", + "position": 3, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx new file mode 100644 index 0000000000..0299935a08 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep.mdx @@ -0,0 +1,212 @@ +--- +sidebar_position: 1 +sidebar_label: 概述和系统准备 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import HvmSupport from './partials/hvm-support.mdx'; +import IommuSupport from './partials/iommu-support.mdx'; +import GpuNvidia from './partials/gpu-nvidia.mdx'; +import GpuAmd from './partials/gpu-amd.mdx'; + +# 概述和系统准备 + +虚拟机 (VM) 允许您在 Unraid 服务器上运行完整的操作系统,例如 Windows、macOS 或 Linux,并与 Docker 容器并排运行。 + +%%VM 是理想的: + +- 运行需要完整操作系统或无法作为容器使用的应用程序。 +- 将专用硬件分配给来宾系统,例如 GPUs 或 USB 设备。 +- 测试、开发、游戏或运行旧版软件。 +- 托管多个用于不同工作负载的隔离环境。 + +有关已在 Unraid 上测试的操作系统列表,请参阅 [%%VM 设置](./vm-setup.mdx) 页面。 + +
+ **幕后的故事:** 展开以了解更多 Unraid 虚拟化的技术堆栈 + + Unraid 的虚拟化栈设计灵活且性能卓越,利用多种开源技术支持高效的虚拟机管理。此概述以用户友好的方式阐明了关键组件及其交互。 + +

核心技术

+ + | 技术 | 功能 | 重要性 | + | --------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | + | %%KVM\|kvm%% | 充当嵌入在Linux内核中的%%hypervisor\|hypervisor%%。 | 允许 Unraid 流畅运行虚拟机,具备硬件加速功能且开销最小。 | + | %%QEMU\|qemu%% | 为%%虚拟机\|vm%%模拟必要的硬件(如主板、CPU和控制器)。 | 与%%KVM\|kvm%%协作,为客户操作系统创建完整的虚拟环境。 | + | %%Libvirt\|libvirt%% | 管理%%虚拟机\|vm%%定义,以及存储和网络接口。 | 将%%虚拟机\|vm%%配置存储在`libvirt.img`中,并提供一致的管理API。 | + | %%VNC\|vnc-session%% | 提供对%%虚拟机\|vm%%的远程图形访问。 | 允许使用浏览器或%%VNC\|vnc-session%%客户端从任何设备与%%虚拟机\|vm%%交互。 | + | %%VirtIO\|virtio%% | 为网络和磁盘设备提供高性能的半虚拟化驱动程序。 | 通过在客户操作系统中安装%%VirtIO\|virtio%%驱动程序,提高%%虚拟机\|vm%%的速度和效率。 | + | %%VirtFS\|virtfs%% (`9p`) | 在主机和基于 Linux 的来宾之间促进文件系统共享。 | 适用于开发和高级文件共享需求。 | + | %%HVM\|hvm%% | 支持硬件辅助虚拟化(%%Intel VT-x\|intel-vt-x%%,%%AMD-V\|amd-v%%)。 | 运行%%虚拟机\|vm%%以实现完全硬件加速的必要条件。 | + | %%VFIO\|vfio%% & %%IOMMU\|iommu%% | 允许直接向%%虚拟机\|vm%%传递PCI设备(如GPU和USB设备)。 | 对于实现接近原生性能和维护安全隔离至关重要。 | + +

Unraid 如何实现 %%VM|vm%% 支持

+ + - %%KVM|kvm%%/%%QEMU|qemu%%:Unraid 的虚拟化功能主要基于 %%KVM|kvm%% 和 %%QEMU|qemu%%,提供强大的 %%VM|vm%% 托管能力。 + - %%Libvirt|libvirt%%:%%VM|vm%% 定义作为 XML 文件存储在 `libvirt.img` 中(通常在 `system` 共享中找到)。 + - **默认共享:** + - `domains`:保存 %%虚拟机%% 虚拟磁盘镜像。 + - `isos`:包含安装 ISOs 和驱动程序映像。 + - `system`:存储 `libvirt.img` 和其他关键系统文件。 + - 默认设置为**使用 %%Cache|cache%%: 首选**以获得最佳性能。 + - %%VNC|vnc-session%%:Unraid 提供内置的 NoVNC 客户端,方便通过浏览器访问 %%VMs|vm%%,也可以根据需要使用外部 %%VNC 客户端|vnc-session%%。 + + :::tip + 大多数用户不需要直接与这些技术交互,但了解 "引擎盖下" 的运作对高级故障排除和自定义设置非常有用。有关更多详细信息,请查看 [KVM](https://www.linux-kvm.org/page/Main_Page)、[QEMU](https://www.qemu.org/)、[Libvirt](https://libvirt.org/)、[VirtIO](https://www.linux-kvm.org/page/Virtio) 的官方文件。 + ::: +
+ +## 要求 + +要在 Unraid 上运行 %%虚拟机%%,您的系统必须满足以下要求: + +| 组件 | 最低要求 | 推荐用于%%虚拟机\|vm%% & %%GPU直通\|gpu-passthrough%% | +| -------- | ------------------------------------------------------------ | ------------------------------------------------------ | +| CPU | 64 位,4 核,2.4 GHz+(Intel/AMD) | 8 个以上内核,3.0 GHz+(Intel Core i7/i9,AMD Ryzen 7/9 或更新版本) | +| 虚拟化 | %%HVM\|hvm%% (%%Intel VT-x\|intel-vt-x%% 或 %%AMD-V\|amd-v%%) | %%HVM\|hvm%% + %%IOMMU\|iommu%% (Intel VT-d or AMD-Vi) | +| RAM | 8 GB | 16 GB 或更多(每个活动虚拟机增加 RAM) | +| 存储 | 用于%%虚拟机\|vm%%磁盘的SSD/NVMe | 高端 NVMe 以获得最佳性能 | +| 网络 | 千兆以太网(建议使用 PCIe) | 2.5 G/10 G 以太网用于高需求工作负载 | +| GPU (可选) | 现代 NVIDIA RTX(推荐)或 AMD Radeon RX | RTX 3000/4000 系列(推荐使用 NVIDIA 以获得更好的直通兼容性) | + +:::tip[GPU 传递兼容性] +由于更好的兼容性和可靠性,**通常推荐** NVIDIA GPU 用于 %%VM|vm%% 直通。AMD GPU 在直通时可能更具挑战性,并且某些较新的型号(包括 RX 7000/9000 系列)可能无法可靠运行或完全无法在 %%VMs|vm%% 中使用。 如果您计划使用 %%GPU passthrough|gpu-passthrough%%,请选择 NVIDIA 作为不错的选择。 +::: + +:::note +您的主板 BIOS 必须启用硬件辅助虚拟化和 %%IOMMU|iommu%% 支持。 请查找标记为“%%Intel VT-x|intel-vt-x%%”、“Intel VT-d”、“%%AMD-V|amd-v%%”或“AMD-Vi”的设置。 +::: + +### 虚拟机资源 + +| %%虚拟机\|vm%%类型 | 每个 %%VM\|vm%% 的 RAM | 每个%%虚拟机\|vm%%的vCPUs | 使用例子 | +| ---------------- | ------------------- | ------------------- | -------------------------------- | +| 虚拟服务器 | 1-2 GB | 1-2 | 轻量级Linux,实用工具%%虚拟机\|vm%% | +| 虚拟桌面 | 4–8 GB | 2–4 | Windows 11,Ubuntu 桌面,RDP | +| 混合/游戏%%虚拟机\|vm%% | 8–16 GB+ | 4–8+ | %%GPU直通\|gpu-passthrough%%,游戏,ML | + +- 内存和 CPU 仅在 %%虚拟机%% 运行时消耗。 +- 计划在多个 %%虚拟机%% 同时运行时实现最大使用。 +- 始终根据来宾操作系统和工作负载要求分配资源。 + +### HVM 和 IOMMU:它们启用的功能 + + + + + + + + + + + +:::important[How 检查支持] +在 %%WebGUI|web-gui%% 中,点击顶部菜单中的 **信息**。 + +- **HVM 支持:** 显示是否存在硬件虚拟化并已启用。 +- **IOMMU 支持:** 显示是否可以使用设备直通并已启用。 +::: + +--- + +### 图形设备直通 + +将 GPU 传递给 %%虚拟机%% 允许实现接近原生的图形性能,非常适合游戏、创意工作或机器学习。 + + + + + + + + + + + +:::tip[General 提示] +- 使用 %%OVMF(%%UEFI)%% 处理使用现代 GPU 的 %%虚拟机%%。 +- 始终使用最新版本的 Unraid 以增强硬件支持。 +- 像 NVIDIA Optimus 这样的技术可能允许笔记本电脑或高级设置的 %%GPU 直通%%,但结果各异。 +::: + +:::info[Always 更改] +硬件和驱动程序的兼容性变化迅速。在购买用于直通的GPU之前,请访问 [Unraid论坛](https://forums.unraid.net/)和厂商文档以获取最新报告和用户体验。 +::: + +--- + +## 系统准备 + +在您创建虚拟机之前,完成这些基本设置任务以确保您的系统已就绪。 + +### 调整 BIOS 设置 + +要充分利用 Unraid 的虚拟化功能,您的 BIOS 必须启用硬件辅助虚拟化和 I/O 存储管理。查找标记为**Virtualization**、%%Intel VT-x|intel-vt-x%%、 **Intel VT-d**、%%AMD-V|amd-v%% 或 **AMD-Vi** 的设置,并将其设置为**启用**。 + +:::note +BIOS接口因制造商而异。请查看主板手册以获得这些设置的确切位置。 +::: + +### 配置网络桥接 + +%%虚拟机|vm%% 可以使用两种桥接类型之一连接到网络。选择最适合您需求的类型: + +| 桥接类型 | 描述 | 使用场景 | +| ------------------- | ----------------------------------------------------------------------------------- | ------------------------------------- | +| **私人 NAT (virbr0)** | 由%%libvirt\|libvirt%%管理。此选项提供内部DHCP服务器和隔离子网。 %%VMs\|vm%% 可以访问互联网和主机文件共享,但与其他网络设备隔离。 | 适合需要互联网和主机访问但无需局域网可见的孤立%%虚拟机\|vm%%。 | +| **公共桥接 (br0)** | 由 Unraid 管理。此选项将虚拟机直接连接到您的 LAN,由路由器分配 IP 地址。MAC 地址保持不变以确保 IP 地址的一致性。 | 适用于应作为网络上常规设备运行的%%虚拟机\|vm%%,可被其他设备访问。 | + +:::important +如果您的 Unraid 服务器通过 Wi-Fi 连接,建议为您的 %%virtual machines|vm%% 使用 **Private NAT (virbr0)** 网络桥,由于 Wi-Fi 接口仅支持单个 MAC 地址,这限制了公共桥和自定义网络类型的使用。通过使用 **virbr0** 桥,您的 %%VMs|vm%% 可以通过 %%NAT|nat%% 完成网络访问,尽管它们将无法从本地局域网上的其他设备直接访问。然而,通过主机,您仍然可以通过 %%VNC|vnc-session%% 访问 %%VMs|vm%%。 +::: + +- 在 ***网络设置 → 启用桥接*** 中启用公共桥接。 +- 在%%VM|vm%%设置中将您首选的桥接设置为**默认网络桥接**。您可能需要启用高级视图以看到此选项。 + +--- + +### 虚拟化的用户共享 + +Unraid 为 %%virtualization|virt%% 创建了两个默认的 %%user shares|user-share%%: + +- `isos`:此共享存储您的 %%VMs|vm%% 的安装介质文件。 +- `domains`:此共享保存 %%虚拟机|vm%% 的 %%虚拟磁盘映像|virtual-disk-images%% 和配置文件。 + +考虑为 %%VM|vm%% 备份创建一个单独的共享以保护您的数据。 + +

共享配置建议

+ +- 在%%cache|cache%%-only共享中存储活动的%%VM|vm%% %%virtual disk images|virtual-disk-images%%可获得最佳性能。 +- 在你的%%cache pool|cache-pool%%中使用SSD能显着提升%%VM|vm%%的响应速度。 +- `isos` 共享中的 %%Cache|cache%% 使用是可选的。 + +:::important +不要将活动的 %%virtual machines|vm%% 存储在**使用 %%cache|cache%% 设置为**是\*\*的共享上。这可能导致在 %%Mover|mover%% 过程中将 %%VMs|vm%% 移动到 %%array|array%% ,导致性能下降。 +::: + +## 设置虚拟化偏好 + +在开始之前,确保您的系统已准备好进行虚拟化(参见 [系统准备](#system-preparation))。在 Unraid 中设置您的 %%virtualization|virt%% 首选项有助于确保您的 %%virtual machines (VMs)|vm%% 优化为最佳性能和兼容性。 + +要设置您的虚拟化偏好: + +1. 在 %%WebGUI|web-gui%% 中,进入 ***设置 → VM 管理器***。 +2. **对于 Windows VM:** + - 从 [官方仓库](https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md) 下载最新版稳定版 %%VirtIO|virtio%% Windows 驱动程序 ISO。 + - 将 %%VirtIO|virtio%% ISO 文件复制到您的 **isos** 共享。 + - 在 **VM 管理器** 中,使用文件选择器为 **VirtIO Windows 驱动程序 ISO** 选择您刚复制的 ISO。 + - (可选)在 **高级视图** 中为各个 %%VMs|vm%% 覆盖默认驱动程序 ISO。 +3. **选择一个默认网络桥:** + - 选择 `virbr0` 作为私人网络桥,或选择在 **网络设置** 中创建的公共桥(例如,`br0`)。 + - (可选)在 **高级视图** 中为每个 %%VM|vm%% 覆盖默认网络桥。 +4. **PCIe ACS 覆盖(高级):** + - 若需要将多个 PCI 设备(如 %%GPUs|gpu-passthrough%% 或 USB 控制器)分配给不同的 %%VMs|vm%%,请切换 **PCIe ACS 覆盖** 至 **开启**。 + - 此选项打破 %%IOMMU|iommu%% 组,允许更灵活的设备直通。 + +:::warning +此设置是实验性的,可能会影响系统稳定性。请谨慎使用。 +::: + +5. 点击 **应用** 以保存您的设置。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx new file mode 100644 index 0000000000..0d6cb8723f --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-amd.mdx @@ -0,0 +1,3 @@ +- Radeon RX 6000 系列通常可用于直通。 +- RX 7000 系列可能存在一些未解决的问题;请查看 [Unraid 论坛](https://forums.unraid.net/) 以获取最新的兼容性报告。 +- AMD 重置错误在最近的型号中大多已解决,但始终确认您的硬件是个好主意。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx new file mode 100644 index 0000000000..0a1a9de7df --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/gpu-nvidia.mdx @@ -0,0 +1,2 @@ +- 所有现代 RTX(3000/4000系列)支持直通,推荐以获得最佳性能。 +- Quadro 和一些较旧的 GTX 卡也受支持,但重要的是检查当前的驱动程序兼容性。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx new file mode 100644 index 0000000000..1899ffdcc6 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/hvm-support.mdx @@ -0,0 +1,5 @@ +%%HVM|hvm%%(硬件虚拟机),也称为 %%Intel VT-x|intel-vt-x%% 或 %%AMD-V|amd-v%%,使您的 CPU 能够以硬件加速运行 %%虚拟机|vm%%。 + +- 在 Unraid 上创建和运行任何 %%虚拟机%% 是必需的。 +- 提供高效的 CPU 虚拟化和比纯软件虚拟化更好的性能。 +- 大多数现代 CPU(2015 年及更新)包括该功能。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx new file mode 100644 index 0000000000..bceb339e4d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/iommu-support.mdx @@ -0,0 +1,5 @@ +%%IOMMU|iommu%%(输入/输出内存管理单元,也称为英特尔 VT-d 或 AMD-Vi)能够为 %%VMs|vm%% 提供安全高效的设备直通。 + +- 用于直接分配 PCIe 设备(如 GPU、USB 控制器、NVMe 驱动器)至 %%虚拟机%%。 +- 提供内存隔离和保护,防止设备访问未经授权的内存区域。 +- 对于 %%GPU 直通%%、高级网络和高性能工作负载至关重要。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx new file mode 100644 index 0000000000..ae16b9199d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-clean-install.mdx @@ -0,0 +1,5 @@ +1. 下载[Windows 11 ISO](https://www.microsoft.com/en-us/software-download/windows11)。 +2. 上传 ISO 到 Unraid 服务器上的 `isos` 共享目录中。 +3. 修改您的%%VM|vm%%模板,使其从`isos`共享中的ISO启动。 +4. 从ISO启动%%VM|vm%%并执行全新安装。 +5. 重新安装您的应用程序并从备份中恢复数据。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx new file mode 100644 index 0000000000..83d0ef6690 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-upgrade-in-place.mdx @@ -0,0 +1,3 @@ +1. 下载[Windows 11 安装助手](https://www.microsoft.com/en-us/software-download/windows11)。 +2. 运行安装程序并按照屏幕上的说明进行操作。 +3. 当收到提示时重新启动。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx new file mode 100644 index 0000000000..1ff8408bc5 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-automatic.mdx @@ -0,0 +1,3 @@ +1. 在 ***设置 → 虚拟机管理器*** 中设置默认的 %%VirtIO|virtio%% ISO 路径(例如,`/mnt/user/isos/virtio-win.iso`)。 +2. 创建 Windows %%VM|vm%% 时,该 ISO 将自动作为虚拟光驱附加。 +3. 在 Windows 设置期间,加载 %%VirtIO|virtio%% ISO 中的驱动程序以响应存储控制器的提示。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx new file mode 100644 index 0000000000..8f3ab0e75b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/partials/windows-virtio-manual.mdx @@ -0,0 +1,14 @@ +1. 下载 [最新稳定的 VirtIO 驱动程序 ISO](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso) 并保存到您的 Unraid `isos` 共享中。 + + :::提示\[验证下载完整性] + 从同一目录下载 [检查文件](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/CHECKSUM)来验证ISO的完整性。这有助于确保您的下载是完整的且未被篡改。 + ::: + +2. 编辑您的 %%VM|vm%% 设置以指向 `isos` 共享中的新 ISO。 + +3. 在 Windows 设备管理器中: + - 右键单击带黄色警告的设备 + - 选择 **更新驱动程序 → 浏览我的计算机** + - 导航至 %%VirtIO|virtio%% ISO 驱动器(通常为 `D:\` 或 `E:\`) + +4. 更新所有驱动程序后重新启动。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx new file mode 100644 index 0000000000..c1e8f8140b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm.mdx @@ -0,0 +1,140 @@ +--- +sidebar_position: 4 +sidebar_label: 作为虚拟机运行 Unraid +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# 作为虚拟机运行 Unraid + +在您的主要 Unraid 服务器上将 Unraid 作为虚拟机运行对开发、测试和评估非常有帮助。这种配置允许您: + +- 开发和测试插件或 Docker 容器,而不危及您的生产服务器。 +- 在升级主系统之前评估新的 Unraid 版本。 +- 创建隔离环境以进行故障排除或培训。 + +:::caution[Important 注意事项] +- Lime Technology 不正式支持用于生产数据的此配置。 +- 虚拟化引入了一些开销;相比直接在硬件上运行,性能会降低。 +- 您需要为虚拟机准备一个单独的、有效的许可证密钥。 +::: + +:::note\[Prerequisites] + +- 为虚拟机准备有效的 Unraid 许可证密钥 +- 专用 USB 闪存驱动器(使用与主机引导驱动器不同的制造商) +- 虚拟机需要 Unraid 版本 6.4.0 或更高版本(旧版本需要手动设置) + +::: + +要启动 Unraid 作为虚拟机: + +
+ 1. 准备虚拟机的闪存驱动器 - 单击以展开/折叠 + + 准备闪存驱动器对无缝和可靠的 %%VM|vm%% 启动过程至关重要。以下是如何使用独特且正确配置的启动设备设置您的 %%VM|vm%% 环境。 + + 1. 在您的桌面上使用 [Unraid USB Creator](https://unraid.net/download) 工具准备闪存驱动器: + - 选择 **允许 EFI 启动**。 + - 设置唯一的服务器名称(例如,如果您的主机是 `Tower`,则设置 `TowerVM`)。 + - 将映像写入闪存驱动器。 + + 2. 修改配置文件: + - 将闪存驱动器标签从 `UNRAID` 重命名为唯一名称(例如,`UNRAID-VM`)。 + + - 编辑闪存驱动器上的 `syslinux/syslinux.cfg` 文件: + + ``` + label Unraid OS + menu default + kernel /bzimage + append unraidlabel=UNRAID-VM initrd=/bzroot + ``` + + - 在文件的所有启动模式(GUI/安全模式)下进行此更改。 + + - 将更新后的 `syslinux.cfg` 文件复制到 `EFI/boot/syslinux.cfg` + + 3. 在闪存驱动器的根目录中创建一个名为 `startup.nsh` 的文件,其中包含以下内容: + + ``` + \EFI\boot\bootx64.efi + ``` + + 4. 请注意闪存驱动器的制造商(稍后在虚拟机设置中需要)。 +
+ +
+ 1. 准备虚拟机的闪存驱动器 - 点击展开/折叠 + + 配置 Unraid 虚拟机需要一些特定设置以确保正常运行。 + + 创建虚拟机模板: + + 1. 在主机 Unraid 服务器上,转到 ***设置 → 虚拟机管理***,确保虚拟机已启用。 + 2. 导航至 **VMs** 标签并点击 **添加 VM**。 + 3. 选择 **Slackware** 模板,因为它与 Unraid 最为接近。 + 4. (可选)如果有可用的替换选项,将 Slackware 图标替换为 Unraid 图标。 + 5. 命名虚拟机(例如,`UNRAID-VM`)。 + 6. (可选)添加描述,如\*“Unraid 测试环境 - vX.XX.X。”\* + 7. 分配资源: + - 处理器:2-4 核心 + - RAM:4-8 GB(设置初始值和最大值相同) + 8. 将 **机器类型** 设置为 **Q35(最新)**。 + 9. 将 **BIOS** 设置为 **OVMF** 和 **USB 控制器** 设置为 **3.0(QEMU XHCI)**。 + 10. 配置虚拟磁盘: + - 为缓存/数据添加 %%vDisks|vdisk%%,使用 **RAW** 格式和 **SATA** 总线。 + - 以不同的大小设置磁盘以便于识别(例如,%%parity|parity%% > 数据 > %%cache|cache%%)。 + 11. 保留图形、声音和网络的默认设置。 + 12. 在 **USB 设备** 下,根据 **制造商** 而不是标签选择闪存驱动器。 + + :::重要 + %%VM|vm%% 的闪存驱动器必须与主机的启动驱动器来自不同的制造商。如果它们相同,%%VM|vm%% 驱动器将不可见。 + ::: +
+ +
+ 2. 在主机上设置虚拟机 - 点击展开/折叠 + + 在配置后启动虚拟机: + + 1. 取消选中 **创建后启动虚拟机** 如果您希望手动控制。 + 2. 点击 **创建**。 + 3. 在 **虚拟机** 选项卡中,点击 Unraid 虚拟机图标并选择 **从控制台开始(%%VNC|vnc-session%%)**。 + 4. 在 %%VNC|vnc-session%% 控制台中观看启动过程,并在登录前注意显示的虚拟机 IP 地址。 +
+ +
+ 3. 创建并启动虚拟机 - 点击展开/折叠 + + 虚拟机运行后,与物理 Unraid 服务器一样进行设置: + + 1. 访问虚拟机的 **WebGUI**,地址为 `http://[VM-IP]`。 + 2. 转到 ***设置 → 标识***: + - 设置唯一的 **服务器名称**(例如,`Unraid-VM`)。 + - 添加描述如“开发实例”。 + 3. (可选)转到 ***设置 → 显示设置*** 并选择另一种配色主题以区别于主机。 + 4. 进入 ***设置 → %%SMB|samba%% 设置 → 工作组设置*** 并将 **本地主机** 设置为 *否* 以避免冲突。 + 5. 对于 UPS 直通(如果主机有 UPS): + - 在虚拟机上进入 ***设置 → UPS***。 + - 将 **UPS 电缆** 设置为 *Ether*。 + - 将 **UPS 类型** 设置为 *net*。 + - 在 **设备** 中输入主机的 IP。 + - 配置 **运行时间** 以在主机之前关闭虚拟机。 + 6. 使用配置好的设备启动 %%array|array%%。 + 7. 安装 [**社区应用程序**](https://unraid.net/community/apps) 进行插件/Docker 测试。 + 8. 通过 ***工具 → 更新操作系统*** 更新虚拟机,就像物理服务器一样。 +
+ +### 故障排除 + +如果您在修改虚拟机设置后遇到与 USB 闪存设备相关的*执行错误*: + +1. 编辑虚拟机并切换到 **XML 视图**。 +2. 找到定义闪存设备的 `` 节点(通常靠近末尾)。 +3. 删除整个 `...` 块。 +4. 点击 **Update**。 +5. 在 **表单视图** 中重新编辑虚拟机。 +6. 在 **USB 设备** 下重新选择闪存驱动器。 +7. 再次单击**更新**。现在,%%VM|vm%% 应该可以正常启动。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx new file mode 100644 index 0000000000..cb20315e60 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx @@ -0,0 +1,435 @@ +--- +sidebar_position: 5 +sidebar_label: VM 转换与迁移 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# VM 转换与迁移 + +在合并硬件、保留遗留系统或在虚拟环境中进行升级测试时,您可能需要将物理磁盘转换或将现有系统迁移到 Unraid 上的%%虚拟机|vm%%。这个过程适用于Linux和Windows系统,使您可以在Unraid服务器中作为%%VM|vm%%运行您的安装。 + +:::note\[Prerequisites] + +- 您的 Unraid 服务器应满足[虚拟化的最低硬件要求](./overview-and-system-prep.mdx#requirements)(见下表)。 +- 源磁盘必须通过 SATA、USB 或作为未分配设备连接到您的 Unraid 服务器。 +- 确保您的 **%%array|array%%** 或 **%%cache pool|cache-pool%%** 有足够的可用空间来容纳新的虚拟磁盘映像。 +- 在开始转换或迁移过程之前,备份任何重要数据。 + +::: + +## 硬件要求 + +| 组件 | 最低要求 | 建议以获得最佳性能 | +| ----------- | -------------------------------------------------------- | --------------------------------------------------- | +| **CPU** | 启用硬件虚拟化的64位(%%Intel VT-X\|intel-vt-x%%/%%AMD-V\|amd-v%%) | 具有 VT-d/AMD-Vi 直通功能的多核 CPU | +| **内存** | 8 GB | 16 GB 或更多 | +| **存储** | SSD 或 NVMe %%cache pool\|cache-pool%% 需要足够的空间 | 用于 %%VM\|vm%% 存储的专用 NVMe %%cache pool\|cache-pool%% | +| **主板/BIOS** | 启用虚拟化的%%UEFI\|uefi%% | 启用%%IOMMU\|iommu%%/VT-d/AMD-Vi的%%UEFI\|uefi%% | + +--- + +## 将物理磁盘转换为 VM + +将现有的 Linux 或 Windows 系统迁移到 Unraid 服务器中的 %%虚拟机|vm%%,可以节省硬件空间,保持旧系统运行或安全地测试新升级。 + +将物理磁盘转换为 %%VM|vm%%: + + + +

步骤 1: 准备物理磁盘

+ + 1. 通过 SATA 或 USB 将源磁盘连接到您的 Unraid 服务器。 + 2. 登录 %%WebGUI|web-gui%% (`http://tower` 或 `http://tower.local`)。 + 3. 点击**主界面**选项卡。 + 4. 启动 **%%array|array%%** 如果尚未运行。 + 5. 在 **未分配设备** 中找到您的磁盘。 + 6. 请注意设备的字母(如,`sdb`,`sdc`)和磁盘大小。您需要在您的 **%%array|阵列%%** 或 **%%cache pool|缓存池%%** 上至少有这个空间来放置新的 %%虚拟磁盘|vdisk%% 。 + +

步骤 2: 创建新的虚拟机

+ + 参考[创建您的虚拟机](../create-virtual-machines/vm-setup.mdx#creating-your-own-virtual-machines)指南,但有以下例外: + + - 将 **BIOS** 设置为 **OVMF**。 + 确保为 [最佳性能](./overview-and-system-prep.mdx#set-up-virtualization-preferences) 指定 **VirtIO 驱动程序 ISO**。 + - 将 %%VM|vm%% 映像存储在 **%%cache pool|cache-pool%%** 上,而不是 %%array|array%%,以获得 [最佳性能](./overview-and-system-prep.mdx#user-shares-for-virtualization)。 + +

步骤 3: 将物理磁盘转换为 %%虚拟磁盘|vdisk%% 映像

+ + 打开终端 (使用 [%%SSH|ssh%%](../../system-administration/advanced-tools/command-line-interface.mdx) 或本地控制台) 并以 `root` 身份登录。 + + 使用以下命令将物理磁盘转换为 %%虚拟磁盘|vdisk%% 映像: + + ``` + qemu-img convert -p -O raw /dev/sdX /mnt/user/[vdisk_share]/[vmname]/vdisk1.img + ``` + + - **/dev/sdX**: 替换为步骤 1 中的设备字母 (例如 `/dev/sdb`) + - **\[vdisk\_share]**: 您保存 %%VM|虚拟机%% 图片的共享位置 + - **\[vmname]**: 您想要的 %%VM|虚拟机%% 名称 + + **命令分解:** + + - `qemu-img convert`: 此工具用于磁盘映像转换。 + - `-p`: 显示百分比进度。 + - `-O raw`: 输出格式设置为 raw (Unraid 默认)。 + - `/dev/sdX`: 源是您的物理磁盘。 + - `/mnt/user/[vdisk_share]/[vmname]/vdisk1.img`: 目标是 %%虚拟磁盘|vdisk%% 映像。 + + 等待操作完成。生成的 `.img` 文件将是您的 %%VM|虚拟机%% 的主磁盘。 +
+ + +

步骤 1: 编辑您的虚拟机的 XML

+ + - 在 %%VMs|vm%% 选项卡中,点击 %%VM|vm%% 图标并从上下文菜单中选择 **编辑 XML**。 + + - Next, scroll down the XML and find the `` tag for the `` that has a `` file set to `vdisk1.img`. It should look like this: + + ```xml + + + + + + + + +
+ + ``` + + - 更改 `` 标签中 **bus** 属性,从 `virtio` 改为 `ide`。 + + - Then, remove the entire `
` line for that ``. + + - 更新后的 XML 应如下所示: + + ```xml + + + + + + + + + ``` + + - 最后,点击 **更新** 保存您对 %%虚拟机|vm%% XML 的更改。 + +

步骤 2: 从虚拟机内部安装 VirtIO 驱动程序(仅适用于 Windows 客户端)

+ + - 打开 **Windows 资源管理器**,访问 %%VirtIO|virtio%% 虚拟 CD-ROM,查看其内容。 + - 进入 **Balloon** 文件夹。 + - 在该文件夹中,找到适合您的 **Windows 操作系统版本** 的子文件夹(例如,`w8.1`)。 + - 进入 **amd64** 子文件夹。 + - 右键单击 **balloon.inf** 文件,然后从上下文菜单中选择 **Install**。 (需要启用文件扩展名可见性才能这样做。) + - 为每个以下文件夹重复这些步骤: + - **NetKVM** + - **vioserial** + - **viostor** + - 安装完驱动程序后,重新进入虚拟 CD-ROM,打开 **guest-agent** 文件夹。 + - 双击 **qemu-ga-x64.msi** 以安装 %%QEMU|qemu%%/%%KVM|kvm%% 客户代理。 + +

步骤 3: 将磁盘总线转换回 VirtIO

+ + - 如果您的 %%VM|vm%% 正在运行,请继续**关闭它**。 + - 在 **VMs** 选项卡中,单击 %%VM|虚拟机%% 图标并从上下文菜单中选择 **编辑 XML**。 + - 找到 `vdisk1.img` 的 `` 部分,并在 `` 标签中将 `bus='ide'` 更改回 `bus='virtio'`。 + - 点击 **更新** 保存您对 %%VM|vm%% 的更改。 + - 现在您可以启动转换后的 %%虚拟机|vm%%! + + + +--- + +## 将物理磁盘迁移到 VM + +您可以直接从 Unraid 虚拟机 (VM) 中的物理磁盘运行 Windows 系统。这种方法有助于在不转换为虚拟磁盘映像的情况下迁移现有的 Windows 系统。如需视觉演示,请查阅 Spaceinvader One 的教程:\ +[如何在 Unraid 虚拟机中传递硬盘、转换磁盘和测试性能 (YouTube)](https://www.youtube.com/watch?v=QaB9HhpbDAI)。 + +:::important[Choosing 您的迁移方式] +有两种常见方式可以将 Windows 安装迁移到 Unraid 中的 %%VM|vm%%: + +**物理磁盘直通:** 这直接在 %%VM|vm%% 中使用原始磁盘。 + +- 优点:最快, 无需图像转换。 +- 缺点:占用 SATA 端口; Unraid 在连接到 VM 时无法将此磁盘用于其他用途。 + +**磁盘映像转换:** 将物理磁盘转换为 %%虚拟磁盘|vdisk%% 映像(`.img` 格式)供 %%VM|vm%% 使用。 + +- 优点:更灵活,允许将磁盘用作 Unraid 共享或用于快照。 +- 缺点:需时,还需转换过程的可用空间。 + +如果您需要简单的迁移或打算双启动磁盘,请选择直通。选择图像转换以获得更好的便携性和备份选项。 +::: + +:::note\[Prerequisites] + +- 在开始之前备份您的 Windows 安装。 +- 准备好空闲的 USB 闪存驱动器以进行恢复工具。 +- 选择一个硬件准备工具,以通过修改驱动程序和硬件抽象层(HAL)来启用在虚拟化硬件上的 Windows 启动: + - **Microsoft Sysprep**(免费并内置于 Windows 8.1 及更高版本) + - **Acronis True Image 2025**(具有高级迁移功能的商用解决方案) +- 确保您的 Unraid 服务器有一个空闲的 SATA 或 NVMe 端口用于物理磁盘。 + +::: + +

步骤 1: 准备 Windows 磁盘以进行迁移

+ +将Windows系统转移到新硬件上,无论是物理还是虚拟的,可能会因硬件差异导致启动失败。请使用下面的方法之一来准备您的Windows系统: + +
选项 A: Microsoft Sysprep(推荐 - 免费)
+ +Sysprep 内置于 Windows 中,消除了独特的系统信息,准备在不同硬件上使用 Windows。 + +:::note[Before 运行 sysprep] +- 暂时禁用任何杀毒软件。 +- 清理不必要的用户配置文件和临时文件。 +- 修复或删除可能阻止 sysprep 运行的任何问题 Microsoft Store 应用程序。 +::: + +1. **运行 sysprep:** + - 以管理员身份打开命令提示符。 + - 导航到 sysprep 目录: + + ```bash + cd C:\Windows\System32\Sysprep + ``` + - 执行 sysprep 进行常规化: + ```bash + sysprep.exe /generalize /shutdown /oobe + ``` + - 系统将常规化安装,然后关机。 + +2. **在关机后将磁盘安装到您的 Unraid 服务器中。** + +
选项 B: Acronis True Image 2025(商用)
+ +Acronis True Image 2025 带有通用恢复功能,可协助硬件迁移。 + +1. 下载并安装 [Acronis True Image 2025](https://www.acronis.com/en-us/products/true-image/)。 +2. 使用附带工具创建可启动恢复媒体: + - 选择类似 Windows 的界面。 + - 选择与您的 Windows(32 位或 64 位)匹配的体系结构。 +3. 从 Acronis 恢复媒体启动您的 Windows 系统。 +4. 按照屏幕说明将Universal Restore应用到您的Windows磁盘上。这将更新驱动程序和HAL,以便更好地兼容虚拟化硬件。 +5. 关闭系统并将磁盘安装到您的 Unraid 服务器中。 + +

步骤 2: 在 Unraid 中识别物理磁盘

+ +1. 登录 %%WebGUI|web-gui%% (`http://tower` 或 `http://tower.local`)。 +2. 进入主界面选项卡。 +3. 启动 %%array|array%% 如果尚未运行。 +4. 在未分配设备中找到您的磁盘。 +5. 注意设备字母(例如,`sdb`、`sdc`),以在 %%VM|vm%% 配置中使用。 + +

步骤 3: 创建新的虚拟机

+ +1. 转到%%WebGUI|web-gui%%中的\*\*%%VMs|vm%%\*\*选项卡。如果缺少该选项卡,请确保启用虚拟化并满足硬件要求。 +2. 点击**添加 VM**。 +3. 遵循[创建您自己的虚拟机](../create-virtual-machines/vm-setup.mdx#creating-your-own-virtual-machines)指南,使用以下设置: + - 设置 **BIOS** 为 %%SeaBIOS|seabios%%(如果 %%SeaBIOS|seabios%% 启动失败,请尝试 %%OVMF|ovmf%%)。 + - 保持 **OS 安装 ISO** 为空。 + - 指定 **VirtIO 驱动 ISO** 以优化启动后的性能。 + - 对于主 %%virtual disk|vdisk%% ,选择任意位置和大小(将在下一步中替换)。 + - 取消选中 **创建后启动 VM**。 + +

步骤 4:编辑虚拟机的 XML

+ +您需要修改 %%VM|vm%% 的 XML 配置,以连接您的物理磁盘到 %%virtual machine|vm%%。 + +1. 从 **VMs** 标签页中,点击 %%VM|vm%% 图标,然后从上下文菜单中选择 **Edit XML**。 + +2. 向下滚动XML,找到用于主%%虚拟磁盘|vdisk%%的现有``条目。通常指向`.img`文件,看起来像这样: + + ```xml + + + + + + + + +
+ + ``` + + 将此块替换为以下内容,其中 `sdX` 为设备字母,或者更好的使用 `/dev/disk/by-id/[your-disk-id]` 以便更可靠的设备分配(参考 \[Unraid Docs:在 VM 中使用物理磁盘]): + + ```xml + + + + + + + ``` + + 如果您的磁盘是 IDE,将总线从 "SATA" 更改为 "IDE"。 + + 使用 `/dev/disk/by-id/` 优于 `/dev/sdX` 以确保即使在重启或硬件更换后磁盘分配保持一致。 + +3. 点击 **Update** 保存您的 XML 更改。 + +

步骤 5:安装驱动程序

+ +1. 启动您的 %%VM|vm%%。 +2. 进入 Windows 后,右键单击开始菜单,选择 **设备管理器** 以打开它。 +3. 查找带有黄色感叹号标记(表示缺少驱动程序)的设备。右键单击每个并选择**更新驱动程序**。 +4. 选择 **在我的计算机上浏览驱动程序**。 +5. 指向挂载 %%VirtIO|virtio%% 驱动 ISO 的驱动器(通常为 D: 或 E:)。 +6. 确保 **包括子文件夹** 被勾选,然后点击 **下一步**。 +7. 对于缺少驱动器的设备重复此过程,通常包括:SCSI控制器、以太网、Balloon 和串行设备。 + +如果您使用安装自己驱动程序的软件(例如杀毒程序),请记住在迁移后重新安装这些应用程序。 + +:::tip +如果您停留在%%SeaBIOS|seabios%%并显示"从硬盘启动"的消息,这可能是因为您的Windows操作系统使用了%%UEFI|uefi%%而不是传统BIOS进行安装。在这种情况下,应使用%%OVMF|ovmf%%而不是%%SeaBIOS|seabios%%作为BIOS类型重新创建VM。大多数现代Windows系统(Windows 8.1、10 和 11)支持%%UEFI|uefi%%,可能需要%%OVMF|ovmf%%才能成功启动。其余的转换过程保持不变。 +::: + +--- + +## 从 Xen 到 KVM 的迁移 + +:::info[Historical 上下文] +Unraid 从早期的 6.x 版本开始支持 %%Xen|xen-hvm%%,但在 6.2 版本(2016 年 9 月)后弃用并最终完全移除。本迁移指南适用于从非常旧的 Unraid 安装(2017 年之前)升级到现代版本的用户。 +::: + +%%Xen|xen-hvm%% 虚拟机管理程序是一个虚拟化平台,允许多个操作系统在相同硬件上运行。在 Unraid 中,%%Xen|xen-hvm%% 历史上用于%%虚拟机|vm%%,但现在%%KVM|kvm%%是标准。迁移从%%Xen|xen-hvm%%到%%KVM|kvm%%是利用现代Unraid功能、实现硬件直通和确保与当前版本兼容的必要步骤。 + +将%%VM|vm%%从%%Xen|xen-hvm%%迁移到%%KVM|kvm%%的过程根据%%VM|vm%%是否设置为半虚拟化(PV)或硬件虚拟化(%%HVM|hvm%%)客户机而有所不同。本指南专门针对使用Xen的GPLPV驱动程序的Windows %%VM|vm%%进行转换,因为它们需要特殊处理。 + +在开始此过程之前,请始终备份您的%%Xen|xen-hvm%%虚拟磁盘。并在备份上测试您的迁移以防止数据丢失。 + +:::info[Why 迁移?] +Unraid 从版本 6.2 开始不再支持 %%Xen|xen-hvm%%。现在,%%KVM|kvm%% 对于 VM 管理、硬件直通和持续更新是必需的。迁移确保您的虚拟机保持安全并与新功能兼容。 +::: + +### Windows 转换步骤 + +要将Windows %%VM|vm%%从%%Xen|xen-hvm%%转换为%%KVM|kvm%%,请按以下步骤操作。记住在开始前,**从您的%%Xen|xen-hvm%%域配置中移除任何PCI设备直通**。这些设备可以在迁移完成后放回。 + +
+ 步骤 1:确定您的 VM 是否使用 Xen 的 GPLPV 驱动程序 -,点击展开/折叠 + + 1. 在您的 %%Xen|xen-hvm%% VM 内,打开 **Windows 设备管理器** (按 *Windows 键 + X*,然后选择 **设备管理器**)。 + 2. 展开 **网络适配器** 并检查设备名称。 + - 如果名称包含 “Xen”,您正在使用 GPLPV 驱动程序。 + - 如果不是,请跳转到关于重启至 %%KVM|kvm%% 模式的步骤。 + + :::提示 + 如果您不使用 GPLPV 驱动程序,可以跳过接下来的几个步骤,并从进入 %%KVM|kvm%% 模式部分继续。 ::: +
+ +
+ 步骤 2:为 GPLPV 驱动程序移除准备 Windows - 点击展开/折叠 + + 1. 以管理员身份打开命令提示符(**开始菜单** → 输入 `cmd` → 右键单击 **命令提示符** → 选择 **以管理员身份运行**)。 + 2. 输入以下命令: + ``` + bcdedit -set loadoptions nogplpv + ``` + 3. 重启您的 VM。 +
+ +
+ 步骤 1:确定您的 VM 是否使用 Xen 的 GPLPV 驱动程序 -,点击展开/折叠 + + 重启后,使用 [Xen Project Wiki](https://wiki.xenproject.org/wiki/Xen_Windows_GPLPV) 中的全面手动移除过程从系统中完全清除所有 %%Xen|xen-hvm%% GPLPV 驱动程序。 + + :::提示 + 如果您不使用 GPLPV 驱动程序,可以跳过接下来的几个步骤,并从进入 %%KVM|kvm%% 模式部分继续。 ::: +
+ +
+ 步骤 2:为 GPLPV 驱动程序移除准备 Windows - 点击展开/折叠 + + 1. 确保启用了 **VM 管理器**: + - 前往 **设置 → VM 管理器**。 + - 设置 **启用 VM** 为 **是**。 + - 通过从下拉菜单中选择最新 Windows **VirtIO 驱动程序 ISO**,下载并点击 **下载**。 + + 2. 导航至 **VMs** 标签并点击 **添加 VM**。 + + 3. 选择与您的原始 %%Xen|xen-hvm%% 虚拟机匹配的 Windows 版本。 + + 4. 配置基本设置: + - **名称**:为您的 VM 指定一个描述性的名称。 + - **VirtIO 驱动程序 ISO**:选择您刚刚下载的版本。 + + 5. 在 **主 vDisk 位置下**: + - 浏览并选择您现有的 %%Xen|xen-hvm%% 虚拟磁盘。 + + 6. 添加一个 **临时第二 vDisk**: + - 点击绿色加号。 + - 将大小设置为 **1M** (这将在首次启动时强制 IDE 总线兼容性)。 + - 为位置选择任意临时目录(稍后将移除)。 + + 7. 其余的图形和声音设置保持默认值,然后点击 **创建**。 + + 8. 立即强行停止 VM: + - 点击 VM 图标并选择 **强制停止**。 + + 9. 编辑 VM 配置: + - 点击 VM 图标并选择 **编辑**。 + - 使用右上角的切换按钮切换至 **XML 视图**。 + + 10. 修改主要磁盘 XML: + - 找到您的主要虚拟磁盘的 `` 部分。 + - 移除整个 `
` 行。 + - 在 `` 标签中将 `bus='virtio'` 修改为 `bus='ide'`。 + - 点击 **Update**。 + + :::提示\[为何使用临时磁盘?] + 1MB 的临时磁盘强制 Unraid 将主磁盘分配为 `hda` (IDE) 而不是 `vda` (%%VirtIO|virtio%%),这使 Windows 可以在没有 %%VirtIO|virtio%% 驱动程序的情况下启动。该临时磁盘将在驱动程序安装后移除。 ::: +
+ +
+ 步骤 5:安装 VirtIO 驱动程序 - 点击展开/折叠 + + 1. 从 **VMs** 标签启动 VM。 + 2. 通过点击 VM 图标连接 %%VNC|vnc-session%% 并选择 **使用控制台 (VNC) 启动**。 + 3. 在启动过程中: + - Windows 将检测到新硬件但可能无法安装驱动程序。 + - 在提示时选择“以后再重启”。 + 4. 打开 **设备管理器**(按 Win+X 并选择设备管理器): + - 为 **其他设备** 下列出的每个设备安装驱动程序(例如以太网控制器、PCI设备等): + 1. 右键点击设备并选择 **更新驱动程序**。 + 2. 选择 **在我的计算机上浏览驱动程序**。 + 3. 定位到 %%VirtIO|virtio%% ISO 驱动(例如,'D:')。 + 4. 选择 **包含子文件夹**。 + 5. 若有提示,接受 **始终信任 Red Hat**。 + 5. 安装 %%QEMU|qemu%% %%guest agent|guest-agent%%: + - 打开文件资源管理器并导航到 `D:\guest-agent\`。 + - 双击 `qemu-ga-x64.msi`。 + 6. 关闭 VM。 +
+ +
+ 步骤 4:创建新 KVM 虚拟机 - 点击展开/折叠 + + 1. 编辑 VM: + - 通过点击红色减号图标移除临时的第二个 %%vDisk|vdisk%%。 + - 确认主要的 %%vDisk|vdisk%% 指向您的原始 %%Xen|xen-hvm%% 磁盘。 + 2. 更新 VM: + - 点击 **Update** 保存更改。 + 3. 正常启动 VM。 + 4. 在 **设备管理器** 中验证: + - 不会出现警告图标。 + - 所有设备都使用 %%VirtIO|virtio%% 驱动程序(例如,“Red Hat %%VirtIO|virtio%% 以太网适配器”)。 + 5. (可选)启用 %%VirtIO|virtio%% 以获得更好的性能: + - 编辑 VM 并切换到 XML 视图。 + - 将主磁盘的 `bus` 从 `ide` 改为 `virtio`。 + - 点击 **Update** 并重启 VM。 + + :::提示\[为何使用临时磁盘?] + 1MB 的临时磁盘强制 Unraid 将主磁盘分配为 `hda` (IDE) 而不是 `vda` (%%VirtIO|virtio%%),这使 Windows 可以在没有 %%VirtIO|virtio%% 驱动程序的情况下启动。该临时磁盘将在驱动程序安装后移除。 ::: + + 1. 从 ISO 重新安装 %%VirtIO|virtio%% 驱动程序。 + 2. 检查 Windows 更新,可能会提供更新的驱动程序。 + 3. 访问 [Red Hat VirtIO Drivers](https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/) 页面以获取最新版本。 ::: +
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx new file mode 100644 index 0000000000..3d9ac674f3 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/vm-setup.mdx @@ -0,0 +1,425 @@ +--- +sidebar_position: 2 +sidebar_label: VM 设置 +--- + +# VM 设置 + +在 Unraid 上设置虚拟机(VM)是一种灵活的方法,可以在您的容器和本地应用程序旁运行完整的操作系统 - 例如 Windows、Linux 或其他平台。无论您是想测试新软件,运行旧版应用,托管桌面环境,还是为游戏或创意工作使用硬件直通,Unraid 的 **VM 管理器**使这一过程对所有技能水平的用户都变得切合可行。 + +:::tip[New 在 Unraid 7.0 中] +Unraid 7.x 为 %%虚拟机 (VM)|虚拟机%% 带来了显著增强,包括: + +- %%VM|虚拟机%% 克隆和快照 +- 用户创建的 %%VM|虚拟机%% 模板 +- 内联 XML 编辑/查看 +- 高级 GPU 共享和直通功能 + +查看 [%%VM|虚拟机%% 管理器功能](#new-in-unraid-7x-vm-manager) 部分以了解更多详情。 +::: + +如果您还没有,请查看 [概述和系统准备](./overview-and-system-prep.mdx) 指南,以确保您的硬件和共享已准备好虚拟化。 + +## 创建您自己的虚拟机 + +在准备好系统和设置好偏好后,您可以使用 %%WebGUI|web-gui%% 创建新的 %%虚拟机 (VM)|虚拟机%%。 + +:::note[Before 开始] +- 确认您的`isos`和`domains`共享已配置并可访问。了解更多关于[共享管理](../manage-storage/shares.mdx)的信息。 +- 上传您的操作系统安装 ISO,以及适用于 Windows %%VM|虚拟机%% 的最新 %%VirtIO|virtio%% 驱动程序 ISO 到 `isos` 共享。 +- 决定是否使用 %%GPU 直通|gpu-passthrough%% 或 %%VNC|vnc-session%% 进行图形处理。 +::: + +要创建一个基本的 %%VM|虚拟机%%: + +1. 从 **虚拟机** 页面中点击 **添加 VM**。 +2. 将 **模板** 设置为 **自定义**,或者为常见发行版选择预定义的操作系统模板。 +3. 输入 %%VM|虚拟机%% 的 **名称**,并可选提供描述。 +4. 如果希望 %%VM|虚拟机%% 随 %%array|array%% 自动启动,请切换 **自动启动**。 +5. 选择**操作系统**类型。这也会调整%%VM|vm%%图标。 +6. 分配给%%VM|vm%%的**CPU核心**。您可以分配最多与主机上的物理核心数相等的数量。 +7. 指定%%VM|vm%%的**初始内存**(RAM)。请参阅您的来宾操作系统文档以获得建议值。 +8. 从 **isos** 共享中选择 **OS 安装 ISO**。 +9. 配置 **主 vDisk**(位置、大小和类型)。 + - 主 %%vDisk|vdisk%% 存储 VM 的操作系统。 + - 使用加号按需添加附加的 %%vDisk|vdisk%%。 +10. 选择 **显卡**: + - 选择 %%VNC|vnc-session%% 以进行远程访问或选择物理 GPU 进行直通。 + - 如果使用物理GPU,请分配USB键盘/鼠标。 + - 如果需要,请设置 %%VNC|vnc-session%% 密码。 +11. 分配 **声卡**(可选,但对于通过GPU实现HDMI音频是必须的)。 +12. 按需分配 **USB 设备**。 + - 设备必须在启动 %%VM|虚拟机%% 之前连接(不支持 USB 热插拔)。 + - Unraid USB 闪存设备无法进行分配。 +13. 点击**创建VM**。除非您取消勾选**创建后启动VM**,否则%%VM|vm%%将自动启动。 + +--- + +## 用户 VM 模板 + +Unraid 7.1+引入了用户%%VM|vm%%模板,使得保存和重用您自定义的%%VM|vm%%配置变得容易。用户模板简化了%%VM|vm%%的部署,并确保设置的一致性。 + +创建用户模板: + +1. 编辑您想要模板化的 %%VM|虚拟机%%。 +2. 选择 **创建/修改模版** 并输入名称。 +3. 您的模板现在将可在 **添加 VM** 屏幕上的用户模板区域中使用。 + +使用用户模板: + +- 在 **VMs** 页面上,点击 **添加 VM** 并从 **用户模板** 部分选择您的模板。 + +导入/导出: + +- 将鼠标悬停在用户模板上,然后单击箭头将其导出到服务器或下载它。 +- 在另一台 Unraid 系统上,使用 **从文件导入** 或 **上传** 来添加模板。 + +--- + +## Unraid 7.x 新增功能:VM 管理器 + +Unraid 7.x为\*\*%%VM|vm%%管理器\*\*引入了许多强大的增强功能,简化了运行和管理%%虚拟机|vm%%的过程。这些功能满足了初学者和高级用户的需求,使得部署、定制和优化您的%%VM|vm%%更加简单。 + +:::tip\[Highlights] + +- 通过 %%VM|虚拟机%% 克隆、快照和可重用模板节省时间 +- 通过高级直通和存储选项优化性能和兼容性 +- 通过使用情况统计和内联 `XML` 编辑享受更好的可见性和控制 + +::: + +
+ 工作流增强 + + - **VM 克隆与快照:** 复制 %%虚拟机%% 或快速保存/恢复其状态以进行测试或备份。 + - **用户 VM 模板:** 保存您自定义的 %%虚拟机%% 配置,并只需几次点击即可部署新 %%虚拟机%%。 + - **内联 XML 查看/编辑:** 立即查看或复制 %%WebGUI|web-gui%% 生成的 `XML`;切换到 `XML` 模式以进行高级编辑。 + - **自动启动禁用:** 选择哪些 %%VM|虚拟机%% 随您的 %%array|array%% 自动启动。 + - **VM 使用统计:** 直接从仪表板跟踪每个 %%VM|虚拟机%% 的资源使用情况。 +
+ +
+ 工作流增强 + + - **PCI 多功能/其他:** 为高级直通场景分配复杂的 PCI 设备或组。 + - **%%QEMU|qemu%% 命令行直通:** 添加自定义 %%QEMU|qemu%% 参数以进行专家级别的 %%VM|虚拟机%% 调优。 + - **存储覆盖:** 指定每个 VM 的 %%虚拟磁盘|vdisk%% 的存储位置。 + - **SSD 标志与 unmap:** 优化 %%vDisk|vdisk%% 性能使其适用于 SSD,并启用 discard/unmap 支持。 + - **`SR-IOV` 用于 Intel iGPU:** 在多个 %%VM|虚拟机%% 之间共享集成 Intel 图形。 + - **ZFS 的 VM 名称验证:** 防止在 [%%ZFS|zfs%% 存储池](../../advanced-configurations/optimize-storage/zfs-storage.mdx) 使用不受支持的字符。 +
+ +
+ 高级硬件与存储选项 + + - **`VirGL` 与 `QXL` 虚拟 GPU:** 在多个 Linux %%VM|虚拟机%% 间共享 Intel/AMD GPU,或利用 `QXL` 进行多屏幕/内存选项。 + - **%%CPU 绑定|cpu-pinning%% 可选:** 允许 Unraid 自动管理 CPU 分配,或根据需要手动设置核心。 +
+ +
+ 增强的图形和 GPU 共享 + + - View all graphics cards and %%VM|vm%%-assigned IP addresses in the %%VM|vm%% tab + - 支持 %%QEMU|qemu%% ppc64 target 和 `qemu:override` + - Windows %%虚拟机%% 的 hypervclock 支持 + - 仿真 CPU 的“可迁移”开/关 + - 计时器/偏移配置选项 + - 不支持的特定用例的 no keymap/nogpu 选项 + - 改进的 %%VM|虚拟机%% 图标选择与编辑 + - 当设置主 GPU 作为直通时的警告(可能需要`vBIOS`) + - 通过 `QXL` 视频驱动程序,将 Unraid %%VM|虚拟机%% 启动到 GUI 模式 + - 在 `XML` 视图中修复路径和图标问题 +
+ +--- + +## 使用虚拟 GPU 和 GPU 共享 + +Unraid 现在支持通过 `VirGL` 和 `QXL` 的高级 GPU 共享适用于 Linux %%VM|虚拟机%%(及支持 `Nouveau` 驱动的某些 Nvidia GPU)。 + +- 使用 `VirGL`:将 **显卡** 设置为 **虚拟**,并将 **VM 控制台视频驱动** 设置为 **VirtIO(3D)**。 +- 使用 `QXL`:将 **显卡** 设置为 **虚拟**,并将 **VM 控制台视频驱动** 设置为 **`QXL` (最好)**。 +- `VirGL` 不输出到物理显示器,并且不兼容 Windows %%VM|虚拟机%% 或标准 Nvidia 插件。 +- `QXL` 支持多屏幕和可配置的视频内存。 + +--- + +## 高级选项 + +
+ 展开此部分查看有关更多高级选项的指南 + + 在 **添加 VM** 页面上切换到 **高级视图** 以访问其他设置。 + + 以下是最重要的高级选项,分为集中部分: + + **CPU 模式:** + + - **主机直通**:向 %%虚拟机%% 暴露所有主机 CPU 功能以获得最佳性能。 + - **仿真**:使用通用 CPU 模型,减少兼容性问题,但性能有限。 + + **内存气球:** + + - 设置 **最大内存** 值以启用动态内存分配(%%内存气球|memory-ballooning%%)。 + - 具有 PCI 设备分配(例如 %%GPU 直通|gpu-passthrough%%)的 %%虚拟机%% 不可用。 + + **机器类型:** + + - **`i440fx`**:Windows %%VMs|vm%%的默认值。只有在%%GPU直通|gpu-passthrough%%问题时更改。 + - **`Q35`**:Linux %%虚拟机%% 的默认值,建议大多数现代操作系统使用,尤其是在有 %%GPU 直通|gpu-passthrough%% 场景下。 + + **BIOS 类型:** + + - **SeaBIOS**:传统 BIOS,适用于旧版操作系统。 + - **OVMF**:%%UEFI|uefi%% BIOS,适用于 Windows 8+、大多数现代 Linux 发行版,以及 %%GPU 直通|gpu-passthrough%%。 + + :::note + 仅在创建新的%%VM|vm%%时才可以设置BIOS类型。 + ::: + + **Hyper-V 扩展:** + + - 对于 Windows %%虚拟机%%,启用 Hyper-V 扩展以提高兼容性和性能。 + + **VirtIO 驱动 ISO:** + + - 如有需要,尤其是在测试或使用更新驱动时,覆盖默认的 %%VirtIO|virtio%% ISO。 + + **vDisk 类型:** + + - **`RAW`**:最佳性能,快照功能较差。 + - **`QCOW2`**:支持快照但性能稍差。 + + **VirtFS 映射(Linux %%虚拟机%%):** + + - 添加多个 %%VirtFS|virtfs%% (`9p`) 共享以实现主机和来宾之间的文件系统集成。 + - 参阅 [%%QEMU|qemu%% 9p 文档](http://wiki.qemu.org/Documentation/9psetup)。 + + **网络设置:** + + - 修改 **网络 MAC 地址** 或选择备用 **网络桥**。 + - 单击刷新符号以自动生成新 MAC 地址。 + - 根据需要添加额外的虚拟网络接口。 +
+ +:::info[Troubleshooting 提示] +- 如果您的 %%VM|虚拟机%% 启动失败,请仔细检查您的 ISO 和 %%vDisk|vdisk%% 路径。 +- 对于 %%GPU 直通|gpu-passthrough%%,确保您的硬件和 BIOS 设置支持 %%IOMMU|iommu%%/VT-d/AMD-Vi。 +- 某些 USB 设备可能在直通时工作不稳定 - 测试并咨询 [Unraid 论坛](https://forums.unraid.net/) 以获得设备特定建议。 +::: + +--- + +## 绑定 PCI 设备以进行直通 + +在您可以将 GPU 或任何 PCI 设备分配给 %%虚拟机|vm%% 之前,重要的是要将该设备 "绑定" 到 **vfio-pci** 驱动程序。这个过程将设备从 Unraid 中隐藏,并完全供您的 %%VM|vm%% 使用。 + +要绑定PCI设备(GPU、USB控制器、NVMe等)以进行直通: + +1. 定位到 %%WebGUI|web-gui%% 中的 ***工具→系统设备***。 +2. 查看所有检测到的 PCI 设备及其 %%IOMMU|iommu%% 组的列表。 +3. 选中您希望绑定到 **vfio-pci** 的每个设备的复选框(以将其从 Unraid 隐藏)。 + - 注意,Unraid 已使用的设备(例如磁盘控制器和网卡)无法选择。 + - 如果选择了 GPU,请选择相关的声音设备。 +4. 单击 **绑定选择到 VFIO 开机时** 以保存更改。 +5. 重新启动服务器以使绑定生效。 + +:::caution +如果您进行了硬件更改(如添加或删除PCI设备),请返回到**系统设备**以确保正确的设备仍然绑定。如果设备未绑定或错误绑定,它们可能不会出现用于直通。 +::: + +绑定后,绑定设备将在编辑或创建 %%虚拟机|虚拟机%% 时出现在 **其他 PCI 设备** 下拉菜单中。 + +
+ 故障排除 + + - 如果您之前使用过 `VFIO-PCI` 配置插件,请卸载它 - 这项功能已经集成。 + - 要重置所有绑定,删除 `/boot/config/vfio-pci.cfg` 并重新启动系统。 + - 重启后,在**系统设备**页面上使用**查看`VFIO-PCI`日志**按钮进行高级故障排除。 + - 请记住,如果您绑定了唯一的 GPU,Unraid 可能无法引导到 GUI。请确保对此有规划。 + - 有关更多信息,请查看[Unraid论坛官方指南](https://forums.unraid.net/topic/93781-guide-bind-devices-to-vfio-pci-for-easy-passthrough-to-vms/)。 +
+ +--- + +## GPU透传用于虚拟机 + +%%GPU透传|gpu-passthrough%%允许您将物理显卡直接分配给%%虚拟机 (VM)|vm%%,为游戏、创作工作或机器学习提供近乎原生的性能。 + +:::info[Why 使用 GPU 直通功能?] +- \*\*性能:\*\*为高需求应用提供直接硬件访问。 +- \*\*兼容性:\*\*运行需要专用GPU的图形密集型工作负载。 +- \*\*灵活性:\*\*将您的 Unraid 服务器转换为多用途工作站。 +::: + +

先决条件

+ +**硬件:** + +- 支持Intel VT-d或AMD-Vi的处理器(在BIOS中启用%%IOMMU|iommu%%)。 +- 与透传兼容的GPU(参见[社区测试硬件](https://docs.google.com/spreadsheets/d/1LnGpTrXalwGVNy0PWJDURhyxa3sgqkGXmvNCIvIMenk/edit#ggid=0))。 +- 主板支持正确隔离PCIe设备。 + +**软件:** + +- Unraid 6.9以上版本,启用了虚拟化。 +- %%OVMF|ovmf%%(%%UEFI|uefi%%) BIOS用于%%VM|vm%%(推荐使用%%OVMF|ovmf%%而不是%%SeaBIOS|seabios%%)。 + +设置GPU透传: + +1. 确保您的硬件支持%%IOMMU|iommu%%并在您的BIOS中启用。 +2. 在BIOS中启用虚拟化特性(Intel VT-x/VT-d或AMD-v/AMD-vi)。 +3. 将 Unraid 更新到最新稳定版本。 +4. 在图形卡部分中,将GPU分配给%%VM|vm%%的%%VM|vm%%创建或编辑屏幕。 +5. 如果使用%%GPU透传|gpu-passthrough%%,请为%%VM|vm%%分配USB键盘和鼠标。 +6. 为%%VM|vm%%使用%%OVMF|ovmf%% BIOS,以便更好地兼容%%GPU透传|gpu-passthrough%%。 +7. 启动%%VM|vm%%并确认GPU正确透传。 + +:::note +某些GPU可能需要额外配置或ROM注入才能正常透传。 +::: + +### 手动ROM注入 + +某些GPU,特别是特定的NVIDIA型号,需要手动为VM提供ROM文件才能正确初始化。这通常在GPU的板载固件未默认正确传递时是必要的,导致诸如黑屏或无法启动等问题。在尝试BIOS和VM配置调整后,手动ROM注入是最后的手段。 + +注入ROM: + +1. **下载GPU ROM:** + - 访问[TechPowerUp VGA BIOS数据库](https://www.techpowerup.com/vgabios/)。 + - 搜索您的GPU型号并下载正确的ROM文件。 + - 在您的 Unraid `isos` 或 `domains` 共享中存储 rom。 + +2. **编辑%%VM|vm%% XML:** + - 停止%%VM|vm%%并打开其XML配置(在%%VM|vm%%上下文菜单中选择**编辑XML**)。 + - 定位GPU的``块并添加``标签: + + ```xml + + + + +
+ + +
+ + ``` + +3. **保存并测试:**点击**更新**并启动%%VM|vm%%。 + +--- + +## 常见问题 + +本节涵盖在 Unraid 上管理 %%虚拟机 (VMs)|vm%% 时常见问题的高级主题和解决方案。展开以下部分以获取分步说明和故障排除提示。 + +### 扩展vDisk + +
+ 点击展开/折叠 + + 如果您的 %%VM|vm%% 磁盘空间不足,可以直接通过%%WebGUI|web-gui%%增加其%%virtual disk (**vDisk**)|vdisk%%的大小。 + + 要扩展%%vDisk|vdisk%%: + + 1. 进入 %%WebGUI|web-gui%% 中的 **VMs** 标签。 + 2. 确保%%VM|vm%%已停止。 + 3. 点击VM的名称以展开其详细信息。 + 4. 找到您要扩展的%%vDisk|vdisk%%。点击**容量**字段中的值以使其可编辑。 + 5. 输入新的所需大小(例如, `100G`表示100GB)并按**Enter**。 + 6. 新的容量现已设置。 + + :::note + You cannot shrink a %%vDisk|vdisk%% from the Unraid GUI; only expansion is supported. + ::: + +

在您的客户操作系统中扩展分区

+ + 调整%%vDisk|vdisk%%大小后,启动您的%%VM|vm%%。您必须在客户操作系统中扩展分区以使用新空间: + + - \*\*Windows:\*\*使用内置磁盘管理工具扩展分区。 + + - \*\*Linux (LVM):\*\*使用`fdisk`、`pvresize`、`lvextend`和`resize2fs`等工具扩展分区和逻辑卷。 + + **示例:** + + ```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 + ``` + + 根据您的设置调整设备名称。 + + :::tip + 在进行磁盘更改之前,请始终备份您的%%VM|vm%%。 + ::: +
+ +### 停留在UEFI shell + +
+ 点击展开/折叠 + + 如果您的%%VM|vm%%启动到%%UEFI|uefi%% shell而非您的操作系统,您可以手动启动引导过程: + + 在%%UEFI|uefi%% shell提示符下输入: + + ```bash + fs0: + cd efi/boot + bootx64.efi + ``` + + %%VM|vm%%现在应该继续引导您的操作系统。 + + :::tip + 如果此情况频繁发生,请检查您的VM启动顺序并确保在VM设置中正确设定了主启动设备为%%vDisk|vdisk%%或ISO。 + ::: +
+ +### 启动后黑屏 + +
+ 点击展开/折叠 + + 如果您的%%VM|vm%%启动但显示器保持空白: + + 1. **检查BIOS设置:** + - 将主图形设置为集成GPU(iGPU),而不是透传GPU。 + - 将主板和GPU BIOS更新至最新版本。 + + 2. **调整%%VM|vm%%设置:** + - 将%%SeaBIOS|seabios%%换为%%OVMF|ovmf%%(%%UEFI|uefi%%)在%%VM|vm%%设置中。 + - 将**机器类型** 从i440fx更改为Q35。 + + 3. **手动ROM注入(最后一招):**[手动注入GPU ROM](#manual-rom-injection)。 +
+ +### 错误:“设置容器的IOMMU失败:操作不允许” + +
+ 点击展开/折叠 + + 此错误通常指示%%IOMMU|iommu%%组冲突或缺少中断重映射: + + 1. **启用PCIe ACS重置:** + - 进入 ***设置 → 虚拟机管理器***。 + - 将**PCIe ACS重置**设置为*下游*或*均*。 + - 重启 Unraid。 + + 2. **允许不安全的中断(高级):** + - 在您的 Unraid 闪存驱动器上编辑 `syslinux.cfg`: + + ```bash + append vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot + ``` + + - 仅在您完全信任您的%%VM|vm%%客户时使用此功能。 + + :::note + 对于详细的%%IOMMU|iommu%%组解释,建议查看[Alex Williamson的博客](http://vfio.blogspot.com/2014/08/iommu-groups-inside-and-out.html)。 + ::: +
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx new file mode 100644 index 0000000000..c406f4d1b3 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx @@ -0,0 +1,287 @@ +--- +sidebar_position: 3 +sidebar_label: VM中的Windows +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import WindowsVirtioAutomatic from './partials/windows-virtio-automatic.mdx'; +import WindowsVirtioManual from './partials/windows-virtio-manual.mdx'; +import WindowsUpgradeInPlace from './partials/windows-upgrade-in-place.mdx'; +import WindowsUpgradeCleanInstall from './partials/windows-upgrade-clean-install.mdx'; + +# VM中的Windows + +Windows 是 Unraid 用户中最受欢迎的客制操作系统之一,尤其适用于游戏、生产力和支持旧版应用程序。这是运行 Windows %%VM|vm%% 的一些重要注意事项。 + +:::caution[Before 开始] +- 微软已于2020年1月结束了对Windows 7的支持,于2023年1月结束了对Windows 8.1的支持,并计划于2025年10月结束对Windows 10的支持。请使用Windows 11(或更新版本)或Server 2022(或更新版本)以获得持续的安全更新。 +- 在激活 Windows 许可之前,始终测试 %%VM|vm%% 的稳定性。 +- 对于%%GPU直通|gpu-passthrough%%,使用%%OVMF|ovmf%%(%%UEFI|uefi%%)BIOS与Windows 11或更新版本。 +::: + +### 支持的配置 + +| Windows 版本 | 推荐的 BIOS | 机器类型 | 笔记 | +| ------------------- | ------------------ | ------------------------------- | ------------------------ | +| Windows 11 | %%OVMF\|ovmf%% TPM | %%Q35\|q35%% | 需要 TPM 2.0 模拟 | +| Windows Server 2022 | %%OVMF\|ovmf%% | %%Q35\|q35%% | 适合企业负载 | +| Windows 10 | %%OVMF\|ovmf%% | %%Q35\|q35%% | 已停用(生命周期结束于 2025 年 10 月) | +| Windows Server 2019 | %%OVMF\|ovmf%% | %%i440fx\|i440fx%%/%%Q35\|q35%% | 兼容但不推荐 | + +--- + +### VirtIO 驱动管理 + +Windows 需要使用准虚拟化驱动程序以在 Unraid 的虚拟化堆栈上获得最佳性能。 + +安装或更新驱动程序: + + + + + + + + + + + +:::tip +使用 Unraid 7 或更高版本,您可以在 Windows 安装期间自动注入 %%VirtIO|virtio%% 驱动程序。在 ***VM 设置 → 高级选项*** 中启用此功能。 +::: + +--- + +### 设置休眠 + +休眠功能让您可以将整个 Windows %%VM|vm%% 状态(包括打开的应用程序和文档)保存到磁盘。这使您可以在不丢失任何工作的情况下关闭 %%VM|vm%%。当您恢复时,Windows 会精确地恢复所有内容,跳过正常的启动过程。当您需要重启或关闭 Unraid 主机,或者希望在保留 %%VM|vm%% 状态完整的同时节省能源时,此功能非常方便。 + +:::note[Benefits 休眠] +- 关闭闲置 %%VM|vm%% 来节约能源而又不丢失进度 +- 在主机维护或更新后快速恢复工作 +- 与频繁的完全关机和重启相比,降低 SSD 磨损 +::: + +要可靠地使用休眠功能,您必须在 Windows %%VM|vm%% 中安装 %%QEMU|qemu%% %%Guest Agent|guest-agent%%。该代理允许 Unraid 与 %%VM|vm%% 进行通信,以进行诸如休眠、关机和实时统计报告等高级操作。 + +
+ 如何安装 %%QEMU|qemu%% %%Guest Agent|guest-agent%% - 点击展开/收起 + + 1. 启动带有 %%VirtIO|virtio%% 驱动程序 ISO 的 Windows %%VM|vm%%。 + 2. 打开 **文件资源管理器** 并导航到 %%VirtIO|virtio%% 驱动器媒体。 + 3. 打开 `guest-agent` 文件夹。 + 4. 运行 `qemu-ga-x64.msi` 以安装代理。(您可能会短暂看到一个命令框;不会显示确认对话框。) +
+ +
+ 如何在 Windows 中启用休眠 - 点击展开/收起 + + 1. 打开 **控制面板** 并搜索 **电源选项**。 + 2. 点击 **选择电源按钮的功能**。 + 3. 点击 **更改当前不可用的设置** 以解锁关机设置。 + 4. 勾选 **休眠** 选项。 + 5. 点击 **保存更改**。 + + Windows 电源菜单中现在会显示 **休眠** 选项。 +
+ +:::important[What 如果休眠失败?] +如果您的 %%VM|vm%% 无法正常休眠或恢复,可能会丢失未保存的工作或面临恢复失败的情况。休眠之前请务必保存重要数据。如果问题持续存在,请确保安装并更新 %%QEMU|qemu%% %%Guest Agent|guest-agent%%,并检查 Windows 事件日志中的错误。 +::: + +--- + +### 性能调优 + +优化您的 Windows %%VM|vm%% 可以提高响应速度、减少磁盘使用并避免设备直通或关机时出现的常见问题。这些调整是可选的,可以根据需要进行应用。 + +#### 禁用快速启动 + +禁用快速启动可以帮助避免设备直通问题。它确保您的 %%VM|vm%% 硬件在每次启动时正确初始化。虽然该设置是为物理 PC 设计的,在虚拟环境中,它通常会引发比带来好处更多的问题。 + +
+ 如何禁用快速启动 - 点击展开/收起 + + 1. 打开 **控制面板** 并搜索 **电源**。 + 2. 点击 **选择电源按钮的功能**。 + 3. 点击 **更改当前不可用的设置**。 + 4. 在 **关机设置** 下取消勾选 **启用快速启动**。 + 5. 点击 **保存更改**。 +
+ +#### 禁用 hiberfil.sys + +Windows 的休眠功能会创建一个名为 `hiberfil.sys` 的大型隐藏文件。该文件可能会占用大量磁盘空间并增加 %%VM|vm%% 的磁盘活动。如果您不依赖休眠功能,禁用它将释放存储空间并减少不必要的 I/O 活动。 + +
+ 如何禁用休眠并移除 hiberfil.sys - 点击展开/收起 + + 1. 右键点击 **开始** 按钮并选择 **Windows 终端(管理员)** 或 **命令提示符(管理员)**。 + 2. 输入:`powercfg /h off` + 3. 按 Enter 键并重新启动您的 %%VM|vm%%。`hiberfil.sys` 文件将从您的 C:\ 驱动器中删除。 +
+ +#### 禁用 Windows 索引 + +Windows 搜索索引会持续扫描您的 %%virtual machine|vm%% 的存储以对文件进行编目,以便更快的搜索结果。然而,在 %%virtual machine|vm%% 上,这可能导致不必要的磁盘 I/O,降低性能,并增加对物理存储的磨损,特别是您 [%%cache pool|cache-pool%%](../manage-storage/cache-pools.mdx) 中的 SSD。 + +
+ 如何禁用 Windows 索引 - 点击展开/收起 + + 1. 按 **Windows + R** 打开运行对话框,输入 `services.msc`,然后按回车。 + 2. 在服务窗口中,向下滚动并右键点击 **Windows Search**,然后选择 **停止**。 + 3. 双击 **Windows Search**,更改 **启动类型** 为 **禁用**,然后点击 **确定**。 +
+ +#### 禁用自动磁盘碎片整理 + +Windows 设计为定期自动碎片整理物理硬盘。在 %%VM|vm%% 上—尤其是使用 SSD 存储或精简配置的 %%vDisks|vdisk%% 时—自动碎片整理是多余的,还可能会降低磁盘寿命并降低性能。 + +
+ 如何禁用自动磁盘碎片整理 - 点击展开/收起 + + 1. 打开 **文件资源管理器**,右键点击 C: 驱动器,然后选择 **属性**。 + 2. 转到 **工具** 标签并点击 **优化**。 + 3. 点击 **更改设置**。 + 4. 取消勾选 **按计划运行**,然后点击 **确定**。 +
+ +#### 启用高性能电源模式 + +Windows 的电源管理功能专为笔记本电脑和台式机设计,以节省能源。在 %%VM|vm%% 环境中,这些功能可能会不必要地限制性能或挂起您的 %%VM|vm%%,使其响应速度变慢且更难管理。 + +启用 **高性能** 模式可以确保您的 %%VM|vm%% 始终以全速运行,并且不太可能意外暂停或挂起。 + +
+ 如何启用高性能电源模式 - 点击展开/收起 + + 1. 打开 **控制面板** 并搜索 "电源"。 + 2. 点击 **选择电源计划**。 + 3. 在 **首选计划** 下选择 **高性能**。 +
+ +#### 启用远程桌面访问 + +远程桌面协议 (RDP) 允许您从其他设备访问您的 Windows %%VM|vm%%。与 %%VNC|vnc-session%% 相比,它提供了更好的性能和兼容性。请注意,RDP 仅支持在 Windows 专业版和企业版上。此外,您的 Windows 用户帐户**必须**设置密码。 + +:::caution +RDP 在 Windows 家庭版上不可用。在启用 RDP 之前,请务必为您的 Windows 用户帐户设置一个安全的密码。 +::: + +
+ 如何启用远程桌面(RDP)访问 - 点击展开/收起 + + 要启用 RDP 访问,请按照以下步骤: + + 1. 按 **Windows + I** 打开设置,然后导航至 ***系统 → 关于*** 并点击 **高级系统设置**。 + 2. 在系统属性窗口中,点击 **远程** 标签,然后选择 **启用远程桌面**。 + 3. 点击 **确定** 确认更改。 + 4. 从您的客户端设备,使用 Microsoft RDP 客户端连接到 **%%VM|vm%% 的 IP 地址**(而不是 Unraid 服务器)。 + + :::技巧 + 官方Microsoft RDP客户端适用于 Windows、Mac、Android 和 iOS。确保您的 %%VM|vm%% 处于允许局域网访问的网络桥上。 + ::: +
+ +#### 使用 MSI 中断修复 HDMI 音频 + +如果您在使用 %%GPU passthrough|gpu-passthrough%%(通常发生在 NVIDIA 显卡上)时的 Windows %%VM|vm%% 出现 HDMI 音频问题,启用消息信号中断(MSI)可能会有所帮助。MSI 改善了传递设备的中断管理方式。 + +
+ 如何启用 MSI 中断 - 点击展开/收起 + + :::注意 + 在进行注册表更改之前,请备份您的 %%VM|vm%%。不正确的修改可能导致系统不稳定。 + ::: + + 1. **验证 MSI 功能:** + - 启用 %%GPU passthrough|gpu-passthrough%% 启动您的 %%VM|vm%%。 + - 通过 [WebTerminal 或 SSH](../../system-administration/advanced-tools/command-line-interface.mdx) 访问 Unraid。 + - 运行命令 `lspci -v -s 01:00.0`(将 `01:00.0` 替换为您的 GPU 的 PCI 地址)。 + - 查找行:`Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+`。 + + 2. **在 Windows 中启用 MSI:** + - 如果 MSI 显示`Enable-`,请遵循 [微软指南](https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/enabling-message-signaled-interrupts-in-the-registry) 或使用 [MSI 模式工具](https://forums.guru3d.com/threads/windows-line-based-vs-message-signaled-based-interrupts-msi-tool.378044/) 修改您的 Windows 注册表设置。 + - 在更改后重启 %%VM|vm%%。 + + 获取更多技术细节,请参阅 [VFIO 中断解释](https://vfio.blogspot.com/2014/09/vfio-interrupts-and-how-to-coax-windows.html)。 +
+ +--- + +### 升级到 Windows 11 + +Windows 11 需要 TPM 2.0 和安全启动支持。Unraid 的 **OVMF-TPM** BIOS 提供了所需的虚拟 TPM 支持。 + +:::important[Before 升级] +- 创建完整的 %%VM|vm%% 备份。 +- 确保 Unraid 运行的是版本 6.10 或更高版本。 +- 确保您的 Windows 10 %%VM|vm%% 满足 [Windows 11 的系统要求](https://www.microsoft.com/en-us/windows/windows-11-specifications)。 +::: + +添加 TPM 支持: + +1. 关闭您的Windows 10 %%VM|vm%%。 +2. 编辑%%VM|vm%%设置。 +3. 将**BIOS**从\*%%OVMF|ovmf%%*更改为*%%OVMF|ovmf%%-TPM\*。 +4. 保存更改并启动%%VM|vm%%。 + +#### 升级方法 + + + + + + + + + + + +## 扩展Windows VM vDisk分区 + +:::caution[Data 数据丢失风险] +扩展或修改 %%vDisk|vdisk%% 和分区布局,如果操作不当,可能导致不可逆的数据丢失。在进行操作之前务必创建 %%VM|vm%% 的完整备份或快照。 +::: + +在按照[扩展 vDisk](../create-virtual-machines/vm-setup.mdx#expand-a-vdisk) 中的步骤扩展 %%vDisk|vdisk%% 之后,您可能会遇到一个问题,即 Windows 的默认恢复分区会阻止您轻松扩展系统 (C:) 分区以利用新增的空间。要解决此问题,您需要删除恢复分区,然后使用 Windows 磁盘管理来扩展分区。 + +
+ ![Resize vDisk 2](/img/Resize_vdisk_2.png) +
+ +完成初始%%vDisk|vdisk%%扩展后: + +1. 启动您的Windows VM。 +2. **打开命令提示符:** 按Windows键,输入`cmd`,然后按Enter。 +3. **启动diskpart:** 输入`diskpart`并按Enter。 +4. **列出磁盘:** 输入`list disk`并按Enter。 +5. **选择扩展的磁盘:** 输入`select disk #`,替换`#`为正确的磁盘编号。 +6. **列出分区:** 输入`list partition`并按Enter。 +7. **识别恢复分区:** 查找在您的主分区之后的恢复分区。 +8. **选择并删除恢复分区:** + - 输入`select partition #`,替换`#`为恢复分区的编号。 + - 输入`delete partition override`并按Enter。 +9. **扩展C:分区:** + - 右键单击开始菜单并选择**磁盘管理**。 + - 右键单击您想要扩展的分区(通常是C:)并选择**扩展卷...**。 + - 按照提示使用未分配的空间。 + +
+
+ 调整虚拟磁盘3 +
+ +
+ 调整虚拟磁盘4 +
+
+ +:::tip +只有在恢复分区阻挡邻近空闲空间时,才需要将其移除。如果未分配的空间已经在您的 C: 分区旁边,您可以直接扩展而无需删除任何内容。 +::: + +:::warning +对磁盘分区所做的更改是永久性的,无法撤消。在删除任何分区之前,请确保您的数据已安全备份。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json new file mode 100644 index 0000000000..82d224e820 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "自定义您的体验", + "position": 4, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/image.png b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/image.png new file mode 100644 index 0000000000000000000000000000000000000000..1fc01b17c6607b200175785113b5810c2f0454ef GIT binary patch literal 562 zcmV-20?qx2P)3>* zO-~b16o${(X{UGQeoUoPkmG!bH@ z#iFH&@ejCiVQ}rrwg17rMiUXP8N`+tIC&N)Ie8ZEn*;2qL70vYXcv<@c<_IBP*vuU z3Ah#T;4Xkn!~b*Dx^XT9qCzPH3A+$c83TlAZm6%CAE-`8s@4HFCqs|U$9OHbQ_Gby zhKy+?8@@26%a{U)%B#z9{$`f9ihOJ4fc6Z3UEE!>c(d^J@#Ij@zqe+6x^qVG5&*Z- zSTgy`{Db+ys}n{g8?I!-*CvenbA!B=`}I7xkkoxD`~GxldnI||uds2+t8J(>F0$*9IcV>Qn!CM?02_Dot7}6 zvHqS+td~;O=l6ZSo90`^Wh*iq^rxeN4w+c*aL`XE1C=p^se3=4%S&|4_vPW)#Z(Xk z*)5YUh + ![语言 - 社区应用程序](/img/languages_CA.png) + + +4. 查找您偏好的语言包,然后点击![下载](/img/download_button_icon.png) **下载** 按钮。 +5. 语言包将被安装并可供选择。 + +您也可以在社区应用程序中使用搜索栏查找语言包。 + +:::tip[How 返回到英文] +要返回到英文,请点击%%WebGUI|web-gui%%右上角的 ![切换按钮图标](/img/switch_toggle_icon.png) **切换按钮**。该按钮在英文和您最后选择的语言之间切换。 +::: + +## 多语言支持的开发者要求 + +要在您的 Unraid 插件中启用多语言支持,请确保您的插件满足以下要求: + +- 使用 Unraid 的内置语言功能用于所有面向用户的文本。 +- 提供一个英文翻译主文件供社区翻译人员参考。 +- 允许社区成员为其他支持的语言贡献翻译。 + +虽然插件没有严格要求支持多语言,但这样做可以提高全球 Unraid 社区的可访问性和可用性。不支持多语言的插件仍能正常运行,但所有界面文本将显示为英文(或开发者硬编码的语言)。 + +:::note +如果您需要帮助或希望为翻译做出贡献,请访问 [Unraid 论坛的多语言部分](https://forums.unraid.net/forum/75-multi-language-section/)与其他会说您语言的用户交流。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx new file mode 100644 index 0000000000..5b4dcf6734 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-alternative.mdx @@ -0,0 +1,3 @@ +1. 重启你的 Unraid 服务器。 +2. 在启动菜单中,选择 **Unraid OS 安全模式**。 +3. 按 Enter 键继续。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx new file mode 100644 index 0000000000..e39c8103a6 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/partials/safe-mode-preferred.mdx @@ -0,0 +1,5 @@ +推荐,因为它甚至不需要连接到服务器的显示器。 + +1. 在 **%%WebGUI|web-gui%%** 中,前往 ***主界面 → 阵列操作***。 +2. 勾选 **以安全模式重启** 框。 +3. 单击 **重启** 以直接重新启动到安全模式 - 无需键盘或显示器。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx new file mode 100644 index 0000000000..fce6380756 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/customize-your-experience/plugins.mdx @@ -0,0 +1,69 @@ +--- +sidebar_position: 1 +sidebar_label: 插件 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import SafeModePreferred from './partials/safe-mode-preferred.mdx'; +import SafeModeAlternative from './partials/safe-mode-alternative.mdx'; + +# 插件 + +插件是直接与 Unraid OS 集成的软件扩展。 它们允许您增强系统功能或添加高级功能。 + +:::tip +尽可能使用[Docker 容器](../run-docker-containers/overview.mdx)来运行应用程序或服务。仅在需要与 Unraid OS 直接集成的情况下使用插件。 +::: + +## 何时使用插件 + +插件适用于以下情况: + +- 需要直接访问 Unraid OS 或 %%WebGUI|web-gui%% 的系统级服务或增强功能。 +- 无法以 Docker 容器提供的功能。 + +建议避免将插件用于可以在隔离容器中安全运行的通用应用程序。 + +## 插件注意事项 + +在安装插件之前,考虑以下方面: + +| 优点 | 缺点 | +| -------------------------------------- | --------------------- | +| 与 Unraid OS 和 %%WebGUI\|web-gui%% 深度集成 | 可能导致系统不稳定,尤其是在操作系统更新后 | +| 启用硬件级别和存储功能 | 完整的文件系统访问增加了安全风险 | +| 通常是开源以提高透明度 | 需要手动维护和兼容性检查 | +| 对于某些高级存储或网络功能是必需的 | | + +:::important[Security 注意事项] +- 仅安装来自可靠来源或知名开发者的插件。 +- 在安装每个插件之前研究它;检查社区反馈和更新历史。 +- 保持插件更新,并定期审查已安装的插件以检查兼容性。 +::: + +## 插件管理 + +您可以在 Unraid **%%WebGUI|web-gui%%** 的 **插件** 标签中管理插件。 + +如果插件在 **[社区应用](../run-docker-containers/community-applications.mdx)** 中可用,推荐从 **应用** 标签安装,以便进行额外的审查和兼容性检查。 + +:::note +随着 Unraid 不断发展,一些插件功能可能会被添加到基础 OS 中。社区应用程序将只提供与您当前版本兼容的插件,但不会自动删除已安装的不兼容插件。在升级 Unraid 之前,请阅读目标版本的发行说明,以查看与您已安装的插件相关的任何特别说明。 +::: + +## 使用安全模式进行故障排除 + +如果在安装或更新插件后系统变得不稳定,可以使用**安全模式**进行故障排除。安全模式仅加载基本组件并禁用所有插件。 + +要进入安全模式启动: + + + + + + + + + + diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json new file mode 100644 index 0000000000..d3da8cccae --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "管理存储", + "position": 1, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx new file mode 100644 index 0000000000..b0c3eb9931 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx @@ -0,0 +1,119 @@ +--- +sidebar_position: 5 +sidebar_label: Apple 时间机器 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Apple 时间机器 + +Apple 的时间机器是每台 Mac 自带的备份工具。它通过自动备份来轻松保护您的文件、应用程序和系统设置。通过将时间机器连接到您的 Unraid 服务器,您可以在自己的硬件上安全地存储这些备份。此设置不仅赋予您更多控制权,还提供了更便捷的可扩展性和额外的安心感。 + +::::note[macOS 兼容性] +本指南适用于 macOS Ventura (13.x)、Sonoma (14.x) 和 Sequoia (15.x) 版本。某些功能,例如 %%SMB|samba%% 增强和通过 %%SMB|samba%% 的 Time Machine 支持,需 macOS 支持这些协议的版本。 + +为了获得最佳效果,请保持您的 Mac 更新至与硬件兼容的最新 macOS 版本。 +:::caution[macOS Sequoia (15.x) 考量] +部分用户报告称在 macOS Sequoia 上使用 Time Machine 和网络共享时会间歇性出现问题。如果您遇到备份失败,请考虑使用 [Time Machine Docker container](https://unraid.net/community/apps?q=time+machine#r) 作为替代方案。 +::: +:::: + +::: + +::: + +::: + +::: + +## 创建一个时间机器共享 + +:::caution[Before 开始] +确保在 %%WebGUI|web-gui%% 中启用了 **%%SMB|samba%%**: + +1. 在 "网络服务" 下进入 ***设置→SMB***。 +2. 将 **启用 %%SMB|samba%%** 设置为 **是** (必须停止 %%array|array%% 才能更改此设置)。 +3. 将 **增强的 macOS 互操作性** 设置为 **是**。 + +
+ ![增强的 macOS 互操作性](/img/enhancedmacos.png) +
+::: + +创建一个时间机器共享: + +1. 在 %%WebGUI|web-gui%% 中,进入 **共享** 并点击 **添加 %%user share|user-share%%**。 + +2. 配置以下设置: + + | 设置 | 描述 | + | --------------------------- | -------------------------------------------------------------------- | + | **%%用户共享\|user-share%% 名称** | 为您的 %%user share\|user-share%% (例如,Time Machine)命名。 | + | **最小可用空间** | 设置为 **1**(1 KB)以确保最佳效果。这可以防止 Time Machine 在磁盘容量接近满时失败。 | + | **包含的磁盘** | 选择 %%array\|array%% 中用作 Time Machine %%user share\|user-share%% 的磁盘。 | + | **启用写入时复制** | 保持 **自动** 以获得最佳性能。 | + | **%%SMB\|samba%% 导出** | 设为 **是(时间机器)** 以启用时间机器支持。 | + | **时间机器卷大小** | 设置为您所需的最大尺寸,或留空。如果不设置最小可用空间为 1,先应用共享,然后重新编辑并将卷大小设置为小于计算出的最小可用空间。 | + | **安全设置** | 根据需要配置 %%SMB\|samba%% 安全参数。 | + +3. 点击 **应用** 以创建 %%user share|user-share%%。 + +有关创建和管理共享的更多细节,请参见 [用户共享](./shares.mdx)。 + +## 从 macOS 连接 + +要从 Mac 连接到 %%user share|user-share%%: + +1. 在 **Finder** 中,按 **Command + K** 打开 "连接到服务器" 窗口。 +2. 输入您的 Unraid 服务器的 %%SMB|samba%% 地址。例如,使用格式 `smb://[server-ip]/[Time Machine share name]` 并点击 **连接**。 +3. 当提示输入时,输入有共享访问权限的 Unraid 用户名和密码,然后点击 **连接**。 +4. 如果您使用 macOS Ventura 13.0 或更高版本,请打开 **系统设置**;如果您使用的是 macOS Monterey 12.x 或更早版本,请打开 **系统偏好设置**。然后转到 **Time Machine**。 +5. 点击 **选择磁盘** 或 **添加备份磁盘**,选择你的 Unraid 时间机器 %%user share|user-share%%,然后点击 **使用磁盘**。 +6. (可选)如果你希望用密码保护备份,请启用 **加密备份**。 +7. 如果提示,确认连接并重新输入你的 Unraid %%root user|root-user%% 凭据(如果需要)。 +8. Time Machine 将自动开始首次备份。请注意,第一次备份可能需要一些时间,但以后的备份会更快,因为它们是增量备份。 + +:::tip +为了更好地控制备份计划和选项,考虑使用第三方工具,如 [时间机器编辑器](https://tclementdev.com/timemachineeditor/)。 + +
+ ![时间机器编辑器](/img/TimeMachineEditor.png) +
+::: + +## 多重时间机器设置 + +:::tip +对于家庭环境或拥有多台 Mac 的场合,这种方法提供了明确的备份分离、增强了安全性,并简化了管理。 +::: + +要在你的 Unraid 服务器上为不同用户或 Mac 创建单独的备份: + +1. **为每位将备份数据的人或 Mac 创建唯一的 Unraid %%root user|root-user%% 账户**。例如,用户命名为 `larry`、`curly` 和 `moe`。这可确保每个用户拥有自己的身份和权限。 + +2. **为每个用户创建单独的 Time Machine %%user shares|user-share%%**,请清楚地命名以匹配用户,例如 `tm-larry`、`tm-curly` 和 `tm-moe`。保持共享分开有助于管理每个用户的存储和访问。 + +3. 为每个 %%user share|user-share%% **分配合适的用户权限**: + - 设定 %%user share|user-share%% 的 %%SMB|samba%% 安全设置,以确保只有相应的用户可以访问。 + - 确认只有预定用户可以读取和写入他们的时间机器 %%user share|user-share%%。 + +4. 为每台 Mac **配置时间机器** 连接到其指定的 %%user share|user-share%%: + - 在每台 Mac 上,使用其特定 %%user share|user-share%% 的 %%SMB|samba%% 路径(例如:`smb://unraid-server/tm-larry`)连接到 Unraid 服务器。 + - 按照通常的时间机器设置步骤选择 %%user share|user-share%% 作为备份磁盘。 + +5. **监控和管理存储使用情况**: + - 你可以在每个时间机器 %%user share|user-share%% 上选择设置卷大小限制,以防止一个用户占用过多空间。 + - 定期检查使用情况并根据需要调整额度。 + +有关用户管理和安全的更多信息,请参见 [用户管理](../../system-administration/secure-your-server/user-management.mdx)。 + +## 故障排除 + +如果时间机器备份失败或不可靠: + +1. **尝试时间机器 Docker 容器**:[社区应用可用](https://unraid.net/community/apps?q=time+machine#r),此选项能够提供比直接 %%SMB|samba%% %%user shares|user-share%% 更稳定的备份。 +2. **检查 macOS 防火墙**:暂时禁用防火墙以查看是否阻止连接。 +3. **创建一个新的备份目标**:如果问题持续,删除并重新创建时间机器 %%user share|user-share%%。 + +有关更多故障排除帮助,请参见 [故障排除](../../troubleshooting/troubleshooting.mdx) 或访问 [Unraid 论坛](https://forums.unraid.net/)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx new file mode 100644 index 0000000000..697e21fbfc --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx @@ -0,0 +1,969 @@ +--- +sidebar_position: 2 +sidebar_label: 阵列配置 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import AddDataDiskParityProtected from './partials/add-data-disk-parity-protected.mdx'; +import AddDataDiskNoParity from './partials/add-data-disk-no-parity.mdx'; +import ParitySwapWhat from './partials/parity-swap-what.mdx'; +import ParitySwapWhen from './partials/parity-swap-when.mdx'; +import RemoveDataDiskStandard from './partials/remove-data-disk-standard.mdx'; +import RemoveDataDiskParityPreserve from './partials/remove-data-disk-parity-preserve.mdx'; +import ArrayCheckParity from './partials/array-check-parity.mdx'; +import ArrayCheckRead from './partials/array-check-read.mdx'; +import TroubleshootMissingDisks from './partials/troubleshoot-missing-disks.mdx'; +import TroubleshootDeviceLimit from './partials/troubleshoot-device-limit.mdx'; +import TroubleshootLicenseIssues from './partials/troubleshoot-license-issues.mdx'; +import TroubleshootKeyServer from './partials/troubleshoot-key-server.mdx'; +import TroubleshootWithdrawnRelease from './partials/troubleshoot-withdrawn-release.mdx'; + +# 阵列配置 + +Unraid 的存储系统通过结合 %%array|数组%% 和 %%cache|缓存%% 架构,实现灵活性与数据保护。%%array|数组%% 管理您的主要存储,提供可选 %%parity|校验%% 保护,而缓存池则加速性能。 + +以下是一些重要的阵列配置原则: + +
+ 始终使用最大的驱动器用于校验。 + + 当您稍后向%%array|array%%中添加更多磁盘时,请记住,数据磁盘的大小不能超过您的%%parity disks|parity-drives%%。一开始购买最大的硬盘用于%%parity disks|parity-drives%%是个不错的主意。这样,当您后续扩展时,不会受到较小存储容量的限制。 + + 如果您使用两个%%parity disks|parity-drives%%,它们可以是不同大小。但是,请记住,%%array|array%%中没有任何磁盘可以大于您所拥有的最小%%parity disks|parity-drives%%。 +
+ +
+ 不要在阵列中使用SSD - 将它们用于缓存池或未分配设备。 + + Unraid does not support TRIM or Discard operations for SSDs in the main array. Over time, this will cause SSD performance to degrade if they are used as array members. For best results, use SSDs in %%cache pools|cache-pool%% or as unassigned devices, where these features are supported and long-term performance is maintained. Most modern SSDs, including NVMe, work well in these roles. +
+ +
+ 使用缓存提高阵列写入性能。 + + 数据不是直接写入主存储,而是首先发送到专用磁盘或磁盘组。此数据通常在凌晨3:40安排时间转移到主存储。伟大的事情是,保存到%%cache|cache%%的数据仍然通过%%user shares|user-share%%显示出来,因此您不需要更改访问文件的方式。 +
+ +
+ 创建缓存池有助于保护缓存数据的安全。 + + 仅使用一个缓存设备会使您的缓存数据在转移到主阵列之前面临风险。为了确保您的数据始终受到保护,使用多个设备配置为%%cache pool|cache-pool%%。这种设置为缓存数据提供冗余,降低由于缓存设备故障导致数据丢失的可能性。 +
+ +
+ SSD缓存设备非常适合应用程序和虚拟机。 + + 使用SSD可以使应用程序和虚拟机(VM)运行更快,因为它们可以更快地访问数据。SSD在%%cache pool|cache-pool%%中表现良好,为您提供速度、效率和数据安全的出色组合。 +
+ +
+ 加密默认关闭。 + + 如果您想在系统上使用加密,必须使用加密文件系统类型重新格式化磁盘 - 这个过程会擦除驱动器上的所有现有数据。在启用加密之前,将数据移出磁盘,将文件系统更改为加密选项,格式化磁盘,然后将数据移回。详细信息,请参阅[如何在Unraid中加密驱动器](../../system-administration/secure-your-server/securing-your-data.mdx#how-to-encrypt-a-drive-in-unraid)。 + + 请记住,使用加密会导致数据恢复难度增加,因此仅在您真正需要时才使用它。 +
+ +:::info[Disk 识别和端口灵活性] +Unraid identifies disks based on their serial numbers and sizes, not the specific SATA ports they're connected to. This means you can switch drives between different SATA ports without affecting their assignments in Unraid. This feature is particularly useful for troubleshooting hardware problems, like finding a faulty port or replacing unreliable power or SATA cables. +::: + +:::caution +如果您分配或连接的设备数量超过许可证密钥允许的数量,您的阵列将不会启动。 +::: + +## 启动/停止阵列 + +当系统启动时,通常会自动启动磁盘阵列。然而,如果您最近更改了磁盘设置,例如添加了新的磁盘,阵列将保持关闭以便让您检查配置。 + +:::caution +请记住,您需要先停止阵列才能进行任何调整。暂停操作将完全停止所有Docker容器和网络共享,关闭或休眠虚拟机,并卸载存储设备,使数据和应用程序在您重新启动阵列前无法访问。 +::: + +要启动或停止阵列: + +1. 点击**主界面**选项卡。 +2. 导航到 **阵列操作** 部分。 +3. 单击**开始**或**停止**。在继续之前,您可能需要选中“是,我要这样做”选项框。 + +--- + +## 阵列操作 + +Unraid provides several maintenance and configuration options for your storage array. Key operations include: + +import DocCardList from '@theme/DocCardList'; + + + +--- + +### 添加磁盘 + +#### 设置新磁盘 + +1. 转到界面的 ***主界面 → 阵列设备***。 +2. 选择想要添加磁盘的插槽,并从下拉列表中选择磁盘。 +3. 默认情况下,新的阵列驱动器将使用%%XFS|xfs%%格式化。如果您希望使用%%ZFS|zfs%%或%%BTRFS|btrfs%%,请从下拉菜单中选择您喜欢的文件系统。 + +:::tip[Hot-Swap 特性] +If you're using modern Unraid-compatible hardware, you can change disks without shutting down your server. This feature, known as hot-swap, has been available in LimeTech servers since the beginning. +::: + +#### 清除与预清除 + +Unraid requires disks to be in a cleared state - completely filled with zeros and marked with a special signature - before adding them to a parity-protected array. This process ensures parity integrity and keeps the array online during disk preparation. + +Clearance is mandatory when adding a data disk to a %%parity|parity%%-protected array. If you are adding a %%parity disk|parity-drives%% or working with an array that does not use %%parity|parity%%, clearance is not required. + +内置的清除操作在后台将零写入磁盘,使阵列保持可用。完成该过程后,磁盘必须格式化才能使用。这种方法高效,不需要第三方工具,是快速扩展的理想选择。 + +对于更全面的方法,通过插件(如[未挂载设备预清除](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=enable%20destructive%20mode.-,Unassigned%20Devices%20Preclear,-dlandon))提供的预清除操作执行预读以检查坏扇区,对磁盘写零,然后通过后读验证完整性。此额外步骤有助于检测早期驱动器故障,但耗时更长,并需要手动安装插件。 + +**基本准则:** 使用内置清除操作快速添加到您的阵列中,或者选择预清除如果您想在将驱动器投入使用之前广泛检测其健康状况。 + +

清除与预清除比较

+ +
+ | | 清除 | 预清除 | + | -------- | -------- | ----------- | + | **目的** | 确保基本兼容性 | 测试驱动器并准备使用 | + | **速度** | 处理快速 | 过程十分缓慢 | + | **阵列影响** | 在后台运行 | 需要将磁盘从使用中移除 | + | **最佳用途** | 非常适合快速扩展 | 适合检查新驱动器 | +
+ +**清除**快速准备磁盘使用,使其与系统兼容,并允许您在短短几小时内扩展存储。 + +**预清除**耗时较长,但提供全面测试,以确保新磁盘在成为阵列一部分之前是可靠的。 + +:::caution[Critical 注意] +避免在将预先清除的磁盘包括在阵列中之前对其进行格式化,因为这将移除清除签名。 +::: + +#### 添加数据盘 + +Adding data disks is a great way to increase your Unraid array's storage space. By adding more disks, you can keep more files, applications, and backups, while still protecting your data. + +:::important[Important 注意:] +添加新的数据盘时,其大小必须与当前%%parity disks|parity-drives%%相同或更小。如果您想使用更大的磁盘,首先需要用较大的替换%%parity disks|parity-drives%%,然后将旧的%%parity disks|parity-drives%%作为数据磁盘使用。 +::: + +
+ 如何添加数据盘 + + ```mdx-code-block + + + + + + + + + + + ``` +
+ +#### 添加奇偶盘 + +%%Parity disks|parity-drives%%是有用的特性,为您的数据提供额外的保护层。如果硬盘出故障,它们允许您的存储系统恢复信息。虽然使用%%parity disks|parity-drives%%是可选的,但强烈建议使用以保障数据安全。 + +:::important\[Requirements] + +- **单一奇偶:** 该磁盘的大小必须至少与最大数据驱动器相同。 +- **双Parity:** 两个%%parity disks|parity-drives%%的大小也必须不小于您最大的一个数据磁盘,但彼此之间可以有不同的大小。 + +::: + +添加%%parity disk|parity-drives%%类似于添加数据磁盘,但还有一个重要步骤需要注意: + +1. 选择%%parity disk|parity-drives%%并启动存储阵列后,将开始一个称为**Parity计算**的过程。 +2. 在此过程中,您仍然可以访问文件。然而,由于正在计算校验,系统可能运行较慢。 + +
+ 深入了解:什么是校验及其重要性? - 单击以展开/折叠 + + %%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. + + Unraid 依赖于实时奇偶校验的两个主要目的: + + - 当驱动器故障时重建数据 + - 发现坏扇区时纠正错误 + + 此功能允许您保持数据安全,即使驱动器最终会随着时间的推移而失效。 +
+ +
+ In-depth: How does Unraid parity work? - Click to expand/collapse + + Unraid works with a special bit called the *parity bit*, which is stored for each bit position across all data disks and is 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, a process known as even parity. + + Unraid 依赖于实时奇偶校验的两个主要目的: + + - Unraid 使用 XOR(异或)操作进行该计算。 + - 例如,如果你有四个驱动器,其第57位的比特位是1,1,1,1,那么该位置的奇偶位将为0(因为1 + 1 + 1 + 1 + 0 = 偶数)。 + - 然而,如果第57位是1,0,0,0,该位置的%%parity|parity%%就会是1(以确保总数保持偶数)。 + + When adding a new drive, Unraid first clears it by writing zeros to all bits. This allows for quick inclusion into the protected array since writing zeros does not interfere with the current parity calculations. +
+ +
+ In-depth: How does Unraid parity work? - Click to expand/collapse + + Unraid works with a special bit called the *parity bit*, which is stored for each bit position across all data disks and is 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, a process known as even parity. + + - 它会读取所有剩余的驱动器,包括%%parity disk|parity-drives%%。 + - 它应用偶%%parity|parity%%来解决丢失的数据。 + + 例如,如果驱动器2出现故障: + + - If the related bits are 1, 1, 1 (in addition to the %%parity|parity%%), Unraid calculates: 1 + x + 1 + 1 + 0 = even. Here, x must be 1 to maintain an even total. + - 如果比特位显示为1, x, 0, 0, 1 = 偶数,则x将等于0。 + + This %%parity|parity%% feature allows Unraid to "simulate" the missing disk. You can continue using the array as if the drive were still functional. Once you install a new drive in the failed slot, Unraid will recreate all the missing data based on the current state of %%parity|parity%% and the other disks. + + 为了确保持续的保护和有效的恢复,定期运行%%parity checks|parity-check%%是很重要的。 +
+ +
+ 深入了解:如何使用校验重建数据? - 点击展开/折叠 + + 您的%%parity disk|parity-drives%%必须**等于或大于最大数据磁盘**。例如: + + - 如果最大的一个数据磁盘是10TB,则您的%%parity disk|parity-drives%%至少应为10TB。 + - 您可以自由组合不同大小的数据磁盘,只要它们没有超过%%parity disk|parity-drives%%的大小即可。 +
+ +
+ 我的校验磁盘需要多大? - 点击展开/折叠 + + Writing to a %%parity|parity%%-protected array involves four disk operations for each write: reading data, reading %%parity|parity%%, writing data, and writing %%parity|parity%%. This process requires a full rotation from each affected drive, so the overall write speed is limited by the slowest drive involved in the operation. + + 添加更快的%%parity disk|parity-drives%%不会必然提升写入速度,除非您同时向多个慢速数据磁盘写入,从而使%%parity disk|parity-drives%%能承担负荷。通常,写入速度受正在写入数据盘中的最慢驱动器限制。 +
+ +
+ 深入了解:校验如何影响写入性能? - 点击展开/折叠 + + Dual %%parity|parity%% enables recovery from **two simultaneous disk failures**. In Unraid, the second %%parity disk|parity-drives%% doesn't simply mirror the first. Instead: + + - \*\*Parity 1:\*\*采用标准的XOR(偶)%%parity|parity%%计算。 + - **Parity 2:** Utilizes a more complex algorithm (Galois field, rather than Reed-Solomon as in traditional %%RAID 6|raid6%%), allowing Unraid to rebuild from any two missing disks at the same time. This feature is significant for larger arrays, where the risk of multiple failures increases. Dual %%parity|parity%% significantly boosts resilience without the added overhead of mirrored redundancy. +
+ +:::caution\[Remember] + +设置新的数据存储系统时,首先**添加您的数据磁盘**,确保它们都使用兼容的文件系统。**在**放置数据磁盘之后,您可以添加%%parity disk|parity-drives%%以防止磁盘故障。 + +一旦添加了%%parity disk|parity-drives%%,请记住您想要在阵列中包含的任何新磁盘在集成前必须被清零。这是为了确保%%parity|parity%%保持有效,并继续保护您的数据。 + +::: + +#### 升级奇偶校验磁盘 + +您可以将%%parity disk|parity-drives%%设备升级到更大以便在阵列中使用更大尺寸的磁盘或添加额外的%%parity disk|parity-drives%%。 + +:::caution +如果您计划采取以下步骤且只有一个%%parity disk|parity-drives%%,请记住这些要点: + +- 在%%parity|parity%%重建完成之前,您的数据将没有保护。如果数据磁盘在此期间故障,您可能会丢失那块磁盘上的信息。 +- 如果您已经有一个失败的数据驱动器,继续这些步骤将阻止您重建该驱动器。在这种情况下,您应遵循**Parity Swap**程序。 +::: + +要移除奇偶校验驱动器: + +1. **停止阵列:** 使用%%WebGUI|web-gui%%停止阵列。 + +:::tip +如果您的服务器支持热插拔,更换磁盘时不需要关机。您可以安全地跳过步骤2和步骤4。 +::: + +2. **关闭服务器:** 关闭服务器以安全地进行硬件更改。 +3. **安装新的%%parity disk|parity-drives%%:** 将新的、更大的%%parity disk|parity-drives%%放入您的服务器中。 +4. **启动服务器:** 重新打开服务器。 +5. **分配新磁盘:** 进入设置中的校验槽分配新磁盘,替换旧磁盘。 +6. **启动阵列:** 使用%%WebGUI|web-gui%%重新启动阵列。 + +一旦阵列恢复,Unraid 将开始在新磁盘上构建 %%parity|校验%%。在此期间,您仍可以访问您的数据,但请注意,在过程完成之前,访问速度可能会有些慢。一旦 %%parity|校验%% 构建完成,您的数据将再次得到保护! + +:::important[Important 提示] +- **保留旧磁盘:** 在新的%%parity|parity%%构建完成之前,不要移除旧的%%parity disk|parity-drives%%。如果在升级过程中数据磁盘出现故障,保留旧磁盘可能有助于您恢复数据。 + +- \*\*双重校验用户:\*\*如果您有两个%%parity disks|parity-drives%%,请一次升级一个以增加安全性。 + +- **旧磁盘的再利用:** 升级后,如果旧%%parity disk|parity-drives%%仍然能满足您的存储需求,您可以将其用作数据磁盘。 +::: + +--- + +### 更换磁盘 + +您可能会需要因以下两个主要原因来更换阵列中的磁盘: + +1. [**容量升级**](#upgrading-capacity):您的存储空间接近满载,您希望使用更大的磁盘。 +2. [**故障或退役**](#replacing-faileddisabled-disks):某个磁盘已故障或不再支持。 + +虽然两种情况下更换磁盘的过程相似,但请注意,替换过程中存在数据丢失的风险。校验设备可以保护您的数据;一个校验设备可以防止单个磁盘故障导致的数据丢失,而两个设备可以在两个磁盘故障情况下保护数据。更换磁盘时,请始终了解您的保护级别。 + +#### 升级容量 + +在将数据驱动器升级为更大的驱动器时,请注意以下几点: + +- **不可挂载的磁盘:** 在升级之前修复任何不可挂载的磁盘。不可挂载状态在重建期间不会被解决。 + +- **单个校验的风险:** 如果您只有单个校验,在升级期间如果另一个驱动器发生故障,您将面临数据丢失的风险。如果发生这种情况,请在论坛中寻求建议。 + +- **双校验保护:** 通过双校验,如果在升级单个驱动器时一个驱动器出现故障,您可以放心,不会丢失数据。您还可以同时升级两个驱动器,但请注意这会增加风险,因为您将没有另一驱动器故障的保护。 + +- **备份旧磁盘:** 在确认升级成功之前,保持原磁盘完好无损。这为出现任何问题时提供了回退选项。 + +:::warning +更换驱动器总是涉及到一定的风险。如果在升级期间另一块驱动器故障,特别是只有单一校验的情况下,您可能会丢失数据。在开始之前务必检查驱动器的健康状况,并确保在升级完成并确认数据安全之前保持旧驱动器完整无损。 +::: + +要升级现有数据磁盘: + +1. **运行一个校验检查:** 首先,通过运行 %%parity check|校验检查%% 确保数据的完整性。前往[***工具 → 校验检查***](#checking-array-devices)并确保没有**错误**。如果校验无效,重建磁盘将破坏其文件系统。 + +2. **停止阵列:**接下来,您需要停止阵列。导航到***主菜单 → 阵列操作***并选择**停止**。 + +3. **取消分配目标磁盘:** 一旦阵列停止,找到要替换的磁盘。将其从***主菜单 → 阵列设备***中的插槽中移除。 + +4. **启动阵列:** 现在,再次启动阵列。Unraid 将使用现有的校验和数据磁盘来模拟丢失的磁盘。您可以选择两种模式: + - **维护模式:** 此模式可防止任何写入到%%emulated disk|emulated-disk%%。 + - **正常模式:** 如果您需要对%%emulated disk|emulated-disk%%进行读/写访问,请选择此选项。 + +:::note +在此时以正常模式启动阵列是可选的。您可以用它来验证是否可以挂载模拟磁盘且数据看起来正确,然后继续,但这不是升级过程所必需的。 +::: + +5. **再次停止阵列:** 阵列现在应该显示未分配的磁盘已经失败。再次停止阵列。 + +6. **分配替换的磁盘:** 将新的更大磁盘插入阵列中的空余插槽。 + +7. **启动阵列以重建:** 最后,再次启动阵列。Unraid 现在会将 %%emulated disk|模拟磁盘%% 的内容重建到新磁盘上。文件系统将自动调整以充分利用更大磁盘的容量。 + +#### 更换故障/禁用磁盘 + +
+ 什么是故障/禁用磁盘? + + A failed or disabled disk is one that Unraid has stopped using for writing data, usually because it encountered a write error. Keep in mind these don't always mean the drive itself is broken; sometimes, it might be due to bad connections, power issues, or just a temporary glitch. + + 一些指示包括: + +
+ ![Red "X" indicates write error](/img/Diskfailureindicator.png) +

*This red "X" shows which disk needs replacement.*

+
+ +
+ +
+ ![Failure notification alert](/img/Diskfailurenotification.png) +

*Keep an eye out for these alerts.*

+
+ +
+ +
+ 点击查看不同奇偶校验配置如何处理磁盘故障 + + | 故障场景 | 无奇偶校验 | 单一奇偶校验 | 双重奇偶校验 | + | ---- | ----- | ------ | ------ | + + \| **1磁盘故障** | 数据丢失 | 可重建 | 可重建 | + \| **2磁盘故障** | 数据丢失 | 数据丢失 | 可重建 | + + :::tip[安全重建提示] + - **对于单个校验:** 您只能一次替换一个磁盘。如果在重建期间另一个磁盘出现故障,您可能会丢失数据。 + - **对于双重校验:** 您可以同时替换一到两个磁盘,但如果超过两个磁盘出现故障,请谨慎处理。 + ::: + + :::重要 + 如果您遇到了**超过校验保护能力的磁盘损坏:** + + 1. **立即停止所有写操作**以防止进一步的数据丢失。 + 2. 通过在[Unraid 论坛](https://forums.unraid.net/)发帖并附上诊断信息寻求帮助。 + 3. **在收到建议之前不要尝试重建** - 首先关注数据的抢救。 + ::: +
+
+ +
+ 如何诊断问题 + + 要诊断问题,请从检查%%syslog|syslog%%和%%SMART报告|smart-report%%开始: + + - 如果%%syslog|syslog%%显示磁盘已重置,可能是连接或电缆有问题。 + - %%SMART报告|smart-report%%可以评估驱动器的健康状态,但最好通过运行%%SMART|smart%%扩展测试来检查。如果测试没有错误,则驱动器可能是正常的。 + - 如果看到 %%CRC errors|CRC 错误%%,通常意味着电缆问题。注意这些错误,它们会随着时间的推移积累且不会重置。 + + :::tip + 要了解驱动器问题,[启用通知](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#notification-settings)在Unraid中。这样,一旦出现问题,您就会立即得到警报,从而降低数据风险。 + ::: +
+ +
+ 什么是模拟? + + When a drive is disabled, Unraid will use its parity and other working drives to emulate the failed drive. This means your system continues to operate, and you can still access the data stored on the %%emulated drive|emulated-disk%%: + + - Unraid 将停止写入物理磁盘,任何更新将会保存在校验和仿真中。 + - 在更换故障驱动之前,您可以检查并从%%emulated drive|emulated-disk%%恢复数据,这将使物理磁盘保持完整以便潜在恢复。 + - 如果无法访问 %%emulated drive|模拟盘%%,在任何重建之前修复文件系统是必要的,因为修复文件系统比重建更快更有效。 +
+ +
+ 什么是故障/禁用磁盘? + + A failed or disabled disk is one that Unraid has stopped using for writing data, usually because it encountered a write error. Keep in mind these don't always mean the drive itself is broken; sometimes, it might be due to bad connections, power issues, or just a temporary glitch. + + 虽然不是强制性的,许多用户选择预清理新驱动器以测试它们并帮助防止早期故障。您可以使用Preclear插件、%%SMART|smart%%延伸测试或制造商工具来执行此操作。 + + :::小心 + 如果您试图使用不可挂载的%%emulated drive|emulated-disk%%进行重建,新驱动器也将无法挂载。在尝试重建之前务必修复文件系统。 + ::: +
+ +如果您的 Unraid 系统中的磁盘出现故障或被禁用,不要担心!您可以更换它并恢复数据。只需按照这些简单的步骤。记住,您需要一个相同大小或更大的新磁盘,但它不能比您最小的 %%parity disk|校验盘%% 大。 + +:::important +在开始之前,请确保检查是否有任何磁盘错误或警告。Unraid 必须能够读取所有剩余磁盘并无任何问题地进行重建。如果另一个磁盘出现故障,可能会导致数据丢失。 +::: + +替换和重建磁盘: + +1. **停止阵列:** + + - 登录 Unraid WebGUI(网页界面)。 + - 找选项停止阵列,这是更换任何磁盘之前的必要步骤。 + +:::tip +如果您的服务器支持热插入,您可以跳过下一步,只需停止阵列。 +::: + +2. **关闭服务器电源**(仅在**不**使用热插拔时): + - 如果您的服务器不支持热插拔,您需要完全关闭它。 + +3. **更换故障磁盘:** + - 从服务器中移除旧的故障磁盘。 + - 插入新磁盘。请记住,它必须至少与旧磁盘一样大,但不能大于您最小的 %%parity disk|校验盘%%。 + +4. **启动服务器**(如果您已将其关闭): + - 如果您已关闭服务器,则重新打开它。 + +5. **分配新磁盘:** + - 返回到 Unraid WebGUI。 + - 找到故障磁盘的槽位,并将新磁盘分配到该槽位。 + +6. **确认您的操作:** + - 勾选“是,我想这么做”的选项并确认。 + +7. **(可选)选择%%维护模式|maintenance-mode%%:** + - 您可以选择%%维护模式|maintenance-mode%%,这可以加快重建过程。但是,在此期间您将无法访问阵列。 + - 如果选择了%%维护模式|maintenance-mode%%,请确保点击**同步**以开始重建。 + +8. **开始重建:** + - 点击**启动**开始过程。Unraid 会将数据从 %%emulated disk|模拟磁盘%% 复制到新磁盘。 + - 如果您的新磁盘更大,Unraid 将为您管理额外的空间。 + +:::warning +如果 Unraid 在重建期间提示您格式化新磁盘,请**不要这样做**。格式化将清除所有数据,使恢复不可能。 +::: + +

重建期间的期望

+ +- 在重建过程中(除非您处于 %%Maintenance Mode|维护模式%%),此阵列仍可用,但它可能会运行得更慢。 +- 重建可能需要几个小时,具体取决于您的磁盘大小和系统使用情况。 +- 新磁盘将具有与原始磁盘相同的文件系统。 +- 如果旧磁盘由于文件系统问题而无法挂载,新的磁盘也将无法挂载。请在开始重建之前修复任何文件系统问题。 + +:::note[Additional 笔记] +- 重建过程不会改变磁盘的文件格式;它只是恢复其先前的形式。 +- 在开始重建之前,始终检查每个磁盘的健康状况,以避免任何潜在问题。 +::: + +#### 校验交换 + +```mdx-code-block + + + + + + + + + + +``` + +
+ 示例场景 + + 您有一个 Unraid 设置,其中有一个**2TB 校验盘**和一个**1TB 数据盘**,并希望将 1TB 磁盘换成**4TB 磁盘**。 + + 首先,将新4TB驱动器分配为校验驱动器,以替换2TB驱动器。然后将原始的2TB驱动器移动到数据槽,并完全移除1TB驱动器。 + + 经过这些更改后,您将拥有一个4TB驱动器作为新校验,以确保可以添加未来最大至4TB的数据驱动器。2TB驱动器将存储现有数据,而1TB驱动器可以重新分配用途。 + + 这种交换保持您的数据安全并保护您的阵列,允许将来进行升级。 +
+ +:::important\[Prerequisites] + +- 在开始之前,请确保要替换的数据驱动器已被禁用。若驱动器故障(显示红色指示器),则已禁用。如果驱动器健康但您想替换它,请取消分配该驱动器并在没有它的情况下启动阵列一次,以迫使 Unraid 将其标记为已禁用。 +- 如果您的更换数据磁盘不大于您的校验盘,请使用标准的[更换数据磁盘](#replacing-faileddisabled-disks)程序。 +- 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. + +::: + +:::warning\[Warnings] + +- 在开始 %%parity swap|校验交换%% 之前,总是使用 %%SMART reports|SMART 报告%% 验证所有驱动器的健康状况。尝试在另一个故障或不健康的磁盘上进行此过程会增加数据丢失的风险。 +- 如果可能,请预清理新磁盘。尽管不需要,但预清理可以对磁盘进行压力测试并减少早期失效的风险。 +- 在开始之前,正确识别所有驱动器。记下每个驱动器的型号和序列号的最后四位字符,以避免分配过程中出错。 + +::: + +执行奇偶校验交换: + +:::note +如果要替换的驱动器已禁用(故障),您可能不需要执行步骤1–4。如果您已经安装了新的替换驱动器(例如,预清理后),您可以跳过步骤5–8。 +::: + +1. **停止阵列**,如果它正在运行。 +2. **卸载旧数据驱动器**,如果仍然分配。如果该磁盘之前正常,您可能会看到缺少磁盘的错误通知—这是预期的。 +3. **启动阵列。** 如果收到提示,勾选框确认操作。数据驱动器现在应显示为“未安装”。 +4. \*\*再次停止阵列。\*\*此时,阵列将磁盘视为已失效。 +5. **关闭服务器电源。** + + :::tip + 如果您的系统支持**热插拔**,您不需要断电即可拆装驱动器。只需在进行硬件更改前停止阵列。 + ::: + +::: + +6. *(可选)* \*\*移除旧驱动器。\*\*您可以保留它以便测试或重新分配。 +7. \*\*安装新驱动器。\*\*强烈推荐先清理,但不需要格式化。 +8. **启动服务器。** +9. **停止阵列**如果它自动启动的话。如果看到有关重试卸载磁盘共享的消息,请在设置中禁用 Docker 和/或 VM 服务,然后重启动重试。 +10. **取消分配校验盘。** +11. \*\*将新驱动器分配到校验槽位。\*\*您可能会收到错误通知,这是正常的。 +12. **将旧的 %%parity drive|校验盘%% 分配到被替换的驱动器的数据槽位**。此时,校验和替换数据驱动器应显示蓝色状态指示器。 +13. **前往 *主屏幕→阵列操作***。您应该会看到一个 **复制** 按钮和一条消息,指出“复制将校验信息复制到新的 %%parity disk|校验盘%%。” +14. \*\*确认并开始复制过程。\*\*勾选确认框然后点击 **复制**。这期间阵列将不可用。 + +- 复制过程可能需要很长时间,具体取决于磁盘大小。完成后,阵列将停止并准备进行数据重建。 + +15. **启动阵列以开始数据重建。** + - 如有提示确认您的操作。现在阵列已启动,数据已重建到新的数据盘上。 + - 您可以在重建期间使用阵列,但为获得最佳性能,请限制使用。 + - 重建过程也将需要数小时。 + +:::warning +在该过程中永远不要格式化磁盘。格式化将擦除所有数据并更新校验,使恢复不可能。 +::: + +完成后,您将拥有一个更大的校验盘和一个更换的数据盘。许多用户在此之后会执行一个 %%parity check|校验检查%% 以获得额外的信心,但这是可选的。 + +--- + +### 移除磁盘 + +有可能您想从 Unraid 阵列中移除一个磁盘。无论您是想节约电力,退役一个旧的或不可靠的驱动器,还是将硬件重新用于其他用途,此过程都相对简单。 + +#### 移除校验盘 + +如果您发现不再需要设置中的 %%parity|校验%% 保护级别,可以随时移除 %%parity disk|校验盘%%。 + +移除 %%parity drives|校验盘%%: + +1. \*\*停止阵列:\*\*开始通过访问%%WebGUI|web-gui%%并停止阵列。 +2. **取消分配 %%parity drives|校验盘%%:** 找到 %%parity drives|校验盘%% 槽位并将其设置为“未分配”。 +3. **启动阵列:** 最后,重启阵列以提交更改,并成功地从配置中移除 %%parity drives|校验盘%%。 + +:::warning +Before you make any changes, please keep this in mind: If you already have any failed data drives in your array, removing a %%parity disk|parity-drives%% can decrease the number of failures Unraid can handle without risking data loss. + +- 使用双重校验可以从单个失效驱动器中恢复,但请注意,在重建过程中,您将无法承受另一次故障。 +- 使用单校验,您将失去所有冗余,这意味着任何额外的驱动器故障都可能导致数据丢失。 +::: + +#### 移除数据磁盘 + +移除数据磁盘是一个简便的过程,但请记住,之后需要执行 %%parity|校验%% 同步。在此同步完成之前,如果另一个磁盘故障,将有数据丢失的风险。 + +您可以选择两种方法来移除数据磁盘: + +1. **标准方法** - 推荐大多数用户使用。 +2. **保留校验方法** - 适合希望在移除过程中保持校验的高级用户。 + +```mdx-code-block + + + + + + + + + + +``` + +--- + +### 检查阵列设备 + +定期检查您的 Unraid 阵列对于维护数据完整性和识别潜在问题至关重要。在潜在问题导致数据丢失之前,您可以在 ***阵列操作*** 下使用 **检查** 按钮发起检查。根据您的阵列配置,此按钮可让您进行 %%parity check|校验检查%% 或 %%read check|读检查%%。 + +
+ ![检查按钮可让您进行校验和读取检查](/img/Check_button.PNG) +
+ +为方便起见,您可以通过导航至***设置→计划程序***按适合您的间隔自动安排这些检查。建议每月或每季度执行自动、非校正检查,以确保数据的持续健康。 + +#### 奇偶校验 & 读取检查 + +```mdx-code-block + + + + + + + + + + +``` + +#### 检查历史 + +每当系统执行 %%parity check|校验检查%% 或 %%read check|读检查%% 时,它会记录所发生的情况。您可以通过点击界面的 ***阵列操作*** 下的 **历史** 按钮轻松查看这些详细信息。 + +如果想深入挖掘,所有这些记录都保存在您的 Unraid USB 闪存设备的 `config` 目录下的文本文件中。 + +--- + +### 磁盘升降速操作 + +Unraid 允许您控制硬盘的电源状态。您可以轻松地 %%spin them up or down|电源状态%%,并管理 SSD 处于活动或待机状态。这有助于省电,延长硬盘寿命,并在磁盘未使用时降低噪音。 + +

为什么要启动或停止?

+ +- \*\*停止(Spin down):\*\*如果您有不常用的驱动器,停止它们可以节省能源并延长寿命。 +- \*\*启动(Spin up):\*\*如果您知道很快将需要文件,提前启动磁盘可以减少等待时间。 + +

如何控制启动状态

+ +您可以通过%%WebGUI|web-gui%%的**主**选项卡来控制磁盘的旋转状态: + +1. **转到主标签**并找到您的阵列设备。 +2. **找到启动控制按钮**-每个磁盘会显示: + - 点击🔘按钮以 **启动** 如果磁盘当前处于停止状态 + - 点击🟢按钮以 **停止** 如果磁盘当前正在旋转 +3. **点击合适的按钮**进行您所需的操作: + - 点击 **停止** 🟢 以关闭空闲磁盘并节省能源 + - 点击 **启动** 🔘 以启动当前处于停止状态的磁盘 + +请记住,如果磁盘被访问(例如打开文件),它将保持活动并忽略任何停止请求。 + +当磁盘不转时,其温度将不会在%%WebGUI|web-gui%%中显示。然而,一旦任何应用程序或用户访问它,它将自动开始转动。 + +:::tip +使用旋转控制来节省电力并减少对驱动器的损耗。请记住,正在被使用的磁盘将保持开启状态,直到所有任务完成。 +::: + +--- + +### 重置阵列配置 + +重置阵列配置是一个需要谨慎对待的重要步骤。此过程通常在移除磁盘、以新阵列布局重头开始或修复磁盘分配问题时是必要的。请注意,此操作可能会影响数据保护和校验,因此请确保只有在确有必要时才继续进行。 + +重置阵列的常见原因包括: + +- \*\*删除或替换磁盘:\*\*如果您需要移除或更换阵列中的任何磁盘。 +- \*\*重新开始:\*\*当您希望为阵列创建全新的布局时。 +- \*\*修复磁盘分配错误:\*\*解决当前磁盘分配的任何问题。 +- \*\*从配置问题中恢复:\*\*面临现有设置挑战时。 + +
+ ![重置磁盘配置可以通过新配置页面完成](/img/Newconfig.png) +
+ +要重置阵列配置: + +1. 转到**工具**页面并点击**新配置**。 +2. 如果您只希望进行一些小的调整,可以保留一些现有的磁盘分配。这可以节省时间并将错误的几率减小。 +3. 通过勾选框确认您的选择,然后点击**应用**。 +4. 应用更改后,您的配置将被重置。 +5. 通过适当地分配或取消分配磁盘做出任何必要的配置更改。 +6. 启动阵列于正常或维护模式以完成更新。 + +:::important +- **数据保护:** Unraid 会尽可能识别先前使用的驱动器并保护数据。 +- \*\*对校验的影响:\*\*移除数据驱动器将始终使校验无效,除非在移除之前清零该驱动器。 +- \*\*磁盘重新排序:\*\*更改磁盘顺序不会影响校验1,但*可能*使校验2失效。 +::: + +:::caution +When you see the **Start** button, there is a checkbox labeled **Parity is Valid**. Only check this box if you are certain it is correct or if an experienced Unraid user has advised you to do so during recovery. Incorrectly checking this option can lead to data loss. + +Do not use **New Config** if your goal is to rebuild a disk. Performing a New Config clears the array history required for a rebuild, and Unraid will not offer to rebuild the disk afterward. Follow the disk rebuild procedure instead. +::: + +#### 撤销重置 + +如果您需要撤销重置: + +1. 通过网络 (SMB) 访问您的闪存设备。 +2. 找到并打开 `config` 文件夹。 +3. 将文件 `super.old` 重命名为 `super.dat`。 +4. 重启您的服务器,之前的阵列配置应得到恢复。 + +--- + +### 状态报告 + +Unraid 提供状态报告,帮助您跟踪存储阵列的健康状况。这些报告是快速检查任何磁盘是否禁用或在读取或写入数据时出现问题的快捷方式。 + +- \*\*当前状态:\*\*状态报告显示您的阵列当前情况。重要的是要注意,这些信息在系统重新启动后将被重置,因此不会保留过去的历史问题。 + +- \*\*无历史数据:\*\*如果您想查看重启前发生了什么,您需要去其它地方查看,因为这些报告不保存过去的状态。 + +:::important +请记住,状态报告不包括%%SMART|smart%%数据。%%SMART报告|smart-report%%为您提供了单个磁盘健康的更详细视图。因此,即使您的状态报告显示一切正常,定期检查%%SMART报告|smart-report%%以尽早发现任何潜在问题仍然是个好主意。 +::: + +--- + +## 阵列写入模式 + +Unraid 提供多种写入模式用于管理阵列操作,每种模式在速度、电量消耗和磁盘损耗方面各有优劣。了解这些模式的工作原理以及缓存盘或缓存池的作用,有助于根据您的需求优化服务器。 + +**写入模式概览** + +| 写入模式 | 速度(典型) | 能耗 | 何时驱动器启动 | 数据保护 | 最佳使用场景 | +| --------------- | --------------------------------------- | -- | --------- | ------- | ------------------------------------ | +| 读/修改/写 | 20–40 MB/s | 低 | 仅校验和目标驱动器 | 可以 | 大多数工作负载,节能,小写入 | +| Turbo Write(重建) | 40–120 MB/s | 高 | 所有驱动器 | 可以 | 大文件传输, 阵列重建, %%parity checks\|校验检查%% | +| 缓存写入(SSD/NVMe) | 50–110 MB/s (SSD),250–900 MB/s (NVMe)\* | 变化 | 仅缓存驱动器 | 否(直到移动) | 应用,虚拟机,频繁写入,最大化速度 | + +

读取/修改/写入

+ +
+ 点击展开/折叠 + +

它是如何工作的

+ 该模式读取现有数据和校验,计算新的校验,然后写入更新的数据。只有%%parity drive|parity-drives%%和目标数据驱动器与之旋转,从而降低了功耗和驱动器磨损。然而,由于额外的读/写循环,可能会较慢。 + +

使用时机

+ + - 随时,尤其是当您想节省能源并让空闲驱动器停止时。 + - 非常适合小型或不频繁的写入。 +
+ +

Turbo Write(重建写入)

+ +
+ 点击展开/折叠 + + Turbo write, also known as reconstruct write, is a feature designed to boost the writing speed of your Unraid array. It works by reading all data drives and updating the parity simultaneously. This process eliminates the delays caused by waiting for the platters to rotate, as seen in the default write mode. However, it's important to note that all array drives need to be spinning and functioning properly for this to work effectively. + +

原理

+ + - 当您写入新数据时,Unraid 会读取所有其他数据驱动器并同时重新计算校验。新数据和更新的校验会同时写入。 + - 阵列中的所有驱动器都必须是操作正常并积极旋转的。 + - 这一方法大大提高了写入速度,与默认写入模式相比。 + +

什么时候使用Turbo Write

+ + - 在将大文件传输到阵列时使用Turbo write。 + - 在数组重建或%%parity checks|parity-check%%期间很有效,因为所有驱动器都会旋转。 + - 当减少写入时间是优先考虑的并且可以确认所有驱动器健康时,此模式非常有用。 + +

什么时候避免使用Turbo Write

+ + - 如果你希望驱动器在空闲时间停止以节省能量,避免使用此模式。 + - Turbo写入不适合小型或不频繁的写入操作,因为它会导致每次写入时所有驱动器旋转,增加了功耗和驱动磨损。 + - 如果你怀疑任何驱动器发生故障或不可靠,最好避开turbo write,因为它依赖于每个驱动器正常运行。 + + :::信息 + Turbo写入最适合大宗操作和需要高吞吐量的场景。然而,如果您关注节能和最小化驱动器磨损,它可能不是日常任务的最佳选择。 + ::: +
+ +

缓存写入

+ +
+ 点击展开/折叠 + +

原理

+ + 数据首先写入快速SSD或NVMe %%cache|cache%%,然后通过称为%%Mover|mover%%的过程移动到主阵列。速度可变: + + - SSD:50–110 MB/s + - NVMe:250–900 MB/s(可以利用10GbE网络) + + 一旦数据被移动到阵列,其受到校检保护。 + +

使用缓存写入的时机

+ + - 对于应用、虚拟机或下载等频繁写入的共享。 + - 提升性能并减少任何感知的写入延迟。 + +

性能预期

+ + - 没有缓存驱动:平均20–30 MB/s,峰值达40 MB/s。 + - 使用SSD缓存:50–110 MB/s。 + - 使用NVMe缓存:250–900 MB/s,取决于网络或驱动限制。 + + :::tip + 在%%Mover|mover%%运行之前,请考虑使用缓存池(多个设备)以增加冗余和数据保护。 + ::: +
+ +:::info[Automated 解决方案] +- **自动**模式(未来功能)将仅在所有驱动器已旋转时启用turbo写入。 +- 社区插件(在应用标签中搜索“Turbo Write”)可能提供增强的自动化或调度选项。 +::: + +更改写入模式: + +1. 导航到 ***设置→磁盘设置***。 +2. 定位 **可调项(md\_写入\_方法)**。 +3. 选择您喜欢的模式: + - **读/修改/写** (默认) + - **重建写入** (Turbo Write) + - **自动** (未来功能) +4. 点击**应用**以确认您的选择。 + +:::important[Quick 回顾] +- 当你需要速度时使用 **Turbo Write**,但要注意增加的功耗和驱动启动。 +- 使用 **缓存写入**以获得最佳性能,特别是在使用SSD或NVMe驱动器时。 +- 对于大多数用户,默认写入模式提供了最佳平衡,除非你特别需要更高的速度。 +::: + +--- + +## 读取模式 + +使用 Unraid 时,读取文件的速度主要由存储每个文件的单独驱动器决定。与传统 %%RAID|硬盘冗余数组%% 系统不同,Unraid 是将每个文件存储在单个磁盘上。这意味着读取速度不会由于组合多个驱动器的速度而提高。 + +

性能期望

+ +- **典型单个HDD:** 70–250 MB/s(取决于驱动型号、年龄和数据位置) +- **典型SATA SSD:** 400–550 MB/s +- **NVMe SSD(在池中):** 250–7,000 MB/s(受PCIe代和网络/PCIe限制影响;例如,10GbE网络限制约1,100 MB/s) + +:::note[Special 案例] +- 如果磁盘被禁用且其数据正在重建,Unraid 将使用剩余的磁盘和校验信息重建数据。此过程中,读取速度可能会变慢到 30–60 MB/s 甚至更低,具体取决于系统中最慢的驱动器。 +- Any ongoing operations in the array, such as a %%parity check|parity-check%% or rebuilding a drive, can also affect read performance. This is due to increased movement of the drive heads and overall contention for resources. +::: + +--- + +## 缓存池 + +Unraid 中的 %%Cache pools|缓存池%% 为写重任务,虚拟机(VMs)和 Docker 容器提供显著优势。这些池独立于主阵列运行,可以使用 %%BTRFS|BTRFS 文件系统%% 或 %%ZFS|ZFS 文件系统%% 设置多个驱动器,支持多种 %%RAID|硬盘冗余数组%% 配置以提高速度和数据保护。 + +

缓存池与主阵列对比

+ +| 功能 | 缓存池 (BTRFS) | 缓存池 (ZFS) | 主阵列(Unraid) | +| --------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ---------------------- | +| **读取速度** | SSD:400–550 MB/s,NVMe:250–7,000 MB/s\* | SSD:400–550 MB/s,NVMe:250–7,000 MB/s\* | HDD:70–250 MB/s(每个磁盘) | +| **写入速度** | SSD:400–550 MB/s,NVMe:250–7,000 MB/s\* | SSD:400–550 MB/s,NVMe:250–7,000 MB/s\* | 20–120 MB/s(取决于奇偶校验模式) | +| **数据保护** | %%RAID 1\|raid1%%/%%RAID 10\|raid10%%;%%RAID 5\|raid5%%/%%RAID 6\|raid6%%(实验性,不适合关键数据) | %%RAID 1\|raid1%%/%%RAID 10\|raid10%%;%%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%%/%%RAIDZ3\|raidz3%% (稳定,适合生产) | 基于奇偶校验,文件系统无关 | +| **扩展** | 混合驱动器尺寸;动态添加/删除设备 | Limited add/remove device support; cannot remove from RAIDZ; single-device add to expand single-vdev RAIDZ in Unraid 7.2 | 添加驱动器,但无条带化或性能扩展 | +| **恢复复杂性** | 数据丢失风险较高;需要%%BTRFS\|btrfs%%工具 | 数据丢失风险更高;需要%%ZFS\|zfs%%工具 | 更易基于奇偶校验的重建 | +| **最佳用途** | 应用程序、VMs、频繁写入 | 应用程序、VMs、频繁写入、企业工作负载 | 批量存储、媒体库 | + +\*实际NVMe速度取决于PCIe代、散热和网络带宽(例如10GbE上限约为\~1,100 MB/s)。\* + +

缓存池的优点

+ +- \*\*更高性能:\*\*NVMe池可以饱和10GbE/40GbE网络(1,100–3,500 MB/s)。 +- **灵活的RAID:** %%BTRFS|btrfs%% 和 %%ZFS|zfs%%均支持%%RAID 1|raid1%%/%%RAID 10|raid10%%,以实现冗余而无需匹配驱动器大小。 +- \*\*低延迟:\*\*非常适合数据库、VMs和Docker容器。 +- **ZFS优势:**%%ZFS|zfs%%提供企业级功能,如数据完整性检查、压缩和快照。 + +

缓存池的缺点

+ +- \*\*无奇偶校验保护:\*\*在移动到数组之前,数据未受保护。 +- **恢复风险:** %%BTRFS|btrfs%% %%RAID 5|raid5%%/%%RAID 6|raid6%%不稳定;单驱动器池缺乏冗余。 +- **ZFS考虑因素:**%%ZFS|zfs%%需要更多的RAM,并且硬件要求比%%BTRFS|btrfs%%更严格。 + +有关 %%cache pools|缓存池%% 的详细信息,包括如何设置、管理和高级功能,请查看 [缓存池](./cache-pools.mdx) 页面。 + +--- + +## 故障排除 + +### 故障排除数组启动失败 + +如果您的阵列无法启动,请按照以下步骤识别和修复常见问题。在***主菜单 → 阵列操作***下查找错误消息。 + +```mdx-code-block + + + + + + + + + + + + + + + + + + + + + + +``` + +### 重建期间的磁盘故障 + +如果在重建另一个磁盘时发生第二个磁盘故障,您能做的将取决于您的奇偶校验设置。 + +

单 %%parity disk|校验盘%%

+ +如果在重建另一个磁盘时一个磁盘故障,重建将停止,因为数据无法准确恢复。 + +

双 %%parity disk|校验盘%%

+ +如果您有两个 %%parity drives|校验盘%%,您有更多的选择: + +- 您可以等待第一个重建完成,然后再处理第二个故障磁盘。 +- 或者,您可以停止当前重建,替换第二个故障磁盘,然后启动阵列以同时重建两个磁盘。 + +如果第一次重建快要完成,通常最好让它完成。如果刚开始,重建两个可能会更快。 + +:::warning +重建磁盘会给所有驱动器带来很大压力,从而增加新故障的概率。在开始重建前,请使用%%SMART报告|smart-report%%检查磁盘健康。 +::: + +:::info[Rebuild 时间] +要准备好重建过程可能需要几个小时。时间可能因磁盘大小和系统忙碌程度而异。较大的磁盘和繁忙的系统可能需要更长时间。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx new file mode 100644 index 0000000000..c7fb75d975 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx @@ -0,0 +1,390 @@ +--- +sidebar_position: 3 +sidebar_label: 缓存池 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import RemoveDiskGui from './partials/remove-disk-gui.mdx'; +import RemoveDiskCommandLine from './partials/remove-disk-command-line.mdx'; +import PoolSingleDeviceMode from './partials/pool-single-device-mode.mdx'; +import PoolMultiDeviceMode from './partials/pool-multi-device-mode.mdx'; +import MovePoolToArray from './partials/move-pool-to-array.mdx'; +import MoveArrayToPool from './partials/move-array-to-pool.mdx'; +import MoveBetweenPoolsUsingMover from './partials/move-between-pools-using-mover.mdx'; +import MoveBetweenPoolsManual from './partials/move-between-pools-manual.mdx'; + +# 缓存池 + +In Unraid, a %%cache pool|cache-pool%% is a collection of one or more drives, typically SSDs or high-speed HDDs. These drives temporarily store data before it's moved to your main [%%array|array%%](./array-configuration.mdx). Using %%cache pools|cache-pool%% can significantly enhance write speeds, protect your data, and provide dedicated storage for specific tasks like running Docker containers or [%%virtual machines|vm%%](../create-virtual-machines/overview-and-system-prep.mdx). + +%%Cache pools|cache-pool%% offer several advantages, making them a valuable addition to your Unraid setup, such as: + +1. **Faster write speeds:** %%Cache pools|cache-pool%% allow you to quickly write data to faster drives before it gets transferred to the main %%array|array%%. This greatly enhances perceived performance when saving files. + +2. **Data protection for cached files:** By using multiple drives in a %%cache pool|cache-pool%% (like setting them up in %%RAID 1|raid1%%), you add redundancy. This means your cached data is protected from drive failure before it even reaches the main %%array|array%%. + +3. **为应用程序优化存储:** 将 Docker 容器或 %%虚拟机|vm%% 存储在 %%cache pool|cache-pool%% 上可以提高其性能,减少对主 %%array|array%% 的磨损,并最大限度地缩短访问频繁使用文件的时间。 + +4. **Flexible and dedicated storage:** With multiple %%cache pools|cache-pool%%, you can assign specific pools for different tasks. For instance, you could have one pool dedicated to downloads and another for %%virtual machines|vm%%, reducing competition for resources and boosting efficiency. + +:::info[Keep 铭记在心] +- **多个池:** 您可以创建并命名不同的 %%cache pool|cache-pool%%,以便根据您的具体需要进行调整。 +- **SSD 与 HDD:** SSD 适合于速度,而 HDD 可用于大型顺序数据处理。此外,HDD 可以延长 SSD 的使用寿命。 +- **Redundancy matters:** To protect your data, use more than one drive in a %%cache pool|cache-pool%%. A single drive pool won't protect you from potential drive failure. +- **File system choice:** The default file system for %%cache pools|cache-pool%% is %%BTRFS|btrfs%%, which supports various %%RAID|raid%% options for added redundancy and flexibility. For more details on file system selection, see [File systems](./file-systems.mdx). +- **%%Mover|mover%% integration:** Data written to a %%cache pool|cache-pool%% is automatically transferred to your main %%array|array%% based on a schedule you set. This keeps your [%%user shares|user-share%%](./shares.mdx) organized and easy to manage. +- **应用程序性能:** 通过将 Docker 容器、应用程序数据和 %%VM|vm%% 磁盘放在 %%cache pool|cache-pool%% 上,您可以提升访问速度,并最大限度地减少对主存储的压力。 +::: + +--- + +## 池模式 + +Unraid %%cache pools|cache-pool%% can operate in two main modes: **single device mode** and **multi-device mode**. Knowing the difference between these modes will help you find the right balance between performance, flexibility, and data protection for your needs. + + + + + + + + + + + +%%cache pool|cache-pool%% 的常见任务包括: + +- 将您的池备份到 %%array|array%% +- 在单设备和多设备模式间切换 +- 向池中添加磁盘 +- 更换池中的磁盘 + +## 将缓存池备份到阵列 + +Backing up your %%cache pool|cache-pool%% to the main %%array|array%% is a crucial step before making any upgrades, reformatting, or replacing your cache devices. This process ensures that important data - like Docker containers, app data, and %%virtual machine|vm%% files - are securely stored on the main %%array|array%%, minimizing the risk during maintenance. + +

为什么要备份您的 %%cache pool|cache-pool%%?

+ +- **数据保护**:在进行硬件更改或升级之前保护您的重要文件。 +- **防止意外丢失**:减少重新格式化或替换设备时丢失数据的风险。 +- **轻松恢复**:确保在维护后您能快速恢复应用程序和`虚拟机`数据。 + +:::important +此过程将停止所有 Docker 容器和虚拟机,因此请确保计划一些停机时间,并在必要时通知用户。有关管理 Docker 容器的更多信息,请参见 [管理和自定义容器](../run-docker-containers/managing-and-customizing-containers.mdx)。 +::: + +备份您的 %%cache pool|cache-pool%%: + +1. **停止所有运行的Docker容器和`虚拟机`**:这是顺利备份过程的关键。 +2. **禁用`虚拟机`**: + - 进入 ***设置 → 虚拟机管理器***。 + - 关闭`虚拟机`,点击 **应用**。 +3. **禁用Docker**: + - 进入 ***设置 → Docker***。 + - 关闭Docker并点击 **应用**。 +4. **设定共享存储与Mover操作 (缓存 → 阵列)**: + - 转到**Shares** 选项卡。 + - For each %%user share|user-share%% you want to move, set **Primary storage** to the source %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. + - 将 **Mover操作** 设置为 **缓存 → 阵列**。 +5. **检查 %%array|array%% 上的空间:** 确保有足够的可用空间来存储您的文件。 +6. **Move files to the %%array|array%%**: From the **Main** page, click **Move Now**. This transfers files from the %%cache pool|cache-pool%% to the %%array|array%% based on the Mover action. +7. **验证您的池是空的:** 在 %%Mover|mover%% 完成后,检查 %%cache pool|cache-pool%% 中是否没有剩余的文件。 + +:::note +请记住,直接位于池设备上的文件(不属于任何共享)必须手动移动。 +::: + +### 将文件恢复到缓存池 + +完成维护或更换设备后,可以按以下步骤将文件从 %%array|array%% 恢复到 %%cache pool|cache-pool%%: + +1. **设定共享存储和Mover操作 (阵列 → 缓存)**: + - 转到**Shares** 选项卡。 + - For each %%user share|user-share%% you want to restore, set **Primary storage** to the destination %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. + - 将 **Mover 动作** 设置为 **array → cache**。 +2. **检查池上的空间:** 确保 %%cache pool|cache-pool%% 上有足够的可用空间。 +3. **将文件移回池:** 转到**主**页面,然后单击**立即移动**,将文件传输回 %%cache pool|cache-pool%%。 +4. **验证池中的内容:** 移动完成后,请检查您的 %%cache pool|cache-pool%% 是否包含预期的文件以及 %%array|array%% 上的共享是否为空。 +5. **重新启用Docker**:进入 ***设置 → Docker*** 并重新启用Docker,然后点击 **应用**。 +6. **重新启用`虚拟机`**:进入 ***设置 → 虚拟机管理器*** 并重新启用`虚拟机`,然后点击 **应用**。 +7. **重启Docker容器和`虚拟机`**:最后,启动您希望再次运行的Docker容器或者`虚拟机`。 + +--- + +## 切换到多设备模式 + +%%Cache pools|cache-pool%% in Unraid can be expanded from a single device to multiple devices, allowing for increased capacity and redundancy. To take advantage of multi-device mode, your pool must be formatted as %%BTRFS|btrfs%% or %%ZFS|zfs%%. + +### 将池转换为 BTRFS 或 ZFS + +如果您的 %%cache pool|cache-pool%% 未格式化为 %%BTRFS|btrfs%% 或 %%ZFS|zfs%%,请按照以下简单步骤操作: + +1. **备份您的数据**:首先,请确保备份任何重要内容。 (请参见 [将缓存池备份到阵列](#backing-up-your-cache-pool-to-the-array)) +2. **停止 %%array|array%%:** 确保停止 %%array|array%% 以开始转换过程。 +3. **更改文件系统**:在 **主页面** 点击池,选择`BTRFS`或`ZFS`作为文件系统格式。 +4. **启动 %%array|array%%:** 更改格式后,启动 %%array|array%%。 +5. **格式化池**:池将显示为**无法挂载**并提供格式化选项。确认并点击**格式化**按钮。 +6. **完成格式化:** 格式化完成后,您将获得一个 %%BTRFS|btrfs%% 或 %%ZFS|zfs%% 池,但此时它只有一个设备。 +7. **如果需要添加其他磁盘**:您可以为池添加更多磁盘。 +8. **恢复您的数据**:最后,按照备份步骤将您的数据移回到池中。 + +### 向多设备池中添加磁盘 + +一旦您的池格式化为 %%BTRFS|btrfs%% 或 %%ZFS|zfs%%,您可以添加更多驱动器以增加冗余和扩展存储。 + +为冗余添加更多磁盘: + +1. **停止 %%array|array%%:** 同样,首先停止当前 %%array|array%%。 +2. **分配额外的磁盘**:在 **主页面**,您可以分配一个或多个新设备到池中。 +3. **启动 %%array|array%%:** 一旦分配了驱动器,请重新启动 %%array|array%%。 +4. **自动平衡/重银化:** Unraid 将自动将新设备并入池,并启动一个 **平衡**(%%BTRFS|btrfs%%)或 **重银化**(%%ZFS|zfs%%)以在设备间分配和保护数据。 +5. **监控进度:** 在 **主** 标签中,单击第一个池设备,然后检查 **平衡状态**(对于 %%BTRFS|btrfs%%)或 **zpool 状态**(对于 %%ZFS|zfs%%)以跟踪进度并确认新设备已成功添加。 +6. **池已进入多设备模式**:一旦平衡完成,您的池将以**多设备模式**运行,拥有增强的容量和冗余。 + +:::tip +您可以使用 [BTRFS磁盘使用计算器](http://carfax.org.uk/btrfs-usage/) 估算根据您选择的`RAID`级别和设备尺寸的可用空间与冗余。 +::: + +--- + +## 向池中添加磁盘 + +随着您的存储需求增长,您可能希望通过添加额外的硬盘来扩展您的缓存池。此过程使您能够在提高容量和性能的同时,通过 RAID 配置保持数据保护。 + +:::note +If you want to add disks to your pool, just make sure your pool is already formatted as %%BTRFS|btrfs%% or %%ZFS|zfs%%. If it's not, you'll need to format it first, as explained in [the previous section](#converting-a-pool-to-btrfs-or-zfs). +::: + +向池中添加磁盘的方法: + +1. **停止 %%array|array%%:** 开始时,停止当前 %%array|array%% 以确保流程顺利进行。 +2. **打开主页签**:转到 %%WebGUI|web-gui%% 的**主页签**。这里是您管理磁盘的地方。 +3. **找到池设备部分**:向下滚动直到看到*池设备*部分。这是您可以更改磁盘设置的地方。 +4. **调整槽位数量**:将**槽位**设置为您正在添加的额外设备的确切数量。不能留有多余的空槽;阵列无法在未使用的池槽位启动。 +5. **分配设备**:选择要添加到池的设备(磁盘)并将其分配到可用插槽中。 +6. **启动 %%array|array%%:** 设备分配后,请返回启动 %%array|array%% 以启用这些更改。 + +--- + +## 从池中移除磁盘 + +Removing a disk from a %%BTRFS|btrfs%% or %%ZFS|zfs%% multi-device %%cache pool|cache-pool%% can help you reclaim hardware, replace a failing drive, or reconfigure your storage. This process is only possible if your pool is set up for redundancy (like %%RAID 1|raid1%% for both data and metadata) and the remaining devices have enough space to hold all of your data. + + + + + + + + + + + +### 改变池的 RAID 级别 + +%%BTRFS|btrfs%% provides the ability to change %%RAID|raid%% levels for %%cache pools|cache-pool%% dynamically, allowing you to adjust settings without stopping the %%array|array%% or losing any data. This flexibility lets you optimize for performance, redundancy, or storage efficiency as your requirements change. + +

支持的 %%RAID|raid%% 级别

+ +| %%RAID\|raid%% 级别 | 数据保护 | 空间效率 | 使用场景 | +| ------------------- | ----------- | ------ | ----------------------------------------------------- | +| 单个 | 无 | 100% | 用于临时存储或不需要冗余的非关键数据。 | +| %%RAID 0\|raid0%% | 无 | 100% | 最大化性能和容量,但不建议用于关键数据。 | +| RAID 1\|raid1 | 可承受 1 个磁盘故障 | 50% | Unraid 池的默认值。非常适合 Docker/VM 存储和关键数据。 | +| %%RAID 10\|raid10%% | 可承受 1 个磁盘故障 | 50% | 结合了%%RAID 0\|raid0%%的速度和%%RAID 1\|raid1%%的冗余以满足高性能需求。 | +| %%RAID 5\|raid5%%\* | 可承受 1 个磁盘故障 | 67-94% | **实验性。** 适用于大规模媒体存储的容量和冗余的平衡。 | +| %%RAID 6\|raid6%%\* | 可承受 2 个磁盘故障 | 50-88% | **实验性。** 为大容量硬盘提供额外的归档存储保护。 | + +:::important +%%RAID 5|raid5%% and %%RAID 6|raid6%% are considered experimental in %%BTRFS|btrfs%%. %%ZFS|zfs%% provides more mature support for these %%RAID|raid%% levels. Use with caution and ensure you have backups. Avoid using experimental %%RAID|raid%% levels for critical data. +::: + +更改池的 %%RAID|raid%% 级别: + +1. **在普通模式下启动 %%array|array%%** 如果它尚未运行。 +2. **点击池名称** 在 **主** 选项卡上。 +3. **滚动到均衡状态**:查看当前的 %%RAID|raid%% 等级,适用于数据和元数据。 +4. **选择新的 %%RAID|raid%% 配置**:从预定义配置的下拉菜单中选择。 +5. **启动平衡操作**:点击 **均衡** 开始转换。 + +
+ ![从%%RAID 1|raid1%%转换到单一配置文件](/img/Btrfs-raid1.jpg) +

*示例:从%%RAID 1|raid1%%转换到单一配置文件*

+
+ +6. **监控进度**:平衡操作可能需要几小时到几天,取决于池中的数据量、驱动器速度和所选 %%RAID|raid%% 等级的复杂性。 + +
+ 如果平衡操作卡住,进行故障排除 - 点击以展开/折叠 + + 如果平衡操作似乎卡住或没有响应,请按照这些步骤进行: + + 1. **检查日志**:转到 ***工具 → 日志*** 并过滤 `btrfs` 条目。 + 2. **停止并重新启动操作**: + - 点击 **取消均衡**。 + - 重启 %%array|array%%。 + - 再次启动均衡操作。 + 3. **Verify disk health**: Run %%SMART|smart%% tests on all devices in the pool. For more information on disk health monitoring, see [SMART reports and disk health](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx). + 4. **检查可用空间**:确保池上至少有 10-15% 的可用空间。 + 5. **发布诊断信息**:如果问题持续, 请在 [Unraid 论坛](https://forums.unraid.net/)上共享日志。有关捕获诊断信息的指南,请参见 [捕获诊断和日志](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx)。 +
+ +有关高级 %%BTRFS|btrfs%% 配置的详细信息,请参阅 [BTRFS wiki](https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices)。 + +--- + +## 在池中更换磁盘 + +在 %%cache pool|cache-pool%% 中更换磁盘是一项重要任务,有助于保持存储系统的性能和可靠性。 + +:::note\[Prerequisites] + +- **Check your pool configuration:** Make sure your pool is set up with a redundant %%RAID|raid%% profile, like %%RAID 1|raid1%%. You can do this by going to ***Main → Pool → Balance Status*** (for %%BTRFS|btrfs%%) or ZFS pool status (for %%ZFS|zfs%%) in your management interface. +- \*\*选择合适的替换磁盘:\*\*新磁盘的大小必须与您要替换的磁盘相同或更大。 +- \*\*热插拔能力:\*\*如果您的硬件支持热插拔,您不需要关闭系统电源来更换磁盘。 + +::: + +在池中更换磁盘: + +1. **Stop the %%array|array%%**: Go to the **Main** tab, find the **Array Operation** section, and click the **Stop** button. This will safely halt the %%array|array%% to prepare for disk replacement. +2. **(可选)删除旧磁盘**:如果您没有支持热插拔的设置,您将需要物理地断开旧磁盘。确保以免造成任何损坏。 +3. **安装替换磁盘**:将新磁盘插入系统,确保它连接良好并安全。 +4. **刷新 %%WebGUI|web-gui%%**:返回到 **主** 选项卡并刷新页面,以便系统检测您的新磁盘。 +5. **分配新磁盘**:一旦检测到,在旧磁盘所在的池插槽中找到并将新磁盘分配到该插槽。 +6. **启动 %%array|array%%**:点击 **启动** 按钮,开始将新磁盘集成到 %%array|array%% 中的过程。 +7. **监控重建进度**:系统将自动开始将数据重构到新磁盘上。您可以在 WebGUI 中查看进度。 + +:::important\[Timing] + +根据磁盘大小和系统当前负载情况,重建可能需要一些时间。例如,在 RAID 1 设置中重建一个 4TB 的 SSD 可能需要大约 3-6 小时。建议在可以让系统不受干扰的情况下进行计划。 + +::: + +--- + +## 缓存池的最低空闲空间 + +Setting a minimum free space for your %%cache pool|cache-pool%% can provide better control over file placement, especially when dealing with large files like high-resolution videos. This setting helps Unraid know when to stop writing to the pool and start writing directly to the larger storage %%array|array%%, avoiding interruptions or data corruption. + +:::tip\[Example] + +如果您常常下载大约 10GB 的文件,则将最低空闲空间设置为至少 10GB,最好是 20GB 以便调整。 + +::: + +您可以通过点击 **主** 选项卡中的池名称并转到 **个人池设置** 来访问最低空闲空间。 + +

原理

+ +- 当您将文件传输到包含池的共享时,Unraid 将遵循遇到的第一个最低空闲空间设置 (无论是共享的最低空闲空间还是池的最低空闲空间,哪个先达到) 。 +- 最低可用空间设置告诉 Unraid,当可用空间降到此数量以下时,将停止使用 %%cache pool|cache-pool%%。 +- 如果您的共享使用 %%cache pool|cache-pool%% 作为**主存储**,文件会进入池,直到达到最低可用空间,然后直接发送到 %%array|array%%。 +- 如果设置为仅使用 %%cache pool|cache-pool%%(没有**次存储**),则不应用此设置。 +- 如果设置为仅使用 %%array|array%% 作为 **主存储**,则文件将直接写入 %%array|array%%。 + +:::tip[Use case example] +媒体共享将地板设置为 20GB,这对于该共享中的文件来说是合适的。但是,如果您还在池中使用 VM 并希望留有缓冲空间以防虚拟磁盘增长,则可以将池地板设置为 50GB。这样,在池的空余空间少于 50GB 之后,对媒体共享的任何传输将直接转到阵列。 +::: + +:::tip[Best 实践] +将最小可用空间设置为您期望的最大文件大小,最好是该大小的两倍。例如,如果您的最大文件是 30 GB,要将最小可用空间设置为 60 GB。 +::: + +:::caution +**不要将最小可用空间设置为 0。** 这可能导致磁盘已满错误。务必使用一个合理的值。 +::: + +--- + +## 在池和数组之间移动文件 + +There are times when you may need to move files between your %%cache pool|cache-pool%% and the main %%array|array%%, such as when preparing for maintenance, upgrading hardware, or optimizing performance. Unraid provides a built-in tool called %%Mover|mover%% to automate this process for [%%user shares|user-share%%](./shares.mdx). + +:::tip +在使用 Mover 移动文件之前,务必禁用 Docker 和 VM 服务。这可以防止在传输过程中跳过打开的文件。 +::: + + + + + + + + + + + +
+ 为什么文件有时会出现在错误的池或缓存中? - 点击展开/折叠 + + When you move files between [%%user shares|user-share%%](./shares.mdx) at the Linux level (for example, using `mv` or within a Docker container), Linux tries to optimize the operation. If both the source and destination appear on the same mount point (`/mnt/user`), Linux might rename the file instead of moving it. This can result in files remaining on the original disk or pool, even if the share's "Use cache" setting is set to "No." + + 为确保文件按预期移动,请考虑以下选项: + + - 使用 %%Mover|mover%% 工具。 + - 复制文件然后删除原件。 + - 通过网络移动文件。 + + 这些方法有助于防止文件出现在错误的位置。 +
+ +--- + +## 多个存储池 + +Unraid 允许您创建和管理最多 35 个独立的存储池,每个池最多可容纳 60 个设备。多个池为您提供灵活性,可根据需要分配存储、提高性能和定制冗余。每个池可以使用不同的文件系统、RAID 级别和设备类型(SSD、HDD、NVMe 等)。 + +

为何使用多个存储池?

+ +- **优化性能:** 为 %%VMs|vm%%、Docker 容器、下载或媒体设置单独的存储池可以提高速度并减少冲突。 +- **保护数据:** 为每个存储池分配不同的 %%RAID|raid%% 级别或文件系统,以实现定制化的冗余和备份选项。 +- **隔离工作负载:** 将关键应用程序放在更快的冗余存储池中,将大容量数据存储在更具成本效益的设备上。 +- **灵活管理:** 你可以独立地扩展、减少或格式化存储池而不影响其他池。 + +

常见使用案例

+ +| 使用场景 | 配置示例 | 好处 | +| ----------------- | -------------------------------------------------------------------------- | ---------- | +| 高性能 %%VMs\|vm%% | NVMe SSD池,%%RAID 1\|raid1%%,%%BTRFS\|btrfs%% 或 %%ZFS\|zfs%% | 快速 I/O 与冗余 | +| Docker/Appdata 存储 | SSD池,%%RAID 1\|raid1%%,%%BTRFS\|btrfs%% 或 %%ZFS\|zfs%% | 快速访问和数据保护 | +| 批量媒体下载 | Large HDD pool, %%RAID 0\|raid0%% or single, %%XFS\|xfs%%/%%BTRFS\|btrfs%% | 高容量但冗余较少 | +| 项目/团队隔离 | 为每个团队/项目设置单独的存储池 | 减少资源冲突 | +| 快照和备份目标 | %%ZFS\|zfs%%池,%%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%%(多设备) | 支持原生快照和备份 | + +:::info[Supported File Systems] +- %%BTRFS|btrfs%%: 适合多设备存储池(支持 %%RAID 0|raid0%%, %%RAID 1|raid1%%, %%RAID 10|raid10%%, %%RAID 5|raid5%%, %%RAID 6|raid6%%)。 +- ZFS: 非常适合单一设备和多设备池(Unraid 6.12+),支持成熟的 RAIDZ1 和 RAIDZ2。有关高级 ZFS 功能和配置,请参见 [ZFS 存储](../../advanced-configurations/optimize-storage/zfs-storage.mdx)。 +- %%XFS|xfs%%: 适合单设备存储池。 +::: + +When accessing a [%%user share|user-share%%](./shares.mdx) from multiple pools and %%array|array%% disks, Unraid merges the directory listings in this order: + +1. 分配给共享的存储池 +2. %%Array|array%% 磁盘(disk1、disk2、...、disk28) +3. 其他存储池(按顺序) + +### 在存储池之间移动文件 + +Unraid 不允许通过 %%WebGUI|web-gui%% 直接在存储池间移动文件,但可以使用 %%Mover|mover%% 工具或通过命令行实现。 + +:::note\[Remember] + +如果任何文件属于 Docker 容器和/或 VM ,必须禁用这些服务,以便文件可以成功移动。 + +::: + + + + + + + + + + + +:::warning +If you remove a device from a %%BTRFS|btrfs%% or %%ZFS|zfs%% pool and move it to a new pool, Unraid will erase all data on it when the %%array|array%% restarts. Always back up important data before changing pool configurations. +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx new file mode 100644 index 0000000000..04d09d990b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/file-systems.mdx @@ -0,0 +1,476 @@ +--- +sidebar_position: 4 +sidebar_label: 文件系统 +--- + +# 文件系统 + +### 选择文件系统类型 + +为您的 Unraid %%array|array%% 或 %%cache pool|cache-pool%% 选择正确的文件系统至关重要。它有助于实现性能、数据保护和高级功能之间的平衡。Unraid 支持多种现代 Linux 文件系统,每种都有其独特的优势和特定的使用场景: + +| 文件系统 | 数据保护 | 空间效率 | 高级功能 | 最佳使用案例 | +| ---------------- | ------------------------------------------------------------------------------- | ----------------------- | ---------------------------------------------------------------- | ---------------------------- | +| %%XFS\|xfs%% | 没有内置冗余 | 100% | 对损坏的强大抗性 | 默认的数组驱动器;高可靠性 | +| %%ZFS\|zfs%% | %%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%%/%%RAIDZ3\|raidz3%%,镜像等。 | 根据%%RAID\|raid%%级别而有所不同 | %%Checksums\|checksum%%, %%Snapshots\|snapshot%%, %%RAID\|raid%% | 多设备池,%%虚拟机\|vm%%,Docker,高级用户 | +| %%BTRFS\|btrfs%% | %%RAID 0\|raid0%%/%%RAID 1\|raid1%%/%%10\|raid10%%/%%5\|raid5%%/%%6\|raid6%%、镜像 | 根据%%RAID\|raid%%级别而有所不同 | %%Checksums\|checksum%%, %%Snapshots\|snapshot%%, %%RAID\|raid%% | 多设备池,混合SSD/HDD,灵活的池 | + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import FileSystemXfs from './partials/file-system-xfs.mdx'; +import FileSystemZfs from './partials/file-system-zfs.mdx'; +import FileSystemBtrfs from './partials/file-system-btrfs.mdx'; +import BtrfsBalance from './partials/btrfs-balance.mdx'; +import BtrfsScrub from './partials/btrfs-scrub.mdx'; +import FsCheckCliXfs from './partials/fs-check-cli-xfs.mdx'; +import FsCheckCliBtrfs from './partials/fs-check-cli-btrfs.mdx'; +import FsCheckCliZfs from './partials/fs-check-cli-zfs.mdx'; +import FsRepairCliXfs from './partials/fs-repair-cli-xfs.mdx'; +import FsRepairCliBtrfs from './partials/fs-repair-cli-btrfs.mdx'; +import FsRepairCliZfs from './partials/fs-repair-cli-zfs.mdx'; + + + + + + + + + + + + + + + +:::note[Additional 笔记] +- Mixing different file system types in your Unraid system is perfectly acceptable; the Unraid %%parity|parity%% system works independently of the file system used. +- 始终在 Unraid 内格式化和分区驱动器以确保兼容性。 +- Linux 系统可以原生读取这些文件系统;然而,Windows 和 macOS 将需要额外的软件来访问。 +- 你可以对驱动器进行加密以增强安全性,但请记住,加密驱动器可能会给发生损坏时的恢复带来挑战。 +- 对于传输驱动器或外部设备,建议使用支持额外文件系统的 **[Unassigned Devices](#using-the-unassigned-devices-plugins)** 插件。 +::: + +:::tip[Still 需要帮助选择吗?] +- **对于数组驱动器:** %%XFS|xfs%%通常是大多数用户的最佳选择。 +- **对于高性能或高级功能:** 选择%%ZFS|zfs%%或%%BTRFS|btrfs%%用于%%cache pools|cache-pool%%或多设备设置。 +- **对于混合或扩展池:** 如果你想使用不同的驱动器大小或轻松地添加或删除设备,%%BTRFS|btrfs%% 是理想选择。 + +如果不确定,开始默认设置是一种好的方法:对于%%array|array%%驱动器使用 %%XFS|xfs%% ,对于 %%cache pools|cache-pool%% 使用 %%BTRFS|btrfs%%。 +::: + +--- + +## 设定文件系统类型 + +在向 Unraid 添加新磁盘时,您可以选择最适合您需求的文件系统类型。文件系统决定了磁盘上数据的组织和保护方式。 + +设定文件系统类型: + +1. **全局设定默认值:** + - 导航到 ***设置 → 磁盘设置*** ,仅为新 %%array|array%% 驱动器设定默认文件系统。 + - Unraid 默认使用 %%XFS|xfs%% 作为 %%array|array%% 驱动器。 + - **Note:** There is currently no global default setting for %%cache pools|cache-pool%%. They will always default to %%BTRFS|btrfs%% if left to "auto". + +2. **为单个驱动器设定文件系统:** + - 停止%%array|array%%。 + - 点击主标签上的驱动器。 + - 从下拉菜单中选择你想要的文件系统类型。 + - 如果选择 **自动** ,Unraid 会使用全局默认值。 + - 对于多设备 %%cache pools|cache-pool%% ,仅支持 %%BTRFS|btrfs%% 或 %%ZFS|zfs%%。 + +--- + +## 创建文件系统(格式化) + +在 Unraid 中使用新磁盘之前,您必须将其格式化为所选的文件系统。**请记住,格式化将擦除驱动器上的所有现有内容。** + +开始格式化: + +1. **启动%%array|array%%**。 +2. **识别无法挂载的驱动器:**未被识别的驱动器将显示为**不可挂载的**。 +3. \*\*验证驱动器选择:\*\*验证所有无法挂载的驱动器是否是你想要格式化的驱动器。 +4. \*\*确认并格式化:\*\*勾选确认框,仔细阅读警告对话框,然后点击 **格式化**。 +5. **监控过程**:格式化过程将开始。对于新磁盘,Unraid 将首先重写分区表。 +6. **等待完成**:格式化通常需要几分钟。如果您看不到进度,请刷新 **Main** 选项卡。 + +格式化完成后,驱动器即可存储文件。 + +--- + +## 更改文件系统类型 + +你可能想更改特定设备上的文件系统类型以利用新功能或确保与其他设备兼容。 + +:::warning +更改文件系统类型将 **擦除驱动器上的所有现有数据**。在继续之前,请务必备份任何重要文件。 +::: + +要更改特定驱动器上的文件系统类型: + +1. **停止数组:** 开始时停止你的%%array|array%% 以确保变更期间没有操作正在进行。 +2. **选择驱动器:** 在 **主** 标签中,点击你想要更改格式的驱动器。 +3. **选择新的文件系统**:从下拉菜单中选择所需的文件系统格式。如果您有多个驱动器需要更改,请对每个驱动器重复此步骤。 +4. **重新启动数组:** 选择新的文件系统后,再次启动你的%%array|array%%。 +5. **格式化不可挂载的驱动器**:**Main** 选项卡将显示选项以格式化不可挂载的驱动器。花点时间检查列表,确保仅包含您打算更改的驱动器。 +6. **确认并格式化:** 勾选确认框以确认更改,然后点击 **格式化** 按钮继续。 +7. **等待过程完成**:格式化通常只需几分钟。如果您发现状态未更新,可以刷新 **Main** 选项卡以检查进度。 + +如果您遇到任何问题,可以随时访问 [Unraid 论坛](https://forums.unraid.net/)。附上您的系统诊断 zip 文件(位于 **工具 → 诊断** 下)以获取帮助。 + +--- + +## 转换到新的文件系统类型 + +:::important +从 Unraid 7.2 开始,**Main** 页面将警告如果任何阵列或池驱动器是以遗留文件系统格式化的: + +- 任何格式化为 ReiserFS 的驱动器需要尽快迁移到另一个文件系统,因为它们在未来版本的 Unraid(可能是 Unraid 7.3)中不可用。 +- 任何以旧版 XFS 格式化的驱动器需要在 2030 年之前迁移。 +::: + +要更改驱动器的文件系统类型但保留其数据,您必须在重新格式化之前迁移内容。该过程对于从不再支持的 ReiserFS(在旧版 Unraid 中使用)迁移到 %%XFS|xfs%% 或 %%BTRFS|btrfs%% 的用户尤为常见,但它适用于任何文件系统转换。 + +:::important +This process requires temporarily moving your data to another location. Make sure you have enough free space elsewhere in your %%array|array%% or on an external device before you begin. +::: + +要安全地转换为新的文件系统类型: + +1. **Copy all data off the drive**: Move your files to another location. This could be another drive in your %%array|array%%, a %%cache pool|cache-pool%%, or an external backup. + - 在 Unraid 7.0 之前,您需要手动移动文件。 + - 从 Unraid 7.0 开始,您可以 [使用“移动程序”清空阵列磁盘](../../release-notes/7.0.0.md#using-mover-to-empty-an-array-disk) 通过命令行将文件移动到其他阵列驱动器。 + - 从 Unraid 7.2 开始,您可以通过 WebGUI 将一个阵列驱动器清空到其他阵列驱动器中: + - 导航到 ***主菜单 → 阵列操作*** 并停止阵列。 + - 导航到 ***设置 → 全局共享设置***。在**清空磁盘**区域,选择要清空的磁盘并点击 **应用**。注意:当阵列停止时,该状态将自动移除。 + - 导航到 ***主菜单 → 阵列操作*** 并启动阵列。 + - 在 ***主菜单 → 阵列操作*** 上点击 **移动** (或等待移动程序按其正常计划运行)。 + - 移动程序将根据您的共享设置清空磁盘。注意根目录的文件不包括在任何共享内,因此不会被移动。 + - 检查 ***工具 → 系统日志*** 查看文件因正在使用或缺乏空闲空间而无法移动的信息。 + - 导航到 ***主菜单 → 阵列设备*** 并浏览磁盘以确认其为空。只有在确定磁盘为空时才能继续。 +2. **更改文件系统类型**:遵循[更改文件系统类型](#changing-a-file-system-type) 的步骤。这将格式化驱动器并擦除所有内容,留下一个新的空白驱动器。 +3. **将数据拷回**:(可选)根据文件移动的位置,您可能需要将它们移回到新格式化的驱动器。 +4. **根据需要重复:** 如果有多个驱动器需要转换,则为每个驱动器重复这些步骤,按照需要转移数据。 + +:::note\[Timing] + +根据数据量和驱动器的速度,整个过程可能需要几个小时。大多数时间花在复制文件上,可以无人值守运行。 + +::: + +--- + +## 重新格式化驱动器 + +在 Unraid 中重新格式化驱动器将擦除所有数据并创建一个新的空文件系统。此过程有助于解决持久的文件系统错误或开始使用新的格式。 + +:::warning +重新格式化将永久擦除驱动器上的所有数据。在开始之前,务必备份任何重要文件。 +::: + +要 **安全地** 重新格式化你的驱动器: + +1. **停止阵列**。 +2. **更改文件系统类型:** + - 转到 **主** 标签并点击你想重新格式化的驱动器。 + - 选择不同的文件系统类型(例如,从%%XFS|xfs%%更改为%%BTRFS|btrfs%%)。 + - 启动%%array|array%%,驱动器将显示为**不可挂载的**。 + - 在提示时,格式化驱动器。 +3. **(可选)更改回原始文件系统类型:** + - 再次停止%%array|array%%。 + - 将文件系统改回你首选的类型。 + - 启动%%array|array%%并再次格式化驱动器。 + +此简单过程可确保驱动器完全擦除并格式化为所需格式。格式化过程通常只需几分钟。 + +### 重新格式化缓存驱动器 + +有时,你需要重新格式化一个%%cache|cache%%驱动器,原因如下: + +- 更改文件系统类型(例如,从%%BTRFS|btrfs%%转换到%%XFS|xfs%%或反之亦然) +- 修复持久的文件系统错误 +- 为新的工作负载重新开始 + +

重新格式化缓存驱动器的推荐程序

+ +1. **停止阵列**。 +2. 在**设置**中**禁用 Docker 和%%VM|vm%% 服务**。 +3. **启动数组**(这将防止 Docker 和%%VM|vm%% 页签出现)。 + +从缓存移动数据: + +4. **Set share storage and Mover action (cache → array)**: For each share that has files in the %%cache|cache%%, set **Primary storage** to the source %%cache|cache%% pool and **Secondary storage** to the %%array|array%%. Set **Mover action** to **cache → array**. + - 记录下您更改的任何共享及其原始设置。 +5. **Run %%Mover|mover%%**: Run %%Mover|mover%% from the **Main** tab. Wait for it to finish and ensure that the %%cache|cache%% is empty. + - 如果还有文件留存,请停止并在论坛中寻求帮助。 + +重新格式化缓存驱动器: + +6. **停止阵列**。 +7. **设置缓存驱动器格式**(在 %%XFS|xfs%% 或 %%BTRFS|btrfs%% 之间选择)。 + - 对于单驱动 %%cache|cache%%,推荐选择 %%XFS|xfs%%。 + - 请注意,%%XFS|xfs%% 仅在您有一个 %%cache|cache%% 插槽时可用。 +8. **启动阵列**。 +9. **格式化缓存驱动器**: + - 确认仅有 %%cache|cache%% 驱动器列为不可挂载。 + - 继续格式化驱动器。 + +还原数据和设置: + +10. **恢复共享设置**:对于您更改的每个共享,将**主要存储**和**次要存储**恢复到原始值。 +11. **Move data back (array → cache)**: Set **Primary storage** to the destination %%cache|cache%% pool and **Secondary storage** to the %%array|array%% for each share you changed. Set **Mover action** to **array → cache**, then run the %%Mover|mover%% again to move your data back to the %%cache|cache%%. +12. **停止阵列**。 +13. **重新启用 Docker 和 %%VM|vm%% 服务**。 +14. **启动阵列**。 + +:::note\[Timing] + +使用 %%Mover|mover%% 移动数据和格式化驱动器所需时间可能从几分钟到几小时不等,具体取决于数据量和驱动器速度。 + +::: + +--- + +## BTRFS 操作 + +在 Unraid 中维护您的 %%BTRFS|btrfs%% 池对于保持其正常运行和确保您的数据安全至关重要。您需要定期使用的两个关键工具是 **平衡** 和 **清理**。这些操作有助于解决空间分配问题,优化存储利用率,并保护数据免受隐藏损坏的影响。 + +让我们来详细解释每项操作的作用以及何时使用这些操作: + + + + + + + + + + + +:::tip +**平衡** 和 **清理** 都可以在系统在线时进行,但请记住,在这些操作期间性能可能会受到影响。您可以在 %%WebGUI|web-gui%% 中监控进度。 +::: + +有关高级 %%BTRFS|btrfs%% 功能的更多详细信息,请查阅 [官方 BTRFS 文档](https://btrfs.readthedocs.io/en/latest/Introduction.html)。 + +--- + +## 未分配的驱动器 + +Unassigned drives are storage devices connected to your Unraid server that aren't part of the main %%array|array%% or any %%cache pool|cache-pool%%. You can use these drives to transfer files, create backups, or provide fast storage for %%virtual machines|vm%%. + +:::note +当 %%array|array%% 启动时,连接到服务器的所有驱动器即使未分配至 %%array|array%% 或池中,也会计入 Unraid 附加设备许可证限制。 +::: + +

未分配驱动器的常见用途

+ +- 连接可移动驱动器以便于文件传输或备份。 +- 使用专用驱动器进行高性能任务,如运行 %%virtual machines|vm%% 或临时数据存储。 + +### 使用未分配设备插件 + +要充分利用您的未分配驱动器,请考虑从**应用程序**选项卡安装以下插件: + +- \*\*[未分配设备](https://unraid.net/community/apps?q=dlandon\&r=0#:~:text=and%20iso%20files.-,Unassigned%20Devices,-dlandon):\*\*此插件允许您挂载、共享和管理具有 Unraid 支持的文件系统(如 %%XFS|xfs%%、%%BTRFS|btrfs%% 或 NTFS)的驱动器。 + +- \*\*[未分配设备Plus](https://unraid.net/community/apps?q=dlandon\&r=0#:~:text=and%20iso%20files.-,Unassigned%20Devices%20Plus,-\(Addon\)):\*\*此扩展支持额外的文件系统,包括 ExFAT 和 HFS+。 + +这些插件启用: + +- 使用 Unraid 网页界面轻松挂载和卸载驱动器。 +- 通过网络共享您的未分配驱动器。 +- 在服务器启动时自动挂载。 +- 格式化或擦除驱动器以备将来使用。 +- 安全地断开 USB 或外部驱动器而不产生麻烦。 + +有关插件安装和管理的详细信息,请查阅 [插件](../customize-your-experience/plugins.mdx)。 + +--- + +## 故障排除 + +### 驱动器显示为无法挂载 + +如果您在 Unraid 中看到驱动器为**无法挂载**,可能是由于两个主要原因之一: + +1. **添加新驱动器**:如果您刚刚将新驱动器添加到设置中,除非格式化,否则它将显示为不可挂载。格式化会创建一个允许驱动器存储文件的文件系统。您可以在[这里](#创建文件系统)找到格式化驱动器的步骤。 + +2. **文件系统问题**:如果之前正常工作的驱动器突然显示为不可挂载,则可能是文件系统问题。这可能由于意外关机、写入数据时的问题或驱动器被标记为禁用(在 %%WebGUI|web-gui%% 中显示为红色“x”)所导致。 + +:::important +Do not format an unmountable drive unless you are okay with losing all the data on it. Formatting will erase everything and update the %%parity|parity%% information, making recovery impossible. Always try to fix the file system first. +::: + +如果您的驱动器无法挂载: + +1. **识别情况**:确定这是新驱动器还是先前工作的驱动器。 +2. **对于新驱动器**:格式化驱动器以创建一个新的文件系统(查看 [格式化步骤](#creating-a-file-system-formatting))。 +3. **对于之前工作的驱动器**:执行文件系统检查或修复(见[检查文件系统](#checking-a-file-system))。如果您希望保留数据,请避免格式化。 + +:::note +如果驱动器既不可挂载又被禁用(红色“x”),首先对**模拟**驱动器运行文件系统检查/修复。如果模拟驱动器也不可挂载并尝试重建,新驱动器也将不可挂载。 +::: + +修复文件系统通常比重建驱动器所需时间更短,让您可以不丢失任何数据地访问它。请记住,重建驱动器**无法**修复文件系统问题;它仅确保物理驱动器与模拟驱动器相匹配,且将现有问题一同保留。 + +:::important[Why 奇偶校验不足够吗?] +While %%parity|parity%% helps recover a failed drive, it cannot fix file system problems. If the file system is corrupted, %%parity|parity%% will simply replicate that corruption to the new drive. + +如果您不确定: + +- 通过导航到 ***工具 → 诊断*** 来下载系统日志。 +- 如需专家帮助,请将您的问题连同诊断信息一起发布于 [Unraid 论坛](https://forums.unraid.net/)。 +::: + +:::note[Just 重申一下] +- 仅当他们是全新的或想要擦除所有数据时,才格式化无法挂载的驱动器。 +- 使用文件系统检查/修复来解决损坏文件问题;不要依靠 %%parity|parity%% 来解决这些问题。 +- 对于有多个驱动器的 %%cache pools|cache-pool%%,可以考虑使用 %%BTRFS|btrfs%% 或 %%ZFS|zfs%%。 +- 在格式化或修复驱动器之前,请再次检查以避免意外的数据丢失。 +::: + +--- + +### 检查文件系统 + +如果之前正常挂载的磁盘现在显示为**不可挂载**,这通常表示文件系统损坏。这可能由未清洁的关机、失败的写操作或磁盘在 %%WebGUI|web-gui%% 中被标记为禁用所导致。检查和修复文件系统通常比执行重建更快更安全,因此建议在格式化或重建磁盘之前尝试此操作。 + +:::important +If the %%WebGUI|web-gui%% suggests formatting an unmountable drive, do not format unless you intend to erase all data. Formatting will destroy the contents of the drive and update %%parity|parity%%, making recovery impossible. +::: + +

准备检查或修复

+ +1. **识别文件系统类型**: + - 导航到 **主** 选项卡并选择您的磁盘(例如:磁盘 3,缓存)。 + - 找到**文件系统类型**(应为 %%XFS|xfs%%、%%BTRFS|btrfs%% 或 %%ZFS|zfs%%)。 + +2. **以正确模式启动阵列**: + - 对于\*\* %%XFS|xfs%% **,在** %%维护模式|maintenance-mode%% \*\*下启动 %%array|array%% 。 + - 对于 **%%BTRFS|btrfs%% **,请在**正常模式**下启动 %%array|array%% 进行 %%scrub|scrub%% ,或在\*\* %%维护模式|maintenance-mode%% \*\*下进行修复。 + - 对于 **%%ZFS|zfs%%** ,请参考下方的 %%ZFS|zfs%% 内容。 + +3. **Handle emulated disks**: If the disk is disabled and being emulated, run the check/repair on the %%emulated disk|emulated-disk%% before attempting a rebuild. If the %%emulated disk|emulated-disk%% is unmountable, the rebuilt disk will also be unmountable. + +

常见错误消息

+ +| 消息 | 意义/行动 | +| --------------------------- | ----------------- | +| **超级块有错误的幻数** | 严重腐败;尝试文件系统修复。 | +| **文件系统脏** | 未清关闭;执行文件系统检查。 | +| **元数据损坏检测** | 文件系统结构损坏;开始修复。 | +| **未找到有效的 %%BTRFS\|btrfs%%** | 磁盘可能不属于有效池;检查池分配。 | +| **挂载:错误的文件系统类型、错误的选项等** | 文件系统选择错误或磁盘未格式化。 | +| **无法挂载 /dev/mdX:结构需要清理** | 文件系统已损坏;执行修复。 | + +#### 通过 WebGUI + +1. **启动阵列**:以正确的模式启动 %%array|array%% (请参阅上面的步骤)。 +2. **选择磁盘**:转到 **主** 选项卡并选择您要检查的磁盘。 +3. **访问检查选项**:滚动至**检查文件系统状态**。 +4. **对于 XFS(Unraid 7.0+):** 您将看到一个没有选项可供输入的 **检查** 按钮。系统会根据检查结果自动确定必要操作。 +5. **对于其他文件系统**:输入必要的选项(详细信息请参阅右上角的**帮助**)。 +6. **启动检查**:点击 **检查** 以开始过程。 +7. **监控进展**:在输出框中监控进度。如有需要,使用 **刷新**。 +8. **查看结果**:查看结果。如果不确定,复制输出并在 [论坛](https://forums.unraid.net/) 上发帖咨询意见。 + +#### XFS 自动修复工作流程(Unraid 7.0+) + +从 Unraid 7.0 开始,通过 WebGUI 完全自动化 XFS 文件系统修复: + +1. **初始检查**: 点击 **CHECK** 按钮(无需输入选项) +2. **检查结果**: + - **未检测到损坏**:显示“未检测到文件系统损坏”,**CHECK** 按钮保持不变 + - **检测到损坏**:显示“检测到文件系统损坏”,出现 **FIX** 按钮 +3. **修复过程**: 点击 **FIX** 自动修复文件系统 +4. **其他操作**: 如有需要,可能会出现 **ZERO LOG** 按钮 +5. **完成**: 过程完成后显示“文件系统已修复” + +此自动系统消除了用户手动输入修复选项的需求,并确保了正确的修复顺序。 + +#### 通过命令行 + + + + + + + + + + + + + + + +:::tip +- 文件系统修复通常比完整重建更快,并能在不丢失数据的情况下恢复访问。 +- 重建磁盘并 **不会** 解决文件系统损坏;请始终先运行检查或修复。 +- 如果您有疑问,请在 Unraid [论坛](https://forums.unraid.net/) 上发布您的诊断和错误信息以获取专家协助。 +::: + +--- + +### 修复文件系统 + +如果文件系统检查发现错误,您可能需要进行修复才能再次访问数据。修复通常比完全重建所需的时间少,但重要的是仔细阅读输出,并在不确定任何问题时在 [论坛](https://forums.unraid.net/) 上寻求帮助。 + +:::note\[Timing] + +修复可能需要从几分钟到几个小时,尤其是对于更大或严重受损的文件系统。进度可能看起来很慢,但您可以通过查看主页上的读/写统计来查看活动。 + +::: + +

准备进行修复

+ +1. **识别文件系统类型**: 进入 **主** 标签页,点击磁盘,查明其文件系统类型是 %%XFS|xfs%%、%%BTRFS|btrfs%% 还是 %%ZFS|zfs%%。 + +2. **以正确模式启动阵列**: + + - **对于 %%XFS|xfs%%:** 使用 **%%维护模式|maintenance-mode%%**。 + - **对于 %%BTRFS|btrfs%%:** 为 %%scrub|scrub%% 使用 **正常模式**;为修复使用 **%%维护模式|maintenance-mode%%**。 + - **For %%ZFS|zfs%%:** Use **Normal mode** and run a %%scrub|scrub%% to check for errors. See the [ZFS storage page](../../advanced-configurations/optimize-storage/zfs-storage.mdx) for guidance on %%ZFS|zfs%% pool maintenance and repair procedures. + +3. **Handle emulated disks**: If the disk is disabled and being emulated, run the repair on the %%emulated disk|emulated-disk%% before trying to do a rebuild. + +#### 通过 WebGUI + +1. **Start the array**: Start the %%array|array%% in the correct mode (refer to the section above). +2. **选择磁盘**: 进入 **主** 标签页并点击要修复的磁盘。 +3. **访问修复选项**: 向下滚动至 **检查文件系统状态**。 +4. **对于 XFS(Unraid 7.0+)**:修复过程是完全自动化的。单击 **检查**,如果检测到损坏,则单击 **修复**,如果提示,则单击 **清零日志**。 +5. **对于其他文件系统**: 去除任何会将过程置于仅检查模式的选项(如对于 %%BTRFS|btrfs%% 的 `--readonly`)。 +6. **添加建议选项**: 如果提示,根据检查输出添加建议选项。 +7. **开始修复**: 点击 **检查** 开始修复。 +8. **监控进展**:对输出框中进度保持关注。如需使用 **刷新**。 +9. **检查丢失的文件**:如果在修复后注意到一个 `lost+found` 文件夹,它可能包含不能完全恢复的文件或文件夹。如有必要,可使用备份或 Linux 的 `file` 命令识别内容。 + +:::info +如果对输出不确定,将其复制并分享至 [Unraid 论坛](https://forums.unraid.net/) 寻求专家帮助。使用代码格式选项以保持可读性。 +::: + +#### 通过命令行 + + + + + + + + + + + + + + + +:::info[After 修复] +- Stop and restart the %%array|array%% in **Normal mode**. +- 驱动器现在应挂载并可访问。 +- 如果您看到一个 `lost+found` 文件夹,请检查其内容是否有重要文件。 +::: + +如果您不理解修复输出或过程失败,请在 [Unraid 论坛](https://forums.unraid.net/) 上分享您的诊断和修复日志以获得进一步的帮助。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx new file mode 100644 index 0000000000..117b54bd93 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-no-parity.mdx @@ -0,0 +1,21 @@ +向没有奇偶保护的阵列中添加数据盘: + +1. **停止阵列:** 使用 Unraid WebGUI 停止阵列。 + +2. **关闭服务器:** 安全地关闭服务器电源。 + +3. **安装新硬盘:** 实体添加新磁盘。 + +4. **重新开启服务器:** 重新启动您的服务器。 + +5. **分配新磁盘:** 使用 WebGUI 将新磁盘分配到可用数据槽。 + +6. **启动阵列:** 再次启动阵列。 + + - The clearing step is skipped entirely when there is no %%parity disk|parity-drives%% in the array. + +7. **格式化磁盘:** 新磁盘将在%%WebGUI|web-gui%%中显示为不可挂载。 系统将提示您格式化它。 + +:::important +始终仔细核对序列号,确保您正在格式化正确的磁盘。格式化将擦除该磁盘上的所有内容,这个操作无法撤销。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx new file mode 100644 index 0000000000..9ea8c2b561 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/add-data-disk-parity-protected.mdx @@ -0,0 +1,30 @@ +要向保护奇偶的阵列中添加数据盘: + +1. **停止阵列:** 使用 Unraid WebGUI 停止阵列。 + +2. **关闭服务器:** 安全地关闭服务器电源。 + +3. **安装新硬盘:** 实体添加新磁盘。 + +4. **重新开启服务器:** 重新启动您的服务器。 + +5. **分配新磁盘:** 使用 WebGUI 将新磁盘分配到可用数据槽。 + +6. **启动阵列:** 再次启动阵列。 + + - Unraid 会自动在新硬盘上运行 **清除操作**。这会用零填充硬盘,并确保它可以使用,同时保持数据完整性。 + - 清除操作在后台进行,因此您仍然可以访问您的数组。但是,直到过程完成并且磁盘格式化之前,新磁盘将无法使用。 + - 如果您已提前清除磁盘,Unraid 将跳过此步骤,识别它已经准备好使用。 + +7. **清除完成后:** 一旦清除过程完成,磁盘将在%%WebGUI|web-gui%%中显示为不可挂载。系统将提示您格式化它。 + +:::important +始终仔细核对序列号,确保您正在格式化正确的磁盘。格式化将擦除该磁盘上的所有内容,这个操作无法撤销。 +::: + +8. **确认格式:**检查确认框并点击**格式**按钮。Unraid 将会警告您此操作的结果。 +9. \*\*格式化过程:\*\*格式化将需要几分钟。完成后,磁盘将显示为已挂载并可以使用。由于文件系统的开销,看到少量已用空间是正常的。 + +:::note +您可以添加多个磁盘,但在它们全部清除和格式化之前将无法使用。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx new file mode 100644 index 0000000000..712f9b56a0 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx @@ -0,0 +1,57 @@ +当您的阵列中至少包含一个指定的奇偶校验设备时,进行 %%parity check|奇偶校验检查%% 是必不可少的。在此过程中,所有数据磁盘同时被读取。系统重新计算奇偶校验并将其与存储在您的 %%parity disk(s)|奇偶校验磁盘%% 上的信息进行比较。 + +
+ 深入:奇偶校验同步与奇偶校验检查 - 有何区别? - 点击展开/折叠 + + %%parity|奇偶校验%% 同步会读取所有数据磁盘并从零开始创建 %%parity|奇偶校验%% ,将结果保存到 %%parity drives|奇偶校验磁盘%% 上。通常在您添加或更换 %%parity drives|奇偶校验磁盘%% 或进行重大配置更改后,此过程会发生。 + + %%parity check|奇偶校验检查%% 会读取所有数据磁盘以及 %%parity drives|奇偶校验磁盘%% 。它重新计算 %%parity|奇偶校验%% 值并与存储值进行比较。有两种模式来运行 %%parity check|奇偶校验检查%%: + + - **修正 (CORRECT):** 如果发现不匹配,它会更新 %%parity disk|奇偶校验磁盘%% 并记录事件。 + - **非校正(NOCORRECT):** 仅记录发现的错误而不更新校验。 + + 为避免过多日志记录,在 %%parity check|奇偶校验检查%% 过程中仅报告前 100 个错误地址。这些不匹配被称为 **同步错误** ,表明奇偶校验与数据不一致,通常由于如突然断电或硬件问题所致。每个同步错误按 4KiB 块计数 - 这是系统的 I/O 单元大小(称为 Linux 页大小)。 +
+ +
+ 深入:奇偶校验和阵列磁盘中的“有效”是什么意思? - 点击展开/折叠 + + **有效的 %%parity disk|奇偶校验磁盘%%** 表示在最后一次成功 %%parity|奇偶校验%% 同步后,Unraid 认定该 %%parity|奇偶校验%% 是 "好" 的,意味着如果磁盘出现故障,它适合数据恢复。"有效" 状态适用于阵列中的每个磁盘,而不仅仅是 %%parity|奇偶校验%% 。如果除一个之外的所有磁盘都是有效的,Unraid 可以使用 %%parity|奇偶校验%% 重建丢失或故障磁盘的数据。 + + 即使在非修正检查后发生一些同步错误,Unraid 仍保持 %%parity disk|奇偶校验磁盘%% 的 "有效" 状态。这样您仍然可以恢复故障磁盘。如果 %%parity|奇偶校验%% 被标记为无效,您将在仅发生一次额外故障后面临两个无效磁盘的风险,从而导致潜在数据丢失。 +
+ +在 %%parity check|奇偶校验检查%% 进行时,您仍然可以使用阵列。然而,请注意由于磁盘争用,性能可能会变慢,因为文件操作和检查都在争夺资源。 + +通常,如果 %%parity check|奇偶校验检查%% 识别到错误,Unraid 将更新 %%parity disk|奇偶校验磁盘%% 以与计算数据对齐并增加同步错误计数器。 + +:::tip +如果您希望在不进行更正的情况下运行检查,只需在开始前取消勾选**将更正写入校验**,这样错误会被报告,但不会被修复。 +::: + +:::important +After an "Unsafe Shutdown"—when the array is restarted without being properly stopped—Unraid automatically initiates a %%parity check|parity-check%% using the mode configured under **Settings → Scheduler → Parity Check** (non-correcting by default). To change how the automatic check runs, open **Settings → Scheduler → Parity Check** and adjust the options there. Unexpected power loss is the most common trigger for an unsafe shutdown, so using an uninterruptible power supply (UPS) is strongly recommended to protect your data. +::: + +

什么是校验错误?

+ +%%Parity|parity%% errors happen when the %%parity|parity%% information your system calculates doesn't match what's stored on your %%parity drives|parity-drives%%. This mismatch can arise from several issues, including: + +- 突然断电或不安全关机 +- 故障驱动器或磁盘错误 +- 电缆或连接问题 +- 不干净的关机或意外的系统崩溃 + +When %%parity|parity%% errors occur, either the %%parity drives|parity-drives%% or the data disks could be out of sync. Ideally, a %%parity check|parity-check%% should report zero errors so everything functions correctly. + +

What to do if you encounter %%parity|parity%% errors

+ +If your %%parity check|parity-check%% reveals errors: + +1. **调查问题:** 首先检查%%SMART报告|smart-report%%,它提供了关于您驱动器健康的详细信息。寻找任何磁盘或连接问题的迹象。 +2. **从我们的论坛寻求帮助:** 如果您无法自行解决问题,请考虑在 Unraid 论坛上寻求建议。社区可以根据他们的经验提供宝贵的见解和建议。 +3. **Run another check:** After you've addressed any hardware issues, running another %%parity check|parity-check%% is a good idea to ensure everything is back in order. + +:::info[Rebuild 时间] +Remember that %%parity checks|parity-check%% can take several hours, depending on the size of your disks and the activity level of your system. For the best results, schedule these checks during times of low system usage. +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx new file mode 100644 index 0000000000..852bd5a699 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/array-check-read.mdx @@ -0,0 +1,38 @@ +在某些情况下,您应该执行%%读校验|read-check%%,以确保存储阵列的健康状况。此检查是必要的,特别是在**您的阵列没有分配任何校验设备**或**禁用的驱动器多于可用的校验驱动器**时。 + +在%%读校验|read-check%%过程中,阵列中每个磁盘的每个扇区都会被检查。其目的是验证所有数据是否可以访问并识别任何无法恢复的读错误。 + +
+ ![历史记录让您查看读取检查操作的统计数据](/img/History_button.PNG) +
+ +

为何读取检查很重要

+ +读校验对于监控磁盘健康至关重要,特别是在没有校验保护的配置中。如果磁盘在校验过程中遇到无法恢复的读错误,受影响的数据将无法恢复,这可能导致数据丢失。因此,关注这些校验的结果是很重要的,并且在报告错误时及时采取措施是必要的。 + +You can also review the history of %%read check|read-check%% operations in the Unraid interface, which helps you spot trends or recurring issues over time. + +

何时使用读取检查

+ +请在以下情形中考虑执行%%读取检查|read-check%%: + +- **未分配校验设备时:** 当阵列缺乏校验保护时。 +- **验证磁盘完整性:** 在不进行任何修正的情况下确认每个磁盘的完整性。 +- **解决硬件问题后:** 在修复硬件问题后确保所有磁盘健康。 + +

如果发现错误该怎么办

+ +如果您的%%读取检查|read-check%%报告错误,请按以下步骤操作: + +1. **查看SMART报告:** 检查受影响磁盘的%%SMART报告|smart-report%%以了解其健康状态。 +2. **检查连接:** 确保物理连接和电缆是安全的。 +3. **考虑更换:** 如果磁盘显示持久错误,请考虑更换它。 +4. **备份关键数据:** 尽快将错误报告的磁盘上的重要数据转移,以防止数据丢失。 + +:::warning +没有校验保护,任何不可恢复的读取错误都将导致受影响文件或扇区的永久数据丢失。 +::: + +:::tip +为了维护磁盘的健康,尤其是在阵列没有奇偶保护的情况下,建议定期安排**读取检查|read-check**。这种积极的措施有助于您及早发现潜在问题,以保护您的数据。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx new file mode 100644 index 0000000000..cff77bb48d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx @@ -0,0 +1,19 @@ +**平衡**操作在您的%%BTRFS|btrfs%%池中重新分配数据和元数据块。该过程有助于释放空间,解决分配问题,并可以修复“设备上没有剩余空间”错误,即使空间似乎可用。 + +

何时运行平衡

+ +- 当您遇到“设备上无可用空间”错误,但仍有空闲空间时。 +- 在池中添加或移除驱动器后。 +- 优化空间使用并提升性能。 + +

如何运行平衡

+ +1. **访问池**:在 %%WebGUI|web-gui%% 中,点击“主”选项卡上的池,然后选择 **平衡**。 +2. **添加参数(可选)**:可选地,添加高级使用参数(有关详细信息,请参考 Unraid 帮助)。 +3. **启动过程**:点击 **开始** 以开始过程。 + +:::note\[Timing] + +平衡操作可能需要几分钟到几小时,具体取决于池的大小和数据量。 + +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx new file mode 100644 index 0000000000..b73f445545 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx @@ -0,0 +1,23 @@ +**Scrub** 操作读取所有数据和元数据,检查校验和的完整性,并利用可用的冗余副本修复任何损坏的块。Scrubbing 有助于识别并修复被称为“位腐蚀”的静默数据损坏问题,防止其成为重大问题。 + +

何时运行清洗

+ +- 作为常规维护的一部分(请参阅下面的推荐计划)。 +- 在不正常关机后或如果您怀疑有损坏时。 +- 在高使用率池中更频繁地运行。 + +

推荐计划

+ +- 高使用率池: **每周一次** +- 所有其他池: **每月一次** + +

如何运行清洗

+ +1. **访问池**:在 %%WebGUI|web-gui%% 中,点击“主”选项卡上的池,然后选择 **清洗**。 +2. **启动过程**:点击 **开始** 以启动过程。 + +:::note\[Timing] + +擦洗操作通常比完全磁盘扫描快,因为它们只会检查已分配的数据。根据池大小和使用情况,这可能需要几分钟到几小时。 + +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx new file mode 100644 index 0000000000..f491f87d72 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx @@ -0,0 +1,5 @@ +%%BTRFS|btrfs%% 提供灵活的 %%RAID|raid%% 支持,%%checksums|checksum%% 确保数据完整性,并在池中有效管理不同大小的驱动器。它是%%cache pools|cache-pool%% 的默认文件系统,并支持单设备和多设备配置。 + +- **数据保护:** 支持%%RAID 0|raid0%%/%%1|raid1%%/%%10|raid10%%/%%5|raid5%%/%%6|raid6%% (注意%%RAID 5|raid5%%/%%6|raid6%% 仍然是实验性的)。 +- **性能:** 良好,具有扩展和收缩的灵活性。 +- **最适合:** %%Cache pools|cache-pool%%,尤其是在你计划混合使用SSD和HDD或需要简单扩展时。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx new file mode 100644 index 0000000000..fcfc9f897f --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx @@ -0,0 +1,5 @@ +**%%XFS|xfs%%** 是 Unraid 中 %%array|array%% 驱动器的默认文件系统。它以其稳健性和在意外关机或崩溃后恢复损坏文件系统的能力而闻名。每个用 %%XFS|xfs%% 格式化的驱动器都作为一个独立的文件系统运行,这使得在任何 Linux 系统上的数据恢复都很简单。 + +- **数据保护:** 没有内建冗余;依赖 Unraid 的 %%parity|parity%% 进行保护。 +- \*\*性能:\*\*一致且可靠。 +- \*\*最适合:\*\*特别是当稳定性和数据恢复易用性优先时的%%Array|array%%驱动器。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx new file mode 100644 index 0000000000..355e0b832f --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx @@ -0,0 +1,7 @@ +%%ZFS|zfs%% 是一个现代文件系统,具备高级功能,例如用于检测 %%bit rot|bit-rot%% 的 %%checksums|checksum%%、用于备份的 %%snapshots|snapshot%%,以及本地 %%RAID|raid%% 支持选项如 %%RAIDZ1|raidz1%%/%%RAIDZ2|raidz2%%/%%RAIDZ3|raidz3%% 和镜像。%%ZFS|zfs%% 可以用于 Unraid 6.12 及更高版本中的单设备和多设备池。 + +- \*\*数据保护:\*\*支持各种%%RAID|raid%%级别以实现冗余。 +- \*\*性能:\*\*尤其是对多设备池来说表现优异。 +- **最佳用途:** 高性能环境、%%虚拟机|vm%%、Docker 或需要高级功能(如 %%snapshots|snapshot%%)时。 + +深入了解%%ZFS|zfs%% 功能、配置和最佳实践,请查看我们专门的 [ZFS存储](../../../advanced-configurations/optimize-storage/zfs-storage.mdx) 部分。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx new file mode 100644 index 0000000000..64487868a6 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-btrfs.mdx @@ -0,0 +1,10 @@ +通过命令行检查 %%BTRFS|btrfs%% 文件系统: + +- 要执行 %%scrub|清除%%(该过程自动检查和修复许多错误),请在 **正常模式** 下启动 %%array|阵列%% 并运行:`btrfs scrub start /mnt/diskX` +- 如需进行只读检查,请在 **%%Maintenance Mode|维护模式%%** 下启动 %%array|阵列%% 并运行:`btrfs check --readonly /dev/mdXp1` +- 替换 `X` 为磁盘编号。 +- 对于不在 %%array|阵列%% 内的磁盘:`btrfs check --readonly /dev/sdX1` + +:::warning +Running this command on an %%array|array%% disk outside of **%%Maintenance Mode|maintenance-mode%%** will invalidate %%parity|parity%%. +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx new file mode 100644 index 0000000000..100fcb4e95 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-xfs.mdx @@ -0,0 +1,12 @@ +通过命令行检查 %%XFS|xfs%% 文件系统: + +- 在**维护模式**下启动 %%array|array%%。 +- 运行以下命令:`xfs_repair -v /dev/mdXp1` +- 将 `X` 替换为磁盘编号(例如 `/dev/md1p1`)。 +- 对于加密的 %%XFS|xfs%%,使用 `/dev/mapper/mdXp1`。 +- 对于不在 %%array|array%% 的驱动器: `xfs_repair -v /dev/sdX1` +- 确保您使用了正确的设备标识符。 + +:::warning +Running this command on an %%array|array%% disk outside of **%%Maintenance Mode|maintenance-mode%%** will invalidate %%parity|parity%%. +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx new file mode 100644 index 0000000000..be05ddaf59 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-check-cli-zfs.mdx @@ -0,0 +1,25 @@ +通过命令行检查 %%ZFS|zfs%% 文件系统: + +

推荐方法

+ +%%ZFS|zfs%% 使用 **scrubbing** 替代传统文件系统检查(如 `fsck`)。 %%scrub|scrub%% 会检查池中的所有数据以验证校验和,并在冗余配置中自动修复任何发现的损坏。 + +- 在 **正常模式** 下启动 %%array|array%% 并运行:`zpool scrub poolname` + - 将 `poolname` 替换为您的实际 %%ZFS|zfs%% 池名。 + +

检查池状态

+要查看当前健康状况和进行中的 %%scrub|scrub%% 进度,请使用命令:`zpool status -v poolname` + +此命令显示有关池健康、任何错误和 %%scrub|scrub%% 进度的详细信息。 + +

其他 %%ZFS|zfs%% 命令

+ +- 暂停 %%scrub|scrub%%:`zpool scrub -p poolname` +- 停止 %%scrub|scrub%%:`zpool scrub -s poolname` +- 列出所有池:`zpool list` + +:::info +%%ZFS|zfs%% 不需要也不支持传统的 `fsck` 实用程序。 %%ZFS|zfs%% 的事务性质意味着它会从一个一致的状态原子性地移动到另一个状态,使得清除成为首选的完整性检查方法。 +::: + +有关 %%ZFS|zfs%% 文件系统的全面指南,请查看专用的 [ZFS 存储部分](../../../advanced-configurations/optimize-storage/zfs-storage.mdx)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx new file mode 100644 index 0000000000..fe83109550 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-btrfs.mdx @@ -0,0 +1,12 @@ +- 要执行 %%scrub|scrub%%(会自动检测和修复许多错误),请以 **正常模式** 启动 %%array|array%% 并运行:`btrfs scrub start /mnt/diskX`。 +- 若需完全修复,请在**维护模式**中启动%%array|array%%并运行:`btrfs check --repair /dev/mdXp1`。仅在[论坛](https://forums.unraid.net/)或文档建议时使用`--repair`,因为有时可能会导致其他问题。 + +:::caution[Use `--repair` 使用需谨慎] +“--repair”选项如果使用不当可能导致数据丢失或加剧损坏。请仅在以下情况下使用: + +- 您已为您的特定错误咨询过 [Unraid 论坛](https://forums.unraid.net/) +- 您已备份了近期的数据 +- 您了解所涉及的风险 + +对于大多数 %%BTRFS|btrfs%% 问题,请先尝试运行 `scrub`(这是更安全的)或在尝试修复之前寻求专家建议。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx new file mode 100644 index 0000000000..b66aadd22b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-xfs.mdx @@ -0,0 +1,9 @@ +- 在**维护模式**下启动 %%array|array%%。 +- 运行以下命令:`xfs_repair /dev/mdXp1`。将`X`替换为磁盘编号(例如,`/dev/md1p1`)。 +- 对于加密的 %%XFS|xfs%%,使用:`/dev/mapper/mdXp1`。 +- 如果系统提示使用`-L`,请重新运行命令如下:`xfs_repair -L /dev/mdXp1`。通常,这是完成修复所需且安全的操作。 +- 对于不属于%%array|array%%的驱动器:`xfs_repair /dev/sdX1`。 + +:::caution +Running this command on an %%array|array%% disk outside of **%%Maintenance Mode|maintenance-mode%%** will invalidate parity. +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx new file mode 100644 index 0000000000..843d4650ff --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/fs-repair-cli-zfs.mdx @@ -0,0 +1,18 @@ +%%ZFS|zfs%% 池提供内置的完整性检查和自我修复功能,通常不需要传统的文件系统修复。 + +

对于 %%ZFS|zfs%% 池

+ +- **检查池健康状况:** 使用命令 `zpool status poolname` 查看池的状态。 +- **运行清理:** 执行 `zpool scrub poolname`。该命令会自动检测并修复任何损坏。 +- **清除错误:** 排除任何潜在问题后,运行 `zpool clear poolname` 清除错误状态。 + +

对于 %%ZFS|zfs%% 阵列中的磁盘

+ +- **检查数据集健康状况:** 使用 `zfs list -o name,health` 查看数据集的健康状况。 +- **运行 scrub:** 您也可以为属于特定池的任何磁盘运行 `zpool scrub poolname`。 + +%%ZFS|zfs%% 在可用冗余时(例如镜像或 %%RAIDZ1|raidz1%% / %%RAIDZ2|raidz2%% / %%RAIDZ3|raidz3%% 配置下)自动识别并修复数据损坏。与传统文件系统不同,%%ZFS|zfs%% 通常不需要手动修复命令,因为它会通过校验和来持续监控数据完整性。 + +:::tip +有关 %%ZFS|zfs%% 的管理、故障排除和高级修复方案的全面理解,请参考专门的 [ZFS 存储页面](../../../advanced-configurations/optimize-storage/zfs-storage.mdx) 以获取详细指南和最佳实践。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx new file mode 100644 index 0000000000..6ade88a331 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx @@ -0,0 +1,12 @@ +:::info[Common 用例] +在维护后或添加新的缓存设备以提高性能时将文件移回%%cache pool|cache-pool%%。 +::: + +要从 %%array|array%% 移动文件到一个存储池: + +1. **禁用 Docker 和 %%VM|vm%% 服务**: 前往**设置**并关闭 Docker 和 %%VM|vm%% 管理器以防止任何打开的文件干扰。 +2. **Set share storage and Mover action (array → cache)**: In the **Shares** tab, for each share you want to move (like `appdata` or `system`), set **Primary storage** to the destination %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. Set **Mover action** to **array → cache**. +3. **运行 %%Mover|mover%%**: 转到**主**选项卡并点击**立即移动**开始将文件从%%array|array%%移动到%%cache pool|cache-pool%%。 +4. **验证移动**: 在 %%Mover|mover%% 完成后,检查文件是否已经移动到%%cache pool|cache-pool%%。 +5. **重新启用 Docker 和 %%VM|vm%% 服务**: 移动完成后,在**设置**中重新打开 Docker 和 %%VM|vm%% 管理器。 +6. **(可选)将共享设置为仅使用 %%cache pool|cache-pool%%**: 如果希望共享的所有文件都保留在%%cache pool|cache-pool%%上,将**主存储**设置为您的%%cache pool|cache-pool%%,**次级存储**设置为**无**。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx new file mode 100644 index 0000000000..9f21350857 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-manual.mdx @@ -0,0 +1,8 @@ +1. 如上所述**禁用 Docker 和 %%VM|vm%% 服务**。 +2. 使用 `rsync` 或 `mv` 命令在挂载点之间传输文件(例如,`/mnt/pool1/share` 到 `/mnt/pool2/share`)。 +3. 在从原始存储池中删除文件之前,请核实这些文件。 +4. 重新启用 Docker 和 %%VM|vm%% 服务。 + +:::caution +始终检查文件路径并使用正确的共享名称以防止数据丢失。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx new file mode 100644 index 0000000000..028b039a24 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx @@ -0,0 +1,16 @@ +1. **禁用 Docker 和 %%VM|vm%% 服务**: 进入**设置**并关闭 Docker 和 %%VM|vm%% 管理器以避免打开的文件。 +2. **从 pool1 到 %%array|array%% 移动文件(cache → array)**: + - 进入**共享**选项卡。对于每个当前位于pool1上的共享,将**主存储**设置为pool1,并将**备用存储**设置为%%array|array%%。 + - 将 **Mover操作** 设置为 **缓存 → 阵列**。 + - 在**主**选项卡中,点击**立即移动**以运行%%Mover|mover%%。等待其完成。 +3. **将文件从 %%array|array%% 移动到 pool2(array → cache)**: + - 在**Shares** 选项卡中,对于每个共享,设置 **Primary storage** 为 pool2,**Secondary storage** 为 %%array|array%%。 + - 将 **Mover 动作** 设置为 **array → cache**。 + - 在**主**选项卡中,再次点击**立即移动**。文件将从%%array|array%%移动到pool2。 +4. **重新启用 Docker 和 %%VM|vm%% 服务**(如有需要)。 + +:::note\[Timing] + +移动大型数据集可能需要数小时,这取决于文件大小和设备速度。 + +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx new file mode 100644 index 0000000000..63f2cc5730 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx @@ -0,0 +1,11 @@ +:::info[Common 用例] +在执行维护或升级之前,从 %%cache pool|cache-pool%% 移动文件到 %%array|array%% 确保您的数据安全。 +::: + +将文件从池移动到 %%array|array%%: + +1. **禁用 Docker 和 %%VM|vm%% 服务**:转到 **设置** 并关闭 Docker 和 %%VM|vm%% 管理器。这可防止文件被占用,使 %%Mover|mover%% 能够顺利传输所有内容。 +2. **设置共享存储和 Mover 操作(缓存 → 阵列)**:在 **共享** 选项卡中,为您想要移动的每个共享(如 `appdata` 或 `system`),将 **主存储** 设置为源 %%cache pool|cache-pool%%,将 **次存储** 设置为 %%array|array%%。将 **Mover 操作** 设置为 **缓存 → 阵列**。 +3. **运行 %%Mover|mover%%**: 转到**主**选项卡,然后单击**立即移动**将文件从 %%cache pool|cache-pool%% 转移到%%array|array%%。 +4. **验证移动**: 在 %%Mover|mover%% 完成后,点击**主**选项卡中缓存条目的文件夹图标,检查文件是否已经被移动。 +5. **重新启用 Docker 和 %%VM|vm%% 服务**: 当所有文件都在%%array|array%%上后,可以安全地重新开启这些服务。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx new file mode 100644 index 0000000000..7c1390e802 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-what.mdx @@ -0,0 +1 @@ +A %%parity swap|parity-swap%% is a special procedure in Unraid used when you need to replace a data disk with a disk that is larger than your current parity disk. The process moves your current parity disk to the data slot, then installs a new, larger disk as the new parity disk. This ensures your array remains protected and allows for larger data drives in the future. diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx new file mode 100644 index 0000000000..6cffce4137 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/parity-swap-when.mdx @@ -0,0 +1 @@ +在替换数据盘大于您当前对等盘时,使用 %%parity swap|parity-swap%%。如果新数据盘与您的对等盘大小相同或更小,则不需要这样做。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx new file mode 100644 index 0000000000..562abfd7b4 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-multi-device-mode.mdx @@ -0,0 +1,5 @@ +When you set up a %%cache pool|cache-pool%% with more than one device, it enters **multi-device mode**. Here's what you should know: + +- **数据保护:** 此模式使用 %%BTRFS|btrfs%% 或 %%ZFS|zfs%% 来跨设备镜像数据,帮助保护您的缓存数据免受驱动器故障的影响。即使丢失一个设备,您也不会丢失任何数据。 +- **混合搭配**:您可以添加或移除不同尺寸和类型的设备,包括混合使用SSD和HDD。 +- **容量管理:** 使用 [BTRFS 磁盘使用计算器](http://carfax.org.uk/btrfs-usage/) 来估算基于 %%RAID|raid%% 级别和您使用的设备大小将有多少空间。对于 %%ZFS|zfs%% 池,请使用 [ZFS 存储指南](../../../advanced-configurations/optimize-storage/zfs-storage.mdx) 获取配置详细信息。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx new file mode 100644 index 0000000000..43a3f94a34 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/pool-single-device-mode.mdx @@ -0,0 +1,10 @@ +在 **单设备模式** 中,您的 %%cache pool|缓存池%% 仅由一个设备组成。这意味着: + +- **没有冗余:** 如果设备出现故障,任何尚未传输到您的 %%array|array%% 的数据将会丢失。 +- **文件系统选项:** 您可以使用非 %%BTRFS|btrfs%% 如 %%XFS|xfs%% 或 %%ZFS|zfs%% 的文件系统。 + +:::important +如果您在单设备模式下选择非 %%BTRFS|btrfs%% 或非 %%ZFS|zfs%% 文件系统,并在之后决定向池中添加更多设备,则需要先将设备重新格式化为 %%BTRFS|btrfs%% 或 %%ZFS|zfs%%。因此,%%BTRFS|btrfs%% 是 %%cache pools|缓存池%% 的默认文件系统,即使只使用一个设备时也是如此。%%BTRFS|btrfs%% 和 %%ZFS|zfs%% 都支持随后添加设备以创建镜像池。有关文件系统选择和兼容性的更多信息,请参见[文件系统](../file-systems.mdx)。 +::: + +单设备模式很简单。您可以轻松添加或移除设备,但将无法使用诸如冗余或扩展等高级功能。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx new file mode 100644 index 0000000000..fde7eb4ebe --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-parity-preserve.mdx @@ -0,0 +1,76 @@ +The parity-preserve method allows you to remove a data disk from your Unraid array without losing your parity protection. This process requires careful preparation and some technical knowledge and is only recommended for advanced users. + +

这种方法的作用

+ +该方法有效地将您想移除的数据盘归零,从而保持奇偶校验完整。由于填满零的磁盘不会影响奇偶校验,因此在整个过程中您的阵列始终受到保护。 + +

何时使用该方法

+ +Use the %%parity|parity%%-preserve method to remove a data disk while keeping your %%parity|parity%% valid safely. This is especially useful to avoid a full %%parity|parity%% sync after removal. Please ensure that the disk you're removing is healthy. + +:::important\[Prerequisites] + +在您开始之前,请确保满足以下条件: + +- 此方法仅允许您一次移除一个磁盘。 +- 请注意,此过程没有来自 LimeTech 的官方支持,请谨慎操作。 + +::: + +:::warning +此方法会擦除所选磁盘上的所有数据。在继续之前,请确认所有重要数据已被转移。 +::: + +要使用保留校验的方法来移除磁盘: + +1. **将阵列启动为维护模式:** 点击要移除的磁盘,然后点击**擦除**按钮。这将擦除设备上的文件系统,同时保持奇偶校验完整,随后停止阵列。 +2. **启动阵列:** 在正常模式下启动阵列;将被擦除的磁盘不会挂载,但在此过程中的其余磁盘将在线。 +3. **记录阵列分配:** 请注意您的阵列分配,尤其是 %%parity drive|parity-drives%%,这是一个安全措施。 +4. **(可选)启用 Turbo Write:** 为了更快的清零速度,在**设置→磁盘设置**中启用重建写入("Turbo Write"),但前提是所有驱动器正常。 +5. **清零磁盘:** 使用以下替代命令行方法手动清零磁盘。 +6. **停止阵列:** 清除完成后,停止阵列。 +7. **重置阵列配置:** 重置阵列配置时保留所有当前分配。 +8. **取消分配磁盘:** 选择您希望移除的磁盘,并仔细检查所有分配,尤其是 %%parity drive|parity-drives%%。 +9. **确认奇偶校验状态:** 勾选“奇偶校验已有效”框。 +10. **再次启动阵列:** 启动阵列以完成移除过程。 +11. **(可选) 验证奇偶性:** 您可以在之后运行一个矫正 %%parity check|parity-check%% 以确保奇偶性的完整性。 + +
+ **清零磁盘的替代命令行方法** + + 如果您熟悉使用 Linux 命令行,可以使用以下说明手动清零您的磁盘。确保选择与您的 Unraid 版本相对应的命令。 + + 由于清零磁盘可能需要几个小时,建议使用类似 [Tmux 终端管理器 TTM 插件](https://forums.unraid.net/topic/183427/plugin-tmux-terminal-manager-ttm/) 的工具来输入命令,并确保会话保持活动状态。 + + **适用于 Unraid 6.12 或更高版本:** + + 1. 首先,卸载磁盘: + ```bash + umount /mnt/diskX + ``` + 2. 使用以下命令将磁盘清零: + ```bash + dd bs=1M if=/dev/zero of=/dev/mdXp1 status=progress + ``` + + **适用于 Unraid 6.11 及更早版本:** + + 1. 开始卸载磁盘: + ```bash + umount /mnt/diskX + ``` + 2. 然后使用此命令清零磁盘: + ```bash + dd bs=1M if=/dev/zero of=/dev/mdX status=progress + ``` + + :::note + 记得将 `X` 替换为您正在移除的数据磁盘的具体编号。 + ::: + + :::caution + 在执行这些命令之前,请仔细检查驱动器编号,以避免不小心擦除错误磁盘上的数据。 + ::: + + 别犹豫,随时访问 [Unraid 论坛](https://forums.unraid.net/)。在那里,您可以找到有用的资源和社区支持。 +
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx new file mode 100644 index 0000000000..07ca6ba2b7 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-data-disk-standard.mdx @@ -0,0 +1,13 @@ +这种方法适合那些寻找简单方法来移除数据磁盘的用户。 + +1. **停止阵列:** 请首先停止阵列以安全地移除硬盘。 +2. **(可选)记录您的硬盘分配:** 考虑截屏保存当前从主选项卡的硬盘分配情况。 +3. **重置阵列配置:** 请使用 [重置阵列配置](#reset-the-array-configuration) 过程。确保选择保留所有当前分配的选项。 +4. **取消分配磁盘:** 识别并取消分配您希望移除的磁盘。 +5. **重新启动阵列:** 在取消分配磁盘之后,再次启动阵列,但不要勾选"奇偶校验有效"框。 + +一旦您启动阵列,如果分配了 %%parity|校验%% 硬盘,将会启动 %%parity|校验%% 同步。请记住,在同步完成之前,阵列将面临数据丢失风险。 + +:::tip +在移除前,把任何重要数据从磁盘上移开。%%parity|parity%%同步过程可能需要几个小时,这取决于磁盘大小和系统活动。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx new file mode 100644 index 0000000000..905c453838 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx @@ -0,0 +1,49 @@ +如果您对命令行感到满意,使用此方法可以让您有更多的控制权,并且当 WebGUI 选项不可用时可能非常有用。有关使用命令行接口的更多信息,请参阅[命令行接口](../../../system-administration/advanced-tools/command-line-interface.mdx)。 + +:::note[Before 您开始] +- 确保您的池的 %%RAID|raid%% 配置支持设备移除;在 2 设备的 %%RAID 1|raid1%% 池中,必须先将其更改为单一配置以便移除设备。 +- 检查剩余设备是否有足够的空间容纳您的数据。 +::: + +通过命令行移除磁盘: + +1. **打开终端会话**:确保 %%array|array%% 正在运行,并打开您的命令行接口。 + +2. **移除设备**:输入以下命令,将 `X` 替换为要移除的驱动器对应的字母(如主选项卡所示): + + ```bash + btrfs device remove /dev/sdX1 /mnt/cache + ``` + + - 对于加密设备,使用:`/dev/mapper/sdX1`。 + - 对于 NVMe 设备,使用:`nvmeXn1p1`。 + +3. **等待完成**:当您看到光标返回时,设备将被移除。 + +4. **让 Unraid "遗忘" 已删除的成员**: + - 停止%%array|array%%。 + - 取消分配所有池设备。 + - 启动 %%array|array%% (Unraid 将清除池配置)。 + - 如果任何 Docker/%%VM|vm%% 服务使用此池,请在启动 %%array|array%% 之前禁用它们,以防 Unraid 在其他地方重新创建映像。 + +5. **重新分配设备**:再次停止 %%array|array%%,重新分配除已移除设备外的所有剩余池成员,随后启动 %%array|array%%。 + +**移除多个设备**: + +您可以在一个命令中进行: + +```bash +btrfs device remove /dev/sdX1 /dev/sdY1 /mnt/cache +``` + +不过,请记住移除仍然是一个一个进行的。 + +:::note\[Timing] + +与 %%WebGUI|web-gui%% 方法相似,移除设备和再平衡可能需要几个小时,取决于数据量和设备速度。 + +::: + +:::important +如果在池中只剩下一个设备,您将需要将 %%RAID|raid%% 配置文件转换为 **单个** 以确保一切正常工作。有关进一步说明,请参考[将池RAID级别切换为单个](#changing-pool-raid-levels)部分。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx new file mode 100644 index 0000000000..ed473438a2 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx @@ -0,0 +1,18 @@ +:::note[Before 您开始] +- 只能通过GUI一次移除一个驱动器。 +- 确保您的池使用冗余`RAID`配置(例如,数据和元数据使用`RAID 1`)。 +- 要检查游泳池的 %%RAID|raid%% 级别,请导航到主选项卡并点击游泳池。向下滚动到平衡状态部分(对于 %%BTRFS|btrfs%%) 或 ZFS 池状态(对于 %%ZFS|zfs%%)。 +::: + +要通过 %%WebGUI|web-gui%% 删除磁盘: + +1. **停止 %%array|array%%**:前往 **主** 选项卡,找到停止 %%array|array%% 的选项。 +2. **取消分配池驱动器**:在 **主** 选项卡中找到要移除的驱动器并取消分配。 +3. **启动 %%array|array%%**:重启 %%array|array%% 以应用更改。 +4. **验证移除**:点击 **主** 选项卡中的第一个池设备,然后查看 **均衡状态**(对此使用 %%BTRFS|btrfs%%)或 **zpool 状态**(对此使用 %%ZFS|zfs%%),以确认设备已被正确移除。 + +:::note\[Timing] + +请记住,根据数据量和设备速度,删除驱动器和重新平衡池可能需要几个小时。 + +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx new file mode 100644 index 0000000000..e3103a0436 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-611.mdx @@ -0,0 +1,3 @@ +1. 将共享的 **使用缓存** 设置为 *优先*。 +2. **%%Mover|mover%%** 将根据您的日程自动运行以移动文件,手动运行是可选的。 +3. 文件移动后,如果需要,可以将 **使用缓存** 更改为 *否*。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx new file mode 100644 index 0000000000..e0498baf15 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-array-to-cache-612.mdx @@ -0,0 +1,3 @@ +1. 在共享设置中,将 **主要存储** 设置为 *缓存*,**次要存储** 设置为 *数组*。 +2. 将 **Mover 操作** 设置为 *数组 -> 缓存*。 +3. **%%Mover|mover%%** 将依据您的日程自动运行以移动文件,并可选择手动运行。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx new file mode 100644 index 0000000000..2ccc54f51f --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-611.mdx @@ -0,0 +1,3 @@ +1. 更改共享的 **使用缓存** 设置为 *是*。 +2. **%%Mover|mover%%** 会根据您的日程安排自动传输文件。手动运行是可选的。 +3. 文件移动后,如果需要,可以将 **使用缓存** 设置改为 *仅限*。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx new file mode 100644 index 0000000000..2562c528ec --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-cache-to-array-612.mdx @@ -0,0 +1,3 @@ +1. 在共享设置中,将 **主要存储** 设置为 *缓存*,**次要存储** 设置为 *数组*。 +2. 将 **Mover 操作** 设置为 *缓存 -> 数组*。 +3. **%%Mover|mover%%** 根据您的计划自动运行以传输文件。可以手动运行 %%Mover|mover%%,但没有必要。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx new file mode 100644 index 0000000000..c79c386ae9 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-611.mdx @@ -0,0 +1,12 @@ +Unraid 使用 **%%Mover|mover%%** 管理文件在 %%cache|cache%% 和 %%array|array%% 之间的位置,由每个共享的 **新文件使用缓存** 设置进行控制: + +- **是:** 新文件先存入 %%cache|cache%% (若空间允许),否则存入 %%array|array%%。%%Mover|mover%% 将文件从 %%cache|cache%% 移动至 %%array|array%%。 +- **否:** 新文件直接存入 %%array|array%%。%%Mover|mover%% 对此份额不采取任何行动。 +- **仅限:** 新文件仅写入 %%cache|cache%%。如果空间不足,写入会失败。%%Mover|mover%% 不会将文件从 %%array|array%% 移动到 %%cache|cache%%。 +- **偏好:** 新文件先存入 %%cache|cache%% (若空间允许),否则存入 %%array|array%%。%%Mover|mover%% 尝试从 %%array|array%% 将文件移回 %%cache|cache%%。 + +该设置是 `appdata` 和 `system` 共享的默认设置,以提高 Docker 和 VM 性能。 + +:::note +从 Unraid 6.9 开始,可以创建和使用多个 %%pools|cache-pool%% 作为 %%cache|cache%%。无论命名如何,任何这些 %%pools|cache-pool%% 都可以作为 %%cache|cache%% 工作。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx new file mode 100644 index 0000000000..108e0604d2 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/shares-primary-storage-612.mdx @@ -0,0 +1,23 @@ +“**主存储**”设置确定新的共享文件的初始写入位置——这可以是\*\*%%cache|缓存%%**、**%%array|阵列%%**或任何命名的**%%pool|缓存池%%**。 如果主存储低于**最小空闲空间\*\*阈值,“**次级存储**”设置指定新的文件和文件夹的备用位置。 + +**%%Mover|mover%%** 功能根据您的计划自动在主存储和次级存储之间转移文件,确保最佳性能和存储利用。 + +
+ ![主存储到次级存储](/img/primarytosecondarystorage.png) +
+ +:::note +如果您选择 %%array|阵列%% 作为主要或辅助存储设备,还必须配置其 **%%allocation method|分配方式%%**、**%%split level|分层级别%%** 以及任何 **%%included or excluded disks|包含或排除的磁盘%%**。这些设置不适用于 %%pools|缓存池%%。 +::: + +**主存储下拉:** + +- 每个共享都需要此设置。 +- 您必须选择主存储设备或 %%pool|cache-pool%%(默认是 **Cache**)。 +- 您可以选择任何命名的 %%pool|cache-pool%% 或 %%array|array%%。 + +**次级存储下拉:** + +- **无:** 未为共享设置次级存储(可选)。 +- 如果主存储是 %%pool|cache-pool%%,可用的选项有 **无**、**阵列** 和 **另一个池**。 +- 如果主要存储是 **阵列**,则 **无** 和任何符合条件的 %%pools|缓存池%% 可用。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx new file mode 100644 index 0000000000..c9770f522e --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-device-limit.mdx @@ -0,0 +1,17 @@ +**消息:** +`设备过多。 请考虑升级您的注册密钥。` + +![设备限制错误](/img/Toomanydevices.png) + +连接存储的规则仅在启动阵列之前适用。 启动阵列后,您可以添加更多存储,包括用于虚拟机的 USB 驱动器。 不过,请注意 Unraid 当前仅限制在 [**入门许可级别**](https://unraid.net/pricing)(最多 6 个设备)。 + +:::tip +最大限制适用于除启动USB外的所有设备。 +::: + +要解决此错误: + +1. 停止数组。 +2. 移除任何不必要的存储设备。 +3. 启动数组。 +4. 之后重新连接设备以供**未分配设备**使用。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx new file mode 100644 index 0000000000..8ebb101482 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-key-server.mdx @@ -0,0 +1,6 @@ +**消息:** +`无法联系密钥服务器` + +If you have a Trial license, you'll see a message indicating that you need to contact the Unraid license server to start your array. However, if you have a paid license, you can start the array without any extra steps. + +对于试用用户,服务器在首次启动时会尝试连接到许可证密钥服务器以检查您的许可证。如果无法在30秒内连接,阵列将不会启动。但别担心!每次您刷新或导航到 %%WebGUI|web-gui%%,它会再次快速尝试验证您的许可证。一旦成功验证,除非重启,否则服务器不需要再次检查。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx new file mode 100644 index 0000000000..9b942c4294 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-license-issues.mdx @@ -0,0 +1,23 @@ +**信息:**\ +`注册密钥无效或丢失。` + +![密钥丢失](/img/Invalidormissingkey.png) + +需要有效的注册密钥才能启动阵列。要购买或获取试用密钥: + +1. 转到 ***Tools → Registration***。 +2. 点击**获取试用密钥** 或 **购买密钥**。 +3. 通过返回到**注册**,在字段中粘贴并点按**安装密钥**按钮安装密钥。 + +:::note[Trial 试用与付费许可证] +- **试用许可证:** 提供30天的完整Unraid访问权限,与更高级别的许可证相同。你可以使用无限的存储设备,但你需要连接互联网以启动它。[在这里开始新的试用。](https://unraid.net/getting-started) +- **付费许可证:**这是您可以永久保留的!然而,您可以根据所选择的计划(**入门版**、**全面版**或**终身版**)设备数量会有限制。在激活后,您无需再连接到互联网。 +::: + +:::tip +如果您看到 "无效密钥" 错误,可能意味着您的试用已**过期**。要继续使用 Unraid 您可以 [在这里购买许可证](https://unraid.net/pricing)。 +::: + +:::caution[Blacklisted USB闪存设备] +如果您的服务器在线并且试用未结束,但您的 USB 闪存驱动器可能有一个无法注册密钥的 %%GUID|guid%%。这可能会发生在 %%GUID|guid%% 不唯一或已被他人注册的情况下。使用通过 USB 的 SD 卡读卡器也可能导致此问题,因为它通常具有通用 %%GUID|guid%%。 如果您的 USB 闪存驱动器被**黑名单禁止使用**,则它将无法再使用,您需要找到其他的设备来安装 Unraid 服务器操作系统。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx new file mode 100644 index 0000000000..162e40edbf --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-missing-disks.mdx @@ -0,0 +1,10 @@ +**信息:** +`磁盘过多错误或丢失!` + +![单一奇偶校验错误](/img/Toomanywrong.png) + +使用 **一个 %%parity drive|冗余盘%%**,您只能丢失 **一个** 磁盘。使用两个 %%parity drives|冗余盘%%,可以丢失 **两个** 磁盘,且仍能启动数组,依此类推。冗余可以帮助您,直到能更换丢失的磁盘。 + +**操作步骤:** +更换丢失的磁盘。在双冗余配置中,一次更换一个丢失的磁盘。 +如果无法恢复数据(或在双冗余设置中有超过 2 个磁盘故障),请转到 ***工具 → 新配置*** 执行新配置程序。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx new file mode 100644 index 0000000000..e68cb062c3 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/partials/troubleshoot-withdrawn-release.mdx @@ -0,0 +1,11 @@ +**消息:** `该 Unraid 版本已被撤回。` + +如果您看到此消息,说明您正在使用未授权用于正常使用的测试版或候选发布版的 Unraid。 + +要解决此问题: + +1. 打开 Unraid。 +2. 转到 ***Tools → Update OS***。 +3. 安装最新的稳定版本。 + +更新完成后,重启您的服务器以启动数组。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx new file mode 100644 index 0000000000..165e880dfb --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/manage-storage/shares.mdx @@ -0,0 +1,614 @@ +--- +sidebar_position: 1 +sidebar_label: 共享 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import SharesPrimaryStorage612 from './partials/shares-primary-storage-612.mdx'; +import SharesPrimaryStorage611 from './partials/shares-primary-storage-611.mdx'; +import SharesCacheToArray612 from './partials/shares-cache-to-array-612.mdx'; +import SharesCacheToArray611 from './partials/shares-cache-to-array-611.mdx'; +import SharesArrayToCache612 from './partials/shares-array-to-cache-612.mdx'; +import SharesArrayToCache611 from './partials/shares-array-to-cache-611.mdx'; + +# 共享 + +Unraid 的一个关键功能是共享的管理。共享是在您的 Unraid 服务器上可以通过网络访问的文件夹或驱动器。您可以在 Unraid 服务器上创建任意多的共享。这些共享可以被保护,并且其配置决定了数据如何在您的 %%array|array%% 或命名的 %%pool|cache-pool%% 驱动器中写入和分布。 + +Unraid 提供两种类型的共享,以优化您的数据管理: + +- [**用户共享**](#user-shares): 这些利用 **Linux FUSE** 并表示更大文件系统内的文件夹。 +- [**磁盘共享**](#disk-shares): 这些使用驱动器的[文件系统](./file-systems.mdx)共享整个磁盘。 + +
+ ![用户共享与磁盘共享](/img/usersharesvsdiskshares.png) +
+ +需记住,两种共享类型展示的是同一底层文件系统的不同视图;在 %%user share|user-share%% 可见的任何文件或文件夹将在其相应的物理驱动器的磁盘共享下也会可见。 + +当您启动 Docker 或 VM 管理器等服务时,Unraid 会自动创建一个[默认用户共享集](#default-shares),旨在支持常见插件、Docker 容器和**虚拟机 (VMs)**。根据需要,您可以方便地为个人数据创建额外的共享。 + +:::note +To manage your shares, simply navigate to the **Shares** tab in the WebGUI. Here, you can easily enable or disable shares through ***Settings → Global Share Settings***. By default, %%user shares|user-share%% are enabled, providing a straightforward starting point for your file organization. +::: + +--- + +## 用户共享 + +%%User shares|user-share%% provide an aggregated view of top-level folders with the same name across **%%cache|cache%%** and **array drives**. The share name corresponds to the folder name, creating a unified network-accessible view that spans multiple drives. It's important to note that while directories appear merged, individual files remain stored on a single drive. + +### 管理用户共享 + +您可以在**WebGUI**的“**共享**”标签中访问和管理%%用户共享|user-share%%。此界面允许您: + +- 查看所有现有共享 +- 创建新共享 +- 修改或删除现有共享 + +在驱动器上手动创建的任何顶层文件夹会自动识别为用户共享并分配默认属性。 + +### 文件系统结构 + +At the Linux level, %%User shares|user-share%% are accessible under `/mnt/user`, which combines files from both the %%array|array%% and %%pools|cache-pool%%. This logical view overlays the physical file system, meaning files are also visible through **Disk Shares** at the drive level. + +:::warning +已弃用的 `/mnt/user0` 挂载点(不包括 %%pool|cache-pool%% 文件)可能在未来的 Unraid 版本中删除。 +::: + +### 存储分配 + +The physical drive that stores a file is determined by share settings such as **%%Allocation Method|allocation-method%%**, **%%Included/Excluded Disks|included-or-excluded-disks%%**, and **%%Split Level|split-level%%**. Changes to these settings will affect only new files; existing files will remain untouched unless moved manually. + +:::caution\[Critical] + +**请勿混用用户共享和磁盘共享** + +切勿直接在 **user share** 和 **disk share** 之间复制或移动文件(例如,在 `/mnt/user/share` 和 `/mnt/disk1/share` 之间),特别是当文件夹名称相同时。这可能导致文件损坏或永久数据丢失。 + +有关安全文件管理实践和更多细节,请参见下方的[磁盘共享指南](#disk-share-guidelines)。 + +::: + +### 添加共享 + +在创建共享之前,请考虑如何使用它、您的性能需求、安全性以及文件应存储在哪里。 + +要添加共享: + +1. **开始过程:** 转到 **Shares** 标签并点击 **添加共享**。 + +2. **选择共享名称:** 为您的共享选择一个独特的名称,例如 `媒体` 或 `文档`。 + +:::important[Share 名称] +尽管网络共享 (%%SMB|samba%%) 不区分大小写(例如,`MEDIA` 与 `media` 同样),但 Linux 文件系统会。避免使用仅大小写不同的名称来防止问题。 +::: + +3. **可选设置:** + - **备注:** 写下简短描述以标识您的共享(例如,“家庭照片”)。 + - **Minimum Free Space:** 决定最小免费空间量(例如,`50GB` 用于大文件)。 (有关更多详细信息,请参见[Minimum free space](#minimum-free-space)) + +4. **选择存储位置:** + + - **主存储:** 选择共享的初始存储位置(例如,**%%cache|cache%%**、**%%array|array%%** 或特定 %%pool|cache-pool%%)。 + - **次级存储:** 设置一个溢出位置,可以在主存储已满时使用,也可以作为 %%Mover|mover%% 运行后的共享最终目的地。 + + (有关更多详细信息,请参见[主存储和次级存储](#primary-and-secondary-storage)) + +5. **设置数据规则:** + - **%%Allocation Method|allocation-method%%:** 选择数据存储方式 - 选项包括 high-water、fill-up 或 most-free。 (有关更多详细信息,请参见[Allocation method](#allocation-method).) + - **%%Split Level|split-level%%:** 确定文件夹应如何组织。(有关更多详细信息,请参见[Split level](#split-level).) + +6. **管理驱动器:** + + - **包含的磁盘:** 选择要包含的特定驱动器(例如,`disk1,disk2`)。 + - **排除的磁盘:** 指定任何您要排除的驱动器(比如老旧驱动器)。 + + (有关更多详细信息,请参见[包括或排除的磁盘](#included-or-excluded-disks)) + +:::tip +您可以配置**包含的**磁盘或**排除的**磁盘,但不能同时配置两者。 +::: + +7. **Mover 设置(如果需要)** + + - **Mover 动作:** 决定数据移动的方向(要么 *主 → 次*,要么 *次 → 主*)。 + + (有关更多详细信息,请参见[在缓存和阵列之间移动文件](#moving-files-between-cache-and-array)) + +8. **完成过程:** 点击 **添加共享** 完成您的新共享的设置。 + +:::important +默认情况下,新共享将不会通过网络共享。您必须在创建共享后配置[网络访问](../../system-administration/secure-your-server/security-fundamentals.mdx#managing-network-visibility-of-shares)。 +::: + +### 删除共享 + +:::important +为了防止任何潜在的数据丢失,包含数据的共享无法删除。因此,您应该先删除或重新定位共享内的所有内容。始终仔细检查以确认共享为空,然后再继续删除以确保安全。 +::: + +**包含数据的共享** + +对于包含数据的共享: + +1. **首先清空共享:** + - 使用内置的 **文件管理器** 可通过系统快捷方式(***工具 → 文件管理器***)访问,或点击右上角的 ![文件管理器](/img/filemanager.png) 图标。 + - 在 **Shares** 中找到您的共享并点击 **浏览** 图标。 + - 使用文件管理器删除或移动所有文件。 + +
+ 使用命令行(高级) + + 1. **打开终端:** 使用 **Web Terminal** (***工具 → 终端***) 或通过 %%SSH|ssh%% 连接。 + + 2. **删除文件:** + 运行此命令,将 `[share_name]` 替换为你的共享名称: + + ``` + rm -rf /mnt/user/[share_name]/* + ``` + + 3. **删除共享:** 按上述步骤删除空共享。 + + :::注意 + + - `rm -rf` 命令将永久删除文件。使用前请仔细检查。 + - 确保没有 Docker 或 VM 服务正在使用共享后再删除它。 + ::: +
+ +:::note[Alternative 方法] +如果您可以通过网络访问共享: + +- 使用 **Windows 资源管理器** (%%SMB|samba%%) 或 **macOS Finder** (%%AFP|AFP%%/%%SMB|samba%%) 连接到共享。 +- 手动删除文件,然后通过 **WebGUI** 删除共享。 +::: + +2. **删除共享:** + - 返回到 **Shares** 并点击现在空的共享。 + - 选中 **删除** 框并点击 **删除**。 + - 确认并点击 **完成**。 + +#### 删除一个空共享 + +1. 转到**Shares** 选项卡。 +2. 点击要删除的共享。 +3. 勾选 **Delete** 旁边的框。按钮将变为 **Delete**。 +4. 点击 **删除**。 +5. 确认删除并点击 **完成**。 + +--- + +## 共享设置 + +### 最小空闲空间 + +**Minimum Free Space** 设置与 **%%allocation method|allocation-method%%** 和 **%%split level|split-level%%** 结合使用,以确定新文件存储位置。此设置指定驱动器上必须保留的免费空间量,以使其有资格进行新文件写入。如果驱动器的免费空间低于此阈值,Unraid 将停止在该驱动器上放置新数据,前提是 **%%split level|split-level%%** 允许分裂到另一个磁盘。 + +
+ 工作原理 - 点击展开/收起 + + 在传输文件(例如 `file.eg`)时,Unraid 会根据可用设置选择磁盘,但无法预测文件的最终大小。如果所选磁盘在传输过程中空间不足,操作将失败并出现 "磁盘已满" 错误。为了防止这种情况,请将 **最小空闲空间** 设置为大于最大文件的值。这确保 Unraid 避免选择无法容纳整个文件的磁盘。 +
+ +

建议

+ +将此值设置为**最大文件的两倍**。例如: + +- 如果您最大的文件是 8GB,设置最小空闲空间为 16GB。 + +此缓冲区可解释文件大小差异并有助于防止传输失败。 + +

配置

+ +- 以 KB、MB、GB 或 TB 为单位输入值(例如,`50GB`)。 +- 新的 %%user shares|user-share%% 默认值为磁盘总容量的 10%。 + +:::warning +在使用*填满* %%allocation method|allocation-method%%时,总是配置**最小可用空间**。如果您不设置它,您可能会在写入操作期间遇到“磁盘满”错误。 +::: + +:::caution +对于 **%%cache pools|cache-pool%%**,有一个单独的**最小空闲空间**设置。您可以通过进入**主界面**选项卡并点击%%pool|cache-pool%%来访问它。确保将此值设置为大于您的最大文件,以避免过度填充,特别是对于配置为*是*或*首选*缓存模式的共享。 +::: + +

限制

+ +- Unraid 优先考虑 **%%split level|split-level%%** 规则而非免费空间设置。如果不允许分裂,文件可能仍会填满磁盘,而不考虑免费空间阈值。 +- 更新现有文件(例如,扩展备份文件)不会触发重新分配,随着时间的推移可能导致“磁盘已满”错误。 + +有关更详细的指导,请使用 **WebGUI** 中配置共享时的 **帮助** 图标。 + +--- + +## 主存储和次级存储 + +Unraid 的存储管理让您可以控制新文件的写入位置以及数据如何在 %%pools|cache-pool%%、%%cache|cache%% 和 %%array|array%% 之间移动。Unraid 6.12+ 和早期版本的选项和术语不同。 + + + + + + + + + + + +--- + +### 在缓存和数组之间移动文件 + +Unraid 提供了一种简单的方法来管理 **%%cache pools|cache-pool%%** 和 **%%array|array%%** 之间的文件放置,使您能够优化性能并有效管理数据。关键是根据您的首选数据流设置共享设置,并让 **%%Mover|mover%%** 根据其日程表自动处理文件传输。 + +:::tip[Scheduling the Mover] +您可以通过进入 **Settings → Scheduler → Mover Settings** 配置 [**%%Mover|mover%%** 日程表](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#scheduler)。在非高峰时段自动运行,有助于在 %%cache|cache%% 和 %%array|array%% 之间移动文件,而无需手动操作。 +::: + +#### 缓存到数组 + +*使用场景:* 将文件从高速 %%cache|cache%% 移到 %%array|array%% 以长期存储。 + + + + + + + + + + + +#### 数组到缓存 + +*使用场景:* 通过将文件移动到 %%cache|缓存%% 提升 Docker 容器和虚拟机的性能。 + + + + + + + + + + + +:::tip[Enabling 启用 Mover 日志记录以进行故障排查] +如果您遇到文件移动问题,可以通过 ***Settings → Scheduler → Mover Settings*** 页面启用 **Mover 日志记录**。这会记录每个移动的文件,并可在 ***Tools → System Log*** 中查看。 +::: + +:::caution[Critical 双向关键步骤] +- 确保您的 %%parity|parity%% 是有效的,然后将文件从 %%array|array%% 移动到 %%cache|cache%%。 +- 如果处理大型数据集,请通过日志监控 %%Mover|mover%% 活动。 +- 如果出现文件"卡住"的情况,请考虑暂时禁用 Docker 和虚拟机管理器,然后通过 ***主菜单 → 数组操作 → 移动*** 手动运行 %%Mover|mover%%。 +::: + +--- + +### 分配方法 + +当您创建新用户共享或在其中添加任何文件或文件夹时,系统需要决定将数据存储在哪里。通常,它会选择可用空间最多的数据磁盘。不过,您可以调整某些设置来改变这种决策。 + +您可以选择三种简单的选项来选择系统为您的用户共享分配存储的方式: + + + +

原理

+ + **高水位** 方法通过基于最大驱动器容量的一半的“切换点”逐步填充磁盘。这样可以平衡磁盘使用,同时保持相关文件在一起,并最大限度地减少驱动器的启动频率。 + +

示例:8TB,3TB 和 2TB 驱动器

+ + 1. **第一步:** 将 8TB 驱动器填满,直到剩余 4TB 空间(8TB 的一半)。 + 2. **第二步:** 填满 8TB/3TB 驱动器,直到剩余 2TB 空间。 + 3. **第三步:** 填满所有驱动器,直到剩余 1TB 空间。 + +

最佳用途:

+ + - 媒体服务器(例如 Plex) + - 情境,需要在更少的磁盘上保持文件以提高停转效率 + - 大小混合的数组 + + :::note + 高水位是默认方法,适合大多数用户。它减少了与“最空闲”相比的驱动器震荡。 + ::: +
+ + +

原理

+ + **最空闲** 方法为每个新文件选择空闲空间最多的磁盘。这可以最大化存储效率,但会增加驱动器震荡。 + +

性能影响

+ + - 频繁的磁盘切换使多个驱动器保持转动 + - 由于交叠的操作可能降低 %%parity|parity%% 写入速度 + +

最佳用途:

+ + - 高通量工作流(例如视频编辑) + - Temporary or %%cache|cache%%-like data + - 阵列中性能比节能更重要 + + :::tip + 结合 **%%split level|split-level%%** 设置,以便在频繁切换磁盘的情况下将相关文件分组。 + ::: +
+ + +

原理

+ + **Fill-up** 方法按数字顺序将文件写入磁盘,直到达到 **最小剩余空间** 阈值,然后转移到下一个磁盘。 + +

要求

+ + - 始终设置 **最小剩余空间**(例如 2x 最大文件大小) + - 配置 **分层级别** 控制文件分组 + +

最佳用途:

+ + - 静态数据归档 + - 喜欢手动管理磁盘的用户 + - 具有相同驱动器大小的阵列 + + :::caution + 未配置 **最小空闲空间** 时,当驱动器接近容量时将出现 "磁盘已满" 错误。 + ::: +
+
+ +--- + +### 分级水平 + +Unraid 中的 **Split Level** 设置有助于管理文件和文件夹在多个磁盘中的组织方式。它决定了文件夹结构在不同磁盘上可以深入的程度,同时保持某些文件在一起。%%split level|split-level%% 从 1 开始编号,其中顶层(主共享)视为第 1 级。 + + + +

行为

+ + Unraid 会在选定磁盘上创建所需的文件夹,而不考虑文件夹的深度。新文件和文件夹基于 %%allocation method|allocation-method%% 和可用空间进行放置,即使它们的父目录尚未存在于该磁盘上。 + +

用例

+ + 适用于目录结构不关键的一般数据共享,如下载或混合媒体库。允许文件放置和磁盘利用的最大灵活性。 +
+ + +

行为

+ + Unraid 仅在磁盘上不存在时创建一级子文件夹。对于更深的文件夹,新文件和文件夹会放在父目录所在的磁盘上。 + +

用例

+ + 非常适合媒体库(例如,电影/标题),在这种情况下,您希望特定子文件夹的所有文件(如电影或电视节目)保留在同一个磁盘上。 +
+ + +

行为

+ + 您可以指定 Unraid 将自动管理的目录级别数(N)。对于等于或高于级别 N 的文件夹,Unraid 可根据需要创建它们。对于更深的级别,新文件放在父目录所在的磁盘上。 + +

用例

+ + 适用于复杂的文件夹结构,如嵌套项目目录,您希望将相关内容超越顶层分组在一起。 +
+ + +

行为

+ + Unraid 仅在父目录已存在的磁盘上放置新文件或文件夹。不会自动创建新目录。 + +

用例

+ + 最适合希望完全手动控制文件放置的高级用户,或文件夹结构必须保持固定的归档数据。 +
+
+ +:::important +若 **Minimum Free Space**、**Split Level** 和 **%%Allocation Method|allocation-method%%** 之间存在冲突,则 **Split Level** 设置优先。这可能导致“空间不足”错误,即使其他驱动器有可用空间。 +::: + +--- + +### 包含或排除的磁盘 + +这些设置帮助您管理哪些驱动器可以保存您的共享文件。可以包含特定磁盘或排除某些磁盘 - 只是不要同时进行!如果您没有选择特定磁盘,***Settings → Global Share Settings*** 中允许的所有驱动器都将被使用。 + +Unraid 首先检查任何包含的磁盘,然后查看排除的磁盘以确定存储文件的位置。之后,它利用 %%split level|split-level%% 和 %%allocation method|allocation-method%% 选择合适的磁盘。 + +
+ ![磁盘选择逻辑](/img/diskselectionlogic.png) +
+ +:::important +%%included 和 excluded disks|included-or-excluded-disks%% 的设置仅影响可以保存新文件的位置。即使匹配您的共享名的文件夹上的任何现有文件仍然可以从不同磁盘读取。 +::: + + + +

行为

+ + Unraid 在决定为共享放置新文件时,只会考虑列出的磁盘。除列出的磁盘外,其他所有磁盘均被忽略,但已存在其他磁盘上的文件仍可读取。 + +

用例

+ + 如果您希望将共享限制在某些磁盘,例如将重要文件放在较新或更高容量的驱动器上,或将媒体库隔离到特定磁盘以获得性能或组织原因,请使用此设置。 +
+ + +

行为

+ + Unraid 会使用除此处列出的磁盘以外的所有符合条件的磁盘来为共享放置新文件。与已包含磁盘相同,已存在于已排除磁盘上的文件仍可供读取。 + +

用例

+ + 使用此设置可防止共享使用某些磁盘,例如排除旧驱动器、较慢的磁盘或保留给其他数据类型的驱动器。 +
+
+ +--- + +### 默认共享 + +当您使用 **Docker** 或 **虚拟机(VMs)** 的时候,Unraid 会自动创建一些默认共享。 + +:::important +这些共享仅在启动其相应的服务(Docker 或 VM 管理器)后创建。如果未见这些共享,请确保 Docker 和/或 VM 管理器已启用并运行。 +::: + +如果不想使用这些共享,可以删除它们,但我们通常建议保留它们以方便。这些共享有助于保持组织性,并在遇到问题时更易于获取支持。 + +以下是每个默认共享的快速概述: + +- `appdata`:这是您的 Docker 容器的所有工作文件的存储位置。每个 Docker 容器通常在此处都有自己的文件夹。 +- `system`:此共享包含您 Docker 应用程序的基本文件和您的虚拟机的 XML 模板。 +- `domains`:此共享专门用于存储您的虚拟机使用的虚拟磁盘映像 (vdisks)。 +- `isos`:这是用于存储您希望与虚拟机一起使用的 ISO 映像。 + +:::important +最好不要更改大多数这些默认共享的权限,因为这样可能导致 Docker 容器和 VM 的工作问题。建议更改权限的唯一共享是 `isos` 共享,因为该共享可以通过网络访问以添加用于虚拟机的新 ISO 文件。 +::: + +--- + +## 磁盘共享 + +磁盘共享只是您的 Unraid 系统中可以通过网络访问的单个驱动器或 %%pools|cache-pool%% 驱动器。默认情况下,这些共享是关闭的,但您可以通过 ***Settings → Global Share Settings*** 部分轻松启用它们。 + +为了确保安全,请务必适当地设置这些共享的[用户访问权限](../../system-administration/secure-your-server/user-management.mdx)。如果您的网络有多个用户访问,这一点尤为重要。 + +要启用磁盘共享: + +1. 导航到 **设置**。 +2. 点击 **全局共享设置**。 +3. 打开磁盘共享,使它们在您的网络中可见。 + +一旦启用,您将在 Unraid GUI 中 **Shares** 标签下的 **Disk Shares** 部分注意到磁盘共享。您的 %%array|array%% 中的每个驱动器都可以这样访问: + +- **个别驱动器:** 这些以 `/mnt/diskX` 形式出现,其中 X 是磁盘编号(例如,`disk1`,`disk2` 等)。 +- **成组驱动器:** 如果您有多个驱动器结合在一起,它们将显示为 `/mnt/pool-name`。最常见的 %%pools|cache-pool%% 叫做 `cache`,但您可以根据自己的喜好命名您的 %%pools|cache-pool%%。 + +:::important +The Unraid flash device, which stores your Unraid settings, is not treated as a disk share. If you want it to be accessible over the network, you can set it up as a share named 'flash'. This device is mounted at `/boot` in Linux. + +出于安全原因,最好将您的共享保持在*私有*模式下,仅授予可信用户访问权限。 +::: + +### 磁盘共享指南 + +:::danger[Important 提醒] +**切勿直接在用户共享和磁盘共享之间复制文件**,如果它们的文件夹名称相同,这可能导致文件被损坏或删除,进而永久丢失数据。 +::: + +**User shares** 和 **disk shares** 在界面中可能看起来不同,但可以指向磁盘上的相同文件。Linux 命令如 `cp` 或 `rsync` 无法总是区分,这可能意外导致文件覆盖或删除。 + +**安全复制提示** + +1. **坚持一种类型的共享:** + - 仅在 %%user shares|用户共享%% 或磁盘共享之间复制文件,而不要同时在两者之间。 + - *示例:* 将文件从一个用户共享复制到另一个用户共享: `cp /mnt/user/share1/file /mnt/user/share2/file` + +2. **安全使用外接驱动器:** + - 使用 **[Unassigned Devices plugin](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=don%27t%20be%20carefull!!!-,Unassigned%20Devices,-dlandon)** 连接外接驱动器以防止问题。 + - 从 `/mnt/disks/` 复制文件,而不是从主要的 %%array|阵列%% 或 %%cache|缓存%% 路径。 + +3. \*\*核对副本:\*\*在本地移动文件时,您可以使用 `rsync -c` 检查文件是否正确复制。 + +4. **不混用共享类型:** 避免使用同时混合 %%user shares|用户共享%% 和磁盘共享的路径,例如在同一命令中用 `/mnt/user/share/` 和 `/mnt/disk1/share/`。 + +--- + +## 从网络共享传输文件 + +有几种工具可用于将文件从 Windows 或 Linux 共享复制到您的 Unraid 服务器。为了保持简单和可靠,应首先使用内置的 Unraid 文件管理工具,然后探索第三方选项。 + +### 使用 Midnight Commander (内置) + +Unraid 包含 **Midnight Commander** (`mc`),一个基于文本的双窗格文件管理器。您可以通过 [web terminal](../../system-administration/advanced-tools/command-line-interface.mdx) 访问它。 + +1. **打开网页终端:** 您可以在 Unraid WebGUI 的右上角菜单中找到此选项。 +2. **启动 Midnight Commander:** + + ```bash + mc + ``` + + 此界面提供在本地共享和挂载的网络路径之间拖放导航。 +3. **挂载网络共享** (如果还未挂载): + + ```bash + mkdir /work + mount -t cifs //workstation/share /work -o username=youruser,password=yourpassword,iocharset=utf8 + ``` + + - 用适当的值替换 `workstation`、`share` 和 `youruser`。 + - `iocharset=utf8` 选项有助于保持国际文件名。 +4. **使用 MC 窗格** 在 `/work`(网络共享)和任何 `/mnt/user/` 或 `/mnt/diskX` 共享之间传输文件。 +5. **事后清理:** + + ```bash + umount /work + rmdir /work + ``` + +Midnight Commander 完全在内置系统中运行,无需额外安装。适合大多数传输需求,包括涉及 Unicode 文件名的情况,并在源和目标支持时保留文件属性。 + +### 使用 Krusader + +如果您更喜欢图形用户界面,您可以使用 Docker 容器如 [Krusader](https://unraid.net/community/apps?q=krusader#r:~:text=batch%20renaming%2C%20etc.-,Krusader,-Productivity%2C%20Tools) 作为第三方解决方案。 + +1. **安装 Krusader:** + - 导航到 **应用** 选项卡(社区应用程序)。 + - 搜索并安装 **Krusader** Docker 容器。 +2. **启动 Krusader:** 启动容器,并从 **Docker** 选项卡访问其 WebUI。 +3. **在 Krusader 中连接到远程共享**,并使用拖放或复制粘贴在网络共享和您的 Unraid %%array|阵列%% 之间传输文件。 + +:::info +其他流行的文件管理器容器包括 [**Double Commander**](https://unraid.net/community/apps?q=double+commander#r:~:text=of%201%20App-,doublecommander,-Tools%20/%20Utilities%2C) 和 [**CloudCommander**](https://unraid.net/community/apps?q=cloudcommander#r:~:text=of%201%20App-,CloudCommander,-Tools%20/%20Utilities%2C),通过社区应用程序提供。 +::: + +### 命令行方法 + +对于高级用户或使用自动化的用户,您还可以使用命令行传输方法。 + +
+ 点击展开命令行说明 + + 1. **打开终端**(Web Terminal 或 %%SSH|ssh%% 以 `root` 身份)。 + + 2. **创建并挂载网络共享:** + + ```bash + mkdir /work + mount -t cifs //workstation/share /work -o username=youruser,password=yourpassword,iocharset=utf8 + ``` + + 3. **复制文件:** + - 您可以使用 `cp`: + + ```bash + cp -r /work/* /mnt/disk1 + ``` + + - 或者,使用 `rsync` 以获取详细进度: + + ```bash + rsync -av --progress /work/ /mnt/disk1/ + ``` + + 4. **卸载并删除临时目录:** + + ```bash + umount /work + rmdir /work + ``` +
+ +:::caution +在传输带有特殊或国际字符的文件时,请始终使用`iocharset=utf8`选项挂载共享。否则可能导致其他平台上的文件名不正确或文件不可读。 + +Also, if you copy files as `root` via terminal, they may have restrictive permissions. If this occurs, use the **New Permissions** tool from the **Tools** menu in the WebGUI or the **Docker Safe New Perms** if you're dealing with Docker-involved shares to reset permissions, ensuring all users have network access. +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json new file mode 100644 index 0000000000..90f8c15b88 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "运行 Docker 容器", + "position": 2, + "link": { + "type": "generated-index" + } +} \ No newline at end of file diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx new file mode 100644 index 0000000000..ef0c3c77c0 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx @@ -0,0 +1,144 @@ +--- +sidebar_position: 2 +sidebar_label: 社区应用程序 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CommunityAppsInstalling from './partials/community-apps-installing.mdx'; +import CommunityAppsRemoving from './partials/community-apps-removing.mdx'; +import CommunityAppsReinstalling from './partials/community-apps-reinstalling.mdx'; + +# 社区应用程序 + +社区应用程序提供了经过整理的目录,其中有 2000 多个免费的 Docker 容器和插件,由 Unraid 社区维护。每个容器或插件都可以让您的服务器承担新的角色,例如运行媒体服务器、动态 DNS 客户端或备份解决方案。 + +- **Docker 容器** 是包含运行应用程序所需一切的轻量级软件包,使其与您其余的 %%array|array%% 和 %%cache pool|cache-pool%% 隔离。了解更多关于 [array 配置](../manage-storage/array-configuration.mdx) 和 [缓存池](../manage-storage/cache-pools.mdx)。 +- **插件**增强了 Unraid 操作系统本身。有关插件的更多信息,请访问 [插件](../customize-your-experience/plugins.mdx) 页面。 + +:::caution +Lime Technology 并不提供或者直接支持社区应用程序(Community Applications)。社区应用程序团队提供基本的审核和管理,但在安装每个应用程序之前,请仔细查看相关文档和支持资源。 +::: + +## 社区应用程序的工作原理 + +社区应用程序插件将在 Unraid %%WebGUI|web-gui%% 中新增一个 **应用**(Apps) 标签,提供类似应用商店的界面。您可以按类别或关键字浏览、搜索和过滤应用。每个列表会清楚地指示它是 Docker 容器还是插件。 + +列表包括以下标签: + +- **测试版:** 应用程序正在积极开发中,可能有错误。 +- **已安装:** 应用程序当前已安装在您的服务器上。 +- **已更新:** 有新的版本可用。 +- **每月CA聚焦:** 由管理团队推荐的高质量或热门应用程序。 + +点击一个应用可以查看更多详细信息、支持链接和安装选项。 + +--- + +## 安装插件 + +要安装社区应用程序插件: + +1. 打开%%WebGUI|WebGUI%%并导航到**插件**选项卡。 +2. 单击**安装**。 + +
+ ![社区应用程序安装](/img/ca_installation.png) +
+ +3. 安装完成后,刷新页面。页面将自动打开 **应用**(Apps) 标签,并向您介绍社区应用程序。 + +:::tip +在安装前,建议备份您的闪存盘以保护配置。查看 [保护您的闪存盘](../../system-administration/secure-your-server/secure-your-flash-drive.mdx) 以获取备份指南。 +::: + +--- + +## 管理应用程序 + + + + + + + + + + + + + + + +## 应用程序支持 + +如果您使用 Docker 容器和插件,您会发现大多数都会提供专门的支持资源来帮助您。可以通过多种简单方式访问这些支持选项: + +- **应用标签**:点击 **应用** 标签,然后过滤到 **已安装的应用**。从那里找到应用程序并选择 **支持**。 + +- **控制台或Docker选项卡**:导航到**控制台**或**Docker**选项卡,点击您使用的容器图标,然后选择**支持**。 + +- **插件**选项卡:在**插件**选项卡中,每个插件在其摘要中均有**支持线程**链接,可快速访问。 + +:::tip[Support 偏好设置] +访问支持选项时,请查找以下下拉选项: + +- **Discord**: 如果有的话,Discord 通常是维护者更喜欢的支持场所,而不是论坛。 +- **项目**:关于应用程序本身的问题最好通过项目的官方渠道来解答。 +::: + +这些资源将连接您到社区论坛和开发者讨论,您可以在这里找到帮助、解决问题并获得更新。 + +--- + +## 更新应用程序(操作中心) + +**操作中心** 位于 %%WebGUI|web-gui%% 中的 **应用** 标签内,作为您管理应用程序状态的中央枢纽。它提供以下信息: + +- **可用更新**: 已有可供安装的新版本的应用程序 +- **不推荐应用**:这些应用程序不再维护或建议使用 +- **不兼容的应用程序**:可能无法与您当前的 Unraid 版本一起工作的应用程序。 +- **黑名单应用程序**:已因安全或兼容性原因从目录中移除的应用程序 + +当您访问操作中心时,您将看到需要关注的应用的警报。要更新应用,请点击需要更新的应用的操作,然后选择**更新**以运行更新脚本。定期更新对于保持Unraid安装的安全性、稳定性和兼容性至关重要。查看[升级Unraid](../../system-administration/maintain-and-update/upgrading-unraid.mdx)以获取更多信息。 + +--- + +## 贡献您自己的应用程序 + +**社区应用**生态系统依靠Unraid社区的贡献而繁荣。无论您是在开发应用还是插件,您的工作都可以帮助其他人增强他们的Unraid服务器。以下是根据[官方政策](https://forums.unraid.net/topic/87144-ca-application-policies-notes/)提交您的作品的指南。 + +### 提交要求 + +为了确保质量和可维护性,所有提交必须: + +- 在[Unraid论坛](https://forums.unraid.net/)中包含一个专门的支持线程。 +- 提供清晰的安装、配置和故障排除文档。 +- 使用开源许可,除非应用程序需要专有组件。 +- 避免与核心 Unraid 功能或现有社区应用程序发生冲突。 + +社区应用程序的审核团队会审核提交内容,进行安全性、功能性和遵循 Unraid 设计原则的基本审查。 + +### 维护期望 + +在社区应用程序中发布应用程序的开发者需要维护他们的项目,以确保对 Unraid 社区的兼容性和可靠性。本节概述了帮助保持可用应用程序质量的持续责任。 + +一旦发布,开发者预计要: + +- 定期更新应用程序,以维护与新 Unraid 版本的兼容性。 +- 在其论坛线程中回应支持请求。 +- 清晰标记测试版或实验版本。 +- 如果停止支持应用程序,应通知管理团队。 + +:::note +审核团队保留删除与当前 Unraid 版本不兼容或缺少持续支持的应用程序的权利。对于时间敏感的安全更新,他们可能会临时接管放弃项目的维护。 +::: + +### 发布工作流程 + +如果您是开发者且有志于通过发布应用程序为 Unraid 社区做出贡献,该工作流程可确保质量控制,并为用户提供可靠、文档齐全的应用程序。 + +1. 准备您的应用程序模板文件和文档。 +2. 在[Unraid论坛](https://forums.unraid.net/)中创建支持线程。 +3. 通过[社区应用提交表格](https://form.asana.com/?k=qtIUrf5ydiXvXzPI57BiJw\&d=714739274360802)提交您的申请。 +4. 管理团队通常在48小时内审查提交。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx new file mode 100644 index 0000000000..cd48431294 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers.mdx @@ -0,0 +1,234 @@ +--- +sidebar_position: 3 +sidebar_label: 管理和自定义容器 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import DockerNetworkType from './partials/managing-and-customizing-containers/network-type.mdx'; +import DockerVolumeMappings from './partials/managing-and-customizing-containers/volume-mappings.mdx'; +import DockerPortMappings from './partials/managing-and-customizing-containers/port-mappings.mdx'; +import DockerEnvironmentVariables from './partials/managing-and-customizing-containers/environment-variables.mdx'; +import DockerCommandStart from './partials/managing-and-customizing-containers/command-start.mdx'; +import DockerCommandStop from './partials/managing-and-customizing-containers/command-stop.mdx'; +import DockerCommandRestart from './partials/managing-and-customizing-containers/command-restart.mdx'; +import DockerCommandStatus from './partials/managing-and-customizing-containers/command-status.mdx'; +import DockerCommandLogs from './partials/managing-and-customizing-containers/command-logs.mdx'; + +# 管理和自定义容器 + +:::caution\[Disclaimer] + +本页旨在帮助各个技能水平的用户充分利用在 Unraid OS 上的 Docker 容器。这些提示和最佳实践来自 Unraid 团队,确保符合大多数用户的需求。然而,请记住,Docker 在不断发展,因此对于最新功能、高级配置或超出 Unraid 覆盖范围的问题排查,通常建议查阅[官方 Docker 文档](https://docs.docker.com/)。 + +::: + +在 Unraid 中自定义 Docker 容器之前,了解基本的配置选项是很有帮助的。每个[容器模板](./community-applications.mdx)提供了一个用户友好的界面,用于设置网络、存储和环境变量,让您无需使用复杂的命令行工具即可定制容器的行为,以满足您的需求。 + + + + + + + + + + + + + + + + + + + +## 创建和启动容器 + +一旦配置了容器的网络、卷映射、端口映射和环境变量,您就可以创建并启动 Docker 容器了。本节将指导您完成创建过程,解释如何管理启动顺序和依赖关系,并提供先进的启动定制化技巧。 + +### 创建一个容器 + +查看容器模板中的配置设置后: + +1. 单击 **创建** 开始下载并设置容器。 + - 在过程完成前请避免关闭浏览器窗口或导航到其他页面。 + - 新存储库的首次下载可能比后续下载耗时更长。 +2. 完成后,单击 **完成** 返回 Docker 页面,您可以管理或添加更多容器。 + +### 规划启动顺序 + +某些容器依赖于其他容器才能正确运行。例如,一个应用程序可能需要首先运行一个数据库容器,或某个服务可能需要在启动之前激活一个[%%VPN|vpn-tunnel%% 容器](../../system-administration/secure-your-server/tailscale.mdx)。 + +:::important[Plan 您的启动] +- 识别提供核心服务的容器(如数据库、%%VPNs|vpn-tunnel%% 或存储网关)。 +- 确保依赖容器仅在其前提条件启动并准备好后才启动。 +- 查看每个容器的文档以了解特定的启动要求。 +::: + +--- + +## 高级容器启动 + +Unraid 为您提供灵活的控制,允许您选择哪些容器自动启动及启动的顺序。这对于有依赖于其他容器的情况尤其有用(例如一个数据库或 %%VPN|vpn-tunnel%% 服务)。 + +确保在 %%array|array%% 启动时自动启动容器: + +1. 在 %%WebGUI|web-gui%% 的 **Docker** 选项卡上, +2. 切换 **自动启动** 开关到 **开** 为每个您希望自动启动的容器。 + +### 自定义启动顺序和延迟 + +默认情况下,Unraid 会尽可能快地按 Docker 选项卡上的顺序启动所有自动启动容器。您可以自定义此顺序并在容器启动之间添加等待时间: + +1. 在 **Docker** 选项卡上,使用挂锁图标解锁容器列表。 +2. 通过拖放容器来重新排列其顺序。 +3. 使用顶部右侧的切换按钮切换到 **高级视图**。 +4. 在 **AutoStart** 列中,为任何需要额外时间的容器在 **wait** 字段输入等待时间(以秒为单位),以便下一个容器启动。 + - 使用试错为您的设置确定最佳的等待时间。 + +:::tip +设置正确的顺序和等待时间对于依赖其他服务的容器尤其重要(例如,在启动使用它的应用之前启动数据库,或在依赖应用之前启动 %%VPN|vpn-tunnel%%)。 +::: + +### 测试启动顺序 + +虽然 Unraid 没有专门的“测试启动序列”功能,但您可以模拟并验证您的启动顺序: + +1. 在 **Docker** 选项卡上停止所有容器。 +2. 以您计划的顺序手动启动每个容器,使用 **启动** 按钮。 +3. 监测容器日志和应用程序行为以确保满足依赖性并按预期初始化服务。 +4. 根据需要调整启动顺序或等待时间。 + +:::important +在更改容器依赖关系或添加新服务后测试启动顺序,尤其是在设置依赖于特定启动时序时。 +::: + +--- + +## 控制您的容器 + +一旦您创建并启动了 Docker 容器,通过 %%WebGUI|web-gui%% 管理它非常简单。本指南将指导您使用上下文菜单,了解容器健康指示器,并在容器内访问卷映射。 + +要访问容器的上下文菜单,请转到 **Docker** 或 **仪表板**选项卡,然后单击要管理的容器图标。此菜单提供快速访问常见操作的方法: + +
+ ![Docker Guide - Controlling](/img/Dockerguide-controlling.png) +
+ +| 选项 | 描述 | +| --------- | -------------------------- | +| **WebUI** | 在新的浏览器选项卡中打开容器的网页界面(如有)。 | +| **控制台** | 打开一个命令行界面以直接与容器交互。 | +| **停止** | 停止正在运行的容器。 | +| **暂停** | 暂停容器,临时停止所有进程。 | +| **重启** | 重启容器,应用任何配置更改。 | +| **日志** | 显示容器的日志输出以进行故障排查。 | +| **编辑** | 更改容器设置,如端口或卷映射。更改在保存后立即生效。 | +| **移除** | 删除容器。您可以选择仅删除容器或同时删除其镜像。 | +| **项目页面** | 打开容器的项目页面以获取文档和支持。 | +| **支持** | 提供对容器支持资源和的帮助访问。 | +| **更多信息** | 显示关于容器及其配置的更多信息。 | + +### 健康指示器 + +您将在每个容器的图标旁找到一个彩色健康指示器: + +- 🟢 **健康**: 表示容器正在运行并按预期响应。 +- 🟡 **不健康**:容器正在运行但未通过健康检查。检查日志或容器设置以获取更多信息。 +- ⚪ **无健康检查**:这意味着没有为容器配置健康检查。对于许多应用程序来说,这很常见,并不一定是个问题。 + +:::note +健康检查由容器作者定义,可能不适用于所有镜像。 +::: + +--- + +## 容器内的卷映射 + +通过 Web 界面配置应用程序时,引用在配置期间设置的**容器路径** - + +例如,如果您将主机上的 `/mnt/user/media` 映射到容器中的 `/unraid_media`,您应该在应用程序的设置中使用 `/unraid_media`。 + +

示例场景

+ +以下是一些展示常见路径映射配置的示例,是用户在设置 Docker 容器时经常需要的。它们展示了如何在 Unraid 的主机文件系统路径与容器的内部路径之间进行转换,帮助您正确配置应用程序。 + +- **媒体服务器:** + 主机路径:`/mnt/user/media`\ + 容器路径:`/unraid_media` + + 在应用程序中,将您的媒体库位置设置为 `/unraid_media`。 + +- **Appdata 存储:** + 主机路径:`/mnt/user/appdata/myapp`\ + 容器路径:`/config` + + 在应用程序中,使用 `/config` 作为配置存储。 + +- **Multiple %%user shares|user-share%%:** + Host path: `/mnt/user/media` → Container path: `/media`\ + Host path: `/mnt/user/data` → Container path: `/data` + + 在应用程序中根据需要参考 `/media` 或 `/data`。 + +:::important[Best 实践] +始终使用允许容器正常工作的最严格[访问模式](../manage-storage/shares.mdx)(只读或读/写)。 +::: + +--- + +## 调度启动和停止 + +Unraid 不原生支持 **Docker 容器**的计划启动或停止操作,但您可以使用[**用户脚本插件**](../customize-your-experience/plugins.mdx)轻松自动化此过程。这个强大的工具允许您按计划运行自定义脚本,从而实现对容器的自动控制。 + +### 用户脚本插件 + +**用户脚本插件**允许您直接从 %%WebGUI|web-gui%% 创建、管理、和安排自定义 shell 脚本。您可以将其用于各种自动化任务,如启动或停止容器、备份数据或运行维护例程。 + +- 如果尚未安装插件,请从**应用**选项卡安装。 +- 通过 **设置 → 用户脚本** 访问它来创建和管理您的脚本。 + +要了解更多关于插件的信息,请查看[插件](../customize-your-experience/plugins.mdx)。 + +### 计划容器操作 + +要按计划自动启动或停止您的容器: + +1. 从 **应用程序** 标签安装 **用户脚本插件**。 +2. 导航至 ***设置→用户脚本***。 +3. 为每个独特的计划创建一个新脚本。如果多个容器共享相同的计划,您可以在单个脚本中包含它们的命令。 +4. 使用下拉菜单设置计划,或使用自定义 `cron` 表达式以获取更高级的定时选项。 +5. 点击 **应用** 保存并激活您的脚本。 + +:::tip +Cron 表达式使得计划安排更加灵活,超越内置选项。例如,`0 3 * * 1` 会在每周一凌晨 3:00 运行您的脚本。 +::: + +### 命令示例 + + + + + + + + + + + + + + + + + + + + + + + +:::tip +您可以在 Docker 标签中或通过查看容器的配置屏幕中的 `docker run` 命令找到容器名称。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx new file mode 100644 index 0000000000..e136965496 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/overview.mdx @@ -0,0 +1,48 @@ +--- +sidebar_position: 1 +sidebar_label: 概述 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# 概述 + +Docker allows you to run Linux applications in isolated environments known as "containers." On Unraid, Docker is the ideal method for deploying and managing a wide variety of applications without concerns about compatibility or system conflicts. This approach transforms your Unraid server into a flexible %%application server|application-server%%, enabling you to run popular apps like **Plex**, **Home Assistant**, and many more directly on your system. + +如果您想了解有关 Docker 基础技术或探索高级用法的更多信息,请查看[官方 Docker 文档](https://docs.docker.com/)。 + +## Unraid 如何使用 Docker + +Unraid 的 Docker 集成旨在便于所有人使用。每个应用程序都在其自己的容器中运行,确保更新或更改不会影响 Unraid 操作系统或其他应用程序。Unraid 使用一个专门的 `appdata` 共享来存储每个容器的设置和工作文件,这样可以使您的应用程序数据井然有序,并简化备份和迁移。 + +
+ **幕后揭秘:** 展开以了解 Unraid 中 Docker 容器实施的更多信息 + + Unraid 使用 Docker 来创建独立的环境以运行基于 Linux 的应用程序。每个 Docker 容器独立于 Unraid 操作系统和其他容器运行,从而增强了稳定性和兼容性。 + +

实现详情

+ + - **Storage:** All the data and programs for each container are stored in a single %%virtual disk image|virtual-disk-images%% file called `docker.img`. By default, this file is found in the `system` %%user share|user-share%%, which usually utilizes the %%cache pool|cache-pool%% for better speed. + - **文件系统:** `docker.img` 文件使用 %%BTRFS|btrfs%% 文件系统,并由 Unraid 内部挂载。如需更多关于文件系统的信息,请参见 [文件系统](../manage-storage/file-systems.mdx)。 + - **配置:** 当您设置一个容器时,Unraid 会将您的配置保存为一个闪存驱动器上的 %%VM XML 模板|vm-xml-templates%%。这样可以轻松地用您偏好的设置重新安装或恢复容器。 + - **模板**:许多热门容器都附带现成的模板,使初始设置不那么复杂。 + - **Performance:** It’s a good idea to store `docker.img` on the %%cache pool|cache-pool%% (if you have one) for the best performance. + - **限制:** Unraid 原生不支持 Docker Compose。对于更复杂的设置,请查看 [官方 Docker Compose 文档](https://docs.docker.com/compose/)。 + + :::提示 + 大多数用户无需直接与 `docker.img` 文件交互。但是,了解其作用有助于故障排除或理解日志消息。 + ::: +
+ +## 社区应用程序(插件) + +Community Applications 插件是发现、安装和管理 Unraid 服务器上 Docker 容器和插件的最简单和最受欢迎的方法。它在 Unraid %%WebGUI|web-gui%% 中提供了类似应用商店的体验,使浏览和部署各种社区维护的应用程序变得简单。 + +有关安装和使用社区应用程序插件的完整指南,包括高级功能和疑难解答,请查看[社区应用程序](./community-applications.mdx)。 + +:::note[Notes 和支持] +- 社区应用程序中的大多数容器由更广泛的 Unraid 和 Docker 社区维护。 +- 若要获取特定容器的帮助,请查看其文档或 **应用程序** 标签中链接的支持线程。 +- Lime Technology 提供 Docker 子系统本身的支持,但不支持单个社区容器。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx new file mode 100644 index 0000000000..1cadc64745 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-installing.mdx @@ -0,0 +1,17 @@ +要安装 Docker 容器或插件,只需在 %%WebGUI|web-gui%% 的 **应用程序** 选项卡中的应用程序磁贴或信息面板上单击 **安装** 按钮。这将启动安装过程。 + +
+
+ \n![安装应用程序](/img/CA_Tile1.png)\n +
+ +
+ \n![应用程序模板示例](/img/CA_Tile3.png)\n +
+
+ +在安装窗口中保持打开状态,直到过程完全完成。 + +:::tip[Security 提示] +在您安装之前,请花点时间阅读应用程序的描述。检查开发者的信誉,并确保源代码库是可信任的。最好选择来自知名开发者或有活跃支持线程的应用程序。始终对授予对您 %%array|array%%、%%cache pool|cache-pool%% 或任何敏感数据的访问保持警惕。了解更多关于[安全基础知识](../../../system-administration/secure-your-server/security-fundamentals.mdx)。 +::: diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx new file mode 100644 index 0000000000..0b32167714 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-reinstalling.mdx @@ -0,0 +1,9 @@ +如果您需要重新安装 Docker 容器或插件(例如,如果您的 `docker.img` 文件已损坏),Community Applications 为您简化了这一过程。所有应用程序设置都作为 Docker 模板 XML 文件保存在 `/boot/config/plugins/dockerMan/templates-user` 中。有关 Docker 模板 XML 架构和自定义标签的更多信息,请参阅 Unraid 论坛上的 [Docker Template XML Schema documentation](https://forums.unraid.net/topic/38619-docker-template-xml-schema/)。 + +要重新安装应用程序: + +1. 转到%%WebGUI|WebGUI%%的**应用**选项卡。 +2. 选择**以前的应用**过滤器。 +3. 找到您想要重新安装的应用程序并按照提示进行操作。 + +您的已保存设置将自动恢复,确保快速、简便的恢复。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx new file mode 100644 index 0000000000..61f26b23e9 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/community-apps-removing.mdx @@ -0,0 +1,4 @@ +要移除一个应用程序: + +1. 在 **应用程序** 标签中,使用 **已安装应用** 过滤器。这样可以显示所有已安装的 Docker 容器和插件,以卡片形式呈现。 +2. 点击**操作**,然后选择您要移除的应用程序的**卸载**选项。 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 new file mode 100644 index 0000000000..2d4bd97b86 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-logs.mdx @@ -0,0 +1,7 @@ +要查看容器的日志(对故障排除很有帮助): + +``` +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 new file mode 100644 index 0000000000..3c17eaf5d4 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-restart.mdx @@ -0,0 +1,7 @@ +要重启一个容器(在更新配置或进行故障排除后很有用): + +``` +docker restart "container-name" +``` + +将 `"container-name"` 替换为在 Docker 标签中显示的实际名称。 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 new file mode 100644 index 0000000000..ba2e7499b1 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-start.mdx @@ -0,0 +1,7 @@ +要启动一个容器,使用命令: + +``` +docker start "container-name" +``` + +将 `"container-name"` 替换为在 Docker 标签中显示的实际名称。 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 new file mode 100644 index 0000000000..c3969580d7 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-status.mdx @@ -0,0 +1,7 @@ +要检查容器是否正在运行: + +``` +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 new file mode 100644 index 0000000000..10193999c8 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/command-stop.mdx @@ -0,0 +1,7 @@ +要停止一个容器,使用命令: + +``` +docker stop "container-name" +``` + +将 `"container-name"` 替换为在 Docker 标签中显示的实际名称。 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 new file mode 100644 index 0000000000..122cb6ef38 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/environment-variables.mdx @@ -0,0 +1,25 @@ +环境变量可以定制您 Docker 容器在运行时的行为。它们允许您传递键值对,您的容器化应用程序可以读取并利用这些信息。 + +

环境变量的常见用途

+ +- 设置时区 +- 配置用户和组ID +- 指定语言偏好 +- 调整应用程序特定设置,例如 API 密钥或功能切换 + +

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

+ +- 您可以在容器的配置屏幕通过 %%WebGUI|web-gui%% 添加、编辑或删除环境变量。 +- 许多容器模板已经预设了一些常用环境变量,但如果需要,您可以随时添加更多。 +- 务必检查特定应用程序的文档以了解可用的环境变量及其有效值。 + +:::info[Examples 环境变量] +- `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 new file mode 100644 index 0000000000..56f7eca3cd --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/network-type.mdx @@ -0,0 +1,17 @@ +Unraid 支持多种 Docker 网络模式。您选择的网络类型决定了容器与其他设备和容器的通信方式: + +- **桥接 (默认):** 容器位于一个内部的 Docker 网络中。只有您明确映射的端口才能从 Unraid 服务器或局域网访问。这是大多数应用程序最安全且最常用的选项。 + +- **主机:** 容器共享 Unraid 服务器的网络堆栈。它可以使用任何可用的端口,但必须确保端口不会与其他服务冲突。只有在应用程序需要直接网络访问时才使用此模式。 + +- **无:** 容器没有网络访问权限。可用于不需要任何网络连接的隔离工作负载。 + +- **自定义(macvlan/ipvlan):** 容器在局域网上分配自己的 IP 地址,使其显示为一个独立的设备。这适用于高级场景,但可能需要在网络环境中进行额外配置。 + +:::tip +容器模板中指定的默认网络类型推荐给大多数用户。 +::: + +:::caution[Wi-Fi 和 Docker 网络限制] +Docker 有一个限制,阻止它参与共享同一子网的两个网络。如果您在有线和无线连接之间切换,则需要重新启动 Docker 并重新配置所有现有容器以使用新接口。此[网络配置](/unraid-os/system-administration/secure-your-server/securing-your-connection)更改需要容器重新配置。 +::: 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 new file mode 100644 index 0000000000..2be7e76170 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/port-mappings.mdx @@ -0,0 +1,11 @@ +端口映射决定了网络流量如何从 Unraid 服务器路由到容器。 + +- **桥接网络:** 您可以将内部容器端口映射到不同的主机端口。例如,如果三个容器内部使用端口8000,您可以将它们分别映射到主机上的8000、8001和8002。 + +- **主机网络:** 容器可以使用任何可用端口。避免在多个容器中使用相同的端口以防止冲突。 + +:::important +仅修改主机端口值。除非您知道应用程序支持更改,否则不要改变容器端口。 +::: + +大多数模板提供合理的默认值,但您可以添加或调整端口映射。 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 new file mode 100644 index 0000000000..7e8d650dab --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/using-unraid-to/run-docker-containers/partials/managing-and-customizing-containers/volume-mappings.mdx @@ -0,0 +1,17 @@ +卷映射控制您的容器如何访问 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. +::: + +:::note +- 路径区分大小写。 +- 容器路径应以 `/` 开头。 +- 如果使用未分配的设备作为主机路径,请将访问模式设置为“Slave”选项以确保正确检测。 +- 如果主机路径在容器启动时不存在,则会自动创建。 +- 服务器上出现的意外文件夹可能表明映射配置错误。 +::: diff --git a/i18n/zh/docusaurus-theme-classic/footer.json b/i18n/zh/docusaurus-theme-classic/footer.json new file mode 100644 index 0000000000..b2dfa83231 --- /dev/null +++ b/i18n/zh/docusaurus-theme-classic/footer.json @@ -0,0 +1,54 @@ +{ + "link.title.Documentation": { + "message": "文档", + "description": "The title of the footer links column with title=Documentation in the footer" + }, + "link.title.Community": { + "message": "社区", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "更多", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Home": { + "message": "主页", + "description": "The label of footer link with label=Home linking to /" + }, + "link.item.label.Contribute on Github": { + "message": "在 Github 上贡献", + "description": "The label of footer link with label=Contribute on Github linking to https://github.com/unraid/docs" + }, + "link.item.label.Forums": { + "message": "论坛", + "description": "The label of footer link with label=Forums linking to https://forums.unraid.net" + }, + "link.item.label.Discord": { + "message": "Discord", + "description": "The label of footer link with label=Discord linking to https://discord.unraid.net/" + }, + "link.item.label.Unraid Home": { + "message": "Unraid 首页", + "description": "The label of footer link with label=Unraid Home linking to https://unraid.net" + }, + "link.item.label.Unraid Connect": { + "message": "Unraid Connect", + "description": "The label of footer link with label=Unraid Connect linking to https://connect.myunraid.net" + }, + "link.item.label.Newsletter": { + "message": "通讯", + "description": "The label of footer link with label=Newsletter linking to https://newsletter.unraid.net" + }, + "link.item.label.Blog": { + "message": "博客", + "description": "The label of footer link with label=Blog linking to https://unraid.net/blog" + }, + "copyright": { + "message": "版权所有 © 2005-2025 Lime Technology, Inc.
Unraid® 是 Lime Technology, Inc. 的注册商标。
", + "description": "The footer copyright" + }, + "logo.alt": { + "message": "Unraid 标志", + "description": "The alt text of footer logo" + } +} diff --git a/i18n/zh/docusaurus-theme-classic/navbar.json b/i18n/zh/docusaurus-theme-classic/navbar.json new file mode 100644 index 0000000000..d110bdb13e --- /dev/null +++ b/i18n/zh/docusaurus-theme-classic/navbar.json @@ -0,0 +1,26 @@ +{ + "title": { + "message": "Unraid 文档", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "我的网站标志", + "description": "The alt text of navbar logo" + }, + "item.label.More": { + "message": "更多", + "description": "Navbar item with label More" + }, + "item.label.Unraid Home": { + "message": "Unraid 首页", + "description": "Navbar item with label Unraid Home" + }, + "item.label.Forums": { + "message": "论坛", + "description": "Navbar item with label Forums" + }, + "item.label.Docs Github": { + "message": "文档 Github", + "description": "Navbar item with label Docs Github" + } +} diff --git a/package-lock.json b/package-lock.json index 5122949413..633c204d8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,6 +35,7 @@ "glob": "^11.0.0", "prettier": "^3.2.5", "remark-cli": "^12.0.1", + "remark-directive": "^3.0.0", "remark-frontmatter": "^5.0.0", "remark-gfm": "^4.0.1", "remark-lint-code-block-style": "^4.0.1", diff --git a/package.json b/package.json index 12dc75f60e..8e8da73833 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,8 @@ "prebuild": "npm run check-case-sensitivity", "postinstall": "npm rebuild sharp", "crowdin:upload": "npm run format && crowdin upload --config crowdin.yml", - "crowdin:sync": "docusaurus write-translations && npm run format && crowdin upload && crowdin download", - "crowdin:download": "crowdin download --config crowdin.yml", + "crowdin:sync": "docusaurus write-translations && npm run format && crowdin upload && crowdin download && node scripts/format-crowdin-spacing.js", + "crowdin:download": "crowdin download --config crowdin.yml && node scripts/format-crowdin-spacing.js", "write-translations": "docusaurus write-translations" }, "dependencies": { @@ -60,6 +60,7 @@ "remark-lint-code-block-style": "^4.0.1", "remark-lint-definition-case": "^4.0.1", "remark-lint-fenced-code-marker": "^4.0.1", + "remark-directive": "^3.0.0", "remark-lint-heading-style": "^4.0.1", "remark-lint-link-title-style": "^4.0.1", "remark-lint-list-item-indent": "^4.0.1", @@ -98,6 +99,5 @@ }, "overrides": { "sharp": "^0.34.3" - }, - "packageManager": "pnpm@10.15.1+sha512.34e538c329b5553014ca8e8f4535997f96180a1d0f614339357449935350d924e22f8614682191264ec33d1462ac21561aff97f6bb18065351c162c7e8f6de67" + } } diff --git a/renovate.json b/renovate.json index 6d51eb32c6..bdc20053a3 100644 --- a/renovate.json +++ b/renovate.json @@ -3,5 +3,18 @@ "extends": [ "config:recommended", "group:allNonMajor" + ], + "postUpdateOptions": [ + "pnpmDedupe" + ], + "rangeStrategy": "bump", + "packageRules": [ + { + "groupName": "docusaurus monorepo", + "rangeStrategy": "bump", + "matchPackageNames": [ + "/docusaurus/" + ] + } ] } diff --git a/scripts/format-crowdin-spacing.js b/scripts/format-crowdin-spacing.js index d81db5b664..63463367ec 100755 --- a/scripts/format-crowdin-spacing.js +++ b/scripts/format-crowdin-spacing.js @@ -23,6 +23,189 @@ const colors = { blue: '\x1b[36m', }; +const canonicalAdmonitionTypes = new Set(['note', 'tip', 'info', 'warning', 'caution', 'danger', 'important']); +// Build a dynamic regex group from canonical types so we don't miss any +const admonitionTypesGroup = Array.from(canonicalAdmonitionTypes).join('|'); +const TRANSLATION_ROOT = 'i18n'; + +function isTranslatedFile(filePath) { + const relative = path.relative(TRANSLATION_ROOT, filePath); + return relative && !relative.startsWith('..') && !path.isAbsolute(relative); +} + +const admonitionSynonyms = new Map([ + ['nota', 'note'], + ['nota:', 'note'], + ['notiz', 'note'], + ['notiz:', 'note'], + ['hinweis', 'note'], + ['hinweis:', 'note'], + ['consejo', 'tip'], + ['sugerencia', 'tip'], + ['astuce', 'tip'], + ['tipp', 'tip'], + ['tipp:', 'tip'], + ['小贴士', 'tip'], + ['提示', 'tip'], + ['attention', 'caution'], + ['prudence', 'caution'], + ['vorsicht', 'caution'], + ['vorsicht:', 'caution'], + ['precaucion', 'caution'], + ['precaución', 'caution'], + ['注意', 'caution'], + ['重要', 'important'], + ['importante', 'important'], + ['importante:', 'important'], + ['wichtig', 'important'], + ['wichtig:', 'important'], + ['advertencia', 'warning'], + ['advertencia:', 'warning'], + ['avertissement', 'warning'], + ['avertissement:', 'warning'], + ['warnung', 'warning'], + ['warnung:', 'warning'], + ['警告', 'warning'], + ['informacion', 'info'], + ['informacion:', 'info'], + ['información', 'info'], + ['información:', 'info'], + ['信息', 'info'], + ['de advertencia', 'warning'] +]); + +function stripDiacritics(value) { + if (typeof value !== 'string') { + return value; + } + return value.normalize('NFD').replace(/[\u0300-\u036f]/g, ''); +} + +function getCanonicalAdmonition(type) { + if (!type) { + return undefined; + } + const lower = type.toLowerCase().trim(); + if (!lower) { + return undefined; + } + + if (canonicalAdmonitionTypes.has(lower)) { + return lower; + } + if (admonitionSynonyms.has(lower)) { + return admonitionSynonyms.get(lower); + } + + const stripped = stripDiacritics(lower); + if (stripped !== lower) { + if (canonicalAdmonitionTypes.has(stripped)) { + return stripped; + } + if (admonitionSynonyms.has(stripped)) { + return admonitionSynonyms.get(stripped); + } + } + + return undefined; +} + +function normalizeAdmonitionDirectives(content) { + const lines = content.split('\n'); + let modified = false; + + for (let index = 0; index < lines.length; index++) { + const originalLine = lines[index]; + const match = originalLine.match(/^(\s*)(:{3,})(\s*)(.*)$/); + if (!match) { + continue; + } + + const indent = match[1] || ''; + let colons = match[2]; + const rest = match[4] || ''; + let lineModified = false; + + if (colons !== ':::') { + colons = ':::'; + lineModified = true; + } + + if (rest.trim().length === 0) { + const normalized = indent + colons; + if (normalized !== originalLine || lineModified) { + lines[index] = normalized; + modified = true; + } + continue; + } + + const leadingSpacesMatch = rest.match(/^\s*/); + const leadingSpaces = leadingSpacesMatch ? leadingSpacesMatch[0] : ''; + let trimmedRest = rest.slice(leadingSpaces.length); + + if (!trimmedRest) { + const normalized = indent + colons; + if (normalized !== originalLine || lineModified) { + lines[index] = normalized; + modified = true; + } + continue; + } + + const typeMatch = trimmedRest.match(/^([^\s\[::]+)(.*)$/); + if (!typeMatch) { + const normalized = indent + colons + leadingSpaces + trimmedRest; + if (normalized !== originalLine || lineModified) { + lines[index] = normalized; + modified = true; + } + continue; + } + + const rawType = typeMatch[1]; + let remainder = typeMatch[2] || ''; + + let canonical = getCanonicalAdmonition(rawType); + if (!canonical) { + const nextWordMatch = remainder.match(/^\s+([^\s\[::]+)/); + if (nextWordMatch) { + const combinedType = `${rawType} ${nextWordMatch[1]}`; + const resolved = getCanonicalAdmonition(combinedType); + if (resolved) { + canonical = resolved; + remainder = remainder.slice(nextWordMatch[0].length); + } + } + } + + if (!canonical && /^[*#]/.test(rawType)) { + const normalized = indent + leadingSpaces + rawType + remainder; + if (normalized !== originalLine || lineModified) { + lines[index] = normalized; + modified = true; + } + continue; + } + + const typeForOutput = canonical || rawType; + + if (canonical && remainder.startsWith(':')) { + const adjusted = remainder.replace(/^:\s*/, ''); + remainder = adjusted.length ? ` ${adjusted}` : ''; + } + + const normalizedLine = indent + colons + leadingSpaces + typeForOutput + remainder; + + if (normalizedLine !== originalLine || lineModified) { + lines[index] = normalizedLine; + modified = true; + } + } + + return { content: lines.join('\n'), modified }; +} + /** * Replace escaped newline characters with real newline characters. * @param {string} value - String that may contain escaped newlines. @@ -40,13 +223,57 @@ function convertEscapedNewlines(value) { * @param {string} content - The file content to process * @returns {string} - The formatted content */ -function processContent(content) { +function fixCrowdinEscapeArtifacts(content) { + let modified = false; + + // Collapse quadruple escapes that Crowdin sometimes injects in inline code + const inlineCodePattern = /`[^`]*`/g; + content = content.replace(inlineCodePattern, (segment) => { + const cleaned = segment.replace(/\\{2,}\|/g, '\\|'); + if (cleaned !== segment) { + modified = true; + return cleaned; + } + return segment; + }); + + // Remove unnecessary pipe escaping inside custom token syntax like %%Foo|bar%% + content = content.replace(/%%([^%]*?)\\{2}\|([^%]*?)%%/g, (match, left, right) => { + modified = true; + return `%%${left}\\|${right}%%`; + }); + + return { content, modified }; +} + +function removeAllCodeFencers(content) { + let modified = false; + const stripped = content.replace(/````[\s\S]*?````/g, () => { + modified = true; + return ""; + }); + return { content: stripped, modified }; +} + +function processContent(content, filePath) { content = convertEscapedNewlines(content); let modified = false; + const escapeFix = fixCrowdinEscapeArtifacts(content); + content = escapeFix.content; + modified = modified || escapeFix.modified; + + const admonitionFix = normalizeAdmonitionDirectives(content); + content = admonitionFix.content; + modified = modified || admonitionFix.modified; + + const fenceFix = removeAllCodeFencers(content); + content = fenceFix.content; + modified = modified || fenceFix.modified; + // Fix 0: Remove backslashes from admonition directives // Matches admonition directives with escaped brackets like :::tip\[Title] - content = content.replace(/^([ \t]*:::(tip|note|warning|caution|info|important))(\\)(\[.*?\])$/gm, (match, directive, type, backslash, bracket) => { + content = content.replace(/^([ \t]*:::[^\s\[]+)(\\)(\[[^\]]*\])$/gm, (match, directive, backslash, bracket) => { modified = true; return directive + bracket; // Return directive + bracket, omitting the backslash }); @@ -56,9 +283,13 @@ function processContent(content) { const newLines = []; let jsxStack = []; // Track nested JSX elements + const admonitionIndentStack = []; let inCodeBlock = false; let codeBlockDelimiter = ''; + // Precompile regexes that depend on canonical admonition types + const admonitionOpeningLineRegex = new RegExp('^\\s*:::(?:' + admonitionTypesGroup + ')\\b'); + for (let i = 0; i < lines.length; i++) { let line = lines[i]; const trimmedLine = line.trim(); @@ -111,21 +342,19 @@ function processContent(content) { } } + // Track admonition openings + if (admonitionOpeningLineRegex.test(line)) { + const indentLength = (line.match(/^(\s*)/)[1] || '').length; + admonitionIndentStack.push(indentLength); + } + // Handle closing ::: directives if (trimmedLine === ':::') { - if (jsxStack.length > 0) { - // Inside JSX: preserve indentation matching the opening directive - let openingIndent = 0; - - // Look back to find the opening directive to match its indentation - for (let j = i - 1; j >= 0; j--) { - if (/^\s*:::(tip|note|warning|caution|info|important)\b/.test(lines[j])) { - openingIndent = lines[j].match(/^(\s*)/)[1].length; - break; - } - } + const expectedIndent = + admonitionIndentStack.length > 0 ? admonitionIndentStack.pop() : 0; + const correctIndent = ' '.repeat(expectedIndent); - const correctIndent = ' '.repeat(openingIndent); + if (jsxStack.length > 0) { if (line !== correctIndent + ':::') { newLines.push(correctIndent + ':::'); modified = true; @@ -133,9 +362,8 @@ function processContent(content) { newLines.push(line); } } else { - // Outside JSX: should not be indented - if (line !== ':::') { - newLines.push(':::'); + if (line !== correctIndent + ':::') { + newLines.push(correctIndent + ':::'); modified = true; } else { newLines.push(line); @@ -215,19 +443,24 @@ function processContent(content) { // Pattern: Closing directive followed directly by opening directive // E.g., :::important\n...\n:::\n:::note should have blank line between them - content = content.replace(/(^[ \t]*:::)$\n(^[ \t]*:::(tip|note|warning|caution|info|important)\b)/gm, (_, closingDirective, openingDirective) => { + const closingThenOpeningRegex = new RegExp('(^[ \t]*:::)$\\n(^[ \t]*:::(?:' + admonitionTypesGroup + ')\\b)', 'gm'); + content = content.replace(closingThenOpeningRegex, (_, closingDirective, openingDirective) => { modified = true; return `${closingDirective}\n\n${openingDirective}`; }); // Pattern: Opening admonition directive (with or without brackets/titles) followed directly by content // Matches: :::tip, :::tip\[Title], or :::tip Title formats - const admonitionOpenPattern = /^([ \t]*:::(tip|note|warning|caution|info|important)(?:\\?\[.*?\]|[^\n]*))$\n([^\n]+)$/gm; - content = content.replace(admonitionOpenPattern, (match, directive, type, nextLine) => { + const admonitionOpenPattern = new RegExp('^([ \\t]*:::(?:' + admonitionTypesGroup + ')(?:\\\\?\\[.*?\\]|[^\\n]*))$\\n([^\\n]+)$', 'gm'); + content = content.replace(admonitionOpenPattern, (match, directive, nextLine) => { // Skip if next line is blank or another directive if (nextLine.trim() === '' || nextLine.trim().startsWith(':::')) { return match; } + const indentLength = (directive.match(/^(\s*)/)[1] || '').length; + if (indentLength > 0) { + return match; + } modified = true; return `${directive}\n\n${nextLine}`; }); @@ -240,10 +473,29 @@ function processContent(content) { if (trimmedContent.endsWith('>') || trimmedContent.startsWith(':::')) { return match; } + const indentLength = (closingDirective.match(/^(\s*)/)[1] || '').length; + if (indentLength > 0) { + return match; + } modified = true; return `${contentLine}\n\n${closingDirective}`; }); + // Pattern: Closing directive followed directly by markdown content + const admonitionPostSpacingPattern = /^([ \t]*:::)$(?:\r?\n)(^[ \t]*\S.*)$/gm; + content = content.replace(admonitionPostSpacingPattern, (match, closingDirective, nextLine) => { + const trimmedNext = nextLine.trim(); + if (trimmedNext === '' || trimmedNext.startsWith(':::') || trimmedNext.startsWith('<')) { + return match; + } + const indentLength = (closingDirective.match(/^(\s*)/)[1] || '').length; + if (indentLength > 0) { + return match; + } + modified = true; + return `${closingDirective}\n\n${nextLine}`; + }); + return content; } @@ -251,13 +503,34 @@ function formatCrowdinSpacing() { console.log(`${colors.blue}${colors.bright}🔧 Formatting MDX files for Crowdin compatibility...${colors.reset}\n`); // Find all .mdx files - const files = glob.sync('docs/**/*.mdx'); + const patterns = [ + 'docs/**/*.{md,mdx}', + ]; + + const fileSet = new Set(); + patterns.forEach((pattern) => { + glob.sync(pattern, { nodir: true }).forEach((file) => { + // Skip files inside node_modules just in case patterns broaden over time + if (!file.includes('node_modules/')) { + fileSet.add(file); + } + }); + }); + + const files = Array.from(fileSet); let totalFixed = 0; const fixedFiles = []; + const skippedTranslatedFiles = []; files.forEach(file => { + if (isTranslatedFile(file)) { + const relativePath = path.relative(process.cwd(), file); + skippedTranslatedFiles.push(relativePath); + return; + } + const originalContent = fs.readFileSync(file, 'utf8'); - const formattedContent = processContent(originalContent); + const formattedContent = processContent(originalContent, file); if (formattedContent !== originalContent) { fs.writeFileSync(file, formattedContent, 'utf8'); @@ -278,6 +551,10 @@ function formatCrowdinSpacing() { console.log(`${colors.green}✅ All files already have proper spacing for Crowdin compatibility!${colors.reset}`); } + if (skippedTranslatedFiles.length > 0) { + console.log(`\n${colors.blue}Skipped formatting for ${skippedTranslatedFiles.length} translated file${skippedTranslatedFiles.length === 1 ? '' : 's'} to preserve localized content.${colors.reset}`); + } + return totalFixed; } diff --git a/src/components/ManualKeyfileTabs.tsx b/src/components/ManualKeyfileTabs.tsx new file mode 100644 index 0000000000..b1acd492b0 --- /dev/null +++ b/src/components/ManualKeyfileTabs.tsx @@ -0,0 +1,18 @@ +import React from 'react'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import ManualKeyfileOffline from '@site/docs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-offline.mdx'; +import ManualKeyfileNetwork from '@site/docs/unraid-os/troubleshooting/partials/licensing-faq/manual-keyfile-network.mdx'; + +const ManualKeyfileTabs = (): React.JSX.Element => ( + + + + + + + + +); + +export default ManualKeyfileTabs; diff --git a/static/robots.txt b/static/robots.txt index 5186fd9404..259a26e97c 100644 --- a/static/robots.txt +++ b/static/robots.txt @@ -1,7 +1,11 @@ +User-agent: Algolia Crawler +Allow: / + User-agent: * -Disallow: /zh/ -Disallow: /es/ -Disallow: /fr/ -Disallow: /de/ +Allow: / Sitemap: https://docs.unraid.net/sitemap.xml +Sitemap: https://docs.unraid.net/zh/sitemap.xml +Sitemap: https://docs.unraid.net/es/sitemap.xml +Sitemap: https://docs.unraid.net/fr/sitemap.xml +Sitemap: https://docs.unraid.net/de/sitemap.xml diff --git a/wrangler.jsonc b/wrangler.jsonc index dba52f5562..47e78227cb 100644 --- a/wrangler.jsonc +++ b/wrangler.jsonc @@ -3,5 +3,11 @@ "compatibility_date": "2025-09-12", "assets": { "directory": "./build" - } + }, + "routes": [ + { + "pattern": "docs.unraid.net", + "custom_domain": true + } + ] } \ No newline at end of file From 55a491e8fee16d629db475d190830f14568ba4c0 Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Tue, 14 Oct 2025 21:33:23 -0400 Subject: [PATCH 03/16] docs: apply CodeRabbit formatting and clarity improvements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Clarify WebGUI downgrade tool scope in upgrading-unraid.mdx - Fix broken snapshot link and list formatting in vm-setup.mdx - Correct Parity 2 technical description (Reed-Solomon Q-parity) in array-configuration.mdx - Fix compound adjective hyphenation (XFS‑formatted) - Remove redundant wording and incorrect "Sync" button reference in rebuild steps - Standardize formatting and cross-references in tailscale.mdx --- .../maintain-and-update/upgrading-unraid.mdx | 10 +++---- .../secure-your-server/tailscale.mdx | 12 ++++----- .../create-virtual-machines/vm-setup.mdx | 4 +-- .../manage-storage/array-configuration.mdx | 26 +++++++++---------- 4 files changed, 26 insertions(+), 26 deletions(-) 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 cef585912c..9b66865ac2 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 @@ -129,11 +129,11 @@ If your %%VM|vm%% is slow after an upgrade, go to the %%VM|vm%% settings (in **A --- -## Manual upgrade or downgrade +## Manual downgrade -Manual upgrades are infrequently necessary but may be needed if you can't access the %%WebGUI|web-gui%% or need to revert to a prior version. Before proceeding, it's important to back up your USB flash device, details of which you can find in [Backing up your flash device](../maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device). +Manual downgrades are infrequently necessary but may be needed if you can't access the %%WebGUI|web-gui%% or need to revert to a prior version. Before proceeding, it's important to back up your USB flash device, details of which you can find in [Backing up your flash device](../maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device). -### Manual upgrades +### Manual downgrades Only use these methods if you can't access the %%WebGUI|web-gui%%: @@ -149,7 +149,7 @@ Only use these methods if you can't access the %%WebGUI|web-gui%%: :::info[What happens during the downgrade process] -The Downgrade OS tool will automatically handle several important tasks: +When using the Downgrade OS tool (WebGUI), the tool will automatically handle the following: 1. **System validation**: It checks that the downgrade is safe to perform. 2. **File backup**: A backup of your current system files will be created. @@ -221,7 +221,7 @@ After downgrading, some plugins or containers may not function properly: - **Rebuild Docker**: Delete and recreate your Docker image file. See [Docker troubleshooting](../../troubleshooting/common-issues/docker-troubleshooting.mdx#re-creating-the-docker-image-file) for detailed steps. - **Check dependencies**: Ensure that all necessary dependencies are available. - **Plugin compatibility**: Some plugins might not support earlier Unraid versions. - - **Responsive WebGUI plugins**: Plugins designed for newer features may not operate correctly in older versions. + - **UI/WebGUI feature-dependent plugins**: Plugins relying on newer WebGUI features may not operate correctly on older versions. - **Theme plugins**: Visual customization plugins may require updates or removal if they are incompatible. diff --git a/docs/unraid-os/system-administration/secure-your-server/tailscale.mdx b/docs/unraid-os/system-administration/secure-your-server/tailscale.mdx index 0da9d8a2bd..c88a0f2400 100644 --- a/docs/unraid-os/system-administration/secure-your-server/tailscale.mdx +++ b/docs/unraid-os/system-administration/secure-your-server/tailscale.mdx @@ -43,7 +43,7 @@ The following steps are current and accurate for Unraid 7 and later: 4. Click **Connect** to add your Unraid server to your %%Tailnet|tailnet%%. 5. Visit ***Settings → Management Access*** to see your %%Tailscale|tailscale%% URLs for the %%WebGUI|web-gui%%. 6. In ***Settings → Tailscale***, find your server's %%Tailnet|tailnet%% name and IP. Use these to access SMB/NFS shares, Docker containers, and more from any device on your %%Tailnet|tailnet%%. -7. (Optional) Enable **Include Tailscale peers in /etc/hosts** to automatically add Tailscale devices to your server's hostname resolution, making it easier to access other devices on your %%Tailnet|tailnet%%. ++7. (Optional) Enable **Include Tailscale peers in /etc/hosts** (see [Enhanced hostname resolution](#enhanced-hostname-resolution)) to automatically add Tailscale devices to your server's hostname resolution, making it easier to access other devices on your %%Tailnet|tailnet%%. ### Subnet routing (optional) @@ -70,9 +70,9 @@ The Tailscale plugin includes an option to automatically add Tailscale peers to Benefits include: -- Accessing other Tailscale devices using friendly hostnames instead of IP addresses -- Automatic updates when devices join or leave your %%Tailnet|tailnet%% -- Improved compatibility with applications that rely on hostname resolution +- Accessing other Tailscale devices using friendly hostnames instead of IP addresses. +- Automatic updates when devices join or leave your %%Tailnet|tailnet%%. +- Improved compatibility with applications that rely on hostname resolution. To enable this feature: 1. Go to ***Settings → Tailscale*** in the %%WebGUI|web-gui%%. @@ -135,7 +135,7 @@ An HTTPS certificate will be generated for this hostname and published in a publ ::: 5. Decide whether this container should be an exit node (useful for VPN containers). -6. Choose whether the container should use an exit node for its outgoing traffic. If the Tailnet plugin is installed, you’ll see a list of available exit nodes; otherwise, enter the IP manually. +6. Choose whether the container should use an exit node for its outgoing traffic. If the Tailscale plugin is installed, you’ll see a list of available exit nodes; otherwise, enter the IP manually. 7. If using an exit node, specify whether the container should also access your LAN. 8. The Tailscale **Userspace Networking** field is usually set automatically. Leave it disabled unless you have a specific need. 9. Decide whether to enable **%%Tailscale|tailscale%% %%SSH|ssh%%** (secure shell access authenticated via %%Tailscale|tailscale%%). @@ -184,7 +184,7 @@ To update %%Tailscale|tailscale%% in Docker containers: 1. On the Docker page, hover over the %%Tailscale|tailscale%% icon for any container. If an update is available, you'll see a notification. 2. Update the container by either: - - Switching to **Advanced View** (upper right corner), then clicking **Force update**. + - Switching to **Advanced View** (upper-right corner), then clicking **Force update**. - Editing the container, making a minor change (like toggling a setting), and clicking **Apply**. --- 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 a913b6109f..7168576bc5 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 @@ -97,8 +97,8 @@ Unraid 7.x introduces a range of powerful enhancements to the **%%VM|vm%% Manage
Workflow enhancements - - **%%VM|vm%% clones & [snapshots](#managing-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. + - **%%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. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx b/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx index 896ac09447..49de102fba 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx @@ -186,12 +186,12 @@ For a more thorough approach, the pre-clear operation – available through plug alignItems: "center", }} > - | | Clear | Pre-Clear | | ---------------- | --------------------------- | - --------------------------------------- | | **Purpose** | Ensures basic - compatibility | Tests the drive and prepares it for use | | **Speed** | Works - quickly | Much slower process | | **Array Impact** | Runs in the background | - Needs the disk to be removed from use | | **Best For** | Ideal for quick - expansions | Great for checking new drives | +| | Clear | Pre-Clear | +|----------------|-------------------------------|----------------------------------------------| +| **Purpose** | Ensures basic compatibility | Tests the drive and prepares it for use | +| **Speed** | Works quickly | Much slower process | +| **Array Impact** | Runs in the background | Requires the disk to be out of the array | +| **Best for** | Ideal for quick expansions | Great for 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. @@ -321,7 +321,7 @@ Adding a faster %%parity disk|parity-drives%% won't necessarily improve write sp Dual %%parity|parity%% enables recovery from **two simultaneous disk failures**. In Unraid, the second %%parity disk|parity-drives%% doesn't simply mirror the first. Instead: - **Parity 1:** Employs standard XOR (even) %%parity|parity%% calculations. -- **Parity 2:** Utilizes a more complex algorithm (Galois field, rather than Reed-Solomon as in traditional %%RAID 6|raid6%%), allowing Unraid to rebuild from any two missing disks at the same time. This feature is significant for larger arrays, where the risk of multiple failures increases. Dual %%parity|parity%% significantly boosts resilience without the added overhead of mirrored redundancy. +- **Parity 2:** Implements Q-parity using Galois-field syndrome calculations (Reed-Solomon–style), comparable to %%RAID 6|raid6%%. This Galois-field implementation allows Unraid to rebuild from any two simultaneous disk failures. This feature is significant for larger arrays, where the risk of multiple failures increases. Dual %%parity|parity%% significantly boosts resilience without the added overhead of mirrored redundancy.
@@ -346,7 +346,7 @@ If you're planning to take the following steps and only have one %%parity disk|p ::: -To remove a parity drive: +To upgrade a parity drive: 1. **Stop the array:** Use the %%WebGUI|web-gui%% to stop the array. @@ -600,7 +600,7 @@ 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. Some users assume that a rebuild will automatically fix an unmountable emulated disk, but it's important to 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. +- 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. ::: @@ -619,14 +619,14 @@ To re-enable a disabled disk by rebuilding it onto itself: 5. **Verify emulated content (for data drives only)**: Check that the %%emulated disk|emulated-disk%% shows the content you expect. -6. **Stop the array again:** Stop the array again to prepare for the next steps. +6. **Stop the array:** Stop the array to prepare for the next steps. 7. **Reassign the disabled disk:** Assign the same disk back to its original slot. 8. **(Optional) Choose [%%Maintenance Mode|maintenance-mode%%](../../troubleshooting/common-issues/data-recovery.mdx#maintenance-mode):** - - Selecting %%Maintenance Mode|maintenance-mode%% can speed up the rebuild process. - - When in %%Maintenance Mode|maintenance-mode%%, you won't be able to use the array during the rebuild. - - If you choose %%Maintenance Mode|maintenance-mode%%, click **Sync** to start the rebuild. + - Selecting %%Maintenance Mode|maintenance-mode%% can speed up the rebuild process by preventing array access during the rebuild. + - When in %%Maintenance Mode|maintenance-mode%%, you won't be able to use the array until the rebuild completes. + - %%Maintenance Mode|maintenance-mode%% does not change how the rebuild is started—you'll still click **Start** in the next step. 9. **Start the rebuild:** Click **Start** to begin the rebuild process. Unraid will take the contents from the %%emulated disk|emulated-disk%% and reconstruct them onto the physical drive. From f09af34310b22f482860e7f8ad0e9460c48d0528 Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Tue, 14 Oct 2025 21:45:00 -0400 Subject: [PATCH 04/16] docs: fix VM snapshot memory dump guidance (CodeRabbit) Correct inaccurate "Memory dump" checkbox description - it's not preselected by default. Replace alarmist "permanent crash state" language with accurate explanation of memory-backed vs disk-only snapshots and their trade-offs. --- .../using-unraid-to/create-virtual-machines/vm-setup.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 7168576bc5..c131208563 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 @@ -175,13 +175,14 @@ To create a snapshot of your %%VM|vm%%: 2. Click on the %%VM|vm%% name to expand its details. 3. Look for the **Snapshots** section and click **Create Snapshot**. 4. Enter a descriptive name for your snapshot (for example, "Before Windows Update" or "Clean Install State"). -5. **Memory dump option**: If your %%VM|vm%% is running, leave "Memory dump" checked (selected by default). This ensures the snapshot includes the %%VM|vm%%'s memory state for a clean restore. Without this option, the snapshot could be prone to permanent crash state. +5. **Memory dump option**: In current Unraid builds, the "Memory dump" checkbox is not preselected by default. Checking it includes the %%VM|vm%%'s RAM for a full memory-backed snapshot (captures the live running state, but is larger and slower to create/restore). Leaving it unchecked creates a disk-only, crash-consistent snapshot (smaller and faster, but any unsaved in-memory data will be lost). Choose based on whether you need full live state preservation or just disk recovery. 6. Click **Create** to save the snapshot. :::tip[Best practices] - Create snapshots before making significant changes to your %%VM|vm%%. - Use descriptive names that help you remember what the snapshot contains. +- Choose Memory dump based on your needs: enable it for full live state preservation, or leave it off for faster disk-only recovery. - Keep snapshots for important milestones, but delete old ones to save storage space. ::: From c5d59fe17751504abc9d7f05deedc7f711fae986 Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Thu, 23 Oct 2025 20:43:23 -0400 Subject: [PATCH 05/16] docs: Fix VM paths, icon organization, and rebuild instructions - Fix inconsistent vDisk storage paths in VM conversion docs (use /mnt/user/ instead of /mnt/cache/) - Correct IDE vs SATA bus guidance to change both bus and dev attributes - Replace Force stop recommendation with safer Stop/normal shutdown guidance - Organize notification agent icons in dedicated static directory structure - Fix incorrect rebuild instruction (change "Sync" to "Start" button guidance) --- .../optimize-storage/zfs-storage.mdx | 28 +++++++++++++----- .../customize-unraid-settings.mdx | 26 ++++++++-------- .../maintain-and-update/upgrading-unraid.mdx | 6 ++-- .../vm-conversion-and-migration.mdx | 13 ++++---- .../create-virtual-machines/vm-setup.mdx | 2 +- .../manage-storage/array-configuration.mdx | 14 ++++----- .../icons/icon-bark.png | Bin 0 -> 17710 bytes .../icons/icon-boxcar.png | Bin 0 -> 16084 bytes .../icons/icon-discord.png | Bin 0 -> 1018 bytes .../icons/icon-gotify.png | Bin 0 -> 959 bytes .../icons/icon-ntfy.png | Bin 0 -> 534 bytes .../icons/icon-prowl.png | Bin 0 -> 1089 bytes .../icons/icon-pushbits.png | Bin 0 -> 1180 bytes .../icons/icon-pushbullet-alt.png | Bin 0 -> 55876 bytes .../icons/icon-pushbullet.png | Bin 0 -> 874 bytes .../icons/icon-pushover.png | Bin 0 -> 872 bytes .../icons/icon-pushplus.png | Bin 0 -> 9460 bytes .../icons/icon-serverchan.png | Bin 0 -> 17952 bytes .../icons/icon-slack-new.png | Bin 0 -> 15855 bytes .../icons/icon-slack.png | Bin 0 -> 3305 bytes .../icons/icon-telegram.png | Bin 0 -> 2397 bytes 21 files changed, 51 insertions(+), 38 deletions(-) create mode 100644 static/img/customize-unraid-settings/icons/icon-bark.png create mode 100644 static/img/customize-unraid-settings/icons/icon-boxcar.png create mode 100644 static/img/customize-unraid-settings/icons/icon-discord.png create mode 100644 static/img/customize-unraid-settings/icons/icon-gotify.png create mode 100644 static/img/customize-unraid-settings/icons/icon-ntfy.png create mode 100644 static/img/customize-unraid-settings/icons/icon-prowl.png create mode 100644 static/img/customize-unraid-settings/icons/icon-pushbits.png create mode 100644 static/img/customize-unraid-settings/icons/icon-pushbullet-alt.png create mode 100644 static/img/customize-unraid-settings/icons/icon-pushbullet.png create mode 100644 static/img/customize-unraid-settings/icons/icon-pushover.png create mode 100644 static/img/customize-unraid-settings/icons/icon-pushplus.png create mode 100644 static/img/customize-unraid-settings/icons/icon-serverchan.png create mode 100644 static/img/customize-unraid-settings/icons/icon-slack-new.png create mode 100644 static/img/customize-unraid-settings/icons/icon-slack.png create mode 100644 static/img/customize-unraid-settings/icons/icon-telegram.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 5eb32a2d5b..35554b08e6 100644 --- a/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx +++ b/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx @@ -166,13 +166,27 @@ When you set up a %%ZFS|zfs%% pool, your allocation profile determines how your ![](/img/zfs11.png) -| Profile | Redundancy | Performance | Expansion | Space Efficiency | Typical Use Case | -| ------- | ----------------------------- | --------------------------------------------------------- | ---------------- | ---------------- | ---------------------------------------- | -| Stripe | None | Fast, but risky | Add more disks | 100% | Temporary/scratch storage | -| Mirror | 1:1 (%%RAID 1\|raid1%% style) | Excellent for random I/O | Add more mirrors | 50% | High performance, easy expansion | -| 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 | -| RAIDZ2 | 2 disks per vdev | Like Z1 but slightly slower writes (extra parity) | Add new vdevs | Moderate | Important data, 2-disk fault tolerance | -| RAIDZ3 | 3 disks per vdev | Like Z2, with more write overhead (for maximum safety) | Add new vdevs | Lower | Mission-critical, 3-disk fault tolerance | +| 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) | + +:::tip[Optimizing drive counts] + +The recommended drive counts in the table above work well for most users. For even better performance, you can optimize within those ranges by choosing configurations where the number of data disks (total disks minus parity disks) is a **power of 2** (e.g., 2, 4, 8, 16). This helps align data stripes correctly, preventing wasted space and uneven I/O. + +**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) +- **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. + +::: :::important[How to choose] diff --git a/docs/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx b/docs/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx index 47e0178600..b18cbbf1fc 100644 --- a/docs/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx +++ b/docs/unraid-os/getting-started/set-up-unraid/customize-unraid-settings.mdx @@ -333,19 +333,19 @@ To access Notification Agents, click the **Notification Agents** link on the Not **Built-in agents include:** -- Bark **Bark**: iOS notification app -- Boxcar **Boxcar**: Push notification service -- Discord **Discord**: Send notifications to Discord channels via webhook -- Gotify **Gotify**: Self-hosted notification server -- ntfy.sh **ntfy.sh**: Simple HTTP-based notification service -- Prowl **Prowl**: iOS push notifications -- Pushbits **Pushbits**: Self-hosted notification relay -- Pushbullet **Pushbullet**: Cross-platform notification service -- Pushover **Pushover**: Push notification service for iOS and Android -- Pushplus **Pushplus**: Chinese push notification service -- ServerChan **ServerChan**: Chinese server monitoring and notification service -- Slack **Slack**: Send notifications to Slack channels via webhook -- Telegram **Telegram**: Send messages to Telegram bot +- Bark **Bark**: iOS notification app +- Boxcar **Boxcar**: Push notification service +- Discord **Discord**: Send notifications to Discord channels via webhook +- Gotify **Gotify**: Self-hosted notification server +- ntfy.sh **ntfy.sh**: Simple HTTP-based notification service +- Prowl **Prowl**: iOS push notifications +- Pushbits **Pushbits**: Self-hosted notification relay +- Pushbullet **Pushbullet**: Cross-platform notification service +- Pushover **Pushover**: Push notification service for iOS and Android +- Pushplus **Pushplus**: Chinese push notification service +- ServerChan **ServerChan**: Chinese server monitoring and notification service +- Slack **Slack**: Send notifications to Slack channels via webhook +- Telegram **Telegram**: Send messages to Telegram bot **Configuring an agent:** 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 9b66865ac2..7b428bbc60 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 @@ -34,11 +34,11 @@ Before you start upgrading, make sure to create a complete backup of your USB fl ## Standard upgrade process - + - + @@ -133,8 +133,6 @@ If your %%VM|vm%% is slow after an upgrade, go to the %%VM|vm%% settings (in **A Manual downgrades are infrequently necessary but may be needed if you can't access the %%WebGUI|web-gui%% or need to revert to a prior version. Before proceeding, it's important to back up your USB flash device, details of which you can find in [Backing up your flash device](../maintain-and-update/changing-the-flash-device.mdx#backing-up-your-flash-device). -### Manual downgrades - Only use these methods if you can't access the %%WebGUI|web-gui%%: diff --git a/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx index eb7a4c6cce..f3b716dd48 100644 --- a/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration.mdx @@ -92,7 +92,7 @@ To convert a physical disk to a %%VM|vm%%: - + @@ -111,7 +111,7 @@ To convert a physical disk to a %%VM|vm%%: - + @@ -256,7 +256,7 @@ You'll need to modify the %%VM|vm%%'s XML configuration to connect your physical - + @@ -276,7 +276,7 @@ You'll need to modify the %%VM|vm%%'s XML configuration to connect your physical ``` - If your disk is IDE, change the bus from "SATA" to "IDE". + If your disk is IDE, change the bus from "SATA" to "IDE" and the target device from "hdd" to "hda". Using `/dev/disk/by-id/` is preferred over `/dev/sdX` to ensure the disk assignment stays consistent after reboots or hardware changes. @@ -389,8 +389,9 @@ GPLPV removal requires extensive registry editing and manual file deletion. Foll 7. Leave the other settings for graphics and sound at their default values, then click **Create**. -8. Immediately force-stop the VM: - - Click the VM icon and choose **Force stop**. +8. If the VM started automatically, stop it: + - Prefer **Stop** (avoid **Force stop** unless the VM is unresponsive). + - Alternatively, uncheck **Start VM after creation** when creating the VM. 9. Edit the VM configuration: - Click the VM icon and select **Edit**. 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 c131208563..51a14b9040 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 @@ -417,7 +417,7 @@ After binding, bound devices will appear in the **Other PCI Devices** dropdown w - Unraid 6.9+ with virtualization enabled. - %%OVMF|ovmf%% (%%UEFI|uefi%%) bios for %%VMs|vm%% (recommended over %%SeaBIOS|seabios%%). -To setup GPU passthrough: +To set up GPU passthrough: 1. Ensure your hardware supports %%IOMMU|iommu%% and is enabled in your BIOS. 2. Enable virtualization features in BIOS (Intel VT-x/VT-d or AMD-v/AMD-vi). diff --git a/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx b/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx index 49de102fba..cb3319a3ba 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx @@ -186,12 +186,12 @@ For a more thorough approach, the pre-clear operation – available through plug alignItems: "center", }} > -| | Clear | Pre-Clear | -|----------------|-------------------------------|----------------------------------------------| -| **Purpose** | Ensures basic compatibility | Tests the drive and prepares it for use | -| **Speed** | Works quickly | Much slower process | -| **Array Impact** | Runs in the background | Requires the disk to be out of the array | -| **Best for** | Ideal for quick expansions | Great for checking new drives | + | | Clear | Pre-Clear | + |----------------|-------------------------------|----------------------------------------------| + | **Purpose** | Ensures basic compatibility | Tests the drive and prepares it + for use | | **Speed** | Works quickly | Much slower process | | **Array + Impact** | Runs in the background | Requires the disk to be out of the array | + | **Best for** | Ideal for quick expansions | Great for 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. @@ -554,7 +554,7 @@ If your server supports hot-swap, you can skip the next step and just stop the a 7. **(Optional) Choose %%Maintenance Mode|maintenance-mode%%:** - You can select %%Maintenance Mode|maintenance-mode%%, which can make the rebuild process faster. However, during this time, you won't be able to access the array at all. - - If you choose %%Maintenance Mode|maintenance-mode%%, make sure to click **Sync** to start the rebuild. + - If you choose %%Maintenance Mode|maintenance-mode%%, you will still click **Start** in the next step to begin the rebuild. 8. **Start the rebuild:** - Click **Start** to begin the process. Unraid will copy your data from the %%emulated disk|emulated-disk%% to the new disk. diff --git a/static/img/customize-unraid-settings/icons/icon-bark.png b/static/img/customize-unraid-settings/icons/icon-bark.png new file mode 100644 index 0000000000000000000000000000000000000000..190ad86a073cf7a903257678569236c85549bac1 GIT binary patch literal 17710 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 Y3w6N5Y5qmTjQ{`u07*qoM6N<$f`+f~;Q#;t literal 0 HcmV?d00001 diff --git a/static/img/customize-unraid-settings/icons/icon-prowl.png b/static/img/customize-unraid-settings/icons/icon-prowl.png new file mode 100644 index 0000000000000000000000000000000000000000..89549c84d6053c6ec53af3fc670a2e71599c0d33 GIT binary patch literal 1089 zcmV-H1it%;P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;VI^GGzb&1F}g(K~y+T9Z*?NlUEr1qd+@i0o!S(VqJ&? z2#Fh0%Y!fuI-tlhU=^r_kOUI45Fkw&37b>O#3%_MP_oBF(1|t{tbkxdSxTKg^rbxX zsmpYx(@r~OD3PY~$8dV{KYaI|d%ttfch04JLDgHnpust|*ttHw+!^-FwT16~(;XhU ze}!NJgYT?#hrI-kEp&v(zwQdhxC9U1oKYuHp5PUieM%ek&39pbbsP_t2H;z6hrUaJ z>z-zKo*Uqt{RFNjdUzKN@H}gSeOd>{v@YtN(^)C!(~mbMR)!GTT*EJat->*@#b;Ip zdU|W%_Etlws)3;HBeZmg(eH1@=MS4P`luDQ84cX?+6~GxuaCU^ZylQ(Yw*A5h5cD8 zhQ3lkuKW;7FDmfsZxyJju7F5fiT2J)wCZc1(g@J&mccgH6rudf#z-{!3ZeBs;h53E zzNE&;oC3XGDK1o%KvG|V^XJPDd|HfIQVUDP5UDC*{z3vvKoX&RPdXWae?x0n`Qc0S zPm5q%RFP7`G9kq!Nf}B@3UT^W0ZPkHp{}_crhpKZDG>&zMG?y2FQETe{|T=mG>P#y zzWezx`KS&AzU_l+Sq6BJh~VR|6Mz?>KZ!8-I!U50U@3SIY$XiDkHrn@JK@%ukN zVry#)tE=Cmty2rJrW^wg8{k+_qM`j9hMo&ydVB$0fg-4#@1w4d1L1WxO~sbjK{m>R zaq=RR=0X$**wEZMfwLkmdM1mJQ<#d5M|o)V=b&lq2-J6uGJ9+|rEq7{awiW;?;*7K zk3kp6h34*YG`T*&nFbEDzC7&ZCP6=$%k-LVAA!isfp{Q;2=Hi1?&Q*qj%+mAvmv!{ zp}fUsh^OlhKyJ^$N~3G99fWu=11cYJ zaqk!!9XuR8^A1|?<={l=dtk9BoK@{-dUfV>$Xz@rJbXxQa%f6w&7$SRfr3nqMG;vz zDAOK5kzy~Zdor*mbtkrOXJOaw1jyZo7^k(@*pS(XYeyCl7|jgT4`-5JO^3k9Mk5i) z7wkc$em{8mZz4W^8&Z;A18W-#CxxlZAmNR4hA*{cg($Hl%_=alqp?ewmCNMJzw|E7 zwd}*btT&LD7>}eRB0yqr^HLc5lA%o0k~h+k^dah^X;-pz_@Ik8*_7F{qLM*QRA5Yt za&nWmlHX3ij>I^mq$D6No(2BN|xo}-8=pVrnpb_HFQLD00000NkvXX Hu0mjf3LEm# literal 0 HcmV?d00001 diff --git a/static/img/customize-unraid-settings/icons/icon-pushbits.png b/static/img/customize-unraid-settings/icons/icon-pushbits.png new file mode 100644 index 0000000000000000000000000000000000000000..09d5f9bd79f746fff2e7cdc236b26a3725dbe073 GIT binary patch literal 1180 zcmaJjRC|lF$F|eS-D>Xq@!gZlyT`0{Gr@0&b0(SK#Uq7BsfOg z*l@$aB7+WAdKq_1VF+|#TuVy}tqexy3<8^&As6FV>-)uD`olLl=gB!a&w0){dC$kk zojPLUU;_Y0qNBKp2pOauq9E_adN~OJHJ8KZ0CZhEe2`8x>e4X~L85ZnM@SJ0$N2m!#J#>WbHr~te|LA?VO3phGMWh-bbkSc=u0Vt@2Dlzo^ z467E1OabvMT<(Y7NARZwhMvInQK*(cY5`0gV2JC?f^+AAdj@#P;Nl51I^Yzt;OZb; zQNou^aB~vcb|Zv}-Zx0?3S*L{GV)20JIbU3} z9|0!;(6mDBy2WCVm>$#GwYY3iq+NfqvlrH@!=#HKU0@GB+}MA<_}g|^ zzrnS09_`EMTAJP3dto+j?e71uvKDk_#-Zq_ih7K zwm?^yy!(yz9UAV?60c8(4og*-a_#o}&?4DHVjTH*{_oKk47x+EIX;#%ZNF}{pvj>rw9es1yQL8kBdpe8Yi_YC}~AR^LbXk(ik>@j;_0`uZ=4L|PeVZ9@;zy^x&WW+h-*ZN$R7!ELY^bHXxx+M`d}&lOtWvi1D-??1 zn<}Mlw2m`s?WU!^mM6?-35k;QctY+eJo`J;5GBO{ssW$R@&tDKJ9`VeryBw#gF5{M zPLzI7nYCRn(YMVtq=rmaf5$NyMSD#Hf2^HIQRY4S)B>;26S_v6n$`0@hZB1$BksA_ z+dD_7$C%-97i(+2sl&@6uLt>SMrT=JZ+S)2H$VPKoMpFP?;ON<10JdQbwx{4wdg=D z1TTfiN++^|GYhj3fH&LQhsE||dHD;x*uj2&!M=VTY<4i4P5CgQ@?V5=qOAO!vi}l% zgW2By5SHDV2}F3ER7eu#5T)sb*-%X|P*Ta=kzknJfd%x&BXaX>{7&5PqIPNr4< E4Rl)MM*si- literal 0 HcmV?d00001 diff --git a/static/img/customize-unraid-settings/icons/icon-pushbullet-alt.png b/static/img/customize-unraid-settings/icons/icon-pushbullet-alt.png new file mode 100644 index 0000000000000000000000000000000000000000..462bc74d94a0bf569b58d39317613fdcfc18617f GIT binary patch literal 55876 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 A-T(jq literal 0 HcmV?d00001 diff --git a/static/img/customize-unraid-settings/icons/icon-pushover.png b/static/img/customize-unraid-settings/icons/icon-pushover.png new file mode 100644 index 0000000000000000000000000000000000000000..e0afe3edff48d2cac36b0d392e84ef7f190ccc7a GIT binary patch literal 872 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 literal 0 HcmV?d00001 diff --git a/static/img/customize-unraid-settings/icons/icon-slack.png b/static/img/customize-unraid-settings/icons/icon-slack.png new file mode 100644 index 0000000000000000000000000000000000000000..7a47e27cfede394efb67d09fff95be2bdec85766 GIT binary patch literal 3305 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 literal 0 HcmV?d00001 From d8ce64ce545f31788cca5d0667da691d5f87e916 Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Thu, 23 Oct 2025 20:52:13 -0400 Subject: [PATCH 06/16] docs: Organize notification agent icons in dedicated static directory --- static/img/icons/icon-bark.png | Bin 17710 -> 0 bytes static/img/icons/icon-boxcar.png | Bin 16084 -> 0 bytes static/img/icons/icon-discord.png | Bin 1018 -> 0 bytes static/img/icons/icon-gotify.png | Bin 959 -> 0 bytes static/img/icons/icon-ntfy.png | Bin 534 -> 0 bytes static/img/icons/icon-prowl.png | Bin 1089 -> 0 bytes static/img/icons/icon-pushbits.png | Bin 1180 -> 0 bytes static/img/icons/icon-pushbullet-alt.png | Bin 55876 -> 0 bytes static/img/icons/icon-pushbullet.png | Bin 874 -> 0 bytes static/img/icons/icon-pushover.png | Bin 872 -> 0 bytes static/img/icons/icon-pushplus.png | Bin 9460 -> 0 bytes static/img/icons/icon-serverchan.png | Bin 17952 -> 0 bytes static/img/icons/icon-slack-new.png | Bin 15855 -> 0 bytes static/img/icons/icon-slack.png | Bin 3305 -> 0 bytes static/img/icons/icon-telegram.png | Bin 2397 -> 0 bytes 15 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 static/img/icons/icon-bark.png delete mode 100644 static/img/icons/icon-boxcar.png delete mode 100644 static/img/icons/icon-discord.png delete mode 100644 static/img/icons/icon-gotify.png delete mode 100644 static/img/icons/icon-ntfy.png delete mode 100644 static/img/icons/icon-prowl.png delete mode 100644 static/img/icons/icon-pushbits.png delete mode 100644 static/img/icons/icon-pushbullet-alt.png delete mode 100644 static/img/icons/icon-pushbullet.png delete mode 100644 static/img/icons/icon-pushover.png delete mode 100644 static/img/icons/icon-pushplus.png delete mode 100644 static/img/icons/icon-serverchan.png delete mode 100644 static/img/icons/icon-slack-new.png delete mode 100644 static/img/icons/icon-slack.png delete mode 100644 static/img/icons/icon-telegram.png diff --git a/static/img/icons/icon-bark.png b/static/img/icons/icon-bark.png deleted file mode 100644 index 190ad86a073cf7a903257678569236c85549bac1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17710 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 Y3w6N5Y5qmTjQ{`u07*qoM6N<$f`+f~;Q#;t diff --git a/static/img/icons/icon-prowl.png b/static/img/icons/icon-prowl.png deleted file mode 100644 index 89549c84d6053c6ec53af3fc670a2e71599c0d33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1089 zcmV-H1it%;P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;VI^GGzb&1F}g(K~y+T9Z*?NlUEr1qd+@i0o!S(VqJ&? z2#Fh0%Y!fuI-tlhU=^r_kOUI45Fkw&37b>O#3%_MP_oBF(1|t{tbkxdSxTKg^rbxX zsmpYx(@r~OD3PY~$8dV{KYaI|d%ttfch04JLDgHnpust|*ttHw+!^-FwT16~(;XhU ze}!NJgYT?#hrI-kEp&v(zwQdhxC9U1oKYuHp5PUieM%ek&39pbbsP_t2H;z6hrUaJ z>z-zKo*Uqt{RFNjdUzKN@H}gSeOd>{v@YtN(^)C!(~mbMR)!GTT*EJat->*@#b;Ip zdU|W%_Etlws)3;HBeZmg(eH1@=MS4P`luDQ84cX?+6~GxuaCU^ZylQ(Yw*A5h5cD8 zhQ3lkuKW;7FDmfsZxyJju7F5fiT2J)wCZc1(g@J&mccgH6rudf#z-{!3ZeBs;h53E zzNE&;oC3XGDK1o%KvG|V^XJPDd|HfIQVUDP5UDC*{z3vvKoX&RPdXWae?x0n`Qc0S zPm5q%RFP7`G9kq!Nf}B@3UT^W0ZPkHp{}_crhpKZDG>&zMG?y2FQETe{|T=mG>P#y zzWezx`KS&AzU_l+Sq6BJh~VR|6Mz?>KZ!8-I!U50U@3SIY$XiDkHrn@JK@%ukN zVry#)tE=Cmty2rJrW^wg8{k+_qM`j9hMo&ydVB$0fg-4#@1w4d1L1WxO~sbjK{m>R zaq=RR=0X$**wEZMfwLkmdM1mJQ<#d5M|o)V=b&lq2-J6uGJ9+|rEq7{awiW;?;*7K zk3kp6h34*YG`T*&nFbEDzC7&ZCP6=$%k-LVAA!isfp{Q;2=Hi1?&Q*qj%+mAvmv!{ zp}fUsh^OlhKyJ^$N~3G99fWu=11cYJ zaqk!!9XuR8^A1|?<={l=dtk9BoK@{-dUfV>$Xz@rJbXxQa%f6w&7$SRfr3nqMG;vz zDAOK5kzy~Zdor*mbtkrOXJOaw1jyZo7^k(@*pS(XYeyCl7|jgT4`-5JO^3k9Mk5i) z7wkc$em{8mZz4W^8&Z;A18W-#CxxlZAmNR4hA*{cg($Hl%_=alqp?ewmCNMJzw|E7 zwd}*btT&LD7>}eRB0yqr^HLc5lA%o0k~h+k^dah^X;-pz_@Ik8*_7F{qLM*QRA5Yt za&nWmlHX3ij>I^mq$D6No(2BN|xo}-8=pVrnpb_HFQLD00000NkvXX Hu0mjf3LEm# diff --git a/static/img/icons/icon-pushbits.png b/static/img/icons/icon-pushbits.png deleted file mode 100644 index 09d5f9bd79f746fff2e7cdc236b26a3725dbe073..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1180 zcmaJjRC|lF$F|eS-D>Xq@!gZlyT`0{Gr@0&b0(SK#Uq7BsfOg z*l@$aB7+WAdKq_1VF+|#TuVy}tqexy3<8^&As6FV>-)uD`olLl=gB!a&w0){dC$kk zojPLUU;_Y0qNBKp2pOauq9E_adN~OJHJ8KZ0CZhEe2`8x>e4X~L85ZnM@SJ0$N2m!#J#>WbHr~te|LA?VO3phGMWh-bbkSc=u0Vt@2Dlzo^ z467E1OabvMT<(Y7NARZwhMvInQK*(cY5`0gV2JC?f^+AAdj@#P;Nl51I^Yzt;OZb; zQNou^aB~vcb|Zv}-Zx0?3S*L{GV)20JIbU3} z9|0!;(6mDBy2WCVm>$#GwYY3iq+NfqvlrH@!=#HKU0@GB+}MA<_}g|^ zzrnS09_`EMTAJP3dto+j?e71uvKDk_#-Zq_ih7K zwm?^yy!(yz9UAV?60c8(4og*-a_#o}&?4DHVjTH*{_oKk47x+EIX;#%ZNF}{pvj>rw9es1yQL8kBdpe8Yi_YC}~AR^LbXk(ik>@j;_0`uZ=4L|PeVZ9@;zy^x&WW+h-*ZN$R7!ELY^bHXxx+M`d}&lOtWvi1D-??1 zn<}Mlw2m`s?WU!^mM6?-35k;QctY+eJo`J;5GBO{ssW$R@&tDKJ9`VeryBw#gF5{M zPLzI7nYCRn(YMVtq=rmaf5$NyMSD#Hf2^HIQRY4S)B>;26S_v6n$`0@hZB1$BksA_ z+dD_7$C%-97i(+2sl&@6uLt>SMrT=JZ+S)2H$VPKoMpFP?;ON<10JdQbwx{4wdg=D z1TTfiN++^|GYhj3fH&LQhsE||dHD;x*uj2&!M=VTY<4i4P5CgQ@?V5=qOAO!vi}l% zgW2By5SHDV2}F3ER7eu#5T)sb*-%X|P*Ta=kzknJfd%x&BXaX>{7&5PqIPNr4< E4Rl)MM*si- diff --git a/static/img/icons/icon-pushbullet-alt.png b/static/img/icons/icon-pushbullet-alt.png deleted file mode 100644 index 462bc74d94a0bf569b58d39317613fdcfc18617f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55876 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 A-T(jq diff --git a/static/img/icons/icon-pushover.png b/static/img/icons/icon-pushover.png deleted file mode 100644 index e0afe3edff48d2cac36b0d392e84ef7f190ccc7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 872 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 diff --git a/static/img/icons/icon-slack.png b/static/img/icons/icon-slack.png deleted file mode 100644 index 7a47e27cfede394efb67d09fff95be2bdec85766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3305 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 From 41581bafbf368a36c95d3ff71dc4af3f59c6a0f7 Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Thu, 30 Oct 2025 20:21:21 -0400 Subject: [PATCH 07/16] docs: Flatten tabbed content and improve documentation accessibility Address critical feedback about content hidden behind tabbed/collapsible elements by reorganizing content as inline sections while maintaining clean layouts. **FAQ & Licensing FAQ:** - Improve anchor linking with heading structure (unique shareable links without cluttering TOC) - Flatten all questions for immediate accessibility - Verify all anchors work correctly **Array Configuration:** - Split monolithic 1,160+ line page into 5 focused pages: Overview, Adding disks, Replacing disks, Removing disks, Health & maintenance - Flatten content from tabs/expandables to inline sections - Retain version-specific tabs only - Update links and redirects for new structure **File Systems:** - Add Unraid 7.2 filesystem content (EXT4, NTFS, exFAT) - Add filesystem comparison table at top of page - Remove tab UI for filesystem introductions - Retain CLI-specific tabs for file system checks/repairs - Consolidate redundant partial files (btrfs/xfs/zfs intro, balance/scrub partials) - Add cross-reference link to ZFS storage page **Shares:** - Convert configurable option tabs to inline sections with descriptive headers - Move "Transferring files from network share" to CLI page (per feedback) - Retain version-specific tabs for 6.12+ vs 6.11 differences - Update links for new content location **Cache Pools:** - Remove tab UI, convert to inline sections - Delete "Backing up cache pool" section (redundant with move operations, per feedback) - Retain version-specific guidance as inline notes - Improve content flow with clear section headers **Unclean Shutdowns:** - Flatten tabbed VM configuration to inline sections - Expand Windows VM configuration with detailed step-by-step instructions - Add comprehensive timeout configuration tables - Enhance shutdown sequence explanations **Additional improvements:** - Improve CLI documentation with network file transfer section - Enhance VM setup documentation accessibility - Update Apple Time Machine style/formatting - Add ZFS storage cross-references - Apply CodeRabbit configuration file improvements - Reduce excessive bold text across pages for better visual hierarchy (maintain content substance) --- .markdownlint.json | 10 +- .remarkrc.mjs | 294 +++-- .../optimize-storage/zfs-storage.mdx | 2 +- .../getting-started/what-is-unraid.mdx | 2 +- docs/unraid-os/release-notes/7.2.0.md | 58 +- .../advanced-tools/command-line-interface.mdx | 453 ++++--- .../changing-the-flash-device.mdx | 2 +- .../maintain-and-update/upgrading-unraid.mdx | 46 +- .../partials/reset-password-advanced.mdx | 2 +- .../partials/reset-password-basic.mdx | 2 +- .../common-issues/data-recovery.mdx | 2 +- .../partials/data-recovery/repair-xfs.mdx | 14 +- .../system-crashes-and-stability.mdx | 2 +- .../common-issues/unclean-shutdowns.mdx | 206 +-- docs/unraid-os/troubleshooting/faq.mdx | 487 ++++--- .../troubleshooting/licensing-faq.mdx | 69 +- .../create-virtual-machines/vm-setup.mdx | 252 ++-- .../windows-on-a-vm.mdx | 2 +- .../manage-storage/apple-time-machine.mdx | 12 +- .../manage-storage/array-configuration.mdx | 1160 ----------------- .../manage-storage/array/_category_.json | 7 + .../array/adding-disks-to-array.mdx | 178 +++ .../array/array-health-and-maintenance.mdx | 202 +++ .../manage-storage/array/overview.mdx | 191 +++ .../array/removing-disks-from-array.mdx | 78 ++ .../array/replacing-disks-in-array.mdx | 266 ++++ .../manage-storage/cache-pools.mdx | 205 ++- .../manage-storage/file-systems.mdx | 403 ++++-- .../partials/array-check-parity.mdx | 2 +- .../manage-storage/partials/btrfs-balance.mdx | 19 - .../manage-storage/partials/btrfs-scrub.mdx | 23 - .../partials/file-system-btrfs.mdx | 5 - .../partials/file-system-xfs.mdx | 5 - .../partials/file-system-zfs.mdx | 7 - .../partials/move-array-to-pool.mdx | 12 +- .../move-between-pools-using-mover.mdx | 8 +- .../partials/move-pool-to-array.mdx | 10 +- .../partials/remove-disk-command-line.mdx | 10 +- .../partials/remove-disk-gui.mdx | 8 +- .../using-unraid-to/manage-storage/shares.mdx | 424 ++---- .../community-applications.mdx | 2 +- docusaurus.config.ts | 964 ++++++++++---- scripts/format-crowdin-spacing.js | 458 ++++--- sitebar-semver-sort.d.ts | 16 + 44 files changed, 3482 insertions(+), 3098 deletions(-) delete mode 100644 docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/array/_category_.json create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/array/adding-disks-to-array.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/array/array-health-and-maintenance.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/array/overview.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/array/removing-disks-from-array.mdx create mode 100644 docs/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array.mdx delete mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx delete mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx delete mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx delete mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx delete mode 100644 docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx create mode 100644 sitebar-semver-sort.d.ts diff --git a/.markdownlint.json b/.markdownlint.json index 194ed6ccf1..73f9d2c2b4 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -4,7 +4,15 @@ "details", "summary", "Tabs", - "TabItem" + "TabItem", + "CliCpuInfo", + "CliMemoryInfo", + "CliStorageInfo", + "a", + "br", + "strong", + "div", + "h3" ] }, "MD013": false diff --git a/.remarkrc.mjs b/.remarkrc.mjs index cb63a4c273..d2b22dd51f 100644 --- a/.remarkrc.mjs +++ b/.remarkrc.mjs @@ -1,119 +1,120 @@ // @ts-check -import remarkFrontmatter from 'remark-frontmatter' -import remarkGfm from 'remark-gfm' -import remarkMdx from 'remark-mdx' -import remarkDirective from 'remark-directive' -import remarkPresetLintRecommended from 'remark-preset-lint-recommended' -import remarkLintListItemIndent from 'remark-lint-list-item-indent' -import remarkLintOrderedListMarkerStyle from 'remark-lint-ordered-list-marker-style' -import remarkLintNoUndefinedReferences from 'remark-lint-no-undefined-references' -import remarkLintNoDuplicateDefinitions from 'remark-lint-no-duplicate-definitions' -import remarkLintNoUnusedDefinitions from 'remark-lint-no-unused-definitions' -import remarkLintDefinitionCase from 'remark-lint-definition-case' -import remarkLintFencedCodeMarker from 'remark-lint-fenced-code-marker' -import remarkLintCodeBlockStyle from 'remark-lint-code-block-style' -import remarkLintHeadingStyle from 'remark-lint-heading-style' -import remarkLintLinkTitleStyle from 'remark-lint-link-title-style' -import remarkLintMaximumLineLength from 'remark-lint-maximum-line-length' -import remarkLintNoFileNameOuterDashes from 'remark-lint-no-file-name-outer-dashes' -import remarkLintNoHeadingPunctuation from 'remark-lint-no-heading-punctuation' -import remarkLintNoMultipleToplevelHeadings from 'remark-lint-no-multiple-toplevel-headings' -import remarkLintNoShellDollars from 'remark-lint-no-shell-dollars' -import {visit, SKIP} from 'unist-util-visit' -import jsxContentSpacing from './remark-jsx-spacing.js' +import remarkFrontmatter from "remark-frontmatter"; +import remarkGfm from "remark-gfm"; +import remarkMdx from "remark-mdx"; +import remarkDirective from "remark-directive"; +import remarkPresetLintRecommended from "remark-preset-lint-recommended"; +import remarkLintListItemIndent from "remark-lint-list-item-indent"; +import remarkLintOrderedListMarkerStyle from "remark-lint-ordered-list-marker-style"; +import remarkLintNoUndefinedReferences from "remark-lint-no-undefined-references"; +import remarkLintNoDuplicateDefinitions from "remark-lint-no-duplicate-definitions"; +import remarkLintNoUnusedDefinitions from "remark-lint-no-unused-definitions"; +import remarkLintDefinitionCase from "remark-lint-definition-case"; +import remarkLintFencedCodeMarker from "remark-lint-fenced-code-marker"; +import remarkLintCodeBlockStyle from "remark-lint-code-block-style"; +import remarkLintHeadingStyle from "remark-lint-heading-style"; +import remarkLintLinkTitleStyle from "remark-lint-link-title-style"; +import remarkLintMaximumLineLength from "remark-lint-maximum-line-length"; +import remarkLintNoFileNameOuterDashes from "remark-lint-no-file-name-outer-dashes"; +import remarkLintNoHeadingPunctuation from "remark-lint-no-heading-punctuation"; +import remarkLintNoMultipleToplevelHeadings from "remark-lint-no-multiple-toplevel-headings"; +import remarkLintNoShellDollars from "remark-lint-no-shell-dollars"; +import { visit, SKIP } from "unist-util-visit"; +import jsxContentSpacing from "./remark-jsx-spacing.js"; const plugins = [ - // MDX support - remarkMdx, - remarkDirective, - directiveColonSafe, - stripDanglingDirectiveClosings, - remarkFrontmatter, - remarkGfm, - - // Base recommended rules - remarkPresetLintRecommended, - - // Custom lint rule for Crowdin compatibility (reports missing newlines) - jsxContentSpacing, - - // List formatting - [remarkLintListItemIndent, 'one'], // Consistent list indentation - [remarkLintOrderedListMarkerStyle, '.'], // Use . for ordered lists - - // Code formatting - [remarkLintFencedCodeMarker, '`'], // Use backticks for code blocks - [remarkLintCodeBlockStyle, 'fenced'], // Use fenced code blocks - [remarkLintNoShellDollars, false], // Allow $ in shell examples - - // Heading formatting - [remarkLintHeadingStyle, 'atx'], // Use # style headings - [remarkLintNoHeadingPunctuation, false], // Allow punctuation in headings (for questions) - remarkLintNoMultipleToplevelHeadings, // Only one # heading per file - - // Link and reference formatting - [remarkLintLinkTitleStyle, '"'], // Use double quotes for link titles - [remarkLintNoUndefinedReferences, false], // Disable to avoid conflicts with MDX admonitions - remarkLintNoDuplicateDefinitions, - remarkLintNoUnusedDefinitions, - [remarkLintDefinitionCase, false], // Don't enforce case for definitions - - // General formatting - [remarkLintMaximumLineLength, false], // Disable line length limit (tables need this) - remarkLintNoFileNameOuterDashes, // No leading/trailing dashes in filenames - - // Disable rules that conflict with MDX - // Disable rules that conflict with MDX - ['remark-lint-no-html', false], // Allow HTML in MDX - ['remark-lint-no-inline-padding', false], // Allow padding in inline code -] + // MDX support + remarkMdx, + remarkDirective, + directiveColonSafe, + stripDanglingDirectiveClosings, + remarkFrontmatter, + remarkGfm, + + // Base recommended rules + remarkPresetLintRecommended, + + // Custom lint rule for Crowdin compatibility (reports missing newlines) + jsxContentSpacing, + + // List formatting + [remarkLintListItemIndent, "one"], // Consistent list indentation + [remarkLintOrderedListMarkerStyle, "."], // Use . for ordered lists + + // Code formatting + [remarkLintFencedCodeMarker, "`"], // Use backticks for code blocks + [remarkLintCodeBlockStyle, "fenced"], // Use fenced code blocks + [remarkLintNoShellDollars, false], // Allow $ in shell examples + + // Heading formatting + [remarkLintHeadingStyle, "atx"], // Use # style headings + [remarkLintNoHeadingPunctuation, false], // Allow punctuation in headings (for questions) + remarkLintNoMultipleToplevelHeadings, // Only one # heading per file + + // Link and reference formatting + [remarkLintLinkTitleStyle, '"'], // Use double quotes for link titles + [remarkLintNoUndefinedReferences, false], // Disable to avoid conflicts with MDX admonitions + remarkLintNoDuplicateDefinitions, + remarkLintNoUnusedDefinitions, + [remarkLintDefinitionCase, false], // Don't enforce case for definitions + + // General formatting + [remarkLintMaximumLineLength, false], // Disable line length limit (tables need this) + remarkLintNoFileNameOuterDashes, // No leading/trailing dashes in filenames + + // Disable rules that conflict with MDX + // Disable rules that conflict with MDX + ["remark-lint-no-html", false], // Allow HTML in MDX + ["remark-lint-no-inline-padding", false], // Allow padding in inline code +]; const remarkConfig = { plugins, settings: { - bullet: '-', // Use - for unordered lists - emphasis: '*', // Use * for emphasis + bullet: "-", // Use - for unordered lists + emphasis: "*", // Use * for emphasis // Note: strong is omitted to avoid MDX conflicts fences: true, // Use fenced code blocks - listItemIndent: 'one', // One space after list markers - quote: '"', // Use double quotes (standard for Docusaurus) - rule: '-', // Use - for horizontal rules (not ***) + listItemIndent: "one", // One space after list markers + quote: '"', // Use double quotes (standard for Docusaurus) + rule: "-", // Use - for horizontal rules (not ***) tightDefinitions: true, hardBreakEscape: false, // Avoid escaping hard breaks with trailing backslashes }, }; -export default remarkConfig +export default remarkConfig; function directiveColonSafe() { - const data = this.data() - const extensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []) + const data = this.data(); + const extensions = + data.toMarkdownExtensions || (data.toMarkdownExtensions = []); for (const extension of extensions) { if ( extension && - typeof extension === 'object' && - 'handlers' in extension && + typeof extension === "object" && + "handlers" in extension && extension.handlers && - 'containerDirective' in extension.handlers && + "containerDirective" in extension.handlers && Array.isArray(extension.unsafe) ) { extension.unsafe = extension.unsafe.filter( - (rule) => rule.character !== ':' - ) + (rule) => rule.character !== ":" + ); - wrapContainerDirectiveHandler(extension) + wrapContainerDirectiveHandler(extension); } } - data.toMarkdownExtensions = extensions + data.toMarkdownExtensions = extensions; } function wrapContainerDirectiveHandler(extension) { - const {containerDirective} = extension.handlers + const { containerDirective } = extension.handlers; - if (typeof containerDirective !== 'function') { - return + if (typeof containerDirective !== "function") { + return; } extension.handlers.containerDirective = function wrappedContainerDirective( @@ -122,100 +123,109 @@ function wrapContainerDirectiveHandler(extension) { state, info ) { - const previous = state.bulletLastUsed - state.bulletLastUsed = undefined + const previous = state.bulletLastUsed; + state.bulletLastUsed = undefined; try { - const output = containerDirective(node, parent, state, info) - return collapseDirectivePadding(normalizeDirectiveFences(output)) + const output = containerDirective(node, parent, state, info); + return collapseDirectivePadding(normalizeDirectiveFences(output)); } finally { - state.bulletLastUsed = previous + state.bulletLastUsed = previous; } - } + }; } function collapseDirectivePadding(value) { return value - .replace(/(^|\n)([ \t]*:::[^\n]*?)\n\n/g, '$1$2\n') - .replace(/\n\n([ \t]*:::)/g, '\n$1') + .replace(/(^|\n)([ \t]*:::[^\n]*?)\n\n/g, "$1$2\n") + .replace(/\n\n([ \t]*:::)/g, "\n$1"); } function normalizeDirectiveFences(value) { - const lines = value.split('\n') - const stack = [] + const lines = value.split("\n"); + /** @type {{indent: string, count: number}[]} */ + const stack = []; - const normalized = lines.map((line) => { - const openMatch = line.match(/^([ \t]*)(:{3,})([A-Za-z[{].*)$/) + const normalized = lines.map((/** @type {string} */ line) => { + const openMatch = line.match(/^([ \t]*)(:{3,})([A-Za-z[{].*)$/); if (openMatch) { - const [, indent, colons, rest] = openMatch - const count = colons.length - stack.push({indent, count}) - return `${indent}${':'.repeat(count)}${rest}` + const [, indent, colons, rest] = openMatch; + const count = colons.length; + stack.push({ indent, count }); + return `${indent}${":".repeat(count)}${rest}`; } - const closeMatch = line.match(/^([ \t]*)(:{3,})([ \t]*)$/) + const closeMatch = line.match(/^([ \t]*)(:{3,})([ \t]*)$/); if (closeMatch) { - const [, indent, colons, trailing = ''] = closeMatch - let count = colons.length - let matched = false + const [, indent, colons, trailing = ""] = closeMatch; + let count = colons.length; + let matched = false; for (let i = stack.length - 1; i >= 0; i--) { if (stack[i].indent === indent) { - count = stack[i].count - stack.length = i - matched = true - break + count = stack[i].count; + // Truncate the stack at the match index (remove the matched and any deeper entries). + // Using splice is clearer than setting .length directly. + stack.splice(i); + matched = true; + break; } } if (!matched && stack.length > 0) { - const entry = stack.pop() - count = entry.count - matched = true + const entry = stack.pop(); + if (entry) { + count = entry.count; + matched = true; + } } if (!matched) { - return '' + // Unmatched closing fence: omit this line from output rather than + // returning an empty string (which would create an unwanted blank + // line when the array is later joined). + return null; } - return `${indent}${':'.repeat(count)}${trailing}` + return `${indent}${":".repeat(count)}${trailing}`; } - return line - }) + return line; + }); - return normalized.join('\n') + // Filter out any null/undefined entries (unmatched closers) before joining + // so we don't introduce blank lines into the output. + return normalized.filter(Boolean).join("\n"); } function stripDanglingDirectiveClosings() { - return (tree) => { - visit(tree, (node, index, parent) => { - if ( - !parent || - typeof index !== 'number' || - node.type !== 'paragraph' || - !node.children || - node.children.length !== 1 - ) { - return - } + return /** @type {(tree: any) => any} */ ( + (tree) => { + visit(tree, (node, index, parent) => { + if ( + !parent || + typeof index !== "number" || + node.type !== "paragraph" || + !node.children || + node.children.length !== 1 + ) { + return; + } - const child = node.children[0] + const child = node.children[0]; - if ( - child.type !== 'text' || - !/^:{3,}$/.test(child.value.trim()) - ) { - return - } + if (child.type !== "text" || !/^:{3,}$/.test(child.value.trim())) { + return; + } - const previous = parent.children[index - 1] - if (!previous || previous.type !== 'containerDirective') { - return - } + const previous = parent.children[index - 1]; + if (!previous || previous.type !== "containerDirective") { + return; + } - parent.children.splice(index, 1) - return [SKIP, index] - }) - } + parent.children.splice(index, 1); + return [SKIP, index]; + }); + } + ); } 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 35554b08e6..941fbd3a77 100644 --- a/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx +++ b/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx @@ -345,7 +345,7 @@ Historically, %%ZFS|zfs%% vdevs have a fixed width. You can’t add a disk to an Ways to expand your pool include: - **Adding a new vdev:** Grow your pool by adding another vdev (like a new mirror or RAIDZ group). This increases capacity, but you must add disks in sets that match the vdev’s configuration. -- **Replacing drives with larger ones:** Swap each drive in a vdev, one at a time, for a larger disk. See [drive replacement](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-faileddisabled-disks) for detailed procedures. After all drives are replaced and the pool resolves, the vdev’s capacity increases. +- **Replacing drives with larger ones:** Swap each drive in a vdev, one at a time, for a larger disk. See [drive replacement](../../using-unraid-to/manage-storage/array/replacing-disks-in-array.mdx#replacing-faileddisabled-disks) for detailed procedures. After all drives are replaced and the pool resolves, the vdev's capacity increases. - **Creating a new pool:** Starting a new %%ZFS|zfs%% pool keeps things organized and independent for different data types or workloads. :::tip[Planning ahead] diff --git a/docs/unraid-os/getting-started/what-is-unraid.mdx b/docs/unraid-os/getting-started/what-is-unraid.mdx index 4ffcbc2918..fcfc25ae1b 100644 --- a/docs/unraid-os/getting-started/what-is-unraid.mdx +++ b/docs/unraid-os/getting-started/what-is-unraid.mdx @@ -85,7 +85,7 @@ Unraid features a [user-friendly web interface](./explore-the-user-interface/tou For added data safety, you can set up a %%cache pool|cache-pool%% with multiple drives. This setup not only increases storage space but also uses technologies like %%ZFS|zfs%% or %%BTRFS|btrfs%% to provide extra protection for your data, similar to %%RAID 1|raid1%%. Overall, Unraid’s management of shares and %%cache drives|cache%% creates a flexible, efficient, and secure storage solution. - [Learn more about configuring shares and cache here.](../using-unraid-to/manage-storage/array-configuration.mdx) + [Learn more about configuring shares and cache here.](../using-unraid-to/manage-storage/array/overview.mdx)
![How data capture works with Cache Pool](/img/Cache-pool.gif) diff --git a/docs/unraid-os/release-notes/7.2.0.md b/docs/unraid-os/release-notes/7.2.0.md index 0ed4e23166..2e562f87b7 100644 --- a/docs/unraid-os/release-notes/7.2.0.md +++ b/docs/unraid-os/release-notes/7.2.0.md @@ -8,7 +8,7 @@ Note that some plugins may have visual issues in this release; please give plugi ## Upgrading -For step-by-step instructions, see [Upgrading Unraid](../../unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx). Questions about your [license](../../unraid-os/troubleshooting/licensing-faq.mdx#pre-release-policy)? +For step-by-step instructions, see [Upgrading Unraid](../../unraid-os/system-administration/maintain-and-update/upgrading-unraid.mdx). For questions about your [license](../../unraid-os/troubleshooting/licensing-faq.mdx#pre-release-policy), see our FAQ. ### Known issues @@ -33,10 +33,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 @@ -49,7 +49,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. @@ -61,7 +61,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 @@ -90,7 +90,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 @@ -127,16 +127,16 @@ The Unraid webGUI is now responsive! Most screens should now work as well on you #### Login to the WebGUI via SSO -Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net account or any other OIDC-compliant provider. For details on this *optional* feature, see [OIDC Provider Setup](../../API/oidc-provider-setup.mdx) in the Docs. +Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net account or any other OIDC-compliant provider. For details on this _optional_ feature, see [OIDC Provider Setup](../../API/oidc-provider-setup.mdx) in the Docs. #### Other WebGUI changes - 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 @@ -150,8 +150,8 @@ Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net acc - Feature: Speed up rendering of Plugins and Docker pages - Fix: Prevent issues when clicking an external link from within a changelog - Improvement: Show RAM and network speed in human-readable units \[-rc.2] -- Fix: On ***Settings → Display Settings → Font size***, remove extreme options that break the webGUI \[-rc.2] -- Fix: Display aberration on ***Settings → Scheduler*** when set to Hourly \[-rc.2] +- Fix: On **_Settings → Display Settings → Font size_**, remove extreme options that break the webGUI \[-rc.2] +- Fix: Display aberration on **_Settings → Scheduler_** when set to Hourly \[-rc.2] - Fix: Disabled dropdown menu items were not shown in disabled color in Firefox \[-rc.2] ## Misc @@ -169,9 +169,9 @@ Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net acc - 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 \[-rc.2] - Improvement: Protect WebGUI from fatal PHP errors \[-rc.2] @@ -181,20 +181,20 @@ Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net acc ### Linux kernel - version 6.12.53-Unraid \[-rc.2] - - built-in: CONFIG\_EFIVAR\_FS: EFI Variable filesystem - - CONFIG\_INTEL\_RAPL: Intel RAPL support via MSR interface - - CONFIG\_NLS\_DEFAULT: change from "iso8859-1" to "utf8" + - built-in: CONFIG_EFIVAR_FS: EFI Variable filesystem + - CONFIG_INTEL_RAPL: Intel RAPL support via MSR interface + - CONFIG_NLS_DEFAULT: change from "iso8859-1" to "utf8" - Added eMMC support: - - CONFIG\_MMC: MMC/SD/SDIO card support - - CONFIG\_MMC\_BLOCK: MMC block device driver - - CONFIG\_MMC\_SDHCI: Secure Digital Host Controller Interface support - - CONFIG\_MMC\_SDHCI\_PCI: SDHCI support on PCI bus - - CONFIG\_MMC\_SDHCI\_ACPI: SDHCI support for ACPI enumerated SDHCI controllers - - CONFIG\_MMC\_SDHCI\_PLTFM: SDHCI platform and OF driver helper + - CONFIG_MMC: MMC/SD/SDIO card support + - CONFIG_MMC_BLOCK: MMC block device driver + - CONFIG_MMC_SDHCI: Secure Digital Host Controller Interface support + - CONFIG_MMC_SDHCI_PCI: SDHCI support on PCI bus + - CONFIG_MMC_SDHCI_ACPI: SDHCI support for ACPI enumerated SDHCI controllers + - CONFIG_MMC_SDHCI_PLTFM: SDHCI platform and OF driver helper ### Base distro updates -- aaa\_glibc-solibs: version 2.42 +- aaa_glibc-solibs: version 2.42 - adwaita-icon-theme: version 48.1 - at-spi2-core: version 2.58.1 \[-rc.2] - bash: version 5.3.003 @@ -227,7 +227,7 @@ Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net acc - iw: version 6.17 - json-glib: version 1.10.8 - kbd: version 2.9.0 -- kernel-firmware: version 20251011\_919daee \[-rc.2] +- kernel-firmware: version 20251011_919daee \[-rc.2] - krb5: version 1.22.1 - less: version 679 - libXfixes: version 6.0.2 @@ -257,7 +257,7 @@ Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net acc - mcelog: version 207 \[-rc.2] - mesa: version 25.2.4 \[-rc.2] - nano: version 8.6 -- ncurses: version 6.5\_20250816 +- ncurses: version 6.5_20250816 - nettle: version 3.10.2 - nghttp2: version 1.67.1 - nghttp3: version 1.12.0 @@ -272,9 +272,9 @@ Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net acc - pango: version 1.56.4 - pciutils: version 3.14.0 - perl: version 5.42.0 -- php: version 8.3.26-x86\_64-1\_LT with gettext extension +- php: version 8.3.26-x86_64-1_LT with gettext extension - pixman: version 0.46.4 -- rclone: version 1.70.1-x86\_64-1\_SBo\_LT.tgz +- rclone: version 1.70.1-x86_64-1_SBo_LT.tgz - readline: version 8.3.001 - samba: version 4.23.1 - shadow: version 4.18.0 @@ -297,4 +297,4 @@ Login to the Unraid webGUI using Single Sign‑On (SSO) with your Unraid.net acc - xkeyboard-config: version 2.46 \[-rc.2] - xorg-server: version 21.1.18 - xterm: version 402 -- zfs: version zfs-2.3.4\_6.12.47\_Unraid-x86\_64-2\_LT +- zfs: version zfs-2.3.4_6.12.47_Unraid-x86_64-2_LT 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 d86ddd6bd9..cc45e91672 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,11 +3,11 @@ 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'; -import CliMemoryInfo from './partials/command-line-interface/memory-info.mdx'; -import CliStorageInfo from './partials/command-line-interface/storage-info.mdx'; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; +import CliCpuInfo from "./partials/command-line-interface/cpu-info.mdx"; +import CliMemoryInfo from "./partials/command-line-interface/memory-info.mdx"; +import CliStorageInfo from "./partials/command-line-interface/storage-info.mdx"; # Command line interface @@ -42,56 +42,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 - 1. Download %%PuTTY|putty%% from the [official site](https://www.putty.software/). - 2. Launch the %%PuTTY|putty%% application. - 3. Enter your Unraid server’s IP address or hostname (e.g., `tower.local`). - 4. Set the connection type to `%%SSH|ssh%%`. - 5. (Optional) Save the session name for future use. - 6. Click **Open** to start the session. - 7. When prompted, log in as `root` and then enter your password. +**View drive information:** - Once you've logged in, you're in the Unraid shell environment. Type `exit` when you're finished to close the session. +```bash +hdparm -I /dev/sdX +``` -
- -:::note - -Unraid automatically configures the SSH server on the first boot. Ensure your networking is working properly and that your root password is set before attempting a remote connection. - -::: - -## Drive testing and monitoring - -These tools assist with evaluating performance, checking drive health, and troubleshooting %%array|array%% slowness. All commands should be executed from the terminal or via %%SSH|ssh%%. - -### `hdparm` - -Use this command to test read speed and display drive characteristics. - -
- View hdparm options - Click to expand/collapse - - **Test drive read speed:** - - ```bash - hdparm -tT /dev/sdX - ``` - - The `-t` flag tests buffered disk reads, while `-T` tests cache reads. This primarily measures sequential read performance and helps identify unusually slow drives. - - **Run multiple tests for accuracy:** - - ```bash - for ((i=0;i<5;i++)); do hdparm -tT /dev/sdX; done - ``` - - **View drive information:** - - ```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.
@@ -102,35 +59,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/).
@@ -141,9 +98,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.
@@ -160,13 +117,13 @@ 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. @@ -181,15 +138,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. +:::
@@ -200,23 +157,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 +```
@@ -233,11 +190,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).
@@ -248,11 +205,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-configuration.mdx#replacing-disks). +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).
@@ -263,11 +220,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.
@@ -278,13 +235,13 @@ Helps determine if a replacement drive has enough space before rebuild.
View blockdev usage - Click to expand/collapse - **Syntax:** +**Syntax:** - ``` - 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.
@@ -295,13 +252,13 @@ Identify filesystem labels.
View blkid usage - Click to expand/collapse - **Syntax:** +**Syntax:** - ``` - 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`.
@@ -318,16 +275,16 @@ 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:** @@ -346,23 +303,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 +```
@@ -373,13 +330,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.
@@ -390,31 +347,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: - ``` - 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: - ``` - 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: - ``` - 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.
@@ -429,9 +386,9 @@ Get detailed information about hardware, kernel, and overall system configuratio - - - + + + @@ -451,17 +408,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 +```
@@ -472,10 +429,152 @@ 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. + +
+ +--- + +## File transfer operations + +These methods help you transfer files from external network shares (Windows or Linux SMB/CIFS shares) to your Unraid server using command-line tools and built-in utilities. + +### Using Midnight Commander (built-in) + +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 + mc + ``` + + This interface offers drag-and-drop navigation between local shares and mounted network paths. + +3. Mount a network share (if it's not already mounted): + + ```bash + # Create a temporary mount point + mkdir /work + ``` + + ```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. + ``` + + ```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 + ``` + + - Replace `workstation`, `share`, and `youruser` with the appropriate values. + - The `iocharset=utf8` option helps maintain international filenames. + + **Security note:** Do not pass passwords on the command line (e.g. `password=...`). + Command arguments can be recorded in shell history and are visible to other local + users via process listings; prefer interactive prompts or a credentials file + protected with `chmod 600`. - 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. +4. Use the MC panes to transfer files between `/work` (the network share) and any `/mnt/user/` or `/mnt/diskX` share. +5. Clean up afterwards: + + ```bash + umount /work + rmdir /work + ``` + +Midnight Commander runs entirely within the built-in system, requiring no additional installation. It's suitable for most transfer needs, including those involving Unicode filenames, and it preserves file attributes when both source and destination support them. + +### Using Krusader + +If you prefer a graphical user interface, you can use Docker containers like [Krusader](https://unraid.net/community/apps?q=krusader#r:~:text=batch%20renaming%2C%20etc.-,Krusader,-Productivity%2C%20Tools) as a third-party solution. + +1. Install Krusader: + - Navigate to the **Apps** tab (Community Applications). + - Search for and install the **Krusader** Docker container. +2. Start the container and access its WebUI from the **Docker** tab. +3. Connect to remote shares within Krusader, and use drag-and-drop or copy-paste to transfer files between the network share and your Unraid %%array|array%%. + +:::info + +Other popular file manager containers include [**Double Commander**](https://unraid.net/community/apps?q=double+commander#r:~:text=of%201%20App-,doublecommander,-Tools%20/%20Utilities%2C) and [**CloudCommander**](https://unraid.net/community/apps?q=cloudcommander#r:~:text=of%201%20App-,CloudCommander,-Tools%20/%20Utilities%2C), both available through Community Applications. + +::: + +### Command-line methods + +For advanced users or those using automation, you can also utilize command-line transfer methods. + +
+ View command-line transfer instructions - Click to expand/collapse + +1. Open the terminal (Web Terminal or %%SSH|ssh%% as `root`). + +1. Create and mount a network share: + +```bash +mkdir /work +``` + +```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. +``` + +```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 +``` + +**Security note:** Do not pass passwords on the command line. Use an +interactive prompt or a credentials file with strict permissions instead. + +1. Copy files: + + + - You can use `cp`: + + ```bash + cp -r /work/* /mnt/disk1 + ``` + + - Or, use `rsync` for detailed progress: + + ```bash + rsync -av --progress /work/ /mnt/disk1/ + ``` + +1. Unmount and remove the temporary directory: + + ```bash + umount /work + rmdir /work + ```
+ +:::caution + +When transferring files with special or international characters, always mount the share with the `iocharset=utf8` option. Failing to do so may result in incorrect filenames or unreadable files on other platforms. + +Also, if you copy files as `root` via terminal, they may have restrictive permissions. If this occurs, use the **New Permissions** tool from the **Tools** menu in the %%WebGUI|web-gui%% or the **Docker Safe New Perms** if you're dealing with Docker-involved shares to reset permissions, ensuring all users have network access. + +::: diff --git a/docs/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx b/docs/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx index 3abd42603a..48be886200 100644 --- a/docs/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx +++ b/docs/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx @@ -166,7 +166,7 @@ To safely reconfigure your %%array|array%%: 4. Assign the correct drives as %%parity|parity%% and the rest as data drives in the **Main** tab. 5. If you have a single %%parity|parity%% drive, the order of data drives is not critical. Check **Parity is Valid** only if you are certain you assigned the same physical parity disk and no writes occurred since the original configuration. For dual %%parity|parity%%, both the order of the data drives and the assignment of parity1 and parity2 are important—parity1 and parity2 are not interchangeable, and %%parity|parity%% must be rebuilt if either is changed. 6. Start the %%array|array%% to commit assignments. Data drives should mount, and their contents should remain intact. -7. If you checked **Parity is Valid**, run a correcting [%%parity|parity%% check](../../using-unraid-to/manage-storage/array-configuration.mdx#checking-array-devices) to confirm that your configuration is correct. +7. If you checked **Parity is Valid**, run a correcting [%%parity|parity%% check](../../using-unraid-to/manage-storage/array/array-health-and-maintenance.mdx#parity-checks) to confirm that your configuration is correct. :::note 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 7b428bbc60..55ee5a6c93 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 @@ -149,13 +149,13 @@ Only use these methods if you can't access the %%WebGUI|web-gui%%: When using the Downgrade OS tool (WebGUI), the tool will automatically handle the following: -1. **System validation**: It checks that the downgrade is safe to perform. -2. **File backup**: A backup of your current system files will be created. -3. **Version verification**: The tool ensures that the files for the target version are valid and complete. -4. **File replacement**: It replaces the current OS files with the files from the previous version. -5. **Configuration preservation**: Your current settings will be maintained. -6. **System preparation**: The system will be prepared for the previous version. -7. **Reboot scheduling**: A reboot will be scheduled to finish the downgrade. +1. System validation checks that the downgrade is safe to perform. +2. File backup creates a backup of your current system files. +3. Version verification ensures that the files for the target version are valid and complete. +4. File replacement replaces the current OS files with the files from the previous version. +5. Configuration preservation maintains your current settings. +6. System preparation prepares the system for the previous version. +7. Reboot scheduling schedules a reboot to finish the downgrade. ::: @@ -163,12 +163,12 @@ When using the Downgrade OS tool (WebGUI), the tool will automatically handle th After the downgrade is complete and your server has rebooted: -1. **Check the version**: Verify that you're running the version of Unraid you expect. -2. **Test core functionality**: Ensure that the %%array|array%%, Docker, and VM services are working properly. -3. **Verify plugins**: Check that your installed plugins are compatible and functioning as expected. -4. **Test Docker containers**: Start your Docker containers and confirm they are working correctly. -5. **Check VMs**: If you have any virtual machines (VMs), make sure they start and operate properly. See [VM setup](../../using-unraid-to/create-virtual-machines/vm-setup.mdx) for configuration guidance. -6. **Monitor system logs**: Keep an eye on the system logs for any error messages. Use [diagnostics tools](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx) to capture detailed system information. +1. Check the version: Verify that you're running the version of Unraid you expect. +2. Test core functionality: Ensure that the %%array|array%%, Docker, and VM services are working properly. +3. Verify plugins: Check that your installed plugins are compatible and functioning as expected. +4. Test Docker containers: Start your Docker containers and confirm they are working correctly. +5. Check VMs: If you have any virtual machines (VMs), make sure they start and operate properly. See [VM setup](../../using-unraid-to/create-virtual-machines/vm-setup.mdx) for configuration guidance. +6. Monitor system logs: Keep an eye on the system logs for any error messages. Use [diagnostics tools](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx) to capture detailed system information. #### Troubleshooting downgrade issues @@ -189,11 +189,11 @@ If you don’t see an option to downgrade: If the downgrade process doesn't go as planned: -1. **Don’t panic**: Your system should still work with the current version. -2. **Check logs**: Take a look at the system logs to find specific error messages. Use [diagnostics tools](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx) for comprehensive log analysis. -3. **Verify files**: Ensure that all required files for the target version are available. -4. **Try the manual method**: If the tool doesn't work, consider using the manual downgrade methods. -5. **Contact support**: If problems continue, reach out to Unraid support with your diagnostics. +1. Don't panic. Your system should still work with the current version. +2. Take a look at the system logs to find specific error messages. Use [diagnostics tools](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx) for comprehensive log analysis. +3. Verify files: Ensure that all required files for the target version are available. +4. Try the manual method: If the tool doesn't work, consider using the manual downgrade methods. +5. Contact support: If problems continue, reach out to Unraid support with your diagnostics.
@@ -202,11 +202,11 @@ If the downgrade process doesn't go as planned: If your system doesn’t boot after downgrading: -1. **Boot from USB**: Use another computer to access your USB flash device. See [boot troubleshooting](../../troubleshooting/common-issues/boot-and-startup-failures.mdx) for detailed recovery steps. -2. **Restore from backup**: Copy your backup files back to the USB device. -3. **Check file integrity**: Make sure all system files are present and not damaged. -4. **Try Safe Mode**: Boot into [Safe Mode](../../using-unraid-to/customize-your-experience/plugins.mdx#troubleshooting-with-safe-mode) for further troubleshooting. -5. **Manual recovery**: If necessary, utilize the manual recovery methods. +1. Boot from USB: Use another computer to access your USB flash device. See [boot troubleshooting](../../troubleshooting/common-issues/boot-and-startup-failures.mdx) for detailed recovery steps. +2. Restore from backup: Copy your backup files back to the USB device. +3. Check file integrity: Make sure all system files are present and not damaged. +4. Try Safe Mode: Boot into [Safe Mode](../../using-unraid-to/customize-your-experience/plugins.mdx#troubleshooting-with-safe-mode) for further troubleshooting. +5. Manual recovery: If necessary, utilize the manual recovery methods.
diff --git a/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx b/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx index 3ee2be8c28..8396399e1a 100644 --- a/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx +++ b/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-advanced.mdx @@ -8,7 +8,7 @@ To reset via this method: 3. **Open the file** located at `/config/shadow` using a text editor (like Notepad++). -4. **Edit the line** that looks like: +4. Edit the line that looks like: `root:$&$&%*1112233484847648DHD$%.:15477:0:99999:7:::` to this instead: diff --git a/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx b/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx index 4959b0b635..b461376f39 100644 --- a/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx +++ b/docs/unraid-os/system-administration/secure-your-server/partials/reset-password-basic.mdx @@ -4,7 +4,7 @@ For the simplest way to reset your password: 1. **Shut down** your Unraid server. 2. **Connect the USB flash drive** to a computer (Windows or Mac). -3. **Delete these files** from the USB drive: +3. Delete these files from the USB drive: - `/config/shadow` - `/config/smbpasswd` 4. **Disconnect the USB flash drive** and reconnect it to your Unraid server, then start it up. diff --git a/docs/unraid-os/troubleshooting/common-issues/data-recovery.mdx b/docs/unraid-os/troubleshooting/common-issues/data-recovery.mdx index c33dc60930..4f3c32a7e8 100644 --- a/docs/unraid-os/troubleshooting/common-issues/data-recovery.mdx +++ b/docs/unraid-os/troubleshooting/common-issues/data-recovery.mdx @@ -239,7 +239,7 @@ Here’s what to do if you find yourself in this situation: ## Recover data using ddrescue -When standard Unraid recovery methods, such as the [replacing disks](../../using-unraid-to/manage-storage/array-configuration.mdx#replacing-disks) procedure, aren't feasible due to multiple disk failures or invalid %%parity|parity%%, specialized tools like **ddrescue** can help you salvage as much data as possible from a failing drive. +When standard Unraid recovery methods, such as the [replacing disks](../../using-unraid-to/manage-storage/array/replacing-disks-in-array.mdx) procedure, aren't feasible due to multiple disk failures or invalid %%parity|parity%%, specialized tools like **ddrescue** can help you salvage as much data as possible from a failing drive. :::note[Best practices for data recovery] diff --git a/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx b/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx index 5aa04694b2..b063948ade 100644 --- a/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx +++ b/docs/unraid-os/troubleshooting/common-issues/partials/data-recovery/repair-xfs.mdx @@ -1,12 +1,12 @@ Starting with Unraid 7.0, XFS file system repair is now fully automated through the WebGUI: -1. **Initial Check**: Click the **CHECK** button (no options to enter) -2. **Check Results**: - - **No corruption detected**: Shows "no filesystem corruption detected" and the **CHECK** button remains - - **Corruption detected**: Shows "filesystem corruption detected" and a **FIX** button appears -3. **Repair Process**: Click **FIX** to automatically repair the file system -4. **Additional Actions**: If needed, a **ZERO LOG** button may appear -5. **Completion**: Shows "filesystem repaired" when the process is complete +1. Click the **CHECK** button (no options to enter). +2. Check results: + - **No corruption detected**: Shows "no filesystem corruption detected" and the **CHECK** button remains. + - **Corruption detected**: Shows "filesystem corruption detected" and a **FIX** button appears. +3. Click **FIX** to automatically repair the file system. +4. If needed, a **ZERO LOG** button may appear. +5. The process shows "filesystem repaired" when complete. This automated system eliminates the need for users to manually enter repair options and ensures the correct repair sequence is followed. diff --git a/docs/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx b/docs/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx index ea790c5cec..1c0ef0ec15 100644 --- a/docs/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx +++ b/docs/unraid-os/troubleshooting/common-issues/system-crashes-and-stability.mdx @@ -175,7 +175,7 @@ System stability typically depends on: Regular maintenance helps catch disk issues before they cause data loss or system instability. These proactive steps can significantly extend drive lifespan and maintain performance. 1. Regularly monitor drive %%SMART|smart%% data using Unraid's built-in [disk health tools](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx). - 2. Run periodic [%%parity checks|parity-check%%s](../../using-unraid-to/manage-storage/array-configuration.mdx#parity--read-checks) to ensure data integrity. + 2. Run periodic [%%parity checks|parity-check%%s](../../using-unraid-to/manage-storage/array/array-health-and-maintenance.mdx#parity-checks) to ensure data integrity. 3. Monitor disk temperatures and performance metrics. 4. Keep drives properly ventilated and cooled. diff --git a/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx b/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx index f1393c0a4d..5ecc80bad2 100644 --- a/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx +++ b/docs/unraid-os/troubleshooting/common-issues/unclean-shutdowns.mdx @@ -5,9 +5,6 @@ sidebar_label: Unclean shutdowns import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; -import UncleanShutdownsPower from "./partials/unclean-shutdowns/unexpected-power-loss.mdx"; -import UncleanShutdownsFlash from "./partials/unclean-shutdowns/flash-drive-failure.mdx"; -import UncleanShutdownsTerminal from "./partials/unclean-shutdowns/open-terminal-sessions.mdx"; # Unclean shutdowns @@ -30,30 +27,40 @@ A well-configured UPS is your best defense against unclean shutdowns caused by p - **Connect the UPS via USB** to your Unraid server. - **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-configuration.mdx#startstop-the-array) and power down safely. +- **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. Look into the [NUT plugin](https://unraid.net/community/apps/c/plugins/p4?srsltid=AfmBOop675PrJQW4iqb4JBN3GyPpwDDiSmnZReq78t27XyxkFdMX8inO#:~:text=NUT%20%2D%20Network%20UPS%20Tools) for broader compatibility with more advanced UPS models or unsupported hardware. ::: -## Events That Cause Unclean Shutdowns +## Events that cause unclean shutdowns -Understanding the main triggers for unclean shutdowns helps you prevent them. Explore the tabs below for details on each scenario. +Understanding the main triggers for unclean shutdowns helps you prevent them. The following sections cover the most common scenarios and their solutions. - - - - +### Unexpected power loss - - - +Power interruptions are one of the main reasons for unclean shutdowns. Protect your system with a properly configured UPS that can automatically shut down Unraid before the battery runs out. - - - - +:::note + +Unraid supports most UPS units using the %%apcupsd Protocol|apcupsd%% protocol (APC and CyberPower are usually compatible). If your UPS isn't supported, consider using the Network UPS Tools (NUT) plugin from Community Applications. + +::: + +### Flash drive failure + +The %%array|array%% status is stored on your USB flash device. If the flash drive becomes unavailable or enters a read-only state, Unraid cannot update the shutdown status, even if the %%array|array%% stops correctly. This results in an unclean shutdown being detected at the next boot. + +### Open terminal sessions + +Unraid waits for all open terminal or SSH sessions to close during shutdown. If these sessions remain active and the shutdown timer expires, a forced shutdown occurs. + +:::tip + +The [Dynamix Stop Shell](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository) plugin can automatically close lingering bash or SSH sessions, helping ensure a graceful shutdown. However, be cautious if there are ongoing write operations to the %%array|array%%. + +::: --- @@ -155,6 +162,8 @@ Without the %%QEMU|qemu%% %%Guest Agent|guest-agent%% installed, hibernation may ::: +--- + ### Timeout configuration In this section, we’ll cover how to configure timeouts for various systems and processes. This information is important to ensure that your %%VMs|vm%% and Docker containers shut down gracefully without data loss. @@ -174,18 +183,18 @@ If you're experiencing unclean shutdowns or containers that crash during shutdow 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%% All %%VMs|vm%% in each stage are processed at the same time, meaning the total shutdown time can be calculated as: VM timeout × 3. -2. **Docker containers stop**: All containers will stop simultaneously (total time = Docker timeout). +2. Docker containers stop simultaneously (total time = Docker timeout). -3. **Other services**: This includes tasks like LXC containers and third-party plugins, which usually take a few seconds. +3. Other services include tasks like LXC containers and third-party plugins, which usually take a few seconds. -4. **Array shutdown**: Drives need to be unmounted and data synced; this typically takes 15-30 seconds. +4. Array shutdown: drives need to be unmounted and data synced; this typically takes 15-30 seconds. :::tip[Calculate your general shutdown timeout] @@ -201,108 +210,115 @@ When shutting down, the process happens in the following order: ::: -If all your %%VMs|vm%% are set to hibernate rather than shutting down, then the VM timeout is less critical since hibernation is nearly immediate. You could use a lower VM timeout (for example, 60-120 seconds) as a backup for any %%VMs|vm%% that don’t support hibernation. +If all your %%VMs|vm%% are set to hibernate rather than shutting down, then the VM timeout is less critical since hibernation is nearly immediate. You could use a lower VM timeout (for example, 60-120 seconds) as a backup for any %%VMs|vm%% that don't support hibernation. + +--- ### Detailed configuration guide This section provides in-depth information about configuring timeouts for different system components. Each timeout setting works together to ensure your server shuts down gracefully without data loss. - - +#### VM timeouts - Where to set: ***Settings → VM Manager → VM Shutdown*** (enable Advanced view) +Configure VM shutdown timeouts in **_Settings → VM Manager → VM Shutdown_** (enable Advanced view). - **How it works:** - - %%VMs|vm%% go through three shutdown stages, each consuming the full VM timeout - - All %%VMs|vm%% in each stage are processed simultaneously - - Total VM shutdown time = VM timeout × 3 +**How it works:** - **Common issues:** - - **Windows update interruptions:** Updates during shutdown can be corrupted if timeout expires. - - **Unsaved work:** Dialog boxes asking to save documents can halt shutdown indefinitely. - - **Hibernation failures:** %%VMs|vm%% without %%QEMU|qemu%% %%Guest Agent|guest-agent%% may fail to hibernate and use full timeout. +- %%VMs|vm%% go through three shutdown stages, each consuming the full VM timeout +- All %%VMs|vm%% in each stage are processed simultaneously +- Total VM shutdown time = VM timeout × 3 - :::tip[VM timeout recommendations] - - **Primary recommendation:** Configure %%VMs|vm%% to hibernate instead of shutting down (requires %%QEMU|qemu%% %%Guest Agent|guest-agent%%). - - **If VMs crash during shutdown:** Increase timeout to **300 seconds (5 minutes)** for Windows %%VMs|vm%%. - - **Windows updates:** Set Windows to install updates at startup rather than during shutdown. - - **Test your setup:** Manually stop your %%VMs|vm%% to confirm they shut down or hibernate within the timeout period. - ::: +**Common issues:** - :::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. - ::: +- **Windows update interruptions:** Updates during shutdown can be corrupted if timeout expires. +- **Unsaved work:** Dialog boxes asking to save documents can halt shutdown indefinitely. +- **Hibernation failures:** %%VMs|vm%% without %%QEMU|qemu%% %%Guest Agent|guest-agent%% may fail to hibernate and use full timeout. - +:::tip[VM timeout recommendations] + +- **Primary recommendation:** Configure %%VMs|vm%% to hibernate instead of shutting down (requires %%QEMU|qemu%% %%Guest Agent|guest-agent%%). +- **If VMs crash during shutdown:** Increase timeout to **300 seconds (5 minutes)** for Windows %%VMs|vm%%. +- **Windows updates:** Set Windows to install updates at startup rather than during shutdown. +- **Test your setup:** Manually stop your %%VMs|vm%% to confirm they shut down or hibernate within the timeout period. + +::: - +:::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. +::: - Where to set: ***Settings → Docker*** (enable Advanced view) +#### Docker timeouts - **How it works:** - - Containers are stopped in parallel, so total time equals the Docker stop timeout. - - Most containers stop within 10 seconds, but some may need more time. - - Complex containers with large databases or ongoing operations might require additional time. - - If the timer expires, containers are force-stopped. +Configure Docker container stop timeouts in **_Settings → Docker_** (enable Advanced view). - :::tip[Docker timeout recommendations] - - The **default 10 seconds** works well for most containers. - - **If containers are crashing when stopped:** Increase timeout to **30 seconds**. - - Monitor your containers during shutdown to identify any that consistently need more time. - ::: +**How it works:** - +- Containers are stopped in parallel, so total time equals the Docker stop timeout. +- Most containers stop within 10 seconds, but some may need more time. +- Complex containers with large databases or ongoing operations might require additional time. +- If the timer expires, containers are force-stopped. - +:::tip[Docker timeout recommendations] - Where to set: ***Settings → Disk Settings → Shutdown time-out*** +- The **default 10 seconds** works well for most containers. +- **If containers are crashing when stopped:** Increase timeout to **30 seconds**. +- Monitor your containers during shutdown to identify any that consistently need more time. - **UPS considerations (most critical factor):** - - Your UPS must provide enough runtime to complete the full shutdown sequence before battery runs out. - - For **manual shutdown**, you can set longer timeouts since you control when shutdown starts. - - With **power outage shutdown**, your timeout is limited by UPS battery life. - - **Test your UPS** by simulating a power outage to ensure your server shuts down cleanly with time to spare. +::: - :::tip[General timeout recommendations] - - **If you get unclean shutdowns:** Increase to **180 seconds (3 minutes)** for systems without %%VMs|vm%%. - - **For systems with %%VMs|vm%%:** Use **300+ seconds (5+ minutes)** if not using hibernation. - - **If using hibernation:** **180-300 seconds** is usually sufficient. - - Ensure timeouts are not longer than what your UPS can support during a power outage. - ::: +#### General timeouts - +Configure the general shutdown timeout in **_Settings → Disk Settings → Shutdown time-out_**. - +**UPS considerations (most critical factor):** - **LXC containers:** - The LXC plugin has its own timeout setting for stopping containers. Like Docker containers, LXC containers typically stop within a few seconds, but some may require more time. Check the LXC plugin settings for the container stop timeout and include this timeout in your general shutdown timeout calculation. +- Your UPS must provide enough runtime to complete the full shutdown sequence before battery runs out. +- For **manual shutdown**, you can set longer timeouts since you control when shutdown starts. +- With **power outage shutdown**, your timeout is limited by UPS battery life. +- **Test your UPS** by simulating a power outage to ensure your server shuts down cleanly with time to spare. - **Other services:** - Some plugins or custom services may have their own shutdown procedures. Refer to the plugin documentation for specific timeout settings and incorporate them into your calculations. +:::tip[General timeout recommendations] - **Updated formula with third-party services:** - ``` - (VM timeout × 3) + (Docker timeout) + (LXC/other timeouts) + 15-30 seconds - ``` +- **If you get unclean shutdowns:** Increase to **180 seconds (3 minutes)** for systems without %%VMs|vm%%. +- **For systems with %%VMs|vm%%:** Use **300+ seconds (5+ minutes)** if not using hibernation. +- **If using hibernation:** **180-300 seconds** is usually sufficient. +- Ensure timeouts are not longer than what your UPS can support during a power outage. - **Dynamix Stop Shell plugin:** - If you frequently use SSH or terminal sessions, open sessions can prevent clean shutdowns because Unraid waits for them to close before proceeding. +::: - The [Dynamix Stop Shell](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository) plugin helps by automatically closing lingering bash or SSH sessions when the array is stopped, ensuring a timely shutdown. +#### Third-party services - You can install it from [Community Applications (search for "Dynamix Stop Shell")](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository). +**LXC containers:** +The LXC plugin has its own timeout setting for stopping containers. Like Docker containers, LXC containers typically stop within a few seconds, but some may require more time. Check the LXC plugin settings for the container stop timeout and include this timeout in your general shutdown timeout calculation. - :::tip[When to use the plugin] - - If you regularly have terminal sessions open. - - To prevent forgotten SSH sessions from delaying shutdown. - - For automated cleanup during shutdown. - ::: +**Other services:** +Some plugins or custom services may have their own shutdown procedures. Refer to the plugin documentation for specific timeout settings and incorporate them into your calculations. - :::caution - - Be cautious if you have scripts or processes running in terminal sessions. - - Ensure no critical write operations are in progress before shutdown. - - The plugin will forcefully close sessions, which could interrupt work. - ::: +**Updated formula with third-party services:** - - +``` +(VM timeout × 3) + (Docker timeout) + (LXC/other timeouts) + 15-30 seconds +``` + +**Dynamix Stop Shell plugin:** +If you frequently use SSH or terminal sessions, open sessions can prevent clean shutdowns because Unraid waits for them to close before proceeding. + +The [Dynamix Stop Shell](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository) plugin helps by automatically closing lingering bash or SSH sessions when the array is stopped, ensuring a timely shutdown. + +You can install it from [Community Applications (search for "Dynamix Stop Shell")](https://unraid.net/community/apps/c/tools-system/p2?srsltid=AfmBOoqBXyDNfHxRDCL7Fv9Gcfz8-8CdHmiJSX16PRZpZLLzgQtw2mVk#:~:text=the%20given%20interval.-,Dynamix%20Stop%20Shell,-Dynamix%20Repository). + +:::tip[When to use the plugin] + +- If you regularly have terminal sessions open. +- To prevent forgotten SSH sessions from delaying shutdown. +- For automated cleanup during shutdown. + +::: + +:::caution + +- Be cautious if you have scripts or processes running in terminal sessions. +- Ensure no critical write operations are in progress before shutdown. +- The plugin will forcefully close sessions, which could interrupt work. + +::: diff --git a/docs/unraid-os/troubleshooting/faq.mdx b/docs/unraid-os/troubleshooting/faq.mdx index c0189c4d9a..ca49fcfac1 100644 --- a/docs/unraid-os/troubleshooting/faq.mdx +++ b/docs/unraid-os/troubleshooting/faq.mdx @@ -1,10 +1,11 @@ --- sidebar_position: 3 sidebar_label: FAQ +toc_max_heading_level: 2 --- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; # Frequently Asked Questions @@ -19,204 +20,187 @@ If you need help with Unraid OS, you have several support options: ## Index -- [**Build & Hardware**](#build--hardware) - - [I need help with a build or system configuration. Where do I go?](#build-help) - - [What controllers are recommended for Unraid?](#hardware-raid-support) - - [What's the best way to add more storage if my built-in controller is full?](#add-more-storage) - - [Does Unraid have an allocation feature that remembers bad sectors on drives to prevent writes to them?](#bad-sector-allocation) -- [**OS & Configuration**](#os--configuration) - - [Can I use a HASP key within a VM on Unraid? How does that work with multiple VMs?](#hasp-key-vm) - - [My USB flash has failed, and I don't have a backup. How do I restore my configuration?](#usb-failed-restore) - - [What should I do if I have forgotten my root password?](#forgot-root-password) - - [How do I completely start Unraid OS from scratch? (Factory reset procedure)](#factory-reset) - - [How do I change the hostname of my server?](#change-hostname) - - [My flash drive is reporting an invalid GUID. What do I do?](#invalid-guid) -- [**Virtualization & Devices**](#virtualization--devices) - - [Whenever I shut down my Windows VM with an AMD GPU assigned, it won't restart. What can I do?](#amd-gpu-vm-restart) - - [How do I pass through my primary GPU to a VM if my CPU has no integrated graphics?](#primary-gpu-passthrough) -- [**Storage & RAID**](#storage--raid) - - [Does Unraid support various RAID types such as RAID1/5/6/10?](#raid-types-support) - - [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?](#mbr-to-gpt-conversion) -- [**Networking**](#networking) - - [Is there any way to disable the br0 bridge?](#disable-br0-bridge) - - [I can't seem to connect to the WebGUI using `http://tower` or `http://tower.local`. What do I do?](#webgui-connection) -- [**Installation**](#installation) - - [I can't get the USB flash creator to install Unraid on my flash device. What do I do?](#usb-creator-issue) - - [I need to configure my system to boot using UEFI. How do I do this?](#uefi-boot-config) - - [I'm having issues using my web browser with the WebGUI. What can I do?](#webgui-browser-issues) - - [How do I extend my Unraid trial?](#extend-trial) -- [**Licensing**](#licensing) - - For licensing-related questions, see the [Licensing FAQ](licensing-faq.mdx). +**[Build & Hardware](#build--hardware)** ---- +- [I need help with a build or system configuration. Where do I go?](#build-help) +- [What controllers are recommended for Unraid?](#hardware-raid-support) +- [What's the best way to add more storage if my built-in controller is full?](#add-more-storage) +- [Does Unraid have an allocation feature that remembers bad sectors on drives to prevent writes to them?](#bad-sector-allocation) -## Build & Hardware +**[OS & Configuration](#os--configuration)** -

I need help with a build or system configuration. Where do I go?

+- [Can I use a HASP key within a VM on Unraid? How does that work with multiple VMs?](#hasp-key-vm) +- [My USB flash has failed, and I don't have a backup. How do I restore my configuration?](#usb-failed-restore) +- [What should I do if I have forgotten my root password?](#forgot-root-password) +- [How do I completely start Unraid OS from scratch? (Factory reset procedure)](#factory-reset) +- [How do I change the hostname of my server?](#change-hostname) +- [My flash drive is reporting an invalid GUID. What do I do?](#invalid-guid) -
- Click to expand/collapse +**[Virtualization & Devices](#virtualization--devices)** - For guidance on building or upgrading your Unraid server, visit the [Compulsive Design forum](https://forums.unraid.net/forum/35-unraid-compulsive-design/) or join the [Unraid Discord](https://discord.unraid.net). The community is active and ready to assist you, no matter your level of experience. +- [Whenever I shut down my Windows VM with an AMD GPU assigned, it won't restart. What can I do?](#amd-gpu-vm-restart) +- [How do I pass through my primary GPU to a VM if my CPU has no integrated graphics?](#primary-gpu-passthrough) -
+**[Storage & RAID](#storage--raid)** -
+- [Does Unraid support various RAID types such as RAID1/5/6/10?](#raid-types-support) +- [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?](#mbr-to-gpt-conversion) -

What controllers are recommended for Unraid?

+**[Networking](#networking)** -
- Click to expand/collapse +- [Is there any way to disable the br0 bridge?](#disable-br0-bridge) +- [I can't seem to connect to the WebGUI using `http://tower` or `http://tower.local`. What do I do?](#webgui-connection) - Unraid performs best with non-%%RAID|raid%% Host Bus Adapters (HBAs). It's best to avoid hardware %%RAID|raid%% controllers, which can obscure drive health information and complicate maintenance. +**[Installation](#installation)** - Always check for firmware updates and ensure the controller is set to HBA/IT mode, not %%RAID|raid%% mode. You can refer to the [Recommended Controllers thread](https://forums.unraid.net/topic/102010-recommended-controllers-for-unraid/) for models that the community has tested successfully. +- [I can't get the USB flash creator to install Unraid on my flash device. What do I do?](#usb-creator-issue) +- [I need to configure my system to boot using UEFI. How do I do this?](#uefi-boot-config) +- [I'm having issues using my web browser with the WebGUI. What can I do?](#webgui-browser-issues) +- [How do I extend my Unraid trial?](#extend-trial) -
+**[Licensing](#licensing)** -
+- For licensing-related questions, see the [Licensing FAQ](licensing-faq.mdx). -

What's the best way to add more storage if my built-in controller is full?

+--- -
- Click to expand/collapse +## Build & Hardware + + - Unraid allows for the expansion of storage across multiple controllers. You can add a compatible HBA (as mentioned above). Ensure the controller operates in standard HBA (non-%%RAID|raid%%) mode and supports %%AHCI|ahci%%/SATA. Avoid using %%RAID|raid%%-only cards, as Unraid requires direct disk access for %%parity|parity%% and monitoring. +### I need help with a build or system configuration. Where do I go? -
+For guidance on building or upgrading your Unraid server, visit the [Compulsive Design forum](https://forums.unraid.net/forum/35-unraid-compulsive-design/) or join the [Unraid Discord](https://discord.unraid.net). The community is active and ready to assist you, no matter your level of experience.
-

Does Unraid have an allocation feature that remembers bad sectors on drives to prevent writes to them?

+ -
- Click to expand/collapse +### What controllers are recommended for Unraid? - Unraid utilizes %%SMART|smart%% data from your drives to monitor their health and detect issues such as bad sectors. %%SMART|smart%% is built into modern hard drives and SSDs, tracking attributes such as reallocated and pending sectors. +Unraid performs best with non-%%RAID|raid%% Host Bus Adapters (HBAs). It's best to avoid hardware %%RAID|raid%% controllers, which can obscure drive health information and complicate maintenance. - While Unraid doesn't have a specific allocation feature to avoid bad sectors, it does use %%SMART|smart%% data to notify you if a drive displays signs of failure or has an increasing number of bad sectors. This information can be found in the %%WebGUI|web-gui%% under the drive's health status and %%SMART|smart%% attributes. +Always check for firmware updates and ensure the controller is set to HBA/IT mode, not %%RAID|raid%% mode. You can refer to the [Recommended Controllers thread](https://forums.unraid.net/topic/102010-recommended-controllers-for-unraid/) for models that the community has tested successfully. + +
- If a drive shows a high count of reallocated or pending sectors, consider replacing it soon to prevent data loss. + - If you're uncertain about a drive's health, you can share your %%SMART|smart%% data in the [General Support forum](https://forums.unraid.net/forum/55-general-support/) for assistance from the community. +### What's the best way to add more storage if my built-in controller is full? -
+Unraid allows for the expansion of storage across multiple controllers. You can add a compatible HBA (as mentioned above). Ensure the controller operates in standard HBA (non-%%RAID|raid%%) mode and supports %%AHCI|ahci%%/SATA. Avoid using %%RAID|raid%%-only cards, as Unraid requires direct disk access for %%parity|parity%% and monitoring.
---- + -## OS & Configuration +### Does Unraid have an allocation feature that remembers bad sectors on drives to prevent writes to them? -

Can I use a HASP key within a VM on Unraid? How does that work with multiple VMs?

+Unraid utilizes %%SMART|smart%% data from your drives to monitor their health and detect issues such as bad sectors. %%SMART|smart%% is built into modern hard drives and SSDs, tracking attributes such as reallocated and pending sectors. -
- Click to expand/collapse +While Unraid doesn't have a specific allocation feature to avoid bad sectors, it does use %%SMART|smart%% data to notify you if a drive displays signs of failure or has an increasing number of bad sectors. This information can be found in the %%WebGUI|web-gui%% under the drive's health status and %%SMART|smart%% attributes. - If your HASP key is a USB dongle, you can assign it to only one %%VM|vm%% at a time. Note that two %%VM|vm%%s cannot use the same key simultaneously. You might need to pass through an entire USB controller for better compatibility. Always run tests with a Trial license to confirm that your hardware performs as expected. +If a drive shows a high count of reallocated or pending sectors, consider replacing it soon to prevent data loss. -
+If you're uncertain about a drive's health, you can share your %%SMART|smart%% data in the [General Support forum](https://forums.unraid.net/forum/55-general-support/) for assistance from the community.
-

My USB flash has failed, and I don't have a backup. How do I restore my configuration?

+--- + +## OS & Configuration -
- Click to expand/collapse + - If you had [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) enabled for Flash Backups, you can use it to restore. If not, get a new, high-quality flash drive, install Unraid on it, and use the registration key you received via email. Reassign your drives as they were. If you can't recall the assignments, post for assistance in the [General Support forum](https://forums.unraid.net/forum/55-general-support/). +### Can I use a HASP key within a VM on Unraid? How does that work with multiple VMs? -
+If your HASP key is a USB dongle, you can assign it to only one %%VM|vm%% at a time. Note that two %%VM|vm%%s cannot use the same key simultaneously. You might need to pass through an entire USB controller for better compatibility. Always run tests with a Trial license to confirm that your hardware performs as expected.
-

What should I do if I have forgotten my root password?

+ + +### My USB flash has failed, and I don't have a backup. How do I restore my configuration? -
- Click to expand/collapse +If you had [Unraid Connect](../../unraid-connect/overview-and-setup.mdx) enabled for Flash Backups, you can use it to restore. If not, get a new, high-quality flash drive, install Unraid on it, and use the registration key you received via email. Reassign your drives as they were. If you can't recall the assignments, post for assistance in the [General Support forum](https://forums.unraid.net/forum/55-general-support/). - 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. - ::: + -
+### 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). -

How do I completely start Unraid OS from scratch? (Factory reset procedure)

+:::note +If you're using encrypted drives and forget the encryption password, data recovery isn't possible - there is no backdoor. +::: -
- Click to expand/collapse +
- 1. Backup any data you wish to keep. - 2. Stop the %%array|array%% and shut down your server. - 3. Remove the USB flash device. - 4. Use the Unraid USB Flash Creator tool to reformat and reinstall Unraid onto the flash drive. - 5. Reinsert the flash device and boot your server. - 6. In the %%WebGUI|web-gui%%, open a terminal and run `lsblk` to list all drives (excluding the flash). - 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!** +### How do I completely start Unraid OS from scratch? (Factory reset procedure) - - **Verify you have backups** of any data you need before proceeding +1. Backup any data you wish to keep. +1. Stop the %%array|array%% and shut down your server. +1. Remove the USB flash device. +1. Use the Unraid USB Flash Creator tool to reformat and reinstall Unraid onto the flash drive. +1. Reinsert the flash device and boot your server. +1. In the %%WebGUI|web-gui%%, open a terminal and run `lsblk` to list all drives (excluding the flash). +1. Wipe existing filesystems from each data drive: - - **Double-check the device identifier** in the WebGUI or with `lsblk` before running this command +:::danger[Critical: Destructive Operation] +**This step will permanently erase ALL data on the specified drive(s) and is IRREVERSIBLE!** - - **Ensure you're targeting the correct drive** - data loss from the wrong drive cannot be recovered +- **Verify you have backups** of any data you need before proceeding - For each data drive, run: +- **Double-check the device identifier** in the WebGUI or with `lsblk` before running this command - ``` - wipefs /dev/sdX - ``` +- **Ensure you're targeting the correct drive** - data loss from the wrong drive cannot be recovered - Replace `X` with the correct drive letter (e.g., sda, sdb, sdc) - ::: +For each data drive, run: - 8. Continue with the normal Unraid setup and configuration. +```bash +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?

+
-
- Click to expand/collapse + - To change your Unraid server's hostname, navigate the %%WebGUI|web-gui%% to ***Settings → System Settings → Identification***. +### How do I change the hostname of my server? - **Effects of changing your hostname:** +To change your Unraid server's hostname, navigate the %%WebGUI|web-gui%% to **_Settings → System Settings → Identification_**. - - The new hostname will be used for network identification (e.g., access via `http://newname`). - - You might need to reconnect any mapped network drives or shortcuts using the new hostname. - - Some devices or services may cache the old name; a full device reboot may be required to recognize the new name. +**Effects of changing your hostname:** -
+- The new hostname will be used for network identification (e.g., access via `http://newname`). +- You might need to reconnect any mapped network drives or shortcuts using the new hostname. +- Some devices or services may cache the old name; a full device reboot may be required to recognize the new name.
-

My flash drive is reporting an invalid GUID. What do I do?

+ -
- Click to expand/collapse +### My flash drive is reporting an invalid GUID. What do I do? - Unraid requires a USB flash device with a unique hardware %%GUID|guid%% (serial number). Some manufacturers may reuse %%GUID|guid%%s or use generic values, making these drives incompatible with each other. +Unraid requires a USB flash device with a unique hardware %%GUID|guid%% (serial number). Some manufacturers may reuse %%GUID|guid%%s or use generic values, making these drives incompatible with each other. - **Field-tested brands:** +**Field-tested brands:** - - Samsung FIT Plus / Bar Plus - - Kingston DataTraveler Exodia - - Lexar JumpDrive M45 - - PNY Elite-X - (Avoid newer SanDisk Ultra Fit/Cruzer models unless you can confirm a unique %%GUID|guid%%.) +- Samsung FIT Plus / Bar Plus +- Kingston DataTraveler Exodia +- Lexar JumpDrive M45 +- PNY Elite-X + (Avoid newer SanDisk Ultra Fit/Cruzer models unless you can confirm a unique %%GUID|guid%%.) - It's best to avoid generic or unbranded drives, SSDs, USB card readers, and SD card adapters, as these often lack unique %%GUID|guid%%s and may not be supported for booting Unraid. - -
+It's best to avoid generic or unbranded drives, SSDs, USB card readers, and SD card adapters, as these often lack unique %%GUID|guid%%s and may not be supported for booting Unraid.
@@ -224,25 +208,19 @@ If you need help with Unraid OS, you have several support options: ## Virtualization & Devices -

Whenever I shut down my Windows VM with an AMD GPU assigned, it fails to restart. What can I do?

- -
- Click to expand/collapse + - Many AMD GPUs experience issues with function-level resets, which contribute to this problem. Workarounds include ejecting the GPU from within Windows before shutting down or using an NVIDIA GPU, which generally avoids this issue. +### Whenever I shut down my Windows VM with an AMD GPU assigned, it fails to restart. What can I do? -
+Many AMD GPUs experience issues with function-level resets, which contribute to this problem. Workarounds include ejecting the GPU from within Windows before shutting down or using an NVIDIA GPU, which generally avoids this issue.
-

How do I pass through my primary GPU to a VM if my CPU has no integrated graphics?

+ -
- Click to expand/collapse +### How do I pass through my primary GPU to a VM if my CPU has no integrated graphics? - This is feasible but requires additional steps. Check out [SpaceInvaderOne’s video guide](https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/) for detailed instructions on how to do this properly. - -
+This is feasible but requires additional steps. Check out [SpaceInvaderOne's video guide](https://forums.unraid.net/topic/51230-video-guidehow-to-pass-through-an-nvidia-gpu-as-primary-or-only-gpu-in-unraid/) for detailed instructions on how to do this properly.
@@ -250,72 +228,92 @@ If you need help with Unraid OS, you have several support options: ## Storage & RAID -

Does Unraid support various RAID types such as RAID1/5/6/10?

+ + +### Does Unraid support various RAID types such as RAID1/5/6/10? -
- Click to expand/collapse +Unraid features a unique storage architecture that distinguishes it from traditional %%RAID|raid%% systems. Here's a comparison of different storage options: - 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.\ - \* %%BTRFS|btrfs%% %%RAID 5|raid5%%/%%RAID 6|raid6%% remains flagged as "experimental" upstream; use with caution. +
- - **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. +\* %%ZFS|zfs%% vdevs must be expanded by replacing **all** drives in the vdev or adding a new vdev.\ +\* %%BTRFS|btrfs%% %%RAID 5|raid5%%/%%RAID 6|raid6%% remains flagged as "experimental" upstream; use with caution. -
+- **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.
-

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?

+ + +### 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? + +
+ Why convert from MBR to GPT? +
-
- Click to expand/collapse +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. -

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. +::: - :::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 +
-

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. +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: + - **2TB or smaller**: Uses MBR partitioning + - **Larger than 2TB**: Uses GPT partitioning +6. Once all drives are replaced and rebuilt, exit **Maintenance Mode**. - 1. Ensure you have a valid %%parity|parity%% and a current backup of your flash drive. - 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: - - **2TB or smaller**: Uses MBR partitioning - - **Larger than 2TB**: Uses GPT partitioning - 6. Once all drives are replaced and rebuilt, exit **Maintenance Mode**. +This process keeps your data safe while changing the partitioning style. - This process keeps your data safe while changing the partitioning style. +:::note[Additional notes] - :::note[Additional notes] - - **Partitioning is automatic**: Unraid automatically chooses the partitioning style based on drive size: - - **2TB or smaller**: Always uses MBR partitioning - - **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. - ::: +- **Partitioning is automatic**: Unraid automatically chooses the partitioning style based on drive size: + - **2TB or smaller**: Always uses MBR partitioning + - **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. + +:::
@@ -323,44 +321,38 @@ If you need help with Unraid OS, you have several support options: ## Networking -

Is there any way to disable the br0 bridge?

- -
- Click to expand/collapse + - 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. +### Is there any way to disable the br0 bridge? - :::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. - ::: +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?

+ -
- Click to expand/collapse +### I can't seem to connect to the WebGUI using `http://tower` or `http://tower.local`. What do I do? - If you're having trouble connecting to the %%WebGUI|web-gui%% by hostname, the issue might be with your local DNS not resolving the server name. Instead, try connecting directly using the IP address. +If you're having trouble connecting to the %%WebGUI|web-gui%% by hostname, the issue might be with your local DNS not resolving the server name. Instead, try connecting directly using the IP address. - **How to find your server's IP address:** +**How to find your server's IP address:** - - Check your router or switch's DHCP client list for a device listed as "Tower" or something similar. - - If you assigned a static IP during flash creation, use that address. - - Plug in a monitor and keyboard to your server; the IP address will appear on the local console after it boots. +- Check your router or switch's DHCP client list for a device listed as "Tower" or something similar. +- If you assigned a static IP during flash creation, use that address. +- Plug in a monitor and keyboard to your server; the IP address will appear on the local console after it boots. - **Common causes for this issue:** +**Common causes for this issue:** - - Your computer and server might be on different subnets or VLANs. - - Your router may not support local hostname resolution. - - The Unraid server might not be connected to the network or have a misconfigured network setting. - - Firewall or security software may be blocking access. +- Your computer and server might be on different subnets or VLANs. +- Your router may not support local hostname resolution. +- The Unraid server might not be connected to the network or have a misconfigured network setting. +- Firewall or security software may be blocking access. - If you are unable to connect, try rebooting your server and network equipment, and ensure that all cables are securely connected. - -
+If you are unable to connect, try rebooting your server and network equipment, and ensure that all cables are securely connected.
@@ -368,73 +360,64 @@ If you need help with Unraid OS, you have several support options: ## Installation -

I can't get the USB flash creator to install Unraid on my flash device. What do I do?

- -
- Click to expand/collapse + - If the USB flash creator tool isn't working for your system or flash drive, you can utilize the [manual installation method](../getting-started/set-up-unraid/create-your-bootable-media.mdx#manual-install-method) to prepare your Unraid boot device. This method is compatible with Windows, macOS, and Debian/Ubuntu Linux. +### I can't get the USB flash creator to install Unraid on my flash device. What do I do? -
+If the USB flash creator tool isn't working for your system or flash drive, you can utilize the [manual installation method](../getting-started/set-up-unraid/create-your-bootable-media.mdx#manual-install-method) to prepare your Unraid boot device. This method is compatible with Windows, macOS, and Debian/Ubuntu Linux.
-

I need to configure my system to boot using UEFI. How do I do this?

+ -
- Click to expand/collapse +### I need to configure my system to boot using UEFI. How do I do this? - You can set up %%UEFI|uefi%% boot mode in a few different ways: +You can set up %%UEFI|uefi%% boot mode in a few different ways: - **Option 1: During flash creation** +#### Option 1: During flash creation - - When using the USB flash creator, select the option to enable %%UEFI|uefi%% boot mode before writing Unraid to the flash drive. +When using the USB flash creator, select the option to enable %%UEFI|uefi%% boot mode before writing Unraid to the flash drive. - **Option 2: After booting in Legacy Mode** +#### Option 2: After booting in Legacy Mode - - In the %%WebGUI|web-gui%%, head to the Flash Device ***Settings → Flash Device*** page. - - Enable %%UEFI|uefi%% boot mode and reboot your server. +In the %%WebGUI|web-gui%%, head to the Flash Device **_Settings → Flash Device_** page. - **Option 3: Manual folder rename** +Enable %%UEFI|uefi%% boot mode and reboot your server. - - On the flash drive, rename the `EFI-` folder to `EFI` (remove the dash `-`). - - Insert the flash drive into your server, then enter your motherboard BIOS/%%UEFI|uefi%% settings. - - Set the USB flash as the primary boot device and enable %%UEFI|uefi%% boot mode (be sure to disable CSM/Legacy/Compatibility mode, if available). +#### Option 3: Manual folder rename -
+On the flash drive, rename the `EFI-` folder to `EFI` (remove the dash `-`). -
+Insert the flash drive into your server, then enter your motherboard BIOS/%%UEFI|uefi%% settings. + +Set the USB flash as the primary boot device and enable %%UEFI|uefi%% boot mode (be sure to disable CSM/Legacy/Compatibility mode, if available). -

I'm having issues using my web browser with the WebGUI. What can I do?

+
-
- Click to expand/collapse + - If you're encountering display or functionality issues with the %%WebGUI|web-gui%%, consider the following: +### I'm having issues using my web browser with the WebGUI. What can I do? - - **Ad-blockers and content blockers:** These browser extensions may interfere with the %%WebGUI|web-gui%%. Try adding your Unraid server to your ad-blocker's whitelist or disabling the blocker for your server's address. - - **Browser extensions:** Some extensions could block scripts or alter page content. Disable extensions or try using a private/incognito window. - - **Outdated browsers:** Ensure you use a modern, up-to-date browser (like Chrome, Firefox, or Edge). Older browsers may not fully support the %%WebGUI|web-gui%%. - - **Cache issues:** Clear your browser cache or try a hard refresh (Ctrl+F5 or Cmd+Shift+R). - - **Network issues:** Ensure that your computer and server are connected to the same network and subnet. +If you're encountering display or functionality issues with the %%WebGUI|web-gui%%, consider the following: - If problems persist, try accessing the %%WebGUI|web-gui%% from another browser or device. +- **Ad-blockers and content blockers:** These browser extensions may interfere with the %%WebGUI|web-gui%%. Try adding your Unraid server to your ad-blocker's whitelist or disabling the blocker for your server's address. +- **Browser extensions:** Some extensions could block scripts or alter page content. Disable extensions or try using a private/incognito window. +- **Outdated browsers:** Ensure you use a modern, up-to-date browser (like Chrome, Firefox, or Edge). Older browsers may not fully support the %%WebGUI|web-gui%%. +- **Cache issues:** Clear your browser cache or try a hard refresh (Ctrl+F5 or Cmd+Shift+R). +- **Network issues:** Ensure that your computer and server are connected to the same network and subnet. -
+If problems persist, try accessing the %%WebGUI|web-gui%% from another browser or device.
-

How do I extend my Unraid trial?

- -
- Click to expand/collapse + - 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. +### How do I extend my Unraid trial? - :::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. - ::: +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 df33fd34a7..b8b25110c5 100644 --- a/docs/unraid-os/troubleshooting/licensing-faq.mdx +++ b/docs/unraid-os/troubleshooting/licensing-faq.mdx @@ -1,12 +1,53 @@ --- sidebar_position: 4 sidebar_label: Licensing FAQ +toc_max_heading_level: 2 --- # Licensing FAQ This page contains frequently asked questions about Unraid OS licensing. For general troubleshooting questions, see the [main FAQ](faq.mdx). +--- + +## Index + +**[License Ownership](#license-ownership)** + +- [Do I own my software license?](#own-license) + +**[Purchasing](#purchasing)** + +- [How do I purchase Unraid?](#purchase-unraid) +- [How do I redeem a license activation code?](#redeem-activation-code) +- [I'm a reseller/OEM needing to purchase a license on behalf of my customer. What should I do?](#oem-purchase) + +**[License Management](#license-management)** + +- [How do I upgrade my Unraid license?](#upgrade-license) +- [How do I manually install my license keyfile to my USB flash device?](#manual-keyfile-install) +- [How can I determine my registration type?](#registration-type) + +**[License Types & Features](#license-types--features)** + +- [Is Unraid OS a subscription?](#subscription) +- [What happens if I don't extend my Starter or Unleashed license?](#no-extension) +- [What happens with pre-releases (Beta/RC versions)?](#pre-release-policy) +- [What does "unlimited" mean for attached storage devices?](#unlimited-storage) + +**[Troubleshooting](#troubleshooting)** + +- [What happens if my USB flash device fails? Do I have to repurchase a license?](#usb-failure-license) +- [What should I do if I get an error registering my flash device: '####-####-####-#############' is already registered to another user?](#guid-error) + +**[Trial Licenses](#trial-licenses)** + +- [How do Unraid trials work?](#trial-license) +- [How do I extend my trial?](#extend-trial) +- [Can I transfer my trial key to a new flash device?](#trial-key-transfer) + +--- + ## License Ownership ### Do I own my software license? {#own-license} @@ -43,7 +84,19 @@ Activation codes are one-time use for generating your Unraid license key file. :::note[Instructional Video] -Watch the [Activation Code Instructional Video](https://www.loom.com/share/3ceb40440240474aaa80a0b7e3e69cb2) for step-by-step guidance. +
+ +
::: @@ -63,6 +116,8 @@ For bulk OEM/reseller pricing (10 licenses or more), [contact Unraid](https://un You can upgrade your license at any time from within the %%WebGUI|web-gui%% (***Tools → Registration***) or [via the account portal](https://account.unraid.net/keys) (by clicking **••• More** and selecting **Upgrade Key**). +
+ | Upgrade Path | One-Time Upgrade Fee | New Device Limit¹ | | -------------------- | -------------------- | ----------------- | | Starter → Unleashed | $69 USD | Unlimited² | @@ -74,6 +129,8 @@ You can upgrade your license at any time from within the %%WebGUI|web-gui%% (*** | Basic → Pro | $139 USD | Up to 30 devices¹ | | Plus → Pro | $109 USD | Up to 30 devices¹ | +
+ **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).\ @@ -138,12 +195,16 @@ You continue to own your license even if you stop paying for updates. Here are the current limits: +
+ | License Tier | %%Parity\|parity%%-Protected %%Array\|array%% | Named Pools | Devices per Pool | Total Storage Devices | | ------------ | --------------------------------------------- | ----------- | ---------------- | --------------------- | | Starter | Up to 6 | 1 | Up to 6 | 6 | | Unleashed | Up to 30 (28 data + 2 %%parity\|parity%%) | Up to 35 | Up to 60 | Unlimited\* | | Lifetime | Up to 30 (28 data + 2 %%parity\|parity%%) | Up to 35 | Up to 60 | Unlimited\* | +
+ \* *"Unlimited" means you are not limited by the license, but by hardware and OS constraints. Additional storage devices can be used for virtual machines, unassigned devices, or other Unraid features.* --- @@ -186,11 +247,11 @@ This error indicates that your USB flash device does not have a unique hardware - Trial licenses require an internet connection at boot for initial validation. - You can extend your trial for 15 more days if you need more time to evaluate Unraid. You can do this twice for a total of 60 days (details below). -### How do I Extend My Trial? {#extend-trial} +### How do I extend my trial? {#extend-trial} --Unraid trial registration keys last for 30 days and can be extended twice for 14 additional days each time. After two trial extensions, no additional extensions can be granted. To request an extension, you must stop the array, navigate to the Tools > Registration page, and click "Request Extension." +Unraid trial registration keys last for 30 days and can be extended twice for 14 additional days each time. After two trial extensions, no additional extensions can be granted. To request an extension, you must stop the array, navigate to the **Tools > Registration** page, and click "Request Extension." --If the two additional extension were not used, and this option does not appear for you, or if it's not working for any reason, please send us the flash drive GUID from Tools - Registration over to [contact@unraid.net](mailto:contact@unraid.net), or via our support portal at support.unraid.net and we will be happy to assist. +If the two additional extensions were not used and this option does not appear for you, or if it's not working for any reason, please send us the flash drive GUID from **Tools > Registration** to [contact@unraid.net](mailto:contact@unraid.net) or via our support portal at [support.unraid.net](https://support.unraid.net/support/home) and we will be happy to assist. ### Can I transfer my trial key to a new flash device? {#trial-key-transfer} 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 51a14b9040..dd7fc7287a 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 @@ -2,8 +2,9 @@ sidebar_position: 2 sidebar_label: VM setup --- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; # VM setup @@ -97,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
@@ -158,6 +159,7 @@ When you create a snapshot, Unraid generates an "overlay file" that captures all This setup allows you to create multiple snapshots, with each one generating its own overlay file. This means you can easily revert to any previous state. **Example scenario:** + 1. You create a snapshot called "Clean Windows Install." 2. You install some software and make changes. 3. You create another snapshot called "After Software Install." @@ -175,7 +177,7 @@ To create a snapshot of your %%VM|vm%%: 2. Click on the %%VM|vm%% name to expand its details. 3. Look for the **Snapshots** section and click **Create Snapshot**. 4. Enter a descriptive name for your snapshot (for example, "Before Windows Update" or "Clean Install State"). -5. **Memory dump option**: In current Unraid builds, the "Memory dump" checkbox is not preselected by default. Checking it includes the %%VM|vm%%'s RAM for a full memory-backed snapshot (captures the live running state, but is larger and slower to create/restore). Leaving it unchecked creates a disk-only, crash-consistent snapshot (smaller and faster, but any unsaved in-memory data will be lost). Choose based on whether you need full live state preservation or just disk recovery. +5. **Memory dump** option: In current Unraid builds, the "Memory dump" checkbox is not preselected by default. Checking it includes the %%VM|vm%%'s RAM for a full memory-backed snapshot (captures the live running state, but is larger and slower to create/restore). Leaving it unchecked creates a disk-only, crash-consistent snapshot (smaller and faster, but any unsaved in-memory data will be lost). Choose based on whether you need full live state preservation or just disk recovery. 6. Click **Create** to save the snapshot. :::tip[Best practices] @@ -191,6 +193,7 @@ To create a snapshot of your %%VM|vm%%: Once you have snapshots, you can see them listed in the %%VM|vm%%'s details section. Each snapshot shows: + - **Name**: The name you gave the snapshot. - **Date**: When the snapshot was created. - **Size**: How much storage space it uses. @@ -217,7 +220,6 @@ To manage snapshots: Use Block Commit when you are satisfied with the changes and want to make them permanent. - **Block Pull**: This merges the original disk data into the snapshot overlay file, making the overlay file complete and independent. Your VM continues using the overlay file, but it no longer depends on the original disk. Use this when you want to keep your current state and make the snapshot permanent. **Remove snapshot**: This simply deletes the snapshot overlay file without affecting your %%VM|vm%%. Your %%VM|vm%% continues using the original disk file, and any changes made after the snapshot are lost. @@ -248,7 +250,7 @@ Reverting to a snapshot permanently deletes any changes made after that snapshot ### Snapshot storage -Snapshots use storage space on your system. Each snapshot saves only the differences between the current state and the snapshot state; however, these differences can still accumulate over time. +Snapshots use storage space on your system. Each snapshot saves only the differences between the current state and the snapshot state; however, these differences can still accumulate over time. Here are some points to consider: @@ -256,6 +258,7 @@ Here are some points to consider: - **Storage location**: Snapshots are stored with your %%VM|vm%% files, so make sure you have enough space on your %%cache pools|cache-pool%% or %%array|array%%. **Snapshot storage location:** + - Snapshot metadata is stored in `/etc/libvirt/qemu/snapshotdb/VM_name/`. - Actual snapshot data is stored alongside your %%VM|vm%% files on %%cache pools|cache-pool%% or %%array|array%%. @@ -274,7 +277,6 @@ For more detailed technical information about how VM snapshots work, including b ::: - --- ## Using virtual GPUs and GPU sharing @@ -293,57 +295,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 +365,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 +384,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 +475,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 +520,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 +543,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 +562,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/create-virtual-machines/windows-on-a-vm.mdx b/docs/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx index 64523cba6c..0f2d1a3bd9 100644 --- a/docs/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx +++ b/docs/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm.mdx @@ -286,7 +286,7 @@ After you complete the initial %%vDisk|vdisk%% expansion: 8. **Select and delete the recovery partition:** - Type `select partition #`, replacing `#` with the number of the recovery partition. - Type `delete partition override` and press Enter. -9. **Expand the C: partition:** +9. Expand the C: partition: - Right-click the Start menu and select **Disk Management**. - Right-click the partition you want to extend (usually C:) and choose **Extend Volume...**. - Follow the prompts to use the unallocated space. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx b/docs/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx index 1e28813a2b..1986f7308a 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx @@ -92,15 +92,15 @@ To create separate backups for different users or Macs on your Unraid server: 2. **Create individual Time Machine %%user shares|user-share%%** for each user, naming them clearly to match the user, such as `tm-larry`, `tm-curly`, and `tm-moe`. Keeping shares separate helps with managing storage and access for each user. -3. **Assign appropriate user permissions** for each %%user share|user-share%%: +3. Assign appropriate user permissions for each %%user share|user-share%%: - Set the %%user share|user-share%%'s %%SMB|samba%% security settings to ensure that only the corresponding user has access. - Confirm that only the intended user can read and write to their Time Machine %%user share|user-share%%. -4. **Configure Time Machine on each Mac** to connect to its designated %%user share|user-share%%: +4. Configure Time Machine on each Mac to connect to its designated %%user share|user-share%%: - On each Mac, connect to the Unraid server using the %%SMB|samba%% path for their specific %%user share|user-share%% (e.g., `smb://unraid-server/tm-larry`). - Follow the usual Time Machine setup steps to select the %%user share|user-share%% as the backup disk. -5. **Monitor and manage storage usage**: +5. Monitor and manage storage usage: - You can optionally set volume size limits on each Time Machine %%user share|user-share%% to prevent one user from taking up too much space. - Regularly check usage and adjust quotas as necessary. @@ -110,8 +110,8 @@ For more information on user management and security, see [User management](../. If Time Machine backups fail or become unreliable: -1. **Try the Time Machine Docker container**: [Available through Community Applications](https://unraid.net/community/apps?q=time+machine#r), this option can provide more stable backups than direct %%SMB|samba%% %%user shares|user-share%%. -2. **Check macOS firewall**: Temporarily disable the firewall to see if it’s blocking connections. -3. **Create a fresh backup destination**: Delete and recreate the Time Machine %%user share|user-share%% if issues continue. +1. Try the Time Machine Docker container: [Available through Community Applications](https://unraid.net/community/apps?q=time+machine#r), this option can provide more stable backups than direct %%SMB|samba%% %%user shares|user-share%%. +2. Check macOS firewall: Temporarily disable the firewall to see if it's blocking connections. +3. Create a fresh backup destination: Delete and recreate the Time Machine %%user share|user-share%% if issues continue. For additional troubleshooting help, see [Troubleshooting](../../troubleshooting/troubleshooting.mdx) or visit the [Unraid forums](https://forums.unraid.net/). diff --git a/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx b/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx deleted file mode 100644 index cb3319a3ba..0000000000 --- a/docs/unraid-os/using-unraid-to/manage-storage/array-configuration.mdx +++ /dev/null @@ -1,1160 +0,0 @@ ---- -sidebar_position: 2 -sidebar_label: Array configuration ---- - -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; -import AddDataDiskParityProtected from "./partials/add-data-disk-parity-protected.mdx"; -import AddDataDiskNoParity from "./partials/add-data-disk-no-parity.mdx"; -import ParitySwapWhat from "./partials/parity-swap-what.mdx"; -import ParitySwapWhen from "./partials/parity-swap-when.mdx"; -import RemoveDataDiskStandard from "./partials/remove-data-disk-standard.mdx"; -import RemoveDataDiskParityPreserve from "./partials/remove-data-disk-parity-preserve.mdx"; -import ArrayCheckParity from "./partials/array-check-parity.mdx"; -import ArrayCheckRead from "./partials/array-check-read.mdx"; -import TroubleshootMissingDisks from "./partials/troubleshoot-missing-disks.mdx"; -import TroubleshootDeviceLimit from "./partials/troubleshoot-device-limit.mdx"; -import TroubleshootLicenseIssues from "./partials/troubleshoot-license-issues.mdx"; -import TroubleshootKeyServer from "./partials/troubleshoot-key-server.mdx"; -import TroubleshootWithdrawnRelease from "./partials/troubleshoot-withdrawn-release.mdx"; - -# Array configuration - -Unraid's storage system combines flexibility with data protection through its %%array|array%% and %%cache|cache%% architecture. The %%array|array%% manages your primary storage with optional %%parity|parity%% protection, while cache pools accelerate performance. - -Below are some important array configuration principles: - -
- Always use your largest drive(s) for parity. - -When you add more disks to your %%array|array%% later, remember that you can't use a data disk that's larger than your %%parity disks|parity-drives%%. It's a good idea to buy the biggest hard drive for your %%parity disks|parity-drives%% at the start. This way, you won't be limited by smaller sizes when expanding later. - -If you use two %%parity disks|parity-drives%%, they can be different sizes. However, keep in mind that no disk in your %%array|array%% can be larger than the smallest %%parity disks|parity-drives%% you have. - -
- -
- Do not use SSDs in the array - save them for pools or unassigned devices. - -Unraid does not support TRIM or Discard operations for SSDs in the main array. Over time, this will cause SSD performance to degrade if they are used as array members. For best results, use SSDs in %%cache pools|cache-pool%% or as unassigned devices, where these features are supported and long-term performance is maintained. Most modern SSDs, including NVMe, work well in these roles. - -
- -
- Using a cache will improve array write performance. - -Instead of writing directly to the main storage, data is first sent to a dedicated disk or a group of disks. This data is then moved to the main storage at scheduled times, usually once a day at 3:40 AM. The great thing is that data saved to the %%cache|cache%% still appears through your %%user shares|user-share%%, so you don't have to change how you access your files. - -
- -
- Creating a cache pool helps keep your cached data safe. - -Using only one cache device puts your cached data at risk until it is moved to the main array. To protect your data at all times, use multiple devices configured as a %%cache pool|cache-pool%%. This setup provides redundancy for cached data, reducing the chance of data loss due to a cache device failure. - -
- -
- SSD cache devices are great for apps and virtual machines. - -Using SSDs helps applications and virtual machines (VMs) run faster because they can access data more quickly. SSDs work well in a %%cache pool|cache-pool%%, giving you an excellent mix of speed, efficiency, and data security. - -
- -
- Encryption is turned off by default. - -If you want to use encryption on your system, you must reformat the disk with an encrypted file system type—this process erases all existing data on the drive. Before enabling encryption, move your data off the disk, change the file system to an encrypted option, format the disk, and then move your data back. For details, see [How to encrypt a drive in Unraid](../../system-administration/secure-your-server/securing-your-data.mdx#how-to-encrypt-a-drive-in-unraid). - -Keep in mind that using encryption can make it harder to recover data if something goes wrong, so only use it if you really need it. - -
- -:::info[Disk Recognition and Port Flexibility] - -Unraid identifies disks based on their serial numbers and sizes, not the specific SATA ports they're connected to. This means you can switch drives between different SATA ports without affecting their assignments in Unraid. This feature is particularly useful for troubleshooting hardware problems, like finding a faulty port or replacing unreliable power or SATA cables. - -::: - -:::caution - -Your array will not start if you assign or attach more devices than your license key allows. - -::: - -## Start/Stop the array - -When your system starts up, it usually powers up the array of disks automatically. However, if you've recently changed the disk setup, such as adding a new disk, the array will remain off to allow you to check your configuration. - -:::caution - -Keep in mind that you'll need to stop the array first to make any adjustments. Stopping it will fully stop all Docker containers and network shares, shut down or hibernate VMs, and your storage devices will be unmounted, making your data and applications inaccessible until you restart the array. - -::: - -To start or stop the array: - -1. Click on the **Main** tab. -2. Navigate to the **Array Operation** section. -3. Click **Start** or **Stop**. You may need to check the box that says "Yes, I want to do this" before proceeding. - ---- - -## Array operations - -Unraid provides several maintenance and configuration options for your storage array. Key operations include: - -import DocCardList from "@theme/DocCardList"; - - - ---- - -### Adding disks - -#### Setting up new disks - -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. - -:::tip[Hot-Swap Feature] - -If you're using modern Unraid-compatible hardware, you can change disks without shutting down your server. This feature, known as hot-swap, has been available in LimeTech servers since the beginning. - -::: - -#### Clear vs. Pre-Clear - -Unraid requires disks to be in a cleared state - completely filled with zeros and marked with a special signature - before adding them to a parity-protected array. This process ensures parity integrity and keeps the array online during disk preparation. - -Clearance is mandatory when adding a data disk to a %%parity|parity%%-protected array. If you are adding a %%parity disk|parity-drives%% or working with an array that does not use %%parity|parity%%, clearance is not required. - -The built-in clear operation writes zeros to the disk in the background, allowing the array to remain available. Once the process is complete, the disk must be formatted before use. This method is efficient, requires no third-party tools, and is ideal for quick expansions. - -For a more thorough approach, the pre-clear operation – available through plugins like [Unassigned Devices Preclear](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=enable%20destructive%20mode.-,Unassigned%20Devices%20Preclear,-dlandon) – performs a pre-read to check for bad sectors, zeros the disk, and then verifies integrity with a post-read. This extra step helps detect early drive failures but takes significantly longer and requires manual plugin installation. - -**Rule of thumb:** Use the built-in clear operation for fast additions to your array, or choose pre-clear if you want extensive testing of disk health before putting a drive into service. - -

Clear vs. Pre-Clear Comparison

- -
- | | Clear | Pre-Clear | - |----------------|-------------------------------|----------------------------------------------| - | **Purpose** | Ensures basic compatibility | Tests the drive and prepares it - for use | | **Speed** | Works quickly | Much slower process | | **Array - Impact** | Runs in the background | Requires the disk to be out of the array | - | **Best for** | Ideal for quick expansions | Great for 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. - -**Pre-Clear** takes longer but provides a thorough test, ensuring a new disk is reliable before it becomes part of your array. - -:::caution[Critical Note] - -Avoid formatting a pre-cleared disk before including it in the array, as this removes the clearance signature. - -::: - -#### Adding data disks - -Adding data disks is a great way to increase your Unraid array's storage space. By adding more disks, you can keep more files, applications, and backups, while still protecting your data. - -:::important[Important Note:] - -When adding a new data disk, it must be the same size or smaller than your current %%parity disks|parity-drives%%. If you want to use a larger disk, you'll need to replace the %%parity disks|parity-drives%% first with the larger one, then use the old %%parity disks|parity-drives%% as a data disk. - -::: - -
- How to add a data disk - -```mdx-code-block - - - - - - - - - - -``` - -
- -#### Adding parity disks - -%%Parity disks|parity-drives%% are a helpful feature that provide an extra layer of protection for your data. They allow your storage system to recover information if a hard drive fails. While using %%parity disks|parity-drives%% is optional, it's highly recommended to keep your data safe. - -:::important[Requirements] - -- **Single Parity:** The disk must be at least the same size as your largest data drive. -- **Dual Parity:** Both %%parity disks|parity-drives%% must also be at least the size of your largest data drive, but they can be different sizes from each other. - -::: - -Adding a %%parity disk|parity-drives%% is similar to adding a data disk, but there's one important step to keep in mind: - -1. After you select the %%parity disk|parity-drives%% and start your storage array, a process called **parity calculation** begins. -2. While this process runs, you can still access your files. However, the system might run a bit slower because it's working to calculate the parity. - -
- In-depth: What is parity and why does it matter? - Click to expand/collapse - -%%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. - -Unraid relies on this real-time parity for two primary purposes: - -- Rebuilding data when a drive fails -- Correcting errors when a bad sector is found - -This feature allows you to keep your data safe, even as drives will eventually fail over time. - -
- -
- In-depth: How does Unraid parity work? - Click to expand/collapse - -Unraid works with a special bit called the _parity bit_, which is stored for each bit position across all data disks and is 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, a process known as even parity. - -Here's how it breaks down: - -- Unraid uses the XOR (exclusive OR) operation for this calculation. -- For example, if you have four drives, and their 57th bits are 1, 1, 1, 1, the parity bit for that position will be 0 (because 1 + 1 + 1 + 1 + 0 = even). -- However, if the 57th bits are 1, 0, 0, 0, the %%parity|parity%% for that position will be 1 (to ensure the total remains even). - -When adding a new drive, Unraid first clears it by writing zeros to all bits. This allows for quick inclusion into the protected array since writing zeros does not interfere with the current parity calculations. - -
- -
- In-depth: How is data reconstructed using parity? - Click to expand/collapse - -Unraid can reconstruct a missing drive or repair a bad sector using the following steps: - -- It reads all remaining drives, including the %%parity disk|parity-drives%%. -- It applies even %%parity|parity%% to solve for the missing data. - -For example, if drive 2 fails: - -- If the related bits are 1, 1, 1 (in addition to the %%parity|parity%%), Unraid calculates: 1 + x + 1 + 1 + 0 = even. Here, x must be 1 to maintain an even total. -- If the bits show 1, x, 0, 0, 1 = even, then x will equal 0. - -This %%parity|parity%% feature allows Unraid to "simulate" the missing disk. You can continue using the array as if the drive were still functional. Once you install a new drive in the failed slot, Unraid will recreate all the missing data based on the current state of %%parity|parity%% and the other disks. - -To ensure ongoing protection and effective recovery, it's important to run regular %%parity checks|parity-check%%. - -
- -
- How big does my parity disk need to be? - Click to expand/collapse - -Your %%parity disk|parity-drives%% must be **equal to or larger than your largest data disk**. For instance: - -- If your largest data disk is 10TB, your %%parity disk|parity-drives%% should be at least 10TB. -- You can use various other data disk sizes freely, as long as none exceeds the size of the %%parity disk|parity-drives%%. - -
- -
- In-depth: How does parity affect write performance? - Click to expand/collapse - -Writing to a %%parity|parity%%-protected array involves four disk operations for each write: reading data, reading %%parity|parity%%, writing data, and writing %%parity|parity%%. This process requires a full rotation from each affected drive, so the overall write speed is limited by the slowest drive involved in the operation. - -Adding a faster %%parity disk|parity-drives%% won't necessarily improve write speeds unless you're writing to multiple slow data disks simultaneously, allowing the %%parity disk|parity-drives%% to handle the load. Typically, the write speed is constrained by the slowest data drive being written to. - -
- -
- In-depth: How does Dual Parity work? - Click to expand/collapse - -Dual %%parity|parity%% enables recovery from **two simultaneous disk failures**. In Unraid, the second %%parity disk|parity-drives%% doesn't simply mirror the first. Instead: - -- **Parity 1:** Employs standard XOR (even) %%parity|parity%% calculations. -- **Parity 2:** Implements Q-parity using Galois-field syndrome calculations (Reed-Solomon–style), comparable to %%RAID 6|raid6%%. This Galois-field implementation allows Unraid to rebuild from any two simultaneous disk failures. This feature is significant for larger arrays, where the risk of multiple failures increases. Dual %%parity|parity%% significantly boosts resilience without the added overhead of mirrored redundancy. - -
- -:::caution[Remember] - -When setting up a new data storage system, add your data disks **first**, making sure they all use a compatible file system. **After** placing your data disks, you can add a %%parity disk|parity-drives%% to protect against drive failures. - -Once your %%parity disk|parity-drives%% is added, remember that any new disk you want to include in the array must be cleared (zeroed) before it's integrated. This is to ensure that the %%parity|parity%% remains valid and continues to protect your data. - -::: - -#### Upgrading parity disks - -You can upgrade your %%parity disk|parity-drives%% device(s) to a larger one(s) to use larger-sized disks in the array or add an additional %%parity disk|parity-drives%%. - -:::caution - -If you're planning to take the following steps and only have one %%parity disk|parity-drives%%, keep these points in mind: - -- Your data will be unprotected until the %%parity|parity%% rebuild is complete. If a data drive fails during this time, you could lose the information on that drive. -- If you already have a data drive that has failed, proceeding with these steps will prevent you from being able to rebuild that drive. In this case, you should follow the **Parity Swap** procedure instead. - -::: - -To upgrade a parity drive: - -1. **Stop the array:** Use the %%WebGUI|web-gui%% to stop the array. - -:::tip - -If your server supports hot-swap, you do not need to power down to change disks. You can safely skip steps 2 and 4. - -::: - -2\. **Power down the server:** Turn off your server to safely make hardware changes. -3\. **Install the new %%parity disk|parity-drives%%:** Place the new, larger %%parity disk|parity-drives%% into your server. -4\. **Power up the server:** Turn the server back on. -5\. **Assign the new disk:** Go to the parity slot in your settings and assign the new disk, replacing the old one. -6\. **Start the array:** Use the %%WebGUI|web-gui%% to start the array again. - -Once the array is back up, Unraid will start building %%parity|parity%% on the new disk. You can still access your data during this time, but keep in mind that it might be a bit slower until the process is done. Once the %%parity|parity%% build is complete, your data is protected again! - -:::important[Important Tips] - -- **Keep the old disk:** Don't remove the old %%parity disk|parity-drives%% until the new %%parity|parity%% build finishes. If a data disk fails during the upgrade, having the old disk might help you recover your data. - -- **Dual parity users:** If you have two %%parity disks|parity-drives%%, upgrade one at a time for added safety. - -- **Repurpose the old disk:** After the upgrade, you can use the old %%parity disk|parity-drives%% as a data disk if it still meets your storage needs. - -::: - ---- - -### Replacing disks - -You may need to replace disks in your array for two main reasons: - -1. [**Capacity upgrade**](#upgrading-capacity): Your storage is nearly full, and you want to use larger disks. -2. [**Failure or retirement**](#replacing-faileddisabled-disks): A disk has failed or is no longer supported. - -While the process for replacing disks is similar in both cases, be cautious, as there is a risk of data loss during the replacement. Parity devices help protect your data; one parity device can safeguard against a single disk failure, while two can protect against losing data if two disks fail. Always be aware of your protection level during disk replacements. - -#### Upgrading capacity - -When upgrading your data drive to a larger one, here are some points to keep in mind: - -- **Unmountable disks:** Fix any unmountable disks before upgrading. An unmountable status won't be resolved during the rebuild. - -- **Single parity risks:** If you have single parity, you're at risk of data loss if another drive fails during the upgrade. Seek advice in forums if this happens. - -- **Dual parity protection:** With dual parity, you're safe from losing data if one drive fails while upgrading a single drive. You can also upgrade two drives at once, but note that this increases the risk since you won't have protection against another drive failing. - -- **Backup the old disk:** Keep the original disk intact until the upgrade is confirmed successful. This provides a fallback option if anything goes wrong. - -:::warning - -Replacing drives always involves some risk. If another drive fails during the upgrade, especially with only single parity, you may experience data loss. Always check the health of your drives before beginning the process, and ensure that you keep the old drive intact until the upgrade is complete and your data is confirmed to be safe. - -::: - -To upgrade an existing data disk: - -1. **Run a parity check:** First, ensure the integrity of your data by running a %%parity check|parity-check%%. Go to [**_Tools → Parity Check_**](#checking-array-devices) and make sure there are **zero errors**. If parity isn't valid, rebuilding the disk will corrupt its file system. - -2. **Stop the array:** Next, you'll want to stop the array. Navigate to **_Main → Array Operation_** and select **Stop**. - -3. **Unassign the target disk:** Once the array is stopped, find the disk you want to replace. Remove it from its slot in **_Main → Array Devices_**. - -4. **Start the array:** Now, start the array again. Unraid will emulate the missing disk using the existing parity and data disks. You have two modes to choose from: - - **%%Maintenance Mode|maintenance-mode%%:** This mode prevents any writes to the %%emulated disk|emulated-disk%%. - - **Normal Mode:** If you need read/write access to the %%emulated disk|emulated-disk%%, select this option. - -:::note - -Starting the array in Normal Mode at this point is optional. You can use it to verify that the emulated disk mounts and the data looks correct before proceeding, but it is not required for the upgrade process. - -::: - -5. **Stop the array again:** The array should now show that the unassigned disk has failed. Stop the array once more. - -6. **Assign the replacement disk:** Insert your new, larger disk into the vacant slot in the array. - -7. **Start the array to rebuild:** Finally, start the array again. Unraid will now rebuild the contents of the %%emulated disk|emulated-disk%% onto the new disk. The file system will automatically adjust to take full advantage of the larger disk's capacity. - -#### Replacing failed/disabled disks - -
- What is a failed/disabled disk? - -A failed or disabled disk is one that Unraid has stopped using for writing data, usually because it encountered a write error. Keep in mind these don't always mean the drive itself is broken; sometimes, it might be due to bad connections, power issues, or just a temporary glitch. - -Some indications include: - -
- ![Red "X" indicates write error](/img/Diskfailureindicator.png) -

- *This red "X" shows which disk needs replacement.* -

-
- -
- -
- ![Failure notification alert](/img/Diskfailurenotification.png) -

*Keep an eye out for these alerts.*

-
- -
- -
- Click to see how different parity configurations handle disk failures - - | Failure Scenario | No Parity | Single Parity | Dual Parity | - | ------------------- | --------- | ------------- | ----------- | - | **1 Disk Failure** | Data Lost | Rebuildable | Rebuildable | - | **2 Disk Failures** | Data Lost | Data Lost | Rebuildable | - - :::tip[Tips for Safe Rebuilds] - - **For Single Parity:** You can only replace one disk at a time. If another disk fails during the rebuild, you could lose data. - - **For Dual Parity:** You can replace one or two disks at the same time, but be cautious if more than two disks fail. - ::: - - :::important - If you experience a situation where **more disks fail than your parity can protect:** - - 1. **Immediately halt all write operations** to prevent further data loss. - 2. Seek help by posting your issue in the [Unraid forums](https://forums.unraid.net/) along with diagnostics. - 3. **Do not attempt a rebuild** until you've received advice - focus on salvaging your data first. - ::: - -
-
- -
- How to diagnose the issue - -To diagnose the issue, start by checking the %%syslog|syslog%% and %%SMART reports|smart-report%%: - -- If the %%syslog|syslog%% shows that the drive has reset, there might be a problem with the connection or cables. -- %%SMART reports|smart-report%% can help assess the drive's health, but the best way to check is by running a %%SMART|smart%% extended test. If it completes without errors, the drive is likely fine. -- If you see %%CRC errors|crc-errors%%, it usually points to issues with the cabling. Keep an eye on these errors, as they accumulate over time and don't reset. - - :::tip - To stay informed about drive issues, [enable notifications](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#notification-settings) in Unraid. This way, you are alerted right away if something goes wrong, reducing the risk to your data. - ::: - -
- -
- What is emulation? - -When a drive is disabled, Unraid will use its parity and other working drives to emulate the failed drive. This means your system continues to operate, and you can still access the data stored on the %%emulated drive|emulated-disk%%: - -- Unraid will stop writing to the physical drive, and any updates will be saved in parity and the emulation instead. -- Before replacing the failed drive, you can check and recover data from the %%emulated drive|emulated-disk%%, which keeps the physical drive intact for potential recovery. -- If you can't access the %%emulated drive|emulated-disk%%, repairing the file system is essential before any rebuild since fixing the file system is quicker and more effective than a rebuild. - -
- -
- Preparing for drive replacement - -When you need to replace a drive, make sure the new drive is at least as large as the failed drive but not larger than your smallest parity drive. If you have to use a larger drive, follow the **Parity Swap** procedure. - -While it's not mandatory, many users choose to pre-clear new drives to test them and help prevent early failure. You can do this with the Preclear plugin, a %%SMART|smart%% extended test, or manufacturer tools. - -:::caution -If you try to rebuild using an unmountable %%emulated drive|emulated-disk%%, the new drive will also become unmountable. Always repair the file system before attempting a rebuild. -::: - -
- -If a disk in your Unraid system has failed or is disabled, don't worry! You can replace it and recover your data. Just follow these simple steps. Remember, you need a new disk that is the same size or larger than the one you're replacing, but it can't be larger than your smallest %%parity disk|parity-drives%%. - -:::important - -Before you start, make sure to check for any disk errors or warnings. Unraid must be able to read all the remaining disks without any issues for the rebuild to work correctly. If another disk is failing, it could lead to data loss. - -::: - -To replace and rebuild a disk: - -1. **Stop the array:** - - Log in to the Unraid %%WebGUI|web-gui%% (the web interface). - - Find the option to stop the array. This is necessary before you can change any disks. - -:::tip - -If your server supports hot-swap, you can skip the next step and just stop the array. - -::: - -2. **Power down your server** (only if **not** using hot-swap): - - If your server doesn't support hot-swap, you'll need to shut it down completely. - -3. **Replace the failed disk:** - - Remove the old, failed disk from your server. - - Insert the new disk. Just remember, it has to be at least the same size as the old disk but no bigger than your smallest %%parity disk|parity-drives%%. - -4. **Power up the server** (if you powered it down): - - Turn your server back on if you shut it down. - -5. **Assign the new disk:** - - Go back to the Unraid %%WebGUI|web-gui%%. - - Find the slot for the failed disk and assign your new disk to that slot. - -6. **Confirm your action:** - - You'll see a confirmation box. Check the box that says **Yes, I want to do this** and confirm. - -7. **(Optional) Choose %%Maintenance Mode|maintenance-mode%%:** - - You can select %%Maintenance Mode|maintenance-mode%%, which can make the rebuild process faster. However, during this time, you won't be able to access the array at all. - - If you choose %%Maintenance Mode|maintenance-mode%%, you will still click **Start** in the next step to begin the rebuild. - -8. **Start the rebuild:** - - Click **Start** to begin the process. Unraid will copy your data from the %%emulated disk|emulated-disk%% to the new disk. - - If your new disk is larger, Unraid will manage the extra space for you. - -:::warning - -If Unraid prompts you to format the new disk during the rebuild, **do not do it**. Formatting will wipe all data and make recovery impossible. - -::: - -

What to expect during the rebuild

- -- The array will still be available to use during the rebuilding process (unless you're in %%Maintenance Mode|maintenance-mode%%), but it might run slower. -- Rebuilding can take several hours, depending on your disk sizes and system usage. -- The new disk will have the same file system as the original. -- If the old disk was unmountable due to file system issues, the new disk will also not be mountable. Please fix any file system issues before starting the rebuild. - -:::note[Additional notes] - -- The rebuild process won't change the file format of the disk; it simply restores its previous form. -- Always check the health of every disk before you start a rebuild to avoid any potential issues. - -::: - -#### Re-enabling a disabled disk (rebuilding onto itself) - -Sometimes, a disk may be disabled not because it's actually faulty, but due to issues such as loose cables, power problems, or temporary glitches. If that's the case, you can try to re-enable the disabled disk by rebuilding it onto itself instead of replacing it. - -:::important[When to use this procedure] - -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 fixed any external problems that caused the disk to be disabled. -- The disk seems to be functioning normally. - -::: - -:::warning[Important considerations] - -- 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. Some users assume that a rebuild will automatically fix an unmountable emulated disk, but it's important to 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. -- 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:** - - Run a [%%SMART|smart%% extended test](../../system-administration/advanced-tools/command-line-interface.mdx#smartctl) on the disabled drive to confirm it's actually healthy. - - Check for and acknowledge any warning icons in the dashboard that indicate %%SMART|smart%% warnings. - -2. **Stop the array:** Use the %%WebGUI|web-gui%% to stop the array. - -3. **Unassign the disabled disk:** Go to **_Main → Array Devices_** and change the disabled disk slot to "Unassigned." - -4. **Start the array:** Start the array so Unraid can register the missing disk. The array will display the disk as "Not installed." - -5. **Verify emulated content (for data drives only)**: Check that the %%emulated disk|emulated-disk%% shows the content you expect. - -6. **Stop the array:** Stop the array to prepare for the next steps. - -7. **Reassign the disabled disk:** Assign the same disk back to its original slot. - -8. **(Optional) Choose [%%Maintenance Mode|maintenance-mode%%](../../troubleshooting/common-issues/data-recovery.mdx#maintenance-mode):** - - Selecting %%Maintenance Mode|maintenance-mode%% can speed up the rebuild process by preventing array access during the rebuild. - - When in %%Maintenance Mode|maintenance-mode%%, you won't be able to use the array until the rebuild completes. - - %%Maintenance Mode|maintenance-mode%% does not change how the rebuild is started—you'll still click **Start** in the next step. - -9. **Start the rebuild:** Click **Start** to begin the rebuild process. Unraid will take the contents from the %%emulated disk|emulated-disk%% and reconstruct them onto the physical drive. - -:::info[Rebuild time expectations] - -Rebuilding a disk onto itself can take several hours to more than a day for larger drives, depending on the size of the disk and system activity. Factors that can affect rebuild time include drive capacity, disk speed, and system load. You can keep an eye on the progress in the %%WebGUI|web-gui%%. - -::: - -This procedure works for both data drives and %%parity drives|parity-drives%% that have been disabled. - -#### Parity swap - -```mdx-code-block - - - - - - - - - - -``` - -
- Example scenario - -You have an Unraid setup with a **2TB parity drive** and a **1TB data drive** and want to replace the 1TB drive with a **4TB drive**. - -First, assign the new 4TB drive as the parity drive, which will replace the 2TB drive. Then move the original 2TB drive to the data slot, and remove the 1TB drive entirely. - -After these changes, you'll have a 4TB drive as your new parity, ensuring you can add future data drives up to 4TB. The 2TB drive will now hold your existing data, while the 1TB drive can be repurposed. - -This swap keeps your data secure and your array protected, allowing for future upgrades. - -
- -:::important[Prerequisites] - -- 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 a Data Drive](#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. - -::: - -:::warning[Warnings] - -- Always verify the health of all drives using %%SMART reports|smart-report%% before starting a %%parity swap|parity-swap%%. Attempting this procedure with another failing or unhealthy disk increases the risk of data loss. -- Preclear the new disk if possible. While not required, preclearing stress-tests the drive and reduces the risk of early failure. -- Correctly identify all drives before beginning. Note the model numbers and last four characters of each serial number to avoid mistakes during assignment. - -::: - -To carry out a parity swap: - -:::note - -If the drive to be replaced is already disabled (failed), you may not need to perform steps 1–4. If you have already installed the new replacement drive (for example, after preclearing), you can skip steps 5–8. - -::: - -1. **Stop the array** if it is running. -2. **Unassign the old data drive** if it is still assigned. If the drive was previously healthy, you may see error notifications for a missing drive - this is expected. -3. **Start the array.** If prompted, check the box confirming your action. The data drive should now show as "Not installed." -4. **Stop the array again.** At this point, the array treats the drive as failed. -5. **Power down the server.** - - :::tip - If your system supports **hot-swap**, you do not need to power down to remove or install disks. Just make sure the array is stopped before making any hardware changes. - ::: - -::: - -6\. _(Optional)_ **Remove the old drive.** You may wish to keep it installed for testing or reassignment. -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. If you see a message about retrying to unmount disk shares, disable Docker and/or VM services in Settings, reboot, and try again. -10\. **Unassign the parity drive.** -11\. **Assign the new drive to the parity slot.** You may receive error notifications - this is normal. -12\. **Assign the old %%parity drive|parity-drives%% to the data slot** of the drive being replaced. Both the parity and replacement data drives should now display blue status indicators. -13\. **Go to _Main → Array Operation._** You should see a **Copy** button and a message stating "Copy will copy the parity information to the new %%parity disk|parity-drives%%." -14\. **Confirm and start the copy process.** Check the confirmation box and click **Copy**. The array will not be available during this operation. - -- The copy process can take many hours, depending on disk size. When finished, the array will be stopped and ready for a data rebuild. - -15. **Start the array to begin the data rebuild.** - - Confirm your action if prompted. The array is now started, and data is reconstructed onto the new data drive. - - You can use the array during the rebuild, but for best performance, limit usage. - - The rebuild process will also take several hours. - -:::warning - -Never format a drive during this process. Formatting will erase all data and update parity, making recovery impossible. - -::: - -After completion, you will have a larger parity disk and a replaced data disk. Many users run a %%parity check|parity-check%% afterward for extra confidence, though this is optional. - ---- - -### Removing disks - -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. - -#### Removing parity disks - -If you find that you no longer need the level of %%parity|parity%% protection in your setup, you can remove a %%parity disk|parity-drives%% whenever you want. - -To remove a %%parity drives|parity-drives%%: - -1. **Stop the array:** Begin by accessing the %%WebGUI|web-gui%% and stopping the array. -2. **Unassign the %%parity drives|parity-drives%%:** Locate the %%parity drives|parity-drives%% slot and set it to "Unassigned." -3. **Start the array:** Finally, restart the array to commit the changes and successfully remove the %%parity drives|parity-drives%% from the configuration. - -:::warning - -Before you make any changes, please keep this in mind: If you already have any failed data drives in your array, removing a %%parity disk|parity-drives%% can decrease the number of failures Unraid can handle without risking data loss. - -- With dual parity, you can recover from a single failed drive, but be aware that you won't be able to survive another failure during the rebuild process. -- With single parity, you lose all redundancy, meaning that any additional drive failures could result in data loss. - -::: - -#### Removing data disks - -Removing a data disk is a straightforward process, but it's important to remember that you'll need to perform a %%parity|parity%% sync afterwards. Until this sync is complete, there's a risk of data loss if another disk fails. - -You can choose from two methods to remove a data disk: - -1. **Standard method** - Recommended for most users. -2. **Parity-preserve method** - Suitable for advanced users who want to maintain parity during the removal. - -```mdx-code-block - - - - - - - - - - -``` - ---- - -### Checking array devices - -Regularly checking your Unraid array is crucial for maintaining data integrity and identifying potential issues before they result in data loss. 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%%. - -
- ![The check button lets you perform parity and read - checks](/img/Check_button.PNG) -
- -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 & Read checks - -```mdx-code-block - - - - - - - - - - -``` - -#### 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. - -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. - ---- - -### Spinning disks down or up - -Unraid allows you to control the power states of your hard drives. You can easily %%spin them up or down|spin-state%%, and manage SSDs to be active or in standby. This helps save energy, extend the life of your drives, and reduce noise when the disks are not being used. - -

Why spin down or up?

- -- **Spin down:** If you have drives that aren't used often, spinning them down can save energy and help them last longer. -- **Spin up:** If you know you'll need files soon, spinning up the disks ahead of time can cut down wait times. - -

How to control spin states

- -You can control disk spin states through the **Main** tab in the %%WebGUI|web-gui%%: - -1. **Go to the Main tab** and locate your array devices -2. **Find the spin control buttons** - each disk will show either: - - Click the 🔘 button to **Spin Up** if the disk is currently spun down - - Click the 🟢 button to **Spin Down** if the disk is currently spinning -3. **Click the appropriate button** for the action you want: - - Click **Spin Down** 🟢 to power down an idle disk and save energy - - Click **Spin Up** 🔘 to power up a disk that's currently spun down - -Remember that if a disk is being accessed (like if you're opening a file), it will stay active and ignore any spin-down request. - -When a disk is spun down, its temperature won't show in the %%WebGUI|web-gui%%. However, once any application or user accesses it, it will automatically spin up. - -:::tip - -Use the spin controls to save power and reduce wear on your drives. Remember that disks that are actively being used will stay on until all tasks are finished. - -::: - ---- - -### Reset the array configuration - -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. - -Common reasons to reset your array include: - -- **Removing or replacing disks:** If you need to take out or swap out any disks in your array. -- **Starting anew:** When you're looking to create a brand new layout for your array. -- **Fixing disk assignment errors:** To correct any issues with how disks are currently assigned. -- **Recovering from configuration problems:** When facing challenges with your existing setup. - -
- ![Resetting your disk configuration can be done via the new config - page](/img/Newconfig.png) -
- -To reset your array configuration: - -1. Go to the **Tools** page and click on **New Config**. -2. You can keep some existing disk assignments if you only wish to make minor adjustments. This can save time and minimize the chance of errors. -3. Confirm your choice by checking the box, then click **Apply**. -4. Head back to the **Main** tab. After applying the changes, your configuration will have been reset. -5. Make any necessary changes to your configuration by assigning or unassigning disks as appropriate. -6. Launch the array in Normal or %%Maintenance Mode|maintenance-mode%% to finalize your updates. - -:::important - -- **Data preservation:** Unraid will attempt to recognize previously used drives and preserve data where possible. -- **Impact on parity:** Removing a data drive will always invalidate parity unless that drive was zeroed before removal. -- **Disk reordering:** Changing the order of disks won't affect parity1, but it _can_ invalidate parity2. - -::: - -:::caution - -When you see the **Start** button, there is a checkbox labeled **Parity is Valid**. Only check this box if you are certain it is correct or if an experienced Unraid user has advised you to do so during recovery. Incorrectly checking this option can lead to data loss. - -Do not use **New Config** if your goal is to rebuild a disk. Performing a New Config clears the array history required for a rebuild, and Unraid will not offer to rebuild the disk afterward. Follow the disk rebuild procedure instead. - -::: - -#### Undoing a reset - -If you find that you need to reverse a reset: - -1. Access your flash device over the network (SMB). -2. Locate and open the `config` folder. -3. Rename the file `super.old` to `super.dat`. -4. Reboot your server, and your prior array configuration should be restored. - ---- - -### Status reports - -Unraid provides status reports that help you keep track of the health of your storage array. These reports are a quick way to check if any of your disks are disabled or having issues with reading or writing data. - -- **Current status:** Status reports show the current condition of your array. It's important to note that this information resets after you restart your system, so that it won't keep a history of past issues. - -- **No historical data:** If you want to see what has happened before a reboot, you'll need to look elsewhere, as these reports don't save past states. - -:::important - -Remember that the status reports don't include %%SMART|smart%% data. %%SMART reports|smart-report%% give you a more detailed view of individual disk health. So, even if your status report shows everything is fine, checking the %%SMART reports|smart-report%% regularly is still a good idea to catch any potential problems early. - -::: - ---- - -## Array write modes - -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 | -| ------------------------- | ---------------------------------------- | ----------- | ---------------------------- | ---------------- | --------------------------------------------------------------------- | -| Read/Modify/Write | 20–40 MB/s | Low | Only parity and target drive | Yes | Most workloads, energy savings, small writes | -| Turbo Write (Reconstruct) | 40–120 MB/s | High | All drives | Yes | Large file transfers, array rebuilds, %%parity checks\|parity-check%% | -| Cache Write (SSD/NVMe) | 50–110 MB/s (SSD), 250–900 MB/s (NVMe)\* | Varies | Cache drives only | No (until moved) | Apps, VMs, frequent writes, maximizing speed | - -

Read/Modify/Write

- -
- Click to expand/collapse - -

How it works

-This mode reads the existing data and the parity, calculates the new parity, and -then writes the updated data. Only the %%parity drive|parity-drives%% and the -target data drive spin up, which results in lower power usage and less wear on -the drives. However, it can be slower due to the additional read/write cycles. - -

When to use

- -- Anytime, especially if you want energy savings and idle drives to spin down. -- Great for small or infrequent writes. - -
- -

Turbo Write (Reconstruct write)

- -
- Click to expand/collapse - -Turbo write, also known as reconstruct write, is a feature designed to boost the writing speed of your Unraid array. It works by reading all data drives and updating the parity simultaneously. This process eliminates the delays caused by waiting for the platters to rotate, as seen in the default write mode. However, it's important to note that all array drives need to be spinning and functioning properly for this to work effectively. - -

How it works

- -- When you write new data, Unraid reads from all the other data drives and recalculates the parity at the same time. Both the new data and the updated parity get written together. -- All drives in the array must be operational and actively spinning. -- This method significantly enhances write speeds compared to the default writing mode. - -

When to use Turbo Write

- -- Utilize turbo write when transferring large, sequential files to the array. -- It's effective during array rebuilds or %%parity checks|parity-check%%, as all drives will already be spinning. -- This mode is very useful when minimizing write time is a priority and you can confirm all drives are healthy. - -

When to avoid Turbo Write

- -- Avoid using this mode if you want your drives to spin down during idle times to conserve energy. -- Turbo write isn't ideal for small or infrequent write operations since it causes all drives to spin up for every write, increasing power usage and wear on the drives. -- If you suspect that any drive is failing or is unreliable, it's best to steer clear of turbo write since it relies on every drive being operational. - - :::info - Turbo write is best suited for bulk operations and scenarios requiring high throughput. However, it might not be the best choice for everyday tasks if you're focused on energy savings and minimizing drive wear. - ::: - -
- -

Cache Write

- -
- Click to expand/collapse - -

How it works

- -Data is written first to a fast SSD or NVMe %%cache|cache%% and can then be moved to the main array later by a process called the %%Mover|mover%%. The speeds vary: - -- SSD: 50–110 MB/s -- NVMe: 250–900 MB/s (which can utilize 10GbE networks) - -Once data is moved to the array, it is protected by parity. - -

When to use Cache Write

- -- For shares with frequent write operations like applications, virtual machines, or downloads. -- To enhance performance and reduce any perceived write latency. - -

Performance Expectations

- -- Without a cache drive: Average 20–30 MB/s, with peaks up to 40 MB/s. -- With SSD cache: 50–110 MB/s. -- With NVMe cache: 250–900 MB/s depending on network or drive constraints. - - :::tip - Consider using a cache pool (multiple devices) for added redundancy and data protection before the %%Mover|mover%% runs. - ::: - -
- -:::info[Automated Solutions] - -- The **Auto** mode (a future feature) will engage turbo write only when all drives are already spinning. -- Community plugins (search for "Turbo Write" in the Apps tab) may offer enhanced automation or scheduling options. - -::: - -To change Write Mode: - -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) - - **Auto** (future feature) -4. Click **Apply** to confirm your choice. - -:::important[Quick recap] - -- Use **Turbo Write** when you need speed, but be aware of increased power consumption and drive spin-up. -- Utilize **Cache Write** for optimal performance, particularly with SSD or NVMe drives. -- For most users, the default write mode offers the best balance unless you specifically need higher speeds. - -::: - ---- - -## Read modes - -When using Unraid, the speed at which you can read files is mainly determined by the individual drive that holds each file. Unlike traditional %%RAID|raid%% systems, which combine multiple drives to improve performance, Unraid stores each file on a single disk. This means read speeds won't be boosted by the combined speeds of multiple drives. - -

Performance expectations

- -- **Typical single HDD:** 70–250 MB/s (depends on drive model, age, and data location) -- **Typical SATA SSD:** 400–550 MB/s -- **NVMe SSD (in a pool):** 250–7,000 MB/s (PCIe generation and network/PCIe limitations apply; e.g., 10GbE network caps at \~1,100 MB/s) - -:::note[Special cases] - -- If a disk is disabled and its data is being reconstructed, Unraid will use the remaining drives along with parity information to recreate the data. During this process, the read speed may slow down to 30–60 MB/s or even lower, depending on the slowest drive in your system. -- Any ongoing operations in the array, such as a %%parity check|parity-check%% or rebuilding a drive, can also affect read performance. This is due to increased movement of the drive heads and overall contention for resources. - -::: - ---- - -## Cache pools - -%%Cache pools|cache-pool%% in Unraid provide significant advantages, particularly for write-heavy tasks, virtual machines (VMs), and Docker containers. These pools operate separately from the main array and can be set up with multiple drives using either the %%BTRFS|btrfs%% or %%ZFS|zfs%% file system, supporting various %%RAID|raid%% configurations for speed and data protection. - -

Cache pools vs. the main array

- -| Feature | Cache pool (BTRFS) | Cache pool (ZFS) | Main array (Unraid) | -| ----------------------- | ---------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | -| **Read speed** | SSD: 400–550 MB/s, NVMe: 250–7,000 MB/s\* | SSD: 400–550 MB/s, NVMe: 250–7,000 MB/s\* | HDD: 70–250 MB/s (per disk) | -| **Write speed** | SSD: 400–550 MB/s, NVMe: 250–7,000 MB/s\* | SSD: 400–550 MB/s, NVMe: 250–7,000 MB/s\* | 20–120 MB/s (parity mode dependent) | -| **Data protection** | %%RAID 1\|raid1%%/%%RAID 10\|raid10%%; %%RAID 5\|raid5%%/%%RAID 6\|raid6%% (experimental, not for critical data) | %%RAID 1\|raid1%%/%%RAID 10\|raid10%%; %%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%%/%%RAIDZ3\|raidz3%% (stable, production-ready) | Parity-based, file system agnostic | -| **Expansion** | Mix drive sizes; add/remove devices dynamically | Limited add/remove device support; cannot remove from RAIDZ; single-device add to expand single-vdev RAIDZ in Unraid 7.2 | Add drives, but no striping or performance scaling | -| **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)._ - -

Pros of cache pools

- -- **Higher performance:** NVMe pools can saturate 10GbE/40GbE networks (1,100–3,500 MB/s). -- **Flexible RAID:** Both %%BTRFS|btrfs%% and %%ZFS|zfs%% support %%RAID 1|raid1%%/%%RAID 10|raid10%% for redundancy without matching drive sizes. -- **Low latency:** Ideal for databases, VMs, and Docker containers. -- **ZFS advantages:** %%ZFS|zfs%% provides enterprise-grade features like data integrity checking, compression, and snapshots. - -

Cons of cache pools

- -- **No parity protection:** Data is unprotected until moved to the array. -- **Recovery risks:** %%BTRFS|btrfs%% %%RAID 5|raid5%%/%%RAID 6|raid6%% is unstable; single-drive pools lack redundancy. -- **ZFS considerations:** %%ZFS|zfs%% requires more RAM and has stricter hardware requirements than %%BTRFS|btrfs%%. - -For more detailed information about %%cache pools|cache-pool%%, including how to set them up, manage them, and advanced features, check the [Cache pools](./cache-pools.mdx) page. - ---- - -## Troubleshooting - -### 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_**. - -```mdx-code-block - - - - - - - - - - - - - - - - - - - - - - -``` - -### Disk failure during a rebuild - -If a second disk fails while you're rebuilding another one, what you can do will depend on your parity setup. - -

Single %%parity disk|parity-drives%%

- -If one disk fails during the rebuild of another, the rebuild will stop because the data can't be accurately restored. Unfortunately, you won't be able to recover your data in this situation. - -

Dual %%parity disk|parity-drives%%

- -If you have two %%parity drives|parity-drives%%, you have more options: - -- You can wait for the first rebuild to finish and then deal with the second failed disk. -- Or, you can stop the current rebuild, replace the second failed disk, and then start the array to rebuild both disks at the same time. - -If the first rebuild is almost done, it's usually better to let it finish. If it just started, it might be faster to rebuild both together. - -:::warning - -Rebuilding disks puts a lot of stress on all drives, which increases the chance of new failures. Always check drive health using %%SMART reports|smart-report%% before starting a rebuild. - -::: - -:::info[Rebuild Time] - -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/_category_.json b/docs/unraid-os/using-unraid-to/manage-storage/array/_category_.json new file mode 100644 index 0000000000..818270509d --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/array/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Arrays", + "position": 2, + "collapsible": true, + "collapsed": false +} + 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 new file mode 100644 index 0000000000..b6bc71fcd7 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/array/adding-disks-to-array.mdx @@ -0,0 +1,178 @@ +--- +sidebar_position: 2 +sidebar_label: Adding disks to array +--- + +# Adding disks to array + +Adding data disks is a great way to increase your Unraid array's storage space. By adding more disks, you can keep more files, applications, and backups, while still protecting your data. + +:::important[Important Note:] + +When adding a new data disk, it must be the same size or smaller than your current %%parity disks|parity-drives%%. If you want to use a larger disk, you'll need to replace the %%parity disks|parity-drives%% first with the larger one, then use the old %%parity disks|parity-drives%% as a data disk. + +::: + +:::tip[Hot-Swap Feature] + +If you're using modern Unraid-compatible hardware, you can change disks without shutting down your server. This feature, known as hot-swap, has been available in LimeTech servers since the beginning. + +::: + +## Setting up new disks + +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. + +## Clear vs. Pre-Clear + +Unraid requires disks to be in a cleared state - completely filled with zeros and marked with a special signature - before adding them to a parity-protected array. This process ensures parity integrity and keeps the array online during disk preparation. + +Clearance is mandatory when adding a data disk to a %%parity|parity%%-protected array. If you are adding a %%parity disk|parity-drives%% or working with an array that does not use %%parity|parity%%, clearance is not required. + +The built-in clear operation writes zeros to the disk in the background, allowing the array to remain available. Once the process is complete, the disk must be formatted before use. This method is efficient, requires no third-party tools, and is ideal for quick expansions. + +For a more thorough approach, the pre-clear operation – available through plugins like [Unassigned Devices Preclear](https://unraid.net/community/apps?q=unassigned+devices#r:~:text=enable%20destructive%20mode.-,Unassigned%20Devices%20Preclear,-dlandon) – performs a pre-read to check for bad sectors, zeros the disk, and then verifies integrity with a post-read. This extra step helps detect early drive failures but takes significantly longer and requires manual plugin installation. + +**Rule of thumb:** Use the built-in clear operation for fast additions to your array, or choose pre-clear if you want extensive testing of disk health before putting a drive into service. + +

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** quickly prepares a disk for use, making it compatible with your system and allowing you to add storage in just a few hours. + +**Pre-Clear** takes longer but provides a thorough test, ensuring a new disk is reliable before it becomes part of your array. + +:::caution[Critical Note] + +Avoid formatting a pre-cleared disk before including it in the array, as this removes the clearance signature. + +::: + +## Adding data disks + +Adding a new data disk to your array expands storage capacity. The process varies slightly depending on whether you have parity protection enabled. Parity-protected arrays clear new disks before they become available, while arrays without parity can add disks more quickly. + +### Adding to a parity-protected array + +1. Stop the array. +2. Power down your server. +3. Install the new hard drive(s) physically. +4. Power the server back on. +5. Assign the new disk(s) to available data slots. +6. Start the array. Unraid will automatically start a clear operation on the new disk, filling it with zeros to ensure it's ready for use while maintaining data integrity. The clear operation runs in the background, so you can still access your array. The disk won't be usable until the process is complete. If you've pre-cleared the disk, Unraid skips this step. +7. After clearing completes, the disk shows as unmountable. You'll be prompted to format it. +8. Check the confirmation box and click the **Format** button. +9. The formatting takes a few minutes. Once completed, the disk shows as mounted and ready for use. + +:::important + +Always double-check the serial number to make sure you're formatting the right disk. Formatting erases everything on that disk, and this action cannot be undone. + +::: + +:::note + +You can add multiple disks, but they won't be usable until all have been cleared and formatted. + +::: + +### Adding to an array without parity protection + +1. Stop the array. +2. Power down your server. +3. Install the new hard drive(s) physically. +4. Power the server back on. +5. Assign the new disk(s) to available data slots. +6. Start the array. The clearing step is skipped entirely when there is no %%parity disk|parity-drives%% in the array. +7. The new disk shows as unmountable and you'll be prompted to format it. + +:::important + +Always double-check the serial number to make sure you're formatting the right disk. Formatting erases everything on that disk, and this action cannot be undone. + +::: + +## Adding parity disks + +%%Parity disks|parity-drives%% are a helpful feature that provide an extra layer of protection for your data. They allow your storage system to recover information if a hard drive fails. While using %%parity disks|parity-drives%% is optional, it's highly recommended to keep your data safe. + +:::important[Requirements] + +- **Single Parity:** The disk must be at least the same size as your largest data drive. +- **Dual Parity:** Both %%parity disks|parity-drives%% must also be at least the size of your largest data drive, but they can be different sizes from each other. + +::: + +Adding a %%parity disk|parity-drives%% is similar to adding a data disk: + +1. Select the %%parity disk|parity-drives%% and start the array. Unraid begins calculating parity. +2. You can still access your files during this process, but the system may run slower. + +### Understanding parity + +**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 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. + +**Parity disk size:** Your %%parity disk|parity-drives%% must be equal to or larger than your largest data disk. For instance, if your largest data disk is 10TB, your %%parity disk|parity-drives%% should be at least 10TB. + +**Performance impact:** Writing to a %%parity|parity%%-protected array involves four disk operations for each write: reading data, reading %%parity|parity%%, writing data, and writing %%parity|parity%%. This process requires a full rotation from each affected drive, so the overall write speed is limited by the slowest drive involved in the operation. + +**Dual Parity:** Dual %%parity|parity%% enables recovery from two simultaneous disk failures. The second %%parity disk|parity-drives%% doesn't simply mirror the first. Instead, Parity 1 uses standard XOR (even) %%parity|parity%% calculations, while Parity 2 implements Q-parity using Galois-field syndrome calculations (Reed-Solomon–style), comparable to %%RAID 6|raid6%%. This allows Unraid to rebuild from any two simultaneous disk failures, significantly boosting resilience for larger arrays. + +:::caution[Remember] + +When setting up a new data storage system, add your data disks **first**, making sure they all use a compatible file system. **After** placing your data disks, you can add a %%parity disk|parity-drives%% to protect against drive failures. + +Once your %%parity disk|parity-drives%% is added, remember that any new disk you want to include in the array must be cleared (zeroed) before it's integrated. This is to ensure that the %%parity|parity%% remains valid and continues to protect your data. + +::: + +## Upgrading parity disks + +You can upgrade your %%parity disk|parity-drives%% device(s) to a larger one(s) to use larger-sized disks in the array or add an additional %%parity disk|parity-drives%%. + +:::caution + +If you're planning to take the following steps and only have one %%parity disk|parity-drives%%, keep these points in mind: + +- Your data will be unprotected until the %%parity|parity%% rebuild is complete. If a data drive fails during this time, you could lose the information on that drive. +- If you already have a data drive that has failed, proceeding with these steps will prevent you from being able to rebuild that drive. In this case, you should follow the **Parity Swap** procedure instead. + +::: + +To upgrade a parity drive: + +1. Stop the array. +2. Power down your server (skip this and step 4 if your server supports hot-swap). +3. Install the new, larger %%parity disk|parity-drives%% into your server. +4. Power up your server. +5. Assign the new disk to the parity slot, replacing the old one. +6. Start the array. + +Once the array is back up, Unraid starts building parity on the new disk. You can still access your data during this time, but it might be slower until the process completes. + +:::tip[Planning your parity upgrade] + +Keep the old %%parity disk|parity-drives%% installed until the new parity build completes. If a data disk fails during the upgrade, the old %%parity disk|parity-drives%% can help you recover your data. After the upgrade completes successfully, you can repurpose the old disk as a data disk if desired. + +::: 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 new file mode 100644 index 0000000000..f746d2f2f3 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/array/array-health-and-maintenance.mdx @@ -0,0 +1,202 @@ +--- +sidebar_position: 5 +sidebar_label: Array health and maintenance +--- + +import ArrayCheckParity from "../partials/array-check-parity.mdx"; +import ArrayCheckRead from "../partials/array-check-read.mdx"; +import TroubleshootMissingDisks from "../partials/troubleshoot-missing-disks.mdx"; +import TroubleshootDeviceLimit from "../partials/troubleshoot-device-limit.mdx"; +import TroubleshootLicenseIssues from "../partials/troubleshoot-license-issues.mdx"; +import TroubleshootKeyServer from "../partials/troubleshoot-key-server.mdx"; +import TroubleshootWithdrawnRelease from "../partials/troubleshoot-withdrawn-release.mdx"; + +# Array health and maintenance + +Regularly checking your Unraid array is crucial for maintaining data integrity and identifying potential issues before they result in data loss. This page covers monitoring tools and troubleshooting procedures for your array. + +## 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%%. + +
+ ![The check button lets you perform parity and read + checks](/img/Check_button.PNG) +
+ +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 + + + +### Read checks + + + +### 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. + +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. + +## Spinning disks down or up + +Unraid allows you to control the power states of your hard drives. You can easily %%spin them up or down|spin-state%%, and manage SSDs to be active or in standby. This helps save energy, extend the life of your drives, and reduce noise when the disks are not being used. + +### Why spin down or up? + +Spinning down drives that aren't used often saves energy and helps them last longer. Spinning up disks ahead of time cuts down wait times when you need files soon. + +### How to control spin states + +Control disk spin states through the **Main** tab: + +1. Go to the **Main** tab and locate your array devices. +2. Each disk shows spin control buttons: + - 🔘 button - **Spin Up** (if currently spun down) + - 🟢 button - **Spin Down** (if currently spinning) +3. Click the appropriate button for the action you want. + +Remember that if a disk is being accessed (like if you're opening a file), it will stay active and ignore any spin-down request. + +When a disk is spun down, its temperature won't show in the %%WebGUI|web-gui%%. However, once any application or user accesses it, it will automatically spin up. + +:::tip + +Use the spin controls to save power and reduce wear on your drives. Remember that disks that are actively being used will stay on until all tasks are finished. + +::: + +## Reset the array configuration + +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 +- Recovering from configuration problems + +
+ ![Resetting your disk configuration can be done via the new config + page](/img/Newconfig.png) +
+ +To reset your array configuration: + +1. Go to **Tools → New Config**. +2. Optionally keep some existing disk assignments for minor adjustments. +3. Check the confirmation box and click **Apply**. +4. Return to the **Main** tab. +5. Assign or unassign disks as needed. +6. Start the array in Normal or %%Maintenance Mode|maintenance-mode%%. + +:::important + +- Unraid attempts to recognize previously used drives and preserve data where possible +- Removing a data drive invalidates parity unless that drive was zeroed before removal +- Changing disk order won't affect parity1, but it can invalidate parity2 + +::: + +:::caution + +When you see the **Start** button, there is a checkbox labeled **Parity is Valid**. Only check this box if you are certain it is correct or if an experienced Unraid user has advised you to do so during recovery. Incorrectly checking this option can lead to data loss. + +Do not use **New Config** if your goal is to rebuild a disk. Performing a New Config clears the array history required for a rebuild, and Unraid will not offer to rebuild the disk afterward. Follow the disk rebuild procedure instead. + +::: + +### Undoing a reset + +To reverse a reset: + +1. Access your flash device over the network (SMB). +2. Open the `config` folder. +3. Rename `super.old` to `super.dat`. +4. Reboot your server to restore the prior configuration. + +## Status reports + +Unraid provides status reports that help you keep track of the health of your storage array. These reports are a quick way to check if any of your disks are disabled or having issues with reading or writing data. + +- **Current status:** Status reports show the current condition of your array. It's important to note that this information resets after you restart your system, so that it won't keep a history of past issues. + +- **No historical data:** If you want to see what has happened before a reboot, you'll need to look elsewhere, as these reports don't save past states. + +:::important + +Remember that the status reports don't include %%SMART|smart%% data. %%SMART reports|smart-report%% give you a more detailed view of individual disk health. So, even if your status report shows everything is fine, checking the %%SMART reports|smart-report%% regularly is still a good idea to catch any potential problems early. + +::: + +## 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_**. + +### Missing disks + + + +### Device limit + + + +### License issues + + + +### Key server connection + + + +### Withdrawn release + + + +## Disk failure during a rebuild + +If a second disk fails while you're rebuilding another one, what you can do will depend on your parity setup. + +### Single parity disk + +If one disk fails during the rebuild of another, the rebuild will stop because the data can't be accurately restored. Unfortunately, you won't be able to recover your data in this situation. + +### Dual parity disk + +If you have two %%parity drives|parity-drives%%, you have more options: + +- You can wait for the first rebuild to finish and then deal with the second failed disk. +- Or, you can stop the current rebuild, replace the second failed disk, and then start the array to rebuild both disks at the same time. + +If the first rebuild is almost done, it's usually better to let it finish. If it just started, it might be faster to rebuild both together. + +:::warning + +Rebuilding disks puts a lot of stress on all drives, which increases the chance of new failures. Always check drive health using %%SMART reports|smart-report%% before starting a rebuild. + +::: + +:::info[Rebuild Time] + +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 new file mode 100644 index 0000000000..849fe55d15 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/array/overview.mdx @@ -0,0 +1,191 @@ +--- +sidebar_position: 1 +sidebar_label: Overview +--- + +# Arrays + +Unraid's storage system combines flexibility with data protection through its %%array|array%% and %%cache|cache%% architecture. The %%array|array%% manages your primary storage with optional %%parity|parity%% protection, while cache pools accelerate performance. + +## Driving principles + +1. **Use your largest drives for parity** - Data disks can't be larger than your %%parity disks|parity-drives%%, so use your biggest drives for parity to avoid future expansion limits. If you use dual parity, both drives should be at least the size of your largest data disk, but they can be different sizes from each other. No disk can be larger than your smallest parity drive. + +2. **Save SSDs for cache pools** - Unraid doesn't support TRIM/Discard for SSDs in the main array, which causes performance degradation over time. Use SSDs in %%cache pools|cache-pool%% or as unassigned devices instead, where these features work properly. + +3. **Add a cache for better write performance** - A cache dramatically speeds up writes by temporarily storing data on fast drives before the %%Mover|mover%% transfers it to the array (typically at 3:40 AM). Cached data still appears in your shares, so access feels instant while the transfer happens in the background. + +4. **Use a cache pool for data protection** - A single cache device puts your cached data at risk until the %%Mover|mover%% runs. Multiple devices in a %%cache pool|cache-pool%% provide redundancy and protect your data from cache device failures. + +5. **SSDs excel for apps and VMs** - Applications and virtual machines benefit significantly from SSD speed. A %%cache pool|cache-pool%% with SSDs provides the perfect balance of speed, efficiency, and data protection for these workloads. + +6. **Encryption is optional** - Encryption is disabled by default and requires reformatting drives (which erases data). If you need it, move data off the disk, change to an encrypted file system, format, then move data back. See [How to encrypt a drive in Unraid](../../../system-administration/secure-your-server/securing-your-data.mdx#how-to-encrypt-a-drive-in-unraid) for details. Be aware that encryption complicates data recovery if something goes wrong. + +:::info[Disk Recognition and Port Flexibility] + +Unraid identifies disks based on their serial numbers and sizes, not the specific SATA ports they're connected to. This means you can switch drives between different SATA ports without affecting their assignments in Unraid. This feature is particularly useful for troubleshooting hardware problems, like finding a faulty port or replacing unreliable power or SATA cables. + +::: + +:::caution + +Your array will not start if you assign or attach more devices than your license key allows. + +::: + +## Start/Stop the array + +When your system starts up, it usually powers up the array of disks automatically. However, if you've recently changed the disk setup, such as adding a new disk, the array will remain off to allow you to check your configuration. + +:::caution + +Keep in mind that you'll need to stop the array first to make any adjustments. Stopping it will fully stop all Docker containers and network shares, shut down or hibernate VMs, and your storage devices will be unmounted, making your data and applications inaccessible until you restart the array. + +::: + +To start or stop the array: + +1. Click on the **Main** tab. +2. Navigate to the **Array Operation** section. +3. Click **Start** or **Stop**. You may need to check the box that says "Yes, I want to do this" before proceeding. + +## File system selection + +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. + +For detailed information about file system options, see [File systems](../file-systems.mdx). + +## Array operations + +Unraid provides several maintenance and configuration options for your storage array. Operations include: + +- [Adding disks to array](./adding-disks-to-array.mdx) - Expand storage capacity +- [Replacing disks in array](./replacing-disks-in-array.mdx) - Upgrade or swap failed drives +- [Removing disks from array](./removing-disks-from-array.mdx) - Decommission or reduce array size +- [Array health and maintenance](./array-health-and-maintenance.mdx) - Monitor and maintain your array + +## Array write modes + +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 | +| ------------------------- | ---------------------------------------- | ----------- | ---------------------------- | ---------------- | --------------------------------------------------------------------- | +| Read/Modify/Write | 20–40 MB/s | Low | Only parity and target drive | Yes | Most workloads, energy savings, small writes | +| Turbo Write (Reconstruct) | 40–120 MB/s | High | All drives | Yes | Large file transfers, array rebuilds, %%parity checks\|parity-check%% | +| Cache Write (SSD/NVMe) | 50–110 MB/s (SSD), 250–900 MB/s (NVMe)\* | Varies | Cache drives only | No (until moved) | Apps, VMs, frequent writes, maximizing speed | + +### Read/Modify/Write + +This is the default write mode. It reads the existing data and the parity, calculates the new parity, and then writes the updated data. Only the %%parity drive|parity-drives%% and the target data drive spin up, which results in lower power usage and less wear on the drives. However, it can be slower due to the additional read/write cycles. + +Use this mode anytime, especially if you want energy savings and idle drives to spin down. It's great for small or infrequent writes. + +### Turbo Write (Reconstruct write) + +Turbo write, also known as reconstruct write, is a feature designed to boost the writing speed of your Unraid array. It works by reading all data drives and updating the parity simultaneously. This process eliminates the delays caused by waiting for the platters to rotate, as seen in the default write mode. However, all array drives need to be spinning and functioning properly for this to work effectively. + +**How it works:** When you write new data, Unraid reads from all the other data drives and recalculates the parity at the same time. Both the new data and the updated parity get written together. All drives in the array must be operational and actively spinning. + +**When to use:** Transferring large, sequential files to the array. During array rebuilds or %%parity checks|parity-check%%, as all drives are already spinning. When minimizing write time is a priority and you can confirm all drives are healthy. + +**When to avoid:** If you want your drives to spin down during idle times to conserve energy. For small or infrequent write operations since it causes all drives to spin up for every write, increasing power usage and wear. If you suspect any drive is failing or unreliable, since it relies on every drive being operational. + +:::info + +Turbo write is best suited for bulk operations and scenarios requiring high throughput. However, it might not be the best choice for everyday tasks if you're focused on energy savings and minimizing drive wear. + +::: + +### Cache Write + +Data is written first to a fast SSD or NVMe %%cache|cache%% and can then be moved to the main array later by a process called the %%Mover|mover%%. The speeds vary: SSD: 50–110 MB/s; NVMe: 250–900 MB/s (which can utilize 10GbE networks). Once data is moved to the array, it is protected by parity. + +**When to use:** For shares with frequent write operations like applications, virtual machines, or downloads. To enhance performance and reduce perceived write latency. + +**Performance expectations:** +- Without a cache drive: Average 20–30 MB/s, with peaks up to 40 MB/s +- With SSD cache: 50–110 MB/s +- With NVMe cache: 250–900 MB/s depending on network or drive constraints + +:::tip + +Consider using a cache pool (multiple devices) for added redundancy and data protection before the %%Mover|mover%% runs. + +::: + +:::info[Automated Solutions] + +- The **Auto** mode (a future feature) will engage turbo write only when all drives are already spinning. +- Community plugins (search for "Turbo Write" in the Apps tab) may offer enhanced automation or scheduling options. + +::: + +To change Write Mode: + +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) + - **Auto** (future feature) +4. Click **Apply** to confirm your choice. + +:::important[Quick recap] + +- Use **Turbo Write** when you need speed, but be aware of increased power consumption and drive spin-up. +- Utilize **Cache Write** for optimal performance, particularly with SSD or NVMe drives. +- For most users, the default write mode offers the best balance unless you specifically need higher speeds. + +::: + +## Read modes + +When using Unraid, the speed at which you can read files is mainly determined by the individual drive that holds each file. Unlike traditional %%RAID|raid%% systems, which combine multiple drives to improve performance, Unraid stores each file on a single disk. This means read speeds won't be boosted by the combined speeds of multiple drives. + +### Performance expectations + +- **Typical single HDD:** 70–250 MB/s (depends on drive model, age, and data location) +- **Typical SATA SSD:** 400–550 MB/s +- **NVMe SSD (in a pool):** 250–7,000 MB/s (PCIe generation and network/PCIe limitations apply; e.g., 10GbE network caps at \~1,100 MB/s) + +:::note[Special cases] + +- If a disk is disabled and its data is being reconstructed, Unraid will use the remaining drives along with parity information to recreate the data. During this process, the read speed may slow down to 30–60 MB/s or even lower, depending on the slowest drive in your system. +- Any ongoing operations in the array, such as a %%parity check|parity-check%% or rebuilding a drive, can also affect read performance. This is due to increased movement of the drive heads and overall contention for resources. + +::: + +## Cache pools + +%%Cache pools|cache-pool%% in Unraid provide significant advantages, particularly for write-heavy tasks, virtual machines (VMs), and Docker containers. These pools operate separately from the main array and can be set up with multiple drives using either the %%BTRFS|btrfs%% or %%ZFS|zfs%% file system, supporting various %%RAID|raid%% configurations for speed and data protection. + +### Cache pools vs. the main array + +| Feature | Cache pool (BTRFS) | Cache pool (ZFS) | Main array (Unraid) | +| ----------------------- | ---------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | +| **Read speed** | SSD: 400–550 MB/s, NVMe: 250–7,000 MB/s\* | SSD: 400–550 MB/s, NVMe: 250–7,000 MB/s\* | HDD: 70–250 MB/s (per disk) | +| **Write speed** | SSD: 400–550 MB/s, NVMe: 250–7,000 MB/s\* | SSD: 400–550 MB/s, NVMe: 250–7,000 MB/s\* | 20–120 MB/s (parity mode dependent) | +| **Data protection** | %%RAID 1\|raid1%%/%%RAID 10\|raid10%%; %%RAID 5\|raid5%%/%%RAID 6\|raid6%% (experimental, not for critical data) | %%RAID 1\|raid1%%/%%RAID 10\|raid10%%; %%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%%/%%RAIDZ3\|raidz3%% (stable, production-ready) | Parity-based, file system agnostic | +| **Expansion** | Mix drive sizes; add/remove devices dynamically | Limited add/remove device support; cannot remove from RAIDZ; single-device add to expand single-vdev RAIDZ in Unraid 7.2 | Add drives, but no striping or performance scaling | +| **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)._ + +### Pros of cache pools + +- **Higher performance:** NVMe pools can saturate 10GbE/40GbE networks (1,100–3,500 MB/s). +- **Flexible RAID:** Both %%BTRFS|btrfs%% and %%ZFS|zfs%% support %%RAID 1|raid1%%/%%RAID 10|raid10%% for redundancy without matching drive sizes. +- **Low latency:** Ideal for databases, VMs, and Docker containers. +- **ZFS advantages:** %%ZFS|zfs%% provides enterprise-grade features like data integrity checking, compression, and snapshots. + +### Cons of cache pools + +- **No parity protection:** Data is unprotected until moved to the array. +- **Recovery risks:** %%BTRFS|btrfs%% %%RAID 5|raid5%%/%%RAID 6|raid6%% is unstable; single-drive pools lack redundancy. +- **ZFS considerations:** %%ZFS|zfs%% requires more RAM and has stricter hardware requirements than %%BTRFS|btrfs%%. + +For more detailed information about %%cache pools|cache-pool%%, including how to set them up, manage them, and advanced features, check the [Cache pools](../cache-pools.mdx) page. + 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 new file mode 100644 index 0000000000..2b7dc22bf7 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/array/removing-disks-from-array.mdx @@ -0,0 +1,78 @@ +--- +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. + +## Removing parity disks + +If you find that you no longer need the level of %%parity|parity%% protection in your setup, you can remove a %%parity disk|parity-drives%% whenever you want. + +To remove a parity drive: + +1. Stop the array. +2. Unassign the parity drive slot and set it to "Unassigned." +3. Start the array to commit the changes. + +:::warning + +Before you make any changes, please keep this in mind: If you already have any failed data drives in your array, removing a %%parity disk|parity-drives%% can decrease the number of failures Unraid can handle without risking data loss. + +- With dual parity, you can recover from a single failed drive, but be aware that you won't be able to survive another failure during the rebuild process. +- With single parity, you lose all redundancy, meaning that any additional drive failures could result in data loss. + +::: + +## Removing data disks + +Removing a data disk requires a parity sync afterward. Until this sync completes, there's a risk of data loss if another disk fails. + +### Standard method (Recommended) + +1. Stop the array. +2. Optionally document your disk assignments with a screenshot. +3. Reset the array configuration using **Tools → New Config**, choosing the option to preserve all current assignments. +4. Unassign the disk you want to remove. +5. Start the array, but do not check the "Parity is valid" box. + +A parity sync starts if you have a parity disk assigned. The array is vulnerable to data loss until this sync completes. + +:::tip + +Move important data off the disk before removal. The parity sync process may take several hours depending on disk size and system activity. + +::: + +### Parity-preserve method (Advanced) + +This method allows you to remove a data disk while keeping your parity valid. It zeros out the data disk, allowing you to keep your parity intact. This is only recommended for advanced users. + +:::warning + +This method erases all data on the selected disk. Verify that all important data has been moved before proceeding. There is no official support from LimeTech for this process. + +::: + +To use the parity-preserve method: + +1. Start the array in maintenance mode, click on the disk you want to remove, and then click **Erase**. This erases the file system from the device while maintaining parity, then stops the array. +2. Start the array in normal mode. The disk won't mount, but the remaining disks are online. +3. Record array assignments, especially the parity drive. +4. Optionally enable Reconstruct Write ("Turbo Write") in **Settings → Disk Settings** for faster zeroing, but only if all drives are healthy. +5. Unmount the disk: `umount /mnt/diskX` +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. +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 new file mode 100644 index 0000000000..19c6705f93 --- /dev/null +++ b/docs/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array.mdx @@ -0,0 +1,266 @@ +--- +sidebar_position: 3 +sidebar_label: Replacing disks in array +--- + +# Replacing disks in array + +You may need to replace disks in your array for two main reasons: + +1. **Capacity upgrade**: Your storage is nearly full, and you want to use larger disks. +2. **Failure or retirement**: A disk has failed or is no longer supported. + +While the process for replacing disks is similar in both cases, be cautious, as there is a risk of data loss during the replacement. Parity devices help protect your data; one parity device can safeguard against a single disk failure, while two can protect against losing data if two disks fail. Always be aware of your protection level during disk replacements. + +## Upgrading capacity + +When upgrading your data drive to a larger one, here are some points to keep in mind: + +- **Unmountable disks:** Fix any unmountable disks before upgrading. An unmountable status won't be resolved during the rebuild. + +- **Single parity risks:** If you have single parity, you're at risk of data loss if another drive fails during the upgrade. Seek advice in forums if this happens. + +- **Dual parity protection:** With dual parity, you're safe from losing data if one drive fails while upgrading a single drive. You can also upgrade two drives at once, but note that this increases the risk since you won't have protection against another drive failing. + +- **Backup the old disk:** Keep the original disk intact until the upgrade is confirmed successful. This provides a fallback option if anything goes wrong. + +:::warning + +Replacing drives always involves some risk. If another drive fails during the upgrade, especially with only single parity, you may experience data loss. Always check the health of your drives before beginning the process, and ensure that you keep the old drive intact until the upgrade is complete and your data is confirmed to be safe. + +::: + +To upgrade an existing data disk: + +1. Run a %%parity check|parity-check%% and ensure there are zero errors. If parity isn't valid, rebuilding the disk will corrupt its file system. +2. Stop the array. +3. Unassign the target disk. +4. Start the array. Unraid emulates the missing disk using the existing parity and data disks. You have two modes to choose from: + - %%Maintenance Mode|maintenance-mode%% - Prevents any writes to the emulated disk + - Normal Mode - Allows read/write access to the emulated disk + +:::note + +Starting in Normal Mode is optional. You can use it to verify that the emulated disk mounts and the data looks correct before proceeding. + +::: + +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 + +### What is a failed/disabled disk? + +A failed or disabled disk is one that Unraid has stopped using for writing data, usually because it encountered a write error. A failed drive isn't always broken; it might be due to bad connections, power issues, or a temporary glitch. + +Indications include a red "X" on the disk indicator and failure notification alerts. + +| Failure Scenario | No Parity | Single Parity | Dual Parity | +| ------------------- | --------- | ------------- | ----------- | +| **1 Disk Failure** | Data Lost | Rebuildable | Rebuildable | +| **2 Disk Failures** | Data Lost | Data Lost | Rebuildable | + +:::tip[Tips for Safe Rebuilds] + +- **For Single Parity:** You can only replace one disk at a time. If another disk fails during the rebuild, you could lose data. +- **For Dual Parity:** You can replace one or two disks at the same time, but be cautious if more than two disks fail. + +::: + +:::important + +If more disks fail than your parity can protect: + +1. Immediately halt all write operations to prevent further data loss. +2. Seek help by posting your issue in the [Unraid forums](https://forums.unraid.net/) along with diagnostics. +3. Do not attempt a rebuild until you've received advice—focus on salvaging your data first. + +::: + +### How to diagnose the issue + +Check the %%syslog|syslog%% and %%SMART reports|smart-report%%: + +- If the %%syslog|syslog%% shows that the drive has reset, there might be a problem with the connection or cables. +- %%SMART reports|smart-report%% can help assess the drive's health, but the best way to check is by running a %%SMART|smart%% extended test. If it completes without errors, the drive is likely fine. +- If you see %%CRC errors|crc-errors%%, it usually points to issues with the cabling. These errors accumulate over time and don't reset. + +:::tip + +To stay informed about drive issues, enable notifications in Unraid by going to **Settings → Notification Settings**. This way, you're alerted right away if something goes wrong, reducing the risk to your data. + +::: + +### What is emulation? + +When a drive is disabled, Unraid uses its parity and other working drives to emulate the failed drive. The system continues to operate, and you can still access the data stored on the %%emulated drive|emulated-disk%%. + +- Unraid stops writing to the physical drive, and any updates are saved in parity and the emulation instead. +- Before replacing the failed drive, you can check and recover data from the %%emulated drive|emulated-disk%%, which keeps the physical drive intact for potential recovery. +- If you can't access the %%emulated drive|emulated-disk%%, repairing the file system is essential before any rebuild since fixing the file system is quicker and more effective than a rebuild. + +### Preparing for drive replacement + +Make sure the new drive is at least as large as the failed drive but not larger than your smallest parity drive. If you have to use a larger drive, follow the Parity Swap procedure. + +While it's not mandatory, many users choose to pre-clear new drives to test them and help prevent early failure. You can do this with the Preclear plugin, a %%SMART|smart%% extended test, or manufacturer tools. + +:::caution + +If you try to rebuild using an unmountable %%emulated drive|emulated-disk%%, the new drive will also become unmountable. Always repair the file system before attempting a rebuild. + +::: + +To replace and rebuild a disk, follow the size requirements described in the "Preparing for drive replacement" section above. + +:::important + +Before you start, check for any disk errors or warnings. Unraid must be able to read all the remaining disks without any issues for the rebuild to work correctly. If another disk is failing, it could lead to data loss. + +::: + +1. Stop the array. + +:::tip + +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 + +If Unraid prompts you to format the new disk during the rebuild, **do not do it**. Formatting will wipe all data and make recovery impossible. + +::: + +### What to expect during the rebuild + +- The array will still be available to use during the rebuilding process (unless you're in %%Maintenance Mode|maintenance-mode%%), but it might run slower. +- Rebuilding can take several hours, depending on your disk sizes and system usage. +- The new disk will have the same file system as the original. +- If the old disk was unmountable due to file system issues, the new disk will also not be mountable. Please fix any file system issues before starting the rebuild. + +:::note[Additional notes] + +- The rebuild process won't change the file format of the disk; it simply restores its previous form. +- Always check the health of every disk before you start a rebuild to avoid any potential issues. + +::: + +## Re-enabling a disabled disk (rebuilding onto itself) + +Sometimes, a disk may be disabled not because it's actually faulty, but due to issues such as loose cables, power problems, or temporary glitches. If that's the case, you can try to re-enable the disabled disk by rebuilding it onto itself instead of replacing it. + +:::important[When to use this procedure] + +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 fixed any external problems that caused the disk to be disabled. +- The disk seems to be functioning normally. + +::: + +:::warning[Important considerations] + +- 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. +- 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. +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." +5. For data drives only, verify that the emulated disk shows the content you expect. +6. Stop the array. +7. Reassign the disabled disk to its original slot. +8. Optionally select %%Maintenance Mode|maintenance-mode%% to speed up the rebuild process. +9. Click **Start** to begin the rebuild. Unraid takes the contents from the emulated disk and reconstructs them onto the physical drive. + +:::info[Rebuild time expectations] + +Rebuilding a disk onto itself can take several hours to more than a day for larger drives, depending on the size of the disk and system activity. Factors that can affect rebuild time include drive capacity, disk speed, and system load. You can keep an eye on the progress in the %%WebGUI|web-gui%%. + +::: + +This procedure works for both data drives and %%parity drives|parity-drives%% that have been disabled. + +## Parity swap + +Parity swap is a special procedure used when you need to replace a data disk with a disk that is larger than your current parity disk. The process moves your current parity disk to the data slot, then installs a new, larger disk as the new parity disk. This ensures your array remains protected and allows for larger data drives in the future. + +Use a parity swap when your replacement data drive is larger than your current parity disk. This isn't necessary if your new data drive is the same size or smaller than your parity disk. + +**Example scenario:** You have an Unraid setup with a **2TB parity drive** and a **1TB data drive** and want to replace the 1TB drive with a **4TB drive**. First, assign the new 4TB drive as the parity drive, which will replace the 2TB drive. Then move the original 2TB drive to the data slot, and remove the 1TB drive entirely. After these changes, you'll have a 4TB drive as your new parity, ensuring you can add future data drives up to 4TB. The 2TB drive will now hold your existing data, while the 1TB drive can be repurposed. This swap keeps your data secure and your array protected, allowing for future upgrades. + +:::important[Prerequisites] + +- 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. + +::: + +:::warning[Warnings] + +- Always verify the health of all drives using %%SMART reports|smart-report%% before starting a %%parity swap|parity-swap%%. Attempting this procedure with another failing or unhealthy disk increases the risk of data loss. +- Preclear the new disk if possible. While not required, preclearing stress-tests the drive and reduces the risk of early failure. +- Correctly identify all drives before beginning. Note the model numbers and last four characters of each serial number to avoid mistakes during assignment. + +::: + +To carry out a parity swap: + +:::note + +If the drive to be replaced is already disabled, you can skip steps 1–4. If you've already installed the new replacement drive, you can skip steps 5–8. + +::: + +1. Stop the array. +2. Unassign the old data drive if it's still assigned. +3. Start the array. The data drive should now show as "Not installed." +4. Stop the array again. +5. Power down the server. + +:::tip + +If your system supports hot-swap, you don't need to power down. Make sure the array is stopped before making any hardware changes. + +::: + +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 + +Never format a drive during this process. Formatting will erase all data and update parity, making recovery impossible. + +::: + +After completion, you will have a larger parity disk and a replaced data disk. Many users run a %%parity check|parity-check%% afterward for extra confidence, though this is optional. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx b/docs/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx index c2824650a3..486c923470 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/cache-pools.mdx @@ -3,8 +3,6 @@ sidebar_position: 3 sidebar_label: Cache pools --- -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; import RemoveDiskGui from './partials/remove-disk-gui.mdx'; import RemoveDiskCommandLine from './partials/remove-disk-command-line.mdx'; import PoolSingleDeviceMode from './partials/pool-single-device-mode.mdx'; @@ -16,7 +14,7 @@ import MoveBetweenPoolsManual from './partials/move-between-pools-manual.mdx'; # Cache pools -In Unraid, a %%cache pool|cache-pool%% is a collection of one or more drives, typically SSDs or high-speed HDDs. These drives temporarily store data before it's moved to your main [%%array|array%%](./array-configuration.mdx). Using %%cache pools|cache-pool%% can significantly enhance write speeds, protect your data, and provide dedicated storage for specific tasks like running Docker containers or [%%virtual machines|vm%%](../create-virtual-machines/overview-and-system-prep.mdx). +In Unraid, a %%cache pool|cache-pool%% is a collection of one or more drives, typically SSDs or high-speed HDDs. These drives temporarily store data before it's moved to your main [%%array|array%%](./array/overview.mdx). Using %%cache pools|cache-pool%% can significantly enhance write speeds, protect your data, and provide dedicated storage for specific tasks like running Docker containers or [%%virtual machines|vm%%](../create-virtual-machines/overview-and-system-prep.mdx). %%Cache pools|cache-pool%% offer several advantages, making them a valuable addition to your Unraid setup, such as: @@ -45,76 +43,20 @@ In Unraid, a %%cache pool|cache-pool%% is a collection of one or more drives, ty Unraid %%cache pools|cache-pool%% can operate in two main modes: **single device mode** and **multi-device mode**. Knowing the difference between these modes will help you find the right balance between performance, flexibility, and data protection for your needs. - - - - +### Single device mode - - - - + + +### Multi-device mode + + Common tasks for the %%cache pool|cache-pool%% include: -- Backing up your pool to the %%array|array%% - Switching between single and multi-device modes - Adding disks to a pool - Replacing disks in a pool - -## Backing up your cache pool to the array - -Backing up your %%cache pool|cache-pool%% to the main %%array|array%% is a crucial step before making any upgrades, reformatting, or replacing your cache devices. This process ensures that important data - like Docker containers, app data, and %%virtual machine|vm%% files - are securely stored on the main %%array|array%%, minimizing the risk during maintenance. - -

Why back up your %%cache pool|cache-pool%%?

- -- **Data protection:** Safeguard your important files before making hardware changes or upgrades. -- **Accidental loss prevention:** Reduce the risk of losing data while reformatting or replacing devices. -- **Easy restoration:** Ensure you can quickly restore your application and %%virtual machine|vm%% data after maintenance. - -:::important - -This process will stop all Docker containers and %%virtual machines|vm%%, so make sure to plan for some downtime and notify users if necessary. For more information on managing Docker containers, see [Managing and customizing containers](../run-docker-containers/managing-and-customizing-containers.mdx). - -::: - -To back up your %%cache pool|cache-pool%%: - -1. **Stop all running Docker containers and %%virtual machines|vm%%**: This is essential for a smooth backup process. -2. **Disable %%virtual machines|vm%%**: - - Go to ***Settings → VM Manager***. - - Turn off %%VMs|vm%% and click **Apply**. -3. **Disable Docker**: - - Navigate to ***Settings → Docker***. - - Turn off Docker and click **Apply**. -4. **Set share storage and Mover action (cache → array)**: - - Go to the **Shares** tab. - - For each %%user share|user-share%% you want to move, set **Primary storage** to the source %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. - - Set **Mover action** to **cache → array**. -5. **Check space on the %%array|array%%**: Ensure there's enough free space for your files. -6. **Move files to the %%array|array%%**: From the **Main** page, click **Move Now**. This transfers files from the %%cache pool|cache-pool%% to the %%array|array%% based on the Mover action. -7. **Verify your pool is empty**: Once the %%Mover|mover%% has finished, check that there are no remaining files in the %%cache pool|cache-pool%%. - -:::note - -Remember that files located directly on the pool device (not part of any share) must be moved manually. - -::: - -### Restore files to the cache pool - -After you've completed your maintenance or replaced your device, you can restore files from the %%array|array%% back to the %%cache pool|cache-pool%% by following these steps: - -1. **Set share storage and Mover action (array → cache)**: - - Go to the **Shares** tab. - - For each %%user share|user-share%% you want to restore, set **Primary storage** to the destination %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. - - Set **Mover action** to **array → cache**. -2. **Check space on the pool**: Make sure there's enough free space on the %%cache pool|cache-pool%%. -3. **Move files back to the pool**: Go to the **Main** page and click **Move Now** to transfer files back to the %%cache pool|cache-pool%%. -4. **Verify content in the pool**: After the move completes, check that your %%cache pool|cache-pool%% contains the expected files and that the shares are empty on the %%array|array%%. -5. **Re-enable Docker**: Navigate to ***Settings → Docker*** and turn Docker back on, then click **Apply**. -6. **Re-enable %%virtual machines|vm%%**: Go to ***Settings → VM Manager*** and turn %%VMs|vm%% back on, then click **Apply**. -7. **Restart Docker containers and %%VMs|vm%%**: Finally, start any Docker containers or %%virtual machines|vm%% that you want to run again. +- Moving files between the pool and the %%array|array%% (see [Moving files between a pool and the array](#moving-files-between-a-pool-and-the-array)) --- @@ -124,16 +66,18 @@ After you've completed your maintenance or replaced your device, you can restore ### Converting a pool to BTRFS or ZFS -If your %%cache pool|cache-pool%% isn't already formatted as %%BTRFS|btrfs%% or %%ZFS|zfs%%, follow these simple steps: +If your %%cache pool|cache-pool%% isn't already formatted as %%BTRFS|btrfs%% or %%ZFS|zfs%%, you can convert it using the following steps. -1. **Back up your data**: First, ensure you back up any important content. (See [Backing up your cache pool to the array](#backing-up-your-cache-pool-to-the-array)) -2. **Stop the %%array|array%%**: Make sure to stop the %%array|array%% to begin the conversion process. -3. **Change the file system**: Click on the pool in the **Main** tab and select **BTRFS** or **ZFS** as the file system format. -4. **Start the %%array|array%%**: After changing the format, start the %%array|array%%. -5. **Format the pool**: The pool will appear as **unmountable** and offer the option to format. Confirm and click the **Format** button. -6. **Complete formatting**: Once formatting is complete, you'll have a %%BTRFS|btrfs%% or %%ZFS|zfs%% pool, though it will only have one device at this stage. -7. **Add additional drives if desired**: You can proceed to add more drives to your pool if you wish. -8. **Restore your data**: Finally, follow the restore steps from the backup procedure to move your data back to the pool. +To convert a pool to BTRFS or ZFS: + +1. Back up important content. See [Moving files between a pool and the array](#moving-files-between-a-pool-and-the-array) to move files from your pool to the %%array|array%%. +2. Stop the %%array|array%%. +3. In the **Main** tab, click the pool and select **BTRFS** or **ZFS** as the file system format. +4. Start the %%array|array%%. +5. When the pool shows as **unmountable**, confirm and click **Format**. +6. After formatting, you’ll have a %%BTRFS|btrfs%% or %%ZFS|zfs%% pool (single device at this stage). +7. (Optional) Add additional drives as needed. +8. Restore your data by moving files back to the pool. ### Adding drives to create a multi-device pool @@ -141,12 +85,12 @@ Once your pool is formatted as %%BTRFS|btrfs%% or %%ZFS|zfs%%, you can add more To add more drives for redundancy: -1. **Stop the %%array|array%%**: Again, start by stopping the %%array|array%%. -2. **Assign additional drives**: In the **Main** tab, you can assign one or more new devices to your pool. -3. **Start the %%array|array%%**: Once the drives are assigned, start the %%array|array%%. -4. **Automatic balance/resilver**: Unraid will automatically incorporate the new devices into the pool and initiate a **balance** (%%BTRFS|btrfs%%) or **resilver** (%%ZFS|zfs%%) to distribute and protect data across devices. -5. **Monitor progress**: In the **Main** tab, click the first pool device, then check **Balance Status** (for %%BTRFS|btrfs%%) or **zpool status** (for %%ZFS|zfs%%) to follow progress and confirm the new device was successfully added. -6. **Pool now in multi-device mode**: Once the balancing is complete, your pool will be operating in **multi-device mode** with enhanced capacity and redundancy. +1. Stop the %%array|array%%. +2. In the **Main** tab, assign one or more new devices to your pool. +3. Start the %%array|array%%. +4. Unraid automatically incorporates the new devices and starts a **balance** (%%BTRFS|btrfs%%) or **resilver** (%%ZFS|zfs%%). +5. In the **Main** tab, click the first pool device and check **Balance Status** (%%BTRFS|btrfs%%) or **zpool status** (%%ZFS|zfs%%) to follow progress. +6. When complete, the pool operates in **multi-device mode** with enhanced capacity and redundancy. :::tip @@ -162,18 +106,17 @@ As your storage needs grow, you may want to expand your cache pool by adding add :::note -If you want to add disks to your pool, just make sure your pool is already formatted as %%BTRFS|btrfs%% or %%ZFS|zfs%%. If it's not, you'll need to format it first, as explained in [the previous section](#converting-a-pool-to-btrfs-or-zfs). +If you want to add disks to your pool, make sure your pool is already formatted as %%BTRFS|btrfs%% or %%ZFS|zfs%%. If it's not, you'll need to format it first, as explained in [Converting a pool to BTRFS or ZFS](#converting-a-pool-to-btrfs-or-zfs). ::: To add a disk to a pool: -1. **Stop the %%array|array%%**: Begin by stopping the current %%array|array%% to ensure the process goes smoothly. -2. **Open the Main tab**: Go to the **Main** tab in the %%WebGUI|web-gui%%. This is where you'll manage your disks. -3. **Find the Pool Devices section**: Scroll down until you see the *Pool Devices* section. This is where you can make changes to your disk setup. -4. **Adjust the number of slots**: Set **Slots** to exactly the number of additional devices you are adding. You cannot leave extra empty slots; the array will not start with unused pool slots. -5. **Assign your devices**: Choose which devices (disks) you want to add to the pool and assign them to the available slot(s). -6. **Start the %%array|array%%**: After you've assigned your devices, start the %%array|array%% again to enable these changes. +1. Stop the %%array|array%%. +2. In the **Main** tab, open the pool. +3. In the Pool Devices section, set **Slots** to the exact number of additional devices. +4. Assign the new devices to the available slots. +5. Start the %%array|array%% to enable the changes. --- @@ -181,15 +124,13 @@ To add a disk to a pool: Removing a disk from a %%BTRFS|btrfs%% or %%ZFS|zfs%% multi-device %%cache pool|cache-pool%% can help you reclaim hardware, replace a failing drive, or reconfigure your storage. This process is only possible if your pool is set up for redundancy (like %%RAID 1|raid1%% for both data and metadata) and the remaining devices have enough space to hold all of your data. - - - - +### Using the WebGUI + + - - - - +### Using the command line (Advanced) + + ### Changing pool RAID levels @@ -214,32 +155,38 @@ Removing a disk from a %%BTRFS|btrfs%% or %%ZFS|zfs%% multi-device %%cache pool| To change a pool's %%RAID|raid%% level: -1. **Start the %%array|array%%** in normal mode if it is not already running. -2. **Click the pool name** on the **Main** tab. -3. **Scroll to Balance Status**: View the current %%RAID|raid%% levels for both data and metadata. -4. **Select the new %%RAID|raid%% profile**: Choose from a drop-down menu of predefined profiles. -5. **Start the balance operation**: Click **Balance** to begin the conversion. +1. Start the %%array|array%% in normal mode. +2. In the **Main** tab, click the pool name. +3. Scroll to **Balance Status** to view current %%RAID|raid%% levels for data and metadata. +4. Select the new %%RAID|raid%% profile from the drop-down. +5. Click **Balance** to begin the conversion.
![Converting from %%RAID 1|raid1%% to Single profile](/img/Btrfs-raid1.jpg)

*Example: Converting from %%RAID 1|raid1%% to Single profile*

-6. **Monitor progress**: Balance operations can take several hours to days, depending on the amount of data in the pool, drive speeds, and the complexity of the selected %%RAID|raid%% level. +6. Monitor progress in the %%WebGUI|web-gui%%. + +:::note[Timing] + +Balance operations can take several hours to days, depending on the amount of data in the pool, drive speeds, and the complexity of the selected %%RAID|raid%% level. + +:::
Troubleshooting balance operations if stuck - Click to expand/collapse If a balance operation seems stuck or unresponsive, follow these steps: - 1. **Check the logs**: Go to ***Tools → Logs*** and filter for `btrfs` entries. - 2. **Stop and resume the operation**: + 1. In ***Tools → Logs***, filter for `btrfs` entries. + 2. Stop and resume the operation: - Click **Cancel Balance**. - Restart the %%array|array%%. - Initiate the balance operation again. - 3. **Verify disk health**: Run %%SMART|smart%% tests on all devices in the pool. For more information on disk health monitoring, see [SMART reports and disk health](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx). - 4. **Check free space**: Ensure there is at least 10-15% free space available on the pool. - 5. **Post diagnostics**: Share the logs on the [Unraid forums](https://forums.unraid.net/) if issues persist. For guidance on capturing diagnostics, see [Capture diagnostics and logs](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx). + 3. Run %%SMART|smart%% tests on all devices in the pool. For more information on disk health monitoring, see [SMART reports and disk health](../../system-administration/monitor-performance/smart-reports-and-disk-health.mdx). + 4. Ensure there is at least 10-15% free space available on the pool. + 5. If issues persist, share the logs on the [Unraid forums](https://forums.unraid.net/). For guidance on capturing diagnostics, see [Capture diagnostics and logs](../../troubleshooting/diagnostics/capture-diagnostics-and-logs.mdx).
@@ -261,13 +208,13 @@ Replacing a disk in your %%cache pool|cache-pool%% is an important task that hel To replace a disk in a pool: -1. **Stop the %%array|array%%**: Go to the **Main** tab, find the **Array Operation** section, and click the **Stop** button. This will safely halt the %%array|array%% to prepare for disk replacement. -2. **(Optional) Remove the old disk**: If you don't have a hot-swap capable setup, you'll need to physically detach the old disk. Make sure you do this carefully to avoid any damage. -3. **Install the replacement disk**: Insert the new disk into your system. Ensure it's properly connected and secured. -4. **Refresh the %%WebGUI|web-gui%%**: Go back to the **Main** tab and refresh the page to allow the system to detect your new disk. -5. **Assign the new disk**: Once detected, find the pool slot where the old disk was located and assign the new disk to that slot. -6. **Start the %%array|array%%**: Click the **Start** button to begin the process of integrating the new disk into the %%array|array%%. -7. **Monitor the rebuild**: The system will automatically start reconstructing the data onto the new disk. You can keep an eye on the progress in the %%WebGUI|web-gui%%. +1. In the **Main** tab, stop the %%array|array%% (Array Operation → **Stop**). +2. (Optional) If you don’t have hot-swap, physically remove the old disk. +3. Install the replacement disk and ensure proper connection. +4. Refresh the **Main** tab to detect the new disk. +5. Assign the new disk to the previous slot. +6. Start the %%array|array%%. +7. Monitor the rebuild progress in the %%WebGUI|web-gui%%. :::important[Timing] @@ -319,7 +266,7 @@ Set the minimum free space to at least the size of the largest file you expect, ## Moving files between a pool and the array -There are times when you may need to move files between your %%cache pool|cache-pool%% and the main %%array|array%%, such as when preparing for maintenance, upgrading hardware, or optimizing performance. Unraid provides a built-in tool called %%Mover|mover%% to automate this process for [%%user shares|user-share%%](./shares.mdx). +There are times when you may need to move files between your %%cache pool|cache-pool%% and the main %%array|array%%, such as when preparing for maintenance, upgrading hardware, or optimizing performance. This process is also useful for backing up your %%cache pool|cache-pool%% before making configuration changes or replacing drives. Unraid provides a built-in tool called %%Mover|mover%% to automate this process for [%%user shares|user-share%%](./shares.mdx). :::tip @@ -327,15 +274,13 @@ Always disable Docker and %%VM|vm%% services before moving files with the %%Move ::: - - - - +### Move from pool to array + + - - - - +### Move from array to pool + +
Why do files sometimes end up in the wrong pool or cache? - Click to expand/collapse @@ -399,15 +344,13 @@ If any of the files belong to a Docker container and/or %%VM|vm%%, the services ::: - - - - +### Using Mover + + + +### Manual file transfer (Advanced) - - - - + :::warning diff --git a/docs/unraid-os/using-unraid-to/manage-storage/file-systems.mdx b/docs/unraid-os/using-unraid-to/manage-storage/file-systems.mdx index 48414a3d3c..f01a581b04 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/file-systems.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/file-systems.mdx @@ -5,23 +5,21 @@ sidebar_label: File systems # File systems -### Selecting a file system type +## Selecting a file system type Selecting the right file system for your Unraid %%array|array%% or %%cache pool|cache-pool%% is crucial. It helps you achieve a balance between performance, data protection, and advanced features. Unraid supports several modern Linux file systems, each with its own unique strengths and specific use cases: | File System | Data Protection | Space Efficiency | Advanced Features | Best Use Case | | ---------------- | ------------------------------------------------------------------------------------- | ------------------------------ | ---------------------------------------------------------------- | ------------------------------------------------------- | | %%XFS\|xfs%% | No built-in redundancy | 100% | Robust against corruption | Default for array drives; high reliability | +| EXT4 | No built-in redundancy | 100% | Mature, stable, journaled | Array drives or single-drive pools; alternative to XFS | | %%ZFS\|zfs%% | %%RAIDZ1\|raidz1%%/%%RAIDZ2\|raidz2%%/%%RAIDZ3\|raidz3%%, mirrors, etc. | Varies by %%RAID\|raid%% level | %%Checksums\|checksum%%, %%Snapshots\|snapshot%%, %%RAID\|raid%% | Multi-device pools, %%VMs\|vm%%, Docker, advanced users | | %%BTRFS\|btrfs%% | %%RAID 0\|raid0%%/%%RAID 1\|raid1%%/%%10\|raid10%%/%%5\|raid5%%/%%6\|raid6%%, mirrors | Varies by %%RAID\|raid%% level | %%Checksums\|checksum%%, %%Snapshots\|snapshot%%, %%RAID\|raid%% | Multi-device pools, mixed SSD/HDD, flexible pools | +| NTFS | No built-in redundancy | 100% | Windows compatibility | Adding existing Windows drives without data migration | +| exFAT | No built-in redundancy | 100% | Cross-platform compatibility | Adding existing exFAT drives without data migration | import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; -import FileSystemXfs from './partials/file-system-xfs.mdx'; -import FileSystemZfs from './partials/file-system-zfs.mdx'; -import FileSystemBtrfs from './partials/file-system-btrfs.mdx'; -import BtrfsBalance from './partials/btrfs-balance.mdx'; -import BtrfsScrub from './partials/btrfs-scrub.mdx'; import FsCheckCliXfs from './partials/fs-check-cli-xfs.mdx'; import FsCheckCliBtrfs from './partials/fs-check-cli-btrfs.mdx'; import FsCheckCliZfs from './partials/fs-check-cli-zfs.mdx'; @@ -29,35 +27,79 @@ import FsRepairCliXfs from './partials/fs-repair-cli-xfs.mdx'; import FsRepairCliBtrfs from './partials/fs-repair-cli-btrfs.mdx'; import FsRepairCliZfs from './partials/fs-repair-cli-zfs.mdx'; - - - - +### XFS - - - +%%XFS|xfs%% is the default file system for %%array|array%% drives in Unraid. It's known for its robustness and ability to recover from corruption after unexpected shutdowns or crashes. Each drive formatted with %%XFS|xfs%% acts as a self-contained file system, making data recovery straightforward on any Linux system. - - - - +- **Data protection:** No built-in redundancy; relies on Unraid's %%parity|parity%% for protection. +- **Performance:** Consistent and reliable. +- **Best for:** %%Array|array%% drives, especially when stability and ease of data recovery are priorities. + +### EXT4 + +EXT4 is a mature and stable file system that offers excellent compatibility and reliability. It is fully supported and stands on par with %%XFS|xfs%%, %%BTRFS|btrfs%%, and %%ZFS|zfs%%, making it a strong choice for array drives or single-drive pools. + +- **Data protection:** It does not have built-in redundancy and relies on Unraid's %%parity|parity%% for protection. +- **Performance:** It provides consistent and reliable performance with journaling to ensure data integrity. +- **Best for:** %%Array|array%% drives or single-drive pools when you are looking for an alternative to %%XFS|xfs%%. + +### ZFS + +%%ZFS|zfs%% is a modern file system that comes with advanced features such as %%checksums|checksum%% to detect %%bit rot|bit-rot%%, %%snapshots|snapshot%% for backups, and native %%RAID|raid%% support options like %%RAIDZ1|raidz1%%/%%RAIDZ2|raidz2%%/%%RAIDZ3|raidz3%% and mirrors. %%ZFS|zfs%% can be utilized for both single-device and multi-device pools. + +- **Data protection:** Supports various %%RAID|raid%% levels for redundancy. +- **Performance:** Excellent, particularly for multi-device pools. +- **Best for:** High-performance environments, %%virtual machines|vm%%, Docker, or when advanced features like %%snapshots|snapshot%% are required. + +For comprehensive guidance on %%ZFS|zfs%% features, configuration, and best practices, see the dedicated [ZFS storage](../../advanced-configurations/optimize-storage/zfs-storage.mdx) page. + +### BTRFS + +%%BTRFS|btrfs%% provides flexible %%RAID|raid%% support, %%checksums|checksum%% for data integrity, and efficient management of mixed-size drives in pools. It serves as the default file system for %%cache pools|cache-pool%% and supports both single-device and multi-device configurations. + +- **Data protection:** Supports %%RAID 0|raid0%%/%%1|raid1%%/%%10|raid10%%/%%5|raid5%%/%%6|raid6%% (note that %%RAID 5|raid5%%/%%6|raid6%% are still experimental). +- **Performance:** Good, with flexibility for expansion and contraction. +- **Best for:** %%Cache pools|cache-pool%%, especially if you plan to mix SSDs and HDDs or need an easy way to expand. + +### NTFS and exFAT (limited support) + +NTFS and exFAT file systems are supported with some limitations. This is mainly to help you add existing drives with data to your Unraid system without needing to transfer the data elsewhere first. + +:::warning + +Drives formatted with NTFS or exFAT must be added to the %%array|array%% **before** you add any parity drives. Once a parity drive has been added to your %%array|array%%, any new data drives you add will be zeroed out, regardless of their file system format. + +If you want to use existing NTFS or exFAT drives: + +- Add them to the %%array|array%% first (or run ***Tools → New Config*** to reset your array configuration). +- After adding your NTFS/exFAT data drives, you can then add parity drives. +- The existing data on these drives will be preserved and protected by parity. + +::: + +- **Data protection:** These drives do not offer built-in redundancy; they rely on Unraid's %%parity|parity%% for protection once parity is added. +- **Performance:** Adequate for basic storage needs. +- **Best for:** Adding existing Windows-formatted drives (NTFS) or cross-platform formatted drives (exFAT) without the need for data migration. They can also be used for single-drive pools. +- **Limitations:** These file systems are not recommended for regular use; they are intended primarily for migrating existing drives. For new drives, consider using %%XFS|xfs%%, EXT4, %%BTRFS|btrfs%%, or %%ZFS|zfs%% instead. + +For more details on adding existing drives, see the [release notes](../../release-notes/7.2.0.md#ext234-ntfs-and-exfat-support). :::note[Additional Notes] - Mixing different file system types in your Unraid system is perfectly acceptable; the Unraid %%parity|parity%% system works independently of the file system used. - Always format and partition drives within Unraid to ensure compatibility. - Linux systems can read these file systems natively; however, Windows and macOS will require additional software for access. -- You can encrypt drives for enhanced security, but keep in mind that encrypted drives might pose challenges for recovery if corruption occurs. +- You can **encrypt** drives for enhanced security, but keep in mind that encrypted drives might pose challenges for recovery if corruption occurs. - For transfer drives or external devices, it's recommended to use the **[Unassigned Devices](#using-the-unassigned-devices-plugins)** plugin, which supports additional file systems. ::: :::tip[Still need help choosing?] -- **For array drives:** %%XFS|xfs%% is generally the best choice for most users. -- **For high-performance or advanced features:** Choose %%ZFS|zfs%% or %%BTRFS|btrfs%% for %%cache pools|cache-pool%% or multi-device setups. +- **For array drives:** %%XFS|xfs%% is generally the best choice for most users. EXT4 is also a solid option if you prefer a more traditional Linux file system. +- **For high-performance or advanced features:** Choose %%ZFS|zfs%% or %%BTRFS|btrfs%% for %%cache pools|cache-pool%% or multi-device setups. See the [ZFS storage](../../advanced-configurations/optimize-storage/zfs-storage.mdx) page for detailed %%ZFS|zfs%% guidance. - **For mixed or expanding pools:** %%BTRFS|btrfs%% is ideal if you want to use different drive sizes or easily add or remove devices. +- **For existing drives:** Use NTFS or exFAT only when adding existing drives with data; add them before adding parity. If you're uncertain, starting with the defaults is a good approach: use %%XFS|xfs%% for %%array|array%% drives and %%BTRFS|btrfs%% for %%cache pools|cache-pool%%. @@ -69,34 +111,49 @@ If you're uncertain, starting with the defaults is a good approach: use %%XFS|xf When adding a new drive to Unraid, you can select the file system type that works best for your needs. The file system determines how data is organized and protected on the disk. -To set the file system type: +To set the file system type globally, navigate to ***Settings → Disk Settings*** to set the default file system for new %%array|array%% drives only. Unraid defaults to %%XFS|xfs%% for %%array|array%% drives. -1. **Set the default globally**: - - Navigate to ***Settings → Disk Settings*** to set the default file system for new %%array|array%% drives only. - - Unraid defaults to %%XFS|xfs%% for %%array|array%% drives. - - **Note:** There is currently no global default setting for %%cache pools|cache-pool%%. They will always default to %%BTRFS|btrfs%% if left to "auto". +:::note -2. **Set the file system for an individual drive**: - - Stop the %%array|array%%. - - Click on the drive in the **Main** tab. - - Choose your desired file system type from the drop-down menu. - - If you select **auto**, Unraid will use the global default. - - For multi-device %%cache pools|cache-pool%%, only %%BTRFS|btrfs%% or %%ZFS|zfs%% are supported. +There is currently no global default setting for %%cache pools|cache-pool%%. They will always default to %%BTRFS|btrfs%% if left to "auto". + +::: + +:::important + +If you're adding drives with existing NTFS or exFAT data, they must be added to the %%array|array%% before any parity drives are added. Once parity is present, all newly added data drives will be zeroed out regardless of their file system type. + +::: + +To set the file system for an individual drive: + +1. Stop the %%array|array%% before making changes. +2. In the **Main** tab, click the drive you want to configure. +3. Select the desired file system type from the drop-down menu. +4. (Optional) If you select **auto**, Unraid uses the global default. +5. For multi-device %%cache pools|cache-pool%%, only %%BTRFS|btrfs%% or %%ZFS|zfs%% are supported. +6. If adding existing NTFS or exFAT data drives to the %%array|array%%, add them before adding any parity drives. --- ## Creating a file system (formatting) -Before using a new disk in Unraid, you must format it with the selected file system. **Remember, formatting will erase all existing content on the drive.** +Before using a new disk in Unraid, you must format it with the selected file system. + +:::warning + +Formatting will erase all existing content on the drive. Make sure you've backed up any important data before proceeding. -To begin with formatting: +::: -1. **Start the %%array|array%%**. -2. **Identify unmountable drives**: Drives that are not recognized will appear as **unmountable**. -3. **Verify drive selection**: Verify that all unmountable drives are the ones you want to format. -4. **Confirm and format**: Check the box to confirm, read the warning dialog carefully, and click **Format**. -5. **Monitor the process**: The format process will begin. For new disks, Unraid will first rewrite the partition table. -6. **Wait for completion**: Formatting usually takes a few minutes. If you don't see progress, refresh the **Main** tab. +To format a drive: + +1. Start the %%array|array%%. +2. Identify unmountable drives (they appear as **unmountable**). +3. Verify that all unmountable drives are the ones you want to format. +4. Check the confirmation box, read the warning dialog, and click **Format**. +5. Monitor the process. For new disks, Unraid first rewrites the partition table. +6. Wait for completion. If progress stalls, refresh the **Main** tab. Once formatting is complete, the drive is ready to store files. @@ -114,13 +171,13 @@ Changing the file system type will **erase all existing data** on the drive. Alw To change the file system type on a particular drive: -1. **Stop the array**: Begin by stopping your %%array|array%% to ensure no operations are occurring during the change. -2. **Select the drive**: In the **Main** tab, click on the drive that you want to change the format for. -3. **Choose the new file system**: From the drop-down menu, select the desired file system format. If you have multiple drives to change, repeat this step for each one. -4. **Start the array**: Once you have selected the new file systems, start your %%array|array%% again. -5. **Format unmountable drives**: The **Main** tab will display an option to format unmountable drives. Take a moment to check the list and ensure that only the drives you intend to change are included. -6. **Confirm and format**: Check the confirmation box to acknowledge the change, then click the **Format** button to proceed. -7. **Wait for the process to finish**: Formatting usually takes just a few minutes. If you notice that the status isn't updating, you can refresh the **Main** tab to check the progress. +1. Stop the %%array|array%%. +2. In the **Main** tab, click the drive you want to change. +3. Choose the new file system from the drop-down (repeat for multiple drives as needed). +4. Start the %%array|array%%. +5. In the **Main** tab, review the unmountable drives list and ensure only the intended drives are included. +6. Check the confirmation box and click **Format**. +7. Wait for completion. If status doesn’t update, refresh the **Main** tab. If you encounter any issues, feel free to visit the [Unraid forums](https://forums.unraid.net/). Attach your system diagnostics zip file (found under ***Tools → Diagnostics***) for assistance. @@ -130,10 +187,10 @@ If you encounter any issues, feel free to visit the [Unraid forums](https://foru :::important -Starting with Unraid 7.2, the ***Main*** page will warn if any array or pool drives are formatted in legacy filesystems: +The ***Main*** page will warn if any array or pool drives are formatted in legacy filesystems: -- Any drives formatted in ReiserFS need to be migrated to another filesystem ASAP as they will not be usable in a future release of Unraid (likely Unraid 7.3). -- Any drives formatted in an older version of XFS need to be migrated before 2030. +- Any drives formatted in ReiserFS need to be migrated to another filesystem ASAP as they will not be usable in future releases of Unraid. +- Any drives formatted in older XFS versions need to be migrated before 2030. ::: @@ -147,20 +204,26 @@ This process requires temporarily moving your data to another location. Make sur To safely convert to a new file system type: -1. **Copy all data off the drive**: Move your files to another location. This could be another drive in your %%array|array%%, a %%cache pool|cache-pool%%, or an external backup. - - Prior to Unraid 7.0, you will need to move the files manually - - Starting with Unraid 7.0, you can move files [use 'mover' to empty an array disk](../../release-notes/7.0.0.md#using-mover-to-empty-an-array-disk) to other array drives via the command line - - Starting with Unraid 7.2, you can empty an array drive to other array drives via the webGUI: - - Navigate to ***Main → Array Operation*** and stop the array - - Navigate to ***Settings → Global Share Settings***. In the **Emptying disk(s)** area, select the disk(s) to empty and **Apply**. Note: this status will automatically be removed when the array is stopped. - - Navigate to ***Main → Array Operation*** and start the array - - On ***Main → Array Operation*** click **Move** (or wait until mover runs via its normal schedule) - - Mover will empty the disk according to your Share settings. Note that files at the root of the drive are outside of any Shares and will not be moved. - - Check ***Tools → System Log*** for messages about any files that could not be moved due to being in use or a lack of free space - - Navigate to ***Main → Array Devices*** and browse the disk to confirm it is empty. Proceed only when you are certain the disk is empty. -2. **Change the file system type**: Follow the procedure for [changing a file system type](#changing-a-file-system-type). This will format the drive and erase all content, leaving you with a blank drive in the new format. -3. **Copy your data back**: (Optional) Depending on where you moved the files, you may want to move them back to the newly formatted drive. -4. **Repeat as needed**: If you have more than one drive to convert, repeat these steps for each drive, transferring data as needed. +1. Move all data off the drive to another location (another %%array|array%% drive, %%cache pool|cache-pool%%, or external backup). Use one of these methods: + + **Via the WebGUI:** + - Navigate to ***Main → Array Operation*** and stop the array + - Navigate to ***Settings → Global Share Settings***. In the **Emptying disk(s)** area, select the disk(s) to empty and **Apply**. Note: this status will automatically be removed when the array is stopped. + - Navigate to ***Main → Array Operation*** and start the array + - On ***Main → Array Operation*** click **Move** (or wait until mover runs via its normal schedule) + - Mover will empty the disk according to your Share settings. Note that files at the root of the drive are outside of any Shares and will not be moved. + - Check ***Tools → System Log*** for messages about any files that could not be moved due to being in use or a lack of free space + + **Or via the command line:** + - Move files [using 'mover' to empty an array disk](../../release-notes/7.0.0.md#using-mover-to-empty-an-array-disk) to other array drives + + **Or manually:** + - Move files manually to another location + + Once completed, navigate to ***Main → Array Devices*** and browse the disk to confirm it is empty. Proceed only when you are certain the disk is empty. +2. Follow the procedure for [changing a file system type](#changing-a-file-system-type). This formats the drive and erases all content, leaving a blank drive in the new format. +3. (Optional) Move your data back to the newly formatted drive, depending on where you moved the files. +4. If you have multiple drives to convert, repeat these steps for each drive. :::note[Timing] @@ -203,37 +266,53 @@ Sometimes, you'll need to reformat a %%cache|cache%% drive for the following rea - To fix persistent file system errors - To start fresh for new workloads -

Recommended procedure for reformatting a cache drive

+#### Preparation -1. **Stop the array**. -2. **Disable Docker and %%VM|vm%% services** under **Settings**. -3. **Start the array** (this will prevent the Docker and %%VM|vm%% tabs from appearing). +Before reformatting, prepare the system: + +1. Stop the %%array|array%%. +2. Go to **Settings** and disable Docker and %%VM|vm%% services (this prevents their tabs from appearing during the process). +3. Start the %%array|array%% again. + +#### Move data off the cache To move data off the cache: -4. **Set share storage and Mover action (cache → array)**: For each share that has files in the %%cache|cache%%, set **Primary storage** to the source %%cache|cache%% pool and **Secondary storage** to the %%array|array%%. Set **Mover action** to **cache → array**. - - Note down any shares you change and their original settings. -5. **Run %%Mover|mover%%**: Run %%Mover|mover%% from the **Main** tab. Wait for it to finish and ensure that the %%cache|cache%% is empty. - - If any files remain, stop and check the forums for help. +1. Set share storage and Mover action (cache → array): + - Go to the **Shares** tab. + - For each share with files in the %%cache|cache%%, set **Primary storage** to the source %%cache|cache%% pool and **Secondary storage** to the %%array|array%%. + - Set **Mover action** to **cache → array**. + - Note the shares you changed and their original settings. +2. In the **Main** tab, click **Move Now** and wait for completion. Ensure the %%cache|cache%% is empty. + - If files remain, stop and check the forums for help. + +#### Reformat the cache drive To reformat the cache drive: -6. **Stop the array**. -7. **Set the cache drive format** (choose between %%XFS|xfs%% or %%BTRFS|btrfs%%). - - For a single-drive %%cache|cache%%, %%XFS|xfs%% is the recommended option. - - Note that %%XFS|xfs%% is only available if you have one %%cache|cache%% slot. -8. **Start the array**. -9. **Format the cache drive**: - - Confirm that only the %%cache|cache%% drive is listed as unmountable. - - Proceed to format the drive. +1. Stop the %%array|array%%. +2. Set the cache drive format: + - In the **Main** tab, click the cache drive. + - Choose between %%XFS|xfs%%, EXT4, or %%BTRFS|btrfs%%. + - For a single-drive %%cache|cache%%, %%XFS|xfs%% or EXT4 are recommended. + - Note that %%XFS|xfs%% and EXT4 are only available with one %%cache|cache%% slot. +3. Start the %%array|array%%. +4. Format the cache drive: + - Confirm only the %%cache|cache%% drive is listed as unmountable. + - Check the confirmation box and click **Format**. + +#### Restore data and settings To restore data and settings: -10. **Restore share settings**: For each share you changed, set **Primary storage** and **Secondary storage** back to their original values. -11. **Move data back (array → cache)**: Set **Primary storage** to the destination %%cache|cache%% pool and **Secondary storage** to the %%array|array%% for each share you changed. Set **Mover action** to **array → cache**, then run the %%Mover|mover%% again to move your data back to the %%cache|cache%%. -12. **Stop the array**. -13. **Re-enable Docker and %%VM|vm%% services**. -14. **Start the array**. +1. For each share you changed, set **Primary storage** and **Secondary storage** back to their original values. +2. Move data back (array → cache): + - For each share you changed, set **Primary storage** to the destination %%cache|cache%% pool and **Secondary storage** to the %%array|array%%. + - Set **Mover action** to **array → cache**. + - In the **Main** tab, click **Move Now** to move data back to the %%cache|cache%%. +3. Stop the %%array|array%%. +4. Go to **Settings** and re-enable Docker and %%VM|vm%% services. +5. Start the %%array|array%% to complete the process. :::note[Timing] @@ -247,17 +326,55 @@ The time it takes to move data with the %%Mover|mover%% and format the drive can Maintaining your %%BTRFS|btrfs%% pools in Unraid is essential for keeping them running well and ensuring your data stays safe. Two key tools you’ll want to use regularly are **Balance** and **Scrub**. These operations help solve space allocation problems, optimize your storage use, and protect your data from hidden corruption. -Let’s break down what each operation does and when to use them: +Let's break down what each operation does and when to use them: - - - - +### Balance - - - - +The **Balance** operation redistributes data and metadata chunks across your %%BTRFS|btrfs%% pool. This process helps free up space, resolves allocation issues, and can fix "no space left on device" errors even when space seems available. + +#### When to run Balance + +- When you encounter "no space left on device" errors but have free space. +- After adding or removing drives in a pool. +- To optimize space usage and improve performance. + +#### How to run Balance + +1. In the %%WebGUI|web-gui%%, click the pool in the **Main** tab and select **Balance**. +2. (Optional) Add parameters for advanced use (refer to Unraid Help for details). +3. Click **Start** to begin. + +:::note[Timing] + +Balance operations can take a few minutes to several hours, depending on the pool size and amount of data. + +::: + +### Scrub + +The **Scrub** operation reads all data and metadata, checks the integrity of checksums, and repairs any corrupt blocks using available redundant copies. Scrubbing helps identify and fix silent data corruption, known as "bit rot," before it becomes a significant issue. + +#### When to run Scrub + +- As part of routine maintenance (see recommended schedule below). +- After unclean shutdowns or if you suspect corruption. +- More frequently on high-usage pools. + +#### Recommended schedule + +- High-usage pools: **Once a week** +- All other pools: **Once a month** + +#### How to run Scrub + +1. In the %%WebGUI|web-gui%%, click the pool in the **Main** tab and select **Scrub**. +2. Click **Start** to initiate. + +:::note[Timing] + +Scrub operations are usually quicker than a full disk scan because they only check allocated data. Based on pool size and usage, expect this to take anywhere from a few minutes to a few hours. + +::: :::tip @@ -275,11 +392,11 @@ Unassigned drives are storage devices connected to your Unraid server that aren' :::note -All drives connected to your server when the %%array|array%% starts count toward your Unraid Attached Devices license limit, even if they aren’t assigned to the %%array|array%% or a pool. +All drives connected to your server when the %%array|array%% starts count toward your Unraid Attached Devices license limit, even if they aren't assigned to the %%array|array%% or a pool. ::: -

Common uses for unassigned drives

+### Common uses for unassigned drives - Connect removable drives for easy file transfers or backups. - Use dedicated drives for high-performance tasks like running %%virtual machines|vm%% or temporary data storage. @@ -310,9 +427,9 @@ For more details on installing and managing plugins, check out [Plugins](../cust If you see that a drive in Unraid is **unmountable**, it could be due to one of two main reasons: -1. **New drive added**: If you just added a new drive to your setup, it will show as unmountable until you format it. Formatting creates a file system that allows the drive to store files. You can find the steps to format a drive [here](#creating-a-file-system-formatting). +1. If you just added a new drive to your setup, it will show as unmountable until you format it. Formatting creates a file system that allows the drive to store files. You can find the steps to format a drive [here](#creating-a-file-system-formatting). -2. **File system problems**: If a drive that was previously working suddenly shows as unmountable, it likely has a file system issue. This can happen due to unexpected shutdowns, problems while writing data, or if the drive has been marked as disabled (which appears as a red 'x' in the %%WebGUI|web-gui%%). +2. If a drive that was previously working suddenly shows as unmountable, it likely has a file system issue. This can happen due to unexpected shutdowns, problems while writing data, or if the drive has been marked as disabled (which appears as a red 'x' in the %%WebGUI|web-gui%%). :::important @@ -322,9 +439,9 @@ Do not format an unmountable drive unless you are okay with losing all the data If your drive is unmountable: -1. **Identify the situation**: Determine if it's a new drive or a previously working drive. -2. **For new drives**: Format the drive to create a new file system (check the [formatting steps](#creating-a-file-system-formatting)). -3. **For previously working drives**: Perform a file system check or repair (see [Checking a file system](#checking-a-file-system)). Avoid formatting if you want to keep the data. +1. Determine if it's a new drive or a previously working drive. +2. For new drives: Format the drive to create a new file system (see [formatting steps](#creating-a-file-system-formatting)). +3. For previously working drives: Perform a file system check or repair (see [Checking a file system](#checking-a-file-system)). Avoid formatting if you want to keep the data. :::note @@ -362,24 +479,24 @@ If a disk that previously mounted without issues now shows as **unmountable**, i :::important -If the %%WebGUI|web-gui%% suggests formatting an unmountable drive, do not format unless you intend to erase all data. Formatting will destroy the contents of the drive and update %%parity|parity%%, making recovery impossible. +If the %%WebGUI|web-gui%% suggests formatting an unmountable drive, **do not format** unless you intend to erase all data. Formatting will destroy the contents of the drive and update %%parity|parity%%, making recovery impossible. ::: -

Preparing to check or repair

+#### Preparing to check or repair -1. **Identify the file system type**: - - Navigate to the **Main** tab and select your disk (e.g., Disk 3, Cache). - - Find the **File system type** (should be %%XFS|xfs%%, %%BTRFS|btrfs%%, or %%ZFS|zfs%%). +1. Identify the file system type: + - In the **Main** tab, select your disk (e.g., Disk 3, Cache). + - Find the **File system type** (should be %%XFS|xfs%%, EXT4, %%BTRFS|btrfs%%, or %%ZFS|zfs%%). -2. **Start the array in the correct mode**: - - For **%%XFS|xfs%%**, start the %%array|array%% in **%%Maintenance Mode|maintenance-mode%%**. +2. Start the array in the correct mode: + - For **%%XFS|xfs%%** or **EXT4**, start the %%array|array%% in **%%Maintenance Mode|maintenance-mode%%**. - For **%%BTRFS|btrfs%%**, start the %%array|array%% in **Normal mode** for a %%scrub|scrub%% or **%%Maintenance Mode|maintenance-mode%%** for a repair. - For **%%ZFS|zfs%%**, refer to the %%ZFS|zfs%% section below. -3. **Handle emulated disks**: If the disk is disabled and being emulated, run the check/repair on the %%emulated disk|emulated-disk%% before attempting a rebuild. If the %%emulated disk|emulated-disk%% is unmountable, the rebuilt disk will also be unmountable. +3. If the disk is disabled and being emulated, run the check/repair on the %%emulated disk|emulated-disk%% before attempting a rebuild. If the %%emulated disk|emulated-disk%% is unmountable, the rebuilt disk will also be unmountable. -

Common error messages

+#### Common error messages | Message | Meaning / Action | | --------------------------------------------------- | ------------------------------------------------------------ | @@ -390,32 +507,32 @@ If the %%WebGUI|web-gui%% suggests formatting an unmountable drive, do n | **Mount: wrong fs type, bad option, etc.** | Incorrect file system selection or disk is unformatted. | | **Cannot mount /dev/mdX: Structure needs cleaning** | File system is corrupted; perform a repair. | -#### Via the WebGUI +#### Checking via the WebGUI -1. **Start the array**: Start the %%array|array%% in the correct mode (refer to the steps above). -2. **Select the disk**: Go to the **Main** tab and select the disk you wish to check. -3. **Access check options**: Scroll to **Check Filesystem Status**. -4. **For XFS (Unraid 7.0+)**: You will see a **CHECK** button without any options to enter. The system automatically determines the necessary actions based on the check results. -5. **For other file systems**: Enter any necessary options (for details, see **Help** in the upper right). -6. **Start the check**: Click **Check** to initiate the process. -7. **Monitor progress**: Monitor the progress in the output box. Use **Refresh** if required. -8. **Review results**: Review the results. If uncertain, copy the output and post it on the [forums](https://forums.unraid.net/) for advice. +1. Start the %%array|array%% in the correct mode (refer to the steps above). +2. In the **Main** tab, select the disk you wish to check. +3. Scroll to **Check Filesystem Status**. +4. For XFS: You will see a **CHECK** button without any options to enter. The system automatically determines the necessary actions based on the check results. +5. For other file systems: Enter any necessary options (for details, see **Help** in the upper right). +6. Click **Check** to initiate the process. +7. Monitor progress in the output box. Use **Refresh** if required. +8. Review results. If uncertain, copy the output and post it on the [forums](https://forums.unraid.net/) for advice. -#### XFS Automatic Repair Workflow (Unraid 7.0+) +#### XFS automatic repair workflow -Starting with Unraid 7.0, XFS file system repair is now fully automated through the WebGUI: +XFS file system repair is fully automated through the WebGUI: -1. **Initial Check**: Click the **CHECK** button (no options to enter) -2. **Check Results**: +1. Click the **CHECK** button (no options to enter) +2. Check results: - **No corruption detected**: Shows "no filesystem corruption detected" and the **CHECK** button remains - **Corruption detected**: Shows "filesystem corruption detected" and a **FIX** button appears -3. **Repair Process**: Click **FIX** to automatically repair the file system -4. **Additional Actions**: If needed, a **ZERO LOG** button may appear -5. **Completion**: Shows "filesystem repaired" when the process is complete +3. Click **FIX** to automatically repair the file system +4. If needed, a **ZERO LOG** button may appear +5. Shows "filesystem repaired" when the process is complete This automated system eliminates the need for users to manually enter repair options and ensures the correct repair sequence is followed. -#### Via the command line +#### Checking via the command line @@ -451,29 +568,29 @@ Repairs can take anywhere from several minutes to several hours, especially for ::: -

Preparing to repair

+#### Preparing to repair -1. **Identify the file system type**: Go to the **Main** tab, click on the disk, and find out what type of file system it is (%%XFS|xfs%%, %%BTRFS|btrfs%%, or %%ZFS|zfs%%). +1. In the **Main** tab, click the disk and identify the file system type (%%XFS|xfs%%, EXT4, %%BTRFS|btrfs%%, or %%ZFS|zfs%%). -2. **Start the array in the correct mode**: +2. Start the array in the correct mode: - - **For %%XFS|xfs%%:** Use **%%Maintenance Mode|maintenance-mode%%**. + - **For %%XFS|xfs%% or EXT4:** Use **%%Maintenance Mode|maintenance-mode%%**. - **For %%BTRFS|btrfs%%:** Use **Normal mode** for a %%scrub|scrub%%; use **%%Maintenance Mode|maintenance-mode%%** for a repair. - - **For %%ZFS|zfs%%:** Use **Normal mode** and run a %%scrub|scrub%% to check for errors. See the [ZFS storage page](../../advanced-configurations/optimize-storage/zfs-storage.mdx) for guidance on %%ZFS|zfs%% pool maintenance and repair procedures. + - **For %%ZFS|zfs%%:** Use **Normal mode** and run a %%scrub|scrub%% to check for errors. See the [ZFS storage page](../../advanced-configurations/optimize-storage/zfs-storage.mdx) for guidance on %%ZFS|zfs%% pool maintenance and repair procedures. -3. **Handle emulated disks**: If the disk is disabled and being emulated, run the repair on the %%emulated disk|emulated-disk%% before trying to do a rebuild. +3. If the disk is disabled and being emulated, run the repair on the %%emulated disk|emulated-disk%% before trying to do a rebuild. -#### Via the WebGUI +#### Repairing via the WebGUI -1. **Start the array**: Start the %%array|array%% in the correct mode (refer to the section above). -2. **Select the disk**: Go to the **Main** tab and click on the disk you want to repair. -3. **Access repair options**: Scroll down to **Check Filesystem Status**. -4. **For XFS (Unraid 7.0+)**: The repair process is fully automated. Click **CHECK**, then **FIX** if corruption is detected, and **ZERO LOG** if prompted. -5. **For other file systems**: Remove any options that would run the process in check-only mode (like `--readonly` for %%BTRFS|btrfs%%). -6. **Add suggested options**: If prompted, add the suggested options as indicated in the check output. -7. **Start the repair**: Click on **Check** to begin the repair. -8. **Monitor progress**: Keep an eye on the progress in the output box. Use **Refresh** if needed. -9. **Check for lost files**: If you notice a `lost+found` folder after the repair, it may contain files or folders that couldn't be fully recovered. Use backups or the Linux `file` command to identify the contents if necessary. +1. Start the %%array|array%% in the correct mode (refer to the section above). +2. In the **Main** tab, click the disk you want to repair. +3. Scroll down to **Check Filesystem Status**. +4. For XFS: The repair process is fully automated. Click **CHECK**, then **FIX** if corruption is detected, and **ZERO LOG** if prompted. +5. For other file systems: Remove any options that would run the process in check-only mode (like `--readonly` for %%BTRFS|btrfs%%). +6. If prompted, add the suggested options as indicated in the check output. +7. Click **Check** to begin the repair. +8. Monitor progress in the output box. Use **Refresh** if needed. +9. If you notice a `lost+found` folder after the repair, it may contain files or folders that couldn't be fully recovered. Use backups or the Linux `file` command to identify the contents if necessary. :::info @@ -481,7 +598,7 @@ If you're uncertain about the output, copy and share it on the [Unraid forums](h ::: -#### Via the command line +#### Repairing via the command line diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx index 01733f4d24..3303981c31 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/array-check-parity.mdx @@ -35,7 +35,7 @@ If you prefer to run a check without making corrections, simply uncheck **Write :::important -After an "Unsafe Shutdown"—when the array is restarted without being properly stopped—Unraid automatically initiates a %%parity check|parity-check%% using the mode configured under **Settings → Scheduler → Parity Check** (non-correcting by default). To change how the automatic check runs, open **Settings → Scheduler → Parity Check** and adjust the options there. Unexpected power loss is the most common trigger for an unsafe shutdown, so using an uninterruptible power supply (UPS) is strongly recommended to protect your data. +After an "Unsafe Shutdown" - when the array is restarted without being properly stopped - Unraid automatically initiates a %%parity check|parity-check%% using the mode configured under **Settings → Scheduler → Parity Check** (non-correcting by default). To change how the automatic check runs, open **Settings → Scheduler → Parity Check** and adjust the options there. Unexpected power loss is the most common trigger for an unsafe shutdown, so using an uninterruptible power supply (UPS) is strongly recommended to protect your data. ::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx deleted file mode 100644 index 051342bcf8..0000000000 --- a/docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-balance.mdx +++ /dev/null @@ -1,19 +0,0 @@ -The **Balance** operation redistributes data and metadata chunks across your %%BTRFS|btrfs%% pool. This process helps free up space, resolves allocation issues, and can fix “no space left on device” errors even when space seems available. - -

When to run Balance

- -- When you encounter “no space left on device” errors but have free space. -- After adding or removing drives in a pool. -- To optimize space usage and improve performance. - -

How to run Balance

- -1. **Access the pool**: In the %%WebGUI|web-gui%%, click on the pool in the **Main** tab and select **Balance**. -2. **Add parameters (optional)**: Optionally, add parameters for advanced use (refer to Unraid Help for details). -3. **Start the process**: Click **Start** to begin the process. - -:::note[Timing] - -Balance operations can take a few minutes to several hours, depending on the pool size and amount of data. - -::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx deleted file mode 100644 index 57dc60d494..0000000000 --- a/docs/unraid-os/using-unraid-to/manage-storage/partials/btrfs-scrub.mdx +++ /dev/null @@ -1,23 +0,0 @@ -The **Scrub** operation reads all data and metadata, checks the integrity of checksums, and repairs any corrupt blocks using available redundant copies. Scrubbing helps identify and fix silent data corruption, known as “bit rot,” before it becomes a significant issue. - -

When to run Scrub

- -- As part of routine maintenance (see recommended schedule below). -- After unclean shutdowns or if you suspect corruption. -- More frequently on high-usage pools. - -

Recommended schedule

- -- High-usage pools: **Once a week** -- All other pools: **Once a month** - -

How to run Scrub

- -1. **Access the pool**: In the %%WebGUI|web-gui%%, click on the pool in the **Main** tab and select **Scrub**. -2. **Start the process**: Click **Start** to initiate the process. - -:::note[Timing] - -Scrub operations are usually quicker than a full disk scan because they only check allocated data. Based on pool size and usage, expect this to take anywhere from a few minutes to a few hours. - -::: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx deleted file mode 100644 index 2365ebce7a..0000000000 --- a/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-btrfs.mdx +++ /dev/null @@ -1,5 +0,0 @@ -%%BTRFS|btrfs%% provides flexible %%RAID|raid%% support, %%checksums|checksum%% for data integrity, and efficient management of mixed-size drives in pools. It serves as the default file system for %%cache pools|cache-pool%% and supports both single-device and multi-device configurations. - -- **Data protection:** Supports %%RAID 0|raid0%%/%%1|raid1%%/%%10|raid10%%/%%5|raid5%%/%%6|raid6%% (note that %%RAID 5|raid5%%/%%6|raid6%% are still experimental). -- **Performance:** Good, with flexibility for expansion and contraction. -- **Best for:** %%Cache pools|cache-pool%%, especially if you plan to mix SSDs and HDDs or need an easy way to expand. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx deleted file mode 100644 index b5420ff809..0000000000 --- a/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-xfs.mdx +++ /dev/null @@ -1,5 +0,0 @@ -**%%XFS|xfs%%** is the default file system for %%array|array%% drives in Unraid. It’s known for its robustness and ability to recover from corruption after unexpected shutdowns or crashes. Each drive formatted with %%XFS|xfs%% acts as a self-contained file system, making data recovery straightforward on any Linux system. - -- **Data protection:** No built-in redundancy; relies on Unraid's %%parity|parity%% for protection. -- **Performance:** Consistent and reliable. -- **Best for:** %%Array|array%% drives, especially when stability and ease of data recovery are priorities. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx deleted file mode 100644 index cbcf54a881..0000000000 --- a/docs/unraid-os/using-unraid-to/manage-storage/partials/file-system-zfs.mdx +++ /dev/null @@ -1,7 +0,0 @@ -%%ZFS|zfs%% is a modern file system that comes with advanced features such as %%checksums|checksum%% to detect %%bit rot|bit-rot%%, %%snapshots|snapshot%% for backups, and native %%RAID|raid%% support options like %%RAIDZ1|raidz1%%/%%RAIDZ2|raidz2%%/%%RAIDZ3|raidz3%% and mirrors. %%ZFS|zfs%% can be utilized for both single-device and multi-device pools in Unraid 6.12 and later. - -- **Data protection:** Supports various %%RAID|raid%% levels for redundancy. -- **Performance:** Excellent, particularly for multi-device pools. -- **Best for:** High-performance environments, %%virtual machines|vm%%, Docker, or when advanced features like %%snapshots|snapshot%% are required. - -For a deep dive into %%ZFS|zfs%% features, configuration, and best practices, check out our dedicated section on [ZFS storage](../../../advanced-configurations/optimize-storage/zfs-storage.mdx). diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx index 62b0a6af56..e3e7f20187 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-array-to-pool.mdx @@ -6,9 +6,9 @@ Moving files back to the %%cache pool|cache-pool%% after maintenance or when you To move files from the %%array|array%% to a pool: -1. **Disable Docker and %%VM|vm%% services**: Go to **Settings** and turn off Docker and %%VM|vm%% Manager to prevent any open files from interfering. -2. **Set share storage and Mover action (array → cache)**: In the **Shares** tab, for each share you want to move (like `appdata` or `system`), set **Primary storage** to the destination %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. Set **Mover action** to **array → cache**. -3. **Run the %%Mover|mover%%**: Go to the **Main** tab and click **Move Now** to start moving files from the %%array|array%% to the %%cache pool|cache-pool%%. -4. **Verify the move**: After the %%Mover|mover%% finishes, check that the files are now on the %%cache pool|cache-pool%%. -5. **Re-enable Docker and %%VM|vm%% services**: Once the move is complete, turn Docker and %%VM|vm%% Manager back on in **Settings**. -6. **(Optional) Set share to use %%cache pool|cache-pool%% exclusively**: If you want all files for a share to remain on the %%cache pool|cache-pool%%, set the **Primary storage** to your %%cache pool|cache-pool%% and **Secondary storage** to **None** for that share. +1. Go to **Settings** and turn off Docker and %%VM|vm%% Manager to prevent any open files from interfering. +2. In the **Shares** tab, for each share you want to move (like `appdata` or `system`), set **Primary storage** to the destination %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. Set **Mover action** to **array → cache**. +3. Go to the **Main** tab and click **Move Now** to start moving files from the %%array|array%% to the %%cache pool|cache-pool%%. +4. After the %%Mover|mover%% finishes, check that the files are now on the %%cache pool|cache-pool%%. +5. Once the move is complete, turn Docker and %%VM|vm%% Manager back on in **Settings**. +6. (Optional) To set a share to use %%cache pool|cache-pool%% exclusively: If you want all files for a share to remain on the %%cache pool|cache-pool%%, set the **Primary storage** to your %%cache pool|cache-pool%% and **Secondary storage** to **None** for that share. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx index a15edc3619..2c5c26cbc6 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-between-pools-using-mover.mdx @@ -1,13 +1,13 @@ -1. **Disable Docker and %%VM|vm%% services**: Go to **Settings** and turn off Docker and %%VM|vm%% Manager to prevent open files. -2. **Move files from pool1 to the %%array|array%% (cache → array)**: +1. Go to **Settings** and turn off Docker and %%VM|vm%% Manager to prevent open files. +2. Move files from pool1 to the %%array|array%% (cache → array): - Go to the **Shares** tab. For each share that currently resides on pool1, set **Primary storage** to pool1 and **Secondary storage** to the %%array|array%%. - Set **Mover action** to **cache → array**. - In the **Main** tab, click **Move Now** to run %%Mover|mover%%. Wait for it to finish. -3. **Move files from the %%array|array%% to pool2 (array → cache)**: +3. Move files from the %%array|array%% to pool2 (array → cache): - In the **Shares** tab, set **Primary storage** to pool2 and **Secondary storage** to the %%array|array%% for each share. - Set **Mover action** to **array → cache**. - In the **Main** tab, click **Move Now** again. Files will move from the %%array|array%% to pool2. -4. **Re-enable Docker and %%VM|vm%% services** (if needed). +4. Re-enable Docker and %%VM|vm%% services (if needed). :::note[Timing] diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx index 01b8236527..88b6e03f7f 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/move-pool-to-array.mdx @@ -6,8 +6,8 @@ Moving files off the %%cache pool|cache-pool%% to the %%array|array%% before per To move files from your pool to the %%array|array%%: -1. **Disable Docker and %%VM|vm%% services**: Go to **Settings** and turn off Docker and %%VM|vm%% Manager. This prevents any files from being held open, allowing the %%Mover|mover%% to transfer everything smoothly. -2. **Set share storage and Mover action (cache → array)**: In the **Shares** tab, for each share you want to move (like `appdata` or `system`), set **Primary storage** to the source %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. Set **Mover action** to **cache → array**. -3. **Run %%Mover|mover%%**: Go to the **Main** tab and click **Move Now** to transfer files from the %%cache pool|cache-pool%% to the %%array|array%%. -4. **Verify the move**: After the %%Mover|mover%% finishes, check that the files have been moved by clicking the folder icon next to the cache entry on the **Main** tab. -5. **Re-enable Docker and %%VM|vm%% services**: Once all files are on the %%array|array%%, you can safely turn these services back on. +1. Go to **Settings** and turn off Docker and %%VM|vm%% Manager. This prevents any files from being held open, allowing the %%Mover|mover%% to transfer everything smoothly. +2. In the **Shares** tab, for each share you want to move (like `appdata` or `system`), set **Primary storage** to the source %%cache pool|cache-pool%% and **Secondary storage** to the %%array|array%%. Set **Mover action** to **cache → array**. +3. Go to the **Main** tab and click **Move Now** to transfer files from the %%cache pool|cache-pool%% to the %%array|array%%. +4. After the %%Mover|mover%% finishes, check that the files have been moved by clicking the folder icon next to the cache entry on the **Main** tab. +5. Once all files are on the %%array|array%%, you can safely turn Docker and %%VM|vm%% services back on. diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx index d4138976a0..9b233cf7c1 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-command-line.mdx @@ -9,9 +9,9 @@ If you're comfortable with the command line, this method gives you more control To remove a disk using the command line: -1. **Open a terminal session**: Make sure the %%array|array%% is running and open your command line interface. +1. Make sure the %%array|array%% is running and open your command line interface. -2. **Remove the device**: Type the command below, replacing `X` with the letter corresponding to the drive you want to remove (as shown in the Main tab): +2. Type the command below, replacing `X` with the letter corresponding to the drive you want to remove (as shown in the Main tab): ```bash btrfs device remove /dev/sdX1 /mnt/cache @@ -20,15 +20,15 @@ To remove a disk using the command line: - For encrypted devices, use: `/dev/mapper/sdX1`. - For NVMe devices, use: `nvmeXn1p1`. -3. **Wait for completion**: The device will be removed once you see the cursor return. +3. Wait for completion: The device will be removed once you see the cursor return. -4. **Make Unraid "forget" the deleted member**: +4. Make Unraid "forget" the deleted member: - Stop the %%array|array%%. - Unassign all pool devices. - Start the %%array|array%% (Unraid will clear the pool configuration). - If any Docker/%%VM|vm%% services use this pool, disable them before starting the %%array|array%% to prevent Unraid from recreating images elsewhere. -5. **Reassign devices**: Stop the %%array|array%% again, reassign all remaining pool members except the removed device, and then start the %%array|array%%. +5. Stop the %%array|array%% again, reassign all remaining pool members except the removed device, and then start the %%array|array%%. **To remove multiple devices**: diff --git a/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx b/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx index a1e3b0ac7f..e9d9fc287b 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/partials/remove-disk-gui.mdx @@ -8,10 +8,10 @@ To remove a disk using the %%WebGUI|web-gui%%: -1. **Stop the %%array|array%%**: Go to the **Main** tab and look for the option to stop your %%array|array%%. -2. **Unassign the pool drive**: Find the drive you want to remove and unassign it in the **Main** tab. -3. **Start the %%array|array%%**: Restart the %%array|array%% to apply the changes. -4. **Verify removal**: Click on the first pool device in the **Main** tab, then check **Balance Status** (for %%BTRFS|btrfs%%) or **zpool status** (for %%ZFS|zfs%%) to confirm the device was correctly removed. +1. Stop the %%array|array%%: Go to the **Main** tab and look for the option to stop your %%array|array%%. +2. Unassign the pool drive: Find the drive you want to remove and unassign it in the **Main** tab. +3. Start the %%array|array%%: Restart the %%array|array%% to apply the changes. +4. Verify removal: Click on the first pool device in the **Main** tab, then check **Balance Status** (for %%BTRFS|btrfs%%) or **zpool status** (for %%ZFS|zfs%%) to confirm the device was correctly removed. :::note[Timing] diff --git a/docs/unraid-os/using-unraid-to/manage-storage/shares.mdx b/docs/unraid-os/using-unraid-to/manage-storage/shares.mdx index e9d1e21533..b36f8fd06c 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/shares.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/shares.mdx @@ -27,11 +27,11 @@ Unraid offers two types of shares to optimize your data management: It's important to remember that both share types present different views of the same underlying file system; any file or folder visible in a %%user share|user-share%% will also appear under the disk share for its respective physical drive. -When you start services like Docker or VM Manager, Unraid automatically creates a [set of default user shares](#default-shares) designed to support common plugins, Docker containers, and **virtual machines (VMs)**. You can conveniently create additional shares for your personal data as needed. +When you start services like Docker or %%VM|vm%% Manager, Unraid automatically creates a [set of default user shares](#default-shares) designed to support common plugins, Docker containers, and %%virtual machines (VMs)|vm%%. You can conveniently create additional shares for your personal data as needed. :::note -To manage your shares, simply navigate to the **Shares** tab in the WebGUI. Here, you can easily enable or disable shares through ***Settings → Global Share Settings***. By default, %%user shares|user-share%% are enabled, providing a straightforward starting point for your file organization. +To manage your shares, simply navigate to the **Shares** tab in %%WebGUI|web-gui%%. Here, you can easily enable or disable shares through ***Settings → Global Share Settings***. By default, %%user shares|user-share%% are enabled, providing a straightforward starting point for your file organization. ::: @@ -39,11 +39,11 @@ To manage your shares, simply navigate to the **Shares** tab in the WebGUI. Here ## User shares -%%User shares|user-share%% provide an aggregated view of top-level folders with the same name across **%%cache|cache%%** and **array drives**. The share name corresponds to the folder name, creating a unified network-accessible view that spans multiple drives. It's important to note that while directories appear merged, individual files remain stored on a single drive. +%%User shares|user-share%% provide an aggregated view of top-level folders with the same name across %%cache|cache%% and array drives. The share name corresponds to the folder name, creating a unified network-accessible view that spans multiple drives. It's important to note that while directories appear merged, individual files remain stored on a single drive. ### Managing user shares -You can access and manage %%User shares|user-share%% from the **Shares** tab in the **WebGUI**. This interface allows you to: +You can access and manage %%User shares|user-share%% from the **Shares** tab in the %%WebGUI|web-gui%%. This interface allows you to: - Review all existing shares - Create new shares @@ -63,7 +63,7 @@ The deprecated `/mnt/user0` mount point (which excludes %%pool|cache-pool%% file ### Storage allocation -The physical drive that stores a file is determined by share settings such as **%%Allocation Method|allocation-method%%**, **%%Included/Excluded Disks|included-or-excluded-disks%%**, and **%%Split Level|split-level%%**. Changes to these settings will affect only new files; existing files will remain untouched unless moved manually. +The physical drive that stores a file is determined by share settings such as %%Allocation Method|allocation-method%%, %%Included/Excluded Disks|included-or-excluded-disks%%, and %%Split Level|split-level%%. Changes to these settings will affect only new files; existing files will remain untouched unless moved manually. :::caution[Critical] @@ -79,39 +79,40 @@ For safe file management practices and more details, see the [Disk share guideli Before creating a share, consider how you'll use it, your performance needs, security, and where files should be stored. -To add a share: - -1. **Start the process:** Go to the **Shares** tab and click on **Add Share**. - -2. **Choose a share name:** Pick a unique name for your share, like `Media` or `Documents`. - :::important[Share names] -Even though network shares (%%SMB|samba%%) don’t care about capitalization (e.g., `MEDIA` is the same as `media`), Linux file systems do. Avoid using names that are identical but only differ in case to prevent issues. +Even though network shares (%%SMB|samba%%) don't care about capitalization (e.g., `MEDIA` is the same as `media`), Linux file systems do. Avoid using names that are identical but only differ in case to prevent issues. ::: -3. **Optional settings:** - - **Comments:** Write a short description to identify your share (e.g., "Family Photos"). - - **Minimum Free Space:** Decide on a minimum amount of free space (e.g., `50GB` for large files). (For more details, see [Minimum free space](#minimum-free-space)) - -4. **Select storage locations:** - - - **Primary Storage:** Choose where the share will initially be stored (e.g., **%%cache|cache%%**, **%%array|array%%**, or a specific %%pool|cache-pool%%). - - **Secondary Storage:** Set an overflow location that can be used when primary storage is full, and also serves as the final destination for the share once the %%Mover|mover%% runs. - - (For more details, see [Primary and secondary storage](#primary-and-secondary-storage).) +To add a share: -5. **Set data rules:** - - **%%Allocation Method|allocation-method%%:** Pick how data will be stored - options include high-water, fill-up, or most-free. (For more details, see [Allocation method](#allocation-method).) - - **%%Split Level|split-level%%:** Determine how folders should be organized. (For more details, see [Split level](#split-level).) +1. Go to the **Shares** tab and click **Add Share**. +2. Pick a unique name for your share, like `Media` or `Documents`. +3. Configure optional settings: + - **Comments**: Write a short description to identify your share (e.g., "Family Photos"). + - **Minimum Free Space**: Decide on a minimum amount of free space (e.g., `50GB` for large files). For more details, see [Minimum free space](#minimum-free-space). +4. Select storage locations: + - **Primary Storage**: Choose where the share will initially be stored (e.g., %%cache|cache%%, %%array|array%%, or a specific %%pool|cache-pool%%). + - **Secondary Storage**: Set an overflow location that can be used when primary storage is full, and also serves as the final destination for the share once the %%Mover|mover%% runs. + - For more details, see [Primary and secondary storage](#primary-and-secondary-storage). +5. Set data rules: + - **%%Allocation Method|allocation-method%%**: Pick how data will be stored - options include high-water, fill-up, or most-free. For more details, see [Allocation method](#allocation-method). + - **%%Split Level|split-level%%**: Determine how folders should be organized. For more details, see [Split level](#split-level). +6. Manage drives: + - **Included Disks**: Choose specific drives to include (e.g., `disk1,disk2`). + - **Excluded Disks**: Specify any drives you want to exclude (like older drives). + - For more details, see [Included or excluded disks](#included-or-excluded-disks). +7. (Optional) Configure Mover settings: + - **Mover Action**: Decide the direction of data movement (either *Primary → Secondary* or *Secondary → Primary*). + - For more details, see [Moving files between cache and array](#moving-files-between-cache-and-array). +8. Click **Add Share** to finish setting up your new share. -6. **Manage drives:** +:::important - - **Included Disks:** Choose specific drives to include (e.g., `disk1,disk2`). - - **Excluded Disks:** Specify any drives you want to exclude (like older drives). +By default, a new share will not be shared over the network. You must configure [network access](../../system-administration/secure-your-server/security-fundamentals.mdx#managing-network-visibility-of-shares) after the share is created. - (For more details, see [Included or excluded disks](#included-or-excluded-disks).) +::: :::tip @@ -119,79 +120,51 @@ You can configure either **Included** or **Excluded Disks**, but not both at the ::: -7. **Mover Settings (if needed)** - - - **Mover Action:** Decide the direction of data movement (either *Primary → Secondary* or *Secondary → Primary*). - - (For more details, see [Moving files between cache and array](#moving-files-between-cache-and-array).) - -8. **Complete the process:** Click **Add Share** to finish setting up your new share. - -:::important - -By default, a new share will not be shared over the network. You must configure [network access](../../system-administration/secure-your-server/security-fundamentals.mdx#managing-network-visibility-of-shares) after the share is created. - -::: - ### Delete a share :::important -To prevent any potential data loss, shares that contain data cannot be deleted. Therefore, you should either delete or relocate all contents within the share first. Always double-check to confirm that the share is empty before proceeding with its removal for a secure process. +To prevent any potential data loss, shares that contain data cannot be deleted. You must either delete or relocate all contents within the share first. Always double-check to confirm that the share is empty before proceeding with its removal. ::: -**Shares containing data** +#### Delete a share containing data For shares containing data: -1. **Empty the share first:** - - Use the built-in **File Manager** accessible through the system shortcuts (***Tools → File Manager***) or click the ![File Manager](/img/filemanager.png) icon in the top-right corner. +1. Empty the share: + - Use the built-in **File Manager** accessible through ***Tools → File Manager*** or click the ![File Manager](/img/filemanager.png) icon in the top-right corner. - Find your share in **Shares** and click the **Browse** icon. - Delete or move all files using the file manager. -
- Using the Command Line (Advanced) + :::note[Alternative methods] - 1. **Open the terminal:** Use the **Web Terminal** (***Tools → Terminal***) or connect via %%SSH|ssh%%. + You can also: - 2. **Delete files:** - Run this command, replacing `[share_name]` with your share's name: + - **Use the command line**: Open the **Web Terminal** (***Tools → Terminal***) or connect via %%SSH|ssh%%, then run `rm -rf /mnt/user/[share_name]/*` (replace `[share_name]` with your share's name). - ``` - rm -rf /mnt/user/[share_name]/* - ``` + - **Use network access**: Connect via **Windows Explorer** (%%SMB|samba%%) or **macOS Finder** (%%AFP|AFP%%/%%SMB|samba%%) and manually delete the files. - 3. **Delete the share:** Follow the steps to delete an empty share above. + :::caution - :::caution - - The `rm -rf` command will permanently delete files. Double-check before using it. - - Make sure no Docker or VM services are using the share before you delete it. - ::: + The `rm -rf` command will permanently delete files. Double-check before using it. Make sure no Docker or %%VM|vm%% services are using the share before you delete it. -
+ ::: -:::note[Alternative Method] - -If you can access the share over the network: - -- Use **Windows Explorer** (%%SMB|samba%%) or **macOS Finder** (%%AFP|AFP%%/%%SMB|samba%%) to connect to the share. -- Manually delete the files, then remove the share through the **WebGUI**. - -::: - -2. **Delete the share:** - - Go back to **Shares** and click on the now-empty share. +2. Delete the share: + - Go back to **Shares** and click the now-empty share. - Check the **Delete** box and click **Delete**. - Confirm and click **Done**. -#### Deleting an empty share +#### Delete an empty share + +To delete a share that's already empty: 1. Go to the **Shares** tab. -2. Click on the share you want to delete. -3. Check the box next to **Delete**. The button will change to **Delete**. +2. Click the share you want to delete. +3. Check the box next to **Delete**. The button changes to **Delete**. 4. Click **Delete**. -5. Confirm the deletion and click **Done**. +5. Confirm and click **Done**. --- @@ -199,16 +172,13 @@ If you can access the share over the network: ### Minimum free space -The **Minimum Free Space** setting works in conjunction with the **%%allocation method|allocation-method%%** and **%%split level|split-level%%** to determine where new files are stored. This setting specifies the amount of free space that must remain on a drive for it to be considered eligible for new file writes. If a drive’s free space falls below this threshold, Unraid will stop placing new data on that drive, provided that the **%%split level|split-level%%** permits splitting to another disk. +The **Minimum Free Space** setting works in conjunction with the %%allocation method|allocation-method%% and %%split level|split-level%% to determine where new files are stored. This setting specifies the amount of free space that must remain on a drive for it to be considered eligible for new file writes. If a drive's free space falls below this threshold, Unraid will stop placing new data on that drive, provided that the %%split level|split-level%% permits splitting to another disk. -
- How it works - Click to expand/collapse +#### How it works - When transferring a file (e.g., `file.eg`), Unraid selects a disk based on available settings but cannot predict the final size of the file. If the chosen disk runs out of space during the transfer, the operation will fail with a "disk full" error. To prevent this, set the **Minimum Free Space** to a value that is larger than your largest file. This ensures that Unraid avoids disks that cannot accommodate the entire file. +When transferring a file (e.g., `file.eg`), Unraid selects a disk based on available settings but cannot predict the final size of the file. If the chosen disk runs out of space during the transfer, the operation will fail with a "disk full" error. To prevent this, set the **Minimum Free Space** to a value that is larger than your largest file. This ensures that Unraid avoids disks that cannot accommodate the entire file. -
- -

Recommendation

+#### Recommendation Set this value to **twice the size of your largest file**. For example: @@ -216,7 +186,7 @@ Set this value to **twice the size of your largest file**. For example: This buffer accounts for variations in file sizes and helps prevent transfer failures. -

Configuration

+#### Configuration - Enter the value in KB, MB, GB, or TB (e.g., `50GB`). - New %%user shares|user-share%% default to 10% of the disk’s total capacity. @@ -229,20 +199,20 @@ Always configure **Minimum Free Space** when using the *fill-up* %%allocation me :::caution -There is a separate **Minimum Free Space** setting for **%%cache pools|cache-pool%%**. You can access this by going to the **Main** tab and clicking on a %%pool|cache-pool%%. Make sure to set this value higher than your largest file to avoid overfilling, especially for shares configured with *Yes* or *Prefer* cache modes. +There is a separate **Minimum Free Space** setting for %%cache pools|cache-pool%%. You can access this by going to the **Main** tab and clicking on a %%pool|cache-pool%%. Make sure to set this value higher than your largest file to avoid overfilling, especially for shares configured with *Yes* or *Prefer* cache modes. ::: -

Limitations

+#### Limitations -- Unraid prioritizes **%%split level|split-level%%** rules over free space settings. If splitting is not allowed, files may still fill up a disk regardless of the free space threshold. +- Unraid prioritizes %%split level|split-level%% rules over free space settings. If splitting is not allowed, files may still fill up a disk regardless of the free space threshold. - Updating existing files (for example, when growing backup files) does not trigger redistribution, which can lead to "disk full" errors as time goes on. -For more detailed guidance, use the **Help** icon in the **WebGUI** while configuring your shares. +For more detailed guidance, use the **Help** icon in the %%WebGUI|web-gui%% while configuring your shares. --- -## Primary and Secondary Storage +## Primary and secondary storage Unraid’s storage management lets you control where new files are written and how data moves between %%pools|cache-pool%%, %%cache|cache%%, and the %%array|array%%. The options and terminology differ between Unraid 6.12+ and earlier versions. @@ -260,11 +230,11 @@ Unraid’s storage management lets you control where new files are written and h ### Moving files between cache and array -Unraid provides a straightforward way to manage file placement between **%%cache pools|cache-pool%%** and the **%%array|array%%**, allowing you to optimize performance and manage your data effectively. The key is to set up your share settings based on your preferred data flow and let the **%%Mover|mover%%** handle file transfers automatically according to its schedule. +Unraid provides a straightforward way to manage file placement between %%cache pools|cache-pool%% and %%array|array%%, allowing you to optimize performance and manage your data effectively. The key is to set up your share settings based on your preferred data flow and let the %%Mover|mover%% handle file transfers automatically according to its schedule. :::tip[Scheduling the Mover] -You can configure the [**%%Mover|mover%%** schedule](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#scheduler) by going to **Settings → Scheduler → Mover Settings**. Running it automatically during off-peak hours helps move files between the %%cache|cache%% and %%array|array%% without requiring manual action. +You can configure the [%%Mover|mover%% schedule](../../getting-started/set-up-unraid/customize-unraid-settings.mdx#scheduler) by going to **Settings → Scheduler → Mover Settings**. Running it automatically during off-peak hours helps move files between the %%cache|cache%% and %%array|array%% without requiring manual action. ::: @@ -284,7 +254,7 @@ You can configure the [**%%Mover|mover%%** schedule](../../getting-started/set-u #### Array to cache -*Use case:* Improving performance for Docker containers and VMs by moving files to the %%cache|cache%%. +*Use case:* Improving performance for Docker containers and %%VMs|vm%% by moving files to the %%cache|cache%%. @@ -306,7 +276,7 @@ If you run into issues with file movement, you can enable **Mover logging** thro - Make sure your %%parity|parity%% is valid before moving files from the %%array|array%% to the %%cache|cache%%. - If dealing with large datasets, keep an eye on %%Mover|mover%% activity via the logs. -- If files appear to be "stuck," consider temporarily disabling Docker and the VM Manager, then running the %%Mover|mover%% manually via ***Main → Array Operation → Move***. +- If files appear to be "stuck," consider temporarily disabling Docker and the %%VM|vm%% Manager, then running the %%Mover|mover%% manually via ***Main → Array Operation → Move***. ::: @@ -318,74 +288,69 @@ When you create a new user share or add any file or folder inside it, the system There are three straightforward options you can select for how the system allocates storage for your user share: - - -

How it works

+#### High-Water (Recommended) - The **High-water** method progressively fills disks using "switch points" based on half the largest drive's capacity. This balances disk usage while keeping related files together and minimizing drive spin-ups. +**How it works** -

Example with 8TB, 3TB, and 2TB drives

+The **High-water** method progressively fills disks using "switch points" based on half the largest drive's capacity. This balances disk usage while keeping related files together and minimizing drive spin-ups. - 1. **First pass:** Fill 8TB drive until 4TB free remains (half of 8TB). - 2. **Second pass:** Fill 8TB/3TB drives until 2TB free remains. - 3. **Third pass:** Fill all drives until 1TB free remains. +**Example with 8TB, 3TB, and 2TB drives** -

Best for:

+1. **First pass:** Fill 8TB drive until 4TB free remains (half of 8TB). +2. **Second pass:** Fill 8TB/3TB drives until 2TB free remains. +3. **Third pass:** Fill all drives until 1TB free remains. - - Media servers (e.g., Plex) - - Scenarios where keeping files on fewer disks improves spin-down efficiency - - Arrays with mixed drive sizes +**Best for:** - :::note - High-water is the default method and works well for most users. It reduces drive thrashing compared to "Most-free." - ::: +- Media servers (e.g., Plex) +- Scenarios where keeping files on fewer disks improves spin-down efficiency +- Arrays with mixed drive sizes -
+:::note +High-water is the default method and works well for most users. It reduces drive thrashing compared to "Most-free." +::: - -

How it works

+#### Most-Free - The **Most-free** method selects the disk with the most free space for each new file. This maximizes storage efficiency but increases drive thrashing. +**How it works** -

Performance impact

+The **Most-free** method selects the disk with the most free space for each new file. This maximizes storage efficiency but increases drive thrashing. - - Frequent disk switches keep multiple drives spun up - - May reduce %%parity|parity%% write speeds due to overlapping operations +**Performance impact** -

Best for:

+- Frequent disk switches keep multiple drives spun up +- May reduce %%parity|parity%% write speeds due to overlapping operations - - High-throughput workflows (e.g., video editing) - - Temporary or %%cache|cache%%-like data - - Arrays where performance outweighs power savings +**Best for:** - :::tip - Combine with **%%split level|split-level%%** settings to group related files despite frequent disk switching. - ::: +- High-throughput workflows (e.g., video editing) +- Temporary or %%cache|cache%%-like data +- Arrays where performance outweighs power savings -
+:::tip +Combine with %%split level|split-level%% settings to group related files despite frequent disk switching. +::: - -

How it works

+#### Fill-Up - The **Fill-up** method writes to disks in numeric order until they reach the **Minimum Free Space** threshold, then moves to the next disk. +**How it works** -

Requirements

+The **Fill-up** method writes to disks in numeric order until they reach the **Minimum Free Space** threshold, then moves to the next disk. - - Always set **Minimum Free Space** (e.g., 2x largest file size) - - Configure **Split Level** to control file grouping +**Requirements** -

Best for:

+- Always set **Minimum Free Space** (e.g., 2x largest file size) +- Configure **Split Level** to control file grouping - - Static data archives - - Users who prefer manual disk management - - Arrays with identical drive sizes +**Best for:** - :::caution - Without **Minimum Free Space** configured, "disk full" errors will occur when a drive nears capacity. - ::: +- Static data archives +- Users who prefer manual disk management +- Arrays with identical drive sizes -
-
+:::caution +Without **Minimum Free Space** configured, "disk full" errors will occur when a drive nears capacity. +::: --- @@ -393,55 +358,49 @@ There are three straightforward options you can select for how the system alloca The **Split Level** setting in Unraid helps manage how files and folders are organized across multiple disks. It determines how deep folder structures can go on different disks while keeping certain files together. The %%split level|split-level%% is numbered starting from 1, where the top level (the main share) is considered level 1. - - -

Behavior

+#### Automatically Split Any Directory (Default) - Unraid creates any required folders on the selected disk, regardless of folder depth. New files and folders are placed based on %%allocation method|allocation-method%% and available space, even if their parent directories do not already exist on that disk. +**Behavior** -

Use Case

+Unraid creates any required folders on the selected disk, regardless of folder depth. New files and folders are placed based on %%allocation method|allocation-method%% and available space, even if their parent directories do not already exist on that disk. - Best for general data shares where folder structure is not critical, such as downloads or mixed media libraries. Allows maximum flexibility for file placement and disk utilization. +**Use Case** -
+Best for general data shares where folder structure is not critical, such as downloads or mixed media libraries. Allows maximum flexibility for file placement and disk utilization. - -

Behavior

+#### Automatically Split Only Top Level - Unraid will only create first-level subfolders on a disk if they don’t already exist. For deeper folders, new files and folders are placed on the disk where the parent directory exists. +**Behavior** -

Use Case

+Unraid will only create first-level subfolders on a disk if they don't already exist. For deeper folders, new files and folders are placed on the disk where the parent directory exists. - Ideal for media libraries (e.g., Movies/Title) where you want all files for a specific subfolder (like a movie or TV show) to remain together on the same disk. +**Use Case** -
+Ideal for media libraries (e.g., Movies/Title) where you want all files for a specific subfolder (like a movie or TV show) to remain together on the same disk. - -

Behavior

+#### Automatically Split Top 'N' Levels - You specify how many directory levels (N) Unraid will manage automatically. For folders at or above level N, Unraid can create them as needed. For deeper levels, new files are placed on the disk where the parent directory exists. +**Behavior** -

Use Case

+You specify how many directory levels (N) Unraid will manage automatically. For folders at or above level N, Unraid can create them as needed. For deeper levels, new files are placed on the disk where the parent directory exists. - Useful for complex folder structures, such as nested project directories, where you want to keep related content grouped together beyond just the top level. +**Use Case** -
+Useful for complex folder structures, such as nested project directories, where you want to keep related content grouped together beyond just the top level. - -

Behavior

+#### Manual (No Automatic Splitting) - Unraid only places new files or folders on disks where the parent directory already exists. No new directories are created automatically. +**Behavior** -

Use Case

+Unraid only places new files or folders on disks where the parent directory already exists. No new directories are created automatically. - Best for advanced users who want full manual control over file placement, or for archival data where folder structure must remain fixed. +**Use Case** -
-
+Best for advanced users who want full manual control over file placement, or for archival data where folder structure must remain fixed. :::important -If there are conflicts between **Minimum Free Space**, **Split Level**, and **%%Allocation Method|allocation-method%%**, the **Split Level** setting takes priority. This may result in "out of space" errors, even if other drives have available space. +If there are conflicts between **Minimum Free Space**, **Split Level**, and %%Allocation Method|allocation-method%%, the **Split Level** setting takes priority. This may result in "out of space" errors, even if other drives have available space. ::: @@ -463,39 +422,35 @@ The settings for %%included and excluded disks|included-or-excluded-disks%% only ::: - - -

Behavior

+#### Included Disks - Unraid will only consider the listed disks when deciding where to place new files for the share. All other disks are ignored for new writes, but files already present on other disks remain accessible for reading. +**Behavior** -

Use Case

+Unraid will only consider the listed disks when deciding where to place new files for the share. All other disks are ignored for new writes, but files already present on other disks remain accessible for reading. - Use this setting if you want to restrict a share to certain disks, such as keeping important documents on newer or higher-capacity drives, or isolating a media library to specific disks for performance or organizational reasons. +**Use Case** -
+Use this setting if you want to restrict a share to certain disks, such as keeping important documents on newer or higher-capacity drives, or isolating a media library to specific disks for performance or organizational reasons. - -

Behavior

+#### Excluded Disks - Unraid will use all eligible disks except those listed here when placing new files for the share. As with included disks, files already present on excluded disks remain accessible for reading. +**Behavior** -

Use Case

+Unraid will use all eligible disks except those listed here when placing new files for the share. As with included disks, files already present on excluded disks remain accessible for reading. - Use this setting to prevent a share from using certain disks, such as excluding older drives, slower disks, or drives reserved for other data types. +**Use Case** -
-
+Use this setting to prevent a share from using certain disks, such as excluding older drives, slower disks, or drives reserved for other data types. --- ### Default shares -When you use Unraid with **Docker** or **Virtual Machines (VMs)**, it automatically creates some default shares. +When you use Unraid with **Docker** or %%Virtual Machines (VMs)|vm%%, it automatically creates some default shares. :::important -These shares are only created after you start their respective services (Docker or VM Manager). If you don't see these shares, make sure Docker and/or VM Manager are enabled and running. +These shares are only created after you start their respective services (Docker or %%VM|vm%% Manager). If you don't see these shares, make sure Docker and/or %%VM|vm%% Manager are enabled and running. ::: @@ -504,13 +459,13 @@ You don’t have to use these shares if you don’t want to, and you can remove Here’s a quick overview of what each default share is for: - `appdata`: This is where all the working files for your Docker containers are stored. Each Docker container usually has its own folder here. -- `system`: This share holds the essential files for your Docker applications and the XML templates for your VMs. -- `domains`: This share is designated for storing virtual disk images (vdisks) that your VMs use. -- `isos`: This is where you can save CD ISO images that you want to use with your VMs. +- `system`: This share holds the essential files for your Docker applications and the XML templates for your %%VMs|vm%%. +- `domains`: This share is designated for storing virtual disk images (vdisks) that your %%VMs|vm%% use. +- `isos`: This is where you can save CD ISO images that you want to use with your %%VMs|vm%%. :::important -It’s best not to change the permissions on most of these default shares because doing so might cause issues with how Docker containers and VMs work. The only share where changing permissions is recommended is the `isos` share, as this one can be accessed over the network for adding new ISO files for virtual machines. +It's best not to change the permissions on most of these default shares because doing so might cause issues with how Docker containers and %%VMs|vm%% work. The only share where changing permissions is recommended is the `isos` share, as this one can be accessed over the network for adding new ISO files for %%virtual machines|vm%%. ::: @@ -563,103 +518,10 @@ For security, it's best to keep your shares in *Private* mode and only grant acc 3. **Verify your copies:** When moving files locally, you can use `rsync -c` to check that the files copied over correctly. -4. **Don’t mix share types:** Avoid using paths that mix %%user shares|user-share%% and disk shares, such as `/mnt/user/share/` with `/mnt/disk1/share/` in the same command. - ---- - -## Transferring files from a network share - -There are several tools you can use to copy files from a Windows or Linux share to your Unraid server. To keep things simple and reliable, start with the built-in Unraid file management tool before exploring third-party options. - -### Using Midnight Commander (built-in) - -Unraid includes **Midnight Commander** (`mc`), a text-based, dual-pane file manager. You can access it through the [web terminal](../../system-administration/advanced-tools/command-line-interface.mdx). - -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 - mc - ``` - - This interface offers drag-and-drop navigation between local shares and mounted network paths. -3. **Mount a network share** (if it's not already mounted): - - ```bash - mkdir /work - mount -t cifs //workstation/share /work -o username=youruser,password=yourpassword,iocharset=utf8 - ``` - - - Replace `workstation`, `share`, and `youruser` with the appropriate values. - - The `iocharset=utf8` option helps maintain international filenames. -4. **Use the MC panes** to transfer files between `/work` (the network share) and any `/mnt/user/` or `/mnt/diskX` share. -5. **Clean up afterwards:** - - ```bash - umount /work - rmdir /work - ``` - -Midnight Commander runs entirely within the built-in system, requiring no additional installation. It's suitable for most transfer needs, including those involving Unicode filenames, and it preserves file attributes when both source and destination support them. - -### Using Krusader - -If you prefer a graphical user interface, you can use Docker containers like [Krusader](https://unraid.net/community/apps?q=krusader#r:~:text=batch%20renaming%2C%20etc.-,Krusader,-Productivity%2C%20Tools) as a third-party solution. - -1. **Install Krusader:** - - Navigate to the **Apps** tab (Community Applications). - - Search for and install the **Krusader** Docker container. -2. **Launch Krusader:** Start the container and access its WebUI from the **Docker** tab. -3. **Connect to remote shares** within Krusader, and use drag-and-drop or copy-paste to transfer files between the network share and your Unraid %%array|array%%. - -:::info - -Other popular file manager containers include [**Double Commander**](https://unraid.net/community/apps?q=double+commander#r:~:text=of%201%20App-,doublecommander,-Tools%20/%20Utilities%2C) and [**CloudCommander**](https://unraid.net/community/apps?q=cloudcommander#r:~:text=of%201%20App-,CloudCommander,-Tools%20/%20Utilities%2C), both available through Community Applications. - -::: - -### Command-line methods - -For advanced users or those using automation, you can also utilize command-line transfer methods. - -
- Click to expand for command-line instructions - - 1. **Open the terminal** (Web Terminal or %%SSH|ssh%% as `root`). - - 2. **Create and mount a network share:** - - ```bash - mkdir /work - mount -t cifs //workstation/share /work -o username=youruser,password=yourpassword,iocharset=utf8 - ``` - - 3. **Copy files:** - - You can use `cp`: - - ```bash - cp -r /work/* /mnt/disk1 - ``` - - - Or, use `rsync` for detailed progress: - - ```bash - rsync -av --progress /work/ /mnt/disk1/ - ``` - - 4. **Unmount and remove the temporary directory:** - - ```bash - umount /work - rmdir /work - ``` - -
- -:::caution +4. **Don't mix share types:** Avoid using paths that mix %%user shares|user-share%% and disk shares, such as `/mnt/user/share/` with `/mnt/disk1/share/` in the same command. -When transferring files with special or international characters, always mount the share with the `iocharset=utf8` option. Failing to do so may result in incorrect filenames or unreadable files on other platforms. +:::tip[Transferring files from external network shares] -Also, if you copy files as `root` via terminal, they may have restrictive permissions. If this occurs, use the **New Permissions** tool from the **Tools** menu in the WebGUI or the **Docker Safe New Perms** if you're dealing with Docker-involved shares to reset permissions, ensuring all users have network access. +If you need to transfer files from external Windows or Linux network shares (SMB/CIFS) to your Unraid server using command-line tools, see [File transfer operations](../../system-administration/advanced-tools/command-line-interface.mdx#file-transfer-operations) in the Command line interface documentation. ::: diff --git a/docs/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx b/docs/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx index c04fed7106..4759c279c0 100644 --- a/docs/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx +++ b/docs/unraid-os/using-unraid-to/run-docker-containers/community-applications.mdx @@ -13,7 +13,7 @@ import CommunityAppsReinstalling from './partials/community-apps-reinstalling.md Community Applications provides a curated catalog of over 2,000 free Docker containers and plugins maintained by the Unraid community. Each container or plugin lets your server take on new roles, such as running a media server, dynamic DNS client, or backup solution. -- **Docker containers** are lightweight packages that include everything needed to run an application, keeping it isolated from the rest of your %%array|array%% and %%cache pool|cache-pool%%. Learn more about [array configuration](../manage-storage/array-configuration.mdx) and [cache pools](../manage-storage/cache-pools.mdx). +- **Docker containers** are lightweight packages that include everything needed to run an application, keeping it isolated from the rest of your %%array|array%% and %%cache pool|cache-pool%%. Learn more about [array configuration](../manage-storage/array/overview.mdx) and [cache pools](../manage-storage/cache-pools.mdx). - **Plugins** enhance Unraid OS itself. For more information about plugins, visit the [Plugins](../customize-your-experience/plugins.mdx) page. :::caution diff --git a/docusaurus.config.ts b/docusaurus.config.ts index c6f7b7c3df..256bd454f4 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -1,34 +1,34 @@ -import type { Config } from '@docusaurus/types'; -import type * as Preset from '@docusaurus/preset-classic'; -import { themes } from 'prism-react-renderer'; -import path from 'path'; -import { fileURLToPath } from 'url'; +import type { Config } from "@docusaurus/types"; +import type * as Preset from "@docusaurus/preset-classic"; +import { themes } from "prism-react-renderer"; +import path from "path"; +import { fileURLToPath } from "url"; // @ts-ignore - ESM module without proper types -import remarkAutoGlossary from '@renatonagliati/remark-auto-glossary'; -import remarkPresetLintRecommended from 'remark-preset-lint-recommended'; -import remarkLintListItemIndent from 'remark-lint-list-item-indent'; -import remarkLintOrderedListMarkerStyle from 'remark-lint-ordered-list-marker-style'; -import remarkLintNoUndefinedReferences from 'remark-lint-no-undefined-references'; -import remarkLintNoDuplicateDefinitions from 'remark-lint-no-duplicate-definitions'; -import remarkLintNoUnusedDefinitions from 'remark-lint-no-unused-definitions'; -import remarkLintDefinitionCase from 'remark-lint-definition-case'; -import remarkLintFencedCodeMarker from 'remark-lint-fenced-code-marker'; -import remarkLintCodeBlockStyle from 'remark-lint-code-block-style'; -import remarkLintHeadingStyle from 'remark-lint-heading-style'; -import remarkLintLinkTitleStyle from 'remark-lint-link-title-style'; -import remarkLintMaximumLineLength from 'remark-lint-maximum-line-length'; -import remarkLintNoFileNameOuterDashes from 'remark-lint-no-file-name-outer-dashes'; -import remarkLintNoHeadingPunctuation from 'remark-lint-no-heading-punctuation'; -import remarkLintNoMultipleToplevelHeadings from 'remark-lint-no-multiple-toplevel-headings'; -import remarkLintNoShellDollars from 'remark-lint-no-shell-dollars'; -import jsxContentSpacing from './remark-jsx-spacing.js'; -import { sortSidebarItems } from './sitebar-semver-sort.js'; +import remarkAutoGlossary from "@renatonagliati/remark-auto-glossary"; +import remarkPresetLintRecommended from "remark-preset-lint-recommended"; +import remarkLintListItemIndent from "remark-lint-list-item-indent"; +import remarkLintOrderedListMarkerStyle from "remark-lint-ordered-list-marker-style"; +import remarkLintNoUndefinedReferences from "remark-lint-no-undefined-references"; +import remarkLintNoDuplicateDefinitions from "remark-lint-no-duplicate-definitions"; +import remarkLintNoUnusedDefinitions from "remark-lint-no-unused-definitions"; +import remarkLintDefinitionCase from "remark-lint-definition-case"; +import remarkLintFencedCodeMarker from "remark-lint-fenced-code-marker"; +import remarkLintCodeBlockStyle from "remark-lint-code-block-style"; +import remarkLintHeadingStyle from "remark-lint-heading-style"; +import remarkLintLinkTitleStyle from "remark-lint-link-title-style"; +import remarkLintMaximumLineLength from "remark-lint-maximum-line-length"; +import remarkLintNoFileNameOuterDashes from "remark-lint-no-file-name-outer-dashes"; +import remarkLintNoHeadingPunctuation from "remark-lint-no-heading-punctuation"; +import remarkLintNoMultipleToplevelHeadings from "remark-lint-no-multiple-toplevel-headings"; +import remarkLintNoShellDollars from "remark-lint-no-shell-dollars"; +import jsxContentSpacing from "./remark-jsx-spacing.js"; +import { sortSidebarItems } from "./sitebar-semver-sort.js"; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const lightCodeTheme = themes.github; const darkCodeTheme = themes.dracula; -const DEFAULT_LOCALE = 'en'; +const DEFAULT_LOCALE = "en"; const config: Config = { title: "Unraid Docs", @@ -69,17 +69,17 @@ const config: Config = { { docs: { routeBasePath: "/", - sidebarPath: './sidebars.js', + sidebarPath: "./sidebars.js", // Please change this to your repo. // Remove this to remove the "edit this page" links. - editUrl: ({locale, versionDocsDirPath, docPath}) => { + editUrl: ({ locale, versionDocsDirPath, docPath }) => { // Link to Crowdin for non-English docs if (locale !== DEFAULT_LOCALE) { return `https://translate.unraid.net/unraid-docs/${locale}`; } // Link to GitHub for English docs // Use PR branch if available, otherwise default to main - const branch = process.env.GITHUB_BRANCH || 'main'; + const branch = process.env.GITHUB_BRANCH || "main"; return `https://github.com/unraid/docs/edit/${branch}/${versionDocsDirPath}/${docPath}`; }, editLocalizedFiles: true, @@ -88,10 +88,9 @@ const config: Config = { ...args }) { const sidebarItems = await defaultSidebarItemsGenerator(args); - // @ts-ignore return sortSidebarItems(sidebarItems); }, - exclude: ['**/partials/**'], + exclude: ["**/partials/**"], // Remark plugins for processing MDX remarkPlugins: [ [remarkAutoGlossary, { yamlFile: "glossary.yaml" }], @@ -101,16 +100,16 @@ const config: Config = { remarkPresetLintRecommended, // List formatting - [remarkLintListItemIndent, 'space'], - [remarkLintOrderedListMarkerStyle, '.'], + [remarkLintListItemIndent, "space"], + [remarkLintOrderedListMarkerStyle, "."], // Code formatting - [remarkLintFencedCodeMarker, '`'], - [remarkLintCodeBlockStyle, 'fenced'], + [remarkLintFencedCodeMarker, "`"], + [remarkLintCodeBlockStyle, "fenced"], [remarkLintNoShellDollars, false], // Heading formatting - [remarkLintHeadingStyle, 'atx'], + [remarkLintHeadingStyle, "atx"], [remarkLintNoHeadingPunctuation, false], remarkLintNoMultipleToplevelHeadings, @@ -123,7 +122,7 @@ const config: Config = { // General formatting [remarkLintMaximumLineLength, false], - remarkLintNoFileNameOuterDashes + remarkLintNoFileNameOuterDashes, ], }, /* blog: { @@ -133,7 +132,7 @@ const config: Config = { editUrl: "https://github.com/unraid/docs/tree/main/", }, */ - theme: { customCss: './src/css/custom.css' }, + theme: { customCss: "./src/css/custom.css" }, gtag: { trackingID: "G-CZENQ1ZPEH", anonymizeIP: true }, } satisfies Preset.Options, ], @@ -188,7 +187,7 @@ const config: Config = { { type: "localeDropdown", position: "right" }, ], }, - tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 4 }, + tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 3 }, footer: { style: "light", links: [ @@ -221,10 +220,11 @@ const config: Config = { { title: "License", items: [ - { - label: "CC BY-SA 4.0", + { + label: "CC BY-SA 4.0", href: "https://creativecommons.org/licenses/by-sa/4.0/", - description: "This documentation is available under the Creative Commons Attribution-ShareAlike 4.0 International License. Feel free to share, copy, and use our docs however you need. You can even modify and build upon them for your own projects. Just make sure to give us credit and share any improvements you make under the same license. Note: This license applies only to the documentation content, not to Unraid software or trademarks." + description: + "This documentation is available under the Creative Commons Attribution-ShareAlike 4.0 International License. Feel free to share, copy, and use our docs however you need. You can even modify and build upon them for your own projects. Just make sure to give us credit and share any improvements you make under the same license. Note: This license applies only to the documentation content, not to Unraid software or trademarks.", }, ], }, @@ -254,7 +254,7 @@ const config: Config = { } satisfies Preset.ThemeConfig, plugins: [ - 'docusaurus-plugin-image-zoom', + "docusaurus-plugin-image-zoom", [ "@docusaurus/plugin-ideal-image", { @@ -269,213 +269,699 @@ const config: Config = { "@docusaurus/plugin-client-redirects", { redirects: [ - // Account redirects - { from: "/account/", to: "/unraid-connect/overview-and-setup/" }, - { from: "/account/link-key/", to: "/unraid-connect/overview-and-setup/" }, + // Account redirects + { from: "/account/", to: "/unraid-connect/overview-and-setup/" }, + { + from: "/account/link-key/", + to: "/unraid-connect/overview-and-setup/", + }, - // Category redirects - { from: "/category/faq/", to: "/unraid-os/troubleshooting/faq/" }, - { from: "/category/getting-started/", to: "/unraid-os/getting-started/what-is-unraid/" }, - { from: "/category/guides/", to: "/category/using-unraid-to/" }, - { from: "/category/legacy-documentation/", to: "/" }, - { from: "/category/manual/", to: "/category/unraid-os/" }, - { from: "/category/zfs/", to: "/unraid-os/advanced-configurations/optimize-storage/zfs-storage/" }, + // Category redirects + { from: "/category/faq/", to: "/unraid-os/troubleshooting/faq/" }, + { + from: "/category/getting-started/", + to: "/unraid-os/getting-started/what-is-unraid/", + }, + { from: "/category/guides/", to: "/category/using-unraid-to/" }, + { from: "/category/legacy-documentation/", to: "/" }, + { from: "/category/manual/", to: "/category/unraid-os/" }, + { + from: "/category/zfs/", + to: "/unraid-os/advanced-configurations/optimize-storage/zfs-storage/", + }, - // Connect redirects - { from: "/connect/", to: "/unraid-connect/overview-and-setup/" }, - { from: "/connect/flash-backup/", to: "/unraid-connect/automated-flash-backup/" }, - { from: "/connect/help/", to: "/unraid-connect/overview-and-setup/" }, - { from: "/connect/privacy/", to: "/unraid-connect/overview-and-setup/" }, - { from: "/connect/remote-access/", to: "/unraid-connect/remote-access/" }, + // Connect redirects + { from: "/connect/", to: "/unraid-connect/overview-and-setup/" }, + { + from: "/connect/flash-backup/", + to: "/unraid-connect/automated-flash-backup/", + }, + { from: "/connect/help/", to: "/unraid-connect/overview-and-setup/" }, + { + from: "/connect/privacy/", + to: "/unraid-connect/overview-and-setup/", + }, + { + from: "/connect/remote-access/", + to: "/unraid-connect/remote-access/", + }, - // Legacy redirects - { from: "/legacy/Articles/dual-boot-unraid-and-windows/", to: "/" }, - { from: "/legacy/Articles/expanding-windows-vm-vdisk-partitions/", to: "/" }, - { from: "/legacy/Articles/upgrading-to-unraid-6/", to: "/" }, - { from: "/legacy/FAQ/cache-disk/", to: "/unraid-os/using-unraid-to/manage-storage/cache-pools/" }, - { from: "/legacy/FAQ/check-disk-filesystems/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/#checking-array-devices" }, - { from: "/legacy/FAQ/check-harddrive-speed/", to: "/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health/" }, - { from: "/legacy/FAQ/console/", to: "/unraid-os/system-administration/advanced-tools/command-line-interface/" }, - { from: "/legacy/FAQ/Parity/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/" }, - { from: "/legacy/FAQ/parity-swap-procedure/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/" }, - { from: "/legacy/FAQ/replacing-a-data-drive/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/" }, - { from: "/legacy/FAQ/replacing-multiple-data-drives/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/" }, - { from: "/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/", to: "/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health/" }, - { from: "/legacy/FAQ/setup-sleep-and-wake-on-lan/", to: "/unraid-os/system-administration/advanced-tools/wake-on-lan/" }, - { from: "/legacy/FAQ/shrink-array/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/" }, - { from: "/legacy/FAQ/terminal-access/", to: "/unraid-os/system-administration/advanced-tools/command-line-interface/" }, - { from: "/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, - { from: "/legacy/FAQ/transferring-files-within-the-unraid-server/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, - { from: "/legacy/FAQ/understanding-smart-reports/", to: "/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health/" }, - { from: "/legacy/FAQ/usb-flash-drive-preparation/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, + // Legacy redirects + { from: "/legacy/Articles/dual-boot-unraid-and-windows/", to: "/" }, + { + from: "/legacy/Articles/expanding-windows-vm-vdisk-partitions/", + to: "/", + }, + { from: "/legacy/Articles/upgrading-to-unraid-6/", to: "/" }, + { + from: "/legacy/FAQ/cache-disk/", + to: "/unraid-os/using-unraid-to/manage-storage/cache-pools/", + }, + { + from: "/legacy/FAQ/check-disk-filesystems/", + to: "/unraid-os/using-unraid-to/manage-storage/array/array-health-and-maintenance/#checking-array-devices", + }, + { + from: "/legacy/FAQ/check-harddrive-speed/", + to: "/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health/", + }, + { + from: "/legacy/FAQ/console/", + to: "/unraid-os/system-administration/advanced-tools/command-line-interface/", + }, + { + from: "/legacy/FAQ/Parity/", + to: "/unraid-os/using-unraid-to/manage-storage/array/", + }, + { + from: "/legacy/FAQ/parity-swap-procedure/", + to: "/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array/", + }, + { + from: "/legacy/FAQ/replacing-a-data-drive/", + to: "/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array/", + }, + { + from: "/legacy/FAQ/replacing-multiple-data-drives/", + to: "/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array/", + }, + { + from: "/legacy/FAQ/setting-up-cpu-and-board-temperature-sensing/", + to: "/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health/", + }, + { + from: "/legacy/FAQ/setup-sleep-and-wake-on-lan/", + to: "/unraid-os/system-administration/advanced-tools/wake-on-lan/", + }, + { + from: "/legacy/FAQ/shrink-array/", + to: "/unraid-os/using-unraid-to/manage-storage/array/removing-disks-from-array/", + }, + { + from: "/legacy/FAQ/terminal-access/", + to: "/unraid-os/system-administration/advanced-tools/command-line-interface/", + }, + { + from: "/legacy/FAQ/transferring-files-from-a-network-share-to-unraid/", + to: "/unraid-os/using-unraid-to/manage-storage/shares/", + }, + { + from: "/legacy/FAQ/transferring-files-within-the-unraid-server/", + to: "/unraid-os/using-unraid-to/manage-storage/shares/", + }, + { + from: "/legacy/FAQ/understanding-smart-reports/", + to: "/unraid-os/system-administration/monitor-performance/smart-reports-and-disk-health/", + }, + { + from: "/legacy/FAQ/usb-flash-drive-preparation/", + to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/", + }, - // Unraid OS redirects - { from: "/unraid-os/faq/installation/", to: "/category/set-up-unraid/" }, - { from: "/unraid-os/faq/licensing-faq/", to: "/unraid-os/troubleshooting/licensing-faq/" }, - { from: "/unraid-os/faq/os-faq/", to: "/unraid-os/troubleshooting/faq/" }, - { from: "/unraid-os/faq/redeem-license-activation-code/", to: "/unraid-os/troubleshooting/licensing-faq/#redeem-activation-code" }, - { from: "/unraid-os/faq/unraid-account/", to: "/unraid-connect/overview-and-setup/" }, + // Unraid OS redirects + { + from: "/unraid-os/faq/installation/", + to: "/category/set-up-unraid/", + }, + { + from: "/unraid-os/faq/licensing-faq/", + to: "/unraid-os/troubleshooting/licensing-faq/", + }, + { + from: "/unraid-os/faq/os-faq/", + to: "/unraid-os/troubleshooting/faq/", + }, + { + from: "/unraid-os/faq/redeem-license-activation-code/", + to: "/unraid-os/troubleshooting/licensing-faq/#redeem-activation-code", + }, + { + from: "/unraid-os/faq/unraid-account/", + to: "/unraid-connect/overview-and-setup/", + }, - { from: "/unraid-os/getting-started/", to: "/unraid-os/getting-started/what-is-unraid/" }, - { from: "/unraid-os/getting-started/advanced-bios-config/", to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#bios-recommendations" }, - { from: "/unraid-os/getting-started/considerations/", to: "/unraid-os/getting-started/what-is-unraid/" }, - { from: "/unraid-os/getting-started/manual-install-method/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, - { from: "/unraid-os/getting-started/quick-install-guide/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, - - { from: "/unraid-os/manual/getting-started/advanced-bios-config/", to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#bios-recommendations" }, - { from: "/unraid-os/manual/getting-started/", to: "/unraid-os/getting-started/what-is-unraid/" }, - { from: "/unraid-os/manual/getting-started/manualinstall-method/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, - { from: "/unraid-os/manual/troubleshooting/", to: "/unraid-os/troubleshooting/" }, - { from: "/unraid-os/manual/users/resetpassword/", to: "/unraid-os/system-administration/secure-your-server/user-management/" }, - { from: "/unraid-os/manual/vm-management/", to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-setup/" }, - { from: "/unraid-os/manual/what-is-unraid/", to: "/unraid-os/getting-started/what-is-unraid/" }, + { + from: "/unraid-os/getting-started/", + to: "/unraid-os/getting-started/what-is-unraid/", + }, + { + from: "/unraid-os/getting-started/advanced-bios-config/", + to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#bios-recommendations", + }, + { + from: "/unraid-os/getting-started/considerations/", + to: "/unraid-os/getting-started/what-is-unraid/", + }, + { + from: "/unraid-os/getting-started/manual-install-method/", + to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/", + }, + { + from: "/unraid-os/getting-started/quick-install-guide/", + to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/", + }, - // Guides redirects - { from: "/unraid-os/guides/configuring-time-machine/", to: "/unraid-os/using-unraid-to/manage-storage/apple-time-machine/" }, - { from: "/unraid-os/guides/convert-windows-to-vm/", to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration/" }, - { from: "/unraid-os/guides/physical-to-virtual/", to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration/" }, - { from: "/unraid-os/guides/wol-setup-for-unraid/", to: "/unraid-os/system-administration/advanced-tools/wake-on-lan/" }, - { from: "/unraid-os/guides/xen-to-kvm/", to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration/" }, + { + from: "/unraid-os/manual/getting-started/advanced-bios-config/", + to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#bios-recommendations", + }, + { + from: "/unraid-os/manual/getting-started/", + to: "/unraid-os/getting-started/what-is-unraid/", + }, + { + from: "/unraid-os/manual/getting-started/manualinstall-method/", + to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/", + }, + { + from: "/unraid-os/manual/troubleshooting/", + to: "/unraid-os/troubleshooting/", + }, + { + from: "/unraid-os/manual/users/resetpassword/", + to: "/unraid-os/system-administration/secure-your-server/user-management/", + }, + { + from: "/unraid-os/manual/vm-management/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-setup/", + }, + { + from: "/unraid-os/manual/what-is-unraid/", + to: "/unraid-os/getting-started/what-is-unraid/", + }, - // Manual redirects - { from: "/unraid-os/manual/additional-settings/", to: "/unraid-os/getting-started/set-up-unraid/customize-unraid-settings/" }, - { from: "/unraid-os/manual/applications/", to: "/unraid-os/using-unraid-to/run-docker-containers/community-applications/" }, - { from: "/unraid-os/manual/changing-the-flash-device/", to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/" }, - { from: "/unraid-os/manual/docker-management/", to: "/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers/" }, - { from: "/unraid-os/manual/multi-language/", to: "/unraid-os/using-unraid-to/customize-your-experience/multi-language-support/" }, - { from: "/unraid-os/manual/security/", to: "/unraid-os/system-administration/secure-your-server/security-fundamentals/" }, - { from: "/unraid-os/manual/security/data-encryption/", to: "/unraid-os/system-administration/secure-your-server/securing-your-data/" }, - { from: "/unraid-os/manual/security/flash-drive/", to: "/unraid-os/system-administration/secure-your-server/secure-your-flash-drive/" }, - { from: "/unraid-os/manual/security/good-practices/", to: "/unraid-os/system-administration/secure-your-server/security-fundamentals/" }, - { from: "/unraid-os/manual/security/outgoing-proxy-manager/", to: "/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms/" }, - { from: "/unraid-os/manual/security/secure-webgui-ssl/", to: "/unraid-os/system-administration/secure-your-server/securing-your-connection/" }, - { from: "/unraid-os/manual/security/tailscale/", to: "/unraid-os/system-administration/secure-your-server/tailscale/" }, - { from: "/unraid-os/manual/security/vpn/", to: "/unraid-os/system-administration/secure-your-server/wireguard/" }, - { from: "/unraid-os/manual/shares/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, - { from: "/unraid-os/manual/shares/create-a-share/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, - { from: "/unraid-os/manual/shares/delete-a-share/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, - { from: "/unraid-os/manual/shares/disk-shares/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, - { from: "/unraid-os/manual/shares/network-access/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, - { from: "/unraid-os/manual/shares/user-shares/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, - { from: "/unraid-os/manual/storage-management/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/" }, - { from: "/unraid-os/manual/tools/", to: "/category/advanced-tools/" }, - { from: "/unraid-os/manual/upgrade-instructions/", to: "/unraid-os/system-administration/maintain-and-update/upgrading-unraid/" }, - { from: "/unraid-os/manual/users/", to: "/unraid-os/system-administration/secure-your-server/user-management/" }, - { from: "/unraid-os/manual/users/create-user/", to: "/unraid-os/system-administration/secure-your-server/user-management/" }, - { from: "/unraid-os/manual/users/manage-user/", to: "/unraid-os/system-administration/secure-your-server/user-management/" }, - { from: "/unraid-os/manual/users/reset-password/", to: "/unraid-os/system-administration/secure-your-server/user-management/" }, - { from: "/unraid-os/manual/vm/vm-management/", to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-setup/" }, - { from: "/unraid-os/manual/vm/vm-support/", to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/" }, - { from: "/unraid-os/manual/zfs/placeholder/", to: "/unraid-os/advanced-configurations/optimize-storage/zfs-storage/" }, + // Guides redirects + { + from: "/unraid-os/guides/configuring-time-machine/", + to: "/unraid-os/using-unraid-to/manage-storage/apple-time-machine/", + }, + { + from: "/unraid-os/guides/convert-windows-to-vm/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration/", + }, + { + from: "/unraid-os/guides/physical-to-virtual/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration/", + }, + { + from: "/unraid-os/guides/wol-setup-for-unraid/", + to: "/unraid-os/system-administration/advanced-tools/wake-on-lan/", + }, + { + from: "/unraid-os/guides/xen-to-kvm/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-conversion-and-migration/", + }, - // Overview redirects - { from: "/unraid-os/overview/application-server/", to: "/category/run-docker-containers/" }, - { from: "/unraid-os/overview/nas/", to: "/category/manage-storage/" }, - { from: "/unraid-os/overview/ui-reference/", to: "/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui/" }, - { from: "/unraid-os/overview/unraid-management/", to: "/category/explore-the-user-interface/" }, - { from: "/unraid-os/overview/virtualization-host/", to: "/category/create-virtual-machines/" }, - { from: "/unraid-os/overview/what-is-unraid/", to: "/unraid-os/getting-started/what-is-unraid/" }, + // Manual redirects + { + from: "/unraid-os/manual/additional-settings/", + to: "/unraid-os/getting-started/set-up-unraid/customize-unraid-settings/", + }, + { + from: "/unraid-os/manual/applications/", + to: "/unraid-os/using-unraid-to/run-docker-containers/community-applications/", + }, + { + from: "/unraid-os/manual/changing-the-flash-device/", + to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/", + }, + { + from: "/unraid-os/manual/docker-management/", + to: "/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers/", + }, + { + from: "/unraid-os/manual/multi-language/", + to: "/unraid-os/using-unraid-to/customize-your-experience/multi-language-support/", + }, + { + from: "/unraid-os/manual/security/", + to: "/unraid-os/system-administration/secure-your-server/security-fundamentals/", + }, + { + from: "/unraid-os/manual/security/data-encryption/", + to: "/unraid-os/system-administration/secure-your-server/securing-your-data/", + }, + { + from: "/unraid-os/manual/security/flash-drive/", + to: "/unraid-os/system-administration/secure-your-server/secure-your-flash-drive/", + }, + { + from: "/unraid-os/manual/security/good-practices/", + to: "/unraid-os/system-administration/secure-your-server/security-fundamentals/", + }, + { + from: "/unraid-os/manual/security/outgoing-proxy-manager/", + to: "/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms/", + }, + { + from: "/unraid-os/manual/security/secure-webgui-ssl/", + to: "/unraid-os/system-administration/secure-your-server/securing-your-connection/", + }, + { + from: "/unraid-os/manual/security/tailscale/", + to: "/unraid-os/system-administration/secure-your-server/tailscale/", + }, + { + from: "/unraid-os/manual/security/vpn/", + to: "/unraid-os/system-administration/secure-your-server/wireguard/", + }, + { + from: "/unraid-os/manual/shares/", + to: "/unraid-os/using-unraid-to/manage-storage/shares/", + }, + { + from: "/unraid-os/manual/shares/create-a-share/", + to: "/unraid-os/using-unraid-to/manage-storage/shares/", + }, + { + from: "/unraid-os/manual/shares/delete-a-share/", + to: "/unraid-os/using-unraid-to/manage-storage/shares/", + }, + { + from: "/unraid-os/manual/shares/disk-shares/", + to: "/unraid-os/using-unraid-to/manage-storage/shares/", + }, + { + from: "/unraid-os/manual/shares/network-access/", + to: "/unraid-os/using-unraid-to/manage-storage/shares/", + }, + { + from: "/unraid-os/manual/shares/user-shares/", + to: "/unraid-os/using-unraid-to/manage-storage/shares/", + }, + { + from: "/unraid-os/manual/storage-management/", + to: "/unraid-os/using-unraid-to/manage-storage/array/", + }, + { from: "/unraid-os/manual/tools/", to: "/category/advanced-tools/" }, + { + from: "/unraid-os/manual/upgrade-instructions/", + to: "/unraid-os/system-administration/maintain-and-update/upgrading-unraid/", + }, + { + from: "/unraid-os/manual/users/", + to: "/unraid-os/system-administration/secure-your-server/user-management/", + }, + { + from: "/unraid-os/manual/users/create-user/", + to: "/unraid-os/system-administration/secure-your-server/user-management/", + }, + { + from: "/unraid-os/manual/users/manage-user/", + to: "/unraid-os/system-administration/secure-your-server/user-management/", + }, + { + from: "/unraid-os/manual/users/reset-password/", + to: "/unraid-os/system-administration/secure-your-server/user-management/", + }, + { + from: "/unraid-os/manual/vm/vm-management/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-setup/", + }, + { + from: "/unraid-os/manual/vm/vm-support/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/", + }, + { + from: "/unraid-os/manual/zfs/placeholder/", + to: "/unraid-os/advanced-configurations/optimize-storage/zfs-storage/", + }, - // Troubleshooting redirects - { from: "/unraid-os/troubleshooting/boot-issues/", to: "/unraid-os/troubleshooting/common-issues/boot-and-startup-failures/" }, - { from: "/unraid-os/troubleshooting/cache-issues/", to: "/unraid-os/using-unraid-to/manage-storage/cache-pools/" }, - { from: "/unraid-os/troubleshooting/crc-errors/", to: "/unraid-os/troubleshooting/diagnostics/udma-crc-errors/" }, - { from: "/unraid-os/troubleshooting/data-recovery/", to: "/unraid-os/troubleshooting/common-issues/data-recovery/" }, - { from: "/unraid-os/troubleshooting/diagnostics-information/", to: "/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs/" }, - { from: "/unraid-os/troubleshooting/docker/", to: "/unraid-os/troubleshooting/common-issues/docker-troubleshooting/" }, - { from: "/unraid-os/troubleshooting/system-crash/", to: "/unraid-os/troubleshooting/common-issues/system-crashes-and-stability/" }, - { from: "/unraid-os/troubleshooting/unclean-shutdowns/", to: "/unraid-os/troubleshooting/common-issues/unclean-shutdowns/" }, - { from: "/unraid-os/troubleshooting/windows-connection/", to: "/category/common-issues/" }, + // Overview redirects + { + from: "/unraid-os/overview/application-server/", + to: "/category/run-docker-containers/", + }, + { from: "/unraid-os/overview/nas/", to: "/category/manage-storage/" }, + { + from: "/unraid-os/overview/ui-reference/", + to: "/unraid-os/getting-started/explore-the-user-interface/tour-the-web-gui/", + }, + { + from: "/unraid-os/overview/unraid-management/", + to: "/category/explore-the-user-interface/", + }, + { + from: "/unraid-os/overview/virtualization-host/", + to: "/category/create-virtual-machines/", + }, + { + from: "/unraid-os/overview/what-is-unraid/", + to: "/unraid-os/getting-started/what-is-unraid/", + }, - // Additional missing redirects - { from: "/connect/about/", to: "/unraid-connect/overview-and-setup/" }, - { from: "/legacy/FAQ/Shrink_array/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/" }, - { from: "/unraid-os/release-notes/6.12.7/", to: "/unraid-os/release-notes/6.12.8/" }, - { from: "/contribute-to-docs/", to: "/category/contribute/" }, - { from: "/contribute-to-docs/how-to-contribute/", to: "/category/contribute/" }, - { from: "/contribute-to-docs/intro/", to: "/category/contribute/" }, - { from: "/contribute-to-docs/unraid-styleguide/", to: "/category/contribute/" }, - { from: "/contribute-to-docs/unraid-styleguide/golden-rules/", to: "/category/contribute/" }, - { from: "/contribute-to-docs/unraid-styleguide/conventions/", to: "/category/contribute/" }, - - // Go links redirects - { from: "/go/account/", to: "/unraid-connect/overview-and-setup/" }, - { from: "/go/adding-array-disks/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/#adding-disks" }, - { from: "/go/adding-pools/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/#cache-pools" }, - { from: "/go/advanced-bios-config/", to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#bios-recommendations" }, - { from: "/go/applications/", to: "/unraid-os/using-unraid-to/run-docker-containers/community-applications/" }, - { from: "/go/backing-up-your-flash-drive/", to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/#backing-up-your-flash-device" }, - { from: "/go/blacklisted-usb-flash-device/", to: "/" }, - { from: "/go/changing-the-flash-device/", to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/" }, - { from: "/go/check-filesystem/", to: "/unraid-os/using-unraid-to/manage-storage/file-systems/#checking-a-file-system" }, - { from: "/go/convert-reiser-and-xfs/", to: "/unraid-os/using-unraid-to/manage-storage/file-systems/#converting-to-a-new-file-system-type" }, - { from: "/go/configuring-vpn-tunneled-access-for-system/", to: "/unraid-os/system-administration/secure-your-server/wireguard/#configuring-vpn-tunneled-access-for-system" }, - { from: "/go/connect-about/", to: "/unraid-connect/overview-and-setup/" }, - { from: "/go/connect-customizable-dashboard/", to: "/unraid-connect/overview-and-setup/#customization" }, - { from: "/go/connect-dashboard/", to: "/unraid-connect/overview-and-setup/#dashboard" }, - { from: "/go/connect-deep-linking/", to: "/unraid-connect/overview-and-setup/#deep-linking" }, - { from: "/go/connect-dynamic-remote-access/", to: "/unraid-connect/remote-access/#dynamic-remote-access-setup" }, - { from: "/go/connect-flash-backup/", to: "/unraid-connect/automated-flash-backup/" }, - { from: "/go/connect-help/", to: "/unraid-connect/overview-and-setup/" }, - { from: "/go/connect-languagelocalization/", to: "/unraid-connect/overview-and-setup/#language-localization" }, - { from: "/go/connect-license-management/", to: "/unraid-connect/overview-and-setup/#license-management" }, - { from: "/go/connect-manage-server-from-connect/", to: "/unraid-connect/overview-and-setup/#manage-your-server-from-within-the-connect-ui" }, - { from: "/go/connect-privacy/", to: "/unraid-connect/automated-flash-backup/#privacy-and-security" }, - { from: "/go/connect-remote-access/", to: "/unraid-connect/remote-access/" }, - { from: "/go/connect/", to: "/unraid-connect/overview-and-setup/" }, - { from: "/go/determining-hvmiommu-hardware-support/", to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/#hvm--iommu-what-they-enable" }, - { from: "/go/data-encryption/", to: "/unraid-os/system-administration/secure-your-server/securing-your-data/" }, - { from: "/go/diagnostics/", to: "/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs/" }, - { from: "/go/disk-shares/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, - { from: "/go/docker-management/", to: "/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers/" }, - { from: "/go/download-list/", to: "/unraid-os/download_list/" }, - { from: "/go/expanding-windows-vm-vdisk-partitions/", to: "/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm/#expanding-windows-vm-vdisk-partitions" }, - { from: "/go/faq-licensing-pre-release/", to: "/unraid-os/troubleshooting/licensing-faq/#pre-release-policy" }, - { from: "/go/faq-licensing-redeem-activation-code/", to: "/unraid-os/troubleshooting/licensing-faq/#redeem-activation-code" }, - { from: "/go/faq-licensing-upgrade/", to: "/unraid-os/troubleshooting/licensing-faq/#how-do-i-upgrade-my-unraid-license" }, - { from: "/go/faq-licensing/", to: "/unraid-os/troubleshooting/licensing-faq/" }, - { from: "/go/faq/", to: "/unraid-os/troubleshooting/faq/" }, - { from: "/go/getting-started/", to: "/unraid-os/getting-started/what-is-unraid/" }, - { from: "/go/hardware-requirements/", to: "/" }, - { from: "/go/lost-root-password/", to: "/unraid-os/system-administration/secure-your-server/user-management/" }, - { from: "/go/managing-api-keys/", to: "/API/how-to-use-the-api/#managing-api-keys" }, - { from: "/go/manual-install-method/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, - { from: "/go/manual/", to: "/category/unraid-os/" }, - { from: "/go/microsoft-windows-as-a-vm/", to: "/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm/" }, - { from: "/go/multi-language/", to: "/unraid-os/using-unraid-to/customize-your-experience/multi-language-support/" }, - { from: "/go/multiple-pools/", to: "/unraid-os/using-unraid-to/manage-storage/cache-pools/" }, - { from: "/go/outgoing-proxy-manager/", to: "/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms/" }, - { from: "/go/parity-swap/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/#parity-swap" }, - { from: "/go/parity/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/" }, - { from: "/go/quick-install-guide-assigning-devices/", to: "/unraid-os/getting-started/set-up-unraid/configure-your-array/#assign-parity-and-data-disks" }, - { from: "/go/quick-install-guide-connecting-to-webgui/", to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#connect-to-the-unraid-webgui" }, - { from: "/go/quick-install-guide-set-root-password/", to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#set-a-root-password" }, - { from: "/go/quick-install-guide-setting-up/", to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/" }, - { from: "/go/quick-install-guide/", to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/" }, - { from: "/go/recommendations-on-buying-usb-drives/", to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/#selecting-a-replacement-device" }, - { from: "/go/release-notes/", to: "/category/release-notes/" }, - { from: "/go/release-notes/6.12.12/", to: "/unraid-os/release-notes/6.12.12/" }, - { from: "/go/release-notes/6.12.13/", to: "/unraid-os/release-notes/6.12.13/" }, - { from: "/go/shares/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, - { from: "/go/shrink-array/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/" }, - { from: "/go/split-level/", to: "/unraid-os/using-unraid-to/manage-storage/shares/#split-level" }, - { from: "/go/storage-management/", to: "/unraid-os/using-unraid-to/manage-storage/array-configuration/" }, - { from: "/go/syslog-server/", to: "/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs/#persistent-logs-syslog-server" }, - { from: "/go/tailscale-docker/", to: "/unraid-os/system-administration/secure-your-server/tailscale/#adding-tailscale-to-docker-containers" }, - { from: "/go/tailscale/", to: "/unraid-os/system-administration/secure-your-server/tailscale/" }, - { from: "/go/troubleshooting/", to: "/unraid-os/troubleshooting/" }, - { from: "/go/upgrade-instructions/", to: "/unraid-os/system-administration/maintain-and-update/upgrading-unraid/" }, - { from: "/go/upgrading-a-vm-to-windows-11/", to: "/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm/#upgrading-to-windows-11" }, - { from: "/go/user-shares/", to: "/unraid-os/using-unraid-to/manage-storage/shares/" }, - { from: "/go/vm-adjust-bios-settings/", to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/#adjust-bios-settings" }, - { from: "/go/vm-expanding-a-vdisk/", to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-setup/#expand-a-vdisk" }, - { from: "/go/vm-management/", to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-setup/" }, - { from: "/go/vm-support/", to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/" }, - { from: "/go/vm-system-preparation/", to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/#system-preparation" }, - { from: "/go/vpn/", to: "/unraid-os/system-administration/secure-your-server/wireguard/" }, - { from: "/go/ups-settings/", to: "/unraid-os/getting-started/set-up-unraid/customize-unraid-settings/#ups-settings" }, - { from: "/go/webgui-ssl/", to: "/unraid-os/system-administration/secure-your-server/securing-your-connection/" }, - { from: "/go/what-kind-of-usb-device-do-i-need/", to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/#selecting-a-replacement-device" }, + // Troubleshooting redirects + { + from: "/unraid-os/troubleshooting/boot-issues/", + to: "/unraid-os/troubleshooting/common-issues/boot-and-startup-failures/", + }, + { + from: "/unraid-os/troubleshooting/cache-issues/", + to: "/unraid-os/using-unraid-to/manage-storage/cache-pools/", + }, + { + from: "/unraid-os/troubleshooting/crc-errors/", + to: "/unraid-os/troubleshooting/diagnostics/udma-crc-errors/", + }, + { + from: "/unraid-os/troubleshooting/data-recovery/", + to: "/unraid-os/troubleshooting/common-issues/data-recovery/", + }, + { + from: "/unraid-os/troubleshooting/diagnostics-information/", + to: "/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs/", + }, + { + from: "/unraid-os/troubleshooting/docker/", + to: "/unraid-os/troubleshooting/common-issues/docker-troubleshooting/", + }, + { + from: "/unraid-os/troubleshooting/system-crash/", + to: "/unraid-os/troubleshooting/common-issues/system-crashes-and-stability/", + }, + { + from: "/unraid-os/troubleshooting/unclean-shutdowns/", + to: "/unraid-os/troubleshooting/common-issues/unclean-shutdowns/", + }, + { + from: "/unraid-os/troubleshooting/windows-connection/", + to: "/category/common-issues/", + }, + + // Additional missing redirects + { + from: "/connect/about/", + to: "/unraid-connect/overview-and-setup/", + }, + { + from: "/legacy/FAQ/Shrink_array/", + to: "/unraid-os/using-unraid-to/manage-storage/array/removing-disks-from-array/", + }, + { + from: "/unraid-os/release-notes/6.12.7/", + to: "/unraid-os/release-notes/6.12.8/", + }, + { from: "/contribute-to-docs/", to: "/category/contribute/" }, + { + from: "/contribute-to-docs/how-to-contribute/", + to: "/category/contribute/", + }, + { from: "/contribute-to-docs/intro/", to: "/category/contribute/" }, + { + from: "/contribute-to-docs/unraid-styleguide/", + to: "/category/contribute/", + }, + { + from: "/contribute-to-docs/unraid-styleguide/golden-rules/", + to: "/category/contribute/", + }, + { + from: "/contribute-to-docs/unraid-styleguide/conventions/", + to: "/category/contribute/", + }, + + // Go links redirects + { from: "/go/account/", to: "/unraid-connect/overview-and-setup/" }, + { + from: "/go/adding-array-disks/", + to: "/unraid-os/using-unraid-to/manage-storage/array/adding-disks-to-array/", + }, + { + from: "/go/adding-pools/", + to: "/unraid-os/using-unraid-to/manage-storage/cache-pools/", + }, + { + from: "/go/advanced-bios-config/", + to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#bios-recommendations", + }, + { + from: "/go/applications/", + to: "/unraid-os/using-unraid-to/run-docker-containers/community-applications/", + }, + { + from: "/go/backing-up-your-flash-drive/", + to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/#backing-up-your-flash-device", + }, + { from: "/go/blacklisted-usb-flash-device/", to: "/" }, + { + from: "/go/changing-the-flash-device/", + to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/", + }, + { + from: "/go/check-filesystem/", + to: "/unraid-os/using-unraid-to/manage-storage/file-systems/#checking-a-file-system", + }, + { + from: "/go/convert-reiser-and-xfs/", + to: "/unraid-os/using-unraid-to/manage-storage/file-systems/#converting-to-a-new-file-system-type", + }, + { + from: "/go/configuring-vpn-tunneled-access-for-system/", + to: "/unraid-os/system-administration/secure-your-server/wireguard/#configuring-vpn-tunneled-access-for-system", + }, + { + from: "/go/connect-about/", + to: "/unraid-connect/overview-and-setup/", + }, + { + from: "/go/connect-customizable-dashboard/", + to: "/unraid-connect/overview-and-setup/#customization", + }, + { + from: "/go/connect-dashboard/", + to: "/unraid-connect/overview-and-setup/#dashboard", + }, + { + from: "/go/connect-deep-linking/", + to: "/unraid-connect/overview-and-setup/#deep-linking", + }, + { + from: "/go/connect-dynamic-remote-access/", + to: "/unraid-connect/remote-access/#dynamic-remote-access-setup", + }, + { + from: "/go/connect-flash-backup/", + to: "/unraid-connect/automated-flash-backup/", + }, + { + from: "/go/connect-help/", + to: "/unraid-connect/overview-and-setup/", + }, + { + from: "/go/connect-languagelocalization/", + to: "/unraid-connect/overview-and-setup/#language-localization", + }, + { + from: "/go/connect-license-management/", + to: "/unraid-connect/overview-and-setup/#license-management", + }, + { + from: "/go/connect-manage-server-from-connect/", + to: "/unraid-connect/overview-and-setup/#manage-your-server-from-within-the-connect-ui", + }, + { + from: "/go/connect-privacy/", + to: "/unraid-connect/automated-flash-backup/#privacy-and-security", + }, + { + from: "/go/connect-remote-access/", + to: "/unraid-connect/remote-access/", + }, + { from: "/go/connect/", to: "/unraid-connect/overview-and-setup/" }, + { + from: "/go/determining-hvmiommu-hardware-support/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/#hvm--iommu-what-they-enable", + }, + { + from: "/go/data-encryption/", + to: "/unraid-os/system-administration/secure-your-server/securing-your-data/", + }, + { + from: "/go/diagnostics/", + to: "/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs/", + }, + { + from: "/go/disk-shares/", + to: "/unraid-os/using-unraid-to/manage-storage/shares/", + }, + { + from: "/go/docker-management/", + to: "/unraid-os/using-unraid-to/run-docker-containers/managing-and-customizing-containers/", + }, + { from: "/go/download-list/", to: "/unraid-os/download_list/" }, + { + from: "/go/expanding-windows-vm-vdisk-partitions/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm/#expanding-windows-vm-vdisk-partitions", + }, + { + from: "/go/faq-licensing-pre-release/", + to: "/unraid-os/troubleshooting/licensing-faq/#pre-release-policy", + }, + { + from: "/go/faq-licensing-redeem-activation-code/", + to: "/unraid-os/troubleshooting/licensing-faq/#redeem-activation-code", + }, + { + from: "/go/faq-licensing-upgrade/", + to: "/unraid-os/troubleshooting/licensing-faq/#how-do-i-upgrade-my-unraid-license", + }, + { + from: "/go/faq-licensing/", + to: "/unraid-os/troubleshooting/licensing-faq/", + }, + { from: "/go/faq/", to: "/unraid-os/troubleshooting/faq/" }, + { + from: "/go/getting-started/", + to: "/unraid-os/getting-started/what-is-unraid/", + }, + { from: "/go/hardware-requirements/", to: "/" }, + { + from: "/go/lost-root-password/", + to: "/unraid-os/system-administration/secure-your-server/user-management/", + }, + { + from: "/go/managing-api-keys/", + to: "/API/how-to-use-the-api/#managing-api-keys", + }, + { + from: "/go/manual-install-method/", + to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/", + }, + { from: "/go/manual/", to: "/category/unraid-os/" }, + { + from: "/go/microsoft-windows-as-a-vm/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm/", + }, + { + from: "/go/multi-language/", + to: "/unraid-os/using-unraid-to/customize-your-experience/multi-language-support/", + }, + { + from: "/go/multiple-pools/", + to: "/unraid-os/using-unraid-to/manage-storage/cache-pools/", + }, + { + from: "/go/outgoing-proxy-manager/", + to: "/unraid-os/system-administration/secure-your-server/secure-your-outgoing-comms/", + }, + { + from: "/go/parity-swap/", + to: "/unraid-os/using-unraid-to/manage-storage/array/replacing-disks-in-array/#parity-swap", + }, + { + from: "/go/parity/", + to: "/unraid-os/using-unraid-to/manage-storage/array/", + }, + { + from: "/go/quick-install-guide-assigning-devices/", + to: "/unraid-os/getting-started/set-up-unraid/configure-your-array/#assign-parity-and-data-disks", + }, + { + from: "/go/quick-install-guide-connecting-to-webgui/", + to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#connect-to-the-unraid-webgui", + }, + { + from: "/go/quick-install-guide-set-root-password/", + to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/#set-a-root-password", + }, + { + from: "/go/quick-install-guide-setting-up/", + to: "/unraid-os/getting-started/set-up-unraid/deploy-and-configure-unraid-os/", + }, + { + from: "/go/quick-install-guide/", + to: "/unraid-os/getting-started/set-up-unraid/create-your-bootable-media/", + }, + { + from: "/go/recommendations-on-buying-usb-drives/", + to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/#selecting-a-replacement-device", + }, + { from: "/go/release-notes/", to: "/category/release-notes/" }, + { + from: "/go/release-notes/6.12.12/", + to: "/unraid-os/release-notes/6.12.12/", + }, + { + from: "/go/release-notes/6.12.13/", + to: "/unraid-os/release-notes/6.12.13/", + }, + { + from: "/go/shares/", + to: "/unraid-os/using-unraid-to/manage-storage/shares/", + }, + { + from: "/go/shrink-array/", + to: "/unraid-os/using-unraid-to/manage-storage/array/removing-disks-from-array/", + }, + { + from: "/go/split-level/", + to: "/unraid-os/using-unraid-to/manage-storage/shares/#split-level", + }, + { + from: "/go/storage-management/", + to: "/unraid-os/using-unraid-to/manage-storage/array/", + }, + { + from: "/go/syslog-server/", + to: "/unraid-os/troubleshooting/diagnostics/capture-diagnostics-and-logs/#persistent-logs-syslog-server", + }, + { + from: "/go/tailscale-docker/", + to: "/unraid-os/system-administration/secure-your-server/tailscale/#adding-tailscale-to-docker-containers", + }, + { + from: "/go/tailscale/", + to: "/unraid-os/system-administration/secure-your-server/tailscale/", + }, + { from: "/go/troubleshooting/", to: "/unraid-os/troubleshooting/" }, + { + from: "/go/upgrade-instructions/", + to: "/unraid-os/system-administration/maintain-and-update/upgrading-unraid/", + }, + { + from: "/go/upgrading-a-vm-to-windows-11/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/windows-on-a-vm/#upgrading-to-windows-11", + }, + { + from: "/go/user-shares/", + to: "/unraid-os/using-unraid-to/manage-storage/shares/", + }, + { + from: "/go/vm-adjust-bios-settings/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/#adjust-bios-settings", + }, + { + from: "/go/vm-expanding-a-vdisk/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-setup/#expand-a-vdisk", + }, + { + from: "/go/vm-management/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/vm-setup/", + }, + { + from: "/go/vm-support/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/", + }, + { + from: "/go/vm-system-preparation/", + to: "/unraid-os/using-unraid-to/create-virtual-machines/overview-and-system-prep/#system-preparation", + }, + { + from: "/go/vpn/", + to: "/unraid-os/system-administration/secure-your-server/wireguard/", + }, + { + from: "/go/ups-settings/", + to: "/unraid-os/getting-started/set-up-unraid/customize-unraid-settings/#ups-settings", + }, + { + from: "/go/webgui-ssl/", + to: "/unraid-os/system-administration/secure-your-server/securing-your-connection/", + }, + { + from: "/go/what-kind-of-usb-device-do-i-need/", + to: "/unraid-os/system-administration/maintain-and-update/changing-the-flash-device/#selecting-a-replacement-device", + }, ], }, ], diff --git a/scripts/format-crowdin-spacing.js b/scripts/format-crowdin-spacing.js index 4c45c6cfbe..2067aac983 100755 --- a/scripts/format-crowdin-spacing.js +++ b/scripts/format-crowdin-spacing.js @@ -10,75 +10,83 @@ * npm run lint:fix && node scripts/format-crowdin-spacing.js */ -const fs = require('fs'); -const path = require('path'); -const glob = require('glob'); +const fs = require("fs"); +const path = require("path"); +const glob = require("glob"); // ANSI color codes for terminal output const colors = { - reset: '\x1b[0m', - bright: '\x1b[1m', - green: '\x1b[32m', - yellow: '\x1b[33m', - blue: '\x1b[36m', + reset: "\x1b[0m", + bright: "\x1b[1m", + green: "\x1b[32m", + yellow: "\x1b[33m", + blue: "\x1b[36m", }; -const canonicalAdmonitionTypes = new Set(['note', 'tip', 'info', 'warning', 'caution', 'danger', 'important']); +const canonicalAdmonitionTypes = new Set([ + "note", + "tip", + "info", + "warning", + "caution", + "danger", + "important", +]); // Build a dynamic regex group from canonical types so we don't miss any -const admonitionTypesGroup = Array.from(canonicalAdmonitionTypes).join('|'); -const TRANSLATION_ROOT = 'i18n'; +const admonitionTypesGroup = Array.from(canonicalAdmonitionTypes).join("|"); +const TRANSLATION_ROOT = "i18n"; function isTranslatedFile(filePath) { const relative = path.relative(TRANSLATION_ROOT, filePath); - return relative && !relative.startsWith('..') && !path.isAbsolute(relative); + return relative && !relative.startsWith("..") && !path.isAbsolute(relative); } const admonitionSynonyms = new Map([ - ['nota', 'note'], - ['nota:', 'note'], - ['notiz', 'note'], - ['notiz:', 'note'], - ['hinweis', 'note'], - ['hinweis:', 'note'], - ['consejo', 'tip'], - ['sugerencia', 'tip'], - ['astuce', 'tip'], - ['tipp', 'tip'], - ['tipp:', 'tip'], - ['小贴士', 'tip'], - ['提示', 'tip'], - ['attention', 'caution'], - ['prudence', 'caution'], - ['vorsicht', 'caution'], - ['vorsicht:', 'caution'], - ['precaucion', 'caution'], - ['precaución', 'caution'], - ['注意', 'caution'], - ['重要', 'important'], - ['importante', 'important'], - ['importante:', 'important'], - ['wichtig', 'important'], - ['wichtig:', 'important'], - ['advertencia', 'warning'], - ['advertencia:', 'warning'], - ['avertissement', 'warning'], - ['avertissement:', 'warning'], - ['warnung', 'warning'], - ['warnung:', 'warning'], - ['警告', 'warning'], - ['informacion', 'info'], - ['informacion:', 'info'], - ['información', 'info'], - ['información:', 'info'], - ['信息', 'info'], - ['de advertencia', 'warning'] + ["nota", "note"], + ["nota:", "note"], + ["notiz", "note"], + ["notiz:", "note"], + ["hinweis", "note"], + ["hinweis:", "note"], + ["consejo", "tip"], + ["sugerencia", "tip"], + ["astuce", "tip"], + ["tipp", "tip"], + ["tipp:", "tip"], + ["小贴士", "tip"], + ["提示", "tip"], + ["attention", "caution"], + ["prudence", "caution"], + ["vorsicht", "caution"], + ["vorsicht:", "caution"], + ["precaucion", "caution"], + ["precaución", "caution"], + ["注意", "caution"], + ["重要", "important"], + ["importante", "important"], + ["importante:", "important"], + ["wichtig", "important"], + ["wichtig:", "important"], + ["advertencia", "warning"], + ["advertencia:", "warning"], + ["avertissement", "warning"], + ["avertissement:", "warning"], + ["warnung", "warning"], + ["warnung:", "warning"], + ["警告", "warning"], + ["informacion", "info"], + ["informacion:", "info"], + ["información", "info"], + ["información:", "info"], + ["信息", "info"], + ["de advertencia", "warning"], ]); function stripDiacritics(value) { - if (typeof value !== 'string') { + if (typeof value !== "string") { return value; } - return value.normalize('NFD').replace(/[\u0300-\u036f]/g, ''); + return value.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); } function getCanonicalAdmonition(type) { @@ -111,7 +119,7 @@ function getCanonicalAdmonition(type) { } function normalizeAdmonitionDirectives(content) { - const lines = content.split('\n'); + const lines = content.split("\n"); let modified = false; for (let index = 0; index < lines.length; index++) { @@ -121,17 +129,17 @@ function normalizeAdmonitionDirectives(content) { continue; } - const indent = match[1] || ''; + const indent = match[1] || ""; let colons = match[2]; - const rest = match[4] || ''; + const rest = match[4] || ""; let lineModified = false; const colonCount = colons.length; if (colonCount < 3) { - colons = ':::'; + colons = ":::"; lineModified = true; } else { - colons = ':'.repeat(colonCount); + colons = ":".repeat(colonCount); } if (rest.trim().length === 0) { @@ -144,7 +152,7 @@ function normalizeAdmonitionDirectives(content) { } const leadingSpacesMatch = rest.match(/^\s*/); - const leadingSpaces = leadingSpacesMatch ? leadingSpacesMatch[0] : ''; + const leadingSpaces = leadingSpacesMatch ? leadingSpacesMatch[0] : ""; let trimmedRest = rest.slice(leadingSpaces.length); if (!trimmedRest) { @@ -167,7 +175,7 @@ function normalizeAdmonitionDirectives(content) { } const rawType = typeMatch[1]; - let remainder = typeMatch[2] || ''; + let remainder = typeMatch[2] || ""; let canonical = getCanonicalAdmonition(rawType); if (!canonical) { @@ -193,12 +201,13 @@ function normalizeAdmonitionDirectives(content) { const typeForOutput = canonical || rawType; - if (canonical && remainder.startsWith(':')) { - const adjusted = remainder.replace(/^:\s*/, ''); - remainder = adjusted.length ? ` ${adjusted}` : ''; + if (canonical && remainder.startsWith(":")) { + const adjusted = remainder.replace(/^:\s*/, ""); + remainder = adjusted.length ? ` ${adjusted}` : ""; } - const normalizedLine = indent + colons + leadingSpaces + typeForOutput + remainder; + const normalizedLine = + indent + colons + leadingSpaces + typeForOutput + remainder; if (normalizedLine !== originalLine || lineModified) { lines[index] = normalizedLine; @@ -206,7 +215,7 @@ function normalizeAdmonitionDirectives(content) { } } - return { content: lines.join('\n'), modified }; + return { content: lines.join("\n"), modified }; } /** @@ -215,10 +224,10 @@ function normalizeAdmonitionDirectives(content) { * @returns {string} */ function convertEscapedNewlines(value) { - if (typeof value !== 'string' || value.indexOf('\\n') === -1) { + if (typeof value !== "string" || value.indexOf("\\n") === -1) { return value; } - return value.replace(/\\n/g, '\n'); + return value.replace(/\\n/g, "\n"); } /** @@ -232,7 +241,7 @@ function fixCrowdinEscapeArtifacts(content) { // Collapse quadruple escapes that Crowdin sometimes injects in inline code const inlineCodePattern = /`[^`]*`/g; content = content.replace(inlineCodePattern, (segment) => { - const cleaned = segment.replace(/\\{2,}\|/g, '\\|'); + const cleaned = segment.replace(/\\{2,}\|/g, "\\|"); if (cleaned !== segment) { modified = true; return cleaned; @@ -241,10 +250,13 @@ function fixCrowdinEscapeArtifacts(content) { }); // Remove unnecessary pipe escaping inside custom token syntax like %%Foo|bar%% - content = content.replace(/%%([^%]*?)\\{2}\|([^%]*?)%%/g, (match, left, right) => { - modified = true; - return `%%${left}\\|${right}%%`; - }); + content = content.replace( + /%%([^%]*?)\\{2}\|([^%]*?)%%/g, + (match, left, right) => { + modified = true; + return `%%${left}\\|${right}%%`; + } + ); return { content, modified }; } @@ -276,22 +288,27 @@ function processContent(content, filePath) { // Fix 0: Remove backslashes from admonition directives // Matches admonition directives with escaped brackets like :::tip\[Title] - content = content.replace(/^([ \t]*:::[^\s\[]+)(\\)(\[[^\]]*\])$/gm, (match, directive, backslash, bracket) => { - modified = true; - return directive + bracket; // Return directive + bracket, omitting the backslash - }); + content = content.replace( + /^([ \t]*:::[^\s\[]+)(\\)(\[[^\]]*\])$/gm, + (match, directive, backslash, bracket) => { + modified = true; + return directive + bracket; // Return directive + bracket, omitting the backslash + } + ); // Fix 1: Remove indentation from closing ::: directives at root level - const lines = content.split('\n'); + const lines = content.split("\n"); const newLines = []; let jsxStack = []; // Track nested JSX elements const admonitionIndentStack = []; let inCodeBlock = false; - let codeBlockDelimiter = ''; + let codeBlockDelimiter = ""; // Precompile regexes that depend on canonical admonition types - const admonitionOpeningLineRegex = new RegExp('^\\s*:::(?:' + admonitionTypesGroup + ')\\b'); + const admonitionOpeningLineRegex = new RegExp( + "^\\s*:::(?:" + admonitionTypesGroup + ")\\b" + ); for (let i = 0; i < lines.length; i++) { let line = lines[i]; @@ -304,7 +321,7 @@ function processContent(content, filePath) { codeBlockDelimiter = line.match(/^`+/)[0]; } else if (line.startsWith(codeBlockDelimiter)) { inCodeBlock = false; - codeBlockDelimiter = ''; + codeBlockDelimiter = ""; } } @@ -319,7 +336,7 @@ function processContent(content, filePath) { // Collapse duplicate trailing backslashes that create duplicate hard breaks if (/\\{2,}$/.test(line)) { - const collapsed = line.replace(/\\+$/g, '\\'); + const collapsed = line.replace(/\\+$/g, "\\"); if (collapsed !== line) { line = collapsed; modified = true; @@ -329,7 +346,9 @@ function processContent(content, filePath) { // Track JSX element nesting // Opening tags (including cards elements) - const openingMatch = line.match(/<(TabItem|tabItem|Card|card|cards|Tabs|tabs|details|Details|Tabs|TabItem)(?:\s+[^>]*)?>(?!\/)/); + const openingMatch = line.match( + /<(TabItem|tabItem|Card|card|cards|Tabs|tabs|details|Details)(?:\s+[^>]*)?>(?!\/)/ + ); if (openingMatch) { const indent = line.match(/^(\s*)/)[1].length; jsxStack.push({ tag: openingMatch[1], indent: indent }); @@ -337,36 +356,41 @@ function processContent(content, filePath) { // Self-closing tags don't affect the stack // Closing tags - const closingMatch = line.match(/<\/(TabItem|tabItem|Card|card|cards|Tabs|tabs|details|Details|Tabs|TabItem)>/); + const closingMatch = line.match( + /<\/(TabItem|tabItem|Card|card|cards|Tabs|tabs|details|Details)>/ + ); if (closingMatch) { // Pop from stack if it matches - if (jsxStack.length > 0 && jsxStack[jsxStack.length - 1].tag === closingMatch[1]) { + if ( + jsxStack.length > 0 && + jsxStack[jsxStack.length - 1].tag === closingMatch[1] + ) { jsxStack.pop(); } } // Track admonition openings if (admonitionOpeningLineRegex.test(line)) { - const indentLength = (line.match(/^(\s*)/)[1] || '').length; + const indentLength = (line.match(/^(\s*)/)[1] || "").length; admonitionIndentStack.push(indentLength); } // Handle closing ::: directives - if (trimmedLine === ':::') { + if (trimmedLine === ":::") { const expectedIndent = admonitionIndentStack.length > 0 ? admonitionIndentStack.pop() : 0; - const correctIndent = ' '.repeat(expectedIndent); + const correctIndent = " ".repeat(expectedIndent); if (jsxStack.length > 0) { - if (line !== correctIndent + ':::') { - newLines.push(correctIndent + ':::'); + if (line !== correctIndent + ":::") { + newLines.push(correctIndent + ":::"); modified = true; } else { newLines.push(line); } } else { - if (line !== correctIndent + ':::') { - newLines.push(correctIndent + ':::'); + if (line !== correctIndent + ":::") { + newLines.push(correctIndent + ":::"); modified = true; } else { newLines.push(line); @@ -377,144 +401,190 @@ function processContent(content, filePath) { } } - content = newLines.join('\n'); + content = newLines.join("\n"); // Fix 2: Add blank lines between markdown content and JSX elements // Pattern: numbered or bullet list followed directly by closing JSX tag - content = content.replace(/^([ \t]*(?:\d+\.|-)\s+.+)$\n([ \t]*<\/\w+>)/gm, (_, listItem, jsxTag) => { - modified = true; - return `${listItem}\n\n${jsxTag}`; - }); + content = content.replace( + /^([ \t]*(?:\d+\.|-)\s+.+)$\n([ \t]*<\/\w+>)/gm, + (_, listItem, jsxTag) => { + modified = true; + return `${listItem}\n\n${jsxTag}`; + } + ); // Pattern: Any non-empty line followed directly by closing JSX tag (but not another JSX tag) - content = content.replace(/^([ \t]*[^<\s].*)$\n([ \t]*<\/\w+>)/gm, (match, contentLine, jsxTag) => { - // Skip if the content line is already a closing tag or empty - if (contentLine.trim().endsWith('>') || contentLine.trim() === '') { + content = content.replace( + /^([ \t]*[^<\s].*)$\n([ \t]*<\/\w+>)/gm, + (match, contentLine, jsxTag) => { + // Skip if the content line is already a closing tag or empty + if (contentLine.trim().endsWith(">") || contentLine.trim() === "") { + return match; + } + // Also check if it's inside specific JSX elements where we want spacing + const tagName = jsxTag.match(/<\/(\w+)>/)[1]; + if ( + ["card", "Card", "tabItem", "TabItem", "details", "Details"].includes( + tagName + ) + ) { + modified = true; + return `${contentLine}\n\n${jsxTag}`; + } return match; } - // Also check if it's inside specific JSX elements where we want spacing - const tagName = jsxTag.match(/<\/(\w+)>/)[1]; - if (['card', 'Card', 'tabItem', 'TabItem', 'details', 'Details'].includes(tagName)) { - modified = true; - return `${contentLine}\n\n${jsxTag}`; - } - return match; - }); + ); // Pattern: JSX opening tag followed directly by markdown content - content = content.replace(/^([ \t]*<\w+[^>]*>)$\n([ \t]*(?:#{1,6}\s|(?:\d+\.|-)\s+|\w))/gm, (_, jsxTag, markdownContent) => { - modified = true; - return `${jsxTag}\n\n${markdownContent}`; - }); + content = content.replace( + /^([ \t]*<\w+[^>]*>)$\n([ \t]*(?:#{1,6}\s|(?:\d+\.|-)\s+|\w))/gm, + (_, jsxTag, markdownContent) => { + modified = true; + return `${jsxTag}\n\n${markdownContent}`; + } + ); // Pattern: closing JSX tag followed directly by markdown - content = content.replace(/^([ \t]*<\/\w+>)$\n([ \t]*(?:#{1,6}\s|(?:\d+\.|-)\s+|\w))/gm, (_, jsxTag, markdownContent) => { - modified = true; - return `${jsxTag}\n\n${markdownContent}`; - }); + content = content.replace( + /^([ \t]*<\/\w+>)$\n([ \t]*(?:#{1,6}\s|(?:\d+\.|-)\s+|\w))/gm, + (_, jsxTag, markdownContent) => { + modified = true; + return `${jsxTag}\n\n${markdownContent}`; + } + ); // Pattern: markdown content followed directly by opening JSX tag - content = content.replace(/^(.*\S.*)$\n([ \t]*<\w+[^>]*>)$/gm, (match, markdownContent, jsxTag) => { - // Skip if the markdown content is already a JSX tag - if (markdownContent.trim().endsWith('>')) return match; - // Skip if there's already a blank line - if (markdownContent === '') return match; - modified = true; - return `${markdownContent}\n\n${jsxTag}`; - }); + content = content.replace( + /^(.*\S.*)$\n([ \t]*<\w+[^>]*>)$/gm, + (match, markdownContent, jsxTag) => { + // Skip if the markdown content is already a JSX tag + if (markdownContent.trim().endsWith(">")) return match; + // Skip if there's already a blank line + if (markdownContent === "") return match; + modified = true; + return `${markdownContent}\n\n${jsxTag}`; + } + ); // Pattern: List item followed by closing directive (:::) - content = content.replace(/^([ \t]*(?:\d+\.|-)\s+.+)$\n([ \t]*:::)$/gm, (match, listItem, directive) => { - // Only add blank line if not inside JSX (check indentation) - const listIndent = listItem.match(/^(\s*)/)[1].length; - const directiveIndent = directive.match(/^(\s*)/)[1].length; + content = content.replace( + /^([ \t]*(?:\d+\.|-)\s+.+)$\n([ \t]*:::)$/gm, + (match, listItem, directive) => { + // Only add blank line if not inside JSX (check indentation) + const listIndent = listItem.match(/^(\s*)/)[1].length; + const directiveIndent = directive.match(/^(\s*)/)[1].length; + + // If directive has same or more indentation as list, they're likely both inside JSX + if (directiveIndent >= listIndent && listIndent > 0) { + return match; // Keep as is + } - // If directive has same or more indentation as list, they're likely both inside JSX - if (directiveIndent >= listIndent && listIndent > 0) { - return match; // Keep as is - } + // At root level, add blank line + if (directiveIndent === 0) { + modified = true; + return `${listItem}\n\n:::`; + } - // At root level, add blank line - if (directiveIndent === 0) { - modified = true; - return `${listItem}\n\n:::`; + return match; } - - return match; - }); + ); // Pattern: Closing directive followed directly by opening directive // E.g., :::important\n...\n:::\n:::note should have blank line between them - const closingThenOpeningRegex = new RegExp('(^[ \t]*:::)$\\n(^[ \t]*:::(?:' + admonitionTypesGroup + ')\\b)', 'gm'); - content = content.replace(closingThenOpeningRegex, (_, closingDirective, openingDirective) => { - modified = true; - return `${closingDirective}\n\n${openingDirective}`; - }); + const closingThenOpeningRegex = new RegExp( + "(^[ \t]*:::)$\\n(^[ \t]*:::(?:" + admonitionTypesGroup + ")\\b)", + "gm" + ); + content = content.replace( + closingThenOpeningRegex, + (_, closingDirective, openingDirective) => { + modified = true; + return `${closingDirective}\n\n${openingDirective}`; + } + ); // Pattern: Opening admonition directive (with or without brackets/titles) followed directly by content // Matches: :::tip, :::tip\[Title], or :::tip Title formats - const admonitionOpenPattern = new RegExp('^([ \\t]*:::(?:' + admonitionTypesGroup + ')(?:\\\\?\\[.*?\\]|[^\\n]*))$\\n([^\\n]+)$', 'gm'); - content = content.replace(admonitionOpenPattern, (match, directive, nextLine) => { - // Skip if next line is blank or another directive - if (nextLine.trim() === '' || nextLine.trim().startsWith(':::')) { - return match; - } - const indentLength = (directive.match(/^(\s*)/)[1] || '').length; - if (indentLength > 0) { - return match; + const admonitionOpenPattern = new RegExp( + "^([ \\t]*:::(?:" + + admonitionTypesGroup + + ")(?:\\\\?\\[.*?\\]|[^\\n]*))$\\n([^\\n]+)$", + "gm" + ); + content = content.replace( + admonitionOpenPattern, + (match, directive, nextLine) => { + // Skip if next line is blank or another directive + if (nextLine.trim() === "" || nextLine.trim().startsWith(":::")) { + return match; + } + const indentLength = (directive.match(/^(\s*)/)[1] || "").length; + if (indentLength > 0) { + return match; + } + modified = true; + return `${directive}\n\n${nextLine}`; } - modified = true; - return `${directive}\n\n${nextLine}`; - }); + ); // Pattern: Content line followed directly by closing ::: for admonitions const admonitionClosePattern = /^([ \t]*.+)$\n^([ \t]*:::)$/gm; - content = content.replace(admonitionClosePattern, (match, contentLine, closingDirective) => { - // Skip if content is a JSX tag or another directive - const trimmedContent = contentLine.trim(); - if (trimmedContent.endsWith('>') || trimmedContent.startsWith(':::')) { - return match; - } - const indentLength = (closingDirective.match(/^(\s*)/)[1] || '').length; - if (indentLength > 0) { - return match; + content = content.replace( + admonitionClosePattern, + (match, contentLine, closingDirective) => { + // Skip if content is a JSX tag or another directive + const trimmedContent = contentLine.trim(); + if (trimmedContent.endsWith(">") || trimmedContent.startsWith(":::")) { + return match; + } + const indentLength = (closingDirective.match(/^(\s*)/)[1] || "").length; + if (indentLength > 0) { + return match; + } + modified = true; + return `${contentLine}\n\n${closingDirective}`; } - modified = true; - return `${contentLine}\n\n${closingDirective}`; - }); + ); // Pattern: Closing directive followed directly by markdown content const admonitionPostSpacingPattern = /^([ \t]*:::)$(?:\r?\n)(^[ \t]*\S.*)$/gm; - content = content.replace(admonitionPostSpacingPattern, (match, closingDirective, nextLine) => { - const trimmedNext = nextLine.trim(); - if (trimmedNext === '' || trimmedNext.startsWith(':::') || trimmedNext.startsWith('<')) { - return match; - } - const indentLength = (closingDirective.match(/^(\s*)/)[1] || '').length; - if (indentLength > 0) { - return match; + content = content.replace( + admonitionPostSpacingPattern, + (match, closingDirective, nextLine) => { + const trimmedNext = nextLine.trim(); + if ( + trimmedNext === "" || + trimmedNext.startsWith(":::") || + trimmedNext.startsWith("<") + ) { + return match; + } + const indentLength = (closingDirective.match(/^(\s*)/)[1] || "").length; + if (indentLength > 0) { + return match; + } + modified = true; + return `${closingDirective}\n\n${nextLine}`; } - modified = true; - return `${closingDirective}\n\n${nextLine}`; - }); + ); return content; } function formatCrowdinSpacing() { - console.log(`${colors.blue}${colors.bright}🔧 Formatting MDX files for Crowdin compatibility...${colors.reset}\n`); + console.log( + `${colors.blue}${colors.bright}🔧 Formatting MDX files for Crowdin compatibility...${colors.reset}\n` + ); // Find all .mdx files - const patterns = [ - 'docs/**/*.{md,mdx}', - ]; + const patterns = ["docs/**/*.{md,mdx}"]; const fileSet = new Set(); patterns.forEach((pattern) => { glob.sync(pattern, { nodir: true }).forEach((file) => { // Skip files inside node_modules just in case patterns broaden over time - if (!file.includes('node_modules/')) { + if (!file.includes("node_modules/")) { fileSet.add(file); } }); @@ -525,18 +595,18 @@ function formatCrowdinSpacing() { const fixedFiles = []; const skippedTranslatedFiles = []; - files.forEach(file => { + files.forEach((file) => { if (isTranslatedFile(file)) { const relativePath = path.relative(process.cwd(), file); skippedTranslatedFiles.push(relativePath); return; } - const originalContent = fs.readFileSync(file, 'utf8'); + const originalContent = fs.readFileSync(file, "utf8"); const formattedContent = processContent(originalContent, file); if (formattedContent !== originalContent) { - fs.writeFileSync(file, formattedContent, 'utf8'); + fs.writeFileSync(file, formattedContent, "utf8"); const relativePath = path.relative(process.cwd(), file); fixedFiles.push(relativePath); totalFixed++; @@ -545,17 +615,25 @@ function formatCrowdinSpacing() { // Print summary if (totalFixed > 0) { - console.log(`${colors.green}✅ Fixed spacing in ${totalFixed} file${totalFixed === 1 ? '' : 's'}:${colors.reset}\n`); - fixedFiles.forEach(file => { + console.log( + `${colors.green}✅ Fixed spacing in ${totalFixed} file${totalFixed === 1 ? "" : "s"}:${colors.reset}\n` + ); + fixedFiles.forEach((file) => { console.log(` ${colors.yellow}•${colors.reset} ${file}`); }); - console.log(`\n${colors.blue}Run ${colors.bright}npm run lint${colors.reset}${colors.blue} to verify all issues are resolved.${colors.reset}`); + console.log( + `\n${colors.blue}Run ${colors.bright}npm run lint${colors.reset}${colors.blue} to verify all issues are resolved.${colors.reset}` + ); } else { - console.log(`${colors.green}✅ All files already have proper spacing for Crowdin compatibility!${colors.reset}`); + console.log( + `${colors.green}✅ All files already have proper spacing for Crowdin compatibility!${colors.reset}` + ); } if (skippedTranslatedFiles.length > 0) { - console.log(`\n${colors.blue}Skipped formatting for ${skippedTranslatedFiles.length} translated file${skippedTranslatedFiles.length === 1 ? '' : 's'} to preserve localized content.${colors.reset}`); + console.log( + `\n${colors.blue}Skipped formatting for ${skippedTranslatedFiles.length} translated file${skippedTranslatedFiles.length === 1 ? "" : "s"} to preserve localized content.${colors.reset}` + ); } return totalFixed; diff --git a/sitebar-semver-sort.d.ts b/sitebar-semver-sort.d.ts new file mode 100644 index 0000000000..a726a772a2 --- /dev/null +++ b/sitebar-semver-sort.d.ts @@ -0,0 +1,16 @@ +declare module "./sidebar-semver-sort.js" { + // Use the Docusaurus SidebarItem type when available so TypeScript understands + // the shape of the items passed into the sorter. + import type { SidebarItem } from "@docusaurus/plugin-content-docs"; + + /** + * Sorts the array of sidebar items. The implementation may return categories + * (with nested items) or a flat list depending on the sortBySemver flag. + */ + export function sortSidebarItems( + items: SidebarItem[], + sortBySemver?: boolean + ): SidebarItem[]; + + export {}; +} From 9c55e3f8a21595f007d5d1d73c06611f32560595 Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Thu, 30 Oct 2025 20:50:29 -0400 Subject: [PATCH 08/16] refactor: update sidebar sorting and improve documentation clarity - Changed import path for sidebar sorting utility from `sitebar-semver-sort.js` to `sidebar-semver-sort.js`. - Removed outdated `sitebar-semver-sort` TypeScript definition and JavaScript implementation. - Updated various documentation files for consistency, including fixing minor grammatical issues and improving formatting for better readability. - Adjusted links in the Docusaurus configuration to point to the new overview page for managing storage arrays. --- .remarkrc.mjs | 2 +- .../advanced-tools/command-line-interface.mdx | 2 +- docs/unraid-os/troubleshooting/licensing-faq.mdx | 4 ++-- .../manage-storage/array/adding-disks-to-array.mdx | 12 ++++++------ .../array/replacing-disks-in-array.mdx | 6 +++--- docusaurus.config.ts | 10 +++++----- sitebar-semver-sort.d.ts => sidebar-semver-sort.d.ts | 0 sitebar-semver-sort.js => sidebar-semver-sort.js | 0 8 files changed, 18 insertions(+), 18 deletions(-) rename sitebar-semver-sort.d.ts => sidebar-semver-sort.d.ts (100%) rename sitebar-semver-sort.js => sidebar-semver-sort.js (100%) diff --git a/.remarkrc.mjs b/.remarkrc.mjs index d2b22dd51f..c8d1f8fa4c 100644 --- a/.remarkrc.mjs +++ b/.remarkrc.mjs @@ -195,7 +195,7 @@ function normalizeDirectiveFences(value) { // Filter out any null/undefined entries (unmatched closers) before joining // so we don't introduce blank lines into the output. - return normalized.filter(Boolean).join("\n"); + return normalized.filter(v => v != null).join("\n"); } function stripDanglingDirectiveClosings() { 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 cc45e91672..50e620efa8 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 @@ -488,7 +488,7 @@ 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 afterwards: +5. Clean up afterward: ```bash umount /work diff --git a/docs/unraid-os/troubleshooting/licensing-faq.mdx b/docs/unraid-os/troubleshooting/licensing-faq.mdx index b8b25110c5..36a6af7248 100644 --- a/docs/unraid-os/troubleshooting/licensing-faq.mdx +++ b/docs/unraid-os/troubleshooting/licensing-faq.mdx @@ -116,7 +116,7 @@ For bulk OEM/reseller pricing (10 licenses or more), [contact Unraid](https://un You can upgrade your license at any time from within the %%WebGUI|web-gui%% (***Tools → Registration***) or [via the account portal](https://account.unraid.net/keys) (by clicking **••• More** and selecting **Upgrade Key**). -
+
| Upgrade Path | One-Time Upgrade Fee | New Device Limit¹ | | -------------------- | -------------------- | ----------------- | @@ -195,7 +195,7 @@ You continue to own your license even if you stop paying for updates. Here are the current limits: -
+
| License Tier | %%Parity\|parity%%-Protected %%Array\|array%% | Named Pools | Devices per Pool | Total Storage Devices | | ------------ | --------------------------------------------- | ----------- | ---------------- | --------------------- | 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 b6bc71fcd7..1fe7506f9c 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 @@ -47,12 +47,12 @@ For a more thorough approach, the pre-clear operation – available through plug alignItems: "center", }} > - | | 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. 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 19c6705f93..4ee74ce96f 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 @@ -212,9 +212,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. 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. +- 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. ::: diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 256bd454f4..5003796f0d 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -22,7 +22,7 @@ import remarkLintNoHeadingPunctuation from "remark-lint-no-heading-punctuation"; import remarkLintNoMultipleToplevelHeadings from "remark-lint-no-multiple-toplevel-headings"; import remarkLintNoShellDollars from "remark-lint-no-shell-dollars"; import jsxContentSpacing from "./remark-jsx-spacing.js"; -import { sortSidebarItems } from "./sitebar-semver-sort.js"; +import { sortSidebarItems } from "./sidebar-semver-sort.js"; const __dirname = path.dirname(fileURLToPath(import.meta.url)); @@ -331,7 +331,7 @@ const config: Config = { }, { from: "/legacy/FAQ/Parity/", - to: "/unraid-os/using-unraid-to/manage-storage/array/", + to: "/unraid-os/using-unraid-to/manage-storage/array/overview/", }, { from: "/legacy/FAQ/parity-swap-procedure/", @@ -551,7 +551,7 @@ const config: Config = { }, { from: "/unraid-os/manual/storage-management/", - to: "/unraid-os/using-unraid-to/manage-storage/array/", + to: "/unraid-os/using-unraid-to/manage-storage/array/overview/", }, { from: "/unraid-os/manual/tools/", to: "/category/advanced-tools/" }, { @@ -850,7 +850,7 @@ const config: Config = { }, { from: "/go/parity/", - to: "/unraid-os/using-unraid-to/manage-storage/array/", + to: "/unraid-os/using-unraid-to/manage-storage/array/overview/", }, { from: "/go/quick-install-guide-assigning-devices/", @@ -899,7 +899,7 @@ const config: Config = { }, { from: "/go/storage-management/", - to: "/unraid-os/using-unraid-to/manage-storage/array/", + to: "/unraid-os/using-unraid-to/manage-storage/array/overview/", }, { from: "/go/syslog-server/", diff --git a/sitebar-semver-sort.d.ts b/sidebar-semver-sort.d.ts similarity index 100% rename from sitebar-semver-sort.d.ts rename to sidebar-semver-sort.d.ts diff --git a/sitebar-semver-sort.js b/sidebar-semver-sort.js similarity index 100% rename from sitebar-semver-sort.js rename to sidebar-semver-sort.js From 393e6052b251cd452667a02f62093dd9cdd3dfbd Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Thu, 30 Oct 2025 21:01:33 -0400 Subject: [PATCH 09/16] fix: update iframe attributes to JSX camelCase format --- docs/unraid-os/troubleshooting/licensing-faq.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/unraid-os/troubleshooting/licensing-faq.mdx b/docs/unraid-os/troubleshooting/licensing-faq.mdx index 36a6af7248..6f46069b66 100644 --- a/docs/unraid-os/troubleshooting/licensing-faq.mdx +++ b/docs/unraid-os/troubleshooting/licensing-faq.mdx @@ -90,10 +90,10 @@ Activation codes are one-time use for generating your Unraid license key file. width="560" height="315" src="https://www.loom.com/embed/3ceb40440240474aaa80a0b7e3e69cb2" - frameborder="0" - webkitallowfullscreen - mozallowfullscreen - allowfullscreen + frameBorder="0" + webkitAllowFullScreen + mozAllowFullScreen + allowFullScreen allow="autoplay; fullscreen" >
From 28bf859e593f639f606384a53597e547dd31e226 Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Fri, 31 Oct 2025 16:19:56 -0400 Subject: [PATCH 10/16] docs: Update FAQ structure and table of contents settings - Changed the maximum heading level for the table of contents from 2 to 3 to improve navigation. - Removed the outdated index section to streamline the FAQ content and enhance readability. --- docs/unraid-os/troubleshooting/faq.mdx | 48 +------------------------- 1 file changed, 1 insertion(+), 47 deletions(-) diff --git a/docs/unraid-os/troubleshooting/faq.mdx b/docs/unraid-os/troubleshooting/faq.mdx index ca49fcfac1..04b7e2c6ae 100644 --- a/docs/unraid-os/troubleshooting/faq.mdx +++ b/docs/unraid-os/troubleshooting/faq.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 3 sidebar_label: FAQ -toc_max_heading_level: 2 +toc_max_heading_level: 3 --- import Tabs from "@theme/Tabs"; @@ -18,52 +18,6 @@ If you need help with Unraid OS, you have several support options: --- -## Index - -**[Build & Hardware](#build--hardware)** - -- [I need help with a build or system configuration. Where do I go?](#build-help) -- [What controllers are recommended for Unraid?](#hardware-raid-support) -- [What's the best way to add more storage if my built-in controller is full?](#add-more-storage) -- [Does Unraid have an allocation feature that remembers bad sectors on drives to prevent writes to them?](#bad-sector-allocation) - -**[OS & Configuration](#os--configuration)** - -- [Can I use a HASP key within a VM on Unraid? How does that work with multiple VMs?](#hasp-key-vm) -- [My USB flash has failed, and I don't have a backup. How do I restore my configuration?](#usb-failed-restore) -- [What should I do if I have forgotten my root password?](#forgot-root-password) -- [How do I completely start Unraid OS from scratch? (Factory reset procedure)](#factory-reset) -- [How do I change the hostname of my server?](#change-hostname) -- [My flash drive is reporting an invalid GUID. What do I do?](#invalid-guid) - -**[Virtualization & Devices](#virtualization--devices)** - -- [Whenever I shut down my Windows VM with an AMD GPU assigned, it won't restart. What can I do?](#amd-gpu-vm-restart) -- [How do I pass through my primary GPU to a VM if my CPU has no integrated graphics?](#primary-gpu-passthrough) - -**[Storage & RAID](#storage--raid)** - -- [Does Unraid support various RAID types such as RAID1/5/6/10?](#raid-types-support) -- [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?](#mbr-to-gpt-conversion) - -**[Networking](#networking)** - -- [Is there any way to disable the br0 bridge?](#disable-br0-bridge) -- [I can't seem to connect to the WebGUI using `http://tower` or `http://tower.local`. What do I do?](#webgui-connection) - -**[Installation](#installation)** - -- [I can't get the USB flash creator to install Unraid on my flash device. What do I do?](#usb-creator-issue) -- [I need to configure my system to boot using UEFI. How do I do this?](#uefi-boot-config) -- [I'm having issues using my web browser with the WebGUI. What can I do?](#webgui-browser-issues) -- [How do I extend my Unraid trial?](#extend-trial) - -**[Licensing](#licensing)** - -- For licensing-related questions, see the [Licensing FAQ](licensing-faq.mdx). - ---- - ## Build & Hardware From 122f77d3c13b363ae3c379414dcc0165c0f4676d Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Fri, 31 Oct 2025 16:24:50 -0400 Subject: [PATCH 11/16] docs: Update FAQ and Licensing FAQ for improved structure and accessibility - Changed table of contents maximum heading level from 2 to 3 for better organization. - Removed outdated index sections from the FAQ to streamline content and enhance user experience. - Improved overall clarity and accessibility of the FAQ and Licensing FAQ sections. --- docs/unraid-os/troubleshooting/faq.mdx | 48 +------------------ .../troubleshooting/licensing-faq.mdx | 2 +- 2 files changed, 2 insertions(+), 48 deletions(-) diff --git a/docs/unraid-os/troubleshooting/faq.mdx b/docs/unraid-os/troubleshooting/faq.mdx index ca49fcfac1..04b7e2c6ae 100644 --- a/docs/unraid-os/troubleshooting/faq.mdx +++ b/docs/unraid-os/troubleshooting/faq.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 3 sidebar_label: FAQ -toc_max_heading_level: 2 +toc_max_heading_level: 3 --- import Tabs from "@theme/Tabs"; @@ -18,52 +18,6 @@ If you need help with Unraid OS, you have several support options: --- -## Index - -**[Build & Hardware](#build--hardware)** - -- [I need help with a build or system configuration. Where do I go?](#build-help) -- [What controllers are recommended for Unraid?](#hardware-raid-support) -- [What's the best way to add more storage if my built-in controller is full?](#add-more-storage) -- [Does Unraid have an allocation feature that remembers bad sectors on drives to prevent writes to them?](#bad-sector-allocation) - -**[OS & Configuration](#os--configuration)** - -- [Can I use a HASP key within a VM on Unraid? How does that work with multiple VMs?](#hasp-key-vm) -- [My USB flash has failed, and I don't have a backup. How do I restore my configuration?](#usb-failed-restore) -- [What should I do if I have forgotten my root password?](#forgot-root-password) -- [How do I completely start Unraid OS from scratch? (Factory reset procedure)](#factory-reset) -- [How do I change the hostname of my server?](#change-hostname) -- [My flash drive is reporting an invalid GUID. What do I do?](#invalid-guid) - -**[Virtualization & Devices](#virtualization--devices)** - -- [Whenever I shut down my Windows VM with an AMD GPU assigned, it won't restart. What can I do?](#amd-gpu-vm-restart) -- [How do I pass through my primary GPU to a VM if my CPU has no integrated graphics?](#primary-gpu-passthrough) - -**[Storage & RAID](#storage--raid)** - -- [Does Unraid support various RAID types such as RAID1/5/6/10?](#raid-types-support) -- [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?](#mbr-to-gpt-conversion) - -**[Networking](#networking)** - -- [Is there any way to disable the br0 bridge?](#disable-br0-bridge) -- [I can't seem to connect to the WebGUI using `http://tower` or `http://tower.local`. What do I do?](#webgui-connection) - -**[Installation](#installation)** - -- [I can't get the USB flash creator to install Unraid on my flash device. What do I do?](#usb-creator-issue) -- [I need to configure my system to boot using UEFI. How do I do this?](#uefi-boot-config) -- [I'm having issues using my web browser with the WebGUI. What can I do?](#webgui-browser-issues) -- [How do I extend my Unraid trial?](#extend-trial) - -**[Licensing](#licensing)** - -- For licensing-related questions, see the [Licensing FAQ](licensing-faq.mdx). - ---- - ## Build & Hardware diff --git a/docs/unraid-os/troubleshooting/licensing-faq.mdx b/docs/unraid-os/troubleshooting/licensing-faq.mdx index 426455fcc6..611576a8c1 100644 --- a/docs/unraid-os/troubleshooting/licensing-faq.mdx +++ b/docs/unraid-os/troubleshooting/licensing-faq.mdx @@ -1,7 +1,7 @@ --- sidebar_position: 4 sidebar_label: Licensing FAQ -toc_max_heading_level: 2 +toc_max_heading_level: 3 --- # Licensing FAQ From d582a4bc0840c070e2b0d303b1b43524bb2804c6 Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Thu, 6 Nov 2025 21:04:51 -0500 Subject: [PATCH 12/16] chore: update documentation for API and configuration improvements - Removed outdated redirect entries in docusaurus.config.ts for clarity. - Enhanced API documentation with consistent formatting and improved readability across multiple files. - Updated CLI and API key management guides to reflect best practices and streamline user experience. - Improved overall structure and accessibility of various documentation sections, including OIDC provider setup and array management. - Minor editorial fixes and adjustments to ensure consistency in terminology and formatting. --- .github/workflows/pr.yml | 1 - ...i-key-app-developer-authorization-flow.mdx | 46 +-- docs/API/cli.mdx | 81 ++-- docs/API/how-to-use-the-api.mdx | 150 ++------ docs/API/index.mdx | 88 +---- docs/API/oidc-provider-setup.mdx | 264 +++++++------ docs/API/partials/get-started-pre72.mdx | 10 +- docs/API/partials/get-started-v72.mdx | 12 +- docs/API/partials/manage-api-keys-gui.mdx | 12 +- docs/API/programmatic-api-key-management.mdx | 115 ++---- docs/API/upcoming-features.mdx | 2 + docs/unraid-account/server-management.mdx | 4 +- .../optimize-storage/zfs-storage.mdx | 31 +- .../advanced-tools/command-line-interface.mdx | 349 +++++++++--------- .../maintain-and-update/upgrading-unraid.mdx | 2 + .../common-issues/unclean-shutdowns.mdx | 51 +-- docs/unraid-os/troubleshooting/faq.mdx | 92 +++-- .../troubleshooting/licensing-faq.mdx | 2 + .../array/adding-disks-to-array.mdx | 25 +- .../array/array-health-and-maintenance.mdx | 10 +- .../manage-storage/array/overview.mdx | 7 +- .../array/removing-disks-from-array.mdx | 5 +- .../array/replacing-disks-in-array.mdx | 34 +- docusaurus.config.ts | 12 +- 24 files changed, 599 insertions(+), 806 deletions(-) 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..8d9a47400a 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 into 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..a95fd87407 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/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx b/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx index d0c3a118d5..2785b20899 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'; @@ -75,7 +77,9 @@ To create a %%ZFS|zfs%% pool using the %%WebGUI|web-gui%%: ![](/img/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 @@ -88,19 +92,23 @@ This initial slot count is for data vdevs only. Support vdevs (such as log or ca ![](/img/zfs4.png)
+ 5. Assign disks to the pool (disk order does not matter).
![](/img/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)
+ 8. Choose your allocation profile - this determines your pool's redundancy and performance. :::tip @@ -117,7 +125,9 @@ Before finalizing, review the sections on allocation profiles and topology to ma ![](/img/zfs8.png)
+ 9. Enable compression if desired (recommended for most workloads). + 10. Click **Done**, then start the %%array|array%%. --- @@ -147,13 +157,16 @@ To add a %%ZFS|zfs%% disk to the %%array|array%%: ![](/img/zfs9.png) + 5. Under **File system**, choose `zfs` or `zfs-encrypted`.
![](/img/zfs10.png)
+ 6. Click **Apply**. + 7. Start the %%array|array%% and let the disk be formatted if needed. --- @@ -167,12 +180,12 @@ When you set up a %%ZFS|zfs%% pool, your allocation profile determines how your | 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. @@ -282,7 +295,9 @@ 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**.
@@ -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/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/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..4e68acc01c 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -275,10 +275,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/" }, @@ -335,7 +331,7 @@ const config: Config = { }, { from: "/legacy/FAQ/Parity/", - to: "/unraid-os/using-unraid-to/manage-storage/array/overview/", + to: "/unraid-os/using-unraid-to/manage-storage/array/", }, { from: "/legacy/FAQ/parity-swap-procedure/", @@ -555,7 +551,7 @@ const config: Config = { }, { from: "/unraid-os/manual/storage-management/", - to: "/unraid-os/using-unraid-to/manage-storage/array/overview/", + to: "/unraid-os/using-unraid-to/manage-storage/array/", }, { from: "/unraid-os/manual/tools/", to: "/category/advanced-tools/" }, { @@ -854,7 +850,7 @@ const config: Config = { }, { from: "/go/parity/", - to: "/unraid-os/using-unraid-to/manage-storage/array/overview/", + to: "/unraid-os/using-unraid-to/manage-storage/array/", }, { from: "/go/quick-install-guide-assigning-devices/", @@ -903,7 +899,7 @@ const config: Config = { }, { from: "/go/storage-management/", - to: "/unraid-os/using-unraid-to/manage-storage/array/overview/", + to: "/unraid-os/using-unraid-to/manage-storage/array/", }, { from: "/go/syslog-server/", From 5e539e59b50dbbf0ac3f3094204ba4df389434c6 Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Thu, 6 Nov 2025 21:26:13 -0500 Subject: [PATCH 13/16] fix: update documentation and image paths for ZFS storage - Updated redirect paths in docusaurus.config.ts to point to the new overview page for array management. - Improved API documentation formatting and consistency across multiple files. - Adjusted image paths in ZFS storage documentation to reference the correct assets folder. - Added markdown linting comments for better formatting in various Docker container management guides. - Removed outdated images related to ZFS storage to clean up the repository. --- docs/API/how-to-use-the-api.mdx | 2 +- docs/API/upcoming-features.mdx | 2 +- .../optimize-storage/assets}/zfs1.png | Bin .../optimize-storage/assets}/zfs10.png | Bin .../optimize-storage/assets}/zfs11.png | Bin .../optimize-storage/assets}/zfs12.png | Bin .../optimize-storage/assets}/zfs13.png | Bin .../optimize-storage/assets}/zfs14.png | Bin .../optimize-storage/assets}/zfs15.png | Bin .../optimize-storage/assets}/zfs16.png | Bin .../optimize-storage/assets}/zfs2.png | Bin .../optimize-storage/assets}/zfs3.png | Bin .../optimize-storage/assets}/zfs4.png | Bin .../optimize-storage/assets}/zfs5.png | Bin .../optimize-storage/assets}/zfs6.png | Bin .../optimize-storage/assets}/zfs7.png | Bin .../optimize-storage/assets}/zfs8.png | Bin .../optimize-storage/assets}/zfs9.png | Bin .../optimize-storage/zfs-storage.mdx | 32 +++++++++--------- docusaurus.config.ts | 8 ++--- .../command-logs.mdx | 4 ++- .../command-restart.mdx | 4 ++- .../command-start.mdx | 4 ++- .../command-status.mdx | 4 ++- .../command-stop.mdx | 4 ++- .../environment-variables.mdx | 12 +++++-- .../network-type.mdx | 2 ++ .../port-mappings.mdx | 2 ++ .../volume-mappings.mdx | 12 +++++-- 29 files changed, 59 insertions(+), 33 deletions(-) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs1.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs10.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs11.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs12.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs13.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs14.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs15.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs16.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs2.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs3.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs4.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs5.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs6.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs7.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs8.png (100%) rename {static/img => docs/unraid-os/advanced-configurations/optimize-storage/assets}/zfs9.png (100%) diff --git a/docs/API/how-to-use-the-api.mdx b/docs/API/how-to-use-the-api.mdx index 8d9a47400a..fce6b29e47 100644 --- a/docs/API/how-to-use-the-api.mdx +++ b/docs/API/how-to-use-the-api.mdx @@ -48,7 +48,7 @@ unraid-api developer 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|web-gui%% +2. **Cookies** - Automatic when signed in to the %%WebGUI|web-gui%% 3. **%%SSO|sso%%/OIDC** - When configured with external providers ### Managing API keys diff --git a/docs/API/upcoming-features.mdx b/docs/API/upcoming-features.mdx index a95fd87407..9f50df82c2 100644 --- a/docs/API/upcoming-features.mdx +++ b/docs/API/upcoming-features.mdx @@ -4,7 +4,7 @@ description: Current status and upcoming features for the Unraid API sidebar_position: 10 --- - + # Roadmap & Features 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 2785b20899..b8e5695a9e 100644 --- a/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx +++ b/docs/unraid-os/advanced-configurations/optimize-storage/zfs-storage.mdx @@ -41,7 +41,7 @@ You can use %%ZFS|zfs%% %%snapshots|snapshot%% and replication on a single disk :::
- ![](/img/zfs1.png) + ![](./assets/zfs1.png)
:::note @@ -61,7 +61,7 @@ Redundancy is always per vdev. If any vdev fails, the entire pool fails, even if :::
- ![](/img/zfs2.png) + ![](./assets/zfs2.png)
--- @@ -74,7 +74,7 @@ To create a %%ZFS|zfs%% pool using the %%WebGUI|web-gui%%: 2. Click **Add Pool**.
- ![](/img/zfs3.png) + ![](./assets/zfs3.png)
@@ -89,14 +89,14 @@ 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)
@@ -105,7 +105,7 @@ This initial slot count is for data vdevs only. Support vdevs (such as log or ca 7. Set the file system type to `zfs` or `zfs-encrypted` (for LUKS encryption).
- ![](/img/zfs6.png) + ![](./assets/zfs6.png)
@@ -118,11 +118,11 @@ Before finalizing, review the sections on allocation profiles and topology to ma :::
- ![](/img/zfs7.png) + ![](./assets/zfs7.png)
- ![](/img/zfs8.png) + ![](./assets/zfs8.png)
@@ -154,14 +154,14 @@ 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)
@@ -176,7 +176,7 @@ 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 | @@ -216,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. @@ -244,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 @@ -261,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)
@@ -301,7 +301,7 @@ Unraid can import %%ZFS|zfs%% pools created on other platforms with minimal hass - Under **Pool Status**, check the status and click **Scrub**.
- ![](/img/zfs15.png) + ![](./assets/zfs15.png)
@@ -312,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 | diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 4e68acc01c..5003796f0d 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -331,7 +331,7 @@ const config: Config = { }, { from: "/legacy/FAQ/Parity/", - to: "/unraid-os/using-unraid-to/manage-storage/array/", + to: "/unraid-os/using-unraid-to/manage-storage/array/overview/", }, { from: "/legacy/FAQ/parity-swap-procedure/", @@ -551,7 +551,7 @@ const config: Config = { }, { from: "/unraid-os/manual/storage-management/", - to: "/unraid-os/using-unraid-to/manage-storage/array/", + to: "/unraid-os/using-unraid-to/manage-storage/array/overview/", }, { from: "/unraid-os/manual/tools/", to: "/category/advanced-tools/" }, { @@ -850,7 +850,7 @@ const config: Config = { }, { from: "/go/parity/", - to: "/unraid-os/using-unraid-to/manage-storage/array/", + to: "/unraid-os/using-unraid-to/manage-storage/array/overview/", }, { from: "/go/quick-install-guide-assigning-devices/", @@ -899,7 +899,7 @@ const config: Config = { }, { from: "/go/storage-management/", - to: "/unraid-os/using-unraid-to/manage-storage/array/", + to: "/unraid-os/using-unraid-to/manage-storage/array/overview/", }, { from: "/go/syslog-server/", 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"选项以确保正确检测。 - 如果主机路径在容器启动时不存在,则会自动创建。 - 服务器上出现的意外文件夹可能表明映射配置错误。 + ::: From 47b247fb6498c01202894c203f84c9c6ac158d17 Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Fri, 7 Nov 2025 15:35:24 -0500 Subject: [PATCH 14/16] fix: update image paths in ZFS storage documentation - Adjusted image paths in the ZFS storage documentation across multiple languages to reference the correct assets folder. - Ensured consistency in image references for better accessibility and organization of documentation. --- .../optimize-storage/assets/zfs1.png | Bin 0 -> 215585 bytes .../optimize-storage/assets/zfs10.png | Bin 0 -> 116819 bytes .../optimize-storage/assets/zfs11.png | Bin 0 -> 37431 bytes .../optimize-storage/assets/zfs12.png | Bin 0 -> 214812 bytes .../optimize-storage/assets/zfs13.png | Bin 0 -> 24469 bytes .../optimize-storage/assets/zfs14.png | Bin 0 -> 138146 bytes .../optimize-storage/assets/zfs15.png | Bin 0 -> 85470 bytes .../optimize-storage/assets/zfs16.png | Bin 0 -> 116221 bytes .../optimize-storage/assets/zfs2.png | Bin 0 -> 146412 bytes .../optimize-storage/assets/zfs3.png | Bin 0 -> 64109 bytes .../optimize-storage/assets/zfs4.png | Bin 0 -> 122212 bytes .../optimize-storage/assets/zfs5.png | Bin 0 -> 117638 bytes .../optimize-storage/assets/zfs6.png | Bin 0 -> 49654 bytes .../optimize-storage/assets/zfs7.png | Bin 0 -> 90928 bytes .../optimize-storage/assets/zfs8.png | Bin 0 -> 67747 bytes .../optimize-storage/assets/zfs9.png | Bin 0 -> 96548 bytes .../optimize-storage/zfs-storage.mdx | 32 +++++++++--------- .../optimize-storage/assets/zfs1.png | Bin 0 -> 215585 bytes .../optimize-storage/assets/zfs10.png | Bin 0 -> 116819 bytes .../optimize-storage/assets/zfs11.png | Bin 0 -> 37431 bytes .../optimize-storage/assets/zfs12.png | Bin 0 -> 214812 bytes .../optimize-storage/assets/zfs13.png | Bin 0 -> 24469 bytes .../optimize-storage/assets/zfs14.png | Bin 0 -> 138146 bytes .../optimize-storage/assets/zfs15.png | Bin 0 -> 85470 bytes .../optimize-storage/assets/zfs16.png | Bin 0 -> 116221 bytes .../optimize-storage/assets/zfs2.png | Bin 0 -> 146412 bytes .../optimize-storage/assets/zfs3.png | Bin 0 -> 64109 bytes .../optimize-storage/assets/zfs4.png | Bin 0 -> 122212 bytes .../optimize-storage/assets/zfs5.png | Bin 0 -> 117638 bytes .../optimize-storage/assets/zfs6.png | Bin 0 -> 49654 bytes .../optimize-storage/assets/zfs7.png | Bin 0 -> 90928 bytes .../optimize-storage/assets/zfs8.png | Bin 0 -> 67747 bytes .../optimize-storage/assets/zfs9.png | Bin 0 -> 96548 bytes .../optimize-storage/zfs-storage.mdx | 32 +++++++++--------- .../optimize-storage/assets/zfs1.png | Bin 0 -> 215585 bytes .../optimize-storage/assets/zfs10.png | Bin 0 -> 116819 bytes .../optimize-storage/assets/zfs11.png | Bin 0 -> 37431 bytes .../optimize-storage/assets/zfs12.png | Bin 0 -> 214812 bytes .../optimize-storage/assets/zfs13.png | Bin 0 -> 24469 bytes .../optimize-storage/assets/zfs14.png | Bin 0 -> 138146 bytes .../optimize-storage/assets/zfs15.png | Bin 0 -> 85470 bytes .../optimize-storage/assets/zfs16.png | Bin 0 -> 116221 bytes .../optimize-storage/assets/zfs2.png | Bin 0 -> 146412 bytes .../optimize-storage/assets/zfs3.png | Bin 0 -> 64109 bytes .../optimize-storage/assets/zfs4.png | Bin 0 -> 122212 bytes .../optimize-storage/assets/zfs5.png | Bin 0 -> 117638 bytes .../optimize-storage/assets/zfs6.png | Bin 0 -> 49654 bytes .../optimize-storage/assets/zfs7.png | Bin 0 -> 90928 bytes .../optimize-storage/assets/zfs8.png | Bin 0 -> 67747 bytes .../optimize-storage/assets/zfs9.png | Bin 0 -> 96548 bytes .../optimize-storage/zfs-storage.mdx | 32 +++++++++--------- .../optimize-storage/assets/zfs1.png | Bin 0 -> 215585 bytes .../optimize-storage/assets/zfs10.png | Bin 0 -> 116819 bytes .../optimize-storage/assets/zfs11.png | Bin 0 -> 37431 bytes .../optimize-storage/assets/zfs12.png | Bin 0 -> 214812 bytes .../optimize-storage/assets/zfs13.png | Bin 0 -> 24469 bytes .../optimize-storage/assets/zfs14.png | Bin 0 -> 138146 bytes .../optimize-storage/assets/zfs15.png | Bin 0 -> 85470 bytes .../optimize-storage/assets/zfs16.png | Bin 0 -> 116221 bytes .../optimize-storage/assets/zfs2.png | Bin 0 -> 146412 bytes .../optimize-storage/assets/zfs3.png | Bin 0 -> 64109 bytes .../optimize-storage/assets/zfs4.png | Bin 0 -> 122212 bytes .../optimize-storage/assets/zfs5.png | Bin 0 -> 117638 bytes .../optimize-storage/assets/zfs6.png | Bin 0 -> 49654 bytes .../optimize-storage/assets/zfs7.png | Bin 0 -> 90928 bytes .../optimize-storage/assets/zfs8.png | Bin 0 -> 67747 bytes .../optimize-storage/assets/zfs9.png | Bin 0 -> 96548 bytes .../optimize-storage/zfs-storage.mdx | 32 +++++++++--------- 68 files changed, 64 insertions(+), 64 deletions(-) create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png create mode 100644 i18n/de/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs1.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs10.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs11.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs12.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs13.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs14.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs15.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs16.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs2.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs3.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs4.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs5.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs6.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs7.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs8.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/unraid-os/advanced-configurations/optimize-storage/assets/zfs9.png 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 0000000000000000000000000000000000000000..f4f9c201dac522ccd362ec98a3854b72daaa16a5 GIT binary patch literal 215585 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∨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
n%Q7mXRF8|{w(B0L=2fJ;rtfJyV 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

9+SDc9G~Ncb@~r*+R?TB)lGIjsa+3-cWuNbKqO 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba0dbc6dc5f7e991e8392a7c7c7762bc39f0b594 GIT binary patch literal 116819 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 Cm3{($Xyg0s@jN-MP}>-juL(2uq5T)H8hF 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ℑCl(GwIFUQjO0^myoT;9_0be@zIGm^=hC@zP?&~ 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 Z@dUlZjkD2~bwGfdoRqR;jkrn3{{g<{L2v*7 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e9450948e5db904d7cb99a601298f1ab2ac337ce GIT binary patch literal 24469 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4b9ee30b4c9d0a6eb1d09a023e011124858e77ff GIT binary patch literal 138146 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ƕlSml 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..72a34d9d5695cedfb6d1bf44c52ab946ff7137b1 GIT binary patch literal 85470 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 IrTg&z0wSK@mjD0& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7b4e413636e41ffb53d604e6273fb1fb503f7471 GIT binary patch literal 116221 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

RLx7idxH`X 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�}F=pz4u&(Exu9z5a!0WZ-!%bIX%-) zURm8KbNazY45ChOCc@=_)#U`Q(DVH4-gL{0R~;q+{T7#^=ONGp1qM|59KD@EKNInw z3Zh1%RCZ{-AtBzBg<|Z5D^pD5{^o~QmXxHs~7b%Y~};$P(HbHh0-a9I`K!+cyqwlp@MzRtFuUf4hVWT`uD9^VK>=$uT+ zEx&NkGhN9pfv$18JA7RDaL?XfX_*rCGasFsl`b}z-PzCS#bSisTn!2`J&7}d`W55O$z8R2?K4x z-t+#xvS#-8+j&sQg&-W5seUdLp+&;ya_v4YK^p6xBP=P^5RRMd#;23 zqegnFEnk{dt)AM5vyzFh4B0H28`%pZ2HPBkg0ETrLBx-&f%{ZcGzfWft*$13C^J=2 z;|9-mhE=XUuy7{VNtYb2LNghxfbgc>?)@uS!i288kkB%Oet3cYApJT&I6srFWSNvDjV8M z2R{S8z@DvjJs*6m!CRr^_&5+kfp~ascNhDDk9T(Z0y>?X;cA7C2RB^RinTzd&D6td zCLgkyaG7GYI(oz=?8rMBBw`DP5Ou+l>r0Q1*Voa4@DIU6bP4|FJ>9Mg4)+6_BW$Tw zP$>Hz&f(HCW=X0q9Hu+NQve4E&^3W!5p7$M{1hqq@Y03s_~!;ju`VmYdqMJpLjTXzO30&J}y z2b!x?uIiN7&h)Rh#lQq>4AGcK2Fwk8_YO`gV0MF}8V-{19HVO8xa`@7hHbm2I^4;S zm4Ge_V8gH8O*`Wk zR48gE`3Pg0E&XIp0ws!?c^Jm6Wg)%ED66hri@~-16iEd+VR%k9Y?EO=gr}NE(CsLs zo5E=Nb>Ua?T#7?q6BkZcOPLgWlg@ps&K#v}ts%;oB32+agEGUxV6s z5M5-zL*?ytPEZ=hGp3Q$?B%2sDnYR(Jml~yD*6Q>*u{w>E`I-lX7hEsnzllIe`N1U z4$~LNqiACca=%}Ao}sr7L1I!bn@|~mP6>3ho^>ZD_p;%%!QEH}8){eRrZ&6)QL*-( zZG07#=(k1Y@06J4=|QOq!_5IV2Y)AxT#+S%6V4BOLF%QWH281lFUiz3H+Nc?N~%-B z+jkW)pl4*1)&xAAn9$`4B~kzRF-TOP^?8x5a3^ynj|g2Im#)?|#b7SNeE+!UUol7V z2zd@CByq9kJk}3LnGP!LCm|Q%Ouh|Q5}bWRZHHKYKd!&K&_KdZc-?C=Rn`~CNl-Bn zq*NXHuoaV0+}nQ>O)48lHV6Yw-WPohRW1H`zsWFYHFkD#Z;u~tLnb^c50MLMRzn6r zU2yKEVX+*F3(q9<(12KYEd>Lr_7|3tNb`9v7=LY^3e2N$jbNrNxUL}?6n_f8AJxfC z_&r=jfFHpR0R)y*WFk8Yp-FdTA0DzPM8d=1UY9-bg5f8jj^5_ITMkwUyv-+<# zq$qI!VW6(z6G(g3=n`4+AteJ%$OVU@_uHcpoF)e=M7B0-{>4=wL_a;5^5HQT7+pTJ zh8xqs9m1o0U#*Z({K>5L_+?GH(46iw2_k7wP4<{!_EugHz>2uQ0ZmAX7r3Qv7A^kD z>fj|0(VYyH?X#bv@Y0Y;iosHd_QmV2`bxuQd3vN+kdMJWhF@W=?sAJhckYN?<(>*V zMdkDyY44)5XoxXQv8SE(yD$@_{X$w+&7Q#>=}X@M2m>D*P{Ufq6;$b}a~T=j{XJYq z^0>G|`5LY|#|L?7^JOj>{4+gij}|>M{|n6O?FONs2C8||fk0>{3mo23^1NQnK4$to`cU<{Z=o~Ura0~sGz ze6Z$^_a+KL&Xm_RV72h#BfUdyt&^n2RVZ}t6a$i6wGr|_ruOGeCY_q$Ig-O%u=Jcl zQiC?L{M`ORK(90$ezy}tf$jeE4Sbfe;db*$KKaeRKr_zFdaE`&>m{DB%@rP~QV@YE z_q$*2fdF@>ESXY5tU4EMIqE7WrRNqlMkVX~ufKuHcwuX`G`*VRa}v6*G!ULg}oz%p{FD-PYp7xtY&@--=+ zEnIo2KhpN8K`sbL5ZKeO5@9e26fHuQyvFR7-GhZ*6ud==Vs*v67_3B&)dVd%gN|(8 z8H)vg<5znZ$s;-f4GKP9nRz4VCs{BIYzL&G+<_*g>_^?w6j%Jit+{(}tE8sQnM#dZ zhS!)+eq)?JQArJ;Sh+|`tUCC7U) zv4vWMV0pffLS!e&eQ2$bf2S9pM>)4JTX(rL_YPrm9Qpz@iKUaoB+o*)(Nh@-;7RBD zzA}zU0dVE_G}{TJr~rdU=!Xq49wt7ePEyAYqKFR6B=gRJi2+p}tL&|j;wNy`zWw>E z>kktL_ai(tF0%Wap)B|^RB|;CQ7Rd&Nem4K3)ve!BE|hk+bS&tqMgw_?F9klv0)ie<=q672Cro7 znW%w>^Hu9bgh7(8$CFek=cg`WstXGe52NW-$s6;|S~qI=(K$bLW`1Uj`(3*&E357} zc<%xamR3py(*?Z6yG-tM*~seW^_s_PzCA67iHVuF<7EbF69bS#p(X%Y{dd;J_32f} zL@3ts5yQVinWk(zN^%vtXB8th6>I(QUBGk#Ar+K?O0|HN8Ob55_ox^>+f0#;R?0L$ zbv$qS;w|3hTp!5VgS=kKDa%I}RVO=%128zJwG_#59_5Ha%+N_M;*7e^#OSMW)~dje zDz@Ep4MiSZ7+xP%rhd#!!zs%NB~>$cYRZ>pRP}w%%P{@BZLT55-z|W69yzOgy`oiI z$8H$B>E(pq2~sP{vZedv*pPyQWD{r$IjB|RCd2uYlXO}tjVpNlum6ZJzxs#;wK>yj zmc01*39y7M#@lu6bUW4P-U9!0<+@t!i?*@Z<72wkQM;&XORq>6<$Nk+bvbO(LV|+0 zFO$50RQ^pA#7-9)KOQ15+4WWez2-q0NY&`O>JRuotWLb;0!+rSXYvHJ!-M%Syfet95JX*q>|Irz%T4C6=Hx6Nv?%oR7{`;>8E#eO*A-13}d{o2A`w*E!xCzyLZ~n7ICxER^CZne;$+eu1BG`GID-7#yTx!z~X~R z7J}<@K{Fd@$SI3;J{^vs8ho!OsP^NB33jtLGZXinQhRn1}d1N#aE`AeIkmB6=_1kI0=}0$s2zDGhGPc zSet4tfj8{ove+;monjpaw4wA}pZE5zl$CK`P(o;MgrcRP_BmfyVwf0cHuAczIYDWP zzANmmj1Ta*#$v-s$>rmXXs$xAFR(p{OJ`KqE1w>ZT5x-f4Rm4MQV{z?a5Uou)i<9NNj(@QclHTg}itPK^MOgYbjhiNrCJ8noQ4JD33V;<`dy%@tR#LA&qX zBBvwU;ui&c0fyeic-kO0k-HbA)Q*Tp8bMQbpZSPVLNMBR=IvFC^q@Y^59KI&R6y&F zknn|r`Jxg9e-}OuWSYtpQ1c7i_6&tI6?^B1K69ycr{;4sDChnmPJhrPBf&(meZ4sU zJ{((V=1 zK>=bdtz4_P&&;7}+&k&)@8dt>Sp(aX4lTxfbW$i3#E-Cg9Hu`(sXYL|LIQ6fZn;zF z0?U;!dOSL+BarlqZ;R?DR&U0lB65y>NE&%EBez$}TVh>)3zhV?gAy`WK{n`J;`epe zJ6Zia^u&+Q_`rZVS$FVjgDmBFDadW!hKvk;whm=6Y~(tS7a|HRK>&Z+X>*n z9ufCG^xu1aD$l>{0fZBcr`MhmHmg?lEG;o^p*I~;X&H(A;X)>WavKy?!Qz>4A`D>l z#wN{IyJ(*iu&*QEAj4T6Yj(h=X+Oad58=W8gphx&HXCXZ=BXznsLKMpN5G&x^*y7N zIN7?SqM~A=sfG(lEbJQ}k1A#<;C=S#9~Q>_De&hMSAe^YCZwNIO#RE$U8on#iCpeW z33eHacT`v~m%m@AjfKmTh)L|PVfsy@u>F(bSfhA2X#i!EXJ$-~S>%y-r;>;Ps!8gs zQ2mdz$Q^I%yo4+0&O5d(RU2!@`m#j92c*9>E4h6nNYWs4pl@r zxJL{Ua(IZOip}fVU!O@Ov1y@wTuL00Ow_EMfj7YW1o%2x0}v5`cHP)cyT+XnHdUHa z|Ba`lt?MZVYP7NCFX8&G3zc>>PjLGg()%~qYUQ$n9~A)GNOYX zxZ?P?`Hxu=4tdJnPA9!Z@XgD2Mvszka5zQJlO~j%ftUA*cBvMU!jcB3kix-3yZpIk z1_nalDnr|6L?yCI!_aS%9fp_0zCWjyb+Tl7`Sq}17|ht*@DazWr5E>uKKu6+7@(pq zNrW0q5Eib7&embx&6~7y{e4HOrNywkLiZL-5rHrm0EqO=I-`iprAwhq;rG{Wwcfc+ zlDT9WCZ5>R`vJLHC3fk3#XJ~Y*c0v)`z4#xLTBUlQxP>v+9KT$Ceog!)rP@6a+jM2 zFl$IwzyHSDBpEU&q?8?SSIn|AlZdg(TkxZe<;rF>;z(~QUmrTyt^TBq+&VkOMN-MU zGXN|hC-7U?fvihg?EbjB^2=9w&h4B@j(lR<(TG#UI6@JKBCh1eLyORuMkY$K{6(7j zs2fA^2$vRDhNOBpNT-$$ZaU#Vh#NUfKv3Wts&zn7s;~Vu)~x4mhHX-i%&0R-DNk6l z;C*>hJwx^(Wq|BZ{G=`y-={e|r(22DdKRd%Ll&yTjy^v9n3uA6%XYwa@r7_`2 zA4>W27$(Ii#x36syiLhOkhdyVc?rv)7EC!E(}WywqNwm>vw1NM2xKnJ3JK(N8;KM3 zFcJJbN7o3P#CwLSsy&}h$ZVYAn0>9;+oF0SH9w?p`y}??#tXsF?E-@b0@kVeX?>eT z9!f2E9z83|&hq()mGhI-%e(l27VWZeHJsOJ84YGyE7$4-Pu#s3Ud5KeE0Ddx`&ULe z)LNrC`qfGx4R{5#2|w0b3{Y(rRmS$G@duo2 z_n?Td4j{Aiaj(o6(aU_=H(NY!)_&9MOvUjRN*Mx*o3T0j1&|HQV^Tf3+8b1E>P6F?ry+U7BIg_x&CzK?C*r5FCuKIb%66eDCOe`T*P``Z#oLLh6d-nmIB zrv}G+6@rrgo)S85P=z#4ti#x^AcNX&@(P2+;eT2HlhPXrpHsUKO<8R6(WiKLWP(IP zy3xz)Gc8(x=Oc0rIOLz5>k8dR$U&syr)(D%@Yri?(3BB5ORE8x7sC4g!J%vL;q5(GIiLmm3`Y zuVvL~C=4^bC}Zi+(yk)*L(z)ytrae`yhGBqN!A7;?}deHe~PaYW{GX`nJP?apNCcDgq4)MvB2f!q2Q}8rKYTYxd&WFb2@@BBPQiOJ3~nhikR)gN6S<9zP3YO zqF*n38?$;|B%WoQ*ma$9fBBo=x`U1PB`N*589Z<8_v#sU8xDLlC{(-bCIf;^7foKj z=E(BWncu3Y8>kz!|K57T-n^iwowZVf8KVOlfDVnEqTl}$aUp{ z)=!kPw4o<8dYA1Uwfq~*X}70rSFY>yZcI#4S#!mpHg`f`ms23kxd;n%-Em zA5I1NKjo79PPiFWX!Gp(BYPpAX#*b^1kWJo04%!l0~C+)PVT{gd-o}4FONFtHAKOW|z2E4E^4-~iE3Ih#x|^xngL`I)cxL@hmE`ooJp*wM{!LF7wg!_A zo7YacdnO;HaeCXURm#}*3v-+BAHDv;KFJubYZQNjeSAE0@3DaL&9W}m(hu;lA?#tF1LH;7-5R0$4&_`ZOn|i3&EPj?3zW|1 zj*lTgslRVSPMN^dTlvATbd&X*Z~g&VQ7`GGZ%Yge!0D}|DV!B*r&YKHPzOl=?AEXX z9@6001>O#4S)IF=p)$WmYNE=~2Nf|=8R)O4yz8k- z1E1#xSQO*m(b7nh3swK_Y2tD`>9r>I=CT2-B( zmDPms*!-Q~flxqo%-?K*Jz0kTL`F9iD?I)rb zJFT@})6zoC+AjdqF4ZD$2pw%uPl~U+X@wjga-0Xb7|O$~PV~JhE5~%bi}XN|uBKzI zyKR^rIN!Zs*JLP7DGLR4@U~(?B%nt5(!B7!26RaNHP35Vie8JsARTT7kbYgvi&x4i zn+Z|54?H6}Og3dWBJX3JDIYmdS=pZffCU6N{|s4c-*d|nemQI#$BD4A_aUtfAk;Qk z^A>;gj;sYsK?U9e)G_o?#*^3CBg`oy2*hsRSe>~RgS-iB$2IiplVM$5IzDECOD0L2 zH+iq~L*-qF{uem#PJOegtyr7dZ(#-CME5?+bqlI=77P;vPa`MLHUQ^tr1Vye3YKp<>CWj3ou|CunS@I2l5> z*P;rVbe+!iAe55@n=-WWU`ek&I#=Vl+sqlrDNl+OhYg~xG|AC_#%e(kwZhtx5gc-B zM@mvxH04?3%JJ!pvS)=fSfqlO8oMQ$9suHf9x^j%E&fuEp;=LRR{I_>-mB2IZvVc0 zXQvOkFKfayA$pqQ9MsmKQSL#pNc0CkvdL4$MsJcqTi z^)iFy#QxTe04})==?Ra1uZ_mFGH3tB*U?^xSuYljb7AKNPgidx$``1=je&URnu?pG z+f9Md#P$ZYx~1yHaif+ON%b2ZT&Y$$;J_*fsU#4kLI*^Nos%joPOn&&9wm?S5U>Ij zZ}qSNMm4hbXzNp}%>z|c)wkAku0BB{;XejnWF~j(6W)oNrtAKRZS!%rUQ(V0@mfLV z%O+alHXjGG3u@hc+!JIny_KeSg)YHuoERSRAn0Sks(WK7%Y8fhNle73ZMww~ z0k-%Cq2FCOs5HSdr#}cae_>tR0;aD(Zn!L=(6YKm2Q0TpC-@Oz{(~giqf}(H$$(LX_AyMWjGq6X z-8as!&6Nl~j@HW7Xw#s1p~v%7j_~X=m&mY~J9Ei?PCR>_&a^Ff7HP1Jcs9^NJ`*Le z6|}ysj;#!1Ay>&IBEioi=O9tKqP$c_cl-k=1Ju%#RYI9nZdIs#St+GVk0tV z9hpXD-VXTuA;#@z6yKUMbLqS8Jnq<3ELtDc5-h5#W8<8|zB%nvT9?k;rGT>DP8;7bCTpH$6M^cS9N&j4xNIIFUA(p_) zrX+}EO~ppP|NAvely&e$dJ;3FG@*jGBred^LPGvUMbLu4R?zVxtjU*$vH+2L31 zYj?p4`>W8`O;mV^tt9eOWoloIrI{=f_cH4ngYSGl-Y5e!4VfbPMg>}3Zyf}-^r?+y zzS_JGFwPy9(b0rqPNX62s_kQTMxvK*wt%!#X;D_haV(|(UEc>jB56ub=cr=y#6;Ea zPQEq^=Vg-G&SjOWFl_9HTv6swegfztS~R-o2QdE46LO7aBCKX2cocuN6yrEPDW6*C zz1!4Ope=Ej54A6gsvCUD5ihKY!LV&Ue$Iq9-#h`WasrsTdGhAte0)?dlW z9PXRB*$Mj3wIA;TQU&-EYjvj574M;iS1G>Opfa(&((o;>KXd7B4ig^c4`*7?^yOHy zDjISJEmai|tQafD+~rTN>eDu0>9MMvAT|A~%Ng6MR{h}l*O|vIG9M4c3}Y}vFPA}= z1Fl00mYVTp==qn=nCKG{99rIPjZKRyV zJ_U2Pp5k|=baS1^wJQ<8M|Ur|rfwpE!=YtGWTF~o;%(op%^hZmy-qKs=lo1S1n~Lo zXw!pj@}s7p{!XKHj>ezdUwFP44R$#SwVPBJS-d!aUPc>m3cD3}Dr;!5#HU-%{d;=} z;W0ru5l$`lGEL2w^CF>NI0d?kE72ApOyHyY$#f2xzj@JhbxPU_m1YVV^}eYrbU^x( zVR*FSaHAU+C5`*cjS1|I%?|Jo!TP0C%bUcv zN#0T?>>&R#hA>0_8m#zGgvSYzqDPcv8**gGt3b-0JI=~LW>QVXzfkHyHe7v?!FSKuVO5~Cx z2Dzy|(zEJNZBa@tG4=?{QT3=6Qze++?eXe2_#Cis?Cw+Ja8Eds`hS(e&*EOX#||Ee zSZl}Prye4Il%E!@L|#7C(<+^=4ZU>)b@95F92}G%E$)SP=WT3#==vl7rk^U|)P){+ z`Van-xY z5Oi!g8sD{>ZuLCho}J%!fu<#N-a$OjtS;h6EsmJCa(MHNH3T) zM8HXP<-w1o9buSv3(rT2=(kC3&7311Kl>$cz9wqL+VYwVq5C_5L<5(kvCsU97q(n~ z@oEF9XMowK&&))*V@M@``^kR<)8(}IIqdqt+yn_jqQaFTT^O;2C7HMM!{A!>G>PCP zJNj2wd+qvhYf&h;)ib{8S=Gut!Kg0D8Mg_zgeyhK#5&Q#X6v(ZYNJDCF)aM2S_GO6 zP(}rf_UQ4($;l;f)qmf7nyZcc1v1zuoWd97TDDB=-bQ=h&DL;{t*;F%n`J3wL%+nX zl{4|QJ$#=2k)Or-X`Muy3hOw%zx`8Z1spe@C?JALS%Ii6)*L%c3nb#8CxY(cg^~<$ ze;L|HP%4C?6GTx4BsrXc^9|bEPcEj_c#DHdwbmxz<0sVuZ9v^sJdf2BNIQV73|PN+ zE*&QLfvr{7*3eT+*6wL(rUG=tuNCsIu5ZO>qYg|e+R+D_JoJ~D!)0!{Iy)0750Cjs z|G3Ml2ea_5$ATj2fxcezxE%~?1mS^o8sr%7JI%BxWwmRtCo4Y_ikXFxI@!p1%~;A) zVkDWHR%qvZx5FgX`0}_^(^yoXB!yM4CJGP;&|;mRH@&zo=<@9IVZyROa_X7-W;8H5 zAd~U+(|aZ}VB5gPTA$@`9S<|IYrgK|tM0Sgw{Me$kg2FXon2n0QK-P<7jF??e;->H z^8Vpxkc4iZwc$b%OofD!QszTle?W^|k7R*93g9r~Ddkmtb@OL|D&0%I7@@+SM)iLsjJONwB$L(0(tqaAwgoUVp!N5z$Bq7NxqIJhAgf zO#cQjeBRcy6V239W#DoQJ9!jKw?m5+U|H!PQjtEe6v-(P9R(9~ERE&SqAbL0O-ayF zyf}bXTw&f$kJ(*;n!CynZeT@AN20B+iVp0+%`SAguOlnoWWw@IygJGa!0-U^OSqBX zt|kDZMj-HeMY4J4T8x8PV>1=FR?1e9ax%mu{K}2rYiR>bXq*ydQOb_{qB~(U=YbgeIIH=fw zwUBg!HTeGh!n`kT45NWDhf-LBZZUBtHimWDNNDON+@cWPqj`y0U#2u%7q{+4j|z|Ve4yH55l24atou1;WG>jZ8;1y%?Ly*2L+JyB+5PBa1 zUIk^!i1mwq4sG};Yy1IRN}azG1cWX-b$Y*ODn;1>(*=`>)=XAi(spq8r>u2~sR z23IX+mCj6VCe06&k$6^@IXQP=YtTDQb*?L)oj}&KbxM5qJN@NXurK?lF%SvgMWZQZ z9vu_6$xl|y)m^6B!_igNcyK>vrA+dBsZ+Z0_f-Z2(>3~j2r&P?8IWpv0le$zXjR$& z(oa=|cz!#b-t|W~dC98HJRZtig~;3Wee2Y#wYN?SOramT4P(tN8ucGdC+xJTBF(A$6RY@46y-oXEzb4O9=U-Uu)M>S#O4uD;nH_!InaocBgPb|lOK7Hp(+a6zWuG%S z)J6PGSD(%=I?fyBIPcE*ofDt>O0egOec>_jC4YVL&B6s5hM%(;V+yd;DSvT=#nN6X z8@;*Q@U7-T0|vZJHUT15aeV79RI+5C69bmdS&RV*tI=%Lj&a(8er&6j#Isiq1MwrY zzcxj<4$b=l3lWt1l=+?{_oXv25_(=|z&tT0AXgcnQmZ8H4P-7=lvEkhz)p=a02mSX z9tD2Z@VmWVoCqphGl9pC2e)gG5pmm~ zy)dche#`~arn-C;8lY+c@B2mO;OY_p_oL^h8u^)h1TK#C;2}2#n3AMj{v_5E8-rnn zlZfmA8FDg&A-PcP;W@I$N9JrA%~})PIXzacg+!%xrzK zdHJ9@dA7{|zO$$fx`NHhRWxg!?MNs9OGM{4h6|7~u* z>zVmbow>T}A2k}Ut3eF@7>>FOC3ZgfHU?arq*wvUYea2k(PNN*fo|)@?f8W(rO2?J z83Ub;aty)mxoM*~96f%d!Hx#6sws23VsY$6A+)B65q6()B^vVSslvZfVE*}WjpVHi-AN$rLi;d`K77qtd+(13_Sl^@_MCOf(qB-QRuRYCSk)?>CDoe zQ{pyKSibOUzQi2(Nj!JkJO z#bme1;Uvi#NX0Nqs{L$wy-A``?jEA%yyr;OIn~u#^7)3#lfZ?yT*34+|8)mGH&2YY zuIq{*VgzHMFGPcf|OxzaB z@bp-;$6i*wePM5<)o|2v`lZi-+Nh<@Ky71^;>@L$Q^kb+lBF?&)q%f4Jre^yz4=-B zI!iV)b<^~(@I3B4vyPqJ-^Owh4)ilkExDr<&7eNNY$YIXkyUdye<2|W`*CqQpCg!c zV2Dn&?oWc?wQ*aGZ*z692Vh0A{FL~!H%3|=0&_oy`Nq$N+&C5w`S4P_AFek@Y!G~! zx`vtzj*qnUwwEQF^#VJlRtbAHI+=Ci;5qw4vOpdgN*UN$dqQJ1F7w_)OopS+y)t3W zVB7caWWC1&OD<4ys6s3}k{re3Mx&~6Bau`nu+t%|10F^$q=oHJS1N7W zG~GWxP8-QA=vgT{^|R?FP|I8Ww8`t&tE)<Sb|8#|xsNwg)Iwrdxv)^j&MtP7@fNUTH;bY0JgSkpLOncA2@)$_ z<>iW?qpscS199`h0i*HgiXM7<+7#AIa2oOuX?5~ts2HdH4%#foBTFj2a>9go!ui4e z_dwIDAi8|u>|wPbP|2*JN>SojEJGNnd|m@zd@9i%J`$xg3La`b+y8ks2`UZm>%{$S zG}O}hteQEybglqQOKmm1Sla#JF<4RnyyF++QcZ@c3+hR-1| z$zS4LsaHR)D%rHKmuS+@T>JmxXdO34k5trP%VyEtegY~pY;3E22_23`2ZpD(F-!Pc zh1qVKAN}^toU06263f|%KmV2Q>IxD`oveu(_YUEVOzF{q3rmc|`*<4ck{S4#(suj{y>IE$x=37;v zexo8Dh4}7d=OtDr^YfE83CEIqp3|8gpU#%eYDUw~P&fDSpLu2J(EdN3z5|@<|9$`1 zWQ&klk&&I9y|S{RkgYNb*?X7l8Io0G7n#Z4TS6kEV~-?zbI$)ceZIecm+O0VU7v5q zIq<&vW1RbKmdztREov&ri}K0;!NEH=U4YY$bo5jW;Y>Go3Ye3ifXw|8MS>Uh2K_ zu<6B``jns5=iN!?fh;{7wC3c;hATbWYe#PmbpwV1E;m(gPqFuFUn6O6WTO6?^kr!B z-sG(KZL=c^H{s!L9G?5I7f0U7Apb}3* z4I*~2$$6YDr^kmDBpBl@#Pl(1Q7y_Ye1<+u=k zs@e}c{wX+rO?RsO`Ox)dZAiYIiXfP)_TxWF$?im+{Bm+$d9ausU=v`(R(ZZA)Nbk; z$1@VZg443MVzfRbveNfIL6FQvTcp`#ZyIIivS5wa^xC+y?D^7zz(XUM#=*r3qyl;g zUUjhtgd3xsP2RnV;vlBDtdS9ex zKub23ni|@lI=23Ye0jg@?3Ja&!?nxt3#Yd+#bP*w?@A2;MH6gE2kjipLc>(86uD6f z%%+33u-vd=dj>@17_nsxjGF>N5pc4`0Sd;UowqSLgfK{X=#N;mL`!oLdo+euAA6PzQF^UFju~f8i2^kOs)J

d7~P3W#Y2x6myRgMxQ0BcKXRn?Qc3LSW}ObTAlH6f7-a*bVqq zm{UB6hlvNET_9Tr{x{6hujZU21Oa{!aL*yYu0I-}=)&TYpEcXn3Cfd6s!e+pIX~9q zT1)Q*812;gCw}qI#A@PSe1ydk7ndgY$e)Ad5SIL%`E1@p^rg5(vmUjD+gH|_$p3u( zw#n@<@LS~-%5lect$A}tuJ3=3dixJJx&y9@T98HIV8ZXPA*b@=JCcNkO1O<yX4_@N&V+TF zv|}c$8yH8}0`5N!K(2WDubdXIgHQ>xFJ1h!Yop%2wDhw6`{ha6o@50oW#RY=z*1Qv zZ32)a0C>dF`5|)qbhCMZ1vSUARUms#1PPchPzsa8`F0h?fiMLxPFB*aZN(B?0LtLf zbt{;*uHZR{zi)t%e)-C({s0COU={#vC^Usix*ZS- zx;2D88-fr_V5!qKGBYy)SP)Wd4h;<@7~8!Y(r8u&RXj}Z3S%Am#>d>jgk2tKn@E|yy2YbUII zo^S4%X$&wu0DIw>Kw4!dPq}hmO-L)0qJHtrjcIN2ygu5=wm<#hTFY+2$tDg{F5%u5 zi>ukzQBqP_^^ED%aX@Knw`?kKIuSc}e;wA#|6MC^C(*VucU<`D`c+w#xt;fRvNXE` zlB#LRKal&aj3UBuKw`By$;j`-=-xbgiASKhx10;pp$O5ywiKqi9b*2zBuj{mu;{oy zTE&nb0ApE@J@fM^3|M|&-}jZ3vJ(T$5hRMoc))ACaF}|U{(Kc1M2oU#bL0>zD*_)L zR~|ejV7>~I%;6_PAlF9$(qBaE!ZQ~a>}Nr2YVbuv^#~$dz&(K00dW&lIIM~g1O;Zn zpjC~47>HN6&8U+bzZ!iBK$HJe6k{Gdx45_%)yO)s=$jhl@Z&HjoxhaF?m^1Wucphv zc2c)PGZsHN5w(wB%ZX#~@>X9t$>(VI?_Mf0Ewg*{_3o6c#i2;5pQwKnmb^Mb_1PZR z26|?^r6BsSz{Hxo-pmOfQSrmMd0$HUnOxR3nnX2yk9~!;{#DM}&}eqv#cQXUh_w~u z{O*nJRLn4elrJoDFiuf}@xnHjFCAlJG~h)H{6D}JR9@=Qxtw*BbQ5?d0tfyqaPD9} z3s`2NNM+GyH-Ya3Z&oE;CAu)!tl+cq4?mlOP?Kwu8=|lUO4q@_Bjr)~KHnu`V8HA@ zM&{2bQQ$^*pdpQ#78Y6#C+vGAn6d>KsZV1UW)L6=EI1Wm`b#c^2*{5kNZMopE@^-S z=69MokG11Qo79d>v-8F&!{$hpkCfk&mc#i)F0JL0IkLj)Q0BYt z)2R4YTVre0TeWoMLCdH=Rlu!@{b-G$yCd}I#lxhZXa4J7`UT?ob{h+IUHl}Wa9c3S z{pT5iafN}Y;tHMx2=gWeIs#HQfSNU|X@=Vvvb<832%NgzO)<`ikUENvfH`?^CIL%` z1-Pp~1m(;Kk9K$06$JX=QE+GU+lB|&T{yeA0ADa9ga+w7CTbJ{Re?4S@@XW~1-}Y> zuul*>1DJ~+Gx7`*1NdM=^Clk-46AZOR+9Dyi2=IQ7;Ee7fDUU)s6Om=M6wuz6t8kUMP!78z!4 zSV`Mwk?0w{6CJFX5n#j4#Q6x_Qzuqy@QTHumX<{2&k z!|@E!-4_8VK0+=0MVsmv&|ui|2^IxZE+;Hd%=A8X%b`4&EP?+KEJk35hYl%f9NOJy zd_RURgkN!jGZF?!I3qC(5?Jjw9$xD{#PZ3`zeu^ZE^(tBT{QHk{`+ z!Uo+mOg?OZUqAd}%;dyrGx}Bl`rH#ViU+Qsgod{ds!ieaK?adsPxuNOd=JSW%H4eH zWdF(8IT9_6+AEO7c&S6>1pgIAGB6tswQr85LBnfBLC|d6(QY;xlDHsv3TAZxTm}^r zY)2F%v`_}Z2)?W@a%@^W@sYoUDmHFolINqz&V#3$G6OOL*}r7VDc7x<&2CEHG@UVE zzpb`M7Rws3iB(&~hO48Wtk13H%}uSBAa^x^DCzK*>(Dt4gj)H=ljGxH?3U_HG3Gx1 zB$p7g2?J;q;e-(+Fw=hE0-bu`Q9BFfQ*=G^vR#n!YnIZQcAxiy zM@P-nHi#Hch@6GEqjGTH=QaUozxQE<%Ga%xxVzVrdL5iP?Q?Yb5*V&vrp5M46qXwcYbZQeD+nE`udko5 zeL8#A5CMb0V4h|vBTJshb|tA7M$LgJqcLmrc>#>VzzQ*Bs2s_BYHSR}oc=I?0iufH zVhEpz+R{ zQi1afHiht=`h?Sry|1jG2*e;Vo->jvx0vpay92|H*>N!5e6&Aq{_`}k>+nQ4#Ep~a zte(U0E|i%V%i+Qw#R3%&&)fa;=g%Y^V|1PGVHIVni&y$h)(F(l=hO~?@V}l&GW_5I zV#_n)23x2F4IsjFW&04mdk6u+q?W@a{*M@fFgox}yI>Sl zf_0_*jcl+gE}}pXgb5Ib=L^9dFJYRM`x4KkDE4mH#n6=XJg(%?-s7_h%MKA&^c~xL zf4<-{bC2mJ7hcfU)5+SpMwfP19D1cNOV&)SYpMObx?4^^Pnly`zB!283ALm%P7{;!0lOE-zyRvWa-M$pp1z4> zmOM`U(k`<92{WlqW#R;0d|{RlPyRZ;k2`zIjyQ4e)0p;;^-Agr8g6hE=~>xbb(@3- z7wj+W?3hQr-)RQ%L_WbdwZT@zXtlSdQnE=?teG^w(m17>FiQL-LL&0s@cyO`Z)YAh zVS^^&g86J`C`lHa=hnWy3?J_iV<`W+IxE?|G>56$+FGd6LjE18AFj$Va@wS+|CNZv zF&&58HyF>GiX9<`3Tx zdW0@t7~M>p6Yi#|=e;fdo!dY$|MkX6TU0>m9(LY_(@nmdF0}PXE(`InvPd(hj)6ND zI&el*<}-P#&?`or-+Hfh-xbZ1C-}Iq^gI-ThX!XoY?sQP(L`bRuE`c7)OrfdS z7C2w|x>%WU3t|#8_~d2bfml!XRtzwj?(r0C=Wcir928T3s&yzNUvs-$adp%VZ=rJQ ze*KlabSI~}PyoAUYb!979T#DkcF z+p|k@bZBhsTG4>JMbzL@4-cP=oZRTI1>AEmMGLSj0k}IXU~I*~b^vqZ8h=cwea&9S zxr)|Gww_=BeeL&m~0y@(iph{^pjYI2vhuCXTv0 z!sM?vZ}7XRu3Ywv<|mcGmQEi80s>R(j#jbuk3Wq8_dWHzwwymzart%_t%XYNaExy_ zi&LcEh##U>P*m#Z-0s#JZ8ILBwPWRR5~f>!#n1fkyXqR;&|MPGOEX#5haP?Fp4~n6 z14qQ|?S zK87htz44?e?r;;CJ8IW{NNMk-35iA%-d+3I&&k(}m`(H|Hd|D(Yvw>&8YQe z!{bKK)A-3`Pw=62uG@ekhS;T#dlK}gYUJAnQ3aaULow3n5(Bt9K#hF{X7u7RGLXmv z1Fjf{8c=p&4AbE*4oKjfUa>Gh=1{KJZq8@mj4zd?d=4z-SE@txY%7iN+Wv*4Be)fy zsS`@m{4o6YRQ?6Ay8K*Vklc8P-lJ6~4_f`~=cMu{{1SH)x?Tt5 z3|pwHd%Gl(S#2?j=FFmA`sGMJ~^aIq(gph zm*2NQ&my#Npxc?7*~qq~{~%*(q$j}*=edL#q?Mk&X8C>(MMde}A`pYDksK#C|V zH$WmZvbiF$r)qwlr)w2}tIrm=-M7?iFvJq7rxImcqrW%!GLYa_Y^A=7*o6_TLW3vY zL`dzA2Ht2DyjJ-e=RQij+LT+K^91hAn>Ihcr(6BjGD08u1G_AmZt4>@;`%BOgMnXlB)gjWZwSos! z{XG>Jsq9r^wYSQprR%U35J8|of@;%r{O7y_SPKYW2Dq#Ok74N@{_)pedJf|T#GE4n z;*yf!vD5k)82~{p{T(F8=D@hX^YOsW<>l*O2{stbb(y$nlRRQ7md1ZuIroQiEXA*z z%;#zf8DeKoJi`1g^n3#+ljv=E_3sZ^)AJ+rxnIEGF9|+#LlCg14}|_8K8XV40plVi zRN#EWrW#L^wzTsDcEyDk?D@pJdTPO$HeKJ&DZ(q6JOWnzP-zWf<8gByDEYIcTL ztfKHfCd`A4OQ&S$;Rq*nBxiCT7(6J4agEtRL@)S!!APsH(&(IDEhw^A_fJ;cLImAR zJ-IGxj^Bmu;++l&6X%6d7D7fryOjDnI@EX&;0R^v?b~I5$qcVmfpaLFxS${ldb04u z#)g)F;PlxH%Rg(@V>PU3`Ms_fMQ$ib%Iq02ih1=k4)L=*-S{Wd!`SPW= z_{pk|N5qU^Iv!a%^jKO2F=l0PK8>;CWk?HnpZh+UG3#Aj_<-6%ch!t+hXNBCeGd;0 zj3;lK^V2G0hbrUyJfs+>qy9&j=0Kmj{Fpd{_9kqJf6ZDK{1bpwC(e?t%B<*d&+7*hPo2Dj*TQ%WhJV0i zMe}*0EHi>m0w?`JD`TD>H?@H>w;xM=X+Ir4h!?@lBdT*lB^h$SNN@nRgZFNL2j*)M zw>A4a9!j;ssMILS)vnvz$!+k7AWsbwY-oV19^w7I(cL+YZm~?Cnw4INaRk5-NqSBdSV=I?OgoN{Zj`6O`Gk zR=OovU?7TlpP0J+>|o02=xF;IfNs|G@!Lz@%(u$w^=}?gv(axk&&GJ6@aSh`?f=|H z#|C&zm1p5F1YLCpttrHF3>>km^U`ydt_yWO5t1W(=r?XJ@@HcMqR(F{e?P**=M4v! zV7+4r7e*NH0Yi~6;&CZ`k!mH&yk@mPY(p(_n7ReAvK(KkA~y}4pFWBT5fzeTEG{92 zO>+iKj&&^9FU+>vcz>(Q=O1>0+XceP*ZarD#y;9nnq%ws2}t0C6cb*ub_FHXLm_&o zX23niswlkm8Js9226wKckNxx$zRbXx9H}#=@1>2`Ep+E%av$PN3QT<|2Y&1Ro(UnB zDV_lkE(B}QuZhA;+x19hxMbz^5bd|B0n!C?U25o>ph@Ny4yU;utsX`vK?H>vba!}D z9&Ma8F>BwIi}V2kx!v=aR6LgH;9OEWBiatEdzs_nwQK}3@rT5xYVJq7Se&KyV_xSn z?3*I}%drb!t#SpkH*&dx=qQtB!C~$gTtHT7Dm@c-@aYxb-Vlu zFVB;DO;V@t0YsHbX8xBmY4v??s&u#ZNfw&VhyR<%UG7w8H?MGr9*2CJPrj1saU2Ac z5*j&VYbJazKYskk%FaKXQYwg`BRRo1bU%{#zF$6f+WUs${S~>PVaO_jRdF!=PSCl4 zZy=&KYX~+*Qtxwvxu27hZP2|d79@QAn*F!LnNAfp!Nt+%3>B$=$%Kxw4{mJJdGllWkVE5q_{*AQOSVrmFPGh^t1kY?0=+0gL_n$7$TZhG%^aDqXdj5iBKI>N_?Itc840?zmE zLxlx;bEs9XzV)kOE%cQ!j@1A51;QuES!AH8p9AUf>FH^-*#qumLm2^jVX2LJ@X!%w z6jCfR;e#$z`gQk_sFPdbxX)OQz$7#8o~?7oN;HS}SZ=r1@3+c-Fkl+2MgYOxBtgMJ zpJ$p9TG&uZfG@z6c@elFI8h*d#@WlOr|K%_{K~1!RCdl&rO*wxTRO?Ckv`BBG&VL0 z`9sCnt>QXfd0Hao9qw7E1GvJUcBzq2!b_R&UoB9_$E%1Shy*MNbQ zDOU43&Qwj>=*E+JnWGm-tMV2vMx`ea2Lr`HtCA0u<@s_gU0rehv)6oXxrjLWv>|8v zYC`da0%cf&wcVxoAhXZieLYOf%vNx}e8~vzY0wmM0KBoP8QMP>$1ymC19#htQGi1ai?{$>4Gluv zu0U(*?(WW#dPcQ+!Vxz5WBEEJ(Gt$4_j+6yk?++cST|4VgCHZAy<3wSfQclnb_^{E zcnH)6Ju9K%zKy@+03P4`1;Ky44-+Sb+$3Ybrx5aEFiT(7=LLeA|npzXE$O&V?Rq$Bf!rI)uSq3w~sCC%eb@ zKlnz5<41b=CmHDa{W4OXEkP(TVV`XuA^p?Dm3+w ze%u8BP?U+@tEW)dz;vwBnFdedT@N+G(!9lGRqj-UtPFeKvkmk`7kj&0Ff^VeX z>BeX9cX%qOp%n^BOr|3J3*amPug!Zy`G}pupKE5BzQEs6vFc8i;HN&UEk?QH%~pl# zSTJ0aYqJoL0|*v60eH|4h2Ul2h>VVD3vJ>k{|NLZV0A!m!mK+&4t$%Amz7@D@DN{g z#Wv6dI0RxmU--!kDXmLpdT=Tbz~_g42@XBh?4j`NeWr#vWgSS`%P)0KiM!Y5vNF4h3t zugFa^``G)fL}dEVsz+3K<$_NDM-q|o#~XV-^0N9O0yWsA&+*msu3m~_(!72V)WM~K z75&k<7Oz9~+^7w{F1c9xj(3x0@Opn=CxvEkS#!fp^2!awm76V(-Hx;h1`RovT-Y_c z3xzD3{bV560l);Zz`1Lg>hh$n`!CzEWCG4WjN4LpuzM_$j&FF0iD!{`Vrr%njw}%1 zS_rg^jj{VQ%77kMD2=tPp}ageCg#qoej4Zpz}5#audhU(3{9fue%1_*a4$y%71cC0 z#>`}zt{O3s<^_WzfiR_G$(t>%Sv)1vapi(h7|sA;_G;Bs5ZjeZbxWr}mQw-(o|rX& zwyB7SU1SN%>b2@)c6YDeMD;ISfLr_bzVXp?iKW2Ad`6mBw%Dr@Z67J%Fn~p>daqT` z&KUP_I#rz=qA_9f!O}j+;%IG$zhZ>prl#+Zo4F?3Fsh%U!*ey)PIE|3$+wxTLy%_N z+g$0hn$W@KWNb_S3jq|KnJ{n!Ff9u8AB1D%+X2$n0?27#`)&jKn03xI7G~!8bf>0P za@n(%9D9hj)ID)CCAZ7r^2mVQ4oSUGll(*VF=AnI3^*TvI<`4r1rt>`Ey3og730?g zN5Z8!Jq+c5H#IfIb72dk|6b^h1C8s%%*;O%CC*r&>6_0F7~qjd8Qv+ltE%_*_1R0= zGb|`02fhHshynE>uJ@Bm@Ph{r$YoI3^{jLKdhFGmcNOed5D|4miw=QgZyAqZ@joB# zS|Eb|KjspI$6;A+2>21qlKlDeXLf&mT*E3=?%8=t{}O9tK{4FKMHcVHO1pm_0Xt0TU6O{5waPUt;0tbmg7Jo9l4O!kOL|9SFRB z$r!XR0RDDgngoeSnB}LvY;hg8)T@(fQM~GvSFWu#(JsHolKawzJnH0=TfRC>` zhD8J*`zA6FoLRya#G`*e^0o#`;k_rT?!L9PwnFDGpg;kx%cDND`E04owtDgzW4baA zjEXCYs&S{}B}CUR(T;l6O!0y(mHD?d+?6Z+@*SxC_4`0V9Q*No=jeH9$L?uPqCsV- zOxNCHDU-bbW73!;fZ=ub_JzKlhr*aTSag?F&BCfw?%9l~nHi+f%BRqPV=<5%9{fi4 z;uGaalI6s%JQE_B#Cd;rP0r@6A+I4=d$QjAlvr@Q@)7=|>mgtH%KI---1U8;S_7F$nyCB+M@xuL=T@ zTa+fmPyseK`o8>Wh1Fdnc!8c$24SEZKU~#PPF0bdgPjY0*$|+J0nX0$%K}4J@IvBV zDCih0)NeK^%VfW_#Jw7wspb0!y>l!jDkhdNL{P*C^fWlXT6En){78lM!6*yP5JXR? z(z_0EmcKs}C#kw(%u7Om14?x2NafX^JbZ8Nkev97Q>MIaNxl85T(#LrBQTmc@&m(r z)&gyPsr%v~xS0DU2c~`RK0txbB~%030D5L*WmVMmC{JBx)CIOO@jMfshBEXh;t&Uo?5U6ZR?z+|yXx{^Uy7mzb%S)I@0Dgu`r9 zY+x0WETzN$D_ zW8c)(&@1#Xr3Hc;$o$%dhKFAYmB^9P(+?BAzC_3lfx`rR-EcQDnqJm8G=TJ3`;+%S z6L9-pznlw$|RVo9PtWq zt4gO-tkZ^k25M#C6IS=J6I#HpZRu+XR0Yr?s1}UMPpXRcKUeSuJ^`>5ATeR9{CH`f z7YSO25tbgWYMyno7z&?zypL~cvU9!tcDFCASb-SN(~ie31DKIwPMt^e7h-<6Pq3ue zy~xSot(xLZA$tTAj%$cYF4<6e`Kj4>ok2ZjD-8NRM5QC8=rylsv=nd{Zwv;-l~5Dia(Uy(xu z2P+m2BK;4U7&&_U^QaW$D0q99fUL}%9<} zb4}OjBjhd$Up|5W+vh-rM=YHaP=1u^cgQo*>#s;rr%%{ckQneoleV|Wg4SvNB};%s z7gMsjuWE;Pds5AuxuKdjdYJYGd5xTAc$LbU*U;RODz=y3SU6a}!#(_(Rn9^xx()A| z`Gwe0yt)7`ZUaa-0^ax!)L%^6qgCwtc0xz~NSiQ$;lv0TZQ_emA9GJb7@v@PlO|q+ zv0TA&jmzYH+4)q#`YDbyH=b8f0z--^g+5Sj$}y0I!D8-!uIR=U&+OT1N;b7NtEM2a z-Pg{osZVf&Agi~O99wyF&8T4AXw~OZ5p{A6G45~hKu*@fPWkSx3?6BMjIjWXfSC5< zLcZltU{~DsZ*@pFc-gf{mlQ$N{e`cn`|b$L@I`h~Str}RxpZOZOR9hSKh{)jkX_Ya&wYjV!h?jb8a zlUz+u$ zX#u`7NqZuZV~D&mA(p*;JX6xW z&F9){KHlmza?pyDmt8jGDb&+AJ1z~)Lp@vByvAwQn|&$ydG2}8lavXd@?o z!?*N6Y^yrQc*pr`BF(w_ugEDad;#*!&eb#1TZ=g~j$WL7HMR`cjN9IFh1Gb?{{>Vzhb)4YW zfaX?SkO9yucr2(>C?O3d$*fpU(L+8z!qo#0LuwCK9cJ$` zEd26xR*^vm+FKhuQ<{AwkD+ad-YS!!=bJVUj%_DQrwa7^N-mXCAIB{F`;&&}W_`@b zW%t)QRcc&4b29$Ku6&jx6Zrd=a~A53wbJn_*c#63|6E`aI-3WtA{C>R&+n)L*#y)= z9)wx)%-pUzihWSHWx#nPqeLt1+$HYcWPc^g?U!yhfh_aG#b3*efb|1UfXO9#axLj= zhvUkGJdwCd>@=;drCPG8ssN9Ub2gaxdt{w`(IFC7XTKUhyJkiCK1xSRqM2Xz*YL3k z%~}kfk~aqp`q*JeJm8i=%t2_zz4xuGHy^hZNS>q|ER~8GC8jwmb;qTAV5{@^c&{6v z`#AMH#{B6C9_&qVQIc!lK=F`+LjEdq&%Qf;ZZ7)#*oH|YuUK6NX_k=sH&pxs)p&yw z0qrKfWivaGk7$&AUdZ{mKSsk4ulTahOQ`jsFic>BA8tHCCD$CUX;N`-ch!}f(>d)d z7Q2NpbTPc(l<)V}`#n$y!MHI@Sc9D9H5R{yd{LiX(Q}s~>QDHjIBB2W3q**3@pu|0 zZ$5Ivx8N|XaPRPEII%cIB1+4igUF9nNzQ@^bKYCvF^?RbPS^B)^Il!>Q~MxC&#K9?$6GCtm8L&LjBLK?mp@rZVpA>>SCF zP3?bYR;D=aey?(-#^IipMj~4ZTBCT{Pe1;(7XFf7lK3U+*lvQK1!1MR_e$PTshpjj%kVw;_*O`*qTp zb?1Zq$B_C0!}V)>>`@0v%=o5<@+TcUn%2ghhC6e0!K2!v!qCq_ouPhcoI;Zk#a3>^ zYC6InQ_e0P?bMd-cW~e9y=#Od@{^|M zY7Po&$z_dg(r#Y3dR!8XVq1`{dmB^3wBIGm(azFBWqON(`9==3IA&#_+bOq=FJ1pI zz-)jwd(EFs@9`A)D;cMB?)XKV{Jzu3N-O!Ef3yjFZ{V&e?*|e}eHDZk$U{ZtV{RZ% zFD_!IXdG^<*ueP>x;21WNsUmbIrREl33) zf4xZ6sgbAuSQCb5p!)*Mw5@`NQ{BSkUP-mmJ=O2t3OUZBYrkEM|2EUy`$VYMqk0(J z#hXdi_0go1HHnD <1u2?vIECsYWsN#<~P#LP%LcdzG1{1~HoV`Ed>K%#!j{@v_b zv2^)*_BZx)UvxT~Lp|y{-Sjv&z~t##k{VGXIK7|G z#W>FO_>2g(Jrrl+53!IdtaATqK$h z3c7Zf5dahlEL$wsK63*=Q6kiO`xRHt%;sUco*f zFTw_hs$=T2lP-6%0CODu6ELO`483K~vy5}{N&@~ zFCrv3fJ{G?-w-G3@BKA1^XM|&;wr$ipGWpK6}Xz$-Bl6}j6a5f7~t_Us;OYkW^l0& zvlIy3UEITkcDlylrGg(BkVHT_l+%en#~6P@b|O3*Rsl{ZEkKtD-sn|s%DR9R0^|ya zx@)c9;fyEGh$=}^ObqGc=UZ`dWIR1Qpb)xuS%5m`y9DM)BFXvL~%6a`yp@N8wXDv zC=3&{^4>lY>Y=>=s2y41VTL>n!JU4f@#khOSR${!9AJSX77M@`&>|oN(xQj$O$D)# z;zt2GRN(*r&V=mXqdqr=q5(-KP|i0|U@hVs3;Gjin4tMtB*uH{;8@WU0Bq<-<4$q6 z-($bs_1iAofGzjC?vv)Od>{7(%AhGqkw3>lw==FZ*>AL)-*+CLDE3q{5n%7#X5A8E zjSj@Z3cgLiTb#?^T)!CArM!8pD(f^`rhd^YoN=rhTiFUo4#`YDXzDM#XqmW6jR#aF zQFMYFV{*nk41a)fz|a_xoXL}{4z&U-Q+a*vlJ*{a_64tfzj60r$ItZDw^I9o?<0U5 zh~)Z3jR<90wud~4_P*d(O=$!84cHHPGh35y4PebaHYPm3!%oDdpfdmb=hKwrTZ}O( z;6Vj9;((VK0XY~W*}~x8i_KG>J}pf|&Xv2kbz_cm7+6DA)`kWw%L@=iKi2DFp#lK( z6~wOyi#3W@ZSv}WgSVf|0j{LGb9@dT=thCcE)x@Zq#PJD0>WxK4)$cQw?OCzMl^$u zLBI&O?B`{h(F}}N7x473w-&N#Wf)2D!8sk?(bLj}<^IDYgD+SXLW09j%{~c7J^j%F zRU-JNI!sx1h%)_%9|E&Q!xVZU)2GXtITgX6IZ31@{DYTAL=04y#@daByLJ#^D#hGh zp*gV9D!#F?A?W`cwAFLZsAWzaV`+v54MaMNJ3%lhxN_%uQn2OXM58z(nX_}bNuPk- z)5I;V!*=zxw$}&KYp*2MG6X&cSX<*5Uk}wQhYyrMT=IL%hq+}CAtn(rx(2xrDup$h z<$V&tmjiXU%VE^$_wPgr1}7DlvTJA{tjFwQB&vW)r}KRt9cVSM)fNbjLH33QZwS$v7vYv(EDDYiOB{-e}IiIvk&4TJu4F6O8g8dc{2>cRmJO4bFCp~K2j zjVvfFS4$4n0;x`=^J$*mXEF| z!e9+3&fKap#(I(N^3!P0Q_CcNInCvG z?G}PACQMugg+P+K3B%w6^o$o?TutX!OBBegql@FPtu_XJ9wI`ZTue9yab*5LUzhaX2{WusqAU5!=~DPR|G_voCT6+C4%}gG-k>uYQYw z3y1TP2K;Egins5JQ@IBC+Wbttr)Ea%-eY}(M>%26(M7czY-)A+tQ{6(Nh!;b+|vTB z(rO{ih5`%qP~zMxtK7>0!QR^P<8Mto1l;H-3BRrL11!5^x>wBdAFj(;aS1}a8sOzK zjth&6)GI4@QUcs~-MAD}*ga+-KF9I%O9)kky6odeNZufYAD|mVAGiAPWB>TtOC-4= znr~?|67~3^3g1ih)kQddUi&aN{3PMRU_7s1U!VMV34mz$>AG@lE`Twy?b#VMoAPN= z;ZeyCPPGrgwI0XKFNPs|@V~OndMxUO-Kj0=L5A1;>3+ViX`f0%=eXJq{r@w4xmRN^ zlqO&enFT8A`%-bbe`%vI(vzD9;gagQ?CMuoab^zvf$W;&EVK+f+oqdw^i}8SIqy2s?9wJhz zyk@;3K-{|+-)=LL5ZGpkZEqi4gXEud?LN{1du-~Wd(#n z8EKmMVBlZ9;C&N_OIRV;2)NSgV?j0I_FF+$UsaDa$f!vFb^8Uv(lWTQ;B_l2@4~+~ zOd&!Zf;S9Ct*TkTcazV+fHeCFvF7#bz(Kf~hFUH@b9aYq!WLYP(5e_2_zvBqqx6ah z?~E$);=Ejg--eTs!Pvh07?_<8`nljy#mK?9-a=2YSZ4G3VqDHwK%Fr|b)xCfb_xc( zoN-ypBHU(cb$pPW0NWTk33#j_u7*j{7hlj^t`0Et56Pf(Gp~F11`S02$eNqQ(aYmq z#O$4dX9c5MC+XKRzse;%0vh8$lU}R znq|0}`!&ShP1u!$GH=F z%y|6G=z6~p8)CN;`{odcn{ETcd3@~M^5ZDP?lShcs=7q9qwCZpN31kO%rY_IG#+Re zC@8#yKL|A(HwZHiXZ&8(h%cz=)NRbw3bn1*-SqjiZIe~V;;`7?^uewbx#kACE?`Yk z`r?NV_4DIq!-lW3((%Ll^Y91*tsE!v;fL+{05+kXTMs!s_ZJtR(?6gd%p(+}=cN_| zrvkvH!2z>|Gje9bBduK7Rg2Oh^842nS5UVBqr4lkEFusahM5wD5S0}Dr6Q*O3d5K` z?rW$+BFQpfaWJ8bEMUQy*SxFi@&>1`D0^r{BTN>_H+UP!&@dKd8*gV>SagD^D@j*D zchTGpPgE$4nQ=YGg00ZC9Ci*yQh z0>}i^i=N8#98;Pol39-#rbK`jAuKV_QQs6Du$r@$Y4*s_`JRy>=~qqET^?HKs5;6K z+|Oz(8|H8e+$2d!QF3-!>e5u83xsJIxQsw2JSaO8CyWwa7Ul=F3VjOLCR^8C6)to0 z*DY29L4Cd*)YNo$Pa-zU&JFVpRza>j2?>}C%t->~JQErAZ}3e=L!PjIa1`2?I=Vs} zo#h_<29>e)3aDqlqpe`m_735<>r=aruk?4po6ua1JNao}4RfHb?+;GT^QcKK4?#C; zh>-FPVetg>lwGMKLi0ky?EljOWEsV-&%+voihWHJKTZEaMUGqw+d$hX(w$L!&Ygn< z-Hp|Zua+~}jVG8Bi$HPMeWXsk{HgCse1|B7m&E^$ObezscPg4#q!UeYwv4tFuF`2s z4Ldj2-(Jn;gzLwTcCYsmUVSH!ld==WrtG$Gz#cCM6Ezbd&plbU9--%#L!YDJ_=u6& z+FwaJkxRJQ?F{1FRK1H{#a>mUSz*LJ@*E`%5=m}ujn=rReBj{NOMksJyjmDV_uki zSK;aBjvv5K_oJ*FAC=?Q`)lr~9w* zNJ8eG^<;SZF}R(ZKao(?IDdPrQJ1<_7x5&WAg~O3?(XKrO%CLt^=4@8$|1m>Uv|`O zbu=v9Urg-8j#N}eOep?&V(0DGQ$)i^{x&`I7l+%KEeltpg`|6$GkK6S!J3ik`FsC0 z-r6mHo?4qvjQIlJnksva{Yi&PQ)6vsEe*_M2Lty^tI009%rtFnTxc-CfJ}0;!xXn| zqMF{$UwYd>c*%Sx5}7@e6jOY%d%ELL2{v>BCpnwO=q`do-v+u4dYTsd+nS7uAx@!J zBQ*9@RD-BljKVKlepcpAq`Ul(Q!9X)NffD0Oo!f8 zGpmg>Vk|s;%-5J{J)KJRLYp1H4wCuxXyiIM5`Xji>?xI4>hQY6KlNXocTx zZ{DbV9~Hk?xOf;>PaBa(DQ!00m@*w0vA&40E`MOt&ONSIO52_r7b{(UKioNGP8#&&1cKMs=!`0hm=d(@iq%pXtvrqG9O<^|U z8aSJTdD*LyVKNVVQm`~j!emy;2m<(W9Y&n(rV1U2(5BOsX0uEGpj2#gb}t(_JtgtF zt$A~g;TIgu$0Ma5cu#`xhs3XffzCRI>E)`oLMgzVHf>h!#jiGf-e0QmRY(LMiieZD zaqeGb|JHhDu1wXKpG$A*7@{6$3R-WJeVOsMnAujF_5qQI+Smh#c`@wVvgW3!Vg_B&Qv(GoyCRz(>0!t z8fI$lOdG3+*Wl&+9|ZE7KF(LSlYVEI_CaFdCG^$k0G8ClE~irp1t+(A5g&g|%>IzZ z{YzL(MKQQZp%o;WHK4Td6RP0o0{W!edGq+or{QP zic?n|KVBTy(zDO)Ii>yIZ(FFL)zP26uAZEW?p`|XZWK;(*=kZMJv8P)w9$@WdvR^~ zqw#r7cmlHca;&mjFiyEt=gm{%5%r7xvue@1q|L*wwJd*$WfHrt*?+%HdTvmKs;$;= zt7nsM9vb^e=@sz5Uvz~J2{{7Ob$k9zgYF0CiH1{t6l;h>vhrDP8Lx&feny9LmCe>! z=R`6Txa+c%&T;wmxU@&r!z}>ZRsq{J1F+yV^cyxvA)Jk6Ti0vpXSyCDBI)_Ce@GMxpls; z*3H0b=628vKOoc*Qq_y;SEtERKBQ_KMyW>*t^g&&M;=&hrnwUS?WNRuEb2aKJpABxFymIdy z?{TE|G70bb4IHzZr(S2TK^$%kE9jH&hS~O@|KP-xiBPXZy z?@MRWb)T$Fop88}weI&>{ip0-_Ot5wO7owdjv)5wwi@e<0&6UowZ=Hot24=X(lACSuJ5GtGSTWB3&~io+|KAm-TONA_{Uyw6 znpo^NNx0*ozIkj3q{rpbjaxib%oZ>^6z$7 zd7*5Mq*{pcvF1UHYkDhSyzxBa&D8t>C`s%ReFY!&aCE4CB?P9VmldUglrxBzx zcl*$!)4|I})bSI(YQ`s7TIs03DWkIQLE-iMTXxpRTx4HX1JsVbf7$n!MV+y$(VbxT zAGOhTa7rHE*)Uvt;5hb4 zRp_jJb4y{!KtJ$69jkCh56{SLIqj0r-|vbcsBy=uSXLk-j4pFaw1DGjJJ_0d0k$Y8if3X z#TS%yp_c$%ei;=WpsAd55GKWwEQRhy^a zw*~MX{D`?|IME5sfi1_?q~1?x5TUHOy?NcOzM|-_+IK7OG{H@BdH1+)+Atskq$nRa zbsnbCpST6=ZmksQZ&7%$PABK>MGTJmyT<($=#YJpn@vp6azBDb{(0e5S@citYqH#D zpB;(hLVC_=5&vD;;o&K{YLRTELSM(Zwm*MuI;&~ZIg$i9D@;M_e!K^2O)y#npN^MW z1-lcbz7(91AuxReA~Zlz!1tup0?}VFJNS5OWw&~ATk*F1^>mC)2I#IF=~Rm@Ac#uW z!BG}$>GtYOYb$^Dz2M&eXu@X=uq%w5X05yf+4(=$PPV^ES_MCk-|H1kY=E3nY6y&c zK!6HKyrSt?gqKP*49NXhTx^eQDvbbiqx-@Lwne%xOM2 z^zn8wZaba^2)2LxxCGJ%9llhIhfq`$v72P3Z$U;N>A%?|p!6(ZCK-kyz&vGi%|a;6 zqU(11eUn`HL`J5!Kbm!a{YnP9i=7vYdiEEBF!D6!7-;R|^$egKnTQRQSTUI;byU`k zA9DvG?(D|YX8?A=6^BJOpu<8yRTyPppe&lM4AzA(;9K$Y={Jvuzry8#E)fJ0n2`)L z(EnV7j$>Z2vE` zf-;D}-+_L$cNd76`om`Z_K2?PHD_*qY6IY;(-l&L;oE-Tq?Zsn_w`mCB@tf5URyp@S=d4R4~lh?{x=CS*-*u3t6s& zP!YTA(-@LWKSz{dgOe zh^=r#(=Li23#kirf!68fEbASaiK^Gpj_1o1XI(qhw=NyD#BWxP|4gZfGNbf5^7j7n z#85<()cE$wZ81Z^?^Cl*v~v}Phe9)_y|kBBiFTb4!!N1-HNb~o!CpgsjKqcD?^X!9 zNQ^|eMl)dcEAOyDu??zJ*;eAZQ4S-mzd}18Q&*7!YiVeJewYj(k-fAeRv^_@8GvpD zoYttW1vt5@dh~|C#cV0>_1?=eSK5()@B=WXZ3h;f9b#_Yz0=_|TvT+Jx$38wv(krN8syVF{&}X$q_kA8V zPH-tawL+LMaG6VY7oFycgLO*|9kxxzSCwC)t847e?=ao|&CJw^UaQME%|+*{ zV?LREck{GgpaC0Wi(Z2G5uzKxd^<5rbn5sEBT-v$96pUlF9drGY2$| z*EBfOhe<(t&PDB+p$D(EFF)1i?0OMw?OsoNKOU)?8_7+k{^^l=!Eh8zkWE*%cku`z z+!XtVyJ}{=x%LOub^JW2#zCrvXSoaW%D)!o;znif1{at(27o6k&T4ICix1VAv!z&Bu7we7vmkSVh?Jc(k&gXTU!6YF;V0gTWCVU!2S0UR9AF+qF-*+MiU z&^20L8h~!-AN!C54T--;;Cn$meR!TL4<3yrHo`;ITTI)ZZjyd-z6m&Zp|NbY>pPQ3Tq!z#D;m z$<;)G1|zcPwlU8y5Jjs+NZK|Bh=Uk6FP2&L#{;ricpM+Vf`Gya^y1J*0Nn|+n?Qkg z|JrXYd=$@IPmhHR9}M;YAci@6!pX)VKGZ^7(65kv@3S0 z;DmwCf~I`#9zSWh z@WEFVtd-zh{e1Wkegkx)%zWsGqwJ?ZJ@)OcItv-hI@egf``cNlDk5j~msbF>+5xMf z_kAjC>{{?B>3~KgSi{dDov^#YC!Q;LTqVuI@7i-%yE0zdm);ZEwe+RB8jmwZLLkKq zJqY3*;Ct1tXrOJ^f7aXE>)`k*4DRpVUAn+9Okq=soB_+fHP?#!#RU>fJaEht54rzd zKBQP>obe8Ly<4jMUb_$>Zh`%ZCYoW-ful`38Q~E1>I7+7dmp!14DG)g{*P1t+*1pO zYNtxdRR`{l`%z66ViwaMF5bj4;(?_Tv?PJV0IyB1T-WTkjp%00KN2@MA+r9Um_jKL zKz|PxIYBFo8A??B0JN`DQCJC(cD6V}d!k_z6mg&`BZ2v6sHNmec$=TkQB%aCC_cy) zmv|FNM3J;cCHWS#LC@fC!HJ3k`iMq1TBhYql0d6UR6lp^2;6Q!zHD@Ur}ZI-gB6+L zV^mM|;>$To4lyCAf}5`j0MtP102fsIHE8rz1LO6NAK9QE%&30SIvc>7+F`237NAO_5JV1m5cHwgnF`pO&4oA|GE-?seUh$rN+l9HcuBoAOU zK?jtI~9@;e77Ocg=8D`ZQiz`_>+F@c;q}wApU~31C&ktx({-}q-Q(Y)n1nso-F73jqLW&7%2^~KQjV`BZDv~xm7_8P~?#g#z=Oq3b z?|wK&?=HHpxXzE3Ls-c8*ds6!kR57Oax4Z%sf5DsqE!`?-w`$bo1#RXFQi&nuc zroskAkqPpin05W~BohWLAZfUHX+BP5*dr!rDXK9Ho6sVi*(Wt?PL`%W8UDVygGH}+ zWeQ8wM@HI;+4d^Qpisz**)1!or!mYokK}*x&W?L+Nd7=yl|u0~(IW!J>n8S21<1tj zM$=9*Co`9@4bpA+pJ_?_@D$A;46Aa)yJ(TC9R9w%%qp}FwTnsh9!RAJU%X_M%kUe6 z78>xM?~MSZ8HgmJIWIs7Bsu(&Oa=yY!m|U309-2y1ztf^0r5Ql#no1$m+N2#1IHzH zlZC1c6?CAX^2Pz;Is8qKP8+px$0;h4fPUQw4kP?=o+U~s4)GcGK`tihZiNmx#L9QF zZyyM9bk)2JJNBPodlkHDA(~OvF3kN5m-Qnyq&pyfMb#?B!(hZ=tV0I<4v3|pbtLi& zjUaA}Hv>w(OKlIsD%@T0-IDXbpSg)(pC-@vR-HO7%+4tohP?q-B!-KE(7VDSRBZzM zu@DaabF4OpC&6MW15b2Yfn0Y(h&`IDK1ZfmOe$!bfvhID1_5)L&c>QeR?bQBh z;N-dg+;YQhT70G8>%0M%zbc|!+u7tK^h@3zR9_h~zJiN1{4W<0KW;z{-8g%{3BE!? z+~Q+g`L8aiV0;TOkNEq*-U^&cMwcm3WmiELI|vq`umm~8@6~(oTBM>GpTvLvJHi<7 zfdwBvD*q0n0@!N80fH+G_=HJe*gzZ!___mA5;{9x)*7H()Ig;HTIvScSTit^hu?v+ z542;r&cD$>wFDG^pgEr2lqXj}bOoOsvKa`?mXt)fVi~;{z)vNHW+#j&(z%4?XH<{` z(+1cw78~CgG(P?QJf|cXM5?1&6ApD-Xy>l_(J8jw?;VpnU3{P=1J?_X1(!57MnGZ- z(m~Lq0YwNJMn630Za+xr$=3KpN50rK;0~u6M7+=yO6f_&2uPLE95ztorL#!>k*bvY zj2POFAsn}Ft>DjJ#qbcg0;G2e0-nE62iZnWNuWoRh5=#8?yC6@12!hyiK_|^yI-c~ zv}lpK;Z=3z&vI#biAH-5AI!aBMdwCY6Tr>x%t*Q65PJr`TL&s9Ypim+o9KLhKH8o< zYXG$$$T*GrJrUhif<1Jz)HztnM&kl-Ak_EZGr)h6SqM6NF1VyXPYU^zOjKkCX20jy z9ijjwesvfR9|)Qci*sQ3%g%Fj>s8ta^E903PKIn9~lPp}~LHvk?6lIkJ-eF&H-1_!~q4cvBfUE~R&|fOH zV!Yj8HyBpuNu=b!os=> zyNi;GhQ5aD@{2^g$4TRF)Y;|gu~fKi>8v|xpq-YaO&k@)_*Q~Xe%jif#)t6Q+t%*M z>gt$pJ*}pFWC&UWf9tt`DWzyy`s}&k#T$4^1{KXD>pm^~XYT0LYqia-@62{q?nTHt zS-XwnPSiYZnw;90`9icf)~ZEXTX=NPh$rA+x5Hc_f|=a;LTG9GXr`kvFtBaRNOx^r z#$zCT^#G^uC!Y9%z~Hd+)D6$WK8ev^p7k^>Jkse)Rdsc-cz<@XhXUuepO|%D=4{?^ zRMr{D5b+EE!7-HOHadd6SJVfuZ%3i~@P{v(hRj%eR1kh=tgVg8-0koG-q)CpiS`X& za1Zad(7K&Znjw~?9GS-&&G@O@w}OdrRn#n0Fp4oaKDa{Mx-7pB-4=viC~XaDP&}go zQNaE~whmWN$0K|99dMZ z|8%(Wyj(~m7!|zQAAAf{HeCsECysCv;5D!@sr`B7CC}UXU|3H^<5nxr@1lzguveUm z5JMH!Ng@5cyZX8({^Cs!W?3Xj1Fn!4J5P1*&U~R-d*XF`n7=6#xbyw^v51BDvaW5+ zQRuiDChn+9?c)pJGZ-Pg+ETBO-a}G(B+4#4=+TJ$RTv$8N&hh zChCEQZ9S&r1OQ|%V z)#hDG#;Brr<1}^s+GfZxj(KN#-i|@(0O9u}@X;H4DT!PEwi$d_j*pKe-*EZ$Z7k;) zSuk9}TohQ1U$0-%5=jE*6;*o~dY|8GINcD2OyCVKYM3DE<$()Vz4O51P9l%+n#rQ@ zeZf{*`B4dalKQ6)?^uH8Gi1e({Ea!a+V(=Ah1NLe9-OPN7GAj>@8oWjWpnT*sYc~f zGwmP~X6Rm={$L3yxkr&Xu>R&&t>j2%ABl!qoY^PW_f=h6p>4jWD=Ewi;*(aH0$RiF zOv2y3IB86fC2D8zuo-7xRJINHoPW+P5zvJc{n=PvMUR?s{P^Byo6g+5zTtZ`f^Y9! z($LUYNyOw{2nAauhgUM4^54LT`2NdI3K!gp`BLSKa|{ZD^+{%KN0Z7#g>O!Q&>CfG z4AwG#;N=F*Q2+%3Oj%%S2qldj90)`+qV8I4yflZ50}XOXx-iN05L!&Me8)Uf+*UQc zu#Qfv7(3qsUdMO$1|RzAc?hKbHT8EEVQMi6TkgYT_+}GY3{)~Wp3m-64Usu6!eXF` z-?cU6CB7=FNdGkbbFjO$f)~z!iw;bxbJbPo!oEc|BnlB;|;M) zRJU-JOJe55s&nng_;lO%1n&Ef=^0%bqp85ag>Nl)pc!~7qoYX&RPJHDXD`)VH!~hi zxi)G^{3b=XZ243zsyeM^3rim*eY{-Xrl5Zt?YD!_`C3uJd0;aQE8rzQhNAiG7zAeh{pvl!rdC!; zOX%&T1cnW-bUN>4w2Q4<_hC97yGH#M=zEpJaiQ`QwkB@M~Z1 z(fP-Z@Q85BzK?R*r6s^VS}7=YZU;k)Yu7SFq>}T-_(67puUUTDGISsSPF5%+cJBRc z(CCXKpegLIOw3d^o^t{K2vsdgp-cKgbmH;f?^3?(6^-kgr?T(P3@Z^1R~FpdI55-& z#qZkaC|?Rp&v40z4^(Rpvqm(h^v^B+yE>fqQ9H~WB)xVqE(x_MlyeQ%^@KWjusA>F zzWki0@#8x^hjG&OE?xl)+&N6;1I+-Q!h-k~H=N+7I-wj@Byn%_a&p#NCeQ9J^#ZkW zNDouvRo#Z3dRCz#saY0ht4@4}sa>t7+r?Qm^XqxrONhZJi$S6B%eDyG=kpH!8K%5$!MHeTLxt|IkGO3f#+S+Lba;U17P5SX?(wZ(Ccz57#W5F z31(SZ)ZFQC>51~aJYhDM*HJ-ZOY?>38@eX9yN(-tJ9mxiG~Z3PoQ&_EHjK%5*VYmF z*$CNL=eapM`bzX`_VO>Db z{F7?JL(yIRm!znu$lk>zukyPmJSfWWr0&)6b%p4^69f)ab8vp(+xEq?{Gb5)?SR&- zpOfNbm%te8%@6}_Xb#z;1RY@nuyujY4U+j~XF)@J*4z$ZrtM zcaUwc+M?bUVM=kHGuuoTdgn>ih8o_U_PLmajeLn0mr{|RIpuuXS}{!!&kHNkpGeOx zQ@P_OW(7N^9rrl6D^*ZxuQ}4R-fWxm_;=yf?OzvKUumH3weg-`BmB53y4zYErhS>^ zP1n(Lva+J6_lOW?Y{7X2yW+LYO{EAQx+Z9d%-)w(C#8sJgGdg%_oKb#n9fvM1_dEl z<2Yum*zNR*mb zUXqjzpd1kK`XAY9NUCWF?O11i#%qh=?cBYt6VI8JxGAs{$cbS#dB>`5JzsVAXyC)c zv97l+W~hndKYxZ-lmr?FK?(;Qng^p$qL`VVa}3xXs*^5LoWnYS#^zn zw+B$3_A-KMhRgYCwKyiO*yqjt{ls8&n@UAUTPb%&+d2NzWxDe3?}?~D%nXu0+nKEM zkw43s7OeQCzkW814_-bDzDyTD9v^OPJ-K3yZhPksfAQ_A=)>xwO0kbcJNkH+%I}U$ zj#(aQqktZizc`d)sHx_tpbAI_Y%myqarY+BxhYUAM2HqpmgTXvdQ^@>_Q;1c^7b}t z8`L~--btk!wk>6eITf_Igj_!`EzN-EM|1Vs97mVEyL&Jy_7m9tqZ#5{A2klA9TcO9 z0FQ>oZc;p-uef5Kc_e385}+itzgO4t;b8{Kn`8B4^Oos0eE}h>4BT>1Y^PmO=)8Fj z7e3DqxG3NP%dMP#|LThL#U~mkuZ;Bc7c#`|l5pv88#cgZ|LSmvQJNmnW`YW11+R+( zfwBuboD=6JwL;QNDj$T%rIO9syRL^hp$;UZ52%|KR@*uz zQV$JV!l&OY4CNKN!0p}Kdlm1RAfYR5be}1)_eZbnD0G-J2 z=rZf5Aw>Y3uaWU_pxPGOsL1crQq#_~o)UTp`kZ3xY_c}fbWDBy$j^BRL2ium^6y`H z&wGi(0zKzo^s+7jHv-M$PSiBsv>`_}JJ>C)frK9E;NY?12e}4n?|7dKWJE4ibM@|t zW*&oxDIml9g0i)M9u^hY&AF>Ze&Tt2mpF2A2p?{8@{vh+kYTCHaTy{^BW2qgPfRHr zKH3MNk~dm0uh?&wQ7rqm=+hW9G_C|ntrhYPDvir&FPI}=`rrRG9okuV&$44nKBA5A zzoH?5xo-VQ%;H2?R9Qzun(=VaC9CB(6+$1FHX&oTE_W^`ofbVpy!@f+xZeWhIDiMo z_?ufS61>K3bhx{&TgE>VN?-Y|n4E{Q2;YYNcSDkBxu)Y~>Poum2M+@1RC`@4KR?@< zA-Cspy+gNS7d{GT6l!n|-2V+OX*#Hj+`+>me>Kn4b#VjJGI?mF(GEK41qB7kEvA&F zI(e1NbE$LiqQowa-qUl|M<}^ONevzU2^L_3ZRsu;1sYD`)5GJUutGQA_#}N z^igI>kJv^RP>J6MTJLYCuA4*wS*c0`tbFDBw>g8_-V=KrZ=v03YlBQzf$DuhMTlt_ zJvaVq+QG-9-vfv)_v;M>Bu@6{X8bWn9-zGn_X+gPt2z^S>|N6RS~U7D(N*#UL#%dppT=Og~tQSTD2W1 z=cCRU20vg}#}k`DSxgdfn=X-C)eNsg#T}MxmQ=p`8eHau-P`{TMXmyQF~-W$X-l?4 zXQ?$S%ypEi@Y8EBpk;MJ|B3cPjm=C|Tl=HH%CUji_8}?4EeIbGfrCx2a>?cTYBy2k zZ_32MdI>@p*_4aObTWTXWQ9zp`7h*=S-wxvpIjq+lA_dD{h6GYJ;pkjR)zo3E0Ul; z2FEX1yI@$x5n)2yWlG- z_(G3uBP#g(IdYy}GjY=DDdg^TO0vH0W28Ji%{)D6;xt7|$h3NXK0C9BnHX_wmtvK| z-K*&nI$!zyptiw8g(gg82H`w$abVLT_|v5R-;43Hh0{`HarL#1EI*S)x#(v-DMjAh zwvH-}oU5;J~ziW0@ zDTR(WERtPxhs?1iFA`07uZbOz&h@_y!DL$|!F5tZNO3;yJSRAJ*75zP%n_}gxi?{i z99mq}=F@_@8TW_}L8}{7_J>a6Kd<&-QlIuBj3>l%5<5tgOh_E@CaALv32I+B*)%^G z4)#wdZ%VC;kXcu_6Pxq04ezDi28q6ix?NPcF%FyArkI2vUW@}Jlo`ZrDn@W%eCb^WAe|EV;=BD{qq--#NMVW0 zK%76E|6mxBn#zqztu}TMbHBm_ZKj_OX~yU7O1*gAZ*wx@;bwh(Y$uF=E*a;l$Hh=l zq+ZYZXzQG1^DEJz^TMKSO6}l_CvWLn_U%p+Ir26>{bks)`EpsbTCd*v_Rl{spKjm0 zqwL1%;>&~S#R~5V4Ifc^`2V6@aejWXMicW%fpzoTjDz8bA5-~1i*cO@ou^{y${U0P z5hC%kWjE*L+WKX;m40K-X~I1%H$nuVWTM$<&G?_0nQcttwyoM{6Z*+3%z{<<`7adF z#z}lG1R_$zU<8l~jM~iVs_%)&9j@`5ARSKfCwyvY|90ueM)A1Lj_BX1y{#$}>y};K z1Y0{!&X4(uMeL;nF&#N%R)pQ{!b|#>Bk71djV1w&#NqL&P-cA^^rvWBU&ZlRG-&+6 zAZ<4}WgZ?ut6zG9+#kUqWXrr))+aL3PAKEv^coPyvls7Mgo7Waq zOJa0;r|4Yxj$V{=Jr+i6yJvq7bq508bmi_e1DH^w_q<(sZ%gKqV(=6 zl?I0OE>(}~XF^i;6ls_k9IJ@n&(kh%YcJd3VzP;5D*0r17dq8m^eTK zEt9-JGLubdUd9*M1?b1GWl}Sp3O4aaZ@o7Ja0Dr@*d6ax8U7u8p2VW7!EoAUwvqbog>z{ph2!mP^Q^Kc|12ptdrRYjsUs=aQ1l$jYh8s~E zUN#HnlJ5pBz2BKD1w)8QkSY#fIjOvGb~$?KZB@{=B4?(_uiKpe365x+6c5xccO$QP zwwL0i{FQ0*wjG+2$~?)L`^bN(jz#Ds&e+^^x97TdrOu&&t#cO}_E7Nn0Xh#k?l9{i z^WpeV*y@m7woPHmPj1Z%l@p5_h1Yj`@5>Pdz*s`2zN$^9b((TBEh5Z6VOh9uMg=rw zZ>@R0u+i_sAq|JweIeQ6I`QlxN?{I|zFOAMKV6V%%E9qv*q>kQd>}_514|S9BE@IV z^hwT(CrEBxWW);AvMwP{S*Ie8uf;Y0h`4owk zn7O#GMmo~tqKl{&Amvh>q}3rV!Kb632+3{&K;7-Gqz>svKk<((S8D2MKurS;FK7Tn zEhRdNesC@!@7go@8JvVvG3jcm-k(4;y{V&j+9@C+_(8!&&sc4@_3Bw_7q5EAJO5qP zC23RHjhGOj=2P_hU#yF*rw*G;VrD8P1V1~GQ8IO}CJ%`f9q#kJ^hApMd)Ni^6Qn19 zv~}H>o?d(b4Y!=Ipc_mK499TR(wD}bDILN~$7HLRV4PZn2~aB;$lj%ix(7?JdQjQ9 zjO5g@;GdfeJzQrhHPqJTv=SLiGNVM$X^}bPx7CF|>ofTBH>_h`*@0^HWUc!smM-F1 zmt8jI$T!ZzH*|e8SV&wVir3;?g^Tz5pGZfA^=|Ha=<roP2NGpZW-H8P-|S>g1}>Pt*w*AVs69U zl|4i=na3kZlz%MERbj@u*~@S0{xpRotYgccQPrFVy<3fkFTAcjD)-X{Sm_hX$$DXE zT-S>0cE~)5oR1=^A!Ky=oYls z%0=&BDU!-SZUO+GN9xVV2{e1zEL=9@xSNlEK0u#qkX#@oTA_-K_FYtgZVFJ4Txww( zr<>^}eY?Snow=wM;+)K&@*z<*w_G3B7b0aF9-vP(lQeFbi%5~TA$||o~X{N@bbGnc| z^)3R0Hv@3|KN;;lA?vEM+k7L>xr5_a-bGTQ5)c|Y@THW)s?&ialz^my zxV5NDyYYY5fK@94gZDs{)$RpzrAtlt&(UCX!5du%I3|4kw}|N(#H1H3v&8)pHabd` zV`lG%TjlheRa#Onq^|OnacE+){Zw>c}^N%;GzljtF4JSl132aLFfQFNR{P~#|NNQ{F#8vSoXKam<*?qTEAL~$F#Mz-%SiWOkcXU8n>J#8Gp$V zjwa5|q`bUPhewQAcC19hpsh_G@(i{|uCk(9up;wgQgogbI%U%SywV3tL9_BbcPMcR zJL-5F+t~x!Yqh+(EvRh<ZX zjayGb-@8p$e>6Jq^KTl|OFjW$Z>rN)ltqbl^W|1YYBiXtmg zl8?7_j53Ip``r9R@g!uT*l_MC1piY{sAEP81#aU{k@jyDLqx0b-C;l*T zl6&GLEDQo#4U{y9?uk8x4)McLPnvOuv1&)-JQrZhu!P)o7d-p|>{^+qM~+0t;3_9n z=No%_UR~TQ2K_CPB|jfLko);KM4qx6)a$#a@@~ZSNmrzm6`g=$VKMBC)Pxk zwKo&fJv`_igoUd|3)IkR3}ZI#gUrdfg(&-adnkbpTfI;=i}bH$x<}*W(XOFun&CX* zdqr3DS&QU<>XO{YdH&18F#q|TUZ+n;R{Uj$UzT+9679Hu%aF~KD@Ka zU0neU=2MuH{W^W+sf#KPvu2SXXJwIaSt7#)qwCciJfZxOjNsy!t{(SVs-V&Upk zcW|bG`=I=;KW~7v4U@dI8aWX@)a-aIlEr)0y9JE-T2U07v zI3qW2z~1xt$Xr<{oHR@ouv-Aj@%%rjlb-yD4z`NA2bJ#Nzv-3V+62^x);sZC8;M6J|c* zF25rfof35xd)Bk(Vlj5FDR#2^s`&a7X7gkua}HMg+t&KuWOuKH

FV8HM>i;5Z2n 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�qpTn}*ZT6cFiqtJz zXvw!vKg_QBqVtN)^Z*mgU8yE z;=-@m88HVdXM$PP{HI%b_Zy?P;l)!Xde5IWO%CR_^%~tb!iw5`gm^#uKego*a>mEm zD=SmIwtJ2PJvOyhKDpZE@#trioA6SPI(m}YhT7L(-$S|wm_Ra)bnJv8m)?Yli;M5~ z?_$7eP{(G7BuurJ`tI)J_l_cFx{ta^_LaOj*RFA!xL60-kO?>qh4HE`j2$etFyb?N8g(9 z1j%)^=YbtmPnY(;dmJZtbFs#2?dDF~?#}JIyyts2Mtaq6L^q``TJPs6Dza=7_#mM9 ztF`O9rFC&dU*ARa32i5h-1QmotF-m?&XSYlefp$?px3V!&6$5`(swX2G7?f!Caxxa z!Nd2adcVYN__4;uLLV|Kix$oY>9m(y; z5Zf8^!JwUlPNEJNdAyiM)6bRocb{k_GmHIfGc~X4-7HV?oIbvmUbcP+ z+ClEq$2~)rmTriMaFYegDkwd)Y4hGT-`-CAzg&R!`vN=5MUsXVuCalXH0QbM%d*=0 z9o>W+3HZqyR70$+Z>gxL4@og{3qGw6dbkJZppaKTvt7Y`Wzvw}4h2vDes;v)k+`vc z#)K-^c2fNZ&wO=2$6bsJP_(+t_$D_^se>wzX99~ zrjfjk#YCaJ?ZE&Uz&J-V^I|$;Zu!Yok4+TTx33)_PkY(=@&sBMZT(yQ9Z97>wsbzM z?O*Mtv;1hY!GTz?r@p?SxvQ&gZtieeZLRxsXldQpm{3#M67ejZu!_1AJ%F(jCx&=2 z=#i77yh-!3K&=fW#a(;lOPZ7Kw1RYp+K#GEt(^oei~RH|x8TyLVKU-mjSC&6nUQ#W zgmKI8L-prLKfTs>OP|!9kOK)ZSeY|ORf$)Erxq|51;ursTehouPB|WvCJ45WcHT!9 zRfuh2)=R_HXRNM5EmD;zzznLaWk2PFf?YW$>Jv(4Vj5iIP@197|{P{UEj?CXT zjGHqXBWRbo(xR`kiK63^40k>6c&~;e?qQ?~N*hX6I}Bi9b(kIp3=?!Ecc630Zu=QyPf3*&ox&&?D!IAApmFn-?KNN1 zt1=STiswg)FaUbpe7M~3aCoi!a5XU`k%XN}LxzW;CVz5w*{Sr3kB1Al$eHaA z1i%N-i*jq8eE6h-N#NzF?6$hEk99J?8woIx9RS!9aK!PYVpSn&LSkZF$b;KxyU$&S zc!6n1R%*VUWH$>HF)u2t%E~k9e~DXsucWY^yMDcdY*AN zD2Rub*YSET3r2GorHP0ZjZaKqsKgRpi|IM&UH*xQ68PM;3JPb=o_VcSyxYfhc;AHx z;<$##G9WrA_Me*Ym%X)e^6Vk9ub;4}qur#= zKV%%gSBmuSQP(d{)f$kxo+MexNS(;=62Ryt&TAuT)^==89Rm%QwdBqBY}_Ryy1)ie z?;=T#P17)v2V4{pP%(P!^YNn*<4B(4Lq`hYr?^dSP|Ow$Q#_M<eRvx@V~V`{-i7EcfgY*?N;No8#6q?EeB% z(iBm_C zHPaQ86#Fz*?`djk9XV*tabeF5&6o4&B5~Ffg=l5do7J?R*I+cO*DWs7_P5Bz{*qn6 zz=tN{$2s~#U|yafuf2K98|Y^4zClcJj1~9`ZXHP2XsnGNltC9T8A|LB0b1ojv zUG$8sm)rkVg9-UH-s(y@NG=)dV#dk>?&&#ixL)_&Ncerz891Yk_@S|CW;%snReI{!BO zM-pl?Z$u$pvJI%;9#n%O$NPiq1{+lrx@ewvU|(1CBt%lEssPU+m8>4!hZ zAA0YBqI+CJp=MwG6Di7c>Hg&nZ5^HJ@rQT5)P%o`&f(f4N;}W?lDNximGjSYw)&>q zp-MJxV#w~qM;8ID1BD_=(7z^h;%!F85N7X;hYx?(5hr3Ax$AXtpwT4PP#^{}-C(K? z5xdmS_*Jy&HAOt#l%p>UHDvtpYwqywijQebOhRf_X~4^&yR;$BK+?u%#w&*HYzKzS zvC@rck%48X_%&5)hFS%N239Bw<$e96RNSEGszV$Yh*15vh*rWCP}?`_-M^F_I=7|c z%WW3RtsbFWebtuda{VNjKEq?V;SU}4WSO*{M}(>1t&hjt!b`)!MWFaAS~N5~@~i6~ z$)lRVs=;{}H2^3cT?@FL+tRE?npgWohWYA+a1HHfRYa2OEiJeNDagLaPmOeh>D&G< zv-jMM9$$ag#3LqB*INJIvET-f78cf<#8njL8?N$!Tt$R)5%+-|VFj4{i?BpRE0vW( zq1>;ZWH8$7_m|6V!Ev}46GSyQfKug-t!==~cSog|na-czn=gym`8kQ6XDaWiz^K(< zY_obIE|EBtlA`^r>l>qD1bKM#4^)$Ds|?~bG4`Xkbah^T&3Sa-De%+QlLwr8SC|>e z&gh!^q-mVziBp;!FV#_2I#BStW5{)ES!89pql)g!?Afv7zyI}=cY?!_mlxNVWp$zM zXLL+rYFdE*K!WOU?niQV8F8M|mV6v! z2bjZtxO#((E2FO>0A-4>F!e?~f4UnfXU>KtM1+`3yOFIo{Le6nZOBgX8L{)i{8RNG z!w^mWqyxW-{{m#5sZgf>o_SahlNfWh{EjJ5l3ATyOCKqQ^o5M(K3xaiOP8c=)%TVg zJ_l?KjEFVdR@`II6_ZeP^}P@tC@&}b-cO1?C_EuT%2Z1*Gm{R506FP`zt517QogI0X-S zxmKon0(xhSEnNLTr?k^x9&Kzx9l`qcEjTcf19e234F;hZ84tk?LjzK;*mf^PH zmQiqx&@KMf2+!_NbVy)hn9w*IUieUR*~_3mp{!H9r7*8N>Jx3>i4H~Dm@hBS9@AM! zH@`1x|6$L)^=0()b%y5SXdB$%y*mv z)9doZZ|!T98$Dnx4j2RmHCynTU9vdyLfa`Ld#9~emNgtRp7Lic3MQ^1r}AQ6yx#Yl z?>Fc#CRSEq5fLYWSw9aWo1DS?{W7wA?{)$=1+kym?AU8e%1{=4f1kR<@7$bJL{WV>2j=#x=l+Xaqvm2>Dsh5l~MOxovnM;sQLln>_l0hq@rj?4k%ZKMcvLm&wTQ0CEiyaUmi{!ALiEAuhWoHsEQPE0aqfG zBE_t#qHpeSOw71o_kRB)biv9E@ntp;T$J|I=So)dk1}vc7(AzvS2!`0Of+)`ls4@) zk>$OX`(|mqc8~8WZCA-^v}ibQg%PE7>y|iQdPlF6Jvpl43YVD_uLYVA3T+(pDU!IzFA1+mhe?fGct2N@b2f;JD&9O z0yONk=_e>p{%Y^4%aim7FuW)~Ju-27;?VhpB+7Y(VXYv>Flfum+X$&`J!VX98^>&z ziKo1Lt@6O`?Csvj|gtUTDel*B7pud0`avkN=@K3?4w)vgdtidj?z8ZiXh+hl8oAfcUIZmNHdDe49 zmySO4DW*psd0Wh_%=bS@uU5Ktt;!^ia1OzrK{1923g(lb0;=oiLSRHVyLf{YL$R&3 zbKFK?6a4ET^tK^!PuMK;b?{SwVPIZnn5P4M0evk{7swTC+GFBl2f$I`6Be#QWGf8R zn(#i%c2g1OSwpM$^6ocMg@7YpyY)8?9lAKSoRZ4Q5}}x@T@TG9o4H?Peoy86L%$%* zdzTyb*{O0XD|3Pz$jT=kjGK%~;((O@N$Hako@JI~VY`RxSy_&d)I3#j!VYL{twM@v z3ZIBbwWP;p(MxN#RLtTbv!DMy=LYeD{rU4;eM=ojx3=;HZAJ7rIJkb}k_*wkWt5CM zP}9&NWaKCjb132&?g{#qtG?^Gv}UvF2c%vVy0RSd>6bP-R7q=&jULH9!uSfxByl!u zOY?%Vq|X)Zy}wb%zI%qJnJnAoN8o-MnL zuY*0|uu7yPiEa`iOvX3@n8DFBPK@pkp+Td0?Se$8vghp|K^L= zo}?zZJ5pT29k8C3?7N{jtn)$X z3de@#g^JNtK9DiK{Q{HedS&PRtr@R%UhFeT`TsfY3b2X5I_m2q%@cgz2`+P!YNA_= z^emk*K-tory||?3Iexr(`<5IX%+KuNY8>u`P~u z^|PZ48RbE&t*Br@s|jXGTK5f)hOvOJLi-Q86y&;$Qp(pUFmj)B+fIC=#`ZqzLmvPw zS`qjEzWf9SIVG#q`G{-55 z)o%Mo#qk_>?S$RVz0=nJX*$I~RXM!E7$N_4ac2L^$Wu&YXWC*1E}(nEKnon&zGc_k z&OrbQ$<~H@_5^E659bFJFfxAAah2n(sCWbP@o-uigPF@_VA~oQeNe+GJ`7HlmXB4^ z@8t20k53yUZC3mwv)bt6WXxc1l?@L=;cRN={BmSOlQ0TL_wIf9`NFYO&^7`q=)D@Q ztEX4h(|wt)8eAd3g~?&+mp$wQo86Zs{Zx5g2@J?Du1={I@DG-!7edD!^mA zzOfPA&vW^+Q(dJ8i^S>u6EtRe3WC9q?LU5ijh&N~soY!X6h%Batz)CX*B|5dlw;Ej zcs5|zb>z8;k`(FP7iV8c+6OGkLXkXF;voZpkq<0GRn=M&oeGN1m6;x?Kh>xX>AF5! z3tn&G(=B`$gSoY?3MJB6LgyC^y_?>(Css?xixOup9KL(+p3#>Yv^!5a?m}#WD5|p| zBJ}2ijLUhNL}PWPS^r`G4RRc>Q}YwF^xeXzrs~_xN4Xo%b+u3FTL)_u<^b|wWj$wG zpo{TVJrGXtj=<<4tP|`vTK`Q_lmI64MIN5ozF!wX$Lg=+ayQ(v5hBosT-`R0_(``}ZHm z#s+Ku{ho%M)sBuBNLkvZrPHK$xc|9xSxTS2ySs$2Qqa~*v#)}~ z*L0GdQMZkxc9@r>t28vZU%fFYd$g~gWzU+sCwMFEUz{jiTskUiZWrwKhzdK8u@N1I zNsMOR$B&ASD;g8^I?r=*-8H+r^w!D*V17{kOM?gGI{|7mB6dFk6z(O&3^lAd(#oU zgm>q(eyHQ#v8iI2)#0C$gH(e-_t`ihWkD8t&QUcsHrB+^YUjgg!N@4R>r?1K7Zx-o zxCF35LMkf8_T#pfUZ&>!HxDNs(0?$<>2Vz;RZO)LzelrI>8;Rbs}31CQ_5w^IOq9c zt$EjN&^ZL!ZWswvF$-eH^Wb_xw6biZmZpO0wX@(geRxP4)+>fRAgw2uxP@%Hp}

+_ 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%0Dv-<~r{=xxbwKz)qUq2-B@D?UCFRT6>1jidnk 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

330@QCals{;4}{HK<2Fe0(q7pAX1fAT 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 z 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8d54fca08f027b046f2772513ca3a1112e59252e GIT binary patch literal 117638 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

4Y@#|SadCC@EN@CYBs(ZEkEM6Qr9zoo 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3aa9f26381d54e0d866a55a91c916c696d98a61a GIT binary patch literal 90928 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 {uyf}KMt`2a~ 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

-%F~6gHWH$vJw*!H!R6%)8(hHYp?k&i}!^}ooUy} zxc_`iZ3xsS`~m_Q7KgK4&k5B12Ct*12cP)%a>e5u9N`581)ZN`V`Jekx}`WU^qLJ> zAiK$#MBj3%efc3GzG|5J_Un3xwH{p>f;n(5R!Ei`okGeCqyr|FhdOlpJkW~wWS@?q zo3*u_9eS!1v)l1DP)w^Wbtl}PbsC%OI=5akG7|*ili)B89&8%7tC}F))X;FMoyaw* zYHcoW1uOLQ>>=7;!L7zw?VaPg%gbQz70yg;tyelJ#Cd1m%9^p6u=4gj;)W?*#1MIk zQ#ZN1*EBunAUy-U&A_|cL#=7-RLA63&N zKfn16#dmnJZC^wK0|R$bP#opp7=D)acBLiQk=Lo<%8|pIQP?!Fy5B2^Iwzs17zLSw z)OA-cuXhF%hYPms|F6Ksh~hWd*N8EHLjc6|ek&m&{MY{)N;&dhLZOQ;M~No#-~T3h zY8N3Z``7=f*ZTJZCBDyf&(&xDC2F>~^FM#ohD!E-;~%veWlX4c>aPRW08t$m2XQ)( zZ$19NtDOnSQOEzG_lmxdu1LJ^zMwZ7?l)pmi&< z49;OpzvTr~8VVe@&&qBJm&m^Mnv$U!fVnF-$bi%BkuanE^i=uBk5RAv{aqUkkYEO> z4<kWhVb%T+F^+=vYa%i7A>YQPe*8AYt6wlP<1P1Li2-5Vy}Cxi zY%y6{<^_=^F<=QZUX&?+6&UyppcCAqJx{w=y)hJ^l|&0D1Z?Q|iBtEBzP%)8=6wMO z@A`Fh`MY;TL_-dSsMjR~@WsX@{V8#y`t_@6KMPCU0pJEz1AU8wVeChbzASUz?(9Qb zG*ln?cs}64>}aF!NVHsTiHz#T+v}_B3CEf)X(om{Om&}zhI$O~rs5mjmEs4U@0B?8 z;dlphFdgfe0v6de>naRR4p)v^I87Ab?}sGMcZDhXY?Z{bhknm=bln0cHUwsE~*Am^X+PJ#ixk%Hf8eKo!F6mhWH>rdMJ9waA9U+Nu{HYosGe0FP3IicGl;-4 zKpPg!$<7($8~4`$rJBsoi=q6<(=B?&#&F>Fn2GK}bIH&D7F}N z=kNa-s>g&LfzF?N4^ccUF8!-qXt3d}9gCszX{WN6gR@)eTuei+f$^~q$BRff?#7!^ zdW}T$ITv)tw&`%xhouH530%8Qz0FJMDlnAmN+uv`jz+*MK0`zjZ`=k{cd&1H_ ze|GhB)tt+nm~M(wtPbUKAtJhH$(?sIZQm$eEJrr_`}6kLIkz@DN(Kp;d>b%BL|sKq zWpBUb2y!(5{iJ{t#}tfxhSZ23d~E$HCN8Z;K=Yo?&RRH{4ZI^~kO+nhFKf48?LiEy zH%EFRp#N92kXL|^mgUbE{RUyH+2hbBe0To`X=nv=R=bHGZ}0c<9-&ZQpx=OZ_*@WR zS`fbzY3(?lFE6HOM8aKqLJrDd|sQRu`)X&uc&^(%#H+dV0sJLLCE{ z^KEe+d79*pZ4~zI19IBhkxO$PgtbS~7-}n+_v7N@Ooanoy*zN@xFNy~Og!`8e~3E)DGSson6ePy0h9=Tzz5#Ctr#vui_iih6s}mj4={Roe9{+p06l7db#@*WJw!ZQ+gJwTli&I1uzSRZxapG~`_^j!T%i@bA#`D9 z{ie&M8%M6=WV-UO_(^=FtGRFYe&RbezU}{O2k)%kmrX={C1Fp)ca4^JyKm)1tUkP9 zhU9VxZujrs{G@pVhDl=Rh4u^>dc*LKVGA;V%ZOHfR^>zk|2Tm8i!w5ijce8tgsJkoKNcR77py^gFpg=UZt}J7<@#j^zpUE~+N} z0l1uR=FcDgtF)4@!*5d=ClUXVZFC0+?)>TpYys8&Xkm ziFl=9H2R4uLS*XpYmcK<%_)E=EM!`9e1cgNvX19s6M4QVDJc_1Vt(%603{uRkwtb) z?eS6IuVe40mRIvu=i7;Z9c+5wN8BdNm?og8?NZAR%*)H`kuw2h(JUWw1u)jSZ9fI_ z_2gryRE$og>C_$(IGxxj_+C7X+&ax;UmD$$R6nl=3zL*Z4A$tJPM*9C5X!%2ao*+( z#I>Opa&qu^@NA2n_o4}#8Z-X17jbNM69pbo0*sh``{OEo(JEmAOZk&eI$lvHb6pYC zL-t%|I}t;1kQ!P^<-em=v!YBWX0joo?t4@DO?^y0J!m;af^ zyq#aHbr-L4A!JDEZKJ#7zC#j+pT68p6Uyg*{NzdPerF0a?Nc z%BzuRh4o~LtuOcW6$aRwR+D0|yA?8A2sF1dq8#a9ec< zV;4UgL!YS&D>k0#)-dnoRY!ayes1uY$8W$>ZGQUoF{%HeIy1X`@J^*e7%io}X|dlU zBl3d3J=;tKx}G>it`rMk@%nX2BrioKBw)HGO984*BDoyjw-YlcSIR8Q)s{@llg2)S z!BtE!<2S22yyLhT%{@`Z0P*l(4LD*lK;8iO9G2&_0Vc|Z^1ei8wCS`K&|dAPguB&& z;z7?=>_1yi7+bF(yS2UPG+H3uZ13^T+(>Nkt(%d5IP;rIA;q9Eu7}6v{XZ;W&E+js zoc-@rOrp>X5z7uc#%kI0?=KE=X>HS0ZLVDM_{M*}I@d|CA*Ca_#=j`<@yt*geQ=H{ zr^L$Sg{`7B; zJpy1{9{&k=aE3IR#wcQO{7%OHom&@%B7KA(PaokUqh84Sj}}0ux~I)BISR2J5MnW+ ze~&oMFUZe5@Haj{P z=XVr?pHWw7b+f}N%e@c(Mg63GN@1kl7aJ~_uZG~YI3s|CA)ndZ79$cg&;dH}P+ zcVd4f+K~j$p&RTgrBVN&LK?p)C6m?ac>n$pD9d#x3LGq;#^`kX?}wT?>KFQAK<0?t z7=l)#x3?E_^VISV=0k9YW8DyWF++_WE-Z_?kx{g=Vqegb{aS21kLtO)LYEsApt~N@ za)9t7RtR=@jY@XH!HttXSoASr9Rn;gkvFpktMEa|r|a;H%`^p>n6XZ5O?~tT8__eT zS)-0(=1=N;qz{ZM8o8R<81#craQ=BM!$RPAaVJ0>qT{^|ioEn*Z(Hn5u#dqNRsEO* z?p3@h!cU)Eicg+u>33q|;Ca1QV&Mr+f*-loCdRp|R@I4WCmmg}yD?G8;3=Tm4yx4} zWSF7YV9>%_y~Dw7lZbgHfO?)_J1qF%N!NJ;)%W`r9t9vE%ng#K#;8bnaat0@tp-`&Q z*iS>#Y@E{;NS|q+@lrR;;eB=Zg#dBgJs0@+RKE269!SNJYBTM|j?P|H=pj8w*QMCwCzXt zX->%rO;z*NrMLTGf-@gV;KmINNZ$Sze;V~SkiN@ynlU5mQxfz0-2&kx|Tj&$XRxkVJ4paryjz6q`0xSKtS=$}{nY-dN^Fg1#B zxVctbii?YP^YXZWBJtom_4)JX;T{?s-TVXPjDFNg-EQCjF{Q!F5cK_7gSHEn)6|c! z^=dWiZn+ybc){Y9YVxN*T|*`xa>fmJjG%3ey%}RN(BkNawG)_3x24y8s{igx7rk-r zoD!5fm6ER&zD|^HBp&5xb)5l}G@0FbN+r{iP=f3gUoo95bNc$>9Di;np-|V_(1<+| zEN?OroN33#Vq+r|`Ds<}duNt&#xmOx=m5MFlgl83yC5g0cf!deO_1yMsgKw~L@obu zri_7ilgDwz=8MJfw=X`;Q!D0ml+4WXpd%se(C5?P#=jB59>UcDO$qwM566dUg(bG< zGfQ2+Ru}h*tR>%?>saJ#2Rl-IOG`_1JTm(ZBlJ?jVd>SI;Oa68hD(<&>D{imsjTc? zugAKSV0;W`mT*uY@VN2;vuz|3J)L7%sa!T|@+Rw}{V~U{U|@)D9KLqAMQz)Mf`ZU@ zT!pe=Ui|GF?^AC;ucMNtPoT}`Xn9aEfr#d<&kpb)bksi6QCuQyB6!Oeq6+nHV1Ok) zzHt#J{=wM3^0#1_sMBDEp$Q{`VztXXiS=kO^0&6oyXmfA0f*FeQ@b-;l}!W@C)aP4 zb+XRoeav{Uwvr1NVWonl6JZG|<;WJUM-BMHb?1jp01|uD?R&RzG6;DiH=JCLF6Jxs z{`08Kdi+P&*|pPJ*W$O+BQ5F7%qTC49Sj=OzXxYfU@$vDEOBpksJ`eyj9gglcR!6X zkPpwj@G_pD($el%?zbB2xQuhU{l!g43BibMIxX}I8k*lN^^ptq1s;KlYytxBMv@Cd z*H)JZdhPgWj>8ew6M|JhInFE$KI-SxwVpQ~otv8-Z*ckX;~JX3ox68yPxcfYVLytQ zy#!)>j6cFE@$fiDK{}67q32MH?st^ru=SNe+$iu&7vRHs&ayEA#h$#^JZxUEPp39u z%UKe$_yVL>Jfx+O_7`U`lN~tVWN2!kJmE<`p1Za1eWvHF_|gV|W^r#1BsO0s zW?=K-#4J`*&nELJ;gja%tHZN@8+Ypkyp-a4iYeUU60glCqQQv*6!}NpNxZq+bPImq z9*I&I{~q*wcq$tr=;c~b@jjNVu6RGQcl%h8x%atK0%vV7tQq(;K<)^NgYkO}w7{lu z+5Q+ijc7!&S<@|CaODjFDH7EBEv4K2dItX#OpulrjaF?{<=KfkN?cPy2>Ku-KFsqP zu;|bD+guTmk+8P|b-t;hVpsog;jq3{&ZpyC7^5SO|KqZkCHkf^yEO4wewB@s_8+lAzTnTUyd=`8{VV(kR-ZgSJ^E%P2f22LV;| zNQiUwc3W(VmBo0B!0SjDuMt=b(RhuqH8~Fxl&{m-~|NQwA)9n#x4k5NgCI%QMO{_wTv9`J3r&kkdq%Yn-V!b}9D;yM@ zmuqVo#K|fTwj+>U{$R+F!Jc#HYyMcBQ@6K21M>q~Nx@{9JBdUe2A$6g6168A|J0E2 ziv%4%AqrioR?xb;Ldds~IrYf}DQW3f@86d-omMf;?F5*j^*SIoc*xrrRv>Ra!M+WJHJk)<-!IUJRhHxhxuFul69L8c@E zS#?;NA4nAH?z=XAxUa9joub1gnl{J_ddA5hjrG8;d^^4s&zMo=5O3qo+?lmN0V0&3 ze`T?VgoU5I6liEO<0Z5J-3x{nT{tW(#+nj4Teb`$W!eUI*PT28*Qnn)ZdszDqq~g0 zguoQ-=Ua6FKF@gAjYI$S=H0te&j7vve*OJUYYkx-crU~>@|ZWtVpH0T=L`;Y<_ZZ_ z2a!yei>?yUIixNJzs21&`>CjkQ5vENxWDVHt*xjpyTW#5?{-+G9#56h=mW-uYJDUz zi?D|++UKp+IZgk(%B96m3mmZja}{T?Cbuaomk&*-)6-lhE1^wNy&=|Jy^!HdF0Nj@ zc+nJdvxZ6{AqlFfc>q}r06b7rW!_9zl?`b===z=323@QwW_hCAn?<*D8ZKASz+gGm z(05YJP3KMnj}#2GoxVI?Fyb_6BkoDZ=M2s8JMBcHFIT~<$s z>~8?}TDDdfMP9nSNQkKQv6ClvOI^2_Nz7_VdBk=slG5-Nb>ZWlr&j%5utR_+g3ZS%9!g71O9Kw(j5XU_>@{1Ncf>5k93Im=18xRnMoYqVUD^rcHX z;d0Tcv72}e&2-mPe^H(IYBirHy+B;e7kBy4Bc}!40Z`wnQB_wLL%REp5BQhpc3^+~ zLdoI8wN0Yj8>}(wnKOBvUV+g2!X@6(!N_R-RgWL_+Z1HT#f#}Vo6K`mLG|E+JP&n= zx{nLM5J)}h2C)%O+~Md2$j%c)q+I|xVqoCFz<%PyKS4D_-oxl|6F^Pux|`vCl3k9KhhtYvgIlLDfeO;lSl1c? zG$OFG=*>MAQBOOK*?A5hwh<>Y>MjUD2}4-03rbjQtQ#DC_q4T9-2SnegP07254d=q zK-m_f%pT7pV9arvVqi~s;X>80)YTgPv~Ca%*KH()>(uDvoSPnL$?yFYyNRE$rt}8$ zmB6q}cy~iWYSud(gis{m#K8ORO>Dl7^y1Xi*T@z#xkUlz7@F#bNe+sNIDd;~{J^Q@ z%ncHVq=j_jPkr!sV{Kz*IlwZDxc|1KYOhR0`b_&oT~#SNfk3GG@P9G8u6vTfr%;vq z@YxLgnD|}xtJie0cLxi%?s&&;rKuHmbg9mc4$D8IRI(=SuXevfh`UmfYUS6bTXNu+ zZQpiA(n3DQ7n&3=!bEUiz2s{&)|jKszlhw6F4nf>uP3IXm9M{@uvpct{ZaoK@2@^m z1`qczA0OWx@t@ZT05ACY4hWS0L>Uv(S0~^9fuxHnC4Tr10DZWG?*Dfb@&5(!t$H3y z-l#p(tD{3TPkkcF*n8+K78An5x|c0)LLPEgpX2G-9=pyY0_&If(!KIWXs`NTX#&OX zzIDMtyiRiY6mcztru-hf(#NQ%@J7e9>H@H%pj>b`khOeyushdk{7C*)8g%p`P}(Od z;lKg&Oz4Wp83a9Fy?V87!vcjylZtWC$do3c$K~XtlAG7dNAmAL=Kab2yxyG_QfAG1 zNt=(vy{bPo78CVbBI|cP>7E!|)D6S1Nx7J5f=Y6Lg6l@D7?mvpa5 z1Bs7|1J+L)7=ZC?Ptwe+m3%U(dMwzuJYXUuNA~g~9`@D26~E~=Pi8O4UT!6hKW@U;n4SipcHmIG61?wj#dP0n+=&^9Omigj zA!A(?&Ik9KQc`Co+q-XEyJlMCAlYn*{Gmtu0?;0zMM1bE`V2bz^=fm+KOzM`G9LfQ zFiSE7^on*3jyK66Ln(q(s3MW>Tq0P@_obz!Ja+R&81!?DI)sU<7p5dJp{hMRO?bOA zllJ&lmiX644*$$Ji7zF<6LhqIh21h*2|hH&-Gjia1B!W7jEz-H<_QM@_{pYZ4Fx5o zgJ@)NgkZvi-s;-5uMlpd+l8Lx!RP}&t+ZBL92WT@gTAL_svkRpfVFLGY*NMmc_~ON zZiOxY10pTA=^@DBYM>ZUQ|-X~Uvzkc1c#lKK<6NDq(D@)A;Z;jE#s$Eg>9oh$C z1hkZ+AS>qOt9$IdS@#7s^sn|ymF%Ynn|0Vg#a?HV>6@}`&DPoi9|5Dd6*-KV_)L`I z55RtbL{?#|QCeiH!z@JyPYKk_sDmgZS8QyAQK4u*-XQ3wy{;RL@Y^l5a`n2-2&>YRbCr{sZ=xT z*?ST{f%3u4gg)fNi4!&t2Cl&5f(N5r7b>2YW^iEqj}Cz-%;5SQZzi!HWG1jQ6Xpf| zWTi;R3AU{x#(%My!6ZeOWQ=iy5Sr8=j3Odp{}Z8Zo99_w_P%-A4jRTlIi9mNQ?qC@^YVxWtaGj7;)(KA7+P@UnG)vz)-2tONnqLYs>g-mox`vh&uwl?U*R^QHqS3*!B(KStq`qJb`l}s&$~xdheODxc4gP z0mw#zIKs(;WsXHja5kSl9sg`S-iNoVXC{hZ0|F{SVS+kpv1gS;I9npc}GVHASbM~?+Jon_0@(bh3S29uO>b*T8iyWNorM3 zfc+ppnMv$D`Z)Q}Gj69v122e(;G^EOkD0k_WpU>DxeDwU_|e|K`{-mD++ z%}6Xw7WXWpjjawA@Ic{Km6Ho5_)}_ZvS-fk4VxhyKFC~KuU!r_1LxS{u!57j^bFw^ zUik7?biF^>+^^$^kX;+UVbI6rz#Cs~-an~%ZU^+C;s511>8o)04R|D|Co5 zSS2PV3aiQIu{+1(lnv&*&Hsvr{Q0+U-#9OjIU}Ktc02YTa$BVA?tza+iYH7iD4mY3o3-zIxwHE{GG&TpSD~D95ILLi@m>H>X0yi;z69i-@MS@h3>`5V8Gz$T`11aA#E zRyRGrUhabVSX&08nC;u{^)(W$b5T-=nAk(@Huvk&td!)%Lsl9NQiup6by>5(0BLh3 zlyk!FOsF?AT{Mv#1|1iU5NI=SI06fZR<-4bzn#eh6|OwMQ(s?XS%3810RaLx z71g{@y|LGn?+YeTHUBlsfi+eKAA$Y&Ojx-&t0y1%a~OwiWSD4Ju)vr9j^Y62>w=3# z&aSTH$DxRV%lHN?f;Y@~31PtNo7G*{l$F23H~?79ZdSzz-b6w{<;5Tf8dD5eo<6jj zJPultKMmk_BSadYmCbBh7>)=D`Jur`=}C5q>YUK+FZ0S)<8)W}r9Tu4Yb|-PCNv9- zVvfOMVpiM(Kd(OZHtbF{XJ?b~ib(n7Dx~fdg3y!b(pa|oX0)7E%UxX#%QpRU&HDNe zA5=xldD4l~!<21jXJ^3#c?OAjL4xEsHd384%F78Y1@Zll`pfyuepfJuHG^m*`!aSw zyEVsvJJru&3gqGrD@t&PM;KKMI3 zoS>HGe8JK(rURfhp*v82JaFLssk`5PM6e2)bX9kN&Q3`1JZh3(YPefN+q6~_AvIFc zwq^R`FR(sk%0-;kR#?=Ae9>)*sNnhu)8i!{FZ+r*7*0&tT)KQ&3$`}G4i5SC>wwoq z_$O1^?QWMZ*O#$dRKKbJ)v>`k%-dEn@xDl(wQ%0U1ixn4fK}S#hGUriU~xqfh)!K7 zh#S%8=4ON=1dKf!vfUJLnGG(_qa@#Y>9U*`b9r+YZkpAy_@dw;U^xg)hba(zzxUU0 zvB8d!W?am*Si&w*CW)*aFbY_<@cR@vf+b;TM7LT7g0WR?{leny`FFt7E zH`zqo3Hb5j5ovOkTA&TsDMdkVzTqChSTPG%EOW#WUBqI7b~S%xcurPDWja$h;y+pd z2K+V3m!&fE&aDu@;06I|V7(VEY=N*3K~TJAzm6N{%qj8m@$ty{B3|9KxA<~h1z4fy z)z#juXaDhVC*CX+O==SC9s&dUmoHaV))n#Zl3}IZ%OGtlJy_-#gmkC+NTQwINB$>|v6SwafK^ufaHXEHnFp7WiTG-vkXs><`@dSLW8skNS#zUO~xrY0^dy z_ZI*9bR9c{H#Wf&hzMY-OA1$u2dwxWF3svGc%onEHx=HwunO@eH`dQ~3i=laR#;gz zJ25~0VDiH`&oJ(%SpIMw-bLexb}`cC4v)4x`4)GYGT6uMe|Z8lnma~K`FayO<{t~u zx@=k<UZu`LR0>CQN?=WMuzI5GyJ>14xyHW>f|9OdfppP6m zq8X@DNbCMnC1GU3BZ2vl?zF6bbfqC~V|H(@>Ir7-vRSpnZ&xyCQn>2*_Y>+8>+4H? z9}puB%Cv7y3@bI~6}1t5Cs*=A(fZSC%M)q16=P4+FYY7kE+d0A+L!F(B)L`18|*qvhX!{o3&=QEN8-%&PpiZ@rNMCG^Ih)%VXR z{_`4H|N15H<(CShh&sRVXX*6+`!8Kfbjh^j>M8v@2nqjJj%KV;q~ysqthm-*!LRxI z+fCvvtx6x+A08d;jMOJwkVPLiKPDDgwg!takzChnnq6M54oen`aqG|ivARZhrS4`J zG;%aU&bHFm>jD^@rT#93tkPL1Z7td?FNE*I-WZMVkU35*I-8cLc-|O{Gb79h0*F{ z@y(=u((+>@@yavI&)#MbG$MGCkoSoig==|EoTyr)Zl|yVReoWgNmq|B>Nq?WsS{s5 zbyDdRdynMua)ITD5<&qG)^mt)55gZE&e?5;`*2n!X}7~>e5$&v``uD->k5uP4cw&) z9vE{FVto2cg^8gKE+See8V^JjyAYU<7A>j*qBYzbhJT}|q^GC93J9pg1P5IIsH7x| zOQc~_H_q!nazU5sD!xvTtVR969T5sgNc?a?#;$06vrkFhTYX#-5>6qcaQVbZ4kii4 zC!M)g*Hv#k1DYKb^%7MJ_Ox^Q`W%3*9wjfLP7p&3VvIN^m?Z4|F?YOq`?du0F~kaE zpKD)7%0MYkgGeb)Mge!I%MeteZ(wi_Tj8t>EdnOWUj;ML(=%MYB6~!NR(6dyao6DhyNy;2j$H(Lv^s#&e0Zwcj+< zP{YT@$M^f;x=OG=M7r|)XlpT&Z0;;}*_~P#(Et*D=w2YfMtNwgz3FA&yb~aQ|9I~B zw=pZo8%pLMw$lmN@<;1`#$o9=-w<{~`NlWEApwYZkzAVcx%>J4F3N`AkXM{h0op{w z?F}N^vE29TIz07{ms)iZJviv&v_Kf4kJ#nEE!3#xS|7YE8^9aYFog?97b}rGgvx^j zEMotAXV_x3E*T*pkzA|y@#lZUDgc$taj_s1T;>px*?s$NWwPVkNf>TTvsKS54MncB zuPvg;-B_uFt7~IQgDW>TJ$sxxZH+EByyEUv)Gh zI?&gWApvX*mjuE~bqv?<0w+2va}C~KdEBiBR{A3*7QgtB_1%yImt#*73*e_=AM_vz zck}51Mt~f`%Ihfxw%Fd3C>zYrvBYTHmgj~A<{SFHEPc3vIC7}}Nwpi4cfWcSZGHqe z10--*ELPvf9Eb;bH_cX{LAM$itUHRiYx|j~DJkjv`Kj?4FKt7s-iXYR-Zs(krJsHa ztqM*=3x>t^jbHA3FZWB}Y12X7lOx?L&R3&lwWb(6$V3Y$BvBtJT>E#$Yv2^vQaF?Bt=H_C*Gjqk#YpskVcG^3 zFgt$Ky+293)`|z0S!YJ`W+t!MW+b?ZnEx@ISS8KWm^kcyf&e$`Hpih9t(74n>1=(h zI~#FA0fGtzWVQxGk>Q(paxcUL0fdfdIRN$XLUz9jRCI-+j-wd)$NRVC-+>DQJH~ z9skA-*(om1Prb{X_)~mZ<<4}I%F3v&WF(*>{CehySA>}MN=?!8Q)-`IxUejlAoSo{ z_u9M=v+d+LOl}Bn91tp8q=0soX*oWw&t>nK9|O3PUhOKp|3IT4LHlHF(n6L3M@Dmw21{jt*Ie3tJj=Yk%Xu?cWVq zT^Q@G$fUMr7%uoFI}s!sgmEpOAM;Vn&E4NiPu=N={#X{*!+}_4W|U`#9rI#(bJxCpX3Y~eS1D~d&VQr;VAlW?P60IDuVJdgz`roHD8Vu?%Z zJd?%>mM0*q68$R-Tt5x55PJ299y{-?W5dfmgHo1Homkfvn@MiSdr!{<;Ns$Pm9oabw`QB z)2C0_4KjT{rl13nj8XfScLMRZ&FgL#(yuQ(GO#1VsA(xlUc`Nz<8+kK^nEg-n|C~S zF6O)+$e7<5&Fb2y-kuDS%*EUh#lkwZ!Ij0h_XCPMJ=~ZDbJLVhLpcGiFjH+_Y-@+| z{K)CkUXYqzD==nafYfgn)iKk~x#pWrE5Z=QX}eyL+J+++bWTD;KE?Lu8z9UbSFyvJ z8u%feuBXQ>%wxsh5SAv0;Jd+bQ~% zaN$6y2hH_6cS;~pR2#avpYrwYjgfM8H=;XF90I#7D_C~o?OCIkUed;M=IN#o0*O+>a3 zk>CXkauMfGwSv<;AE1>@!uCVlF#Odnv^Z-K$)(5)z6_Bs#2|7ELc9pkflP#81VrtH zmC4fY)iE>fk%{R&a5^#ZDVKGyaH@Py?;aJXeKXj)l zp*T^tB?30Y3rzB3Kc&1vSjNS5K{;Ri-&cNqE|8PLEvGr^&w~d#z0|$#4a~8+CH2Tr z_L)@J=#C!UMy7E7yx-Zt$iX>i~cbIRtvZIQY$WFtJ;rhvq0@!s%kmch~r-M-w$1Ys3{uok5vZ> zc;KNMFIVgO+s!quOzm~*LEz8*A-C<0+Bd1X7w5AUt7A+KqfFFmm(4EN5Eiw|rn!s1 zBs)q99R|gIH8x4r^;3l{Y#php%2|vKS}1ESC=)7NeTePKP5wN!zw9-dG8iCnI7aCW zT?6CroOCgANfrYW&Ocl?VLzT(H?4r1Z8&52mbzjj<~X1d&*|--$?l(Te>_qnlq>r{ z3{VgpaMsljp1RYjB@QVf5$)l_hrpWHi~6-{2mE|*UxSJJBP8ZXatA#^$FH{!+NsgRgi&f{ zvMiQzUGD5zqA}i z{h!U~fPW^V)$wMLl*bL>>Ct6K=c>lcJ@a+1}fy)Px0FsHpXkN&S&HnBj=Rq5Y@?Qj17Tk~#}Ww^pwV$`%KSWPsULJzJw z)bL6o2^hSj_*BVD3Cz)puKHhY{~zP@Mt}Lg%?wTaA|Jc|&y)YK_4)80FD14Szw|KM z#vvR=>2~o`M{ZVw0z}RD*c{%y!wE~dbE{3Cf>T6d;uxEFmZ`ApP3?Xe+iKkZfNOVq zO&8KfoQt)PTOjc)4eNw*SmocZ1!qdpmc5gsX?4@nRa`T~f9JvPwYNXE8@_?f?F@iF zKsPizKYtakOEed_hT7p{xskE)pNyBgMKEUQH;ZFz#RNPmW2%JDp4Gu)_9iV6c3BSGCj)DGwX=`*nV0v8{RPxy^ll$?d<8C=6Ksg(AWdIZ>wW!!(D^M>#K zPHbjKCK|43C}5&p+_sGjh(Qkm#*sjexdlTg5hDohkHCY`Vhb~d6slm#1ao%7Zt@UD z3J_~4i2Nfw(*!nzahQW%6o6bE%1NyFqa@UvZ69!Ib|Kq8DR24;FE8I^dHJ&LE_o#@ zL3Dn&OB7KCfUe1quaSZnO;i#Dnv{%Lng6b!+%L|2qv2=m$lwV)t)D@`GlO;O^)DrM z;e#34$r0-Chi<%J*%)UF;fxu1ruo8Q`st}^aY z_&Xd!_a>+c;d&9v{Bpit3_{Zth(W%o%~mI|eCmRk`KAs1KRyQ>nf!u+(`g9*{#@xx zq=r9UUnPmy{@%HphV#Cu{2qkw4?LeX!#luR0s2gg-c$2Gj}q+fw8r{($cvFxKH#@k zQugsrZ1;M$nUXh)7O@Lwrh+yN{hr1lYfNGppkY4nVYe(%KyyzS*n zLKcf^hUGZ9yy{6Owh`@(A{>A>s(v@+324wVZ-(+WSzUdrmLn13cfFa#zk|9(7e|h2 zb4nxAQxP`Ahi&|Xc$he$f#?w(AZeKnLhzZwZOQS?fgxR>S+#i3xG)6MptIlm8)$CVS2B{XD=Yu=)eDV^P=^g0 zj!ryj?)C2V5JH{cQx{bJS1}&f#X0T#%7BXrP#M5_kO2ZfbPZWvjtviSMF_&{75I0e zWmy?oU-5@jP<>Ig?wx+1e>B}{JGZCtdZs#qbG^PDy7?pf-8i$}-yLalDi-T6XRrlO2Q*5dEq_aQ5w6>?<6to-0lb->EQ-tz^vb>i61+yGG6*Js&}$%R(` z8^tKGI9h=V&O>%Y&s#Y;aB+v)S8;_U`|m_H_F9N=RV8L?$+h*lV^?_S;GBldI` z6+1WZd)Wrhu9@AXT`4{fgIUnd5LpAJ$G18YvJ*NXW7QbxwABo8{*;z2+YOoQO!qNx zmb7aaMRq9*S!txUwGO>?Csxsv%!i8DjfM2l$! zx91Q~;)AL4?`=q2T>@?1OMfDTMmxX zUQOQF2q+bu6NUU0jOX+8U$+REW518YcLDRk=~xA)KoA67Dyh!~;6X7ojKpvT74zbt z(;^K4sR$T0rTon&EsPFID!4bd$5QGA9s_ymNz3!>ezG4joroM#)uh_>1_RpdwGI3r z!DtBH^jie0Qle^Q`&B=)s>CebM?XJ$TPh@U<08ms+jbLVC2>z4tZrIhq?pP#vCd1M zu#o7c65mA@4gd0zbzv2P=c{JwB zUKoZ)oCbj9jlxz6rM*7Lnulv1#zbB4&xqcXVsOSBx3z7xe&#BcI*ON77?*N;vB4Xq zTen{M`&X!0cb2}ptzH@aMHH`#$&x^AWWq{YQ|N1_Yz6(Jk-a|r^9eJu@75O-fVzz5 z`w=BnzahqY*U^M#tETQIiGHT4dwchd4$?AQYRO8SIN7ytFK%tDt#RCYZ{q5x&rwX7 z%|6zhogrZk{<3-f!O6?Ik~@|&N^{@0jE$CiT8E-mPkkyUpnDYzm#PQ{FI*inc?^r& z&*n0EJ zm)qXTh00o43Hr$gl}S3z#lwm{<+Hw`;7KnYxT9d*;d9z&)0|HGRfg^lpFRyGBp36` z5gLGQMETKIuZ&n1T)1Lzf~xAf&E%jYxTa|h$#s$bGVcL`ux`~2>tFKGV0pOmK<5F^ zgTGPsbD?%bMtWGznBbmK$*-MwupkmSI62(rSM>DsdUSE~LhIeT7iE3xx*f$JRbi2s zB*UvOe7{}rv%l`QMKhgP$L675XR}C6u8DWGx?SeldQB}-vk+P;J*UrMDRxK~)9P{o4$HYC?GWo62 zuAJQekcBJT?crqkcCLBLdxpALh)La!3ZsMj8A4k$%6F^R{$49}K0W2099pxQwpPlzF2;HoGf0tdPfavd)zs9cT@_K2e zY>$)(+G~@TlCK+Ta9J(4bZzZ?$=LaFTPIU|?#yVCvvl5w>%)|=;naH@l!PcFP zWhrakOz!*Jze*@-OA2bbGR55+lk9r+x?xV)wfU^KwfB^>Z*Y>Xvt?dGB9)!-{B{Rx zarrL{qS}S?Hq9(zx61Z2+_JE))wNy!vYc?wC9b8e|JDV$ds#kAO~gB+*`O=U)I;J1 zrHt}-*?yjT2snAPmj zzh2b5Z3wvKW3xQ;QI#xZZ{qzD;GDt|g)p(Sm7?pv(4wnmeh$s3!& zUuqv79c$hivO6pEZ?Jr0L!Yd-W!y52iDc(oy6b8?vq7+N&SnZM6h8xk8?JcV&`Ex1 zKBag~8(S+zt$e>&$M0JdgDu;w^DIY~$C4fy)hO?8=Q})qXX^a3mR`1|xiWQM2l0`D z(vc!l&Sq-*=1tH3qXoc6Xq{F%Teg~(%+TIm>PS9f?j^+Lo*`+sb3a3L$V7kxW<`?? zN|kj`%G%4^wfkD;S`y+H{(TD%%q$P9+jM19O|-i;tn&r#*^#%nXqJd7?tNji{CuI5 zH*rq;`EwhuNgImkaRcQNJ0`n=&TU&$!+cg(({h|ri)5@xT=REQm(vu=8SU0b37s@S zL;CtYuNrW7W|*=KE}8#`;r(CRgi=Iz%Jz0i?TLE=-ickfqTW?4*J`Rs#iYKe2?Jy~ zNXdZBP2;k5yGj^%DY^9A1iR#@5}M~%$zIrP|yDl6wlC9~P&83j@bk5a3+U;_AzCc27$w6s= zXR-~rcus{;gkSCXBhs-aGHA4npcRA(jVRdA!j%CoOsu>xlIsco zfzYVt)xG3It>n50Wi)g&J64<30Ugx3H9qlV`m4pls!1V<6-e|vDBqZ%F~UVhM@!Hd ze05`HV0W}m4_UTRaQC@m-CL4lOyhQuNDLdCA?{ZL5tsYoK@*?0xOtOB=6o-vQ?o}u zoCsOp$MVr)>3bs*CGn|R`4Wg`Ay{hXbH}Ndh7|H#WT|9jOBn>6AJ0n?(k zp6;`AL`ztBORRJm}1 zn{#y2r9$SvM*xt?Zb(0Z`Qmx#l0Rr0sZk6CQPln~rrtXq>%M;#W|k3=kwi#B8A&S1rl=%4BQqkKWQQWzAuA^*-{W1^{rUa=xbMe(-Pd*H^gdtj z=j-`Aj^lY8*aa4G=sSjuvqtxx681JauFQG;0U5&u5=XnU)J}hCEUw%9)sKX6XG-q1 z*nHP@@es*RU|P!gr`pfPn4mfq@4fbj^#DCKuAffd`h4o7ICVhra41Xs$L(*|7tV2f z)*@~<-@ipmCA4##gD9CHr^fRH-lg!5sPOEBwk z%U_2#_$h#Dg&X00Gd98pwI8`S^-+?cQ265m0>(*BOA8q~_$1qAkQZJ?gmnZgNQh-q zVAN;@u~Nr-yRc$`#v^?v23IMr`?4n%b~eaz)pC1PGK7Pq@j3bT3z<_XdPb93m*6Zz zpL*uHT=}--37!QtAZ9VD@6eyWcXmEkKm1xE#+ZiVV3D1@UzN1 z5j7#tvE{lYUK#eMb1!Za^ILYO*}jFNv{yxcWcc5hYnL2Jwt=q<=r~NvccJ*e(guFE z2VUo72s(;cJd!GuVZ>b*2xsC=+-lfJ#2J#6u?d}UxJ?l0(T43esjD$ zW^+injzFPU)6JFqO8;zQl3RAX-mXW*#(^>`8SYy@ZfAus)92KQGdN8B`tX1@l(;gM zGjR}f3Zcv_KYmN7?*?BGxHU|g(k0V=p>tn>?kQnk0>9(1XFp_auRWJP)iv>fT_~C= z<(ueTJ&~Z5LgJVyQHMz|$bWa|3?)1hBFP#@sla)d_-cSEQsOYjDBRcfI|zDjHz*=d z4{%`L=%)Z!f~a)Fugxm>ytp_9ayIBE@pp<{)mg1lGFF zxBR}vGFefLDZQg-v}Y298HWWw88U2e>wk4ijhDA?T;9SIP|@E>4&j8=)}Dr{A8Qtv0I@oc`k0;n^O>z)p8bWdHa3$$N0+{&$ezT+dLn=!WPwUl z1fbf`L6fCT@K{d7EePZ}3+&X$yJVZ&W-r^TZfui&oH6gfC-EgCR%l#5bjK4km(=0J zAsvn2RexG`DDUfMn=XhiH&#a~;0WGhIe7kRMly}}&N8IR;ACn<*zD>z$-9rORme!d zJQ9QQn+xxsR8}eiSqL;^BlIm$pL{x#q-SE>m{1V_nMliG>g(4y5}3;gPLzPAZZ0`N z{j~89nJ~736&9f(^@lfxrlys{$@Mt=ghUD`{Y2_(bJCYrM)sT0I9#l#3ekZI>G!2N z6_u+@49a*%LFG793e&x_>myjJ0xYK!3B)1u^MAT~j_4WIU5dC+h5w-DnnEv$b&xlE zew@1$rkh7chj;Rvsjgc4OpWQ z*9@rVrk7e|AF2uv17#sL&X177?How-Vr8Hsq>} z{0uWTK+wPYut9*h8yxyj84^DMduCo9I!&ziu;^a+2#*b7m%p<)!7V%-@v^*Fx<_Vc zR1m8+0(9W@cEoLZXQ}s!`cK6 z6`5_N>|sFxr7ICEh7)aLGkWL4uGQbuagibxG?2+2TU(hmTFne?>FaBJ{rDinWZ!V1 zL3i#Wx4ODWcZlP(<$2!HrTO#%m+r$#q1+7!@o6xGLV7ZI@vRVs7I;m$$X$1gdQ$c3lwX z8kZh^or>kDh-`2r2=4=h0-V|p=KhXgIUttdS^HBhLPw2#DtlvY^dy5>N1R{c%YmE{ z5PVB_yHZw1PA;O+C!m*c3jzV_L-ZBGY~oIP zvCD1*2PKFX(BlUBGhBjiKKc}xP?kX_76JwtMH(cl@bK?Cl+CtOU7%tbzY(^cDqV@) zO`u@qgEJ@v{-|WKo^^+0F4J|VTnky8%rE}szi-=U%s|3++kAzhp%iI*gy-TuWAooC z`9-Q%M8Mx>n+V;x%W|546~6GK6UQGV{u}9=l^eWPzxfgt10JO_^n~Oce}ixeb3hQ6A$H`Z5SCZCu|_c-@a!U;qM-ucZUw@Mtg^y6c^j^Kb5QW z6{a8l%n00=Re$Huvt34V#JY2-r$^drnXGgE+{`O%b01a*6Ocdj#BdrKpiwm$Zq1ys z(JmUU^DoWBdDAE=hMZ0Yr5TLt%WzGs=Uz^9rawGE*IKEwtHs&U&*gkb$ksi|zbn?r zdsdr5y(@9)2EXQ3j^Pm{(h|C zw>v5->IP&2@ML`6Fl+&1&6dUL5T2%NtXAfBTu}aeF98>Tof%rbA45N#{xt8Z3grn! zL-qB}M!T+}NZ4p7g>Za?TF&h{=2I^@QCHj< zF@Wk@Ss5t=7evVX@Qq-_Q{|L~B{aQ2!LYScdgI4dEc;2p>JRpMKM8hfD8kr$q&eY& zdu;Um`H+0^gMkFZ%b9R~$EM|s$FuC*b2s=tgt#%gMH|~W(5G5kBSi@R?)Tc%^beyh zRg=4(YZ32@b7P#`nldYCFEPpb!&S}Y&s8jSxf=X(Du81spQI2YY6#{U5W^21KlYQ{ z=SOa9!vsPY{Gp+i7Qc<&2$hM5(Y|Zrgxf^P_A2xZgeLD0WOW)E8ZJ@YzO?Ys+}AZe z-Z^DUx12(@f9aK3s|D5SS8|O!BpfgDt4*NDk(9vio{ZT`sA!D*g zYOOcuhnCHa49j6v$yvziE_+n9@x;f_545WQ%9^P>grmnW_e#6Vt8 z1L))A^@DQA%RSzxB+P~ug<#xEYEKg*2eEdAD!l%vt$!3(trLfS@_{DB#CO(V@rePQ~8tldWvfKnPkdJOAfLATA=T5OJK=3*h6 zU}?Xnri;Q)#=darr$&N*u9w}*tqwP?kIz54b{{k~3r1MtG?<+^Gv|o|g~tWJx!2ga z$oXhgRUC_vUU>-1WxeHlhrBNH1a7;hc$A7!OkrL4hT%o&?aFfZspt&#E^^TD&i(mC z_gr?kZfaLi<-fhFVE#EG~sw!~Tf3pakI53R0Pnetv!h*Qcdk@oibI)tBebHO=o zyv@RpUVXfpgPVeHv%}FC4SWeH36$q|RrlFlG>|{#%^>yd;-{7iSMImo6TbR^ew;l! zmUG#TZ{c=AyB4ztWs95k7D#5x{%-myx>sHnF!(4xS!XeBujhACv;CWJ`MSZ%rlpIq z))h*^nu?r!oVg1>)8-qzP2x6v8Tq~x>EAL{L7!S3D5IFYxLuTvIt4^k(cPH7bA(=w zMwYDm4^Cpy>-2Ecn<$n#O1q(Wk-pGuvzl6KJO4Yf33Pfy#t{>*+DPtfe)F5-&r2I+ zEc`fVTwcYY;HzXlscyfQDHpMOx9HXXu!?(=eLOuca{{<#+R6MJQT}8;(!AVWw{3)< z?~4jmktXMm(30n+{+umZdy*rR=EzT{1&rNVc-#k3CzlcufX?jxY_VX>ao)|0WmB$y zoZh(4x#pRR7CDmoV%AWTQ2?<3>V?4x;UhPGgef2OZ+^O?LN}Oc9K3aJl`tJHL|G7C zJbQQTqAcy_$!m#*cMw1GZZ^7wvD_H?io?sj8O%&a3w!jutG_sAb~N9*zop{Yoe)Xpl8ipTA7ca+hApUACk8)jmExXt}+@aV_II1#?bl^8OnJVfu)* zZ8X}BkXU46>w}Q};aU+^$2e7oF+mF5C`7$`xELUBE`u$aij$M5E*6)u8x37g=H<2n z?P-S9*o4dfRXC1Pf;T(Eu1oZMnnByajt*_|{;wJC5tZ#HGMfU;WlXMS`ETCh+3!x{ zW4-gmga12^yJgJNEw&h1RT!&%=^L3C>1`RU`!m}(c8>V-QFDkCURYZR806fAK33TN zs}vYEC>xGzdhUOJcL*aQyaEcJ0C8b#(Jm7NFF?xeA?u;A;W&Gk| zRt;l1FVFj(IEkb9k15bFPif6*x@~Sk`-WXdp?G!j2KEvNpy>1SQ_L(ZGmX+yL^=Sv zRFIw3ldjhd#Mq6?soXl18wnP@HIP^uo5aBdfvZ``uA z;1fTw%mv6$H>X9G#j5D`{q~){eRek`Bqgc0Z1RIT5e^z^t$W$%s$}e?xRP^oS$6X# zCk=YWHL<4UhCO@;S}Y|kjh=8wLOX>vuVoO|+8iv|G(C@e9ccuhUofj`LPR2<2+D}R z>1fYM-{Nik2<&s1Pg>~;A)mNAC%>R{u}J@n#=NmZqn=~Qq9?+YapJ+UQT+J%b6~~| zyyM8@!TG{f*OJcU$w^DsM{Z)%ofV+4+4H|x5X)qZ&pdgVp{ZWa@%_ge{^kOPfZQE( ztHCTOwkxrhJqHfQr>3T&RU~qw)MAfCLYr=2Xb7b`D*>^rQMpITS2u^QezvVRyhn;l zDP_3Ye4g&;xx2|nfl^aPtsWG@J8X5RPmTG!qt>!c^!csI%dQLi&71NdOvO4AA_u4m zYbWTo24|P>;2@zwI%rZtC9X;QTqs#wI8GCy(1r8oKlk-99RG(m#lsmOrS%lfM0(Nh zO;8uMSYXe4)=Q?i=Jlnm-+!p>^*mEO>+JMQSL#S*rTY~b+jdeWfh1it6~hVrBB_br z-MzBUdGN;@K0a?ylbA}i_?bO-(9vKU{JLJI`TDM|u9oTeCXupu=k#ruV2%OjN6$M}Ab%0muh5)|+#!bwXm@s=ruI>vzag8Xif+stP zQnqKom=)ic9V7k7u{k)S&-FZ`O}1fpsYR`Ehn-KB(bny>$%@NFQ}8@pS6sPUla5_J z9_ghfYo0GH<(WuJziba^|TP3BJDE9hGfzh7tGp20U> zkR@l)e)RkqL);I;Ck_L?F(*@9WdoKHIYI9cb6 z2Gn@C95{4SJN(H@*&oE`@qYY&*u95I>741SpI;{@4 zda5rS*e#kdTKfC%B{8!}%)qTQN*`9{yutJZHe_hytncw@}Tnzj41oe*8>PbIsA zZa1;tFWp|EtpA;W72WG!M^U=GezDa-@3fuFoz*X$I_V*s>sE_E__U4&w>M{O3h3_0 zj6G!w$trv2oQeD2kM{klRCig9B!Aj|(?bjT0;JP3TDB^_(FP8S-5I<0Bt>P^jghHi zQm*G(s%271EYDh*DB}!B{O_xYGXE%Equzo3rtFCe3BUs$H8kAu33zWOZ(9@X`mOSrN?(~eo zf-f@ILMDI=tHvQ`pv*F|Q}|d|w_um-Bo?*t0r5F9OI{S}{<5;J%;j|X9DqQof(l#o~w z>@B1-OzI`W6suwnhG=ztcfD0089n4ux@e}e; z`z?+p(jmaPuKPwSoptNztPv||9jcH9A1pE;T%KO8=1D;*gp|#CFgq>n5Qi{Y z9N;TQuUNI+An<4o$+fuR<@=#yCEHfl3dE9LjVXli9^dJ+SM_jS%B{4p-k( zX$RF+BbNVZ0l4cTgc!-3+tq=M6IL5tXU{tIl_$WZYjp+-gAt{qbCqxSciqW#A*ZZ9r!T7kiy4<1SY;n1MJv;aL9l-E!&L3Pa*{g_I8s5XL>got1_JP*t zq4wFQ($@v?B20YE^v(M1+l12-z+{hPvn|K=AIMEDe8?gX9zHfms{K!^}nd#33LWv5)+ zapBGgb5kvpwyGvMKyMF3?bsyyZ;Anxd;?4$YP?PMg`?4>OyuyZo~AS#)*qcKXE^lI zOf(XTW8Y^i`+%_FeFi(Ih_wb05fKP}nLl1M?|2&nvxS8oCC-sQu&V8mK+0xtF zkeXg{+R5oRJxk}Ul3RCPuV)f8=kYaYYEJ*yc}%BNEv_Y@=}U88(8VET9{Bx~N30GA zNg3RbUTUdC4VM8&&&vtz;GjSBQ8gSrY zWwzd?@Kx%+Q{2(lr_pwg>E_@)zCXPV-gSUkR8%#2u0}PrzcB+3OT5V_+T4n zp&WYFz~J;uFgpPpLDhE*g9SVmr%ATyTgRQkOti{ig@Sy(`22h}xT`Rhu6g#YwZ^HS z_l&`Y5%G|)-c(`5TdfgH(W*|TMO#x?nK(IBPo3Hb?If|n;5@8R zTX&FVB3lbl&e+{XOgl(ebOfW5llcCbQpI`g%3g}^p|kn|bpv$_ z4OM}7p<)gKHJ|9qrj?5FbK3KnifQbIY)yxQG@HTp2Q@CPm(5_N>)^onI5x7L*G@tj zlO3a=uATLchU3~LeI<76*T3FCI8zYj$_$HT29TK*RC_|`>4}k%w)8g(9vmi5E|?5} zbRGCL`W^0CFeriV@exnb;pPaIT)cRQ?qS+gd2?Q9?IFJPg~{H!L(anwqodWZ(-`N_ zSw>wKp?&u3hnnv0l5!j?BAK_&6;}mUXK5S}*C!F>_`dfmK8!v@vW|mFH;aqk7!*8& z??kwa*G=p95MIo*dXxAdK?Jnizt-XHcPY;XI@lM>r}Yt^5?FI*Rk8;J&oj8>!4wyh zFYL7o1{ujqEH1z8)PpX(3^j}pFn|`c>n(hIXy3lQRn-=`T|_~( z8672lIGo@R=7WkQ0JCL?&H1sg1)6i)1{!z|nT>vak+8F7Xdysug;MK`&id4b+AQf` z58g2Cdh582hqFuV31Me$_2hS{u{zU0Y}lca zvWdA0@OZC?G|8+TgWYu1q$^?!aU_UEJuLTYU;n)q-xF5;g|Yt$;pU86F&>$|UMS5i z`tc4it46NX-(kudXnc{=ot>WZ2%8}|z(D&369RauF6aJ!kI=}fs;Z1Knp;F3cJvV< zcLjMuIFRt#7`Xrb7ZpK2e7&~V3kzIBtfb6@0|Lw{&T7AU`xeTIfOJo?Ej0tho|f3>;DjUV_xn}C&l0Np6GQtXqKf*ee22%98nCHOr<%Mg#BLL`HDB(I$MUOQ)>|0G89!NBbWo=s0*Jyo*`ZM#W2 z+$6K;kPtWA5Y^@Gjf#$v9o#V%z)e6q5!c;;T-p(&biKL<5sv0D{mqn+aPt&EbewkcWeof37Qv&JLF zUK7@D7vBfGe*Jr9tc^IAiHS9k(WLhmk4#Qp>g~=2Po$-%qc~dPnXm|p%9@g5kAh_c z2Kg-ZdxXNo3Ne~QG)s^}@nbX%gpEeMel|uDB2i$CTs(C~TemuZ$E#D9H#|ZazODzZ zPM1*vs`|*Jc}yPOjaZAk8(gnuU$SKBwUoYAYvMg__&oUqbb_uYqsmqXhD(p1A<5dJ z=nTJwtlzwPyMhs$4fg?}u~{4rT~$-RLXWJZV=tB$GJmy-6RYJH`Uhv4ySmsn?L_Mt z%|MGSL|oy>G(B;N1~*`KS1@*_BGyRhD~qY=pS!!!$<@YlP_%b+h?!U3)#3>STV~L7 zEHhV60O<+vHPvEXA5kG+_Mn^Iil+U%E&q_$O;?GS3l|a=m8~xM)f#t8AB71j{dzsP zmyS-1jj8(Z+`+@JlQ_s{Yy0ZW%d#OC(Hp;ih*5hPmXjyh19oR0e$4Jg0_tTN-~ z$Hk5-Ji)mb7Yev$Q-Ft_nm^i9CB^Pa<*De)9`HQJ6WGmaT)5^#tMFoXm5o0wlZq|& zo{F#czqsnO6{~CX9ztNJYp_6UPj*MECZ3!70~UJOU4-5M^;-z>G#C3;miDGRr|^`& z`}?;Oup~5-l~o@zvCD?gAC=P@$xv)VV1kB>NUnz|*5|I4^3~60w{2sJEH$M>M_@Kg zuq$O#RxODqnYXhzg55L~jk2+~Il|e=FR-_3OK0=CbC2;#;#Qj;b^m2u#LYOw!Xltw z_y|2?)}MAmpOVrrES(%P7J{2!^wDd9=o-*#A)s~geS4PZGY(GFs9+hU>1HHdnq~Ls z=U?4*V`)jCWd1zSs=@EVN1WH+ze-6%{BUz`@5$bpaEeYlSB8mxP0S8?(FJn4fr&KB z$i&_hv|W&Hv)9I5Z`J=*S9R%YW6T~46K2SjrE98x4t!_sdnB4m!7&LOtM|P`{w+M* z+uBZIhn)CE_%bK0sP-5zwRDeN#&7iJyI9loH{BA2C-$a@2)q0!D*!@O2Ctcu*0;O? zV@0!0$C;+7?O~%kTj(u^4u;&0_;O@8orTb$XHx0hxdWP9)uUJG+`C)z^QEFQGmp(p zSF8-}37sCX2z6Y}x|DD9Hlu{iH(~vuoRr!yn((kJ@wpD^E$7a`?Z#rTs)@*BYt@vy z_w3%b5Cl99&x+W5-V5Tm8nUM4wlUjQn#F~M-?{0YAt*tic-^FR#^o%k=%Cd3yO$@H z?4YHucQ^6&f$t%88vPH>$E`n%Rb?+yYuxQbQ9z*hvv}rbuM6V-^Ijej%0!~@bOqxg zr{clD4lZt*z#-^MM;q~jQR-gF+;}KrwOZUvYg$-X2;1hkCS_$0X{-qnk;PD+ z5G>otOZzakMZZbAgiRU<#eQQq^>a&C%?U=?PnupU7TDLTXiP#oxn;v0ss}_fS98Z> zi KoD;#HucUj2^qN_Hq~)129M-AWPxQT)^b9P_V5im;Y0S~v+dJoSUCg#!0Jt}X z>92)uB0OnEgv?(sB|NykK7+h4H-`Y;yKR>AlN}dD=P#YnPjku1Yekp6m?v>VlsEhy ztFe0+!b8E?&w8(p#wn~>nrxi%nx=$P@>Okr7v*gNrgxK z<7{3QVAsYR$;7_)cV01`J^sh^?Dz{ax<}UfoW7IUlv+1dq#k2UC%zqOvmv-35Z1At z?BWm<0-z6zjg`M};X=QRtk}qx+N)?ViG~XO2SF_3Ltg#;+VHVYV5$)tSoI-5aY2a<(w3AeLHF#$|KhpBvf=9 zw_`sXKj9`#6W7!s|LXak=K&(%O5%$c_tx_)|4r zEZTs;`3Ccq>dVKH#WduMe$<_K zs&F@Gj}MW@+mZ7pUkd+dLdGTM;f6to;r>ulVi?E0xG6C4K~z-Tw3y~5hxg=#<~O@x z0sj71VNi7RMv7yrl}trzeakn0*YF_%5&mvUU;-EW*C^22S^jt#w(`-J@nK{b<#BNQ zeB)z;9pTKzjacv9o=Rk5nAd)Jb&S+$fdy8kpsspq#$#n5wUAc@cE{q~X45io~DFWH7D8y&8jTAU?~rw4d3&|u;zj)G|;^U2W&FK;Y~H;?15;O&EK_Fs9% zxSD@Zzi#esuZ6x=u=nI$uV8kz?(rj_!?K%X>)3`|DFb zL00{MO*6GAYTH-Q>-Kt~o8i#@TgdaCxA)SeSaOXf9tbAslHZThrxy$z&RjTmQdwD< zpAD(f3JZT`ib!Lrgh#QyabpG4uei(ii606PvA{GE$WpXgEl1@kb|g(NlWIBgvv>fE zx6UMeXp|Ha3(tfBDPCg2wu=kV=k`c*$M5t-M_0Mn8@5eFGo*218P0U)@rqY8B{P+S zIWaublKr6n)X zR^HpV@o9sl=;zj?Cmlu%Ag@-&)4lxC^A-ce1y~e}xLzbBop9nu)HIzwtOUXnO~oHw z29^d;1h~~knF~5Z5CG5V@OJHUa7p*=wGWj#J~ladQbx?VcIo*cs2IH9k#h?8s#*KmWIX)io$u+%w6@7bZrv^h+!!yvow z$(cN zkC3)t=H_`^GLerhS3vH>f@)SGRd^Snnt^M8%oO)=g}a;q>m-P1?Nol4mz6J1g-1u% ze-L{i)Ui3u#=2i88otLZR67is7(BK1K&L#rqz9K3PKc$p`OrTWBP+dKxJP#e#?ml4 zrY}M+ZGynYL-EM%RFJ2i6tfm^{`|zGQFi0&*HFl3=#ltN*m_fk^#v(LDRi>A2y-`0 zEe5>x&VW;8d~F$(&vCsqu0fC2uNg@0b2;AB!IXj4iz>^D7vnupE_eRD#4FFec#&rk zI+q>Kmh$BbO*qMmwtMH$O-rQ$ZvHv(t&f|lhLSE(jnd|~SblH0%}Ju@S<`gpv~Z;QF`50k%9^hUy-n)KvvXE&Q$ zQ!{z`o*}FK%UYRYdAq1gC06>K1JlzJU$)F}5>z(O`! zoh{P=mIe9G2<Tr4vo1GyCb5}Gma?TWnt$c4lz89EG9YbINjQZ_5(R5lX98H83#X&!GISuNX$a;#Yd|Ou}rpbV%ZdJ6;L@zejiC#AX-V z)+=7#orUG`n>xzkz2U&~)v1oKGnm_KSBd0~>%WW$pH4$V!^$^AQb)eyAR#$~6@lUz zWdDCB7HO(?B;j@qSPEX)Tv#n?RiT?WY2T!)h1}Ui`fanF- zix)!5NPgJI`}eX}FgkqY+e?{UjO(bjTBSCpUoQ}o$nkM-a1cV`N?s38+=SzG5QHN+ z8h#eyIUzL{KUik_85;_;tfev|qYRifZls%YEy_rudLm?^f%28hr+M4y&>aW=P2vM| z{M}9ErdxtO-hTc1X~WNqZI4o8*!N;w|NXy55m>@Z(a0b%??abX>MtR+mD zx{vLLl7s+hAvTBnJ{uq^su9*|2Y55Svd4Do2n zC*Bs%P;IF=TSt80O z`;ul=Q{3w8wE|gNqCMa7ci!7oc~V3p-Dc(O`okoW?K;8n0_$oZ?a&1}&5fMl)r?i! zxy2N?GaZj?G=wftCRChe<5hoF3A6@^=3#Wb_=X5)b_xdWW5nt`rUXJtV_DCJ$p_HV z%1o#?-Hz*6O9HFt2&Sy$Gs_DHk}msM6RyeYuNgJgQTb^3`=7tO?a-|R#+;42?yx=k z3x=a}ON`rbvQ({KO(!lhAblyxI>PRaYix#yK-1Jj79rj>Rf6{3>{(_WFS~&>YKm2>2m@f?_~!8%K^hA712hB^6B907 zM$QdUO=?Wtt*yR)$5;$tBcr1m(*~UiolyXBzn+vf!Z zOIa5>LJpkOzbC7*{SfDg&96_rLn)%W5;5h?jPL4B{w_9Oj;eZka{O;68nL+?=jP-! z0T`zEGRm6bDoTjI!@Ffeb8G7fV8DVA2%rN{vrkY^(1jj|FyZe;pm|@uFn3EJU=tF2 zmhhT-z*Q<2F7&b#lyHVPw(lU1`(#NRKdpr$thAGz^Y2gPC-t$D=DbV$`yI4iP2JmK zv#CwBVR#mvOKfsp1b=dmiO>IWg7vTt?6TlH7N*Rd0N+Xk+28`CAUqhlb8JwuU=nu< ztq#fy3Pdv=K)C`fJBXxK>^~rv2taiNnPksg<;0h^Kg}yp_s}P^XnQ?T+?VDf z|MyZ!PKal8?0R>l~uvpvJz{DvA zND^Wz&?`V1PK;uxFaX;u;KT@()Mxln;w=3e7Exy4ShVgNu5El;Y#0zPAs%W(-Fl;f zH;*{)ZO?C}70VeSRV7q4MIL5g!L9E5xus=S?<3so8yx$B_fb{}9Xfbo`S&sztOKOw zXq7DR(?FdgUQuwlz(8O-^U3nzS^E4~)E)E8=AIspQ}|1NH}ys7YZzNfjCdS?;i?ekBZ_GOD#&a3zD{PHJzbv8vj zvu)Ai-eK)fG&c##RR7M8DXB|6r~E}Ce*$H)taOD`xZf6EvlT9zx^H%t4`hQ*@ErHe z?oz-}^B4T@3cEc*&Auge)gd~z_0N|Jv57&m3G4UI#j#J$raXSGxV%y`tcHJD_J990 zo0WVEBX5XiM+o)Vn(i&bdptPeuem)~MyY*--cL>Khqnxw8D+SjJH@qpU|@hv=JFR7ndB0YB-saBZOUG)4-Rg1 z+9bkOWl9rG|I#L|RApSn^}!Z}uWWlQh_E7hD~LEiH^zD{=tIs)`PA5`KI0KH1;BwW zM6m&+d``z%g$wCZeSO*F!ZaXkX4rbb;VV;+6)Z$j(VO7F+S8y)YnqzC31_&s9jMZL zT9$yQ*`dIpCk1&AKp4R^4I(iNu-a#g%aP{%5uw+Fimf3rtvKhyPCt;H#B(Ds7=#%9n@;OsHOgwd^sET+P2V>LC%5ouw3N zxq5qj!X+%Z0IbDw*Af{XD8#-Nh)*O;aUFGga4(z}f8)l$Om(Jynwtzah=fxo$onDq zg!IC^>Foui{19FKV5r=E=-9ryz%kn$P%CDNdJrjp77<&Tn@fL=Ui8wKjxj=#HQL)B zhJ}?&!}RN>5f`x

hiqL^>Qz>oa1{9iN?)$mh=RsfUupl8-t+$ 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 gW19TG+lDk2r;M1& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..dc45393105ffb4e6103cff0819f01ef7fe6b3598 GIT binary patch literal 67747 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 DG~T=- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ac34a15211837155a15c2159d4ff3c35455bad48 GIT binary patch literal 96548 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 a4$ma1xA>}Q$un`_kCL3K?8o~reE$!%cSJ}4 literal 0 HcmV?d00001 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 :::

:::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 0000000000000000000000000000000000000000..f4f9c201dac522ccd362ec98a3854b72daaa16a5 GIT binary patch literal 215585 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∨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
n%Q7mXRF8|{w(B0L=2fJ;rtfJyV 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..72a34d9d5695cedfb6d1bf44c52ab946ff7137b1 GIT binary patch literal 85470 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 IrTg&z0wSK@mjD0& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7b4e413636e41ffb53d604e6273fb1fb503f7471 GIT binary patch literal 116221 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

RLx7idxH`X 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�}F=pz4u&(Exu9z5a!0WZ-!%bIX%-) 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

FV8HM>i;5Z2n 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�qpTn}*ZT6cFiqtJz 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

+_ zT~BXMK)v0nv+QXXX2?>?N(5GSSm~*&ck-i=<%iPF(KDSDJ{{O0v+f79mknA0mV)Pm z4V*WQaG12*%uM}!Kg8kK`TC}-MW-g-gBQ+ue&DBp^Rt2P?nsbi2lnRG5=tMMx@V9t zgpS>uZ;yFp$0XNpL#g0h5@=fVSs_LFhKZ~ z1&d@rQ>@pDAX!u=?$oVSHQ3q;mkGe^@9~sK@@H9NTB4cuP)N&wbM~&q7qS;n zm&JAh!qO`>w)RhH#8S-3h&^D!^2XfHELG-2PDW#l6&~W$7h7HNlUeDXzCH)o6E#1N zMXG0b?QCGoUo&tfhCx)fZm?{o>}A8=9=)NF5w%j2KspjpRk0OPB*+8OQdmBEM!e{< zR=$}NtvuO$);ujuY`(pM?Svgi8(Y0eZZzoVL}>M1o+$IWz!qNHe&hPd^drpjIokF3 zfHqCtgr|kw)gJEp)gg-GgAWVkl@*v94ZoQ^V=3=vl<4t;R6cfnG;S=Fc2gYi7V_~< zNjU%tBZ~Apc6QI)W(s{i(1=Y%S+iX&HR;W#J{D*30je9Q_g`!FiuuZ4h*#soClL5%e@qjFwUd*T9U%F56ytiY{s4(r`g8*&DDFSPDPO(fVu=IVrm-h z+bR|WLOJja!uA*W;RC3N%0}FfhVbmg*4r!Ynwne`7neRmU2b?$O;;N)<6g#}45h{v zRdK%xD^pjKLuI|8vYE-R7^7l8C=LuhSlix9?>eXd*t^eRn*y*msD+0Q`2cRj3q$iv z7(51rs-jQ2Qm2y=Rbgd3J3|MC2A1T&ov-T8`5&4BFE3g}LTj_~;I_QHjhYU1Ub0Sb zEO?yAdKUyHca2$bt}oVbs(xM%*5xwZF8m`XW>PsfcAJ>Eq__B>ZhF=|XQdluM~^;IV`Fw4 zviX~(Up`#Sj)55bBKGK)%zwtOy(%w%ky`m$_M=PNd6D?k~!Yd4i4m?vCvQ14$4qaIZ1c7p^u`ifq@doWG+wNPY` zE$X=IEjJ(a3AFw)7sC4fMTtxpbgN+PxXMWOLc~s|0~=73;I}8eOZJ%h8eKN=xqSx? zpcW4JY)?q8#3!8e;h@6=96wGzmHe(o$Af#}1$wS6e2yzs6wjCAXm*}MTj-yt2#`4; z;X0ywf7W@xk!8xaJ@}kXK>-kkh0I}FdQ!X%CVXgI){p7_v-YjJ zFWc4~EW?~z(AB<{U1idNee(bRcLeVe<9$N9TOnKM5dqCArK|9q5cuVdIZ3at9xs8<9( zdIrOF#_(FK^`Qa|z>=fH?$%MUl49+`yF5_av3#qP@C?dLz*}RcM!bFHLRAbq+d6IS zHr9Da@Z}+93iaOk>lGZDnm3zMr#EUxJ96feo+wX^K{GaYG0wXE>wF;1j2E2sP78X9 z!7q0Amn&=+W#B;wJ>3(!B?RGs<6?7rBuYyqi|RkM-hfv0>F{Xz%a^}N=H%~(*ld5F z_x}4`YX>b<(F)GEKw)Qhkk@nRa{}_W5{r+n~}Y7wWWYomvLA6HDhm>FGJUxbZ=V=*3&WvW~2< zsNfc~8iGX88Rzzfmd>7MAt59^UbEuRhPYMgE_@+>qeiuGFPx|rM;qtibA7yQb9=J2 ztqoPToV%{rV0CC&zc6$ww>H*CWB6Uj^Gq7QS1rFgNL{1{#SLNTrJ1Ll7u%@}|Bp^& zi9vG)dYeMFTSBVh+e?zmG@HHt`q{Ag;ur9oKL~fW-%Xy?58A)dL4uCp^48Yo^gONx zN`@|Qc{MkCKUziU6$pu22$|k*pWD07`_bFCtV1Co=n(n`2ENx)oFizkAsAFvS3#jn zm7tVvfa`rNlFJz4(gZV;2a}pydWHTtQqZy+Y_6fNXlx7->~T&=oS}c%EpmaK-S(yE z$G)s0D&EQ{1Mw9$PU>UqnjCn`JKvzHwt2l-;L@eAc=s1jIaJfS9avOE6e_+#1?wbe z7S5jMy6`$BYNZ{yJ{0FdAgNjzT`2=4FQ3rR<51%n+FCz~8qw$}UEnEB zBeTnUikzm;2nwR}lQ+|*3f);y-+D@NHT@5)wpBtHL?Jy=Ej{iHx0jZ8O@@{JWM`7Z zYM(M#UCwTUb6@$h2=;*B;F3)Ke(24xlI#gF&b?O+A7 zJNSfTEa4GE|F9WS?Q>krUn7+^r+0Oh^z9A>9Hs8!^sQ~IF>ahI<`dWfXV4WM2-4Hz zwXv5h4^1=hR)#{!7Lx{bA*j5oY78%KP1$8=vO{_o73S+d7DtXBmCIbI ztf&}#I|?=x94QYUJz8PLyFFFt^JF>Eacdrsedik74+#F{i;#6d-!REYEU>YOoC1E>1Kh>U_0KW{8f1PQi zj=>OVCOvsl0oR_vV~Gjv-;aBCa0@bPHe=&v9~=u~G2?H5lp{%C)fL6M)3D|wf{DPp z*RLUyYym-Mf)~xO5-}0U)M(H0Dog_GcGhZk`^$;w&oDCX>0kYwiJ5zNM2rGd+X#MR zy4Aux&Vvp+Tk{6dm$0~+7XwMt{tUGoho7hL7PL!Dj$s)bnqCl6R^1vAZNb{nncznc>8IoI1P za2briZPWx(w?RR{sbAkeFL7Hj%-1>XMZwhN7wmOPAa{`H{Y{IvxUe%b5@rUTp7g0_ zQz3j!agt8i#YK3Omlv|0%)A$#JxKcK93wbe`_uhpaPfx;U^*W0})|yMdc+ari0feI+-Js$&Ra?fF0A43dZOu}fH3FK`SAJ0MTSpJa0h`lEJEm4cVWss zs@&N-mTo1vNH8j4;o+z%&O#~hR-S1~PfueH{5y-R=q5^QuYtn$zpC&QCr z7j<6OrLmoxi}-!Z$Gf1uRa2=D4%sMF1!1s)K~Fk-Z+LBOBL}CxxVV^bUm(2=A$EvK z$<)vFpHYtU`__|ql(Mnn{ehPkPQo6S&r~HmD(Y#i88e4iyh1oD^drGPCdOgegO5T; z7_iC1Ih8r{F;!>Vlo@ra2>+vwywU&uIpLdIJ5Di*Z-c#`MKJCA@Iet*rna_`iN}@$ zmhc4slZg>o4?Q|)1VXx-g*?EY;bc=~KsX#=``eq}1kni6!;Q>tLE$5Bo|&~Z3qMED zc#A1P)CU@j5SY^mFBD1XLkhC`<~8eX3eLy~!*d<^@p>PL>82~xbA-je&E zQvf5={7d%9tCu&k$iZxA>dPrw z9wVW>(nLB4fz${lXNA|#>~nLwB7G&=t0n=0XHutll$G1iIx}%zIyp6kLEPBpfsGA6 zR|xz=#9lgmdSEDkLbt?~5E`J^go{qYCuQqiam7<`tuk`!KvWqvyP3vB!?XOlt zyhcHO$C}%4qSbs)>)+NK%Qh~P`gm_`4kp~Db(eLVwtu4kh{T9GZrz&dEDQboSF^ap zgW#qVrml|npeieS$SJ#k=1b`YLHHkn(E5pqL&KxtapBT(a-w_pde9hl;}$GbDU*z_~}9nzNKB^wwtI{ z)=&$~3I|oi6l`oR8U;i@f38M7F}eAZ1BQ~hxnVrU`N|LgxYk%sF31CnDGpwgnmBIGOQV9&>a3(bP1Wrz#0)6M~5I z)vLlF7!N=d{`K3peh^4C{57c{FaOOb-)2nB`W*zdLr`#|QT4sTWB4b(s0d;>Vx^G1 z#sTXeAFqNtb9<3BH(bBVt2$!B&#BnJ9LU|hn5_LMNaR!(@?)Fd$RRiT#l})If3JWQ z7M5~bTDyYYbde>i$)HvuoRrXP?yM{;%;y1R*x2NtZX(#;K`K*TUj8z3q|MkbsrdMK zR20*350hRKTstPrH@kgbGZ z0f5(ZHSLD&NWD1;ZF`f*@#DbSh>p{q;bTW4l|sP45aj(Ii+?(|J3hMb!PH1dv`7t( zTk>pIn8^lbC6~^L)1XsIdHWU^nxecs+acrGyK-ZUGBacHkfk`Mn)t1|n+~$}jR}%Z z|5)6qYc06uA4^>aO2V2HDPBxG+B+J!?z&maJyV%bw0{Awz4h~gj7XgiG4h#;QrY60-kOmL+ zmN3P8&=Dtin8e4QxM5IKjgG6_zG;_WSrkGi?kCT2h07@==M_N^ccdv!)x$$Pu5^n$ zqiFsTt8|Qpi2`rFg7Hk6?IBbOOUqo%j(^*F9SR+2~NqdNt|0)d0Y547UdFzua6u(ItVFsR2eu&-WqAllHA8L zHEUpO;BhVNHX~`@#KaYp#t;R3;^#-uUH^XdXfwa%bNSR0!y_LpM^#LelBD45VBnD- z0Lj+c=x&OB@ZA-^%F|gmuc6-6tEyvmIRO9AO^`q6mG9ReL9i)dq37FueUh7Y8z&T zwQsh72ZX~VFGR$4b$a;qVL|!ey&UgjWP zxEbvzCae>~qyaS!Ev zYU){JXFks@nI~6>78Vw3Ya8y|xU%n7ObmJfLiANTGnK@sQx8~R0;OdrG{^p%UzBcn z-H#d?7{J)F_>f*{{h!C_K{S$k-;{rgq7g)U$y=v*?K~UD7|qio1o3{@C%#Mcbp7_> zYw)fW0ijX5U~BI{GiSB^l8Oc`4ZmI){D)voK?;o`sPi6tm6@Nv`?Y#97`7+C=DIZNoJhKqkfl$hY^ zPD)QEg>GSIX=fAtFfLDSMM$#re(ikMV}LCP8U1dG>D(HH>P1!_Oy4VlV)%&GDPa1B z5}nVa@$SabX_y1%^!psg36o=ufZRvrTt81nk*PQ`xBJ#;=-NPF6RMHD-+G%uBhodI z`e8{q+VRDSf#7=_FBFDqa$kswirB&rmaj!_PyrB(7qi`$`jlMMdk-QRj52;eI$Orn zl*ntNPnDqZ?YUhN9VFYcULgvbkc*}>V(|TL)QS@bOAKp7Mh%lcs}vVm2`@b8)D*A$ zv&8#?csh)#zr%1dC1o71wr?tfU^9lIjv>5OW@cD--~N3B$Ml?*(|~pKwV#- zV6?8aum}Ukd;Q<99#|IVcJ-n6^73M4W;xGwo)x_zyj5YG2RAtSK6>MeR6;pk48VBu zv9&=>UY9KWR9^X7RYiply5BeEe{;NcC5G(eK)ZFGsC@_5k@k)wgk2+iO&FZOv+eF^ zqxDyt9Wk^E@F=uj{g)2_!*=f5UWxUgY|P7+V_$c6;8d5x3O7ttMB}#BH5Eq^b@gW5 zLgyn84%7JkkYH`j$zIiSr|*IdB0ta;xCpv%8078~HJtpL87~?oWoDLL6;@KR9{`cD ze-Z=1P8udtZ?dv_Q0RrjZMa|2lRgQW;E$%Ix3;J*S)3pk*RZho%=z0Sx-XnxneCJ- z|FbWW(*UwAp!*023Wi5U`sIC(ar>Jsmp#iQE>0IXT;xBGN&^FIrtqIICOC<+KiF5k zKP5^0C#;TbSLd(*2SeTlkJVmPcsDmmEb=2qe6(r4!Wxux8Qvb(qBv=CjJ7flUVZqG zKhLB|mhIuIj~~flf{rqV3V^&(ZnVqd$b3V{G#-upYPV$!k3B2w(+H+0(oab~LPj1v zE}$~8^`YySUVXOSrIz%P92k`A2g@b0Ar6KG+*Mbvelp{Si-kYr;q_2yOJfDb>(eG` zXMirbUnu7)DOCHW2P*(y;iy{kxh&j8DQFeDPmL>TajqhiP#Y2~0%To9kRQIiy6hK9 zh3CR7DCqP}n1I$){%5)pFN_CY{yFn@fpb4|0$l>(DG)5qJ~{K?OTUPH!TY`uFd4zM zmO5B$evRV4V~6{GCHri_MxN33J~LY6?eGeGriI0Y=Zg0TU+4!Noy%l{paKM-)J$&Q zrXjpSq?3Zh5yAn%rzN7juCA_f>(+TR^;ZKaQAM^JkzD5bAJ;~VM(QBvFXS+B0@U!W zf&QoP=q}#val=a1!2%`hiBqFr&Ol3r11=&ef&f)`r@$vCPdanu?)t~!c2OZUhs88!{b?ofza&$7Wzx|zs`K!}*$@^9doSC0cbHAcsegw)P z?R&vwPW>6la%xq__wGFtm{R@(e1v61qdyZjon2jRceY&OY3WW6jLJzHvj7u#^2G0j z%Q!PsngK5Vx8M|2I|M^Y-<#=L#<|+ggTZZSrJBlm9(3^d1w78{glN(fU5?V9$Fu2y z`Q7^*mVYzK@AG1qbO=$wWvE|nZhmT()5)Zd1muQDIW8Jo+M;pVg6@J{;CUibimWlcIUebTuwHx zzO|iQoTzE8ezb*H6?hnf>xdBqxL6CFiNY zW;6cnL5NndlG9LbsvbFFSW%ssgM9ZYEiL9#YpWFNQaGzB)ZBS(zso2-3+%|Zq(lh0 z3;R^$ZlEp%7e-bSAuB5@4ujHtkL*Vqo11$=5Rwl19zG@J zFk!=;d!O+k<>QAJAuA*pQKV(2p`#iY9=-|}5sQ3k;NEar$Rv>%c)0ex~5iz#15dq6I(TxUWlGY;JW?I{nYU#6)%eghizh z58=JwWAO90Ue~%UCudso$eA=mrNrt4qT!=Qmr+%W{T(;^%MZELBgc-iTx9eA_KFd$ z;uT|KmRq-C0NdFQD@uTn5Bnvor{H|Sw+sFU=r|z8G6;;*KaAx^eQ_n`MSU1vGBIAv*%b~6dd4imdI;1uHJghS zSFQlEy!U6~53V@w3BmFiUHsp_0^ znxM{y`!!XVheXSvif`@Egt;dpBTG(CMgSzdy`?a>vYY>Y)xy$}EU*%e9;5e#&&6FV?CsJ?pZnwbv&r~EJdeSMejs55CD&HDXk zSucr!me&1xF4VpWBSefa2^OElTVfyc>`4Qw;JzLQ#G`kv7*7ptBB6&|J_N@I{I^e^ z%%~(i#qi02D3Vg}(Z<~GyIYW-38um+8D^fUvsDO*%^e+A0q_FNm64TMS-sj@XnZC_ zxw5l{=uPtvl=2;=+mn0m)!pUw+t`Ge+K*BXx6`L+!7JcTW@2hzRz3t{@n7Q)>yx}- zvL+bnHZ(o$qmhQav*l&CWw!W}*giM@MFaQ;rW|}0H?COso<8aOuZ5!E4GT_*)$J)8 zCnxAP4GvE$1A0V?x?zwGS2$AOrMSR}`uajE*QCB5`oCO&TP!0ZL(oD!eB{{G>2U?b zfWmlJ3kwiH9;E&sn%+B}>-~QpFO;IPN6E}6WR|^>l~qZyA}cDJkQq`LkqQY(k{l$- z%E~4p$=;jnWUt@#dVhbPKhCXl-tXghy`JO#xZkhqx?fi+wCi_WTxx&xF(WY%j~%99 zLVEqm$`NSOf#_B?Hz(e|f8UqkJ5J1+C(I2v>frH%9#6=7?Le`Q_x>+kh>t{!7VUNRV+U?|40VvC^B_gq@me@9QDHK(A2-Tc9w^N)Zj zD%@5l!!h`r=lMM-41jL$%Xkpv!(Jd4u zAk&R;(h(^dF;0jv?Dt$cjErI|{GybD-TY|(vBcgp>MD-?J>MI?KmBg`K~@%1=E!76CNFP4$|j*^uB;?suA+ZJ_-EYJ0^gEIu={vB0&&&KHrlcn zaq??ukmE2!2aKgg-|?tCvylli8fjkzW8>qjww;cZFPZlMCShQ>_VCcrfS4F@BL6+< zZQW&tNIKc?t@-07%`7vsrM1=N%LXlFvZz^Ux}KHyU(@I8!`TQ-6shSZyKX={&@%6S zWP78SM46)Ac8B@bM3(jZjfi?n#jN?Hx1T|tKHE$4CTZ_pc_{_x0`YRg;B=#Bf{oT( zkP@q@!m;*(f(1X%J-);lP#VtYdCj3YQCby9G;odh_~QZ-<03a3U$UNVwmHK=A4-}w zu9r@S2*|>)L!jCyz2{f^>Kc2SnvU!yoxg|AWY3rb`N`!=m%c5I)WU`jlD+4#_kztT z6)DMrdUGAw)l*1SBUr4OU-!-Q=02Cqv0fUza*+mS6-LSnSFduRfrmJWk^Z>Mhw!=A zECR*_3b>~$19AL?g{y|I4g?{y`}$P-)TL8bJN+DjfWxxUhi-(^z|-_r`k zpwqW(Ok2gp4S2PGB2F0WSd4&4RbOAS``so>Mc(I&cGr51?C1RebTH##xOr3O?yR9- zEE*vob8#yJ`01wbBkJlJ!B0X@IN3UEhK7W6{u_${Br+mBx{{F)rb3M8A21GauP+XF zH#g#IEYJ=mFf$XH#({+dzk8P)9kWiYu66^$7iK)Xy=uTl*(>z%kzoqqoP=Ac`fai) z>t=H?BP3)|xr{dve`{-d^6i^~s}%FS7(r3riU+LQ*SW7`DO>{scKi12T{oPVXzB{o2AE+0%)~m*y?M+50*ONdt8ehqJT^j5FvWZt1a2^}_3Y1K&_CZZmYb%0i z60gn8o|kHp2ZD&Z&8)2->2p8=D&)IG0>rly&@@3nKmd}CiazAhh!OVNVctU+x8(i) z;kkT@djI7dq8h5It}**Ly?BZDD6T1zYh0&YX=#nQctyy9bum*-EUv7ma6~=z=8dfq z4u)dxSyYtdLibPU_N9ddg`pWuy_?)fj77gd(DpPMrT3^0bOx2%9f334J89?nm5ua^Ot;;93X@S*L`UZT2u{4;821#nIC zDs>mV>g;cSSkV;=w%$HHQ~X%n^1pwVbc|s^UJe)o4WcIZl|;dhG&DS#mY{zj6W9kp z&C7_1K7AhpLyS>75A{l3;iBgWoFO>c?`V+U4Bc0lT3l2AN z=GE$uMuB_`Ll6AXq_84^eD2tpG^zt69``&&+?$M}`LDwaTqV5?GB~_H)lfAU7+k=7 z20YSib0sS{G@`Pn$ers`VPPypJecTaXJ^lxy{^g;>3Cz;7xBj5hq*M=@YT>acjevf zvFn2@tFCz6{ge3^ueyfDI+*#TJfK z?O$9S>j|C&eO$P^LyDE2n}A$^c*Q(5E8+V+V2DWBLY>Q(k%r5IG6LopeHe8xNh)i` z8SwG__crZjW|<#{gqzntOCd1EG>Egs>;Y%%%-pDt0;hG-!r;`h!*7UY9YC$QYWQgX z=A0@&JtCeqH@D&rDuRSYTcMYs-!ybW6;0WB?1w=wHr%NMuf@%4Bff`XHT#(kwKau9 zmVp&Yyge9l4m;buSg8&|<2HuC<#YV>tA5EZ)W`Nbw?JSR)XrKy+eq3?`TW`W=WX2K zDqyfkam{gV?F5FT=RLGkb(l(ws9+++nB1IYsA`bKwa)yV)=KxkNr8EL`m71c>AvrhTD7deeT(Yr>m-KT~=QeEw2213u^!{SiP6~ z`RI+yv@u-)dbP>D9!MgHwXT*Mllf{;Ory>j#~~67Kk77?8S$P-wXpnraj04UzVRUd0Av5P;Y@-C zhblw~Id&t{(>;QQXaPrV%-`1(u&#Q_4v_cr-D!G)It0=X{bI{gcXM+A2x0vNjlC5F zvEDmf)-tOzIfTPa^X0ea7iFK|CbO{2l~}DD{Ow$ram~ijxuV1U01db1U~Y%W`4k;d zUiKu@D!5W<6|2Ph_e!_46{AbxwaF4DNq!cLXd$ z#e{m$&A?Q<7vMJnR*xQKYCwb~6H-gH#2j{*FctQC&HFUII@>@mT3b_gJg#$*n4ezM zv&8qC0<-6}IY=Qlhy-~()>C3o+|3aTi+D0hW@a1%tZ8Ydpi#@Y+i;VhHP_vcWCMMTU;d~Dpep9F^f_1_yUaaDC+#N;@QFc9tmk~6dKHQeN=IDt5bhW67& z5`H_!0To%)|4I?J4K;CK{AY`YsI{+;Fj3~*{9z6;X}r4jIG7YfQbOBbKJT|GO(+uo zvTGNXmMVLCNb!cLXR5GK3c1ZlnD{Kyfyy~5XjNvo-_Wm=hL&8nA%Tf?C_=$5xh>I3XA4V zG|riUYuKA%m>U9RFy#9R5IN{&{QI*Z{ysN1ios;<@ax+b=ZbcH@n9e)8YW>fGNnv| zHBcT;r6!_fQbgi%XBT|wKm`+s!sqV;6LR_{j#FZ>(l%FhASf;K0j z-expCON@$|`j^ALWxK|gfKa@>y$R2pKQXC(234GJ0^%`@cvyk)>VQ!3lW2XB4=FP z-BE~N%2<&h-0sbP|2+ejziqA!0WxIOK3=N?00Ug>B?s>yGj^P=SgWi2c)jQVIfeCT zoj&|UexzrWR`mO9?l1W6ooIs8U`)*ut7TqKcoIEdAw(DWo}|y8Gy4NsvffRB9om|d zMb0SD7ZF#RJ<@p&6Tv)*qq@!_co71PU*IHx-pg&a_kyk^tpznrSCKVER>=x4;Mx$N z#XBp!QM_0wK|FojspqM0U^r6b-pn?zg3cGVGX!mT;lyi@`fQwM9-v*?>%W5JPmq^v zkf~yTQ;A^lX&9iRrPb8aqsQdMZrLdW;dt@C;ZT(4;=h0H6i7(BKtl?a9Q!G=5y|Eb z4iU-EX>c(>HsQyApe?*raCkZePZs*q`n*R*&8*pTBg85?psu zdd~CJ-G9DWcjM{o+a9T>=+r!6Z7vLR{b*dM=zdW=Zg)i-3WD{~)@Da1x0_?%qilN% zA|J8(S}MHhbN~SOB`+5Y;-U78!nl7q){@?9LRbiRz(Lj0B8;80=dXR~<>loG1!!}1 z)?z6-llc3=Lu3`n^F7d&sJQCV;>8~ut`3!1{@qF-%Q7-FLGx&v59^~0cJMV;c@dy@NR#^=~*pE*uy2e44hH93dCdcDwq*P}RE&&kr0r zq=X^c#6x&}?QU2o8l@DoYLy@X10PBa*ZwUIWpM0LG$*u)w0+WRXnQ-I@`&N)ZSmxTZI=Jbb{%&`efnwreD%o%=RG+(gz+dLAcA3SJ*jxh#PnVCo|x`cy%>ub&YCSNH1 z6%dX(zT7bYKO;oRtHPLO_sx&i2A50QSkVd!rN0c`rS+n`vX_@MVDb!;oLAW+HBJz0 zLH@f`G*AYEYP0Q<)y1EI6qLv4ADTGeKeUveCAPR?#g89PkVzatA#Qu4X~qCMSm@Ns@k>R&S$6mJC5R7rhdwd2 zw?tkp@cNptqm@@K%4*%XM45IgO+2%*Mm{FGw7kBfXTQkdKqTtnB% zy9yS`S$3+=&*O7Sd~ds}V`jJdx;k+(b4fc&HwAzQ>!oB6!uZr%XdF*^9>zrC&N|fi8@aQ~!o#;A{ zhEGH1#k?2xu6`^d&D0C6HaEjn>UG~GR#H~!kM7({iR&3qG&dY5UvklSMhzwQNlwnv zo2zHtDJTe3P^`Q!_D1f0%po zhHZFwWX-X1KUkPBB@T8Oj(~yE1tVkQQWqoY;OeT{h_}kEiuU$%5h2WGW@eg+atVZ6 z`{(y5q_3(x37G(;w;yGd#cSr8Hv-`ST9Jt7_s@_G7}9CIIurbe#q+WC>wCvwuohqF z;`iH}%2PSm6stON8;-&ByU;cQs zRdcN9BOuJEz!6{a@M)^>s)K)4Pl1BNe^s$qo4*=MH@@=~FOSEexfR9e zgVl=nQyX`o!BA^mRw3+S5UAKoH`x5vDt8Zkegi$7d0+S4f`Wnt=pI@+f8GZQi}FL* zLLnj950Lx^;aLD4+uz?$2+9T)tYd84$l8A|t~2rkc1^*qyu$xDG%+Fmp`@va3{np5 z{;>w=jbPV+K&yg@*IsM?S}z)u?Y!={74liFE+5*>ai8$N95pdqTb3hu;U>3ez2yLn z8qotvF@uUyeM)5#lHAO^Zo`=NJ0&Hn-O4@v?PELt*vMMjT%?Wc715clnd-HUO0$38(os}XH$E9Ut&H}gL+Kbfz`I$eA01o4yCcf!^6$n zjr)koCpK$aFJi}W8iOJgSrBMa!qdcI{nV;)dm_Tv5ARABYS{I_ItNP6xm_xCrD!jld=9BrUSS z{kM%4Hwnqq2p+qBox6%d*fWs**G^`7dT8#Q_D}ZPQm=jg+&ZoeC)kkA&d$0Ek6Nd| z+>oYLQpsHo3+IsQXEb;VQxY(}KuXobkRosnJ7b6TV?u@xG!@zY%V}*`V}zE|t%$j( zFC4T3FK@^VAx3-EV>C1u*yo`<#4f53Bgb^VEDHtH1pog1d(aw1yjS=3^0#C6gyC+W zz;?f3j02~MPAFo-(e8$+r$~*+Ua%6uaexjKU*)KS5T!zru8LevEAcUS^cMALTU+xa zog@3EqO6+SF%4Uip=J$Q?Gx8v6l^T;&r_Bl27Apiljry_RG0e%4wb)Mw*AGiW!uY6 z(I#bK(;thDEK5fJdQf|ZYmfpK1V0aZyB&E1L;4GfiWLfchVpiHL*{vYTO+JkTyK0S z7YH33t-A6%Wv4ZV6mmGsp+azT@5kSO{>s!FaV`V}7dg__+8WqAaXzbqg7!=9;IV@A zblo(Zv!S%qzi*$ZvN^N1?d$2~mEAM@K=It$-Y8LI}FfpYemYLC6;0032f6A=V_p`$~sbE{zbLO_d}uIm|- zEQa*6#Tn=Msj0A0)OH)!N82iuC?d0g=pNSZMA-L8C|SkQL|UmdlKXh5}M?Yk@IqY90cbm){W7WnMnw zc7o|;!xuxlf+ue7;&_c-zGQ^R29F{F!UvZJ^zO5}J~=O@s` zS(OK*ukTR!0$Z)Qo%^uoNC+No9h|7m2B}l7sXJM=Voc@!jb)5lhqALhN6GfN#hu=g z~YuerRp+j_{M;-;TXi(($I*XQV_RSak^;%l+lo`^iAZBO* zF53T^g)$hzsz}Yui=^&8a;!dje6qwnuV3-}`t@sJy%?@zZ{NO!LEFE7`i`BJJ-cg*s?mBH2ZVDw*t zsWQ2y!6eyAVQQQqUlwHV9JyPFMW+w@qu;#V2$%6WA{&*2%}P~2Kl#07i6DK!q2mFF zX{es}-87Ptl3MGV_f_pzI5*w8k7zG0-gV*zIo;c5@yqgig7nfu`A_8-W_rlJRucmr zm6B3;w1j<2*71)t(tLv^EE6dT6~oIZ8P-eXmc@@QY@V2Xi9KOFNugcG>*p?~Ri>?~ zr#SyyG|bckDq&#I75Oc$c_KMKKW1mgw~B)bQ5Xtrj60<|Co3{#i;5OEy&rQ?16%&; z@4D+)lkx~ip}*B0sVeiuZ}FB-!q$IFcHOwkh*BsPN0Y6OEN|%A{~SC(l2~h={j;Ov zk>8Er&(K%i5Q<;gy2`fpwW4d;By7?2V|yIsOhFhpw`}`aLowe1gr0bADpIH_NId;J z7)bHSV$*HBF}Cv8bWCJI!gg-RPv7os2+A}y&xB?f9Z&lrSa8PsO8JrUYZI%R;Eu;q zVoctB{VxQDC%U?4ENa5dcDB+%j!Y_F_MQc3QM~deUH2+88!b_OPc;C(g5`Fj`npCL zYgNYbps^*Shoq1A?QE7Ec&OOx)6u6XaGFbMBPS+{tW=7<6XzTWgFOCRGlrw`N}iaM zlr+|}5M+C9A+r-2nDIG#l`zJ0hMpUeGO3y6<^R(HIOtz(+xtB~+V3XS zde&Q@?;R#SQSaZsU;1k5Kd4AUKWp;9)5}xBW0H+|mf3nsPWV(Xl$X@3thb3Jc%8d+$4^LzUn2 zBbcW4APLbSCb6yJFh0rySeC^1XA=~3_$fTozkLvMIJio0zJ_ib%!r}HW>=2mP({OA zJ+(V`_#hF2gG^XsBf0Exe}x4)z)E2?jxDQ~PCjTDd;90xUTi->`GKbf?Fdd6Vgz_! z$#!6EyLy!^;Mrv^%bQjS!W5g^zOZ(Za9v>g^Wo(2Bczz0uo(xPif}AUH>$AQ^E56l zR41k4cCPd2f*Cq;oaL@=u9ORph|fSUT0ZOcJT^AC{Kgx+?g%Co5zT>s3VV-{FJ34C zlh51ng)+Tf@Z@9KPxdx8Z^rAW*o^n=>hgI$sywIRB3gU#cxrR^BTWIGvuC58J)=fH z1CYGN=8So^{^b1h2`;XnfB+)&+>4$iU-G`dj@k_2ZZ&HjD)bDkU0oM&z0RJc1AWyq z`@V3U6U!}@D>IS68RG{s8>=G~RP z4n8WYbb}X=vy4Oe5!6hOA}3Fu9(#4?qh$JxSIrX^4beX|6GWn_s@^$pb%OT1XT5xT zWv0)ii$vOOrn9O1PoS~i_Ojxq^K1osX56IVFTg>1ME4nhwK+1nL)0mHqS#>gxYfVP zC^nPRdjIrI(fKUDM1_T|ebTtGP#0BCEIUtJcRze=26QDwaPS4jLl5z*h8!h2OYN8_ zo_~Vn=Gy!G3#m1l-Za(0hX2?fG0M= zz-9HtDoY$~hDL^nbsq*eZr#*dh?}w0>(Z=q&FGO~W{9gC zk%Zxu%JCmogcTB#bh`Y8Cnl^7=P6{v;Fu&{R+@;hdk8i8mOVRrdEGNEjlzvrcP8iN zZnph*b*4L)CQVm`ZE)ga(fs?;kFWdtO>Q>F{s3x{{ql$H+70YrUps)RF8-&;uiYtF zgz-@C-(*&&T4r~mp`!cEvYUsdJ2JU=)wRrrhaIIQa$-w&O8u>a)wH!$1Y%q!f3jn# z9;X4CPWYyib}Jb)cdoPsH3yX6co&u2Fs8^)ZShzXN#~bMuc=l>G96{FLR3oFkQp4AwDG{Drw%OmG+-F}qO32Ce z^Bc8yMsHYFmiYSh!r}|{%F}je46sFTGU~fp`ryKZ75dC1-89^)nyEvq(k1T-c#O;|Q=)z(AdiGBLNS}Lu`N-na=g$LSb%edUR*PU6LAidl7lv9;7S+BA zr%DMYRP@o&(R2B2Q?AxqrugbeHU{^F3noK$5@i z^pF09v|t=}zDDwHaS1y+J1#7>S5EiLy7hc>ibC)JLG=c-2%S!2UtfXjTwQTGpoH0~ zgd+%Y6iIs#)~Jb^fVst^goQT5kZQkwPxfP2Y@SXTxLG;BM3vrQA#&F|U;4mdZ@-%AqnCKEnyx$Ou~BZt$q%MNubixU zhr`9z=uXeK-Njq`$0Je`JwveA#^O0?M(7!r5_er|)>9SJEVt-r3bt2zx(dvQ<#*Sc z4Y0Gis4`+Op@+F^Oq|~u?K;{GbPN0tcN;jo1D+w2)| zEHv)LyJyW`vfjHowYoI0yDg7Hl4Y~Ov{N@PIG{oiCH36ht8{!O9+6+ZoY`5}9Jpd& za8SYSx?KU&?`FSq&?gx+G_1GzZHM#~xnGg8Quip6lZTR)wfxfKGPxZICiz~qsTZe? zOSjj(Iy=7@>a`OH4tQyLbN3M>e$d5&(8K~m_~J;`H`{E-;VP$(hMxx0y}gOb8Mx6` zQ9+!Nxb@FXTTGl_JR3~I^U2Wb-dvY8RkAN_gshY9A^OrbEhJ#GP1DxYza4fG*$8TmdPsqOr6>qTsib@%30WDT+_a2 znQ%b?e;*>{<-_mWx@yv;H@XQvM3YPFYlDHS23YVtyu6I@6H1ToS-#7BH-Ef-Qadt~xa%Fn zVCsQ9cPxvx5}pP0Edv5^drq8zHkrDJfaV|8-6Z-Lr)A=z+L~?^vff#3UD1%jy;ODp~d5ej?){ z8!9~7f@&8pGW@qgPGag07s8>6J3ugwXUNr|Plor+SQ<~_jpaWCY#j+L?!8W=xR?`} z`TfHvT_~oe$K}^HcwRQ7c9{@r$5NJER=uNy%qqr?k zcVrK*Pe{7WFv3M-YqD1U{hK#WW3ZJL;pU@+Nf<&u*H;^Ba79 z0g>0pk|$x=a2+2i+*kk#(FE!F;!rI75_8b;wM4N>`SgEIK4z;MVm^DP7Mrd=GiiKsko5XSNzl*gp zi&X>g$zW$ZEyI>kDOO-x`x z@3j(}X7hK$ge_{6LQav91Y|YY=PY)V$u(iq$CY!5gYv+jtJKlUy0l$Q6H6`K-RcHi z+;UrvG+#UQ!ww$AY?qRsD*pL8tg6uOKyCmkE<%$VbQE(;!(F{k1k98D-g(S6$655> zihxiab(RF27O(}CITO+eNNeN5U0SuosT|G_30bM1;<+g1H?%7GzXiW%3Y;*)48o}Z z^MI+@DYK!9Agt6A6I?K`I=u(BQZ#aj6o_$Qqf}sE(r8cp{F?x(LXO0d{SpeMaOOLs znD|f(%yPO2uOzS-u&2ikkk+}+_iJHm8As^xJGPeCkJ}pMk>9SES7uw|eUSc21BtVi zlTVW#D}8d9H<9z$^`Q)2vs`82U75FD|2qaFvMY?k!v(uLn}u#I94ua2PI#uJ2>%|D z|F>^>QN6CMS~5$G^5_8MM$Tf==*)LuRXzbd;o1R0pGL$b4_TxJw*STba`=Oa9=Zv-?bE zIbOn==)ajSqP5LBJ|+MYJY&PF3UYYA_=stU=z-=g3m*s(L?eLTtQ&9deB^AbTq=xf`)NCv`VZU&4c2=2<(i33s0$S=acvs8 z`{n(^<>_|pOqTci(7kZz16L%v=C?b)yWk=7yQ6K9P-0x#ZB6`q=n4z(Wq5Ai#lBw1 zz&y-vvt2qc7!5RqGxv1m`7o{aF0sz^UBjc-r&3+&lVP$g_M|p^u~Bq)5Kr^)LgX=e zetkG5O-newd3JWbM1yV6dRcn@FGQ(S>8*=ZG=B0H@n|*DTHm8ZmT3P?tKDaRYy9~| zIkUQ_?8VzFM!&^>FGX0tHf#G&ybd&BV@j@S1mVZgBA>6`Q5Un{dU|)dod9-;{1Qcv za_hF#eg$h)0)~O59jhx{-2Af0h0|$jx9hB(<7#2@_r^FcKFjz$Xg@4#MRu!Yav&VRwjN-S94$CO9J08q+B*gXr52 zkGBE>vX)Iq0-8@)x*6YA;y~knq5cAY!NzT9`H?9FJOwH+g4O^zY>%sl)wrhcbnT4v zdmSX%vdNXgsBKXjKJr6+plV_%VVN4R8=xqHL}9!+u{rY9G0YF0wt4pULS{r*gDb{jwVIU(fG@x~Ji@|}1qBk28|oL` zJS^VpaRNJou!^|Z6klyhAy?!7ofvD{*r7t#s>(_2w43F3{@c7NcMJ_#5TOf#!dnx3 zQy*!7)kx> zT0)GLHI1>bWdK=5*jOdlB234e9)UOpkp&MsJN1tom$;9v*kRu1Lp31_@q^`~uq&{;};nT#EPksWLyM_4cBSk~(h>IDWelPqx=Rf@*#J%H#z z%UJxBl%fr&fT4|;ofI^9a5`J6`S0p+)`B;z*jR>eoSR3S0VfLjy!FwM2+UJ6J^3+@ zSnts$Xg`7tAig2An%Pcs#wQgLOy-)~4UiQpY2$ssvJru_K?B;OjOKom0a` zO$7%&b8`;9Yo&_zCibJkL5lVM-_>W_n3`In8(!|W4>?>jzht&eB%TSYDySSfXIJXx zA(cdj6VX%Y(k$ChTC!Q!_}vn_w~Yy2Tz)=V+0A`f;2cwQXbzA7s>bH;PS{ASxaG;i zPY9k6*tG|s$2{77j!mNM!Hrt3nlZA(wf}T)Z)|RS=qyVN4|n_X=TB$eT_ca-jo-nq z06(-35Zu#%q5W=a$Mo9nuc%~gFAbR*y`V{B+0L>c%f?co$5b@~qo^Byey=yV@Ub5T zBPbRVGg41qMXSI73x_y3$+S}2{GLjlC1qutY}iqQ_wu4g#q`gsymY__|FW)b5n;9$ zqJ7(7XW5!yfyhCw4t~ zOFNs>Eq`2lof}RY-)$qBD_MT2Xp)4MHO|8)Og``6e(i?2F$0f z?u1pQlL9Qkty6EZll<4_ciEh?pT)(gy62-0dQv%bqc(gNz#aq|V3YMT^|&tzRNI^p z@m_O8H35I2R%QP1$dA+yHk`as$5I=rOq}>9~?rvTeKmo(nY#QF`k_A1ZciObHKalk~!7I!$Yt$`StTsbNQd!*et-n@j%h>&F5!W&P{&$i1_5KTT^Fh#2>VN>+`)G!7?U4 zzsYr(*xkD5>(`T~jy^#bxV7cIv9W=<@O@TR1g6hOK>XUNm1g-%(A#}>`*94+Q~6uv z4q>wjk~68NW$6x(4Dh3uQ&;DOPZOry0WR4S#8<3&U@uA~l`wZ_)`%nW5+GvKR$wyE z6P^bu@k4MJ<5bwI8Gk0Yv5{Xa%FeuZZL#3GfSAu3`!Ow#BbU;zx_)v0>5&l$hz#Aa zyI#%84X}dyOI~BLj7?`S)>6OC8z&wEB9&(Dne*pZ$Q?cw-ekv%<=$_w9VFrhQ=^B6 znAJhx8RbX2%;tvT_Lt#&E7*7ygsm(ZX1X8!C0>k>UqMi`)FI^ygohmn4?EIwaQ1`O z1(-cia&|tu>}^2O`uaQ0R3Yo8<9Z*x*E1&0ii_v?_DNwf(C|GchY7baK{_Ui@7n9! zOvB9g1s=56U`QV~RR$F^Hf99)gkr6~_@3$Q;u2Zee?7KX%EHkEcsE<(xDqzYBgJ(0 zXvdHv|4&N&i4s3FcQJ{WwIZWU_S8HeS()k5Lg(hMP_P!)JYPGqcnGnSynF;d;ziOe zNT9D=y2Plh`bD3EVGn5LM5DRA#=PEppZiph^7@@Z`Bg^FL(h2|AX5Po(R z-xGyX#-V$K_h=)IDc?3c2Kzk%`haJ3@lTlvm!FNVc&&%z~y*JO`{|R&3 zV0fxR*POWX&kc&RptPLlnMV1@Zaw<2Kmt1erN1ZmDGyY5%dvu#d3l~-t0(@YdgfN3F+ zLhXC&^f#N=o#|#bH|_Mjyij=_E4{7zD}myt#tHYfk;Ml_RDg7$7j0>|3^L5z;%@KV ziR+x)TpS$U)&hE2sVHVO7EdCjBT~s+kGwA}eeFJApmpU6O_!u3mH^r5H3-cJ@yMkc zIX$@CiJKMich2bo^L|N;u39Kl${C5yWWq7wQ}1&xW#Y4U*!| z=kG1FFb+LQg~2VDH~em85lftI$|qF+wtTz}eLSzRfH>4$s=SdxIAj9+*~)~U5FX7`0GztW24`BHK?AY-2$=Lz0oetL_a z(}e`6x7dojY-_BfAYL2nApwm{R(YbBqWiZ|w0Yq<8e6y+EUj}a{TjXSe9FdwAlk4P zdH4iyjI+y<-0Iz2Ddv${)AFH8RbY?4;fBnRBm%Qe4%ZRAIl~ADruMwwj_5-P;@eTL zhAJPm_Im#fbDK`&j;XI}_yPIHzAd27qX}*42ZIy|U@00(oP>aO@LE5A`9kTvW9g|i z`UBWm0=c-d0Z<_ zPKi4z;V#eBG+iO!33%B=Z~e8zaD26G=*0|PR^FA_B34P4=tI9L%&S?5gq~}J})nQwGd{G5%N0+@YOzBH7t6_ z9GB65(lZ-A(=$&IFZyHM72_QCkQ^sB`JDbw3s9VPu%ukU%8G01D8aG{-4}u9hA%IY zQd=*XMnJ`eW@K?u1|NHf`c(P<$6FJ@dQsb60H7=`TaKUKzH6EVL_q!kE}zLibLEUP=fVBNz*9g| zU^aLN>>jUXCF=r6`ud++-Z+Mbldl)O6mlYX$8^rR5tv>hBR*JSn#~kA#oNkVNNn2( zlDh^)K^N47h0}9IC$8scLxnUlZe-66kmdL9Gan5Kgr1el*!N0cVzMqDml=V3Opbl9vHA{rm5jfGl#-TO*eHg^ zLBzIG2zBOC-58;~V=n=NaLes4P?_uK=v+$E9v%@6ZcWwGTufWD8C(c)qaEQ8ndie&*Ow$3??g_a1x#-X z(Mwn6jr!zNxgYYYMU@lihrJi3?7S*@E~fG-hbnQPk=x{3$tiR88x8MUa~dJ+U!6Xk zAd7bDb+oqMKw-~8B1{KxB5WWREEal7M`c-lmHcsV@czgHQ9AW^vPx83U1_bpy{kr>I!qV}*_pdjcSX(BF0%>#3lOVof^kN6n0+3s!_pr{=G+ z74)Kh$*r$hV6efqk2ke-E_mF=#@HM+?F;OZlCi{BNj-MAmr1tv_OgiM?iKxbXq=>w zsRxTJcoYL?iT(b4JHu4|Q)W+)8h_2r{2{kO4wrcJ8$*r@Lp4vZr^+5v4+zwFy<{GI z%Q;9eS!cVeyU!B-X)$)5(7tzfS4_h?;ecc3ECD2+G`E1%9S{6>u_(gD%ka^A_M8AJ zk*Qb^k<;@(ekc2g+$~SYVaHqL5bHU!a|M}0$q_P;pcA|r14~Q$->5nW{p{{0EIJQ5 zd2ukX$kLOae|X3YhL^DX3A62P)_UNu@s~-deh&+}`3&E<&suSxx@>XH zg{_;6In9N!^DVQ|X<<2GX#u?m|8bRbX6!uSiG=x%P<2((vF@CGqr7d>^=nT1GiyuB zx2!fT*WrQ>y7jl!t7@FFP1S*On zN*!ny8yD9;EEtfcGqq_UjwHolfskDEhmAnRq)%C4@@`T2@q7 zRS8*rFN-;vD8=Jk)MqQemzEpsT7`k3Qp>GA3+;T5#bHrjmd&(`Pv}WRx4tx8 zN!8HOlAX9CVEAP+ED`%$J~hpS_wJ33C&Zdz<+=$bZCzM9n>jmM%mzY(`-jlE0szDX^&fyjZL2mFFg7fY7HciQ=fM=FEPUl-sZZ1z;w zUe-PHEFeG;bc%b8Q&=zt>>y%Q5YX}Q#<&$)c=W52RU)50Rlwhk+l%7vLyahcT_rd& zMK;h`zDs=`87ui|zx3f)T_liHOgW2KPF}j%{8|e{KWYxJLMg2Tk75>V?#XWr{W$ca z8B#Gi@TsPztYAtpzPeyaqIk6dfl|=Gy!G0rp)gjzefUxIW*|h9F4?esNPdTGg$lDE zT6)@Nv2=1K0;!>|`&oYTo^5@9(Hf#qtjM6L!qz(UPC`J)aKKzXNjte;hh6JBH<0G) z>g1Oo-VLhXkuXFzPw-G4K*Up|dXU?5hENFZdSL{aL>xGDbk6F&;j>?qt9 zPOcTYGp;EjB8syIMg>1xx`NeH-dp~&!AAZG1G>}?Z5W`OberFt6wjJnW9Of31 z)0k3N;5GIMs?E!%T%X0nHGH|%TKD}seRp7@H3*KZjz?;o$3C=id6SYgjV^g2zLO1& zI~oG&LqRXae2!gtuesf=VIaVONgSrC05q%N&CzT#f11*pYUuNUy>H)^8ml}#c}Bl$ zvDwVMz)=dj`PKso^au91*$y#1ud_r{J!81Uc3zLeyix#A^(Gl8^nfLaD! zzb<%gf6yhP4Jjwz3oU{&n!DnijcG(kyC5JaVR;QZU>6|v25QbF?!G{jOjPcEPKdGU zrVB0-a1}L9MIk674+w~{L@?y{gbK^8XvkjFui;ozK@a1+2Wdphbn$COj*z*wMT zxlBxhmhOvJlan8EUPFh9IZ=>T>J?xabb$MPWQ2teK2d>z*H*MDgar71VH(>q;GmkO z%NEn{Anba%l~&yhrLk__d@mfQWRpW4xm2$`Bgj$*1E@u$Nr?OhdubJV$OLjD3u*7W9F(?PB;g@unE$c9AuLa4DjDmdU9V|1vTN*J)2tt(M(2zRVKtfFuozTUSrg zRxm7#tgOdAHw|Dn3>_6wyGrZ5RLmmye#K3yyPNTv&^W%w0`sqy0S!BA^3rc9!p%f$ zf$Y7$tm?4=d_lXU<;omTYZPZwoi{!%Y&dK1V-HD8{t0HDDJOlWO>YLzlLH~-(Rx(r zA>0>eG`Clqcq%+nnHlc8fJDlHeH|Y^DF_M6bn6w}rIqudI z#DXOO$^-i`(@st!Jlf4vjNuDpjtBOMk}yQ+m-si%93Kv=A(y2k2;99xG`V^DZK}p- zqmPn-JgHXWr+*&%JWxzbPrrhrVCEpis>;ggt&!1@{_FyCiWFeyvHZaCyg|6Cmg)dm z0uSMhGUucZt#ACUlH5x8_pJzTcfp5$%LcdZ*p+wpc>UjJT-@~5_wt;wu`Bv{9-}x> zIh$fRTLSYe)=&cWvJ0IqDE{BCOX)CAN=w>%MYZ<-|1NUX)5|}*TFMtKp5Pu3g!zn0 zY>e+#>Zthp`qqMOJQ@_?A(19wpvzVY0Pny-r>74|Sb4R|g9EU$)8+oZUnf~N>Rd&A zFhtvH!c0>{04R#hs|3 zt|5HJnS-&+0ihwf+~<>Y55zL#M;xiBgO!PwzWn+Bug(Or{hq3GK2}n+e>C_PDn62d z|8B57?is6?SUSAn;bp`}x^mU=ZQ2wQ(|J6zAb?#C#gJungzi%NQ4smxxS{=b!%-@M z!S#6g4a$y*u<}`Fr{PZF|5oSa=d)0Onl|OiK026d+Q(qk!lQo`RkHNu4I!{|pb|_z z3CH^ic$QAY-XCb*ku3rsR%Y3Bx4A?3zgj8`IX zz^TteO1x}7WQ}xJYXrAVm$mQQ!KU>{g7mFhk_Qz|GAiQ15I>U$#haUbPe{jv@|jOM zpB&c?aBB-xk1Sp?Sz!ksry!)J=O)&1`nrlPGSUWsgS5BP8yXsQ{u|nlW_~Kxz*usZ z7t=MRUogF)6_Yq}`WOu_Jr)oX`|Aa>$R-#KoBy(;rlz3^EsK3=+M2EM=gyrA&2|4D zQ(qkxWz@WFf=DUdAT8Z32uODG|ArKGg5(j_2W0@5YjEFmn7uyl9Fclf>UdtKk3 z%I>r0IcLtqJ@?FfU`fnTEtZi{xNV1d2#|2`{2h1QAwUJCGMBf9COrk^#ko~E={Esl zlFD0WmPST%3Cd~uVv{g=1%nWzB?fuWotfIcWAo00vzmuqB$kEiN^^{jgOn# z4yw-#JWlAz!KU?LFQuAf8D1EBN&5-Q^u6^t8fDRCu~^Y{wG@2}mCXkna{Aee$Dkn- z0Q}9}F;MYYMf1lc&U}wLo!spf73W7&4sIB*ViPikxPIGQn&s% zh&-QzTbLbpN69lW)4XBdY^wQ+{utC}0IaSjhBW7L#px(y1sV@MPKF6;K_n6jq2K>< zfr?jCl)<}ZZ+aHO+j^J?kUPg8#^j)IZme*8m=8uS52ygAsm1j4B$A5yWDN0Fkv+cp ztYD2U9{5y}c$f__WD&_%GanU69Dq2xtU^#nEPoqVHU;eSys1J6(zEj?cOVxR^80`= zThc`Q9VGr51j4h6MBr2t@!q2`bNk`=42jd2bbKA+9SV z0oqY|^{aPBk}5??iqDS{fy9obja3`MNllj{Wz1^)Z8}eS`%;HfecE3V;jgfL3*$|k za5-7Nk1jzWR}GvjkATYwy03z4oJ?+RBt2PIA40*W$pzUy2Kn<{i!cbDvc~r!p9d~Q zzAipp+%H~TK>_)dLo^{wq=2_WL*Qm$lRl*VDS=;PQN8S5j}*le`Us3Y26iVC7P`29 zf4?(tkwh}>HFfO|@o?MQZUCsJF{E5 zHqXEF-TJGu?}eFiwnw;OO4)Za$AmD+(XIE1ZPU43snq`akQWi#sM&Q>3x-itHpo(D z_}hVG$?B?EcgS%g8K5PCvE+xIk(c%S>JT$ypU5vdxBI7>;;;5}TEV&36tTwq9ZdRoo*GFAcgcZ@H42hqZa6H6l9@_hn zQyf9n6YX+vpzDfI$hH#W}n3R{9+2Ir6#GyEu{L#PX z8l`OP!jfD>63AGG&qk$#;#bY=Pfu|X(Ot&R0^5vFXZnvg<~7Sk;N#*vsS*%KcI=C` z`1o^IDdlmlfPsO|?9pY51X&uH{Bde%-wnS6Tqa+QiJ2KMv+8^eJ)jMjG8Pio=Q9xj zhHUPiBhEa(N>X<96xEaTnFi>xAiw8Grohr>CR38iFR#Tfhr_1F^OG{u%~0{GUbJIM zNKpJKZPEW^uS-W1#>OMiA1{X=OG8-IB_Pi@qd=@#JzoYbc9`+$OTEW)9$s3^xEws<3l%jk%Vvq@+rao$G7AZcQcJnHgj~a@Uuh(bd2Tsngy7xmB0F@Y5>R#gIS&9V&{A(63}SFo-k zP2#|7jL8inZ2iQXmJmC zZ-yHhLze%$1g)2jO;RdETVG%DNkh&4pFKxI9-UuWrP~4$jI`M9p@9t{NMzneR=|5h zP*FvqVO9`f9G}%!F%802s}9klTz99wi1LiUU7)d9Z=8!{wY>;2-(6|>VI|*ZE+2<> zya5kKQHOw%GA(WW<)bdtl9G}iYtFWd^%2p-WyZN5z*brt2QVhG#toUOOpv&pMuEQ_ z>+Q>G*=eNFu;kIw5)hMSwPd}{T!f7+Q@T`D0lqn)M=0HOhI(GlX#>p=L6>0G6d8WJT;n-XGe@i(SiWa}0A8F?*Phk7EY7BVQH z$S8vtPPnm82bEbLDCHy^E5y-cF);RV#Q_7kr)|ye+r%SdVw_HoXl`a>`o105#xr*zRSXmv?Y^^Q@?djR@D? z)!-=#lQ}2(<&@IngULcD+S$2DP15GZjHH*>^9s*MOX~Ka?RgR*=g6%TB0!aT@m#au z#j_WoVv*6&-xPBX5)*)C5vLCi8>@7l5t!lkJwi9n%P%M?>$b1GH*B2?`1QQ{cg-j` zg{h4f?v3fn^wN}M>m#EkCkst&|4MaCtF&bYjuvBpfdLQ6OTdc@dxniL;Y+9COH~oQo$5p4SgV+CT`sF zl(B}!wvjFl>9mOhSxNFF!k;2-dF1>ZSc{j~XsePdkDSkT{eK-a?57W*2M6dj`Xn#4 zJs!kk#5OSz`gQ-vg_9F#i`N*>MdJ#}3Ta*ytc(TMCKC{w0D+QFsr$65D!i0q4b+Dy zAiQDZLyNYoi;8S6u37I%mHak32yi8Kq+K$x`=T*Hh}BsUO1?ziatG1(UNr;tZNNu2 zshai#{A)0)>rVlJ*Y;nT6rGQoE$;E*?`d$q$Z8}c)=j`e=Z)y_BAn0uzC9!7`wA|z z@W%~-uDEseH-yWq)Vz7Lbe_l6*q~++^w``@*Q=W+d-6rLOuuDt0OpUMI2$#v+r7@J z2Y>rfjeBepZ5)c-bk;ur)CK5BI%HQW9~tA6bIm|Q!vYSL*Fm?(lw*m>$?0k(^?Q6G z)c}%W^PzwpX}YP4hXs^s2?FlGl>fo2k4yI32O|_LiK&}?GN4%kIHB$}Jc`VDk@HEy z>{!Sg8EYboE(OU;HBE#2vOWw@8z^Og-~6%ViFh21hNdPVIjJan^4A^{pYv&l<9}`9 zt_Jn({YO}*=%DFG@du3#dRpw1vez#|9$pRDFI9+I1bjWGxe7XV7z?Vt_pOC15TIi&$CBg+>PDX0AupHprmQr7kE5D;%{8v`PXv2jyUWN(*$y# zUC5xxqSskK|6TK$@&pOcruEZ=4dr@fv%~2nOw3MOr|^xrn%j3Yg6{kCp%dna!9rf` zq|BU>rho~@uky48kSVweXREGM0Iz{aRBH*E0wmUqP$n*{D;o%N7X8a<`4G(v{|r(= z4^Yt(i@uGj;imWC8@X=dMGXxB-;|w;O`7Z*JL_6+=8c?LX~^u}|XA`^`l!2v)w9UVCjr}Ia3Y?^YD zm|I!J%F_lG6@edFI=!5}{^LjHyNn{MYu_YHethf#_9AxYmGCzlXjlg*2bimE=_4+0 z24$S!=ur~~hTwO1{(!0Rr+^;#QfO|c=yN-Jd7ZnI%7hdoXimkoiIwl4`}x0x`CpTJ zUR3meF5$hkQS}0Byqq1g>%*_L^;V&ocW7p2tI~0uCx3D1z*tfc(T-aF%q=C&TvRfH zaH~O~O*iv5x_@^;la)*5y{T#d6}{fs?J}>1N_U5KnE;17PM-E*c9ehs2;_kN1-TF4 zbo?8F8!!%5;4TQb#pSIfpfeJKPym52*%5Jk^|=_dALnxft%~~QcF;D}iGbY&9@001 zNuRTmx0J=jb#r77H@3h3C3kf-F|DAho`spyYiKs$%~%1bF81rV3j&F8Afir}jJCVy zAn~f+@s0#QMf2Y09K3>ZOn5XT{)AhL~0ZN#}e??_RKp=c|9DJF!Te3o{G)bP8fq@ZR zq|vbj{iL5tY+QVw%eJR>+(`sIaI4^(uHjnLVjwVp^y()fGw`{t5YXxS#R8YHhwKx9 z1p8sTM@CM0e&|)VBv6Ezw{z>G>hU61w~J;zw%^q`yx`a1lwTkPf^tqS1;k(pF6zdL#%=&=hNvDXEI zi-n*&22g_~A!3x%Z(i)TFS$BjY&f-?3>p}D@J-d;KLSB!*de>{J!7k^#1E|EiEcxG z^2yoje;ZeJW?fi7>%{o%AV7kswD=E*HgubP!axWM3{_hemDD7u|0nBkORjKg8R@tW zzyU-@kD|sPF?ID!>N{jt=Qe2BK2I!5^;vi3$HT|ptal=XsIjLq`J7;9QbQFvIk-Au zH&vNtJ!SI`rettfe%$x;WmOgD%^d3u<=q$updkA4IxIWSH;3>if5pZKJ-qUcR*h=giT)pi#LYbG-Fcocxgc-!` z&IRs1QG1zqNoKkMh%+EFEf_b=O#72Fh(7$y8!QLhOeyRXj6y$U~6Cs)0j6xAUu2I@1$gC>vyO_Q*@ry!xi{AJCmG|LQR4JDh#HY zJy^+aJC$4xZ@i2v=&Mgpwd{CgWp&jxAOI(M*=HJeY%vV9LQnblpShFaF>UX7>0F?EVGj*tIm3mq?VZyO)YB2|p`s#$0 zhgRRmeKV`Cvp@1?rqPb51u8MC4RpEEIplj}?;*^dO;3v^`LrlS9C<96iy5*jucQcc z9lH)w7wm%y4o(+!4IXyTc|mhk1n|s&5eE*0Zj0v^pj<$AkAUTiEGveTveiUOYOHNq zhi)-St+>U@7Ky`CVU|C^qeDpAIPFX=FBdhJpa+(6= zVhO+gh8uKWGY_vN=8_$5$Ogi}==mirUUCImEZut7*t-@ofm%Dn#$o6rX|2t*yYSg~ z<{%vlD!A2J+S+S>vZ($~^^?3j%(b`+m&0cT6*YBbv3Wg++={~Fe4q%?g4yv6Ee#)4 zO$YRuO2$z~f>(77cjN;M1D5E04I97c=Fu`QfRug^3Q;Zi_W(hWMZCs9>N9tlB6VlN zlXHqLDB=h342F~+%NCOpmUa}*J;o$Vg65BPZ7H!gRk6{C8#p8or~6w8XHg7rfJlK} za4#sI=AaNpv8lJ8sYDshXb@MYFoF_nJ{%iR)|bWt=eNZ=etb4Ol};Il*nM4 zIIKj}X^N_*I%xw3%s3`soY~&?H<%^bWFn&W>~-yV0m26gYD>K%sr$f)V|6&i7^Qtawk&E*OpWM&?KolR3OZvTk~Q2*mYL(PYSP7n>Lsb@$SdhO=keWJMv0O zOXNTcxCXh>iaVMGXKc^kjNV^cbRwJpTz8CqqK>Wr2Us=0>#=mTmr(ET?v4HYqInGj zMJZn|vc+P@tTKAoY7l4M#~UDSbSwy(+#=)!qKb;7SN!q8B^GYYT*yfMj{M|i7ymvS zb~m>USXsfVoF19~OamVSvGTUShxr{73*G&Fz(cIJiGOL?x!TW$Ojw(^nqHKt9xJm+ z%Y>me-g@t=QoIn^Gu3AB3oYRx_Vc&Os-(;;NKZ~NhP5C|cLOVrLfg}moStlK?;g^f z;1gf^yNzc1-yi1T4B=p7jtUd_Uc0V(djb7<(-deydNNlx+&eDj3>4gX-sS>&iSyFU^zwE}M#{>;s0kA@%N&s3 zpN6%9+8?!kmI*KVmz9*H0ko~MuCCXbFLHkAA*3+n2pclbFKrIov(dD)vNQ2?eAPG~ z>mV#37}}OZ9x+Lzln7DBxqeUh(!>D-aBcAv2on=v7C)64^i*pAvdIPQ01^nmljYZn zYjSVAvH|wg{Ek-z62C8eZ3h}iY&LoY0_r-plK)rK^M^*F&2k0(b#a$n!IB{YSlzkv3h4fE0o}0$Gg9*&rdAmu+d~+N|lA)mX9z z50$bDKjjh|$l=@<=#d0t(#GywJc62{NT{$8MDyPHA^w>opVhj9vDasMH$W%MEyLJ(7H`fP$I^j{O#xI z1ce(qIupy_G3Me05v$O(osd5Hv~INj<#y{A__^Y_f5b$1PN(*u`=b5*mq4G*WY(iD zk$X-Met~HI0rCZUdFBe~4&iW*XC9H99t?Mz@FENxtz${R(nOi4<{lg#{$;bTpW%5W z{ve2Png%|x>I{9Men%$s=9~^qegV0`&;6D({i2?RVjRb}USlNq~6Tx(n9ZCb-f@si-(6eBDKTzSPW- zEPqKu8Ta7_m{B;acy|`zADm54SWvP;MSlMlKsbdCw#%p3<#DoW#q}R&1;3dQ7Ed_C zR~py5-DrF0l9Dr)0W3|CxlvMBx{7%}o4Lk_zgG~)SYGfWw>oM7pXFe`^}vCi(Y5V< zC10e9<;&Xv4#}>sdGmVV#Ys41emhS3poMqKRcnj9o!+|`kz4HFHMQ7!daDk1TdeH3 z`tZHx>uz_h+H4 zN{T}&5Vejd8+d_(<&P#~-}Y&cNz&1T)wUkG-EExTxwOEfcsf83f9Oe)6PJlJF~K|X zcdR`zs83EpItPa8m0$h`p_Ab-qEGcpX?EXY)W2Oa|+>U6y zM$aWd*x{hT&GVv^+@gjM|HJK8l}H)5TS8(&VPWa)ufiedGP&$zQSTnfmZe5$|h&hM{STXR? z0okG4WRfW0?yyD%bS8m4ga~co-hLQZPH*@;$XLL=xiL2*mA9>x{0GO z#4L0(g*Z7qGi2+f_|j$xFhkEK{ReDef45IlH+As)_qvON9^v7|cgGSf$wR8zdP6x% zLNW~L%Y%K;xvhPvadp7bPh1d==~`}X4IG6_OoNMB0$eI{o0dv1 z5bQs=im2-_fEj}G2nj*r_gSGg$)QRUbV>2W+*u!jD;@O9vEpENo8;tx+fJ-7E^RSp z>Z0xA*IM9%_wD4o(qfj>_>em616JZTxqqAncNDA8JrgpKz_i}{*A83XbAM_dgUOox zIO@W0O(T8g9G7MUE7$MngV8+mesv`>4bX=lDblLL_Zhl|@oJQsZ}Fw#j*<5h&Vk(RwW8yz_b4NVpKympEtk=JG% z$v5tLwasO^ETPmgm#TeYOov*Ld&QcbyYY#at^VidAhRh?+tCk_^HR?PN55*&lgd+L zJ%l%B(HJ|5U?vg1zo>~ED#-i-!WU&9M}=k3-GaVY)+>?2*vzJF7p>WFdB}vZc(bQa z^uTI=>v=F}c$@ROUU@jbkO5~;*rq7lm;-b)3x@&!3#3r$M}4EVW(1;11n+$BGhQs} zaHaqB{`5Vyit1)Il&r&ur`4fHkvh(lgTF+B)BJcI<&U?_y7LM1;Nf8K@y%Ek-CLJB z_OIN<64Uaui^SP%cZEf=48S-=ES-6VFIMQXXwF3|zm0@|Di2%Qz-eRc^R#+h4DLk6 zGR{z+rBLbtkd;*Jqo%F8EDH+FvjTw;h-dpgJn^@(a$?dVu65O8Rm9u3%|_n0^-38k z1P~lkaIU>IOX6Y~`|FuHYYhp(f>5A)&)(bz-Z)|(;5sXn)5a#|dT^OM)w!)*8Y}?5 zgn%No!g|8c4w;gJOY^bK_O8%K6_xOHDegq7bQx%$X~a5!qt$MNKnkOw3_o$>{he-p z5yP~6-o@osgJPLuS-&XZQa$EX zCJaoiI;jz|m60+kFBRUJRR(*F?K)4}-U)im!l;jMHTMPZ6>@?92wD@8M7Qgn)EpiR zC++{{xs$F;GYHqzlDrru(P52zleZkVKD(aX_aPt^-sp9vv$*1MztIYk%8Ua8Nz9kl zSU?%)Sp|DpryM&pOGsJJxm%#zA3J1ZRThPaOT~bAFyw8Q$8u*H#Dl(yYPl z;?7iaXmW{>4!)p3EPVo6L30?#UPCywnrtv@< z1ZG&Z%&Yq7p(;4fq0{of_#1K=*UqApl{nt*=r9e#4(koBCib=6{8}6M*n3SKqxItB zN&GMsx@yB+1;8ZdtdhUSdzdXz1;E7`@KE(z|Jgi=DbAiek~KB@F^-xE&&KKK&K|qm zC-dumMUBH#8yV!(`REDjr(xb)X#M3w3-kd#?$bf=b;g9Oa!`EKHIF*!*P;^1lbYTT z;-lf`Y5BD~j}`!%xbg9qMd4!dHutPFP>@BtJMg&2ZYay4rzP{=vTD*N50`l>H2EF` zV|wQs!s-70i(U>2v}%6MzDoq=3I>UXt?w`l=k>Z~l^VnYpVqz8ci)?7UUGUaIyJQ$ zZ(;-01|9x~%yrJ^b>#ZX-q{bOhecQS*mJ$rH>t2sn@U85npI6l&h9S!+K*9}9-NB+ zN`KF>%v)Uf-^^^ba)w#D3W>Xnq6%4 zkUv*!x&cfimj?p^P_|NUOok`%0EqJG_<+2!$eB2Rz9D@iXj9CLCuihQ>a*FX@6$>% zXioYPQP5@0++qNdr|->Z$~v#igz+M98#}`0mwNqMki-wOH_u?Mr8o270IQo_{F-i` zZ0l#1w;BF%oLz666zoDA<6?`{3c74jheng-Hsong3j|>{p|58LZ#6WoWlu(}XM4~J zP>8h5dvWf~_iy@#`s@uE@eHnj*)*9Q3?v6 zB)zsQ{_Wl%?-Iq zyz|}lz**=&=Qk=bzgwb5t*eYGK1ST@CzyeNQeYdq&8D2{Rly+ZyVj_oy+7cu0Qc)* zWn$D*TkdBq2Rx#5j|>MpnOJI>?Xu@gwdv4~tXC#E9X?wY!i-p?PXKUmP9rm8c$)M3 zFr}BguLAvCIC|Q)Z50fVSnwu2ZdQE1Z#G8Xhqbzj3qTf;sH%}V%)NQ7zxK5*fY$YK zW>zL&6=d{*?;4Q{`)1&6S)s+F`>9IB)+2+&LCN*T1f;Z^9G9`oMgk538;-rbu3?Lq zB9^rm-d$eha5uULFf&vNKR4Kpcpn$q_D$&#NXfXY#7cd|ze0-Fe0JbDxo8K*7i??vyQv3vR6jLl%e-%0YUK!L zY4htK%t~)x_(BZ(`TSb;e%EdLTBde`0gEYJSHl z(o_hhJ!4>m)3m|ew>XoJCa6~d_@JN%kG|D!n&qqCgH@_Gg=mQ^#uvV25^b9QhFV*n%CxPcDR=b8>ccRSv)bMHQJHsDM(ZOYAKvE*Z`ku@ zCy2VZxw}b-ENUqG-E@&8*x$CuYD|IuY$?>N)XT8C^vqj$*tmLZZc-6+VMu8ZaIT+g zINF(Ay~b!38Al6?+P|}xsNGkmebIi~S3pn9Q@!{VNb>f;KFO*6S~l=_^}NrGT=-fn zx|U*6s4L30mT$p$+`^(VzjNf5=jat*b*5AU1{fowA_39l_jFbXm5gfEbYVdl_OqqC z_#t!ckGiJLwrF+U3QZI*0uFKx_1Cjgia6MLB&kV;&p%@aT_;JqztHI){EGuG*ERYS zXlL?V^i|MMyi9&_athNPAJvNh3R~u)Job@ADMzp5H1O$jevm?~!2ubhFDg3`%r63d zfov!6BRef|Ony_mXxI2%Qvx$&Yr>qrcxGgS{Z25586*Y1uhsAXFqTIUNA%URC5-UC z584u!dh@3bKUXT6fX>CmjX3(mlbfGLVM_yYQnqio-A*qC`YUE^Q%S?Y;vJCz>J3pq z7jCuu#sq#8w+|^fZxW9QZ~JPyEBSg)w;^pNYQOqmbbUH|{L>%Kq`y zGb6^hN2wiOMoqDF0#VQ3ReY11Qa#&QR9ZjV)he0%&qC?~L0=wt3-ZQPjqiUR!DFb7 zL*}(C0}KHz)T*lEb&vuL1K7Zar4HaPn16D1{_k&n8~zDSXk}(~;6K~*>#@QF0U-%B z$;<3D=Ty>Y3R{MUWBMMSOCyPd4DgSs9c8e_AVE`3zy`x7ASPV+&wrp>ru0wsvMnjU zfIxT!NkpgA|8MtG@_^si8`h=`US(kPw4ES*z}}r6>}NZYD@D3&)|&cghI-w8SO#f( zf+`4$sO13L$@V{=AeA>qop7tBHzutEpHDFTW;WB<+3L&hu%*_cJ^1pBX{J7-fy*rt3XeclGq9NTUCD&N)AWe33Cms!e*#Ln$Aw6vz?? zpB!ekoAQ|8@L~pErxiRLR#*i)i-Biqa$n#7UI`HY0AIu=k;U%6n-6jewx&sr^g%^M z|KBM)()V8U(np{k|M#wh$_orF-v|N1*8g@;0YbR5PgmCz$w2h|+OVHF zrhiY&L!Av!y8}9*P8!*a@}-J)?tJaEY=rXPwPb%0m4XKxQ2k2zNRtqjv$V_etCw}m7PB5BZ3mi5{SELm61yz&O();Pki(k&&OLkJ_Y09W6>OI zBF*)(*xoL7;;!Jm+xH49(#*8V2!62H+<4}WKVmlPQ9#6yAS*~4<5ktsRK6h)6jw}A zE-3ql5G3yuDC0<BW4@5c-jDjx|Gbgl}ghySg4W{(S0(rv2v)Wh%yQ$~qqbCbkrV?8g+q4-2QW`matSQc0x}41!AoVw2d*kFwdEZ-@je~zR zVPfr3%Mx^#MdjFRx57c?PIov_N-;6-+lFg3jUgwOPp|ag$7W>hd9O~n+Vfnlbv*}~ zw3xOBwwZW1xrZRBIPt(H{OZ=+%Pkpe-Lr^$rqLMx-uDqy;yd!g{lY6AlDEnwZ#>>h zeG%`5Th~OB`YN8nRv73+o^)y%^+{yF#$E;Uz$OW_9 zwm~R(jKb6S+fSawP*8S z4hUB#%sl1Z^;SkUcSeg))bwHjGs=Ji6${IMmIw>(D;fDat(>Hc3Ra`@rO&oMW+*PG zXTM!%ugw%s4n6of@!_Q;!+OF75;LW*`OWMtZ1{~?kB#|vfYC#M3p3Sng>J$ga729V2po2qJqo}5p4kqLK5#TcmH znQCWe7X^e&eiCZA!K*ILdI4vh|6|DJ_%G`g7_hNIE;#GLkESA$)cJnL`xgVKjM9~n z)L-EHX4fq&B|MA{nN8A;{4W6U$+9S<{O`bCU?U*;0~eyKd44F`ceY}tbn$!}4>+6L z?|6oGPK3~zPrqwiJWk5gHgtB4+iI|8uz9*K&OsuMdco%qC(P4tuhd2$B~L{g`$u7O z?1*eq{iYX_2CADv^+kUZ7~ryhU5(m)Ed!*2{3Uljhamre=KU4%Z#$a~15mg!bU10V zKEjP&z8E;WPMbLNT03gYyEN0$F@7fRBaXxy=vOl$wbXJx(_;P|G4&H(ze)%hS#Jl5ju?F#INyKbFL7ZpweZ7{`=DFG&q3X;Kh~ zsf^e-w|qEdf8%q}i!Upc{KGBo(fu=z%)W5Q&M79WCGs84ZL3crO`ZNz z);px|>|eeP_=<^8aNJ@0O~X&6&Q$Q|R|msfo+SpVtH(nl=~N(5wzM4!9o|XFX=d)u zc%QrKY0T*?tah!l>~t8H;vteql3siJnfWcb`qYBYL@!#NC5ktllxlh&Az~2Br=Kx^ zr1RZwX$v2^kW(qEiL#_pC8`l_5gYlLe|g$-jyU@MZD36qf}3OfAz}4qs%V>Dl1dtD z+7?ec?i)H1wG3ryAC@kL({}fx@^|-0tq1;o7^(9iZI-<-gU9x%9c4_`Um`_}s#aKNtV_@P~D~mwu1?9tvo} zJizZ8a->SrsC}=K`^9go4%cMo=jgKb#QmJyr;TTkIOXBV3s?mM7Ugk@`A&SKXlEFQ zOMsIS*7#wL0LPE%>w^k1s!6e$pA@6UF|z+emY5$D--RnCm({K(j5&_r9F!l9lgZUi z((5#32R?aTkA>DpEn4XCHyQIoNL`=lcqFF6$lT}$9_Z@UrH$*}R;P-wRDzlDD1q<% zt*(#@C{y~tQvBrdLyzO)3;R~$a+sQ}bJ4ayvUmM6ljFEp74mi^Z>zl`hR)Nln?BT&x-ormNVc- zU4z5>^4(LmpsbvdMAyvR7^yKQ_@C;x=|XAi| z0+paJURYM#j_`0nsABF4&Nw!Z3@X6@vU-?!?UcYb!WA{~kHNw~1QuTfsLhw7F9%RG z1B<~UrqbN!$nY0bc@@%6=e9@#jIm3Iq6EbH*}wGYy@t% zbmp4II);(mjjMGw>t_ZEH5ZMIO#^Is8k5O^dm_^PQ6P2HExl`6VtEvlbyV`z27zp$ zO_7<|+g`BU(roX91B(g^Qu>eDIZ&%2I!#b^Fo@%;AFK9pMYu!&L-B#97wr@SaajKr z^}7+<8slttD6Qvqbrsq`EEl9vU|M6TVpM2yA=1;F;R&Oefu zi`>&Xr1K5r`yZ;^+?3xlJ&IKh(#&`lOI}`E{W_vMDO2wsBJ-BMq3kfU^|FV=XG4^P z218~3&5hQpK8&SMu>>>OITrW5MNwEhnKe;Sotq0=CcAxsxtCKgHmrF#N{;vN;+=eq zlFLqEPLPIJ(?K;pN+?wcQ<<_h?hhADIuj}c6Eo8x>;0{Wg_lwC{eG)Z$NtUv{pb1Q z@&#agcBUGm9N7j}Hq_apbrn~;99jnVo;FUoSn?`%soV(q*OS-6#P=tJh4gt7VR|OB z3oMdXQja`Wr?G!KI8eP-IvT6h&#Ep?1~w7NJ5(!8FFUUSsd&CSl{Jl;C@eN|eSiRy zWKqeIzjN{SQnSFOXw|}RQ|&vFY}Y4u(N}(kcC)j5=T}~|l5~Xy3>Nm*WW__WzH+39 z4yeyz>m9d#Yv_dXGd=k9#{{MI9@j7w2evP)| zL;<6Wz37#$gsU8PB zYm>k!)%(uW=WZ(%P0D(hP>o3Y$!YOv*cB!Z>q~Z78{8b{e78BixoH}Q-ILy_xWl&_ zS=w7kEr&w`>WJxnjTba!zkZZvwZ zI<)wO&(j}M)Kmo<>J9&5NgZv-d`*0gjrMv!m^YnXSVo7ii3S0_>=CKXF$A<;mh`v9JI&U%sR@)j#Qhna&k|guCptq>GPL{P zxepUKm~oROoSCyOHVmFOPXgZeCg_ zrWyHol6>yEq!DPC1z&A&Pjvkf`$ffXSI2;sofEcrw|Rc?x7_bZ{&uq_@;9^O_ajOa z>cbc%W##71uHh!EO_CBq-H1%#fN@9}mFlc|1S`(_*sjkyuYxf1E&MS>u18S^0fk`@ zzt7Bh?*78}r>0t(-!59~y@P*Dy0^gPng0z251WtKcUyr0Unyb9o-+3ZKKB%8dD^nh z{gsC_OFZXi>?)LO+}B0cjPNJDDdJT6q&*|(Y4-32o|`dz5ftfynJZ!D=9D$$#k)7K zI|Ph=?d2eh=Hdn}BBkJqTR6exqIOKsAUZpY2b?3myJPsY%a3*Z7K6lD3E()YnT%^C zMA=QF>5?pOz@jU_qR&bBWK5~3Sd0Dv`xt&-k;yJ}0bm5dPr$=n*jRN4*J#Y1yW+~Yde-xH}NolZty#XRq zaj#o_pg@z7lUAcNl{k4hVX;ag;YLY7@Q+r;$$K_km3>R^lT$OOp#6@UJGf=~L~S*8 z48@FK-E*M+%UNa3H9?tLTHIw`!R*J|qHyO@zcC#(q=6VllBWAd1{dAy2N&g9g^i5BBfZ?>`q317Rc}B*?AL*?bpcHp}y=Q1=nH21Haib-nd= zDCR}T6Ozln9YJNd!nh!Sl_u4*yEzGkvGeeSlo8VxiP>0inuwdoM=OplOn@S>zuc3R zb-y}KF1WBeplL#%igY;@1FrG}09hiGtR?i0_nNSUL)K$ovB(<1I}zf6ALJ)Tf%ESW zCe(k|aSi;@{rgqSHpSHeWS_eId)Z49#4|yecdy{Gfs>7W;~ zQ*ZwJPa<8qVF~F&&#;93Zf-5u(4l(Q4U5N8|I%$|Y18Eqj{J^%q}xbGU^1Rokd{#Y zdF!qC8R=OTP>MMha&Yz*XR0< zfA3gkl@;PO{~TYK=w8{td3Wv3{*GPTnp;B70(Hrf0JK?JZ#jE_y1mXqVXwo3P$a~J zjsq>~KbZyfh`0n@C0wNn_!a&v#|_iKNj98P(vw4%W0bQ@3F+CVd37@G;mPXIbVhq= z8x34_)#A5)w+4Rc-sCOF%|DNC9qzwHSg^j1l3G00N>)$szey!m8P^IN*j;(JwTk)B z4ovdwnnDenPLPMG86hFE6V%~%+u^FDbh%g(FDMEa-^~U-8MrU*J6rTh=?OGN+eHV+ zK7VWfR#kzPdtX${^VYyF2_0Pc`s~B*Gk``TyUvw*(bEp3!B)WAj%imnF`a1u%RYwK z;14p^PGfnD39MQ6jV1`Y!yTCh@2`69u@ARi;;rFb!tQ%Ao$sRjWV?vr931F@g%wu% zH+=&;{93~}H)rJjp<4|Md%hR14paD~vFdH3tI9JUZrSnT?I^kOtQIKn#Jc_UtMsd3 z=&vklndLuEk@>v0gc{G!l_5GP@6~ju5FLn{*86pXf3Ey8EHs5y1xB#8d9c};M~GJc z5M5fJxX?q%>l16rG)Tl5@~p-t8nI*G#}R^X8zsVqHve1y|3}kRz|`3^-4>VP?(Qzd ztx()4?p$76i#w&rE$(i`i~FUxySux)yZul9m7(fER_E5+qx0ieyX%iz&4o=e4y~c}qVsR>X|3S9i|uyrkoTwTcQ=->c5i>Q z!NeW#^9E4dSd);D7Y5E=Cw6gix*8%k+fUk>eEzn$eoYtn9_&*gR;-_g z+i?3c7xQpoK^{TFd@%EHoeKo;9A+RK4DrnkZ?YQ_-;IvPk0Go^1=aNdZQl24szef+ zW>Ied^Qgm-f8qH05kPJQy*R9yt>RAny%xa4H*K>|)7*{svEGko*}l$QJ9+z}%6tcUIJ4TP0Y_R|&e;<+5Ox7YGBJDqAsDwlGyfprmxL)_cV?MW zP#ZkiscPtd2vgbmAb<+)lTa4DKs_QB=d2fG@hhd%riTP&9a)a_|qB8%s)W zLi8+JXe0(i8!rOc;F*26LjiNz1UmLQ&)=fk70v8uax6XB4K%a{yOl*`q}>Gztv1mf z5F{nk=XyMkoXIRq>@g&GWmpSS2vWPr5GH2U1{~h++rRJ;HdVa!={4QCsV-~F*X8;Y zsi@+RKK4j_W$ZfM6DMu)7k%^zC|Q#8`6#O4s^Q|&KrxJD^xRshvZ^v_(e}dN^N}pc zN{u;51v?nHH%09avY z|57Xc_r5a_*u2#$qgn1qz!kxOC4ep?sNE&}w-~bQb+934O17@?$q?Vahr3u?7g>BD zY^12|0viI1XK1>gAO$5>Upd!|jAfy=J(X8ZOsI|Tw_kE^Y9ka44+2I+pjK-2Ut`Os z3bu`c;_^^^o_^l<-FXI_uw%~smoK7*?P#)b7f(Vjn`Eydv0?XPxEMg0w#s6koy}0( z_lAP{eol|E33!~1UL(h;m^kZEcH8ETubm!ZCDi9N)fkg59$JDZzc7}7fJIEMtN}t) z{bU!DE0aOgiM8x)kMKtQ+pbuZ#VwoFlsFh|m(NB8O%-0{{%hWU@N|+8+o;eDbo2(< z{BLV}81rm+U#*WyAG>%(!Snl_bK$|Ds?Dtbe7r9 z6n^n8Hj5z9;;RU366lh?+CBg4FtFvqf)(DYf>b;9(dl6&3rp|r=ciD=?JSO6mm60q zT%!duP<7qwfD?&k9=5?l7HLn`F2J`1uJa|eY%V0n+(1ktj#}TIZq>Va$hqz_ijJrE z4?KiN4i{+P;hUu?u_+7gTe=rYDjVRgFE`?#!9>PtObRg=z>%fnqBh5Ee8&P;F1Hob z?h3C5vTfwuZ=BWpw$VJ063{9o2VOkS987R0`huVRHf?~%63T_d#vE?@hF~YjJfY&a z-#Wd#g;Bo0sUKS-Czn%-8yBc95i9lUPIQvpU{#iMaF;uoytvIs?0ZLTo+Gn(xtT&MUhh{`ElquPL>xxN0I%VJm+IDlsZb(Qv@>ao6U` zl1A2N@Lkp-Es%$IkDK1r$2<7pv@yTwvQqWo8cZ>WiCPrGwy`?#iuChh(wt7Kx{t2f z+?<0=f8}Ivg;OUM2u$V`i#0#v6b)CiPJAyNiRHM_GVD%EgM00B<*Bke0by*8r#h;TWm^3fVe%{hKc6r5HMx{|W+;C5&IU^c>n+ zfq$oe&h8*4?Hv1$10Jp#8J0R(dlp)3N?mTe^~YzPC@*6&CmZCrcaqQh3RpHK7}w&W zeUnC(~P^Q_xzmW=B zZ=0-$+^HJNaa>5Y3$&{CF#mwhzbwuM6Gs{!3(P%G?-4oVwm)#X@q~LFkjJgJFOIHZ zp4j5rSi{+TM`T8}@qrR-48z9w;+dlW1C&X2t=|!-lBE|H=Vix*+dbOy{#8^06tKK$ zLO*i^@7z-~8f-X{^ArEJ+L)jx;F+f4`jpi?RMd9G=Ozo^3PVGpH=m>4HMTqKZs#kK zP$-3Qf*#bIk*EMtR5YzD974lJ!gt8}VrAE6qH=3b)z1{e1j2W|PQiPs-ruXTc==np z|35B(x$2Ww^*4qaJfl7#_na3{5mw`6->txz)Z7j>U|aZbAMWHZosH3N*SvWe&AK!x zegcOGTIMMpK#yDgMjE8m7t1*OUJpevQo!uR7zr#X zQO0=EV;*o(|B_V!=Bj}Rw%*a2ZJx4Rh^{?hI8cQ$N}al?+co1&N%PWRWX z$+)1Exu4uTQ3lK)7G^cCI|~^$5?G=W1@qGaCj%5UY8XAM&k3WTW$kX$1?OuA(F8e@ zJ0o#n7nT1|5Pu*5^{|NU;!PBf?@bM3ORN9v9#%&R3GDcK<`DaS?;inJRbxwprLYKifWO({h-#V(BG5!Kq?ZWi5jAG;U{<> z(Mzil^hPQI4TLUBr7h1J{Rp)G)z^69sqTJO=y*1#q8AkCp!!Mj zVeW!n6NI5~eF|?!BpBb>GSTjdf(5|_>;#gKgWTQnbn=}x#9k-{7r=D(T(aU7m6Fdd zY%sVngstK0OYWjhG*y9{-k-a_?Jw@3KJ6hiTOxN%LwWh>2P z6<9FKvE|4ARcHw{Sk}MzTzx;W$m%5|U@FR!$K;nZ?c6lDcVfU7^WNf^dG$RP)&}Ta zXH>ESD6TSJ{Q1MFlG)fwOGJs=YnX1DzN`1ioTX}Jt( zCH>P2&_v#tN7C4cA(#%mDux6nrW)g8c=n{r4n_XYl1)ub!;OJ@W*2R|K5N1nX`Mdm zDtC1st(a!VDO@F9Qf2GJp_umxMnd3oOc#YJwi0^KXE}K+C+0A_H0|!Z6pOJuk*kiS zso!xaan({*_B{yTn7BbF_5t=7;oT-IO(z^PEj+$DMf=^koRihSsl|ZENY5>lvPRE3 zWsyc)dQ6yqabUQWWhoW<9ag9`Pcy?mI~5kp1pHu(I?mv37e=Ux@4BxC6h;D`ns)rR z4W}=%V0E~k6psA7&5OVmVyN*&V6(#WXe*kiRh&|3Y1vsfLnw<&FkR0{KMgZl^vtLS znwc23M7TMM9#ybXtB$xv>T5LKHMm}K(#v@s6)+}o;jYn+;hV^-ssoc>LTQtjuz_36 zJ=aA!x8UK~=KF6EyiU@BNrjtB4e-L1d8D5BHpb`-q-^7{ey1=_-P}&zOin_qXJWvS zu0Rc*N>xNqY4yZ_IA$c^tCEtc@o-})G4j)nj>Dvoe_n+DKZ7TgG}Xk%GAwGni%;YW6~COlwQZmff?rK!WH9igA~d+#!EK~ONZw1gcD z=2#a3LdOc`yihx$oW6nuAM0r+FeZV7bzxPMM6Z26cH9dYC87yml& zmoi2{q%gJ)T9i!n|S>LMhm!p^3#r^$*_kHsCs|eCng-KVBOi18VR6? zh<7m7KagHs4zH=i8{B8Yqr!$&00?z+9CUOXYkYw`KSy^0GTCTuV2R~RtrO+nG*;dZh zR%9aBs~Q_D7#HfC*%YwMSgd{ubz0d_ijrq3ZPCp!``-N~QLTUtJl8IXUC7cLv=*vl zzWBHDMw0H06LuR?h;9%mS5xT3+s`}eOdpjm#kJUG8cg(C6gCsJVxzMnzPLzHw%bd_2t@UDBbzrwPx|D57L?yCTKf zJAJRi@Mh3zjjRQ3V0l;qxPw0MGT8d?V7xVmpt5^uG5ipz_4rz~1F!pO#)9ExI@)pW zvvC8&w3zH-bZOUrS_Vc{W^%pajJ`;_&N2)qS#4!k|G4ul zeU)%Ck2<-5-xbNw10y#!Qkd*W>p!=V&cXA+vL@cMp-FaI>{)XoG9kzJkkh-u3}FlB zlN1=Ai~DJ=XUfZ2;(co}^UG8Ldmr%d$2*a`R4R}67Y)|A2c0W!zu()5F6oXvJG||l z7L{vwcy@koHKPT?n424YehprQG$0+1$8nl6l!*NQoN;4+jmDEDTUswwts=R{Ah_9n zSccPy^Sp{h7|LuRxusZuj4B)Ie^DJ7wI32F-sR>pb%x3NLb$}+{5f4&m3m7xQ5p@* z+swerlFsXSc#8uus)(?~wh3_V{x!yg&K;;kzrekWwTafXOe~h5x8a zjpb!|l73GAy0#j;*qD7MLo!-}^-K%*s{oYMSPT>2eeH81b3?0Vny34n`1mg*8>!fc4Jp`E2BiDD`xmjzUt3 zTt494yQCvbe)N|+R?REAgDoWPPyZhE`!01-ks+H%*+bqv{Cneix8y=yXj@I5TRbsc zXIY<`DzlgF+Z3QZw~*R~r8&sn8Si<|yIfwj##c=IQ0AlGurvaOvAs*G@;*2CEF3mc zenYl8yWwLo`Vsako{H>RMX$cvy<4c#Q)NHH=PH(-p2*#^xyHIGV=R7bXVK7Vu1oK0 zm1&^NkA9jw`sMAfRd$g7^jLY!ob`AdSx^5aP}--XF`+h1M&!oOO)De4kbRyT*MdS@}Wa zJ^m^)YQQHow%K+A6_NRM{gvGO+TJBOq)=|2mXpvU32^+Ot?^%NIzT0@DwmZ)boKkxzazU7I;@?jnDU(65jJlMoBMn9 zDacN8_Lt_|rlW6Ft`LOo$LXD^_lx$VZbE9Q<$iQ7YKFKSA55L!Zy>B9x202K4fcBC zcWmTv6Ae0zUU3mfpPdMv6bKXI4HMD{T&#ZQY0yN6u>FH+xW)Q)GE2160RTdS5O;Uf zHi^wn0FsA@`7$th`yb1WaLd93R75?Vs)B-;hyRe(v6KFwHh~AFWRYu@;hI^ad%D4# zPn6ajTBw!^#+K+lvO915V_7pYWPc%O{lV$=@ik!Fq}STs>L~d1#`vU(?DR%iwT}%1 zPpPfJ(oo&|vh0;zy`jD_p7P$Zxm$t3CakKI;Yg^5@;3{8($bg^$cQsR}L>CHjp zW-IgPJ`sp)K1S{*zp};c?9;<%U_1hf`cgD61|2 zkec$kCSv!cRN07oOV$GxXRZU19;>J{QtW)`U;9L$s-QtD%n0YS|Ik{T{JyqQ znTkexaMCZ}y!mp6n!u$hq->B4>8Gn)j2jhKp1T{3^S=D*qyCYFH{SOGZ7KtUgfnayTE$`;6 zaL3l-JG0!(W2d!E3!ZG;cP}8BbBVIb_M@0@@T(sE+BZo)U!3C+ossKT?P)Fmy3U<-_O!lDw#M1jqX*Q2Gi0PJ>V(_FYo{}>Res% zU-zY}rKBdaJU*QcP;In0*E1_f0Az@y$xdf($Y~Q*e*!UTg0FY1;4+W`5f}CP^jeT- z87=(tuETei|C|i8)(qSPyMknuii{6=Km0BjY>gbd(My!|>(rF#+7(hQ`glVMkiZSMLiEVxwow znsv0L)oU(R&(=TiPbvaS>`!c<7B{HvT~o_w(Xgooyg`;4A>aad%^*w1YT>aj-<+zu!%5bfM_d@~Ce zWuf6qgIXk|(cOpFzRViJ`f1w#h%-kU-QqWD^FoAOa7<68Jn$7$wBXncJyE=^2!IsG zX>ot7O-XD^7K)DCohCzxRDLd;8CO`49OfTJHNGG(M^QOx!M(@u12(d5k89#1;b+w* zH}Xdw`&$B_I|5CD;8>bO1gtY3FzNYWXW0cyK5pn%(2J}W&OU+AJuH{87n{#NIHi}6Xa za=FMXEnhR4;IBuT@4ZM^i8ZefBqv$hK!=<|SPEpG(dF|qV3*j7BRVHNA?(S{Yo2#} z*A)W+-f^|p{U9tDbFi2C@IOLHy&ll7yzwjw!)ck8!cb#szi$8S$3?`bw;Qqx_-c_eK1?TJzMU7wkEoSDazW5@R`*B8C@mK{)0OxrGLfds4*b4ZN?o1BEO8vEbP zMdD#(XMF+xpS!)D*pgr7s^i_w&^%ZGBad7QL&X7d|IIUTN?D*a zq4dfHq5HL17d|=20r#}t!HvQ^+;ey{;eJl_6_l9avs+YmdP0L+sk6K`Aee=3@+$OU|Xl^gs36`-Zc9u&)X1FgLEuxMnW!EFq=`LWG|o6x3+i^cWHK%l$p z1v@Mk3Ul;y)#bDi%=B7x;T70Zdi=d<&CkJ^Yda##Co~Hh&5&1#M=^dgz*!;MsCUz4 za-k`{sqaqkr6On)NJF@%Sm9Hf(;l?$e_637V;V-Jm8#ru@pj}J#(VH8mT~d~7_f?F zuFy>twRP;$---u@oS+a9D@A`5^3(4)D@39>J-)~yJraAPiNKumb>6B4%nVV6Uw>m} z8;LPApiI}HNtQJs6lm;Pwrdu!jjv&0K1TJYKaVlc|DBT6Nn+haa@YP2NA`tln}_Fj zvdc{zs#?flHBAy8K+J9o62+%cQyj*SA|)U3a98g|pCh;Avgb0f@ssm|KdwK5;ctk(^9 z`n>Wju?Jm!KbTWthkF9Q4=1r+U46E?sYd2Ky%IB0W7DZ|l32;5bzo>psL>W_nH#@( z2{?Z~9vG03UL{sa5d?_QMV}$fHoJd&Zg8!V5WdHh;gqsr(=1CmS+SBUptKXbCzt0$4z*Gu^A7-v zym6B{c%CGV<^wMDtH$S+H}XgQki-H{-~r}=u_5lm79cKbi;^%>yuB{ht`A`C%H}nuy5NHRf+5?64z7M`P zxLguO@Qja0Htvtj2|0FX>}WpUQ?37huAU#k(~2U=6db&R7aOqRIY@WV29*u8N+_|<53fr|L60-xjVemuuEjkO zi*sxe0<740nTItxnTyU(Nz#l3*gJjJ?xQP8z_9d5*+Lg(t&j9NLP94$P7Rt7>bh^- zCL>!Er%7=eD!LjVFS^9_J|13KqyMZzkvSJ2TQMZFP0wvjXNF z^qq`@x!U62P><4|TzHg~d(2`NN%X$7VU6sj}+P7dSCu&3^TFkdx(DvE9w zqt=wo&qez1Px9F2;yLg?P6p0moRiU(Z6HG?qoMwD6Q6}d_@DslQ9rHtk^(A+-b4pr z>SVYuh8i*&GmqsR3P9{s2h8}Lw z7z@pAG0f>^VkOVZ_BJ zXb}Us{mk;cr%**Dv{9m)bsha`3QY7s0h%1tvc|UVKqt?9QFw1~t`{gS$?$@8uZ3Vi z15)u#{Bps&sv5rjt(Q;VwzYt}Qj;5(A`G@l(@qLaNcobRq4PH-#l-ec_8f_~$8n9! zG_m@8z40g@)ticr6K27%L`d6&I_Eh@&VST?bG7K>y+CB^H7-Vh|&O)D}z^N5cI;O$>Et zNg7;OuTZdfMFs}-;6Pl@%LvTn5ga!-#7>Vo84xbGbk-HT-*9`bC_omcR|_byrcTC7 zNhd6@>(4r#nuRqH1b)ZRkr!Y;y*^1hLzED^97e|4X;XDg-k&f^fG&BcN!TNCD?C}( z?p+y52!Oa;6;BVmLT3|uBdt=bKrEHUD2Bbnq#vihMrr*%SqYe0`V=LYElDE_aCV}_ z_~de80ERnK(XfPm2eAK1c32VWRqQUQ@%>qP&C`GMpAC>;^8S^Y@gfFmZNeu3mtkyQZ*s^j;lc5|zIhEFo9;S-HCWZatOT3AR3gN0+wqD_{aoT!1mB{5BvDGTdM z%1nPy5}_Uzm!q9fdV^tF`?a_bdD`0c(4PATMuNk3xsMxVudu(k%!-_YSC%!N5$y)UAu1@KurpB}kPwmjl33c%f=ItoS{F4qMlV0P}fTCm#)hVOWcJiP{WW^)zMFpWW!ZaPt>M}#*!&#o%Y}RTxIujb79E> z=TrX$Z1;##WSlHbtQl-K`(NS5xGqh~pCsvJG2DuL^n&xo7mjHC1qkP% z2J!J2JiMVl`g=Vy!|u|f3MtGWpFu@^$NH&pB{fhTXYcQ;#zH2S{R4lObFx-{c-Yru zn5)g4Aj&2QyG)B75i@QcV+NbuE@U9l?h<8do@m)Zs4+YDlOV~gx+cTe%LiXl_28`a zURU6mWNRXZh$x0}d*RzOJ{~Jj#Oz8-m$rA1tSFU?k`inF?pvw{Y~bN6&WioH?)$;j zL(G4vJ{2#Xi;zel-1#P}uEC`2+IZ)n&$u_ZU!$EQNv#RIer8rCNlmmI$@&X^L;Df{ zVVspt|+0ZPF?I{%0yiJf#^TUFB+fa0MBa+2c8b@$J6G$o0gZvtc?fYCI*6}<>^Z8 z8NRtU+0Y33&@9)2J(>A2sY=7T`hUw14wOtERtY}MP`}dIS;81XU$sLP6<8$`F9{E47JQU-aKsfEnh1c(3z=Z zlc`qes8Qe^m38&yg4j9V?F`R+hG2c_|6_AxY{t+zvV&k>`JQA=2lU)66aAhe`dwHZ z2%=ElO7%-SE~L-Lm8F~JTTLfhXO2!hy|U(TXGorxlyt>5ngE~ts?ME4BB&;C>D#k@1`*KW-)-u549{K9@*(3 zYh_i9?2TF@de)v}%(&U4yd+d70)VN^bUa%80H{O1R|~`)H0Vg%w@;oImqq+T4`Q!kk!A>lZ zWCjGIocuguEhSmnEfD>PWitI_NsALd^nPdmU`{7gLE`=}hiosg0#LwiFFyb$Wh+_Z z0}37 z$}neT`V-qff?hufEfZsaW5n>jG9W%y!(3atPyYFK6fhJ8F5RqjUdN9{i9q=p`b-tS`YzpYW#6}M+fMVTzD`BsVl zo^z~_iXvZs15o$T5N5n7^aB*dQTmcJbQ+IQe~F zVAVCY2a4K)x)~}*@o<95y z0y8)0eyOYH@MmB<>4XIf0fn7fIwJtp)VyDq29b=7rc#}{Bo)D(9`p#!8yVJ{0hFI| zSThSc7^cpqMoQPXvfqCgi)U%pJZ>#M1eqq*oh^*2fkHqO(Pi`_%F(rH`oKf0vc3}F zd+G`<5$O!g8=qL2i(KCBCyV%9f+_`m`Vt4Ejp|N>eTYOq{Ugi(ZKjNeGjfkURd!v~ zjJg6|_ykQqN(5qPLII!>#}v-JR}0`_Ara9|%M1xLq258Qtb*ct(>q-JBVX z?k3~SYjj?gXc(sxsi1aeIh+S?AV8@ONFyeq;1CSmbDV0cP1ZI;nZ}~fw?_;1NgAyF z64ncaG5poJ2|<$SPnmsw^Sxn(A-}wt9aUJanySt)kX)I@0!AkRF*{bG#%=m5Pq3gE z5XrGuvUOOrJ+Rq7=+9?e#nnRWzD-Yv13uopTzjW~s~x7J^I61i)vYEMaJ73_%I{C` z*75!Oh4syk(00v})H>pt2`H`cO{+898kMiDbxzmI8uOp8>(^h6>>pOv0?|J14jmeJ zqk^C-Y~)8pUV8RFdH@b_-fntwRa)A8eUw)W9THQrB-Qp-?(f~b?}a9WkT4F;Y(@hu z&$;3(lD*$(RVxq)GD9N&Beayly>#1K)NCSAaXkWye@1=m(=qJ znb*gDy;XYd?d)Vpnl&9{W)*drgDiA2lN@mDpShQZ1Ao|+Go}3B zXhx9nINVPq-Oi;rND^#xTHVF^PVZ{G*I!T8+}~ZtXJ;DJz8SFwl^oM3NJwkcyWS#v z5V?I^*L~L0_}p~ACT}tB$2`4ai02Mamv--_rtdktoAtbzS zDEwE0Y#&vY7nG{CS+gGJ_{!Ugp?@g9ADx#i?@d4}e?JH)T5GT~KQ_$Yg&CT`!B+mj z;Ixsnwru`OYZl8t+PFuree*-G52QtIHkOjE(vB+p*XAJEX3?X-Es)>-T zG@O6%!nnVYB*lLbiJ()768iB}Eg_RLq33)D!2!TZ8GTBKlH%)K1w+osxy0IRq~{&+ zopLrE&n>3YIop@2>|^AKtD-!2|a0LdJ{yKk!Xu=m1vrvAkJ#4)T%{< zEyogFf>%4uXz!}=;|F3T_{dX~o>EiGsAK;imf>9WneTQ1UI3%h7OMd2>IQu&ecUw4 zz=Xr`$DQa4qxC@ej-&0cSic^&Bn^IX$MO0~F)vvfHAQ2_pXa;Wd2UcU&#&hm*_G+a z-(((`dH0*6|3omBgM@r>dWFLMHe^Sh#zyVOP!{dUq~=ZPxY#y?o`sIiiUOj|FJ#fz z4$m@~$X75RW?VC(Bc(vrXJG>71JJ8s@xJLf*5;R`R@@_)+(B|iwzP0_DR zGp!Ig8mF%WWsFY?@V?>LP_YnT2l6>z9vt3NbHcl^k$aCJMmjQA@#iA)#edqp3k-pp z!7VeE=N9Lf{~L0~xIergHr;dax<%F1mogQY!QG{sL`@N92{sN<;i1QPHhZ^kB0{oI zU}!?JZ$IQn3jTsy0PRozCx@v@y z55-YqV(5b}8lbMF*3wK(OQA3%0rU;Hgn0sow?XUuUW55H3XzI=cqoj=TR?dXZrn(c z?a<|XS@w9$oHeU$?_!=YIKt3r9Wkn4txDffQ$)+GD@zYNK{K) z2a@LR^=GTHG#&+upqJUiXoa#F2#Z`WRO$>1HulmHHbM6$1sS4A-JGdLLvF-I-8}cDXxqDF#j6?H6nMB9EZ_Y z)&F9srQrG&8jFA*g~6iww!_H}G`NRqNHXBak0_2~MZnPG$Ps&=J-m;v`NA%KFM!W_ z&*q+g)@x|t{eVP|E!1iezFH26GcSnMG`FDR#t6$yNzs0;szy7`axM$ z+Rn$-%hPnPP5*D2Cmn7LI+&B*$hGvyE8dD@>+1; z2mGJ>Pa8big9E$%Y7+hVRw~j0Y>{kPZc+-uXm(DXkyN8hQ#&(~@#|kSxjS>$BP%Ip z=K&@^H$Rl0vS43JQdXmH%KRF%`Sx{NRn`sR^2anT-6Wk-o*AAPuOl4VrptM!qU(=w zG@PPI3VVhEZl3`1Ne^dityQ@!`;A^ozE~K0%D^?AU>s zm$sf^Q3?}=a_<4r*_Y|h=CtNt0!-{_Ws}U4zZ*nvPJV&A12~JmUO9A%^D1(xm9q>x zVKdgQ`t!XdIw^kfj@$|sM)14h!JvwuDQuu)O-{Cn7x_}miKOm?xNk7qwCx>J*X<+k zbfoYb_T9qv-_zIh(5UAadwgm&yPIfYTNnCe>FJBO(}lcf<7m;~X;HXa!oE}^{*G&lCzW-FJBk?(-R|ZUO)2`tzW11V5*iRGTx?1a%fQ}kLFn+8O$Sq z17RdSIvo>MY^yEM|F$B`kwNd~uChx9wS8qU>MB`wFYCV+vYr(VB0xmE}xH;gIPkl%O$kMnP)ES7t86jNq^YfHcg@}j- z@HiuCFl_YdIX?9{3W7<0nV@FvZwm0-F45T#uST!TiL5A~Ep<^p&E8MeIR9}Xb=ZVc z8W&lCv`K;KgBDEAju`I-r#G%u*S%vf2c^I_!3$~8x_WGV2c`?{9?*6k=)N8ZXVZ&L zJ%NgGBp^Koa%@DbPq4q}Odp^{o}`~HU|*1VV-1Elt17ddsv}GY@k7283XiT;n{XQd(krvpkri)BfZ|Ti$qX^D8!3KR z*$&Qbcm)g!*`b9tD}RM#Tg_wF>8mVk5$3Od_2pTn*rE`cOP?4*H;=fLJ1%TDsSs}gd;mj;S(W6+bQ!PkAF(K@S;=_#b?^5RzyrO@qYzid7x%ul~Q<%rlZYFRT(j|wo*I8vnv>~Nfn zgC8wE>c!4H+4fT}(Z6>2vjEnxN2sW6%&-ud{B8Wg&YeUn;^n>6b)Ps#?w)NU@08Ht zZ!Tyqu?oQN-TnaVvb3dTE3*H@clLJ5}24Pbs#>>t-o}>bPHm%=l?Ck`NH`J-O*X=CXDIz!3gH^p$&|4%$ zGgQS2(e#ZF5EM;7mOKJy^^$r!U2j65)ct&g5=+9jJ!}j8+>=f{Y`&MPAdH*GS!daykd#)_KBQZU;$g$7E78FhLuhTdtfrY&}mS#<0>TYK%N3ipq zP~YbFy3H>uOxE+OML1!oNhpliJw9hvCGY+3!PjpLGk{QD+@M|QdJe-MJyOkH3gV@u zSDbQzl%(cILEB9l52|yO;--A}{_V`a@Um{U9}C2I^~VfYPST!4NL7mYJ(hi>ixZ@z z9iC4``!Oe%-&^lDF6czsA%CMZY7bBBx^L{G_g8FCCjyzZhd&FQYZBe;RUj3DI^! zgdx5g%KzM)L@fvrV}|p8kw#ixGJqXc_=fRzvy>@lKmNep4G*4hlSNBCom(w`n107T zG0^-peq+UX^Uby~%f8qD&cfJkzkbg3(iZ-;i=eK-NP3ayY+L#}Dv23&DhTEW8^mwA zXmfpY$@P@vBC^su`;X3zh9{|qA#zr_6ffk>o&A#}eM>DC^n;J%Lk#Gg)Nz%qMiB`g zR%%kIb-a_;aMSn>Tj^eP1$sM1!JbwKVr7~D)o%1wfvv}c|HD)o=lR~-!|1^0!FI_L zxqK(iD;Kp~uf-MxD!@*Nj2Qm7NHoxkWIJa&T|(r?B}eZ-40!t_>zP{-I{SRCZOZkg z8-9|msA}C44<|Ag4b6Vol_^tA=srTa_3VS*GM2O!>QSNm9xwAm17xGbM2ww&erZ)M zjzmvvnw&6Tb)jj>R#lQ?Kw@xnwrBj_uFFYvWX%)>@Yzj7`$GsEI)ihKP1Zd$MD1nu;u zZApR9mR7j!ruz0q)dNJl--=cRFn?Hmeq8qC9Y{z2&b{~F)cyWG!F>S_p^M%7iVZ17 z=*Q7@!ds=*<{8^%TBvLZIVXEVENQ*H(-T<-y9&Ec-mL_lFR$l6`M-05Bh z;ll26vn@Rt0{5NG0AQ8-o;0j?`kWC&fTM?d^-l;BZ zC!ve`JYEk|vHA0v@UQt<#EOwL${zb2oG`w9wk;)vt!M9bX&c$|r7XW}@YOSi5^*C1-&+`DJG%bG&=BWxYL101GLrEZc5$e0@O)LH+bW zg;lePIecymcWV&;ywxx6@R;k<$)Ty0eQKmFs^UC8DM`n7{XGlZ;v^<@ISo)T{$c@h zyjJ1mqayLL$$E}303;soSvjj3l)au1DcmxeTOynGVnYsBEZN+hQQ$p`|+mhYUESyBO z)D^F+!((2KPnnB{uuV?_vgVkUX>cAMq|77CoUV2u0h=On!Ge|J_12NV0>`1dxqp4_ zPC%kDuUOAlXO7n!hDQGc%Xd4>6+}s4yIg3mGsEOs*3|nnB;Y)aOg;6zE0%qKtzE1z zPcn`~{1?gYt`nbD#n$c>u(VKXSzdwsOrV5tz79@i+fZ8RI6VGBMquxvF7Cq+ck;J@ zWkrrNrsI2qo4xsEuYRS0IRm@$y%?EqphP69H204RtA`t9vSYTO2iv9`03-u3XhN7- zZYcesLfFX_;jB}n4D-mw+Q%jDrD_&%5(IltAxz$)GIn_YOTHISEO?QMeeudlj|aGV zEU_}Zh(WLJWlZf^7Dq?i0V+SVIr}CK$mJLS;aiV)asX6w_`cFYdwX3z`VjlNWTb}b za2rq&qpFsx6A0I!{XnK;!&2_Er?Uw{2NikL6OQ!`|K%;5kb;|(zUL9h4^b(metP)W zqK5c`m$_i40a;y-uprGqu-PiRpa*YFq5ui3A#6hY`@+a}9* z<)lO!nz))k5+N^z&1o}GzV5az)@a;Rk0-5S+w-j4kbo$|`<+raaCN5iGx0L)IJ7Zf zj-~q*&f7!Sy*{y)LUQXW<0Lkx1Sfj~dEkQsD~aOKO2c-Kz|#H7YDkk*wF)gZ;-+T| z5O#(9bRUs8^d$9bk8TrgZFykx|4NU!Ggv7qMUT03NJ1avq2fupHlmnujn}!~&G)@! z6615i+-k7j0r}keEB5hd!=>*wZ%0Dv-<~r{=xxbwKz)qUq2-B@D?UCFRT6>1jidnk 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

330@QCals{;4}{HK<2Fe0(q7pAX1fAT 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 z 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8d54fca08f027b046f2772513ca3a1112e59252e GIT binary patch literal 117638 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

4Y@#|SadCC@EN@CYBs(ZEkEM6Qr9zoo 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3aa9f26381d54e0d866a55a91c916c696d98a61a GIT binary patch literal 90928 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 {uyf}KMt`2a~ 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

-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

hiqL^>Qz>oa1{9iN?)$mh=RsfUupl8-t+$ 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 gW19TG+lDk2r;M1& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..dc45393105ffb4e6103cff0819f01ef7fe6b3598 GIT binary patch literal 67747 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 DG~T=- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ac34a15211837155a15c2159d4ff3c35455bad48 GIT binary patch literal 96548 zcmeFZWmJ`G`!8yuB8URgp@M*PcL+*Jiy+#x@$uo{OiO%Ot%O5!WMxeQ#5?>V~l;N!a?blVz%n70;I{Id?dlA0o^;4*l2h zhpG-X7&=zz#)=uF^d$#dBiZBQ8*YEPamVNh4i7tPWnabVIQ|v28&~a^h11bayb)Wz zzn1M&b{%w5r(9DmGcd5Q@(_q8@9&G;e*DjW1gF@ss;>U`)%*K1C69%}|L5IC^#6me z_$d(x>`<{g0U}sc&;E18j}Ju-zY{adDGh{=iz!4IZrl}#Xw(e9o-Zbxt<-B0QyzXA z*rYTQNa>c0maHtS^f*N#9ZB0^HFf?{UvlQoL#3OcXnVYvYN5Zg$Mf&ckOjWG!Q$E(`p6w7$vSHBg3 zFM>d?xAFDn8&5q+ZpwMuq5l=Z9qLg2pey@loY}@bn@q!?P;-)R&x#)eQ&)^`WT*e~ z?b>N$BG9*u4ld97IWlid74>LL|7%vim_pdi5{1*iF}n9E-|Fg8>&_D|yQH+e0ux5n zLd0fYn2OWj&S-cFbd_6|Se_mP{6YKAd^EQ2^k!Q%>9J&GXA_c>w`?9x9U410L_L4> z{7J-7tEZU0B;$CBNQS}|FXqt;+k466^Yd6I6$6AvZ`Ng;msHga8fKGfm@z)!oXu@r z@zYnpZj-B>Dwo5uPdCK~P?D3$P0o$yE=(qvGe8b!n-$*IV~Oo(>Yk`-?QRp!J}qsn z^8e55&#-Ox7TU~ga~G*ts4AAH_t8*A-pN0xr_gxwDB_K(wpBKJPf+@={d+;$>@ww|#j` zBGdba_z|{D?*KU^k(B&rb3+H#puR6nhDiP1p0KSu?`NcM&ZtP2)YT2e&{7i*aoc1q zvkQwDOi!fqd3xx|0Kd{C!UO_5@@SxmeFInuV(dRxrTCw)fm)vH&pTNIR{Q&PxA zM@PS_=0`!H2M3j}`CO6Bj&$L_$a7PJUHVZwua(knssoZ+~lQdOq4Z}Ny!g`DTFGHp@-9&usSFdTv|m!2O2KD4&C>seTYI8S-T z;%mA1Ot>Fh*=m>bekEnk79SrU5*C&&wEb94@En(egCmLG_4A8cSf3LUrC1~Wu9tgt zzpXoPBy*j6aOQJG=qT2ET7BvS?_PkP3Vk!*W_3f6ehafYy-KIiiQDOSzO}OpuDZ6- zQgc%ai?3<5WXZ}>^kmdz!PAGQt}DygsDJxb_Z=J@wwhN9*|?dX+e+RMzem2%d+XM5 z;nYQ)4R7+^-riOr)8+kC>-VrQuU!=qs1b;Yju9HCmWCR1gdr0q$I8u&k@Mv_tR_)^ z|DPHK0Tb--PUu#zUrPAw?0f#hpqIvXNmm_-zELq`y5eb=y7Au=2>kj=UHemc4+a|# zPK#mU`NVr~r>}h<24suJ#j5WKkX{$gGS+)JEBU8Wt!(IL#rT4;r@x=CG>&XyN|FNw zxfU5USHnxMtawT9kc$XrT3WII-L`|}A9c6w-#k1Kr?^3J=hf~vlTz%xk3F$PMJ(66 zgxcoTJepme)c5z}PTLT~B^UGX^GmbF&vj@YqZ7u*Yt%V~z6iL-A}A;;EPNFvg1^j~ zeA|Tts>*Y3p_VYR%(U7Rn5+B2O)i%;hetE9wJ&8X8H!XwbeJV%Wo6AM!yBv?M;22k z$ims!*77g|5Sl>{PA%gK;>oktN8sKtj9e^+_U zi7!t%Uk}R5MXjKln_Jw$Y2eEzS4>LPLa1;^lauG>=M}UReA)~|vXLwt95)f|zy3ag zQH_d@jz~@Qo??n~uB?<-ibf#J1`9O#s@7a7e~*+H<6Fc=q;zL>B|c+d5X~F-91$-` zk4J%v{vcS4kc5O1FZe;&%O!GxM|i<$$mONg)eHn8h7v^L4Z0pU z51tfJ&fgroB`B+;#Czh~Kb7<{TXFd3sAO5oo~@kv$DW%L8p%n=C(!I8Ub0HsSKlwdqhOZUiBOyKSw@Z<__Pl+@)bQc4a%F&shIyh`wvx@r-dDcOy7%_1xqtq! zHDoS4`$44gcH=91PqEIc*!!vYLFt_zIPDe7V-$m>6ryhWtmG$hRXFX_PVPAj=Bo$D zX1`EUYHs!_!k!3A=4)%~$}G+F@8(NR; zX6_*J5J!ip=OGJYT~cIpe0+&xXzrJUzd_V#9by>`PEoa0tp&b)lK6&eOc zMxP}pO{}e3tjaS6%(mTXF!m0iPQGu_(}iaEAk})L1qIjynaV83#MIP?ps+fqno8Y% z?3GF8*2^X&qsPPUJRxw&4jnH5Tr$1B#-=?G?Kyo;Boe^znZck{=qaUR9UKWk;3 zb?juU)B0qZmG6v}A>4tW-}O9`5EoEP!l`+Leu~g>_<*ws#^-qH1deYj>gx|8BbsSG%$;5)*OT9Wfst zA4^M1_l}JPH|eP!*rL!>PjEs)LcqigRMpw*^&?A`jiqfo`Lc|WP;o*+)a4gUc%8t3 zXfS%DNYz0~tDncht^Mw|kW+mPv-sxOUd06Sw6e|*P3-F7;)RMiG!hMlNTxX18EK?q zoMpXHUuIaTX{aCD5cSW&=@x_DztYIGA)kS7PpKy)gtP95kNQ=Ot}=f?+z+CxV7o7U zF4&<@*+Ta?{K#XZ+VJlA_3IjSUdf#y7zjk(GnG}NT*racdOQ73dQfvKztck&dJTywN!d& zR6-cp*SPgPJnX;;ngUNn#oA~Mv8VzwQK-e}k2|r*z;qfYGCRZi;kE~Bs%W>+uC#Xa zWK>lJv*&S?%CKYCo18VB7JdKz$>oX9h+eY}v%IQm;AJi~kL?+^z=VJahZ=3(pdLGs z0uv7;iNMB1<_xux0je zqFaYqr%0vOtTc6`2*{KPec(uraK^C%g+KP4=;t(HBRLci(%6AiJdTD*CiHDtuc&Wg z5%f_szQRQj$_9ea=9|;4Ef4Pnp#B=e3_)Sfck17lUqKLj;CCE>SGxqc;eqa;=2jcZqNMeEH< z8R@F={^hLmZcD;FuW-UBP1Z44nX$8m@Y5^%yR%;1B2uN${HU$2pOHZ#_oE>p~NE<_KOWx3I9@a4|>*g@qa1&`}=zSpJx7tvjZD=e?#Ek zs{n5K|Nm-3m+SfMqT;hLIWOO-P4D3@)HNClcU4HIOqZ7PBhQxc%Q(sEPQ$Bk|uw^8allVxHw98gXa?zn*+g zL{X=hzW0$L=|vRXPv7*<OChSzyXXL2c}0nzYOq0QsnM4?F! z_ZYJd559#l1Y*TkuzISZGj;Qnumf|yNjNOEE}Glf=AUjQd*y; z&Z`+5wXjBeYRaZmzdM4aoXm}{lJ$dmX`Ae z>toe>f24xT(+; z=ck8}(b3VBtwHY_#(&!S>9>Tju(FEC%HA7uUeiHl$=vO+Hu^A2Eo)O$6rn;dChE#F zR%V_3?Hk5BfLN36n*t|p?mSy-B~h`l*^J-dwtWzY{=q?*?Von@=;UNVvaX^xZ>4xT z)!SB9RUZBI!)op6G42@5|C*hBotcxfxhWW*$NPf6KAy0hj@D%%-ng}`O;SKvNvS(k zsOR_u&7)SAUyF&)X~ST)IrOlm)%|>bC>Mc9hZ&1(`=O(Ketu3OB zIr-vTTcos%^w$367CA_1)t48iaUo)ymZR^H^VhzVmPSj3h8h?cd_U|H$4}CJ67g4D z=;T3_(>fq?9bt7PrOc9&$VhT8332yZXc<0^t3xH;mlyp`2!!3voFox3@$%|=Q$kEL zh*iU7mc#`WvqBOu9e!AXUrI9#`=?pSBG}!P$koO~qXUDPs}Ds9*1zlez}w>tYtOq?6JhBzKYskMf%{Fc zo@zE>FLqp2cG?*AA6p06I3V@xs72~PQr3zwT=0bE=FOYrBiNt5y zb?*??g=`A9aKrKL4L@O+)8P_hEc2lP%^#K^s(_l+ym`pv`mOrRgUoYJL0;)%U;C0{ z-#xfV#L0Ke-)Bs`S3YrtCP(sN zr0@&jEJ6^eo$P>t{|J?F^jHCC|<@lD+ z-=)3`17l-_w{HW|`)n3E33*4yo;`c^I6|70jm>YsOjL&Q=k&?PwcyU^XoSN#X^*qHR-wa@~-)ntXA-@s1(7a{lkteeCd-)YzF1a&+tLVSIdhS!}KwW?dOytl54iHYYH6lmQi^SDgC2=oiMr(33y zlaupn*&&PZPdF)0`)Fx2?!$++=gpXt7su+kpPnn=PP(o#Xt~Zm)L_IPP*OVb5bRFk zc|nPtR$OeSK(1Bo60v#SASAExTExrCi}um=pAO5|muGU9FO7|<$I2`-ii~MdAh>*Y-8GUHqYw`xNrS3E%I9=ttDA3g z>%_b;A~sQK;sfSOiU+bJLfw0N>>Q<~ZFipP0_WR=U}QQen!!T5|@D|v;*`irvQ z96%|(SYf&h+9=@b9~e+5bz-QgsX=uF7y9OvfjnR`4o*%x-j{8upJHN~Cu`hod6LI# z9fQZmHR$o~!d;^TfKkWQ*Pah=-{AH-<9?e^u;qXKR`2RQJ16H(P2HvYo|}L=r**Rh zCmW}rY{I}RD=Wrno4B;;>3*J`%O9LvIJa-)sMI8cgoNBWn6LwN3dD?~Wzf{srSA5u zP1XI~1nbP>uxct31_-oAC=&$4q=sg02?zv2^s&^V`#N@Z*pY4Tl@(0P%$|^iE2_MC zk6fk{5J(2Aqq(K!c=E8eC4s}dwY}TO$mjzs`9H3U_ipAXPj9=#SXe_{^>}d|bASIV z_3~I~)`nZKuQdxqL^fVdF(svkR)^wK&tK#E&&=pex*iH7$r`WhD*e;tkuS*m?2TWE zuYL{NUJ{?^du>9(BEJ}@$Hwm>TZuq`JIGn!^l6?Y;*HXYhpwy!+3fH9XMgBX%hH8;JAlMAM~1TKX;B$tLVX1=>|&Qc`rMb>CA#h1X#xXzgyFX`QA> z;<5j*l9159_lZHh?9Z@EJkVcpJ&RR@HM5 z?a6%3KgavucPuxWFn`VZJYMUW=;L#>Y;(N+E>rb8<-AP2eY1;2?emA?;biko_}ZWo z+s-X1AO;KOmn$L!IabYFce}VM`iEP)K|1X01WV0kzWw3Faq0zVSvOL9%1vHPEG^N5 z;xl1~HXStxolpb?2ZIS`FEgB}^6F>k& zIaGVql{@HD&i~BN;(TGL$X*XYP-%BJC32FmIUej-`x?>p#CUJ{m6s|Q|Dc%>yqMlwGorFO_ z!Js%|t(DK4z(ki%p74Z*hDyuID!h5~!z8i9xQ7*xN^J|dF%)@NYfmCtJ+rOm=jOKh z73CtNsR)UQGioyY($k-$2-sYS90`%lZZKh=**(58Twy+B;gT$2lUo#lf-B(g$ZKd+ z8{Fmws0or@_fYMHqlVR?uW1l~r|xc9c_rn1HBlpFWi#?L`Hu_gqmu*;^h@OJB{^@o!p&n%}2fL^AD} zTLWTSa_F4pqpJ39r&eQ7xUY;y;j2_kJbW&^vimVwE~D>$s90c=UYsK&O{t9*`r;~I=8xZlI2=5Nh-Rg@ebl7$C=u}Vcvy$qfWQ7AY}yZ}EL9IL%7c(9!P}seJR;x;TxB ziTdO@)Q_k#T%7w}P!?mq*uCvH2_g+9-ok+WwTgQo*e)w3)moLdvaiP zn$yu$cr0TxRc~E8_w)oHQTyFnC=dNEOT2U(y%GA|;HAygY{0OcozmcvG&MDO%o0yM zA_?3Px?Cy5E42iZ1$56>LBYA-zDbuhnUxkhZ)*KeTNjs|C|1k=rd30fubk-SC1Az1 z?c&i_REC!Paaq_nR`gMh@97+L^g_ApNYv1Y~Xwi|Wso}7QoQ^Akq^cduj~s3XWXj9BAo7#XSJr9mYHT@eUM=V0dR z$S(+Pl6%rr6zA8^J8ys+jn~}V4ASLXk4(hQ={Y+)`*-6Wvg+mK&dyGq@-fBDJ4#B= zXleBvEJFB_lcQo{z#JfeT?XyB(EEH9JU=i1P0Y<_^R!QiT#t`wf_$6IG`DyMmK}n# z%943Ji9|DWEe+?3#nL>Y0CJ(K;K~XS2;xf{8(KfQ{C5{6<>az|{v=424G_za^rT{F z(qaDE4d!eH7XjF++{xWo#K z*}@-XUfO@D&mx=5+XO!1NR=~FMn*>U`Jj3dk7oi$bTkRC%ct$4zBeZ5%*@Qc+&61G zx`?@KD#rnLeQvvIHqY<=KK{X;{$hu(+I-*Ufwt^OAB=g(_?`}$Tp9!u)8ozNmru@wa!pdkO8|jriD6LBDad_H6w1oM6F6d_Wn*i~ny~d#0GJrKMNran z(C=;(uR8Jq2LX8-DlV9*+o2&k&b;4M@^kIuQ)93((C!?aGrx@+Fksyt-|gAOzwFVr znQg{gJ3RJHG%9_qpdbwB8&I>s)NHu@#yHQ#QTSyXn{iK8P*wA+?U|PlQK(UU1^5N5 zB_$P3=Wb?{zUegF8U=48(ubC9hu7g9P|M$qFt^Wc{~iAks6tj*pA`n;BbMy_PE#lumye2`KX?IF&{v@jE+q zKX^$Q%M+(g@?&!f3m0!qT?$^Qm;V?vkT+7|%mi9L2HNuadL~pGp;M&LQ<8g;DJk8R zj;q5zT-l&p{{Agepiv>>?#>s!KGxFNi2+{vSBM40M1#XyJFWYBnmLx3*tF6ketFsS z58EH0d=#K2%&O}BkOkFYEA0h{Es?RQml4x{?SOv`e#-@5>{nD&Bq}UNkEd^Ab3YP7 z3*LJa@R#6*i;G!75jo2h|MBw4gD?`F-ve}S3CPH@@=K%h$I5_4R?jVJP-5#kIN8|NSjjO_G$4=26Ds{*_= zf7wa22jdPUK5(aH<@**C1xNmU# zM>dawM2w861~>*-4duaB6a`yxH_w3GM1txuwx(Mtxu{QI#j=WM1s>}-8U!JTx|ozJ zmr3uS0xCH}-}9UO$Gk3?@`yx*Gj2|>D(_?KWy<6FQ>VJ2Tf6Zllaf08D7T*-<$x4} zdYRR^3V!Qu-sRH%$?2pkG-xrU$Iwy0-vWOjKR=&D&;tsSxU3dggo(oe!-Q2t`) zGBVecODfqIrD&8}%~K0qumIn|eTes3O}V+Lxw+qI+a*MW{)1SaCT=BYOt83&#)#0< zhF0#l^3^Hz6P9;eip{^c&%;#J!0VqFLpY4EYvi zBPzTS!VZnGjdjHuE$^w|AQSeW_O;t#Rc|H#n6Sq&7>U?>x*i^Q)upES2;)Zgo0)Wg z3szw>eT|fq)WT!#0T_vb3YIaDSqNPn;_*0Q?h!mB0mC)-Fpx_iIWX{!o_&unB~j+L z9~k8wqE8|of&CiZ!jjnaO|=9qRP2SeHu+}FrJ!1J*!oy`WMXW<*t*e|x>V5XKqm)+ z-d~^|OBBt{A%OWjp-W6bfdvfc+FC6XZ#*P=r&+0w1Eg{_q zIOLAMNbVG&j94|<=4aiBiBv49a{-cjIH6*aC2G$Y8JmsD*?4%`;G%@2q)qEi-iT+E zP-NhS0kXrI2EOI|7XO8x-_MB+QHs7N)6C$?2WL5&vJ+9eJI<1XMLK6Y7Ai>^#czK)}pOEnCW&>zE zYe^(fC_&?bK$La@Q|-}{S)5soN{2hK9bKa?l>fVxCf*Y_vT(@(+dQq z8|G>|>HBm^#&TKP8l;?7WgtS2n5<>ZU;9zi-)^1zRZ4P}MWND%Gs`zbK91zRglYpi zAlR?O{BrRQAA(1J6jMCGo((0ID>Q@%)C$XKH2oxbVvr*bekW zG7M7!OnAXvgDbseeLen9oQHCN>l|q?gdG3+Wx@>XMPU&OiD|xM!NOv?Co|KCdw?l zQD0o07-!%qZ`^Akl!2W9)GT-FQ7MyBCg>foD#*OgY>j+{?~(Jq^!D~POLSZv+-{7N z%gQqMZ_r)oNuEtEpV9?g8Kh3f`kXJ2#Bo)<=@gJWSjLHRvndY0xuBIi?%0^9THajE zSl%(Tv$Lb2Wz;(0ssBAcx|xNb?W_7->6&S1I81tvmX_88YS>IuFeF2m%un!sfozJZ z$Y4lp{doX_Gb=i6ZP=tbx&b;qUm&+4jX58PNa%o1PVhzB`7FSBm!G!?D5QZnZ#OmA) zh%)RL(AD)5-SfL{Rpky`qj&&mQ^r_24hGPXXPl}~a6?XxiQwvz4fjXUjNnP6h(`>k z;LdFz^qJd#456*&f^c!LmyS?|u5V3QySIA87#6U2@<>$)&KmnLM_G*TyR%ZMci) z_VVN!*7v{A5J^+vz&C~nC6vkUD)cBA%uMi|j|9LnprR}?{NN@~q>}Ts^;si~N-{Tk zr)s*s_rxN&()&yRl?RKF0<6f&&cf@btWEFjGAt^02$zI;;uV@i&aq#l(Q@Lspq zMfU!E1e6=@@L+AE;jZ@Clhwh(RLrP14;Ro>Fj8x~Z8yEyHhl*x9}>?hbzTDQuyn z&>BJ5H`(XKKzp$wuwujgIzyYC2=n;3q{E9#v$pfsbD=aFm-^RpR^|UmlmKoF5u+Fx z8R6Ds{GBFGOX5Fr-vQEzY{uQ+JzMVa+lOlgfe^6l!03WmkyIe}CADo0$%SaOJ_@(reUv`(NhZ>UHuTc}gx6bERnF$AB9btDEtE;C z23_OsG#&TVdx=qHykE$2Q(-&w6(R>o3Q_p*Y1H$ zES@(2u;F*>5>2?pXh_5KBR;yjep+(k;$Wf&Zcr$77TH!e??)>s3%}%5TFWmEjt9uGOLZ2D1_d zSK*}O$QSnZY>>Hn^Gz#MD_b90{lWrX+2(MVavqTTyP$WOOWl3=@FB#7SRt+pJs8^L z`1rWt;pSTH_>a<3Ti_tdg<8o7Py559H(--6|I(R%A(%zAgM?tJVn`l%Zd2__3l$_xoPLTR3mi*Gqt zS3hXQ0*e5An2CuAaKhx()un8VJ}iutL-~SMkd2NNAo94lqy%sblnLylcwsQf>7p2( z;-cHa9t4s+{KFInbm&ZUCvz~zb+y=u3<2E<3){_(M^)d&XS6xkGo@FilM^^+CybB3 zan0wA3p1=5Vzkbi=4}Spq6!k-0}Eiz17!z+(zMbc-cr3>w@8J6fI!F0EC}YTpFIVD zD>x>QGy2#x1C|OyoK4_p2k$G9~kG9?+kV?0wBcF97VkRzqPU5HKH}LhT5VEt9l~0^8>`y;u*I+5* z4=MV3#zyOO7k*iFbGk)pY8umLkJ;#gpFjEq90^p3sJBtxSuJ_F1q&`tc=$|7kRgOJ z0D7nIgq87r0tW#G8ag`qFnDqSSfnC-CUAy=y?-b&I$m;q^c64<(2;=^<^oAvFP}^Y z?X~v8iaB5x|q)q5yF}iXeTEpuB-XwOUoO8g;@kRWOmob=H}-3ZD`{V z2$1)-X35WQi)N%bP4IRn3nZck0@r?4m2KtMW{_T4nE*)H>tZ1h6-8qr;r?#I8{K6D zCPFwHi(vin2Q&x?CURP94fezKVK*}~BOoH0S(NPbr zHOwq1!SJn`=&Ov_Sr{^l(trT~s z>7}d?3@|^%V4|TIW!6)*kIqO42_Itzb{0H2xRZs2zHK{TIlT2f z@e!z75kICb4$3drbU7d8((c_V#rVK(ay0`@`tU4{Fafr)&#Fe*h2=u9Ze$MPO@->rv^TL_UU*!%! zg{PUBuyX9ySCk6aIr{qge8$!n+Ne_vJT)hLt0p2O-j|heLO`KZ=Vn$_S7B17LX;?n zIv@+e<>eox<@VqL07Zl(@ae&N2Fz5bk(1h6*cq0VmatFlcbhR`8ET*XiG8j6Nvp7B zb{jNv6vu@*Y=CTtDUvG1eWOCVe~Bf&wYxhDm`Fz~BQzqJAG{1zhikg4gZUth0^ft! zJ?c1whQ?=FBJ=VwIEx4`6+tQk69;me0C!e6EmU@X=M@%WRZYn1>OSU7#Du&>ml4P{ zpFW(psi`LfHtSU%sn<1~?5`@~&q2IGT2|U7GdD1c?rmIB+!w0`v=o<}wx{AXV3&2N zm*?c?Yu=xv2@-L0KgUVnpF(*hnI6KeoyU@fF`>;-- zvgwd_ZSQD*-7|0|y0^bNGy*9W_`SQnXdt-2PE6#ow%eW&g#zE!-Mvumz36PyEn|&b z-TzTqW_SGOsnz69S$e!|@H8RH%S5+CNJ^OIZPg#rvnZ8(nA|N3h~pV8BNceO8yi+1 z0s@vdHe}Ch!0`mj7l0oGeO{(3z|R%EH&<4k5ZzORMGvkQ_=wPSe!A_`mRnCz;i7|3 z90nw3#)caVYk;S-SU0#mPuRJvCmS~pcjpx4U|O@@{K^?H11B6}xUiAr_%B=#LJRq{ z^afBbJ7i=oh1{LVo{GCponC6z6qfAK3!K)Pu~Xc!G7)!MHOvk2}l%Uuro zk|`;{*-dJ^;3BVv4?KlnsX1hsQzpZiG&rHt-rjz+)FSBA^@|NJxNmGs3PN0f+w4Wg zLGPJu3dX?1gbh^x_wOS#zX+M~iRLVsL_B(KOJ)K%qw^sW6A(VIzfV88Ky0^NTYAu) zB>2Mk?T`aQc2^>pb=*m)Y{4xok}uo8Ma9I$TA5l~R`*}m7~Fxrv$y9kgJ>VIH|80z z34)^uaQNw{(GQENz*%#M2de8u;2o=)edT3c=;$KjjZxs1YIV@dumhRl(_`zkrfxT2+gPMK3!p-qEuFI1`Fi7Nn zh$;>6SXS>PnIwpDlTZ=d{wpa}rFYse&0Mbos_y&K;^|a?b{>mkQw!Zyn|kLTFexiC znF~NHvMs5c{^yAGc2(=*F6t!YN;sMNmSgr<({(KV=eoMnr{k>K!kpl&mS1dasubBh z#S%Qy(HlLP%5vfFjubk&N|BM_ae;NYRr$dh9cF6AIsD(i_a=^#lBv1*e2dVB}dir$J9qT1(hO6sP;cW<1xR9GBK=69gYVO9zJl}*1lr8#Oe;}!ya)27#|Kxog&j|Hdhb+c~ifwhxflB-1qmn?)>l3Y%6T+ zJycZVKktuI{(Gf=UjLMo=%x7YTeoc^KdC~(doveb+auyve}Aae2h^toby!*1Do!`5 ztR2|kJ7!VCpv?#jObj%^@sj`f4CG2ft$g9`XlQ^BRTivrRsQecaZOfL`WWJge-Brq zF1bziNw4$&$W4FwUjh6Xs{hwHc^MI3vj6$&9}^*tAB>CMLP!?OEJ#?@C-cvc|I9LB zZ%2hH!HGm5td~n4ik~d?P|e$0D4U3gfQZDSTn2pV$Bpi-4jIH( z?knqZoBYD({KB+VdCh=_gWm}g$&vm{GeGC%yhR?l18Igry&+e`8hd1dMZFQrwfmu_ zdl&%(+oCyiaU z_2uOavCtM&zC%bT6*^oaE5stMm$s=ki znr948xwyEt)xcT-)*3UY42TlE(%(99wbPUs;b&)OjR!`Kj*fi;BhZr4 zs?)EPjPNh+kF4(>>@l;j_%xY4W#S6|{0IB>>(>kP#29Ei_6r#G&)=y7yEZCGqiOeT zF$EL>r?y>BZ+$T(f{e?bz7a`o+$T?;`tJmxgTw{w@$ZcP-M9P~0IY$?qT)Pqa#+*y zCXmGbN@-?p4yx>1jTZXL#v1^R9Gn~fU`0s)D+;0deLLr6lQ zELOyd8PHMe)ZB{;FA#bN4v)X90VeI%on@vt8IT{qW%fbhoG| zT*&ygwYMkOYl=O2;O6dbYH6ygr*|y?8OX&Jx$;!%``G&1v!ogvm>yUNAPxfj+SS5B z^JC}Y=o=Ui2MD$b}B?nq}Y^WrG7 zl&!C3{4#Gb;)E1dZ|}2i$KtQt@jndiCS=XR?jyo@t@znv-3d*}4b87{HuyB1eIeX# zZ;htr#bXS#n-0lY-I8{!q~m4$q+QT z8?bcj5ota{T4R9?%g=|{9W)nRJO$LPr`mVs=|F9P;Ke;M{?>?w02U$)6-!Pvb+zF_ z1pi*|3;0cab|N09H3Hb=W7c(^vc1SZztx&PtFRw;Je(MJ9nwUemff~hn(yM8 z{JR&=HtxPzB(`Wswy_$sh)Au3u}ea7k(a6O~`7bxbiGb|>H{Xr-MVT4*X>C4413y=$xGc_rw z>` zsg>DG_T{l6Ep0nXd{<+-!W$*SeUM8ut72e3!ybl{Yt)L7|0G^iTRuOPayjjP_B(>c zdBPF@>C>lyLntw>#vEU?sVVC18>pl8K;KO)P2&Z%f;H zm%95QMCe!uLV;E>6MQW%42MX41mL@r_X04>gM)aJqo;WD^YgpDDG)j+;F_9)s)`gY zPw)LR`icfuuOo)R-uI2>(6Whjw&Q{qH~`Tuj7*??c!>s{HW7U9E0gn1dLZ-pU)1FhV@M`CY|pcb*PAlueNEg~G3S zX5A8kY`=sKlLT3AB5ER}gp=yeGd=^FbXLMQk}}2e3V)xF^yLU`>Td?>(xPkN8uBgX zD}GEA24Q`JlFN+0dn{YFkBj-af*Y^-V1ejWXobtGtFy5^0^%CTiqn)T$z2!JQxe|R zojv7qT6@GX&;S#O${GFgx&E?2m+YvKT0&MbEiW%vpvoBuq(;*8861OwRRjYErN0k4 zEj$bba1ES-f$jssPQqXe>JVl}EK^Hz)cXQcV6hq3OC22{DFL}29>*2jS$#p}0*%1! z&(G5##0VKpHq<$kyZAW>gqlNdhA9!G2iQ3{|9nc8F%-S&*b(y}xM^u=ZEioAFCP5{ z0V%1>*~#SaaBEqt79{M8;pi;HX$Xl)=hw@pvf!KyczH7pywIdj+ZYm_a?D z%>HUK{oDU#FAkgq-`rfRnmT8MhkICz|BL`B7));-hrd@mJ!_6UYT+~J{;2anU|!D6 zFWBi!3Boz*#Tx=pMF3mL)}3>n9#K!}fWb5h+UMX|)z$QGhi#$`J zMJ5eY8qt&pf!GZY}MeqsAKyT?`s< zI3OWYYTJeXmjhFzA|_^a^}6B4>5=C*wHhM07E(^2E3dE`6)}N^@?PXIRE+PV3*^^j zka2NwUotY11IWBSe*H=*CN2(7rNFv%ut^P`-9tL%`?qfp5RyIxgUyzaQJ^;E4Hloa zcQPn&FAF)8l$O`l=Ef`R;p{|^1f__lr$Eoen(?^z<@tEA-BYL}@Su>DRlqaLY3aq- zc>}LdCl$)AQIA@JzWxZH0`h801Vs{`bJ%=GY|pBuQ;mZrYFi_-BMnMJ)`5ugh{Lmw?hXk6fw@`G`f(7b)(=5~6Lqgoj?TFHz1D>2%iD3}FG z_tG#yd4amPv=Sj1(M)X5Id-_Qkm|??Xdyl7-jFJXBMpAHuy(c@uzFOf;OQtVEW(fO z|1vB6{QuDQ-tkAA_sD1}dyA}$5F&d1{gj z6LzlKJ11dbO1ma4{mD`gCph7~0wx3fgsO&K+09^qnE_ROeMNn1>%sEj-8>iaWd=o|l; zophHL`R9W{e)s(!jK`hdOr;&|T3_DLreCS+NELQP`ZY__hJ$0iP_s{?w2t5@heIaR zBh2Djw;iW+CaNrXf96Ch4T&nNCuUgtE9+nOVz6mDoAvf(NzV2cQwuGU+~*h~p7(paKYhfO zg!4&y-c^%5z5T2IA+{eM+=L+NxW$(2w*QLB=LD!ZG&1zyrB8xM^RDpc0dG>j^xrWr zN0(=YuuH#lU$J#9{(#Vem-(4f#a%?^#_Sb zPnAv+dsO6DkVNjoO7jc5n~AF z&~JnuBg*_ORjiJ6Okc_6b=}_R4P6A87LV)0MX`rLFer zR7vRX-{xfgA;QcNs?@huT^U)fCXc2Il5_akXe))Z5z&bvSWHz)7X#x?%x=9-QB~6kI8VAOBs8RG zF7wlo4sgY?Y{??Z@0hl?`oT!~4!G#?moo zj#nDer9@S`xOhsM>#)$b3p@5*omSet5EAtJzU0f+X8y(p1-?AA)MWeI{rKsqReEW3 z_!gWE)1+8m8Sv8GJ!kD)#$34{=AwVOtK97O$tH~!sFP^PV4NcXb=g+Vugy-t&3I2x z{y_#pO+ynB7bjuLdKuN3nc3sAzP@qK)z!Z%?g3UEDCzH&mJ-}DaO>)O66O&cvSQQ~ z_IK4i|Inh_vHbD=pnL}&-$&0_iWwYPwO<>P^YX%Qj&^mQ6LwmpU+P_YIxi$v{u$03KyyNk&6A~U!)dUmGMdk9ceea72sQZByyo8w*bU(Pl7g13+zPTl~ zu%a%Aana4G>j4MZ!4 z&O&S%m0`orXKAfrnSA)`pX|v$f8^%XzH+f1hkg^c55048H)<)gKLER(#TY&(900~J zoX-)RtlR8FmDTaTN5}Rz*p7RNUky0#M2p zDyh~xub0bcX(2R)Up{f*+nJEi&?83}h~|kuMoilDDk(_HY4f$>Oe%68!uOh(=nW$P zj~M^u+ghE6maMT-6B15*Wn&wC*gP~e8+ZgkT4+%?E`&!mZ`BZlk(_zD&ywU z%uFj3v0SCgl&2~x{JKoA@pd>);enj6Y1}V$sx~#%xl|9hN?&`Kf3)v**01(oyvb2O zyw!D@c;)sH2(7b|gqojs_wAE39g%w*x!h^h9XK7AQ#oV}FX@U(bMmQPION;#xJqn; zJ9Wo{cV8pF@9DE*FrDCt{1&GFLDpF;v#p)+b#|MgO5+%@H0$4(SB^R;( z_B9z9+%_t*osTb{RMSw;exLc|aJ*;SzR@OCbzS*e>ZjSlvtGV@cUK|!Y2y=e$C6d^ zLD|>I6YuqEF4aKr@50HzLg&}q-WyaiG%$mVG&Obkokzfw!RlZ)s_T^f+I7#BD?Vi8 z&HYm2vUr;_6J9%t;AGb*CO{Mp(-Z#-I3m2e6!)8ZpRTi29vV~ex`z=G(USkEe$o7P19A$uOl4V zBl9PV!{er`^2=AxLIJf6YPno6QEZDJ3)ODi=(3M}&1Z@(&%4vu5MW+mGS9#gi>oB; zJ3yo0{s`!FuQJfyhfNONi(Zpxs@IVXCaBguwyZx_C0>2ntId6Vjo8_s z_QCdpj=Z67aZIk?m=X^swSvb=c_GcWi7>A3m&jcy4j6$f$u102^h{;L)XLkwpMjdtgwIa)D)MOnE_G{woVQR1yY&2j8UmgGsk4V41pgNL^iQrjiP( zi)3b&mGx1H2-Xpg(|B@O9kPl}OXs?-+RW9~e>q+|`B_rLr`C`eQpw-HPj`4EqK;jv z^gTPqb7rsEYRtf%+{^=`L-#JSc zvnZpI+axImzjP`yCmXuYJ`p=p$u9BDUiWI-!mb_LhvZJQ7bYj%ro-VYwmOzb^m0gF zuz`dwZl#4!EJ>oaV{?#e`Ae)5vuoB1d1eTV$s_o(k9}zWYPi<*nu$dfKvRRsDHg6^ zbi8F-rPDM0TQyrRp;yX+P#g&i*P>I?;i!{CAOSWXcKz(Z;zy6avFplcYaeae7(9$M zJ>$l>M*F00FGW+Mj-Z%Hi{}qZPC%0{fxwj3?Ft&Jm9`nR!SV6BQL?iX4?e9dtw+{(b74B^QIO){G)0_Xo z|C7VymJc}1w$|2*7Yt5-sRmiGs@-8TKc+0P+7irJ?BSm|0a6yI8h9pQS?EU~1gXVt z*?}JH*K_K8tKQ-_4xj9|X}}N*8lC%?>ua5XgcVzy&Pa4HUQ5rKh0cpe3p8~*2Q95- z@nrte>%Z1I>O8DpOC~Nyu0*FPY~93-2ZV-gI{=;KTCU8FTPUmqy99OhEvjr8T;`R5={MUS3$<}A zLgySO?&iE&n}UUNllu#pH6g@)43$_|z>p1jC9_FMR7T{`g6pWy#ejo*eeh+2uTB!& zu&R!QfIW~g&|)7{QsNFjUUi$KYgCr|a1*MC zxTVN_JG}z~pFlY$IXVrX3>yZqJ>fc|k_6DXFq_C7rKgKhW$lf9{{E(tqX>|`8?K_0 zt%+Cbm#6#JnV)F}#!IfT!!i7}|DA{4Gbhkf<>HKKFHOY`RG9JpbgbV}Z!qD>xpj;A zi~`@e2~wBao|3nU6d1}*#m{<;Cr~F2DMyK>e7TmV^z`;s(#!=1kDL7UPbzkht( zwBsD!HC=YJ=s-KT7+~5{HSBgi8ovgj(?U zf#Y<3NQWz&nEIeuW+-CX6gP}|;qt{3I2)#Z8CTyc6KSidn7@>B+vMvqYJbALZKcPc zzcD9SV<|WXbM)W5ERQh#jo;VZH|OG602Kqzuy=5r{mqtj7Z4wm)RV_1jbEE`OGrFv z5!O}9wZ8c?>QeF}5>gR8eMMpV5kJIt0Ci*>1BT5vzpyma@b!k8A}Q2_=-bVBpTS?z zYsCW2Y~iRN5k$blFI+fgMA0S?Iko)dYM*it0|b>3n{}Q8n`_gfJu7pFG?SR|QzW!t ztUTIXABOFVl!k0h4saJ|vM~HoS3gZn77`K@m^lHD|6M2_(Ndrs`fSV#63d6~I!pux zowLK}Wa-IkN?bW{56z+;)eYZxck}Nsq*>A9!~Nw;y4yC(%U6!(n3%l(@SY_Q4v^um zVeYe`@j7?K4~2!H&V-mmq`mngs=Fc=7l_nevhKy6ol+6WDl>Ig_}|c1c>Tj7^qEEZ zCZ1OeAZ&tiuP?X)94!bPl?C?wAoa}VqV-m|5|dZ{`Ns|e>n@v{(_0eCAA8NS{~q3& zEVo&kENF@rxI;ksz!tqeUj#u6fegCdY};WO6zEs=J-5!0|EoSO>U3YtuA%gFs~;WO z=Q)2hM$$751fI(hgKh`NySdB^Xd%iLB)3?)_3wpwZWVZ*q9&jDh|5gw&%) znx*FL4h71})R4`$OpN6*TX{gx@X3s+{2e&8-$#4tAsAL#Y2GQGa4jZo;6PO7kRy9Z zH%;z?Fj=v0>dD-HqB;B49p{A4OpSBNaQgb4>o8GyK5499!F{#qiS2~C>%#j*x$KRf z+qMPwJX4g8BkQF6JoRp9!G!nF?q)QI;N1rE@FJo(K?5=&xE>tf#7T5r z-^E9XmEUwEVJW1=__G;rOLvEF<^&-}!Nbn)^Eih>6bCO#FT;GM?eU$1g#qfh_Gbuh zC2j+R7P~Ae!R4Z|`-CKH1OwvX5upZ1CkM-d);c^iR9>fzD8Nj{RgkQX>UXouBZiX& zSAZM?9ua}6YT50)1>FsIqJ>n^k0D?J%eZK6w6>uxnjxHj?&a8w^Vn3B2e*E%Bgd{Q zS1h|1d7%cz@4j4kkcSF z4+iM;qE!{8f~u6LhmTPNxTIj^c0vS_U^zKC2@rpFhLoXj>gCmrh0C9`A=_#(gX3<0 zbZ_-vsQQeIpu$UNl&cWu7n9R)6of(8wK_eJOe0Gxl(rg1y(Z8=w{KgSpbPiyl{hvp zAk^4tHBrwU2bxPH?{4N-?%rxB`WW2*ULX{P$~HVpuB8DIq^Q1d#G(Zw1d7>(UuV0z zF2A^ycjF8P+b~j`+joY1&S?0;zixJtOQbf@R-j0K}pOe>EbJw;2ly=_!Is3v8aDtT#fBD}$*!kCv& zl=mXAz{B&xu?m2a#{P`GoXR=VG&eW5lE~%$;Hu=p8OQ0q2H=q748rH3tMhNU=A_u< zP{2YKy{_t(Q&)*3P>A$KY8lt>V?lgypPGwLfkOaj`CPec zTz0aE^ezgwqGfFC#vq`ahc!fJ$0z zS5<{$Iq}mg)1atBdwc;ozgi24I!P1Y15(C?&t8}Fz>8NIrLl!{NDT{2u9ouHn9x^M zQ>%o`F>7U03;g%_5BQ9x zW@>pknSAM+cXL>$+7zk5y&5Pn9&59l4(gsR^d|84KV!=_q=JgX?OCLsV3>pH9-p_qE2Khi!Fd7Mu)$gyQl7fF0mVPq zv_qf=hUUnTam3VneV8f^K-$5Rj*hnejtJU8$I~e5pcBOAy>_lo(Pj=1vDk9+rLm~| zo09_n)@`5;YwwylThhtte6W&NR-un@nQ61yaK6eSnEp?2cVL~B;Y6C;@2@I%e*`{! zW#@Zz>^xK2%sksMrVnzJYWqVkB=9#~$?5+5l*{YFKZ&oN{^3=<9xgYn^jLp#YCx7E z+%UI(V^@JG_vNO$yFJe*l}g^f&CH&o70AvZJ)-K=a7>7+($~k38#2U?jQ0lit^Y}p z9G1W7^p^Zg{kyk_Ik}sbaDu1)^eMhjU&)o-1Sx=bu=j(bP2E@R zFY_jiF7JS05B_LL#KzA%zBE+!gh49e`-!3ugcZ3jQf%HQeyjE7YF3IH_(LdgKh+|2h8z2JQ>bmo1lDIq|te{p? zKixJl+@k17hs}E<+X#RG76*Syfg1WFpd%$KBhdi9QS`5Tu)Y^C8t3+eXhRS@>vzSd zu!oZ<-!zNu&!E90lBZl7qFltY1TBAjjK*%EuSnsuYgfk~WkYUSR<^94OOk6^dVTpp z5qj>=uJQW=mMIJNj5!_A@Y9iFv@xEbE9@jL0iatS*55o0;PCprtbWPbXP10CL8P;` z@o~`{K0LP^Q67j&PHh=!xP-E{e`T?NN1HwHN#I>H?4hU%U$N2#F-t7Em0uO6AE;>( zs|b#FAvuO9!k@ug%fUFaAThN~8=wvrUp#_yWkl?nI+xZ(eNV>2oH{R|4^~gtAf&2W zYvo%JDeJT+N|s^0lK+Tryo~90fASr#~-8h z79}h*+D@pCgZcmiqK-r7^OA&b#`DnaLR$i(NcUpTg83l48d9@g3Lazs?Wehzcq3 z(ou)Rj_h(fw8thF=4xVF#6OkPE!-RX99XGef#n2o&%EIg5)ukA)=5c8#uOqUdaU?K z(`X{%5|F?GVGS5&3|4@Im@?POpEtwQ^Ybv##yz_LT@uRiz~EqDjhCV7A0Izrwm$zU>0CI^&3!tmKm8Q zU%u?Vm6Y`3nB8<3h`;wumTfTEF1VgyWoHr)a8US2N$!K-G#UCtS^Wt_QGl?$%fxHi z%b6022E$@=mY&=fI)W7FDt^j67=x>McHdqa_p$E|u`pE3M~+uzXs|)J23-V-J7gq4 zBbb(+j)x}W&WTTth#gn}flwOd-2f4n^ybZOAOm>BU=y$#>Tq_%oG?Pb63plHCXOG~ooUd-ocjF~V)qyeP<)tu?^w{kmKxwu$}c{gqHckbvKj_E^xlbE;z zxsXt4qB#I8j_oy*?nP=EVR8Uu4pAU-LAXch8x}uK;O1M}Kffy+STWAjFm!_L+|l3~ z?<&K{vWT7D^Ye?m+|5mu%R8|jKYy-P(kGW=2a2e1$x0sVLvw#{-SEk^ko#m1w7I&v zLCtCC?oN;2tY9^D$gNk$-0`s<>cu!&lfMC%Pm+<7H9JUCu;q3J){Qfra-{-$?MmGh^B@2sh zYOVC_>>Q48R0#-40=(?^E(6&{9eQp-p!~`<7qaxPZ{va*@Nxf>qYU$AqRXH6f>LLG zwU1PM?^A=0S|^Ji@}ko%OL=Vmmxo@+k&uxLM^%OU9GF%RgLB9aXhoKA-pn7{7BlM5 z+WE2$BQ3J>{w64d0hj6gb%6B>e)8HcUo`(NR4J(o@En`H$Ye%61`IvgtQUf0Ov-PtlVb2}VPKHm$X7wwpTO-%Hq7 z3F~@$`^KOhe2-Q?%5LY5T8y|BDo=v7BaGZT)|TcnSmI!QW$Ho^-0W~Hu|;?~Hyz*M zTK2uv(bhbqU~y{r=jIOg-`O>qj-B>XgfP31$7;Em!+ZN}$5{Tg_8QOf__s8Xn>vq| z5Ca#}X7|gy?%q?+GlJ0#C`0{C9(n0D8fKSFoM2)Oy{){UpLvJ`I`yi<{kjjA)_Pd| zXSLIph_i#cEq3a`=z zO1+(KS#cG@yIi>NU0VduI_k@T%nwsC^fl?n6um#a8=HVjC>T!K@NeIkOvI=OZFZ1T zh1-8*?~j-I{@iVZcoF2)Y^GPOPd$lv5g*@n90dmky)XRV1mcy}1y7-2|1Y_`bN~M# zkN^LoH2?3P0zH0Pkk$PIgCn!emne9e`#lq*@w+cRrg#AvO4(BBbnlo6E?Hg?o9Swh z6)tN8!yCNQ(u9itlj43KCox2w|Mg`@7#O}g=;r(nWqZE^vwYjr|9N#z@zh5DJ13ub zlK-d9|9^fd^Z$cn{(pXu|I=8&9+Es>sTS+3Q~n<{edRPO<+P}7 z2f{Xp>SF@$6%(JJ`Lo80xcm%JvtDs6Ko0BR$HCUau0Px3>5?wXJrI~hqu z$vudh5j(88l~i-ehAitn7hiXAtBB^8Kl$+K8)`@7-&!ohfel_oIJdXzg*bCpJr7^w z`&;=97|tZ$HnM(aQFx;GNtL1Wdu8S4BJsf>62ur3=~L>iB)04dZW>(VfQGLmRy#0slZgG|3^tGMMsb}xnOth-ChGb34#vUlQ05^lMX+&&RELT?(Gt1yVCbVwQ zm{rt3qX_-%vyWhx=E6JpgYK;@+T7goz(M@iwUiJt zYg?BJ96W#=69kJ~sPGHDoOtl-*|UWhPK4q}LChXndF1g{AX}>zbqhc|0vd$6v9VK+ z^}x@D-Vacbu+RjlXsK5{+J6+K^R}CYhF;e(E(^!HgvZu~nuZ251H037-~NwCtwi^p zf&xMOgQK#RR&5QV^UX#_q#|Q72Pq=u-s+bVzSeDoTn8#~?20F7cPlAt)s`;x!ONyF zSPG2=cp`*`);BjFzkTEgK}@x$U)P^Gv4l9Jlzd|BlZvHacZ|cr;$n_P2PY&fzMh6& za2sR1P)!#;?ud8VzbIzzoo-njVJ8NtyO4BC7`P$q2RVoUbHX8qKpZ%cPcP0PUd<3e z$4wqncBtkEQo6zXRzp`F1nb*@q*nS35oVNMi|3|Zr7f~@t(&!0bw+-Y}+ z{r+8JajH`m(FQc>KErGpcc)92m?eaYGv~f*TicYB#o=??`gzQ22&Oo9j~d@#k$zrOqO`G9Z%szRnL-X>oci|Ia* zEZ9nT`FP>v+B{*}6l2g|b`OkfqgJ&sZ?=2YUIG|WQ%^#@7{4(O<6icQ2C>;xMX-zZ z4Mqi;fYJyinE+eBPL(8sTw9tp-P+tB+fUBvZ2jU;K-Kb+=b8}a9(Z*V!3%hIe~pgL zbv-!-YF%+Uv|YyB{H(?Iw+XLaZU4~gQI$`Uoctr#;xH+~nb91(wpYvR>~Evix}S zV`aIZ$cnzaLLWU(uAAk6r$?vJsiw5h(Z~7%e_HJS%D)j?Gm$*q>1e5OYU9*F^0;Fu z7Tnj;x&v8ic{i#wJF>O+|8kq84Z6N{%hCR%RR6V|5xtjf8rQi7A}q`nbJr?aMfb|$ zy|QF(%$INNIc9vtrB$GSrE)q4U97*Zbs3SJp01IFIXCaD`z3%bo?&CV)aHN!8zCpU zZ9itZEI`T*EVxQ5C@`15+=kAh$`G13B4V2>-t9?QpPq#6XzX16QesNnNP|%SOFUrp z^y@?MFNl>F5<-cW38k^vTq5HPK_1myoqGAY@P#)i`Q5?FJ&4&vp$91>LGnp@E^46> z(<(AQG$g?Y6{{96Z!7LB+*l~pw&p!IDOjGwzkKy7WH7|A&q}yzW@y3Kr4$D@qCcEB zua^)0O~3@bg=~Y0N0;yB%;j|;Feeci2hh|4befwF_NWB(59PJpXKzOLtu>TxR4Ek~ zZmAza5-n68vpsfA*%LuRsk+6_v2cmvIe@F|3wDyb!t|{EpJmH81p@f%UvKLCajJ6iwd*_w%9Rdw|%cmoO1VN%f%YZGSB zO#n3B+0_u%`9>Dx*PtiGkU(M`3JYA(auEUE03Dde%%5Dj<&7SXwMpayS2{u`g~ zk63%HQda@UZtWP}Dk8K@acfQzEtgU6s>6>vf_=^#4s_8`L|Di+WZVuB0(gv+!hRkF z+sKsehZnSrrXbL+PoCJ-cA*U^EybB|d0YllJtoS*!9j%EtsQe(-}=+*Vz1M2@8`;N z`aLe{w0B%SL7IE+vRw0zzUKej*ssg7uFbDYIz}#Enq{RzA$jXsO3DYt7(3=zITpK+ zsTt`%mQUC_Z&*tAR2^d47P4)(VgJ%G)^BCyD~b0h1w)>)M~1sgj*jiVT z8JWG>GP1yUFb<$0Dl&2ak=HSR26m8=zZKou*1zHF`4ef9kO=0OPU`^$f*t|kj4<)0 z-MOV@f@Z$-)BP&Lgwl-t0Oueihaehl4PXW2>XvMMBE=LpT>sMtjf;+bo?9$x&#ym? ziz_pzR)NSGO5kab(dz@)P;t7&v*y+g+s^bU_6>bYRRv*mqK?-*FX|6Ukrn@%TUI*d zPjWvNWh(BxaA4)RW_-Cr*! z`qiHZmb_??Z=jpz=o07mo|=O$Y6PsSiKsTAB17%=y#R;1qJ){RuSlbaZrY zI`e}}^ zjv|I&-8Q$Xo><5RUgwY{)ZE{+aI{0jW>8p>;T+sW$ylS(A$YU^;h@GU#IQGF)IiM> z#;XZRPe<)%uY0aU5OyXc^&=D<#$+2p+=3Qjn~{^)irlAa{4;EM10Rq{HhLvt{4%EmD)@ zl-i~yeSu?UHa0xZ5*&s|h+7AUvewNKQx1#yH>_|X2=zPfkPdO4S{bcvto?^lRh#bj z#7d3lIwv2W9VF!rHHXMZZX;ozCSV2w1c-rfk_SG<#Z_-DNp2m6AO^%A`7zPUP!2=u zfVm>OZHsyX73H`kCCfRzjXAIp5N5VgH>aEpEdCyg+XFxTmAo^h&;Sn+T%|)iQ0yo~ zgOD~UtLX%?*WvTc*1+a+XQ}({>m(jQiN+txv=~US_iFI5ONlKv^EEYfbY7=?I7+Ax z^*mOF9X9SRH6BCE&X+Isayp?ctayIlH*D3zU#O&BPE}J;QoC&8=r|iikG$fnf(ZAN z&`Z8Jy7(wRO)MbtChxbvY3VL*qw%3AEVe(Ld`M$?6d9=n1$Kvg5#8AIX!XJb{W*^q zqncm?LG2&cwfD&`J<5A7bGpf6T())tDICY8RdV_d?cH@FBOHj9n#}1c?fko|K8G2~OUfB(|3JOo{Jvq~0`kB^Vrk>=G zOwvQ;l-JhZntBW$i#WZY&W$SLk-W1*Z*T7Y%G0#8OLId<+kTmjJ(e2Oxf3}$rf_b! zvAuuwiV^R zSGHkIG*8T1p5XxHd_tNM)j{or=N&@^#?CJwg93RTx}yX{IP#Q+sHoUEISFYFl11OY z4-BjiG|q@ZvYhSa=Up@-qc*RTS~`1!dIw&# z`q$-gH1%)hT4z~wBM;rq&JNhIvYuX?WdN=PgJO<;f3H>d?)kI#Igb?58bD_4lD-kv z{&Q(9H9dU@@EpCQjTc5WCAMc$1afh5+HS79;Hqj+R6>Ytd=9@jOkI8byY+^kgy;RO zc^1!{sg*f9I~=P|qoTf|`GJEH&=ZDKwZ#DL{!*uPb=v;Fv;cK5kppN8$+IINC5689 z$K>LE?_Cxd`z;A&d{)w~l-&C`0ci4WY&5&7*VU*hX})-?P90nW%eY_hg)hgwIZp5L z)~oq4wi|h)^Y8ghQc_^cLVdr(&%*XjLwNq$(z9EUv;O|--duS%f;uhx-c=(IQCg2Q z;pWroMVR!STsw#q<}zG zSX~5YXIWlu)4UtlNC%J%0I~izirPY|hfSaB=lOSdZ}@qBfd*Gr!zBF8(bK!V{_@TK zI7OaAHk&NN&f+iV*?NVE-+b2-Y5~=K7kV}?^T_HSukJBq(kdxRwRol$8l`(nGw98cjvn?NBoRX)$wo+ z(ow-n2}*BWt>Bu)sP&XK*|aBV$yD_88j0!bR)6XKDUWB|9P>pa3@n;5 z^70L7`RU<}+W5(E)l`i0;H|#P`mn)7mcjR80%C7Nu%_VW#5=B4xa4SbDyYDkPlQJS zJ3HRhu6N}OQ2O{6BXPb+r(`uR>&~k7;$AAS_M2`Qx5Rs8I&!8~n(==$~R z0QprxviU%c{-b@a0Y9RxGmC}3K|Q6KcY>CzwWrlq9MkaH`Z5$2Rt&OgLNI^xV zVC{OpBt|_^B~@AMr?&Ib;K^-8|Ekq~&aI9AhS#$*_l^2l+gSwFo-}hPb|8X#5$a*s zVrJ-YTuUm~@I1#EYHa?-lsnEHf#JyP`&+#vl~g6J3@PfpzM(s=Nr$kqvl}B(jF@OY z7!q>%y{r5?S=6^-k+qvUNS9MQ*RRshj37~jKx-aVSO0QsF?(pnx@ug+tT_!KNljpA7IJi56niAo2_xsDu*Wg0`IBn``PPfPJZ|hmD zXw;FZUb}o3~7oA#y({{)}EF0>Hd4jEs)XxQIQxbb*=K9iw(wEP^tq$$ho#i%{PE zVwdO9N!Ccc%Tf3uHa5vvb`QoMDw5ESj*QSU&<}=Xx%*_axBIz@-4Mv~-0ElOlJL3s z0K_q>-j-~hgJTChMu^#TIX`V})*Ova+U1y7PyW^iP?8 z+nXP8V~^Be&*Y6?dRfsi{Ko`N)6mPN8@p`qkg#lMl9}fpik2=AU+w9-}P-EA-;2M0d3u>Dk_p=1>M32q!VV;t0y?b|Fk!fssgZ>YvZ zxgR%l<)Iq((rZF^`}m*VC!5BxuO1}#4XtD20>}9#{P&YL?Z1E7j@E@o?2Onpsd85) zy?t-lpAvfr$YUC#U&zLj%Y`eKqsqDnd< zfqo&RJH~zWHnaey63dv&((=o$03lgzijuMPk4e2Rpj&QK^jN2g6Lx-jZ*3_HTCqCb zLx;iu(H6V87T#ME%v)Q`un1+Zqd(^u^K8Iis;B6ZiK8IKzC=qfAMZ@gdvIJUd{5Ty z?;LEMIlF+MWA8=(LX1U8dT-y>c3`T%Tv4@67sVmOe19)pH*tMBEEh-7w{<^c&`_cL z@5Pf!r={x~8fFHPWQoHw!{jKqWpH)?B#N}I*YN4Dwia*b!lMp3Fu42gw-SU~TYnUI zdghQkQ%RMhS$$ObTbZ$BO9HVHrEV6r`q`_8nR31XEUp9kg9irTmsL;UCpcYoS4l~} z*oj_WfJ>VgLs=)A-ulmR>2=@!tqljQ%h5?{r>FMg11pz~^fkA4uBi6HA5Ft+MZ3@hfLe&AiM?dRRpIV8pBc5{qwK8 zCUN{@4!Kf#yWefOBS#=b#@m81Md|JS{nItWwx_S>`CmR+-`F^4PxG>EoI6?$Pz6?c z=-Lx_jT9BJ-@ogmR4x9Kni?4V1jeY4Zp7&U0}{=k$?Yt$a)DzjUrAlPs`rD_5yqnx zI$A|j!qj^aWOSrtezp!Az7jgHVrnN8v{>&90mKmVnC+B7QiLSb#0dlesA*06qTN0h z5fOv?oUZAkIY?l8TK*!)b%_2E~0fsDh&K$_jmyCB= z)PfndaDCu(rf#V})G6ZP_u6W12}a^x;fJ9LkxD#>x1VG?o-=f%Wxq9{(Li1U8Z$&w zp$EVx=u&%W3e$OM6kDh#w!HnS(=xGu;AV8me^)jpwp+?1;bva6((5bk_f$cszmJcLeOK_* zeuA_iBXPIj&6nT|leuCdMH0r=SC?@2h3E2Gxv7<-qpp%xk{ai&15z_=6HSmn>LPMwrgjow@Rh{ZsyQlB-`=kIS-i@=feDYGrdVjNb3bT`hT! z8x{VGkF9E4i3-vlkK+8dpX!J@TV-aKMul^%of z@0*_XVIWar@2B=5_Fqct=(B4~kq2L?-76MILz>6!H(91oKWSs2ppLvrlzSGNPN!2XjC7m#001ckaL5FjT4x^w^Y_f`5<}% z)F&Jq!XuDEP8JIj~QX83X`cqd`;}JSb9-g+9VZe4GkJdx{!;3y7xw^G3=Bnj1tJ z=dfpK58ploA6^J*{uZMP!T`IF zJ7L$}GNp7(U^3s&()jgKML(~DM5 z?wEj+kl;pCN3Ho}3M>-_G{i4eToT?#dE_c=5q@qJB9qVJu=_OY!#!^?uh3%Ezyi z*|>i{$Fu9qKmFCGJD1<#gUGw~N45==f9wJd-dGcV^PJK#oi0nVdQ9#9di`a`;N$Mf zfF6JRF7|Zjfgzz&J9`L`!)`ZApJM$YKO4_WOTESB7S_;2h7Z=_(tcnraMBgxE-@#n6>BL=rL4y#SAvGRl?dl+UOglYYOH=bF zF*OX{Hw^I*6}e{>iJULMwrB?0nwy`#uzGLZ4?RSr95e8M>Tkc80HPb2-1bTP;50=9 z;v?J%XglyqYz)$b$QdQ%{xcl_M_$DMc9sg5tPKUD@raJo?tUpmON%3T zaz;r{uk36zVw&%ccvHOTE#N9z?YaR)9R}x|(Q>+aLK-%TC-K4;bajux`T3)*wa{*q z9Bf(b=phwf+fRb~QiKB@hr1Fh3{SEojf_k%$OsAfs-#lOYV8Ydhj5O;iHbO1 zPMj%UX|UcLAF@2J6aHd1Yvf*5rGG?sjdiS>DxFVO7_oPJdRBX9>F*Pt7>=A&j+`kv z&Z$ow!Qyo>&Yw3>O69as%$wAw(gpmadxLB*n=q^laL^Hm(KYxwo)j?#_& z`GbyRrnQcXC1O}3y&dNQNTR8}qPmTI!I2RYV$xbuyhLnF)T?%Lptgn(8{@Buw2e3I z^dhd$yY8(ioeje|isAzSk(h+Rs>R-c?TOsyOI=gq`?tvat6yIiL;70mIVa|Q3|ah$ z+H5yRqQy1@?N%9nvdqR{hK9*UQb>+^Tw_$S{xzbr?4FzL{YX@#g@s=>zH6Yp#cTP_ zZOKYOY=K%T(WZCeOOD+2>xU6a0wq6-_vsK!J(ESr#$Biuno>F`0oy$sxp5w=xA*Sb zt0c};$SWzS2t6yh2PB+A4jj7GX(?zsH;c~p&2yQUUAqW#8H&QZ&Zk2*u(q$gKZQ3(;d9>RnG#&on1Cw58E8BO5RatiXm%c*=EuG4?8uz7|_ zt0)_=wVtfcZYPhq({g81_zcO9t=v2(BR-Ffd}^c5^^3qVAN%+Ypz9}$Fb&<)L- z_E+3|eSKTT?bWVdPgF}qISqGUi+zFL=BEq1t*y>0VO%i6uV??hEbiYuX#yYw;oq5Q z|Kzw^(~eE2+^#AefUUtYBeUip&2(`sECjx4QJBMgfddxwyXZ$T-eoMG&P~LtVG=x!lGRmLSf;D|s91on^%T2=0_vLS%5snOpY^Y?Edl%G zbzDp$SiJcZ{;)g#DuAz^Qo9H+%KI6Gq5@0)e%_a^AxG(vUDRtu%!0S-dozT*?X6*| zELIW}b)WI99fYi2wwa4~4DQ6t9ztEQSbqeG3tO8L`diO~&x4dd@UY3dMlbOy@kfbZ zN&$-}cI%ZhHNDgWc1TGfY_Wi`%&e`6bu^*D-u<>S@`#m?pkZz&>?n*d*8>j2gxHp& zK{$3-Rjo>i%ibM-_~d_n-LEmpR`z~1N+scEN}MMr@uiIQR|Mi~-9&+sl zBK2SYm-sRNFTNn%YLD07)YXA#YxoNoo%sIq`$dS6mV8YTYlYD#@SA;Dwu=L{O=C_; zM$60a-(Ph~x^>8kxOA?aw;dfd!f&nE6kPi6>m#n<`-u%u1@&n3_G5g}+(qL3E{N@5U`-3#rvg7+ZI(+*_PXQ%?nlyOB{oil%kl4`K z>FTBYV&=>XinC9JoOMEu*U_@5GhSVIOwXi6;>jvw(R7mcrOLGzWM|(p3#8KQ7tNr& zf0wE8i~apbpX1%Ks?E2bQ}j;9uwCwW>Z_LiD0Y}pvYBdk)r%MV5A3dbb2i80&*;9- zqnI8E28`eYVOU;AD+P`jP4+hI-8djIyTlln=tMq}r{)(H z5l$IggH%01oG4yxfCgoHMzH+hg@&|}S42O=61HD0U@Oj|wOO5o<@`zhUkk^0|w@@l7YS+dO9-IK<>Py! zcGlL`4pE9SRxEYAhzZAy8nP|IL`j6~sA_7yaNqF7Z^k~vCoWz(#go|b<@;}Q&}%4W zp;CoOwZ-iFR*;sCjxl<5Jl0pwcH>oqwjz@*X3bp!953R)q{45Z%{jw)<^;0Gm&b}@ z;-hy!Ibg&a4YC0m;nOblb<^H}{&WHYSP$)m?d(j}8{|MT_j7GS4S*7jPeKr52&xUU ziMfFArGtq>ACJB`FE1~B^*zF`ut|fb5{#aFwo!Nl+EvtGXm>jDsBU_A#G#bKqzFvA z2j`@ur3KZLR-P_`gc~Qj0nhK(#|$z=ip%PGNFY44zNrDd7?7S=J>=Mtqb#7<--Buj zIVup%GH{iz&lcxfeGg;1el4#Py6vjXJ==*;UWo88PFUD+-FepI%zyUDZlkS$sXekf zv1+z1I#upU7u>z?Fdgrv9%b8g@ar9(_Y_A|D{n` zz8mgyOb>U~`CmM}cRZJU`#;{$6&i$6W<~bM-lXiAy~*CP_eg~hvNs`QXK#|7?QPF& zviIhDoZY|A?|wY4KQ7mu-tY5#jpKM8&tcSuYh=Ow!a@8u+4#yGp-1rtxFK)x0$eM^ zSY!wD;D#hmRWUs#0aG~`OzMFc#f_f6 z?ZtEKuW7~M&<%c;95-Vn0Ez$%lG=(oVYx*!Xz4-nC{jJU)$)|TwOb!!14<|?D^Ny* zrftUhO`$5>tE}wowi|0|^6QS|U*TE=TpI}->I(3L>wJ3Sw6|0HWqC(020VdpOxJinnErFd4 zFg*~^^6en%wGI{z{OucT9H^nG?%}!vHt?-KpIg+s=@8|d=FQ!{p`jLFA!k9H zj23BdQ1H(ArdRS(vfEuaUexnMqHqtZ!Sx+7w_ZX)4c)afod^IRDh1kez`;lbylMZx z27g0#4-v0B$T=M?b>py6 z6Tv{@ankxebs4=X7-kXR=<$nYVB+WRhV~`&$>;{KF}HfL5u)jF(DczAfG#n8o^pLB zAtnZ^5?XsF2VLgaPa;oYasZRiuEM!icpQ*>2)5aLdVN$-83A4c?wmKVh-X1B-|oG= z!=-U?xw8pK0rd7DOeEhp4HJ6)(7@FUvsC0&9m-!Oa}KO~0pJadjYY_nKbCE6b{D0A zxCX>J*bmSwfRfnja=(Cbj3mewTnB+ij4OCEG5~f0i1#_c;TXtTpi~E+&zRV_r{He@ zA(?v0eeMnrGhw(1BrI6Yzd$VkvIJnh@wn9COz!sSv_^VV4UMhC z&5@Xxc!m-<$Mrh8>GiJN;ANH~MKYw{HUh5#m{G!6ia5bSKwN*B*7rldi|-la*Pu|1 z06B@_Kzjjo6P(mQEP%HppG8j3mxu&8u>AvOZN#Q_WfFPY;dG3USg10;hSM;{G35+? zY;n9xgv3i}C*N|4!`If<95z=<3o3WGXbVsPR^ApNtM%{zi~&>$QFq3F$Z05(^rV%! z^sW|oxLXQXmJ!FBb{L%+tZ$Mmpq9f+$34b8cEqpyBc;sJus+t_?dtny)~~xX^h3-7 zaN=>8_n9BH1pN{u#Sop{3pwQ~ne^_;ZI}z}7uc8^I_FB=<}6imv^RUU!cHHCroJya zZFRGeNpk}|49zHw<{p)N?&bAIAsuKhnSOK- zzKI?^9a;Wh1IG6dCI<`#+xfP85Lp3}`Vv+SuS3VoG)J!A(2mwaF(UA_7H*NGSzpq3xS{ z=x9LZMB>C@3*qXRO(V*C7qv&=1W|d+)k4_<{^UsS^%e8YQodHZ#TV%FA)#!>`XN{@ zfqVt%m#IZXVPW(duc`0=uYk721g!5pS3O|vjZCgwhT6EEpd`jRzJ3wsy8i-p8cV)Dx1BVqji6s43Fk)Cc@YIR|N7 zt;(&P+N@FQ|C!tAHITlHStZE?&lX0fDFs0gGaFZIr^zNjCvL$gB)ugtFc2=uGKPVa~%QinLv2e~{5irdGEE5%RzN|eIla_uqy)v981B%0YFiZnSX=_wwje)%}==3sg&6v!#B z(Z$2Qko&`^Ap-LT&|1F_m;sQo?aB+&Lp@E*kB@>x5cNU&E&K|{eHx&pK(FB-=nIm- zmnkD#yq5N!LrFP7p4!y~k;CVW*B%p&TD&t_FfX`sjW0VfSvZ;ZJ2CC$x#?cJk;Oo8 zGQ|r;9i5($Hj}3cI@i))3c_||8!vlS{{?Bt_<5jzW|>iXzCNufz04nt}&>*5p>EXYAo8(?X~)_?se2g|J|aaEd~jK0*}Ofz>xIEI}CkGOV!U=??ez65G5 zgo1#u{x0t}8rbs5dg|*yx!AMRxMBTOF$;2L$-t45mGvXcXdtB(;v8~+8^y%O&sizp z0x299^M;__;2WtZLnMWUgk(|0Yh8uQ`VR(-!NCKf{i-J1uK+Q@bn{~N^5Rx@`QT%5 z9I&?lG};e-2zDP}>ThUakr4136QOfP(A)?4K6EM0b3q(OEd`g{a2`Qrdv9E$sIU^js35$FMx znRwwS6$68jr>-{)2Y_;)_5C}tX@Q&Q7tJ`g>*_C(=6_s3``=?|ZJ=#{Rd&2EtSu>X zKN})L!Q%($xFTsT%kO^9Sa0ogFhUqC)QRn#F;(##;8?u+UxP<&Ex_phkZQr*bI#V&3*H(|1STiJ=)ma=y@R zVv)@H;Oj`$g#he7T7>r_j2t6mysLC|7~nw=`RIHD82H^z5woMkbi=QH)^e~&@H{RZ zKB@+Jz`^>spGaQD%7&KN;d&bQsKwqZwS8T+<5?t^oIk+;&^{-p7|b95hgvNQC&vIr zYh#|P1^9eI9zuIrenLh`P3_B+7g>r$mejAHOM|-%N_e2)wd8A6hxNoJC*MQ@hu8HQQH>nuft zJ~CM&?k37(R{9?dQ=8=3?~!jrL*y#_7nmdhmJ5+8koyGn>P9+U`a}ZJT@vn(`lb>( zp4ucs5qQYL2F(SCl2%XVbp_wuGz_!Y6aG17NfM=79NMK#X|7|uU>7~D-yr}48NaD| z_Noj15RaW7e^5rAhc>krZ!cR$vAVA@i@hn$u-=(hfD{S;7a>qU_56eas%aKy`)Kjv z-N!k9YSrYAe8Q48Wua4Yj0{dOYpi@8`uqfAOI#IQ-bCT18|r^F&slGlkNUS5Y&cf_ zh#MH8Bb65a;tdU41_QqI;67gt=*w=botQm@J6`A4mV1HVvYFF(mjAmmW0z}{5vryD8N+zIX`<#EDLEb zYP>j~KJRctmmNZ>{l1Iw--mgwL{$a(FXR}&oPZJh;l`vsY}#GpqH;;O zR5px!5t#awnuwIj&h|<#ouL_wL|_k$l$zrMg$L#`prC+;Zlc~R8M+SOXP2=xo0GDR zX!0*YmL>Gs(oXRs#co)qhoq|bBcmo>66v-|KOYkW6)gk$jS1ZX^eb;3zk^;pt&jYs zTiJkO2{$nex0~j+=XX_%Zqmtqcoha)4kUh0#UZY&ie?;cc8a3HsP0CH7Xk1CVcY}R zA!ICDJ`~hWE&a!^sd$g)nHapBV-Kg@us{(8CXbayNnJ-r+Yc&LDzmTG+X@h#*Yw#9l{qZbMU9vD zxozlLYM$;I4^qZkwvJiyTP5e79m`p&t;#i!VtgUz+V+fi0vf2=(}QQ15B>q&c_2_Z zR)gRmm|#r3u$a`J`7U+%!!P^kt<&svRcQkE3o6${oG$qrFeSQ?R&qe!KejZx9K3gP z=n%T968q|9(nC2p6J0k`%;7j={*Ff6kFw1>kF5=721-dkabRA{JImNzfJm_9%j4wZ zZl}5rEYspphl7zQXt{NrIKxiWN!+jHnB~wZ&_u#`3a%-$pr}YJ#`+<6G1?)1q~}|H zA7APIn!yIRj)>bmMnP5}2pHc>`+9I&vw200$H!cYh}nQcGRh2j zNQ9bkWK2b^DBtOYCJSDP82Nk1wY^;?Ub1upUX^c)XR*S!wgOOOMB2%^}o7)ImcbAoxwzz|bO zq)k)~R7PGQMKb)NJ`+~xFogb?31412x_%X`pP73h$ryGZ5V|R@T_LywBnYvvhy=%y ziF%qyGp%(XfW;;yEuK~GLh1x`T8nVfIKpR#3_e7l?Ru6)pwzum- zB@Q57?ujD_jv!&AMCsr7!^qaf!&9KpE|-kWmy&=ng%}RCGVQHfyX{%pUt)Y=Mt=xg zfEjSAguc>1Np5vvF1U5By^4-@oEQR?HZ~SP*#e?Ypi}w4*Ks+2WlN* zKY$%lk+r>%@&izW5+^2pV;n4x17+IMA?{rS8*TTz>+=#I+bhuaD1<8*7#gRcR<~XG z+KN5{zz}5!JU12;3sr=_K3l95bVn2U!n1`BDbj2P2T~)WF7p&=j!z2CFfV5gJ+YF9 zTS3$p(V2ZU?EFU&7L03cNdwZWv^vJ~Ck}V?%}QOhY}OX|?W-rDa)FtzzV(|g(4Lm4 z-+^IK0=Gi|G)B3<`&C^?hLWZiRt*-85de_)0nCPbQIpbLWtNDWz$$f~rNVRUH;@3p zq@tZ!F^zs^0;05vxb?JABadPt) z>*Vp?qZXLQGRp^HS}`Ayiklztl;mrt_b@G|X}Uw?`}gD>&0ZPUPUIM@ca-F)f^>m- z1Qxe#{SmGCjXd~gdp6g#RIs@=~e3$Nf%e^usthPe+e>@$ai*hyyUX^^C}`mujTy> zh{Q;#TQpOxj2vdd-_51tr6hfjtbhZ3j3P}tF*s$YsHhA*>0H`HSS|u*=K_#;u(-&~ zyML?xXLS9UA!hb_I-W1&ql^5Jzb#U;Y2a(2UB8-eS9DZSK$>>3uirBLmOt>X&W|>$ zRvE}%ww#>x@e~-1(+22$`aCM{nX~RR)vQu~p!71ujQ?!w)x~l0MQr`~)ZvI)Ho6gq zPwU39F+T?ZLFkxz)leRsPrcxWdJ6e!;rKdDOS?t7uXJLi0c?i(6K5g=7z^AEl?x*W zGR*Ox4_MB}3(=rG2hYVva;1=7pSYHl$175#e4YE%kOOGKuz0twKpOVrEX4rCUl(!R ztO0v2Br>8bIIU88NKRfAJGPS;k8d`kvhtCaDNQdQkK=PBY;B=~Q;We}Nr@a6qw&#T z;$KB^F>rBHR8o4vLu62_re7bB`bFYd=r_H+kPK5$fKyOV!rN$Zw5@b08m-i;{QKga zd&=vf16i*VR1Ns8+im^43Jty~we)@FTlBz=Itac?;;|>E?Y7S5nIB>DC_E7`11MJ} z&UlN9i+zLOy=N(gotWT>hoSqv1W`gL?ZTJ7=nkV|=!xH_3w17rj_75U9%bK>h|7S! z+NOH)TbMXlui^M_?SU0CP3-*7>dl>#__uf+HX*?~hT2p}IPLXtZ0M>UW7DQub%J77v8>vW*!(pzRtiPNk}WUy9HN{YYItLKq!m)#lz| zBzIPvaxT&S>@CKv*+9k}!usQQaM>LHTodUKMcu<9UsIk4gFOO;GbG!#JCVobVAL2G_+X`|+vnI7`tW3WNI$|b zwl0X!WhX21v*{Yv%7jD6|NX#fpcoF1A&X1 zVdUG*lu3VRVGs!Y)a?YG*383o+Cbj^&fyB1>Fis>dRbk*CRr*^StiLu2qk8dDvNd6 zDHiLy*qH=m_jc`aayW(mwKFP667TPm!pE0vB6 zE(n_>lA#2fLs+cfaQo@SV{G(%(&UFJ##Y+8&deXOO%+u}Nz2Bc*$ro)kF$S_O=#Z< zVZ_?ruKXC9M)`VSzEJCqJ-gC&OQ`r156RqAUf>deu^kObd1vJetNx}@DEVu=m_*ty zu_{M1gpIuW*0%^h_L5Zyj&P+fhKiimD*eowPf#cB02&5h8h~iMu&EL~ta3=;b_sLl z)n->W=_XDsZ?qB^Lif|Ne-F0KWX8a1b#xrE{(9?}H!hn16-|&T2hBSqa(*q&xg{Rf zX25(KE2Ot~;FG`~NRtjt?0C-0Yp~{IWfk1uEy!!d5jr+Dix=A>0;17hot>Zi@`3b* ziyIF3O7^QKzGJ1l3ic(=UDFs+cO6^9)u)33gDMc=xT3C3`57oZhhTbmp{!Ny|;QTy!@roK5 zhu_qHT_srJG#OFDJ#tiIeNG_S+YgPst zs4)carcdxppKmw?x`{i$&XR`LF}=3?Hs!#_Mv-e;c1yxxWm8tXS3_hy~uL7Z{`$TvLqz2pA3PZWQWXL0qbeC7ts zHF!@uS%?H2KTjX8PcJ4B^T4&bS&)_0-WI#teR2Lxff~Xd+3o{0mX>_MI(@dt0f0jD zw=RmA$78)OU_Ok5a0FY916^>!rj?jHTs&KnD+BR@PQT$5ncUED3)HL+F}zb$v*<&` zz~}>^f^OFA-W3JG+2wYomjrkC4CBRF58~w>BrV;7$8;X!!B2|CclI0vj#`{v>P$LO z5bP56%?G_!9xYCQl2mISz)Inb~W$AWi-d@(z(mYGJwG+&e=uKeRH3 z&ni88ASN5f9}QLb(C1~!nk(ppg$M~^5~W%A`K>03Pfmcm47OOigPF;TgI?z69cO7H1y%5xsf=aCOT2xu{HvrNs1PT4D!Mc0Oy(O?eC*AIyW$s<3VcT%!KHl8 z-e0dNFAWEb#-c8Vh$V_~O&vwLIw)~4F6KinV|+~_dU!85VGz?vjstR}HmXBQV(;N` zB~!)TF)I&p^)PbB^@-+N0-oLwfC^EGA2Uqdw=Pb}!^F8Il~TB?t3I)_ZXJ3ZI-TiU z&Imwo9bytKp02QGxtzu>ABdXyme2oNl+?2+luUG_%7GR}_-AW67e2Cl2j4?4^@lem zdBKWoZMr@grUho^WJLV#pE{yNN2;9)LaSRR9F>$1KR1{4K^4RVXJv0Kb#AB`+;Swy zaj0|9(bBU-!yQ_20+9TFLzyz%z8xV_ zrH1W5w*;ALaO1R=*YDH!udvqdnAiK#bpY)3xP!Uj%@0*?VU3Cd1Rw{pHK1qin{O|C zLEHfL;&1HL_k(32A6=GjpZszQ>+z(c%;$cGY6Of~WB@%tbESdhAYc2 z{w+UvCiLFd7^keVh%d)M!#a?58QB853P|~e7$6pd(S}!8e2O@C1Qi08CKP^48+iN& zYNntNfs;?k=WE75GQQv8tAO`5QyoXJ#?$Q z)-ntsY*#@6S8KJ3)9v6k5;OqwCE#7zt<8m~4G;QEZ*p)~Du?z~k?yicpjZ`!pGAt{ z6&Q;nemzj&g!L@IsF-H;?C+sQWREB?Lq6dDXKH1|zB5lG;F)l25e3&VpuC}CO`nQ( zj@`kT&>z0sGkE8sKtuy4jN5nb;xGv(3);l3q?!=tXh{^DFtzA2$+v&IH)`P7q7B8s z>Xa+rsIb5KFvr{BG41MQJmTFl`hyZU@sKmRSy}jlD6a7 zTUE#ZkgGttuL3+2cpv^5rY%21{#6B79Gc7i%2@*^iej2-N6XpD=oM>;4|pyPGV!;o z44)2KW#=UDRuy~a@jc0|xw~i^`0B*YC9?i_`^L+wl$Gy&TdDgd2_ECwv)oG-jS6t_ zG`q&Iv7DuApclMZ&)sx+tcaz3`0JDZt0;8!R9~XI7|E^Ps3-R@D}Jo#+(I+&j!aN1 z{`1CBByaqO-I={{|I+UE0;7jN>E+Q4&&xwEQfRHIFhTDHsA-H=`U(YiSV;x0VY#Ie zy_3=YCJ#6FQGaw@6Tn4Hgax(A32}J0cSiI>Y=*U*o`^Tg|D8Tsv}tD z%}tHBgJe1xn`brIf#SNbm1M5cKJM~j`hpM)`2M^>CL6SRuX`pu9QX){vt9>9Uqvn21U}H)A)60I| z{xtZJ%z_){()9UB!Q8epILJ~ax%XpJUa8wDE!Yn6x;%sk#4~a6<=03OyFX-It?m=Z zc#eAR;p%}b%=+>=))z)R=lwwymzCz^KL^fjOSVU6O1u}btsOgas-kgh(nuUFI0`;) zXZG5fzI0sZuhvyE6HnjwCBOF9R85GmDM7AQp5Qj^y!n1`uX~c`peSXod~NO z1TyJu#M=Gc!MK}doV>6)edK%3MUT$BD6P%|5>Ka2H-RF)H37z1#XYUTr&){`d?%GGA$zODUx6wnBKhoZPXfQC{okw5 z2_Kc$@6du%D26o3`Mh+P)BVWWhESb}>1eoq`wp~i2zv!_`XmUzq z#wqk$agx76#@At{$A5U-Gh@v?a(OUbb2J<1n>fzHeKdhz_af!>A3yNQyXy7MBiV(h zpa+b={}d;m(|K*3J0&U zwUJ6x87@OR^D2kMpS9Rx1PN(jOEIHitUG!NZV(VB@tUn{+JzD>cVO_5xEz5pi@Ry_ zqI>f-F^Hi08h}Xk(pbAbnl{1s{5aq1?SlzQN=k7Gg_aWeoF8SH@v3AtYu#XSm3t_o zCKML*+UD84rT{IC&YtUbJT$_cnzHdRUV+2EC?t=soYXn&EoVxw_m#`FE1wh(SiONW zA05ryFG7kUx*#Fux~<*bzfI=$;Zh*;kPYv$*nEMiaag~;eVA~*AG2>^|gG)?03T#b6N3x*T zBs5mUStS%!C00Erl~aPyTLaIRg^Nv?Irirhp6_`%Y3b=c0OuBY7#FMYUmWQJxb<;* zv)tjorKKhC8zv8LkBHnGN^A$!CltY8q4rLh&S`3F$SA@_Nhwl_qVdnqD{#fa3i|tZ z6(;Av0BLE{4Qn?5v7bH|VcBy_gZjTR-6uFWxQNC8z(Yxdr^p?Un*EXNp1OtxSn-NR zAylbK`xSW`4^%{y(9;I^tB$g>AqfC-5tzA{1bIm~Y`>}IG{dAH;~mH<03?sg2$iCE zL_mO8-lxBQjN=bx8iFMeX`-lrX9<1`TCR@OT*Vlc1JXGtaAOkU9% zLJZ}!k2R;oh|p#y1r7$Nmq1Tyu*iIra|R!ZK+Q4Qh@r?FP%MsnV$ffXuGYcRV73d*{>v>W(ibRh=+k+1yWm}QqWIi;`!tTcgp}QpnFrRB21#a z`26CE2jMBiEP~ikL~@DeA$o7`h!|AoOrk+_gsmXIHLNNya1~&;#Y(S9_^r_d0tL zLjuD1+bO+ccXu7+sm%nvj0Cs2Y#?bCskchxD3f~-k9{y=UQxt^6e>w`TKaTH^#U~( zU~0k}`ks?RJ8qTo`VBC`o#}iPtMWBvCRMxiu#}ZRm>Lg^Z$KpgFmR#j?Sj@3r64&6p3EUDwBEl4$|v1b1)2=TYaP6Xzt&!_ibr%sdgWTm z;rVDXs6;h3mh*HW$4S~93)zbfIcaI0dHWbR?!DGeSb9;Q#x%5%rG zj>zt;O8RVdsU2k;*~{cDwa_r+mr6(3C61&}VII3r#dsPSI_?Pkm{s$2kGpN_}rIJg!dF=6sLI&bN6R6Z~Zw044= z_xi)0ACV&<6!#?+xa0+J7%9Mk^tn_uX24}xGq&1fMLN9eVp}}kWQM<5Yxv;9T3z{g z2!ETtRrDnH%VnT8zF%#SM$C3J$fF zdVHBG+#FRw@UBLg)GYNL+}JzkA-emt^j?))l^ok0|5-dPiC1V=As|Po{{Epnik<0J zxTC*Xv^g%ZT|QNgW#{-nCXxD~!pc;k#)hjV<>J!E{TjMfe>|z6^!v43f;h!1-_b{HLtU>L}R+<&gum%ai$AjPMYNskw&?x zV+8H9>D&RC>N2_olj$|~zI*IyNz!{|p7NG@Q^`O4Yo)Iss6k7Mh<^6?epx%Pasgdk zjCx=uIe3)cOtE+#xY|@F?YLf%#LiUD;9#K~uR3n2-BU$x&a*D`q*@9sZDt@Pa{8ju2WUa>bvg}^)<7k zRm@gx$8D=e=FJXl(ig0Z;#CFe<=FcqEp>vV*MjHN$7wB!YAiA0(c|fiHHOD2xQA+Z z7tiB#*3n4Jm3Vh;jdGLeGqsQ>RN)9PANE8`j3|BH%b<(%NbRo6PSsbX>vaXJ>Lw4c zI)8<^j4p6b3}xNvunAbVkT>;`0#LN7@tRmODLtWZ39K{}n5kJJ7M^)wpMm3bNed z1QfsB05CzowZ2GE06ga#u91b8SLb2QaIIJ$W5LDSKDT4ULA|rpSmjC6-%j&5BSktj z8eN0*EHOvN5|a43U@d-}+MpBkoh}pHYCFUAhm&jUOiN+v{?dCyM9FCJBc*e$V@>(H z?kwX%I!;{dOuORc{&hh)rT&xqhGij>n{igS)yC(xmU^WjE`%riQTpNO*%qV3@ul>O zb7AD|2i%qF@ohyGXO{f@yKHZ2AHbLZT>5}}cjj3y*WOcwRlW4?cqEG33LY$WE(5Z^ ztzNBhM>+M+_>CvLD+{}Bq1BonuGG#nOp7_{bF8txV%_#VyR2=rzyP=S z1APZ`cIso5<=hd6YkjQb3OmY~jo$J_{)%J1W?UpW(tE)%7m10__3nRERARHxD=p2) zelwOFsySqvXfhJ`WYHrYH$$R-mb}-InA^@6<+@=%t~RW3D}Gs(XMN~y^*(o{HapW> z{X9#(;mW!`cBb<2ZipV+&@rlA>|H_Dc^|7Y0ZbDt$T|19bi_~#vHjC6t$2?!@ z&R=m;i?f^l`bw6mDlNsh1AFVSmN0t+A~U3qBMy7eSwl?>lC(K%P8t#6QGY+>_%lwD;rKc9f{KpK8LyyXfgIT1rX?w*ql*1*RxK^HAn^zxerGUFn`QEhg53duWq= zsKe`c)yL@tlGDq{;_BOs{yrWnc{Nd?FRFtlBcsZ3ZKFPr>k`F&EU}gv(r+?yduG#7 zBam0|e1smWt$8p2!lTb~mf2Ye zaG4B%ct33zJ>Y2m-5Z0APYv%7!j?gM zPfPaH6`sZy39>k&(3@+-JbaRxy zr1}`0`IHUJa$FBn#G_H}l^?D8dp|o|OrL|SO>P~P*}Q9q(o{o zT?f#!p@N0zI|JrNU{m~&T-^PyLNZO@Mrq(kA*Q_1rO+o{I7NOqqNj*Ht_bS&AzG!1 z)2gUYLhFx)#u$`NJB#se5gf2_<_!#dH5tlFex{KXW4qd=3zyRR^W73l_v(laMKctW z6dlZU-j(!J!(>yR>i>6mUyq7oH$3kq+SZ`LgRcoM8aUlB338hDhz4RWcu`;ZyrNx1 z7cIR1!i6=2P4tTkCV=2@#$Y|!Lq{urazf;`OXRUSKwpe&>{*aav(%G}$SS2#aLjbz zyC@%0y`Yh?t;+r$N!Uyyv>Wk+@KS@zx2>4{THv}ezBC)|Y%u(~iR|y$FoPFV!UH#n zO|Px1NH-@~e;E+^a#7HiXQSf7CYaGjFJJ%z@Bcs21w&ex{50ZmY1GNwzG}`h1@eJ) zWokyof5LM4yh`TxRPOcL1%4%!OD98VjYL-EE}+V+1VcrO&J~d+t^8_sw)|_nU!mwg z@lOYnrq%k3RgqaQatuGZSJXwVG*`sKJ`S&z=FL+e%VMw@yhPsq6sv`s?$(+}E6u`6 zp~&9y%RZ=x0fRya!iqG8idz*l%9bZlX!1-hg(QReiD)H5%c$mg%+tZdaXkfMC-}X zzb`&Zhlly^$irR3p^ul;i5A^lp6!1BN8$6I_D3=?+RO)k35$y6R09SdxYATcNv_bl z5|Yo=UJPT7r(WIJDYsjowlt^R5nH$f!>(%$mcbh;@Zgza$)h_Sp_;pX1p^G_;XkoYC-DgngvAPo}LLFM%VS zzQ!E3qD13XjA^NscSmAuKkLUcArd&KkA!rC(1$K#&x2+=X2UjyycV+-{w+VPe>bB@ zOyV;;9HU~g(l5!G6Eidn1u3Sq_nbfbYDTvG$TjE)Q=}-$#q+lnZ{FCHSdGmzSCrjir8k4ve zojm^cY59bp(6Np$RITZYI-5F+Ws}==(69U@2xLA9$Kp6Ob5{KvTEqLoNu_wYLwa?f ze8fh#67RhJ%2A;?Pc`$?tx!?;$N8YHA1O?i zD@h8LoZo;f5%?Ymd49mcEOIeKTukLj^77M=;Zc z_*3lLMd15Q;yHiM)pfWa?2}@`FNacT&6SU7vYX?rjP5IvB_(CEUsMDs>m@>4r7X4R zVPb_H;&m|nCnsCoMWeH;|FZo30k}MS|2b%iyZ&RDuk^czD8sQHBXJy6g>Iexuv{I)-ZO`Qv(=Y|o6PXlebkO>f<=Qf842L9KkN zuJ+?8vus`6hct*9v%86OJf9_W9Yfia-RMrVqf&m^C`;ghyM}*uR;S@oFAaH|W`NHE zmGrPWUFz~u_AI*rM#*f|-Ar7_?Hga$wyjrrslMlj?F66n#hZ|e@$Xat;uTlb7-UOw zvzvSNdK~u9ALlIp?~%=A$kRo+_UcG4fny&)AVK>EY5>6zWlRvnWyrNHQBz@R7aRtR zLyz`ZyG{y#6!Xa{!&0#00m;?xV96*$NG$v-9dr*}BIX9kq<8;~4?bMGw|3|E&0ou5 z8luXSi~lN<GNy$1~Ic|x!?QjFC9xk?0*j>_>)D$$S17I zXCD4{T@a)^u{}%eOS@mQ#ol}(1vjvFoojS(T&2H$kxs?$qR9Z<8$97B90IZo(XZt2 z$i-bYCaK0i7HY1!mmnXv@`FipoP!5F2 z9SeH%JBD|OIDfX|Qo{SEBna98rDd__xhwo(K>Oe$ZM6`-eGaBkbR8`=gTuoLuaOJ? zN~PvTc6Z=9uHyenoeVl2EW&c%k?Rru?5=f5dIQ#SHPoJE*7J`1H8Cv!g~5BjgYOE< zF20K)rx+kCAS+1*>%kz3J8^bUMQ34&|5OdZ#kt&~l537|p|5uNo0W;g*uRFJPDx@SH6PtTr-Le?vo)+-V?WKa=(SNw*=YQ5h9~sUsqIp zA_2lY%nLz33^S)NDT<(T%h4hqcsPnm|7Lyy0#}NX$W3$!&1@*bnEEqi3BsN$&3$?P z)D;LFNSZ9bT3}Ux%EHF|`PkBN>NT@c9YRn|@h%oltvtU|!{rFwu z%-5_!e@Kb$9Ut!io&^{TfCK^Zxq)g06vD5|O(1xJ***v?VH3RuL0uWo#v2L}%J?qZ z%kx7pm=*=qELdkk=Kw=L5?JCc@bl3c7Z%`~KE}Sy>^yTVI~$CM#2#b6v9MVC%lL3k z@A-uj%GR!22CfFW38~pOiDV7O)oH2L%u_622w0p%lJw2lb3Zu#+kBPca}Vt^lL!CG z3u^^*zM&QA$hM_j@Kc~=$TTH5c2BxV;`%8#*pc-Pm}0l)*pn%lU((TdY zQ!c1+UlUFCW=5c+(NA`9=nqCbQ+Y}D+^AW_#VC}Tui z44hGf{Z)5r1#j~hRyLR2qLe9jdYu-^Uc~ZPrZANXAmA<8%RSlo9WG=@e;tb#W@D7m zqKtMf^USByQ$0=dX!`nT1H*%M(;jXByrx%H#vW_l4QXuzOw zs^Wmyb-cUea=Ko=ee4c8`{zttmEX_Y!J-_Dei8ox;LG}L7uv*W#JL=$_PjwgsRYBtZ{1Nj;N+HU~QjGKS7J>(4b{Bmu3-*}M-vGJE=|E zbS)C@6u}v$h?xM032?V=f(gBpG=8SLI8qnr})BuJX0G5E?4E$c; zFWPlS{9rlu=w||WirFT++z$*AloPiLW^ZFJ{nfhPD!i%0EpxG1yvWguqAhFck^so z15OXKfa#VXco~sNQ&X!h%kO2c3{h+Rz$UT0PetROzGx=fkyynBZw<~(_=@ljKofq~ zjO-rh!2Gha-H&EOp?K{Jd#6U@l5kERck+7@(73v~9<_e0AI8m}F5JJ1 z>}s+eX{MzwAKbNHq8^9F%v3IU0%gU6m4mIYt~?qvO0Z%4rrbjGNxh^PqSM?ax&N-N z!bPVGC^SG(Q|_zMfqnR6-^?V(b6!(D#7HdsSk03tqpzswT?2bKHF+8uMMJb zTwIHZ5`S2PycxgQv$K(W6{sYD^SnEfDFAuYdFS2au&r70=;=Y<3QW+gL&1SO!`7`HLfk`U#va z@2xpIyNP+e=ihzQv9x;wCXHmsKTl_#!|_A9I$W^y>*tm0U>f>4goT|uV0igMcM*j^n(?DG~d+pPwwo*H6M>75=$ot0*e9 znSlS+v+BdD>36lu`UkkV{t*I~&5U6ZnMh99j983xJbSU#WR>u}wjuZTPoMm2JMSh_ zrNBM z9lSlY4a9$uq60?z&kcAXQiaoQu>{){El1{=pLv5f^CfLa47EmdvwvbVC<+130%qTj zP?QlExq?Fi6AMeRVxS<6$o@A}@w_b;EMkb|BO?gv2WMiiCf#;+S6lBD{cj)B?k-z0H<*WQlNohTq%_nM0P$2%YrqcWs{t%qm;kD7!EE!=KsfJs5< zh68v`J0f)*G&vZ4jc_212QWHX<@}E=3BA$uW@c?|BA6M#^SyKDPBZn}pKu0(TaN|U z)JJ#tWM{)o1{Mrja?6#G5}A_nvDx}3vmzx36r%i2?VD=WvfT$XtX=K>X|dwvG}1wN z&tFk_8m3mJGi`lo@b?vit;sd-cb0fxuw9Tnv40GE;#l4ai@ZIC)S_jVw+CY)*a zf{_2ybK3`z!YAVLqpnr8d+6El-1$$I$&jp5Bv+Is5=>T7O$mUy^(?u^Zf9N`_5gSZ z37L^m-M9hsrJDY~9I1iockQIgg4-UDt-B8j_+oL)6gih$5ewMiC0*tNiE?F z&L0q`+CMVT#vNX-Dc*bUDKgs3B`GiM4R1Gq%Rm=ITeq%XPY`elhA9o%%hu0O5d{U^ zyZxWb8Y-D0Qeu1Qa@UKQiAh(A4?|f6H96j)4bo6>M1Of8j7DEO?c<>Z?->krG=*~l6)ISz z=fHdyTs}bo2)-%b`l+ul7eAuNq_E*msBv26W6-WL$xVb!b_wFXn3%_rGB&gG7-Y<1 zQHF3T+KqB)%HYr8&OtWcZcF^z-qAk)a=g)KDGDy2w?Qd~8`#{obPJ}*aFZXuOo9g< z?BU)iHp0)wCrlHWT2)1m+0hQpHTp2oE>?p}dUYrdWC}>vlWhu=HlpNV4R%9&@aa}k zf}9ejjJmF#9war$wHCRr!M3STzZHxj^i51Yz4E&YK29>vAA-n;Irj4tex-yu2VCwh zQ2L8Q1MF^F5l6(&aokuaze}_5cNDb8kZHZ;k*84laRh-C%v+HgJLB{0V3el2@ueqh z$$(VAHa-eq|H-f3%z&x4W}Q1ZFDwnPqY+`y$w*7Pp3a({R+t45NIm3#_MJf>ZV$o3 z8*ZBmK-fn#lu%R_(CMvT%QH6ABm# zN(viJ;L4)I1?jywNF?L3Xw{1Dbevy=jo}T z?gPtlIFlgu@HrQkxQ7QHFgXGE2REA6NAmkuO922voe+%My@FS)QcnKq$cy_CAP+LON z1OHO$-~g;^L~{nu{@0(!J}-4cdr{DaL9O}WaC+&;e~#1OCJ0TDT;smp-XFG&7-$bV zXHY{;zK+xQ;Y-wzjOv`i*s*g>~JfEb$pN7Z+SbN#mO zH531d@yk6KBcW`qY)B~^6VZeg}`!d{Dcf{*ue0Vg?cPdcD zF>#(u_mJwX`9R&jo|0ETHCowGW0>&F{-zddKy41If0dZ9PaxY_un^`1t7V1O z1$?%%r5=5!+K!$1^}OcbVOgCOYOW;bbe3?(&0Znnkm`Kj*lg4K4jm1p0>wJ2tU?0t zerWnRZRe3s6h%`7%`uO)mw247);{N;q}iE#e}MRsbU&FxV8e%=ap;c=x*Aos==lHC zwtqc8)7bQEqpv>DutBEv=dQCVslhUTPCqXF)7|5qsrv5W*y4 zd{;Pjmh3{h-H8i(nJf;Td)n^YX;=IyuAS07%dAY&R!jeW*lFTdsvMJCBJyIB z-&N?y95k?vJhw+!Cc-K{$oIvN=fj(yeHrIRGTNGv2wcqJ{m0Mj)H?3;+1)i_y3~3+ z;p?dFX?4NjpWXRGS2%5gqAyN8nYYwQr>r~fpkABXAWWUgn`J&keK)_bi0RFYZIJ_2y6#*(tI_8aRqzb8xij9?2 zZ*MJM1L%csopmeCIDpPeByM3*v8>^W2grBgtVJFQ11I$k`dAdk|0*hIHpRgO{BtjO zVt)w3NVp=8(}aY{u+(?lEa}6yQj+;Xk9e8+noZS1ba}md7Xe2U{%A8GkgO-M6!k&5b(B?*|Y9$9l}=O>{&cqllkt+1*!l7p~CmTP%_|h z;*^dn++tUVA%k=7DydI%*OPG&GEweAUlPnHcx)!{4E(AfhJCY+M>sIIB9qbv$t&(1 z`l=k1mPGd|Zno(zi|j|iC6BV#X;xEb!|Dz-Ot_%?OT3K_kT<^H>{|(bAV1*-M_3)w z70aipSulj1S?ZzBOH2FclHe9Q!Qa8xC~!VXVJD=dpzdat0Q%;SAK6Q?4KOY~1$b_H zYc5}Z_Na@*tosYGT0E4l)-tbnFvz3$qmuzX!$h-LZ za_Q{oYx?yYW!p03c!9))sGUPZ|N5KqTB?y-!ucExzi;2ZMcWjr zya6H>;2S$_dO$5#jEDaP_tS!*msoy;6@W7J4*1cc^(UI&b_j#Zi5|J} zwQR$RI3S?Jt;2YUSVBOcJL3}B&^8IE60J!YOm_Sr`9N+!h<&SqL0ugXDR>-5ydbPI zG$EjR!7LBhQv=Mbt|q}X6Y?==yumQMdIga)e~w+B5J1+zL^MnZy8ppcnRrN=^W5jm z;U8xcA_#dh3{B8X3*(%#StBwm+lVS@exeO98HKt!96(>-rC0gwLld{&yG%gy1it`` zAGPHaGt;;g1WK^s1#cq{o{5&*;0NYKJ}~O(>$~FWTHuhSno3Pfz{Hb*pN(Ws2>>P7 z{P2+2oGtbi!=51AHrHlr5$O6noOdo^+##ImY5^J5PJ%LBZiFm?f3Wa|}fKR-hO?8m2WOEJ~cTk`JwPYiP zoh>g_%mO{Z2eWy$_ea;z=TWNlK3Yf0xkm6i^$t6?-96g36Omxs{8f*V*T?4gPS1(y zL)#?cQR{rJA&FZ`BDB7SUN*F|%=3It!Hx6G+-Mg@BN3hsB6W&VJRlvA!H>IE|;Sija6oEa7PM7K z$x+Fxg^>3^j)!Fg%1ud_o|pw{MzgrOZqr{L+tH!%RO0U3^=5GAS{1ioeKK7$=*)W{ zWOyG5S}(b=&A%CV24gY84zvq@fls>3e3!F<2s1d-aK3>__=ug<*Vl;QBRG`Mz>9;h z%X_8_R10C|jE~li25Pa;!Up|6(V3h&F_HL1wK5?aBf861r;`wN(R?&CD}d+^C$unZ z#KVWNJ%=2Nwmh_Ws>UwKNptq{OFb@WgaCkh7)=SPBe-pXGf*)a{=Gu=u%v^;9vc+p zD!L}I`tS}3Ocxh`;bNF!T$d~#`H z(+Pg`y!TIHVgZKefQ`bNhZq%?G{3kAIJHz}oY=FEtg&_^C7`fLPRjEkD5Qb{S~fB< zI3th*Cboh)H0r&8bPX%2^~;w#-zG;Ez8M-iXX$g%+7y~XKdu8}~Ui-DFgh)Ma$!Cumh7w`7UJQkHgT@L&?hT9uTD&-PQ~5qt+*Z_nCm8hZo|sB3R4)kon`|e#3n%ZO^B(eb>)KH>z`OCB{G8 z;3i8BEpeT3+}!YnAQhGzw=rQb(tT~2#~?cr>u|tcfXE^s@@ET|!>d52j5(f3Z0s>u zIo>Fp-3fQWo&vksguybbF@9Fee49fZvV^`3>RXc zin}Tc71NPmxmEM)V@Km@|4$2W-7kJ~Z4CG3(GwvvaxW4;b3IlKy}ngC93!%_^v>|t0{2)q9wNmi-D{CK1R8O~l_+Q1~a z42vK3K=ZT!nT6KE+VXOt^K@^CYlsZ|sIY7iQBd<73jUbJ%YDaiZHQLA_BR46!F#nS zi9ydQGZcgSQD#GFQHP979*FSEPU(H z0cZA*_+dLa_0hkdh(D!tZ@wHqK6h@cka48DVu!eZ%18B8k6A(Sf$(rU_2V*3jUHw6 zn0Cq@9x6v1vIumcB`4`aH2VT*3Q`_7hc%46tk{8?{mjb1)-A-i28xJe<-`^Xr06g* z$t^7Omq?b#R^h40dEfn42zjp;mtU7fwQ+7vX({0wKjIh#XAWNMRlK{MK3l`(eEaOA z;a2+JMP3Ce0gYTPf5rm3+9)-ZE$aAag;JeFahB)JgzMT&r_) za&yIDG75}6zS*x~BoXPkM8X}#6u7k}sia~G1N?eIo5!%dq1r%M@BVvWE6{S}sfy2U zppwAZ2$~l4&4lxj_~zOq>5xK~Uq=X7bze;}9vyfMhyleZA=^QkM831?Y;(Rc+hqZ| zS9y5{&;q@<_>N^9`>W2EI^Z(wm#dA=j=@Nq@*A_$L~LtOIEYGxw>eJe*q5!oADUMG4av%YahSX*OOsR1EPdX z55}dxG|`~EpQdm)U*`(&-?66H<8%~r6DjdPGPWWRaB_3!<>XxCjk=tmETbqKETww$ zDx1)5cEQFVsaYrVW(GAjUfHO+y}Ym02}ap?5#WLl=Wq!)?C?D*{8xoyMR}X+O|+<8 z@Cu6b6uYI_+s7`Qn~i~5(Zj;C-bCT3dYppAzWmSK0tC8*4$ZoMG|-w2)Gax ze)zC0-h1&d(gHlB3p1sckgeQfM8yM!dVJxpNn}{_Sh8?F(m^%$cKOJ>0HwVl?eDQV=RZHqj}8b5!R+ZtyJm}M;vDy-nL%(s1%$FEIiM~4+pzfFq9O1Ihi7zwYM#BOEE@l8=95MSZsuZxBm_@LC z>0Wzal{r=`JY+sO&V4CvXx7$bu+pwz5-Q1qxY|1Hr2eC+RZcmIDbs?T^)ul@| z$H+t|N@5oyH2xInfkZOM##|i@-@l`C?k=vbTXVW>LK|4=C^XG%{I|9o2_7A|_uXcv z(Ty8QLK^iWya|^Q-W#2H@oiG}Rj41=W>|FVH;So-5nl9ZV8PJP(7ddzv0=r^V5D@L z4*KL+^!e{!Ayij{H~Gkj*^whhU?i^M9yb0H=?&aGU0htSZ8Ng7^UBJu5qUA13kKN%>7Ke0U!i$*d^X?sL5~Ry0HlJgz31LPC)&=*4hEL=!c$?J=5Q0FF zaccYLnI(ovnWrm%RilcIZycySnD~kN)}~sZ(2#Y_oP3N1jhiX{C^Be|KS3I(>^_#E z#i_A3tvd9T&h=&oeIAPG6OrXq4eQ*uSLDk#*Jp-ZN)X|PaP&>h%m8$&LPQgdpD7x3 zQejN(6x{s+E$`TsI1yml9NAEVGx%zHJ06)4=3h~hN%!&%`I;dd5<}6XE}aNV)iKZ2 zdKyDY6TLUR4-*U+qZBlX4pj$!-*nur&=nJjGkG)jRAJ5bXl1fT- zv{aiukUJSF1M{iuvc)4(c%nsA_l1wIZ<~v z`)&c8s4^@nHx)D@UT9}(01mT<14dJkyYxiEK*^0y|+4@TxzN?yw3FHQj>8m#>DtbC1D{ztRB*64%Ip( z`A!U*Q{9cI4A7;q?@i$R?7<%Rh!J&o=Y4mk!zSs2!0 zoO=00*pm+?`Nq2ARVI>N`l9i-v$90R{UiDOg6w)jx>=`y^8PK$_ z9C>?%)=RX1kN%k;+V8+30XLZNN5d4^#?B6P2Q)P)s17ePGlf?R@5xom=s3+h9c{y} z%Sw%-R>oKr_yVBU{>}CNF~Tf6nKwBMs(IkzI8YE{5qUwKVAk8h!c8L0v$jU*1>)h+ z=WL`xxW|FH;c1iPg`!z4oM=>r^&1Q8Y9(0QG|C52o8TwzjfEE`a@R+?bK!y87#{S)R76UMP2O zMUmR0V*_(vrgg^bGsjhR(~{NL(|NZ`NsV zaG0i+%4Vv_+kTh)Ir;M{8#OKzDKR*Z=*9;IOGRPg$!b@xXC)!Rt*|HVk)hs!d&Oy^ zQsn&Og94}i-|?h=LYR&K!5@8veKw7SCMY*Ix01kEf#0D}fKZ(1u&6bD%Kj)=;lw3C z7}?+OdBk2i!*kJ8jCmyMnZm0ys=Ww`7%LRruwST`e(UQ3ElPG0Cd}{BNN0^wppTYT znVd%Y%n~lA9-ySFs~Z|7hZPPSd#QX$1VuJcBg)ImbL(wW<%;a;>r2ke48}N1q)hu5 zM4$HVK}C&S4y-LoVN_=9)$k|tJkz|cwDnWFwrQjv6sJV^QHgqpBL?%2a&q1y+f7eT z2jtY&+A0C`8}+D?eh1PF_&njPZ;BHMl1MOea#F45q2gXVO|u6Ftn~f3%*@kvy@hw> zl7|2vrKG3J*WcY=BZkV0H_Ft~5_63A;!=SI5>Bx=k3X9e^$BX9BvI<+`jI#DaVc$< zV4AG*k06mtRWrVMGaSEz2UzGhLIz^=dx73KEAR-r#3Ws*<=6EsgaISV0HfmtS>a6$fygkh=!ATQVEuBl9 zug5jKw6c47yVkz5Zw#cyPf?S>4q|S+<@f}%AmuK5ATG!rFtxF>Im|fszSLZiMQpf0=rZMhKUO=czb?nv%U=%FLtc!DDaVUAbm6{8~cNi=7wB5 z|AWVp^#3rXOEey)rsbn*Waq>4r%&!U!{ACw@%q_fL&4R8f&vWTx&hj)3UhKg`$J^h z>4A2J)y=miq$PeiE_8*x=hM+(DLhgDKZsocbV$5aN``UN0cByM2?FUjVf@9EchIE- z1rLsQFm^x=P+o&-{2_`#a%K?Gfk8zL16`oa2~V3&-uJiM;=vdFDMPbTWW!AxiyOJh zMq+g4p4LHGXRo`#Mh|E0=cdmxv|h%pPfdBD`ukv>*8+QGEE;?!+RaUDZG(Z{Vm*g7wsw4f1UzMI?%J6{Ec+Q_6`eq208#7w{@onY74mh0 zVH~K(1w{B%WCO-B9CPqD%_D7M#!5ngO@LOWyt6IR46;nEhA-dRJ2{0R(TCNJ49H(P ziZF!}0SM09?)oU}B;P~9JVq6YXa#N#PX_2a<^)|%R>Al#<`L16Irl7sGC3qD*e8VV z2W0)gaOgwiPuIi~%l7td1|(VyBcUYa$m9`SP#40gP>ntO$9yVFbR$9vs!{?gLB|93 zMFV^i(Lexkog+G|P;S4ZnXfaY!blNx9H*+ueK5lvAX!)0lHVz7jc0<#j}{9e0Rr@F zxc*ZUhJ#SwvA7)xmO{OcSBks=_!6?=&^LFi_LJO&UFy&kTP|>8cTKVMGfUyx-6lCz8MEOYO%SBB#zTk0cZc?%)NvGQBWLTX{V(9n> z;fZb9&NLmzcD@Y4Kcmt{9SVFC-$1lvA!7wdfrL*HiBaW66r}>UW1CDGdM{tzTB65w zdvH!|bW(gFS3`<2txx!Ok%g+DR4SdPnotl&NaL_Xj2V$Z8_@mBpr5O9bbqCIWi^ul zOPGl!8#6{H+kkJ8vcmMWb_ERPuMc&039?0v|NI%Mb6AYy?V>gUHQpN<5ipE$u0!`m zZfWU5xnyG_Bg~txURx`D%JinVn3!@#_>dwfLf>YbuLCP!xc#9P>Fn%$fiPHJUS745 zBH;8&mx?E_CXxE%q)SN=;02UKc#&{lr|6Zh&G(}rksIN~Sw&=FLP8!HjLM?DuE<;F z_mLYF^mKK1GY>2=oVqaQQHDbdi{}HN$bHpE)58&0ah!Da^@SJP2AnRGyqgKo(3F?h z4#`!2GBK-)h#t3QmToCoNq$Gq2hK!;Y})8XDNoOmr$K;!38oH53{&PweT6;uE~=`A zechX(%!aJ+r43cC>4YR#j0k-QivcJC<|qCv8!KL-NG7CHwTxY_FBLW2H9GSNH3c!R z6j>)qE)a7Vt9_Dkm(1$f$OgdDMF^jmt_Ma7L?0N5AC5)Glcj3$j1c#+L{L)By3wJL zCEt5##S6)ieC0rGcw>OXr^Q8nJQKv-GhpXV#(O!M9)qbX2CZVX17<}AXTetw1Pm)0 z^5?CndQ;VgKxAVACUM5%R4JK;R#VPh8pre8STn|Gy;QVAG7R?Qal^=&L*#h3@{{bN z+cPsV>;YKwd)C zQST*vRNx?GRA|1+V$84&|Is`1hfmElzHHs?_2uTI+qXwDnFFemQ>m9}-2c^sq}t=| ziq(qebTSuZmJR|Dc|KfUz<#3do1D%RRtK1WJBBl>=kQ)EQcHB!x`kur662xw*Idu6|Ja@Cd?blcnJfGy zXB5zdp&@209_$rd9FAG!NSFqAD*QPZiE9O2IjEH|ns0VXF`>*W_CaY~l4{fyyF>SQ9xfwm%#kR+Ws zgtl3^55CK80(2+f(OYNQ+1)L)xL|xZ$Sn>e9~J{(eS8I$HVSA!f}*QaXH$191MfN! z7Jx22tOrD8KeIqVJmo)nX2$l6b}Q?*kPeB)D>)tmc5uoXKLDOpskb1pZ3x>5tDZ1B z$67`tQMjVS<7ju^X{_mqVhXlN=o$RqV{f`Lel#7yBu4NBD&-%irZT=3U!dIe8(9L; z>ozd(VxIm8`A+03S_TFYddB~dU`bb3SM^UfMB}d`0}2m62<#vAEE0Ph#yFc=osrZF zd(4l^|DtlELS2h^VZ?W20t^Z?5Gtwnbu!IeT_XW6(;GG|$IQ`)>FQ$zrfXq}(NkZARv9Xcz{b1M=_p4UTLG^bvf6e9l%nVPz-MY(9u35EN z;O=(aI(ZdNnq);eU<5vujDq&4wt$kVCj;Pp0!=)m7U??C-`*4y)M5_i%SU|4D!W5! ztH7)%;Ize9PLE$=7`aEz#BBO6pW>}DlAuV0sTRA3o$fSQYlR<&t}XTXfq z6lEt+?0LZ;4^A8CzQJMnBn!Fu`39n?}I4 zsH9}=6I;GhT<<h!!!@*nLQ!F^Ce^jvSu8q|8`0ywDcwyEejZ z=Qhl056R8#u`!F5fJYR=$Xn(vPEe$T0Zk=ipFQb)U`B~ zUO~$vMa~3zKI%+qoZG4C(I9Cf8KZC_{?z=}_I5B~@z2|@Vo`kmKDxP{y-67CB%VL? zlIsi}?n8zLG_O=n5lAi~u-L|I2v2mQl72JMbh9?F9bIlKb1>m8dT0B;$ty;T_Fum9 zMML-yM^J()(bvIYC%!XHU-U}jY@>?Z7w&3SQ<4voS!^{=Y}ik1jS1zKlIFy$rc{X!=-w%X5YWGHR(hD zp?jlD66lTC=1McGgYIZ_fSZ#u()^0`o{I38T;s^oJm=-sG<7?6NFNhte)9>Z>2W6^ zuaQS_&>INTi?yB_5~vP(kg{83NWZqLNbuJ0Duy8&C>Mzqn_5x^uZsy#0d?f7{v+uWd2!KFyH_)(qvEu_TJi3-iBe9=t<&_Tr;UpM6(e_4jdy%QdS@e*U(7w&aIoe{S;)PW6ye)%`PlCAHtLy%3}G51f`dKgRt~ zR^sZ2HIXWrDn@4Ojk`Z7(H}ZCJa*di2!wVi1+?LEHRs|(D%NK z$+gG(8p(G05M_<2uwts-M+;tu*$+FOKaWly)nyOIHWhaJy#>%r)u6y1*8Ji(A5f1~ zjXfyZ=$pY39iN=pY%Mul=QZcva%8EyG;WwAo>oLkNq0(+cTN{dq?f z`I=Hi6H)2WRj;|H_hZu{>*JLSX|OSnc%536ks4K3=Aii+Dmqolx^$*{OB z{~i<<{HZx^6zVSeX!Yss7P+agdy#`iF|%!(bE?FyykAwM!>Lie+H@i2*pa9AG2ib)B-IWekujwa*kb`DB+0a$O25JLF`1S z5mt9!BR%|8kYrMCk$3d!()6s4*a{PJWKkFGCl*h&`07tW6_FC}g{C}Y?!?%j_>I-u zO4ins96gFrH)v1ht7hN)`PHRA?dG-s+ixKy7nVv(J+3#?8WxN_-*jsH>#Fs`y=B2| z`sBZLSe_NLDD9akaD4Q)KdMSVIUOE*o>-9NOI@+HKI-kg-fGQW%bq{?^a=jByO*m= zgh(Vj?%w+?vBQEGy&b<v)+&e!rIw63*Y+l+q+S;?^wY)24IapWLc{fBC1At8;-O zq$U9-2Db(1uco%YK6j+MyJv#o(BqE>^KH9EE)o*Ks5atO0B%7f0@~~=0~vStu6uVh z(nkmf!R~x(x5dTf=!%u2P~#B}DqHx|!*Nj7&hMR{Ym47txV75T{|7C!bS1)mRf@b( z8EKl_2ZN~h>~KDqY=i~u%hu%2s+I5W+QdHdKK5&HddJpz$>lU$JLeDKn^!9)72{~1 zY2Z+o8r7`|Ds+$Yj8ktqde^Z??Pi+{UC7#q;Rfq3TU#WWO_(lYypqqh_Q^Pecn1@+ z!89JFq6}t?l)s(k`t5kd#A+FCZLT77r;p+ftFs?lw1s4HefxI4;yw`cX%Fecx)hRn z8ka{J?)xx-tl4-3OBa+7k3P@z{uZ<=z3qd|!y_Qz-)KGz_w|gd%-JN&<5Is-{JFrt zo;Rc3zN*{qka2WxcN0ziqqxY^eQ7!c+>%pU*~GQo&NT?`cp~kVtQe>ItU$Oh0&9Qe z<1BCdRI}rPT7916Mpdpn6ZL^{Vl7Z`uO8huP_we)|>ii6ezj4)&j zdR$ANEzccU*rR_3{&}0{PWarFDmaQEy&<>%9Qat9ZNzs-Cb>=eRkLZ{8f=aZYLtZA z2>H~Rnxi{4y741m5wO#0Y&kl%dSxErNVGNOkZ*~&KxqpuJlj+eVxlWQJ{EdcBh$CcF6V*6gDU*I_)eK}RFwY$5%e|^2b zDxpd|x5X;fF3jA5T#g&cqAi6Ozkxcr+W6|ckO*QSdYJJP%gV~2 z$bQjgg_`qiegX2kw%g26GHN$R2sVgtOp6#b7dGH7(xXVPk#Ld^dfJ72<;Yi;;@5kP zXl{47^rU5kb5oOL^O4Lp?DwRIxc_x@oi);xtYk1eNZ8P4*8UfJ;O&Nc|5juAu=*_# zy0Q1Ejepaf7yYwSW2BJcx3z!I3H@IfbWDJV$(Zj*i&cK@XrMpPk*`0mU+^FihXBHU zcBtk$S3yF8czr)1nE>vD`uHv9tbDBvKghLYEQQ9ix-X*@P8553VD!pMHFlA2e;YoP zvgNxrTUqy6&lI*(G+7-J&7TuKT`rs}t!L!>^0#EfO6c&Ft3TY$syf;ZQC19zFUUGY z{s)$8)>__rBbIqT{axL5I_@=@xit6EH@&4U^#8q-TD+9^cm3x$Q<@?r&5q4lHY#Om z#CNZmn#Pej~(adPgxV^O8J?5Gi`h4GwOnO(wt|$ zK483cYSMFgu8V9MW6u%22{sn!FL4nM_z$` zSa9>NJrFvOq>=8xFOaKk%ht}$J3$VrS6M(WzXFQ`&^@%(&^zFF|Mf8Kpy>4kA&gnA z+wQ&>k6v{QaAv;(3NEZpnJW^X`Vmsbii+lqjdHat_FaHRcEeH%ZtHt&9VpF2W)DeeX(^=-zBXAZrD+OG}NHZVh) zpdHX?4Zrmq+D1lO4+0=<`EK>>C=N*s-Zl2m-1n5r?@x(eiX6Oug-JuoQufnZ4YX z*Im8d53D~|%hbf=Qn6}giv{LEef{cku8`r~&XMYk6K^A5Q;%3u5# z;261Nm}BMD=RR*Vhh_{Cz?2AOV7AbyvWKTxMKR+c`&Dhlb7FZSBm8Z3sT40ANDm-C z2-XURgb#{cz<&bl1I`6>i<(T`HcTq1(kh?$Dyw`H|HE@Daqgw5YV4M)codK>zy^(x z5|2V=vZbx<5-t%fL12-wu%a93=~n$}KerK`0br5cgt=~#dGAN@4B7y?KOB%)b_9Qr zt5xVeH<~+#(isZW?NIxm>V6{g!#Cp8TuD{r=|5kKod(>lJB-Zav+CqmG}!&ePKp0x zrzB&jzv!J>d!L>aMthM>)p`oWFsz(f`uc(!M$)J}phZSU!^y~o*>3CX*zsbH$bTsM zxpR_$_KnUE#$aftL3xez{Z3cc;re8s-fZwhzyuK;+0@xVQ9wuxaWKzWYcHSmwYKZ)s#5Eui@y|X>R7=8wT zaqxKr8H$Fq!NF^%E-A1aBLDNF?f@_Z=w^ZbqFDt_jF%xdBHyX4qhsu0C0FbQY&8W< zFX$)2vaeCuon2e?VTc)T{e5LkT;X0QVS(O3u!jYKOYZ3C0BD1U4FMGPT!h4USRKnh z2=NLrI#MVW$K=4X_J2z0TkkG;z#ADfU01If&jOgprhfo0ui`s}kG(nO?0`w+7UlObr{!W^=51i}f;*CuypySvt z?)$JQzybl^#U1P?*_zZM1Cj+0KMu0#{)%RJFCn{yv4K4(F67c+{k%lcTR;q{NKR%& zr3jC}bgG!k`?=^S^4`6B0N_kT4g;j&YBY%a3^5OI8yZIe?m{$7EZ*$w5Oha??E&hO z!ZlA!^!wxzN;XuNsTwKDu?5Jzr-mxGSu`$t=gV&5O z@x_9VK+%ed>LBB08GJ_rUIHW=o)u14%$o3H+yxjJx-b+bz{dc~3A#?x;hzB|ht~b5 z%#ClPBJ%}^Yi?#Xayb`rG!&_|0|ShE_UwTaw)D4Xs|DYGfH90*7-7LAEKG=;fCma` zjDw;BY6z1cAp0N&m0UEu_PVz}+02)|Y};X&{9e^_c!Gsz%(Csjoc{mB%K|-lha9yI ze_Rt*3luZl89q(ua-iTwa6@o}FcCQcLNPq}pc@P|Vh&`0rbCO91`F^%Q3H@0aX;bY zP{>IM8971{LOWhPn2w8ET*IO{G_#F)qtKy>VW!A3(d&rVgogla0Di>)T`@>S@ZPby z(Ncu82TUYB9GYwhC1Bopw;@5T8eIwhNdlmDfmQ@n63dz7HcNzDl+SpDTn457fULpd zic?~YN+KHb072KeZ=);batw7c0jLd{1N#!;0DK*y9_ajx?98j|G;p{hr{&g{NN*qN z>baEEV*jcn+9L?QG4g0?0-XV65+wSw^gBQG{Bl9;z+=E$gsc~fm|%vW9EQ>o0TWaO zmtG;{XJI5kCkl?1Db`L;b0s?-PO2n^N114F&;Ydf z-zMW%mkIFQ#)iD!%w=hjW$@EKHI}xP)(hC@q0NIZ{OK}fK17!Lw$Oj^cj7W^Hk{)H zeWa3@r~<&_?WYK-`*z|4+jhhUfJoS*h`3MXSz)KyeW_L{tf%qMpFjJh6;ib>QgI=8~^Q_pJKY1>vhs_6@A<}gs?y?u)zn}l4E;MLpuf{U^q88N>9@ZkgP zUj>2PVBXN-hpWU!mZ)UJ_Qzoc-6FaLjS!_EYy#?!q89-eJ2=Fn>XZU1sHtmldV9Rk6qg=GNam)@_{Xb#4b#=`&$y^WOXEzwhxtK~LBTY=LLY!U7i zFC0q^^2w4uMNi$M5q~|ve6U!>m@^}1z^#F)CZKJz>NmRLl#0&Fui5L(sqfv9OTC=l z&U}YDP`+j++4xE8;Jc5;JlIkb6VtD<3nFWLcQCh%pDMNHHKZ{N7j}$cbc;#S@+x() zVG6vIZ#Md0ei_0!kL2&tYugZm9*1Z{gidb?Hay7KqcwulY^ku-Bk|Sn8u>lptZ=)$6ofgfJ zdlA<$o}?KV7ejw3oUX>E1{lGioIqZQyGLRUBD|!r3E~jK9}>}_6djtNYQJ=M18scL zQHx1!_`WA~<~co6aNdc+)nQ`;*FxgtL-^j{mCwvXa{cv#{|cJ&2CMuK^S6?kNdemp zxwWe6B^v+sp<|Ikt{Rk(EnmN029k=SZS7BF1(Zm$i!0+gvtc`?Z-fiz|@J} zSE3S{O>}=$8J$rR)If5vvT)-Tlv4nDTUxv8!y6(ov59I>*&n2sBl??;=y3tmsJT=* zeE<09E^yO3Qx1qzy3LR82is8f;+qrbcZ4MwbP+;-{_x==`&a2fSdu!rI+PS4?qMx5 zP&grBA`~O7+z#&d?xZK&Mf!)nbRxe9m*crLLUuqidnl)e=NP@}w#SOeZky*Tm|V0} zPBIIbAlnLXBY4d-XGQeY9ZxA@GTJ@y?6FZFQsQCQ@Ds^T5p$qB2M1D}tcM|CvMG=g zB&H`_(usgNt;q&n!@s*Sb)hRjf>-5QK6i}HrG#ZmM1xu4lU)@X3)vW+fj|$$ABHdr zO0MVYz`odPIbO0vADV{;;jBtcZY<_(b!@TF1RF4`Nf9S_kzUr%qPB~fDm;$Ubd7dP z;eKaB#lq(%R8o|GkM~(`60^^nCz9 zw`MX6o)vn8uM`y>S3CjO2u(o~7B{Ygn7rUR^QNq5_q~eQc2GPT8+~;GqNgMI&rR7Sk!V9r4@uV!AGb1t zZXI1nuvq_|-tSQ^*Wdb0yNR-PSK=ME;|1N-ed5NC%__EF*9uP$1z(clspM^Dsq3A0*r1Sfr<( zC5N*XvNqTy;b4Qym%y9g#O*TFyeNnuy>Yy3$#(>ew9u3R+SaXqL7XMIxmW9{sE}Nt zSBN(omiV%VnZswA!6~bC^YQY6$|A<+L3=a(y^Lcd0|l2{&5*cul#1-(PshwtU$$D} z5m5N~V0i(61CO)o{krE8Bs&p$%0q-L1x{|{{^&ggGCUzjEm-Y+V%N4V8=6=}^if`i zSQJX_7K`ft$gT8t6~VwRn-egHID3}hD#Pl~bdI^_t*byff!Y9VL#D7|6Tz_Y+i!kx z>FkB`(rgfgc}Al}40D!$2CC#=-@5{#Gvo%ajQ-hu1mA^bq_-yuP8D15qFlBVr1Wc@@L8J6QD`(TP!(|Q_Ky-a2=TKQAl#%CBlm#&g&+pR zI^aQ}o}T0pyr_=z{2&nUicmmsq0k--mMy1_CHLAZ2$}^H)j{NADq057Rk!{&(*zoQu-pp#G)~l&trQ zC%w6_0JMZ`McCIX&asHoY#CSb?p*=$@tsD{0nC}0@D=Le_&lW~Uya%?rw2O*eR^-+ z7P5&Hplgh13PcoCPHk7Gt-!&Jb9_*F8P}+Eu!2NffbC?P)owqDY7-vlRu3IJHi8`F z^;atjbvGhE|D{`i9FA!AgfnQnm88Jub}9-Nx%M@6vK==n*7<4D59Z5BViiFBhhXew zz};d&o!v}KIBh(A8Wce3RL|mt5WN_e;;(^XBaTHs%~fqvlx9C{e%4)j_(oS z@8`{RpgPue^e)v25u}YRH^JrAl8Yaj`&~mc};O5 zkAgT?R!fje&l#Hw`eBqm3X!V0ElcoxTfj@C~EK9Iqd7k@6T;@%0NY$;<{ z-DRa4`)VZiqcs(3hPRwNo5$%x&WeZx_t~XnXYbpBRyZ_X0Ltp#iMAD_E-=N6Y#sEq z5`cTd`sbu}D-fxWK(W^E!%vZtstn;t~N^y zJV7HSQp;NvhGa1ZC5gUPXs+QDeVd@daUkBWB29KlMTZ3QHS|1~yF`e&E$O4oM}sdo z0OW*FV5W1G#*KZFPiccT+3>F}j_-n=iJ#~oX~-=o0L(V@9qAZzU&2v21T@E)?`7MU z6ocKi~BzJO}Kv;FE1ZRTbN z*I)58yRzG@5Cq@b@Xk(LkB4Z)Qh?lx29W?gPENN>@6X)cTt(;4F@aAyI-Q-pxZT8W z6JI8sUxwDP7sx@vIk03>pp&b^>E>OYb`wO>ndb`k?}^uy;XHtjb=ST3AO8v+ot*r! zXUCtFwYycHOcTp8_xds_YZ@vczXzBK?0C)ZutEN7wKShO!Dv>8XTRFUU7T*&kS9x2 zLZAtv3#-`P&h1%k2>r3AkMv9Z>uk)uO?K(20_E3=j}sZ!SUup~7gAmAGtjXY9r zXm@IiXJzaiK)9hH1znp*$q}E>AgA7GldAdYuK#s-?#Wz2H;??x@`?Znc0;Ly4 zkkc$howc#E|pRv}U@_(-5c0{M%43)|^rxs-DpAG`;yoKUkmhx!aTBNe&t@{i#V z4mn0c8-_qgWFAUwm-AKe;6(e2%!%YT-225T@laks&(v2YLg;?848n1cyyHKA_~_B3 zvdmvEgp~xwBMNfgN%1~;Z|_F`E*1&IUai7MNMDD7jv1 zwDWA|(y@VUR4g)D)SA}$2el)Pot$lycl3Vqy|lM<*sz#R!Cdbf8OQ71 zm~jMfK6xSYgmL#{l2d^sGE+TU@=O+|SI?-5ob#pM!a_qeurxeaso-k69v>H%U7q&0 z-aN1JC7YJEwm36A>EoO9-8THde*GAZfc~uUy?HCQ7P@G0)M!!$Pm+5avOV*9`gTMAAWqu7hy~>O((KvF)dCF?~dxw>Vrgb=7f?Mop-*8SU z9&_NcO);OZc0At6AAP!qNosJMssGVJ%r+RTbQauTfKm|}-g|27>N)M{i3Dye;Qo^Z z$?IdeWc$g*(60ij=k1zyHWqS4f@g!oZ_eoPGIuxXw=aVPnI_AD-D(;dLx4oT z@E-QUtPp>PN8+Lve-C>-kbXp8S$BXtk+a}3#TIk(>pb?e%yty}X!U&1PoUWx>r-c3 z8P1_Ou(Wy=#{Xw@@BG@i_|rO@DOSPw$F%-(WaJ>*sY=wj4vXoAl4qzt=y4V1C$jD6 z-!2STU zjUD{mXPP}o%NMkRHb%_QOY!1uo|F2qrSj!%sWE45tsJQmj3^Z~PtggcC`+k7xvH*J z#CogxyKA@2gDJu%6r}PFdX{{)qlw=g9A~HxC&z zn%@$PD0G(Z*Orc0p!ldGU-Hgp#dilFy{D0pv;yj#7KIJJ9$@e`bZwF64_Ceu&q__b z+doqaTQ2*lPM$)iSy@b1x%1`?Zz&Wh<5T1JyKFu}@N@^k9H+qmtR&oKYiJ3m39ug+ z+k=(Llcc5 z=kWx$nqGGlke7pt8TKvZqsx>*wcrT`?FC@WKrS0`Em!AS!>_;{7a3}nR@Vtn0irz# z21Y<*cA`-li@XL$*0s8uf!EE=3Daccr35O8^)7^RxFd!KQw@kaY=g$8^7>yd-cbb`V~q53mIUE~H4bWu;mwWt6u_qUYKQMKH~3#p z93Qukh6@$5L|2W4t#wrpcey`|gK#ts<0v@#|El{6uPEEKUsMoLN42jB!?1EN~F76K)M7(l#oVBIM=-U>~HV&{RQW^Sg%XoSp)Mt&wbz5 z^{Z>Bx;FFt@6x*<;fEvq=~E4Wz%RTvBGXMt0RupQfYTgcNR7~6KuSj&WFh(sq$H*` zecM|Fx%*McD`7&Z3UZprzq5aKca0WT5>%Y$TM6hz-KmYOg#dzsBK|JTHS)!X(m91P znwARdc`7FNbg2rK`8$w&=Hq|l+B?t(<9M2^%dUO3x|;|z45Wa$D=Qb6Ohd5*%}M37 zwR2BT$-9sndtRseHf23~lT%wWbANSP$$~6bV;_f@ibG?i)Y@JmNmg(}{b)!*ipt)FJI^AO0 z({z?L&|$LMC&j&IN%Z~a^+4V5${0!}(x|kI7L)zJ)s;hIos+<+ewB>={uQVLH+gw6 zkir$<>I$KLd&Ca99unAe!0l~2;OEVe3MBTgO1zr^Pdege)QX?qa(*G0y!+=Q{JILA z-di9lma>guB+DY~Zdg|v)a{_3eLFMi;XnZKSI+*=a zkBw=OddOH{fT|PbtO!FY!YfGGDZF4DqxwK8dNXD2kfE}td$a89fJEitL(|uE z9g9chNtKBt3#J2*F&#*y?|v0*Q-ChEe{aQwGZ*@9Hl$4B20o7a-!LJF3g4VCO`9KV z3FyqbiKSW~eLasJXey_&Y>EbAG?uZD)&7|riWSf4ns$^3NQi=QS| zl>UhDo`Mnq>~tI)oVI_D9D!uSIw#F6&7>WXL@-S9aTgoxQg$V!@oGP|(mALIb+J(n zV@0|$EK$-PGBRkP(khX{@4rc6x^T-TYUdLT2iWDMf|9i?YC~SU?Ycbzgg@j39>6q8 z3lB8InOo19>EY5e^MzyNcPk=W8WF&5N<>tyRINJ^_>QMgf3RQfqJ4NmnCi~y*LM73 zgFlfFY7nxZR>QWLaqgs?`Q}EPS@#_zy@)FXV-XdwYmlD^cOXwLia9xLAkd>4p<;?h!I zU>ZyWMX=J+ef}K_l#>im#FOcD978Vkwz-sGQ1hfdM*o1fQ z{9qL+xQWer9$U#~s?kfj3)3l>7~#Sh{Y&LyOqF-DM@M+m>RvOd9Har{5Vj&@J?)*J z4;?fly|jSsAqZmbW<+4y@_)qT2VF*%-4+tS+^v}nPb#n-`f>Mw3tZO4MFeasaFp$8 zX$h2<3)}yuM<8F1t;)gv4@VI88GysH)vioCl|oMKi_;o4KADBb~kmkYw+9{<^ZgvRFapJwPE55>dV{V&#TuM{{#b`Q4+zv$$Y zLHWcTyXElTU%BMfjoDRG#e)DZmCd|5&Oi)NeT4Z*VI2q&fj2L#748;|g#ca595XfX zp|q3?+;7k_RyrP|(QbQ+xM#Z&XL)aVmB^ql0@7iw852aHQ)QRUe6SfkOgB7p=0erbDnfN_Vxf{{}gd1)kr3S z1{!W6Z~;;E^lI_Oe!ka1R&}q(2wR7=nCfxSw?h=zUP=S@fX~TczI7Q(uZ|A+N^|+a zRM_(%RW*_G8C$%!5yc82c>XgcFahZr437eIlrJv%9%r;7Tcjd~n(kxYXr1)soOb!z zlkQtU$5y&66C;o^i5(Xd9}9ZhA%gq&(SSZ(VrQSw1Y5Hs+?+8dt3|0Ah>OMauFHct z)ae=3yXR#LZpq#zze^~+#F|+DJFye8+p}FQzO~!Kc@=4Eg{cZ8 zOjzDX!PRZ>>v$kMaMJ?j&ccHJ(66&5gvhA%=8W1kSs$u~PgssF&V$zriX7=-1kgt` zrQ85X({{Yn9x;wx}j!;M!VDHaDoA}q+fcbMsQ^dcNp zu3F&mfJ9nsHX-n!s%es8(1`>8GY@A!?2wUc1lYF%^cL2|AY_&4Ltx$M4kluAWwi+N zp^gFB*LNpbC9rJ~k`9^yZvsykwp;^-aK87~u&~2V(xF5`9HM7MIxqvPQj%^F-WO7p zk2HE|)aBU7n#wK4iYqHG!Suy0&NLhxD9Ik_=|M;;ILKgP2pknztF}NTy_58y1$Y$P6(p6OpVqouaNcZ{B`SlrMuhO!FAR;qr?0g^bJtIW9l#$ zmh^ayZq&pbgTmnz%yv+33Z{8KO}TLG+O<3`-hdI54|iN<8Aj&pH~#B;t>grM#f-|H z4?68~A&e?~NS4sAYakZ|qD=NaOvst)+)eBi4M*{D^YUE76&x*ps@_5)8u2>E9D01M zYi6}DV;RI#P@Y`+{*D25bu1EMdvZ%3n~YK|CT38oiEW$V`oSHAOg9v;|3WsivJmVd zT2q~Fe7Dn#R^IO3R9LDLcVs!6(owXk#CTbo@5G^tyWkz~?CDb88&t>nWpxrYJMr8y zBM88J-CZ^qt(VUGg%rDGzkg2v(PAcLTKXKHp+tEn>Oz({O&AD=d-L1mdk*VIj@SbS zsAF%o>+!>Kgrg}cxmPb=w9U)K5AMq1Rj+f}Nd29#?_5`a-eR>=EYQ2OQNBDhVR$!j z7iXP2JdW+UP=SJ0`LV{RN>uRe5te^7Q`ccqiiOyrFq!dOIcz&JMG+dz)I$ z9_9|i8b8>PI3eEYU#aSJqO&6aoJ8iKySplex%i{9UF zZJVT`=M5xO1L|v*@0y};=vELx0+Qpa03v;Q(MN)+R+!>4@U43Ks_e>S^z7_;1s_HXs}C-m zgB8zAO}G*cr_8r4=SRA_*c=cCjtdQ5G$A1qiT9*Oebk;j!K?x|M>>En9Nc# z#tJ&vk>Id2vdXzm2cmM6#J%y=KD=MJ~JIKBnDheM|I_Ka3P*PeacK3@~f=3v}RFc z_jt;roF(dk0XuCQ$fv-@{V}EN6NP$Q9M`Q|uiH@f!1Fq^ZP&EM&HCWMgWU}?C~lsr z%Q+b1olciA$En=E0IYuXOVd(^esfAf+}-ppd2AU3$#X4G@=Hp1F~Y_HPQXWMS_CzH z@s6HtD9uiZ3-A`^<~O=~dLYs`{X2U7LGI&6DjWdTf@%&zv>D+S2DvBQj$-`Pkha|o zM|g%HG_XHa4Bu3VK=R<*1*nLukIE+bDIB*0&G5YT??UeYBLM(JKWHMUCtYMBwY>Bu2iw!Zt_AsC?5fJmx zcE-c=qLA~MF!J@c#CNRI3V67UyNFaWi7hp@Y3Cz0XMC(iTB8h?7alkCCH;c_1D}|_F(`&} zOhpKWyIG8VT<;{rjp=$?{CdWun=e_VGw-DuXFhiiaLkYRY1o8bosqjh|8zshFnhez z0WhJ*6rI7oM%JTK@@f=vB#QkeLRQycFXFA+C0n7Rz2m%h6EMuZ<;p@X>EATg}ihl2`YyVG;Vg{$6QQm=55;6R-OOBkxGMSQ6P zpVK;Wr-=o_&CTUjB+J3fap#~66yE}m?wA0iLlH9ABIeR+H7wT=NlhK+$bs%9;C@=B z!Pytsk;2ED6h-%8pm?V&OqG#YjGUuRbxJeWUgBs5C z0P6{qY`jy~yI^*R>z=w-j+0!y*j7?_1ezQb%PuTCX_-K%&>w3a!+wurj8bc2oMCLv-)-07Ed@HJRV$M|3jv7Rggb) zf-Ez}R3bSuA*@t;oz#~((3AiR4ByTjKSB@sv@k7pG4|vxz2=jO_fdwFF=8&?aciK^ zpy)%__OB;p@9J#76Lw=Br$2dIi0Y>uBmi;NJxiwTBc)5e^9@)C#$uC>cSsr zJKM>kx=0}jiTM(Xf}lw(Va!BfM@5gJ__x+@8lL65rONQX0{djJOTcgwW8Q|&K>fm@ zw)9AvIoAbfqNQNWAohxo;^I&S&ViJPIHc{oci)ew%O=~K=MoN)EV9Rb@euWK&ywVy zYv!x=$k?_ubncgL-7kAj)uL(psg_}TUS^J%u#3xb7TjT?GR@`DFg`L`VB&FFB6&ow9K>?dLHvay_;ppV%1!S-4b%lRcdf7ZD%#b*u zY<$(17cdnZyQuo}L zl>m?#oVQIc%OnofNpa7m-`UIgYF*8_}J19r05sC8Pfu;_ixWLNYR{PY_4>HNki@spUCgAYP;vT|~5eoPm0RM#}7P=k)Ukkc# ze!kd1jbgm<=Q&=o_9x=z{qm%obJ4Lg8#2SC#>JJgRcB|8=dhAlosMpZdDOTUul^|2(QjQX{85yU$eD>Z?s`W>fvS&Snw4vpt7C1vgFg z`FxAXM|9^T((=t+XXIArr6_%Q@7ms_G-^ z$#jZU+o7LaG!O>-yIKtHo*MoiiExrvS64tS9D;8H@@H+{CPOuxR`;^cMq$DnKi8B$^hrOPs{ulg-y_D!mkJOZyZgdGPzu}3UzybWr$@(I(_f#y%A?o zkz=lvd)~?FsPp>r&-tAj!O?Y|{feVI?{Bhc`Qu6(kL8%ZF-H(R_+5U}tjD6+33uG0 zo=_=b9QsBMhc=B!9-2`#(cjBklNs7|@v(whd$U3G9S@P2=|N8+4pUqjsIbD#W9__!$ zkSf8M`m99+$A3rk?NyV2bpYi0#o6g!0K@M?JQd(+H6a?hQpYn?Z;iM3U7c$%(qh=P zsH{0Qh{?YR=UO4<73kujLWI|v#t?*28#Catj3`{K+mmQmIpQAPww`5*5743lRLo7CN{#Z`>N;%P9IIG{@HDG{hc z|9W(6fdFK+gosgrye?I@FeoaNJKa`_1 z*8Y=XXG4EoKs<8b-TujoeD*PXE*_pYE%V-eCOtd@-SGnpJDZNd>ycT_O(grNB7N91 z?t`(e!b7OV_cx$rKV6_YIGsBos{XT%9mpVBBWf^!T&4h<3^vr)->}7bp}gK&s&j*`>VT=??D&xp4FD#2HfG*k zM!o>RKv!A2w8S;2Kz7OZMIo*FcReaxd7`OIJ{mrg6Ese_Mf)d-18+%cIf**{VUnc^`PCa|?sJ74WTnfg1V~)3M)XTm z?5raBzK&rM^@#RU@_8XkZG?e2TYuv1dkw@I#5M9t(U*O>LVAkE`Q*B+zc(^17U@s_ zjmb9L9Q*v+Q~}O@alutlSE&54UJS5Fh`S$dF(g-{%I95=!Me(DuNPrl-%I*;^bRc0Xex>$#SqcCyBHDxMZ#fRJ;?__Nov z*Iqo-ywaAF62h8%^pnqt2wfelUr(HzzGKM4e`u8t(v5g-rHn;i+{oZ6E1(-i$b4EQ|~Izk5wpPG~y zVr$j?vL%|)_aJcbdb zgJ|4Sr*5OWSV2a^v0Fm`D3KOIYMg9sU*JGHN@r7NJT1a@DHCTfZ@SZ#+2+y@B1My* z*V2eu&rAWs1Y(Y$t(DLI_PMrXHo2erT^2}sP@UB$x&Z^(*YI=V$AZR z2+92FKZvU-A#DN%%Py(1+D7tyIa0@}G~Nn@-?Bb)Y4Xmm{J$#EOE(!|SpL z3M?wj9y@y^kI6c82PPTyOa^kGXb$Ig3tw~E;D2WjbIDcJyReA9X1^BrXFo=`0lVLZ z!L!Fnx(U73B{rq|07?VKso1(0X&-g$(>zFs10oFQ^j|HuJA#TcJtyZPRM4;+$O9u~ zStVV_9!@6hE7`&s_W-OajV5LDbaT#Ez;M>maIzz{_+#^qp2xZXgxPZQ@nRVeQ%1C8aUK0E%;W-S_RHOys1lgcL>cN# z)NI&F8l&WsvovLS_r{}{>Rk2}MChyA{JS2W6B4-7;aXDhlTp1YzL-CQmw zgQl%D!?74|IKz2xmU{(6w=lfG{+`&MR1SCTU<=e&N=X~O+@&9gE~ntsc#a7gqN$7^ z+!%s^S`L@x?cZZr<4(>60$pjW$WVbBcG+TCN*Nea`=sLK$wl+bpB-aEvf={+Yh7u# z-c7LPEL#y^4pK4&7c8&^goW1FAbF51pEx2kAcE1r*7hnyDgyU|%~r#5OTpdU>Ld;@ z0OaHE+n{p5+o=1)NX)R(w6;bMbAva-DrWD$@4>?{Gq-9RZwaVGTaiLYC$t2>a8OrC z_<9`wfw(p1#0ME=1y^7P1tuoV^XLZ5O2YbxhK7dL)!s1g<795N65eFxj1X>aClnC8 ztod`i>$ET2?g!D*8uw))pt67g#xgI38n=LkBn^^>aNTne74(kfj&LE~_#BmZuk8%<ITi;PgDO3o`Nhu(=gKG64dtgN7d?DPW&Gl6XQS3i2S z0C6zHU@8TjuTd7@>Dh?rxgHwBLkgmY(6Df@XJmlA6Wb&a*OpYr4|YYg1}XcDyUhNI z>C0JJ)_krN&)jplekWz)+cPH5K;<-DzZ~;dRnyoTwsq=>5EQtq?6~bnBa(X{8akQG z%evt}wzJiq#m#>~|Mts-5KO3hhY!hPt=@zm0yhLvU4&+%Cai`YoB~}&mlrJxbCnFl zlw#`g2?kVOHcviQA;%njeoS7%FqKU(XU>5{KPD%VMlW-z&v+uoZB|uZq8y0ilN8Bn zgvK|7?H7vO-za~&oW^j{`$fDh{vD0^<2CVrIM*yl)9d@G&=sh{aUpF0A0UF<;i?~B zRhW-2K)fl`k6?mSd;GX`#V57P2*!<_ljeNij!}^0!f}Y>73N>sM7EM z?cONPzLqt=v)Rs~{i99(bo>y4=(3*N07aOl)u_&Fb9I?N^R9h#>q=jQ;E!P{Jt~{L z`)QN|WY=hy-z;xCQqb1Faa1Bp&p%vx*)~~P9qL|lK9dbMC{aEyVc@m zj?(;gP@fq~`xY}&L+rBPM}kF{A-|D(N#YX7RxMt!Y$b!5G-G6_rH9hPfo`LvQub+7 zD5KhyAM~)bM;g0~gx(x9zyc#{gb_r;}2L5`r);5 zAXAx;<6B`C(M~98^XP#;+~%3r+)uR&lxDZ8)sP2w+uYYq5s4ZPk4%5How(OHE0CN` zv7g5CA+cNax)1i5444m7xoA_k9ZoOFAXTQYcCcf-<4-r|GoPEVv$WIUU3(9V*u#}= zXnss&HhBtJW=Zd|!8$pSwH|qil{?)*KhCWH-e=r0Ytna+2m4VR18E%cDU535a^v5> z*&^n}0<*gI%~4+`IFX9v^{J-FnC9%UH+!XaT5fUyu?ZyJ^@HcV>P{TDH_cmJ0lNrX ze~taEI<79B54=bx)=sD|r{acCq zu)V;nm}2Wh3;Q54(D?*%y)3GJoEL7P5Sr;V5= zavb`8_|-1}F`=Cln6eS}vUz}ef+vYu#47a~veo`!Cc&9&SyG^R+nD^abB%YO#`A%w zvRRjZ4kk?}H%DJ)v{Wr$58X%cTAy}8VN507!dJ8;iIi1MLdHNhY1mwOs12W#&DY@N zaW_fc9@ZQx1(7!K1&ghtu%XTNyF~r6)xP<;JhhE`&@boL>f-HmF}>r4tjQ-Xv*`k~0^fUhOkzWdt3wGr_TLJ9J6z=w zbgj~GYyI}NkXx+=HFlkGd1oz_qp)x4eNcjzm;m33%7^T(=ToP_Ruk6911;9Vl!uu? z38t(`n`vETc?83+5!aESh48!&>rqt>nIj)bq*&D z`@T1{)t)1q*_pdE%+L8c%CNKZ+>7tHcOUfhTO{Ssjc3kt^?&9|@?agcGU}uidDTiR z!ase8-ZFRLq)sc+)P`PQ@0~|h*Y6=&%Q1O@`M187PsvLbt5cE!iHV24PYfIJn079j zv7G8YB#%e4CQ;bST9$JZ*5+mqq&Z1I@k_1C>4lVE7aWRgs_0O>fW4WfSg=&wH1Oh# zt9dX@_JaOw=VES)jRS7XnRX%Li#@@QYc?h5&802k0@TIwgXahx7fh0r$y4IAG{l4i zJRnLjBg$~llndNITNatK#8<>Wv4F!nMf*e7bIWWFcQJGbN84{LR{U_aF z-N#-KVuSW~&Y>h9xoHzn&;5m24tw-Z&O=%FT=HCx(Kuz@ZON3JrQx!%`y$nY$znMb zYQyR0A}i4^b#zPFnu@Qycxw8)oGmn(HhZZkyeMMnZRO&sIg1jR=W&IX+em0E>Y~V8 z$u}{4RHFPw8@t}Za$kecN+GqQ!`O}T6_454;gI~zQM7G|sDOGx%NuGF~ z-CS1SOL!tL?munIqpg-=#PIf0t(FuyVvZmIT0m0{~7$(T;qFZlX0+5t?37PLPX zKDpa|O?mk23-RmHakr9><+CBGO{iZ7f?Es>_2he5>!cf6(8?G%Mss9!nIPs@Ckm3N z|F)N%t&TkT=Q!T7WQGjeuroE5OACj7P6u~J`4?mjZR(;VwzOE4-ZaS{+O@jN``@-P z3+V{!zNJyGDPQu5j$wvkCuBKnh|1!Md8rWM>fA;whkPVQ!F8mDOj4l>0McaF29=wC!`!(mc_9TU<4Sp9^cW5apO1spZ#i zKT>2*I@$F}lv^gvzY_01=T3{O(G$~5M7b1t@=50;Y-oKo;#uxJiK* zXc#HGWL{cbpZh*&{Pe@9Y_0sz_bq`N8uf!4pVewY%3*$!uk(H+s2h;W*Dp1bvKl@? zQ2W#x^fxlZdrXG0YA$tHoW+~PxRR@d;D5s#H(4Cio`rs<=#^k6G5O2k#Mt*H+| z!c&X30ylDQncq*cjN_1}r74f|BF5IFHP{^rw}iELP;T%QMVOW(PqFJ;GQJmF{HkHT z2DFaT>`M1JVg?7O_)&+oy$8muhbRwJojct`;LSO{Z>#R3h^tQNd@ItC9AdcyZUat@ z=+_*DYoZRW-J#|0G4Lnmjtc`{{HvZI4d>pH2c5* zh5a^~;eWp(67vu1@qb^0iomj_|MLdSffDDjm+C*?*uV7u-y8VeNL0B${3&+^(!Kuk zSx_+vU}pGVpAP4fL&$%>=KsOV;cH%o2Mz@s?@X>p<83-@wes&TaURC0L5w*q=$j;K zoUe{u#OD(e3IM_H<7YSa9XDEn$T`2v%n%jyfl6zJ5Bwxg)nVWtsOmi@`~Lg6(WEj5 zRmL#FN+w8M9V-?9e&~!5cqa9c5fCB;WO4<{ViMAlW!UK3n^GCw*H`reW~{vm+rc&i zv8=fBgM3D+5vmkUoMPq}bY3UETJ0)GF(-l42<# zbhp95mqC#7TeAjYjoalFur>)8?8~e)6#iBDe?B5C-X?$3T`(2*sytkrgK;=&>bhYd zXx-%DF)*;bnv@T!OHfLXgH#A6nl~1C?G<#O_klPhoU8O9@!Yx+8&{Q)Ps4H%H#qUoPtkebXjKNJ2E9lJ=L-5d@hI2X|m&&IdIV zON{-;Ldbmf$uYl^D9DhRmkuzh4dx8=Zy?r&@i8HiO!Wr~SKxLiMu*O_*7>^#Ai-8W z>+lW()CT?Ub->lRlH`XGa4EThOLJHQv!QvLp;5}uhqc0xV*4+8_@9TX^`+qVUm!Qa zCL+MZu&su(ZC*YQ9spN9==6zK%upd3XkUm4_68{dR-p$*xdWI4ie(t!mP%@1Afl&! zzq|&CRUQv4Bj4Wmku6J_~{Y>#2Mw~>S+Ymhy(ZpMg2kjq9^Y1xX2Vx7g#U0wGB)F zzJM6;@o#(YoNL0NAZxmt*xHvY#CP;fGV>N6$Z8SYuq(`TVHx~5W?}~bdJ{e^O7!xwD|%63+f3HuiXx>P`Ldwd?2>L zs^#205AOnT1q>T}$k+IP095}nF>xqs#qFQT1q`^b?E>y^uS52BP7YE++(%mKcsO9i zr-mWfVlX6^4aXz|Z~oCGn2UpDj$2_SII|KN*_JTGUcUK9ChbfLz)@0;!OwOg_k$k& zOiUR$NN=Or3?Rs$;qbr^)Y31ca$VpqL7dC!#zU{m1taHUxNl%B_65CgQ^B*0&b#&7%~z_QfIoPCCGJ+G?czm1B;l<93`cDVgZ|ze zU+_OWzVl_v&O!2sj`VI>1o;|IE#UOehF>!>-2DpAn~6+8sWmPfmVb zetz?A?=HERD>Z0hUvgXsXi+PkUIA@qrKoUV^^t2Wq;-R;4l5k@+=XOjO?@WSG>HP< zC9LcDHZfu2;@(2?+zAJ)fR9AP3*ebK7>JOZv{N8y0l_x7%wc>GOayS+#l}Icr8vP8 zv6Tz+je%`y{Ia)t@Q3M)y257WK3H)fxE7T7`2`j*-_Y+^-!o|O?_c2EVX&jDz4Da@ z%F2$p4?xAsO$l-VUNgvcYd_v-hyWK@!%;!QeWVo+IP)WdwrtJv^K+G9HN#zuD|oi` z!N%i?X@BY)a9&CM9hRDJ(LW`_CuaQ0An`9DISvlkrB1KIPsgrs*w(@>{=rro|1KFU a4$ma1xA>}Q$un`_kCL3K?8o~reE$!%cSJ}4 literal 0 HcmV?d00001 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 :::

:::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 0000000000000000000000000000000000000000..f4f9c201dac522ccd362ec98a3854b72daaa16a5 GIT binary patch literal 215585 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∨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
n%Q7mXRF8|{w(B0L=2fJ;rtfJyV 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..72a34d9d5695cedfb6d1bf44c52ab946ff7137b1 GIT binary patch literal 85470 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 IrTg&z0wSK@mjD0& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7b4e413636e41ffb53d604e6273fb1fb503f7471 GIT binary patch literal 116221 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

RLx7idxH`X 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�}F=pz4u&(Exu9z5a!0WZ-!%bIX%-) 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

FV8HM>i;5Z2n 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�qpTn}*ZT6cFiqtJz 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

+_ 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%0Dv-<~r{=xxbwKz)qUq2-B@D?UCFRT6>1jidnk zv0i9?Oxf`%(>cRypIMre$im7macm7W8lk zygzg}9J<;2%C+X4Yc9KUXQEHcowW}SQy#m7(dCbS`ANJE4S44oo8@Gum{Eykm1|91 z6zdL6vAX^x5%KZ|>(rK8zNHSb-KMrVeRR=*F{3Fc(EkjjT3zTOlqk+{B^EsF7se6TwVZKqQf+Y^k1INZC4%$@8KGc`0p#FL zCkJEwi-~J)k7u<7@mACE0gp!65}G_(f;1<4FE{hv+CtMTq}NW9M6y=qN_QIME^Ky5je^&=?q5r=lLX$ z`yS!8I7T)a8awx|yo`2(ZvhDZ;=lZUY$V0JD}A8x?yg!DVt)hh4zS2B!!k#n-&~%- zrF2QT2n*AQzT4g^u;YE67LsS@x~q~rOH{DxVcsxk=Y6E1kP?PGbjsnS?Jc8a7HrPj z-d{b#qibg&{lii=Yw06{5&i3p={0cxS#%8J6A*VcRm;duAqEFze9n}pp#+DbHoseB z(H7NJv%tO0ogjWM$cga>uTi)X7_&*Iqgi~*MpoEyaH5TP?_V5_v!9dRf%mt9+$uFku-tpN7g6pPH-8%gA8qQw&pzV~NC5{%{zV$?)Ab~z#O z7vsdGR+o4qZirG3YAGft~w3O2&(h$iyUH?r^mg{=H zoLCHQv5P*_u1m?weE%kK>ETtiz#~f4pxhZ~*GxUV{WtJRMyXPmJx(aIb$1szPAYdK z6O3YA#FhuRQo`#;;4R{8sW z6PMSAo^vd&W{n?VHh!h#5mDCA&|STWqx-|i#0d`ZKuk9P`c%iE*=i@xo|w?duAC-~ zW(y;hv+-iwj$6zprQnI9XQG|;SyMoxl&GPkr#&#m7{rU6%DO(f$SA4MA<7=~5f#e` z+92;VDOFD}*CLh2+R>W1VzvxRPh+>*=R`CgB)Xs89L_%+&CeQ$+@~^?E=8k~_i}BA z$^kdQfl;TeZ-an14l^CZwOIu@qYP(gsNZFB35mlog+d#*gT?4^vb}y6Jq<7)uKa zXKEotvP0m{6y{7c_A~Q?Q0PKW(S$vSQ0g7gmh5~Gii>fKujX;H(z(LDoZf=xRMmW` zdH{e5WhbBH5co!p$;rgjB(mC;|CWT%e3yex_%(S1XKqO>rXg+xebdaR{aW8JhdacZ z2Orkk-h__(M#&vO^=X1?E_Ge!)M98y4-_aR$hc2fWhcyi?IU3#ol6{g{( z{Ri9SUr@iveABb@;IW@%?v#LEBsr(Y=mq<4;9|V81a4??=a4a%WUu? zH#wQ@591JX+6l`zA%5{{&HqjRYCTCcNC$#d7IB64;i3Wns-Vjl;%hIUsb-c<(ZE!o zk7-jzT3nlQ6Ycx8Hu1i9JlyjSW+IdIv-Y+=b!L_u0-Ez3>5;S=XOH zu+iV2b?%%UP5gaEttKX3CWDka6gjv|*N2$CafA$s3~UnZ*d6v}czDXO*nP09O@Suy zSmkG0W(gSTK+N=BE$#MC9t1d%8PU<1SjS=^&JZ@)szclUd=gkQzrWKl*7z>iZ@kOK z9PwJaa;f2}U9Rs@W+Z03+29=GIw4KyyIV(dfIqy$Jz-}_1!nUPg4p) z8N~7~Ub{-c#X`Fd>Ok6M_h}RT2=R6rH1ADuV$LQhoV^5SJ6#+LdbHi#Kb*PXhLxKhPL^XI=Y8ZL+?cUoumdQvZgKco4peQG?5baL6SI%H46(PRr1IP*v=f<%|Z2 zz>f7)82`gf#`f3VGqI*jMu1+V5(HBdLG%godTXs=BVr*GfzyWZFC+R$PMyO2AXbE_ zLZ{*GlI7gR1~@ggGbMZeClc@ZZf-fv!W~O>JHVa>8MnEQPm282oW99~k*%D;c4NN( zpabvS^MrEvxk`DJ*68E@A6y9~`cOA4HY`CCP3kyor_=9!{!6vhw{+!&|8Vs^gjQ@; zWO(8aR!%*f-2}OtO(Jl3Bw~qcjp?kk2X*r{<9FnwtS01o2a3zx4g4)z!p(Tx8Gkay zC)Rrge5P+*JR&l84mAwv-vE_Cg0zW0jYBYHC1{vs0zOL+ybP=(Rkb4F{D7S=NAL~R z`oJSi^JI-~kACpw@AcXevLag#>^_cycKEa)s!^K%C+}k zINvnF&(%Z~*EE%UpHnKf3#Hj{69&32+$7elfzQT=nW-r?85%tZFitW%J2W$+2>W;G*g%ZBtqborL!>AM6$8_qyEz-v4$TC zvX@wEU3|B8E2Pz6y+GQk&B0a288}zrf)uK`U}RCgwXXO3iG)cVtgJH|c`29enOE?82yjzLVeM6;7lfg1AKf-C0f0&f)Yd z3;Sj;=>pp)S7x}INxsDrn`!#e1P3A-r!uXBG=8fy^s z;F=na)OslulB@U`am1J&<+5G$kD4wFAc`t^xg)Rn{`D{2ac^^96pYn5or3Md>jzF; z0y!E{Gd;p`;5aZi`jM4=0~K{q#W^{k#wEr*m7UKQVf8w}sjquV91 zy#v9dQU7NAL_M#!mzzYh1sKe|L10ajFoUx|HnS2Mpw8-gI|Rm7R>b_s#!6r1>9Sh( zH{uyDVolA!%<{M@+B=iIhbt~ZSsMva%*1>rY?$J|I2U>SSGe;J{YnZhA#s#@s|3Iv zf>f+xjjiC)Ax@}z)C4)%rNrqFD-=8=vcRj8r(6PMWU{(>Z8->Y^>nn4P$W-2=1;$Y z?^eohchnktG4x}cqz^ac9e4}GB40{gYqgAThjzk?l)T8IN#y?lGE&2WflT@s_rSw8 zMj92GKup$P zRB_HN*jw3x_}z^07KD6-&bl*c`#<1rCVBQWf)pdM@6y5nPZ5@%6-eG_Ht0we=#DuZ zFYM|NS!7o76zFuq%WZrap&D9K0p79#@(hXQ&JwH2b-{v}E=={~m^bZcXBGuZWHsp^ zMj8XofFgzlqc)OCHj+7IKfxu9o7>8a1}6x4TG_mREltkCl+C4;r<-pJT>cI>EVLqj z_m~w|U^6nftEK1jjo~cI-)m3hs!%Hzt4P%5jo9LZ z^x9$D6NT7QI(y~eOu5kD_Hji?vy;@{YxtG4G0u9;vG}C>ntP^+=c;6C7y5nGr~b^0 zEi`txK$w%r1Wd({Ufg&7IG*eK%V-7yKo#j&!_2^;BMK~}og_eObBDA8p9}Fu{PLk>Phab8luZDf>==uW zFS~3<%`SCr=FSZA2pX`$g?$Jqq_ zm$wyXk!Qm*OTM>4>mG~5xVer6{XC@);kA1AI1QN&>oFa?$9HQYYcXEkm%Gt=TT}v9 zG%ymLUV$qr$TubABHLr=J;vj=jUb$dzQ>*PlQF1oSj;_z_W{pP=8l`Ir;^l4!{I?^ zf5@>f_K%RQg=-Hm5liDmE_tO3>$5XRE$1P6cFtTvp|2{6xj{jfj80>yZQ|9PFSl2) zxy_M*iN#wT&QL0lZhozWDwj^F>n4)ngAQHOB@reROj+UONwUTn=nvrq?--rTdT=)&guPd)6*y`@zmEJk z`2`n$mggaCW1gxcbXWFdLpTw=-RY5Yq0fQkBA-jvyg^nC}A%%do)?GWM%PYGOyYL%+0 zYw2{l=)~^0e$6bKFBN!Zj2AJDm1+OI10&k${0_Var@eKEP)X}Rfd+XwbF*->x=RF@ zvYCyK&zhoLH0IR%%FENTl}eQ8)M#*}ReIwFhCE0JXV7*hZVo6ryzG2icie_pDAQrGifqf-p@B9t&y3Y3|JtoP5aSM={+`%f=Qsgq(Fx%-&m;p# zf>DO%=#?~!*&%d=n1)^&UsCr^;OL|)DaVSjPYCb+E#0APngY0mv7rQ#m2KVp#l*li zdA@tMROfK_g!icB`pu%(UaowTnKn-tzXy8$(X+w7BgKn3Hq{O6Fi@j3;trRKebjvK zw0JdxQJ_||9URtBfL#j(kJOppjFN{rS!eSxsQc9_5(i1?em-=m)NZnUZ$1 zed_0TpWPsw_2)#;tK+?<FPw*Y#yd{#SWh`|!@9}u9t3Xqe2?8q*#sIt*Q=WvKQhaEA1H#BAJ?^z2em*7 zvWI1PNJ9CV5nk{wU7`8nLv4!$$BDxuUY>l3B2D+o9$5)x+SwhY z6rYXGg!D4Qk?~{5a)!PiMLpsX8EVyq^M6;#Hg$Y`M;VLXyFnfSg!KKgBRbk9<2CY8s25{RKBBy9?T zEt&UM_kx}Xm&YBD`yr33f>Jgxc`Nqc3aoGw)0(~w;bv5teYd9!wwe1=%y_)n$8<8y zw)A0U6c{Q0i~u1pbu+w|L`~HX2~&dRFum{XC}ITyk0CD}P9R-KdBvBG*@|V)eZJlCYVSl9Zv+&(`1=S+=#}!PwRQ3U{zcm^a4s zY#9l447S?NE~V^z9{Jtk=mREV=0Pl(z-m!UK1;dD-E)CxzDw#YdEI3I_|$t}Acv{^ zO7pk1l^d+6spvks>#>WGp}J~&yd;;R0qQA{W?N7Q7cBI}XB>N;Ds-x}8^|&0fmAIQcm*=yxQ`P{!!u)TwZ4}r z^S^#|oe?(uYu*BlDCo9I9Uj(2+hZ_G_D(`Tc{l1I{`5zq4?)uwx0)BRO&|F(@^YM3 zO4blKmsef6@t#+XjD#}LOiT!x{rTZXrrZ=!Dt4^M_i}-G8|dc7OLZxTB448h_t+TI zyghYx#u!zT@7U4UttOaaOv_QCbzBWAeS>VrAyZ${(I44|eM*RWL}+H~xf%s>uAA4k z6~tyk4)dM1US&%;76f@ab40-_xg%&l91B{zZ)ocyRlmezQ-mD~w~cnh}-iB64DTQ&n?mzx+2FZLyt6V#;C8vpfnyytZ#uSK#_9 zt@#;suEBP<=_p0~yRpTt)qU)!HB8jt`cE!65a!O-zt33RJQK4GcWDq&o)BGaXrFJ@Kw_Gf2O|x-)&9gu~T+qINp`^o6Dj|&)TkyNzVponi z(f2bRH!nSM*g;PQscLeoDLSUhS!i=v^M=-!%UOVC#^XMh)52zmxz6po0%d1pk#fJ> z5R2>CGhj@T6`@8HNwaB(5W(hPnCxIO!a~L@@8!y4Vs{FTj z1?9zzx}E{JtzQL;u`sqo)^JC-tP*k^z`J2r&KL6zfeM6qZ_Mw@@%7?Kx z389@>;Nn^5tl)}@93t&x?w`ACzwgKf)1PGlIx_x{k<~VQToHHGAVz)}jB&fHY(C?0 zR&-=@v0oRl=P`ZG{h*MjL>98=;e2^Smab*wdc)lkgrD`f`3ps3#b;_P3M|?Ahn6)i zku@4k9#0n3A7H|Z`cBWzqW70;!o{ZV)sRQn*=4hRw$tCLR*89GtP{kz-ec^NW=dD^zP=BfrNeB)vh1(# zMU-B&9$mhP3NHBB3z89D9B~@N7w`aP1x%AR{YnFRrahw06lbk67O{|bq2KH8lj}Nv zq~hXE$gL{-I@3cxaubn>1k{&E=V}|9Sj0=!cLuQ?4Rcnd3)xokYZWARIPn>VvHLr| zHJj;Xzdu92C~va=k<>$nitzP?@asGOclW~CDzxt>EBn?bzaU=0fxIH|=#JsyLEM2S z!~hq=|Bq^svD#bpA;wB(uK*b@PG88gTz1Q9+AltpVnIe)V4HXTV8~%TKt25Q_j(LU zIkqUvg(XbW)jdmFWAj?RYQAAoww>YR(&GaWi~AfN!Ne zB+8kCdlB$Ct-mvV)H!uco@lM~aW#a_bT(QKX2ho4wAC6~rG!F8f?Au$T}59s5`#!aAT#Cym&x2=(2K+@7!S=e;oJ zYScA;W#?9-$WBR`asPEWQ)0wXkczRjph~i}I{Oeo{H_PRe4|^Q$k@R)CIE&$8Y>Au zys*^epN+tE`QU+EPY&WLz&=IC+;{vjn@UPg%hxU(o*e03HWw(Eq>K?s%-41Q`Viy$ zt+Aq%SmyvW8vXfqoxxR%E6JQU%YwyUI%*DhurPgun>&B7uoB~=3wS3QW_C`O!zbne z)A3XwD`4@xdv~B?14_jt7=GUBSRFo2?2^!imJMuRQBu{BJjT>c_ z`4PF#T7RwzB(*E%ziI|``;AeOE=brHTDMLEwldk#gvXx!aL$8Iw_1aG;M-Ub?9~gj z0_3$JD~EJybT$kmZo1-}GKOK;;3$@&x!4yFB99}(k}hlDjV>X~(c(dTAp}+fc{ybW zspqS7Ci}+MB}I0LpQ&Zazf%y%kH+qp@4vEr?sbGzm20s|7;$z{RhG6RH02_+vRzE3 z$j|K+!tBGZ#9;G>e!yVD3QQ)sYx1IhGx&oTO#Zu$Zry?x4^bFPo!PgEjhFv;M~jJH z1gyNWE1pII(1%t@c4Ml*H4Nemvnm()7Lv~0HX@D=SldjA?F%ox+d-$F5hez z)X%j2$9C9r`GxM;pijKz^|pJ&dk#X?fpZJzqHmM4NDYEqSX4w|OUKP#%^waSO2~Tq zctE)gJ&F>6g@Dc)AfwzLC3u6IKdnBnV1zV4fr&gX2l&m-fc6Staj?a8{^0dQ%Q!$C zb*d&leTz8q+v(sw9?(hO#!OG2YsRgGpxPLDoZ|gf1FX|@*Apuvm8(uxo1Fip;C}=g zz~LRsJ9}3RpTMK}e3efj{0;;*hqRN~O95WkvACCUX}B+pV31TELXm?TR` zvI?lNrJ|(3O4pUjTwei{95FA3&nD~5zUrShOPvQqmd+wsukXlyjfB`M6XPA-zfdg# z2vWJUe{VFnB-Cab#>PXJS0Iu}RxhMVF9>)_&>x`GQaamr->9oPY0=gwU8^(<7pn8AOK zgPXQI;tAoznX4#J-Q}tod)oLy^8=@43=xi!o=Zq%HBnC^>+-hN>xJ3!yY0~;Ve1oe zB!H*c|F8jfD%x~4fDBzzY{^Y!E{3RKFDb)S?oID#`PENabZHdTaFbgUh@M9C z3wWb5=q)Q<9CLl=vzkr#3_dL?m9nHJ#qKA8C5N7UIbX!ZA%j-Vw80Zj`o1=vDq&!3 zHkAwyogIWNPudSIbV4huei`|ZiLtS5`#?;s{w-z7H;g0hk>NHrI~DM9FJYAh+$M#t zub{%m&?AADP%Gd4VHt6X0VbnQ&*F;O0Vvm@tX z6yYkpc}nF4(|U&X{*Dgle1X23iSXn}i~><+*$us})0#Bs8-flBh`=+{Zv zWabtPM)5+I&VUm12K{CY!Q9K36k#-zL2t`-?`ZDMthTFpEDYVxoruKas^i=@=|0yF zaWD-R5qed--8{t-C898b7>_nciRw$tTys-9eeLtUCTbiETi03A3n5=;;r|hmSwGv) zt`Ws4$ru8!VtFx2)!T25<=c*g1$# z$9J{g@#Zi3l>YZdWOhEpx2c!IAqXR+pZsHIE;|!)TwDzK&$)Cn{hV&B!8FK9DHUWD za76{E);bW^KK-v6!HGg8r(O5PlEjo}zg3IY={&;Y$O$L3!N1mvh4XH}fUbxuj~>2v z4c@A&yXLi|2zdkoQCjTTUyZ7vOu|zm7?EomCtPZ!oZJK>Ig~TyFT+KzuIWgSZKlTe z&ix{P^|?W_&GRy+dSu|n%rIkS)Sszq2de3vA|kjA4gB8oUu*C_;z1TJVP0j#{le&I za!wnywLCTe_!fRDvxWABG6&)isTPsU#4S6>1^Khy{9!F0YNt!>d=h7qqIUm&Uop1Z z(3|Wh&gY#9d9cGe=Ip=AvuQA?Gc>mbNR(Kt|fV9&tCzZ_Ezr?}1D zPkx1k!Kg#4uQ4#uKoAu?ESvgSq2VK(N>N!w&KO^fSFAvFa^DP{sP@h;ibI3yUtME+ zXOvnj7ueMtWtQ3Leh*(}6GAnEPRa)0fb~rWh|;06B^QiTxOa zC)4D?C3w3i8GDUul&8F0UiIJd_QgURL)yh+<~2zs3SOi3MONksvS+c4LcK_kBTPc1 z-@JES`gLk(=3XT>wtqxKPJqbCjd%R1z#}ED6{~1(M!t!2bZMw%@pY1@6>d))3bj@O zK5A!_QVcWg=+&NYfx_lE)6nQ>yckVa=LVtkg)6h8eyIBD;90tAt$LzPdx_TB(T?yG zRJ*;SP-DK1yQ}{^8koj79qDA4Wu#bE_kxb7pH8;9TKuA=3Z$5^>nLUvi^f5} z%l4XsJXz2zz}%)dGD?V@=D+JltFO}8DF_rrH89LP9lJu$b}rbH22qPpNTpq=MVYZP zvPKh*3{eC+{t&9a3PJ zGT*bLX#AP0PQB7VVxxnvIXh}TE56V`JZEroBkTF9ky-W!2COzA+$4VM3-#OHoIC!K zG^m`G8X>&b?K5iJJ{7u;nmlYku=LC4lD9}&BNzh})cI7z3}j=Up}J%%{Gl%f8eV|Y zfqT=enxGLO^wqF2$Qmy0f*yp6M(+>j|fw! z6uAJn9+U*FPdb4#995YL8k7H}7)U(X1S%ySB`|S-h!7?R)X{uLW~J&!-`0Iq0$g0TCmjeb0OUowijE z)pEps01NFbv3oWM+~4y@W3C?NS`jctM`-2-+irvDF-(42`NqlmkIA%)J{2HPqNf62 zdwJCq1M7d;>t)g+Cs6$rp7mAz-9rAuSW>~&*xB9>lH@>h@~?dd!xuJ}> z2YQz*8X0@nkvzMfgxY7D(0;h)P;O0QYZ1n*Mo-OO8ij}&Uok6K<5`KEy-lgFj z`V+ZXV*>U!UV}ZFUaNG0I@t`-(!LjvV%K@vCPw5lf+zMCEqMhPbGLO25m6<{DS&_6 zVjtOO_R8Ww>U4)mAhOTLNMU|*q4!XjXJ^|6;jF2q+JrWjRu_s(6r#>5 z^=_T2F=p*1sO|YeZl#f)z|vji(eklp-BCFO=LMNVYt7ze*PkT%LHZaeD$ZMPz}SO+ zktJ!QhF7E1Bkn$`=^7s$>QPy(G&H%jrt3@7W9YK`<(Vojw{5v^XF(@a+0bagMa6I% z6Hnvdt{oFkSGSSHso8BuaO7#@Muk`$N;vGK3bG4l*RzQ-uR;x=4WNXF6}3RGpB69&6AgF*Ll)Y^z?R&U^+eAz)@{;C8|i`Ef;w)SEZq${XXs61bpls5sWOM zht1pK=e}qBkJ7Z&6*E$iDHlgVKHLt*9$E7#ewFYh8DY}&KQHg*7M^2=lrQEE46EO*|(*%9T=8lG2pPJ%aO zku2t96;6Rcygna>!uzk2B~Q#O^aFY4s^Zs`oA5}fPg2wb?d3#o&E86|ckL`J1RQX2 zz94=!a6mJgFqM>=*mdA=ddDOnZ3aQuqay^~23g05V{4T%x+&y%NGH>$7;DFMEV2>t zQS3?8^yS7soxQ?G+8jWgG|%Pv8U}}NZxm)Nxk1SE7om}NT+1kneA!=sQbjj|8o5p4 zdrjKgJaMy~#fkR@A(*QrYZy0N7u&C``{1yhg<%^U3aW8w{*1E?TEGiRR;}Cyp?0q8 zO}Y=ZUTfb90)~F_+naM6(j(H-LPBl?QZB!_wU(7@mPzdQcUnSwrb6`Ivu1ZfFM54pp>XqGBLLQInu_$e=E-)DX`wS zasedP5;<7s1S&5R`daPrr$DQmF;%#gXFiRMiXYJu`oIn(g0(TDM)7;%CCt6ULSZX| zAQa}UT-2?*`A^qS?qkkL{h<+~CTK9|t_5r1fDH3utgncxwLjGq>vu5tym;v`>~`DU=q zYWoG`0Qj;~66`R^9og;VFLny#oqRIwQ4FTZfZxgctXNnn(afX7%`(NNbt7;wKo zz2r7`xCaAu7UjIPQvdRK#Fvcn#PX6FIE2~pGsTD+XTRBq^H(A1*Q@CJy223wmpTP5 zF)l2GmySs;s2xE9c#BOF0V&9{jE;>IkHaWfC@Z8QUpgrI_*q;^nTv6X5<7wlO%Bky#qBG^b zi6Wo9Ly&72#tFH5d$3>wZt*8Wh`WBc!n`b6WZ9h$B<}nC-h!k|-nTIN0Va6#s5N~J zpb-2(azEbjfxCeE<;u+2joTdd@dnJ_aRR8Xid+D(3nb&K3Yi=qNWjp(`DsC zykJ%`n2{bcoDxwK>+0)@)~h!&{RFu3&0< z1rIuLVL>-+W^1}`cCmyL}HEI|;-!^z}B1=0-KZSUa;_5n@8xy2WVvmQq z%L}&mCKZIAo_OG;5?xOOPf$dqIq`ysR~G}^ro~?z>UDk>hMOc$*8~(60IH{6#lYD9 zTLScvHY|?|aKs?4`?vf9WB8}s>NGm_`TL2&!mn_`2_+7P>n|^eXP(x0Wtz!N?we&U z%4Cx63I@b05V)a#6NKrkp)m=g{7l*DK6`wwc=a-oe_Yap!R_za*GyXr;masA??Ob69C< zy4G>8FLRNq+^5#oVCAX1wlzgZD#4>zWK2}wP$lLHg(+nQX7xKAcB*EDu^;Dsd7`!K zQ6bF0HTUz>o);5cE;(qiFn{?sp9bd?Rgb>|SaP8zq&U`x!v85{jM2~&8*{#EL##2W zU>A_B|Bo%xrxtsMCpNJ=XNFu)pDm0FjITa7R7Z#u%C@7E)kwSpX;6M@ZjcFZn*b$d zAo-|hD(hE!oMBR=|H*Z~iT@zcJ^nP z6e4e4cbCd46;GNUNC2V__=(6w%dZ`KUXA0X8E&tB^gZdAnl8`B5LE;w7ZgNjF}Ct{ zllj!h_l>t#yLR45`doiI|58F8LLgoJ>qJp&--p(dk`lZ2PL)8^)y&=9l6~9y99AMQ z^eIZ1{q@E$Jc7qrQiz7G_DUq~(rU<(r+)_q$@+}mjmrHM-QL|gLg|VlJ{Tv(CSRri z+~7LL2insy6i!(YOrZM={9cy*9JD}9vj!}~@azaIy5$siy>gGMMwlgClvDec@1E$_ z73zo2f&R_nWimg2McBy<+Gw%P75usU<$^5+!$C89tt%_HbIe8%zBO!-_e=dxGXv9a z1?6<~1F{OmKl#f_iiFYCwyaAy!)*~k9mA4q$qMyFi0%V!Ol z*RhdVUko}$F67L4jRYJGm~(2ABx^N33+;?;y2-YSol`gRv9Vyo2CjsZSXNmD^^qzK z#AAP0`1m_V+fjXZF4s;G6h1~u<#w*#VN0JXQ>JLv{zFA1Tda0kLVs)e6q0>dh&T21 z^tWdhu`;6*PAEM-fIcuX99V!Dg&L<1a7Dvi28-U;3@WPc6MCFh&ffd3LGNEJ-RvD< z%8JY!;4c>^EQw91toBfYR>V&g`0`_%!@^B8QGI-2peQT6y>}JaNO-NvrFH?+l`E

330@QCals{;4}{HK<2Fe0(q7pAX1fAT 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 z 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8d54fca08f027b046f2772513ca3a1112e59252e GIT binary patch literal 117638 zcmcG$cRber`!=o;B`bswDl>a;N=9UaWbZw)l06EMoxLftS15aCT=u%MvdP{goBO=p z<8$Ai-ygrn_i;adzdsT#*Xw$|p5r`^^Ei(475Gd+8V8FE3k?koN9KuyG8!5>8yecB z57#i@H(|GA1>wKzc26{3p`qcnp#EKoVZtScUt&7S$V+0bVBAFGx$AiEKphQ@8cjyx z(Q}vN^+_{FijjnwGw;{0B{BvsmE0tMD?xq9hbF$28YAK>&4XtOrFF4tM&U~#2(DLQ zeI8?6HK{3+cw3vjWA-0v?`xIQj^EcJW>hMb2;{z`Ow&s72p>H#`IY&{S2+h)8Y#tT zXq9i4rcDbRzA4gDt;nm+TN8b~r6TL?-QbTee(kOw>Prhn=E+wk>c756ec92aaryfd z`02fXybsC0f9V&G{GYzGaRrlYZil}~A74I-uMq3s>&?w)G$ehGc;ZJ$uduyaq@!KX z@Q{J1$)KXlVL_JCWBD#ItM>bJ1}ZfjF=elYw5FyoxVX53qoeO_ErV#R2wbaNfBjlC zw?+Y&?Rg=BNo@Ga8-g}uvMPYHy8+2SuQ5_vJ{{H@Uf*YsE zgA1XjaV#g#$PaY6tnBBO%%z%**NT2HBb4SQY|EbK8`YOM$ zu-wz9H{QK_N7c3a?w=KX-{&KQrJF3~ow}6fo=SDP9I$?TwpI0`zi~G~z=>`6Uk<+P;O z=_6}|`{9UriF-F41$E}ihVs?Q3|p~&ACCpdAiuW!u}JhEGyZN}(v3x`qbJQzbdLhp zNM51Mns@p+9YG*IHbx*~o-|ZSj*c)d&uiw4=HI3A__4|0va^~h;;|E~_c6aL>M0J+ zDN^i=a6gXK{`8O|c8EFSb7g#;ZGB+#3U$}U;_1=e^A|6?KI%Vu^ym^fpY7sE!#R&= zTKKPD#@zBo=H~AwYn*n5wN9>~pBkH)?X_owm%8pPYP|J*NZpuZTicW>;!a9R+Gt&3 zcX4*GH)<4a;LI=TsDLY}^h8ExHdycYUP?*|H!p9g$I-6F>&oFDEnI!V%`sVYh64;Y zh?!^HFShY2CvEhrm)cYmMOwdKz2V}xq=1%~l;k?UKa!i5XE>iFk47Qj5%2#rZq#Gi zGdebwE_Qlstm9RKM_8Ge0%52W{9}raD$*oUgpP)VdH%cViOB)HX4vla%6ojZ` zE9_MDd4^>%sT~$y9EP8+9_j5AUmO?9$tfsnYRW1q;=wxmV_;qnXr{^$Pt5v+hEXRv zFi%a2?eMGpCN7m|x1RS>vFqwewnm*B&udIef!C`)3XY})+@h;}F~=(H?_X@e5wg7) z(kpS^(ha*KBt=7T^ze1{t*8zOr}CuS4#rb2@43Ba3@vzG+gCU_xsF!)yxK0@7jOG~ z!tXnqBMIa*ElW5(^$4R75T_xyOB_5fG$sS%y2?j`kAvasQm32F_d|#va68y6jg}yE zo9*J@Vz+B4E!%KbTvJnvuvtHSfT8c=ctp;v?sOR;wz!gZ>Q_*}oa((PApYr@p++2= zUe?a8Nvg-LOzPQDUzPK`RF;RRPt%NadD_2w?mgaGm=6gdAz`I9Yg-#arhLrY;-$P? zQevW^oj#gx)5FFsL}Iibarm_A_B|r3fsyg2YHB2EMcT77O}@{cKc^uuRFISF|1sKL z{cUZu)|IQZwbgpMKIO;P=d615$>v|J65FcwmUdi(Cn{c&U!}y;s<1IRtA3p<@XG%o zwH@EdqUYF#)8$JS1#MndPjBc6V`1<(x9B7-FnbETp78cYkQSR>UK6(0deti0zca6{b3HJ3sse2THE+1%l zc;K`Vef(Mw0?`@+1B0Lo3&S^XCXhJ1%%qEWxL7ZI$nxyTLDawbX2)P+;7bHV2SFjh zZ6c!nso}Or+NTT*4Al77p1sgj(Df4S87Z1|6ikSZZ#3tf9!lb`78E)f!1I2>Pheo| z6941J^YgtZMY=5MdpA8qsrGD11r5GwmS`3pW@TM_Cm!EpnjUdYMVD=JeO+U%&!J{z zeH9|~q`b_-BnAg?5?YqNAHBK=+XxH8Tl5gVqBh^Og=hE z%v*G+H+A6%c9HRvaNYx^+@d17`&=siq5m8rzj!VPLM4#v6w(A+vwD(T|CosxHGO~Q zabSB9TR)|{ySI0nlvH0||IKP^u!W^%dS%XXInJ7vjQrF2`j_Kh)R`-j6@r3-%|y=B zh~Bvf_kJEpI%FmeCk#gntTbz)Za?fNxU)my5?(%BRB z$PnHr8b`!qJSAP-)WZpV_8CV(!V7m{%KH5{Zy8Tdk!*#OxrzqQx4pf%lzqP6av3)#DZ8C`3Kt|NL=6ZRM(2 z)m#k?jW<4G_>Bt=5m8aT=?r}P5+&-)(Xlab4iU2nd|xZe%BCwQZ?CM7VoUuTABVix zGH-u;d`wD4CX1aWBP)Ave8beyktm?~?f3>ABja^>B*Do;BsZL*YXQv#+EtMaCp8U5 zYvmguVPPD+qUUe_k7J-zlaWe786H5N<`D_8SEbDQb`tN)^vrKDZ{J=@R={LZD{NWY z=j7&ZU+hUTqfI$w`26|vGx#gE+U>2{!}1i{Mm5kiC&nj)n!A3QDwW+nGX(3J@WDrT^lJ*yH(rX(_^v_bgQ=3 zoo{kd=X181-TJc9@XOIgk%NgShHT_Ydv`Yt8(Um#EOGgS^K`*T{FH*}3*xT0;wLmG zU&l9+MLiP}GoOxqu{SbQ?>xg3ZXCzNBe)*W(cPJzUq%?$)#@wc^fB*2V%EU$aNCMX zww;-ok-RLt7Bw-Ut<5@uIi>h7xNMP@KbtzJKR7#J`pkeeCLjP|_0q^hdTN$h(Z62`u| z?#b_EW@Q?1Bw1M5X6Kefk(OPgcL)(n9D{H@38(tB6v0 zrQwy0b*HaN3U4=F`L(pvM~0h@Tw!>?n$^&d=HG?$_1jlNc?DC5vZFTF9JHrdqsBre zZOqP&_sjg#&<;<%LNKlXAp1PJ5x77?M8wW3s&Llo23Z^S%UtR=EBo$RtQXk~zm^te z_uVWiJrc^xd7rChW@Y&oB#eC1_0F_Zbmk*r)Bc!Im-6*1_i&+J+A_<%e=|z=RTOx4 z%6?~5LdwFzk}UcZ-Q(x$ z{|wo$lEsr6|M2VD|E`JbwcO;RlP<|9B=Yysln;i-v~b zOIbI?Zk3p20pQrMM177cMIoR`|Dh5QU=_g>Tvb&@~g-H;MU`Z<3xK2&mq>L0l z<}2c&z$L^D;2^~=TfKrDp_NCP_7GydGd*MbYXMud?eohIUyp3fP8UylczTtM30qao z+VR_qc^YX+C=va3^PD?Bjrvnxc*dveeJ6h?Xu!NN(fU3cU)*{!1=^{X*#7=LHXfc) z{MaQ(CyRY);T^{5B_%g&CKU_}4AOV(SAQ^K-MG=w*_obMl`ve+J6A&5N=q9Z6Z44y zD=I4LhhA;_=pp}(I<}PqXJ%&RukM11;^J@=m|opqHg(eMsC6YGCYF8t*u%8dkON?g zg|#&eaj=rQdi(cIS(rU}d3ndzui;2NDOGRp?YJu>By`hbd3E*I&mpUpxt$gPCCwL7 z5S|57!p=_q7_gI$)|%XKtD{WoLv%#ZS1zS~gADZZ=g;N!WookEo1qer%X0){<{}A% zDe+i(dbDeXLv)Lkm6RUY*s!|!zBNLG%^n;9Bp6}S)7q>FH|Oq*xG%l!R%iSP>~AR(n7)gRkk_?(@c!GL8;CD;-a!}MiLSu`fN?C(QZL3j<_{N>9`$n#IQ zWtoYSyxMb+v_CKD=;&zIxW$+=$C}^oP7+J=@wp74v!o=#O0Br`^*Ap?umSGSk`j(E zDk1;uFCPHbKy8YempUh$jDh!$is|{-@WK&XOv^hmF4Hru4X0fV+pTO~fp+{TaA;Gp zw}7Cc2RH%n!V-@{-@$<(9C76#4O#2_jy^Y;z@J_rehS&!F8PW`&Zte{{6HeVbi~${jmJ0Wp+C=d|@x zawuI=otYSIa1d#GB=O>XU(gy!@O|kp_WtQUZ@0PYXms@S0&c$<)RGbz7`A8j-R$|- zt$)@gz&$-zU6^Zi!)-X@6%Y`hp{2bv134g>Q1R>#!JneAySu0HMgP+L{QT*Otyj-r zCJ&rpDQRg7Tifj7itwUM)}Y{E8F~5Em_%7GT}p_MwY$4rpUpnc!&T7Py$`wJM`o#0Ix z{#SpPi)&9g0oD|Y?V#IKkT*;#LPgW`@XcdPyoji{$1?WUF?{ddRJF0T{?+*Qitzd2 zJOHjs{UhUD`R;$%`T5@fq%wB#3npRP-EPKH(N((CIK?+Lv!1{OJD=Bf%%|0Gwra^s zM#-LoSF01@z5O@sQF&v)JbHH40ASk6`ns{5-G{kI!(?2u^gI3i{f(b|UmKg6MkFU= zKQuKpO%JtO?!T)$RhL9mlft4^jvpw&?>dJr=DB#Aa=B6nWR<*UlWaQ)>9UXUBSa4ti0Q@jFH*YlNECFJJNb)Wz_U_!47lNWd~!jamSivj(xB zY3hGxvMFh4b^QSX0BSKH70Sw@{QWWN|9mSh`BECG&MXCGBLqo#bQXr7*D1-f-XC*?Ns1xRDgo$dSK&-C>A7Fo3HsKJKzrdG@Tau@S9L?0^F38YOMz$kEtL9-d?Y&%~=YNR-vp5ATNmgE^?uqN9m; ztw$UEame{k{}{0HaobIo7xGOaVq;_MFV65j#KgSrT0j-TVzqzBVEfYGU$a}Dc|^>t z&7U6v83CY}?fHV<;LuR((}oKX)B$8+Ig@Z_nBF110ql*uyvagmjJA#W6OYY ziaIY@0`RD^GBWOS6n_5fr_cVx)|PF@CHd)oTzgkn^Q_&3lL(y0-}`?`J;q8~+;mt; zp2o7K@UVK>>A$%jfTyCS)phi0X-C0j%d+|1VS((^rx^tW(a#v#TUsRM_NJyNr%=qu zPfZ01F$I2#RGw)Rt0u_#9fGOo;Bm5;b69n?AXKv}o2%6?tJVf))wyLMjI*bVWB{2n z7a1v`Uz(jA@Py|3VCGYM!4ybBw7W(Vh42aO?bjF?8HtF9J~CiIMFdBmgM*_N7B+o- zt~Gdo9Q((}2))DE-*{<9V;E|q66dK;Mdh*ch;Vv`7M%*?73Ijn4hjJWKOmx>?Yj}H zs!cn&%E%DU?Tr4$-&P#ep?&|1=xT85_m)GKxw0oT;(B^iJv}{Nzm;?H^2Wx;CdFYs z^wy(#{P;089?mR8AxEo*TWNg&Z5p|`D1JF*Wn}>?kx^BZ05jq9X~sR4WKJ<~%$klk zxCiT*3w`a^iVEb!gq)e#l6;5zIwPZSr4gpPuItr?zJrLN%!-P*;YCwG;I|uQe{S29 zs9OtO&l=!o64%RWk2iKB_L10(is zFC}Sif=}NHV?1r^TCIxfrKs^gH_jim?0ugcS`*-wZx#{=-1Bd7>*(Npz?2UO-u)So z$%{eU{2^J$;1HXWg{oV6o`sTs1Yds#J6D@-|2as|py-D1UG z_4sprP0@V;3fWI-lF=EM9~gGUvIH7v@G1DN=;A)LvdqcPpKs|Pq|(qCF4RH*AbGCp z*|+yhRkfRr@RR-reRh{Fbg{P&-@uXRM#tlBLm*&p_hreGPapiWX95&bmq$0H{TWrx z%^sXQQnIOLS9|{4?r_@x*bGT(>Pt$0(eyiGi;T?1$SnCl_Z6+zG&$;D-Y{1ref~^C z%&guxGc!}Lvg1OrZhNdkPTGWmmuAsqOq!~YG9wLsx;iO zLN;MQv%QM%=dWLhibuMdehQXOXp~Jc*fHS-_@4S)4xXnTW%)$aWCs731$h#QiUk^o`2Y^Q`F zhnrj3*5n3{rvM`X1PGLNRc`wa;2mLqoQ_Y9?FEzhu08>boK|z;rI04je0W$%bBXw` zdLqq&E(##%dFo5_jDdEwhCe(`qJKtN#)mL`-yUUV3jf}2M$t8PkW_jt13Z*Bb6PK= zveViuzX8k#aK`kaNKTHNoP7S9n%=_1SQ*+c5~43olbW1doR=83UEt;&ot$=`wA~M6 z&PKBZ&|ub=OjqD&4u#|8myos;0`{l;z$3KGlL7mi zm!EIOQ@^&xHaI;Jw|w?xcFJAjtNB2|EAiryGX18@rIVW)M;230nThB7n|vY2Ajijp zg@lqMgNY}9l+8 z4^B*U+g_YqU3U@^ohIVd!h&5_Mi8#6rmQS(U~o5EAr<|)?q8AbeczX-ab(LI8_j~R zsOp@~1mX5LmM=0eOHs$I?O@W-r79g6VO&ycEA1DabX>RPxplIoO3lL(3Zayfi;Iz! z)fDn-pj;-9t!1?Hj@1AZ`I8mkr4A=E`qW0UP^rk5yq%q0x!URiOfDP(0y1uHfOR_HEsz?&;4 zH(SaDC~%dnc^zK8B5cA)VoCU(eot9BOV22e0SiFgn`y=UxmGycQBg_39me+<8Bv## zqvJ9y3xtcmDAIkG-5)jj$2bWm9Pv14GAu6-R1<)>jKw(su{vH${d$~7HyJHiD16;=E2zOY+#KW%1%@@tf)v|dk%k{X91+-Rxa=sn^677Ju*Ix9S%K)& z$Qo_jJA7}SXf2wq)5;Y`!RtQ%WRBak&b$AcPx$|vLHI8b_jh8J=YR7ZXUogW**cj2 zky+o5E7$54JJ$V&6KP4N75KXfN0s6n*)rSz89V-~MD+hJUYcVyCzCtACwG)#{xe&L z9L6%&3kCbYIPx(+Mg6=hkP`UU`lqM8r56JH{g+o(?h;{p^;@E*b4~^3|27#}I!Kl? z6lZrvyvdk`-VD6??($4}o%j)2RNkz@FniwCox9ik46#En5_YAPUSquoP9@5x)QY^M zsw%qcCOvP@%B!f~zoxFeYCK3{YR4?$RQ--9e^z8EB|hlmDp6#VXp9c4=wpcdfaSh^ z{mL#N5U8ta4?8n1E`T^3IXT%gIy%a-)YH{RfB(KOpg_=O0n`9*`vC~%@eL`ZtiE8V zw;y_of%GR)kFTciuNUCnO~~*Ntw9A1Gzkq08w45e*Dspk&oo%UL3aEUfhK5x*#?lv z$21ge3l2aN`0Ex+Be^j!F`&qx<6{f&?(S|826+;6YHT+V(1IXOoNt78VwPyHKz}dOkim0afAG z;sVry@0#?VtVe}~g|+oTk-FS|Th1ZZesY zar-K5AZVYf)~%@H;Nd}4Z#pzvr#;=axM*5SNT^=;!eMV0@U&!cnx_tEg^sVCB4bmb zuxeP?g&Itaj67GjmVZZs8vo<@Tx(J%S%_3=Sy@MW`$qt?Q>m#*StKMRQIV12{1je& zMz?SSKr%6OF~3&V^iV+o7g*T9t(fVp?2HUwm<2O8w?^Lo)^%;P}6`=8B>XPjzeWMnSs zTRKE;ZrXs}^-#&KW)k4DK4-$z0qJBId>+v7poL*`jVDJ$*dsaTclhB>5)u=u7aRtW zNXBg!a~S5}+SP})?D}P6@bm7^94KZ?Opmjp%xK^owjf%8ik+J39bIM!QjpfwrG%>hjR&|H&UK@6 z@JSHBB*-*`4QoKfPfz#FHU|vkKX9r^2~Faq^+M3o(_7eD85uhgu~5>Bh@_nQ__UlM z=@(QiWc2PRjZNlezf`6rOB0d56#1LXiqpuWo~GNqm0GIKAS{{6(D9y6v*|;nhs6(` z_q<|f>+>Jj9+={8o$nuS()utyyS(#X@bN?^uKXB59o`>gFO8OVCW(>$l zE@%5A78W*ALu*Q^w;K8oYW2seP`@fN6K7;*zSCi=^UJb;fIL^iKNOq~S^z2u!8Z7_ zHLa+n#Y7x@bvioy`*-p3m*Y~PX`q3gYucA8!Vu)6n+-D&{n~1z^z8fu+yvT{c5n4A zR@Dl08d5>6ac~oX1ufQH$nFz;>W=r=TEt|Bj`lG#6&b@*q7!Sbhc_6f~cM}`E(su2I@<{R0sL+<(;YNi$Z1Okar9D!bnq*LJhJ=Rg zuIZg&)l8%E10++qNCAa6;xffn=o?=^1g2!ygEI!#~mK}gk0(8 z#>pS*^wg?QR#laxA@~G7nj1@fgd=mnarwNZJ`meR8yXsdA8_vowyYqt;j98mbXe@R z;N&Vh{7zE;P?&OQeXOk3bGiTbZ}pI841S1t1K>9S2d{jWhtignahTpxLpi9TZ#6WS1V7X!f(8f88G86b?xC&6Do0aE@Ssd*A zPhP%c@jgr0sS>yXb>=y;^~VlfTNhn*E=CY#qllnQ7hRz0&t}<#zbgG2N3(3ZcvDNw;Vb z#0@65-`LUgwmgr19uU!KC`4F)ZNG=`bmtefX@;y)*eyw=_Y(8iq3^aajYcDX8&`HS zU`ZH}-JicZm`vw!&hYkG2zFe8y0(!AXNdCypRv!8mV5@BQxwwH z@!oDT?vL2yHsH()k@v51d3hOfb@;e!(9oM!k3F0$e8_e`e`@xoiuRB+oSFc0zjNY& zk|ZJc=8>qWXsAl+dWnKY$gNu?4%9r##_${CN>x=AgoQRKX^rPP@){bqjf^r*!@bX` z0LP-j2RrGnLcZzGb#*Bhr@x|TG?;78{*13r){rO~+y%}b#Q{Vi!e8}Oe}kDE7b?R{cC|z8J{yVBO($yItb~vU4);jsg=PwltQ!-)IIt+{uAPf*;@I_N>j4O zBjgsqEJ0v&s{0yj>$S%gulJ(uo7KqZNgFvog%gU7Mh*>0!Y%>>%**i#LM#l|mCQIO z{-J(I0!8u9`q*Q3{F(EUEd-=EXJ&*S?mQ?;dzx98@Z+0FCNnl+)Jw1~}T_Yh~)f<1C+i`i1m`9O?!6d9-V8pSk8sgl4#Y~N_%;KcRMm|3nyb#&o)1s4xbtCjnoFW}BwjEfx{AAbr=9hB9W&g)=BDqYKr z<9FGnc6D_HBtloG3&x7voE&N*tR1MYO}EHxQC2~~01c-{eGtm^fdWEB7E0mv;D(bs z*14lNdx$3)m7mey4F1KSUiTLlKKr3k`wCuI>UrvM zuqnk%e4i}vLsHVyo>CJzdHJ0=TW=WJ9a`Ew0ug64N5MNl*D$a!U76_~D+5Ey@U%Ny zUS4EuqAX-fptHI|u)#)gbL$sPwqnX$DBsjaaPvU@WSjR`S{gGnH1s)(ri7BceLDRB z$P!nsTmg{)FdPpPKbN4OEO3*M3P*9K2S5(`@q;KR9VB|dsqu1j07CoM_F*=L3pARy z^gJTEaBzUpKF&&gBVQBha;4sOE6~{A^TN*~X0;RC(ZguyJt=*vUY(0V`Lo zO7`LW+bh;nUjxB=hGus@Apph&5aiE)_>!2_3ewpUR=!y=p!HRHmnyR_;!A>tp?X)S zM|`Mug?!0}nW@2}E@haKs_HiJ!`YdtM;OvRr2B$&S?L7@j!HazZ%0UGTdzzOs4vgS z){v+LMX+>nRSk-E99hki?qkj7NO{G^+`6I7haRcjaE>l7Cug_Ya(z>yCKgl$8rBD? z-^D?7&CRtiHkQL{BE5aPY1Zx;Fxhj?BDc=x;_Cg7D{|aqPi1A76I>I?uc7lht&@g} z9y5TI11+m&zvA1s0lO6fz;fDkZZW?@u*8LPN_iAsI{H&_5ma98LrI}Wm8Seumf;JU8RbQ%T24`s6q4J`&0PR)$Ft58yl;T)7+IJyECnT^Y;_yg&f0X}5C^h_i)-g}^=}5(yZi+T`T9kSt;Hm9C_qJWWVWoWT6arEkQ{v={t3?;zHQ2l@~%Xf*J5?xDfL{t5pp5 z9hXs1Fa?bVCcv7PeAX@=nXNDYp-X>}qEaCnsidiycsOlP5tS5&0OK6NbPO180khEa z#lfM$50wf;7$yrjZ)Pp%I9GkT1fUU&tb~u70iyH)CH5X+czEUoYv?-Dgvmh`3RUG! zm)-Q+eHq zNb->qQNar)6D~Z7q8b;J_lp%OWaAgM@+k_^uV3>R&Cdf3{GvepEpo-!#r%C&9BV{e zQrBZVv5+CltJG|4;cuqHH~I`l-;3co?-uO5IAWhtRPetVH`$WIC&5mUoj=`|&}GD| zw|uY5WbymA>$(Czy1p9<0qB^=$*8o(C{^yML^6jcO1Yez;%(KYw`jub`C^k!zJ( zgZ`PCQD2{Wd>lNwfg7|GV>dTi(sEo@TB_dQB~s(OwRpHgSfEpZQpf@~H$X%P2@l^Z zGfQnUE#qh?h;9vz`;d?zAo3%tCdqYAw!hD@sRE3JlQyWzvgMF}-e}%DQEIVU#m0m# z?h!wcp~GNsULLb%gRW%yG0 z}Vq6m%>jDkRu~~8A8qkSQr8hzs(Ib0lGRozA}=Sgfb&P zAYuKrJdlC%hvy|ce3zF8JPrpxfBTOg(dcX~h{snJjy=;a)6%vwgVLx=BK}^C9DMlf zq|0k-^DTjdaJN!<$d1k!CR+gsM{v7?p`m1NFPwIB)Y86b1>yT2{z$r-*7Rm8R`JG?n0|X>FM5dI9%s z&`H&*-#^h3ap!f5>M)9=e7+FJw#JaTG@a$vz{uw8oJUZ zElim<^idh*Xr04D2cidJs~jD&z}Ovp9B@k02T0#O1V8qhCjIzZ#wD4b*#(g8=-N!^-}k%ERa0K8SaBx22Se0-=yJG&w>b*I z?$_!!s~>lA7DB~pdrt?I>vxBW=Ntu5YY7CKyjsySH8sRkoqK|qwn+lj++KK-|fnvYVoq_NXgzRQa8q57xOlgw`zawtELwjA9aF z+vaG4kH!?erHtlpLC#w0O-Wk0#c`*lv%3?;449akU-NBhgtB`FZ0iT9m5-?LXJX>? z=*R+rv+-{!VJXg;aR%sICn92OY68q|GfBg5T5PHNmck0LV4^0Thk6<6FesD(^^|$F z`2OWw*3K(NY=VaF9TpNo6KSRE{e4GQfD&A`IU;sw4by#pHpWHmBJ;rx-9JMO%!~=p zH}$Ey-NamQ63c9u^#zqS4o6AB5Z=Q3AV{2n$P{X3(Aq?-M(AwbaLdm_!S`!z+Qp|Q ziH|T)qMsaF+rnCoS;dx}-TT~w(q-lnBx1s;>ttkPrdJ<;`{!k0VOez^){atMPR>k3 z0M%lQnr_pItjWrt38*OEKZgj!-zz2q69}lNt*xtaax7jhOKUMl(BY6BWD78?j?)E? ztnCK|++m;0;Gqc9KO?$)t74a)r1m|6M|_qPH|dgUHoNF;sqBYa&(Ja+NedS#sVqta zD^6d_7ku}9ePx2QB;H>PpO!R?YbAVec#WPQG%CTeEn#=+x&R{k9u(c91#XU9dc>|} z?<=)1GH%xCrnQ&-bu_$o_R?MzRwZnC9n^rfq~OeyWbteAu)4)XI4sKo0M+k2FmVQE zuaCTIHu&u(lBWqI8os7O`zvI%mX)FBVV$b_r@vosKC3QKU9}5An z3fn2+0HF>FdYILK=0~yPJ-rCZq)m?b{mAHOKOV;Gs@X}mtZ$%SM%k)S{QxCw9(N<~ zRgv6Y=X+@?>d)JU3&+`Sht}@(3f2Ce3kGZpApm8dv;4NpH+{wmb$b-Of*qIKavPXoP z>OD_#ii^#VS)t5%MdyvSb5Pbrt3BUt^u;3xmV(H&(ErI7_%{4LLdEU}iF3nZSz5**~`!czpx@ZS)6x^=+H2TEIis~)jf$fN|@}gMY4uxy8JM2bLH-&AO z=rV!^KHl%)n4G`c!6{Odo%LNZQlrmU-)UY>sqv#)Nunw-QRat8;a3@a$XD}qq&Qn= zSHX#Nh)IfZ|J(zpxk%dUamZHKPwIkubU5)g1(F#`U>)3AHiYuHlP%RVw&~N|)YISw z{SG;Ylr>a0Eh)_g-U{DV~|r|n?@!lhro{JVZjMq z@pps@>bDk^&!cL=ns!&Uk=GdmPXILQU9|DVi+P{3*s@|`VhRBNpplTktW%A$_w=TS zbosk)wVHF!ff8#{_<{-Sry#fcG*Jhoe~5^9WTj=5F2_!44BbOk$^^LCQPBytnD_7B z|J8?$N1Ezd>Rl%aLxTDp8c90(`m#&&f{uep1e`Z1Py#ySMIuQVximg+(fb)0;2PS@ zdf4|`gv%8tnRO%p;CrGJICE-re?rBC4~#|!xa>t^jo*(1V1!`fl{qcSbMTdpZ@6IH zuua&Tn?&UO@;AyvuBd;py9?tC2@Anbab4?(X_G>AW{`z~Z&vBqvky=Fj!XLx+uL^O zpFkZN+aG+&ty9-|Mab!k+y1HqWkAV*5=!_`6xk=b5OY7cL#gIUcY5KTb)d9WYRse6 zDrqxHN2(Ia_=#oP^ezoe1I=gaSQ;(w8r!MKIa}^S#HL@=jaLdr(xpYWYI1`dD$*m@!CP*?|*kTQpSb1|V7R@It6l35#no zPmX8p5mBJVe{Yh*tXUiXH-!)VLW>>rX~tgm92hCM-qdz&7DK&5l#&TSY!d3$XrAyV_8mI z%EE5T(}9vu$Wn;z+cfI?q4C!htU6uqVdk*D?`db~>k$l-4D|Xfn#lsh^ZwFVpt+P@0)_4APb`a-4}$g}uErHSy(b zcG~eBpaPb30ssJg3ZP8SD2sYMq9bi;N(b&9XodMc%P!^n7J7C9$Dq^)Q<8w!DSz|h z=IH2X{fcq0*JXf97}|;Pfj_SmU9+;h93P+M zR9XgCM5)_gfO|P!zO(3$)6$AiWc+?8v%mjm_ZOie)Z?8CRwH2U=-u9C2TmVdF<))l z0w{~Q{!fny-})i_=aa!I1J1wS2M5UM>2TxA!ynq3(a@}9*688VN6Zwf?;;R@|zhp!7buj_N_5$4yb=eKffV^44Yc|Bl-BO z_4Q0>pI+}}5QY*0YQV(Ob{#U^87<9|Cw)*njV5iUW_&OWa{ zWgWfhq;*Y=)oa7@u6drkaN?eCPQqeB+amR!tB?>}mg5@0^={Y2Qn3wv&pXXjr>JIE zZnA~E{NmJP2bHe8q5PH2&BYxA<$MBI*_IAUTm}qd+4RB`vY}6Tv+6)M)%Doo{D|t} zX5ovj_R(w8CrMiok&&E*qHi?|!(JOID6(Jzz*%bl^cVsGP;Ovdn}ZX*)Npa)JzDjO zzGBjeJiZqEt5?tKn^UHozC}Y0-NF4EFZ+6ZT6fpR=+Q{yf-@jYRHIy|wb(|+}b&(yaT=jhf%AC24&Ei{3N`52my7Y7( zRICUP1s9a9_sKXkL3q!p*B#zdJlo72Ejfk;IB_mFEUk}gbpSp6Ecdzj56f6qtu_;@VX!Vh56T>*3vNChsj zya(_>)-GqS%dMxt9xa|R`iCVC^n=#^KAFBk zSk{*LIm=-|RqdwtPtUGELd43-#w;kL=c8r5Aosi|)DA?>q6&!Fg*ZLaIbN~O%s5@y zpBkkKVocyqUtSW8|Mc_IVy4s`Y0M$?KK#Zf{nAye^erNLXXbr3Nq4V)=hwM3F@^si z#z!IldyX2R*+6=dhY>f{WadL3oq!P%({93hz3HtV)#i8JEx$e{rM#ivpBq@Q z@P}Spb7qv zI6o#iS%8L)t~E7J6E(%Ylu)O-9ke!^z1K!$%g{W{TI*+uOFZ z2i@Hz;~OQohWr#+b#-^@bQM7)f~FCO`%uum2@KP-v9T$@g~ojY09Jp>QPmc2O-eyQ zfx7y@1N92k2tZw)Er2j~isi9HOEMMn>~r zM+%8=fCpGb`HBc79!Q@wpf%*vc?NYYq}S904-S@EAP@@<9R1UZ3N|*@Pug-Dz_QjF z*32kahxl zTjUi^)^=Q$SJzuMcH~Zk_m=t)=G>eh+G%N#`zp{2)}=xSAs{4_k&{bqSC1D~@b&dI z=O#n_2AmG8thnz23!-2efouMvUI^>bwwmWb08?93RAljvX>D@l0hfJLeV`BUbD_#79ebcnFIY$HBP;2!nx%sg(b`#KJEC1JmAJ7(g&U zSOJG$*OI2(!}E)){GppHtwbK>Bs@eynFE71Jh)99OzSlL>ew^5Yr#-o{|ziUBTow} zJPW}9o>H;7xv8FIs%&^KK|`Yjf$*Lq(@kp$L1**1X?OIz($_9)0;>>fZeNMHTCvyy z;=dh#kW}HE_-d3y27Z`?5+h-=4C{}UlY2Qt3n5!K-rdU?>by!KbCaYP#3FuS0j6H# z&Xa5wXhQ@V$ei0u+na_UP=3d?oGnXb?NGR_CMA!>zP#7#FL68NTV3{_+;j%Bjb}RT zg5b${5VNYX5e;4u%99P-K7Mo>R@N{r+qxLPSKY=O94DT2klPQB2)c`u@!UUWz52;cU^?J`S^gp=R?Z>^U?2b)52Vt zetO0r@%Zr-l*7G{g@tR9;-8VnDYjBf^O(PH(`xVpce@~KWqpQ1=qS!u>ZT$|0R7QlKANqqon+tJxB7R5^ zd2qqr4%U+DkD)mH6t%mZOurqSFFJ5Y#7|9_n3-EBNy5{W)uEr-m`s3$P~vUkswKr0+y_id_Mssk5)+}Z>_)ioDZ7b@Nl4A)>1GGL z>$aI#Gcv=kxjV_xt|)J-2giw{zsY#&uoK=kxKnug7SDH?DWw zuq)Q9IMn`Y>tbu$AvO$<`n~U8*Tg1U$i(VmQj_)6wURQ5AhCv6oxtk+ zq467OZTn8dx`a&?hd}`o85L(wUlCoYcleC2%|BuPAa!eC-@u- zX5H2~ube(iPfw4-h4S((mg>4$N?u)`F>my?tGVeN12sWWH%0?d_hmI?}L8dDvlN`}Y4b-J8UuI<^s_O8Li z2fd-Y(9S^m2?x-c?Xin+q`)1@6@`o_Y^MHasrGupV*QGb_P&tF7HAgov;x|P;PQ;M zS#Qt00r$qO^6{+MX$dl$dA|1PB*u+{F`v1(6%%)GR9uz=O8D=$61U!(8-Of}$`s3U z5%rXmN7PiV%jjA4g$@HSX3dR&Q~~#T3+e)94l3hZ8u%E{zL1k5_{m_ZWqe-SrtO7Y2**5f7!T{K}+VH@BX+W>Jy}cSm-RkKxg3i;& zmOXc>zqp#-T36E`m8@|Oo>@F+g7&`->Xyc#wgCYI)wf64Eh%jdKq$~N_7pz2H}^~R z_&;)RT;ajNA&9zRy~;6ZjBUJ6^6z8epuXJ&6Qz$mmZMOP41C^P*`xQvnraI~Nf-VU zxSMBw@M>ym@|jr*iJ(LQo1V^M z7-8F7)(iKSa$V_HR!RSkjfF!q&ll24Sk*dVf(63!=6d$F7^Ov;ssF^$iPuSC)#}Zy z`8{eJH|iKZ&dsznM%S&us92X1ay@V%2rGD38Wa$4h}84#4-0gB*nV-M;0RIPqXu)&B(Kap+SW{qG~rBYe;3*^X2HIcT^;{%7EWrlPOxZf<#qF@FF4ZTyiYS65cH zMl#{%zqYc9%M!$9O^)hOc%#FBx5r;|N^Eny^ljJVzs^3~#EMawy>|ckF8UfFk^lK1 z9^tM3`@R0B|KtDt(f_}zLD&~Q9{A7dIcP#0*#Ew}b!O-VP4A}=zLo#_6&rrF+5i6S z-2dg0N&lY)n*Yl`65V;=zyUxotJ!_$1q5V}f#@1H6hd1IWpz7 zj`4S=gC`yDHrHQQa9fe4TlAo|C6NtmPimEkmUdpiihxE1EFYjjxF72vg@#NW$_L|* z4sm`cXRtk9WmAG^Sqah!zayM*T+js=4}L^TGBTYY0c88BhzTj2ZunmrAL2kfy)bdh z+4(5Z7Mh)gCmFy?VyjtW;rhj67f~BQ?Nx!yCh+o)ckV-$9uru1O-)%n<;Hi5$tH$x z&F0O}-=nD=Nns_D}AMWB>dTf z!SX<2vKL`U2G|M(`IIVnVgzyJs=LPISm6t3Su?TYmPL;?7L_nu^oPGc8F^6 zSBLp_QW8QmaJSCO+e_g7uY>Ihmg8{d%Dd>$Lp%magYRf#>bp1lLux2*7=Ii4xim8b zhqgiXb$Cc=I`55CWTrz@C;B7X9T_2mLqnSHogF4V3iUv%dgsm^e1Va=2#PMU)~i?X zwFK`hdsIli$h!Wh#!$c3n=!|9Mjx%GD&@|H@89z)wYBAJtc*80SVq?Z+N};^Of4xv z_)Hl@Z?Ig(-VOLvv3xb#glyf#rR7@UNyEkn3246YG4H?2dz2X8GA5%an_${23|LNo zQnbZ&8Hns%lq+r%3)f-SoUOk85Xl z{OIi9Yv>(Py4$QsJrA5p&Ky77)~rc}~tVPYVl zUC#t75za7a6SfQQt=KM{@vC^rg0gnGve7M2BZ-NL`x%h^UYAk&W;OMix;jIMe@)^X zyb?ZNLO37phsjiLv4;c`6o;zmjqAk(tU3+tIraxEtSd1BpHmilhyLc7tERVJxpuXw zrzfCm5(o+JIpMnOq3SUhX#kaO5kQ4UB#VfaGCtR;@Ach_M=zY$q#?B7X9SP~2Ipxu zD4jgulm}i*LUuGhAu}*%=RU*+4D|%iLA7{{oBL4suY!{Gwi{UHYS1O)p>7meosb;u zvory+pcut}izn(!L+rf<7o@E$n^uz&W?`UWAS8TyoB-2M9yv@n@FZMB;L~B24r=cB zzQb4i*ujgb?IFA-q#&3Ev7Z4m^z!l+bpFM~IJx#DJ@ez~HdWCmq{8Yt&Rhmd^dz?n z%gfm6^3J`8qVUv6Pfkno=@VIILB#=Hr=_`D0TFlcZx7~a)rTmH5(#^#lA$jooJ)$f zd|_|21&u(&g}#1$+I8_~$Q;>z6>YW0^~OoX83AE>jy`1PtyoLrANu?6M>$QhFlEyC zr-xlHTmNfb0r2eJ&VpxjmIaRhcp#YtMV0Ex$|^wd@88?h)O8dWq6J@FIo<2DDAGMd zxM)==J@ff3`T=<+#>W%IGF~&QbcGh=9FjMx9$RiLjk~7n8bN z17_$u@QtP$x~zCh3&MdJb-YJ)i34Q1Ey{{K?&(E9gA-QBK0|bBRptTU7?3Lb8k;mi zj3V{CqwC+0IF;*HD7#X(psO8(`e2OEB%V8rFwzPf0@A3;q=H{A1}_fl57 za^Xl))5)vV%HLXA>fhE9+E>^J%k;Bh^@D!5V`y;cX3Hwf9*ARt>-5&*pB@nDK+d4G zHnFH4&nj&|woiVqU03MEE>8jHpSy9Cz+7JS*vLemixx|oaFC!=`Th9uGt>hcJg`FM zjukI8|>J#jwoy*)I)njaIBycce6NTY8yKlHDo4eOxlzwDn7)Kq|>RFr@P)CtO zwaQ`pLEK0}eEb$bc#tbL3eWE6Yi-4KL}r(uBR;?#qBn##Pb|Mtm|5iS`3vVP#@o3V zL}&XB$2X>1KX?>b=8?<3!=qf)d4sF-lvEpsEYm^%w^@!)s{*-4hOcKwzVj$k{YX-@ zfB&*d+OhNH3Xc_o5-%R3PRQ+(kP3d*_Qz&zV7K6HV{(g+*EOWo^P{Q)ZAOeGWqn(c z)K2XW*!Ao8BJj2vIsV{-snQv0`dxC0--l+s$LQu%!|z~ZNl?F)w9uSNyA+C{2E(6%gFC?e0Moy^0MHq;@=-!+0 z2?<+){XWj&nFygF9GfM*x*+3ZWn^wDDUnJg9m?+ts2wgd%d6rM1+R)1WMN@N_DB^B zlK`vX1s${&I2q+^<{}4jGUa3BGj!#=yxfuXuUdb1gbee72PP~)KtQRiN+Pfdz~{j# z^2s}V-lY%wkeGO*=N*@?koomQ7wD0agAwQAv>Lw1b;HOVN zf&XfBIQrhIOA4RwnvU&ZSTWIPmTcr@5jnNDR1c+J%Q8mskUd;jScm{0CMc=UMuIy@ zOx#x7OQ1V2#N2`ili=Rq?_%$_<|iRzFzkA9XYJ=_k{Zr0K_X4A1D;fb!v!xO`7k7p zxQyGrK}rq`7v+|zt&r&2w8Rx(Ut&LiH5f!~R`CL@Rng3@;bD0hB_+}E1wPsXNE7Ow ztK`gqmj@sxU7u?dB5Uq-M)K8hav;Ha-$SB;V z5PY>h>U2R`5B^oH|PC}%HiSc$-MmhY}?u+T3tVY ze0!8rl%7WkXf5C`m2|7Gw;0s!(-$wi+Q%!0?;i3|P^6i2EZ(mq+6rIFL|=YT-~#Ce zj#{6Wp_K3<+AqdDfame&iyM}gR9WAP2nqQrrA8I-$0)%XaEg<&+AQzxuWy$!O9#9< zOdRK1uXUE#p23sL!lo$Vik%T6><|&QD0H*iA1>ll_%O>*vgv3m`^PU}p5~DO}DXVSI_b7KO0uLchC(^Xi?A4aN;(!^T=KU1`li zG}2_cncg2%#EcQ zO+t=k<6`x!UK;+{mUxr#iOZSVN@uu`9i zQ;gBCa+^Z*I7kze&yYw>+jqCLb++^|rLOCm zyq7kb>7iQg+Zf5ec>lPBRQeD=H~k*lahT(IdtiZFs-xMzOHNK6F{An$MGgfb46zQs zPX#gvmO+CpBPXXn`6F+~jaW zzdt=HHbeP_t4mxyh%Sf|9v-86MvV16Lo7e;`+syVDlQCLwW?=k?tEg-{>iG(g6Vv{ z$E9?AQ}!nsNrRc@IlHA3zvl(=oFnhI?%^7c3AK+3^a|vDKQYBd8B5(f7#B<7`fn`& z+2!k{JORzZbe4MI*WTNyh2KdiG1#AbNy7ETPCly90MDf*z%9B#Bz~3RW@e|sl7fTb zqL$2RAF?ZS82<-$yDTTi6Zpu7ZUbL3$YFL=UFT}$!kw<&UgE$ruuW>_nH|Qn^Cy;} zN=k|d4BK3-76VJCs;c^#B#QqTayQDySkCZ<6i$60wq&9`Yf8Kf^U=}pFEZFBMk39# zlHb37LErTr@$gv605ym^;=0kd8BlM`3`5;qi}Gw!AU$P$l=K4=D#xTpXEF;Ocd=dA zV=}bp$V7YM6gSaqK!gWktHO{c0bI4C@GDABgr`7y0zL{3HpQ{{e^FgTk{Vp%t!5C& z#AjyyDf;Z^v1AW<4%jBJd|0E{;XBye*?dw(JV`yp0hDv2mjly{j4K?j1yWMii%btW zEH8t#hr+!x*XcZcObj~*r`TvqGZwG9wp!ia!?gzV?Wl2h9{kZJr5FCvUb11^-13h| z426zlhDJ+U+pdc++oSu1Ff#Lc;R_(S*S$Wi%#U{#EpJBzuZ)6%u=&U3v_Lf_OAh!B zaUy6r3L#_$C94Jh4R#qLC}-XgQR3rIy&lizE7dyC)pI^=9cYvkU?xd^qFO1VtPanWYa|Zk#XZasw&M~ z;{&KG)qAsA#tKG$mZ-G*G^ng$dyql(`7B64E^H@G{0yQ5BJEG^zPI!cbE;!;3 z%+EsxbjA0vR)#Tdw*Wnndx%dhge#t)%pV!bVZh9o>KTU^>9c zmHEhZt#_t}>XCN&E?*t{6NGQs)z#UE{Q-;2#P=MyoXuc|4cvWTno;Au#h*aJhF+Cj zrzCo@*X6vO1vxo+!F<~doNWUTF|~*m)>{VcJhT-uBe|1DjWM`@qHkZEYRs+xsd6;7 zVC%BipCbwa7pUpi_kmR3#0nl+@UI$C2cBz*46oT1_MG%Z#>Ek*9?N{Fw;Ch!uH3lc zhii+v3w~v(q@!Z4(QI+{kI~$FvAOG#2~Tf9;SCq#?00o#JdyAN;Lt+!#*rI(m9Zj4 z3%}E;6}FIxH(GKck@s82Z&-(l6={4S-qZb+2fE~v!NzP5_9Fs#8yg`#E{#~ zRer}MRChDoJZ`Uw7UUf5<lif+{qWZ_Srr!i=;Y<^sZ(6`^u$?u{KWxUWMGWPIma5a*dOv&+Htah?Jm{ z|Lhr<@f7If_tMC?$@7XWcE@nnsrvj|+-AEylZ4mqGV`5HddWt&$17=$Y`I|kwMCA4 z!2ZBpOV)af&#$_7PkZivQ5VE^FwlBA*f2+3acS)qY5Rw_k?*uiSb#KFN_*2EwYvW- z*5YE4M$`FU<@#6dwHS?6+_-Q0ormG7HZ_9s;A2AxBfK`v*;(vFRr`X&z{Wukcn&fa zKHt0vPZ?Gmo2Y0ko+#J#FU-U;MUV+>gs;ub3f5t0BpwqyUJPz)HYE<5>u>Z*W6|@Y z*~3^6vLOQlA~0a5-w~ThzIHAiA-Mf~l4CB!D0Tl46FzWX;Hc?4Eo_c|Y9_TG^w^>R z-;0i_eX1}BLH9?_Y7xf&p)RZ0B*yh8IE;jTbUBP?1T-tnk-^*fW`!ts~83V$#gAihRGjWJwkGHJA z9Sdi);*Q0!&z?P-wJb%N&EvJTQ}jrFP`)d-H;<1GxN}HYT;mHev6sMx=H~84Mnz$- ztE;KG6<^Ajs7f9joU#^==SKYgpn%lzXZHf1ixpD{aB*F9(GdY!pMCR_C&;srvD8?7 zXXohG6jz;x-9dRejZ8t)E(iYTCDYas)A6`wtv=#@Cs>2%Qn?ij)-Ajg>!zX&GtB zC7G65PO#S_(j-B@kwH#Qj^o!oZ*eB=@^Ye8TF9<3EVImSY3~a{ViJy;k0ER}`}ac> zK`af(VOy`ZA~RyZdOx5y@xO*rhc6=90`g9Xj;()vVcbTNnpu63i|a&sjd9d3i$W=> z-8J?XM6rH7dm zjukMK@Dv~{z{f9WwAX3s1i8=KnaOlDY_9?{TYwtw}YK53aR`PK6>O z3w`_yh0FWWlY1%7hpKuOtvQd>$03;UHpucYan;aM^WE@kLvCW+Ta?HvdLL)y&AyHG zwfeU+u@N-+}n=ZNN@nCUbrb(6UnM`Q+ zIf`o;GEB@4gHo(#DrGj~!#*x>?~-2IA%4h9d*k|?WU|`H2=j8oD+c_xzsPYncTYk+ ze8{9Vu{}-3x5a?heC+pP|Gf9fFF8-6xNYuTdtqX*dW&QzmdmEiC#tUY2pg|kprV)G zlc2NQ+|LMO%Fzq1(FiZj9tZ$;ygd40CM9Yq{lcG5rsskqB4hzvpz}#W&JOxVDco#N z@lTRE4>2l+Na95|{^;gYTzDdcS}7g5#26dkrIC)k)@Es%i3oX+mE9wiH1jxa&Vhglz%l=%bM|yf4gUYla44eHjXht&8(XJn1};Q~Tvh-A_0!zH3~| zz0<|7rmnU$5acR(=@t{=XBaJA+6fvxsU$NH2JolhPd{xJTVsNPLwLwBkM;nH-kF)1 z*O|K?~QJpxff`OG=QM*m)( z9hvz==K3kyKpKgDJ0LB505Y#+?Rgg5WRX7oD(AiyEzfGYj3uMa15%{py3rE%_m`C$ zo%s+Q&=Ay?TV&)Fht2gig=YQy&^sR$aSVlL)Use^7a*lZ>Vhrbe&6r5Z&6&UF5SF< zdWh;=xde9a)=h!S85&8gW_!HFu~?gVn~@Lz9+z8K*dO>-QBgGP@w-RkLw-ckq6XoL z);K?K<)DPE*X*~cMdj{KYpM&Xp(j6Ie0cMuBp0P*daIH{sZv(?=q#*(1ha2wWHP%x z?09vRP1t!yiAn|gGXMD~x6CowtsNEzC z*_(iXfRT(W1X3tUM%g2m3)y0iq2@}54&u%HDGminwCJtINmlW3F@<(&Dk>LcZ;!n@ z5v8Sd{emXdXeh#532?0JvLC|nZom2U*4)sew?q^L1NA;f0PXVYhL5^|reaG%`=0_- z8Z{a4F!ju_q7V15fIkh*I46$(<^24+HSBLb#w|#Yt&`D=(P)2MQA6!%@=+7nY|IcP zPg!(7QA#zcABMhap&3Hs@Q@hArrQxQZVJh2ip!Jxy~}sFGtId*PmQIHHj3IOw7kAv z$l{YcOWskCN|LTA;h4y+@n+T?Gcz(7Sua#dDt+|XQE2%!pz!fyDP9|jm#SwfH1F?_ z7&0mPu(Tt$ARqI?=~F&fpO9d5 zKtuoBX)#z2K?s$84wHG;(mK>H-MYoJ9O8NZc$4WwbSnrL(=@I0%gJh$mX^x4ub7|h z20(%xGlpmsnaRZV0|4o*fhJi`<%aD?pZE&K%$*|7WLPvZ1o-%NX4ob2CM%>==^=1j z5=$Mv;3dnVXGk<-aQ(&9>$-ZU#CCI?;2G+psxd1^pXPYb#!9>J-*mm1B?{$en;6|J zP7VJlZO=K7TR|cl0{3!8tw(hp=;v44+_B}`+_2iL0yCtaEAdH^Ee&ecikFgz3i|84 zp4gt$W}0&U{`N{*PbmEl_>zn5)hqL5a!T;ia2dsaQd(35 z6hQo#<o*dtSaw=#fEB z!yI9SaUHph!cM*Yo=5>We?APjZ)VY;+)*Vq&eA#ZuJ@Kk4bg%K=K#)wY)zsD$ComD z?n}a8zoq)q#WyLRKH82K%)jrlHyM(8trUH;((qY58k%0$@v{>)HXV~T1cTLr(`@=6 z#2GEdEH%W~kk?l&x;{RSZuu=39iWw5X2=5>ph1?WI1^ALXdZB&q7*XaX>RLPx+YD6 zS!3bspCWO5QIU|*|3t%B9DhXt%LR#!2=~NA44r8KX>V{zDg0HO zL7pav0hB$nVq_wcIy&^=q2Mce796c$WHij?7_0+s2hIvW^NRb9WZuXRe13-0$A!(J zcZ~^Y(cSNCqa$rc7deX#I^9A3#l61v61%DhccuD;rml7*ZqJ_upd@A^vO7bmHt}yI zp((+xiz8*JHOsYffLZ!W%!LP951WQ;s(CbS4qljQ>#{@?{><9F#u-Au(Ncf@9>mMM z{6b%m>WAc9|Fcc*tDiqrawxqb|;yE}J`teDsLf&E$e(p6)M6rH z&V;c@<s^DrmeYZ)jYwWVdnl{3_iX#^o$i8ZtsqAn+ zq&;-$Zi`akR-e<+z6QT+PXqU5{&TF!XGKLo$MyT^of%S(4-YC+?cPCs^eD?eG3DO% z#s-MFz|HTs7J$wfAnUU;nMJ{n4IYZosEzF@Y}C4H^dn&P_GXqwI`FHJ+Qr^l#q&KC zAYD7uRWBiY>GWkL%w&tKBS(9c{i&ie+Epi_-WYWWbRmpR!V4&nkSpw0Nlxcf3SRGr z)(ynNW33P|7Jh!X(6@3s3!oTso&A;6vUh82b9*0rLM#vdbl-b#@@?$ppP#ZDBddK# z?B9nr5UqT6*96jt1dbFvQM_IFfKzX!IV|Nq&)FmU2CSd-_KGQ_I==oon>N5aiV*S& z?29S;Cn42AE>p;b^HdK(ZQ=OrEOirWlJS5Jv%6+L7zoMxjv`(dmJ5pO5MjG$%9NO#Mu;Q|dVyF1f;NV+b7Io9O`n>Tr=&h-( z1>hQsBeZoDqnY`s-pDE<*aH{6P1@O!7>A{9X+{^1PSeDqqBVooG)Nl46^wr?wGn&L z)cmqD$RGcz#{9N#Z#ceKC*;fTr6?CWLRCq4<=g^77`&-6Gy)PIY9!tKmVSGTA@#LU z=$G5{Z&d`!Vhxn4dYFV(Mb6mvN>cUiNX;u&bvUgf%X#;38G~9Jl zlkWD3f@0)&i1dpssu?oF%d6?YCLO z$wHvcyvkxAij6CV2iFy&OwCOD|JJhQ98pr-D##=BmH2e>%52!i9{voaJQ5bB4k+{U zb`pU7+4E)iErrCkT2M&4q!9?37ptdLM{HUR`hq zjsdw@!xnoJkp1Y|8bG-_H}d~(ZnTIIo;9q8n3D`QR4+liY?(`pKtVfzV;Aaqy402$ zr>PQoJG+I@$Sqtm=Podd#1#Jd=y#sqB0jq$HZk!y0|?kymjz7%XSR3Zd9r;_k z+_t_5mQ;!gmWbpAnRS1HdMpcZseHM+5HnY4Oi{-no1Fr$BeS}B{z_<7B zzsr5)%&ipzktir~Qqt7z=n~ZaN{R%bZ6qe6^cXV>3NAn9G28;cwWhIlsJuQ3L_0Cf zLZompUL!36qdm4@KO1AD?uRP~VmjhJ;HqlAzdt6qputjx?kcc$7=Fsx74xj@tejxZ zKBuXjjI-*b6MaZfOnUid!a$kEQRuQN#Fm5&VI!h`+9NX>+_(> zfs&e9S&5l!>EFzG&^M#{{C0V@n~9_RR58V|xgEQ8E=u11xKMV)#`fw$PfDX``VEHs zuKW%ss{)SW$7MJZBu+9t?OlDTY|N_OxLVDU>$B(1+4$bRMz&2uT2vmX$R?uc}$5hcQDcin%K0!f?B(HbLDJmwsDe5jI4`8o_yyN*--@RpJW!N6) zO@?=nkWd_AXh@JCxov4l&@+z-s(IYu+0*bRTFE1(uA-oNF=<0|Wm*E7i1jYcvu95* zi>ycYG51|TV2IH*-5Ow%qU}zK2X_pNBN;1@2uAb$dl!ScfPqbCJiewE)MGr`*N7WA z)1n+9+?l_vW?4IQHyN49*U*~K7nHeXt*1YN1N`-?KPJC#phR!o7Yw!=jklc^70ayt zr6*y*q&x5YX%VwIy+=)=L7Q$vlQ!?Md=9gN(VY|0azf!^g1&+jWy|gF9eaDP%S#nK z`(-`($*s~KWfQY)3nR7MEKd;V+UeHGF$u=4mKzysBj(U4Y_gcO+PTD!2xfEZO+9fG`j8R z5a0oRRw{_L9%6v6AWZv^i7P()f18oeV>GZ>=rOn7Bk^n#eRgzqh4fkM2sSC-T>Bfg!8ue#U{n3> zJ9h2h(y!Qkmvz*7>~Za`=PvtEea_?}4kkzEhxv9;nGpFAv=n3NPQ=*0g38yO8_lE&)qbC@mV zFp*tt$`|#_h@h-BHkPVi&SgluR?|P2{({;SwVJ_HUPyFs8DS;7mDO+lPAf$zs;bvz z)qW;9Y^fz~Q~0MVbQ^hcBBmc&AF;>|z9xvcA3^Jl)n4=C%R`KtPw>syg`@G!R)Uz= z*u3G${fn~Oy?W>bm%x)7mLEJZ6L&SAhKf=7`gQ7Os;VAdE0Jc&$*D<@uqi5vjDKa{ zepyQDZ;W~7z?9qO1wX2@kk@kyo$)LDQxfH|LyznsxPunVPm<>>uIOWQJF5BO!(ULz z%{%u&rw8UfINzMgZM{}c|Sk|exw8B(}jdkojNM%@i&OX!$)!Q8% zdMM)zuIcv1yCCkPaHHhVXnAi}ty8+j%tDuy0T;E5EauB>qnEJqJw+HtgI_Ado z3E%j_TN*8y)$*Y1&`~Y{#r89`*C!bav;1q~#S@-RI~sjlm6P7)Z+0b-J9T>JtYb0Q zHKbC3j-v?{#UK^uu|bzwZ&wC1=L~+Hc<3+PUd&+!tv_ado$8=+T%(Rob+V+Bk?C=@cOw%(N*>_mov7}jn`2V(N9k9*s&v? zQ6_~>`4-y+0nJ+svIdZbIo7x}pvKq_WRDNNE z;;~0ZXNR|kb3@g$(JDAPphQcx%8ME(p<5BVhUM<=cy4YSe((Y7C3$&|d(5@S1s&#$ z5V(E(ytbSB=K3$YLhh(~4{y%{X0P@xMX|+YQYpKYH*b)aZM5ei^l)`!(amAu!{}P= zo_&vx?Jf(eADUUB+OwOKwB%TNfcDe=%F4uEi_r&-tBC(lX#Shgp5Lw-Y zp3!ZuqZmv?5ZE?o>CQTU!C%hx6+MHGLCEu;HlC}e^vH4tmgrhA$iK1tlfs{xdr-bp z8tj|cdX4h+clO-qbdG3}5Z^TaYrc?uQ}6K4m;k2zy9{{i+lC_zyEW`KqBj7D*WER|JMF4`M-ZXa<}e( z{&4qWYgLNR`~Lk}cu@{B{YTc93S@v9A&Y`zj*EDs0rNAM6$k!upU8gVKjn|%Ev%ot z?X*B8F)vOgLA-y-`~8l^|Gc)dge>UJzn%;p|NSv`myNxORvPtWaQ~k_yY1r@^UnuW z^?GvT-&%lweY*e8pZmD|KiB79-@ELx;ttOLT%#SA3SRm2d;X7irs6wP^skGybQDl+ zC!F+_`Kv_??M+RWAZxNKbm{2AUzix32wMh}d;l~rTUkv}aT^jBi@IWHMny{vGe{Y9 zbabd31~D=%b+NHwNUfE(u_ZII5E2rSRZ_gwU0{QTW9v7J{Cb}O(&Ud+Ryzefy`tJ(@@(#Gh`@6H^bJ^B z|NePu@7}-`WDY*@-_NQPDS7|?IY>b#yYkibuATpBgN?E7!%y;1xf2{=euIg}Ng0GZ zlJdh4?gCh0&w&FXsiU7P^K-{ql#w|qzTilMz~?uexk%6>vU2pURo7|eBK3Wvn(|0& zJf^C>dBcqo6d}4*0}|e^GBQpaJN8hvv(umMJZXl8Q`>qM9>&>OLCx#CbLt9ahG_U4 z&tan?cx;G|NmmOx3IuRw2*MSJL_<{ZSIqd3&Y=)3@Tj0*DfdqoZkDEIO|OU(cmBJB zv`4;r?4h8>s2LQdeOX9GB*qd$5{iR+ma`aA^Bt6XcVfp_D3%KLkV;|_;t95)U_E%` z2*05lzHb=?+pph$jLSUs?AW=pskyl71spA|7=Qi-#bO<$y0D&my z=cie8|I`-9{D?5?Ki#s3F1DGOAtt>%eR>hXYs{5Ce)_a8@XRerF~YL&TdCi>2aEd5 zW>(sV2pV4Fc&z@RJLcvF$n9sJ>}vniK7s6#qsaEis+MRA=T->k+8R>xvoxsFVgwR` zE1_Wqdw1VlnHzh#e@Pp1vDq=N14!DYI6_-BN7GV6%WM4Qo^kf|S0_2yxK2JnkH|D6 z5FFRolq3!JvOf*47xu}62M=DnbLXtn;sgzkYGXr#aa~8YiQ|pv7nn;Z<0{Iwckj2~ z^ZpIA^-DHGB*oWO?sVpOe*Ezxf$kZLzJWo6sEZJ$-cV8oS`4{X+LGoCu;HXK;4H7Yd1sQ@$;`2L$rWP&MyyUJ9^$>78|m)P{6Qg5kW;S4t^E;CTgcC$PguVsF7$hVWJ^jj9>kBY14qO*XEf6tBqd`tgy+OBNUp1?|=Z7}v}X&yMK%B6;G?8xU!v zkj61&Q5E(y)Rc(>-pVy;+;#JTF2hvuDg$kRSA6_2yQ#0xl|=wi^p_f-!$&(x5M_RRGs@7wsR0_kh<@`MT< zoe@M&K#4`Qi-GjWtEn~9u!$fbLy_+M-zhTDW1>u3A0k?YD3tN~#O&0}5{965#96Rm zl*Z?qT=7>3B#VWGWg7U7n*HF8goK3atE{7id!!eoO8dLcI?^({ZBc`RF-~ARRHWJ6m)dnYH2@#F-&yj zde^9@?BBbMUdZ~Pa$A;3(_rP790dddE3XYP;^Pbs4hq=*rd;-(m6cJrn4yt-Yke1V z>LC$pGzJkWud%<_uMukj`=NmI9r-3?a33+uMc(Q9 z7=ZP2T?RA`x~>+$g?x(dU-ygFHwQ&(-?K6qCU zOfC)O+}4w4&L$TpZO53x&oe{FBt>Yjd;8F5L!Lu4hdv{$n~21MWCT@Ow$ma5;C1|e zqLU^M=1VsNYRB{uTw-vJw(-nERUFMWs)v$tb9SSIzw0Dx!#xZqaKqQ*Jf{);@P$|* zAvw9;2fh)tMjylEojb&U&>jbe3N{vk0vb__LWa!CmnqHT)+##c68V*boAtIIw4HM- z>2K4}5JoMPrIA=D?V+Nhprfir0xj4K7F@%J54S++O_2FS#y+12=J9@dw&pD7>j$Kt z**?54i?ep;o~|tOZ+Bm+2h=;QtX}US&$oL`L-SjB(xoWJznVGZsKL#K3Ke07i0y0_ zPG#kDpYD{6SM}^-R`1eJMT7eCsf-`*!6Pp(1v}FmY*pkRJU$oNs%i7VFxcRL$Ii6u zA3ayT-$=8{R@Z28Kht*6@X0PumZl%WFW=V$;>8bUunAvxS7TaUXtiMD7x&9(mzR*| zWL8%=d3aOsnd<2i%_wr`rxg=VUH#4@A0(PnXK&RLV=H9cm;lOVZm6pg98Ws(dx*0V z?}Ob4pMx=!zB%p^w(d)6eJ^#=uEg2|584&NlyY!jU_jfYo=;L*ddOO!qtuEKzjTsv zubpKdGF$iet#2&C$OKHQS=#>?KL_cSpmskNS%p|0&+gkTC~SX%z=m8I8|+QY2rzM` zU-;8ok1Z$s!UGN%cp=~}S?rloyKzGvh%*d2aOy2j>0P@fEn&c%cKbHo36dp2`~G8i z+ivICv%ltr@C`b1jP}8yD=8@%ZL_%w&;E2m`Pys^+mnER%P)+i0%vR@K##dudUbgBrLSqEyMN&Xq5j5YU9G8cbr5) zN=!bfiR*SVOQL~36b}`Xc1ca90`N*G1_Yq=dlnhFmq`5c#4(=ZNo2fT%FsZA3Xf7n zRmEHT8uL)~An_Q#nLvu&Nt&fSvQ6Zk59$sFFZKmLr zh-Go>&>?o6_x>=48aKoS$R+J1xz5^mqCUMty{a%~nt-V=e$@Rt37bJwJSy zfFa+vX#mohadZ)rgUlmOOXB)<0g{DDHf9m`@D8Hag|1PPA^I>ea&ByFtFtCA$>LPC z{@6gO*rwp;&!0mnsb;Y!654k2%;F<4O0X@__w@8YLF?9eQOAWiJg_7K8AQJ3oXMJF zY$22zsdQ~E-@C=N`<#m7roMi4tqNdloNw173$6f&e^S6T`tRQvfBFkAn3tE)zhk(E zK03^Yz;v6W8E#$c}7Syy4##E&Z)sX|h>}fd>QHF&j0Vd;W!ZzMO%;`c!7KxJ3o$bYaZ>gwM}kYH3MZX0Jdag5 zR^iV>|L1=)IRfbgkv3OHA8Nae%b;pMt8&ESma&Rq>u(+1b$RW&emh=$H?z<fCNAt4}1@(blQh`ThFWx-X z?-Z2(?wyLZwttN&(#-b%h-I%m_q|;mqt|A5^W}ppP|ZTHE`qFm!?EV%zTXpmnAtwN zSj{N?!jQ#TQzJ~zW+yRdaVer*7tLYR7s`X5P~eA${xet%oqf^D*E7*V4#8<3K1g1^ z%x%?Mbm>F@D#(ta+Z2#}xO4nEMY)$p%D=xJ6FxAv8P`TeW;eC~IQ71@^){fFmsL|E z--3YF)b!kYU#up>CLgc;zAAWP!eqDh76C&ahEYL7rn%>Sb74Le(!bGc4O%+_4YVzc zN;7*$arkv|ZgqWRO#Pc8exHKf^f5=M8lA7p>%R=#QXEX`M>qA1-%|6SAG?H2UTa+a zz>K(kd}Jc+nK%Zn7RJC|f;Wwu-pN#@?9`u{pZ@bgs(EOC^y~NJW@^tO3~9e>N;1h} z&)u^}B}q-rzL@8c)M4E$f9H|YGy^v-ZaZ3BY+tOqZQC|92yeIzuvDNDAqrr(R;TEb z>?};8kE*Jq+MJh|9<2S6_NNtz1VqMf+5IFbpQ>0%`X3mN5zyK%NxpxK&_wuZQe1_sQ;Ci78$C+waR-5)}*t8&@?zOqGBE7uFBEJx|uT?`HCd}qUq zk*`5r0muMe9*rFuGl^y5;yM^sTM1o7c?10g>I;@ftx7h8Xk)x;kFfvzIG!c8J|mA* zB@&F@h3EoZ8J5zBp5rOnfL)jSTD9=wCeyi1o#tzqP09%>&>HUEw~zVUxzJPUscP6U zE;}r1x>I4!@|7zZi1>zr6ACHHVkKos$sNHg2UddZK4`zo&uc=6MjZ_=Rz+^7f4!x_ zV1_KCU~;ofEkDuu=#R$;L*ZlU*nPw1=6jirOVZWLu4Dj^#95>FdY4P zke)^s;u=&wQpswnIywO_Rh~viEBJLP=(y0&j_S$DnfY$MUhkG4$r&l^NRfv2Qef`ktnaA3T@4?4m;t+YynliH#mK7A^|iU19Jf{rxvTQE7wo zNX<*GbSuQDj+T*nncxb@%rH8L@vks@!32-ppN`Kp>Zxm*93}?&U1*?>BdY_8ThC5L zi~4n|M!{@TwHFuiR)kGYVp;X&WZ$lD)E_nDH{SmRXnFk zlZx_vh5dVEWpOEB9;aYc=tuFlo~3AE!7jGC+z9uO;b>rtL|`$7Ab5&@#%cAkWaxL_ zH8D?d?upgmQsn$lgTf1DSr*%Tbm@KM$oSM@czJlUS9`AK6@7?W3TkmO+KLxmGQv z^6JWta0RrQA%Z+DrN!mmq%#P4VcKdL$Y=s{t5*0CT1BHe_i8Aj**YU`jXT=Lk6sjo?Xj zl>`-xm8j`Ca}A>im7o~Fjji(9W%l|tHGcd`HEFFhKS?T}Y<%8zxKx7b=e5S|(RX4w zw)2d>a2&hukloP@>^U&(L6U|n^}HO5tp1M^5y*l3JwkPiE z(+*}iM02?Ed$%@&)6YZvZ}b}RudJg#;jr;wktKxwXLZZUYO{`EuK)-&gwYU}jdtE1 z8$+9hg!iRCe}@%fg(KWa$o_sQCz}PQ^!V@@4FYi4grX9r4eWOUDBKBb1>{C3L;B&c zT8!EJG-+p$r)49w8M6ExbTm$)yL~@%Ugrd#DV?P^UPvD7yW668MdJ#WYuOIHvCk=r zYh#UWpdTU-Vhrw}r-eUxJoU=y2=HK>n4Da?7Pomz&5r+rdMeMU3teK|*NY6fOG~C) zOY)rsKeVJgLyND@sw{Zt;>BQ=$L{V}$?x9h4Oj~_bSw^#oY9!ZLo)+PNB*YDF(q$z zvCVnTa;5jM4H3?Nuw5)n+=r%(s$jy}wwlSm9W5S=Iq=P5ZUyfyPE10VWjt80MP*Sj zXRmVfv6BMf@Mw$nynTc=USHoJ?aeFr2cCt8UzBj!9{e-v80o|euDU0SESec8%9QDf zw)Bx*-<(952KOR49mNF;#f>qdXHSL89EE@qWpsaL;h*DY`6m5?#^U@(P@pnmo<>yw zois+MgNEE__FM=g1;EdkrBhqWS?pigTpylo@L{Hkjz;X(<4x(--Y$8t{%x@gL>QI) zJziOtbs8AIFFcrthYsg(eh)GE&ua(g7NCd!WdZhQ5Lt;1?3%P|>1@61EdF?Neu}Ju z@7%eY`JE_Qhp~Z#W3)0UNdgm-WDr9=IvsdX5QYm72q@u<6|;~~B+wr`C?u1ODP1ke%aW53hc z+1Xj71rA1Y(wks52deOQLPLdx`1dVbOsIn!3TP`N$D8a`4P@yX?n+J{asRmohB&zfUl zZus)PeDb=Ji0SIe)w+68HrBdp`gd9FyuBq-Kfbd3J^bTC)35t_3VH_y#?Jt+E4-Fz zh{^GAaC--}XATFn>l$<-(HKb+N$082jVHi$jIClt?g%aIud(bE^)j{KVCQ6}Tel>u zE8^A8XckyAL4t)g0$2lbt1_hAi9C#vvyzfhJg!AqH9a5N%-K$`@uJ;vlM=VK=F)j# zxkc&l5%QZn+k^oeC8fBF4leBxGge3`Z9x z@7vzrFUYjuSp2=UjmX7tU6_qqE&Yb@%$#<=-@JO$dp);>b-A?d@$NB}Sd8fRVv#+0 z_4Gt>@yX|M`a^@e_wP-7_m0w2P4>o(8+v+=xL&85116!28=Hh>3sr=7(gT^!@-cMI z*)~H`2*)j$%`9v>TNM1GV~()#8x+PuicKDRiJmy#omQEpY$$*HNcrKKx}0lO0D z$~8R~M7g>~5Q~}!cbR{FM*(uyKd_N%bM(3_>M%I|V$yY7HgYqryD(K$PQvK?P(0xn z-wDsn#g@3GS`}ij=*ITd4;w3VghTqycC}>j&xw_O%RN@E<(S+`vU65R`h^h){U2K& zG2_sLX?=30f5HBVZ(!BHT_Sr0=XJ`%EpB#70J+idvz%o%_}1zw8@%S`zBmeh@(Pc- zXs)s$%>%tOudX4f&PCCQRE;!{rl^@y6l3HNqm#cm%@1Z+DX3EX^UStTxytyPQQ`^H z0Ry~4a4_KnDifFZV6=Q!t)=-SJNr*!2nz}am@do2GT%;H`@66ymhaq&m@5!cP15 zb#+msUl0IFGyWW1{eBTbhs1UgHRO>OW?E{`$7tS5i(b2I_g#FS%k9|b^ zIdYkAa?ys1m^8elagXA+WD#MG`5F4NW#Qp?2Z$f#+&}YR^` zPFZ_3DP{dy|0)|t4m$u%3qw-`P%cK=d#qu zZZ#4^Qk)r3CrBt*>^C5J6B^%Yrkd7@Cv0;QQUIJ3)CatBGwsP~8I(*+M&mafgc%$s z?H;e@2p(r<#!)wb@*l+#6j<-RUvaYw>>8^Oyt&yQ)$LHM``BHgVeG3RW^0&>YL{=g ztS&dji0OZSr8?UBgzKIm>-lc`BrE5fI%s54tT=Lp#R_3LImj&Gc-tX_imMj>iFqSn&V=-4fnOpfBb)p&NZ zariE#@%h0{1d5QH9J%9(uRlg&cn6p^z^<&Pd4f^ekTQza4PN&97G3^ZKrR`>hCJGb zXhJ)G-WO6mNl88DRYJb!Y+!HiCEG0EF!7&`U6DJyE5wH_*3lQ#7=|^XhA`@0nnBmP z{zlRAbJ)k%O=doU0Zf7?JYT&!Ng!r<1|*0Y-pGa(J`+^`=1-S`2chKyHxaiZygJvi zv8luJfP-j7yw}&RJ2?`->un3OL8x5V(m2&8OCiUk7I8e+hgx*29@k8#NgPJPNC2NS zlcDi1AC^pR+W({P>NTCqH&qT!l`b*_i9qM_f@2tVgg@iVYK<=^EH+(EjER}-!;_cO zE^lr9*3D_V)l_Pe=~JWS=*PGF4B==fRtgf=cp4gB_r(9u@p18k9#+YSAnSFWRTS#F zP+(h`u~9;~9g=YHe>G=o!^oD;UO;-Gd+$x^=A<$4g!L{OLKFM0$RqmYUWO|8tqC{lf82Ohxd*nE2%C@`C$u|Y^S(aO3uiyvuTt#{W`bT zLWwg*#L`exDwst}=>PEc-r-#T|G&6OMYaYS$Sf678D&Ie@1&BIorLTyB*{uvva*t- zL6S{EvXYg|%^sA)?Q4?$rvy!y_#a@s zh2han!8qPj>-xX+gMFYSYxep3-^6Pi9capP&aYqJ%GP%- zl|9<)qx^ImnguNvpJ!AeHU+B(=KO|h0$T~`TdU`+|K_YI-k+FRMPd=MGS<7wr!U^(AK%`S64b0%31nmTu{=`jQ-s+pPgIu9w3*U z~i!VMsLo&PQ}DnR_p2){$bs|n3Xh0fv6>nkP0CBHU=c+Q z#Fwgy_oj=MJtr^8z-(3xPak;Wf3}iHhx)4`z~SM^%zw5YNFe#re(43IhSJlIZ@zA8 zZT->GGDvd}pzUt@{oY#13nA{{wXh8AM-UO%5m_Y>+jJF)RCUayWbnV^`7$stSW`N? zbBBnRokP#4s=E5;a>xqN1n164#j_W&BR(G+H#1)~jUapuiE?Yha}u?V zmf+|B(DXbT%x*Ahd{V&}xC3G{xsBSaB7)l4@z>tIaO2l)@M@EVt8Z>@V<15>1v_|# zlZKVCf3@vclN%pao27huX{I`24^ek zNB;A|+x!CZUkWWIT|V~x_MZ9tPGN1`UB^xw%y`#($XcM+p=SJStFlaPz$@tk5mXN9 z2JR!Tx#FGxX9P)X8KP+R_`z4&6NC1eJO^BFncG@t{gBdl_~3khUWD8HS>WhZwe^OF zjz8P)C7t^GMYXby0-ug%Te}deo8jNLZ`UMXJh@?2Odx*tIXUB5(T^o1epS`SOkOaS_{l#n0eEba}1mFg$Ts zkhiSoGArbp(8WNv-GH|g{K5poE!6E4hZ?`t8aL%M=unUp7|GtL8KsC>sakRS9bXD zm&%HhHUqLB?{vu|-Q6ZG zy?fa&2>ufW*v&_$2{aKQYj{-}TU#sNv&;O9Wv zm>ZQjwx-n7ROnEaY69w`u0}!w{v0Gd*cYNZ?%-Lsr(eF@zp0>&!wGGVhr+kNcb+rB zO}T>jBlfj_oL5O-U2?KyW_GX^?7AtfkZ_zI`D;ziT;SRTX>hfro+D(XDzEL2NPMP>Xg{3z5la|<`DZVJYLIPXK6;IPnQPeWP5eCbM-&g0sE zONo}|$9c50%QvUx&p-dAU_KpvnQiZr`^uT;yV~|#PJH}Sgg5-kjr~W`bLi=kZZ6zc zZJoM37*>>-QaLIYaOQc_nrVsd^%oy1zg4+vsUGF9k=}8Vr`mD*3ASq&?nzc0I55f- zVbS+v+}b3V;$~O;zW9yjyP{;cM6{~bVy(TmHP2rYWBee$=TVaiC0OO5U|kDp8Y_#n zhKTE7y49U>H;>1`(Q-g&#hQ$B(S`gJf+YxWhxN8#vKA4acw2HWDu*I3Cd@n0ShJ%f@yvRUejza+Zy|pS=8H8a6!f|wjAt>XM?XhP^2yiw`URoV z%RGA^Wz-$X@Kk|QM#yo0_HZpz)|Ua(^c*dZwWiG~TNR1&LlT8lL7FleMjR5$)hbU# zpLcg5`RcSpf-eOFb^6g}6lHo;?8TikJ+?YoHDVJQ9{v?VBKGxz->8$44V{)6WtOXY zHY#I4tX55!47^lZTdI;+(7UozPvios(R8nKWn0<%d0f?X=FF-p58x{-Wv3AfluFdE zd>y^k+j^tn7X^Gu-@ku9AJAT_w=v7Gxmo`C^CyI{=gq##Slb-q^I^114Vmcp_#TB_ z7^3My>9lRCIgd-!T*R0|ynjDwTXuWQo!FSkE!l#+#fr>hnoDoF+%|Vg{BtbC>vj4R zwJ9SzspQiz^X6@oy=~g=)y^~l*)pIU_YDOISuI@H|Z9c0G_!)o=cD+{1co*Cu@u z!THSmNG)8hJb?ekWWOH2?!sxiGHQT;xT9z7A4Tc9(WP$v(IjKtvtGjdQ7%J09Vt*W z&dj(VYCii?IAfc1#sS`Fep-7uZi@em5R7U8aPIay*lxNnQn_@-NvzPd#oyeEta`|t zO|ma*Xn)q*TxpZc6`TE&j5nO+($qmYskA1l5r)RiqNh<&!!*iVTpaH#M%0JuV}vZ$ zt&!JzTYTjqoYtN`EhJ(75}PA5PXo8$IxuO7?mu=S%$PS$A^}RlPl!bHM@if1rLgiKDU_EMn zIm1VyP_wdMg4wsGA8nN-1LhLf7b2XUjG2;^eL1|Y?#Sr6de)#heQo^=>F)rPt-ZgV zi4V57xA%@SecO5lm>3=UoQe-p`$-&f=`~V{G{*kD#@#Y}A<`K39vEXV!kgbVck2J! zmN!0I6Mg#Dk9Rr0)O+qHNkr65*!^g48Pxlzwo-fdTb3fidw2N!?!3Kd6s_xLs4DTu zYlYhgBY#VaFDWV2O9=^<^@fCwiG`gGM%NcIrEQ*3Ms7UWI-S}5?p705yyv8d$9hZ; zl2p8l*tRjiW9#>;JA#JM3WN7cS7Vm5oW+=5i;00B@b>oc zb5{m178e)C7$`mOvi^9{0qiYG?O9Zpt?(d@?+cJPKkZy2%xjW$d=A5vPw71pr0nhR z)R&7ihOz|-R~NiR0c0`M>8pS;2YX z$Ef|;LrtcNEX}IZ0j(|V)f5dS{Ns1zs^zplS|`37WGL3ecV1Gw*|s*l!15$6Zavlb zBKC@n`6>w_n+&lpp1Nmh2z~do(lls1NT;vorumKyS3Re1-|ao^JL6J>kR2On(2#BT zFfefb?Mv2Jmg|vlsDpQ;-@o5Q_fQh-DCPr$gN@D2UjUFUr*4-BVUei!_uh)OFc?q- z-u-(rWBP6!`VWElKbiRNK5lbP;&=YzfB$zq`TzXm|F0taQ7M}9w4}%m{LDSps`KY2 zAw>J!)_UK6H^PMrzn2qVrkIq_v@?*y$`R1+mgx6S->!GVA!b5~hIkxHPh^oJ{r}Y2 zqYvu;rn4vh8E@AA-?a5x4+&e}`@v_R7K51z3YX562YSJ7# z`0W*sNOILNe5Cn3Rz3Fj2ZW@Eg&?HRP&dR@heeAz3qUf;;Nql54p%EI7(e5pWWbtX zeyM#X7K4EDX7iq57r;*z?H~MGKMF!=EC4bBLAfMwc$!W;J7Z_(VDNnm>P^75KDY-z zXiZ#S>_MEFhle;an@cSOPdRj6d!dpbiHH>_%I#S^6#*YSu1bCJA`23%aGt%$+9P6t zY^$ij8DQ;x7JbST^s}>agCtIp42h+CeNX5SD`!|0)Q?1_Qb;ee-aSS*J#R_hE<}EA zp7f(Rl!Sc=D-R@?L}3o}J1I$pvCn(;k#18Bi3a5Ord=f!1~(z-MfNF)VqM&~FaBYW z0hnxVtdI8;IR31{4s_CS!;MhiU%B?MW)Ru#v=EE=wUu9W1&Fqd|eQ zv9U)B-q{bC4iXKPr>MmYJD;Tks*Ugto(V>}+gX2`vD$mDfI5C;n5{13xbSm#_Ir7GZLFdY^c~bx%6s?H9o+LJ zm0};|igwP257TcKd(se756p7k@oT-C+EmT(Zo?7)B`lhRnl?S7YA#_l#15SX0_^9f zYd}#6CKJh6B?#$h{nss*qLgZ>E0g*QL_7`tHI{cC5@F#@vmTOMf@s*sfGvSJB8v`%N zW;$ymRsQ*LO5!jd36z;@%PO9In`nM7tkP4vE(be{?NIGaSR2xc5;){w_?cbm51AXd ztU|TI`|m^&!x8OV;DEm4dyPg0zdmSVCr~(lo;64*X#D5LxEGa`heKj)t2qM?NHBw| ztorLx1fN2n3TjN}U#ekMpIhsTcU4Vqf#ew#2RCvp5FvA| zpX^Y@ip?2`&b0nX_Wd3%iedv(3m3E|yA!KM#O54cI|%tkbe+y!#2E5t^6pGy{SLwL z+bQLJYn}bCUrycZnv~AZeA7^r=}|;Y!!l*AUlpoJpG?IeecTG|}%a(2^b=~|j;7!Qk9xw!5!7*bnXG~8)C)IBHGV{5q)e24^z5!vXz_|@@?pN2XMNnP4X1 zleb==YKz0lJs;x9O1Aan$wrH=EMJsf#tzOp}=V?RVgv zR%X-*PksG+gs>l*GaWs>l&UpA+)IF_IS@Lg(31lw zh&|3%rI1{PCSAk@F*^^?p|0ocr*$xl1A~ZfPfzs1A&mi<2rY>bviu^-Pf`khfYVBd z=a=T5hT1|=3(YarvKtAVd4ZaH-ce zO3Jq-C|}koaG3c#I|!UYKbJ;F1w*W`UGKf&%{lyN$!OJ~;cQ06E2mL^ZnImr4s&w) z!eJl3+0i5HzH*vGCLlmWOB;a2R{g2TE}~^Cc0ctJ$#`e9%H_+uEf-7PP-q7D61Iei z4vD-!Pu&$Iu(?R(L!81Za*=xYHVhDH^ct3-C>gcX|RU z1u`|Tj#aQ;irB84Mi7)!ddnK38$xi41Rbfd%)P8-6WB6Uc){>O`NKt2qx6cX*qGLq zT4v9|Y!0l|TPm^l`|ommSZlL`h%o(@(Uv_746dy@Hsg%k%CYCUHr?Eh;piUfYRQ;c zoMT5J0?{6eR%WMfqAK2`d^rsJGxu#df*6U}%V~JM043o?SeItMB=gA3!s6oCgp#8Q z4S1{_2LvrjouX?W5*#(|HPkt8M2}5b3&Xs_(BgO+$G4Hn)6!AL?&aD+6wZhK8GD@hlwPN@bt^k z!p;J_A|64ILV~v>;pCQuND#6wWJeOwI1(E(Y-qjK8x_Dd`rD(x+yJ=3dHp$kCFbQX~E4>wzfn|Hu>}^FBWr$i%q1GTk~t0`IY~28WNBJ$ph=TdPWoga^gL~=kcq6}ZNk|!o z>*Lse>g$7~c5-z^r?v`)q2l7=_`ncoWHjVCA3UZ-ndzU2NiL{&vWM#lOB|*PX(K-@ zSiyVtp@&t;Kx!*;I`Xt9N3Js?+`Sj^9kA%U8;^H|MF{D;0P_^34A=ys197LLRNQGP zR0di=?3G-~v9cN(&EGxj3Xq{aQ1|Ri^Shk(pEU>dJDn_j~+LgZBEyg zutEVtN3xfvo&-N`PR|AF`|h^oAlI9LPo9sHW!Ti*O^PA3f@}x!NO>stG}T z<<7A-+sRH5DJd!5c0&r)cefc#kJV>+l<&kk#YVOj95-=W8o+}`)SHh@HH=(N6AelR zX%#5V4l9BTS5$U?mbc6O17=qra(y zRMFy$%y`G@EFE5kmX;RbSY_t?DRBU-w4_AByiF_fj@IfFL$w@n^;LgE{Au1(Etp@J&V%V%e(yzyE|74wDui8{QzMA$ZFUBcym zX{!GM;9dy9LF11e*#B6b11c&*!5EBXzfsqQe2G2F*6bc2=pyf15J1 z8aBHNgH`?Sb2X8N$+miIY@liW9)?`FOpl(mAuTBXCk@xs+=p?Q+hgv)!g#w9gyOg( zkn}Wzf11vMUq83w*6lmS>nnfbdy){&=&`W5!Gg63=7r!TW)gI<{GOPog8}@ZzyIM= zr)`|xwar93m z-<93d=B<)oy_Xj6_GDwj1EO!ygv;qyv?V;5VV8icZJc_ieCiX|$sz`lXhmtXtH>Tc z<|?WX*$H{wkk8+-qsNYcU^&#IVr)x-w7v)Kt_$xR)?HMj16aur4yoqQM+y=hCR+^j zqBTH=sJ2_A{0P|UHoWM1>C$$nrr_J`9Uk_($R^1fW!rYh@g1UV_o2>_y>(gXU4gz( z$w~zuEyq@Rj+YwdmYWL`$8}tU#9b1Oy*-am%HpB5_4T|v)%5$ioY+B10#}5A1D}54 ztbl}%sGwN&UX4t?Q~~FG(B1w@=gE`$fAXW^A}Ro%U1dv7hDriYtARi?VOxiD4oGHH z{O!6F|K0FzKx;m&&^2@$Y4dkwc@KOdvEFJj+|pI}HHCgp`4(?|&%Me*KMz`xO7<41 zjHX+j+Tz?^;|FLYZVrHmi za$H|i7fwFed(ZkK+%0}K1*#w3PAWM5er}>YR8jG-X=&d;U5Gi;?!h{L9`?f<<^oUL zWSXzAZL!MSnyKkU`bX%T*~tDcG8v@}G6w}`mAIp-twrL9az)i6k7YR!&Bso*RXsf% zFKxG5Kb3NL1W;gE!wc*%j6yW9z}TOab>!&Ln=t%ATC%pbmY$K3y7WhFN1X}Kqj!|l zgvdhIec}wJmG*r5V=R~ zMgmN@e}NqNN_j!th45Dlet37JtA6ijLW;sdp#<0qx}Zb&WvN7X4I#lM0`3MN3vX%B znPEh#h)rS2eIjGl%F0R{`3E2NXLA2Z`otQ6bn(kqZz$ZjeJo_-k4&lRN_@E`xAU5l zUHQ?~qeqX*rmEvq6Qjyi5V2e0Z?a7bA+rG!09z!oR)sO3ASljyc0i8ES01nt0iF5P zNC4JHLYtD48H5B!x_$eG#rTI@Sz|Po{hC4P<6EQk=fNa;Ug+lRPC-MKFfW9`J zKdYw~t@uEjcTs!X$VNmUnle@0xlu6AQwRC=F!bGPcWW=*OL<5Lf5_hYF}i3P99fSY ztC{oA(K&Rb<;wAbVP-g={*_BQHZI_?sKnvpaPt2B@9vTduz4N8sv?=(nDwU;DO~3J z^H@0O_Z`>%TE*gi5j|UF$&?~YK`rK~xEJqU@1H(IJ#^{fMOenA-7jp@j0u7jPB}6P zxaD^5d%2o51L>DXMn=*4OoHG}kk0;ca`Eo&cq3&QRnzZsm>5V7k=U<>)RWC z2(`S4p;7Cbis#DZZl``KQb{lr)*rK;AZlNyrI=aC$>~#CF^O*Z7QVr>2hU?SgGg{= zfAwn^R7t3!XPh~N!2=$Dr(36!BR#WT2SNecK+7#ji)XJdlx5>Fd3*b(PD|7<*U+#y z-$!l_$}X3y0{DJ3bp#+-3pES40Et$%Qo^>42t!##c@)saBV2W^)3$+b|JgnF=Kn5o za|uSCN>lOd_hz6@J7icwM@~=be}43*HL_U0FaLRC-$D$K3WuX=WV9FSdvfDS5+dbO zWh2--qB=fWu{#baZWTYXhAz*?!X}iSE|VgF3~&=jrfdA@Zk0w))5xt`@DRF2`UeHD za|tfkItse!wsAP!_5D;~YLZjHPyO>`blkzCQ<9ufy~#}ZBSp7NgmrnCcKPlhpKcyY zJDMRtf9PyD4^No<(ngWywY%yq*6Z(|@gn0yIltQVAcAJi_$^|vv zU0jnL5V*V1Y$f1-Q3_U?((A0u25NI{jP#jL^ZqKRqb&F{_axiP@SfTvdeof|qFR{a$6me_NS!E#|- zC;9nHdQ~DU#K>$TC?g` zPvjCcvL_uEEM`sW*c_#KA;`X%RxnSMk*n;7)+iYMu4T5?)UQsLqiGe^$iZ&o#pg|9 zs$T~RH--)*FJvvu&l4Nn_4f9Q7b%05v#%Zhr2U5O@65siI$yzSzhNviyL0QNh56{i z0GyTQ-?kwVBIxZ~J~@B6SRRQ>I3{o>!h3`3;9=mSq~bT!zSUUsP*uBmSWHL9ZgCzTxNrR-63PY!ea2Ct@~Nn*pCeWPNevFFs>>`%mlGDSyU&FR8D zfS1p}t#J4Z=)L-m7-VTfBm(&)6wie29zVg1b@7snt@Y*>)Kp~F)qVN$rFU#>Ok^M8 zOHsSq?Kt54$03jLAS1wQH@>GmQpt_1q4E#vMPh;^=Saj|#6~IV#XLPdR|4HJ)`Jux zSo8VjQq}SvgB&DaK9o+DOjM=Cwr^$imK%7YEv^>etjFFKezx^=rp}ZucZ}>R{~{Om zxMnbr$@1Rf;@`$!KTxt}TK3sjbZ)-sw4flqj;yQe>O<$#;u#bTIxw*9WO;3hGQ}uL zL2dsEgTekfmb-=X!WfKSUg2S0ZVV9>3P{k@xpK)y{?V`}=IQFjiJ_a;| zg@pw(uIaI3jjJoO16H2MRiQ0#m@ojwTdFF31*olKr#-{m15eYaZf9<+^3g(`#lws# z9Nc)1)In_`-X`b~M^691l4m>l`}Z?I?mS0?ez1kg+MUo@ig6sOWkPCRwD8>@FXvvz ziMdAhr&cYmvuxZm2_Hj91q7DxHHf{ven)V}iG5FeeE4=bXb1FkU{YFA$@*0XVY&y2)fuPFnf~4}sXs&cz1_6j?4x0^J~c%;KK!Ms7o;=8>Gus( zq-!<3H2xbsF3U;FJm9N!#?I#;!<*Ek?k~^l2A%Kxp69oFR-o{S!gG4yX9}?;%MA?T~-RTG^wHftzQZ zF|_BzGLKb%`fc~bdCwgW4yYM(D?>}CXlF;s-|STIi(H0VCHiy5+ahTw@z7w@-)mq)jn(n9i;iHRVw)I0~RXS@dr z&2HTp)NT=}d=bRSb@my)As_;B>l){QB&l7!A>+J!6m+4UtFB{#HkqZ+4~nfjF-D|c z>~o&7c`Z2haGaX4_`GZ?mRb&aa%7W|k}h4oJ4A_{6)kM^^t)#k7m)&5Ik!wvJ!r#0 zU;VP2SsEiFjwZJc&ZkiKzBZ7ysM}(cFg)V!?jIDw&3oAE&&wma&dbK9wU8C-)MN}& zEo9iSWRtMR8%@QFz1GTkL}-$xB<5);kl~CED1t$~x4YeLWP{Jg3ia0Z;OZ>d2!VsnPkdQ*v)W{tS zyFbgr_0*nXt3#UYk=uipjq|q)DMwKZTldbm@zpvDl?|-d=N>%9C*RSaKVvYr0kerp|jcpy^GPZZHl5Xzq>7tIoIFq;(pAzpJ z1akfOLC+xzR`1}M?Kv440i&blDkRN4JqhrFs#z85A9*;xlJWLOXLD^&yywP~Xz8nL zVe;gZyVy9-KuRpD93BUIaStSDu)w=C4j*fXV;}bJIh?1htf+mE8$jQLP>+$cE;HsK zOn)G)F^N{_^V5pDU4Gd#BHGdX>lbj7{`vIF0A06T@Tx_vFP&E}vQvO@c)XcdJzKD` z;w-v8e`>9dL4q5?>g&#@_?R^4{VyhMnha;JVXBe=os4}p?`0V1yN?#_Qkt#8Y{_gg zoiy6m0V_xBf?i!9!svn2HLiuz>ifwB+ttgVyg7Y|20SE~t?=OEkqy2fh2C@6G* z@sNM$*EKY6XU`5jW;;-~Ownv;Y6-8tyf5>6z1Q8;0^^65NR z(BI+G8D;8l`>?n^1=)MThD$;VcsM$XSlJ@Me^(^x8CR5|di_;iaYLHn8m9Og&b%J#(@?bOwPH6Bk){_x z`Sn|xNY>q@*VfjhMc*5I$V%|saQ;#G;_j6DBC)e81u)ny>Np}_S~Tgs!Rh_&xt=Vr zoCO|=-?sJq#GtQsBI8L1cZe(sx`K0ag&wK7yyi0^6a3!TF4A`fch2*6Ma;?c{`d8L zyzZ5rS56QQa&Y=wcK`SI!MI#B_jwsx(@N5cZef5#6iPFG*4{@9aA+XA63FA&QHksI z>=G{FAW3R?=WZE33Cn|6O>FfXr0e(`>YfC3yH!_LS20?^7kfFp(N1$gLIlu$G(Fv{ zs3=s<7zsT%!cK+XbZk;`Tbro@Z`haI=5z70JH%sRi=E|QCVv*V=9(&pqX+`JYeh4& zBR)R+VCGIwfAa$D-nZX!;(U9cqo$%@AYA@X$VpSJX@5#E7GUZY7k{d_xeF+i16EEy zuDTy)su?XyOH0srD_p*?4YL8PI$Ug`-pHkT6tdU0<4&&LmG9@pV~zWnspaEMv#;YZ z0`u!196S?#>E`>urxwl4Jt1!sSO7|)VyNbAp%iRt0Eby2=m9LVFwy0Dh03#R!esU1 zoq4;(>Fk8f*pw6wV$7TM=O!i*l!RPNZY2D(dD*5&S7UP=`u_L>$g0aW^Nbiz16i2a z=5M8atGT|hHW$C5(okm%FfC+%A$A+oKzX~bF3uJ7tOw&A+0b<^MdK)wkaz(42X`}m z`?cKO;317=41RNl2m}#HkMpH#$V2huxlyBcE!TvK=$c%+Z^67#R?Zr#FBn58F>^cw zW2n;Ij!e6F#8EJuFaXTSUU?L|^TB$B2AYK)#Z=Y4i9sc8?XCWD2@-}f1W@t@(?U=X zRblq*p;&6}9@ptDDuUC#_%4Z8mxj{uf$oVMdEeaJNWi3Yi{}`+Y22fk81+_reMwcn zrjRc2M4#k+th9PV_)1fV)dTvBx{B&w9{ZGNO#6N&YIIy~S(oKC8zrZtnp6GCdF?gt zSyu~=2e;AsAj?T_L{C0^P8fH;gI~-W@pH;i2XN;rMD6v}ek6a_zVVnONsOV{1Lp{- z2N$>UL>%;MQc9>kyo0a!H;z{9*k8U>_6-jDs;6^+PQ?vhyKNihsUNMa^>-8^t>=`4 zZaND8EVdsT=24&}Me_>UUJnR$xt%&EzI?xEbs#<_Q0jE>ncME z1vT}Mg)t`@=is1jAeD-uI2il(GU&ZszTSw40_7`SzMEU{%o)IjW|o#nmV_Y8OPg0F zUE>L2q^sW>#y^5dH)u&$0;N?oD=MeS0z!f6T2rcR2a^$8VM?e43M zew3If53J<4Z^nf2%IVzOf3)|JBGcYWgRSgmo6zWP$tO=L3FrAdMHU~XG>~7MW6`Ea z1~WnB)%eoD?tMs1=FN=(j56*}V4Br2r;<4H_isgq0{EJPNIJZKk*&-;2Tz5Jn;)bG zC^lTu?pUxF@+_k=v+o9M?fK&79SrvKJ*Ai$?I#c7Oxe*}HYFi@(P-eiSd7M5w(su@ zt6)o%k~58% zu+?vfm*Ve)4;Z2?=hH&_GeaAHT1qEJCbk_VqghD$=zK41IPhhQfO5+7Rv5DSFnX>+I_ru>Lxb4-!UCws`|63Th^PfiB#}NKg@j)s-_f5HX=F9e>~BX)cy1WG z&crEmLnUhQ>w`adQvu6PwEnUqqOnZoEjKIw9v$87RBiK;tg4Fa6GvcYl;kOhd zz~_%So6wIo@afez|Ca96OYrpgV%nOiQv((&Z*gPwVQ}yZq)G;~-km!Uu-u`y`5;%5 zg0jvL>|Kx|&mgFe_`?d_-Q7e&7S0)hi3OLI@@|^Ht4oLI9gJt5gZf2reSK+ZR7|A| zpB$sQ)hRdKy;%~uCHa8MADO5pd{{7RB{QXf43c9GNBDLw>&VBdmSOrf>;`XJ#E z0XhCCn36^}4ipEQ>x98RZBC=KU z)$Lc&uIqo}56fV_LSV6{Bu|8sha>V7Z{5CCe$y6VFgAGxyfqUJb0H<0aY%HqZu^ls zzwr0&{2w(E#1)9my>Q#dn-&0~knk2DAPX?~{QNw>N$pd$Y;o{kM|gNP+GcqfOdH}; z*9PQXC?y29i#~kY&47aq&o8vRY8I?`3&Zy z?UlS40=%_PN2h$a=J&wC?V0wjMlCPlo|-gCo&owb_we{-P9t^lCV_1uf8IAX-#YyH z`R{yk$pHp?>raJ#pZKY6k&Cm(j~-?PVSRIRhIc@KyuI2Z(4Sd8m3)?E*Aa_zoytnt z(S_ssFHA|Z4By4sZ?6-MwM@EjdLU(IU&dtvfpcV38p+{$`8S_GR`928%DSsU;iqh$ ztX3oE-+I#db;;6)P%B{!Yv?IDoKL{%gSG*n8%N4_b{aJ%3QkSEN~2aGRl!yO#hCy z#GZ4F3?DH1(bV*oapX!y3mD6Aw0*pD`D?zix{AF_G45;xLg2S&YSs|wi2ucZ#S!Tx zEa{4sORtYJFKsM(CB|E!yQf~KK-g`GA6lc@XAxD+vA3?q2I-}1%$CcrAgZ&wkEUex z5KOo}Wu*l04y<1+A^UpfX(7S)){RL4LtfLfvj)%`J>9XxX>c&=ea8f16Rgq96e7GY zivFNQ?+E;@uucs9W?3UK)ME+bRv8MFVLp6vM(=_U?6h(U3dulg=0AioabgxH?d=Z{ zH~9Oi1uO510Yziv)0z1l=!xpH$wRrg?4XS%mCWqTKYcj^A3Hw%_TKRvL({I**(6FY z%yq%g%?9ulKUCylKXT;p^4zd3Hb%XV7Ki}~j6QWYuZvLBoS7=2Igc3}uEiNe4(G+L zp5I9M>Rm1o3#l;Y6y%L$SzoG(Hzdd&axzHSLH>WTT(DS}LeA6pINi}j{yiUd36i>g zypX90E8?TdF}-MOh|~rlKe|w^X(aF{Aix>*?+=EQc99>p5wv&ub@(QD2H&vPos2(xIAXi`{8&-!`23{YpNSFowB7ScG#3 zm4ngZhC7f23Z$&*`}b0XO($}eBAUcR_}0GkVnn{J}YX%t&{pP4nCAiH*l zmsH5Ca6p#h!rSN*%CzT`BiX~;7w(E%E`E0z6oBqwDV(lR)-t!_l!~`=Ocswf^ggE@vDjtis@Xoqm zD@*2W>MdHNyO~!xOYVKoS)U}W2D_q=O%@Sms#@Bk=j7$b z;_>w9Ct<8F5>5B*fa3#^zyJ@5^J8*Gc34?iSwQ?6M}#~^*>y$3!xG2Rn&fP4=Uz@Z zr?)KaBxQ}N0W%*jaZ5Sx%FK=laMsu+Xxd1agm*)~@XebAM z|2`~?p_+rUAUsl<0)0e6&i- z&tFNZ=DxzScQ>~Z+Z+!I#fmeQJI$iG`j=BE_jn?7yEW>pgF45G%55tvJRI@Qd@P%L z0d%c?{??vr#bQ;su;0^jgmdN`JAn#X-M6xvPVy|3^H4h=R7ZJ%cef7%TchWrnlq=B z*ASp{TIdWNEu$<-m9Er9AKnj{7oIX~a9GIRhqBSTQxPFMWs;{T_8ni7YULx_I@b1< zTafDkd4gd*JMnD#7Y7$NmQnosAy`o2S1#(g8{~Wa`_X^=LeksQfU592|M7FMrN@*g zbqU?wfBmr)dE%k{ub<;9|M=327vg{YHGG-noHzGmIrjf(>!|6lDsj)u`1e&C+gfoO zKvhuO+JdfOwnm2Y#8=m&6Uc)Wz4x{b)xWP>{PFbux|}!O#Mdllee&iF?{BTEQvdBA zU<)l~R=Dw>T7W<51IlT0T5Xd5+n@OJo#6}##l%^ zvj6)2<|DXv@cp-+<9+%6>C3EXT_uDx_?v&mUc>7ET#XRTNF{z69R!^Qehx1k23K&U z@Xy+2y{5#P1WDfA!Vh~Qw3MW!ckB-uqUhX3JP`M=yjW$lQOUs|Eh2K6oQ$ln^-BKN zGvvCTw!a)#Q*TKto!q}1e{rigk5~F(%@6X6#%)ceHmWWk6Y^UnAK!~om%sRq!LYw@ zrs?SBgv&zoK|7|2iwG7uTKtq_Z+1n6zwJ8IHnWvGSwr0pS3E4{!oG&k1mezqWjj1Q zGjsD>bGl;m*$8Z^w{?p6d|?HL78YEPANUU7mQU@w>^ag>o@-FMzg@(2y?{c2@o_d| z3m#;VArX%09#YH1ua(44cIzUcu<>LgM~EC37uSvmdHaf4R29kuJc2fa@ZuT;9jL;a z#6K9xLDtj1{aDm>uGlx)ko)@|*DYj(46Vx~8P6xmW^d+PgNvEls`WT3f3HkzgY?Wb zGr~b94O&QbB~dXY(LZn}`~mOP4Oi9zRz8 z+xodG4_*}g%0TVD{@rh`eS~`fmpQsZg8(i_Nl_{$obKsqS-*pA0t_(HFCHLPiUfTHjiI3fiV4bQW`8aXw%-v1#5*!F!HJqvOezr4v_tSn zpB|2qA*5zdmd^Z8fAuPZ$jSo3OhV>e3ItU|P3v3HVh_zd6#Bk-@gOKhs0p#i=vmJO zWsX)RL=qtdR~|Dkq>Lm7Pw)<1lOvxSZs0z9_Sc-&y0zib+R5FdUif3Mkyoyl8|ygL z1|Jmp?6tmnH(#58u{%4pVJ#Uxg>F(n0;;;Y!QjVn`mhdqPhD|!Jva46>(V7-&chFA zF>IF(9KFo@%M_}=SROt?7l(8ax~eyL8P`-CfWgaYTTlw|=_+d2ozBV0fuamS*-nis z7`LEwB;t^2;`S%oAfQd$?IDzKm=9E3q<28r0I9gQBG-YLcKh3H>Sw+=GWg&B`STiV z7p1?;{f>%YX};(!pUH)N9(n_GTKNyqGngeeew`ik>@VBNBE_?AvA7GX*?{LPdG*nw z&>^X6YkVQP5HZ|B8T=_$xo`JwrxBJ-hyb87c-o--fH;*lh~|N8#|C6KMnXPOH{Yp^ z&+hO3{tHObJ2y9X%koy9Szey)@RKthg~M7S4h2WWJYvzAL3DK^_^@_!y=T*T>n!mh zgMRK*S_5?Lh!HVbh;4_YQfGE$>C$7dg`b8h9=B4dIy5o|(+1CWTU~iyq#)8~btCOb z-2_i?PI}(aZ;uptv~9$SxOV!ctuTJb_otpQDD4~St=3gE;ii++bxJpi(q1r+eRC>% z?3$22oz@54&F*~Ze(QV@UE{ul8!@5ZI208dJ=1sU&9^kc#c%7mvKv7PwehERZkC>( zMH(PblKBs(3yZfDSt9Vj2-7Z90imbv?8k@owf1}Or^x2{{P}0Dr-aJdN*fXX*ls)g zqo=J3-{(dB^CaMP3Agmd>QsNKW^&Vru$Egml>P?HjI8$K*9K;5sx0(8*X@yw@Hwzh z6i%r6M#Czn8QVxsC9<6S?0hu$Xe8EXV_M{42ZKTsDG3|%l_wRJ%+RpV=Ksae^%&D?ABm`^h z3+3p~7@lzEFuZ?%62E}g>49^pqKkAs_s=Yc2`%*}VgA9)Jhxk3U4au8L1$w2AGHv~ z@tGp_$ce$BiU6@e8u&n9!tK_{c~*UyiwI}@nAt%XBTk4>AvFfTx994Z-Yu)!?2apT zSfa1bH0=FSQAMcJF@YuSWI=Ly_EPJO_va2ChlxTK(9!g?waRsef}qcz%U|mt+4!q0 z^n#*O6X?pga_nl~@KhCIYYG1WkT^VvAiIF>BreQu&5a3S@sQPY5CjIb^ye?$6~Sc6 zI+=AbLfH;=T1ke6a`@_91&-Obhn1l>f7p;#d>a598HndZ5Yte2H&Dfw>9dyhBy<(* z0-AhSOzcnw66xM-g#=zsQ9j>johY74Vq+t4x+~jd`I@`B>e|1_BMZS_MYb3BCf?Kp zkO7(Z7kF3j&i3n)gdq&UVezHW|AwA+VtF*J*cH5IZ|FH&F8)0)bFUre;O6ePDHu7m zKeT2repM6rf=rB17z5XwR&Y+Su*sVesiBjWL-hsm z=oQ^XK?9e&BHoh7%F+Av&+IU9NIrjDop*1fHM#XKoe(j@JmO1Nx`eoigJ*~ST-kr!!Q>v?5TM;Umng2Fa z7b~Y?#pj}@M=JTeq(>IfODGpn`#Km{Q_I1|vkRm?t|M$V_kHiHYU(O`dP)H10p^St z4>L=119Rozw4J|9a?~&1P(WG;o)cn_X&XZ$0FEt4sAcqfzdMd$zJ`7X9tjW-sgNAt z4Oky9rU0270#XRVW2?1~kI%ugcBov|#d~qOaYXf%MtuBWBa92*RN~ldJB5q0EtudO zBq*BN*pohRCP1Ew2z%4YS|mUCNnGR#LlP0?i@_lmm#Qt0ptjY;*TJF$Ll2T1Ejr(M zO#=eE_O3UpDzWf&V05<0-7fpKM6CLc9`z;H#lR%V3I@MD+cad!4Y4J-n_+c?=nj^f zl<_a*2#o*c)8k3&D7JN=wWA2fjLjvUzZqB1xwG-OL3Q!=vm(0*%KrZ=Hg# z-|D$Ijt8FFyVr;^fgO6bYddzLwB-_4ggW+7IFvu#9#L2@{y>>nf3E8O+T^9&4kdfHdaEAyOk7`Wjj}dsjsAMpO zv567USieP8Pp{!EynKi!dJ+>uLFwK@1Q|{06reAWVIr)wR6i@5+h)M}@X@2`@pB9E z5-spceZJr~O+(hpP_o7e{HD2C1G^lxAN8R=A|v$3k$Z36P@}3GuPJ1;Nlng8zgizS zThp@S#WtlW&%_zms8a6i(A6%Er4f8xW$F0j=~LmPTEty_Q;zM8?64dRJ~v6i3R|&v zR{>$;gspPVArWujF!jjs#StP&i>jLOo{|Jy5b_}r`lt63B{MS+wesd`0yc}J?wpm@uJ&DS0=XDt$-IcJw2Te$6*r&WfpS7s%S6cXi+;x z=}w2SOycFf8KT>buoQT!%G%l(Z~`NO-E*y+g(%cGecJ9~NoZXc|VWgf_!0zaYn&{L#a|;H-L4W(*7b6`!PfHh$xd|_M3v>pb&BSg{2t?z^p4+ z$Au)z>UD^3^1@>>*~iZ{GxFx%oLjDUjMO9;CIv3du&7yb_C^)ZOS{^Ak7-+ zFek}1@K2vtQE7O2JyS2`w$0x$YoGO9j`z0eJL?B|i#3WXwV?m^DtG zF9EvAK2)y1oX6i>>-&6W{_i>G8J`{WpHDNc?Xg=t_w&k+@*<)8=mJQ;!}P_>!6v^R zJ_OEYy$XMx-5tBmO>5S`OfW9|tKxI4KG%ySgPi^V+CEA#H(^L|;PM-8f zjIsFI^aYPKiOmb}#TXkKW1*vi;!#zf^-N9B58=E;~1ek0KJ~8^I%skoL-wN zEO9sicndE{yz>xKa8x)^K>~USZGXqL?AU8iKmDYGFG9Z2$+@wmr9ffvb^gT99|3#kX#T;2gQrTe3cMq_{(j4y&)7B7d-H)hO$do zOa1eQ&JlJOXLmO@SvjRa>}<91=c3@kfQlS>`w-M45&v*ljeoFzBDj~ycxFh~dZ(tQ zu2-e_hat8^$jri=?Wg{yBdHso4RL9Rl|vhU-nt;Pdhm$Eg|}HXBVWw34~NR%0?~hh z3^R?60~1yfpupxiL@F*cJT`f;OB60UPs-)xJk{FWSkywyW{EXRk=}}fb=k=^d zb2=T%lS+NF%eqzX!w$3uXFQ7gnf2N{fJZa+h`I&aQ3r3*htx@nQsI}{#ZUFHkZ4lS z9#=P#iyU%i7A0{o9SRpQ9aiZV+@L@}%!KY5fqyHOTFrzCZCCoW1$`|dmB&B|Z${2tVcy>l)j zEC*3H#k78(UWS%**2dNuO{*7dxz4%nYY^K!h@38D1;t$MKmhSyCs3KYoJBb}xed`5 z^yg10g7{x*(_U3DG8zcqtk9>;(K_V9>%QlUK5a;q&+!`VPuBl~wf7F^y8r)%8#1Dl z5s{G*mF!R%No0@8EMyBQQZ_}%Ua4e-kSHq|8QC)<2_YdQdvET?=e&;Jab3rKUw_^m z-}C%BJB*L_=QW$DeLj2?R{1W9I%})1ROB)`58^B7 zUHcX3#TphLUeW3~M-KNK_^!$&x1(+RJN?giI`-T(aUK9M{t2_YwmH^fJU1G0o7*fO zEyEV#7b|BzZ{~@!hmRcaV!hX&tK-11`%su^^fp~g`fX;;{&Tj++pYIaf0jI)R`sP# z{!tg@^1TxKu+JY9Ot*|l{8|s(Ybqu}ssKeW(OVma<5EqvXO)iq&EK=3$gAEZD3{t1 zq##vR_~YHa?Uhnp9dpvN;k&ymAMNGb+s(rua^#%YRe@Eq<(HKfw9yc!v=N`hsz8PM0rUtDWJBZ8HbVZki=LTz)YENi0(SWJ z^VMYAC^N4p$X>%_YQj z^|`O~XX=$QfUNd|(e^cbZs05KtIw;NaK47xb9FDFO?7l!_ri>p`oeCWU$f)0MyIERVM&gy|zE)6corPC1!V#AK~Tj^w_Nw@cfX}+?Mi7QsoDO!o{Sk^ed#IYXVpC1!pYAEojyeqd^fEP;Ye|nt5hcE{4@U}+T zIKQ9SZC09Uh%YNnJN}Nab`+L zE#9Q2*!?YCsihWs=nxhkAJS=c;0(`+x>*Ox!wM1iT*V)W%MP0H(}(SQj00xVLy9@e zk2L0vqK-GnX=lZi)oDOn`S|H$TerHJz2d1PZYoluS&}_Yr3Ro(SmpaZCB1MYa4D(C zTrkEzyBFr%6l9B%S#%0CM;RGqD2TJV9S7n1z(09R`Vbn)7n<^DbP3*(VEcnLxh>xq zc#-wXcm$Ql_Ci8OXOBN3iP7yt8T{4B4Gn_7Dpzs#HrzaF%=71i@4D@MuUdDXG~YC$O#Qt%6rzFP0~WFKg9KE4(9dAfLmt%mTpfu9k1Nk97% zZs!wHV{Yc)M3b*5BWHdj{Y9Y~%un_wI9}FxQ&JN9vxE0atVj#4m>T#-y+1wlG?cmgxYw?+UU7#- zXL@Gxp=IKu3+`c@*AEdHv(-jMjpv^lN^-bf5b{;$$E?mF=|_d!OvL?#>S06tS387# z>$rTM(PhwGHW6vI>0DgD9HM=&y=P{4`>TI_kYAX5uCn^G_P6^uZ;#Q@V{D@hugv@j znC7qAp&RR7YPpbkvnaxKrt}5rXQqVKD_d&|!Xjs(6S@fMA9E<3#xa&IkXX>vpy|O- z`sJAuT58o5@KQF_tpy8FFd9^oKVP=@LR^ei!JA!V`Q5%=pjV^Kag2(~bVdb2qjsU6 zhqbRCnz;Am5*c>#a>hqrfF=o^o~uSJQBig%5|?k19E ztr+JJJQab(5vC=6fy)on2M&cjh+@7+9(wy(7Mtpwt8K`Krh9zx(U}_s9&epIK1)Qz zP9FPy>M`yqY|^{81Y-zhIDD=Kii-OQzsY4#WbQAMRoWKp&9+{#4LK$e&^v{CGW@RR%7r&+X~T0)1RtF!O-;g) zdim!Rk#|K{Hm|}pYT3Kp*${tI+JAaOw4+J-JC_H}sjsqKxs^ktoHun@=vdS)Qhe+0 zP}%YEfL84OSc}3Py9QMR1rZFtGR;4PW9UOp4^|3{3t0jcQRveYunv_67=0}>aZ~x3)VPUU`CZOKMslGKnKF28|GR#a( zpG0(|9p?IHQP4|p(|<~rC zPO14<*#<%MJ||D{T&7;Osc&d7vat!Wi1&CU8%P%(FYuv$-bwtUuqZVXt?W%Val-tY zA?M{+ZB0>(T{X=(D=z+K&!1YT4WK=}_M@PzrhK!BQeHtR*=cP)V>t{xwEC(z?kP0Z zC3*L`(ACnO);2ITJtP|r4C)$x`L47M=gx+N5&yH*7M!|^110m7udn4eJM%P+U7jBe zkGI?R$lT5DgreYG=IO-ubxNuM(Yg)hF2wFHKGu?++Ffc8ti}F>sBo5DR^bHwGtw7R z9A8+D8L}FX>H7ZKEw!Pxl4tWFZvCO?_Up^8SuYa9S(m14uMP*lvU)>ZsHw}NN z8jL0imp=7&7dY~LcAO%3<*tz*$=>pzd;9L4@!U`iVE~|O(2}yK-@zh0Xfgo5%;8UW zpp?u5{cIb)^qDsbLikjwQ-qE`F+4M9+pG_X9?$dBzLw3G;rU>uWRPReDI+7Z`3D-K z*3UB$agpAgR=;#QcH zR|Xte))vT-&uH*h2a+&o_FqQD$!h%|`D}@>JKzT<)0CGg za52qpxapjEe!94&uBNV|zu#S>R8CIrslOe%ypWglpy<9$e_vxM%+_SjZI|@bN|u87 zC=;X1e%Bs~g9i~x*4{4g_DNIuBb>W%C1JW-DywZlx8lB3rlc3oCo5-83}xieg(qBU zATxQoY&+YQtvzoFAybIJ!lh|WP^;KnBdo;D`>l2mhK)AI_|+Ior)WjSKEv!8x{x1P zhOHA>rM2i}FQ*Eo}Ya0>KJAhgb!c7q+fS&9iNyQanoml)gZKq zhXqs`j?glFJ=KJ1*`*uo1iimmT8;-`Q5 zG#hRh%GwrO)?FWvfgAp&`m){)J#MJfE=-pQy`e8T27CL3>YI#5kCM4hFF73|0<#)= zygF0CLA%d$Ym)WsBVY?%>2819X}RR$v3Pe!4#hA$)Byx&Xlcncj9=3(y#>Z3*Txm8 zAvbpkyzA%_nLRfJjvcJi%;$`KyzOD&zNEQHy##xYK$Pr(&*+AoANlsIE%(NrIaj6c zIB+(8V}!~`LmPU-Cl3#L*{Qu7*d7&)JF^!YiO?DKT;2lh59PnVNxPXOUvI& zT?SRJMel)r*FxXY{`04z?(LH+QnOz)U3IHgKioNy7rni`eR5)5!6ew~mC>K9uNE>s z^8=TYsh(zA>74J9j89IwO_N|)Jw=;7b1%=_NH`{NxL!rbq)k=7tzIz5$?IuE^Gh!I znMa`%X}2o_;MwqqJA{wEnfRPx>Bvecki#8nO;Bjc#(*`e@jx) z>SpYF#?;cTrr+|9ihl_7!3f-kRYD~Quh&G`6J5no; zYutp(9Pr zNSGdtNqHv!sQ@BzW~U;&v8dvK}D%*X2r1Gn)BFgHj0MfIetO$=D&Zr*{iBv z(0(!1P5qn^I6rR>qDm4sBEbCZ#MG^YiS|lkA_G4rI1S;5Atm-EI7f7h^D_n~x+Wqh z4E|EZqXhnc_x4aAs!()?c5`zmDhWx_XozvGno9;K&e#gPE2<8Nj8*F$~h<`>96tjBM-NnTc914da{dCAw;x6MkJgQHrFETfPC zqI>7bxw^G}YPH$VT=Bnq2i97GZlo_SEzQj<@!2g;>ca0q3vPlk3!}+w0mj_b7EVs| ztw7H_v0kHR<^L_hUmoErMqt4b<8_w;JsM#*;*8k5d_TEH*Q$kI7u*< zlr?dkNO+S{w3a()XLwoby+IA-&eE04oB09Nl!t$$zJC3B*7?iK3Id87lzI!mjw_rB z>GhA3?>k!d3mp;+?IZs>MBMk$A4`Rn1#2u3@(RpME^BbmQ-Cp`fYE@rH(gfD_A9qj z@pRz~ZTk-u25D&TqIgAVVOFm!EO6oLC9`2tRX@TeZ5LsZ*el6!zLuVztnJ%yh56R& z9%+rCzeUnlhk_Rmtc^1*=CNAz<(dfH&Zhq!d)G1aMz%5o?p@)Bh3E9AE~RN|^q!Yf zj14Ev8x4@Niee2rX7SszZ?nRdoH?Ps;@fV9pZzxaM>A}q*7wQ%=c?PiT}cjbJ;G4^ z5qAKR;wW^V6V|SIo>A!2*Llg_XzK_Gg;%bS1d@|WIXFjte*8!|NeI2w;iRPGoGWs^ zeO2#HorVo$Y*t3{hY!z#GEd+5goz5PRKn^LqImaZT{IX#gHzrWuLoQpC)%@HHC9X- z0OSH459>*RaA0GNib_3&x2avcA5+(<-TSk}e$#R50f$(e!>5A#vu(!-o~jQo3H+XO zBG^nh*aVTgyF)qv$=+onjdru90^RqfX6A&jT1a4*>*e)c#gGwsoBBCx6WT4Xu&V}1 zr%D7AU|w*}*%=MwGsgjUI=`w41Y;2F4B6R-1GFXymJp*8SqtA;cIpE(Gr}&1U*l3^ zW6vvb5PYdoEG5ABI<$($SkqI;W#UN|y3>OoJxapi66yJMx^Bp_xnF%6dPB`F;AW#qL! zOeY&&yfEhMT6YkX5~!QaO&y*M*M)?Kg`*#hBBQ z0M7rN8gqA4%5&p}YP?uQqh`kHuaz>^MXEXK8ia$nrxE1_;95SK+BZlFG%c<1J(FxofRG(jbPZ}?+w?2f)3^_ArIi)K>&DP zzhBn|mU{Fk(@6cs%(d$upL|@Tcv9~5Ii07eWN9>pVCzqlr6axbWfzPriCBeB2L>%J zo*X=;jUyjcy}9tj+T$Swwjjp-IYz^^M`g4SN$3QJlv;_)C+g(XC<*%fo^L5cUKMs` zn)ZUk-j65yZXRTkY$oJm{4eAi9L(HX6<()5bEJrGI{MQB#feWk`O)lu2B(qdXckpqIxmx(NyEa8&a)595?pO|2Be%Y#Lfx4Smg; zWjce`*>6b|BE+1Bh`jgi?Q`k9b6M8ievSY8!1|8@k5&IDk;i|obqs1yKO>^pL$7(w zlTDbPi>kNQ_G1?>hv_R*?{pXQ6DIyGHNoz)NZe!<4IhoTHo zkA!M3+Pn#Q=EQDd8@|_KLm^buesq(c&Udr9Av>3~*H@48wFY^i1e@m9WG6SaxptRW z0pgn`Y_!42!Vil5gTLpw8E~{8cDa1pjV`=I__VqA`a64Vlp)2k*R38;n&u^ytnPvG z4TJ#eaUB}-*8>Yd zDUS=IxcIY9fvq?lDtkhzd(>&|q=fDyyPYz3>@Kl4OqqSCNJW4s@p&@a<=Fi_Kn(Y`x6!kIAo{+X(Q!B-?2sbQ zd1{7WU+9&^Z7I{#;)akv37TZio3~HV6C+%bfZ8=rjsEecCPZh}j+&2tjcbZC+(vBu zQGg33GJ8=fFFHIh5{}lnsZ;M8%$R1AcAolF{;Thc*IzNjh}mt@W7y`@XKUN{DVS5~ zg>T4$lX$GeeP7KCE&V_5GTSX-e1=~+g!$Yh6o=6LFn+R$&b6*hdFeI?vEcl22vf=2 z`UFa&`&|+%VM2q>yN3t&Alp3fYa=?s)Q@)rWgLJb5(Z{q;-jm&*8$ySeh=?P?3|N0 zPDj+Dn93!=N(f1(cv85TqLWJg#&sV)!7g-PQA`!GJ9xK(LfG;1TR_)@SxsY9AB>`o z@9PNK%DQ@(kuk8xW)#EgSaCaosvg;R-5Bs-M2I;$GWFa`OOHv|6Vfn_h3J&o&uBl5 zS8v9yi->)88L=jb{nt1&-jtUo6fKPEJ5Zt=0RYzA*ivgF66zWl6ohaA*~QD18AKL) z+}$O_s3UbgS{??4OMIbO=vh=er-(>MjBW94@i%5k;u)Qd8#Cpt(f@fBPrwAWA%gSx zh>v25F*<6n<3>luOoSOQ^?}YN3=$s?>58DD6DX|^yEIZ$lh_JELynyt6jJlsi864i zfh}A8fg7Km%(uWZ*yxiEx0GWDHCIT-x1Y_$ON=`CR-I1r{&h04&gWnkk(RW142zp@ z;K54JuY(3zFL3i+y?XW1h2tvA!*B!@Ti@QmArTQ7Q-zMnwY_9vW9#F`kC1izJJ}oP zp<}8$iq;AS&0xi&QoS_%K#=U8@()hkh`%#4V9^8EXIU3NL}5Qzxeur;E((OmPR9W$1RR zI)KzE&p+y4L%rJ22ro%bu~73SyrPyk|IhdAYD#*bc~<+`$fb--m)P*)rRQc8#d8as&f;^aJWceAR^Ly_4!)k9 zV^g9s$fEOPeNEh}jaK+f!7oK)W466pbe~_Qcb*!ern)3Bf&-}jFSkqFK^Yyfi%wh6xC{|%~3 zvv}k8lP!P^dvc6$5fk?Q_h&Sd;o%S$8a`M9;LzT#0pPee`#pPa?@yq&LK1h=^dvrr zuUeZwTi)1;&AK2p>}Vbc=DI&(t*K=DsGVhSmApG@5EPjxYo51u?eHjG;$hivNY{@V z_F+m<&>P%ivwivI7FX4w%No_lT+9Pa24f|y_%5~`5q?P9eLZza^R19gxS%^wMIE|q;w_3doshj5YNt~ z;Y|twE8f4~Q-wpJQYh!s+32qcji34x6uaf07?@rQ@KZ@pch-9!5dAzDE$P=c(ua7p z^px31pFBK57Uvi}OiLqqkSJ<@a)U#|)GTj7=a`>tMrRARPB34w)GJM4dJ6m1w&N5o z62!^jEgyJ~2?ziPhi%U#{X6|NOKlTv<4f4}ddWrH=YB1&tN1G3Jd?}O-qER|so5Dc zz)0b%eyMHt4wuxajt#Zv9D1)_fk+%Xx7yuJNfq#}(+YQXwTj_7l^J{;zkla8rzIpY~qVpK8#BG!1G51a7n>{^H|;dO#++;0D=4M^>^xQ%W8pYH48&|m2a>7 zxje#ZeMIi`FY5jKS=h1Gz{LeD0yrPo2L^@`Cd(#1P3%pA*cedMcUom+>ie}Aq2KmY3gw{Q1KE#sChar9im zIO!wB!T{@Cxg2UmzPm_IJWOmfDHWtqbZoM3Lr~BnQ-o>(GX|;8t_pMe&+IL-=nl`(R39)Mz(w?&` zpL2BCs){Zt7_3uX-dS`Nb1yNp`p|s6Jh~-8@?JgCEf;EY4;kaGPNc&JN0Q~LApgGmN80{7jfjdJoh2r?lUpr;pO2t zb?V={#{b^T)gikg$KjD5j6$U{dmrxtl_fPl-v?bCHA}+127AfIpUcC)uW1;pUKZ=k zNc?0dbIbQ^wmw%5+d26X=h1!h9NxTAb*I;FPaczbPsRWDx|m5&bL*$!r-C=5_WZG5 zq+I)3{QLOno&b%kvUxJ?hI$>0yC3ok9-%lXM|Dh2i|^i{+a2yUBix%)hbf3bsQb<5 zxke692zV)Y__{g9`+%?*lJ2WT*$W5%F_=wJP*Q@0Sqqd#C;QfJWRKnAub=M!+ym#$ zMM{dW$QUKqzFGhHfMfC-fVhQL$)?}GS%DAz`FBc#eIx+BcP|=k17o3rErX4#bqJIWZLfrwDD=>{Ud9Lfxf*4RWOvE8`)`3#2`I0Az*et#z>OyKa1 zB8o8mf*<%rl*Wf2UO26td26cpLATAP)B9Cn=uz_7RTS!l-M7YbQ=obc0w_p`({?2} zxQm7KY2+mjv|2HD3m?n)QC@qv%!8bP_Hi^y1gjPZLJf0v+$CA?^@DM77odVCWX_m1 zy~uNDpaKGcQx-Vdul~{)qZg+gN;lUQ2)?Kw0$9X5`@);=YfHnw8WmfuBnv^XFim^ zVH`jg;ZT(5Q!V4U;)n^r{J+y#hyDXw{}=P)>v}L_`*`gDH6S&#>%W|)&aU&`WaT^? zg|QRA=eFB-tFw{`p%CKcdd?W&TM{V$n1=uPGYa2%GGgy%&tgXx8?M2JKJ58(xr)tw znTF-ePzp!qSvW1^cct~QC`6zIFlq`Gjd=A+5iu7tWgEN)mX-@0UE%w7d_g@rDX;(`_d7bliff3IbF#NQ0aiQ1GWjwzvZqd+cHUka zJ86(Jl)C^kKsY(9Zq0c3$t4?&ywkMI|Czz7M7U)J10QoJz^gb1!U@>L3Ebe}xltAb zhPJWsv5$@)36yK31Ej@{t!xw-O=!VDib}6eKBBsTnhT+Wls-N_h-Odzk13ngh0=`x zK6hQ1xwpOP?3GmC*K@xc@Kau{g}$l!hIP_5pp%sv71W(s^^}HpE<5IcF$F1)sp%Ec7Mk0H3 ziGtx-V*9SFW0qV(?aG&e{N*zaUU?J0YPq+#>8#G+eKpYDq&!xQ#BD_hl|K|i^@CO4 z6Qo*Wi|&JZEFXdXxq4=Wo!FbysB-oVE9}0os2&Z3D!#|<0geNT#(YKE+^0>s$BMNI zPdu1EKS<;)jcX<4s!wK-7whkp4J@c@C5$JsfSO~@b6n+4;i%(@GugmhHoqwmLe-jE znoK%hoec^JnI9tO1G7RE;2Oa~Z*XVBQ@7k`Z_I~M;_`vk4mAl`oE-@AUR+w99}46H zuU7#+C(1ZJNLH<7pD#?lw7g-YEF|09WLEFqj61N#@zhG!_N|? zBk>>Q)Ru!;NrQrd?hUxFP*D)|JnRt3y>Bn}V2ER8vabP9-c1>qNvDZ3XzY+2|D~{U zB&vLKA0TC{cH|h0!E5YG^vnAEE(4_}Uu!$mq=LI9j`Q7p_*YignUAaKxmk4hpwYw0 z?urW+9CPi4K4iCkF19SE4q1i598Q_v~PFt(?KCYjo z7*Xosdx!8pMn)x2*Kil*S+vYXLNxpRqwsS&x@$LXRN-8YcozFag3SxV8xU!ro4s~T z1~e2%#^4==P%af%;v(6T5Dy_{Y%-2g(0@QmTFadHXms?`BzdIq4(x2NfP0f^kmrjC z?1xisBo;~3uv;V0g<)CX9~his*+2#PT2GD%378AONWb7hTb-+tGB=Qx?6vLlmCG2u zf{?!3Cr_GwedPnO^300gPdW@X!;qq*dlZR7SP-*A%TtAQwS}XvtRZ$OS$|QE$ae6X zr6uMjcX!V%A4E5-q0Z0ZUBN%1OCd~4f{fO;EbQA)_TOB%jyITdwExEz}omjFgC=mADx`{B@` zl9cpOeX~l7=Vj-`MDQmdJ7omk-U0j$(sbZt1OA*B`D5Ek<6= z#pDG|By6bwkAo(a%ahz`S#~JEgHRlUIc4B6&I#9|Zd3&5#Iy}u{KMM?%+=^k#hLkz z1nz^SUDe6<@iSZmB?FAB`#UmG34+w)2qWOZ@BdM8HHE(QdwA& zD5wbw2@j>^wKg@b30Mku+_d+i^5V(9eS1&);efOnI{#Up-+wCI=Mypc17Qtt&pe;h z=5gFB^|{SxSupnkF&uXkkY?ZxDi+#Yr=)AZKdk@SRCSBL4Q(5SlOf$YNR>XyaLjb+ zohB&Ps1alwEw~^C{nHYU;VG7*I=&d6i6I8ALYzb>6$m6z8yg#W*38VeUn~V-JgErh zAB-8H0&Q#SmIsc9H}21$Kd%W{^3h0>3@O=>G_e&`P~|!jb0FrcoUN_x+pUg`6NgCE zAyxSmd#>+c9TVp2IiT*q_yQAb(2(o^C_U#jY}uj|f25U>;^Zu#^n#c3#0m4w^8j4T zmtLLCyip#HOCP&?_8Z1l!;V(nxh4Jb3W^$B$gMn*FF`z;Q)Ak!{l>h|s9rAXVh#*byii(3(Y}`hjSlp4742 z({aVNR<3q6G+~DV{61DvV7qh3UU^ySx^ngAO=VzP(1`{f;Uj+iKA$$Lt_sEC{}Qmt z!iKI3=^0E+!8}bm>};!5)a7HoXKvtFd)xUhun~4&ft`&Yd*+x==|SX$I}W@rf^HWA zA;g54OqV#<=OSkZu@IOH5*0@j0Ja)OEx&?r1RP3EIfS7`imb3eRBO4 zT%KIY6lc&1nt{s0haz6A*(HVa-UgxVrhDkMU;Y`LPl>sEP`5vgTn|5Bc=U!XNE#w{ z`sz_?NVGhEmTk3UWvY7uNxAPue?9FOe*;vvj>RI%VH=yt zpoJdeynACW%H7)g9zxwJ<>B?`56$)<%l2-(1h8(L{)Kw}fy-#$&X>J!-lXD2@S|iQ zjFT|o$-XyONlE1V#Z)BMY(fkB6u=%lxDPU)uSOM$V}XF{zI4IH&-#8@HwH4fKZ)>LRqx-Q695-9o~`AiR*prC~4&a+=J@l*<^?5jtA? z4JOAYKfm>LKW(rv?>O5P1~(V|9wNooMbbvM*zict{i3Q|+~{jbZ%s z|8N1wF}xUVEDJx3?TSwB3-e)V59!@-%m4)#-J6A?q8NNhp?xtiNxoLwIy=ix2)Ia3 zC%d9dp_M@k&p;sHFt#|tr&oRBZizHVY6=Yv^ue`lV&vM}%FAX>Pp_|TzWSg}N@=}c zn?Xg}>&cFU^IcxehhiPHY8|v>gIx(9GS~SP{k&(GKqVgAA(AGBZ^P-8Uygh$eG9ai zpEAhD{^Ok7fEM02tIw4W=pvqrnQowg3=i%eT>MRSN1L2r5p11&g*`(Y^Ryg z!0#}hqU8Li{R+(JWiXR`_N=~!Z}MwWb1DcXPqRuZn49uEs^c;i zc`I=A?B9IF?eDFOgMp>@PMfYK3HGt2c8&8hP@n}HaySnM63}+2=;-`V1EOMun~%D- z_7!uj6Yt;ODJeA}*_qi{H{{XHebN}P-@s$d4Ao}K6QY)`u50$A6!3&YTV7ue#Bh3K z+#=oxf&|e4C+{jh${d>>d)OGKXTJTtO~U-Tv^0*O|3qI3-5s9F@cROJ#5eNthQPm$ z@O>f7!!@yMbL_51)#?z~PejjK#zTb}A^s{cz$=!N_G`qT%M4f}vx zCb6*tpiC|+W2V=>tXw?3x4Nzd4t5#@hDC624TJ_c^S*r5Trv#E0|d(U-oQgC#G4b%0Wkj zFA!!$;9n7}@i6a#c>ZYd_E1fr^J4fFOKWRRNlA|Yl19^>$Sr}BmsLXa6I%ULGeDJ7 z9WPKKlZ@aQbld>2AOpo&4V9aseXjCobsq0R@J?2%=&*QjKoH0I6T}H!fdexnw|@0GgI7cF z07R+VuDYnb+D+xn2BGKi3e~JGjGS=>;u8cdrjH5h-QoVuRy+7Q<1=GHuLS2GuGo9K zRcU0ARW-Zjh5;XxeckrMgszMA(Chs7QJY?yVO`RY$fCT52b`~;pFb$LC&Bos9iDsr z!xFK}@}9Evv_7v|CmqUKH6^ zI6@?|UVvNAbEGNg{+(j=W0J&aty$w=cb$kl`F%Sq$#iIC(N2U(g9fyl zFUBGr?L7@Rc;Vi#zkfpEMDM`2KCc?%1I}u@F=^|7BUreh`j-tXkY~?k<7PaNa@_=0 zg!5uoxw)>L0N&T@*RLOvNHkqqb0f57776YmG%eS)^co|~l$>W1{cuwLU34M5;WIN9 z4yIuA-s^F!Px&bksV(c2&@4>MwQ+9ql~Az%IP-&!D5@8y9M?h+IHd06v?w_pqFg(osjyZLG*HNbzzgq<$VylJzDJ)&6sH>rhU( zOOnlb!~^|InIqkU=KVEy`}dL5PtH&Jgc*08e;<%#qso4~_DkE-1nuSg`g&aq9ttIKN77hxNS*eoan|@tv#)l{Yy8KDdrBJ)6P+9o=lpiCuX=u_ zB;SOjE`)_$^nxESJOPX8n_z+1`f{axD!F%lS2C2Qv_UC026Ly3GRXpC^*wpB>yfy~mMH(cdTnTQ1re>6C z9K!mK2xwue+cU_6TJI5fKXHl%k@exS_FdfPUeyQa;f^GhvC#9P23Yxc1wbv=d6)D@7gPN47MY zCZ}z+R%B^P+UMS{=i^3JQYh(Xi9Z5Yv0*U64*hD*e)en>N=O1en3&Uv(IK2O?|tsS zuBEjnEan9r1A&;Im?({#0j`h>8 z+U)Y&>T-&>o&Tz&@1||hk`}r|+fb5>PKJNfr3Rr5mT$5O90TT!a|bFV)K5s7I+zAw z7a!4$c>6As15hdu*1b=}(@>GgbhVFve2Lg8=wL!E8Y^LVHMhOtho+Uota5`(N-6=h z@Ste<+5rFsiJyv}`!TzOaVkB(>EJ2n>vs+bm5{{1(c|PwDQE{%d?f@pm|%9+o+L|m z@(hQwp!gr}H-?dBt8QiLf1`Ptpr!w)H$`(?)Gc;(%LBwE=>Z?f4@ILt1MROjzfmXO zQGO+V;sT&*7=k=C$Vkpf_kUY2|H-Cb@yiV5N&d=GFBezWhFJAxp-vr@p-u&;Z zH3%lS)rJ0JewXf=__N z_d|UA$p@;Cm1AJfoVAklP{s4P>hjXa=)+Zs=wB9tV``ovhUt^zT`?4fC9(6SE4PBR+=D(lZ&85>0~2q*?BFyuVo>9$&~U zvCH;u*!r@@I^M>Se z4~^A7WQMO*c3jto?24oA%?lx4oXPQ516XC;=iFa`$rJB1M7Do^VeQ{u%0m|pZy0E5 z$|CI8#KdILu<%jW82QLsc@+gHN%y|j3T&{cH5K$J+0%UDe*GS6ftZHI<{?Og>m!6%rV5?ht$%E; zEqz6V%td&qy#hbcezIHOVad`F!<|vllf1kH#fjn8dRHvi=l9LbfPMuO4E(InhZR2T zus5Z5<{t;Hzp0dcZdQH!f|)XJ2-l28PtpBF{l6w)jzjTzfA+U@h^o%OSM&RS#WZNr zGv23^CdX~Cxc&CFul5&=wu*|iy-mT#SV=2GcjK7Mo~r6XyAvmIwO-aefA8z4qpoI37j-lS$Tv$?iRm1z%QVV{_VGJfrghzzoY*7#FN$8hbr4l z!}r3ZJSDB70=zce9?tvYyG0<$>$R2Ia9^3!`8A z3hyvJ{2X_d`nWW3D*`m}m%V&6R86v>TxxT+P&<&vZhi6gPrVyO_XhVMmtu1PqHILl z%gaxXPaBPe#QhB>hBmlu!huKcBk9x=T0>%-*&1l|!r5p1><=ol?K)pd=9zOIsg7Sf>2QY-5+ZntWJ;IoTn=%_#up}t{Dxxlu%q+ zNywgn7h?9pRKe}LcT9R;lwAe_%0I0DBAo1Yi8IX++QYE(1}PNKfT{A6+bSW+;Dr*v zPox)I3MguDWnyG(`uV^b&Ny#MlDtp|5y}AuLyReR?^a-535%tWdATW({`4Bz9;;wq zFdNiKzb;y&w~i%)yG%F+KxI0qca>(oF?xDjz&+Nd^}((<)w;=&o@%jUfBuXBF#dX) zue4gmaDxHO+OOVAhIw&JHR5FMa3k%f}pwM`$@{@8XO3Sw128 zy;J;l2_$~Le`m_SfS-jgfZe+vx__jTYPw7J$2D}^#X_6cJue?wwH0z z;fGPhHQz~<%%~b$U0mtve8$wGJX1Hm!oB%<{J|@6kMVD2Zo`b8tw0I%zkR!QlGh+) zm^$dQ7GY+c37{UW$F0`se(2hAjYk>-sU%4D?0#6ba1cI(wb6e|*89s(bkVaorbw}Q zE;N#tYSo-o8q&%CQW4{K;iw%+xY_PQq{L>w#J@LSm~k#z#GLCVrko>J4W4@K(#zi; zxxIJ7X>~Luf@hd65*~sa#2+dKxIWxieYn9Cl3GV{D}%^Yc5kMfZfi zfN^mc%Q~$w|GC*;72djK?qh_+-p6AyRnc&G?tG|L;cTzkk!k8G>6^G|eqEwM7|j4YLh!?Rop5v3bRy%q@ED z*UFYh`IUBG&isthlP|1IB+bVzT`DP5(@nphugBFYcCX7kGT#&05$G5f`YqxIlS3tk z`W=4_q6q!H$eknzDb!?yIt+DQcC|Vi84=DLbMw^c58LVWZABQByfGeyfJt zo2}=dFsZnu&X<+MjZpQ2Oy@sN{`#cDgZ38A6-yuYJl-XlK>1(Tg8T&?Brw~VWUDM3m+?U||JvSs9@AU5^ z#y*cZ2OI6-0G?`LzS^}jI-m~!@w`@vx}DiH&qf0GtbD6rN2~nD&&HFeLPAPimlnEO zK4)i#U18Ze_}Ou0aA%Wp=P_iB?LU5%(fG+}`pdG_n@8H#yawRhMMARnZ}Il^FXnm2 zn*?tZ*y^9SN9--lt6x$N!Rr-W=X0$RJ8s`@JxH+#@I7)vhLHndEz2xUkBWa5E;Xho zy>MC@lN$Tinei;@1(&Xsd~Ohr(q*d0foDYnST<+<+~5`im-wJo)%Z6bK7{Nnt8G77 zTXQ~g&bk+!w3DsP047_rnhKQ)d!cS1eoc$TPM`I zf2&~=AYM9atEAFpsqwPKtBG6v&9BpXl5)~Y7f=F>oAHktiI2fIOz)M5MnO(|FeBq3 zQX(&a_P6-UihEpVph2idrT6SdTyhp4bKOKJLhWMo&LDRj8uFK~Ug;glXf4$H88=i$ z$H(!-CZfJ2JNvE@^IcED#+tHoBBnQ_eXNH);(y*~{-DB0>T9fEOjJ!`Ds=z&{`+^D z`Q(O_lAl{}5Ss`diM-5_6L0M+WS~EsC++r_`$%4M+Zz_Y{wMCiO6jKp8iPcYc~aHG zOxTZUzKjlReOnm2vNf`*75=k9SyW7I>f>!DqhZJ4%;!klZI14+vFah@K)*c&=r880 zZxVO2a_jH-2McZ9lyl8Ot^7h4GDvy_4n7e!s?ZTpv1HYN5#S|mdefC@kTJ^>LPMBG zP!9q8zol9jwz_wB;=5{ozs|nH|5Iirl9Tu_ael2zR zxIi13&&z}a3lER@EI3Ny|6p#%IdVJG6Rph|UeKtaXXw1p!~2390!Uy77}Ry`OMU!! zH{z@oANlCL!XT&HM$5%@<7G??jv@j)!9kS@E_+^0#CMU8CHdtAn8h0IEE$47A@A&b z?%g{=*q))M6v3e`f+HLQK={OIf4FI6XY_b-(grku$AvXA(niO%vu+wSJwJoP1P$2Q zWL|51LrZGm8;;u-Ep3v+bUY9uT;Q>$bX{}A54k~j>KJBQ8|yZ_k$y6Go}ok2SO5rU zPPHP1$?))H_V72iJjXA;Nu1~^k`%st|9&2`&G*53w^WZ&lM>N09p!}MedZ(&+MQ%} z_PNKoBK%s^A4GWRLdDm)$6Dft^9?t>JQuh;ylRTErfgd^R(>c`F8Yr+7v2n@wN%B9NY z<@n_}a`uPwG+_~7g}`}6F`({szBiqLTR5Ge%gJ=6l>HYVXoGjn{nc3`*gQC`kEa1P z`ZBgK?&YTyIv)T2r^u9^b?=_-U4emtPc9wDOC%%ObD4UNUrwBbx%rSH=~c-Dwa{?^ zQPDaqID${HMeFu+&#g$$ubvCZEa7ocvgUHcbi6lTzb(|Ecq|+j3rnAb{16BrH2`aOA*J)jQ z`}=s|NTuG2V+@u%2RVADX6KxkfoRU=LvyVoHJqHWQjV&Q+CSD)sfVe*-_7jWxa#Qj zSx}ER=Uulc>B-YG?7O3X#0aUU^V;Q@nH(G|mbgxH?)KZ}H#`F^zh6@7M$GPG3o7!a z8RgkG98i1Rbd2*usr^?DveXKR z)?qdqaI$Njb1tGeojOh)Bn>)4j|Q(UB|8POWD^sV;^DBGY3)up=g#2Crv4k#jWaPK z@5M51i`T*Iu%oTJzIA(!1)>Wh7jxgiCnsJ0v3AMx97zV*e_^ae10zO|CWP|x2&O2g zzA9`B?!PZjz=g>##(xoeoZ7_1ZEoa+_~vYt-Epqtmk9KPxj8%BF!YQ}De39{aFgUa zo#D%&U<&LA0J9|A7}fbNPy1qL)Z*4(KXo!7DLXs+3syXWU(!-iILBS+Xz4nN%}yt{ z&6C|NnImQtvH4w4z7>G^)4zZJo*#G{bmx)=&GOVhEAGs?ofXQRFF%$as%w6@S#(Lu z`~;K`>p`X%C%$|4t+S_L#lRyP=hF4F(=HCbD@fLUZ>>0Qyf1kBA>HWL#0WgY$L6>a zzPlf}*8BE{9B}kh!m7MdR(9(G&Z-oUDR{;u)V5qHU!Sjn%o$Wq%+KDV)TOmg#h z1jl%#4!FYLbbSBTq@#Dr5Old#$(>_TTN&j;9n@S-lfR{Pj1Ik+E}@Yfybvl;%T*UT zQ5p4Xx^sk$^N`_5<1tm1@5oE-Sh+Q%RL-T$=91$-ZQ1% z@Q23wDJU|L=?w~sN{V70n_|0qdU_`N@&hAiG8z{sJ%h8o}BpA1?HF9cSb6Euf-PX_%iCuy(^ z^5e{Edw&|VcQD~b1Nq8{6e^7h?3Nm7C9FPcNy&6&!4or+WbN#yJclC(<*v?TIZW~B zZ>Zdf%$Ul%`m1(b$$j+bipqloMY=ThrStSsyYX{!Cz*Iq`wS36fa^RQEK1KDKw`4< zr<#n_*5@-4_}q=H;XMHx`gsWaBO~MT^dg!FdceC^NJ{(rOVe|`Ahrqgx_WxH%!ztbMy#$F~Oc`-gfBPbz=eU z#=y@;;K%v$FmB%pQcjDmJn+z7=uD6@N%YGDVT1hF^#9>JlXeb|+~@hs#3I#l;HApI z)6k3DwLgN-ef(iz62Zx19<8HnX4x3ZaP4HveRZwhtj9Fz8CHZO=u&g*73xOCMNDhl zZ@E{{t7z(qF`f8Us>n&!Y#!av!`j8QxB1NFx7_ygw_JDoFn%LZJ>2&>Q&{PZ(W2Uq zWi`c~i^u~G2T zSyQZu|JC{zvP!^6RLyh&ffP%hDYJ*t`Ht~G} zK7<9#Rg&}lz9$BI{O00*K%bW?Se-GLx9;L)Rwm+86us5i$lhcxUcA#xfvtnm(D>6! zXM|c>-o4wkLhf^k;vhx#&SMh9BHuLscT-*c5s`!ALqYVks0V<_i*@?bDqZaj%5evL zvAX_KM#jy4Q)~vf0GvHbHoaLuGf8H-D-sh9g@7?^lDosiL?1!QbyJnAi{1bx1@hO?r+r{kS+_P`|S;thShh!j|Ec zuvk~)RYSuBnp;Bj6txp=Qy9@53aqiTT@!0R_di?!+fmnnoig5wX!>gV{fdhTqAgRw zg}=$6|8@&mSeQGUCWps>tGTakK@4g)l(NIqsuy8FS0y7uSbWnzYlhXt6Un8+<)2hk z>{e7%f;nQvn`JAJ7T8rlR)r8Zh z$@Y)`yU@SlkW?K!uiDQQ7pPRc6*SPH8?Z}Z+OKx_s<#1T;1vaA39WUpb>290v0mT; zQrQ2b$_SLc2PlWtWY*ZW+lpsk{uBug^-<5 zA$x};2}xE$Mp==WY?7?3WUtERcU-+c-^b(Uuf~1fuKT*4&+~bn$9Wvb*-wFT0X%pV z5kQxbQHTf&E5V3DO=^V$+y#l=M@sm&TUg`xGwv9}k6TTjq%=+Z?^%L`4| znKX#?Zx6reM)K*F&~>-MVAb8rdF92G0~<>{)Zr~hpZy*AtgT5ZKV()XiW$S2ntQyB z?|b(#E_s#e4vp8C&mR^Q8H&H>`L=CJ{nnU}1Bp$_zQi1MvuC!D+#wG(&f!)~<*BD< z7}~*nCZSqo?Cvu?y5!m1ztVJp)qNLaSz%d`YmW*emzQhroVw(bnxiv8Gsg@)=67Mk znBFjN@9AmC_T1osho%$JRimMyQMBe#pf-#2PoKC2;ebQpQK~tUoT@&vckhDvcjLQa zM*YiCmMe-`p~#idc!{yn#$b&`Ul}UW7wNau!MLdw@dx@P$`W-^~sPJej=lJXN$PTaM# zOUuZHd%*b2UaF-+6@$&omuczf>A}2mT@$>PVDFN;Z| z0Tb!Wyc!ynT(a}y4=#qBPhKUgz%3F)GUA=MY1tSkK;KE*-L21e2O_BI7`|XR6c4N7 zx3=)nmph$#8LW1NYmh&T6Tf3pmNxcSmFnyB12ri++8JvdV?{!JV67qfIUs-8`DeHJ zF{Pr`wDixFmD|yiTouy0mgBvq0q>rOKsgTT>z4M9W4m?XEupKU^F#YiISSPS1D@h# zNgb10>&m!EIWIHAd)dhhvUXN@*Bi}mk)ij9(gx*zjz*e_{JI9%jYPCuzCF=(1K z#zVjxSI^xY(4;*&({{UTQT4D>wG~IhE4vqLl@BBzCsgzP*KmL}k~ciY>TJZv>jo|k zRK=Z-7vf$D1iEHawMQvt4zd(cDs;svcO7e&X^-Vk-F!Y_Xi4GsdRMfHv}y#0JC#wd z8SMde_JTuO78W-jO!CqNZq5lgPUYWs)HCnUY3f*1G;u(b{E))li|Vr=v}BO5Vf z>_z8RH*U`#c;R}<&$O}lH|$pV-ETQbzJ5PrcHQFv60jRCJOSx}a9;q1zdjeGUF5bR z9Iu_7#PD$MtJ~+&#&{LyKW2Wv^L-4S%Q#kD4-WC1smcbk>a6;UPK}(;+yyCz+%h|w z-bwhKPyX`d3ugh>LWuSbbvBuY@N|kEefNMbc;HHw!n=~T(RgdYgf|AMarM_4Hlm&a zPprOG{VbR9{4HJeEzyE}`z7sk8&l!fh&PK$LZoe@S=?k`uHH6|I$+|FF>00Rq#Nz< zpJHI`3#L>9c9ZyM9!fA>Tig3CYH3Ap z26cD`YKY_^Etp+K_G2N%boxYl zOl;iv(xc;HBAr4LqCUxLAXyx{#`7os25m}P>5=wQ?e@~E!Q-jyeJdzV9~ilZ-B@|` z(7k`(Ou%S$>BG|u!}^83(pfG~tSek)=cbMG_r0-Auf$(6sa-1<=Y z)uk@I@7=dtQkBgdCx@$q=tFo%$=a#EM)ZwtbLP?6sJ7B5(KmZFx+XW3tjxz3RHX~^M>ZV3FW>SSu&?b`>d)v5 zwjGFiPI=qHd}(+i|NC7x>BX{ENsd38deeH@qrK`qu|LU7-YqD)`!a-H#0L-Tf(T=- z@vI;H_KLkaicbVLt)|W}mZt{Lr^WL&N}Z11llAw#`WS_^rOa)88Ntrpo^LA`V^nW( z3H7}g)ml*P8oVg|^%PHGn-QNu|Mxp-KYyh4Xd9Oxz(XIoFiNE53l8PI{MS+jLqpp zhorVWv>8mv>9*zlv9Sk%35_deGAHfoIYAQ9{?|a!NP+(J@Oh@Z4!hJz{oCa!me>%-8J8I#Y#azT2Ypp|7DH%Jmn1j054aQc_?>LclCE=;#1Pe$0-T0?Y z5?3Y;jb@ET^4}R|;c#Gy`rf3Ko)A|r+4sj_y5!D;}F}XMAon zEWWv6W1=EvaIkGJZCjLB-`~!rdOr?D*Oka73!ndf>$P3fK9c5;I%ZYWR1+eeDHW!l zb(qH>``xHYWa0d`jsb1uJA7Rt1}n32{WWJtv7vg(qD$HhYNML&rR1hcnx!nZDu}JQ zWw>N_6lmQxpLFQ2*=TFb9pIkrEb4SDXj^$H>6mg?^i{ls-xg<|Av~^NdC=&! zX$BZVpJ2S<=oqcTTZ2KBgfMQOFZ(f4t8}BJaMco6L|~VZvtA?JneoCQx=sF?ny=_D zOdD)0FdR!J~lD&j7bgyuxa_rz^jN3i++i7cu9#A2esPu#$5h*8&*Yvz%YivP)-vXi1}x1cJCkZ zITJ>b?8#Rpc>(!S*82=jV}>mUN5`7>up6?8mly}x9&lvk{i(L1lCu_TbB)!1an&G` z%Ql1jx-BbKuG4m;uOwb5rBKZxw;3eVFRzbB@R~%7atz8+k}__crTlI2?2^LXM|{Le zU!z$B%e0T*>x@lvIREQIZ&h9@EU8_lMP-Z=7<8=;9p32{vHc{GYpRw-+VA(yuo3sC zXz_Kr5;twqix>An8^-{f--;_Li4pI~&J1OcKC7zH>2XRBZjjH#EA9MMcu!o!q419b+w;NJP z<~s^fN&f09n=6+8*L8Q!y?ptvk~-Vm_f=B*$_ZJ#BjdIDdP0!gglrSFx;|~#*XG>o zrGnA-O1;Vb5*GC$+l^H%WNQ}uAD9+iR0vUa5Q`Z;KHrJoq&yt-Fmpzx4D;S~r zu|+07B>IOa`;a~!+Px=n2iFIb*=nY#`GOP_#IXDN;%=SY??e-RNi+I==*@(**_;0^ zc*{=)7yPKB^ZdKndCz(Gpp4*~vhwNvlX^OLCIhpr>TS4mC^G_kxb;ah$ZS3>gN4)iEEd3lUK{EG3aJsr1_m34pjy&s&@k?gL-DQD2@}~C-XF$ zQ7Se_)-X+Ab=Zw=7WJwwQh(3g@{0R9(pGx=EzOVheP#!6^WnP$`pR+;$;9v*>gDkS zcn2JBu%Xx2-s~)2)dujlIV7<85c03b5BshS!u`vu79&4UyAv+V$UMG2pOUt;vMsz= zw`+UFL|p@$Zsrli%fcL&zP5hg=hy0WH|3yJG!VLJ(aUs2(Qie$LMlJ%LeSbluX`R$ zLRZmu*tx{~?+AgN-qAe=ZC}dOS{$qK5lVmGT0IgSW@@@8fQ;~`eDSjA2^c$ZssfrH zb@*<^=HxBq7t{;q<>dhpN(zWD{g18s-m^?P5XFkS(AUu z;!5wy`JwZ9ZMR)otBi$!JPj)B+!JPcFt0nP(G1cS_i5o8V_SOobLP$nlZf3DL6q*2A0dfQdQLqh?CSLOUlBq&_RA!|4^Jim^>(7l?6a*P|4t<474msdG z4ncKN(S1jl|d zk}w*po^cz1Yr_^7*tg+MBH|C)R5chE7>UO1dGv7EO{T9_w^$4a45xGj*^&>tEnjz*R`n=Xei*{bDUB^*{*THfrN<9MskIf3T|R={^qY2KNkFT)isy1 z_BFMdKJMu%AsIfAe6C!VKY8*%{+ydPvS#ko6t#8U-hgK+179s;(2-&j&^`ot>| zq46iro)|%2k!597BrIH}rFTB5l^ardq7$E%b}Z9Ogn$X_l0%IPd%F0JR5V61#!H=y zmM>{Mer#YkN&ZCoudfWZrv)vhrD(~j&7-%~ndkNADX;23{=e|L;{K+J$?Gr`B#N+ z9R{t#hKHGQwq$YNM%OAq1NQqg_(Nc8LI7i{Mh1PE%_hI{J!zzSxMz@+F?fNP?q(z5 zyx`B}Ku!-v272m{*N%SfI9-f})Xa8%@`7c<=tiE^+c}bwoA$eNLRHbkVmCa(h$Ykri#d z=NXb0WJp*suriaNB^%$7+}U=p$Z_xeuV1x*ZKCP1E0TuBZFV#Ut_ZEWPb3;qaqPk6 zb>7-FG~tG&2vWk*+GW~ZSg(-0(FNN6na~Vjl0FXv7QK2j7|~Zayl-;U>D#mpb$Ld5 zdMbTjHK~s*X5qf1f0dpd6dJm?wZ1WMMNg|nq*?0I?-5$-(5t7lY?fNg?1@m##9?w@ zRbFvg?&wvs%+3jrdZIsnCWBEY;Vplec0tVYg-J6rhPi5IJ7T7I-q8H`cGn3enPdDr zt>LDPnT*4KT%o-u$D$kReSg=xlC_|~3bzYJGzSi=asdi{SC}t!@}zvjtBV?49X2Zq zH=rqp!ztm%4|Ep%D2xmsn(!d`!_f*)0(QdN0LX=hKfrQxxXXit%?ynSh(?M22pl@B ztyK$8K#K}J1PGx4NiB#6FtRrpHi2v-7o82Y?xQU=aqG4Ps7d(Kn`@Br(k?%Qi-t{Y-^0$FL3<$=k8*sBN)1KSladR`}g7mNvbCJ zkG-SA-I;Z9w(z zv><8;83+v-3E))%KZTE;AOpwYeK1%@%O7Rit5>fWz$dwNi%i}iof1mCn&3n8D{h3l zB1I@gWI{qHo;3!wrzlJ%9^YMyOp@f;L~O-~Ou4J}7fB{}z~)Bf3i*1r=jPabGHOs6 z7fUgE9&OYvzB?zcpChG5^qp(`@#cMSrfu`d=@f1uws6wcoAwrhu?%OP%eX(9pBI7y zscm!PeAnrX+mIR(n(*i1lv_&!ThgI2tK6W>tEj2YkB%9_gCa^(6UH&r`+Q@;UKv~5 z?=N?1C2nA@ety`tkT%l4P&J`udVcO(g%>u==Ax%ZFkjqNAQ>;;Wm;R$K59?41%Py=Gxtn>!14El?=NC!an9u zu49I}(U4mLx)&4@`tOV&m8q+%gkp(bwegqcW`wc-KuGbc{a|yd&gRAsdkKQQF=)fE zEu%A_eY|RrI84#?=-P32)lKGAYHAE$=W%Z&j0mC%2AdjdLA!0VE*(9f8+GY^`cp=| zt72elwK4B7j!+;t7)~>5oy6HDEnVuiK7V1^&13c6JwjUX_AQlSg!8(8ExL3_5U@zh zRTEwn=V6$3;g0zSEl1WXj$BgL3#gs`Id*#OAeZOeh^;rtUOOn6Aq`qYR8m*hBfvKU zgFefif_RWwh@nBgN8CO_(Ln53?EkC!%KhQ>+u$>VZzx4fdRC;6by2M6(L6R!1Ltf z&UuxhhcE3%G&C=gUAkS^6SIe_=1hX#$_>S&qSt=t{0W~v-3<33WGj~6JCbI*AjlM? zdRbKT1pImEN{<~sJ`^lA@T1UhBies{4_P4DF#(=bNC?5S-kh1;vQBdgAV6y5J}6R! zBt(_89JL~B661Yajn7? z>4!*bHrWEAO8Rs3k9&G)!s5ch>+AsqPs1ZP^g%WF+`#iYN>S@-snWmXm20Wgd4J&f z_o9OL!JaP9PT;$$=d#>-0izwZ4{v9X!+x&b_Pq`PBKvD+c-ApdP>UbfPPT$H46I>-xgN;;)$*(C$Q( zWp|`)Cpjba%j(qOS1`dqm+*_3NF!h4?SQzXEDdy{V3zn}C?ybnnuH|>3;#rC=U4FB zKmPdP@W!w_1R`s^Z7S1pVsZklIC}>Np;Lki&>KMQtq6-WA^q9l<<95MFLt(5 zo_zeLgc45f&Q2c$et08ch9FLv$iG6oHR+yve9jRz1y`jt(IE~XZl|GDz~PyL}cF)x3MSSugtYobGL$Xx)uj}z87A` z7*mIf!JGF!IK8D3Bx>5tF_22bIAFG@tE(&ZyYAEal=UzWt_+_|^r^GnJ z^x)^%*dE4Aeij*D;nf&=$gv^eS#H~%AeK4Pj212bdgnvOAA?tbf)R8^t@j?)9gHzeThHD_#`6zSi#bDLK2@kL+N`ZdoPT{~C8 z+IsUbl-QX?()kT3Y>7#B<97Oj`2NVT!N$Z0crXEmme$1Gf1dbs?$fHc^H}LK8TY4y z;n#ba#V&+0rIfvamD3k+xCU*WAiu8~*@=S@e}-OzL($mT^hr}jJW^2_f4L{Iv8?Pl z-ZqAwpzb}Fzf8+-SVpwX(YMFwX#`rLFm;nb!nt?vUYP7ZusIdfJUfic614PNQFSdg zB_;ju#gR^&vK`t9_B~GWLC0dSA4iB0sOg_q?vCX=;iILe$9*Z1agM)v;$af^p7425 zdo7=v{{Soslisu_;RmwWNeh{q6|Y8{|W7?{F-Exh1)Ai>kak` zd|h2A(v2#?0|=46cWQIK7P$!FRE{ZOgl-Or6Rl?Tv?DrRSx0Ds&#x?h6Vg9;5W5mg zZi~L$UHA98xR{!n&9~;5SX$jqE+~NEO2J$;z2V&I=`9h?$k^K(?o;3LTMPW8{~s41 z5IabAuw^eHTxQAkmt{xJ2zr#4jHoDl`)>8(wBOgRg!0JU*WWlNywTH zxfDM4rO|dFFLHkLe7Ijtg!Y09T&N>LmRw6q7H1?^m*BMlN|B~%qzW&ia)9)Ig3>3m z1k}t`*1mr{3AZo7t6yHHKQ(o?pIE%I?Zcm%bCl9mXyf6R5)T6YX9z*D@$uEuwgP;& zk1HxD{Qmp9<+cuUL3Va1l5;$>fF$0)L9p%&*&2jV-QDac5^j(nqloy+D);Xwk7VGY zj?QF@Sq+C%hhoE{)Ux8>+J9)zX3g)&g!PeuzHybv9ZX8cI3LW@hrw^wEH8UA_p&Bd z{DG(_*ZWPxiqeH&{(UelL4lofEyZdH2n@i+NPJZg-IgnibRQfP{@s*J2#Jgkl|2vH zhve3~-V{R(u}5MTozd1sxK_V>Ed;+|`Y+W!U*hd>*hZGm!J(4tkI4v__YnY()Po0U z5741N`7|`dh7|0u^W52uUA#s2UN&_w_NPhQ@7R+ZDJ&ZLam{{6drm50Y zR^Q4R__b8hCf-Y@9qygtL&Z--jV93ZfwU4ns>t%$8*=$CG5C-TJMFcK;LTS%x~hZJ z)y9(@+1_-Bukly2Tf<(@?YotqH2!>9>T1-H7xEnosx}Cv@>2 zkW}7#pb%5kP#ik(mPak*J|Sq^@FFd!nqW;+hV>Q~Bo%vGc!i>S*?<30dhlB& zpXa?%@4lCh%V*^Gdp%Z7=A_6BwMjGxbx^qIM@M|uf$&=f;Z5J!bmwqJY_Hg;D|GFc zu{re(AV?qoqaVz&aVd&=AMVDIhN;pD7R4&?OxeXL=2i-B+K9;o9jFROnVk&x5xUva zrE)o7i|a!^@tJoLQP0?ikW>BgJePaFRPVkjD^Oc}cypm1+Dht*GZcL8V*KTFvn zMu$?P$14=QdsJU0+{pgGertB(dbilo>-c#8>%lhffZtjNl=C+0a|CsM+SwKAYE~`l zjrWV^$TpkA_sMx%5+Qm?25wQD`XUG9TX)3YrXkNg>~yI0T4`FttA}qZiIesY83BD# z03&}ltLLk@n9(Vr@LkyIMG`kjh3tnVISL)dnSncAe~;3KJLp`}{J#eQbTJ_Pm!|;V z#XHaBTK*bHs9yc6&)#`d<9`Y1zmL4h#GLG6k^84w{ft`jsYLFHh!m3V-xnA54qdO3 zG@WpLBI~w8SG#q)w+$|IMk3wz0L4sD=l9Y_1wV@3kvuSr;J7s0Y;DEHYHh)K)SqVF ziI1Z=oI}9Vdfnjv|63||agZN8Pfu+!##Lse_@n53H2H!Lhgi5q#n~-``egv*!QX zG^F#gEP^lg(52B4fauK=0k(TP>}4PQwV;@JFKTU22P)%@;hJC^lQ@$x9%2-RJ8)Hq ztJ~^l@z^Zn*MqQtu!I7~8dV~ydEhM8g@^nELiGvw#DH&K@eZ(NQF%Zm!bKN&8QNUr zv|x?hzr|!2={i2E9UjCl<_>uH zY48Qa$(R*`=p7FR9VKP=L zC8*-4d0~DH-w@Q|;1-9)#|LBBA^sI}7iAM$o_^jzKt-^ENBV_)iy`^llXYRZ+(KEiV=h<=H%Bb*B%CBW~r&WLu->~ zV<0v$aA(qt(uB$lHUnL64A>bc)Zw#*yFwQzFEH@s3k5vAph>^s0=*s~qe0e#f*KYe z*9&{n-n`*NivXUU)j# z_6{>1G|c$$gSH9MdIIPHp5S6(rD$y8E{$ioy3OF+b|{vRia=dLP+m-Ri7$taGiW~e z*M>LcI3%10edy6iUSEhQ*I&H5Cpy}W9&*3^Wo5xbODUbp@Jts5s;&xyP-(5<^^VKEqffjJR% z4q6>3c(SsBF#we?l$?oKyQ-AAZaZ09ySrbYd|em?;F*$ksIDNvA_s7J!`d2Bz9joBQBP|jh`35*={UwYq9iKzhoftL|;6VVWPqXz&%33w=UP&Vp}7{Nx2tVjLu zy@#ma^c^#SDZ);UJD@U9pj5%#KpO2HP0j9i7BolP=Ke!hMJ&_T3btjQTORO-v;WV! zHiQY~*xb*!J1~KUt8gl?&aK}Gn~@%w)y9eVE=-b+=&%!dudU4u#Xl+O$02nf%I;?p z4gqIaY(Cv?Z*8q`DqCbil8CzC)hkZIMj;OKParX;lvy_VKKu`EqYbS+r>lDqBGJ{- zSLx`;-Nz7}n3cSECDhSB%9-?Ic2>Dm7 zRo{mwFoGXL4vj_m3H)3b{knb+ND>5Gl965ZxufIpW^uRWE9B#F@FhWMhiQxU^GTQp z0%)F4gu}h!Ro8XIAAA#(6-YPRj4-BZ;fEKc9l{0%fTQJDvfLJkIrbeXG|GA+EFqgEMi*hYC{Qw@q=Iq*yITOm zP7q35Jz#WnSlkYb-m{2l1PqSb`=JQR-lp9^pdh+L^9st;g>NRIgx}{0M%Xmv!7lIG zJvjTWu3|4p{cbro)l*2R8;z3p!~G>JcM&nM3y9#mDVblseL88`~x(C;vD~OG-B25y@$5YwP`I0xJPj)HVwv^)HQDZ%b3gG{^%) zhUpntBybQ^kNZmM`w699u6Z*vQ5t%BZdn!T>u{QKJa0A2i-k_MkEz{Mm~Tz8)2eE0 zF(uw8>`K>_e;sXiA8`SJS?idyEJfxDUE(4&MJ<~LcVD(`WqV4+NBfUMYr-UlzzVa&p3P-1;8zP(UA=usX$SFqH+cZqw@Jcy;q7^#;sr*sN#FYmQO+sXDF&b= zm2hYI#U6SIgL*+QugD&7@fFXG!I^-XC{~SPfme$M3~4s#45frCqqDA}sUU#!=VXSp_Cm&sHXQk}@brZ|Iug8nK}U)~5%C;uFSlX5Dv87si6~K z<(dh{Se4-L93i{^xn>a`4fT7;=Fd3S=i-M%=UUED0%=0`wa)Brult#3q1eV%ah2vT zHW2(Tzc?OV)@@0msAMO0hNxAZ@Y0#)#s0PGd7btqF)t%9`9dgx4nB8Ywm7)Mh;wF}>1d`MSj4nHzSl zPoZV{JJqMGUALHm4N#`>HNG9MhAKj-_c?Yj~J4W=*FZy&C>kV+e}`TmNKE8G};go`Fs?ub=~N8 zvH-I@-Rv0W126f77zb)CMQM<>EcF1eCt5Z{1hcW3i_X%r-gS|*tzRBcrR%|y6>Pdi zVG&vf6{WTJzrBK7z3kwVYA<~joe*0C=jnUAbnV*gt@_IEVg*dhFKM#UU9oo6nj$&M zR`y8x=3vt^)!mrAL!^p(cN8rRcqZU<$NEQ^o0{P96qWh7$N;^-wUMs!&6CJI*MICj z&BDVIc!^sM(GN*6rea=!^BoM+aXL1i-g?$7vqpg?0^!pSbP_s481mcV-0An+atDXt z^yYl%%0h#HxZCnu8J?9PWr2l?-A8QP=Ol;}0$>4BGc-$4eY?T=obafzIrRm+VW>j3 z!B2Ll*V&&xe*)Me#kE4xk29}!ejGP`+SN(>qdg}n3i5d zQ1GqsCX9$N&uamnzSya4Sk1>>a;@KE&B|lR$us8XE6#nM%d9a121)N;dSmTFEpo6> zwXPu5d`iQD;$*+p+O~s#S#1TnOp=1 z|FxozO-z#C!s3)q95!QR4cWEs@mMG5{y_7?#E=uGmu$Gb2gW{0iq-loj={5supbJn zf0v#d-fhZuS|AkR_#uKqI{Y%+jz zZ9@@N_qpy23B--S!+`KsB~VtdY%SLun(BQY2|H|#kGDjxXkQ_aFW7c|l$LDRYVMDd zsdb27`k>al=$BJ0L|LWsaL313wqyPsMgb91&JwnVx#oQ}n$mjHM<|Ol75jQA>kD5_ zL=Q_SzK{4;?|(y=?&xJs3%$c~R5brlv7GsG#>wR7w!J4>7VS@;STYkM*_W$ub-^QD z&sglkQh({+iPEmstfh_8r3>fbBUWXdcR4IU?Rn#))|5I$z8{f2o$2hvf)i zW6DBBbWD+*!K+y4AceTqa-~1bJEl|jku0C~T&H16Y=Q4zyG1?<5Y*s=jL7ROCl@CI zd<|@BHICn{3IvIlgZeCg3~FkH)OKt#p{QL{KH&CNuC7W%|9mkTGPp?BcGgIuC*`~*%jf*pYR6nQ0~`$xu&sgCHNDsoVZA2Sq=4Z?A<0C!}Z z?>f4=gY@OgyU>*z%FlxiHbs3!znc8NLFP;Zmsaf}O0$84yj>J^f3m5cD=Xl~Z9ZH| zfPq(ZH?&t`O*ac)q4cjJmktzihXFVX3Zx!6*)I zq+du}QM#il{t@1zn%WM$AU@`rD^BtGI+0;R1A?}U3tRX;nLYU20VsZOa?umX($dWA ztWlL0|6Ery(Z+s?k{VA2hcq(4R&o~RP!Xicf4uzLREK<2Q_%sejULhKY$6 zs8!fq(6haOTAkj|EgUJ8&Bm(3W2K`QIEnHQK)OiAUyMoT;}hC65cIT`lOD^Tjs!H1+KJ;WLvnvCh~{Th6dw7v(&Alljh{b${Af~YK<&Tt?%lf( z(A~vNK#{OCJ78{Mp*VF20h1y4JRJTog(4Ni3U=>{DmLS7DbL(VX*dS;Q`#+Z_Kw(z zqf{aMjR9~Y`CR_2U6wog1fT|18h%-8TN|6Jgw!74SPG=)rw-Hg2%@zsA zD5G`z`ZX#36UP|R^Z$V_z*CG}6Ao^IN|SB4zmRbdaG zOiaTla1;1V>+0#b9v|?xgc~K&N%S_5WPdBYCkCJd=c84!KL~+v{mSm*Id4$1@-q$` z7nE(-)l&oI32=j3NItURhad?OP80S6Qr@H%+{MT|gTW6&i!12P4tAtn;S~_b%gwC> zMggJ?TDN2GDi-B*PAG6j!k)Fw!j6q!G}XauAj79wIh-ET9Hrg8q;)pu?~vA zwff-0VplgRte)n}b4KmXx0T;m-q!sk{uM@b-ofRo#|>9LYr`G|NZui25MW}tEFs4N zB1cPhSzrIlQu&rU!kPRQ2~N23jh^zvOWdbmpa?_-wk@&f*$|fxe}k4=`S7TOaVJud z-ZJ;NLt@s1xe%H^=aX%(9I_5+iuPYy1?&jI@ei=ciLxG{66+Zc9VaZT=O3tWLSl|V zfIwl4scBuXX3ZGA3zBIM9w4CXCBjMONBg-EnA}!sBLo7srEvA8BCP~DH zOm<}lj*Dw$oaEBi7ko{-Q07!=D(oMAs^{Xb4Ug0HrV)s?0JXqtOGep*y^6e&=rLMa z3JMF$VnrjufGEqiA;UmHO+kXuJOiTI9$eTX0NYR@?#%8|R#R)H@uYhJ#A9P^X-Dip ztkJ90B7YOMaHE?yNo&0nBJnLRPaT3W&8y<#L-DG<7%&9}O1Y;GVi$M=`T6;E2kc~u z<{lK4qTa@A9<=lkNW&F4ikxPdx8V}dv&A9)9#ulf2FN3r$aDeimX8lMc%}T5T&Q=R ztF%mp#mZSh1{e~X2%35C#H>(c!zg31z|ew(>sAu%EkFdq4aB(0FHIk+%L@DE$&Q(K z|4j0idw7Z4`+PF|GE4*+02+xu)Wyc$5QcgbCloSu+g~lLh)>=5w_{Gd?{(Y27W==- z3C`xoxlz8q&^TT=1rjuZkzAy~eWKKlj&`dWo@dIgwtIgVqG|RIP&qTTPkJ{K*b^*@ z5mV4Q-1stn7Y3*p1BlZ_?y@C_d?#M@1+k3q3kU>y7WPadHd+sq@i9_0mV?=aprm3CUyrKQwbzp7Z+o#qE{! zSyFiDbs&QH^h z09fVjY{OP=W7me1h@v@hId6T3T9F{vUgL zr5qe2*Cb!wU}-*npV42g2p)=E*@mg`Hw6xiNag}y6MK}PEC4$Y1Rf8mGFqrGbZu+P zg~dz*Fo2@rGAvft(rYS0_0s!df2pcZ*x63~x{MHqiJU~Jy?psBn2-1}SoCj8N+`~t z218&n9tjXU2vUW3Mjax3@cG4$JB-J;y?{l5^7v9+id39lWjdms!?l$8y?#?o4avCu zQ^XD+8*l;=K*)fI1HloCi6c@G#306CGv#u6xy+jZeN74^+9ap}exhGHv3I$URaroibZZ-Or(B!A|0Z%$EB z9Y_f{B49HIJ4-wSu#`{dM#xFTb8#ANiO8o+QCB=ccQo9Mn}u}kUH1iz zrGfv)1(+kxsl^I!S>`vj2Mv#LiA{O2P}xDT9io?`*u9iJ*C zyzt8wrvw;67|bi1+c9}+r6+z1LKQS0=e$|-dhc$0lO{OjT6N@B0nEg3!rL>S4u%X zSv&0*IKCJDzy>4_Cg_<%}FvaTJ{;r|J<7SMVGBNNj`mLa{31GzV-YKE_tY6XQI&IeKeu9)dLR%ZLjL;;_OMrI5{6#H*&$A(%xgmn2fFp_5gZ@-N8VXDX*~OTj4-XGd<{Rsc_&p@`5C5C4 z4x|SwGC{mjmFn&;O3M4N&1-rttqe{!1_d{mBQ+=X3gvKHigHn3?C*DoMMUcc9VRSe zs@dygJ`YWWk3H45cH*sE`gZsvw+7>CW|~j}eYXeQ_U_S3N1|TEmM*jGVfdFBS`wKd zTVP}2tGL~-x_QLAjUTb-PjPIMB1h^F&YNV>*h$Cd-k*<$$okrKM zrKN?1vHFH@m-VJo(~j6v7Fn5@gz-PB-*e}7fO1|jZf`f+FO5nErvi%AZMJQ{Pes(f zJT-XB%Ibjj`k_OIj*yX2*2F!u$vK#>*9em-02M#to%$;#{{(pTfuSzNYz{;fqhg++ zR9{?Q;ja(Z{QIOgAeFZciR73b)Lbps(-N^@k0?#J;tm^8O5N%Z3W09SM zlS8~J{_y_Z62I?0CN`M&pn4Ocm%*Z$cfM(5HM%@MyuR91&Ka&?B*;Ka?nA*66dY`I zbua6ov&$>^FL*-`jcMc_=u*x*ucsvm;1oq|Ajih~iidP#!#3d_&B?v~_ zyr6(Cp_xmy1nm`ct}*>6VE<_ta)j1?LP$fU4Wv}Mpw~(`))dLs`Wwt%+|OQGaxI(N z?pTx(QVX=0hsq=CIdG{s#0Vli@-D(O(bAp*;RmNPkUkh?(UR>#_UbmuV+cKs-Ehrb zAvV}R_=oHA$0)0Gzs|}!iW?2h#4Mo~ zv}7pJ#X;Z04aF;wG$F^V8nzXZ7_JZbf`$2y`XqLf;ph0y08 z16Yipw3wgmzSpbb{gC;9lQlrnR`-q?ZoFt+WK z@`09j0xd;j&PREZ?}2NqfJ}rlE9*R|cLx>gZx4}fuf)b3$>!3R^bnp9JRw4v%r0+2 zRgQEO3LxO3M3H?a<7$7?I;`jBq2IgaosEuI^@*3mLGYmJ5N)7D0TKXCk`$Zx5sUzkCI*oNp+9b%qXR!_0FC|` zEs{boc|uW6j9Ls9>o-EuXrA&1-mc=2ooI{UGGZRnWQ1m-nMpi7WK0 z@k2!jzzWvKzrXooV&_O!VLvt38B|(Gtiy2ZLoy8FhWKprzC8mf$gQ#YxM_h^lM%Vq z#fv!~KCCKy!l0KXlvo%rJvLo9U}k4W{a#;HQE|__^I@!P5Y~Y?ffZsmRJ8{zcj%Zw z_rSIEUNi|2}-UO?xqqp>PPoD>RXWuORn zSUoh9w7gnb`S9D4xw-jWb*chM${d{_(7JIV9zAcbo27+NfXXRTMlg*DoRPA!YrlPR z;7jS`l!wv-`}Fqh+i22;!kRZHH&+%7@UXP>NJPfC#uE5QV_%vIAB5jY(i3rEVGN>X z0l+>Cc;T6pOGI$+UcyHPV4JbAaZlMPya3OY*j)gA#tb({4Q1LndaVo5G$w8!Vh^6f zrL`BwTaeen_Dgb;E>}L=5|smrPvl@&H7KT09s>;kv7(18O7?izr$H*NX`*2aVF6Ya zPBziFU>uLoSz!h)_6KqUq*kAdbFdokvL!J8iQ54)HO?p{>8P}+JcO;qOTKmM_ebpH zo7_cvBOdzzqoj!?G{PgOR2VDdlQq+(7$Oj;#XS24I3{)<;K2KY8{{ z4x8vQ4JZI8c#Lv%FarVEyNHYo|C`l4k#Esf$3z^|6oBEbi^ie5kDLIRATxt;zd4o> z00TFf1RcI}e%5Gl;6?lW<**r1=b{2zWijuonX41@my=y*?vX~&WDfPUImOGIfS}~= z9*@V5lZO}rm&}a-97Q$6d)GpG2IsGxqt{^6F5rk zW0jJLS2a1oi1QLy^GtuKvbGa_Mn(pK9ybsvVrqH0XT$NEymTf=HIrLG9bgStFqIkT z#Ax;d%4OCbSTG1!$SQ$WzSGP4)xJNp7R6C-xn}~9@SN;7+1bPP639Tuh@D9D7K16U zd>Kx%SbBm~gX$Wf72I&#M_j_|O;KY8q?mW!%3lU-1t{2WjV3(>jiC_@Hq2o`=|@ZE z^UL<_hYti?q@8_Do-^`#j*g=g$$R~f+F^ohBpQbeifaP82UW!@u!T*9>*0*1!*uS~ z0OB1$S?Sa}q~oGt`?n+TDWyatCMNQgJ0RDCR(SFcTo|fo;Vuz2%SxI`qsz zDxyWyeLjhf3-qY?V9t2ez!dL`oHU3)K;jJz2ckPj6YXcgydv~Y#zI&?Bwj?tgx8}b zeU&rY#l;1&2Z?;O-E&!5P=u*NFWfA)Ife9FE=3({LNT=+WQ4ZP&ZFlalDgObBM=k! z4LLJv2tO<2tVdt5-&i`3s7DmWIXWs*z8Ic~gH8y2v*S_Jo=fB{5s7#;SZCrFM)h~7=go7{}2WW~j5pXn&&i=T<;|EWPC9)pbIaYn( zHMxh&CxnF`0;fYOH8V5Q2FX+N`}L(^JY=NrXeQxgD`5~i8d+cX#9n6os`c-Y#cLX2 z#E)}99q3yL?rz1X@VuwBUgYi~V~sfDOlq-x++Od*W95_xs14V5Fb2~_DgF7@Io`Y@ zal}G6mV<%9`k*P|P#XWF#nCV6LKVKwy(-b|4BJ z*;=keg8-Flfz`D6v}-e-Qk$8ck$HWe#g;RrX(q1Vm81> z$91^QD-$IIe3341^RFFFQ2a=p4m*rJ;En+xdnV~*ec?_BmOHw#$H}&n`E2*9I3vZ3 z*|7xbg_F;ZBv>?kM_X{f{X6Zm<^b8mGZ6QtQTH%~ zs-`wPX*kaYN!hjRS{P|x-kGrLEMe8yta5nMfUxQ&g8LTKj5x1!)~%!`KJb7peq2#) z@ha_SXe3>uLPA2Ac-~6!;B0_N9*(s8M>gktlgxcD*=akQ2GYyE>~^g5nfrjM91o5D zn3WuW<+xJ*0+BW9D)Q?eA5XJ}3(dNf)gBJ4WAHpXJ+BRe|wG6G-)p>~00D zevm+9KL@OXF*xAbc7$K?_lX5nZ;- zm$MyWxjlm63R0r$?sw~(2RLPQzsFOl97&*m=v$o}GG@#9CUkvTnl-ez-#r#u7x=yg zV3Oy|K)FD`{?LiMG>wV09_7SK0J=i{@jidNC#T=u9k}alX|_f|?AXt)6pj7=vOjwD z5g+d=&fLaRJ{4+?{ke1NiMr;T+u4ilY6iA829n#ypI;rRrf1eQi|QV?3HTX-`0HHS zKPDFL=6&P|?>eP3BKMADvGzL`eVnrh53pXOCv@Al{0h!VnHUT(Z>e++E~@PxGepFL2(w zB{Y0_jplD;Y4$+u?dM_Jw};XS3omu^9qG4yaK`Ux@3ANqS^NwIHkeeCCm#MjRJk3U zOW-E(;Kjk={b?}hkPBM{D2Ttm#a9F1(AGvyl=R?*chxLg_n$$Z2UJqDqM|XX8yD&C zmi?BknT;@FW!XctNt#LL7dCc2tcDsku8M+nC+nI>_Zs!)U&&)yra78{bq9pKmn^lV z<(&D}WHxL>t|oIF#TZ+TGASvolI6}Q9)k5y2_&TR*7)>z;_IR(1kvgyZw(l>^Ey-h zRe`8?_&t8_7byEpjS?!MfgTZ%&Xh8wK!mj64OhZ^DOHe!=i=G+7}+|i^2*sCZ^dul z7a)=ummJ-^k|9{Va#rdT( zkpJbFt&MW=majD#*`<$gJir{VwY8NgKGmd^8)r#p{z(*}Xi5QrM&XQPrnks89yJf5 zDSm)>%2u%CS&Jc<#kBjYX44zYmt|n}y(Grm|I+to11l)2VlV z#>7>W&1YwwbTjLI7INsjwZ7v*Nt8MwM$60me%$Js@|_RS8zF`+2~Qda*tsg@O0r*t z*E5qbb}yN-GMW@0zfJ%W)P`=%$F2b=MG`o$dSuHBlox~|z_ply5sZ0EvrA(op2&m% z<=Ukd(gWm_Von9WY#5CXwSWB%B3jRsG@ci%3lu1Wj`v4t!q(wZ)eF4LT#Wv6wVn$^ zQiOh2Jp{%CR2iav%q37s%21TjuV8KITtV4i7vDEz=Z4==n1(*xcRDmSSB3QA=0gfH zPx7Q{)r_~qMXElpon5~ixh8-ySL3hVg->zUPCag#+6wFm`@c%?K&Zw}G?`OX6Ml|i zf)CaybnY+`_+kIPpp+HBfbHbZi%JcjUuWMjGPZjNHYXVw`Ttkbb%5pAx9{vE+6pb9 ziFkP1ib|5ClF*hi+Dm&V+Iz{Pr4%KV(9)(UN_we04Lxlw747jqZ}0zmkK;SO%4B8Sv^flgI$p7`8(SoQOAYm7?u!fWb5(;ey~lEOLORD(aNEq4x<{6 z4DOribh&c6zjtQ*XWh-!Lutc_cBLo3b+8bz{vdYv?^ITw=w{KY(8M`MmWD4obO{Ax$u7@-jrmLtTPS(;NWu#>cR6-A!l9I=i zsJ5jNNFkJliYe+c*p0C_@|RGb zEhF7#SaB+)sGC?F$?x?dSz!R2F)5llHIAq1r6@Noq9j*m;%{Mgh) z{o@)aD^WW(2W||h4W$HC((=}=lbKos4+^#sy@gnO=JV&EcF~OeCp<%G4HOq!C=GI( zCBuNw6&Rv%cP#N}R3x_Op5(m?ZVvbN>Q$kM>zI-r6X_U2#TQtI8?7P8N=yO*xCbRV zIS1cgzS;Na9TUp&PZRpcCYLT%AR$Dq<+5=9Vn7DRvA!CJ2-nb_V>URvo z!O5VmuWD!}unt@eCMjyH3c<$`1`y+pLur8E#b9FwtrhGL2>u$iP}tJNOfAs1@G>C4 zeK)Wcwi<+>9ybNbAT(U4U6(!A9(Y(oWJI7hAg!Uux$spM4LD>7UphJ(@Myp)!EG7K zo7UVL-9nY%Nq2}GbQ3a`oE+IH&;8}?GNo%bf*Ewvsbiy`98+rsfBt_6S49ZNyaBUfGOj=$Z6MCs2eyEv^VN{x}O(67u ztALfRCpWmG2!-$q6ED~-2aE-m4Bh!hyrvQ42=2eMef@vUOT5;k57NbRdlb;Vm0a}wq_$(ga+|de; zSUO+G6tx zT5QDS(z$Lo{1#$B9}gXKIUt^F0crs_z}rtKMsfPJgkvQF$H&Ifa&s9V^1*EeS|?dY z=(s>p0|bRKK=ab2`~zLhlXI`j%fsNoM94F(3WLWB@XkX@3=9cL5FMH%ILiO<=)CfB ze3SJ2zrN!@2aqRGMgS8g=(LXZ_8+iJL_=zuJmrkAhjA-Ad;Sw)ZU-kw`JO-F3!nOs>u zfuaw?`dx<(mD)_3G`X3QcAXCmRSmoFE1GBR{@P;m+J3T%E&K!U>53bgpp0GZ>sbwT z>Ru398}(Wh_1Uur+T%5z8_~Xy2cm;HRN@4#WZ}=(EMlkQ+HzMGe|hf^l}&-@`Fnow?5rc?et?mIFhI{mH1QG;ZMU|zLZZNwt{DiV z9jPOnv}!~x1ds^4 z<0J0*2@E76HxO(H0s-Q8Ye&afVAs&600#d;p=`606bR!X1RF@pfb1H}%iNG>2`v?t z&cI;(wzc&$1R{VtKTpwh{WlDV>%zN;NL2d!%Q?IOKnGn0VlNXF*prsW5Vx7-i>E1V z_@5Twg2M#YjxFH7z{LW$tjA~@XaRUy^*NRtC7xB{DJKE+7%NfY*3K^;Y!ua#IAFEFvJqo!yI=(VIZvnG64gF0vu8P z!$Juj>aX7S2>x$NN@_d^4>^P(Vv`r%JIfVO-8V7)iSKpo_->blfjCJB9)PR@LB%xJX&~P? zt*GVmoF)yRJt8<2FyN9)QH=vc1V&f{I*3s(Jlo*Zw#a>F2m}NWBVZ=frLBD z_<`Ctdp#AmX^mZ^Q3NU6LR$n?mzHo%X6v(#La&N`x4l!H9co3&mMSjaIXxn!Z@J1Y zU=SI?1(*)vjG$_fxsb-d@)6W%b%f)+s)(~re1Ys9AawuKMz`z-v)CKMSzXvC99IKEgFhb%tbyyf(5+{>DYhD+d!y`M*^El zRMMfnLGjJO!C{2z9d$NRpwPjCin(oAP;&M_F{B0|6=cABrABstgxWKx#*p)&>qFzl=63T^>OZ z4pfiWQ0SJ}m_NB^Uopenm4jA%#4n3p$3}{QMH3$(Am2LM?moL?s zMLjRHyYuX9Kd5C=QNR`D{fxj(kRl9Yh?ZYI9EYtX zs7Q@<>IbXN;;j^mKdRPDrQyh0`=0Ib zM;ei18u$ET&m`&hd>#D*ZU^iLxKS{QQEJZsU1Ki%C>){=?qs?A=yg^GZEt=AxgV2W zV2(ycM-}i2v*>g6JoNFkT6d<7kRCfOJuTFZ%fJUo032Y2*w#D0xCG< zOG4j+wzx@g#TEe>>Aeo&2Z(`|Ft{%aze2)PEmrKcCW|Y>Qk#Gla})z!Yja*V!OJ7= zCs@wT%{|e~1l5f&(gHI8G!8K~<|kf|@KxX9_eLpm z^nfr{L*f0kwLJ>8KMGE0iBVS)0}*}3sH>8jp)>|s(eG@CPek$!-WH7gpaGWH4^yoi zd*vYi(=WudA^L3oXuSC-I{?}1_R6E5KEi=tk1_`wH3S~UF?C?q!6&dAIC}#I#i^9I z^OF_bZ6PI8KIL&`@mLKyW`jnQco;w#jPl=je;XNki z?tF-?Hl?FQ_O8T)d(2$|HwWK47^tw@#7^?L0DXLy+MD*}xkFoCDLD8#ypD8EvM7{_ zK4fBYVYN4fH$wHsM*3cRI$z^+X|+S49TpINV9cVRhDP(qdv{IpcKHLLZ*ho9OVau6*!SN@wg``>dLG{d;tY+{PrPnFMAfh71Ah*212j!8gf|P zMNuTUmg!2yA|wR>nIB!8kKEQ2j=jS3f;J8?ftJ>Ns7j&i1~MYUEx zqwd|~j?nXbs;;gMv*ZS_v9yvpl13TtK1%N@fJ=^4R+RCCDSZ5 z8Qlq57||Hu4r;{|V1H=&3Dt6qG2xql$U0;pjv34G#eXJ#cN1fY7_S5_gGE;GSk^AB zmAP#eTg|=)IxOH&*-gu}{dUFePOsT3UnOs|$k|=6Q2Za!#v;U{AkVk$+Q5z1b*IHB zdmILp%mkqTR`$Q?9dYsS{8jgz8>5>bmBTPW0ZZ)9M`n*6#Y3$}Y_3OR3?&|FFI!@GAk776FNgSn!K*5F`nb;9i&qfzDa@>w& z`~fI5kH_!GqC~mXJ~;vcz^$PMI;$N%A;bBSKl<#{-h_SYs%S{tUu;^x+~&0^0DUuN zR57>(^94y?-_s~E2-qFC#oA)-nhN?vv5GxXH;gn(-)zEL~F<157Z|J zWr)he)=HolrqC^+otqlB_KL>>b9+#-w(@wvoDOD|k#S@QOoc@5kE>Wtmyqn)ny+(c z_B19;u^pE{jQ;#N@k+CJ4dOcxOm8`VT%!;=MBE8a4n3aqO^S~*=D2I@3*Nqkz2#$wM^WVf!6ZG2M z8|6h-Z`&GpQ0$pDtqDWS{jJus)fW%PMXEI>jnd#Qo)6jCUdk-=kWJ}{25K^=H6cGM9S|&HT_t)yysItsxd1Mqam9+&Bjoc5G7IY=&M^*KhD;Wy zFg2}pXa-JwC_OpoH-FP^vys$Cu4>t@iJl;n4n;nk{;G^lK52QGm**{?!uWooFL2}c zEmYzZq5%9msf=Q;u-i2lcnYBg#VtkZhd2U_GZZF7LyA)ZFK1_-4^HiL0Sf@wV=PsdnODne67v*&EP zT@nf)qytcQC?FuI$G}@1zzrM$Qw%t=vaulp6JCZSvTDL-xgEK6=L`*#=VhQ`*HB!K zn1%Kd*&YBi5#KS=2eogtr{u9?_n?$S?S^4g&2(YqZyCKk}@!@Stn&J~O!X!Gr_|2Zt6hBV=91CqO_oBMvY#vfmgF zsFEc~wDjOBv$!)&c05@7D!YT zz4ej%Qf-HcS-J8*+17ze+QPATOaZ1Rkn#bF7zYjjwFSijp%_snhNBY=ae1t&1RE)_ z_(R90E~L+Q&z091F4q_Wv#5T45HOhW9(2#EKXX@uBbg^}83u+v>9w}xJ|x|93YE4hKl&PgFsyW^o6HJ7 zGrZ!#@C_bw`CQqgE!2-KSujtf#aIrGSnV5FOcNtgrZzSaM0o+dDVjsPeBo>cpt%Se z5ESamRQ3w=r0#VNO!dFt<6Xi`FJa?5`e!|v_HR^m$@;qZxLMlX^Gx`47_Xx}J?Rcx zK?8Omg6TGj>15AEp|#%^)~ew! z2BwMdDWmfZsOy8JEWE~$jCA>G@x&jhq49&RlXrLEtAa;o`#SV|6{(HqXUm3CB*pI1 zlU2(H%Hn$%0_H3lUR)%^2#wyXE_?Up1%ArpUGEd_dqjg}^HRJ(@H?8HGlJRk5>Q#8 zz9L+95YRxtz%__4u|>oNMG?lQA{+|_A*5m3FH!<2=SkkPMz|;Wg_%qCp#;v4P??S{m1$Qm}(098=0;V z{ths|8s46VuKQ?zci$8dFNh8Vg_h#JCbVh*n~+X{vJg4wg_wx2>5T#XBi$j2d}!S+ z8W=Q@U*GI#eY@q^d(4UcKw)l-_7GBH0@Nf`SCF^c$&u`c96 zDW4D-$pjQ=p7=Dvq!=U6h=(|b_)fPz>lqq~J~-g3TI2;{140IzYYd==kuFo&nXrx=?M)0@^6 zD`F5_A)UR@7QrMVutaSB^lu*OvtFCEt{MON$CX$jic*Hqc=3!}enl2w3L-|*%I3K7 zzodB`44V<|8MwKGrVc7V`~sjLgXV@yyYYLFtq^xGP5}`luo$9)C3b-KEHpViOj=!| zloWLH=Nwud&trMUxPGfo46Xd`TRWt9TU5$8FZn$85E@7kT`@1671v^86J{&p6wHA4 zu&c3cWJIc+`K=9m&s!Kbe{|u@NpfD? z*2UB-y1MTHdq8A(4=!Jf03QiqDykHW7=*i)g`sIgc7&=9mE#FwbtbEoP$O$`O&fidIx( z0Z16&JyZ@yx@+wwIwff|GFIRfLin|REI%5obe#)DPLb;$vlvyT%C+a0EO@wT2xQyq z)5^B2EU&(bwG}2{mbToRXoz(M*!?5;?9}UyYSa|eeL{FR!I*<)#q%Ss;@y#Iln$8E zKS02f{tP^|C=_r@;ODfXXKo4?Lv1tks==Oj>i)EiQt6Nu{}W9)=~M7dJ%?7OYD?-e z3j+p>Bt=bRH@*X|VwSJNsXvX8iCTeErE9B8z$Y@avx-pb!OuDfKnx=7Sa+E;3vBXV z-i53>w_Ppd`@%2y5I#QmN&rd;w$3cy?4NgM2S@+7eym~g+lyAM zk44{glaz;F`5F8aZmLFZo9$TpQ9`Xxle&BuBHQ47nw|>->_me$6`6((5_eh{1HzUA zL}88Jj8{4kVo&H>Hw4%{a9>-Qa|V>(Sqrb7YDqyK-pZAwxhaZuMf$Xp4REPy5&$ms zZ0$TqArQRj@m6QFjS^lnfRg+nm?!ujB2J_5pubL!;|7bqPca)TAhgDvt;QxH@t=) z21q~uygjDp^``X*&&uJ(k&7K6$3D-tKhaAFLbl!At0$ zPf0qZdlRoPY4eMt{1bDK*Wk;6F$&$IEhYt1PI5mZ8wbKgj1&ldnW*&T$ z-yqU!c8r|gQ(#H)!@CX1yXCE=kB`08^pTWNKNfyyg}ohKaweV;-Hn*R;Mlb*@Pd6u z#<3fCT0|9#By$&5;?+$lkm!Kgw`;PA(3@Ij=d9%bhlT|yix!TKJ7N6z4z?S=Fph!b zWU27ya_QnP83qK~S{OOm!gybzfh2ik-fdN~%bc?LIoO7v?CqhY>VgL&0xRDg0S4(a zxs+KSY_du4ZMcZ4L8E$eXw{L;Ch`{lMxJ6~Tv24&k@T2FS^A)Brfg154luH>E{S20 zF?W9as0)3Yw3p?GUH!guZob&38uEZwJ;&SgE~jjlJom`$l5VTz)lBSJ8+YVWk^R0^ zuFy;gMUs+g!Fp*fNa@`YzdU^FdYDSO4>-U1@^DOMXY^5d)^qDK`K|M* ze8b5)LQC(m$Uac_gL3Bg8zx`*6b|}~8MHPLXVRh+dHQ1|msIhDK;}@#a@A%gxMg54)vyF0Mu{i^lTa{m>_zP`% z&Jq#HrJgam)85$T8F672|Bl`PG5Bm!CSS+$qBCpm&VD}BpX(V5R-^h8NMC#=B3-in z4TMOWRhP%?x*+TN0{cG8AjXLOTl+M2|Mq+xuA& z&wtCrU%Iy;KZiAlvpvl8+~oW1*+DIk^bszFI25C1;kZyiRxTh{M%Yb&Gqo-v;pb^x zWeL5C*IkMyi4UfJ^_3FE2mDeUcymC}U?@wT)iTd(%`>LaG)5&|J0t7wM+EWV6iGXd zRiZ^Dl2t?AIycX4p6B_ev_MMMeDlX=&~39AYGl9Kk${@Jzg8gdg#h z*Puxnf^3KtPqP|F)Mj~p%6SRi%#Y5$JgxZMvyKfvlb4^eRho@%n~A};RY^J9{p0Nc z%z?W$fRwlffeFGC9CdwM#HO;hn@|qwPO1>QJU+nmRM|{zxStf^LsFeeC_+1mUFZ4tm!d z2OpdJMlIa>{~GeMe>!LU&3u#SMw;tC?qIlKSkz-;EVtCWwvsi&-||vZt!2rLl4mTx zeM-7GN@`PCtlEU1j?Wv7{1}bVeb6vEX<#!H+i`G0ZQx)y#n;n@z3RrtT!Z?e;F2z< zuqILI!p^rXJCOMW;~Ht-GhRrRt$|@8(SX1{iI09=^SOeXUjmI{cy$wr8#L8?_wSwl zp3U5{HqE^_Bf~(HN+Cy!00g2A@vB%{-Gia0TNn+Yp59tdE0%u5ni6!rA>X^m`D(+b z*FDc(wfiJ`ogP>M{El}E49g%50CDm`92+i}ZDHHrm{1syK%7Nm z^OLAzPOr1^?Romk*7ws4Jq-iKyCA`<0UJTQvP+W{*Rg)`kLwA~&1K(Xw_DgZ+!;l&{~m+t@z|h}*{Wu5yBw>S5^?HstclL+;7roxNd{ zke6)yKJ#VXd3N@sCuL4FG;|(k6;EmP1r?=FTO8Xt(oHYE$Ia@^Su1LkU*eekp2BR= z`K;p{GmCm3%(%D2HrJDHGH$lAin6_G$e!E(^rlX+X+{1|QpSu3y+ZX~-D|U}=gEc- zRu2pJb@EOOEk{`nFDwhkG0xYRbpF$w*pz##ULmG*d7-AId4Y}Z{>`XiT31oZ#>ba7 zV?LV`6JgbOnlI6vYnhz>z4R!i`JP4arxxOE4$9s#Ge33x&KVKb^*NVzPgMSR7XEpy zAuF6W;KM>Wj~BP!I(IptbItut+io9J8TkD4_=ZFNG_l*evNSW7=#A6i!fGJ!r00f_ z-KOv9g40VBeSvgoN4qyasTNM3`Ay0N3vU`lNJRMX($F*emg-vlWN%3p5>N}KFf6yz zG*}kybI}iq4>jdbnlmXnpVe$yqWfb7c zrzLpVR97Xv227*PxkCa&Dx7`AX?2nXL=yUoeu$X8k&3muMf;w2rn`6e$E3c9RV~Yh z=hxbbrb7?LxvSlpR_Hm_S^JJ_zdQd&{u{x?>+`<1Z7n>d64?CjhCpw2>)v0?`}WsZ zGF$EO?;l**UitRXqu!l<7UniDHirdE({6|<)od;{T}v<0^*fJK$Pjx`q$jFm-!5zY z;2z!Dwo!YCHl^CRNN&yA|X)r zLVok!zJk1N)?K0!74uHM=b9`!r*(o#+Geuqt(8Yhq!b^HoN-~uW%072-VNa9(07vN zpHChqlcoN?L_Z!kZS#G%Zlow;GF`qYmVe^q5fiV$NAI5TnR z0o~K{#rwnl-N|~6HvfE8lfq%~V?N()DM@U1Vpe8Cd?p9%XJ*snGY+gXPLzm$#9&m-mS2)*5bh;-{KN z55--qEgQ3@9V!S-9*PX%-$8E{KNM?Rx9P6-bQ7;E|0U1n`W}7VwZE;;%fH`uecTt( zMjE4_%ThW%xwKO^r&iuS&F7J@)489wPl5Z{2e!8_m{mBHJ(QZo`RVGmQ$2=gj4n>h z2bq2Q@p6yRcyY0v*+t>j=KT|lCYb}0>t1cE>*g5Hm(liIL2@A4?*OxoZ z$Fkj0N!K`1^$t6IOtg}w-pua{GvO2JNs{hTx+>tR?I23(JibGtWaN}avYWxQy~(kY z(?!L$15vh*?6($nRgNgtw$3z~O4u$4%T}1gx01L|+gmz#b}(;oB2`HE>*>dJc6}(~ z^p87Hp+`!xamyr?kqwu{c^eZG4bS#CNma~Wx#-5c!>wedzm|i6^)Q>Qz_k3Gz=F`U z8J&%%w4cs<=*{ZeUr5}Aba7NdeaKh7_paXd7?DS>5=#9=+-XRgcQ%uIU6gmNBmE|e zJXqc(c0gJ~m1T&QF;(wrTJ&vS*{(swQ_VA7MKRXwPR4>&4T(ATD7@>&MB+*7dFeN7 z@gMEb=wjX=zL+rQ^e#~^j?}WXaLhV$8UNB#=yG5gc zqg93ze_!WkyIlokF}C5;QM`(o{eiL;0)6Af3(oD|x%@~bvR+LgC=OTBSOdQWDy5%tKDulEEf+pOx93DU;&y>o-c2`dHG`-0O2}X2b+K^;-O$ zm82)$aPEvfX4OA^G*$LZXntt?qTN1HQ)sr8N$1zq7YTnHJv$b2;}_Uso9!syXGlYF z{Z_Gx+O@AEImHwzS{Guu`kDsW|FGmg$q2DF@wDAF8B=n(Vy~U&fmd;>D=G=}${s`Z z{!C8lztR$aCrN9hZ8*z6q53m7jGnj$`-!-JYr}|4MANp#khNXcskGb5jq8)y{aTJb z*IPKxTB#_xc}(T;a_6POGz(^VE}>6>Gv0B9*+~s+GuoRn&nFcA;raT?x|4J{pr8NV zVd`1?#wE*6P07Nqt=&Bd(j@|&HHik>KiM^|+Sy;+e_^PzU{(0=O)IOBQhVw9QgOB_ zew6Hlj-ufD4is~#q;7MoxDZN_P{lgY?(t=6?dyKeuS0P$wtJkc2QTO4Js79{+53A` zT+v_y^Ok^^69!EWO_t8jt~w|NJ7{I}{Y_yEKhcBHy&HJ*BlowQ)0O%)QhGqKhseCBSj_4#077*nFJzxY0p@pHb)*WtHRELX)&vkl;ItbaVoCTR#qP^ z?@OBpm=+6BeUd|dPz$Ool?Ud;Z5x%NKRuYr7OODu3t>+*J((2QYiIOX zWMyiFl4kLplg&ls%I~YvPtJ5J)Y90tHf)qRh2RoUEo+!G?3>#USzq{VcO&HF7f8ww?#9H&v`lv%3Us*Cgilv zw-=Q}PVseW9zGy`qJm}DGxM^ChB=Fc(Nm#KxurK*$%gTJ`}U9x3wqe>uKd1Od%#Ix zMx;4Uy}F~aF0eMJAgI2&%|(5SAJHrPy?h6nV)+3bGT%+#1mwB4VPCcSM0%bJ#=j>@U#TpLRWv?{JZ-rJtFEyTrCWPPSJfON$D`=`u`jBy zI234ccc$=}-4?wP7E@EgJR5B-ef{)DM;9j(p1BKqF1MV;@?VUMBsZF6pDsehr3b@ZS2vhn$a_ z@|Gh>onz^uYDC|5AO&a@?nj1TL6Z1w2vP;@^AG=;xO5x;+8i{uvZ^-i#iXF1@Yov_ zOct@FxVpM3F{lolH)vK>j0=fl=KFMFzGx?C-*${HEG$e_Se#SPoce9XpnqB1Yqr)) zFd-pfBtx9Cd?xi*e@Y64+tIv?l@&8_LP9u&KxhQz^NHojPIj*Lk)%p9az0CJJ#clm z3%mJ+g~9P*v#|v2^plJFj&$d)u0%vc+@2$3bTJPp1?_Tk8`o`5&fSjD1!>BHNXy~xx!H#uTZ6kB>OJc8T#^ zl|_keb)bjX*!O38I`wYPjy=TkY;BcrB>lFn?gza5(n%Xe%9UT2&y=U6r$?zGe#MZU zo*o|`UjcRq+-BT@s{u0=?&+A(-B4SrmyNacDu(1GYNzT${{ReJ{HT7%Mt$p|(BZ9D znnZPWb6seXzWya6iu{RTcW}g=9~F1ZoSpgFueZ2(umiq)xd+>ylhW2EeRtHTZzot(L=e_HTj|U!kr@>liaA|o zFg(oF`n7Ct&{r4UayrvqW!8_20#@p%4bJHWJAAO(OKND`JCp#{u)=ReVt#&}8#`dB z+1>f3C*<^`4HJ3b^sQqDk&%`y>b6go`rNi_;}{_INkeKNUfrD085z_d{$txoNl5a|;m9C*C8Y2#70C$tcHOsY-@xVN zT4xsHn(vb0CJ**2&4K0bbVZaXzKp2oE#bEGjPlQ`UUM zBq*5pfTlH2^7c4N-|L`uyGeQLr`n~rL>qkR=wuy>>+d#w)Zb*$LwQOeYZ1@*7qYS^ zi+omNxmj5#D2WS7%66PZMeC=YtQ;&IM;AFZ6qv?ByM~)k=xIW^_qQ2CpM-)8&(IHL zje(+)7mX6o{oUR5wIG`Owz9|_K1=+ek?iVf`U8!OxW)tfyYIbWq^C>-!ffwu5#AR@cLG;%N#8v^eaBv6mQbh1UW{NFf;$zz{L4fl<^58YmVf*u z^2P@TJC9Bs;ZNMNSTF-kvWnghb!e**F==S>IR0V)DaK>FK+Zl3&vBF>!3*C@M~8>$@gJTEUnHv% zeH&EI=l1Et-rd{#bhZ|xTkR=8ytUP{;iw3aRwIHPE)9Q1z^^9#ZZH}f8*k3J{MHZ` zD;V-57Pa&5IZ0#W@B4dj$cj-YHQF0p|4M8?z!pCJEs)$QtzTXr13N!+E^%RB@e{0W zBQ&#pb_rRMdKjhudsxZe=vb$#7* z(GKrN2}h`x5f=xC`R$jh-_z44TV98#SwDV!CN=W-yvts;I(xhk|2<*t6i&|P#$k}2 zj!Z-#U6nOmzrTfl#$aJ(eag-rmeU_uY210w$=O*2F7i%K@6+k1Ai2PMqDr0c{YCu~ zEKD*9)BAR#y+sM^tel)oqN1tc;n>e@7lS47SGoMI-tfY+v#SWiNvuXw1mY7C)U>qv znq2o-$R*N1mZ^3-cvseN@*3qkhwdveYAX+gN1@r=PMh-U$3o?8CzymqMPwie%(V$1 z3n4yfy4#A+h0mR-J90%P^7cgLgoQOUG*+E_@V%n;L_S?zVbe%Z$*4Ir>MJI3e>Uk3 zjERfu?o&$rSzb&pDVbTh(U(_JmR-aq7xlyp5{UDA>dB9yqEOvxs|~ki)Y&Fic4Fd$ zkyJ?<88whZeBiK3XSkc`B$>8>D>41h&|f%$CA156u)sPnZgm3clchza#V`p4B_+8b zZ`x#z9C()y*_?1n$qZGNuhda-iJ2-gGBR|-uQUsP{-mX+r_YOuh=};8-=2}9BnJ{2 z0VH3A8ULZGs!m5>1SOA4I;(m<{>Xsw!Mv-Bn;W<7wTo;x*-Hxx#?LSOjV*&q_3ENy zVmjkl)qjdQeFa&Q&u(AGax6s#`~`?K5P;L=di|XN7_3}eR)>p?4f>oQ>A&*zmH77U z8|k5vBo=JT4q}lhWF$FvbTZ9X?g>MF-M@FSJMTNF@7 ztWyFlvFeiY75FKXN@{-TW$}@OnUJAVM?p(4++Y&(GM;eL2fm;x94-@U@24RkuIV0P z8Fka({kNMU7Y>xk<-2>IWaaM#_^8_AF{Hi6KU}=iAd*o~o^#CT_e3a;C)jy4nF*mi z+!>20TM0Bd6P9gq&fLGn+4L0-pd70MN8jdMm2$ZAZc=Tzb9?6*HYhBYf1_!GK-zfv zBPS=IcU)Y~`3)8p35W4eJS*?dCi#+%Z{iikw$;^mUm&$lUMMF_$6DrO>ub+fuemJ7?aG>$ZzeDj-W3Ovghu;$6mg-AB_(8DSsfXr z#+4Z8CC{VgBDA^F<6Zv%x8RN#*=hS}vN2bX}eCOUP z7~HDeR}?OQ>T|tqjyEf`Qr!8DNE@7z)&IMPG(p(v{WGH|x+UYe^~DuoL>D!_ynER# z`Z05=rRmB_vbYIN#XT?5F0K&_!^D%S}F_m4>RzMlAS7N5K0;%1zr%-IN zp+s1yxWIDSOCIed!Hgk=hw6R{2N&a4o=vphTeTGY;JIFw$O__eeVeHK?<&|kO&M-Y zXu0Tg`^k^TIsy^HZJAST?TCHbv^h+z6^@;;*j5XMmRIo#qPE^DN=I_9X&I`|-0Y|21sAV!&KUMBaq0Yi`-L5u#L~_G@39;# z8FSfhcSd5j?NL6^oGlbo3h}+%@2|AFFNF3CW|oKLFNB5(+YsGz)ah5McX{9B|4p2- z*LTsyRbE3=i9|z5JN)-2U$~F6vVj6AN5w^d^2?1D603v9R{4RatyR}Y-sNfPQTx!{ z^2iWG19K`hJ^2%G18KQ`e?nF~aW7&Tq7lE!0QVx5yI*wnKtAFypeep^-13 z+%BLD)`L9fS9)U;XE&ti2jNOX>~VE$U|R}-?Tf3vgLOpu7{Oa#CnBObtCGuVQ-$6&R+K z=;S+l`33B{=u+?0Ef|R|Wl1$<$u+Su@7%+MmBd2C6P;IF(0r_><(r&^#y472#;`-x z(}&v-=H&Ea&U!C#tfG6Hw5%leQKMWs!{b_+zT%s1#~>36Sku>jZ(`pqq{|4Ez6e6N zv%|aQEfM?J`XH$dZ@t!Y?)D9L`HbT=(IH&hB^+IcVfO0)ip@3)pD^m^^ewyH4N4np zEV+I%27`U5Q#qU98K0d+@ivQ4X9xzAeKFVm@&3N2Je-24NdYO6q4C|#9t7vzhzA9~-9na)cXEY!Qsx9XWUUzEz z>)FZ*t;SF-@!B}ON)mBp16`!~e2vZK)>a|IY1 zk6G+^U{Mk4OAh(;3_5i!5Hvdfiyg~xP6tbEosyDoFqm70*P$?|{&IG9oJ&hfJ*JhL zd(6)7q-G={##cJD6|P>Q&nge@u(#IB^1#dPp@oDKMKw|tJo9cWwonKRP75OPTwoz2VT|cCP2FAwn0W$z_juF7H)@QS})GrOmGrab{E+A_xT1|1;)x52%p(sVI=DV~n9CZWCo)X>03`li+L=%qRw zvH&RO< zp@@;++=qAQeq|l=c_nvbV&UM!`L)}mikEM$_5*2jTSKY1GmC+m7Pup+#QVZvu^&3V z+ecG?y4-`K{Fcz{<;JFqk*`AUZ*+1y4t1uA=eD>WYBUxX6c-mC^n3<`4q#?=ViZ^F zq(O|qKgJd(*!Inyu`fokeNt~(j z$c~fYzj}_HEZgrC_+X=J zRWUlx39f1Vf7et_1?brG(cjMZY_P8Ad>f{)S6y?Zo*UZ2cW@(PqdN87|I&#Q?Ysxu^!8MJ5Ozp_q4@$A{Nuia~5OA${yuWJ@5G_Dci~Z;99}d`2e?#G&jPh@l@hdW!SNC5_l?Qcd1K zxA%II_#iw05c?bngKa*qUl{FCi2GSuYH{{cjfjN!xZf&s zYbeV5YX~8;;l%C1Qgh<3UvFCskAx-NKQUC_!=K}7{VO6JP=tmDSEwLLRM z7;1&KDx*}-N<|dXWk=W|7+sT znO}%PL_)%AF{F`_nhNlp()?=oY^7N;j~O~RV`F2=fUfDA%x5ZVSjWtsWTAZik(N5j zS;kc$Syz`|P>|1UQK-d`%YD%iWBB{CoW{IwHjsQZL&L~ymi>kLsPnxU$kLLJ7NWli zk6>TOc1(nd1iC9RMy!=)iwx-}|3aE)n>_Gyb`cVrkE98(TX+GM?}zHoaS1@C*+7`w zrl#KtzbAs^EA8=(cJeC$FgjOZg4P{`hlD0BuC9~6fA@fWKK5+wG3AM*l28PhNVu^P z9Q-P;3p*yI6y$H`+H5HW1O!S9TT`qVx_(aP07_2a!?eTp>dU@J%Kn}Z!b$#!>ub-Z z=4L?T{oY?xn6gL&=$v~R5HUgoCVk=L05~(iXXfSxVYUmiEjEPo!$V|}CSnE#OMt(N z%gn@kVP-}T@Fmz*a7)s%v>i>g9|lLqt-!w>q#yx6a%(sdGCd8x_OJyz~ic_ zs)rVq87Dpt(~=eCE+#(ixNMr52TSEgyjjXA`2a-*nvngTngU@1o)54%gqRO>o6gF? z+F#6Z(bEU$*|#Pf9@>FL0a%Eciz~`V^7uX@BO|~_bsy)DSaY_*gov0_-N;BqMFp=j z96Kc?WqWr&*Aw>9Qd`@3wF8w%#^m8y*V|YzF~O#hdp*Hr zm+Bv)b^^V;uF@EE$PgddZ%@$w%Mpq9A>6@Vy9ZUK_;`7(?d<-1le|lg^10bi%n%cv z)0%P3@Z4qn-hM%?ZRkqe?s=wGmc$p-4!?n_-+RKo?3W3>J!9_E)~qxiBw$iW>FF;w z>OrFEw##o^+4b82!%)7MYYAf}* zrBNw7iC{Z2#dO|pD~LmP0HZUxV0FzGlo#1WnB9Rm8&TsD!+5@zQUKF-M)}>Cm9?*- z0|u-KwH0r=U>8Q01Di?feY$b%Vc)!bam;|G64l>bGFQ#Q#$h@b%Lw9@*KJ>iNjYsG zMc~71``wFq1WxyAg0|t0#>V97X{|rwnd4_WkT{6)uiBMrFF~`uNSPVeWnZ|h)9DFI z`A_4Gz6cILkLYmp6-b=3zJBv&aA;^9L^xWLB-)QNWfPv5b!%p`@d<8hG$jb2B|+HJ zJ|+TOeplD4MLYK)BGPVd^wBd;kQzz9|Epa31V~0?t(R1{(Nh3LaLI-6)2B~13(o}v zDm}MeAKolN$;2(O!I6Y6<-I|2kYE|m2m%h8nnYg9g&R+1%XqJ08PO7iAYuLXWR7m5 z6Jw%M+CYZ57vLXaEG$0GwR}@S_+^?-@6Ulq%@? zc)@k|%FtJ0PFELsM&Vx`pnQGx^mgSA?pIS+dy?*VYjyjlZsBKH*`M)o$;=T$hvp>| zB2rR5`(?3v> z-pX^&->pjw+J~&k(_sQu)=%Oh_5{zkc@NC z7ff2$jQj3L(>;D}KR@#2!D+JdR>IHLInncToR5nQF&P;dHSofs*N%=npa!snzA`j4 zq)W2M9CHXg^;)!h)kzx>fg_#s_{G}94=H`$tF6nM0>jBI7uLuU+~^TpX0MK}cQ#v> z#~X_--RB|bOd65Y-S!zbI1e5?V1>*3BfBlmf8e8m0TAn!V`+mHtuiui-n@Z7IjgIy z1Ef%GZSC)w8OYQWl20kh3GAt{f!KWfxEaEnVGOc`e!auf9NDNpMa5<7R+4b?`V~iv z4>KiepfzQVPaZ6-Um7aXEJn%&i3V=ufJi(dv=(+;zi*fs^-Ql0EI_HPZT$D|Oc*ot zUIlN@&dydZFp_vb@dBRj{3^J2V;fX%r(C|O7OKSI-di8|Y|SUWQ&J9Eki4#&M80$y zJ9)kar;of78)Rc)r%P_#Io%SYdR%|d#{!)oG&@?@--c~x79;C#rv`DcVW4a4v`fHe z#U~(?0hRR_6TNYFx47~4dJm-Z`W4^Q{QP|13rY|~V7*I>+A~_cE_gpobI3+eJZMFn zUU_?n8G3e^@K#s7h1HUhM@Z9|TUxID((iFi2Ui4DuW~ts3mQPY&%G9qHS$SxA+J|= z<3Wk>yQ3#>SNkaK!HshrXs{OcBRjpg|2r?BDgsT074mj>clTGFYxB}2A8*46J&l5I z*WR(mfD^WZTm*IRf%{@7=zw)v-xEhkT(ex+fOn(MfSXjY{(y1_EUFF*MQxJq53uDN(-sS52+3{ug;zTC>_66-EKo%Ka}e(k89r zOBd?a@a`w^S>b+|DYJl%r8DEi>I~0$icw=?VGWKcw~Pnc{F>JbFkk+1<#OS|mtDd^ z&b_m9$OLFq_VSik1pGqXNV~tLP+g7q!4h|p*e70~=ViB+wyrp5vSa4{-WN*U@NNi% z6|%!N|NKD`wriC}h*-6p{tAb+uFVfSRbdPh$kmM6Jb45NtqH)m_VHu8?a#gh9AAw5 zSD+%Y+G2MbgSLiWK!C?$hzQ9I%gM<(RkUnh?_B}8ZfIY(dSG;vks{&*>`^r65BKM) zS=rg&_;wk&&ROsaJimt|U_rf~tFxs9=?n-VPJdTB`P#m>w1|l`H^q_@q~!Cs&hu-P z>q=>A5`&^TScijyQ({;f>L4@%cwjZn1fUZ!DP@eTNd*ZxZ9W9tBr+=j)hN)U!m&Fr z&Qc-QjM%?MD1dBmOOKdQSFV#E2VGSNZ`|@dN%eS%&yONMpA^sDxSd$+-5j|2GjT_hlUYw(8TQ8zh-9#(%8$* z0S`(g?DX|w*(=IH$eY3)y3d;bsm~~h2^}`kk;nd6>Xoa=b`{g6)}-ACs7vm=C6w^2f<>T>OHen#)o#Gcv!(`{QKxW+RY}8cwS-8JU@b zLWf>Uv{^s?Px;wQjFK1%O<=!Tgi7=awx2({-H?-9pHUHe32>+Tk`GdJ!~8ZdI;cQh z{`2R zH1ldJC+cmqQOC^Pv7xsF4G_4FeDC0kcR4gB_i|(-vUjV7gZnqc;QQ73%??iigI#d$ zI~x`zBKfi&J+G;Z87sc4qgt4j$A@9*Z6z|JBbym9YCIq}-Faw@TT`=odbPd3Zw~2;DAB8rEWhcNWccv@<5JZ(q((JW?t>$v_A5h>AOs&b z=n;AVYb{I34mFy|UCko(c12r>g=8sh5b<`fY>wFNrCE=uBLK7Wo>UnrJ zudS;D`W|so-I11meo0CAjFDeDbEY>z;_$b8o1aA~`V!OE25Rxj*@gXWg-E!L=qVK&|QM1iWATJxtZF%)A#ihn(o~UPEdyP`B zMrQ>A6#gH%_Z*}I{nN>)*yQB7BZ6Aeu$euJ<$s;@$;qjD{z`lV6|!1R7j*12ZkBwC z<}B_Wny8R4sjm`2CtSFu3P`a@k>+dR*TglGGkMN;@mp$9D945@)W(zz6Fq=_!bIuK z=d+`4#1#%C6}3jqtt3IMr9dbOd^$XU`LqZBKV;m+6rZfHjh(0|zQV7R(~?bh@WHp8 zrhUcl<@Fi|@9xNU1%_A&s+GOc$V<|{WZ{YshCi-qlKDyJ3B5H}Vv3SZY2iLNNuenv z8%|B=dRb@^1N@Fv8Be{kx^&h1J?r-8P3Vp?b#8Jmv_{S8c!2DkuuFfvzsG@R-sxaLx{iT^BF2*pHFx90o@egC6pd+7c2J>19ll5ky)*iCd9quh{*HqF27f^3Grf zVZh^g!K1|ek|*3;6x&OW0G<*8{}FwuTf0Q#JaS#k#dcNqLAvhC_tjsl+)kY31(X&8L$C-FZPuR?qT-ec zI%KD0ky)xIT?{J@A{Jev4xwNrZ1HSlO^YRs!zfjlY zm+8$b0>+j%Q=auc_&1lD8+QD_s===*^RhFqhy^p`IRkHqhK9bs9I7BD+v;0_mD=SO z!SnFu_jqL!l$#26Z@wy()J?m6lSYu|UHH8}y4n#pq?3ktiPhF?+EeCT2n{}O?eBAJ z!;3ucY@4{#-~ns#{(o!Xto+D9S<{i^TT7CLW?pXYebBIr9<@lBnVC5?=iBsb9M|}W zrG|r04!IKN|Nf`aN{3VF>ZyqMAzyoN*oZ0-UCOJwD=w&7r;abgc|DD0`hkbq-!t@w zi-WXsbRJpf=y?2Z(I_Z#Eff3?TvfdSI52$zX#c)6?rJN~&b7?b`5a*`YNfYbt)xbT zNt`h3{nFBsM0IsI+CK>2RQ?|$1_aw43FE5#T%m%}Gi@S*F{9O-hK3|cyN0J0dScWC z`T2pMB_(KI8Q)4Y8UwvH3y_R~wFiJqz<7PSSaJuP!mjfO#K4u2e36CAd?WZ?Q-FlX z(uviyF%iakl8Y|H65U-l7WJ4FQ@AK>j(l!WTP%{NGtIn|04d-FQWW-qWb!H))zQ*A zH?{3vp}I!Ni(r#nbjh(iU~0jo5(1VO3_y+KXJz@1j3|Q3+Su4U1vDD4)_`WBe#wpU zhbq$FFf=^e2-t=(1sag0%h+7ZtsFR*J!DaFwHac6Mgj61GnEO)Gn{lG>Nu=VJZ*dD z)y#R=(lg-kW7(uf2O0Vmc9OVMH}z%(x&}DOz!}FDc8>6VAcTTM@9=~AV>p6Cr@|j} zuj{>Gh2`Z1psj-Nf4XROcWhn+t%{TsTCrBCDd_lJ+}$(JX3>(HOqZ}q^8y~*m(n-W z_AC!3P;m^=?_QW<|83eZJnG=o3HD9uxE`~Fxzt5(!SXp;*+JL-?LXQ|J3r3|z;&=SyO zF?=6hT6r$diS7dt_Xwvh)B*pxfZ^6#PJv*+-R# zQTO+6;)wN?%FJJ_aswRCa-Dx!r}S%2_&g$gN}L$Tp)M2F0~#KWR>Q(!a88{5cTOs~ zaQ3jxh0th8G&SJ{y_@=vzP(!X*oXkWgswGizySC2D}e?t?N=EH%~bogWT_xrHEr#n zq9W*KoE^IdFcpCU$mk^#COz>UFUBz|V`BcG#z-I{UyVNa!@IkFKBcNCfj9#%{0D?G znlIIPG>O&KUZ{7%s>|3|Uaz~#sB>!&6Fo4{RMU7MHN~yTSlM2b^&wyM+TL zf{@inSw|XchKf5)r~ZiC+a`8v&XG6G6+wk8JuQYe@V&owD`DB#-foUV2qnTC?owhI zs)&!m!eoI5u9`BAg)E$;`T5z_Y~ba6nRHf9!owt%l)%EGEY|27-2!f$Z4*zHO;5_EYd{ZGI~Tx(b_T-Q>v0W`@Lv4_flliNjM1q@^R5;q{@u!?Krorr^Csw`Y;!th_e)x;#uAWXhVsz z)oX<{7t~uVTP32O7gUP_==4O??Qin9HSeIJ4l?dadX&=dSs&;4) zV?*w1b}~F>c=@d-?uT&^!x!d>g}~+KA-4IkmrEMkh}Trz_pympfA@R>vGPEb$1}>l z2ooK%DYhY_A)BGfR=y^RJ?ny6vdmwB&X^FnG-oVqjt_X1;zE{0_&kk2DnF%{4bQ5m zhz50j;oy+Z6)4>jBmZ2xU-8ktm%;i5(HjcUCOeNCLy7%`XVPlrN{mAjCV>>9evi7W zRy3)?hwDJS&(ZYNgD2fsAq(%_YQo7oD*_$O?dQT|@6fK*A3Q@R_$@Sb1a(Ta5y!B+ zv#qMG2C6LZD}v^)YC6Ow1yp9I@^n|z{bVVhF>!xe8>4Q;9sAeD%%iTk)Wg?vm_K(A zZIX!dE%T#-Y?g*4yL+Ee0K5lamhj>I*v^R0(;Grl?PefrYW%Z0gFCmRQJlv}8M8%P zRTPXDPcQVf$8D;G!9? zFgq}>xj0L0bZF8gKwI*yOQtPIT{5{t?i%oj0seK8{~7rv%C#a^m2X|-TH5O^u{P(0 z7icsE^G7x93-_1{s>=~pd&z%2#O~ii1rIzpIQWzd8(jLAr9*CWWP^!hMB#i(<1v zvn4yf)*~J`*7q}EJNxJymG8qS_h?`~C2$~#1FI@vB!TmjGm+iG#%izGgsi5Qj%wG= z%t%F4)N5Xs;xOAFYSN;|X3DI`bFXT%L0_Nn<7Q@PzZ%7Wq9p`7&#(Vg@SCXr!4Q~A zpQff#VZTW^uuRPAL9q5^6oM$cD!Ow#Cw~97;i%NXR$+))d;Cc5Z&~qED=4b$NOD)1 zZenF=O?1^G3!+0C`Q#$UA87}0H>S@CFKGQ|_5eu%4M2%`mecJ^vyY1BRdJvJ@lt;N zpod(3yBtw??-kmk{j}RpY5g~=x1b#aZ25`dPLuKo_s=7ng8brdPtr#@j>I}eD+d(d z7B<2Cmp&ipzZC`9$A{BzpECw10o76Ge~R)b+pG-^gR6mxZtRq>s;Fknz>kh5U%2s- zZh1GM(tS~oZR>;`6Qd=g+-$|opJ{#vc^}zk|ex-om9}qJNs<0s8#|NtpHK_;#+kIU3il>X6 zz8m}RCt7Bfdu-i5A5&$8s%0Oj2C> za%%dz(t^JU6W};=&r6xr1oc@9!s(XwL*%x_`e$6Ysq^v*Qj;X(y=eeGsfcZ-_=dku zw{v)CdHQFR%J!q89hRjfuj{VH$;pW_+{4z^w&na!D$FtN0;Q;=(K0h*WUl!2^;hN> z37ucC);PZplb3(w#zKR=zQpP7bfw$Pt*S|U5#qM^#6+{n<{<>2p(LPF3@%G*u;H0HX#$NFcd;+`^*JB9@So(txuok<5K{wG#h8;(Z4R`#=+Yf(N`1 zVgm8UJAaJbDZRYr=cbqXnq%ym!i63i6f6WoOt#bJ{GN`DSu|nUGkh;8<(oY!{hzq4 z&k$&0OolGF=zzv&IU@h*0K^zzcY&NdwmVe}a-zwvTm_KNT@0+;ZJ(vq+x2c7bGskv z1Iun4{JEgu>ChXlAF06EJW9{bUOe8Y_wJoev)i+0qoevfR=5@x7NFO(eV<)g8o^`M zf3E^)!+@j*KL%S`_i=gT7V*z7&&I~43d-Y*Zl&o13_L31o3D=)(?vj6)7uw833%xI z=H}G0L(aa4Cqexi3K{GKAr(Fg&yikeFax5FzM5}R;ku^?XAW0^yn5pC1u20sSQ}FK^I` zIz(Cr=%T=etC;#cf<6e(85sLPTki~JApng(*XYa)EEW1b=TjgjM^cLq0b4ICE2{|@ z?ud^h>uhk`n5}bVN6K!?EuS`F%K<=nT=uyzFr8$nwi>sTK7u!xbfdq1{n{ERM?J?I zK)Mez<{p4O5uF8m`VZBIO6sial!HG4Fa}2lpYn-%y%;ZT{h8A`kaM0QfKuD07eJ@$ zd-A))I7r;zoD4nCCX4O;(2Kk7F~fmrQ@^pa@yu%cLh)*|3VHO0Jd-#9!DY@31?eec zmUXUm6*a}*T#q}6e{1@Om;_v@Jy3Bl?$rQ?-xLA_kG3PDePDL%QT;tR*@?7kvv2^> zV{&;p(k2DKKCRMsy4C7ILKMh)=P-%bqR zdFBOt@?cwX{@|~?H%Rc6Eb7jQ(*9}vQREZRJ|N$H+WrwV3nrk1=jK|@PKJTK8!1vC z2Uilg<+=yxy!ZatTHasU-}GPy!vKpT;ZvS*l=M zYFzg^G_xQ(`wIXyl;!PXz?ZKJ1UlECs0!0wxMG@63@{0_T`V2N#>Gj2r)~$c4?raC zgI=6AuiSnIj*@;LH2~OxP5C_B?`q6FxX-kPU+{FVpT=sKT}dfgiPJn)OGn z9eZ3Z+53U{6w{H}N~E1W$nO{{6cY>SnSW$q`S$JGuFOooj2R=Z2%x28e7d#)vq4CQ zdN-b=A|UBOfZnX(`K_vqON3>!0Q7(*cHBd_=sYg|du9rJrSkU=r9GHR88}>OzS=Xo z?b6gX=ml>2%Q-2$N?>wHiKGU@4Sp7grt|%k_ROVbw@SNi^gpAia!WDvi|`09AYK4p z`N?i^`CBzzq%5#<`$urD#*whu{lIboc7Pmm^1j)ivFe2%Rf9Jq(zNifVFl*#o3jGR zUYduhYHE%{R?`v$gN%hO(irm zbYN&GyP$x1(*A)4=go^ol~LUO8Dq+pOgsQ)_km?d&#sYiYkuQc2%J>@C*nhuX8l4y zGX=jL+#!T@^nc@=cwc#|B<-3$rt|fWHQu?n!Nu=BxpCLk9Jro!V)+VzcKG4D=CbRXL1x}J9(Xggl;I--bRbBKxr1l+T3L#3z)^Ui zzyyq&`qD8DN%bq9VWX+ff7nn!tVUK-K9r#n__6pM>=_jR(c9?mdIsc3I_fAsq`bXl zbe90?MS{uNFk4drq`tXkD?GpJ z4Vs8+)1M>i=7s~vC z>S}78wKImp5#W}%$rz|`nWJpT(2KRoHYx8eqZBhG(&y*jNr1t@0)6=uQ9U*~#@ui<=JPuS%z?aJl#3<&p;RKcjeK3TiAEfO$~7-f_4PXscb z!j7-r{)vcl^)l|x@G(w-77XO%+bp`y7_^*@iM9Z-khL5bUjaq|ekibk=a0H{5Sd^; z5!@~mBq?()tK+OAi|18{-UI&rsl7^yDzS~Ld$cLSHw}`w;sIKJNj*x z-YZ<}S&s#AL`*}zWc6p8;P!jYk{+x9S}ahW6oX!TKU9v4;}b=SO)RnCLm9J6I+11T zv@ZFyF6*=shcwmSw8I*M*ntDX!*rtTsh}TUIB2u(qz6pJKaYHm%;vFYBhb)Iy1qUF zY*n4@&=$+EcTy_+`={;O%^l>(Ua(gDOlHsUo)T zOn2n#DMz=uxUs4skbwazSAmE}7uz9PaBM;=*d>i0zCIgeB07Yi5tk@e6 z%BaO&*ktVwcfJE-0KUKSL`yq&uhQ&H#JQ%KM~*$H+Kh+Y2Lg*6K>Bl zYh_S~9)`NQny{@N8te*?grz4+;Qdy`{FoMMlR}pCGyh)bAo4&dD=WYL)7Ln*?x38^ zqZD`O5uOucw@a5!h3#G`Fh3fjlT-(?q|R4B1Ujdzw~)T+;3gx9j9Gf}G>2LCC$qAl zA~T;I!355Y$fc@RA|LMRATXi8L3!KU+>8cutFp3zND!HL9|@d$WXz`=$QJZ2vL#<1 zk#>M`ZS%o)>ooID3>@~GadnlvCAk^bT}sMAH|%X6LoT5Dap*Thzc}g;U1Gi}Dq{F> z?`P5LmJ2*L&?GK4Iw$j5V4k0!-yA1ffrU3dOX9iD%d6vpI3Fxz0W_b*>dK0E!+Iz? z7<|hH?joz(zZlCN2LdEZ4pNz3#zxyEay?A!`fvBm>dIZZLL3th z@HtRWQe3u!9AcIEDRA6x4QtS>X^9$;lK>Qn&%_RoiwI777$qj$|BHen|5)(Y!^S5jyrT5xu$}?#j`E)#s>ekX)QO^xe?Mes z1J(f0_S@A{W{wAqL&2ycKIXTF=mD3ATXSR8d-ngEwsd?<-lPn=33Cg}d#f-HmVE=8 zJV}X6E@1(SonLt_XUcp2(roUww$DI&X4M-?OeN_V&tul7s;!N|aC=Fkr5|obw!c&# zrCV)z3~&jLGi*Oz5iLwO@8*AA02wu4Pszz^Oa`_&fj$78?ywzqY`rYxl#uyP=Q8`i**ADDed8>JM zb`LE<^S=q*GD%?qlkGXoRF+_PA)JN%P1$9Y&4w(P#7AZT#=JZqboEZ-Xt3GHL4mSn zyQg89dfv)>zzUN*GEUXXsl!y*KXef^ker>%eLlQbO)Hooz_E zR)YOXsT6_xJw5rw^l82g1tVj(ng*%%NMr2&{(ijGq~W+ZE!wg4(}`v5$B+(g#jd8Y zm zC%}*McdZ-PI^K|c=iuUk&VMN1a&JdGYX?3@02C5GVUe8e7+Ki!O!_q*NtCr+zi+!e zFIUsi0abAgI6`k0F4{0y0CLO#>jum=mj%E;>3cgN)pE8T25c2h$O+>jww(TOh2|kF zhAQ#-cY2M$xx|ALH#8)jj->=46ZdrC9q!pX8y~{TDcm(V{ zM8rf4=$f3Qe%^n`GpLu&xXV|3Dce!CkF zq#YSp!@9*U7Q15^-z16JFZ%~jy%_TU)mGZhXi++Iure+H;h$^u5(J(os;072K;H*~ zH#&ta*h3~J{Igj~44R)`?c4y5{l5<;kOl*#eLvN5wzn_u=Dbd~e;)FU!<|7Ku$5ZN zyt?-l1+{7}+zk8qDq~$pgjq8rZZn-v98$oXth}D#yqw|8yK^{_dYJ4dGMKib+!QB4 z*u0?I^hC6ilE<(EeZ;gHv!+7f-lL~A<$3dVOYqyLhg;K{3i4zG{bHGEB5#)tE}Glf zOvP8=Vk=hh*Xqo=^)OECZe%+8{+$G=T4u`16P5w|vt1PS;|sTKE%9&uTD^q=xUx_+ z8yKDf9}=+%2XhC#jJ-f1+oOQhRgOI`_~Yu*P5YxDI6pT0gF;{}Lm~msd=9;SaD;=M z_g9|~N4m@`Tsq&Sj>Ok%lP-&_={M$~Me<*SV}yh^9=%e-ktDRR2gzE6#lfJni%5(q z@_5zFtK?Kuvz0B}gQHu!dGe>Zz^= z>SK){Cuy(=#JHX=d)3q$tcv;}(#e-r6hnGV8R8UP{g?<3h>~acQd9)$jl!QShzTB5 zdMU$b87pi>y^yG>EKZSW(lwpt?y?{JIS>F+$ecD5N9GQ+u8P~Q*^yc@_%snzkJZl@ z4bTj)%S68`(&-Z2005$o`zV2zIrC;Pb7FCEq|Bh%KP0x0%l9}eJTmg6FH&$|aBQs; zgC@73flNjXG_ijG{GxMNqyrQIPatCr0YESKeum%q$L^MAQc< zvMgn5Q6DY|SwlAzFgGaXj){JFgl1W;IyN7BFntXv?7?G|JH?X5#!B;)DY+Y;ndxrFJSNU-}O?H!M2sTS)p}x^P|npDdbOMH^Vv6XmV3IZ zBg++7G_ciQxA&K>_z``{Yy&9|-JG4AfRENXMb^aRX`x2w|Hs;U$5Z|H@xzKJ$(E5( zl9g=Pq-a^mO7>3n-V{Z4$X+2tMhMwS9OIxUd&Dua$KlxAuTNdy-+kYI-*=D4^|&5a zSLK|~=RIDp=X$NLJN`~?|Fd=H0r-PbC0s*6qx%Z#bwEl`fJiD#Ctk7Oy359K7aQZG z(sS+NieveT4Ure?^WtvwMAJc}__-Th8TlF=9jpw>t@Gg076(+9Ia7clM~L3?QJ7F- zcwgFmK{KBK5;=8=nI8n=7{{AG*mQodISZ$Kv>;caCvaKgTF`X-8pXly8x*Afo&OZM zre@Kx#h{RoU$O+^=D-`O~#^+R2uu+|nGFW|cMY54E@p+Wc*=B== ztbzh_nWr*VqC!%3QVz+_#WFdOJP?2>VSCrqBm=T{`}S=hwvpfUJM@BO<}hYG<~f&! z^w7{%#lkB?*Nj5LLLCaNSL#zJX!J=+ZfrLVsKyK#~D{C<9?~9|X#R>E4 z`$6=2!!2jMafC{zFU~s7u8Ky|`zYH#E?ATRZ0zXBui(Rn^?iI7mrq#Gu2V&!#Ql$? zpqxN}CPo>bM0r+$d!P6ft)HF2{!j>eRBmxD$oTvCcsB$K$hP{98i3f6IPmD@mAa~$ zWHsH&?+1I%bRld(_Js8E#P3{~q;oRq2!EKR;&$lfrY;M&-1Zce>9``@!jZEwER3JF zb4I+TJK%0=^)1YF)VDUK2r8uoEiK^2TQOKes%t(5b=r>m<>7Za zlnLa>zs25y7fSv@$B16c!1kKW>id}cIlTm=%6+{);!3KK@UhRTMh=~_u=toT-ro8# zKvt;Jtk;+8w^O*eS2^r`u?#oJ6_V<_Gt%oMqxT@x_-vsws1?>Cj_@0@uAS$UXl)rr5dGJ=xG;17C#m1c=|LN+JY)2mu&nC>>N;MtP z($1_(8ENG~lW^tkVC|d4F{R>!Ok)eH!4{J8%?@;LVnKHJD+YKw#dq2NzNXVcUsuA6 z_|%ekb(OF8yu^{8 zp;x27(X2hwRp=xp@7ka`yGMufrfc7z>e-+=w@XiY>W|_2>Eo+TGwv>;q$Ghc?`~@; zHD@I96I=`9NTO1uh|D|PDiTl=fI@#?+h2dtrx2F^;#_UwG3D=YB05w z;VtV5Ci3w;dHyOgzT%f2%CRI*D2~n`fCaR6h;d#9Mt*N&|O>6Kg0=3+X!RiT}+VT*xuvF5to1zv* z)AHwVy+XvR#FDzt~Ot>t}` zKOKb%-IVh~A)tsA?pzbEd3#X32py=q)^fDrO3CwV8V-IK-GPekiYaG5*WCW2hF1d6u(6t1n*PlIpGYrRGa|EY1AiM|o>HiNzY~ zVy;g9UiG?vo|s%|ey4)kP8k*3%N1g+5sqq)VryeojiFJUbj{Z;=Q;3jYL0&*pgE#t zS=%2n!Le_t*F&yBa1OShZqzGA_$&bz(Wmn!f|#)NN!7+CZpNi&FNO+U(lTQ-CH&f~ zG1u*K{7dK6H%EL}E2FEKu4-J$XYbQ*8s;gK8NdA_5mYc9v%3SCQZH_6L6}?dq~bfy zFl%&(wONbE*L(Pl0>-Bo);%1F0zI4r-z0cQTP^FR&9LKQsNfVFFV;K|g2x~u{(lw* zfPJwY50?hJs5piz4XEy*kIkq0bz?(6J7z-x@W}W&k@egU-BiV&uD*unG)321V#A5- zBijTxlCs1o%Sq(QO&NBz&&dVW1We#%j0B>Vn=oWkUFkY*K|{m8tOzCIF1;5Ly7i3& zzP>6cs}r&s1NcqRM&0R2#y#U7!3GGZ&w!@pz4ZIAM=os zse5kC{?;NmHeVubP*Hg)D`<>FIqb>6N#ezXSs(o%*LBO%i;C3{FeAf%TRt^!&o*57}V>4QjlM zVrWw`*{31YG8ts57oSb6RuPaiPGsQvM(y@262G>-$owOs{=hOn{-VM6c;!5 z*EuYpaS)*egw-Ofx=FGfh}(+K1N%NC)7%TV%`R~3?+R6A`R^57Rx)nht!>xXS2856 z4Mw@5YWDWTa;}DEJy0{~#ze_R8q?M7EquuEiZ%tiCy;(B88Xt%ZuJ8md-Hi>{tYid zpg%U8yU69FTl?sjH@|GOVH*exi=m=}wS7$rou2PMZ5Poepb85}%)PScD({46=m;&@K zNpm9G^+fjgqz(^sS?D7kx3SW${kv?G{gs*@v?xe}#eotY{;b~BLQNyA+zhDZmdcLh zBYKIN=hiN%H&*d-Fqmm>!qR66rLQxd+&l4Dlm3wA%C`U^>^xo9IcLvb56^E#{9a}% zlM+CCCVrI%@(8@8y}iBnu5isVB$;#0N|<%@k_*7HoW$Mw?*e%#?I7GjiZyQ-aAndT z;5frveolgBq$giWg1e)0H_$Tu-bnmUVFs17DS%9xFzX0$2*e`TfX$&XhOf7`zwfzN zRP|?JA^BG-9uP`{pB*nl_X%VJLcaiAgm@Y=gPErQ1Ol#*JVaj1{00?a6S( zVv1qpb~*3U?VnV15xM5ZiOlqX(*tA=w0Ck-RPj&-JB=NJw-%Reoi-=h7xLSf(aR3Ylj~viSnFZX?Pi1Cag6uI}&cK|fl#g6Os(SwSUDLID;hc_i6y9c0p* z6anRli4cX81$o_ol)X+!Ai807k88E@SOy?~ zXP~q;@S48@vOqG~1Aa)x`VFlx@@IjP{BijX7bhozr9&L0(?6*Myo=1-T*AhQC`dIJ zuTN3WQ$f<*v>P_!KJ`$t6W~XU1TH+}Kuh}?JbWCg!EGMG7(eLfs=MGMn;yx0QW7Ur zQuzAMf#BX;9A!$ZBDZ9iywhO^FrFY*=LnnA~h=*n;I47Ns|YL7;a!3-<6fcNPFYH_w@8ZPXa>7CQHqX2!80i(Emo z8Y_Rb;mKEq0V@OR)v4@)f{L!x*h5CF9kT^-{ySl@UcfP|GA9u<`rM_fH-#~S_0wFmCJ)@3)~l;sQ! zS^nmuAmKX@feOM`ohi9ti4h-ObdQdvrlJFX3#t0r$Hvqo<~@&-n9(aY=lC)$f*oh( z$gj3Fab7d~%oBBhlaU&(aCMGP6_Zu1B?@;wOx;I1$`PXfZea?yReW#pP}k+MJOwPkw^%2>O2Gxa)LQZ)zbicin>*H=0HHea&SU1xqlxSQPi~_d1or3 zoLyg^2H5~`XoAM;&f|D=D9u$okiP-|f#{O}ZwL$w)X>x{wHuR&WRX>YhXVS$!p9ZF zB?Fz1^MYJuaGpa*Ap}nLz;7gp+K;;mv7~0*VsC0*`fajTE_RCS!yB%2`DJ=GVd|z4 zkyoPRH`Mg#uFIa=cSkSv0=UrEVBc+Xsa&rkHR1nt&;2#<*^RD^S0A)L z&zoN*ew~m4S{3B7Ez%{r0g0>tyu*%xa6dTNK;9rDaX@i(Rqvjsr#PH$2eYD$Nn3-E zgovCNaOaeIZ9N739l(RYQh&$}<+=-4FI0%|mjPe_A`XlfWrExWo-;Hq`f$|_^;-qN zu7$O8pPz0T;vTH_Aw%}jrzaGEQ2@XP@wM`TNz({L4~`DFh`KXmd&2k{+A3{F9yR!Y z@*Ma$dgR%`M}_Q&$>&7OND41(y3EDBPpn<v2u{DLIv*=fRvrfi z!_O}G+7I!gP&Ji(@)`rKU{L`Ki@VlQoPYxRIptcx8Mv4m4LRYvu{tA{bby0?s_L(_ zk*}B`GJAMA`tCdPD+iSVo#HX=(2D%Ti1B7Ejk~E5r)!P7TMp{%&f|Dk zu;$&s$UgKUzSXD|V^SF{awrSD+v<6B56RP#IBFlke&vBJoe;{tN$PVJ z5=UF|>5z;8I?(QyXKBUUmJ%zZ!M(G)VGdhY^Q2(xqN+$w5_;yggN5gpif)di`{`&q zZuP^Fvek0SGean+NN>qwNgDXcX%wEi$S25$g>$q;+xYv%HGX{L@U*Wxs`=$QRh@D0 z0&W*&@1mwAxuccUqsZv!Xx-}*ixB_fi4|>}9Dr=?J5kJWUqaAhd`lyF-1-7h6vaIt z7()nzLD2MpHLD-@{P_vDs?NEC@8sbn-I~yyxeZ#Bu zm2XCp04sv1`TfIe9Mtcz$NH>#PhiHqS7-RHf_jb<@Av9a&#|$Q(KDd@ptgbEx=2T& z;(ZMW6{u;Lb&HPdQ-1tV<29)J%fKv%So>LGci3K!bG0P086;lev2YOAAD}VzGAVs@ zTm7e*pjCzMp|5#mKtl1Nl{wcl%_EceVljn^Aw5HQJUcG`N)88g0ZHCJ`P6r!7$=*c z@P!l~u*L_)xfjbfGCYHn9SRac`U@AbD=OmZM)kU@KJoMOe*p$aQB92k#2#P8o#8}* z0=MtScqD|h{%nthsH3u{TTfweb+w$O9rT#+Maqls6FqQmz1OKjs!$*fp}0ddZ6KHf z%?2a}VAk%i0A<$J3!5xWygA8v?z2DU_N=C6&KOdXh&%5I!!@cPA_99$Ktk}o7H8P_ zxB)0Yp#*`5;^4_i%IJYiH9!t?tMY=OOqJl(&jLvjq$`0x2lyDI6eW|{ z!IO^5T8WfI&ItJWPzT8D{Kjv+eJ8&bLmJPk58>EZ)uka*F($Lr=ez%uiwFcN*NO(~ zWSOiworuk-Is4V-V?uReK=4>pvkmPMkM7^rdlDyq2xr-@tlvN^yc=>EX;`~R!OQHo zV+_?C3JQ&#m5HNks?vwTa3t^)73Dx3cf2|>k!!P}2X|eM>^372Zq-tXVaCal!+v$N zy>)-(GQ=|c0{1?j?`~(RqFbA_DqB%^B zzwUo9C;(!V(~xBAv2H@TG|{69@xa~PiqPwT?{3%L|7ebl^32zvp@Ti`#;i~8UR2M_ zER9!$WgKtjLBE9vs!5r}+H$*6`T|N|ZKV6+bRdlga^6jOC^G>?2UY9_?Zn=BxV`lU zJSPneE^C_ zC!X_Hj&^tF96xYhSgB7CioBkP!?5@rID(i~rlv%1QgULK6fQO3tUh5t9lM(?yLb8g zub&R3^-PUDDF34lZ86X(^Br_Hn$=YbeS@SbpTi3iK!mSt`yX$kuU*9`8XgHk&F6zz zG_>^b8SSWq%z`c0s@95Uqd?aRi)iq;iHI7_^?Pw*hY)rE;tK3jR`!|sVA!&{-8bBO z6T-FJfq2%3Ti5w>D*lcdYFW;NQLg~ zdERN&Bdk9=H8IEpdK4i6zaPai_XEY8-Po7`Z!rslsXOe~g`UL;lCX%w!gfE{`@^&V z;K!jU2c_<9_=JYLd{oXhPoGY~!s0P(NVPm(8q$fw7x%rM8kCKj=xZUxEGUv&1oyrB z8NyYWgd#>dSJ8i+Yt;+TGQ^iWYLb=Rmhy*y2M&V_`wr7vndBgXrBbyXv-2^qe@y=Z z5vf9G8OYkisIv+S0g{U9nM-l33Kw^t<+to+gi7@E&LNUxz2yb4kk(?~qMCu4v1i1l zi+gNJg5?=85OaY{1mB_hLzt1)d5%aHxFVTHpy*xXd;IAYN4iHqM*Z4Js5dMd)=u^7 zZ5_esxKmuLyOpJ|xrIX}8i3f0h>Y0`mKFj2376&@eGj4cEPrniy(K(CtzN@x$S%n- zl8mYI#6o7aoZ6eky{y4@vyDIK-*~<0Wrk;ECS!Z`6?P6yxXH-&-Mn#eiKFl+M#uj_ zm!p)x5hJ~uW?UR3nss&XII=f|T)j2Y_QC$UZ5quciAl)eV3eX3r~JjMVR;#zt;4f! zwSaaar}oN9Z8eA$i+sD65S0OK1x+cH3c8a z7eoB(Of|T19cJ_GIsWaT5e7+LiNA$2zSX6x$So-dW`k<$v6>5{@9ke0@!w^Q{tdkY zQsb@q9`9Q)G+i@>bDrcJ36i|iJ2BAX4H-W9AZnFdsSDhm@Qwn_A+-01P@3bEJ}sZY zbQ~B{A9CFs8bWh%m!;n~T=-)&F}&46DDuJy1Hl_WNJO+d;D4xn^}TMz zQ<`8>#@|pD>OHZ>bTLVO{`sSc$$eDLUX{!nQq`cn8~0kg=H=}LcTnB&xVK)NhvV(- z1!1>O-j@agRlOaoRzGDe*1VxQEo3nzY5FeYLP5dfiA(CgKUz{HwW3%ZkT2WtUr7Ma zqtC2RM$_U}uI=`&57H|`_k*{hR~-Y(6Sf)*1S$35hlrIWj4BKisnkQosW zNb-31HmD8ppzA5rtEPMg6zcf_p4mCsL$0$0A9nqZ4|>GMMoDhS$vuy|0$xD`I{{~M zBIh|B?*aYT11`8l!k#`Y^wieSc;|Yzy{l`+zHwXH@2EVZbTQ4HtAx{Xra%)mbtc`BrV$GG)$*94`6rAa)zYUzZ znVCFuJ_5>Ta03kYw@FXX`rv;RvaSFjx(HeX^#NB1tuiQazaOZIoMa}SrJ1iT&OoPi zFwG%5Svzsa3%*nm!oHK0AZh>;OJ^?sJvK_V*!FvKaJf^4$PY6vtG1T}OSgR@iorR> z0i@xoD&RjL9HGJ8B74{;3!Hig3S%{6MY4_j{P zfv6aOn-nAm@|SDUfPwd6JkeUCHSn@$f}3HDJ87|MK(%JLKRmDl<$!{(@8Pu+LvUL` z82<0wxr{rSnxl4AnuHdspG+zfL>imBx8a+AT@D7zH}VK1ASs6Y^nn&iIFO%%HzBOB zu+XYUlloMnX#-$)o-{NbHeZ98@~VQFN(LmkVhPz#`sIChy3G23orTmJMe~{6FLD2w z?&D$;!U_1+~u(lQ)yw!0W(coD13ca9ND|y35KnBH=mO_aP9ZV>@V5> z>Y4Tu^Sus{*w|5rc&bDtg1o9qmoGC;r9Qh(;AwdYiJ;I`Ya4jJgmx2gmuGPz>TQ;z zwP2~k%|2McAf^LE0c2edA3rAk0^Q>NPU} z4d9|h^5Oh<$c~?b_ZfZyVwiy}DkBGn*ZQ??jz#QKAS)80D%EX0BAr)0j-Bu0X4ssogJj~ zi5J#B?X7j0e+U}zZ(qLPfqDh7pLMiQ51gi;d5O98J=KtU37)Ti*yQsGk|{t0HZmJTZbq2`H{1L&VMM z8Z-$2ftNr1#SJV4{9rhqdG$Vjf!4aW75g{iRM-3#fE+)502Y=}aUSX#csZq@(g(i@ z)Mb#N_(QPvmuniWp-*&asQ|OjnjDPP2Qk8w^zne#T-v6 zsGSaOMoKs+kZ1W4qjIg_qr?I}`~`AU;q;M)%2R50Iu@QJ*dta!&3gy5rW}zOM!yO) zA!rimsCe~j0C_PRt8qmq2?Ya+1^2Qibl-m#7qd%BqV6zzPRIKMxhbjACn&Zjc17RM zDO9P9? zX7@`XAVnMr$AB975zr4%MMJhL*cb{;(cx#+l^_l9E?W${6D$X4o*>#0xC|C(%mtG^ zN%6y$YHn`EgYs6#Iu`s_ZEdeAN-{G~AdNg^Y^CNTcUxvWMZLLDR*)tC4u}J_O+bv(!9?6}Wz#P|1ZX6or9}fafsN5tro8$r5{} z)TE4-==FN7g@uRN!p3D-Hls5Chr1RCyyuO#AbdeYND_U$tg82N6OXn)giu&m7{cv* zv=i;FV@}Tf0U5c#>HLozgOWi|c^XjVrQwRJMfLeskDfOC3sjKV`*RuI1`;_0{TI|c z00IdySe+y}cMf?8g zf)X5Y254(1TzL&WAq?9B+#4{u_E-+^7F~pBLy*V{iix%T{(TWlqlm+4WMp5LOS=>< z%Gl=dAr$pf!HPH$ip;;vp!|QRy?m|{bze$zQoAu>ipmd+R(BD6Rv>y9_z^-6&Q#dG zaOFONk`8v_EZ`TlD;3CmDJUvn%+|g=A!qX5urH(UpZ?n1}uiWp|I-)1J2&_?h>7)&nHLWZf_uiuQPVU3_ zl;_2Z&{*^h58nrNp{3;tavb>XyHSP^z|oom&^k;o)6g`BbH23n$0uueK!P$dKwl%8 zEx-fdEhFa^q`@&txIF2{)&SdwjNO8j9#7N?rZOJ2%&IDs#C6ILeqrGk#&ig31UaA= z0N#Og8Mp%L4mLWqhF;a9Tlq;4F5|)l477Gu`%q8;67#?E7V%;w30VSt3L^6#V`H{) zUyxG{mKlI4_hHxoa`m~oI20~1$cEs>#BLPZ%3dBNM=83iN z+lbA0G!=oBfH_I~WTYwg zEi@)SO*mBN>3o~&AqCR^*vY=rQ$Wz47dpnAkeGJmLGF_=Db*7>3=HcH7aasFIfZv@|I1c!1Ug zHY5-%MlLSG%5R_8+asjR6X89{)X50bTb&L6 z=Rj)vN%L*gLS|hQ|NDd+;g{tXLqA%^f3>hNM}b_>pQyY>d{F2G+U8<;cGT`Tbw4_s zR^34zSoyzaIh_DApt|rLwGvf-EH6uSJ?l*>HLiU0@{D1ygV=>A6jm~+YHj~H1c~tR zkwu|m<1>wWe)Ah5aJo4Fx6l8c6u197DZi{n@XrWn#ksNf*% z=!m(Yarc%QHJsv5K)r>0Hi$k~>YxkQw7Hb`qo|Ku8+qJ^wYyE==g(kctJn%bs+bID>a-=88(-W9$sX+4l700c8re2tUMF!uCiWSH2R+ zY2i2LH=^%@tQ%Ec6De-wJosAZAR{2E%+l3+0!w$7_6D?eAUc3pDBSY?v#c!E4wydW zB^_IApDy%kr*Ao9xuRIK+om;n<+JMWBO#hoGAkA6Vm|c{YNVTllfh|Y`W{&JJr34U zP$Z>4yy$4qOx^bn-+BP5*6GHRe`^;sah_~Iy?LQA-Mfce))~20{nzye0P050258(K z8u|x}kINwZ=eyw^5lQpGL)p}2Yghd$5|!m4Hk|3Q9KRmcga43`TA{R6up|K#ncoCofT)CAnD|IzH8c)1VUK5&yGVfB#38Jm)VucX%} zHBQ|N)qm%aV{yeBIUr&F16JUfekAI0n`~m%OKB>RCcmz5Qn?SWxMAR4&Jrr8IPyeL zrs1Jg#RPSq0z3Fz>AB>HXimUDhaG|A7Rp+SG=^YwTx zR3G#t5&Td#H~Iv{!?i?KSW~`s%0@7_0(3V zg#om>@GbYz30$9)0MkEKLEd;3$HQWTVSta>Znl${uXm~!-yS=ER6#<1>Vb`1O((n9 z`}pqy&!2aSTrzvVU{-3pP;GE_ScpDXMSJQuwQ^z7;J0V(1AS_5tcU1vUwqiHXeq7S z>XdEQWhw8@@%gq-ek#$;p7l!G-pgJETS-Z%`~s6S_bp=WMxv+5H;joH-2|GeyXMzf z=`SFkLgWA5{2HWF-*(@z-0kECF*sF|&0eg((AjS@PLhJxdKFa#&4mW%#Hjd4Ev3Kq&{?JR5uU!KF(>wkA3X2OAA2NB2`vCeS+Tb&GfM5oMf^A7RFU*xX` zSNj*3Dyb3)37JgogggX+a{ztMLXEUou*Us6n#(u8PVc5*#8#XA{O9Ewb#BKtTpQzH z8#8R??M^(gFOn(e_y#kG@9JD@()pIZaNnVtUC=0(p%Y#BncYE&cfB;qyf_2P%<(O( zebEvQaii-ewlukbn5QXR2f>FxEZBVE+uVl$Bohw*Idk!>Cl|aFQ42_H^)fx zjK*@265qq6ZKG}OYJ=97eM&!h^h;T+?K*$n9vo7;{eRzolT>IZIra7R!H{mS{YZbH z8VYt$8$t;?wpk5;4XDaY6!g=~sdx6j3=Y!S78UX6HXP&lumF26G-Ov4qkqoSCg23l?j6r8Go3>t@;iT%Euna)$bZV1&p>cyxYi$D8#@ z^g^O?>)qT^!J<3tC%(ZOaCRi-#4Yy~WnlI4Jm2ru3aMX?y6^l|fM{0~(@58Q*k-qVGbFx+JT2v8W0J`;nXhBO4)8yV@Wt#yME zxoa-Ni&(i&>|iq3%={%#SZ0FlpmF%C4S~xI4={kms6QIq3Kz+dz6L-uHcA-B3dVFq zrK-;$@$<0n z)B?+f^=eJn15N@Zg76UeuM9n_+b}~<6=hmV=hrBE?P8zsIqA5si&!13U|`NIA~Gjf z`wd4C_TUK52MHQAF(}d5yKB9cp`JvLVDMl5cp`l5(Y9ATz;)0QU@#b%^ay5QIudYV zh`DWYax5(Fc4#-;1aJUo9G}^hS}3y0R*Y?I!r|NTlYg8|QerQ<=;h;+dgG#zuLXOM zu|ruyIx>s^HvJ-4UzG}9!t6!{_@+@P)1ri39ej{3ex3X%vI_rzmR9^0J$;azFvFGT zyN@Pln=5C5*9UHhpYBs}KH_dMn=-JO5U{Ka%(ViAs1)<|yBJc*5lF0oW>%-xjw#4^ zt?_8?c=`xNf&yoXTN%1#u1NzW;nHAfU`#J1Ah3PihR{WUQJqo3<8`p?zRsegE$wML zYRh2C+Mb~D7pK@S+#YVs#$gC=$50Ja#K{pHFqfUA!YV(J$Tq$A>5bf%5=v692XESS z&L-Wzyfk#$V$Ehdx=q7r5-sN77vJseXrVS(E|;o9joYs>Jtnp22>3kys9TWIyFJ)B zO^R7{co*mG3Re*wc7{jC(V{sq<4$fkf9)Uho@xFPV+&5@I5`A9IE@f#YxyQK3%~x7 zpTZ0?Pz58{OK$6Jz`CI1Ac+e9_^vV@R$Gbx)>V^rB$E+pNtykj9!jvuu6@4*7)?m4 ziCJ*7)W)A|o8zsL_V%tEVAFq;3LxUyG4}~&VFq)LC#UrXz(+V~3Dg7>U=Vciy4MxK z${9QI+yY`04Tm2F6cEuN$3a zh*_3KkcHeQEVJKs89;+aD2AXWFc{G@GnioGuUWAo8ASEc(l(yIPvGH}#}q;K<=oi` zm|!jt+5<3M_}m3ie&z^4VJRst)5~D{_7L%&`P~!RWwbGA}0y={cR7?ZLsM>yw$c-f{wNP`>4yaT!Pw zfdAl6hK*n{KLCHo-!><+UHxfag^dyk*a1j%Erm(aV*{H(bW!m7Uy|L#Tas>Vhbjs( z;o87c{z{&egp7=e{=#3X7Zu5r4N@mFRyi%sZ|abwpp!|Ciei~tN)m!)UUu^m^XD4B z5RcSt2+gSM*MdYZjPG{o&ePqFCVV1fl0uO21Ne96nEgj7ot1=@F~E``*B*eJ2+QZ{ zJ|R6{%LJplcXJYU8etq(=L{=DgcIPS4TrKvL@>hwrhuZnscuvt{e=7&+ud?sk}-o&}cnV z-NE*s7J$oZXnSPf_BZgK5Hy9n`S5q~11bX<6VQW!I7LHCQw_K&WU^m$G@_LQsk2u6 zZ4gs|9Cl{8YCJ0^=TtL4@)#v2Mne?UK)j9OCmBEJvKRAPqJsm=Lz=nacx?5gLwC$r_-~r%(c)OPD3s*PhoLxQO--q2|C-%|6bNJ2J&m6=XRQnPjEIm_Uld;7qU9i zPv9$e?_mZK0Lk%1L`MyPk|3BoyeyE@0($-sz*9Kc+sy=*C4xzrrxT8GtU2c9JH-|^ zzsP_5-rM^XFur2_?LTS&e&2#rpNp~?0Lz}|(Yvdq^(yi&)Kt_<7Q1p)Tg>A(9;^ru z-2&1sr?vwd`fDaX&~(O40jI!39S@hg-_}MaXgG<9i2=Jbh2MYCJmg|n{k1gv4vZ?^ z#BG8WVcQ*n$RW(D7s82B8h63(=Kvph+yirta$U^*=P!f+j1=zxS}6xWeBd|>W_zku ze4$iGU$Hws@bmlk?_Y}D$1la*cZA~{@~zI@8bGk9G40|t;13_Z&gg*}YOuQDr>`==(--Mu7{#UA3UYR(yi~bfR{P1kU$yj5QoQQv5PxG(k#C8f0%w|r ztw=C2^BPi=5R9+}m!BQu+@tPlWp`EehzuySee!g(=Zn4Tw^G`rma*-dhYsC`w-whB zIADaR9eie!>MvnO&ZN0N^q(RCeaV}yv`!cgjl6AujsWEbtr;@9D#Ui=38*hXJ#;HD z5VQ&>sbQIr1iS7#(%)!C# z@?6TA{K9LqC8b3JL78A*{5R8Z7`dO!k*a`?USV%LJq=MdNi-$TAWx#I{TXHxkNCRtR% zD_ppuV2&H)(!ssb>%1i-1SKET|4x%%PXRV;9k&glh>e{}TdE{VTiZ|WE|2CA`)^*l z9|H(v;d+^`b2;O?{5a^&?L_rQZICbc+49h<6@{w)-rov}pPf-mRCWP3RGi4aL*&0k z^rG1qdIR9<;Xwh$+uqfQfyWLRme=B@3?bbu-D@xDllUqmnL#WN_WLa|m~%};y43UJ zwHK6AAa*PCh4Csyx>Xy;5NkC(I}@E@_~rW=IUE$&JICv?8;7gDQTw8{Q)a%>M4--? z3}zvG3xVjRcVECE21ul*&0>FwMO!jgpK%Rl2~u!H3hAl&ILUN%2$Zii1B0Zz_ZU&P@;?Crht3s_H791-uoZ459R;1v!o1?o=2-d0AUm=Ve!s zwuhQ=4>;e3i`i0v^{Rl}}w!x~!1iZJ%?#InDv;GtFkp8mj4tvg@4e9Sd6 zsb|1_LFvhI^qa_M+x|En)aqHu48qF5B!C2@t-HOnpM#MUs2$Vgs(ptYp9cC188y<( zkUPbH$t1^S&Kw5)xYdHM6dIyW8lgX;DM0m=Sy>s6B%;A7c(l}WL;^n$w}Uwtu*?96 z{sLa(gniuG&zdv?zeHB&=PyZ0ju6W`mz7sL&2+r0W|Hw4Tt;3fFUuKQ znLk?e#cqk7Pv}%oQQ@txuLn_l z)}lmnr64|)(38Qv>Ynuu>ymZYSnH$5hmHM5CBDnn2MMx=>PHKF$1%^JKfgEUEk$J! z3$-SQgS~9^m0=;Ze`s1&f@uPi5DO}`H)sk49X`L5loCvO^go(7x?s51n~*5!UQF`_ zHjwZg&xrOq#9qVzH7-D|FbNVoOR2wn^tAEohQNLB<_y{E&`@ILk(#*Uxrt+Mne81+ zVf`X6^gy6+wU^rG*(YOu_x}AWP%_yMFKTLO{`fg4d@1z_LmmSIdxsYz`Wj!}`cE#X zNuUBBq+T>Ee?q~bnwq$2R-0wQ3>qFFtk_c1x;AL8evi2aIR)~s^B12~Ui=IV_ObnH z17_*{%KmX<_o!dhc7guAC%t($OaL%QMqZTk==jY|p(WGzV}7b}31#ELBTmxd9Z9c~|E!mp(~4Tg(d0 zp-*+srHc~*jbdfRRlFz&u8v99ysED|k=UJktmRY^7{ixzvh=y;I>Ic>S$TZj3YOaJ zl7Aw@!kXyTJRYV!G5r|+5)-M+7;ac$>LX}%(6D4$en;7i!?f2wN;Ns$aPms+=#I6y z`)Ij#W;=6c^tfn)dPX{r+kv$5^<U)rq+^elJWMk4&LU8y}P1ES69O>xwEwoX~6 zWlxXbkpXJp$If*M3W}s~18s`vRB-6sl9M~J{wNicQy|B`s#R#Tk6T8oxC&Z!CBGcN z7y~;!7(zf)ZeZx~;Z&d;B2|YWm2FY}o0ma+F<9Zu0qRs{^=`Umddt+Na)^Nf--N2U z!l{%hn#vVrx3I5 z#qmvMTzoF|mcB33_NcEYa)JZ3NjBkudEtaaEKTg zlC_rF(w3lD&#R_iW~8fKdMZH?y`rRA@l|nn=TZ5p@xdx4RwY*XmH5!2*w9vNeQ$?G ziA{K8|IWMi(qfULI0}?wD;rCsrrSYSn<5l3G_l1M&ZaA|I#wOJxd{MZT}F&@aj663UGKJ67_NyuCuc} zc^}`u0?QUir$O_1BIejxUqj>Dl2G?WfKArDV1@`n7!w@$JuUc2?%V?^CW)!W(g}Al%Sx`$87KGlsa9pnYa&aIT|K6LFQ-J32b8p4hyD72^1DQ9AJ~^7#P{8NuArTK<4RBc?>!Uu6iVQ3%<7JXW5AKY^GkaJYy1`o8z?2<0gEKhId0Te2sT|! z#mDOU9Fpt&nvCjW1M8KluEp!^@#~j`BHfGHDd{jAG)x(FZ7S1BnyRd~xa1}H`(82CiPa=z!Sdtv)<$gkpW2kKH83<#Qs>_SpY1LN)lw_?hD?>^7hUE~}+X)VaJFsKouo>Uc<>AJBW$ z)$7@kr2VKhiaE(fzTJ#zb3OZf?+Cl(oLTn8vXZ#N`>h(;qP^KyA}fR!H0Cl2(K{3r zn5eFXJPf^mcfOh7)%|hRcSmp9$SI<$LSqkI{%H z;J289aFa6<9J(QFzQs$n7|AUR70vvkUT4>EmM%xufesl%T&2rb>w_2hu|+|GIx$ZQ z2)asF91lk6hDO-0N{+7^oS>wj@T}!*zXb0R`6Vv*;lrzczwW9$h`A;I@0U{m@(up} zilKTlO%7Kg{EAL}%NG2jErWWr-OJP^C5ZGrna`zc*TowFBLCZ;K<0x zOh<4jp#ah_L4N$!=NV)qlyMh>-oO=x5Rj|n@>q{thXgmX;|5>TDJl9$On7ykJS#xZ z$_BCwGxK@r5DFcYpHel&5Pf%A86{;NL9!)obwqT&6xJFXPtTF{20bSH+`sZ1c`0TV=Ljfo1x9Q}W|J(_C&8@f z*}3o-c|kR5uoT8cK=*`rnRog{8`~2=`QP9*pkL_q=MqSFIIcC?j$B`<-nYX8v6?3& zS)g2&8X@Pr45UP&G@aJg17)+jb5Xi>6AiuxQwfa(h>{PP_^BQbt?t2!d!s2PSJ|GM z{aKo%`$n%KpShpEZ!;mXf1%8VpS%-we4q+?YM2o>^DpvrCaTa0wEzr=E@yhkOO zZGQ_BRc;Y9` z$Sn^kxGy$_1!6dn)xPR7-pBOpRoh6DtA2kyj-e3}9+5F(iK6bjOlfIS$D_`ln5FN- zbqlj1z*GC9uP<=11~J!e9AHlj)|j7-lEu-%MTjW80Qr4Mt1k~GRy=4l0*S~dBjn!~ z=V!v~w`ZA6a-=NcH(8^R%rHQe!Ua&_t^kdJb__p!K9TQnU1D8b9r_S%hh7kG!Zi(7 zEmb!NX+YNwqF5wmWk?2YHmUR3Vl<{uX8bieqoBYWgpfp`3m3Sq^5qpbq{G#9k(^G5 z`z=(XAY?KL&#bSPj(va!ZC4gFAJE+bTL%Do*1Jz{!1)R<=K{e2c(TPaR z8Vh75`a6x-7LvR~mbnHtQSV~9-H*@B-G_&p=h!(ru!8;;m;4MjBpF8B#0RgVqq|SbH7b}YCzfT+d$PcC z*}x&^>o^Utn8;FWAF_0Aq0t77agvDlb!2wNKcP{h&!VoL%X$m4eCk$xS50r@XqztZ}pG`qVhv(25B5?o*byA4rY^}950xgaqfgKIAm*2r_s$Ho=0tLbO z57@k_|Ev(KU={i~sGP`T*6?6&p;%6T_uAxqZbbg93tptYI${Y%(9cG%X^Q)yVODll zlT=lsU%`ANIOoV1oH5~!%=3-%+00H_E?z7Hqc{>L+$B0e@&(y7Q0wsfH=Tr`3HKG9 zg}_`r6*yp^2x|_;fj|K#&fX0ObAO3pPjzSf`cxQSSxL^R0as)yhUlorWm4?yi3Q4l%*CN2T{ z!SFEj@Y*#5nHvAm#38%Ibup=JZ^gagmc1bh2(Nv97ku#O@g5H}*Ev|qlQqZYDkH#O z2!a3BfWLz0?%)dzpx3P3$6D6fPJ@GDK-A{P~Q)r{UJDI(z2_?6#iu~^6@oJH`sM*!{u$$Rnc(6UZgTGlVMZ40)vDteupZje3 z%0~rgW`zG<2sDhSOh_f&rPY5ikaD2?e--!T(NOyQc=ds!lWQKT#(`#NGI%X}qU_C5Q)5AJLF{qFO-&w0*y?&sXkbIvn=bx!9n zX5OFcdS9>YN<%##8?)e*sU^Vjkq_B!Po&4c2nsfx5m2O+>x_3>qO-y*Cuw%@yOCT6@&j3l!xG-5*EVudJ(khv7y&KE7fngKS;54pMIOlkOL*P3~6(c!JY(k3&ac=uygKxVSKORgxo4Z5dPThZ$%?g)S(UKU`Ef8-Xwf*mI*j(%&Lf1P1$%1xKz_ z>9BKCV#UB0XZ{c{hqqTQ!sW!Z=Z&ZK?rzIawQm!Srn#ksEDDD(o+=YDsFzhF`2zqR zgOkxK^yEz{8Q`QJ)eR*EEV|yleV0nt&``rshY?~Up|Lq^FGsw5^-608ld8>sIyuYK zewvt<)<{ZvHZLn)w}lvL@g;t$_u%SwSg^UNhhi1Ez|T~?)2K)5W$7uVAAcup@$Wx} zwIhY=>}noBBm}o@d zK<^;W*yix{blNl-eaXuY*mx(K50z3^9PH#E^`0nme-)pWrX$ZYon#w8)Pl5q=+yDn zFt_$r*mE92a&#MVY}-}>;8Mf*TG)S4o=J$UbL^hoZp zrukoiJO%Q|@ar|lE-ej#%Mte$*u1N}SDl@m1>fF*YTlS&qy)DL7`WZ6+YVQ1TEuJ* zo=}4j;_snu0`SMZ;1|@9UpacRSw<0Jn3mbT@_)Kp07(#!^zwZuQk)6wRa=EEz+}Rb z8>$|65RN?lRh5)ku9X72o#0#=dEu$6Dm)gR?)n~-PaBk5P=nZkJcWbP&RUB^T!Ui) zUaFfmZqK3it!PQDc$#ignL>nifjC!hZQ7G6c~H4FRHJuKOAY!-TAw*%Iprb*@m$hO zZ}amRTM7Y2UHqcuvVM}_Y?MHlm48CX=*oHQGq?2LvMPtVTs_W-hTMXGE$b#OS>E;M z36VXkV(GXqP(<#y?f-}&AB1S0VyMbNa}`OE765R6QTCRA%KNO5dHP;&Ef(!L;7qGu zbGT0iUcd(>Gvy6st}=@=?#3xhW1+~<-q6-9UEMln9eKPM5Hb!s6G+K?&Uw3s_(Bo* z!s3&pEah1xHpKa6Tw;YCfd)(sm=&6xvvpc5v}UvXy)ZLM4rhkOv}NQ&UUicbFqM>} zi3x}>xOC$ZM@s`sR8yErMqK=cSJZym=j=T5_fsv282OlQxM(=6M$S8vkj?^f;_~se zG~12YF4A(UFF+ThX8Tet`BGHUZshfh28)a>rsOe`*DxKg7q&!ti$!A`8VTIkHd^#I zxXXpA!cO*UHL!eWH73d*N4_mph=RJ{9f%Gf$heschLl9ktyDJ_p-R#eB zD%_8otfeiO*L^91iOD1q#}V&qh>l)y=YGC_EIGrVF!X92O97uS++xVvJLX{T5cmWh z_h&+vphb8E!iprsp;ubeRbKJ8arELDHL3d-_avAtd8C~JK@=|YrGFfyPZj{?3KxH7n%iy}Rt0va~zKBA9Y03n{E5e6Ny>l+a0lzW+5 z&@?9M;b%IT3MMW7rxw6TyfeGKrG;O%F&6A9Z5iH6CJ;hUx4bOQdF8R$=o4z>nJDxr zaIi)uo!?M-r#AF5KK{ogPtm37c?r1Ue)yCR_QW4O!$k4|rBZmdvvWRLfOn%wewYN7 z`$}7}5Jqkbu;01Qbr*Pbq=$h=U2)FD7X~uQii%1w_`R-jc>NmC;m)UL?7z1Nf5^@@ z-{0MU=>Y|(mJ*&fzDXJEXjWc{Pkv5hM;i&9XQR`-efuT5!X>X*`vVX9Z3RElKEwKn z2Cs*f$mFf{Sas>YShv-u9~91gcQ+O}(!EX`hN=3SQ2L)|#LSQ-!N`Rk@*<|~JpEr? z6|Wol`xI17FafQWHL><*d}k^d z0)fc>1JVNPLHzgc$G|!k>CIqyVr{x@yu9mE`CPjkeTdT2Tf&i6uEq%fPLr=-fOE|( zElp=2_6%&W=ecYqccxu`FPjHA5fw;K78NG5yYz9W)(>fTFqv%ki}?j*%DA4tAo7i? zAMm#jgh?YBJEJLLTFykI$GLbzw*_sRcSlkkk^FADLUI$C`#$8FAta}~_YM6K+(FZ_HN@*9D(RduJ3F444geEH-vYpvsKhb+{}*nSLn zq?;o&Sx$S0xELp>3n)QbUf|}2VGHslQ`!B&T?%mK%Y^Byqkjp;DXcIBqWq?34I~l4DlVOIS z(x~{(&JOt1Iy$=JN!9-dRFT(q*3iflW#o}p2d@&mX;>T#6wYUn@R%5LP%yCZu)hUq zo1|JJ;5*=OhXu_7NOZA?F!TM_;^gFScT9ooQ81A_s+K^*G&=;&yxH@syD_t$xc zz_tVQ19&bO8a6UY$?k98^ng-XRTv9UIyliXd3eij-KeM$X@SdqBB--e&z=U$74$-G zSFxGRrN!BF@EMQA#!ehf_x3&-%&bqhgCF!9=lGgi8fh#;_HTh`K_V+V48q^$DuCzw z0nT^O_W*_f;smH&=>2A$581hsunh*{i2erKtu$AvZd7OEoSg3mA;wW@QAP#V(ABeO zL~UV=dh1kz4x-MIUD0pngb$4cX}NZ{edtiVa0Nhj?VB$hb4}&l1E+_63yc&=+uh}pG9A2nKAJ1k z=bh!#G_-qQJijvA$bQSGvfcF8t@7OD2ELd<1{}Z1J%wp+pe*LWrSG6XY{LC56Ju!_ zFmn#(8|gg(W`V5x0ye?N@pTP*?#2lRcxilKNT6wcHk7xjexd(@b&kux^^p7$K>m;6 zz^W`c3NjYj?6>^d4*HTD8O78$xl70gxuRPL0IQu(p_qBX_8f& z@;pMbmT8fgGq7Eob-~e)1^8X)FN5x+S!wl z!6?zZS10O6A_>%HNvMs)Fw~uPtuBpBu9;m|wX|nByY9Ifv$Dpf*=tDb<%|W3IyR}f zx(+*m{voR_-wMCGeK}Xy?;mE{QhQ=>Nd~;1BJ?;##LLRAOFFkCtG60FHdbWU-0CKILI(`}J)}VtIFGAxHR0U{>BC-(@26B>l;ab>b8A$EXe}c7 zFxK)%VN)-*sumeuP+Nsb1ix6=jULch)OX62b;-YT{>tWeRzU_@COoONhDNlcuX+Qr%0nMZo#jIDmgKa6qHi6JWV#4k@O97P zlE=)ec{0ONI9?vw9&Ue84YcccEZ2i-1|-FTTo}*hxaM=0{P&7tIQu zPWw0?RSl#}YgyrVKeGCwyFy%z$rQUzBl^Ikwc%-7uRzmp+beR-sMjJIJWG-JSwE{^ zE898y^I;xG{~klju52=SC;#(->bzxZi-gG-FvVTB5Q*IRf$})O;h9Ad!{tYar0Wyd zrOGVvkIV^gN}QYa_dSjcA39^E^Q7D#TbLeq7#44|GxZP8ki9JUX>A3arah!kdv2Q` zhAQA2X^7);I2$xr7**Hg$hVzU`lf-oCD59+%N~;=BC^C|J+E|bPR$C|*zeuv3KMr?vj|3dV&qjVh(mhJQCtZReaGEG zcqN4X@HAHUT)3v)Ld5OM7sIekcBSrb>eYuvRb_{NnrquG-RBBDg`h%u+zKfx3GVE~ zzMzU7=a`WmJROR;@uvhP#cOBsi$Pta`Zv83`QKAeBMO6*WHu<}QQjO=geoOav22zS zdq4!Tgq!2=5Z}GxMd0ELZ~Sae)=Hsmu)9?OwTKpu{l)Vf5f+9luuE*M5(TNU*zb!g z3l{T7Z9XuIFgkob)x()sHJ~n*ia$ADB{86jO1!-kVwfhBOojKO1U_eoh0 zX`*1oyj8vXBYQk8GXL>9SEu3G7ncVlZQ_zmgY3M;3(PTYr;KQ;C{xV%3@p>6QjXqz zhcIGA8XYqvK3cUBO&tmzVKAG%b9J}el{;tD;WKl_^&>k;vfRE5oXiVN4H?Z9ZDO

4Y@#|SadCC@EN@CYBs(ZEkEM6Qr9zoo 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3aa9f26381d54e0d866a55a91c916c696d98a61a GIT binary patch literal 90928 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 {uyf}KMt`2a~ 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

-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

hiqL^>Qz>oa1{9iN?)$mh=RsfUupl8-t+$ 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 gW19TG+lDk2r;M1& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..dc45393105ffb4e6103cff0819f01ef7fe6b3598 GIT binary patch literal 67747 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 DG~T=- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ac34a15211837155a15c2159d4ff3c35455bad48 GIT binary patch literal 96548 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 a4$ma1xA>}Q$un`_kCL3K?8o~reE$!%cSJ}4 literal 0 HcmV?d00001 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 :::

:::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 0000000000000000000000000000000000000000..f4f9c201dac522ccd362ec98a3854b72daaa16a5 GIT binary patch literal 215585 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∨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
n%Q7mXRF8|{w(B0L=2fJ;rtfJyV zeyW31934!XIq=UIwE)R4cfE*J3^jHz)_fIso`&n+$jQVGiiq!DP>@mB{A8zymurZ7*)d{39^ zjX%greT~^yeQVNc{vcZG0z2?ga9P?fOLT!CYTDqg!7gPc-&-;=If-SA<)@fl+QiQq z(8)`wa;M46j<1k8*xFlsA)86}^E0jcAkS2#>QqIQH2Em8r>!XF7vW2ZIJIaVuREJk zp1W)2pQ{|nBPtDRp(yU%r1!4wMJy3L3kWB%6|c zPH~`5b-h}>Co6}uWWpc&e#cV?$sCl8r#IqCer!@<{4J+;B5;p;(}YtS0`|ER(*wl*=)*|lGDmVBP|wuV+s!MTh7}%insng6 zj1?J^#G2i4V|*wH>MZ@}ML8ESR1wK0CA*rL%?Ci8< zGqcgP!nSL#yKOs+%MCw0BWyVVvN0Dl)qE6ql*fGzNR@ZGGXR>=a z2Tm%5C56C~y_wVe`h99P&*H?kh z8_Hq~@4n_>1RondA{u`FWJ8X(maSlTsPDae4+*V?s#{tpho$E)Tx~{%G`)S}zgz%H zViqlqmKC25ItHf(Gma$Mv9gM?S*6vyThQBK`lF~`wX+i|r2*`$&>L}&Ke@kO5$tf< z0kPH`7${kzw2q`U-mYwF5~kLH!VCp87<-uQ z1qnSLt*sniqY8bBv$Idms(>*Xg5yAIvGds!o^br7so2!J~?^OGKI9xRw{$leU0 zR=VA!AH(xO$zM4v6s_#pr|`-FkyKzot3K80s*1b0y|V+OC)jY}P>(`BLX0d#0^eEM zu$VeM>hu%U)r?$?h8rjwJ~TEM`wgXZ`?0d&#b-ajI!xP6)eWYf)5(T?OY&q)q3HoK z77ad`=%CD%m(7m=LV~>Ux!b5iN%16nX&UfV1*#Y1F7No&2E48n61f3kaWNvtuMn%a z+K^95d_?BoX2ZOS$W^Dl8Qi?k2wNT$P@c0iyEWtJ`Q69Qx;2<%H*?tj&vY3Z4MVFq z9gEAyehChibk8$(j+RO^qAN3V`)Fd%o1X{$F#bXn_mp5Wlqj)RPP%}wTk&Q$m4##h z;VUUKnwv{|0&)zaF*=sPG+g(kVsSKY;-y~Kskl)o)@J$5h|9X5*`Ih9FKC%8a%h4q z>j&*17vtbU?E585YDu$W;pQ6|ukPQ!UsdzT>2T8s%&UQF(8>B!I$?UeXXQun{rkys zMn=@(*{@TRI$;!#q$ps#q@JD|-s@;PCvIvt%|VD?`;nU;bk=>DG=#Crd+sY4}MCcH$2E8Yrp5nhn3iri3$w zBj$iP>gupn#wRDs+C0I&H=GZP0ZvgVs2qUBu2?V&F>4>6l~jGIzKIoVX=8U!SU8;< zf{zP^XZE}=KQ#@8R$1imH~K;L~Il3)1qI>3i{4f5LF=D|y@`Fx8;{AAr`1Ew) zKOPkQ8Yc_aJ_KODG z=}9u^f;xfF?iOCCS3n=>SA25A?mz8ezJ!@=bKUU>@58ufQU$|NTJLbYh3Ig-GAu3AcB3P5_^L7yjJ8~>Y6vkg z;6;UcpU?a~9!B|?ZIA@QbA>(dmA9XG-AgTW4 z$!2t(sxSk>K_qz0Q7zu{sD}gksoK@d0cmK%=1&f09R*;>2iw1j%FU8KRv3r@HA2gK z%8NF>s+%jGUcvb1hq1YZxsNdBhI0kH#?Q7^BnjSfWW8NIUz^_aYO4%9I3-;w6(R#`F(@t5{SN<_uhpPVJ1pN zO|5Nr2(B^?h^9iUX7K`ZX73rX;LQYN0Ha}25nRyXSQvh?TCniZmX`|VKcD?tNv{p5 z6z0Ent;hv@8ME-IdJ3M^K@8~!aaWnlZ)Cec_uec$y{0bBDZyAIZY6g|F(!Urh5?NU z3yuHSH~(4wJBffuF?1ryyax8i5*Dv>KB4RSnbWJs1y0{KvW|^9)-Yhvz53{CyjW=S zdxlmkdgea)yNuKwQGDf3WU7~}cAoIK9dnXhX*_2%ugoxfe3`mh)!BAiF)Dyu?76?v ztBNqZ#Ee);EfvBI@iM|q{E$K`{J7NgKxL}R)MR=3(%Nmga}X>ch%iCJWIwzw5q;)Q z+CFtm?wM&XWJj=xCz|z|b7wPdLyB~KY;1GM^eH{yMbJwi0k?)+$%l{t&;zWl!PUJ9 zuf=rv6rStpikdczk@tNmDp{>m; z>cwCJ{D?>rp{}7xumv$|mbO`PAXbV9&I=|F;QM(284g)ROyCJTx81|eASjrMpmkvP z3+KVZNmoJvWm9V>PJE$Lj=;Mgy?-$2doJI*1hf`KAlNRuG$1*>FNc@sq6OD~|CNjY zMH&({EOc?Y1JZ}mx)ml$??a=G+qWo^%15A<-e@|g@Hw!Tm!e(BrCUdBh;RYcGZR7v zS+ij#Z>RiE>=670s)rXIj;~pDYPLbN0SVm%gc`A!%gf8Hjj43!C#Z{5V1hC#FFs*! zO6a`UW%yZQpk!^$ggXAg4t;$tkj^)J7X>d(c=xcvo#RiOHJz8s@Z6S#*9jpB!@k!D zHP1xA#TiMIl>Y@d2!l!tVU9xiT(=`FN<)I_{PT~buJ54aQj`<|PwO9#Ps=<}THN0V zpsF0}ouQRJEW0>nf2=&$LFQlzM6fV#G8_!xEyb+1Le+9QSK9DVi$w^+8Rq8a%R!xW zqrtuPB$qLqM1kJEb_U}TThrXl&u8fyZHf}q#O^sG%OoTuU+imk1`}CfSi$Xju)ke{ zI>Uvh7$0!XeIUAdDLFa$tvo$qXe*GQNxNQhL&^G~8RKU)iCH!1BWe9r6X`R*>K!+Poec3)A8pBZv)c~W_@-h|k$rl4~J|CI(jc*A=^WU$` zynz)Ar5Y$PE_3qxTp&+)TBKiaqj8wm;pLdE`SQ>XAFKyx3$Ic6UV=}AOv(E7obj;x zb!9vp@ZkdTAj>*5bV2ga^WnjCz;4dtx3jJIqViyE570{&2^RO8TtlhsF-#drqAr#WbF;0y)iyJ-UENc_#O7z=Rb-yU7)$V zxp{I!G8Q^hBy;?(tTGTB*HrZ;2Z9mWHGB#au4K=@<(;)~XX*glCT!Rc7s8);s)(Mh zC=J6!gi0ik9^J#%#FHhMf!9^h3uxy}>H#O1_sA+ep%oM)dli*AeYWla?hvtWVw+)5 zbasQGLxJ`F4Dh>W!x%Cj5nLfo_v6)wKn`?&$U24N0x`P(spBAAVmiEO+S%Z~ZVF%& zxrpm4Rw_TDVYfYR7&NBdPvwlKI{keO0D&Qwe%T<=jvJ3}$i_*f)o;(_N7+u6Q^a?- zDLkCwv!?O6L`{NIG-$b-du!4qH`S-?XCcdEMQ<|0Fp@&3QtYPJ70%?-Hx9(U2_$J@KeaC0UpZ*GUn^`(;cn8*!}m zx^6YK18x)#?&YNesZq6cdJ+vS0p_Uhrotr@BF>$8-@Yy6aE!}wuyd|^rtO+ z$uKrGP^bF*x+PBAYN-t{j7YbZ8_BFE^=}PQLi&!k?rL1VUqlez^VD;W{&Et z>_~`(kZAS9%m`COB!^u7jtm`_v8Dl0`{U8DDMJz`9P3k&E$`?<^4IsmkRbbCzetOV zv*Y4ZTgNOiDH;wq*NE9o_*%y|M|qRviffDOj2LY)xa`rX&#fCkS(+K??sxjo=U{yvNTr#|ebQ4s z%dRRK8vBLO6O?x60vd}E0mKK{eESWa{9Ai_j+6F$oz)5xIwrLRc0xq!@Jb8KOGVGP zxY8WxI6KqamceoBy1qD9e^9A(_)AV=cGsANj7{;L$)qDEX?J%wnB|^u_cicLIBpe+OA<*+9*KU~yrq8G4W~ZS zN-83NDZFTCBkFmP%J`qwwXoM~T-+qDXu6rAi3oA+{8?nZPn$VSzZ~BdC%DpUUTOZG z!~_aAIl1Tqo|CHgMPH$@-BbDy8xqo?C8hH!z#AB_-}r>X94h=0aSk>~SM|9VicBU_ z9X{M)yCNnNXMHh5j@f`=9k3rz8tTt z$_q5N|9pLxIrRNJtC)KD0Xo$%la-&*j8 zfoj=RpwBVue}8eh-x+Tf0jTkRei>Ls_c+}UT~LC_!Tg;J5$vMN(-Qf(-<}|M3;Y8DU=gzrN|)xBoxB?R*s9R2!_hX)s#~-^Tz^;eUQf z1lKsDLPZlTgKOqpoe`@dly6$g$c&wel|MLgI<9=(V789W)PH~*c zvFpJ~@xT6WM>oNh7p0|aAXyR_NekB~zLnayUpKiy)olGKdw5yOcVWvDrV@_~|FYBq z76JN1Wg^iXkM~7P#1U6tHgDpSvJt(Z2%X^ZI5bgU{BmSrI`c7^hc=|6vyD|J=VFI1 zB$P3ot=mYtc&9v*g3No*DueYrb!H^vy`NOWzUqjkx{{^Wsn1j=!;gpOlhfnG48^VG z2d6%(g1;VQR!1rAo+#BXGQ2sF-4oRIlV)DrC|T`Z;r``!p7FV0tE^kJ5W9fco z#7>&*diSv9t6lo{-N*bUDcGTXu5l_NR%3E4(YgNHd88)f29J#QI?R97zr5QvRnltz zr^xImS1YQsYRadk$@TRDSCr{!X%Q+`&#!p*^P>G|Z$Bld8BeGwG(?p;hYczhA< zf!U0^2Yb}aSZqnFe9UX*^Srz~1X!VWME!+`BZ2`si&ItMAdLb<%|QttYOPB^kU$dn zV3GkfD?^z>fM^BFtYbX~$u7_!o~5J?hS3Bv(lBGy@$X|DxP8o-PdV+aK1F;Zj>T zcyWn|AuK&Oc-|k!Rb$PP7Z%Ln9>6dJK5=Y9LJ*xS*xthkOjaREZ}H#+Xjclm!GO;} z=?mu~_+^`FcUXU-&tN6TgZ=_qXIc@Uz0i?h{&uZ{k9O%wpxE(*y$VI47AtKJRQ(Vv z0(S@8)nhteW;0?wpEA6A?_TgzzQ{qtFP1zvu`r+y4Xe+zQPc-sE6i75hU6%oBL_1B@1~62-rgG{I5@ki`uhEWSFt&h z6?tnc)0pUF!QT^pvwH(Yx?*Ti5&TGi9sza;bAmVMKOOzh@^E)w4;T{xkPA*05$)p6 z&fE9>vuEMPSn{MSO@sESSqvZJB_}6w=dS_^qFhBd=qa49-rbmh)!9)=muAN<%*=27kogEFp2#Q66 z8JX;hJ8=Rotd5MfuD>8e=_?bdsYkK?`h%{g9ws;RYVzgGH2%h7Q4#%DO13T{$vevD zVK_Lj;Dj8f{fHFaK2maEXJuuD`P4RO{)T=H1@_qk=Pg}6jSmELEq(`+$acUy?H%FB zC$H~+{@#o^9O0@&!Nkb%Tk8TY*;_6*CLo6ZJ07G0&17Y$=pV+^qN14|nq~P#MRDK) zvj6v&5@0@?2pScvQfGzL+9wwcrK7mK>@6P{nJ(Kgg0;CSXx?MGlPNu-^rRJ81ku5;6c#* z*e8=~^p(kr89vdyz48D<#xQHbScZ(u>*DO7e0&Xf7GTeb{7yLg8#ilE)ID5Oc4I9; z*);HO#|ZC}5QayLeR5%d&4x%R?GM#xG53Npcr|5%`)Nt zqw2lmvHrvMVU>gm$=)O*va?6BvqEO}%*ftZ*;^=kgfcE7Bzu&-XGFHF?3K-Pe!lnX zzF)t`AKxji>vO%wc^>C65anl@%cwSlzie+y;Hvn{qV4tbU#k~2Z}HdxM;pSR!|B&C zXZ}}VXDcd3311xD{k7rxZ*yG2!GRM#Ft3A?HD)%prH#tz9~mi6rKK@ojx2n9bQc*d zfu`WY*xKq=%)@n%WE2#kj6rMk?%lgDK#+n;@rX5gsf9!{*r_ zuB=??-X;vXE&3>GYHN`f3kNjZ8VV1Y<(NtV;1w3#pM+h^c#r#TNb{AJr5}m%|W z`qi{TYnH?a--w!q2Cs3CY+MTv=c?d`RL%O|lzsa2>IZOTant;4+`ZImGg%dT(IC2B zP#}D^-OMvORt`4x54yUOAHDwP(1s_Dx3aSGp}c(0>Gf!pQQM*;eJ@0K85zxmF2nSkB&toB^a0)DjP9QC z`=wZ)hAIE-ypLi{HMjV_&oezf89ZozMiZTHr0>%B@Xgl4KeuR3aFe`Z8SJ+;lfo+B<}T}hpz-$MMZQ%;$Vj=5;^ zSJ!U2W76ByNHM0t(YrLQ*^I;Q(J`I>T_2z|R2(u<=DY|fQC=9P=`IyD#uqPPq7QrU z=7S^?{h$~L)z9NL^Kv7u)MS1KIsjlL@zCMAUWBmDU%xuQuL?eLHtq3o1nX5`VWuUE z${t=r@`0eDJA;`MsA0c9W7-)vxY#9bIQVQw+sSqMZ}UDkcRY|IruFJm=p%w)Gs6T? z08nKtjH@tQ10y9R73v{UZu4h4I#1!) z@X3tv*jpY38wbGe#`N7N0XAFC^p5uH4{;&b3I*&78+%v4ZB-Q@@Q1y<$brUf(Q6FE z>z<595p5@)#nqdF1X6Q1#Lj37HA@&+SR$Ye0utjB9i0h>Cu%ALY>o5SGz^p9wtjv8 zFeabX-3pTg;0ub6gud&g^)l(Z*}GXPG;_?k85G79p;>S|#A+zj~c$J!0|q7zJL zBB{khOUp-p4+r#`n{>Tn{+O4CfUj7eTo&4*SarUJW^8T-ayd>_jP2ISP|f{@2rCrX zsY2c`r^CD?z@g-PHfZXf>g&^?LT>PEzTFZ2V-3uzTCMJbW(~Y2x+-UuAfbd_i2H8d zupFS%VyDOb<41ELVasst@~5-GGnFydAlfR@?R-@^)fR9#)9+??DY|g;=CR?14xCN} zMMZxA8iaVvMF>_2!W}Eg`}&mt0eEM2?p@RvOJ(=M5&-lRDmZ1pwrZ6jE-nrb=2?WLKc?rV*VEl%yWCY+oDBsp@cWQA0Eh&#nPBjU zh`Tx22{P>@8{OyZd>2l|j>L-^E53e#vl`93KUu<4hs=7~AmI0u43GjfbserF!yM0L z${xAW)-{+8F{g{B1L_K{cNHcz?IbAFE`*#?Y9~N>ZPX8;sJncz@BWtyP(4+5u#|c> zFLoIp8F`E9HHbAZFgm)rfEoeFOi%GtZL*jh)!egCs9S974>Z!07?&UF34T50aV1Iy zSZ!U*9_{q4c%Lbk!`@h9bmvRc%ZqEmyR+AHJr>_TR=9Y?`)KF=T1lQw+pR9#cc6)X z4CNDEDtCf`J1rvMgls<>t;USj2%@a~2XU+><-e=ece}?y9t~_q1@?zh*P|&!dwy!_ z1<}hvzIKA&Ow5$+GK@Nuk{RP@Fm-*77olIXwq{A?vy)CR8!dU!j_d2pxX@1QaB-dZ z!|-Z;QIRREFIa!pfsBbL6wp5B?D@4E`vgiUFO4!7P$=+w03H225Iz=< z9nz&NEtwImOdP@Wo{lmFd21G!^jw>T*s!)$`?s;logmcWDfw&y1RMYm9i1Gj&bnBD zNii2SX0Y5xeVL>@(Q~Gm3sn$^q6cTdJb>)ehc9nI`UN|KWQF=eO)i9&p!TzTQFzRKIjv|Vh=8j zM4`apAvf{;oUEdh*pC2)ZytQF|Jgtx;x}$eM;2AKH05@@tJ&BE(`BrnC(u1}dUO$> zF({_Aw1nN&KK*_JVjR_YvO>lCX#mtiWFtUJgCh$vt*mIyMi`pi-PR5Rs~45ur*RIp z5ib8RDqpGIKpD50X-T^aU}942P|rW=f5ETLX!&uWrPV;hck%7kc0MW$%``8WnIti? zmo@vrz|d;@2F^3}Eu*yt+cWX7)J);7*oiAR>b2uvD^tboFb$q%SF-!@;VphTOkLT; z`r;`s^xoy#kw5;72P);7dVS!%p*(NXDBriT&)e?4y@Q^_`Mr%)O*L81rrDBvb`$r` zt(Y`|15c4eeOFTG_+S2xzQYRd3-J*irigf?S;L zwuc{D7+y?Tnl8Z0`HO$|J(20x#i?fFd}WOA4;X0Py~(RWFupw(f)EJdfbL(u_dpJz zG~BqDxx98qu(np_As-2*;Q%=R=diL`!9LC4kxU!24Dm4{becH9wTHyQs;mWN(poasT@}Q zuc4q7c-Bf{z?0FbmN)ckz>g+!o=9Ndf*zmt^(24B>wnrf)Pk52wVZSRg`19o*AbMf z%-@o_tC+$|FN1YgV3Gxn2K)OwJ{RS+pj+a3#G9S}U`=!qF|BNDIMiP+a0L)XEmy&) zx#oaE&^a_b92+QPSh(5l5R zFDs{>GU8`fwS3~dV>MDq7G%Yi_#6}>cc~xn=1mlpmTJJ5=I=;Bsh($gbVEbKu(9K1 zHV^@ToA@3k(V2}$%1gbOxc+|QHcIP~0u(q9wT$1`+0!*&*3D*OC5Hvr#^&mG<5D;& z?Q3*@t^eb!5YpGt=}K(a{}huh9Aa9PjRFQ)Nap$9#ISTu7{+;e3N9`#j{F?K!w!NZ zkf-lH;RHSBrz}7QEO3Qj2MceZi+{*!h@BBWqG7K;qFV@wq=dvz8cZm2;O0){waK<= ziwxu&E1+j)4#S=H%|xsRNzKdvhX7~A7vH>EYPTA?eJ8#7V4#iyrGl_yAo6Wuw|nOt zCcuuhumBtf9!_3tY(1M9;Fza^k|%<#A<1$$Z^5zJ*zsB3!ZDa>h;25c0yJi-O*K*f zDu%Reco;rh;eWqO(n<}lK)t81FB265_|MiX4UF_x(BGt`QPe1X5c7(KPCKpEnfc$y zbL{pQ3%HJvUJ(pKA3W%ilb1Ky$(Fk0GI|6fbSMBqaHtWl2vN75H6FH*7tp65Q_PbT z>*yDfZ3k}xeK-inikPrjGJG>?w`wB%#!|O4sJb!z{W?vJ*JP-7_SKXfM(11a)lorb z3yl>IUnN-DS-uK8ul7E5UFu8k{z!{EIk$M*F4LVnNWw_}^&%ma#|kZh)c2RdB2Ok@ znZO-^R41n-0)PrYGk{d5-(Jl`vv%_j50~B!@?VQ;i#gcJT9er)r5&|{a^Kyk6+7c- zfm%*L?$=5luWpNhOq_OqNeSER5AOE411WbmYx47exrJMI{AmVAH;o>z%A1N4;%%dh zbnf-a{(Xso{{CFX^SC)eCRuPgdXQ%RYci(X2h6LzQ%3Z1Mh)FfL)RCyxY)_%;yQX2 zvN*WI#)pSi52ZWgxl5hD^Cvv)STfAPRaX}fn)y-2?bNAI9_eTh<;&3U_}xp%rDx|f zEN=hGJl${$-D-~wOHxHMBQ3U%q-uN37vkjEpfEkUQd0kq?DTL0k-gm}=Y3{i5JQ9c zoLYpemiIn@?~kG0!>G^5XEos=^RR8*yY)ZG-VY^&HizC?pKO1@f1mWC#**oZ5`5$T zP{3iZuLX`!mYHwapX3e4CMLGKHSAIL>D9bzr}74-lmAbvMId_rsRhX^o_6>KcVyJ)9&|cp{ zJ4A|>v1W1*OAWn^P}j9w-~3BAo|2};gBaRCyIa)R36w9gR5Bn$J?^3Wa)d5`J%3PK zQn&z)XtO8ewj_5lMV!UwOZ-ueQ08pc|F*M$OmZj!)9-#OWeSIW`oH=ez;xl=?Pl0m z0Ek#*xDaU?ct3&?0LJiHSGmo541veUuZM6+b|7pNoK5_*@BlFQ;Q4Y)k`SFYm6z`IJ1bo1;Gq~u|tUCDiyXsF_w=}Cg9L3<I)O+2OPs^~~w!q1NH|8`QpeO!T)GzoRAbcyIwEjVpSDB*TM^!RR{z zXFe05ghhUtgF2f8k1WgfU`?8ViTwV*eK6caFj&O78C+0ckvvmT5tou`&3F1`f8J`!>u>-~ z-UC9J7pF7aARalD|wnuLOANO839o%LZB2+1;d84? zQSF+)r4IvGz}03(3Fx`def@{DZ=!+KW z_SpI792Ck}hbJad@S=Ap-PF}Bi%QxJx$Z|&v1yW3dw9SnHZVFG{IE4)+m$~7WYsVq z0qU#qSYP`3cx|FnVn&2g9z;0@A_j@W&wiu>ptV`GfHPWmNJV&qC7+2s@8icmft=|O z<~vuMc@`+(WIhZrw7$N+^R-oOPv(!GKT3$tDvJXbuc%+2sH0IR;0%@SZd8I!G&}bj z(ZWFa^3qZnKzUHf=G)~nva{ogt8=C*D5UX(l?`!yv-=&~YPBfiHu?QiqJEdQMW&*U z_?6@1<9sVtpGS<0H)`*_zb6xoW)F%GSfJ2K6GHI`IwLMFE~uhG!&mCNr4OAn)Ugf% z0!5eG5=3mm@&Eque#|<%ot~Z!dKp#llhV_pgy9i?x>5=mIjC%N>gv+u*=lbA6LCuH zloYPNoc@hA;7MDR!+gqc<8s4;WXOaV4+V*fHW^q76WEYc7qkx@uW!;lhuUYpASA3N+xKLMU=L z__#t_&i8Iz?tZ7E*HxCN((g4D)?oJu&a+hVs`$LM2;JHctWCkzMipE*tb{pRqP;Hf(mMnuCDou(=A4kd)EYF3*|o5=7mUv;FLNoD^a)#!PEtqXADXyfi##v2!f&r z{+t3m0UgP$bgm#x6#~R$bTCH-UMEC4z^R28-3hs^fAG5WK{gQ(9YM*%`)U$&yCJJo z*sF!G?!Xrlm~iEm3(`1L!X1Fl-=&pu7#iYcVq%)LuAJ@y3XY_O#SIk7@oP=W?zJ2I zUwp-s660ak2zGCsoxO_m*FK|A#=Gwj4m}8z+t21__oNA=xVX7scKD&VAp;Cd6TuYo z@aBvX03-+^+^Lp3Fg$#Bm@{N)0BkhiPy=04ZfU_P!PtIg01YPMV*J-0FilwvS6+tr zuqlaDTilEOOM6Hp=LW?YggE5umxZGk_9LtAtiMzzeC@im^iut&Wh@il11WH$;g%`1 zhPlnBibqRQdN93iUjSLwuo#D*Qc2$D>g4M{HwXW$p0UQA+vYt|iWOi-$>(*=_qW{*}AI-;Iq=-*SV)cdt3)>}d!SAxyi>Kf$Mi7fKhq z;zH$npD|merfEquwu1;7ULT;B4aI@ixTNZRedo*f235X6@*ORoU3b+^W2zr5@G8uA zxGz4_T3W3nuUeXP_?V~dKKm1+SU*Wg)9&rh7eaDwB%I{?UdR5zwx0VO7E39s6rsDl z5xYs8Ztn;;8$Ij6aExJAO&+QxnS_p(ZI41gRTS>6VLh_xdZ ztWG#DbY8pweJqfJKm-GmVK@n(X!&l)`l6(HuF0wb9_Q-%I?_bF%Nphet^o{C!YJ-i zZfx+UDZ$_mg6K`n%m$}NL4`$F>Am&>rqY3x((3}oVb`bX>)nH09m~qgL97RC2Kd2X zu@llPuA@VSLV?ykjenlWXVc+qJcQ9xRs9hy{dIAK8u0FqDY{A|R^Nq>W3cNS?NZ## z_&BLkcYlYhyU;Doi-qKid$E}C!5M)zQ}^{o#m7&du5g;wRD23rcUZu$7BtmHx}~PK zoS>g%@*?S#fDsTHzqM#ZM6(*!`>Y z6|J1=55JtN9v&V*Pig6V_~tRqlIMmqBsoL#1aJ5L58B|$a(X!!ivlSEZZ>=V$X;`x z+e28eqOGm%{PXt>7d~(j;~Rkt|1IDX@Zd;ENr8$C=s)bKKTAtP07HO00LTdd$k5<{ zH1WQu{L`n|jU_P`7d}7>0E8RxS`hOAX9bi6&=Lc-3i31HgoHiC2QE-Z^BX7_whp=Z z`I9>SrbB1hZIQ)4jxZqtJf>SOa4o9U?J z!APFJWv1O#nl|?A{LkANvPkiDuF_ti`V)&MOXWd(9CR30$Fn<)O&^GEZ{z85Wx>DJ zp@hpe&a6<|`(vzhis#x^46|&44Gjrv-09~}i#wA-FwZ!dw#cl1^su;zD;27j%`B1x zdMtSTaO?Zy9j?#J?|tg|5^ol7x)2=o?mgwg#gH1vSro z{O|#-d>s4;Oi;qWR0pr&yrQB=>*DIA%r?>qvAf`T@%6+@>lH8jPZ$%z0Sk;Z5WTLi zua|qy#oUipbG{zH9FcSJt>bpk6X2~lIynJD87MP6iV;F->IB%>H$mc`^W_Vkx_UuL zi3E7@*44fkp_hvTAcRIpNa#_*w~C5SCk|?AYLhJWG#{7l75+q&wW^1Fe0+Iy@oCdy zVs>$(ca=h}DI-_YDl|dxy?+&656#&^YnC1+s{|L+*VFTY6=vk+e*J1#s^$69*V@|p z!H_Hv>HenG^)JhNZ1?x}n!&sn`2M*{=_x6hg@uI+vBg~6ueIz+y=2Q2AMx=4`GlF3 zRk-98N(@i&Xj)GC5foW%Go#Y3O2{G$4)$avVu88Qxoy#j%+BdTLoV#M|CX>hP%b+< zJLNu8gUc{%g82Ah>w6HjaIc#yBk+^-t5**nKiE}vq#ULc$AeiPHK++Qf4{zZi-P|x z+&hP=4d6s?Vc`eMxM!(KssbhY7--qf{3>9bx7JV2ydXz=4@oKVa?NrhK#HDw^b=!R3CaITn&E}@CEDJ$WAO( zP|n)hs_d7740oJw8=sg)l;@ z#h3^W@0kmw3LYL9xLW}Kx!hHgJ5jN(HQ7A+MfHcAd_naC@j6@b*SM7&-cP9Xm1o-T z_sO(BSATyvT0~0}G1uFbU7Gdg>sKCg14k^Vh?F)&UpyoNLU0Kv0gnoH$${B$yqKuA zR093i!P#-7K=1J&qtq}@0-Ih}r>%M90w6`xbshzs%Z8TBaD|#L6=_G33jH%#z66*R zaX)IlhXuR70*>!E+tKvcS&uM$jvmfF~3>)p{D+J^24zSd9c+d%i z0?ozY?+7!-ZL)V0t8zNmyi|_z&lon@~ zHS6_Zg^WS;_{_}S6Hf zblItv4rXFBZF-eH{XMJTET*(?>0@Vzd~JK+yQSP@AEh)?^~53m__{Q;$Kn3jao?mE z7TgB6NCp2md7CHju`Ir=7aJO5h$&vf%6ul#uU350X8i4K24=#x$6Mj-{h;zHj+GhA z?VTQf=PA5rw?VY^-`5Et3YFb~?Tcbw{M2W@1jfy8Mc&?7)#hi_kSO)RIg(-J6nkh8 z7}e3R>n_^$cVXKjF|T+ncpgG+{_l&1^fMd5t+L$GIA7e+>=nbik_~g)_D&ZZ45mwY z(fH&fBwjuwwh90DJ8#{(Sd^2x8fV6J4}0aqRU^HH>Sscg>Kn@mCNH$dRTZDd-hFc& zUY#he=W*3Dg8PKx-~aD-!N+27{XfO^_`wC_>uIuso&D?H}@BZlH@FY0Z_z z9o{E)?d&%Q95BPkyrn`g_*K-V_;* z?0}Wo9+L>|GZN|xx@;%_ASwb{e#BuFI81`+9dRv4n`HB{DL(eixXoty?X?<^)0;Q9 zMZrNt0WrzVtDp(Hn%Wx-B-aEpBsKvw04P)$h~WQi&BWY$7zI!e_rEA0JbHKtH=~P@*iOu{bza6 zs8nl!=QgAZ_N5B}xDUKm)^5aLH=a>>Xkr2(hG`T&I@p9;Ibq2h@Oz+o?v`hYdw@~X(bx6Ewz7Q<)VYskZrH}$kc)e1^|EOLA+JIk_ow3y{0x7Z zS!*QXTFoqXO>o0UtoCrd&6Eom%6L-1L_~-Ll2X@|5^usIC|={?dsON)#s*a+PRKP_ zTQ1=8uZ$E@JBH&P)6X>fVLe-vfytJC5=3&twTs(ajmVF(SvBcgx=IE9UUDj;8Ix(if2WT8(3A8 z8J&AZQ;R7jIat2`UoHTQB%x}*$H#YABE4zJ_W8U@lu@Q0k$5{m;!R`}P zpP8_4!ZcEgwGH4KW_ET){HW|TL0~=Lguuuec2V&fG%m2s%UJUolrN;{?$E``{+)(8 zu|rLmtrCUW=`Vx6EU!q2(>b>^RRNEZXhX5sUIsTE=_dR!k<#3v2e_h4&e4+w6-5;@-mwVj?uw7x1 zL{bRE^*#23#YMttjLxPh2r(+nV?$3sZ-7VxVQE;TbwI(7n2I-t;6l^tbav!`hD7Or z9G)XtVSTbR0EUbJAN^|Z77Dn5o7+$veW+0)p0HT;g8_doD}>7U7<`wZH`LK_UzrQp zIraiBrbgW!4zTV4-hWFgK_cKt|N3w}3splV7pDcJNZ9RgCP7#rl8ic*Ap%C^rrKar zqwjv<0rS4<>ab;EvHo4NZdDfw>>#Zg8&ZhEAhc^#gig($1{4O}d;MZDy;f#Z6BRA^ z;eH?~MuT6qR#M+~;|4B#`~VTu?VPN!dfFO2n1c7uH{%6-%kMCq{#E7y!e}nj4m@mZ z?4xEo-)?w;Ob;HM$bORIAp>To{yeOsBAx2EP2NnJKx_h6bi^FJ1aRca6aAvG+pLKcLLidFw#O? zDbw=vR|Z8v8IJr|uf5*-qNgx_sM`4VTf5TrVNG#4@U9w;dxa3U>zbMrVgvWsdm*^x z+tthbu)?0MYHMh;HHinPCOjzBT94doUzURQvY%aF0jM7l#1H2OvLu+of4s1(Z|$QL z%IEh85lUjzSx1NN`DhT9 zw0iI@`)6EDom(@-3qx73A?h`-yZ6RWJ3$_Kmh^(g1onXwMR$iQY?WJVUh6c#6ZnYTeiY$49zr$Ow%Eg-*$* z>zbZ|U~GqQL=IY8j1kiAJ9obXh0J0mGnyCyHHu16F z55^2)n8KmYn|J0X;k6;T77=mWyb!~^lO5r?F3kW%7D$-E!YXEX_2cGq%9>(ss}UyY zD6&>4JCZ1(93e6b8C$5S-Q%15f~G>i{QB5T@Y#9WVexZKjohI|AoLvX z#Vb2*c^`h729J6evxm@iyK{5Hw+Eki`lqLZT??_^n0AdbGZaVKap1dd_!1B+ohbEI;H^My_QY=oBWMX1qZsg(^hxKhp^xw?U>a z^x)(Hq!zG(fHGFssrM0ufakl%AL4V{q=Ro$BXc?S`h9$u&2hV4J*BNFc7ps@5JNMu zurK@xi)X$W1oO`WyeILI?n7G8%VrZDwNpp^*8bv+ak6y#Tb5m619LV!R_j5V~q8B%4dU+03sQm6lQ zJ~WyYL2Ye)#A9RK(h}VKj}HAG!}$!ZkK!r>0EUFa0d8L52)`e+Sp6lBYd8&?(0sNB zBm$d_YVZ#xCnmyMZOprRl7aEN@DIu9E$&nLw?5tbB}?M*A6c#AktGP4pjgA$Vo8;(4-3?3|awNn6Bk_mx>o$GWL zsu8ZaJm6Uhnqq49rAIWcny!|8I)l-caGu7PfvKcQiw*C>R~-_vVSby4L+kS59PB5! zq|(=Lek-zemhZguyi#5445*!k^;!QHG%gN)J}+}3;;UB|V;4pWZ-<7pC*c*SkTb_5 zWbJd+gyVjEE&9^rxXrUngs8~;O z#zMp`^n`lD{2F(SH*Q?vrCc=~j#Yw!?_+^P7B|yj)r<|V6YNFsggjmwRxbD15QLhJ zHx(+|cBh?>a?ly=j5VI!x8=-2DWvn>hH?PLgyYaQ#nG!67{~xnX;8DT8ho2PI2ScC zHiEVzWx`LPv_a?Q;tJ-CiQ7OSP6ry^Fyw(iH>N^}&=|t6w6d;VL_8jIWMXmyNu*TxomcSS z{LKZ+%e?OQW%Mhy-=Rr+i50RT0F36+vD-{&o(xIc4Xd{Bo6iO zfr|_J#P4e0Y9t9bF~Hyud@s3dTI{7GDX{$D%KG>bT`sOqOAKR~7%W*PAmedqHIGzR z)gK@rkh?Lf@5I6GS`;>4Fs@kK^Lwn?do=+1tC}r0Z0zOF&Fm3NcDh>~!vWs%c<7s;D?y?DsXF zdc8H*+k=jTi;5F;?t8)v0Zg>u?oZ-$GXE>vdi*4g{$l^n-Sx?DQS;e!P^Lq}xCs1Y z;luUvx{JSsP>b^x8T3QxM=IoMGf7cS4i>4eb;uCzfM(+f;iIr)!LX7~LB6$Hq8LQP zK)F>jJ86SBW3X_ihJd!P`$a~7*A|}ol#Izk3?k4HBS}QlnAI2#3tfL2K*lMw>-s*T zHO29(2jEZY(@_4iME0LsNNXGaBTfu73Bf0~aHLMpdNs;>JUJs-rlNjtw5>WDSLmF+ zR~-ektH;9qxn#Sgqam@U5(%$(%l%xFzYBx@G#tiX$mN2Z^RDZK3@uQOJPML4PvyMd zQ^tBV33M#6JcUVGzuM1DWy^w@Fhl+1@IpHr#9P-mOz=H>Qz<_G&92LhU{~%3c>L&r z2=URxeXn$E#dK^=bUIAQJN(lH*#%^;C{@1N62=Nsi-EN))zS1Jzx$VWL+3XjN&w*p z%hD?-*|If!<8{_kei#bJ0$yn9eoC)7`1v3yI`1fj+D=^7LgnxW1N~_{*6EK&oGXPE z8JiXyL1+bhOIW3)yHkX~to+z#eHcW839~zgZjcdz{%Ei7w;d!ptBqcnsXn!Z#_3o3 z7js#`gHXvF9$r49@&kQm21TpX)YRinuq2-iz#SSHkpyiT8q6WUU@I&#QUP7OY0jP| zlrGW0M*vrN8!bFHV=xhxZHrCmM}-4&2nsYeho>x8{u_efeXZQ4H(Z^v%i`cJf+(P| zp`OsW=6?5EQe!R%4g`kE)te`4{SC4N=;pm?AQ+kHD@x|puC$#ZwNuo|oOA$>sAS>f zyo-HC=+B@Z9xpd{7+*|`2bI8_L6(zFj>iGit^tuHO_yyw#?x zHY~}e6$d)|y1)Q$yTkW_QCpvV94pK83m} zFnPV_keY?XV9x(0o8kV-AYv!#P}`3(R8@Zu^CU=4Qmd_zgB)iTjiT9Img3p@2=+~t znff7xcR!)z-UfrhF1O9T`1G(}#M`0@GjgzD++i?ab_#kYb(Z>P9FfN4fR4gr4v# z9J1y>QG`Y|)+{+Hh*eX7IbU`uPCLxt#XMIfPf5@Y{BA zD}t!>;QY`7N$P=K013Q+)IWebo(BfOK)wMiqrS|xk%Jw85xhx}45M#a?mj!lt{da= zf`H=)R!(}dAWEZZFgr$g`6!gCjwf``A<)SJnb`u6n6_L7qH}MRF5H;!A)(o!uq3za zu{Wwu`2cYxW$?ash zzk-4$!);umT+!--hxW5{3U9SXNh6iWZ+r8vJa@LQ?a>v=^UKp5D`FQ)Ve1Mk40n2n?wb7+$1Zzy6o9?<@7v()O>VCbH?Lr#JY!_AudcIi z{Rz6Q*h9KuWZ>a9*Qyj=t8GehX5x%tqCg)1{U^8MYbGY3d*`Uln|cR|2eB0;xCenb z6Y#}WUfQ+4&rq_^WDJtJ77D0cy09FS_>6)ByJ*_S*Dzs@IWxAPeZtCD#Fv3qVEzjJR`8CWCVd^g+`zWkK2V#$bm= z8prX7N=vsVh&T2a2#gQ@72|Hou*ts;zo5g zhdW+o#@!qeLo-51KfLw{d@2Dbd4qMA0Rbt17j&hiAIv=y%iU%~%bXk$$O{^6uoc0A z_8P1#m*WJS=80ItcGZHWuc{B7{BZ^jX^hwfzj-{C3ITYKoA)I)Na{?4EMyh0p-W^P z`GQ%eB8anHcIjbaVBEEDS@8O^28-Ss93Th-r3`T3lovYlL@cPM;^J3I8g{W?@Y*5B z;3R|=potW*0NaC6Ic*klyj3$dnrF|z#SM7GKWs{YKgvYL|0RU5NhVoZC|wBw4ZuUN zyQD@5V6m`;XOpXhxOUr2e4(YH zl_EgYbJq}9NWo_E%bWEy3dBGl=3+t2Q@DN6dA_&nzX*m-#*Ep9(=C}X7wE4ZOKFpS z3c=YqDDjShUOU*TBFo60j_<4~ zk^d|V?W6JNVne5=Z1hy#Ihm&v=G+~9vL3c>D&v0h?hpf~$SYndHR+NLx*D8t6m7V} zXH$jIFG=V;dU@O*4J$*n9@24YFITc>%+95t-)veRiLTm8O_6_

61u{Evii(-&|`>%wLSkv@zUgkpPj8e#FLX!r1WS= ztFk;yKJU-`m-dpi8ck9yd{d?!}5#C(GR#3h5aLsXjLT=?rcc5Nd%^b;f$z8iB9W1v13p=-N8iv4=RPR7ACNs z{xc%G=R(2Y;q?+o2!Kxj{%pp2azdMu3u5k#SFe8E^}aVwycoE*uo+%5EH~=LM3DWt z;=Mu%vD**);>NdWsWiorFp%nqi$oO^l(LPBr7JP|(|kPfb?YwwQ)`t1o3a4&ey1pE zO%QBjLSrIe9f;JrA!T7lpd+7v==G~tgsJ!}Eu;5F*?AQ2#gWu|ftoOd%*mvb1Rfduccb!gRTEjRA9_Q&VyiUjc<9jYuLy#H3s{~) z<=xTQYxW}$t6&!=q*-L>QQO;T`u6kO6VF}jn`+kd0sNglzai$=QjhTR)vBrfWAl{1 zO-2=S*48HP)r`$DYBlqp-@U4-qjzRE$S-WEq##{QMv`_{RIOF&FD+(4nC4b9_ZB1V z1IxPVhBv>L37t-`JhNhQXsFXGaXD{ciHTf1j&yT7O5*4VC=O`1q+`Ly^iv93=2?Q!7gk0sA45=K0r^+do$9zh5?^I>`Lx3D4CAr zt61pe)B8d)8PK7NytnE{jE5F>wiiA2><{N|?Z@L`qPrhXxnVIxw3*n7Rm$0t8UU=$nWg2U0xSJqu2P}qzSVCJTxV%za4HFJF%EBXynBLyvFz6`<={|! zN9xLF+;%7Ey%om_tfTE`-5CW)dC#tdQItd(N{SCVa}7WIdSt>s+(WQ9PRiAEJQ(H^ z9hyxtbKTaGmXVJ*Z_{#t; z9G@VV1)qMsIS!oE_xsMUF)U&B1(R*{M?cqZe%)3rjbJD*2)SR17RjT1G?O+L+1u0Z zn80KXqIK#hqe@eIr8`pd4U!5!LN3D{X6U9Gx!)1N|NEb>bJFth$l+DQ6QJ^U`tGu6 z`8Y!3reV+I26(2rt-l2nmkr}BU9sxh;|KZOxeXxrQk8lrt8Mfwq`>fSAyLn_dU+=09;mg^p zAtBYr0i13(iEZHb?Qleg|KA&dfAD&Ow3QWcV1n%TgQ%1N=YP2XPZ)A79Kd#}6xSLX zE1mI0VLtX(z{iXnfXRZzNkII+&lLH4=G%{-Jb^c?Z$~5*6r}LQ-2Ssz_##hzAP&Xb z9N}>-X%h}Vlx6VlkEYqXhD>a?M7f|8~4(IvK-J)ZlYq2Jd^GINE%FPY3j~C zbHh0_wg~NHia7rB?fS^R!a*GUR|0aHtl{Q8v6mwx6|ZeM|6|jvm+#vb#^dP(9W`Ro z3>+r2iR@IMG1DH#Q(O++Z9M;VxF+aN(jS!}+r)3{YWvnSDyo+3S50G3z~Tl4t6g3V zb4$}zMj|IW@8se&2vVfS2Y0`=wOndV7>i>*=EoNwb7^VOZr$99-4_Otkrf@f#%_Aw zKij;<)A6n+!(T@#HZxD3-i1qzUhe7Q!|_8k%X}-Vx9S8z|9QHJSZBl^uU)YF(RJsC z`=d}V!?;w{3Ds3R&n|Mh=qPXwx9go47`4mjKV=MyO#M0dQ(se@gR+9sqZkOFaHTRm zeURQDdm);f%i8TdJtN}lPvckI-d-R%ezB86DRiFCP!%kmyDe*HBpNNyE zYYNewfiYEL$Em=l6%-PJG-3-c^VhYRS_+Wp3?5A|_%2uj@?KywElB^wxGpg=**hE1 zMSffD>KMFw1WJClL#jIMY25Z>_p25*3(N5hZQnK*9`4)j<@t)9dn-}ro&H^z%FIDM zK-7Y!12lou}{IFC{P7oacAr z63!;q*x7EoT&5`qu!UgdxAao3P8}u#&urn2FE6Bo)4yXTl?o!>>Yrm|OES`A~NPB54`^uDvYn6{_85dT7pOt-Ha9y422-maW}FpZ;y3)=l^80;gCv~O*5v|!I5^z`+Jh^q_gtc{_FTm zwVM((w^4cL`eQC%{}|W25X=MPI1d0VAg6luFSa9uk~_7&*92D~4HzQIYI4XLiC?+= zXLl*B5U2IU@XA74^rx!)Q1<@R_WZ$|Q;H*?T7Xx^r~1#gQ+wOqW=SM-Ix)a9m<SAhO;MrnzMn{ZykR zdh#j5Fcxzn;V?u)deQGueBc5Gw6hRu&(O@XKa5EaiKe|4Zo~71h`ctda#}h3LXF}- zkVX5))MBq9)vj&rU%Yp*S-l2K?dQ$0HGEQ z#7Z>3eo8^RcGI>d4Elb=9A#6l_RGWu5`lP&lq>Ms4V-6ScB0vEqK^D#pt6nWzJ8Ty z2K-I}gls%$(mwF~{VKOP2MC1}81BMof>o~!9oTj7u1G{Yc_4EX+>Zf4kNLeIF0uUE z%{vtwAD^ed$o*_5#`lkm*og|R)YHQYaCMZ4p@OWkp}%{BONRg(jD4C&_`PA?9DLA| z>HEmF_Pl7zaQnF2c0)&$-#OHtsRhy26^)leRR9VypW_IF?MjP`RZjh_$5-tUhC1Bp;4B42)nqyV&>jE$; zoA{Im6W`CAtnR?f#Le}^2O0aI4U*IWgN#?+>30pQLi)k@r<7uNa@_J_G)8n};b0F~ zHGlTJRkXBLCFf2xxtji#a=}Eo4qh?JnTFxfW9V-nwKL!#$Y_541GS64GJOlR0CxD~6f<25>3n$4 zmnvcM&ey%7jcDFhYb-a~O9#+;ygq&IA4=cE&UziGUY#B!!cOtEx=!4e@6^-w*{G#` zhiky2z?xLy2f5aWRt$0)Exhb+pWJs0cZ`ipyDK*Oecq^ukOk(QA1 zUCNnA)QW)VcZO&889t}LPR&?V{^yjtdH51XInF|pDcyzXXeY`}*l1hp(j&v}*>7Ul zPckcT2z$R6oOJxKw|a6d{_A0GUNR4%PQ!`bBCj~%YUA3WEX-e;2Zm;;4k%Pj}6G!U$*?bUo@&-E&DB*-_SjjOk@-2 zw0yo6_!=LH{=NB}wDZ|@K0+PR zZj@`Ba1r%({f|S88OeO>o+lIktq)3OXYbWBe&^%yJlM%ofxKQ|@HP7k3P)25<5W*( zO?An@=N2$pt;=rvZz@dgK>-I;1uoBq?EHL-zZ)B;BhYZu*C%J!%rYCwkp>G7vh@zV zG>2bh<`C86in88I)M#i(y0lsiN?yezB-Y(^5H@5ZBM=PIN_oeF!4`HnPA=}HQr^IN ztsqWHJcwU=3GMfVJ#P@tLHhzoi-0pQ>x>}cRKrkBOcU|ol7)2R2nanrThls$!0NG8 zRQW`f6mG+INX`WvRH0gm3k_DDp7Jun`>~`FA400#$73V<9 zsh=eVWxq_;Jv}^z$H0)5{7j}6;k zO9%fKGQ6Pv*|rh+-6x9HdV0ACT;p+2z_IYk0_LQJu3;vJYY~)$f>-Uhrz><`Ad!V3 zA=GJrp6q~K2{e#apchpCdSU_k3gpNaEYu$}S%)AT?&P=Wb@yQHw1Upgwp+dTpP-xY zcF4+}vao5t1LZ4nM!g#s5R%W)c(D)_P05d{F>2@RY&+NN54Mj;@Sx#DAqZbJG+%;M z=V|IlJcx)$a6-L7m0k$eVz1eNOlQA?OsTz2l4FPK2xBM)pq#rE0i^;YmOXJ-#eAJ3{m(nBD;t4N_F)DnR9*j@gxD(FAu zj*Pvg{<{GqUfm}P6iArL_E%(-BzVIi>70oa52-lumO@5|OjcUnggy%p@!n0XH|&(R zEx!Fbw=Hx<8P*2) zSIohMpAU;ha%Gpc+&)8Oekb2JWvGeBzo8P1hL{MWJ`cpU)U3Z#&OKXYhK z8QGRjhiuQ7m>6#3ujqPuhCnm{_>?6K_dsvtZfx87iV2b$IO)U zY(eA!-x!%f3%XJPx1Su{v2+g6bj1Z5(Cdfh-t}HDGc2gzjUbKkJ8qa;uC8gnvSqjT zfZRJ662os<^r(An*K1ej3*BkW-rXXHi=z6hd3z_EX)1;f*~(1X64s$M#v6BYHX<(r z^vo+r%?&@rj8FZ2`F!nBm7~3)CBH#dX!O(Ehu-8Xyd5~y4n z!-R<}=AR8Bx-DuR5X%@ZM&DI>ET=QUtMpQG%~r#KjyEPJcsv87Z0<_T=84I$|VfMOM@bYR7f-d=6rAZ3Y4Q)D+(1r3zM@YU8ZBhEuY!C^A| zB=gFn%+sUM-So*3?ANVV<(IUnnoNxOM9z5DIv9m*!G~kh7<8JCZccbj+|SVHmsAnK=Z@q=s+Rph z`t6DB{ZBJ`U7q&sP5DR(QYN0BH;kb(Q;W|A;y?d+s+{=9&sg9!b`ieUi#|$%(fi)L zLp3Ax5w}&PH)gE__^mp-?HkYk{pOU1oN5R+jKFvN-Aq^ed+_tP zNq*6dIS@uL{{=wu z-o-)}kW$4w6cyEJJwE;3!mBsKsx&AYa(^yDb3Et8&~iPqgACgRl^`oXg+J>yxnBCf z{3mAYSs^naBPC8HjK#?B8buU22nmV&OLqe04d_MUdPwF@srgY&9q!DQaT~3#BQF2m2YP86$n1#DYT+fFBcT2pDhS4F_u^p;)YV$SeNB<}j^ z*zxz*H{c;o9s%4S+$6N2)W|Vlyk9`Xrk;f*2h#xvxjv4K+bG+=o;%ib9pj9H8GxhQ?!-1INszr`}NZ-WE-lRzJ`JanSm^I(zFASR5-vZN2Y$k{BcAq zHJ7y1;aS~I^SQz2XJm;i!()??cl*ljaB#DTmb@~-ft=V?M?urML%XxMJ z*#Y>7eUGLRd=(Nz%h^k}JhtVe+zxH>`(CQ+jupzCp;P6+^%2s{*o~upn z705n?GzzM!5Zl}3abKS>;J!0@3gcav87GrcR7yG76pDsjNqOj_{Zl2nsz2wLRaui3 zjCnV0>+dFYms3su{VnD9xQg&6N9==DBYq(<>VH)){|Hrq?6E&H-B)R@a9DoE=&4XxsdfBtj}#6r-@nHx>RCI3@b+o+nqjGYfz-QW}3#L7YD5f8V&UU|C&&kf6|>K zsz%w60)f&pw=(8dhj8VW2N9{F8TVhF_i_ZwP&u3V$wEXiq!9uljLt#7V&(ek&rPsx zKo`XJdk&y}>9k2-LbD1a39xU$#hc?UZ!x1RL)>^22jb$;R<@wHA=9!ac6eqqxGbx> zzKFEq=QS=44pR5<{ykQ~unHe36Lg$l&<@z#$w>%#T-I3Uf^27S7h#J|yP#p5o?i5O zwM4O~l75{r@*NZ|GpbLVliIrzTl*!J1}2<~2d8W^oN6cManLsHXv#gsyYsm0ZAFXh z^Cj4rk!}uHb?m6}tT8B~wgZ0>^~vqvB&fZkTO1zI2?ZOMtBDPoNN29a0^> zJ6`^@#{=vILmSJ(_vz(RtN~yJY798 z!`h&&g16MZmaAf@Cu&G`Xi#(}1msT1k8bE!m}mgq2n(CpjLW7KlJ>M3Pe#-rAIaSq zrkDVLUp*Q(S%j3U#lKWhT@y{d6i5P8hMTBY+3)+hx+LRsE@((36u7n4UqIx^@;4=Q z>QE%|B%B#Q4tx?44*~;a%NwNtvjDBQ_2%3bGZf&=!{aHY-~c%0_Uvr*zAH93agiOO zY_FLv2z3Ty+nW1Vcf9Na;3z^`$a7jD7Q=^fQ@0j$>W4~5!&iq&;D6P~g!rx+mgga~ z8?o`Rd(8c5(TiUEWJ)W49V(WCZql29U~F~TPKEM;h)I2dmbKE@ z2-U+!dP=%OZ%k?57`%ALu6@;}SuXXXFAOc)=%vrAEN_J`h}Nq=d}!u@3Ss&2Po^WV zxFy9~$!>mUvr^wT^b(Q#A|gzqL`b|xOU<+!$=tM9Av@7GbGAGvUq z>+?US-uahnz1Uzo`KcwzA=Zn{(Y+|=Roa{2+0EhAr>X`{y$U!t6S_I_xCMa zd1S}>!!B(nPn_6kX1A6~JF*8D_APZt+`cYRn#%qjkP}N@b5LT<5t3jHi&j=gmRx*kQC6s#-vR>xGesgS;juP@(#FwJmrp}+QLRYO;B*|Wo2Vd?WZYm_fRwR?ty#Y8yor|tu zFbVBh%zOKZu%Sbfg<6B_8#M^ips6v;_kzvye2GUD{t>`Hu%to#?Jbpan7^@^E||uh za;Rwo5^G>xzAr_<{$j@mdzVznG;M0se49Lk3sch4E`hw?d_9pBs6C(&7__;^bs%fy`iwi3u2hlrJJ zHbN}*C#EVVQ4BJEl;A>8wdd^7%4#*^duXDM@Ny@WCxjo_=~T;nV{A;=$aB(SWiV3< zlw6Q9g-myaZck}xX>WhO*3KFZ7O>~$aZex{{yrf(Od5|Yx=3l`r@NG-`Jchdi8 zl8xo=lXIJm)pE1iw(<#oriQn_iJy$~nGv{6(*Jpq9!(oefHnk?q z8*CM8Y3<(Ak}ke6tIg{%x*L{W<6ktAbN*rZc?uei>&KI`UUNu@B$fhGZ*~7NG9@N!Ypr$T z$lnSVEEVG5;J^$H0z-ad-(WD+(Gik37u5xiuE$OQnRpH_<~#I?V1EY*?CvffoaOWL z^DI&7U4jd3;%p{Za?p(jFsAKg*e#g%$inZycmotW@b|pyWlPdU89e%Fn<0_UN0sfEIHByEt8Uy=;w0O?ae41 z%EvwR%yulEdw~mEHmhc~3hP-5GIr`et+SL#a5ro|`F;0G5gI7sZ%OXDG`BfvmwV0X z@*tK7>n1zViOlx#()r+ohy69K^Z(HT_^fDrFrRD;<<4!0FRWf2eq?wri2dhM|3tQc8Z+`~cRAg|MZSv6ExX@-a=_OYW4xoSwupLm}~f!zq%tQl6Rw>oK8N zVI7B<{uholnP!QRf8+Jaoz|BH+PbSI4-D!Z#rs$8zU@oyAnUowiD04RM_}$KUefO0 zVin=BydA*jk}=QnLZPCKJ=VQisLXaR+OW*%OEg)GhR|1pVW3|Gm#NrCV+O?i$?YwT zIV}(M7cx%f2-%-yO!(Qs_T5}QKdawzCZ|W8zTP+(_&k{D?#lFmniYdQ%aE;|T8vx5 zQJ=X-(>H;X<6CXwj?h7Sv-~u^^koNshRxSczwtOSTKn)Bluq@tCfV?7Vi|FnKCG;o z3;o@F|8Vt75t<+Bd#+9C`NCpem6wshQvx@AW_q^BuU+#{Y`^*qlz6!PUM`$&Do<

0`;t7(rctNf$iJCp%~DY$e{6@I!^gWo^99dfu8j+CHWiZfEsREI08 z&pzdF$+}O2E^<_K^nIYz$%!yffyzRvfHyiXl(@<9<^e#ocl%~{s$gUT(EI?jlb?9q zSLxGdcGGb8?WESm>+k&HxBc(`{rBI+Mi-{k-LE zP;g>B8k0+uu;-IQ$7RU){m_X%1>>3ZotDFs+Uz^yx|ZoHet!Pb-HuBd(36wCxg2-j z+OQ%`8i7$Qe= zDf@cLR|SFvLesgDb}~M1g(}4`)XfqFFjky;QwJfHK(5X2cb0}C+h1Si>_7TU6(TE= z0Y*wJzwSsAz+DmXSXT)Kw}yky&D+~6vm1(OmEc!-;nr!u>*2gJLhZWX`&Ss0;Pr`f zXUs?5Z<<{_ax_0{a=4hxYtpQrou-A2I%ZoQ8GsQIwFv3;h2JgUCKGuk0o}Fmj73jia?D&qLC%go+XgH90E5}w<4v$a0v+G2s&VVnG}!x<&%k2*~`s|`OhWj2ko|4_ErOKAlfr+akLWMo$`|C z#mXZ|;)ViJ@rvDVZ%T+v*QjUP9GpDAYCA9-ImNT)Uf}+~NCl_@l6$aH9Qn}YI3Mw= z$_5k$6{Wh&If?m`+g(;?6mm&NUyk$3$*}j12=>~Vg}M^5D$0Md3aVSzJ4lTAI}B$A zA=78!5OGlJ#vzUB{0>*}ydJIACX$XjC;2zUv}u?8FcOwJe5S`h!mEW^-9(g*Io>K>l#^V??Usy%l`N$)yEAczOe~0uVP+{s`c@?T{o6zj>w*lcMNnDkfagHv< zWa@>l-+30{hUvfS5zsxm{b}1YXUAN?nlb9MyrRHo+8PGLakzm_O})U+(BQDR0rCsT z9-yZzdW3Qxw$@q>w+w`G;s&&z%mB;~B&pw2VY&ySNzBi%ZH_Bf~@M@=>m|&_? zKpnu3ZyR7}G1R3gH|je4T4}Ue60w5!MJej3#4+nnMK`^^0{RZSdHTe2pZ+k4Y~G~r z$C!X4hU~s~^L}u^rYArkmjV?B%eO%oJ%^@FK5_xH_++@>xKU?sZ-oCt(xA5bwID%_ zyeR^SkPwF#;eUMm4?T6cU#MgN`%W1s@Q=MK5qou~!UFJOU&{F-pkveCCYS4x0}YdX z15U?J)s?yQJxa*J=K_1zZ{u=tns1sQ0WRW!uMNS0)TWnbTA83xWO@3lVz3GV;-tRy zf4lE-iTpQ{bZH3DEYY>Cn;+5zY3s&Piv{nrd`nr*BYtW;H}Lrzb>Ef)TFv`bU-r%Q zW~PKMN=<~OR0@O6;3-XXqh->j2Y|gVn}5HBV7a%0^N}%O5cJZ1JasS9=DhE2(=b?i zd9@y13jRe7Dt5?^x@i*IB%wv@a0H9sKOqQo;ZhJuSO)#U>opL$l`;$>WkB6}W#--Y z^JhAj+0_m=2+I)jy}gc6rpu9FODm*K*k>~&li0w z@-;xk2?|VF$&ZQ4aU^X+OImy>hGu4);H3Q3;hQ}-XBg4P9J;xQqnwozgnVq!tylU5 zWX%1WGgO`B>}!nvrx~$uVbm6d&)5B3r$e>iq{fbBO4FpqRPNwvKPW2E`OVX5`&~Z$ z_LwWfc#uMRAmQ;_Tph08)H1%LdtX;wqYW2 z?PSK0q@Vn?Wg|oe1Xw9TX0kJrBTZ=3OG1_cF$Fl`Po;Y;ArVrvK-tr^j z=_)>d$ainD`MeUYvLz1`UD+Sv?lP?ot^N5S!`|6p-*nZ1*VnN?e))JJ100bMa{dd);!y?mf7?gu9&I6imrHD8owz5 zyoYiS2(-*$CJ-$naKIalB zmstEHzzvC zJ`>!fgq^a-@~OQ0G)XKH#(^3DK8sYCh zpVccX@a?T8xm6VD?icSSsj;NM_moVJdoDcuHe}5fjUFvLQj|sp)BC(-N9FF5qV;s? z`9D`oMsyb+jOYXX%9^ojE1y%(=Z*xV7c~eQkN6@wMx`=Gp%-;uWOUpys^qKu4^L_N zNme5^yQ=I*6MhGH*8lamrR_MZWj*G+YIG0%#SM*xmRQEnW8!^c^*U?S&xQtde&rQ4 zN6jOt7$dedQ5@vv{b*JP6e>>c-FFF*Y(w$g&$T$BO?kd9X#RY&hnqNvapQwH3G#>! z`^9gFiV}P9$|JYcXpk)O*vjB>fIfBz5{z6_SV>daflOBO4}>o+PENKHbeaT{RMLPqJE^+i0Oj| zD)eJ%_{ThdjPbaCTo(E&bQb@aH$M#PdGXzLwS+$)mBQe_N3>uD`DoMp=k%sZssI7W zg%rKCPZZ5F2aCIF7}1GUV+ay}w@x=Z9%&DZ`I_bPkCZAm;2D|U0I?Q+}dKqxc=s4<zh27=zH9R0hAL;5!Aq#<> zp6BFmYy zoPvZL#jm%!tZF5yUivR;ghC1?({w|9O3V?cPkRT)BbNPag zb)y7j{W^&aR^Fq&e~>^$oxKY^3GyVI7om+^Z}y_-A*+SFSPeQSU{VVoZ_U{v^2j|X zKEd*1_7qHGg2($bc#&|V=Umf;`<`1@h!~}ptvz^`A7l&nETC|GPoVd&py%> zzRsPn{XA#Oh>HO;^a<#@ItO%!ro$6RzaYk9KM2jd_x^R(@N5%W&WpTM-yodWcdM#t zjRG$Q*cGRO?s5Sp&?BB$4Ue*?hjIx>3WIc~qtLDMkB!dfMD5qt53diV5EE~nYL!oe zBF*2T8h7SYvqJZ~oro3(`O=jXY^Lv5ySKKxiJ6gHv-Im`AeAQkqq@`yu=I@q3w{;o2 zKFSsv6V(DDZ1eQ82wK4>h!cpy$Z*Nje(uyeOQ45&`}Qq(zVOO<@4^#3dIT7jSgk9c zHw{nVcKOEp_q68zWNkQpP}c2Z_v=!cl2+k z0vmjDrFNXJ%Z)Zu%9GOn(9+c!`u*DW%hG!LK{UHC$@T|llZXM%|2;fUX zF(2Z*zgzHby<6~P#7dQZkA~8hq3yp|iR3?;2xYMFu%-sa=ujetZ~np92Fakg91dbp zmj2bfHE8u^F!Q~kkZN%u0VH1!NVx!^Z9$+#zIu{kW>Nb4o6+JGJ!nFhJ0!T*8t|;l zR$CgF7|OQI_1^R;T<lB_I z7XO~))eBNM+KUlI!xZEMe6*LQA4VG)>N8i5*^gX?B_G2TezZeACo<#1!3IK(s1>HUj8|O;K?PSS;mD#b9-e+e#NnFaX~}#XiLW@J zp1I75@t-v6bMXIlJh`CeI9bre=GN*LwAR4u z;aFCt>U0F9G3L|)%}_uV^RdM)cg}>wa=3WWo*e;euX#>*CbaU6X}uQYIVnE7Cw6-! z$5hw}#*fQ172nuDneqK({$KalMB~@Pt&JEx<vt@4&$kcnjv~#LYE@H~M8TO9 ztj|&9B|J(A+`rL*p~R~f$E$$4pX@2nZv?lQ={K7csh$)wukh!!c-bGc zRX8_@X*+?|$8otE`zt%Uc{)3&!(v+9$nXAjTnc+RpR)V>y}PlwPBFVnuiHOgzVa50 zi7YAM1P9cxql{Cx1vsN#8;bfa^Mc&>aj?}Y@3!?hl7>cDY%MT=k@aFQ`FY*{b+{3&6cbnYY+!y;`le~V7x2}S1GluHJ z>KNa|>sSP`sBhA~CwM-8YqOVQeg3d`-TnSh?XW17W@P)yjq+~V_onjr(k6R(vM=(Y z$oHB}>hgl@6_ObXxZZJlAPy*BvdU~&FeVPs!1*o(erjrZ_vOP!RZUIdU<&Ti-9_x3 z#Fr#4;~C(s4_Q3y5g^Ev_&{{ne#Hk8D==&_w3{9<`B^Um+Wmsz_Jsdrm3`dRg(;7YpGWv7?E@Gr*aF4AN9vDC|**G{=GE`fM6CPyIg4@Xi^2Za`n?t!7lHdr`T2QfYJDe1pq+UXdI-tH{aBE{ zOx^2C{77Q^3yjz^hV1vHV4z*oDWR~W;L_$|7)|<1v#>!`H^2RUnQvqmM#+31L=k@% zB#@^KgK}zA2wRX+W5(_t9~Wr&*MnWUx-fg9MYp@&S9Ii+MEO{bm?6VLo{5a)o0h1JwogRUUS2ZLn84_rA3 z&~8#GDnIKk4|ZOcoygW_a3+=4b05I z=ZS2xX|i!a9U}jgB%q^MPormF4^ZLiQO};jo@5YiiL%zu;-yYiZKHUb+6Ok)8a%w#{|Plqc?@N-CDNJ zK8CH}>gY@v7#MVR$%THmeS#)Xnd;LK3+(v!9h;H)Z#96RoJdcV0cQj-WP(2r{D<-- z2J$%u@_7?M*6C%ep5)+al-me!G*T2YeWkRH#pJh?cGneHiX{<*44nn9*Mc1U;Wr z+6M=fH6L4g+efz*X*?2)2I%zY-(Z6K>gY4aojZ$jVLs8B9$baq4u$vuF9% zne4_VHW=*zI)MeqMq9pr(!f9uR6YJ6C;5`+V;g-g2fT~>^Fs0J)`X={nsdWU0)C6O z7&^Y8)m)OsTEV!7Ie-rRj^9Ky4 zxL1w-T}BU*K}@wi4Z2tKce_VR4wG4HETbwdS|d)sm5=b8sJX+_NI4_&Ex2y_DGw;DlaeR^mdlynXFLkb|AZ*KsT%iyQG4aiUG{=mLGb7z?$=K; zJcsh4UH;v`3g%Kje|`ert7O^Z$!&1LyQv$WSiC0HI^x%^X!P)VP;!+0tGVW=@OadxRE?u~g)XydLGz$A=!Z4D_~147}|14ExT z6V)i}6V@~{K*A;foNM8U3G!(nNF{Vozib4Qxk#OfuZSjZ3SU@g+dj|ZfP;%=W22CE zYiJ!%VY~-AnX0t<9Jwc;*5V$d(xE=JkB$>?C-3zXRCmr_V&}TOXeSQkUax^SG^TJw zeBX7OSomo%9{#OZw-nrZC7$CFIKvE`q($%S>^{%z=4kSCa+6!#Mk4nWW${NHN1Q%j zp@Wj?`@W08A}9G$a|O(&-mCRr3`aqU5BoorOfos13Y|abXAR#@6=)TXycxVZ_>-I* zX@!|IUK%h_NGo$-_}aiy;49*=9lP$Y`MBKISRfXqp2t8XZK^FkgP8#1l>#9~kdGfD z0VFt3j41ve44+@Rb|Sym8!X*ED3pd1@RG=#ztIL$hP9P2K;~n0aF@AhuQ95M(DDRpl8k$p z4F4#YtM-d{#lwCNS8kL22knO}M^{^CsVN^|0nn4$Au`70Aq|i2XBmZf^H#8GQAABh zqdtWrIU8)*$(SmLO4mJR32$E3Md^0AgJkKzSw8GSDG8- zU+fsEVxfiB-N3bo7&m|8gb%=XpSB~S71O^+cLxm(I~ubW3Fg*fS9b((7+@1N$gIYU z@XL-c6V!sBm`;~;f!_~K$C%hr)&tY0ewyFG#~)brMjOsqZ6d)){XU3h_wZ%PD)xhwFrcbGhiCaI4&4wfNsYka}kAS%WC2hNbwIwC-=tl}tE*;?1 z2>ZlcFURK<8C2;(kAt=*NB1Y=aRI0K6)Q7cuuE}DopzV%f`sz6$6L+gjv10ufd_T@ zt(txqR659nZ)k|;kWh?YEn{ecgxgu%Ws8$rM-i>hw9a@}V91BMX6#haucJiiH<30T z-3{xo-8dM!`6m}5I!>B>CUh?e+`Obk%gE`@bCTy14d2N8Xu@z43<(oFUW8j6T4*qZ z9GC6YEb=y@KaF4x@{+>CqymW!UYYCTII@RdZoY`f3x2G=jORCCG^L87>v%(SRZ z@~>S5{RLa_55{ZJZhPV>*=HFVX)hngU&C_P_%p-tFPR1&j0eHt$^#}1nW(XoN5JqF z>$}~aL8?y#`AbKfq=RZAk_OVqI3rQZ7>^SkKS&fGVeLI9iAeuC%gfN=!m?Zs4GdN@ zs2^>;ZiJ#J+fQYi9_2xLdl=GipC8Z#Rn z-e>LQv~@gg?CV6>+^g#Jbv#`2$0NHlXE1j6-JK{oCY4y=qcUxX^h;rS^r8lB8<*J( zJy1oJ*s?+WM8uVB5sQk+(3MEK6V`@sW+4IMXF6Q2 zJQe1jg!I{+))azqpIS17kyKt#BAuNvX)-dv$hobr^EJ(X++ySLXC4!LYz!|_p+Mo@ z(Ta&^1sj=<|E#ueBvLIB6nh%1QXZmR@~4cUPt||3=*PtO@84(hAOY^#4NivFhU`?Rsp8z?g_Y;0#oUlQtO;>)rH3fN*B4L2}hKk3k!kcq&zrEQ33?{RdigG zO!xzz0{4West$_H25d4qW;%Z=k*Mf`+%9fokM}U*LS*YvM9m>>A~QJ(x2@OJRA&D) zF<)*$8zx)BJ_I^}Y8w(Fh(;%klU_=g$8lSQ!5HHZoVe+{S3bx z2IueHoc>Z1{Ctn@f0v>#5_{cm5S9A%@Sk_Q^BRu9$9-5#{Pi;w!nhaU(c3!Ifg1=8 zkRJFbz_@v#Tnvf0HYX3ED*ZR8LgTCFPVPXxBPb{qK3Jj*3OqA>>$%eay`BH<0-RpQ zC{cnm2%qX}#Q_b^z$rs!V}fH-_5Hyhvi#hZwP&0<3Z${W;E2W4Q;B^H)gTxk52&wLlY3`55iG!GMaKIPXX_lS4OipeOX zD-j0!b=JhTNvc4y0>D-+!+W;aKL-ORLFKm3#ow?FoLJG4eZYu|?OR2%R%(aM zpN3G8VNx&bo?i2XE4Kc677LX#E;(_Jua35)Ldbj$%KVgbinsddGK;r9HCGsK(AwEK zG3emrP$BGv$faZMr9KKh$E!e$2*>Rk*;I|Wk%;lQwSoc9Zm>RkhY|$88P%PTzvdBu zgbjKcaWQDas6Vv{Bto4umYF&VyT~O9Ij#8Ogp-c9=YvKtX|Q;_R0cg~07%&XYd{3c z_K>?o*9m!bm=bZfE}~3TjBqX6em?g|?8*}r>QoS*_ZA~TCxPR{tH6`mlY3T8PEKys zC;&+%V3*7Y#+CmGNB=xt%GUeo;lN%Z8?-x0lrQ-G7u;{#3jE4-@K?Fm&Uu7$IB*UO z3%|}Kcq0?GQ{Y{yu>rKq|Em-U@+nF7`lVChb{Tf4=XAcWj-ePF_cw|DS}}f>Xbj1O z8ui`}XPxy(tLpJG2P;kGdSOFPv=C(HSDxh7N!KNS9m~H{)AS0Mb5?8#F?o>}U>*BI zhdhLggH!5rgoxs<&$G5A)R3f1F&>L}1Q62BCxm0fOo@@frFcDz@ig)L)F{>>=D=t2 zNxN7fC-PC~%ILwkTI9q|!P>o;Fl9YPL)Wxlk(%%7^acbIp@B4~SnsQ=KA7ky^EQ;V z8U6e44ARFX-&iI~@MmIEfo$^Oe?N3y$RW@!15T3lb8R%?H4+6xW%Uph1&jzyK4bM@ z?(kg2vnA!@px@?1h);`(Tev8+NoScLrZ1=AsfsHCR@q_*ndwX6?W4gO>7Inl{se+& za}NEhcuWrn5{^{f(<7E{UHX*&GOH=zeY2{R>P9Qe%{bwjj3-l<-0a%gUGvOo9Kf0% zygU6iD_V#aO+w-qv_vodfJb!%`arEG{xtmcV`GisxQ+{l;?2=r=0s*a{EC5W(O2^n zY&MC9TNo4Vne5NGJBGYQNh}8k3<&dcdOi-PyeiaD6kxove0J5BY zG~t#)-!I9_$;ml3W+HVwzZyB2*zF5i{%JXc>syh_>`knyULQkXHD@85pW7SegR)Pi});Lp&x`9kgEO*`|~ zm=)!dG!9y-7%gubQ3M*Z2iq-Kq`lm7`0Lb3PuaRw()KMjM$F$qV(7Ri)`h39moq#l zlwxrCX*G*WlUxFZx;&Fw4*j5Z&I?3&9vCXA-L*^IuEwG44(eG+c!{ z{^geqKE3`8yiWJ{NeMCojg_p`W3>D>x&vv_B`3v6rK|QK!=}3J4Dq@2=(0HmAes&9p7%&iHD9n3pCLyp|KIg@ zq4!zudi&g49y#!3+=|l55UEwDO)GL2E&m)cIxp1tu!Z1-p>P%BdgLVSuGT9R#OSHE zj7-ea7ZmhC`rR=H9|odf!|bevz4OV0{gx=4Zv67&Kad6XHXnu?A7ZTmDPsKO*91pF z_OxUYTetz)t;%{OoF2@rBuX(!PucvZ{`fZu@QKE+;Hfuatb5=RqmB=tcM@#YyR%g9 z?5xji(kbmgo!sjuB@0{0p)Kktcqet5>h$H|9z20vS&5%KhN`3~ zh~uS>tA^GOaVHHeikvU~MM@Ap%K8#9YdaJ{OIFdcGKxLys7fP}Q`&<~G%I0$PKM*! zYf-UdyxTKRAbzk~ktHwgBKcp;kpY{N56OZ(JRCD$Qual#meVyOZgov-fLqHbH|-ac z*e_>ZD-^11hlX2^k()TyyAqsjtqj&FFiHJpg0B2j+7x-=or?}G#5Uqs4b6T z>xi3>kTBW-J>+%wMnWty_2@Rs1jprMfruZ>3z$f+at29RIj8ybP^Ai1h#F> z;TJ+riz<0%gkZlkg--@nEk5^AIT<)9vz}37wU+U#hV6+GIma$qvI%EDlWz=BH8?=; z0QJvJ?@vB=p(?4zY&_CE?FnM)5m2X@eUErrr|&|U^X!Pg8g4PS#2Tn8vPYWOOSdr> z^snq2Tk$jPC0d#cqL~;&&{czksDqA!Ag_1^POy|?SJ1{)1MOHur zkIwpC`cKTc(vG2k9kU^GE(SA$+l7`_6Q&;)KgiSJhnEedSxkmLx%rr_x=0-ez5E;x zog_^kG=mR*s^@f!@Yd`PUNcRoU0d8;N@a`{qeS#R;PM@0d_D$3VSvdZ^2a7lGI2R$ z0@>A#luiKAG9D8%&gi>;V~hxyiYtUJi&Vn4AuW{eRUmqSRrsXr!f=KXnn)x41{|XJz-$?w62(|r*lVz0{RDh0W|}>x>zzVbSaI))yfph zR9we3DVdT7p872j0ZZ;9g%><{d%t$|Y2mVrL84Ov?tR&QEuDo4ruaGVk;A;u;oh;X z^b)elS?d9GCu>5cS=?o$yPVi@LX_rb+7Dj~*u5*!%=20O%YG%8l<(b|8VWmB4vGYB z`d7J^m=4z`e3AUP@Ua3?v5_lZ^O_2mC-OyHWc(){e{>XD$)n7f4_4V;5$y>Z$_q_D z+AA+;2$ly$XHihD`TFH>&E`p3pG}x_A>{L~$>Dx%xcN!`vPk87Ye$sr^3^3gN-o(t z5b}*o^@x?g+8XMA=oV#tN6cP2>Y#S&HcN=O=!#PF>>~SnM|F;$1jX-veiY=$ohD6a zDvQt!AS;6W)otR(T=Ge*H&L4{8+(TDN62)sUvF3a zLNY#i+Lq!PbM7Hpolqn1(t*|RE;7l8pq~Toti?B1uid+U?u9_-&%M$wjlNPTUY5|C zAE~jP&7kSmzy|HJr7k{$z%M5XJQy3Im-z*^RL6^f$z|h`RU>u+=_N6Fp(eM)nT!LL z#RaO21x{xa!4D6ab>)R+oKMr4g=5*ogJg`7d<1VBcoAql=FTd~(8AXNwtbropuNr) zh@FhxbDoCeC75b*(>5{O&svSD-oBZf9i+-w{P;fh`UXc#3QKMS!QpG;!C_;7@oD5b zoK`G>i(%^g(~}w=vSjN#XGj!KS zjT1YX`NDCe=AE;;YqhS$L6e`}9wafh||&tw-9HydGE?F?>}JU@msMmcli<2D9AUfMkLD4sk)2$tH&q`!3Ns&T`m8nC$fHLL*X_p*nM8G zJ-QCA*ceQmP105jG71-RlNKfkh5DAkYuiEhXrGWiIqH}QwUd2;HyX7a=kx(k;eShrXuaJnBVdB(=2;nrwqN0;QsVc@qF5Z2rsoOVo zaUkP9fe$BW{MGp?jq>zeq=DC~T+?dc#k`J3; z%l0}jEjNv^q;~zM(=qr7+}Uk#^gas`kS@DE3NZCY6w&f;Cbxng;kmf7kk2#wxr@8@ zMsPu5=9UkY^XfHT5=3glAGvZEV=Mt(W!&se!r*g+4hZ8?}_pI%ay3hEtBsfYGA$bWGy?f*09??5dipzaJ%k z{oA1Ny1d*pc=@s$3^)Mf4ZPw92te)}*(2E4BwjjtTM5h*(dDxbdmwG5#Ke@39B+1B z{A&3?3_RazK-tpiDhaMspp4y4qXy9z_&Ai5-)%*fo7Hw(s;m9McmU+_E%UuH>P=m~ zb`g+{aHsIE-YYK*O&=8K{$(K%Ulk<+0*fkNA9}@Dy1qYuqUtr@?2*FwgZtoW@(a~6 zjt`Uh{(RmZeBw$z4acB-q@f#*Iq)NM48*(pdNeP&0MVh&)9@}HRCt4r_yE+fpL*IMfpS#N@beRv#eI1 zr(X^s>#?#ZpdeHE#WQIc3L7-mJ$OpwKl`i&rF6=A7#0|b#<+}EDl~cvZjmv^qZR)_ z=0aVcbl7;z8s4lIsZKL5!s%)()pF0=fknrW8a63?*@k z0;8$VHPkl%j6?+VFBoipd5HT(cq8=IH5UP^EVNk9bkC_ z2i(2m4TN=2C8=QF9aR3m(!M+#%J2Vs64^zDke#w-FJffhCd-g)NtP5smSQZ)zAt4L z#ulQIlr>q#WGsbJmSh`SAF?NFdEWE;UC;Af{(a6Lt}$Gf+uY|q=Y3x9*YcMRme;x$ z68BwDstkjX9h>zdri5mJ2!uvgDnW2QT*(>#qAN|noY`#ZwCstcc>Ut?Z?+B0;L6I5>2=@@KA9qyAnmgL4hNZM=4DY-5f-!E0e$V)opVXS^%| z7g%~Wn_uZv{`$a@(f#ID-=!lgZh}61R4pk3+ngqNW`&z_VOI8?&8(cwg9I%s1;dhx z!at4`2ZGkPwezI0Ya7~h1R*TGii*~RzfUVbX`TkBo=AUTTO3ER0F$b^QI6~i%%n%^`JET&v({LT&P^Ft`j#I`K@4*s;nu73-x}_(ay?mN?AIe zZi>>t%W95tFtgG{h`chAy29-3_1EyM&s>8#!cK0?VjcM9bs-@sFLaa(x79{**EifP8XE=Bx z<9fr;UB$vY)E~R!Evrs9Zyp1#iVjSTA}hn?+t%#dM94wVp4zv%dR_13uvW>Z(1j*w z+{45lak~SKF!mrFw&dW4?*TfunzRCX%P~YlG6YqCI9_tRQ|@GpQu3>&CULD0yePR( zZ7%L|j?9&b{#-S-Tnwi9v;JkYS^j(81xtH-$|2kTls9-Ua{+_dd%uszw(;OJWWUI& z$g5yn^>kpxh4j*u?~M^JTleV547$%HdJUZ^UzhGt+pyoWpUu@*0VgEipz!;ms_} zH-?`kX{#Gd>JQD`^l4>sf_PBU`}`exk_k~Z*5Aj}yK_sT;`|}E%KheV7VaPTGCk+Ag&dqZiwop60<0d5{=DGd#d;6HJe&&bmDEQIuM?*yIVsE9 zdwZ_3yW5TSO!1mM7Lh&~sTeM5<7oXssGVe2=(Zzx#D_StzGqzKzaWemPZlv4n>Oq| zHSOCdcjKaIy}{fS2&O$)fXApA6}iB_-N{17z8B1lKyZZ_Xls}&@HFjjgfUY9@O7sD zP#k;WriAlyrpRdIcn;;PK}23lT1Q$l?@f+lsD3SQdT$Kh2{hro_~Ld3(PHxtv=ruE z{(L|1;nr5ASnj1*gQ-R;r0sEF=9ijrX1Gz6I?`4x81%VRp?Lfj=o=Eeo_&gOGDwFu zIfqW7VSn55c%8?GzK_#eX(F<~D)wp2dt0!&57W3IWSNT>g$*syODP7g=Jgq(m9=$y zXQwjkrr-dn;Z!%$>c7gnGWj;9w)TpNn}`FQ7?bW58E z--AR*jC1$&biDm6sXK02^*O|s?I~|I?5_RUCd;vZ?cE1rvHMt^xp+tJHs+9b)d2WIbqgHa(|`Jl3<#DkvjbQvgtp78t}+Yg7&A0BLli`uXK@lirK7`xikC z?!62(OG60Hvt9|SkPXTtT`h@w3OLRux2tE`ijjUdgx+ZVQ_D&zppSeN&xkLRzu|5? z@A@8z{ye$nEL|hm9a<=L@}aitIj=4K=lO_qADmWJt-=MniLGaPywQnCiH9?dR)%#y z>d)E*5b7Mfr?1Y;MJ;OH89o2JD>{GL02x&%J7=pQWpZpUdBo(LWm$`5vh2fB?syr= zFFFCql<@?~WT6xsxAa#j>EGJdY;QcxdPmfF3jLXFeD{WSOiJ^2OaMhuXslo->q>2j z1;R|rIF#i+HRkuFt1GU4oDFA9QstBS(;R%!(IT81pIA`cM~_JBwz0Jm3{k$?u0EMr zI?~41{bB{#%bW%3JmzJ2C~GJKnU58kp2*axpQC-~Vp!+}wT(KP+iaJn(|Y6`0c5l* zSRV*7X}N357V8_NUmOsXIC)0D>TdJJvzqr9Bii_nNfN{7te#r9J+-iQ-7u?&gcWS8 zj;LJLiNzM(`~f#4M&PNdT-HB#Troel_aWlAgG@u*A#|4^&D@C+J;g!_+Tu>d#de-p|Mf%@T!xq(@}7GA%q>JUYq>8TQD=SKI2kn zwji(JjbjW**b6wa}`t0THAKd4q?MBsWT_kOpbv7UW}g#=!5IWo3DmrN!FZTrbd&j{^_0+T+&M(p2@< zNg{X>HRUsrM4@tmE$;K_Z3Wz^NSy%|wp+y}qUcDcWT0bKEs5HwZFDG%2DW4V-1P#Ct4M0-91mQ7GYy$%0iQMU769``H{5 zT?mtgHwuX&2o?6xWRZsp!qH(q6_fY|#^0%MYbooHz?jY;5Rl&bh%O9~Lfi)_VdYi-`=_%2|?GeD~94Vga;RS6P6t>=5NPVesF>FD5a z1fZKAfz0abZNzDhlL3Mc8Z0%4FCRX?Hm%1Zn7SItu8?ADtcktduyJ(&gv z2Y<2KDnbUe@_Pg`lKX6eT3e-*Jc~+nE&i=dvDGgfes|S z#~EBPHrDDsU6W(bB44!ceV&lkuagdthRM+4!YK>4ZPlITy=P#=8tJ~DS zfhY-5!pLqmOtfq9VXP1%_`^d zG9-gPf&}zj^pSpaB{zMg{lhx$(sSn&a%LV)T&%Xf<}O|^cwVG7--m~@<4aqu82i*u zOXR~M(706xOIVl*7&LU8ihe}r{S~{#zvm}TTjtsxFSMfBuY}j+2smAMi@>_|?0I>c zD2^tk@Qu(PrhwENc^`2eq9)pSbcDo39VTWTb(chg`#k<+e+&M|mGM&36*+eE>{&f{s1ayP4rCdY;Dyc3%P z&qa?V&7^zs9Namt@a(=q$z#rTR_mT%LmUSI@ygw*!nVK~hY6TqaH8%{A$%z8@hcvP zTpp>BtG>F15zoYs8hud1QOix=-j*~pSM<1!^w%xlnl1cS|!NG_v)?+Ml8a;IR zp&Shb*b2<_O1BbjWl6QmFn}q`bQ_-H3=y*kLOz$aHvVtGcB{N^2pUzinuUom}!{%&|3l|24|H_<)!7a+(*n-fi5u zmUA-O_N-?NM-U`YUF5pXZKQa{DeQsbd*+i4vbiGceT0>qI@$`{`EI}BH<<0Ypq^_R zou|CnU!{>$`MKnW`Oi?7-r#lCz;7$2AMiPbxy70FKF$p~A*dJb@VL5tUbZuhhGpA} zJ_2Ey_mYz5Bdgb)Fb9-rO6vTO7jAZfYEtnX;-MH(zT3rs*JP(S7a`dkpS4 z?3{=cy#(dJvurNi*ka)FMF2@Hi5%M>MbE3Y?+$y&4;qQZ9E2&w# z;f-lu6btG|gXw@{k8y?s>4NJ|Bd~*pMw3;w*j$YziK+)(tjF)2K2K}%G=K4vPyqgS z?}9;-QI&Ycna=!SRfa=s3U|xB}(8#FBtb!r36T<4UGo$p^8N`uv*qJ27wGOqNqwr?M2$)%b zGHB`4DJ&FiU%y^~XiajAaYN9y6e3gp7HA28!2ILxTd?xg<|YD12D>(OB%EKn!mM+K znBu)odXN0n(io5?hKUW^s=fDSj0X|A5U|nYEcxpa9a@Zh$N_5|?5bre9;WKr@9mZt zF!i(d^JJ=9^4wn$E2U}J>XOO+s(n8h{5spnm;;oG?}sg0(6y?;vohq!H4;b%fNbn^ z?X~M;&}xFMQ+6I0VsHS%^MwWd?Pt%d0)Nq{9gg-7tonf(RVjFuW-+OAh4*1}=jBii z%FOn(L$es`ct_sA6VbNnDaRWA6dW942GjqDa?Epk-9D|2k? z*CK`bmS!mOOxwxAxLoOsA>ke(`n1OB`a&Cv6E>&O8T46LMn-<`Qbi+HFL%37!Z+hF zp57TK({$7>N<;jq%tuz?q9n)tff564?{m`r%iS}y2;5GNPZ&y!Pa-|f&Cx5u za$Z20fYu6=;o>+Wzi7H*(2qn(&I;2}t71?1ww*^EN$t5?{1stxEbDc}>;c^gW3gVF zcGkwICk#i!MUaxtp$^QPXlENqLQlotT zg@0O#TRZQ2qhy9ySAMqby_}`xPup5pr{s_dat^?YKJBuLcf6dZ_w$amB&r_7y%I>w zR8Jmg8&ej#UZpqc^x92I*(sIwy}r9!>v0OSgk+}p(L+#Zc&C%WA6=oU8!TP?vzItJc6CR<9@FuGa;d*9vNoxhmH zwm*t*2Ml0(Cs0hSzq!EbiR)t-16$A)5|g6hc}T&IPkFF;)wby_ivx1{SB^Y(X}NwK z`0Y=J+?>YC9XPyHk0&pMhetW>+DdpnE;AHWRaH%bMM);Hx}`4qWy>C&DU!6jdLICX zl>8rKa}%mDOgwn-C!7l4b;Lby9RFvkhdk>Sm_QoL*da6EUi-#OZ$>3-k&6K#!+`0z z_I_DE+UY$?>|N}Ua#U4oczlA=9F6L(|hZ_KrS7(46}nqtMMg!)+4S-ne-U;Sc+;SwrKUziO` zT}2#4an9mhaG~nmDME^jD+M<7a=6$h>7SK415$h0Smf|he&2~@uZRyn9(P(}zB^cF zFR>YycR8K1*PHv2PJbwMOP)&Vdm$qazV@^?e;*(kQ7j7-@*y0|8Ersbj5ITFE*HaN zja<102D&1+*pGLF8i>*NlZ=nTFZvqfbzL(QQx*++l$h$wVR8(4IO-7*^Kieb>zbz3 zoL0!6pTuZq`G}&0K(Ky}vhprJx?bYT7P5_XNLMz)EF4{Y9qKVQQvX2BxZr|(&E6Gh zkt{TOWeg3#GZE-U2I4&j`s4h#x5OGrFn;_wR)4(iVJ~w&if;trFNQ+pw}a@%1Yh znfEyFN(HInsvE|1fI0udBEnMj}Ar-QWk#62U2&PIVJ(wuO@ACGLQ;}E7Ln zo_)rOdpUf6BbkkGR}WmE>8Gst!BTY9yZEPRfMDSUXGSa4KQ1S)k^pFwUXrE1nE)=OH%+rKIl`?r9NJ>x zSKH!PMb=6ltV>7Zh;`OA6_yS*0Z>}P4#Gm>!hchRyNkYa>_J7PtsBBHGf>>mY_nE&$DN52;!Q`^dvN?qf}jUu*gKy z3qfN=pgs~Spj8?fu6uA+ZF3U;Oueb~cCsreb-Ez8!UkU$! zXkWF3P%>##CB@E0eR=z|fN`a?Y(sM{VIz$c=fn3+NN*-UgXgsoZ&?P3Hc39X$j3NN z&X*SJGa4yEyP7RQ@vKC&Nlw;$Lgx5UX01T~GNshryp5^>)F*5ob9dKSyyk(hUZmm} zhcCK#&A}r(;fT>DCF1Ft=S@DN!N{e+!gPEM1IL+u#jbZ=?g>|XUb|D*&9vR)9;ss- ztGk?0$)NQ?!zO35m@G=}tuqy6XW0oM?N(o^em=_1z0$W;+|&p1g8ofV$wS~efT!Mo z#~|Z%KA4NcT?NHBz>r{+Sz(?Um(!ae2Rh-D{=9^dk&(8}&SP-81<5+pm?Wi6_I~0_ z0571Y_G`BwYBNtP0Bezj(2K*@Bh2D;U+45Zcv7^ksrhQ)h5%)R6^p`? zfuhKpr^C-*eNMN;oMrZeO04vIdLMNhvs9Gpx=^IIbFRgNOR%N>*#qR$@O!+Lj!}Gf zRdD?4A52y6##%L>2xX4AYDV2CxKkWZynfAr!=&&7Pe+5MJgTTIw1_`Wf7&-@F^a!I zXaOnoF^$3UO}o*|Tf9CF(dZkCS$u+}sA35JHQfC{%$2j>`x>|h%P=@_37dY&{_qH& z8bF&yI`Ns+#&@n156JoXm%Lw=?`CghzJ0We6uezGQ~gkQtnRv%WnfW79uC);^ZM4O zrLDD3)O=kBl2Fu-8&hAu){-b1?`7|BMBexLjeuI44t#hVx-`CJl9;rlh`AFS-Vu{h zcuqD-xi9xM*u-UheqvOF^_h2n=ym$(GNtcxF(nX8v$;VlvlYw)gO0gq|cB6_p&* zodSgP+lbX9eg%bMwf(oeXE|H99J&gG0)NGEU6|F4OcUg6io_EUNu;LNb7q zB_48)&oF}qCLiFBABZd$o3N$QT=TUVrTE!%QX|w$AZ2IHbp*oNT6i$-=*m!3#al` z{HuTcUiHwRv9(9{aw$3qolNOc7);pxe$g-@%c2z%alx|Hh6nJE#-w ziV$3v&3oA3Q~~f{Z_qmUPyjXJW+2ylM_IPjzu%xKZ7%NU=0;cF(ip{01Hv(eLC9i& z=CJ}3-v!t+_*pR@VG?~9m0zRNQMme|s2fKFAPo;UAbNElmiz4S`a3`C1h+pyF}J4n zckBAhi~3ezhS3i5{Nk=0UQ)WZrvOF>5YL=1eyRZ6H(V6Bo-A?zAS5=`0K{=AH z0sLagEgsK$>dEaKs;~Avbs&PdzyI6eFQAtFAG(_Lp|waRRQ&pd{C4$f_GO$-saZQf zI_hw(a1Q#k(ETQAscIoml${ew=cePeV_>E}B7{cOvQZ?@MV(NHuU zE!Tc$C_+2ESxDb;{`%0u7D|8w1d;RLND6IFk1(Ue_I14)K*AF={p8Hq{j5t}iQBE5b^s-#^gx6l>tX_Hc7C!fo2rW|8i6^ehd zv83~&tn6RY1YWJb!Ja|q7hyJ+T%04L|8sQ8cU1W-CNjS0BCAyXePE>qyv4ZwYe)+~ zt^Kc$=zm_#oR0ioodsEI@qb5i{)gH9?^m~eLKFG||26D1T}qSx y^FpILFVXxjm-s&}lC~&A`M<7_>;Ly657o-wmG|YhUi^-LVW4BIU8QLs{(k^pIkCY2 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..72a34d9d5695cedfb6d1bf44c52ab946ff7137b1 GIT binary patch literal 85470 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 IrTg&z0wSK@mjD0& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..7b4e413636e41ffb53d604e6273fb1fb503f7471 GIT binary patch literal 116221 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

RLx7idxH`X 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�}F=pz4u&(Exu9z5a!0WZ-!%bIX%-) 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

FV8HM>i;5Z2n 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�qpTn}*ZT6cFiqtJz zXvw!vKg_QBqVtN)^Z*mgU8yE z;=-@m88HVdXM$PP{HI%b_Zy?P;l)!Xde5IWO%CR_^%~tb!iw5`gm^#uKego*a>mEm zD=SmIwtJ2PJvOyhKDpZE@#trioA6SPI(m}YhT7L(-$S|wm_Ra)bnJv8m)?Yli;M5~ z?_$7eP{(G7BuurJ`tI)J_l_cFx{ta^_LaOj*RFA!xL60-kO?>qh4HE`j2$etFyb?N8g(9 z1j%)^=YbtmPnY(;dmJZtbFs#2?dDF~?#}JIyyts2Mtaq6L^q``TJPs6Dza=7_#mM9 ztF`O9rFC&dU*ARa32i5h-1QmotF-m?&XSYlefp$?px3V!&6$5`(swX2G7?f!Caxxa z!Nd2adcVYN__4;uLLV|Kix$oY>9m(y; z5Zf8^!JwUlPNEJNdAyiM)6bRocb{k_GmHIfGc~X4-7HV?oIbvmUbcP+ z+ClEq$2~)rmTriMaFYegDkwd)Y4hGT-`-CAzg&R!`vN=5MUsXVuCalXH0QbM%d*=0 z9o>W+3HZqyR70$+Z>gxL4@og{3qGw6dbkJZppaKTvt7Y`Wzvw}4h2vDes;v)k+`vc z#)K-^c2fNZ&wO=2$6bsJP_(+t_$D_^se>wzX99~ zrjfjk#YCaJ?ZE&Uz&J-V^I|$;Zu!Yok4+TTx33)_PkY(=@&sBMZT(yQ9Z97>wsbzM z?O*Mtv;1hY!GTz?r@p?SxvQ&gZtieeZLRxsXldQpm{3#M67ejZu!_1AJ%F(jCx&=2 z=#i77yh-!3K&=fW#a(;lOPZ7Kw1RYp+K#GEt(^oei~RH|x8TyLVKU-mjSC&6nUQ#W zgmKI8L-prLKfTs>OP|!9kOK)ZSeY|ORf$)Erxq|51;ursTehouPB|WvCJ45WcHT!9 zRfuh2)=R_HXRNM5EmD;zzznLaWk2PFf?YW$>Jv(4Vj5iIP@197|{P{UEj?CXT zjGHqXBWRbo(xR`kiK63^40k>6c&~;e?qQ?~N*hX6I}Bi9b(kIp3=?!Ecc630Zu=QyPf3*&ox&&?D!IAApmFn-?KNN1 zt1=STiswg)FaUbpe7M~3aCoi!a5XU`k%XN}LxzW;CVz5w*{Sr3kB1Al$eHaA z1i%N-i*jq8eE6h-N#NzF?6$hEk99J?8woIx9RS!9aK!PYVpSn&LSkZF$b;KxyU$&S zc!6n1R%*VUWH$>HF)u2t%E~k9e~DXsucWY^yMDcdY*AN zD2Rub*YSET3r2GorHP0ZjZaKqsKgRpi|IM&UH*xQ68PM;3JPb=o_VcSyxYfhc;AHx z;<$##G9WrA_Me*Ym%X)e^6Vk9ub;4}qur#= zKV%%gSBmuSQP(d{)f$kxo+MexNS(;=62Ryt&TAuT)^==89Rm%QwdBqBY}_Ryy1)ie z?;=T#P17)v2V4{pP%(P!^YNn*<4B(4Lq`hYr?^dSP|Ow$Q#_M<eRvx@V~V`{-i7EcfgY*?N;No8#6q?EeB% z(iBm_C zHPaQ86#Fz*?`djk9XV*tabeF5&6o4&B5~Ffg=l5do7J?R*I+cO*DWs7_P5Bz{*qn6 zz=tN{$2s~#U|yafuf2K98|Y^4zClcJj1~9`ZXHP2XsnGNltC9T8A|LB0b1ojv zUG$8sm)rkVg9-UH-s(y@NG=)dV#dk>?&&#ixL)_&Ncerz891Yk_@S|CW;%snReI{!BO zM-pl?Z$u$pvJI%;9#n%O$NPiq1{+lrx@ewvU|(1CBt%lEssPU+m8>4!hZ zAA0YBqI+CJp=MwG6Di7c>Hg&nZ5^HJ@rQT5)P%o`&f(f4N;}W?lDNximGjSYw)&>q zp-MJxV#w~qM;8ID1BD_=(7z^h;%!F85N7X;hYx?(5hr3Ax$AXtpwT4PP#^{}-C(K? z5xdmS_*Jy&HAOt#l%p>UHDvtpYwqywijQebOhRf_X~4^&yR;$BK+?u%#w&*HYzKzS zvC@rck%48X_%&5)hFS%N239Bw<$e96RNSEGszV$Yh*15vh*rWCP}?`_-M^F_I=7|c z%WW3RtsbFWebtuda{VNjKEq?V;SU}4WSO*{M}(>1t&hjt!b`)!MWFaAS~N5~@~i6~ z$)lRVs=;{}H2^3cT?@FL+tRE?npgWohWYA+a1HHfRYa2OEiJeNDagLaPmOeh>D&G< zv-jMM9$$ag#3LqB*INJIvET-f78cf<#8njL8?N$!Tt$R)5%+-|VFj4{i?BpRE0vW( zq1>;ZWH8$7_m|6V!Ev}46GSyQfKug-t!==~cSog|na-czn=gym`8kQ6XDaWiz^K(< zY_obIE|EBtlA`^r>l>qD1bKM#4^)$Ds|?~bG4`Xkbah^T&3Sa-De%+QlLwr8SC|>e z&gh!^q-mVziBp;!FV#_2I#BStW5{)ES!89pql)g!?Afv7zyI}=cY?!_mlxNVWp$zM zXLL+rYFdE*K!WOU?niQV8F8M|mV6v! z2bjZtxO#((E2FO>0A-4>F!e?~f4UnfXU>KtM1+`3yOFIo{Le6nZOBgX8L{)i{8RNG z!w^mWqyxW-{{m#5sZgf>o_SahlNfWh{EjJ5l3ATyOCKqQ^o5M(K3xaiOP8c=)%TVg zJ_l?KjEFVdR@`II6_ZeP^}P@tC@&}b-cO1?C_EuT%2Z1*Gm{R506FP`zt517QogI0X-S zxmKon0(xhSEnNLTr?k^x9&Kzx9l`qcEjTcf19e234F;hZ84tk?LjzK;*mf^PH zmQiqx&@KMf2+!_NbVy)hn9w*IUieUR*~_3mp{!H9r7*8N>Jx3>i4H~Dm@hBS9@AM! zH@`1x|6$L)^=0()b%y5SXdB$%y*mv z)9doZZ|!T98$Dnx4j2RmHCynTU9vdyLfa`Ld#9~emNgtRp7Lic3MQ^1r}AQ6yx#Yl z?>Fc#CRSEq5fLYWSw9aWo1DS?{W7wA?{)$=1+kym?AU8e%1{=4f1kR<@7$bJL{WV>2j=#x=l+Xaqvm2>Dsh5l~MOxovnM;sQLln>_l0hq@rj?4k%ZKMcvLm&wTQ0CEiyaUmi{!ALiEAuhWoHsEQPE0aqfG zBE_t#qHpeSOw71o_kRB)biv9E@ntp;T$J|I=So)dk1}vc7(AzvS2!`0Of+)`ls4@) zk>$OX`(|mqc8~8WZCA-^v}ibQg%PE7>y|iQdPlF6Jvpl43YVD_uLYVA3T+(pDU!IzFA1+mhe?fGct2N@b2f;JD&9O z0yONk=_e>p{%Y^4%aim7FuW)~Ju-27;?VhpB+7Y(VXYv>Flfum+X$&`J!VX98^>&z ziKo1Lt@6O`?Csvj|gtUTDel*B7pud0`avkN=@K3?4w)vgdtidj?z8ZiXh+hl8oAfcUIZmNHdDe49 zmySO4DW*psd0Wh_%=bS@uU5Ktt;!^ia1OzrK{1923g(lb0;=oiLSRHVyLf{YL$R&3 zbKFK?6a4ET^tK^!PuMK;b?{SwVPIZnn5P4M0evk{7swTC+GFBl2f$I`6Be#QWGf8R zn(#i%c2g1OSwpM$^6ocMg@7YpyY)8?9lAKSoRZ4Q5}}x@T@TG9o4H?Peoy86L%$%* zdzTyb*{O0XD|3Pz$jT=kjGK%~;((O@N$Hako@JI~VY`RxSy_&d)I3#j!VYL{twM@v z3ZIBbwWP;p(MxN#RLtTbv!DMy=LYeD{rU4;eM=ojx3=;HZAJ7rIJkb}k_*wkWt5CM zP}9&NWaKCjb132&?g{#qtG?^Gv}UvF2c%vVy0RSd>6bP-R7q=&jULH9!uSfxByl!u zOY?%Vq|X)Zy}wb%zI%qJnJnAoN8o-MnL zuY*0|uu7yPiEa`iOvX3@n8DFBPK@pkp+Td0?Se$8vghp|K^L= zo}?zZJ5pT29k8C3?7N{jtn)$X z3de@#g^JNtK9DiK{Q{HedS&PRtr@R%UhFeT`TsfY3b2X5I_m2q%@cgz2`+P!YNA_= z^emk*K-tory||?3Iexr(`<5IX%+KuNY8>u`P~u z^|PZ48RbE&t*Br@s|jXGTK5f)hOvOJLi-Q86y&;$Qp(pUFmj)B+fIC=#`ZqzLmvPw zS`qjEzWf9SIVG#q`G{-55 z)o%Mo#qk_>?S$RVz0=nJX*$I~RXM!E7$N_4ac2L^$Wu&YXWC*1E}(nEKnon&zGc_k z&OrbQ$<~H@_5^E659bFJFfxAAah2n(sCWbP@o-uigPF@_VA~oQeNe+GJ`7HlmXB4^ z@8t20k53yUZC3mwv)bt6WXxc1l?@L=;cRN={BmSOlQ0TL_wIf9`NFYO&^7`q=)D@Q ztEX4h(|wt)8eAd3g~?&+mp$wQo86Zs{Zx5g2@J?Du1={I@DG-!7edD!^mA zzOfPA&vW^+Q(dJ8i^S>u6EtRe3WC9q?LU5ijh&N~soY!X6h%Batz)CX*B|5dlw;Ej zcs5|zb>z8;k`(FP7iV8c+6OGkLXkXF;voZpkq<0GRn=M&oeGN1m6;x?Kh>xX>AF5! z3tn&G(=B`$gSoY?3MJB6LgyC^y_?>(Css?xixOup9KL(+p3#>Yv^!5a?m}#WD5|p| zBJ}2ijLUhNL}PWPS^r`G4RRc>Q}YwF^xeXzrs~_xN4Xo%b+u3FTL)_u<^b|wWj$wG zpo{TVJrGXtj=<<4tP|`vTK`Q_lmI64MIN5ozF!wX$Lg=+ayQ(v5hBosT-`R0_(``}ZHm z#s+Ku{ho%M)sBuBNLkvZrPHK$xc|9xSxTS2ySs$2Qqa~*v#)}~ z*L0GdQMZkxc9@r>t28vZU%fFYd$g~gWzU+sCwMFEUz{jiTskUiZWrwKhzdK8u@N1I zNsMOR$B&ASD;g8^I?r=*-8H+r^w!D*V17{kOM?gGI{|7mB6dFk6z(O&3^lAd(#oU zgm>q(eyHQ#v8iI2)#0C$gH(e-_t`ihWkD8t&QUcsHrB+^YUjgg!N@4R>r?1K7Zx-o zxCF35LMkf8_T#pfUZ&>!HxDNs(0?$<>2Vz;RZO)LzelrI>8;Rbs}31CQ_5w^IOq9c zt$EjN&^ZL!ZWswvF$-eH^Wb_xw6biZmZpO0wX@(geRxP4)+>fRAgw2uxP@%Hp}

+_ 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%0Dv-<~r{=xxbwKz)qUq2-B@D?UCFRT6>1jidnk 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

330@QCals{;4}{HK<2Fe0(q7pAX1fAT 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 z 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8d54fca08f027b046f2772513ca3a1112e59252e GIT binary patch literal 117638 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

4Y@#|SadCC@EN@CYBs(ZEkEM6Qr9zoo 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..3aa9f26381d54e0d866a55a91c916c696d98a61a GIT binary patch literal 90928 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 {uyf}KMt`2a~ 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

-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

hiqL^>Qz>oa1{9iN?)$mh=RsfUupl8-t+$ zE_gMf-5Nb!^6b5wtu^A^P80r}G9+8G9hi^?Vuu0LmiBv(dKC=s0a5%j5IZ0E*3(Q^fmz%3VItQ%C4-R;s!PI%AJ1yD2#DIxd z49wc<^m4!Ug>xS-9BqFjA(wpBdn?(Da&3CsMJ}^7<0N&jwWZAX=R>R89ln zR@Y$F3_PBv|Jp`FFM)upjh{ca!k5|#ci+vynQHbUPJ01=-^4o1*JIZO@ysE^MKXk5 z#?@WG9U)BsxmcqDOQ8D5mx0((*zn#T#;Apb@0VZ-cKq^X4(M+O_}2b}-W*jmq1p-D z04s1D=gvX9p75f8{T2+!9d=9D1oM7A9Nq0SS$9#?FWJj)x_qdu@zGOZGb;3FFTm|L zHa2D~B9l%($9gLPp(AsCtA{^-;0J;;UHTbS^Xb#^GtA(;36FDBo+IyLU$2*}{PjQSv3D0g0or*j>`m)#B4&zeiA( z8;h|%U3ST-?>R?Q@A3Q%1UJprui=oU!S%6JpA$}E=OFH5_Q*)|Dgk|}>gxNJ)VfsR zkpN5>!|(LRa^HUh7@{gnYaZ@H|Nd8GW3svwN4VQ#ucAIqG8FN4j~u*aqp(d~Xi{|o z|312}&Q2)`49p{AzZmHIl<#x+Ax8D0s2S3GX{i!ybGz((OG3L%&&XXpywC=r$J{!y zQ?{M}5>lIIz<_VB>#{mZ%fR&wSqd`i4_lIHhJdZT|Jc0{mGf;<&< zAa!UN$hXyZ4hgcpo?7gXyK8xt`I}lC>-t}%YhLC}k1W{bqKLlsZh|_|I4FF*O32pQ zA8rFyl4+1ef$?UWMW*R>DQi1xm=aPGJ(I4k?hndRNB0{3YUy((O+X0lc5MN%0Sw-0 zQDzav^QL8N2S7YoBkS~CdRgV&IL%7+|Xl%6`&bM zN4u33=aN4In~j&JI-ZJoNX%GeX(cYrg=;FPpQ7FKS%A6QDUI%9er#sV$O~>ekX@Lh zG3$cXBf|O~?bk+n7+@_eOuErWvTN$=@r~2G@4eq;X9)rxt9%Xk1~cGS3s9>!9hhS# zXagc65)~Hm6||J-?QqA$W5gg-9_Z*X87YGP1s_13V%?(n_-n}QmL~~jq6vPCxuW5i zvbQmX>t&eALU~1zU@RDR`wCG!dH*Y(L^H80x3bHd^o`os{rh_6@Ozi8_mu-OzSV0# zjB?mGjx0y)O5Cj*{ZX>~%L3CBWKUTaYaTY!(Sb_Cwk{PS538RS9mC$zh!l!2e!&Mv zZc1%t6`~^DWPq0=Pwizh3~7Rd1<9`H|iJT^4SsjgSzyh?M4U`Kp5<^-gP@PyYWVkpPkhTj9}LTobb zE-$|-O6Q@@BVV=`)NO9=V+8II+vXIws-+wU*8N+Q4#hQ!FK3~70a6me>Kd3BCKKrC zgV-`!+^@W}y3HB*!y!5xdcB*n*tF=hI=Nhb$S7w+Y6CGCkRG3~DHkUT?Em`>5D@E! zPW(@M6%2QIJv+uen%+!LO@)KwR`+ek^e{Pmy-~fx?rY9Qiqy8Frs*^km^kp!83Oj$ zZTUGq30lsy<8hd^x?HZEuQkfe%>2TDO99PecE=L(hTuzl-Lg4Te}Op&N&b!n-Y>&O z{OQNLGQK-Q1w#{k?Z?d{F&eR6BpV{bA|=j?h(38@Xm5tYh}wW^i3zs|dShH}#E#f_ zdZ`9z0l>vYziSU-t|6#jOub$2u5iA0oy4};Rfsg;xkJ2V;E}CJZ#p5H1Dl2}lemts zu~P&F6u69H>GeWGyNAI zqRayo&wVfL_aJ;QGo#L7^RJoQCYfji;v1JV4*4A_BDa;6+wB%KO)VJc0EfWLuXA$2 z`3af-K!R7I{C=fvMK zHxg^wkkWpGVv;D~_(K7mAplYF+&TN=c_PXRU=Lw6N$_TIvYw63+7#zb{`A@LXqsD) z^pH1AKCQj<A+;esLh; z*}pg&Xv8SS#>Rkh@BxO2vM<~iTCEDH7+3??isHhC=^mt3Sx|y8pWFp5^w%$YxU}Ho z;QlAnimjs;ajOtP2Wa&{5n!xIKp%*!@1KpuP*SLDVs7p=t>IMq+!k0!fGRe$r8ci z?8^?Af!Ut@@83QtXZiw4H#V)L$5gZr#OSjd6VPRXb zME*_5V*M<=q{ux=(-l0c!U7oy>p$b;(OvjI@K55(7q51z?Nv&NxYD2>Mwy`iIEiw6 znvr2E{sgd)_`l&_^QUjIq#BE4s38faPgggSG^r1IUcgLTwd=d>UpRvKP_Ic{VKbwk zPlkCpbi2PHp>6Z@e8vxB9Wt&XJZJEs;)u4m~Z#1w3Rsv2LFgJJYz}>kV zvU$oxaE@nA3W?QOz~V^b@#;-!wnxRZFTupFe-JT>TxROoi`u*+D?vxck!I<5KttFIPry??je;ltA-iKV*TH;n7aVo&z5=ZSIa z%6X>Za~HSYW+$OS=O?T`JV&|J^VSLPDWV7UJR7*1C@MjTJc{GA`6PKDO7b3>YhR4( zxSFjf=6D{YnpLk8j%23tG3^u~HOl)@)*hW3wyeK7!Xq%!qw8j=Jm(aovOHFIxVh2f z9-CeB{kFW7iIU*z!1D%XbViCtB?mJ}qB^AhQs>7G(Rg-U%PEKSc3Ky zO?^1tT0KVlql(>dZkX=Q;~49nu{y(?`T1chE~9ZVPPOEcTPL3j&|5rF%ppgQKWpq$ z-Oa7aqj%SJjmG0m_VT8t-7Wp4D&-;B<$_v|viFHp?F@L5n^2tIe}2uN)M1bu9*=hf zSQ4=XfyZOc_1sn-kI$6OWyHhMdWe@~8qj`lV8T>RMfhbb`v${Cy63r`vGh+zsMod7 zZ#R^Q$7#vgJE<5CAN9sJb+Wxwqx=vz zr)-eiw6kTw>e%@lQHIIxV4v+4NqRr%1 zEBELrvKUS5+&H_c_FRa3?hvVuqv~70JE64bn$8D0#C`fdiYQ0L*CRwCzKtddxZiO- zfBzZPQbzLikj&?Mi{>hrU5!aT4$sLWc_P2$&h8JH=_Gk7^~9~p40;CUd}X7%=i(Jc zB}ZBeSrq4gvhq%yJl_}@=6go-|E?4=KuI4(nKbSqz z-4+oQq@+tJMi!1}L%XzcZ&=^)!ScZ28Ja9sAtS zE|Mt(uOpHVBxGwO8-FJVrQLmGlh8!hOfwdCT6gy)5jN`WB;J>#+1C5(O+j1_+k7pZ z$z6>dp?=tRj0EIS3E7)17yow-Y#3!zkwdXqR2b!ouskF^JOam)fSEb z4ps9xvP$Bm2!bDRRM`(~5G~x1EAi~FQv5Q%ROWM$XmY$tOHH(>ND*9Yd15q*!SWji zDZJwA=`E^`Kc`TBu5UV5{dw_WGcDy@V>nj(wus6EEpQ zBc?^(q-8lR%hS(AxdzE%Smk^YV`ijjDA6pAJ|sU=pOY z_FHVG9gg{nIPd&i7vZl{%6td^+t)8l8h!YgNMCE7Bz*=@~Sigwsf6t>OnZEYXr$a5)03*EL{>2J8cNTA_fvH7?OIC)dSuV3gEuYL@CITfYG z3%R^R)Z}Z1KXWqM=IVmW{Zt|;t5TM_-9ds6u)@Py4k60Jh}25T%aa^%?-nJmCN*qJ zl#6xbftubu>Qm%A338KGSH4b%W$Qa&&`S1<1I( zI@zY;ym-PI&lxIv7gvn~<8l$$AjJ2OD9amWfmF{N4Y$!6jpCyjV$Yx}By7!0O;=O00QReI&DbWW80KXBET% z*%SArKV-@2%ulEttfI_zJkE1PKWFyyTX~*aEsX8CgSN|@)(5o7zg6f(b1lY0UpV}F zwc}v7_-LrjF*g$9G~zxKeu77eedPM3B1WRk-jEPBYK)8it}6eQ z4b!95JhMZzYg7oGZ=CEIEgWPp9~>a8;`~h3o^=>|@4#k8JJj=4lCf^LA^kzmD+R+a z2u2gL2l<=GJ*6UWN-HWZCSbZh-fJsj<`&DhIiZn%q^lz=C>`}XOZ5E8sAfDrohrN1 zcXdB>k=x;tasrWRKh>iMF9<*eUY7Y!;)j&KVCrd@U{WrsC!zYdOx8&^FDq*G(G2jStQ3 z%wL!C4!#TXqOB5rp^}|vy}V;&m7Oz{;peJNYYWHnW5okD_n0d|Jb(Y@Lw)t^@5e>?~{3b z=AcpjA9HUWPi6c6i)zw9N-AUuMN-BhVri0!(kNw~D>6?R8%#wc2_cc8B9eK|Or|7L zrp#oXhqZ9tx4yr<_xbDWz0cXN*YU^m^z^W-b>G*0U7yeU^B$bZHqNLlI~x%>fIJN% zcqNGBD4A$xCbiJxNA)VeUn`|~z9B7F7KFX12cME0#a8Fsq zdZ8tPOn95~bfw-{sTOPUS;K=LIc#G;J%ecB#Gn%}{_-F8e0+sv6%~XGtEaa=2|6Fi z-z`K#0k|l8rZ0FO&%PG{VH{hw49wj((qz8>0B7mCs>$%fb&uDSj2!V@E4}C_``2Ad zN-6T4>+gHC9i(!%kXG?ud%Wi zUKHd9X@jVcj)VsOxPX}>lwVt2h zg$T;Pu<>l0zNOOck9Y50>8Js+2$CkWD@NAG;Tk~&q9ZVT@W2Bqjt*F4EBjIx{hmB` za;=Txwnv%|2^EbUl!PES*n=$w&okg`lYbCQyh@(%VGkROq$$ zp3tV-&TEo_O5EIj>`jRH`ZB#q`A_AEiAqv+K*WIqZea;L-E|L^Y8GG8+%!7$ECL5c zVZ+ey@IGNu?ilIgL1L)V=Z|g#4x3K-XfHHEX*yHI6GKd%2wp;wUkq>2~zy`Mo6Co_1$Wu|;X+IO*opjis7eOh?_uNHckt zcQHWi10{v!w;7^q_)niJ;0u>*2HN!teHxB_ykQP6^A=<99de$nB0L4Bdvujt_|A zTtRn{h8maki=kJ}!D(`>U}MdJ2$|A5r6THnW^COVf771-+IjRRc1^~^m$kB;1Nd$A zQ*L9Hw3nx(;IS)>sd~N_H|}BM?*G78zSZ7zJc^;G915Cm$r6D=n79q#1PAXl2=SFG zOC2i}z@`>{H|Dz4-`k)$@6idivbToJ94kVKq>!^%nbE87G*h9`HDQ-QxDhAY3R6jB zND#TMg=5ZP8$5RlBisCJ$X)6!j!$YTy=aH&Hl9#E?^&g<(-nC>JYOFiOu8&K*((Hn z5i34i#NV*WuYiS!4xTt;WbT;;&r)^J9(K zVN1gX4rb$j>PcJ8p0h~Y+nG0CEEqp~mneV>2zX-VUfAj{{`cEmU$C#zF#acg`#*eX z^)slZ{j2I%|HEVG^}nmJ`svKtUjC~-|KEMo|D|6>dqqtxG=Ij^_`kRSsD5Tu*lDRT z{*8%==|31!?>aO(8l98FcH>6E?8kp^+t8!;Uf4qv6C|8*!-9vms)#uitOvd%aL4($ z&2SG^KOrj8s>o3ngpkYNSDCLuFlp&=&D@18V8FL!1w@ye9nBdd?UV(p!}1bFAxcVT z;kN)WC@{>vdtp~)V*U=9WvT+$!hIr^hfBKV>X@w2qtKmh;xB)KX~d_4)AjA`PWfa) zQw1aKu{3}<*T6g;?CbNCXyd`T4v8N)!)y__Y`}Y2r)ZFP%U9LjOiLSHbhNU z!?_$>unq5`GJ@0)X}man7myFZ6VV{3Znq<*CDOPAPhm7S~ka& zvu%X|$Ky@FfPyer;BS+=qD2pJT)581Pv60&KhT!u^DFrXVC90f>oA=lWC!J$Lw61D z>&?BD2C6QKuvYwEkEc(=k}a_YDsAgf?L=>j12i z!Nbt|07Ox~;Llim>fD*PP-U`ED??eTCmki8MOD2%gSQX* znqwVzVClWXn*;l@3?{!ITw>aVaepWq8>MqD4-?z=a1eyxo1wl`$dL}^Hi&kVsT!xV z26AxKerVI-#FA8uZC5~pRjLei-JLr|J-9a6vmGl{!x9!yiVe4<`M?m3n507=RNPhWWYh%rC zeuc;%tO9qGy~qvOFU*ur8VVhS12mV{o^CLlz zlaQdgcdU@;;lQu-S-a1R84M;@taBndRUNK7c!ED35bU>6l*+#ezZANgN|VTOomlQF zK9ZJ9nCT%{;1UA+WXW?=1;}cLC1qV}Yvnb>YA+zdu+)C$2G{!tCL~`e!mE`4+V$iE zu3Wj5k7NNRNI;zK}Y}M*dittuTfL`W)B{L>hF9fC!1|^ z)am@$A`-)WOWdg8)&#hkcfCIs*JN)DJsj2ye9_54ytn2A^ugPt#;JZZ>vX-87w9xh zYeR9<8w=Y@Jj6sqb#2%ZtxxG`jKe-3KK#o6HOOFVn1cKYO`OOo;D$Oc)P*T$>TXW! zcwjK^fY~)t7fr`<<_N1*n3*=ETJejwIZVYkfziRwoubGQkE}dn@?s<25#A)h(s=l2 z9TCGt5XVZaHmxJN~;5wl}Mz5(VZADm?U?^&8O4u&` z8jA0p9T*r-^hVNfcAl+p$4ck6j7~QejkX& z^USL!5hhQV>GL|T*n=P*1OrAw7DRE`tZG)gi%M#O+!0#8%~fOR@6B5&=KEJ1#-vew z6Q=oi|58h7d9^US4ouVuTImZ;PE8h?`E7U$R&}5$^gW)cF}PtY0Err5OB*A2n#7B% z*J|7SJn+!rt-!@IXL2qKQaNq~cKs@mNqkjCecV&`}`~UiZ%` zsX~T*3dDGR*^OlY1nT~y(?g6-cb-1;DjJ&VoUkpcs)|bg;1SrQ{CDW@_{Oy;P~Ro3 zG0auX@TPSBlXEKMFj+tuC+p@8-?cBMOxclo|*7r9=A*I`=|OkKy3EDMy53>?e^(tgXNe-n z*+VR$kvzW`~S6JICfddh`%lk1-b72_N5-k;>S0Q0x9Tl)?k z{Cmyuy^-W@DG&p`U>heCqS#T0s~3@--Qsv~8wXDp_j`^%9i8P1jH)NhFKnUO?HN^Z zTKr-8uLq>O4x$2J+Tt2~3?>|t9dm7R3*o1U_|*Un2VV}#fE+%_)vMQn%oln~y|uU` zCEw(1*btMQiaF#md6|6NC(S`3A)6xNvpj6T+x|r7njVA;w{jgMY+B7Wg2jQGRPLsu z^}V#&NQ_H0-t;0BJ)K;@Tdq+!`@E3}^L>BT3?A550Y-GmdOoZk+}^R&K6fDDgC_E< zv&q%RBj<+XP>IY*k5fT2-s3dSnNan%O3-PcLLg;v$q6IiH&dEs@&-E>0Nzty|Edn?m=2HC)Jj4^KgQ z>G%DN8VZIMqIu*I6KIvY?6*npq$`h{lUE!oOB@tS;SD<$}+0`(sRbs zCjlarT@?)FBR<4_j-vbsXHa6t@mVZH3nLK_^L5)>#fhcka7t(DKa&VFX z(G!B6tI5tXZdzEN7e~MQhuxF)!;o{!+^F8Kfm&J?66;Fhm5nhtgEhZVp++)nh~IDf zatf@es~Rd5cvznL`1G6V?Y|-CZP{F+D~9ss{P~Lng;v^r_OjE!_8%Gh#-N)h1D})m zsNE5ztkBB`&JeakS=Pu1D;$rDW2hd31sg=2wptB`tjC(Ga08pB5^F_Q7#$aCBpGVx)D0gf((TaixRP#ArG=J3eMaaujy1M)DQFiTe1uFx^ zqyvmE78*cnwsG!eK?v2#nsr25Ydh)VyibzHEvQDOqpr82|3Crr$+IPUH|6$o@jW7iPGAk&$njoTR+8}*nR!K)OD^`CZHVuGy0rp=7kadB3w z>;)%Q12%OJuV)3LrsGKn=S6j`YF@sdNN~lGr>&!HDiKOW>0-?L124O7?}Uy^MyiK8 za_8EO4YS}uZ`;%9&V1y~c9iTJz6k~4T+E&>pplZkzXu4O6lG}){zMs;KljZt?wV*D zb8ttjFp?~u*5BJNBJxu6faOnjW6$COf^8`3ymA~cwbcBN)A;1j+Xie5z$S=Q!X%_g z)gNL(x6N_vq;|Kq1pW-6Xz1Ktk(Wh23J-`odK1Js4uC#HPRy@gM{>!3<}!c5^&@@o zwTkU%^I$fmOWv!poRj}J3l!V9*dR7$lMLu;YlR(VQWIQnvIdbChZLNxC4s)Tu7p<4 z{TQ^|!N`GF4x)>cnhD4ockftwi?#S8K_hSc17Nj4fvwlc(}R!&L9I^D!NKwN(oP)K zs;a8}IpVa`v`mmw6CpsV59;fs$iqpMw#yG-ooU;%v18+2PGRBJm?B*f-@sQcOHJpz z&HBCigYskw5p!fa9`0_dGphR4!kp>IogaLpj|T4DV?khwg=}W9wdp(+pWd})i}jfP zWqlry@d<{sZL2Y|yj}Q3UZ&5_v&Y{inTWSrazA<(2H}*zRv%=B$#{Y=)tXiE4iD~T z=``6&R2}0q5;=v0`8p5+i=fJI4?t+||`S;^yLNm0Kqn ztPO1uj6n;QPLiHK?C{A7?hgGv80Uek9gy-lu_e10N>q1GY~Qrrl%3`wQE()urD~@% ze{t+l-vD0M$Vd|#-J!O)Y}i|#N2@)td1AODE$l`{M(fJAb&;&WYo{NK+vT7IW#Hgg z`N%N|CK%yQP22&g{B~pvjb_z9IeF$xkNi2pHMERTv)`MIND(+8bk4#;w3%B@1ZEu9sLxLh zfLtb_1}N=u)HGU zUVQ81d8f&4jwBEt-wK?rHpgL7Y1iqBKNA(r?a>>=@4=Vd;fqA58}a3C>A)vxK> zt7f*ucSJV+3yA!m{r#)%t;9F~G+cEz|Nr8pdyXKR2@8&}p*Bv-im4!8birrUoVGd; zQNB)2B$YIy!O1CHRk1h?MTo|zHa_zNfWfS30?9ADe z$qI)rx|{3eyr-4fR^Rb?;sS&SqurGNfffP}b~<4yr9&FkV@`9&QMqq9fdvOU03gzS z?EE{om?cNM!J0@^eeNUSgZa8opCI;XU%l!>WO;INX*xj|$}u#^h5K8W#Gl(TBZLUGefX&QO*Frgb5!C(&o^x znnzvQ=u$o;#Ol=bRVi2LN9bs0swzSxG}Yli!2Aew5Duy$?B+gvI6%ln5A4KwkZ3<= z+>oFmXKzo`c7Y0^9o*2vebukp^ZkPS)90RexVv2J`zCCgKq^I>=$_C9lC}=n8j}o` zhJ={J@JB91XP^mk3iE+Yu9#8N39!HMzyl$DSiJ=O%~bToz{9&Cia=kDfE^Ion;>d> zr1@fg-WFY#|E^u@Da*z~k}5l29Z9mizw5Z?9#hH6BDoeJ+V?RPI|!5U)j-MWK(N%| z^g_(v0!0nz7*%aKTT<_Hug5S24P-g<(PvQ{4&UBBUJIB{S;(0rSQ%1|hWS8KRzM7_ z+F~`xd#D8Srgv}>@(vEPSS;d3go)Il#eSK)V|V%&2J47~B#7;Gi#+I|iieZxXa^4-c%QTI(T zeyGb}okHMKzV7VNsj06mP$tkUM>lY}39-}%~U{A5~-+bPb)>5+;R%5)5_s~KXkuzCx= zXccA}88A^Z)JO*$AI&Cyed6?!ZSzCPcQJBNf3TnjaFmoNfR9O-)mk-b)clO%82=rc zv``qfdfL<1>SDN?gdIz3){WB~z)hS|R* zbJ#wN8#W?{(f}g}8`X%pc5a=^)H3t6K46Y_f6QC<2katHiXbjtCR+0vOfzw2+pb3_ z=~kYkpbpZ+`n!&cU$hs@)x$*HTa5EUX#~;A0s}@*C_d{wra3Ob<4KHFpbK? z`)Ph#tyzIJyl(M%;eA`}u?Z?2M8ro#M^jU+@a^$sXJllQgOCCmo(~`Hyo9G)V*-bI z0wWmta^n3<=>WmZ&pux(8S_R{gm{R)7rNiQe>Yqs&k1`r-RsvoI!y@(>G2~fAPT%k zPL8ys3BsA8Gv%hn{)3Wlz&#MTH+_eScJHY2rk{Dv&VT<7!NL=^0!a`6gIX*WyUTA4 zT1*I#V7@93sYSn|)a(lIAlB+l*pm@NN6g7B<8GpD9_CdyQQW-#H0uYW?o7|0R6?{& zze?2?C4ks zz7`ifS3EOu-M??hEiKLV5E46BRAs;%1Vng)-`5na8nhEN2lc02n~iu1 z273x<1U7Z>t{UVoDl}4LCv4ZPf6N);?YvS~+$mJ|ce#g39%piHE73f8IB=rZ4gg=E z$*h}nLwVu>X7cZ{BOarmoBC(pY*|w69}?nKE(8MuWIM9O)?bj-+mFvD++Fh3s$w^G z0$hOWH*SP}*`felG~f~a=|EwH42pROtUi4<4unJ`IW5@{Qs_Kmw&q*SOm2^AhW5jd z3o7}q@K1eQS`eI^eB_>Y!)2!rtPj;5JQ!}y2}V9&U2S`HxXw{KX?8p)h|0kKfy!vW zt1WDWCac~{>tPFd%)W2N6}z~!vOlVhkgcn+Pt1C0ErloDK=Djy0(x4QCl*|#?6b7^ zzQw`8Ikx^8ApF_%QhU_*kLvGj&9kmbX`E~+W$#}mkKz(bOBMHaw**z`8>Kpnhg%+F zZS!vZ;uuMtRQ^jZ3d zV|?!?{)C>(x0rne7;%jepCqjJU3a;EWyxhIKIb*B6S<}OhTe`Hw)4Jn^Ytssf;ZKj zB=Y7L1n(FbAvI`udAg1=l{0s#e`Kj3u!?%{{3W{AY1_A0(d9~9uRm+|GU-42s6Gyh zFbCCmlzxJYTU_BT3n`tWRz)Cm59sNidU_7+aG(NEx}BE#skb+2@KwO;Xr9X5G}StF zr@h&wzxQ5?{^C?fjhPD`3ZQ)Bv+O?ZnnF$YnSiShQ5au`hbQ(74Gleok)!)5%v1}7 za(~btjnSDJm26j0DNbRG?%d`wZ#s0vIJ7k&&MQ!{{T8t zXu!(2YuC(EvRtvH<7M$6h3WJ1a1ge%Kg_XJBGdjb46R!B_>mg2y64ZmN~)iavz5$V zGs|jJLM0$0?y9ve!anm5@#JdlNkqhh`RggW90=c^Kt~ml@}4jE9Lc$VCwr{y+$sF} z|6UObMkh$(FNm-I)%x|n)z9ElD+cV%alwKc+(GOb{~~Ux?ebQZ#+sAtZ4?7I4KmOT z&)0=5|Ekj?8iPupnshUk^sCh${t@PCN2H$denY@CTuU+=b;oqU8!jM z8O0`Q5@U_y%XXmKKRWT}6_H8It7?Js5a(UYjaXcQvS#93a=3dG{UHE0@T z>K42=a*y1<-x+q;VNQ*(%CyTNgidggg@%OKwJ>&!ar8!6h|hJ0Tqe=(*v|%>P3Brv z8=rsxo%>eMy%g;K@@1=!^;=WAF+8}HYRRmprx%mc0sE57t!Ic?s9MHkq*nRk4Kz*3 zTI<3uZvy5EZ$X$(iDA+47QxbrX) zWKtE+Ck{^MK05&PwkDkg0wD z5ruvxchl>)0w>P&C_FWloS1jO;X;r=P|&+I4r!U>tH)<8+ujTjzqM`&=g#8s23xu$sUjQQH zfz2BVZVZ}hU^N4Qq=Hb`{{P|vtVas(OMDJg5y0@YnW#^@(G?4MF~sZCylunO656Uo z7mgDn*2nSUPdz-SBnuy2WD&>8W8UTb3He05dA+)T4`CmEU9Mp1zMuO1tK&qfqn-Fy{;~;_8Fz!m@9X7k6|?cItHL6q(7_-uVT!7 zkf4Q94a7HuEdo`1Qv7o!AqArWyjoGoRu(34Cx`S|ta^;L?-&}wS1=KRKp?gf%2!XJ zpl^oG7M^rKsIj{F1P*dplx;`z2P!vq1A;}G|5looN$8=kghZzW^^=n*nopu<(^&X^ z6E#g|qnOF>GiV!eDfeRr9$aNzKyHIA#HUu(LrOGNRTtZwQcs6(UzsO&JQ(kE2YLzR z;};0D1@gMKR7=mPVhNPh)EGdTnmyg+>CkWAF=DQ`hPLnz0IEPdRZx3t0$XG~$WMGe z(_srcF%)){>ert&HXd~u4BnCd%X5+Ha?5~Led?ZP2X7OF-mdSW5URn4*k5U)l5C_dKUhh zal~wN&pN_r81uXSmX2jHP*bw!3up*f8Yt)IwANEtE3l2z?Z|Z`{t|tU4BV%QhH4H0 zG4+4zkw3*8Tfc|ogt16Rc0W52;`MGS-+tj|ltSP!Ul_h8K|hVtznqVcxW%Q*bI!~m zLFeJ_Kq$w5p7(>|Ia|VneN7%mSVxW9a~3}S!+Q7_tOq2%N%Sia620tWhP#2zVt;fC zJ#J$@n$iCiQSKm!y1;r?B4dg*kFrohyeJ?F!Mu5{B>igIu!M;0kYQhL^!=UH$4B3# zM!R9J*`1s90`PdX+*;~~vYw1d@B-)J<^~{3h_GSJcUk3HA*R{zIN>Kgb!C$+PbxV1l#hCXKyC#X2vKU2gtfLb3ZwUHs=ukbR~D3MGjrN3>6) z5X1XeBG2eF#uFrzB*XqoqnTs@r9&!&?MF-6{ceoP^7WI<3b%@zV&Ym0Z>4W*)&-Ir z?dDr1L6UQtFXRwG*en%sM}ZorDN3#R=G7k-(>G9SY{*2?Uf)6K6PLh%MX>sfEN119 z{~=0vs;1b}!_(6MfCk(j7F`^%1x)qV^xMOnxV}-fF#M|syWK!ILuzbX94g-U+`c{N zC_#?Fu8)(As0P%M++M!iu{@-*vWvZQ;;yPyuRn(HA^-^x8!-NHmPmVo&^r?TBDX{h z%&U$zzQBYUR;f&I_kf@trrd=2FGk|TaC?7ou|nps2>2q|0;Q6$&BIyNs|eD?6Y6cz z@U3aouZgDo;Ot`9fzGuaY*2H-YTtA5rZEIrfRi zS*4~L^KgQhKi=t46&jI_pGK*lZmD{8er~2pU2NAc z(Yp@)n<5L3vdypKjL$jnJh^BS^^BG9P}>vMxI22oQ_Y4)O5%%X)WpkX>#R9hI_cfYsN}-+$NJ z-IkJDPx8LC7eHO|rDgL;+rJ7Jw4QcH2sbT&YQpjkmz!A3sk7EsfBwWw3$8r7*Ad4E zv9oS1UHc5}D7C(>CNd_1t8gD+?d09?3;DTc6pRj0ZGQTc@C8{=t|E9GD22eBLtWtQ z;bAO8WQ@b8!)l>f&ySaZkww0W|t{WgS2P{hZNqRDVm zfvq5lTc9f#&I7@dnQU`EniNWlO(q9$Q z%GpE|vF6sb9$V=buEGNPeN>A7u8IJQT3JSV3{V|ZS!2yD&Yx4*CoJp>Ru6H00{bGO zlL1eR(%6D?rr`>vGI_BaxyEnh5Y;+RCzluVWKa3aagGC`a0kBqZPdjFP-lIyKS=)iO%KHn-z$)-%=pk;(E;cM3%d2nE0uYkZPgN&zvU!NGqhK(vrqDSar>(6*>SJ$BOZ2o5S z*Fk1$;Wu5e&Kc)rc{0GCvgW8c3jf(NJ)(e;c!l|%?y7igw!F}fS?T$)Mjz0_Xh{vp zQ|UdC`!FuH1!qgf>`4BK?4?U|`2CeZ(!qEXcjuCg)8vgaRRv1C*(v}?3!*@5&ULg; ztH@Hiaf85FnM5oP=#)O^E*PY39J9k>ICSfAX*Z{gOqk|g(}HuZiXyrLKm0E3lJqYtJ9pNHx$yO86%6{rzh`GqqFH8B~OzWPaE*t1B(q#&yUFTlqRl~uxeV8(Aqi@bRth96usfIlj zmz-NX%L3kLF%j-u`AJdp0S(UA?yy&sH1Fy&A*6F!yzIQw~|@( zoQKc0gx8Z3zgOmN=4oTb(rQ)8M({vDGRPOAjoVGLxpYwh`}Y@E))?oFh%Hk}Wqkep zWq~>a@Xd8x)WrN7ltU!2@R*c(3-qJ*Z$*-e)FiSNmIh-a3@Em4>?)!A0ep6HpB0*$ zXxqA8*GvWM-;*JY=uJe4dQv_R*mWvKF-tJ1m4YN(_a3j zK6YWu#5wru&#Tni*uBb)N=Co<`G;1a<+g=m*Ih$H?%pN|+>ve46d|O(bq}Srm9SX! zi-6j79=41dua`dILkjKNuajm3w@qgGith>gRxQKM%g`p3sDtI z&KSUrRoZ_WRu)f;? zZs!VVmWep&ZQ9K?5~v>$myYl*ba}V$9YkXa3X{91K=z9<>2Wsp2lHCD-@E~$E~#}y z7AawHp@D&GREuFd%)OAnAuODTo@=+$LafF_k%?0w5p04uc3an1*h`TlhAgdhf1YPp zWR1+3ivbTFK4=`F_{^_J*?zwNiU5te$;0T~9Gve`3gsOA+~@CneuiZ+sb_#1)6gs0 zW7CiJcJE^CLF>)cHP=7^L}Fi2NfC^#Y*8j-5J>n`XND3;3Fy8!7DCN`%d5!K?2g?< zPTV+Dhkz27ir&B0Z-~hs5Qdn#g^w|9mZf8J-DX*4Y&4HZBNC7EH4XBfmz9}bw#>w= z9oUbk+LM2=y^vh!$ufsEdNy`*7W6Lusyl}9$Hj{mK{R_iY0=QsX3pX^RLSlYZGXxmzlCZ<<=W&z*poopL+T6SiLh{#3?z z2&UR4tr?IA;B#YG(Mb&b(E8hF9vPGc)*zTOy#u!q&i=72m;YV|uaFoN65OgxHet)u zPj|<^2~IvXYf}@4)&SDQrEv#A}5`i6$HfX5*0lo`3Q8+`#77?^+AyL}pB4&OdcIT^RRd*w*M zIXs?r+x`bsFEq#R4gs_fU!+I>&y0Zo@kiSu=J2+-q~GP{vL`gQ)ajMo!aV3jU|`cf z08@dOfO~|@5K}9>u{ld-^Vc}?yFrSLi>W|xs$d{EAgq6hk@mkY5)F}IyZZJ2Uj{*> zyOpJ-DY|dP)@n#A)YUH?*tvMUbOu)O2l>grTEe`6wE^9Lvcf`UHmGNgOmGF5Xy5wk zG&cN#u zR=u?(dw6UDUx3OPSnT)j-wP5XSn04LFRcK)1-ProS5{yxQ6X#Vn00tC+S+Bf@ovlkmsI9B5$U zZsoi&jL*ToUx_L4i!?(vWJ4+8_C+9VS;Jwl;Hmy_<&eWzj&aRl ze5Ri&%66Gl^uBKiu&%(SLvPWd2Gox=-!?F+dytzvp8w^R`#`dL1(H6<`5D7sD`05% zO)D)4S_oVkM0KnKIo(U9pOs)tD1_ch1V9d}7U?V-kT}4S)bN7iAK)!4(JNQ4o&urR zkLMy6BuTHVFeCyP`~A_n{ooh6<+-Lo-4Y#zU@t06r1i+D_ksVFJm*jZKO&$ToO0{l zUST2b_Z5b?3r5O$Z_BSmQxW7(jP;n1Ye5)Tnh?t2tudmHD=RstFDjM}T3Sn_;^fDe z5KRsyp1>S;yj_IloE$vmF>F4pB4#nJ$%mST;0U6ZNwlwF2iwH67@WSJvig17f0Act z!V00o15$-MJ^&Imw3)n;l6wHjfUf~L1z}8uB?Iz<&8hTc==Cr~Ao^WshxZDQNDghV z9U!7KA;@OH3>#0AJ?7&5bad5-ftK<9{q8O2yb{f3Hr$<7w9;bwGeO;S^~blq z$98f0Po~b6h#H@f()X*a)AK}^z#I+v!z9Pu4%p4ov9r=0r2?t&8<1&CdwSpjY2vhG zxI9rQ)0At)5B3lU3t~pC=c;PoTc)>Ne-%J%l`u0aezuEHzCQ%Zjxtfs`wB8vNRoz0jSmq)3Lz05*F-Z zKhT|t=T2<>M8^>w8R;^|C^#yTLU5LVa+L@SN9lu{O^9zdFbP0px2`Dt2* z9m^?B(3na)uv?*&$0+ndccR5F_T!~fbukv>e@^1lfPSM1|5t1@#GFVy@Tg~BG!K5^ zJVMAei-tMBg-5~^Wx5~sjQN}A60oTzHI{{+{`ITDO|Cdw$bv^c;E)zt4fMf&u{iz z&Nv|Tyzf1R!FP>}_5q(CV6Ez2Df>WIC;gX01gP5a-G!dQ z5_sF5qn|2B2sa0MNJt8Zf)v{|_8_oPh!m{WbTjnr^bBlOIEd>md4B{#AbPcc8^pb%(u4lc#$IK(^J>kFN>lzOmNE&M?!~&Rbeg&Go&O+0DvIuGaV?M7$@WAWRM`pMbhFz>a2alweSI$Si6dc5;;2C3k!vU`PJ)*WEn2#TM-!)+@N3)QJta zPu>&sg3YHsV$2N1Wp3rPc#a1}4jFB>BrRDV!~;T1p-65*0XEI?gQHN$^cX8b{&cQg zNENo|Qy{E=;awPhdEnK>Ln^m#H~ELvc*Grgm*gX7vyJdi=|?hC|K|-f^M!tjFzt35 zHv`2X=wGZiuY#h)HBfg2bLP2-tm-||dkTdJFWOZ}8%ET?_@&rucxQLwi7Fa2cZ(T1 zBYRex>1?{YD?}ioq6~#X9;T9tv77@RuDlnbT}MvT+-n>68qO>P$j3x|vGlAPZqZk( zAteCCfS*frMTDV@0z2N;?)MSw4@T)v4Z-DitgC~}4GleX75(@4aGUoPF<2QDDFA3g zwPh>QAY{3M-CS4qU(yNgl0sW{KgeVI_U*G=#RQSuX^LBx-u0ayZ5{a1(8SsL5QiS*F02denwVAftp7$<~`LJ$-_-?JfH3zAK!S& zGJR=ZNs|zB=ru*^$c#HiQ?;E}R#5W$3Lbw>6m;i6GA4ZDW@l$jW!z_Ht%1GQhW(gZ zOI3Jm@JR;0$d0^(p$q#!R3-3GpfKjW{x@OM8|3)xY!vh~$hwdRts8N)2E%~5uF49k;N7M>I?u%E;B2;yvqDd9G(K?PNaU}s$fVnc0c`Dr4UMl4K z@J;nKf6$QAim!3(?F|^jaZdy+V*^0?)5dkj+L!kJx@e(*e9EfYH>One4egiUo{{!k zc55Nkd$Rf#H?5G&TLb53EhIzHl@n?s0BBU$0q}%?okpO6VC-q-2b)Y%rU#|Q+s3Rl z7(<^MR8;UIPZ@V@Pw*Sb;BQWck~ghE)y|tR6Nn=2lg~wYNde%a{PEda;17y!8kACQ zjFRCWh=Cd6HgMfq*%fVr)ZrJaV#xm#hAK4$%?CvaDkII#S1Q}S@MW&Gv|an^Mv4x* z;dWYA+!(d9`ao+RKiclJ(%*4_fZ?kJ4CeB*@$VNXdi>tJ`7Y?RY;lnPAVHk2TVC8L zv(j8cs$T{{EGGTKCZE!}-tcB2+OxDQ)oeHDt&I0Ma10a$v7`zM@!Rg=Q$=lzZY`? z9M8b^&^0K>t>on#_xai-H72#}82eYi(cUC;(D=@~E2r13O}uk*$DO486-sf(X7~A~ z>1x~W@bS^+t*-3ZcY)`Uh+jz2+j5Dw*Bxjm|HTEkbGH0g^)V$b36a^R$#bVX_g6Gj zM{L;li0aXaxT>EQ>soSBvZv(Q{Ph{-HKxcR?=2SFKf!>%-!Zm`+?w`j$FUM3H(_?T zjpkv%xgQvtp^GT*HQ#mKAMRGQO~1-~*d1OxdbFk?{?-$n%DXjE8J5cqhzfo>M&=FO ze>EO-*{GWuRX)xXoyS7DZJAa?n$Lk}M3fPWn6WN$?<_BcUReCF@e})fg!e?&@#Usz zZy>DC5uz4>YIbpP@!3pYRdDH$Np}9?%n)wSHrTJ~Tk7hnK7ge?5H`nFer>hJ{r(pc z?++=>&dr!Dyxgx4Mgl{J2ZYHzHLRH1laeuBc;)L$|NFLzaLIUUQq5$8u<>BfCNE)1 z$w(We+@N3B=B#v@dRzXhh9hi#KhsNIC>-md{FFEE7yR!~ezP@vB@l1KX|AmW57zhk+J5nA5pyu7gCCMI-90z8|oQK_LMhf_i% z`jlPp|4D#lwvCNAH#fNDM}CMJ?pCYIwC(LpAsEo;EfXo3L+~r&3{sfiqI9Nmmfd(KH+%g?B9`QBN$K} zrigJRp%%2~SNZ~dB~qKJQBG`n{1BC$Ma4$axBUUC1)p%Wt$s#6YcbrCra-Xrz8W+N zyjFKS8hTCg7DlG~UY@6X>-Tl%(C<$u4lmtG&Vmk=j(H96K~CD!M0z#m?ziBN zV3M~aM#Cr&nUv&rE6HG@tk7rt{YDPmxwq1-hzza_J|D`jg*~c?ZSegTyMvL(1RY^WU8O z^JLpsteg1TnXfPiCKxp~m`%#D+XW6c9mrcy$&)=8q>BTna$poW7ybvHHG!2QFOU}k zLuFx;_dYM#Sh^X)DEr`pFrQlkKsp1S)Irek>Tq*AkX1UmdT*+SL$57w zXBT+f#<*C)-%_#)Aj0{5e$&&_UdQ`lQ1oIJR2kQtBwX@C+Jc84uFW`W5{(wjGqbYH zSl!i*+k7={lZ;nO^#W=!x-^@%`N_Na%Ris?m3b)gj0nF^dYyY($EaDNs7k)&JP)f_ zp1n&5M{V5=_muJJ-=rP!g*T>Do~6a0VlAuT6+L#$*3QC9_KZ`t*YoF{WKxhqUov}$ za^R$fhK7s)C%qdd)@Eeg;IlP@O-)SkL+n%5&$=fZ!;Hk_@82IuUwXyD%w94j_44B{ zz5q2L*kwzGmQ0m&ge%)xl-4HDNULcvy{ypxC{Z%(mY66Umx7lvD`k?UCq@iVCCz`S zth-_BVR-Rk)n*;rLnpTjVd=ylUf01JP~jW@QKGlySb>o4ojV>1JQf8cp<~C+i3CY? zP6@Q5oKJ9?iFN2zTzNG*I{Hixvkl$Jp7LE2TOL0=@a$QKt5%uxTet8Ht8WwU)Z<+JRkS1jzCOMFAHMt5e}gVR^{NeQA-*@H5=)hN&z{U5^)EIH zgkC~UjeU45xTpO=t3N2xiA!k#UCzjgZ)`2CUh_y`{B>emhVr+EASJMT3LI?aDy|3_bX?9|N@c+WkNXWceC&pT4Y z8+=uA_Lxi1ayG2dVKqHmvWAwal&UCXOov0yps36AtI%_YNmliW2{}-GYp8R+otRC{?qCckcHP;1UQ1)a+QK8iKXjYx>;}>J6{YE?r#Pa2 z#qf8TDBKFG68z3#p;}7GICsn5?)-41dPHi5F5|Mum1~WIDW?VG=37Nw1f^@56yLfS z(M1SpxZ67ac~yNlW;p%3&-?8%lZ{)w@A-XoQe2*n>{9LuY%Z{hy3F%x(MjucOmckT zmBw8$hi3J9i-vq;#Gg6Fnm&K`L;U;ij}eFO=Z1d&9dG;D>_UHPVpD;c%J=HSo}YuC zg*x!%Psf&3*q7-a9>twVBIPzq>+=j;Evl5ReA6P!!uH@wQ{m})d zhc`)@>z_Rd>G~EvueLmMv>1u-zKlH?6l7xHLDFztK+XaK6|31BGJU(!dSfK8fSx^ z)nOm4VzH>p*JwOU)D^wG*Y0F}cT$^gY0G)G^K~st zuEV{pFBtD5rB$Ybrs}Y5h4F#n8Rh#YZ*lM|UiUgqcWrpgf97b^N8B+BtEs58VWKj?rV@a@k_{6 z^KX|+8p+En^rvqW51m|GW-<9= zsjz>_f5n{6(CRPG1y;j6EB?MeeWJg`n#Or}t||7_@SIgpjF#%-eKxY-K~9Wxo(!vuXpM%49Fq5Zk2h zX2GWHtp($!Zt9#8alhoaJl8&~$=i0YOIgw# zZB z_0*wTTW4LKPl{Zi)&Kte* zqgkGc_Ku!^_LF59vta-eDw8~ z-k0+h9cPWWP9MA5_dt3$sd)bVv85Kgv=H5uXl9k;%)ymZnuV-SrHA-aH@65D^W6J( zTfumffvLFh%B9B*K~0N%O=tE{8QhVn{^tGD&G_Xzi#2CBN55qS`hIVG@Y|C6iiLPX zsK-iVN?_-@^rhZXzr7(+j6*zTbYouRmnknQx7T0fxgh?id-qLo9e1;h)|$`dnn(!| zmJGVWg=8~wnoiwwmy4ob1|`2~nir;TOgj}=kubbnOtDm-$Lxq7OFlk#w@=B8Vc^=2 zi$5P|9j+cBgaR%0#Vw_n0F0ztvDF6Zy?Zl*jCTy&xntPqLJYnk9)VfhOUQSG;(1kdDslxSNOw_YRMpG`M7&m zz;W)4X4{Ml=egG(ZZiwcEVq3yaa-)kht%G<)F)*bBJ?YQt81a!c4OKLyS_Xfy8E0q zLycut8rM``H)Xso5_OjSB|@WfIPwjX%JTk#KIXs!dlNh5_KC@y{Ux-k+eb@9-!G@D zV~3bkr@s3+nc0m!uUAMJ5*!C!500w&qz!VG7-!QkxJHJ}Gkm?dVqMQ87Q#(FC%uvu z*h+7dNpGM_<=n8b?C`?AhKpU#>0UZb&n0eEo6w{wYo9K4dAcVgan04(+@}_%3|BsR z7iFHLxQ20wlb1AU%SQw|bEd5#`q)hwF4tZ7AoUyEngZnBv@#;2icvOQd>$s&l`%pBiQ2*xjFbPo@=D z_6*rIU6*dSsI}W^%L>!etv05N9}QNhBdD^ElzXC}eyQn=zUhwj(rGU$c*X9iQ>a;gKg^rH z^wq+okgZi-zn5eCgY#cGC2EY04pX z<+ORv_6&ZKT>RX+iOJ#ZgQa8767+J!!)o+*Na(DVre(#2w?lHbzA$=-wUZXMuhH?S z=7rdO_a+jSxp-_`iazD>PK@5hQY`Mh(z5oeyfZ`p_@%3Y6vfuuD3^Ek_tuUJh0FUU|!yAGJd5ym)k9huuz_4#~>#&rNQZsEoe8)yyxQh*A5$ zYCF?tHrK9?Q%VgLHPx)NHMNAQ2ufO%s_AGcY6?nfo@!`KZOo*!MbRKFs&mj*f|`ez z=_xfOgv3x{XgCo>N~-nHImt!IC}*Sha@t!rQFzkmOI?VIy*zW>oSsmWA4 zUHR}MV2++BOmCAYw_XHxV5-Df)4&ts7Jw_79V(Xe+9kZxUl?trWBCchFDxmYTxb#zT zMQa*KLLu<37fELtR`@#9tVkeyorI2oFns{0c_Z+UFLb+t+ucd{C#I|}HoL^`Up0i= zMeCho!|gUHa)l=bTaJI()Gc|%Rd7yU$UgX-eU&&xIpe}m!9cSZCgg(s%$=|%D%Z;j zvla7$GWyfW1IdjYSf9qeqv|*2>)ZNFJTBUL;9Qfdbc$5cvCU8E*Nl?%GO+#i2%M^-o)X*ptmG)PGw^mj)a8jWQd?gW06l}+I|>=*uBX- z6}@HBqyfnZb>-9&YF`+D&IR89&OXLce1jU*!3Ev7gH-Ex?4FOFA&qS&E4GUTuYFf znkx|>7p|A&I-I3vG!c0cEudtS6G&9%5Hm)Nle4~ zp0#)9os!v9Qg0n@3F7+9_7q0-lnuz3&D zLazNZdH-l@>Y`)chfMO5fVV|*9G63$EUbo_fr6(C2T5Yg}sOR5=_;+tiJKm9p2f&oL>N7SOB7 zis;^s;&|(yzEoCEl+$%p3Mjfhrj6=a4Hb@R%?(=>XIC7z+(HDXs%OxM>~3fUScrWd zj~SfYq-}PO%t)=DUUPPSI@U?uN@x|z3s^8qAPR=4FuUBHNw5@dooe71cShR+B~1Z|^Ht=pD$5xZR&+U3py=8=vo`|i>k)mBG z>0v5sMS(^zp9H19y)S)*^3hwV6XSLyp?Xe!_G-R=`#S!i<#>UJLX@1d4|ON_R8VQE zPQ9oo!cn=Aqr)xUqn@*#?_=Bn{`_!3O`uxCEdE++EWq}nF_jeKnM~X^ZbMX~$S15l z(;{Q_8X6REQgUydWq)Fm$zJ;)=(JxCV3KCRPRPP>e`NC6GkYYW>H9~}h|sH2AQ!8h zANb5wl^!a@o@G}jJbZYxV|c*Z0Sx&{@2tn9F08NMrz)c-I#X|heMZa7W_2h0QN>V)52C4xo0Mx#?lhuecM?H z5~pgz&(3Z*wNrn;@ysSh`gD(bjXIcDv)nmKVkR8U3*2tx12z2-1%!7=s+Mj4p*&GVQ!IwAlfn^C-OJt zjy!`OQ^l!MQ%ZQ|+4I0sOS64!fQo_G?Z0k4eO-^d)BFgsS(qVh&@Ti^$F6u0jDTEe ze^Od6&7)waPwM?sa4wLbvhbV%_Cv=EB{|y}-!)w~8^{u>Kfl*#j5gW5~AoHNP6sgJNM7pTHNtmuGCpE{GDir_Mo60(dGo z9;y~AVizXVv3-zg#h^8%n5k;ghAZ!(R{KG&Fb3GR6k2dhnJ%KSZ|2`=W@KU419$-8 zu980FqX=V$6tQzY-JwBBH=BGrHyfYTv>cZ`*-B9l66?a6I}4!GAq+n_`dsD~VD77x zai;!fofcZB)l=6ke}deImpN~Z4*G0Rs~|Fqe3vratFf!PkhAcCNWb+M-!ktl;Z2zF~g8H<2+n*{SEVQ!XyYZ1h!;+V@k2rNc7e^HQ8dD@ug3iEi-(0 zX4P$(B!CEH$uzguE`$=-p|0~jWhT7W+4 z)hQNHIAdQ@>x(emd0|MMP2|`4ksgdR1v764m0vU+c;Fu)u+g^SW(FpwWo^MR9_8IA z^@OKyAsd33Z_%X$cy70jVUA)+V+vbLCXdn$CZF8BMJVJSfo9%@{&Gp<(5UDG<(sz@)hjH zV;Y?)5E8oCrw4}d2b0`(?>v001u{6iFOe#_7H0q$>g5bzE&42=ciHWu#xc0Xj3y^h zGVAX#FG>+qEoD}l$^FnlJ`^(iR_VQ}KefxO!tD)mgCj2N@utfclFNQIpHp(Y8kzMs zeP+l14WN5dU~bI3#aM(s4f|2Dx{=r$!A9V+=P=u2dLtMee*v;&*f5pLVG;b-xLCvQ zF)nr=@|}(^eDq(~#Or0cZw}kckuOdGbW0xEs^o~{&*s4zl;Lsv+I48IoHWqMl<@Zp z;)7e;)<%D@KSjCeuc!ejk2)TFQbv|wPv$c@6|0mY(fCURXZl^7myI@c22Vs0@A1pv z0w58FQxn9F9XhI>F#3)SWytY8REIoIi)xtSY713N51rq@1eq(`_l~!=duSTANP+v@RV<4rPS1WBPh+7PBCLLC1t#rK^B39L@e5Npc?{QO6vHmJ3=UQjmK(yylO({8qL)M|JWNqum-P-?%Hfr5o%;zG5I>`!H1X4%1tWp{0t_Lo%3^;g!aG-gMdt-pJE1^S$= z%i2JH=7d60h#2G6tI(UjWPH~h{(KH1+WH1NHI0K`N8+7>=Ib?lm!GGa9j`=YOfQS- z+8V8c(CYb}92`fiEX}Ssi0UK%c5OU7&$Dw$)Z^>CO%Txo9)r0ed09-H^`~dqDOE(} zb(EUW?;t9p!vOOUaq#k0kk&2P^MC07@g;R#k=3k*$KA?za;}YkXgWo-*!_`+y zlHiY$4XP5yUreqc-}o4lb(3C^ahDmG@@@9)Dkb?8N52o$imFyk)F!(jE-#*XSL46u z&bgSZsZMs5&R^smTarXseKQDPsbo~BRhO$B2Mf@&9+JIf-uO@q`3#m(w*_;>$7$6k z)~Bx4$Hfrzf?I}4I$E~1)gAu&wZF(x6)Mm6EC5^zzDks9O<38rs_pH;t9`m)yp$TP z#tMmN8O3a%>_G?na^pYoUp2M< gW19TG+lDk2r;M1& literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..dc45393105ffb4e6103cff0819f01ef7fe6b3598 GIT binary patch literal 67747 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 DG~T=- literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ac34a15211837155a15c2159d4ff3c35455bad48 GIT binary patch literal 96548 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 a4$ma1xA>}Q$un`_kCL3K?8o~reE$!%cSJ}4 literal 0 HcmV?d00001 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 :::

:::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(子池) | 用途 | 风险/注意事项 | From 9f89784a1490a99f26850ebe1a1490cff3dba682 Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Fri, 7 Nov 2025 16:06:06 -0500 Subject: [PATCH 15/16] fix: update release notes for Unraid OS 7.2.0 - Corrected formatting of the eMMC support section in the release notes. - Ensured consistent use of backslashes in configuration options for clarity. --- docs/unraid-os/release-notes/7.2.0.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/unraid-os/release-notes/7.2.0.md b/docs/unraid-os/release-notes/7.2.0.md index 445fa24fcb..cc1b655c43 100644 --- a/docs/unraid-os/release-notes/7.2.0.md +++ b/docs/unraid-os/release-notes/7.2.0.md @@ -186,12 +186,12 @@ Login to the Unraid webGUI using Single Sign-On (SSO) with your Unraid.net accou - CONFIG\_INTEL\_RAPL: Intel RAPL support via MSR interface - CONFIG\_NLS\_DEFAULT: change from "iso8859-1" to "utf8" - Added eMMC support: - - CONFIG_MMC: MMC/SD/SDIO card support - - CONFIG_MMC_BLOCK: MMC block device driver - - CONFIG_MMC_SDHCI: Secure Digital Host Controller Interface support - - CONFIG_MMC_SDHCI_PCI: SDHCI support on PCI bus - - CONFIG_MMC_SDHCI_ACPI: SDHCI support for ACPI enumerated SDHCI controllers - - CONFIG_MMC_SDHCI_PLTFM: SDHCI platform and OF driver helper + - CONFIG\_MMC: MMC/SD/SDIO card support + - CONFIG\_MMC\_BLOCK: MMC block device driver + - CONFIG\_MMC\_SDHCI: Secure Digital Host Controller Interface support + - CONFIG\_MMC\_SDHCI\_PCI: SDHCI support on PCI bus + - CONFIG\_MMC\_SDHCI\_ACPI: SDHCI support for ACPI enumerated SDHCI controllers + - CONFIG\_MMC\_SDHCI\_PLTFM: SDHCI platform and OF driver helper ### Base distro updates From 3f0fc6b4cc228066c0b086d9303d30a7e264618a Mon Sep 17 00:00:00 2001 From: grizzlechips Date: Fri, 7 Nov 2025 17:04:19 -0500 Subject: [PATCH 16/16] fix: update Docusaurus configuration and release notes formatting - Changed the tagline in docusaurus.config.ts for clarity. - Updated favicon path to use .ico format. - Ensured consistent use of backslashes in release notes for package versions. --- docs/unraid-os/release-notes/7.2.0.md | 8 ++++---- docusaurus.config.ts | 5 +++-- src/clientModules/gtag-stub.js | 9 +++++++++ 3 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 src/clientModules/gtag-stub.js diff --git a/docs/unraid-os/release-notes/7.2.0.md b/docs/unraid-os/release-notes/7.2.0.md index cc1b655c43..75907c154d 100644 --- a/docs/unraid-os/release-notes/7.2.0.md +++ b/docs/unraid-os/release-notes/7.2.0.md @@ -195,7 +195,7 @@ Login to the Unraid webGUI using Single Sign-On (SSO) with your Unraid.net accou ### Base distro updates -- aaa_glibc-solibs: version 2.42 +- aaa\_glibc-solibs: version 2.42 - adwaita-icon-theme: version 48.1 - at-spi2-core: version 2.58.1 - bash: version 5.3.003 @@ -260,7 +260,7 @@ Login to the Unraid webGUI using Single Sign-On (SSO) with your Unraid.net accou - mcelog: version 207 - mesa: version 25.2.5 - nano: version 8.6 -- ncurses: version 6.5_20250816 +- ncurses: version 6.5\_20250816 - nettle: version 3.10.2 - nghttp2: version 1.67.1 - nghttp3: version 1.12.0 @@ -275,9 +275,9 @@ Login to the Unraid webGUI using Single Sign-On (SSO) with your Unraid.net accou - pango: version 1.56.4 - pciutils: version 3.14.0 - perl: version 5.42.0 -- php: version 8.3.26-x86_64-1_LT with gettext extension +- php: version 8.3.26-x86\_64-1\_LT with gettext extension - pixman: version 0.46.4 -- rclone: version 1.70.1-x86_64-1_SBo_LT.tgz +- rclone: version 1.70.1-x86\_64-1\_SBo\_LT.tgz - readline: version 8.3.001 - samba: version 4.23.2 - shadow: version 4.18.0 diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 5003796f0d..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/", 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); + }; + } +} +

UODvwHXI^j#UQfb(9`Oyu>q4N*L(~o9wi_uEzZQ~)(r3X4m-2BGP2v7g2)mFb-e{-{}uh0BJj$QAj zqx2uj?=N3xZ=t`bw;TNXHrh6hZ65AY)5}q*fd3>T&hJTDl_HbgTym1=1mnWUnn7R3 znd-gtmXg!WKH&SG50y}sMrcqx5^7-=80cUBXc%VtpF1AOTn&GfTPWu0#m?^0`ar@W z=w1<1P)_sK^evbBqagj*>VcY^<5^pW_f6jrGdEW^oq%^_zh``0m+HJNr{3Mf5NH$* zOMf7R1Z%L(IN9UA=~%n+)@9wp_jGj~`&nX_f*K451jGrE)u^~~I_tSd&F%h1w-%Nb zn7ECynWQJVqvJfJNh&lWZ!;`ha@g>^06U)Nr> zPYD3Wjm8O`m%DSuaDo6aiS8GRax7@CZc~(lx2z{05McwJ~c?+oGsd3pq(sC7t68{<=Cok0V;ZM)@>Pf)VE!CRHCQ zfC;xdhYF1Gr|U1NiTN6@`X0BI6dB|GA&^rezvy83x`Nl-h_2YbrJhJ)VCtBdTkp`D ziyUsaGR+aSW`E}!XC%*lA-XoK5!9uzy_h?^=w;X9=X2hOOr=*+`b-HMM||X;Cokn# zYL&|Y<-$nF6s}0U$@VgcRyXFYfadF~f%a4_yQq<5Rv5N$g1pnoIVmP8Od^*D7`g_M zvjDr~YN?meun?oUKa2xx9NsbR6-mIXoprCz`RtG!6BUy40R)xugIkv)iwlF}+t~TK z0s~;P3_%V)$@Cd|8-JDed7wc}h!COmUpg{!v552L7+MY@i{FedvkA#_egn#DjG~Fw zCP?oBtv`rUzRhcH^f_Is06(u3pahR+7}{JeF-(tROb+X9!T@C>g4J)VRGHv^322ckz501?pbc*vzf7 zdH~1?+|`6u_$`la0+chqmXEhc-V>ofmR+9akjytZkQi;5i=$GR;!iO>Gru>Is%ltw zGAJg>Qu)im$tP9*ea#=1wiQQuhbt9CFUxR%y3f}ecM4423CW2hGj_P2rn=>xb;1%~ z0WsKcJJ?|?helNK7@^~ApIhd#m8@`seCZy>Cc@icO+N@U#e|NGi$e!R(NLFqyR_%N zrN=i-S6K||H|S};yYEQSNfr3(%!1bx7;%z_h&%tNemdVoIXmK)p~fnW7M%A?*a=g_W7@#@$p>#==duN@!nikcrQ2RkK6ACR>ZXhCO&AB0u$R zOQC~czd#;wm&mcAW3A;*E+NM@CAvhLD0+`X#C$d>Fm=6!Whw#B)UX(uhXvAmttQ{2 zP1+L6YO!i1(J7ZE{-I45Y;2Gz9Gn922G?2Z^F_~%7aKxh^#z|m!yo9Szyn7#|0%QS z!1~bRzfxdzi!93^OX{w7n#2paHCxK5E&>MS1CN)m$Cv3teI4?A5?11UsXRSTN9I)! zg#qlXQ$64QtlKwj(*PlUX)AH2oeL835lVD07+)pmd%9;?)tH()9zy}QO$T0x zu1t4`gL>AxZ7rq~JKrsckfJI&pFL*jP(T*-J~y+Ui6&+8>Whw}$g9CEWNmJzpf(h> zYf|6SrHtRmjI}9C*9lO;dKJ@ucc38i!u~Go)~@hq!R$lrTu{jlh@l*J`f*sT@GnSb zBJwP#splW3eeRB-kC0C%%PWK&igJ;%$0wJ%D|V0jDIiJ)c)-&Gd*;V^JJd?bYpS}h zm2p{06-L*p{=BsOFM4rLXmXk{1pd6uA*2m06QA3dcYW|wWGUhf zTOEklWz8N(K+y8078cQWkXdBM8Qdouk&gi@=S-1pnAZh5u`sGJYS4#a3%Y?ga;c2{ z5*t2Rp6sm?Xv$M7+FHidEModmT3IVr#A&S~LCpL>(r6Byu~x7kFY9-=c(NZBGVIgE zaK7Ko(A36>ex0_Tkd?Sk*4H(z&Xf{?FTDKhI{9|X&lqbH1{ZbCSPB|2?d36PB zQty8!fB2yebS2;-Vbk+YMo9PeGjCe_uCA=A$)kBy`mpS#t~b-Vb-C);7}`w%2Bt7K zY+vlHs*KKnm zaDtC$kSX?qZqE|w`)>@i;Hyen22*U00tn)FgQFgOU_Jt}Q`<8$_iRiQPuQ5(k3eEW zFU8M_I2y6^fVz%ZX{d+A6c)06l6;D|F4>WII%{Ihqt;Na4tL^+{|m#wZ~Pz<>#SLI zB;=|Iu$@ma0={2a21E#!ABSD8a*Bkk8z0gOeNX1F{yT&4o=}+HlX=>r2rJ-#uzbGM z5c2f1d0K1Aoj&a!OJa9Ci$>^Ldv16C7!E@VZbPdakbRS{?eB=6uhLDEkg5HuPb@4@ zaZZcS4e~Vj4)Q=!GM@nMzv=m8fs zYnvcrd71+|V!Eh^tFLI9j*g42h%1R+iaz-Gs^fR+L1c^g(_7YwOHPy3;B=TQAJ>l< z6Gi~QltETl_T$P!K2&TY`T@_%8!K3R@wO$)uOzch`&?j3=9kn)_nd<2_=W4)+GQpw zWVu`Q-G2k5CBZQoZj)=~hI`595a=vkIFbu+>t=CP#W_uf`nNNE#K_dgT;0HIOW*|4`~>U2WHpkaRHU<}f~&H#TH5GOsWE{LsN9~fta{+r*1LZ{ zeo+(cP5d6O^Zc%I8-vf!F~Xtl|Nm^sn)3NqQSjGU1JZUThiN#C=>7c@%mW9i_O1-D zlX>J8zXWyG(QQY95>xK}{weq4$Vjn-lbEDDVGgquiFn%11!>ihi-V58o4p&6L)hH9qZ>jSRrlv?D{yfY` zj)rhTV4bf~X>XlBl534JKoeBz`x5p3(8Kx@`gGJ+vLQyH`3dZ3!ux5(UxrAhxoYKR zTc1@G;GU1GyqT=_6u=N2W9Gj{y#Y-ML3h=$r%e}XBe)nf|B4YFl*u|AmT+!|JFdCz zAH17LBgaO29sY_?r?+PLR1mVXa5b$|vtT5Rc+4_xsXqg{Rqy@od2zEAol#S@e76Pd zN=qpc5SXykpNlL3$Qtk>0K1?z>_dmJEsCu2hz@rldky@q|4-f;Al(?~*(eJZFMAb| zp(F@d##=|pumF}XFLar@ci*T}82t|8QYjkO^+qZ#dSi3>Op0}8yYbzBJL?zNSz0sd zGx|Or0nTP@Eq=8l8&Aui!@-_bb$^8Ak92|q@_R4@E|eeyF&n zd9a^;@{01JpMLP>)$9Y`HUdUQCwa!W+MJE+ngY&GbL<1pH7c7&-SH^bKPy(#9aCk4 zzdAJ3KOgJ}+E|Dog%CQy{@Y_iu}^zUH$6mwJ+zO)2n9gKa!$QCzs^7ICw7nXqxv;>IBcAYuxd0yzOe=FdFHiL9d=wiq0V!7h)pIF$<)*bI5-YlE_)l$SAfBT zO|k;LP(9o(LsZes$9dD|F22dTI}zBh&2pZGk@QE^@p$Lv>F9fGqJRYq1J0vvZWn^v zE+_Y)Xe{0q(#qzLaL%s<1b5@yuQT|2kX~jf4%e2c#jJfUP_dJAEOM$Q{xoiN?*941 zJu-O9+7AXW7siP$F|whJAOlocIqB@gdIHxOp;JP0{+)i0(t_lVnnD(+0~6ayog7tV z&mOPs-YqwJ5#Z4wU%|iCyAS_5*X#n*(Fm%QZ=e1hK6R?RRL1aIHEcb9TbD;x*(3QI zG%{vAK||4Nxp+=Pl*s)RM@Y*0|7ii#U>*C~-bwxf_dJ_-Jb2-xW_-h88y5kEcBUjB z$J$)2TOR1Xhtg@iMOQ7dKgMdh0sg*+QLuQM09&rJOCDZe&Gi3Rd&{sWqpocjMd=a{ zkQNXS5D*ZM6r_~ymXhvnFbJtZx}>GM8zhHLVd(CmhHk!%&wW3~@%?bim?Rsl2C`b~Yb=k)Lzs8$S(&5cNEo0?|!J;6@PBV`5a zsE82{omAj%b#81dN2C0Fo|)O|BIqA*TrkY1X2@E;*WQfJ1WEwXiL+n zd9A=?klHVOLjH+R!8ZXe?s!9(3+dJ61l}M9xD^Tw0-+P2D6&CULJi_c_XfE3i&!bH zfAPeUm+V<#&<7B#e#yjgJXf1JP2Zc7q)xVSau<$TIbEteRy@qs)WIDkZ~P|6DQ)e5 zVXcokU7XA~!kAk=`fnSfO1=++hzn#fBSitqp+G$iz{0kdEBhfR2=IH@rp8ZoSSu-R zRCK&qhHCII{m68eB~7*|Ir1JbNzR~^U>l|i20EXRo*rUonW9>_5`W|x-Q@UJTZsF4 zAE3%Kuu5Rk?1UChFGbPH1mEJw6$Nm%{CFb}D#(wUg>PYtJN?x=H;+CVUB7w6--jFn zVvt55@MV4>#CZ#2!apRwuP>LmAa_nTH;*p(8uD*X3;cKGY9nCYQf)6h>y_AEusVohtIW8C55*JF`JQYU9ccuK(!^qHpC}dillSH z(kbD7olR!{OM_Dzc^o#uk)KOEMr3O;`d?v=j z3{|w}f9(I1m*$wV>vi z#~&fMnH?FmLRaL2E8z;BOD~x2mhL3@OL2h?&Gv(zeP&KU|9(8mzfK$%5iJP@@B$-tG4SZIwUVsKo95AqSwR)OZQ7X0D@nNU+d9)b$N=2#&d{+YD-dfvayBZa31- zXnpJyxGxzkCBqIbzJt>$sOj?Fo*#Xlh||>ll$KQ#s8Q~I#5WbDTC6K5DecKN@G6-{ z(1d#;_8A4=&~-m=P_`NlxhG)>o862hF&MVJH~20;tc_hv635q!r}_9k)KqiVlRxj! z?d6swhc2b(2!$I@kkomkAS~my7My=dHKNx*rGf2>wL7J_Y7kFWUThy=8v<)w7mH|p z-utdVQ}Y``BkP2t9G^B|X%}lecbh>$#t;Yfg40cGRWQnaIA)-d+%0I zKJiYGWYRNQMVbM$^mO=+P-F*oJC&$LvxeRbU`PpYP3>sSZ<}v=y09(Vxat;h(N0Ze3I*tw&=OB9)nfEbM8olKz=F2 zpIjPqEIRn!nijG$+pI-_%Aog$&ynb8)jZmbaCdX*GJbp__R<2vFT;bCfgs$fwps4s z`c6D=Vq_f@v*sQ-u*)(iTi&cCtlo#oSy>5iDcnb#D>`HXeShYSaxJ|5CG#}&y^X)> zxFAEz%=hQ*O+#Q@AQOB+@=lh=C|p)wR!-3q@gh2w>+-fKch|aR-!32YqiE(PWUG|u zE6UnHiCINFUF&59U{Yun7--VN3qmHV!;EGKk2L4qw)iVujwd|J6!cz3YU&xd8?0aM z2A~HR)fB1S?*X6a4FF1@@e@_L9Z8LLbs5@o8_>S_@gnK<0BP071aMQ26~<{WD+oX< z1hmBLtdbBBeeqSKXTq1DSc4?4SjrOBS@(g+gx<_%%h2!`BgO&Umm1Bhya->8{`-9t z?`D+C3Y{JasP-hba8(yvom>t`3eH$Obptn{Qt%W!3g~_rz?uiRljU~dKLVy$s+m9g z4nQqED=U*2RPM6J^^`UPLZn!Ngh?b635$R6i_lCtY^b?4YB$V;jZOsPhhD%3{2sbn{h#mHCpVS+ z@LJwYsK?ng2qxKb06QFVS^Y#+K*H1LUP4^9+7CNpL+$5p4k#+rGJg(544J;xp#;w9 zoKfv!hUi?oD^2z;9GW|M=7oq4zha)+Ju?H6G`pLU=#R;`CC2T^!E@&CMFdLD+2FLT zE395cnxC;e$(?101FZ(VWH9~*^MtQJO|~NuO_Jc=V-k4&=0y)?7PDug;| z6X)jx34=205HA;sz)Qz*Xg;&vpHCWpC<{vX-YF`0HoyyT5+iHQ=&s50*YH6#`fvVI zrZpNM@Dkj`lN6bs9{?jx(|TD}FCb4%0xV@6t`QsVM{BI@&*{|srzn@?zHYpzZ& zzLlxyojqpcKP7K1vj)>wZM}jxS5TPL(9YKAeiGba4&O1d@QRNp*qGe#1XQJOLsWF+ zvP#{ifH2lx{pwqKck%j(6-ej@8H zECr&AfLj}xkHQ-f5t*4Ea7be2+vS`m0i;Zb6Q{-8A~@QEt9 zsezPFR}A4X5>76<(1LrEJQi=8@<;QNxb7#g8+M@cJfPY=3(MXDzDHcTriQB=NC0ZU z=ZT`B2e7-K?Pv^kq1h7@utnh@8TN3=Zs7n8g~wxsOT0Ls?z=uAM=x1Y&dx8wPM)Q# z=6s)`*7)CNl8UNNWntVoRA3;X5i(VWYqr;}HP`cd$Y;nWuh6`aQSHf5Yc{&*)4~OA zI<-IX5C%Ddbs+3O5p2C&P-vi=@|)Z1nWxVKa4_vcK6@ju>ZZ;z(*Hf&_cV54#`QdX zK-l$czmvn#&C7?7Ffrwd6bTg~=+O>XjcA@Yl%}xTD?4&j-Ik_I2Vo-d2XS9-hmp-Z zU5%3YzPn$toDQ=O79*P-8^wQEG!5hc_=2zAP?Aa4o$UQAEk5q=*cED>-j49vfa5ny=-x!0W|c%7Eh#`d zsfdfK(jDNt#^zhp&Zainw!fMp`k3YCX$)!NT!3CiMUjM4K##~4-kE>2aR(9&t!obL zl2#n~jJ+o9qr2dIKb-18?tDjC=sK8|;`Uu(k7ayNQt{*2QtfP-clodgkIuEgv+(RK zyFkj|fBUC}XEVO}7n!&1UN$LSRl}P~d)BPfSsX?KoSec7n-*fo=ej;x?_Y@tl-ugg zHbtL^ht@QIw_i67?S9^PcSNOMnQbGjEMxDP+e5c)n$kJ#iMJoZVD|Pzc2?R}!Smoq zLlBizH|0Ky6?zVSx;7(=gW;*Q!#KHhgi2;#UCw8TiEcS71?EH^?;$jjO5v%wFZp7$ z{ibpDd6bm9UK(vU_UcM;*~3FE-?;73`KKgK`+WcOjF2=CuwtR}Rlnd*(Kpz4WSPdb z|0@)7MRi9~kQF!WJ!FvM`OfuCy%-pBQ7|#(@cTl9Ob`wZPu<=iyXw*|sNsAD;_x8+)UB zpHuwpVO~5m#1Z&1HyubIx9E1QP)@3wasGo`7K;AJ&g;2MI8{Rxm9qyLEd1_aLl&;% ze*2_s@`*_f_+r1wQxLncH%{x#Ei4TUJR>}R%XVPa_Jz_|mkg!;ViEYD6!1{nSDcyT_~eE~DJJN@iWYY>-#GnRf0u2eT7 zM1rSuOptekaC@0<`!6+c$oS~;n19@V?)4W6TXUzF`#V2Jx=)OsPeoEE{$Llb`=ZH- zIG?2(Lw{)Cn<-5oiWY51kA0)@ z%=E{DO%V}d;8>FJ$lKH_A6q=IH9&_Q@=p9^&$3GSctzQd47C%rXMfr~{l&Wv9@onq zlaH)D8`Nc=rsS-#P+D5pkhx~dZ5zSNl@0wc;Ab^>`4bvT6?vuTm25^3H^RWWsOg0b zyM7ciF&Eud^jGJ>uUBY-ECruRUc556Kbqmvf&7D8$y&A}QV~Gozl~78N*)Mf{QwZJ zjQPlkJ^e}u2$ghE>1`$ndk$`n#9G>1w%1eOb6o6k|>YSIMtzE%M-L zTSS-z;^kQlMx7#gRz}nG0cBM=(yC8Y#D{@9fhi0C}}Mz>D-o_FNbb_IGj9u zyYM8x#|F*+kM~B`_%^BE8tgZiQ^eQ%R3!km{~{%LWPavjJ?;2CVtOWY27A}qbyK%= zuPWtX#7$T-5y}D*T!DwED61TFto8gwqKVOs=Yv}+gsK+{aM0c8l zyW)QH>Y=SKl`(w)qQl5c7dg%RbC3o7}adYS1wBzR9 zoEslYQnnqj`QTQ)ecVOF)`REz>J7ex_ujM0_N&+ODcP6FzG4?Wa3FRXQ0*$8*#}nj z^S!tC%RZ}4(0^<_ZR_x5Jf2|)C>!U68YQ^hp6q8BRY= z0#h{a(S#d?N5^Xnl9HOVU${=tz7pwZ40eQ{Ao(+l6X&U?dR7cX4gu9HHHK z6Xi-WSrawnwWf(AGqyT(JJj+S0Lb(%l1mORLu^N;#s+V~7Xq1#==^J4bD1n?AczF{ zObHtOP3?JwV;2BhGVrl@Ag*|DDe!w*i7Shsrm@gi3lQNzM|B(8(gM)WG7uSMR#gC5 z|I8cRF0)RWm4NX0ToZlYC;>WgTMKj2j@rQhgPf<4p#&^ShQJ?R%SN5V zI2XblZvosAOr-(5j=nh5?gta z4K)P}i@exN25p8oz_V zIH_Y`BnrM>qq<>eJ`Q91DfL2u>oGVCRaL|!U%3Dz<7h7Q zdz!5)F8GJgPZS%=Tg;U%S#OWl?@=)UeQ6af$vqL~^Z^Wc(acW!o2$JE1(T4lncek+ z_o#MFwvpYVvmA9+Df3_V$eKT~sv-pf@VyyL+hH39=2%E!iAnskBqL*cAiXf@_?Z~Y z(`yd#*LuIz@}5XbfSQo0m)XO(zBIKrZvm44t9=n*zRKW>I5dcEq7)GjOGU3Ue#U^u z6||G}{y@tlAr4!|#$auz15-aNRG=$wDZvb?Y_hOnK_`cCgW&=>9h4<6$6I>ln*OT(AMb>h-rd*4AtVLCIopaZ&3((K) zy%I{6%_aa)Yu4mCnJk^9zhtJ9zE%tC+=&Im0r5$RMuwjwrE^LYiquB9V!---?cf|O zCD6M%$wm7;GdD5VU^5h3-tJ$$ zz)$HahOA5u$`-&J5(Jbp$3n4X^|kK_djOEuyKLbd)3ZtrV+}7CXlWbvwxhBT^HlT^rQ)qf{<^6jmF)tcEBa*1C41kdbYftVK zkkYSk0d0oc(;S$d0j;Vm!@S!M*?rV;J(+MmdG9@Rmz})^^AJpRQc1Ym#BG2|Tt*9XeDtyDpf428$&B6ZQ_PfAQXHEi10$s$%gUyQYgM<*J^yj3~%Bq0H19(tn3WaA-DG3mQfbj2M$# zmQJhPvkql@jJk&xG7tKS11W%AhE4-V@8semqBg4zN*D)#bZE3O4N!x z-rWNy-~2U89k{9%eFkmK2Br8*jT9h0|-aiPLWb9GF3{Qh2sYoO#nx}e|Z`? zD-nA#jxA9PS+Z{cbtb^&D}Va|sMp*_9seou=G%sr#%G@Z@N{yRx4zi%cqx-k`Ge1S z5pk{8DMuhBuL9dT5hgPLaDWNa%Ie+X83N3n4_QgW$4Ph3&cFNM51<2QhGD0$>OD0T z)#o)4wBw0DKZFa=&a8oCT|l2W7iClW6sWFSy@jT0!m=iU5)dw6U z*BoNJ=;e#F-YWyYxeN`)D9s^uAt2>51=K-g#=gM|cpS*wP3YHwwMYBUj4=$&Z zu6AzHY4BQ6nF=bQX!&TPYU2>~@zdPws#+FPUZeDyKePRd!4qBbsq)V~gfD`xP<~FL z{?R}6-uLFW{B&IU;RhbN0-YrJt*|O%zf-E?<(6@Z&)~j5AJ&m8G2jhdyL?rk^8*D3 zS~==XUtb%-EY%WAq2%U>Ppr*{tY7uNl=xgd6ZI54{Wph{u^@j?&bo3M6mU;ePxXyi zLOdxK)KpQ;s$iC-BU;<;gabcD@W7BHkSraPz26j~VxSWIx?o$%+aSgg zP52BW!ptuMvE*s8-Qu#vH}3GXV(Pb6-V-zwDVJYR(AA4lZJrtMeQ_jFW!ib`S^vmfT&L-|+28G5 z1D5YbH&~F9v8fmnZ}a4myHoXjZ<$muIFe&krw1Z1XM6HMeY)<0bL!4H8psMTExi5m zH9zkh83mLwaY;6Xk{!xKxhMg+Z@UU5PX@o;_nn&AeMh!q1N3PSdHiR8X>~kyDd^=w zqqb~xFUZKrKD!(Ex7>#8r(HRHYefQ_q7~C{PX0GT3pYvoiv4lC_NOEaLlg{z=n-UK zZ;e_1o5?UDjQ0_Qn>?r-B5J?sPwJhmuLw1vzTM|9(3V5SYU881mP;YiR4+eAd0}uj zkE!vnfMk@EGyPi!i*E&S#g3=f&%Au75D=1jd0NttY7Y}ej3p@&LI5n6VhJ_?r7hl* zO>`5RfrB~UBX2_0rN2fDygsKSa3FAO7~$>S1ONeoV5C4r-k?T`mvnu~R*!lnDt(GQ zPaVEmbM(ve5-UF&A0zNb7Y%3+sN2TEIYI2{TizqK&kW*I6u+~hRXjQ>Ozvr8Qj`UDcNMX@dN;JOtlz(8U46`=b9 z)6D1O*uG{z((j{7M>}ZSd2LHDNSy24E&DcaR1X$&wOpVstZTO%6~xO%X+W=}5jQ=) z7pY3K+Pidw7}cIeSX89TzSj$PYu;2V2W79jAfdxnT=o=kc3iW~`+C=K-`n)v7KFB* z<=rp%ko~Qte6{c0{$1Q1(HG$>V&B8`oANp=-&4JtvD1BuEu7oc)VtR)N{{DqY66R} z!mtlJD#CBBiGh2H5GpM}d#DVS@8;>d;URz9l)G;43c-Z%M&T$pT@?I!cz3IqaI5%l zpiQ{Veo_B_u>dbJ1RQQvuFl>=CHL!uufN*SCCdUtTY}dak*n?Cq2%2T?g8q4vg<#v z*0KROvRAb1@|sQ1V7Ks zQ`F)<&-fuP3RY&_rMp2_yB~RKmrqOXjfc*2Ki*uYR5_+7z=s6j*!wdSCO}@@Z1c_MA=$*%u2S&Dc!0)hiyMm#>#~kPlV;m&|I?xuDghH2x3ur zA$@sK7>U&jS@+L0xJj>PA0`nmb0-%4iPKv65B%#By?0&0BA(OjoWH29z!Y{DF?OOZ zT@ZKIkKHY+RNFXz{l5dWgNe>B^cVy07-Z&T;$zJu=7Afn>k$9!sViMV#1kj%dOqhA zAFk^A562|7%cXxP2>TX%QGn-PkkDlV% z8ry_jt9>2RNi=-%Z9@#v_$c^rWa_uIrV7*J15gwNf`0+RKOS-=VFTrA)ARi)s6BaN z7-_4*c{9{imw1N5UKiDu`nW8W`9G6=ZcJ?e-RQUCu619NC5MS9s(?$>H5(`;&+XXQ z>TAkgqTtR|fV%}8pUCFccE3!7=U&CDsOvo<|72N!yd}Yi+TD{pdq(B4b0(+rs^CMW zT4&MhQqji7ORHkVl8K96VGpe~h~7hHM@yaSE&fOCBBDX8ECJoNd5=U5yaK3nc@+NQ zq7q~+v#QVgL@4lLV2Bw}9Ai_qQK6Mpm5H*G&?gU6)tu?Xc@(wH&XJJ|xe%=giAZJX z=$kqMv8L{Ilpil5@c|$H-_ZMPfhG91q93KkR%iLxNKXWYoo%aUY;2GiwZXc0hN_@o zr<*gU{9ci;-z3a`YUVemAjwzi{EQ3>(%=k*m&A3BEBF_?*oHxLL7xMh=wUegK;P1t zLI;|y_Nt3wC^y~DvIHU*X)yYorf-28_aywzbVlWAYR ziDs%9xNP&a2SPHD^0TYLHJPk9-A}Az*Y}4LcGo6OLas0OZ(rB%&A?!iUS;lXyeWVq z?I}15JU)14oDX_xnm`CcmTQA}r!g`KA{){1jfTqoTE1wxk`BIj1sDLIUS(P^0UhP{ zRx>nFyDR6k@(&e?V(aYJup{$W0wF@8)Ff@yGFD@&!y}wdzbk%ozUA7zsi{&LtZ3$H zAKiIXJwg0B$@xG)V81==7tg$t`%S=iW@Yi6l1QkaHv^CgvMLqu4O#P_A!$ZRn5AxN zCs@6dK!fsW&Ai0;svp1f9{M2M%I1sf{55)K@~guJ?Q>+2iP(+!#!Gte_6Q>CbHmkx z+~|2je~%rS4+sha0GxRlc*R)1=}DU;S6mWZp#?SReTkPCSLvLI|J)AU)C~C z3S99OvHOzCDt@J z%3M=>C^?^8T{N^kQ>pi8*7eSIP~eoM?l$7IkuuC9EUWINMGSs`uoN|31~bo>?7qgX z<*201U(}>Omfcx{U!=Zxe%hW;%z519iGKMIL`CoumpK8e!RP2txeS-CBn;b2=(~(7 z)kQLPamy8Hl|_&Wy=0xnA1<<@=V-%}^*?1?5r0dr>4j3MW~$Gx?hZD7c^qp3>Hr2_ zaMu=%=hnvRu((Z8^iUnK?W7-8Fu z#iTX2g{*QD(Ow;XG>k>L(j3I@aRLHRtwz5C;6Mdpa zWO{Icb-&bF6;_+Wi_H0eQl%Z2oTMqvjmrr4oif2 zR+05jO%K(Ao0o2JU-4g8JZxo8)@>?eks3lDhcdyewbdV1G zy+s1LAg>+HA7xKP6FT?r_}JVaKVsl>6rhC)PCn{45qB9ob70K z$HxR<#{#TW!eBh<-|W{9%IhACLc)acI-DsI!}uujuz;HB(uk4RG6mKZGB0E-g^>e4 zj1znh{|uZYAk`^5M{uJ}Qc)HAm{+jffDixe#|sXL#rD4O;32(zJILNGD@_nuK>=w^ zwl@`-)4KxK;hqZO12cb8a9t^uuir%F?-&!amw35v_0eR^kbK7aX%8gB?&?Mj_%6v15W=VzhuwD$169Zv^Bos*l`)qaITf zGIhjGw7KjGf+p;qS$U`hLgE!p$ zkPWcr{z?nCo~nqyAPruI-RR{$&jIJ1?0G8%%L(mW znS0!lS-fn17^#Tw7dz_XVQ7C`NN%twBVK)utQ9}bxCglShfaRVbGKM)Hu1)?W!^TPt|1y$KykI%zLHX#~$4S<*2@=*72uZgj z71D*;>&VPJ)Y?@`-J>PN5Y}(_^e@i9xUMwCV7k#Xrw>lVImh&@bA(j*e^Cj{^%(v(@%X zD=RwOh8_hv2F?J888G7$u$}XcDoMTO(+%1~wcy%UajC6yimDsXlqvXN%F-^j@C0QP zxo{2UwlZk>i;@rg0d$;9go5F9(c3TP8;?+g=Ag9gra>r~g~Su_nyKj;%#oqLNw!E) z7VDUYs?LxV2%pL-KI_MNa&S>s=Y%Y-crRr$p0Jsq&&V$(Ko}QLi-$V9+=Wp?Y;roC zKx>xYHQL1lGqJU=we?$}UBUJ4=do>;{&V2y<@U>oW~#YKsldVblHT7TXrca~0N05H z>Z~!TVPat)TeXXQEhKz1MIMMM!R{rr$I@S_%yO_ARN*AHf~z|bZa7UOom9}zG8854 zYG3R72Qc zINz6V*?F6ZkPUa<;<3Gfw7jAj%r*R)^_&k91mt^UHrUCEKm;k>fVMm=zu9|N=R9CL(lazzUVt1g}hL zq%`n^R*0)RtEhq#6v&R-->aXvbQ?BsyQSrC2U6A;Ot_y+Fkc_cQQ;p3k_-{@1x7W1`cW_D2$=T8#HZ_x*-z#NVge-pwv=q z!I=LIURyMS&^q~DoX*6=V`4*q?!UFWLr)6X8BZszGD&U-sVLmFs%pmpb4iYRFw8|E zt2)DQ3%tVfVCMx?H?OcOKDhGrnHa=rW4h)gU_-DVWxD+p%?+8WjVa3B5L#)tLU znT(6PtYDy-J{Ab6kGnMJC~7rL3z6`GR94O)&ev@vr@xrh!DEN!p35LTAAHquF))DU2^+EIq{iCRn7o6@HObvA!-A=gb%GRQ z+vqxJnN+l1f*Zz6wfpTd^X#wW%}l)x2uV#DQ_=$hkm(}i!0W?5tjY4 zzp>MS?gQVNAYQ(^xbf|~p5|DaCN>=hm2gwjhRV*EI_7@c0fNIo-nVYSV2!O7G&I^@ zVaK}01wG36^-QQeU8g|ESujqUxkiJnkbvvkuV+4fD#!B#9=PFIb1#YqbxkTN#r5*T z$KL1kbX4qG>%i8!ma*}daD48rg`dMBR>rkU*qej~JPg88KC>Ywh_ro0t5LVH_eSu^ z&RFgH7Va}<>SnU+ve;WMkzyCL27QhCMIjWDpFgXW*ik8q!twog=GLhX*qT(Qm!Yr} z+p_><5YA2BwDfK*Ns{b8+el83E?iefCw*|cwtt6t-xor7hMvik>dvos zCb31ze!eJjZ0U?>&WyGYza7`RVbeLk#_aKuD`iW zKgbGoA>pBpwZ48|mTVVV8tZ!H^8RqbbAJ zj6^)*G0oAK(lRyF4_$Cy*9L8Z24&bqQe3K$xl!1yRX6}r>H)edWjx%y(d`0z9Txk; zzl}>KYPZ04#e*_J|3`}_0IQer`lPmo>^Fa1Fs%&y%wkKgN;p ztKofiX4I07aF|JyR_36ZL7-?|huJ=LVupkFDGnGgmB#Pt#f`F6pElG7g*y9tX>8}c z;s|I7j!iw^Jy2Edadts0+${OZH7Rav|CPmvq4Ay~&(Bb>{u_isi{*-|V69@W6PK)H ziB&f(cM#)J4jCmKGSi}WjWf9z>=XVy#g(9^m(4u>L4f>5XF(ZM#Hnz@_jRxN)i5o8 z)4U|AA!1a)TxD+9QFC$M9ke{o_SBqBG<7jb6uy~G1x8CJCg1bM`OmqiAaM4E*L^(l zzDFrWL$>{h?|s5)N+n=hseo62ROBKVdi#1rzu;C;HKuG&vG|qF#zM>OJ_z{3NjqyW zstasB8VVUuGrVkbE=RCXEa6xTkb=lQeogwOLV^X)pr*V}I*JXSOB76BatuGnOAxm! zjXoRB!BsR1d^bg&Z4j>)Lw!+fW2xJcV@}n<+V3nU!_9dnT3Y;E98?>LiuvHu+{ zcgV+zuC>mY!l}pPV11iDg*uk>T&t|LTDHX;kdXwhMuZ-9ASohK>e&oaE+4t9Lh5ZCjXVR!VJ>bZ7duN!?g}M;C$(nMK-Ow% z9eZ(&k!6T3u6S`p#%7?+U2Wv(=$?2@Ruq&Cl%c@UM(0;ctCu%2&>5BnfyU*nymRqa zP|qiIRy#_%UYwQ|TW@asD%oy>|7Mwd?{gi>bNg-j5BK`{b&^}!^f#!(Lw|K5z+vhU zF3twdSlr%*q&f(0rU?-{j6rs&%ni)7#ge}DR9|9}pBA&}tSFp4Pf2vke{-i;o^#^{ z#&9dl+=ScYd=Bax4zq2UkYksb5fy12_9hV$exQd0b2g732=`W{fTpW38}M^?YL&gY zFfaPCrjgo}MBl;o3R-osm0aU)c{&ZX^?GM*ZKGVMUfb*x_{Nb~T(Nt9Jx?3Em}SW?CmKmD)9h?wdz@Z|3Y(E(xzhA+rB{xY28nkYVf$suua@&LK6V6VysOYz znZBk_>($=b*;BCPI&b-OLk4s~8P%D&1Tg!m%Sh?j>nfTRxzm>rn+PGg~@B?jm4(Il+%2y`UaTf(OK7U5{P*OGy+mdSl z-GQZsb^fNs)(ck^2DF|hi`#ck-X6wTkOYX7DSR%dd|xs0*})w}AY7v2E4=plCWaVY zk~Vew+XFp1N=oe*0mxaWX5JAssA$UTHO76ROtXQVH85Uv9SN}VEMzrmXYl`8*}BE# z8bI-_sg#v1uxC9ZQOobyUDF1cgCaBRhq&SAW0o@g(9Sw>(N=1NLgLyq$JRTBASu+N zleZw{kSBMK447Ks?p;2{uQOu{*vnjuLEC1^)5lj;98u_Tak4MJb7~01 zOgh3svH0Dd{K)G85f5=~vsJMNxXuW9PzkuvWlEPt8;&AD>RyyhDhjalkI%efk=O!;n`Qg!hLXAQ^E z=UM=%M6S85zY9w(u%qHK$!e`^IbnCYo#{XDwtiXn(J@l-hCu^&%0@;WX@Xlo+1_gx zX7`V3^W;)^6@7Kw&na~~@E7NxLn7g;Zh^&ikTKny z5tXnHNA%)F-AjY^a#$&8V-5Xa5HGe_t2c&IHyL&?mG71RWF_f>jCeI5odkj#nyK1Q z;$uX|5(B76HF};=xb!tR1$v}qms(pR+|Ht8=HlCOww=xi&P7o^b!73!tSGd zaD`l=O}nU7oV6e4v^%k`ZdZFVgonnLoHysR52|-w4LS>dWW-yhV!cDIHb-=%Gw=$q z53VlL@wk)_9QsQI@*y6w)@N`=k{acDlAvfu1u+GW;)Lg@@0BZk>g2YTs{4WaUo1fW z#e~>p)yL%MNE7LWj-y30z)DwGX!1)Z6Bu`WAPbx7wq^HqP0{%sC|N&*j|q)G8aT9B zq5y_G@)Yi*x?>tsnoEKEw|Lu38(oyN1dL@==tmSK@6DK}Fx_ABeTR ziEVev27dn8Pw~ICUMlwzvs*_2@mPWAG~xNauuigb?+0?YDF!)>?OFy;OSbgSoe5C~ zv6C}Lb4w!@sGmsvM0YLUn)$;an>dcL2>3iVc@HF_XgBlaI3`6nfRDB-Ce)ckrivcc zr+#$oie>lPF+;a2E9UV;^~AvnL-Gf(11KnIO(l%x^%S@t0o#wS)b#4}bAwHw(PdZly0}%r zg(Nk5Wh?_LD?n2nrZKIVp;Zh{-Szp7yq-UT2JNxt7Hu|h>hq(5KF4obVb9pZxsifV z>qiscl^Sq^g37!GnTeHiWt)OB7|G$nax~-&W{>Q3h+#(xZo*j2O%5S(40`l> z14mLYG!a^PsF~S%rYEc%F%vnYP+)j{fZdElDz2)aamD^=S6haLw)aS3M8y@gO+V7Fq=esTfILdJ;DfjAh3-t%Owl^> zFPp&>MJ3S2xDy=L-Mn{Ioz!W^lW2%SSH`g0f@DzOksNsb<8 zdwjU$mqLm13&o3g=U3KGvgQ$_Rnev45uKvJ#zRyR6-u`ydr}2I{{qiZEK=sN1iRIm zVT1;CubD;ky?fLihFry)uT>khPA@9R;T8j}#K#Xo<(DR2pXH4xQ({+s;_T_1#jAH; zFj7RDG~bJ)Ge@r3ZR3?GSS<)WY{4QVG>7fcqVu12qdrkc;~DQ$aEWgyP;Rta@o#dj zeU-v{Ojo8rKKA;h3Z_PNn0ZpiH~V^g-A7^6iP;sJ(`{4QFVk$Q>ll94 zyq)$9UFx^9e1j~@@Y&CfJSk+%wxYD^%kE_8S*T;KC)RsTjoDAD%g3E+xle}dcwI@} zb7~nupT;z4@}H&ze#^)OfphtkM!5M@pcr1RJ#WCvFC$-$dN)wA;2#lIMC^Av1}_!cXLW2AP8NP?Nc^tg#|=xANQAgqH|T z3Mwa@(<+8Lk2~L~ixX@Cn$wyV!lx1Q=osSy;}S73b5B(W>j~zZ#Q3IXKrx;p(a__D z)ppiBIqk{sQO2>P9b+#3(R!sH-{5t#I`vaHhOsqqFV#Z8irM-A>e4Zjj8+PH>cc9@ z^Pky36mY)9So28uDf}0QpXMtXcv#qH-+Wu)TP<)WhZ!*P%h3GNZ>Su&o_Ls)h0QW! zSZNu3jQXA2|BPX8v1#9l5!Tnpf5xh8smxVGFEjuJ+oaxQR}Js^Z;A(kJ(K|)@9*a; zN!d1|0G#h)(s$UuCx7SKrO(nr@2dvY45tA}rpS){qYCBubRD*`6x#tRSfy6G*nt44 zNiy@1x>ggcA0-Dxe&iY4O13ccTRPbSrDYHX zl4Jpa$OyUwvDoaX#S{J#&Iv&YzUiryoLv5qfs3G=Qi>$esy_prWSx`ED$ie^>3YD(fxQK6y>zq`$61#oaLV>hqnvW- ztWVFQc3x0Ok3IYUI{T`yIHGRL5Zv9}B}f9n-QA(F;1GgaBcYMt?iL`p25a0UI0PrS zOK^9Gsm#oG=l(Nq!wXGUab%w@Yp=8G)FB+$imNr%Zd9p@%LUVsB!$@ziQfNAbG*|A{1)F~Xb-yzE`VA|li+LbRL{Nxxp zL}S5ox0A}1z8W@Qb(O9tav2vSe<1-B?_n@E(ANuCwAn%x;=Kt3p4i!@>)XnZqCDoT ztfmR})KaD>aP<2G@?74Tcg83ZWKO_YYmTra!9!_KXctdJ1Q>W-pSr)woZjVHWP^>AHEaki3*GT zG}?T+`}*+b8PNK%*lb4*K@7k)_oCczFzM%+%5!rjvWYFIxWZH~Cle3y9cIJfR{fMD zc?Ww9dgcHsaCt8uAQXs>$N=#JBPW|QNwUdT5F*=^TT_4PxD9>GBmv#vjMj&GY*9Rd3MLGuN2`<0RTMZJV%SMz5Kgz z$$HAV)x^UHSmz`p=o>Z_v3yO6ao;Jb)5ajY%_vJt>E+;{9?56&rRoplk)BLlz|sxL zMVLPi>@Q_}ydUb>4G+aBKdCg?LwL@7Mk_#^mz)4Qlw&J6q-OtPQBt`zh}J=>zhJYZ^dXHY%|Ny2-T;EM;0` z_7%YOgs5+j5W9~}>62xGQDw7o0Yt3zQTiiRA2^-Wo@3)H1&|iUTs7>tXy7M%GK~e( z5)%Ce_NCxq%eo|`r1#D0VOnmE_m}d_ZQbt;;YBuZA`|mq!_*c%$JpVH zwGZ}7{b$6YjfByM%@Es!%XmfY=B!BTv>Yc@Vu~an!>?$sxiAs-VqNNXVSR#_AFORP zVHDZt<#>PHUF7@qdsILt#j3eOpvUhy8H#=G=PMayQ!h|tjf?hh{z%!@HBkp}C$o2# zjjQXb*-zS>@o~9ZlMe4&vLcV?Jw5NPAN>f} zmb!cT?)YyzJ?!2X{t@Lgskg%&aGT^NH-t1D(q`>$H1Sj(nt7v0UMc~4Zs*;i+Am5e z7J09{s`rE8Z=k5qvmW#1)W}DVhKBn;jGg!Af?+=A zt54!tyDN>w;uU(ZZS6OPWm&c4t%hsfRikqvMTda(mgf0dtjxbB{gQrD?FOpQlbi#4 zr=R9R(w88@rEbcdj(U_KyI((+BcPmOLhulWmrylXPb!^RQn#Ka&U^`X{kbz3qC@11 zYPYs{U*7C5P@gDj)@QeV%vNpn1D+C?iTx2Ir^)?sEB~FTwz~RtEL2xp`Z+iNURxXa zk?8l+DEEv#?OpUb&ujT8-riQxcw)mPX|Idiz}E*v~vBZ;1OOynonL z$CF;H11f5pRQ^{10#I4;|5;HxXv6wAGJ0ylF}AL)SV5|V&YdPhNhEph_k=d)V2TKN zVb}Md)Nk0uP3_S$=w;hcPt5$1w#+Cp#<($%b(Zf_VG}sC&EN+}frL3&l zcK_OzZ#vBWrFl|jd+m}X;dnPscw;*x^B@R>J5yS@z`1eG8CCFjDOnC}Z4W!iga{A5 z5!9t;7$ie(?}W#V*TuG7%>d2AjLk2qWqMfUv>A47DtznZL1`oV!1Xmt;;E))_jJ>) z5;z@s2Q$axI(PeF-8^OXQVG|}hZy=vjFLhY+4n;4vSLX`{5IF^I#-6m_x{HC`=QzR zigbw3GeJHF^XptdgIAwKO9XbJBPUAyOl;wOoY1uD zuiGkSUE00~=re?_ioVsiWhS<=MYnRp=1vi#BLvvsK*xG0KqnYVyOYt^QS#-TYBZb<)mkrDM_N&szn) zh}oIQ^pW-CNZm&0a&0?KOztfPpcV#eJ#QicaM1E^W0x;8%~aRAD^e!B5GJM!n}W%I zZ1bPppOcHMu8u9}59k?+9TH0^T8UooGGSlaeK! zy*R3MtK%6C*iKKjJf4ZZXyf(7*75}c=iiDR=^FO7JrHzE(u(pPed)NSv0+uAO8NE} zOrCX%>ZiwNtN3y4iP^!Il%51}SVH+T((5Xv`D#mq+p#^KU(R!1Q7pM6m-5K4BVboK zg`A!#;RY30o=3z{T)XO9e+n@9WdPo)8lo@9qNZU>^kiPoYIR&^w#Y&Rop<@c>j zvBK|6L+_@liyTahe9EqQiyqHNxa;gNUU54E94$6!Z?8uXW>-k(QU3&SH5)SlW4vTh zU{avM^B?Cwa%z~Z+AaEG8o8exdRfG= zkv-@z4Q>Az>Gq7%zfkdIu+1g@;nGj>?65N$`}E(WD_rx9!}!0#AMUhPyqD$` zoBPnOYVxC1Y-@Wr$4DA5j*sYC==3;!wmjBtSCVg%)Zm~-((2q2uX~si53*|B2u6ib zKq2t79A14s?zr8A_o4KUZl3TU#@D}#H+A3|=FuX23)NV;_pOJK!|ib;3%m)8d7k`+n349(yJHt8(;O+> z5`QeFoX;*L8%R6Rir*7c4G0PF@u3T1hbOd8v9Gvzepq<$5I3012l{_=INa+s$|^p; zaJ}n~StWHZXPxkT{`yw+wG?;|i&lQVdc4gG9pZ+}mf6Sa`xbCXhyC>F4biVpb50?v{Y%0h2?cK3?CwpoAtp9(rJH<o{^DOlo3Kd^>St0^{X}*!$K@!E*F=+ z^R8M4lbsqG!UDzST>n(^j?#~y!UN0dE5+g1HHahB|HJYoJ6wS0HOZ?V#EQaT&TaR0 zoZkb2dYg&Itp3=c-@v+5oyiwYZk3=Cr^Lmy_%@S=Z33QY0^>o}KMxfJ{OyG|b4*Fl z(2Bu;3wNNJe4y2GD23j({wBFVF5>awZgoZVl`l57fX*?(e&OQ&O%3bC`7&gD`#E#% z`6UH6i(f%NAZpN}YR+z!p+*R~`l2qhqxG_k1Q53azW z8JI}VAhz9w9Au7qt|lsfYB^;lZneQ`99Tu3cgZNvIDp+uHrAiHILRgpuU#$1DG=l& z{G;9=48p!n=?#DSA}c=-A}14i<}REQ%s_qhsgQZ-?tSUU&{}IomKdg&O%9}(&gk~f zxHSz%RHYeYkd#0sfeo4zgBTdX!+4x0|bq1zegXbU&NcSkB~S zDic4oO6aqi)O&1}f5J>7n_SqUlYB;^2LE-{YwQ?Pw34$bikqqDBW*k+EV(b)?`7IQ z!W&B;4NKS0t7SyOXpgCNMjR5utSKcZhOlvF0Dga#7uQ%wS>Qv&OuYiMCvcAG`N8Vp zHm3r2qX}3aEj%p4_88Z8OxBFEW#^;H8KhyF7S9lib(a0*^08IDT4L?*)LCRRw|r;S zivrao24U=3-Fl7q@nutbR1Nua!%tI$gn=8bvgug2w=}i~SFS(k;6jaP1zgcuZIc^d zg?HT;oDFGDW+B(84&(5fhtI$ggLk?YN9lTCdsD|vp$lPlU#RC_ZI4deO1jbZm!rlg zg&Z@K z_Y)+XV<*_^s1?%G6vCEOB;IW@OS!R)g^>5As^mww>JIAw>#8n}T;{`H(*k;o;nKWw z>gcvqtkz8G2CunOqbv{hxHo!nKSR{wD|Bd2UU$;+am=vu&BBO)~4y;Djh4~ zVq_46@T4e{t|xHaQZ59sE@!hzKrpYN!)}1FZjEq25$-Seb3{R>tQAO?$9+zre9S@1 zIcD$3*=P9^g;kHcg*MyJwa8}2yTx6{{a*`puHs~>W}Am|SioBvBkJkQd!z_grRRCZ zTG)DFeLNu`n^#>0DMMJAM0#S<*~66w`!J=Hy({&Ap2tCv8@BQkODedUmK3m^T<21` zt|aG#B{ z_4C7^9F#v^>gj0#bwBuN=oA!!;=+_vQjd}RorKBdqiK)9z!Oy1z+$=|a$49268!pH z99Ee%u+l^xU)JsS%%8_KAjX{Vfo%~`{f&KEILA%|i3Al@2|OG!Z}f$EC1B=3yQ&GF z4#j8nTwQR;Jyd>y zaj_vQbG4K%31hbz(3{8T9$xP}7aH1&6Pf)>bkYDhzwu79*duw#;K)~y4m#W{r-WPT z@_W|Ntr!l28d3|L^Q^XG(jJn8t59~G7&S^AVKuX`g?KL9X3;KnEj@lGfGv>T-!|TJ zX<4vN2>*~!jScv}JIA)1VW*&94*L_^;?@e_`*L4Bb>_762h2A5p|dw#xjwx*o~S<1EHy?bN4X8g)fJDW)fnQ{85edl(9 zH*$K_^_<4hgGsyHHSzZ>8v>a+nZq6!${W}dHpKJZ?Z%;x0x{-fb_MXp zNk(1~U>Bv%Bc-T)Thar@7N>~2Mf@ZM>=fyp+yQ3cOY`Y1Y>?)=7t+pI%aY+1(eS&n zE+<(mBbn3+CNOg7RvbZ5eWt(*!5izJVNSwQ46^$(R`SJ+YJJTYt_6Ug3a<`3X;SZ( z0RJ1I`pmz;=o@O06Y7~GYxPOmw9rn)!Zj)Dm6(Oee@cQyY}r*jGQJ14*Yb6ckn3M`9Ko4Pe_ z?wHhyDYH-wD*9Dn%!KXS}=kz%}wjtur>+kaM2!pCsZF1PH8ZFNjA^%MDc z>E;%T%rCO(6s4vVVZlQWRgNiB-2Lwx8+Q^Q)Up|MQYv6)ipqOlDIa?%L^kaTrO9T| z5g!!aEvteFLM*A3w+Me z97?o9pqL6rT5*I>Gr6g#x`Xc;ZCR`uwlelX;7LN#?BYBAtw zfPJEhY68KonzaP@gsv<8xuEtB5|v&DiPe_-PS!)G)^;fXfL`8p_OAGff*`5Y^~Ud& z0;k52&XZm592SFGCU=h%0B>uOo?$YaqZ?f=@6eC9bn97#JLUirtd|zT6 z1;H=A@~?jD`A>Q5K1d4de0+zEo8_xw-W!I1k_EtWNTjc?+{*P)gT%wZW?Hhj0x5^n zEBT0Wk?=qdV~fg7hmG-LO8Zl(wmRYLZIQr|t!8mZl9_Th(zdZWuUY1C$;w+Xx{ZF; zdh^PAtgblz&@gH=M1g*VYFkk|^p za!rMQII2tzTb6iewX+^@IHhS`g>t#|%YqAdBal`XVh6Q199p3+v5Dd8-MFEE@2%FU zV9X?%^ijN+0ivb;9ubAqUl-kDnZ5VR(s$B8SYT?uLd~oF2UTl|QqGo<0aL8jDTkp( z!f2BN-w;ivnGY5bER#c63XNHm!5=v=#0v}h0^Cb`u(VmJGW4Arj}Zo_g?y60E=lXZ zfcI|9Zk#MfmXywHjVK)+@pF`A9{U>s%A?jt)B6DsI&Fr2_#*_sFbqN-INGf1$ImD? zztIZ{`Ip@cz(ta$(ttz8ZU`*5osMyKMXV`u7}{>laJMlqc_>VR^o zd@c$@^pfBGeC;hS&-o!Df<|i{mtsM6*%bzIZ*x?iA$s=ydeLD`3sJBgevn%yyLCv)S%@_2L z)*y?f?DgZhGvlvlSFl-c-jH<4ONncxTa-|i<-+HM0lHP-3V&3oT|gW7peN+@&7w+G zRMeJNN1;=T%=(c;HjZVgS#P>+oG^I)u)z$vDks2S`Mecb91h_~@VUxZNi(jEiDXbSpf$9;12;ne|!ZE5F>}~kQQY9P+Q%I zyKCM(>m_uFSQx^x#2~9sNNCL+M8!lF*HuJISeSEh`XPE*5}zPqlBP2@&yN7^3qm)&{dn~mJ{C4~MjY3LJi)=rb3ayUly{NA% z=}9GGID~z#Ji3`bVFL!paJI@2|J4U#ue02a|Xb?QzDI3J5c*=a2@rWQ`S6IS>iS*S*)s3Iu=F5S$(* z*T*8FWZ-*3_|0MF!OHl9jIjkwqPO&Iu7j*B7e8$nHPqypM)IK{lS$ICX}}-rZ!@_u0F`9N`-d& zJ!%K=8ckS-0lruzCie-)eU4@M7$V0Y6Am?+aOHE!1bYXa%^R#Y#nClocv$CdUwx2b zk8L*{K%AW;LCb!3bPrw&iO5vymysKgQG59j<8@CD7XjqJvM{O8{)H+-UP;nD_}`PI zR1>2MQw5xDPQpj{woZ*l48%u&l>HfH)SaVRO$9->0zkBx6lWct8t8N{{NeB;Pl7zW zE~R2(e>AYY_gQ$6U|h)>@u@?W`bu3sU}mD+IBz_YuET}GaXeqQf_zcW&Kk=1NQqoX zbta#Da_(Oh$9keB%P6EqOKygVdUgQeuY_>udKe6{iR<8MhV z^2X^VP~E^$hGQS}1>A&_>~wc|R@ z837IrJH_1tNYN}hFW3wRPFn^a7!taSf(}jV*?RQqVd&`qtp4E3TC)Wja48S@+`fYV z<348tp!tn!+c!YEDv5(@D1>e;A)rG=OfgN*t34xdK^puokF~?>44SEykR>S$7bZTT zuuv8rOII$?#4Xsq*ap%l3osHlw+d0{y5}O4ltS!pnKK9oDGmTuDS6JR5iJc!aM>3U3AY+`uis?3p#Qtt=@g3;#v_K(mLod+tsX^vy%5USuo`@ zGS#5Sxp2AVJI9mP6go>&TB=NnyFy6TsrTvxJsa2pY8s~#DZWwHWPSyvB!x5=COvy zFfR@n`?%;hP^05HqMtz7JH>5%WSU`vcs38mHX z=eM15%WIOJM>&<4I^U82Ae%5r-OV)+j_4J)9fp@fc@n`@_`0Uw5a4-6GI^ia(m%-& zA7vzq9~o9k;txnI_)@$@J77NjmGz#Y@>%?}0hI*{I^N8fS0CY)vZSWrBWutt=l0ByRX-mg7}@*00iPf&`{ zc3+R*9w9Sb7))^o1V;MpERz?U)Xl+GV7Y)%Q>`r<`dGQXa`}eSxG*1Hn;V$VFK6%? z0bWh13_v5y#l2?wiFrOz0r>P~MZhiStak};J{#b*1Nv^0yC)hK{(sKeVHG|{Gcgbc zq{BNKOi=nVCi;hY!1UY9vI_V*pi&P5*07WjuG<-_QWm^T2Iu>A&i@{EkY2DAX`sTQ zCAc`oB$?cAVP3-f`t8sj)mVz5uChH|_9Jtto$c=MG|SfXENvjpxfsWbKOv9==H$ht z`#nLO8;<(@j`i4T+z&Dl695jOLs4JKxN$pQSpx^)Dnl-Sysa~&ymBVb>OR;Ao<8ht z8^ld!ecAY#Bkzx_o4W)<*|5Op;&2u6F2hFrvf5T}?Cp(5D3+ybm=b~BTuHDuha`9( z?alt4+YfD0AevRD>z}!c7SJ{TKxLe4z{W77)r}Wma{OK+;T+o~ZmJz^oeQI8ret>F z9oLUvG`4N`ucYpuo?Wy&DldeSdmk)qpFy0lLg6#*pryqP@uTF!cgk-qH8W1KFLo5^ z63sm^Mb(WITgCOgJl=K|cueTeMr*Hy)qcjk`R&G+;f|Fl><{RRyA|)o&wPRPDj!Vu zCB%XpQnYNY@|bOl82Z;S)rxXKD#t3DDf2;l-_hb;I235bs8Vwgkmur0Ck(|r5W zaNt86qXN1XPXun^aD~KR8$@Pojhx@F1Pf#!S3#CDPQOY$%A zvRX57K1WL>X8u!U<2Z&Qh|c965iVqTwmMZRls!hX?RA*a30PSId5YHs6Q{T{^#wi8 zL8l%0@C6^c^cy4|{}{NNLv^EHe{%ukUCt&J0Ni#q9CHG2y5eD_tYS7C^wWut?dDZ( z%KXf!1-&~yz1P-XCLx}772*ytT$SpwaTsX5HI-6kD?kR+?Yc#GPVMV}Q_CC{Xbwvy z%7nu>xYj0+pkS#L3FGw7w*U5e=FEHqisTPBgSt_|x7@seE7dsOH_ipVi5LUqlsM4P+(nyk3EQrw@gC(EHv1FZ)3h&-c!_%eh)#0Dv)SZp<65 zqNY2TujDl?F;^jbDLgU~yj}SD95cl=3eA^1&=5eCT;?vKC$*}PN}F#yZb({*iVf1B$o+XKE#N@tAgHeXbnr%vtq znexrL!{wKoC?5u z`{*qQ(INK%&m~+a08T2Sx;Zwb@o;2_RvY4 zD{-)tL>iZ7-607}B@FrMFizKd#R&5Er-2ta@Xd>;08DV4lK zL+!Sbpt@lsumv+mn>>XIJd>206l2T^p@*=CcwYQDdc%0b4(Xso64esI3t6lO01Z zS*Q|$jGs@Kjg+J8?WL}j-4T}x1GfL=}NHmav^9C(gAwY!HJEa`6(GPhq%cNdo( zmgtl1;qHlO-`mJ(B*cpwy6X{STWFGkYzaY^Q5UPAM&X`ZI+_xr8au<}yz z;9P;Mi zKbD0;6sD5=u17SNJ6&)E1$ES~eWRy3-i)MvMjDtI^T5gXrqqfU(K)0b2`085;reR9 zQ*7Ih%B5fL{wc^l)nmKr$|_N+_(&ioCY>Hxp>R-1CDwS=%h6X*3_m!TlX!!#gl>j8 zP;C_jC1`7ZeET9fi>igVSXMv%k6Vyw*vv%G;EsF{eSNHH9pf*ssq5iSyX%ftZyT6== z*Ki*eBWhb1L^9^;WBsAKf85*>wGvMT?9?_rU-4JT+eS`BAGAx`R2|<90fHv#x2UDa z+VwrdOhVrL&ebz_U)#90iHIqrqNq(iODLpllpL{0VBz|(z;b(u-H;Ez)BLvdec+(> z{y3il{WVFFuLG-rD4}`@X>M~?L#z=&ftYkW#kezgR#v}Z>vGa}pkiK`RZ;ZOA8H?L zNzE$DTZ4xaKf3R#wE26uiDe{?U>AJZnJy5tg+l>}1oVTjjYC-cCf;!ms4lqacTXvh zhAp9+wC;(~w4OlOyQaEQf5}tAAD(p|cL&qGj{(lK4qu(Ic0efW&|CWTaq{xeYrFbw zdu8(Rin2RdU1rAX({g!MB*2{VL}Dd?9a6w%a2u9xw1OO(tIW1I+`MIwh`$#P0>2v+ zl1XQgIclqdzurGgbzdc1sC+lx3Nl*z1Z~4$ELmXo`NUBR7G_D^5L;kZ{HZ7!=~}WM z9t_$44DO75KYhy|!_q(iV{Hn8&O{zv6J~Y{VaHq<((L|PTWR0b6m&>08W|&q*N7Xo ztS-lNd?$-i+va7odfM_~fCxouW3M3#H zJz~3N@b|*Y2oU|m+@VorX^le>m!?Kuy?#re@TU0;b3)SZ_@@zIt@fL(YMNck5l<{?}QifX+(W`lc8nzt+ z-RK-YlLwP5+4w*NVGl(a{n!fP4lmy$HEIak3pm_qEVa@9mR|8$1`@X2QyOS_0-(#Z-%bMywKKJ!t=_0(O z%6-;|>|4U*o3Ic9Df^xTa}JRc2!9<-#$3n~Xzj6Tmxb;4;~G@~kgk2PYu>+=%GQLf zDI)lrXFF`+=*7=Tbb=to)A-T4dzdwPZ*E##do+R2Ab!YfRJ1X&k7l6jx5e=I>*fbS zVZr87_|}Y3>kQ`}SEe?lLWtkC?WxC@TXakF7ilSUz`3KA$KV6$74>iBlhwIZ-Pwu^ zQ-yZaq`_q`MUi+tFLn?^zDK=Y8|rT}14tnGS5ZNXOV@bzYS|k7&M#puDN5V(qZK9h z74437w#`o!t^x(+A7R?Auh|4{@40V4*{&&-{11^5f~yPnYvIyXCW4FXYfjmYI8Okz z3PbH+6UFLy_87E9?RYKpx748~zNVDq;-0>PY1xF4a6v$w0IsQ8$Z~a-qoF?Xs9x6s zN+<#a{~F=g=WMARIPbXP1KG;PVrsRMlIAvLwE9`GCI>axeAU;4$A4dq)_$cAc`? zdMh|b+Q}G{)w<{K0-t*Byxyc_*HD>eW#M$Z=ajA>2xYhaxtUJptyTNs~q02mhS+zt4mJMeuQHqoBNGZ+p(L5Tx`|n_; z$h*LehGroiDLh2Vr>@o@RpTS9fSppCo$k1e1!smxhUUMObg46bT5x~zJs#|U<{6aC zk`%uD)}h|sm3)u&R%j`=urz&W^J8IE(*$(D$z$@9LlY={(hn_UoVo8k)hXY{9f!>Q zJH6h7gmk5le(x09#B5dd0iKM(A){y(Z>jRhd7_?2~&zo@sFJgv^ zW_k3>O2Y~5CGFo6p=E31#kqc3EbS!PPRjNQ)ClY{dGF2V&?x>B_&_8=)+ztLzY|z? z2-Gm2L`V2{2NBx;{I#r2RNeDme*s_iSS7?7MdmfzS4%Rl?63XzOMx3(GPW3v#e&Nz z^SO;(1O-2_1^-to|GP17PNqJ4dpj2cv(O|QX851`LjT71U)^osQYmXDY3Sa_uHm0I z^kOI~*bURf{8_qp{%->!LJPU2SH@Rh{xtA1C<=j?h1vtpGpmzjXb}9zU6k(>m=ow= zV1S7HH@owglVG4BP6A7M@)*tZzxUbYq?kZQFRy7g+}$8j$VmVLyjyU$ImonN=0BSY zS&RFq9G-{73`aaJy(|+twY2IrTSG@Y-c>`_L7Bi%d7$=M-C3S(fx-NQbP15LfRwC+`QkNp4mr_?sPiH9luciMt z9d&F8lO=*mTi`7rG4>lRV*^>EPvK$Ymm`?%XSa<1cSmjn2|NU)q9WlM-Kttg{~=40 xySfjCr~gN<{!Q%vQDej4|4TXl|8D7fMchmPYUfE}Jl+65^3p0&l@cZa{{z%PwW|OC literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ce673785d277630c9dbf8a1b82d86f796779fcb7 GIT binary patch literal 64109 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
ip;6Wz{3$^^kjDlrTaYQJouiln9B) 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

9+SDc9G~Ncb@~r*+R?TB)lGIjsa+3-cWuNbKqO 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba0dbc6dc5f7e991e8392a7c7c7762bc39f0b594 GIT binary patch literal 116819 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 Cm3{($Xyg0s@jN-MP}>-juL(2uq5T)H8hF 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ℑCl(GwIFUQjO0^myoT;9_0be@zIGm^=hC@zP?&~ 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 Z@dUlZjkD2~bwGfdoRqR;jkrn3{{g<{L2v*7 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e9450948e5db904d7cb99a601298f1ab2ac337ce GIT binary patch literal 24469 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4b9ee30b4c9d0a6eb1d09a023e011124858e77ff GIT binary patch literal 138146 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ƕlSml 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ce673785d277630c9dbf8a1b82d86f796779fcb7 GIT binary patch literal 64109 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
ip;6Wz{3$^^kjDlrTaYQJouiln9B) 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

9+SDc9G~Ncb@~r*+R?TB)lGIjsa+3-cWuNbKqO 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba0dbc6dc5f7e991e8392a7c7c7762bc39f0b594 GIT binary patch literal 116819 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 Cm3{($Xyg0s@jN-MP}>-juL(2uq5T)H8hF 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ℑCl(GwIFUQjO0^myoT;9_0be@zIGm^=hC@zP?&~ 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 Z@dUlZjkD2~bwGfdoRqR;jkrn3{{g<{L2v*7 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e9450948e5db904d7cb99a601298f1ab2ac337ce GIT binary patch literal 24469 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4b9ee30b4c9d0a6eb1d09a023e011124858e77ff GIT binary patch literal 138146 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ƕlSml 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ce673785d277630c9dbf8a1b82d86f796779fcb7 GIT binary patch literal 64109 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
ip;6Wz{3$^^kjDlrTaYQJouiln9B) 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

9+SDc9G~Ncb@~r*+R?TB)lGIjsa+3-cWuNbKqO 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ba0dbc6dc5f7e991e8392a7c7c7762bc39f0b594 GIT binary patch literal 116819 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 Cm3{($Xyg0s@jN-MP}>-juL(2uq5T)H8hF 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ℑCl(GwIFUQjO0^myoT;9_0be@zIGm^=hC@zP?&~ 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 Z@dUlZjkD2~bwGfdoRqR;jkrn3{{g<{L2v*7 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..e9450948e5db904d7cb99a601298f1ab2ac337ce GIT binary patch literal 24469 zcmb@uby$^K)IEwKsI<~8AxMX$l!AnGZ9rO3N*bg?R7x78q@)`}=}r-ll5PQM>1Gpm z?(==Wd+-1Ep65BJus84fuC?ZzV~#QA4pvo`#l@n)LPJBteJ1x*9SsdV8~&bk3lqND z#RmDnAGhu0o;#tT;kBdwzZT1eM+x7&>HJJd`sNzuo$F{kKkx1SMMJxX_U!2sO}FHK zGwxnQD=FJZm2Gv`*K?2W%3b$kym6h8l3Rq#y8gb<59P0mi|xV_X3-D(el@HlzvPYC z?CVluGIu02cerc5;6^?rj2><(@&nWKI~f6z)sJx?{K%kqws4C!V=7y{ia_ArOCP%? zxBR-oy3|}<+!DL1)D;#fU*D#W1d_MtKEM~AYoUZQ*Z%t}d=ccjo&CQ*pkoUCp#Fcp zPbedq|G)1Dy3LTT`9JTaYyS|X%8L3e@H&%Lxd+7m=a;@<{Dk$t?@i#oEARim?^PuG z|Mu$_O#8Nv7hURZW4^_yon{2dbF|y z1q-`wWK>k`)&hj2q=6IcS3RivZy#YcCzDi^^l3_qH}r}MA?1oDpr!TknmkxzH!6E~ zfjo{$h-{uYo|fA5$EFf@4mvnExQ(Cf>9WoAkS(OORkBEHgWskwr}p#KmhE!vr^ti^ zH>IgFq4l-3`I9o!;gL~Z{)aKrA*3ZPip*i*d7U)#9PY+V-|A0Re1OEsZedmhsN^e{6H83j)0Te|MS4}X?TZZ!4LCSBUmnP}kMZ;KJM8>HOs87PMG*^?zBG4a^~S#_)7t6)rc!LjmHg7e#ft_{H3UXx zSNp_A`K?-{?ZUzWnvloAgBb$@>*@_o7z{Y0!b8~qq-iS$@&JS)S^cH!G zaU`?v(L*dOtOPyvR(M=t*CTce3=9a3o$k@%=~|0BU0q$trTO!)!ArBqt;L-vhWaWe z=KK3Arr#&>N(&hT1xYho&@jKQeegdQRJ_OMY;_X(rQBP3peZHO9OLs57^fN<$<~Cny*XD@Q;{DbgZK zZ|hv=x}8y2h&?=yBngRKVx#xH!vtr4nK4~6=ou>+j$=sy)_(TA#Dq^zt*zO41oVc- z$}1}!xBflf+c)Pa&AJiO)eiSrP*{*4;d>dRT2R3H=FOq?_*Xyo{pB*N5mqm8TCKuZ zcytp}Q(>2XWD0TY>6MivArp!aRrQCXQ+Wm5MbEz{7^uFTu>N6E#{GJfJx3);=J|8- zWA6n*$S>j4A~J_HPNH8e2@?|&|1K}>!oDU8dwul9-a5_3VsuKCv*NftPiho%5 zIYPurLHss7;82*-6FgoeB9~hn?h~i->qy#6CZNd3hzbt1XXmE@4Q=yNn0z zKYp0-QMg}JjIFM(o4l}O@xHj=6W~+T)n!fB)E~9;-KT`7bz%8bK-8Pq^Ufdpzan=l zMwPXl@fB}k0{?50*LF?RWF?<+va4p44>Ub9&MUVmRs@(2=LlndfnyhHE(b$OSGA) zbU4|0vD}x^Qy&dU{jSVmZbddm-4H4@C@CqSvFlfJ>p$a9R79Q6&!4;h{JG~+m-6=$ z(YNp4Z{N7C!$ET056$oKpKsgogBE|oMYjL?ucVnT{s^nT7}cAubY@v2CqKFHfg}i7 zYu=ih%yLO?pQJh<@(Ak*>%e;+80gz)iVc!4u5mcEhy}BhlGSYQ&I{e zE223&kV+Q!{tPkc_-~x2FIl{|>S`^`{!t1MDXCLleX>}c>(J1U6dY7E41bLFj!uV# z69-mS*74dmY-BjoE>kv--EJ6FOYrdU5Rs59*gv|Kpr@~Brlr+>`TG6$7GpBxH(pHi z)#Z`6*w|fUZrZZ3yRgWdd!U^+a!SpJ1_$#tE7r4T&&Y5vf01Cr(lN|dot(Hu$HZhF zzqq@)wPm(F+mP3MCbC7Q=77gT5e6CMGZYHcxvOK z4A%uCCs?XmoPjwaBP{FjE$`I-%DrM?Jw;*p35%L8^sPR{U8e_y_9x%d3}^Iu7V z5uZL0!QMmhaCUVa`u+Re*v7@ri^fz@8hqJss`T1|k5gmC3~b%;*U$h^nJr!%YlymX ziiwGx?}Z`iOAV?_5_A-E9wg zon25Mukf0!|9l=FuBppunDyn$+kA~&$U2FFb~I3y&lkFwpD8M~uk4qZbYSuF@(Sq~ zDoaVBqxNkmM+q4u)+A0OJ@2K2>v{Aq{pF?Ca&HnTUcwoc^F4wuB_-kQ?N7x|yHt41 z`=~B=ljho&9F?Aqbub=`uZVX(^gTf@)GlsZ9(zCnxc?O3y2;&dI_#n+f8J;1gc@$} z^RNV0ydJyjWZ7u+LhTM<0mVdKjKY!b&-||;H|3P2Uwhv|minFCQh9A}sVD!DE1tC4 zPfiZhp_zZ-T2Nrp==}UM6cb~&gq4G}Ar$DLrl!^@)`~0DfqL>C(l2|>rhqjMkMo;1 zuvK5DHbu{WGEhBoi`-IhA~6Rr(rYG#Ad2HK3ZL4<3|RR!>#t_#kRfWZ_i5V%; z)8wgy*p%LeWAAs9le)>u=GDB5$EQD&AH}}viI2z|B@2^5VKo+(^oE9%cM}+&W;_&5 zZg@aeW%{02;Iwk<#`~_Upkq5_z4oCl< zD>4x(#B<{IYm62^J22c8GrsAfFD3OWNg@s6wk%K;+o8+*ct%!U9&3NOH|F&$fKsxK zfw?&@)6x&sU3mo`$2K}F_)N-le&CR_7!#C^h0NIAY+l({Gcr<<@)p}}KytcHyEC(C zl~7gqruCD~HpOK;089W)LeN_g=QZ6tZRCfM#a&}Q3QHTCSN6tlSJFJgTQledB+l)t z?Vt%+N%fBV@k8cvE$s?I@O`ftCI7Y(0&(sm@iD`=LboklK-Yg)X8F(~zoaAwD(HE_ zpz%H5QTF9uiETCC%^^`hzV;un$_BLJw9>~jFsD*9qwM1&?(XjHSo~k>=k*fRyJ=@t zxXT9?%PQ{-|WFK1t+~%NlB+jYwKz_7qBpX;LpeRnvD#-V~;8Y8utW! zAGU}!IIw(t*T2$cQub4lAJrXJTcN6ENl^bvW=SOpU|0_sOei>nGuaN7d8OtS7D1ne zH6f?T;LIQpu@JG4fhJ;JD(C&zf_3`;zkAZrm!$uHG@PcXt9Yn8yF~RaD>R%DE!J^E1kh|aru;vRuw20Q|9_pW$+RXy8ZmO`n9CLEh^(Hq@g*~@@V<{E+uk_r zZ}@D34Hp-rsIjUbkeq%hIp1!~9qOj&d*z7aCc{x{Q@5DXDIF45ne)jS3$5C;xEQOV zww$BQ-W=G^Xo!!Rq*2JKgmV5dBlNTueppF5S=!hiB~Ceb#0)*VzLGi%v1Cw0uxj4G z<#51fxhjSk+Cur8aNuM=bg8P6tNg?fdQsx^?z9lU7pvq@D3g=?BZUA8v-3zM|@foRb@!lM&*7o>CYVcsEqi zlUmZ!R@!VXE?SD{Mq-QEi8_gQTItPgt4>8V-nw-tJLSSn7J6nVLuuk!V>4Nh=c8N% zFE?kH+J3u!vf%Np-jdn#vRmtlP=1=U!H5XWCp; zMob>*jI5NMkrm5}jqYdo*Y1{6=kE!pRx&i)oK*F=Z}U2h`5KTq?Xl4)J||{C=Y_n8 zou<+0Z>=?Yj4BH$U#=>HDVID6Q;twV7IuT;N(P&{-<1{pW3v&%RXr8Oz7Y%vh0gU2 zo$VgCsqji8?<>hP>WgA_tIJ(!kza!>tBt$y8^J(*=%dNUD6p0wwT&ivCReD5o%C${vH0*Q(Y?-pcj^yUI8 z3ySeu&nhdL>@G~>3G>xUY($3RjvB?2Ump{%RUVbeb#jcL@&oGW68>r;UI8By(%bv% zSHG+p(W6I?xDyqjj=svMb8V{|pH^I&_|ABrsqCxsixbAl#od9)NqKekyTGN4H5f&` zGs}`U%(6;oq|f)ZvGB~2&k<)_D|``EX}KN2Kdm{}xx01cDCJU7I2=y=xkP$uFx*wt zW}~e_T;DLHvf^0k#Y0^PEz)(Ta{E%;^s_OGskr|Ly8eS+JD>eJ!kOE2?I+g0NEHliJwW04g^8-dL^AxxTRhh#o-Yw5{OH zqiq!9@$aAYuVqSKm&XPM)DoAw5oJ2;z#s8)b2s~4AOR5NRAl=%oiA~ySl zr9rDK6#?h%uyAO7id+RAj(qK6_)7V(lltzO?zcrtJqa(7-#!@)$7kF{_!;R_QSW@q z=bHrI0huH#dlR06k(pV=+4b!_S0_|*A)s_H-(SleavzcO2FO%XlL&+cFkq$K;&3$E zYIpl7{0Y!dWLSvN`E`UEG%c^XY^tucF}rfchwPJb65wD0rQ}>*Wm+{=YU%qqDark^ zX62+?yGb69woK-on2FE{>r}qjNCw&PFRWN7(=RDc_I(g%#WzxrPJc+}Rp zpJN-54I1WUkWZRJ6__i@&wufA$;9Q!HRxp2rtmhoG>ftQZ7-HI-nIM*5>A?g7%x2& z4;yi@ND}yB)#jRoRemH4>o#Y!>9BE}dtv>wAUS-*Wz~H3VyLp1HoC}8rn z)5*@IMr(2|U>{2g76#I#4i1laIhX@~|5ndYPNBF&B40qmh({}~`0CaDs~!9+d#M}C zV@94~-5;@{HPmI!y|MF)i+tVrM zI%!^^`=OdD-mu&=7Qo=~Y$n>jkWs z1}H}3XIB@Bu`n{~Pv3I{4g%=PU&+FR(rRCy7vGtaLLg-8RUVr4F|x5?11vJK;{uF# z^5I62nxTZ@q;Wbf;ox=kRhI`uYscyMDuX2C6onEyPu@c4wf|^;TX6T*4Vl9_pgY2k zj?_k^ydPkR&5n-#pe$_)hnr#(p$zG`Tk)9$ODgJJMP3!%0e3(Y3f^Zv>OUoo1{0+HlxDz*wpX8sSl?S>t@rdx=Tpd zHk_|9QRT{oJl?e;?5E`Dv{7c$w)<%lv$3XQJX# z`$(G(?!!i-Xv6LLeLT$Ojs5xkQ@1nMrp5fZ^MLX3@jIQ|LP9@{=G@+2AdjM=KYyHf zxvvz8`a56yo?>%wZ~(E6c@y)r)%W81g}3+lvS3rorVFSMoj|m@9Sq7o zZ}JgiR!;s>P=NKlqg8LJvg~v|P}qHsaiuRco3Zuw3{czdYuWKT?hVj?8D8wC)m&+$ znRIl=o*$OlscUHTE(g*wNl08tU4>U%W1W0fFCMxcm@L4@r>dvd6U88#S6tk&aTuOg z@6YONSPmkyo@GEaMZyD={isA1JJwkYazX+*nBxA?)wcT<~81hzpiKT zga$z^ETK;Mv7ER^?u8L$yJY`ZDSaX2B+*S9n*{6z&fl$%Cy|qLEjl)x?d_pfTu_Uv zD~OeBDnx&i;!jo{BFrz$6^u9#L>P55%4%wNIyyT3E-!HJ3W=q)zc%RaEwVxqP$E2D$ayA@n?58 zJ;9EKwzjN|4fXEsE<>ZmH8L`?Kj)|W&MwZ}pxux^Gy~?Aa#mJXS63)BMZ`56h)%fj zjz@#0mgd0BOz*#U*K?GTNOpA~eQa)SCX2Y@X~sVPZWfgo>klFbaMZfGdR+;;7)^5# zT`wtieX_H%cE(L3qGFO1V6|+kk__rx91d0o^U{YG9h@%DG2lJ}BLvB)?#O$3c;rE+ z*HjvjJgpDM@T+by=nWuIsaRQAoj5t}{e9->FZN&yqei|Txh=ytPS-1GqMT_*!b3y zPknrRs!hg6W^f-v;UOj_MupE(Py9o`A6%(k(NarGS=l*&Wbz>052c;rfMC*U%)K*^ zqcl7^3fxHYolXKQ?k*MluIZ@854+OS46xnswR)e^zp~iu zhyHK83|(3+C?bMcP*AX5#d`pIlUaR4g_7#6+6cF|zXIjIk0Bvy#2DW@cnhx5Rf%h9 zaWG{ymk*d{qGsde=*)}cxARsq-aR_=4tLh`tUsIo7F8+hp+BXZ)yX+l>0+_B6fUTa z7Ivgl?(?+3(FzH?HLx%sn|-yJ5`eVuyupM2^z@YBtfYZxu&U`aB3Vq&&x&d`jbXIQ z72?CJFPYpHDIaid{_QaP-{l}83cr6f8J#r3; z3n86wySe~6dvI{DrRj22)@z^k>P}!=3!#eWldXd_Snkw1zTOwW$T6Ie+`1v;yh@;Q zwdIQ9@ym2}+(fN?PF|qcX#jnIyU?<7b7Kf-B~0Avdd*A+7dqxok#H;F;mQy!^o@4! z(b4NqmyJ&M(~LmvVW6s(*zHoeuBxrqHpOiXmeG@W3CkZ}F5;I;=f=JL4dg3>I+{}+qK_|bBb^>lR< zMt1fMnns%c;{~wxbfTQ9YU=$Iiu34^NLP3F!owuNn3$NhDM;<+{WR+88kUwe_vyq_ zOT8~P2n873hS2c|Zk;{BU|`BwQd~@$JBwq#_n@7h9wiO^`QzuPt}&D#<|#lD;!n(` z_0_a9yeB}tX->t|6lCBOs3HN{(cVr|0-rx8fyTQuUE?(EgWQDNM;O@lL|$GVl_p5k zH4J(|`>Por{xG+lTbPL+(jn<6kENBwp-)amK|wL-;-oaZXE8Riwq=5>^Y-^Q-Z(C!@R|AM zO&8EZdTZZopza*->~y1#SkvjI9WY?od3m=Wp%=A1k&(ePEEQZwj?c}h=;^UZ(Fj5c z03P1M(-R8N!SOL9ZO;zo(Lsws{d8nJwn0I`H^9!7c5^g_ZXlWg(=E$kL1^Q);)Wz% zdvixBw4apcvEfE#=BB4mq+zXCiB_q87MjrL;^K@^)>k1zZQiFYMFXW5Yx}3bV?#eN zG&k3Ov^fQ={;yOq&vsJ$bS_qkB+9%;Mr}KG%|8QhDH9&Ov8wjf*1i2OQE}cXFXI7~ znB#{J?N4(QQ+U_6je%VS@R%&(8Rws!%_k`61Uc^Vv~I3LjPL2GA3Dg{;YeDyw*WON zttTWqv$=9m8nCw%dJ>IS3J8d_J{fqS~zk+hPXWsX6;@c~z zQD2=Wc(3092Tr9jw)Vdxb5FN1Nler4R9Ux~ZYE+Z9IX@S|h*61n|QjQM8n z&@(+f%3=-<&=;Hk+!L8~5B&T0W$MWfK>!p$!A2!VOB&d4Fso3R?=Eyqdu}%j3-ay! zqrH;rNW=pCHc{imj7`G%a&xmP^8pq_?wFU&hceBSLZ&<%?LHd;HU(|=`~3WGTF)5T zJ5x}g(Qi|va&fo%bjCU>E_Kx4 zvDnz49OLjQ~gGnN( zHvnubq;y1B&1eCyNfhkxe41#12fp|{*8-&zk49APqZv=?z??RkG~&rMbQ#Ue*3T8M z!RnFOx)H06hy^53X1;B>HTjipVc@j-L@18asBiXo&b+17AISPZ@R~$^`tD#iUprCZ9oB0$Mx3CLDcmX{>e{9v9M+j1UH(0H6$)PU4u=v#z zOBRsG@(ScVJRZUNe~*oIc6K&)6&kPb6r_m=3=hYvt*rw=`rrWPXnRT);9^f47qghy z1p|lvp&Gf`tuJp)+Re(!tU9`%l@-(z#Eksaq1OmX(lIw@zS-ULyupRzd1B(rS7we= z(f7f5(cRP2=~WDmM?{& z%2j)O(;hKOOtOquHvaS8N~8RbsjCnf8CBMbdJsAaX(u;v;xE1z8@Uf2 zB!^jP>NrlR$FVIdXXuqRbkYMq@SyBZJdf}r2CXL*3U@Da6jJvn;pD-j$V%x=_}T=dTxbj0fHqEJYB z0BD7bG}_KFuvh(Q2mGT8L3rNr|oIoR^P;l&z~9p0~x|z58T1Rbn&` z&HMg>6=5;H>5N!vi*D9yF>KK0)T_Lr0@mvp$QM=S^#|KujzR<>@ZrK5yu3Q!&2XWO z2kj@0OYaACMF9~twV$D$hFUQb;PC!+iAjt-eL@)@;8-U{BN{JbhjVZYdKBty`^$Zx z|LoOtO7s_u6uQs*le(?8+;l&R@TKCvzTz?2U`LA?s>5zJT4Erz#!;oHWAve#{HM0K zLT9(}j_cssYe990ZZ_7o6;#YJ65EZU9vj4O47%00m_M3ZGa%5Ge}F7&D! z#ZUh1>7g8PF*Kw>X;R=*cm?)~HmTLVltsYKzY^xoWWjMK?0YFnY~B|c{kgm4{mt8$ z*WrRsMbj&Ei$DEJl9iUmsHmubZ|y86+3|XxIYXWEkWS|l7EUZ5)`U_itE7Yr;_080 z-9<290KBlUvVI8+OFj8R@!>MdK%I5c=0UEPSt;+yu}a|{aQow99#i<=_+7|Z{xf!H zEvv3B2|5XAyk!l-JLm0jw4d>Ob6hHzN7iC|D*5}65(jgl%v%I(U`t0+V-Ecd$Duk( z`rC1Owk?Ye`$toD8lLmlLC~X4om#gKV9Pk;inkV^EOQYN78XXKv36*)Dpmcf{>AB? zoc8bm=BM{O9q&M>2xkun#giPbzkSUuvZfcq+?)|86tSG&x$h!R!7ZV*c z&S~GPi)p9r1}b6458FN~BJ2j0?4s=F9+WixSMFAs8`*LVpxxv#VQGJ6P^n9FN7MD%ierDi`|WW3SzroYqjhvOtT zDCL$zCuvs~P5ZtVZ4#<#YS#krm66!k*fopcB5wPozOUL+T=$l^e4>C*jN{M~sMqNv zE~$rFYH4e=Kzn()U1Q#ciAVilrKD~fFHKZ>a!3lAIlRF4r9P)U(~V{vc9(~xUKdT? zVxoWDhu70SA1l@MCnS(*l|FC##G-N1x+2m48Busr1@{0}$4(2rZ{A23Xi+RFC@DL= zMRlV{Vs9U^O=dqX54piFAP}$;C4VpM@%1%+LJIM@u`yY5^OZa<6-mRhp`PhCE1082 zhWrcPB+~o6vhG}q0^~wzSKrcfg>3q6KQBqbo}dDHMMXR(TeguHX+ZAn>9QB-R~tr` z{&m}pBBHPEfe~hUT7T9DX>*1|=9iY5&oz2C+gEpYb-nnxX?Ep@4gf$o?U6J9Kmf7m z+^>(UO*YG{XTJGoWMu3#Ndt)r|G>y>c?@O@7E4P;L){lzY!G5azZARislGtpUR(PJ zk5*U`l_)(#;?~!#8j&g6_8@12hzfR#7b_wni4R@3@>V`8GJ&}O+%o@W>f$diFXt6J zQbcd#-24k%gqpTdKbR80()ek6uD>i(*1@P?vX70W#h7oW(>(RX=48d4Tn@;I5RLBU zop^w|0l}aeJd}{nlBl7k>3@8@gZz=mDf+xLfqX{weBZ0sMlP3OVaSLZ9_ zR8)*~babNlM~-m2yB?y9xmjLWuh;ywt{ovSz=RrboZVFaBlb6*>xaRycQ_Zr0fPfh z?_2H}At%RB#xC0`%C!FD^oVWKXK+5^6B6V=`hbM;3S1fUAAMKn?reH*l5$ToXP37FA{R`|Uv(&@hdw)Sb7ri{~NBxMJCSdItDQy1-?W+H{sefRA zz|zw4rMbDO>!Z_oeBYno-zsf9W9^qX7TrpxTUb~euXo?yF_DPBzB{j z^Z3b=YXDgQqBI`%+No>nh4hk09hF;O?oQ3oym?NBKmh1j=t{dvZVSW*$MbU?-EI_? z`1tXog|)?>wcIo_aI6-EaMS@rkyl2@2*gY5RE|2U`-Q$FL+7egkC5H6vyDQFnRYpjPLakD~(laEOZ^ZPf ztmh>RJ%Ygwqls7ow#@60&1k-2%&61s`=H}4y~M?u$^5odzseV7al@k$ zYA*FXWCLoRCrPnLzv5$O(+$dUBS%%xe?YUXuRon<1404Vt3Q-_vVN!* z{+X;!*N)q7RT032vG0&6MjqiJrue>vpd``?-FmeQUoZVaC+6`Zy7D#`skEK}b6rYJ zskB|yL%su@)qSr9=##-e))s;*4V?Oq6N4K&{o!r5ue{m1!{ z>@V^WJKERM$Gf}~VQQsZR%JRFhPoXlWx)F!MNN@PDvG1@TtU&?p)P9IS>eH%YNm2O z=OW=Zlilih@{dOAhmtY>5GEmjqvg#hJRJ+pPkyKHK6{?q|h5QI#WROIk!c6PSV z7gzFj7NI=S9cN~=gps=7<9d_xpqAXB)EIaIrm0X4mG&D$sUKdKY7{h-2e{a#`ZTT` ziUzAZQ=;=V6CcV|VTL{eG7+a?y&M8T49pcce!51NazKa z!Gj0G0UjP6LT)?vpefTXHN7jxteLg3x?Xr1RnkFOTYACrpN|+EbRVj(t(GbjG!*0J zp3&8fIaM!$h4W`xqKdb-nCJ0UHW>V1gQM?h{Vr9^6$0g_VgBb;*Q#QOh$1 zTa4nmLJgyUBB1*M!2=@xG0;LB z=HYN^`D>MP{?b}bwjCx$#y|E#tN;FGRaLn@O@d}GAOI6`3~-|L$FrU&XjoY(;Icj2 z3;7w4ICL`V+S;Aq6$9G)%7Qxjv4_;IM+23F4^`60$HAAa7TlrL%K2R{&;EF1GZCU4 z&-sE#hv3)E8!0F$S^gVLIClB=L(n}=@l=tmYEv*8wRc9NEKSwdEVyFt)Rs1R1;jNz zdIKn504!+0FWiy(ifZ0gVjzI-+`0jR186?1=gCvHbz#tkfh}4>*PJnO)*huO*w_H$ zZ_G^r%oN!h;=wza*Z8pM)+BmNy>mQk>q@t-KbO?^gPDNft#<^pdjDBRuKOH@$7ZD}3F(Sat4HFm)oSb+e9lTbaj*h%&1_lOW<+QM^ia;MC3bl6gRlKnP zNP;cgf-itAD?M#;J^x6ZXVE~~1GrUo-TD(<+Hi2#Y$z`O7fv|tg|D8w2f^Y^ZK<}uYDyh+YH#+kXRhlN{yqdhrQVU zZ|aLs&U3Fg#Wxo>XHwz}p~Q^rs{1hbbNJbTCqmZCi~(QbW^3%Ast&Fgv!)mfhB@p< zE3|^e=*A$I1(D^g%trbG+E$UMk>3%L)XEw0t$8eHuU)be<(K9ONPEe$g4{ulG^8aD+F zSr{gfbcZpSuqz*t00PnRk~i#xDp0)V>_z=uMMy)-K$G91V+s=2UoVxW$iH6T>-7z1 zK9>8@zeNH`hQU7O5g!_<7hqO7^wXr&m-3}$YBT@ObNt`z8&go_JEB_rOqHLVpJhEV z@n;ZRZ{B?KAABwR!R6ac)dsnEHmn(KB8-?WJ`S?tI+?mZwdkvd47Jxcu3C3p| zf&m{`l_ur$8w(1W#0D8dXT8dwXd)1RiHAQnx*X07ToC+c!s}JgnnRsQq5=ZTmEV?u z2LT1LlPiHVwBj{QJj-+W0rL_vI5Dh|0a|s`soSi62WP+T8@SSO>&oD*QU1kUH}I9WcXTLONE}ExOF1c2wB74$ zG+dMAQlkiy0Xs~0hIELWqFh#4*&P^P;3lKmMcv}&hOK$aI}9@JKgY2t8>%b$Pyt-vTI8|l0GCr7jzVF)j@P+q4sd@pf-{e<{TH1V*f&vC@?h9@z zyqloCf&tAR_%Br>BMH{X>!|62UmU3luG)gz|GWZ0jElY-qf_U?0d&QDBMf1Iyou_G zpqGZK0y+#Z7_f?v7C^_37#@p|yuMbESv>hV@N=MeQu=AuBu2x%J=Egf1Qn z>oK~F1}o53&9UKD-LWBOW%RCV|It{YnG{8I#?o(3Pt`LzB(pf8!2n9jW*LAi;-n--3d04c{ekLJhR8{lo= zP;m22Z#=#50Un(x=5|sq$t(#DCeXh??E>Wj1C4LN7P06o)VeKYK}%D0^Zg+ALJiEQ zJ-+uA{NMz)2yWc~g@@J}|Awk2@%ITYX(`JJ=DEprwN-Dj*M@613wJ2EDLTh;I!sz# z@`4Sbb-vkJASOP(v)XaGXEKfHedgeEsFw#>A$ROtU?awLPp55vFEkUmO>W9BqVn!3DI%V*ulhMZ#*ZCiFwoE zQ3@Dp(w=`eN4JMEK|x6&r=XGxo)Hk*LGc6L5HufXIdtk@-ma;sfi;|+sfhv80=NoL zawAwIV%f9^(juFo8?~#yeAE-qwW5z81|$Sz+4|Qhy%n427P0JBuhKH z70?gLt14bp=(41W#6wWR5+D!=lpO&Fv+LKdmk<*$_BAh`X;#q>BStU?_teRh(5%oO zEEHeuTdq?nGXwb3Oc9awlDrO!hcehCB`Ls!7#J^-o9z8AXARAWi6SE-xwnoDC35+G zKdY(KEik(A3=w;$FfJStKF>p6Ch|3MNR5M|qX7j4sI}MC#UjfS(s%-3rX5Og$Nc|b zKd8Jt|?&6QBIUJw6ztAY_)%Yi|Ub?B`&q=4e?)9O}F~( zIUa4z^bpRuz5Dmi5+x0ySaRtQlJx5!3)VN8bCHv;y;s5)|0#AntKe-w-7kh@ci7#9{Fs@C1w%(& zxe^zawnkOqgv`qJjmx54`T5#J@`oW*Yb#Ofg(_#K*)pc9juc<+o@Pm$>&FDcz^X>= z*H19r>#{i;HYN5HHhL)MmDBoxC5&uk;FZ34lmd+E+1VLA-X<=GBQTOT-p*~K7_?9E z@iEECiU3i85rte3w69!Bd^>9_?&zU8U$~){0s_&OA{NrQL48S07M7sI1c&s4>|?JT zj~d2MKvPA~>^a12Y;N8cr+e}A-UtX|kh3`TtDAk#JFyuV?+^a|-8$5Sq^_Ht>R?E_ zU`J!g&qqx=!jO;XMctelj5J1g9o->`i`xs7IKLL(;}5c&RmJt4#NMRmHCDtRz<O+#&#}5bRvqW34DXSB$;gNfJ-{*hmCzD7rKGLR3`10)oj5G~z3qWSW-tkk z4G@3=SvNyNLs3jjON)==n+oG_kYnIgxK-4*21Z7tf%zZqpQyM8@pB7zMldPRx9aTm z_J8VXdwvWVQ8QXijXPM0(jch{ntXVi^?DD50)&5BU5A|4N?iS53cR9?>3;R(?u_~c z?{X>E-o!39p8#M9IHSWoli6_m|HCX=UrHLS8V?o%=qo}j<9G#|e}c*2U? zN&qg@Gw>?FR10)aFogP_oSvW8{8GS_o8pwpX(0%c646fL|eH`)V2Xv|)9-b_$6eW0_KYqaTN`a6Bbi@228#^mK6BA}(ZvaSI zEBpR)5zv(UT4uXSRiTVzC{`~tdd#Ft%yKRobRvr&LOI5uS%-ShuK)GzQcoPZ{oXLk zy46Nz<0u*q&cQ<=AvrkXKoK&8^8=F%q}Tj05>hR`M2W#OH^~Ac=uF!4`U_g#J|Vvp zltCayi;ZNVGvekA3NUnS2y}&6k_0zMQq^7Axw%7NQ5hH*2>JubA1s1s4_fYVj@_IB zN_EpE^XY9^JBO#^yoNbvz@I`~sd0H{9Yk zUO&HUm-TPhN*njEpc91=&|Q!fUs-7}A@QmH2&#xlzk0QlH=mm>?LTd+a?;p|Y}r)n zbR{knK4Z;q{77k;n(snmcv8Vi#uIv)b{7ZLXoL9#^$7%473u)u^J8)!Be?c;{Xqc) zn>}z6ATUR#q$q)QRd{)Iw8bG5UZ{+IGB)EhsLw|+!yxkUWsmEvc7d{Ff~mb9OxD~l z{R&hyk1X3>y>R#QZuy7p=`L4>=pl@td=NKDpU+6SrEu3ekYGXoFJt9D;^St~GXdo{6Us;RhMd3xOVC3xjji%*4e!h<9_{iTtFJF|MO>x z_C*KAySLBRD#rdCpYDKF%)-*91B6I`USEAKJVL|6Gn$%crz&k5)@s|Nq{eH%Ug+61 z28(TOPAX@qc4HBNRCx5&y_2)-N~Z*?=^Ts?H?h$f(69t z_)kYAiS?&x`xh-PjtXB!T&zT)agvW{^>nOT)we zVE(bYm9H`0WJinB)(jLt*&>6;PE2mvkGNvJ!8r+uVJDc&6*M^R_q}{5BO}8tC>RL1 z_)k}pr#kY*FgFe#AD{6`Uy9qj|J9SR8mF&L!a8yODq?%LB-07NSHQz36jXcWp-(~9 zJk#5omtWigzA*Uy%1RUk=Jm_d!u5iAK`Ok(?@%b92M-Sp-jK_V20wHMsHP#GnLXgs zCg6h@(ii_cflnkM_QrEA)oy5x(ovaSR1+0Y8rnSRP8l-EQfEQ2Ptvrxk#dao;M)uh z3rmN_V&0xCQ4y1nkPzmJf54=sF&QQ}Z^3T1W_bP}rVHgnt@b!%T_&mBX8Y*pjF=(w zsT2D0amRgi=LMq~;dqr@8nPqIBimrcTM-sfR0ovS3!i-acR})2+nPO1=4BM1g3+z zl?W#kF~LD=0oHMDvZn$`(hwCeA@O2Lz-K>c?oa0NY)JbroDvxMMjror(%FIsRJmYe zMO9UulQM`cAj>(}oKut-)?js(4Ngve1nv!90YRbP=zQBW(=;zsX15s~|4T&$aonpH z7WM?%0f9UZ#lny-TkSx&&X^XI{C=0XW(jLepVVtIR$}0GGC&8!$X{#9 zdDUB#Qw)REiZ9H*4S2H0|6quZG{;6(@>C$ZBe~>D{}yiCYuj_KP3(C3p#;7gZtt2t2Oi0CIB#Uhqc(2U=g)%yT$Wc= zErO5Y{j2BPIOuV&TE4LhW_|oxW6@W`SNh3GJ~*hGFmU^BRL{yjaee=?dOvB~H+DGe z>GWhzrKLN*iN8Jb67N^en%f@hTj9e&kD^DAOO!gPbcWgfEmjWYmZ;ZML?x>y4labTwA|M!Gs`|z#$MoHd>3nLfnLro!8jm{M zK?l|;`~#e<`xV1;g|=dcRzrKDza1~%`3L1Cmubj9Ed&doiHfIZKEA1v&bn0fSi`f9 zo9^!7hTLTO&V`g2v1VkL=RQp$e2ocBma(>+{CDoelDfcS$t&uY%gJtXuW{mNXlT4Q z=DyW5*N=Z(UclZXd5-{PMa~#p&8W%fI2Y@lx%{?yLU<=uI6$2~<8HJ>`Nkue+WCg{ zrp>7;hD60$QYU&{+#E}KD!jHz8_4^RcB*@pzU1SHk^W`d{H7=WRCAULbxpa3w9GO8 z@cQM|#GGIV2Sr82djz-ck%aIh{QgMjSDurDnXieJu6hd^hmd8N9_`s!yE_b{QL?vJ zFE3Fsz7vCeN9}en{=7+e-U*8Y^IX$lrAzx>s{N!!q9vswmHh2pRA`t~CGSpsE_a#UCkOROcPl$&-!kw)p?cH9F!Xk zyXd|!MGlbL^mopO*Yi#jgR(BClrBz6y8%ZJ9PoeMt3qSV^O8)&6f0h^lXBwpSo}Au zofK^=oW9GvQ@R=wDRldQp<(m7`W~bf0wrf#{REl8qD`5q$C#wW`5(l&=_V#8Zvkyu zYy(in1?jc;wr%i8bpO1aHjH$<=XS`ptyLqET9aoWE>h(tnRT_QRg*$7%`&fYbA9FH z5YT$3sx1AoUkB>?FS*+a#SGTvXTAYTi$R678ofgwlBZzei%v&-)GFUGi+L!AkC)}* zh50v9TrQ(JUV{UHglmw+pUg_cpF$#F5{ocwXhTb?Lb+$tCX0MKqm0LeTRL9zW1N~w zvDS>xuBrk^7ZM2%lZxM27~3}GtUPtn?_`Hyx(hC7!f^-RsQTc2jnH07-{;S9vFi=n z_-Rc-Uq4Vb%UPlq?9jTs;dt$Ve}&C;LJ6=Prju49<#QEhUjOK}Yjh53%H+9epvwAf`^&`&~ z3brKjr4WzQ|7+q8%u80}%+P&ju{WLKisc3je|e5wbfg$C6z!+VEl#ZPn=2!v142IJP^sO z=sEDFz$>CUerxxkG!gT#=m3QT20PSmK(Z{OiJxGL%eXE?%T>O>?xWc%CS2c;CL$^+ z-W1kUus`0aaf zwLRyE+eM|}$L`B5+wF(+olyZ_TWsAam=vy`UHTb@?mrtVZ3Bj8>?s7QkuOK4w`z%n zrbPZ=8Fk@dG?p$tG_Jt8_4PTSrAp*$9ji;N?aNOda_*-DFjQ(TYaEEvMA%`xV3|G= zwwwdpgz5HoAuoMGUIpeRBh7;q7 z(mF@*$6n2O`w}^rnDr%Uvnkv2oss?F^}Gu15^7MQ{t=6d7h4)?S@G=q_B2K1-Rz`- zzIf=zrM~!(k;d)lDg~|j-Osx5m8pZxvd7rC>&acEyjpeS3x1>RS&KK8#Y(1_oEpjC zy$?%|JMvUFv^{as+Lrn7Fxe{JXixoR$d@n6Ncz|FANZh86b> zc66^?SxXsVy3*QI93-kkoE_tcHDr2FxUo_7OYk$P;Aea!GR@<3olA4=4*hNmJ=#p? zPF;Oh#|+j=RKO^6Z@ll0TK&!Kdaq)$Iz)^pR~le5E}EC~`fGeULQR4q1BPm?aF`)3 z#aa zAkeutN>uD*pR(EUjYYh>mT1)Fs?TTt-|eJkis0zyD)UyH(Q2Z$7}xN&A~!1u3H~g% z=RAe{!ueF~Sqd*ac`lsFEGw$M`-)5>KPj%(3Oqn%W3sH67da=%k682`j-xBNBqAbQ z$$H7Rnp+p%x-ZdrcvC`B(#HQv-ej|l&uQY$m@$oQFM#Rp_)PYpOiW- z^j-j}>BtspcYznp7wk7(ywnfGTH7oPQkNZMpY zVfnT?FnX16*!$vOKB``VI~c3E`;r`|c2^@qStCsLn_b*1vUwqKUkv_m5Ry@>GjgzxCTH)_45CC_Y^KxAUJg9tIg62qyT@EgNLz806*MOgZ3ovWUy9|_<;DuK zwwCgPz8eQJq!4y0|GjxP0`IY+PA%P!j=4uS(+aA7$~Fm^n4@p-Crkwv&}uq6!T0LW z`d5W;l#rTUKVnCi()kl?kuA>{s>9~Z|+`B#dF7H#IpIb zeC+uf2lCmyy|olH=k(eOGZM*^lBX~<@;ETBgcl7PrghI~^Ijx9u4G6Hwdf!c-*@E1 zT#@cu4AZG^R!oN;5Y`%^O}*26JW8{JG(}wv@g=(J6jz?nWNeu;sk@x+B=NrRI=yu& zT#`|*Fn3Uo9sui2X|NVNg*KwdgdxKoT{!6`BbE{}k0W zW_^pKNRCdC_lsVngu41q6(pI^U4QOmiJEI55JOs!Px~;VgXeY7F+cX*PfypIMCyiy zh6<|JLN#^Vus0T~2pX(5?~1%hs%8H0m0v^^@y_0h-O(!C zmYy_jjOnpc}~sF)fK0tytEm9 z8842FC%>XQZ0?Oe7aoN{m%6ytp1weUqx+;*clSmQre8-ran?KNQ~=eQuwW%Q%w6uB zIb&g=-C%O-_r!u#^mYpeQ^?Y1KCQ3qCIriUwzuzJO|}6@cEek&{?F=QVW3|N-Gt(C`+(8OsH+AbFF@mQ^;we?q`6Z$xS zmcG7zknITyec&}MG)04a2(Wjk{Q<-QrqO07B27)xERc7?Oi}^$RK0c$k!&d_zGrJ| zvvYEe8!INjoSzTB|B*`G2g~#san!sH z@aKB^`?D)^$$Qnh;~WlSo5M_TmngPV1@n~-Qw3Sl_O3_k=`5qrBig6|T%hZmGninY zy1;ZCYggw7e1>{b(ubq;)|NqUxY#duxm*q~pNR>Lyjxt&70zcH5upnuJJFb>tI&6P z9zBi5!gR)e`}-2Ve7OW=2$oMs)CV|6)*Xx3F*a6)HN9f63p?J17_7gx4R~Ei!?TV_ zmi>bV&@b+D|nwXW9C6zbC-nDC2!>=9c zfH2H7>%|}d5yR`E8n^1z+&%^jP=JQFOD5i6w@X8P&`(PRm=(mhUPJV7_zT?p4{4W_ zA3xuBq)1r%5h4h4)Av{w78V69kjoI&a?X8Y9G?D4h+dun+~h0pG@E}ITq~=q+6C>_ z_gADqrk++EbMQ$s+X|m?rU;R2Q3e$0r<2^q!p zFQ~fAOoUraPog@oR{;y$B?Qgv^lja_=3uCR7~QRY{CEbs7!BnCst?Xw`Fq#>)U?s^ z?sbXXwfi|AR=wCI zD;Qd#-J^^yT zKYHkU!e1%M(K{!5DXp{JM-vT-Y`hkDL*fN*UPhXXv_utIH{9ORDg-hQKyTigK~|&- z`HG8SZtk=P_}Kd8p=klY==O86DXM6=xqm_fnc4Pw0sl1jB*1rXUQ1;Kt;KeMN<8yy z0YGG8fl*HOJD{}T%w}CB{4IYHlpj!)!(_?E%+1Km&9A@c=yco-7$^%+FdfNVI95Ol z@Cpo+1f=8nQ_(Re|&m*0_rnFexRatAIjT*mo zS2~i^-rg>yER8^r_SNhYN03r}{J37T%&T^eUHG$f=%vs>cuv8pcR}d(J>*dKIFe^BSHd0qlE1~9t*iR^(X#p(zN+Sr~l{gIE(&g<57rM$CcI$K9iZ-mlbbKlz{ z&bWuXCE6$5(Xpx?hdc4>{)Gc;Z1;5uk^<{%wps))Z#`tpTHX;NzV>w2@~vk{ywl1t ziz;xOIlx99T>hB8VXOIq;y?>g9o>8_P4W2o^ZNl~b9Yw;!=LGZ88VdBUxwHpR_P+y z^`(J2GEIwAKcU+!x(Pr&&#RZs-Hc;*8&avp;oO~M zCy<$Dp`o+q!?9Kk|C|TMwNXS^+^r@Fz;EH~^%EXGKAXR|Njjn{dq&HwTs9q`CM>uWIr!2P#G3gr!q7+E{GHlM6M19&@( zV}Ugq2zd;oDP^Bgov}HU{;i}auMr$?Kx}||no?8j>hB_uRn|-`qhWyO`TqXi1ozcH zeg6iJZUFlkzBwiV(`H=(jH-x|Ob%oUI@&)+Vuh5J7i6Q|FGD(`+`?e&JmrD-m|~?W z1reHHs}VGT2G0dej&F{R;J(kDKR*g%35!#jp~o;PRCaC$L`v{Exz=N>emU<4XMke? zfSZ@M_on>(d`K;dOG=I(*&TUokwr_*$=L-s5X>f!0xqv0oaxJbs6K52zt4asil6US z=3vrS1d_oG!Qk2L9295q(q$Tyy4WRe|p$y+bW`*2tW5NEw`pd@7_XZ}r8E zo-bofje@WJy$g;7z}USELY#kG^A1A@AAnb?7R9f>#H>q2n0e{P|;{vK_0jG>$44BaBT`EY-U}B zuO&g9sSi^LpI%Vj2w#QQBlRv#$Xns{;y;4C__emCaUm literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4b9ee30b4c9d0a6eb1d09a023e011124858e77ff GIT binary patch literal 138146 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ƕlSml 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ce673785d277630c9dbf8a1b82d86f796779fcb7 GIT binary patch literal 64109 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
ip;6Wz{3$^^kjDlrTaYQJouiln9B) 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

i{!&4jjul-%rAOy00-KM0V=+6%b0-6HCS|@cuXJ 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�RWLG%HU+ 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Νc9W$;!7NYiM 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/(bk8b=ENB^WBV?0kjRZ%*Q+D6;4 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 F?_XBCND2S| literal 0 HcmV?d00001 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/API/index.mdx b/i18n/zh/docusaurus-plugin-content-docs/current/API/index.mdx new file mode 100644 index 0000000000..194a8da7ad --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/API/index.mdx @@ -0,0 +1,91 @@ +--- +title: 欢迎使用 Unraid API +description: 用于 Unraid 服务器管理和自动化的官方 GraphQL API +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'; + +# 欢迎使用 Unraid API + +:::tip[What's 新] +从 Unraid OS v7.2 开始,API 集成在操作系统中,无需安装插件! +::: + +Unraid API 提供了一个 GraphQL 接口,用于程序化地与您的 Unraid 服务器进行交互。它支持自动化、监控和集成功能。 + +## 📦 可用性 + +### ✨ 本地集成 (Unraid OS v7.2+) + +从 Unraid OS v7.2 开始,API 直接集成在操作系统中: + +- 无需安装插件 +- 系统启动时自动可用 +- 深度系统集成 +- 通过 **设置** → **管理访问** → **API** 进行访问 + +### 🔌 插件安装(适用于 v7.2 前版本和高级用户) + +对于 Unraid v7.2 之前的版本或想获取较新 API 功能: + +1. 从社区应用安装 Unraid Connect 插件 +2. [配置插件](./how-to-use-the-api.mdx#enabling-the-graphql-sandbox) +3. 通过 [GraphQL 沙盒](./how-to-use-the-api.mdx) 访问 API 功能 + +:::info[Important 笔记] +- Unraid Connect 插件为 v7.2 之前的版本提供 API +- 您不需要登录 Unraid Connect 即可在本地使用 API +- 在 7.2 版本上安装插件可在相关功能包含于系统发布前获取较新 API 功能 +::: + +## 📚 文档章节 + +

i{!&4jjul-%rAOy00-KM0V=+6%b0-6HCS|@cuXJ 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�RWLG%HU+ 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Νc9W$;!7NYiM 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/(bk8b=ENB^WBV?0kjRZ%*Q+D6;4 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 F?_XBCND2S| literal 0 HcmV?d00001 diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/index.mdx b/i18n/fr/docusaurus-plugin-content-docs/current/API/index.mdx new file mode 100644 index 0000000000..0c7b55592e --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/index.mdx @@ -0,0 +1,91 @@ +--- +title: Bienvenue sur l'API Unraid +description: L'API GraphQL officielle pour la gestion et l'automatisation du serveur Unraid +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'; + +# Bienvenue sur l'API Unraid + +:::tip[What's Nouveau] +À partir de Unraid OS v7.2, l'API est intégrée au système d'exploitation - aucune installation de plugin requise ! +::: + +L'API Unraid fournit une interface GraphQL pour une interaction programmatique avec votre serveur Unraid. Elle permet des capacités d'automatisation, de surveillance et d'intégration. + +## 📦 Disponibilité + +### ✨ Intégration native (Unraid OS v7.2+) + +À partir de Unraid OS v7.2, l'API est intégrée directement dans le système d'exploitation : + +- Aucune installation de plugin requise +- Disponible automatiquement au démarrage du système +- Intégration système profonde +- Accès via **Paramètres** → **Gestion de l'accès** → **API** + +### 🔌 Installation de plugin (avant 7.2 et utilisateurs avancés) + +Pour les versions d'Unraid antérieures à la v7.2 ou pour accéder à de nouvelles fonctionnalités de l'API : + +1. Installer le plugin Unraid Connect depuis Applications Communautaires +2. [Configurer le plugin](./how-to-use-the-api.mdx#enabling-the-graphql-sandbox) +3. Accéder aux fonctionnalités de l'API via le [GraphQL Sandbox](./how-to-use-the-api.mdx) + +:::info[Important Notes] +- Le plugin Unraid Connect fournit l'API pour les versions avant la 7.2 +- Vous n'avez PAS besoin de vous connecter à Unraid Connect pour utiliser l'API localement +- Installer le plugin sur 7.2+ vous donne accès à de nouvelles fonctionnalités API avant qu'elles ne soient incluses dans les versions OS +::: + +## 📚 Sections de documentation + +

i{!&4jjul-%rAOy00-KM0V=+6%b0-6HCS|@cuXJ z4x|MX%kN`G_e9J$k?g5T)`)uPllar@@g>jmC@$i%Ie&2C?!MH;P_1W;@9WfU)Z%3k z`iSqZv!FeZiB&U9d~}GNmQd0Y8<*9N+;k;Q`u8pi(#+|lP8}rDF?)nfbqTCwc?(f^ z=Oz3oYNlR~oDGxaIiM3P4Nj+}hGoPWxUPeta>apk+vcOCknm$BTxpS7r$w#Ocb#@% zyO1kcq%lSz5pF@(%_(SA1wL#~f-J*p8{$*!sC_5lj(Z_SA`7=RhX}B(P>aip(NqXG z@}2CY4art+I#xkq4Y3 z91zwh>xwH%fQV7}}MVF_|yy8^? zB;*^%M=Lj?Y`%71x@bg_?Fp1{`}ey58lP7^lkbsH-vCaB`092iJfWjo(<6`Rpdn0& z0`#ODRbs|6&OJ*VNT#TTq7z-Y50OsRF=i>Uc@o0p9FV-~xFWnS6Qz!)`^Fu=_YHjPP;mlCAqa#2r zXmxo=0;ow~(vyb(L)y^UN^ZNpM$9Fva$&^ZFA*H3rsut96#6KoR3CnMEJGbQ4b~J} z2Nb`5$%FG0(tNv%g0HWvmN?4M78OH7%B1AhpTNQ|l{T}TK&eEUl03XL&fVX90Zjcq zAf-%VRR&61D?l{O*cWh$<@&`$%XL5&Q%dkk zI&K`g4(*%(w07W?tbFyd)D$2ckI_|NTAo}4q+jEb@o)~e$=h0?nbX*b zVeMfwkO@vl7o;^>j1yYy4mG%$Qgxrs*C*M_t&Vr`h?DQ z!D+;~u+qvNKA*=3vB_ZFuR?o6U?Fme$zeXN#WxQl^2^7a_R7l3J-51^^lAiP;dy~X z5>PwtfGL3bjz$Jf{P61YV-wQcHh zgz21-^mavIY$;-wiYo@YdLS1(JmUtm>a?=)vvGop@rDK`$H4!3$M*YPoapJ5^~GvY zrv&fs0XCKx0fwv$Aq&%34ODLr_x3*9o&i7*3k#|SIM&45f9LPPg z&bD~M^7h+fk8{Q%dZ+$9a-Hq836(TI3n|Rbm|HYdDVBUomuDt`le`VS(Lrdw7e~Fm z=X>MnJI^*AHt_sNcbNuW^I)J^obZuUv_W)ok3Bqvr zeU(n*>9)*;W=3zXk=}!Rx!rTclhr#;x|i>q@PT-rGp@0Ck-VlbtGiU#`O=nt7?3`9 z?E*Be1STh?OIqr8!#Xr>=-mv&{JbHa(yJh_^(xH^kTxG4v;+5F60Xc_dNOz>A64&@ zx9XieeufY2%s6-$-eiMhA z{$=j$6mYH`88;A^hvwLyxg|oR0q)n(f#nCY6|7P<73)gX@Y+rb_}XV7J+4u@rCUSW zX@%Uixb|bv?&8=j9}XLrJ1+H{CwW7R3W@->J;tnIm=@>W@@GZsEb76B zkpl0b9eg}a_W7ZmK4-^AFN4vrGUx*qGk`O(%~ICjrHmdygbe8msL~{b!?*htv!)vA zky`T3s(m2Rc)&nwg-KNvF#T0ju0g&ro-ktE-4k-VI6Ls(1nmvjzdmE^%k+?FQv!dI zM&-gZXSB>rf3u&HJ_&#x^8utB*J+f_K7SOC-JIoBVYM}b;PGseDZaITPyPV0- z$1Okhnzfu*UvZO<2s3qv;;9gO&JoW4{KxSf-(D~g zGUps~j=Nmfd6&(LcY8pYw;>iJp(_lfZ+zL(Ug5YtM&-huWFE>I(mYI!FPBs5wJ_v} zFe@o=rX`9)q#%iTdAfh(oMMw4Vat<*x{M;AY_HD)xqJ#1A)9Kv%o;uS)UVwr$!R-3 zJg_eov1Y8kVX|@o_7lFMb?E;2=ManBjOVao>xIj`9?CQlI}0C*-X_b@Nf3_P5ah)) zHH~;bVmHD)qpb2w(G3anEIZ%Mm<6zV72Y4{6VtyV(7-!izZvwpJy# z%!!N$&#@Fi81(Nz5m3`D@St8zsT1v3n+~KZpj6r5usZp@_U@-?G0>aJwNCZRhfC8X zd1DML&L4=$FUwPVr^~m_xuRzL1z>9iY*e<7YWkEm#8hkP$R6%MXIc)fZFd5vJDtKt zhtpp>%6saw-o1uxS47+ww&makS9rFM7@X(*A|`@uXH)=F~03=ObQZAk6KKnVT4_qy8;ix4d`j=HG*vZ zF^kcI=9ruuen<=2(ydoBPJF)D>#QBGin8uOp-Qg8dD0aq^Zxb&6J|Z!A1C5C(0!`6 z1tJ%TzWko6m_zO7pC(Rxpeunb!tZ=x&|=apX)!RMpH23#xAo*ME#fC=F;ZWZEf?pL zvK_d|R?)eYvG50VCBrK%&B95F_HnU5I#@8L#8{O1$>mqJ0#7u##U3`FZsOP0GXyl7 zJxS+hdBKjb&43MAeTC+nRr#J?j@*QxAq$EYwIlr?Q>d$kAzxQRrS3E%wSBaF`Zrt4 zK+8SUaF{nn`eiXED(-356JeN4rlsb3dk`;Xj+0wVt@-S!V>SU)G869+MHtj1oy-}j z%Rf`7d~lt#%SLv~m9xpgHzIb?lG^V|^M*8Ju03&C1D9xNjjlJ0bV); z`!8NPS(cVZsJR*QA68&4Ok^*aDayvSyTD4|tVv4m@Yi_CT)-}EX+pG-ms0ikExYagm z!3MNMvLEIO+r|7xu}Mkx3-5z0Dmf7{LH9%#>V1Rv1AEP!?88xS2Io0o?O+2!x;0MH z(is@Ml_YD?5`NhWh7Vm5!r2zjc1@F;Yx$4KNstT5YJBLBZf|wdf$_9C-`_ z9X&6brrTMv@}=J~{tR2-QADxB=$I3`U39WL?QSn%tL{*p1RqrP;UbpLOiAkPkpP>v(CPpaWr4-=|oE!M1BF$4Poe zXNNbKHxjj~yA$dXs{`xp`#dDFj}Nz$io2+eA`A14dML}>MVicC)Dz=tV8)_~dzosXQ`I}etXo^XEF?z3*Nys0yb%Hrf5^5$~K+6;Gf+>)S+ ziy2beEz0Fx0`ryl9612E1@x19_@j zcYN2!`)h8VjsUDo1=EYEk58YRY$}U^vxhg=ctsK+dc=ip_tzq^6w*1i1fwtwcdPK z+o;WTl~``Z+LTTAIYfz(fpe`WEk3k72$OD_zhs_GBTX&HXdVJLK`1^w>+1>mB+u&H z9zWP1q307dnW0bU=l2qGzBY(C;7` zW*-$#2HW#)i$_kr;b%J#2fGnmn#)FUQif9f@^0ewP_biyPery}iR=hBCp9f|R;#Uf z=`o>*XU4RWDa$IZBrit$bH>+w13~fuOP<1FK0mArW#1sm#t*z@`kflf z1uJ8;txdJGJ>*Ne?2_AKonAVq#Y-_*q8SI~(QsUKxw9AXgMk#wNfQI?8((b*Q|r}| z^7XW5X$+t8+MX)r7~vFlsQUquXRS*W8vM)BVfhK(jgxrHlfmiggi=B{Xy=8SeImOK+DGv@2O zxEI}$Yo|&s-ELAim!illihHfs7s!7Dp^15BA;_(Z_U0H4fj@YFi;OvTZNDodJ%h%) zGW6W7`s0$Q!+D#C9(>tSH9-lBPAC&%1Dw9ld0Gxs^n$9&ASZ$Mb|IOAz84t*5Ljb%Zfc~aDcHMp;< zNWOWaO9b`ImLZ=&ZH{`^et)OiB`P8VIiJ{DnalpVnx2vR^6h)B#T&1hZgz{GGR6j* zCzZ3XDUAZ0TJH(HFY+uv>DC@c>(S_QG_8nxoZwQ+b?sO|LAHqCJ zQW?H+BV|r=lqBp})>NnMs5Ps7FWWgyKpVetTUADB?|v{b-&O<3)Wl3J!kE}6lDVqn z<(@K!Oqly1;I*d$&vpv2=LApTNhaMi zxaFRf1Qf=w5Lrqkzn$1si9S2#lv|ZgPTvS7YSYWxi^387ugrR9-wkQW*ZNJRc8GrM zcR~afSW}|F<^q9}I&4outQ=jbA?fld0=FY7&y8|){3)IB@ni&g8MqO@3?2~yLJ^NG zngYkWcVH_4!G1^cK5I#LIAcLHz&$+LH_XJQB`H;G+YJUxGe7nx$`D;;wvv}rL_Z;ORChJ z#eQ_;X&r3ZnQt5VS(08LV$qJ8e8Gp09Md@`cD-lOf11GffO&$FwA0PC+%o^;)sy=4 zP^c?eYbV)zf6J>D$F~g>ER0M)24N76&-WrxKAnsoHB9AYZc$4_p_v8aW!IZQ@o@S0 z=`c1Ljs-bCCpuP9!f{!K`<diBy=a zY5#ElI(_6^jq@|KE&UT#`47pcVZGDx%g15wN%c}SEs7-4cVi#ZB)Z(db}K}4h(+Wl zY{F7$yEkm1Rb=p%%>@>$(jACCmttOBR{D8YKzv@RXyC7$Iy+7)%EmBo;(CwEsaDc0 z;`{ussMcmF=uMesm#??`b>3$l-j9yUbW)s66K7n}mF8f{>79Kg>B?Wb`<%`At^IvF z^s2&al;jSBigrxISov*(?#c%n(Mx#7A&t9L8b+iK8a-zjscqLJb)}8rCUeyU*a=WJ zS*+@LvVH!YyDqmYDt)PAP2ADgDk3B6+&wS0AJ|e@ zsfREZW35USRy)q}!cZ)gS{y+@TP~^mOSh)u^)ZefcZFE(J?HF(^ia{<`frn6PwJg| zH4QY;l5E28WwiP7qWL1rdc<52$M6lWoiFTKhi>)GzKl^K$EA~ROZ5u=*eO^bIb(hd zE0f2x5_qe4drk@;TQEeeAw55W~VsCtD;}))VQETOrwfNw1 z+fB>qx#X~MH4ZEyf~~3bi}{vHEZWwQqnFx9*Y6s-z0|xeWbTJmEqdr4&h`anQEz>q z0rw*etx}S|9&NQJc$?ss*A^1bMPw3oSJ9*?Tz~>AEE^87o?7 zMk7ILGu-1AyD-wawu;InKmNqA=Lh4QyrNFQ_8yZQSuga0jn*SJgdMu7&C zfc(JxXF&50IknFfiqBz+^HAVl7Wuyg+U67i_8s!zuPzaGjVX#0bNA@Cl|LV)f2wqV zir$tYFwc_Q`HgNnh~naiNI7)z7a1FHZ>fT)c#!aP{MWXRbOa3$ndSma39v8(RlA9J z{&Fl_#|}42Gthi))+($+gC4>lpbY*jQvI!tl=~ka1=zd+;8|Gx|L{?OZ#A533bET> zo8KDXC!GKLkpFzuq9|QN_t)3pzWtyzhR?1GC4V&M=a06G_FoPxTu<7EyHS$i$mf2F ziud+IKzS_4$oRAme6k6*ZJ7KrW=U}m@xPqok2IDmPL1~%NE&T&MPZ)&TOw~gt~WAD z=+w4WI?WCd(Ap<7bi2bEfBBE>u1B4rlBc}Ja0pWM;uq%L8$sWqX!ZB_S4)?ll+?Wl z{i_fCzh(jOBf~rCI#&{JM$>ow|5}CryA)+9Qddj9FF*cXHh;Zxy9PRqVJyM9f8ES~ zp8$Uj(8lXDjGFw7u=uAUSR|KjGwJ>YBm_|f@1>P;HUEa_G!+3Hlyr=suk#xaGnX)U&%Y0K@qgek|NVQz6~ImKGp8tr=g*eQUnh+n zSW1C&qd;Ed(l0Ajnmvqi*K3+-{soEo`;JWQq-d25gP)84eXjm|C4GsaRZee0<^K6E ze}5n8v=dQGLx-=6B~#Nd4FLI_-Tv;Do}ONe?X9fev{*&>Gz<-`DcU@+{`CP3#|ejt z)4_20Y71Gk6#^-!0WjC)18G#&gI{S~hp4u=QZp_zictK76hJ`?pV7?ZqfbQRmCGFueUcZTRbAGT>f5W)Je8GUFcj7WDu#i}Bog@lfmOFBdi^|L@P~NZvVy z_}v4LvVMz7?=}CXDLxer*62m+lexe94hi7B$2QM?k!6G1u;nsXqauWJI=^unaNPm# zHTHeKDDayTDhJl+^PF2bzwvYZ|EIP0Y1#z57TbZsM|S|G)iCet5jt^GC=8)nU?+u} zz>PqiYkQIV-)RH}MqNjBN52;Sx>e{<+&|X~kI`MSO%in}0RRllSsPvBwNclxBA{l1 zzP|^A?o}(kGz(z=%)g1}fRBI%h|4f&1cFDsjqQh?Z1s)ipI`go&;bj(g}i#&nCcfq zbhf8Qj%s}e&;}bEG|+wsliI)6#lxM=o#O&z@!7@!alhPl8Xu@KZ&y{;j~cqURZ5gz z%gH#IK)HFqF2RfZNNLSc`cQp&Q0zmjQ4(VS9h*Jn{<8QQulrPpv2PEw&+NXvJWOGZ z54^F-Ka&8xuoGk_UKgnfDA9UG2wm+9_(@-H0sPv#5H_i?2NL@g1!Y6lC;Cj!{&G2| zf`AU|eAy=;5p!OH*CqK{9xIeapvGp?Klt|e2~O@>`a%uEKXPl*xi9* zkENnOY#8y(p2)_ClUb`LXt=llAjojQ1>0}lw9Dh;6eWTbd`H4dX`{(wsj}H&5_F<| zu72Ohd=uBV^A9z884Li5o=rAw+3C&H`q4@b5PS2UvU#oe!0o<7ao2dsIaFrWTTtNW zQb-~J&6uSC=c2a(4eP8W-=Bm#QE7}{D9{^ylVOMQB&^f2#D?&bzF+jq((FQ%6L^mg z$QUR%7Ye)Hu5vo&gB^@r7S;?wpQxub2fr4Dv`j#ZpwiB9HESBTRVs5+!8 z5bG1A#0|tDtL;+b$6tHxkf8_SUGD0*X9Wy8qCn$sn*^{hliF4y)b;HWvll50C5egk z0`_-;FKFlcJM1g=-G|4YTqr24hj>MPFmCFL#v~Z!J}YQUed!8x6jgWq43D^8*_h~3fpMYA zw0LYIBDTsS+1J7bQ)%J9$l>t=sBJ+D#CY;)o=GpaU%TXRSQmL9N0S2GsYMHQ+-tC} zo;XID9RYO!1F(c=^AlQgah=pBbP0_bb@!;zzwT+_CNJC2YY&R5NEEJ=*ZiU}6Hs)7 zEPMuP((|@F(^tNzX_-EhABJYd9AkxU0r!Q=|^7}%8ich*0V3?71ZEZL0eAp=54p1<~u{95e|Lt#P;@PV!oE>WR0=p zBWYrN7=nr;bQmtG=(aoiltlvr&B4N)uSJLCPCl#CLQz>c4TEkeSHeTsRmQ09Q3lY( zX9E>qPr*mN-V0MyzVsujKr1j5Wz|byZ78x2-=qMWJ7)i)A^a69De_6r=vcF9hky5q zJ(2z#^xGR_`p#*6iSIh6&El8K@eqU(Jhl`oa*ank2hY8Xv%XjN<);wuvGaV!NZ}bR z4tWE~bYqLokR^WKJe=5=KWY;6-&+@pfQV#s$?;K~$|X6xAbLYfnNK%uj4$@Zjps6z zI!^*wUDwQP_@2YIqIyfZ0rv?&5ObsP3{8DnAJMb#Qq4SlW^;U+B3gmUZc=o_jfdPg}d6K83ki}n1_$)*gz=er|*SbcPxHANHrdquS*@{ zlzCVZ&{;t^0@`vn*YX5b46$%7DY47x302ZEu8Vc980%j3EE6@Y7b~AxHyHNZuWWfz zFr478%Jk;gvoH+vLG>LXYc1WWIn1pJ9pO;I>oZpu0M=~_y8eEM!%(ZVL$LM6B=cfV zb{On?Q(Tb17h7%38G;;8-Y!q&Jj;48;$1sB1wcBh#2fv5;lDcuL1nBGKEyZq!qS%w zq78Pi63` z2XcSbrl2%%)5I=b!{o9F+lH__HPp;_Md6p!$7hOaE%BjghDfrocf<@_6qr_o2s-*e z3dhQ(!)2L^oQm+mCnw*v+jf@9xN(m5+}O${y;@-%ziGF)`fMfV`0cm1%x@S=y(rkb z4TL)Cr-5LwJZ=WhGEa5wRI3dkCqfskbv-A(+d+cb0c>P_O{JMmCxbXd`i<3lN6Z&Q z+Yc(026}6JSr>VYg?(_L%1#c^d`5lk&&jlJiFMJV&8%bI`Te4ytzfzZ&Xr`bXB?K5 zwZ!cKIeI%{cdjeF;428RK9h-C;SOLsD~f-8qY7_lR5kdO4N>3(6@#P;+iIvQUlg@{ zPnS0Jf#B~He;P*LoX43I;Mq4UiuTC3W%5_{_-C*st#Y^?{r-j#6D^P}P>g8M3eFFW zJnq)xK%wH`XI$a*#=|f<*}lKj2I?_25x94=f^#%cwci+t2vB8I+!KHN>Xg$&6UF36 zn@v#k=*I*F452JaWfWa4O5{t=gv4hzS$mwL^9F*I;`f0$%-3~NJEP@C@t`TZ4EmxZX_7*fA$|IVnHN7Cd)Y490T><=j`RdDK>%fFH zOl{wi$q~0aCwm82wIF$OLM*{j0xbpVyeUz6HFuQ!~E4)8GDF-J|DbPU4NqqA>kt z?3kWAZWIK(v5%fF&*30~YmrMCgF}H-@7e;ix|$;v@a{BL7!LBwhdKa|$mSMgigK?+ zjQj|d!6yqZ@PCLL*jY4g$>hA;#3R_f(qxLs)ko+D{GBxY&nsy)$kYR-cl0}{vpRRi z86gS2TiIuC7i7<8Zr{i2FGjhj`?rRmDr46o^DWh~bspNYx>lQY?P||QnGai;@c5#g z%?JMlS2lghY%05!v`71G_m{fGA)iGq>3gNDKL&rLBrIH{qL?>RF1XF!8*WRw-mon= zEB_a-=&$WUnq8a9-L#)(iIdB2v}c0*;KXUQy{C2mp}hVhca&x~qV_c|oYp#{ zvDd6}kDNk{{pTnC_m}$E(*JQ>d*Wu$OP;H@CUhRqjr|g_9HKH{dd;jteL0#c7nEGK zQ*JEZ2)iqNFS=QP{Wm2yvE-L@$>14jvB_{$M{G>fA?50o#39M0gIne z{pqvpiI7LvJStrl4Jlv|pj_oP=q>5X8wIHs#RFjX`Q7z9fEhvp_6fUz!pjBgWg8EE zvWPn800xP-2ODJPFG|#(f7ORo=VdlI)A12_LYsr>NR}*ML$%4AoVF3Dk90?TUjZv zBBB7g?~_9Y5~y9Dq3=rn2Xy=AaZqYv>|rMuY?mL}v#tJ|ZY{X~=Bx;Acwwj+q-D!t zt3ZBS^6t8_VVbPJr*!7GIbdx10OIntAZ7u3z*s4xbd@M7<{bbN+Y7G-X5aykKP{EB z0bppzMUifR8GTBTG=pz5=%9@;7BRv(qY(=OU3Ak%g{D66?3=cfiClOOSF!a0vjU(b zFZ0@S->_-kzFElV>{uIxi= zb5fLwD)Pfv`~VDkXlQ;gLx z1(XY}H}DJ7l~GYcjt0(nle{QQTKon@DH)627^e}a{^l{Oo1;-jkW-&cEdvvUHgaO} zu2p3_!)pNas?42i-GlEecYu2@-``m4!RM_b4uItOu2)LnC3nkD68Da=Hd8Fol$2@_ zC~^1C`I53G`|&rPp7QA}&DYI~VdU2O)F0Vzy8w+jl<8dy zJLh^`qV}6lqoT;VQ{HcAbD;pI1Ev`5E9&0_Zh1BrE*{AzOYl51Y4xD(O)%4NRvcz(V7_XqXZt$2pVIY-l?YQp=`+Rb#gbp$XV zR^B2*7jUiZ<%Jg z9@y%iL3F&%7|5(JK?~o((B}y#uab^kGd}*l*OKyl<&(E4sJz-KJLyQB(&(UJlkvHdxUo~fRF0cc)GFeQpAz{>MrW& zcT|Po5B8O3dO#FPoYb}KgSrfkmPYT0?_3=9QRuaebPGAz2 zjF2_XiwqyFYjMY9G(3N2Ib5}_SzBFVx;Ff{+^P;16qX`H@+j!m@e8xSX|RD$7sf`{|3Qul;wMIA zoR;_L2I2fX6q={^71S5z=W>Gr{2{{2s!b4XHD8?c;J5PF<66-`gG!FMH*qjs`XPx>b)E6<`0E`7FX9_U7d=O= zyVT~yf}UJmUTDkW+uh-nEO zObAA|$Ca-wkfksGXvTFMIlHIx6c7v~6A4AU>^*n{Fv@R}(iRzy%?~_|`(zDob(Z8a zEE&j})zg5dWm2_%6XiNb<7-4#({{`?(-7b~WvBZQ{ZeK2QWOn;#m5wz6%%|FgW7zJ zc9+el4X(M{PRKIh-~FdbPOx8pG?a*6lZVoKaPmMPYtx2@Wi<#5ijUqTS1`ZQhExj2 z;erA_qC;h0>jb&ua?0QNzD~`7zLiaFi!p79DWeI6$rUrKa#6er>lU?!&BQZ zc1|B5fmr%6(krJZceK~z;Y3Qk8nqaXQ@7;CxxO3(Bo&k?1#0=X*$TA($Q*l!y93E) z_?|Pz!fURhagL!^^K|Z*5t?aKyGstzFl_A&xqW*|TPD69|II{$j+JA+^?m>279r#<0;5{BA)%vXZyD8WhX+#GkNO zpf5YdZ#<-5;k`-FkoroOc{zq9KIif)VjbfvwTV@Ym)RPcX;D;nVcG1Tx^BN-ryD!o zuVD9NCK<9U_M+gBwoIxDIX&3`AijOkcXbNcSdBEC59B+PnQL5i)Ms-mn+ZZ{mkXCB z*jFBwe>FYW{a5RtMFJ#2*ZQ`L^D1qH+qlH5)#=~aw1ZhRHN$jJt(G)_78&eia)ss} zsRG{yH5qPlEp$6xKQ*hZd9&zoW02yi43>p_rE5fnhp754$1*3nW-X6X`DUVq%q#a` zY9IZzby0;=m0I_*%{1SqJu-}cZ`4eG?!E)_p2<%8+XO16-u}}?rfiT#;jZdXcw|5x z^H%_7nJI9-L?lPqZ-F>$w^|pVMb}hw$|D0V=eDRcW6e$kt!KNXI443LpJlZXboEd9 z*?;=Mo~2hNpc`$PDmd9$!6EO3oiz_##2=Uar!<6E2scvWa* zxksBJ%>-WcjiQGZOWd_G1SxCy#_O4&?jn-Rks<8Ndo3(4QcoCabXuC*xVuzEhrt9b z;cqWG!|vE~2Q=a>z4QMw3*fIF?RlTKFt_IxY;HJRRp)~2467@)$jbhkT+|FKsEi4v zZ4|asQ4X_KBB?6QDt=3i-txGNmfjhHoC3WPZ+LgLLj0zY6Q94wac*&K32FtF+$^)M z!lL`v@41kxyJ9{4PqUcxf)c1y9U|YZmsjag()yW`MLiCSP`OVikLpj>a;?6|Y$6i| z%l@$4{atcEzLkEw7Xu+jAtF?r-jegeyYtHfCB~86d3R&n-*E5#K_}L;4Ge!n>X)#4 zq?+(FD&=VNW|sW0S&UN!5QKXUWS-W*Z!qX{XAm?RDF&&HtZo}>F-SxSzlo-0=1b)b zyL+Fyo>R*_*XhjKk?+@>&3e}^!ALqMoTz>{9upku2IBP^C~67H>L;tJx+&lwQJ}tB zYW02FTt3ZcB`#PJ>pZMdrr!6jHljK9kVN*o7d)1gO<%1tCgfNQGha%>bI6&Sz%BLG zcC^Gw`+yow|JbG_MwZ1cwmnfJ;z7EJ+Soci<{|kWTU7b=PK4*t|BFe!^y5LYf z(Ew3J6|7v-v;uPn*lMykJGe(QmsupJ)pmk(g$bI7sndxmGZNi}A5s;x^A{iUwdNaX zz$F}<^F^B|LkKnmA@x_N`2@SBeoTzn7pq`%Li#8zG@OD)FnOm$vMlb&z8T8!$z@hCzbAFc&{IMg?Kfvaxhv9*v%gsXV@{pQ^D zvz5pDwd{^xHs3r~0w1-3vR^8wnYFoIa@xL_fzwWnFK8Y=|s4y|kb(s#d<@C{IvcKqv*i}7U z>T@DzRIK2{%ybh?VrIr^nFb=k?Ai$Z1M=FmRMKgg=1T&mnpGkOf~2hNB42J+v+8eG zM<>I|Qye|sjGSf78&aG~UNGbsa&Ytn4YyS}vhY*AU?x7_#^GHx=W!0PP&=035A5%m z`PzvU{lX@DIx*SL_q416MgJ@<{imiOausawLKumHM;_$3wDWLZQm`?pz#?u%;w z9npiN+~vN{X5`$$YlYTZzo{4eF~tiW^_~b3k>AXMVs`*Vi|GPVO_q|zGjZEkMmfn8CDaY zIGSfvj-dc7DE|2t_ky09TGz#t`Ow9onXkw&ine5!;)^9ofFT4mp+tXg;d~8wd}Xp1 zkvq@z=V!eFYh9b?b=2#?NxF#uKBz>*(#T-#{`kTE)35P&$XL)GMfOPgx*O&so5sT2 z(P$9r?2AtbPqZgJl({F56YSUW`N>#j>k9#K<;r!=7OO}I$ zV-VzZdAc96VB;wNX5&*g>g6#1jik-Z=N_rCv8HABp!Smh%S zxMV{tN%oh!(n zXFhlX3U6h2f6=M!RvECy?jV}0!qGuAFY7atXx{Va$zYwU(kuaLUb;&AXr zhudt5!&R8Z9pq4nVl)`utM3nC%+I1pt)KqPnX)Fg_ON2TLu^@`Es^`&$(cqi>2*-x z9|j%!g>$o8xiq=Lu6h-ofVAMEOzJD^JAcPjX587e0Q>CG(6~{c;yPldW-BWpKb@xT zH{Di*kF0^im4ousN1i}fzkN2&B3Gh^u?{O&$G1PdDalvSqy8;JPG@kU?guJH> zBW_%;cma1Q-vTMXnPf8#>M!^v29{HsD{@soK(l`3TU~@*iLt~0gFe~i@HOYc{S}qaaJmi*u&G$ z8F}^EDByvfS2H{m$LIkot%lklOV;igMrrQXN_vDmbO_CtP*EaRRV&#P5;TT&ng|Uz zKtGN2<&I{=1nTn0)5hPd$t9i10*!I}N9&4YeHJg~&|dU(z`7ON#G@d?OZ@)9 z3_s*9jXOEH*gaoQsocsg`PyhdU|R7On2wwa)LbMQeBE+{+4Rno2zUx4*P z)It1jz6tV8NH8p0Yd8si=A`JqflgL|R!n#{)b6xzoTj15y1(e(&rQ%=&Ym;t^q>}- zaO9~Tmwo20>_6N`%ED|!2IzupjX+1Ob13tY`NY{5ufk+5N4uLBJdLQuNjw~`lxG2eW>j%bAKc;oaUEu68|BAmj{=lpyNYDEvWJmMojlFB}_#@d-tMaVim6I@!1jdgy5u4)nSXVN#_*)DLy})r1DGe*159h}B^I zo_)`qu?cEk$d%^_3693<1Yl0el^eZ3ky4dC%ANBE$35@5Q^6j9Q?ct#tv_-0sA`z_ zZlM)FTIb6%ds?njG88Q9UgU-_lpxe0ZU)MiwMla`P7g~@K5s^IZs>w~U(5}I$L`(9 zUcy#5-wfcRAN6u_dVI=R{qh2+sL#J~nLwE;%GZG5n87%Q7N zIWyY51)q0+W97x88gprnAd%DzTC6JcZFzidY_1DMlpe%*z)WTC_keZ8ILp+Q|L(7n zT`RDGT~FQlLVbqlMsIW0QKHnrpX4KC-f~(>q%6Q|{HA)&uo&fl0CHwGsmPPMvA}9d!tKMD-*Jno>1z8&YCNz6o=89BIG~Zha_&P zOC;I5JW`A0hvip#$eLDMB-Nkye=al-m=pP6(!E2f zZDG+2 zqAl&Br2LbCuAp0NZ~>|=_XoCy$m7v_%BQ;9U*B3?UhY8HTu5B!mfVr*U$=CX6AX^< zlDki>gKcy2A8AdbJsIqrx}!SPB#CmxS@-g=8RodESEIJ#gpF^U6J)}gtUWI+P|j59 zaYE(Tk$HFwip}e1ZaZkdcx{ybCH|YSdiAi0d~?nv&G;w@J=fk2JAbCS$SJ|9Ve>_cGCZ&vw!Wj* z9^x>#nJGFf^d1s=%j9MzIo^oJ{joD&7(bXh2w%H$AeoJoZ%Zov_Y4IePo9s3HJ40Zqiiy73??wX9P*R);o@a0WmEM6Lr6nm1&1~kF zp5Kg{`RNN%9FvNN7k@LZB3zvsq&V~b(?H}uxP$rdyR&zBk2dif!@8_ToEZfPfXCYTdMJnT*G5iUwJY1W37k2k5b6d}JQ znw4%FpdvXTIGXdGoCdKyGEY>Fk={-yjM(ScbVGJtQ$=4sIjJD z;#>EI&a@esvLQu3%?Rj66&#DRy0M)+USbuA+?J80Iic%(z1U%Y&D0B%inRUxcYTV1@}zGC}b%dt@tB+pNGkLuSov#x_r zm_7FV70Q~^3f2E{`~AdA*R5lw)(!aKH6stBxFXW4zG9HoM0XQHj!7dwe(oZ#zN7N# z4<22k3oE(Nwr!iWi!JfJwvnW?uH|%rg}I@?VW%YAkdegp;AZW9QM$EmISd3$vuKlx z_%Sw1EMn0NY21;?-D9C&$`d$bU$qq9y$!nSMziH(rLp64kB*FZhR*Q}#hbQaf{Y#!JR$`>Lk*e@-cWeht?~eZ{jOK@Zp}p}T z^Xpw4xpZD=RzJFdcD*6r#AzZX6e_`yFMU{S?HfdCqX0rITJOlPTHotPU)+L@xitK2 z8cz0zT4_FQ#lChW!l>MJXUF8Uf{s`l-F0iHj!C^VPXmv9xu+i4%ZJ8;E~dQLM~okN znjyAfcstjyXf*f%5sLPFZFCTic-HUvy;eKF`!Zwxiyx1@j6|S$o;kYtj;Y>k9m38P z5wWfkD{ref8uMp8*o>O{al<*|&4Xi^>%~Xbc^64J&CoE(BewHD8P_XF&rl|;Lr@g* zTCqm@kFpTNR|J;RM&P;Nl6>(FydUvB1AS*|m~HoIPTv{bk*%1McPBQo-M3FxOPPkR zCR>+|&Z_$q1xeBi;P*oj?&;Zk-%GQIfUexr8Idbkqhgao}bT9OZ^gJWH$a`z~xd!=nnv z7vMu)=WjRhi!Q6w9;`^QtY>+Y=I_`_^iAmYkVP7)#kSk#S2LY7yE;D_jf$i^Bc9N! zaJ(E`!-k;4|Flr|sDgUCE@to8k<0n?l%{tX^z*WZV&Qb<^1(5NAq~7$VJdi+@CDFDOV{Jc;Rt1q5D}a_(-uapQU9z zCD%}-mZ(P4lj;?Mf<{EeD-P|zQU@?8@e`>r=*WnrGipy_uz&EZP87CzzBr&=!#}xR(B^ zbaJUn-C*{PKzD0QL7_LyGDEQL)Oo^)@l}No@-jJ$s?g7PC0(Gh!`ZWkNx)#nBMIi% ze!j1fnpSH6X970Cay&Pc44GYj?n97sEic~N;IjjCwAMhO8lN2Rvz2@>+(@9<(EWZH znPG*LQ$>AujUV-!Jd2?5mMmUZ$J?G7iQVD6WJ@Ad_wFHU15@`~u>d>E((BsXJ=BLW zn)SQ!RfY-nE(z+qSGmeuk(ypkS9QsCM{kb&$qBnP%q+}YA>^2ED^{l0xE=haiuj+f{C7Qv*@>(zLZjs0)*%n$ahh(G!; zU&(i#j(M`pSSDebBL%AMdG+#(kB_V~Cl7xN)G^G~a$nYxjM92}I;zY2?Z#zN-Eoj3 zkG~)hshU~^tQREd%ZF=r78Wtc?9|+OcdnN@`lzvYkk<^vqth^E733Cq!=>?h$l}tl z{mS9|CDv&3jp`w-k2$6~{o8*qd)5x_;Zx`BypC@qi}O3BxvjP)Y>NKW_{J0!!e2;` zC|D84S$buM@}Csji<(@N*$^43uu7Mh36;65k^gRP7nCigmR0@zaQslXyANGb6@Dkp zf#;q{>9a*fW}Hb*>_F#))G(C)wNB+cuGLcmK06mbruV2kl+$woTiL00c=0PA|Ef3q zHd{a2B*(xP-8|$4UMS{y!`;~J{yHgKHp5u%r|s%%xS1bITW(7i`)!kqG$bq$AsbGI z*RO7rKihb~${f1BlJ>Yz-9L0YjM{b7J?TIU<*0l4=6~6m1R*!`1=1A)TzPkyldrp& z<|t?eKr|iVZ;K3D_vg&S5^1vcm1}}(5@|Q5c&iTD6Fk*<`KqewPq}87Y>It+>F#()p#^jDVyyf@`W?m$ zG}oraj$h4oJ5sZn@U9e!Svc%f!C1SG$LgF_R zc66}7r;uzeVX|y0-|LrIT>0po@?xY6roZ7<>ANMPQ#>jaQ@$TOhmTj9b;gc7qu;+p zei_97W&}kd;#CL@=?^pg7HMYF#)OD=>D`-c+6Da{NA^hHQfNBt=KL<>ph<@6|sM-;%Q(JD=s<>Raf23CB1>3b^MHkN^ zklwCeIX-7{t?B>)&zT!LvGk~xoyg|@GB(j$Zz@^rU_mJV>3EnYA2KvcCBbSGjvOL8 z4s|=(G56cdK4YGvo{pjqLtLJ-w9!AfUpvRi{F;ZLy?kkLXR%#<`_d~zw?)S5i(f7b zZ;dJJEZ{SbL;ZTxN+OAu7R&j*?IT;L=^=guUi3jTd`QC1q0r2lZK9v|b?-%Wh`Pns zH2mpI%F3*K^ZU8@ zX54JUPB)^*JENk=O{iAC-_D07pCOseX)0z%x^A?94_hpY=`X-U%Wj_G&*>jO_g}rD zU7#f)r!?Nd1}&8(F!JbdO=lycUE#&PC;@flSiTJhvNNY@ya|HDEW}6XyxH6D$Z|?q zxx@rM*4rQ>x00ojWTn97R*|GXYk7Cdvb9r@e5lhqt-rG}b$6G_RAEH9mSL7Yf+wBE0m_p%J3x_4?~%k_)!!8QIA=|js=M@Q7b;;!p= zd7OHatAWX{dLUGGB3nxYoBH+JMp^&d>4XKU_o;LGevgt2V{F;p+<0eqVL@nDOw(h+ z{qxcRdm@kbx0p_$YP-$SfB`G60*(xmYIF3dz5Uphrz&+(^{?39ce`|XK~MxUjg;G` z%2_8QuhNZs`&M;X-9@{4&AH~9Ys@jn?|Eu- z@(pKIsxZ%w-H6tBho;FN^OrL+1TiZJJ#dQCZhnrlq(m${2j&S?p4V{s#W&Jupye-iwufn8kG49 zZ9MAKv}RL}9|&16A8ACc-;au4+sTPH=bwmjXCEpdZ-o8%ootWH`+r-;9UmMwS$ z&$`bBk_(fb-L+cb)?n5C)*$EPc~o=Lqp?OA+zqWd!eXOTAIgRA_#Ac49P1#rBBIr;-*K0;Tjj^bkZan>rxK2+0 zIeBE#U4ptgg&&j|Tz|{0E+6?F&nHLP>zs&t^F8eH>xUnn=d5S*iYss_R@A@6Cp+@p zY)WHGma4Wv9^d?|z4^Y%YWan-t}29nP+10&*Q~36GLqX=o^mdlR`G1Le_=FX=*Z<2 zOkc0wM+nazFgdahLa-+7_7k@0-H96?sP{1^o~lP=mV~+7&bG+)cw1P7Xf>B#_4$B2 zr5p@HX(f~Tl@NTX8S9D25YW9rW@XSSzc<7jCDIG4;twG%$*%a^-e6UNTvpn|!dpM? zl6RoGF`|;xbABELaLek?x?y(Bu7R}c2-UqWRW6csH_U59tF|>WC3CQno7#Nx**?IN zSMk#Lzcue4-OW;YsQaBDWO7{PWdoOk9OP&H*#?71LjrjpJ7Ua!QEGgm3uQM{6%e%e z7KciX5K2`mhl-b)-fh|ssN6m4=qe;-jhr<3^2*PS?5x~xWcR;({$Al4uKC=m>6WY8 zLw2xkiRC$wL~yq9zU7yMM;a}LU!ai@(}Vl819v61+nqNUT}3Kq zp4GkF(~2y+`s7*3K37Dw|A1-D*8FtYq|l3a6NZn@x&Cg2DW2qZq;Kuwoh6s@GjE&S ziSXo#D5G~!moDFQSt7D_y;tEfVQ5@Mk3Hg%a`*$Wh8VeeABJP#AiY#ue{duya{Ws| zAEC2{r)^8GT%Ns(!$1W3$9_cHy|MB?pZ^QcG&`?=)mB(OPap|1vgP5_xpHQYo&E8R zP?e!X#p=R6vVo-+;(b2XtL{fn27%}I0yX{CseD6q&wO!&Dvk_lPee8^f3|W;EHX)o z>6>c`f+G{I(z>a&`@;0xx_%dqa@o9(=IXxZS&$-uu7%;7^{+kA#oJAmsykcju%26E zIeX=IuUejqqYCbihMt4vvl?&`qIO3HJY!NBTG~s^wL;0`1S1}f9je;NPYt*$!jw{k zdyZ;XvppCp-MC#oymCm0^C%1;US4qnQS;e8k}-$OU$eSb>sYl%V2T=trnTl0v!b+9 zm%-HT?0%?7K{>T?4g)rlQ=q9Uok4j_>A!Ar`wIl?XL^+ZRpqKN^^LOXU47=6Giy@b zytTY5s9SP~yHk1f+K}lL%bJA(sY&fe6zdASwaY1PFRkN)y^Y^IC_dubyi3D!=pyopC@nKz8=Eeh_6;L@pK#vc|s}&N`L#4~ZByRt>$RQAwk$MFG*w|b?Dn?XPpW(Rm zVH2GSQ_aJ}%fpfewus%V8)kYfKrd9(U7Q+c%Wm$#c9&ckF30lC}%HD@Rh z0tU;@BJS>ezxFXzBOqU{mLYQ#d6;2$m%lh{D0k$5&B5q1eX87oi;n;@{S!j==qFJw zm?|>8OcBv8kXwW1;<^PWY>w#EBjnIcs#l~4Rz=Hx8G} zhvry0kAo3#^xv}ehOwe@hO~XHF@IoXU+jF)I3CS)EVoobYM$%Df^G*>%9wsOTs1(o zU*CK*^oDMfUh`C96}8Zy*Yq_~^!FW>f0`TcJT+C1e(FQ0ql>P92L4!w+GTv(L>LOA}|NgB2^RJ4g|9ADv z!zgnw;|abje&v@BtsB2cYXgF;d(Na~_LoXsnm3L6w;n2ddIJ`mZGpF0%z)9&G&G>N zWi1v|7^ExQDFfMOuYon7&Yer_-GyZ*){@5EaQ`=4&SGGV#+@ml(a20Oc0qItjV33@-medwlerMUEV zb9NG{-5&8Uu%fFpC;ix9qHFO$g?s5I?N?gJad;>~F@ojGMVf}tz z>Y0Fj%5lv?p{0NDu3ozYHaGUK~ZYS{{#M+85FSb;7B=7Jz zTxh=wweAaS&4pR^r%Ce<3*-I6DULCMjm@NZ#xLA@jhBuMXBvskGSnA9WpfEYJToge zwEm%Pwd#?=!&r31z~;swDRguN@6x}orpUN z984k?)l~Jf<36@8vcTRZPpvC{xZ2S?fzw3Jfduhe zTSYOvS2oevi0?{wR!8=-=2J)z(>i<&lW zYW6D!9u()WZ-FHHa|9xzm9}$h`Jl8w-}lNeprYK4vNPAV8Q?|g0?y^u^@raPQ{-0J zXFaTy$em%W{lNkGiO2#(uXRJ26qPI8;`Xwy{YaAY_yba13!Q1t2_8^VG*ZL<=vvJy ztFL0ejgir(qSM6&*eWmgfuGF;@Zu>S^T*D<4w9nWnNjAJla+md&C^3yE93xR@@$EL z^dWFEvErDxxc?!bjIX?dwMGLJ`Q?F(iBn4m@3?I%<^GmP}rf7 z;LID$lhj)eo{y$?#gF;2USd{Cd#2EJ?s-}^k_Rxs;kEu3r^lgI!c3_0qpmJ#$KciM z-%X%^pus|WbSXdppEfhrsa?llt|N$fU>!o<2ZnOrJxzDrBE2UyTd6^7{uEY47pi^P znQ${aa-J_h+mze5V}V&^t0_v2sj>e8+Ve`=01gzUyNlf+wIW-MnD?8aZUYa!2w+`n zoWN(Bs#*wzD9N+=-ynOXoGDxS;6;o?3>y&JK@Z+b3=H4;+m^~7x2$&>#*+i$4M_S3 zma_E92Q@tnU8U4c^<_|w>u3x46u1G*Q>>>EayItTfCqkHEROw(HKd{FnMzwa`-{4Q z;Q}2B`_F+^E-5fgY!TqlQicqmrYdE{{RQ*`L~y+*p+uhnQ@x^q`7(cW=*th5Tq>Jb zy!ut1#Bxc%GSu^A1++KXuwyKRqC!pqD@y1!6ENVd*^meA404^J?zCo+Bj0Jc}4{vh=NJHDzh zjYnaus{IZHE`zmlEcR~`VtD);3_$e{<|$=M_GGI>JytYH?oYq)mZ<=~9F0J_hKgE& z8(5Wf1IrJYFSiDMqRAp=^D@`+;PyS-+1IukYdku*f zFsOIMa~lks(EiS_hfiQ&PqG(wRn-juUQsjdv5}oa#aMAzUU`aWmf?>N5!ZW4Va;`J z=yEs&Hkz62VZ1t0h~AaKZaMx?mT$nQnnNsp^x;V{)h|=H_c~4Z&<(MGL`q9KK~&=C zRZxSNZK8h);Nm2|d?M?Y7f(s~oCgeH4~7grQT={m|B4h!FdGX0h4~s@6&AzC`{h@_ z$F@W;-7MCYo38`HIo|X4`qDR|o;PPqJq{P1+fn`2=Wj%*h(Q$ROBy2n3odps_wEFN zV|!M8NWA*{`GsG-C~KLKoD2VLuwL>$xd&!{-2%EL@86%Z^G`ro3l?d-tOB! zzgYqtqa5IESY`hd5~MMF>U{FApkS@mnN2|g0E+K)=Hsa2;%RwpuUmtPHbK^Gf_U9y)m3cH{GYu)@s*px;KF2)t| zgn#-Q_>Z$H`+WWXwZrh|7e&dz3~TzS`1)^c1JzLbARhSNAN>D9mm2u1fnaerk2|+v|E+~ zNBXiPhoA4A4A;l&yLm|LY@2{hym$|3 zkU2T3TcmrsvA;iYp}?mFAgtyfdlU-r^Ttw?u4zd&C)?%sv5cx-lJGGsYVvx2F(+e7&m@0`Qj zPIiHUr9!%!sK2?1Y6HM%8I^Xn3BxA5H{93gj zghBR;E@Vb7ln6MDyT2I6LgUj=wRIO(XAyeOO;SNlIH=^M0PusqaH9vB9E8VC%e{F# zu`CnQ9z75>*tEwwApa{8Z)7+WZFiri2C?yAI~-TLh3heCu`-AJGNk`lF-WsEJGb~t z`ea|FhP4#{ZH>0u)b3l}Qvj*}=lkQrz^=x@{Ep+$kh&Cdeutb88gm9}^-_vC<4eO z#is20kwRb3eGe@Io{8g$`Sz?V&XL9<`^%r}p##QUYtMM4!WWHTiz}I@B^PRx+Rpdg zfRdwSUV?ab;Hv4+V)=x77;u?1)&%6XC8+HM|@$;X9=wm_%C|+8k zr<}uTbX>lHD`g7!&PR>9c5fv#9AsJ(J;b=~(foYs_>-$jJe!c0m z;ku*=?4^8$BBtYW%?_NWkK-z0>cXLr zVtYUy@v=3i>f3lt(PKp*Kd&r^%=&y!)n9P8@Cv~`WF3cu$#5t~wX~F+JMiwV#8TYy z3AaQk8fb6sZ`jk$fVi2=R14j$Fw(Kcu*6pJdCI1LZqgO`lK7zljS`zX!H*f85qN=S zM6=&I7O#4|zt^HePf=UbZ$b0r3o(Rwo>2qyOP_j8qY}iCKwGA}$PcFM7bJ%3F{{o$ z?1u@&101kA+N*k3R7piIh=q~Eg{5TK%Nk*D$hyyNPfw9Hq!ex|KIt>-jX7DwFN;;c z55I7(7D{(AaZdYt4X%I;WgDOn3`jhl!nI(1IvZt(fm9FdF z?=l+tfo&FVE@K2@4q>dp;wa}4`Prz&ZJf|9^}y{gj8vLLSfz&>wUA$~2dIADUrewb z=cE*nXs)wK=vxwTY>#RaCV72jHp)L5I&TqMIrI1-PO}PeR=L-~tX?rTy7wtsLK<5? z-VpMzn!t;azaQ#$iqgCJt7-^go2~Z=?-^6V4>|sYsAoa4Y*k;aoa(%Y$+M+o1r{_( zC9P)o`J4scfZm_sTT=z#oC3tM_@Qqn>{*?b&Y_!hE*C z$y=+~BrA|!EqGp0AZ#K^tAWKv!qHjMXJVea^lIwMueBcy{p^C$RYs zV2qMvvTmjM4mKOkz@S@R8SYo&PRUqOUH3k8j@c5-lF>bwWH>t@K9u>0VYy1R+QAg4 z=fbUFd8h%OA$ro=AjR)tutDt?9a}Y-QGFM0>o-j`{zu`JL9+OpLTp@x3gY4^ zT(KX-Nb&9ugat0rDzV#rBT+w~c@Vv;`1+HcoP>O2N988kN3GY-Nq z9?S9}rv1E_aNg_*tC^0Kq?>-QBhkUc=9;cbaU*Ze+>#L=Lpato4z5bq4OLg}4kyYo zF;vf*XV%b$$7|ODkvg>zh%LMJ-rH{o*2Wiun6j&>VX`e0LqyW6P>*%)i4oaP1*w_% zOu_wSc-Eg&9LS$$>Pd_9lc=S`&YHII?c|>gvJ0>8;*H=kyHw9!tW0r99~Bi&5m5{= z7l69nCi=4qSOD0IVh>gp7u2$CQwjGD;{9bI!~amUC!5%&uolTgvFH;v0anuD z%&LJFDerp)tD!tgJXRI}*_1bQO(mVBk+>X)!AjzX^MpMe4O7xlAinMQB7eLLqyl1? zKVE~iKeF-uioqMjs;1aWa^v)6m02`FD)G}56M(yV5@8EASSIZp~MpT{t0jJ3%^$g-rP}7YF+#jvK5!Fw&5WZ)7rq zoy28T9U8EjRC?ulIpyneiSM;3< zl{QR%9Y3zrH|mpY>G0W!Pq1c$9uA-q6*p5gBwKokjk6!FRkQ8wRnjag_AvUfyR8*V z<%k5OR1 z0MS(uxB2h^A=7fiZG>E16v9EAzf1)C&6p}zcKvg{&Ku+S-HMxz>)fWE3P5b8a3=jc z|N8mRefbt##$N`+wfPLNupu8ux_-_aSjlW6Gx-SD&U~L{zZ!H}dk6BFYuiO(KLkhz z=&*On6jGZ_Bidt`Gh-u4nz~w4+PWmuX`$QgBdjh;e56rSTFK?4wIkMeUW1d$O%fYT z0$sbrtQ1q>HHl2sPsy3GU9)amtV@$1VqqV%ABy6lX>dlQ7s|S`qZ4Y({1Ya1F87u8 zKq|V7tt)9g!m1hgm`?borr5}ts>5&_xwv+IWW7gJjPd=z!0Q=MKD(9lIllKq=Qobg zN#a7jMO{+9S9$C6^#+5kg*1IjoXkNY$ysr$sOhQNr#L#q^;nX-qS?f@k=p9Peag>P zxul|DuT81w@mkD#i&Acz`e*QE`_@Mie?`83=D76)!OHr< zlZGQ;wS6IXM;lHLpgMVmWQPx`wh+Y&1@UQL>D5BOhtshbO(Q{0?||VarN^M6S{KB0 z(+NEf@nc1%?*Ub2`pG`#!rE6L)r#_-DBj3+2T23Tujii_n% zzD^Br3`cX-KP?D|3k;R=j`ewrx}(&WHcNg*vjz3qY#zQt3McxZK6(^J@2;+R$t6DF z;DnE~04rr?n2GVUpXj=;YmCEss9lqGemwW7GWO7$?kDo6FEU@hIuzWjykD{c6c^Vf zMudHmH#Xh}GQmEi1Y+>7>(*@>7XFwpi0({mSiEAs)GfPESMO1mkHNeyK9U2%G6`$XHzt2T}0A33Gbs z-XLsR+J9mTH+gbN_0`n5C5X{=b)-pmg3w-9|GS!Dgma6d9px4IX()tb3=ca8b?RF!WFCzVQm*{VX zsm61gFSgYGWVKKhO|OdUkCV`5Ev%7lE37^;qwaqVXOx8&RHYQu?Y~@|_o;SpBhDt( zbh+ngocy?SA;EdE!dcXo%06IvJ;46hkBnbukkcF)#i%xn;(FnD%g#>}Tc?c} zuA9n{5cZcA0Q1zGic8vRSzR-^$Dncd$JykxJ8%l7zC*+PlOYOo@Vq=blNn@P{m<^r zAMbXO|Jb5`&RV47m*?tJ2rb9hejLOLJESR5^~bm|X4;zD`G_qjmbIp$a zk_Gu=8lhPQDLYNxH0)pR7jQP-Tp(fF|JH!>pZ<0s17S23e*2#q(GPmz`TsWXmy`|o z`2UY9NMw^cl2-;;#nHvC1kPerq-thQq9vxt`S^F)gH~&wTR7rl-a z)+b_+<@RVA`#X7Ao=utR`6u|fN!a>f%(t!EU>ZKMJu!QKt%h34cz>@{+pD`4d%rJJ z+~UkfQWG#dn2{MW74S`uyXLBJZ5~%-@ZBmok>EQOV|LZpQ z7GhI)*pvJOKe=(!fMN8$e8Z~|U5{eOe&f1YnvK3z?o}jfDay>j{d|g=@rb z*0o^P<`X%tX>}vIE_6Hbq^`<9%*LsB-I1~dtz?C~fDawrP}!4{MsUQ)=(g9yjI~!0 zDEmyxU*h=c_rh(xDgck{=<`q(lwW+p8hzAgHN8qc(R1201~;1h`C#8H7NK@NU#*t) zx@q0@VT4E6UC6K;WSg&M7Wv|&NvpLN#&@r)`t%`%zG(Qc1Q_skX2R6sANoyS-V# zZJx3AEKNQ~%7Q`FfX_B7S?)QP~k4 zGhcsqlesB{L>rpEvZbqM8u2`)^8uNY=(gR04WlzYG>cCA__Te{9~A4vCJ}FxO{%Iu zr4Ki#^rD28Da~v9l9n3xlm;ZP7#0d0hm$aA^j=i(taCnB@AXi5Ss}t$Ems~y~4i}e=j+w0K}6+1_c_c~Jcx0l2%B5?7UsZ_dOmQ{8#MKQ0A zWXC4dXFalQf%xN}kKqe1i(WuLYgsR~v^m!veoyeyw&o%Gp+1tU=o`5{7>SfH3q3Qa ztwYZ)Wx%+@vdr-0AWcKmui1oM8w!c)L*pPZ37amX8?UD(@v}7$73s4yNV2URPJ)AD zIo<(`*kkj8g^FqP+tsnscBp4v0BUTB({1*>TjUqxGtP0qHD0i_1Jfd> z9s;Fj(h=*ofJxTW=Z0V^gTmUrj*32Hfz-+L*O;yZ$?+Rdx?`<~W$O!tJnFUk2l+iQ z!mTxx4Ym!{_H_V>lYv}rI6w-Tdu_7Rzce0K4l82a@H|7HUNM7m03G`k?52WOXZUBr zX-AsU`_8(8it;Q|9T#9Ha>Lqfb(O86*$>AADcpOGk2FE2O6H$2I_9rnhumu|JYRp| zU@gI9<&gq6tzKe~Pgps-9b39uSk1SCW*IBPcYk%tqAuUWTivjPwmbHae;HyHpqY?R z&^>q_nnOCL%vK*UEAnu89Pe;n%57^y&Gy`xE6&@$4Y?_`)o>Ff$44LU_wS0zMme@3 zU^klmix%f(b=cgKRMRaYkpVkkKj1DK+# z^~)JxY7dJbs6 z-TM05FA6Pl#LbY=f@oZdzzKsMr_jNn*quV1Fnnwmbmb?})}2a<=S0>nVa+LQ4QGgg z%CzDsj|sf94!h$_=>EE?)dLUy>XX#(fD4~0-xPM!I?fc3+)ppRT1orCt*UX377dgV zJYHx8#3FXYh3`fGtW{v+UzdW&P*pXA3>B)kLhW>sUVyr`PH`=xavnKTAYFrO&rqrj zU{eB)f4!miimZR3fpM5ockN-uEaQ{0Wq&uMfYrFbW?ZL(B{4bFehiz{X2qOHTOqw< z?|d!kY9g^D(YK()CyzfwCvx7qr$_V9$56%R+C4=HtS5@>DR=th?Fb2*-ePftOJLD4 zkzxJ#^yba{-3FM)NXMjIO=(Sqvt28*r?X&6X6Di~#J+PP2RX+8IrUoXZB4n3W zQJ#?CXZ@R~rVPk(*kTA3JKCqK#dl{qhcKu}^ja34N+o%wf!B8bbdv1WBZI^)b+(j! z%lP&I`Lf5&p@rdOZq%Y5y=izp$@AX#sms2{)NHC>sV<_}bO$bjxp%_uwY1gRysqIg zKUj}u{Q+kQszTF#tR6BUpWnglNmfF#M6=1u-S21BsT#i<@zT#;$UrGwhPI2Uz+A#9 zHYd1pw_ED-!g4Xu;^aJrd}+-&WqL@8!X6hPQblV5lINa-LOz5N9-2ky zzzKV=D){m0N@J4?JEQcG)=*n*FGGGEu=$r<|F7)G9Dt`IdARrT>i#BUx(dx*O2*VN`>jZ`N7FReP+E_Ym#V#QI;4!{e||#Xvg_5q7~xMv5IT-l+kLyy znA~39c|Va&D@NwSJxQD%-nNWet!yszGY=5{vBa$5)At|o1y-@%Q%SdJnvmglC&FjD z?Gnv8PL{lo74~V?J(+1r zRZ1B`P_wNME=Qf31900G#LipWFXqvTFP+_?5XaExF`ZbCH zQJys$J&hP*z{LIX=N2Z7Cu=z>^-(`8F~T@qJep?6_6uRj#N<4Zg!nn<$DJ5EQ=CFvb3KS%bHb;Hxf-n%2B7)Xjo7^&|Lh zQ`t^;#}~4dk)&!-<0HkraqIdT4(kajqz13 z7!qvxE~qE~Ie8z29OUY-`r{@U&5PrVJHAY1H7scL+5g~5%P?2}D(P2&3D3y@jY3;> zqZZ61=~M%nfWUY;jsH#VX{zqcvuOD4e7oo)5&1@yy&sJ6|Nwhrnnv(0c);vR0=nkAjYgsKnS% z8$Y-EI}?u8Tx*r7O^R1zeCyN;avO{F17H{nwcH6eC%0~FPMu1lgdk*te2tKU$$@p5 zXKsDX6%>UvapP!$!JGoP=vk}(XGY_jP;Jx@X1_4**4_3`(CDiK=gg)98TeU+rx1}Q zQvb(W_^9&H1Ho#?W2*-A)ieM3?l^IQa!Y-o>}_7d2G7fH6W?&%qPhIn%iA35p`4C^ z?UYhZ6r=3JE86>~WYC=L4@Q2BQ7kW)orqrTjntpQNv)2lP1ahy;5YZL^f0){R*uO* zt_r~u)x;o4;m;s<#1EpmU4&>RFU`6PtDV$$69vAm80#r{5JXl;>>`&pq&ZXldim~G z#%pq3Rud1t4H7jUioGF)n7ds6-f>gx#f*;c*QRfKK-2E)yV{qY$K7>`SgdOS>IChv zgR5o!?8W#I{Q5H%6P8@jH-*e7f1HyZR> zvzD+Ta4TcLNCOj{uoi9Gm5%8eyl%&e;&8?}7WmI)H<@_F$!+&bUXuZ5k4D|T>FTI* z2RkDxN*ChlF|j)cBa`w@D9zC%N*vz~WtvdIhkMLKN4q`Ld3uDys9DBHeeN97Y9s@LWEaz4bT!Ux4F zro)mj#5=w7RNY#$3zvIk)w-*Ls(!_PMy0^P_P)xjWLe&#mR-EEwoTw|!ptH#UAAuk z)khi0=%BvNH!dsv3-5O1JVS|SCs#k;BuYz#snU}13cVw&pZ!9IpMp7&v~C--3;o{l zV5gK1&%;Cd_%4*##Z}-lLQ782LjYNAPaPv}8Iv%=*fHZ*uwvMtC*A)=3{e%P?F zPUc-!>D`#Zj;8rLH=3YQfy6&TmWb^9pY%#B-xtDwdSwToP4AERQfwm7%8$E7e7A8H zzy zE1ub^`Ja`=E3%eU8xBGyo{IFWY{S>c>1#4k=07Q__yHiG3tQT=A{&8=!bp5+5#%^LqN;bl`x~a>aSYLWcoV zXjYY7M_l!#`2jr^Rc)J|(-#{uJIoZ_eCON7yg=vtQZu6`VaZtOG>!e)FbkE_ZF?R3 z1p%6KQ>OeOi!Fp&v!S;evaQ^DPnm{8pBef0~w_uc57H$>?y}a3;b;JeziL?bNNIK^d!zEqqD%Xk!+JPDuXN;mOONy5(M!8acr? znu5qHFYM!Ui4?mbm#x2SWzcf`3THA#itvgF!(pSROmMgsMAKk=1hEuoHMPF^5MFVh zg=MYxcCtB-!O8)ppFn{r6dQhR$`sMVyClpSdFguizg~@9&uO;1V6)y(^jy3lIon-o z{A4{S)7Gu`iR``sA+b0{&p)~gwhj5-eb6Fu*i7dnnKe~Z9Jx@yM3VYe91GUH+)m3j zD3D}#<|<1Sls&>B9?dC)dH&?PD=Euq*E_>DhPPu2CuDC6hRk`9GTsgGTSRnx0TtMG ziieLoE&R3Rw?6tr4?A`~^0(JY`7u)LBnTbm(7IWG*^GN2CL^X{coQ#RkH_V!o|90N zRMw65u;HQ)?{&L+Nz>*Rzmc&CZPEF@4xsxwTax1(6^Ux6)Q24ydzCIC4z*2c#Q7+1 zyk8qIFF~8=x(v{Xd2OUW8F793Esce+iN=YR|KPf;)%nmMHDriZCf9b=>idfuY+(%Y zNgPn^XFu=eVY^WhUZHl|;lGcZ(Iyn5-I*U0dOFK~EmqmMlZRG^@G8fEDk>+sFqiz* z)>OQp+48cq@eQ#rCr?{G_VVn-vL$RCa@mXAFPvPyu1l^+mg3tNH^F~WY$JGkNj!_? zgP}MLrnna>MW|p%-OgpcOU#qig{R5B?~JD5wgk3|ck|YoMwQu=BjTfR<_Oz0=1N{E z3E}DRqSO4Q`(1`O4{^3zMoyP_p5E-gL5oit$3t7UyVoSloY?w`pYROPdZ0y+A^c9{ zBjteb(w4=MhRLu4j{8|RNtz2%1?O4(9ncv=!H)Un|jD7lT z$xnFVXD{m0I10?kppWlf#n893avK~5@Z+Ycy!S}<^klK%X_qVbbJT&c*C;DC6VKc$ zYuD5SrMIJ~%e!tFQJQXEsQw`0ti>yhI!mX8h}@g~ZYR_JS-5_)O%-ZjF&9x-W=Q=VX3tA#?WQJL7M9ue*E@)z~&UcuHDo7&1bN z3VZ5qRvX6-aTh<0nTn0>>jf$=Q~q1Dx&*iUeTgcu%%&XF$_V^}BQv?Bk0dRvpUCzL zeX_22_qL-?rC-vd#)oFKZj*vO7=ulfZG~&orO!N@^PsMv^oDSMedcxLwaE>|xh@h} z?kCn_toJ(G-^GyxEC)S+ew|JCGi+q9)o9r6FD;SzCR%%9aD|J`tF^<8Z;eql^|)Q@ zJd&ZhUQehrT+eF(iOMjWFT5N(Dm`F`KfFy?N#XaV{EBtP&%G^xR(QL(A@_ z1{LLG3YN!MXmU!$jXfH58r^Yp*m;vb;VeDCGxZ=H#@Q&I+b7-^*0BMD2D{Nsie$nW z+Zg=G?j;@eSk`oWe_9t#i>PWfzw$brtzD?Plri<@`PG(HJ?wZ0PBfkzL7k5Mt% z2#;0A;lPJHO8l->J^!W`%&|GYm4*Ahhxzpec>9yE=LOPrkxko7=mrPoJ*;Z{Dcui0 z3=pj;!d=IQPMVMxGuZ)})cR)|A{87s^3hL`UD!=?&Lr)+F6DEM>(}-*XLY7`d;Os8mJo7aHoTBLC zei)Jg#3{hkp+(P$`p>R5$!@_Z*5+=f@TD=@@fLWa>}@FZX;ZuTLhq+u)A6!>FtI^wT9P;rt{|f zcqZ4K1lfcn!y_@-vc2!L&tVg$eynKvjLEiMfAqb^y=Zl-b7wJ-uAYL&QdKc4M=Fs* z&^9p6acf=O?W!A2^1>`P_9lrg22Jf_8bW_$^i8Crgo{PeerMG3E{4yjx6N2^g&{j9 zO|#bhD%htPxE*J32&YNUQ|T`o9yi2yR=7AnSRcA-V{R2=tA-}%N(TiZEZhb!D9#9TYE z^nJRfb^^wZ@}_|24;%c*-_S$XK+sKiM()>(yn`{dF^{f_IXNs^TS%x=dD**9xpAzo zE_Vl5dY@5#bNR|i`cspA@%tt8vucMCdLNr%%I@QFO}1F+zj6as!WhLVelE(vA@-FG z+pZNq>7fBGb2rk1@UeGnzWUD^IrIj6PJ8~XM4(33ShGSuX#1$L;d_#zTtIBH0`!f0 z9i2qB&~3G?l1L`$nN9^^0eu|VT~zX!4fllBN3ptEdUTirc#Fqqk-y1wMGKE+z_ zpJ%(MI}IqPJLr88VJT6cZqz`Vw^{i^SvmbxoCe92pEu*rzhq}Rme*qkskeEe+M8s& z+azPOh#XsaYZMC%(&>++SUKp{2r8P6@eW(UX#@)Duv$D=^1`s5(YRoo2$BnNQa!<- z6aC{w*l_Kuzj`FE_bA`hZ;aOM+6@0*uKxXvx63mcp11d{Zxq{xHgamXRrs&|d4PW% z=I{R!ienIGzPc73@Sg_#J8Jpk&0D!QKUJ33Tw*aI#F9D|4XiX|I;rlgO#{ncc|2dUw-~5J7lfA{ zjF-#%xLBD&RrU$Vz-#z^yP{MWRW$G;RKF;uE-%!o=+3hqD|zs|>f8+bXPD`9B7YxG z%9GP0xOwTwyB$^L|O36Swtj^-8FJgS>eFEdkJIolg}Y_e~$nQB{K z4?TvJL0f^R?az}*A=-Z!fOJ?G(nQUYU%zn!^K%_g+w=gquSSzqYXdgElFu>`KIhxy z`v5pi!0izLcY!b1u+quKtK4RRK6+1dH8UjDL%mQtA|DySv)W3H?Xd&Qx}Ghu>NJnl zenK88Ko$#LC-~IGe3EN!{)fRE{^mMXCO(}W;Th{XawvCaJ($c6SfxB$7jQKEUNMbR zj%`4}YZWC&Dfqmq#3;RB__93xJMx2U^o(!+T%3u}P#y4(Sk#^k}PKzE>f~vv_`|O?SpeY9(=3001SEz$0t7^y5BYwKGmm(bI6V`r{2j*R?*Wbi?6& z1vR#xpO)AyJn!-RvH%W76y*z1s3@Q@+y;L0x9|Ga!vU_Gc~WJ+G!Hy*xt7Gv%S@+U zI<1c{jGcp_+D0I9(#ZaV;3n&T0_VTx7CHwoKVmG;f|{>3;3^)%uA1p&d1$@~Jp^Zt z$@e(*T6=|(;u3J{jXq*(H*8NFn}34@PR!etKR$AN?i>ymWOnf=#K6TOiVC2`!e0fh zC0t^l2Q0Btd@ZTGwEHt;nLXfM(E7tg3gz3gMuegD=Vxw=(AvuEhNaS;c#o7bfmHn< zzVjDMUky9pIy;M9%%vt>9{^0H5yPtas&Z|}Tq0{~d#<(16t2R7qwkFOMTU~(_2T(n zq|i``Z|3!h3TxiG5DFjdwh!F7H~VZxuaKu@0IZTjjE{X%vY9F2hb1@N36<1<#p0#V z+i`htseqx#dhE4I@Z=BL1nHGLcX!BG{`UqpYnFBRHmN3!vOL7tWDu_3$Vn}AW^Q%ws= zc9Sc~4Ojj0TG5{GD}*jMz$He&(M-!ISh(q0x$OXb_GhXWgh@&nGK{*}BTD5KWApC< zMTR!(wfu7`u@rmBLw(W2H`aO=sZ}ii)R1;FeLQEm!nlikV7g2tI4>KarkbO|vA}84 zZdm(`Mh?gz4Or}+IX5}g5?rt8s+&61~YrVc}@$O^)-pBrj z9O}$HbIr^Z=XqXazTe#gOpY6%x?IrsDS+rZa+KC@ZHX;$S>CK9ZXuwa`>u$EE zVYNq26&1D*`+OIc;=O~?5Ot2Q ztj$MhtV~_>3=*gfB^G2aBzoh)th1(N>HetpdHSKv(JjkT` zv6_}FWQ38EqNU!5wOMDtfOHEy;B`P*=y*L%QwDcY1ApdAP6%0W==s!YYsQO%X^tzoKAO5|Cza`?A@g zdqn*EKKSc~5Q3t5Tq!&3eCpAiu^huBsuc;G__5b!idG0OEa65FGG2+{o2dr>5?JT) zibLVcWK0%hiVs0uR0iLkv9uzJbl|aDnxpz&LH8xl#a*{Etp|E>qBd9!?wpijMr1^2 zsG_9^JxX=B2RT#UJ5tFz5g{Dq`s1@P*GA{(9sA8Ilg=yo&t&VQP`?RI9g_H#;5 zN_1waN7H4eYIf`SF^jEd zdr@Pb#tR?+c;X{}4M>peCP4-q&!1}@*~>MccuPfavhJfe`wNU8^Z4AtlD%(nh1XU* z9;Q*s4$iZxbP;WNm&f_CJ(5=?+{+)+78hvirE$77WYrMS8BAo+juoI%#kafr{W@v+ z9QyWh$zvlJ>C4V&R@CPRJ^Q{`hA5z*0I!+hoW440Z3(g?-MLaqgdwWZ??PSk#4L6! z9Jg*AVsmtE<(-{#ehL%mbfJTXW;{>`A8<{wX6l$6OxHcNJKi)<95cj z>+~MkP=d|cW6a_Xq^HqebJX9E8fjD*usG;W*3MZre^M>^NZFhpry+}S;Eg>Fhn1{A ztsXMkzNQK?&8~pV_^ckYi4qeID>MK-=KSnU5wsA5#cDQW&&_$#TUP>B+C=k_;ahkM z0;`bU;x-kKCLxfDkvW6ZutHy?i@BEqz4H=h5F&h1B%bif5L2ER??J`@o=zY;OzLbR z+uR(p*%A#F-F~6v;%&+v0Gy9Wk3j5M@$?njmh$1ZU6+z)2~a}UwA~tHaAwQFda;UG zr7}_~i2pL6&hN|Wk$zXGG<-@7TDr$^fBCub2R($o<5Q8BXEb;mlODgG4LRR21gkPJ z^s^d!ppW8wBh68QPq9JOb2>-`iB#QP=SZIszWX$&KP*7OD)_x;0{_c2NkhV6X#bk8 z?ZIp%fO%-hVzyhRmHUYL9IdBIl!e&?Kud?ft76N+pp9%J@=MCTc>6m&j5kkG1NuBw zB;)FX%ct%&Snq0V5lp5$1WEFLo5CL@!6Z*1GAzO3&U4?-j;u)_o~l7Y>@9?>1He0F zPgPi~4G_sg4(yD`=~nZy>CgAqQf)e=@wFY)4Q1gjWy^WZ*StE5N-RK+zT2u-BTfQm z1hgC^m`LD3XGI`IlAdd1NPdgwGBx1v?-JyHX5i@~L&Eqo9EkebZdO6EeoD&$@29P` zL(e;HEQ9(C*F9T@JoHvxW)C|CxUTGTj+=;LlY!Q`tvbar2%~Slb>tT=Ku38|N1B?1R$iN z^wC~t|LZ>e^M)1TqXY&>btFiVd%_lhNh5j!A)n81Py^i40|ev%19Xgq>R0?Hh4JV7 zq)157zjMW)yF^U=SG4-?Kb}Mb1Au02%sHM23V=xiaRFw|OA)41yubawe|aydFM*g- zo;P%W>Ob4~=MRs2u&OMwEv^my^Z@NjzyPZzU1c**?@>59a6`RAXzVuo%Rv7&0O%bs z0N()@N7B=K^b!i#Bfto}Yy31IuX~%I;lV^@HV_VtYMY>;``;U(&6mH)?KYV>9bJ%oY+8!Yy!j_uDd}J>nlK&%mFzV6RG#}Z zHm3Q)-$6kLm;8;U2UHpr?smb98^bH)<*SztEcxE>UBplx2fXNOEU!F@V;Ly_m_35; zvkn?;Qvl{drz3ZJQl|(?D4DvW;dVZ4b~b4$7JhDCW4rN9_SQZ1uFSBWCZx)P^VYc5 z{PPv3l_^)|6C`v6u!ISCO)^ zxwYWmGTCf*spBQ!I2)(r5ze6L#KXD3+_!CZ28sC5wb~%ZVo11!a$(bIy)=gWnyK0H z#Wk11&!mx@BQ!$lz?YQY90fV4_@ENr8b+u85RAJ2P4Etc-9<Koc(mpPuKC~?{j~-ID*L};;PIy@VK*5tz&xQzJ1{5<9a}siedE~Z>mm|jpviQ z5x7;pGvU&F_s97`H-1c{Af5yMk>Pp`lfm_o87x!fM80x3^+%2fgB~*UHdnpPFvvy; z__x%IVn-%;FFTTZjA3(MU*P^DAjU!tk4g{;l+5BhnFQ&sA)6PPX%-hv_wXANPJZ3P zmvB;}6w>R!-y1Eu+&dL3=(LseWzC+>J<)krRhW>a*Lb_(tF{zpgtFIbc%FgBV;VWL zRC#HpSSw<(bJk8?_3?VY50_O_bXzg!9i<#`F?r=-ZC}Mu?K7r;p&U1AbhUR0~`$X`->nN?ssPuX^bnt-KVLwD&>uT@awdEkx3{cU*WKvWhGCBQ@$p}iCLF`<%QSZX&q`2ZQ zS=+0gz+Xo`NB6E6Y(rZ#zFK=0oMaQ#6hVm>8>lccO8G7RB$3L2R!N7s(3{X3AxG@X z?jXO1S@T8&szsu-=iF%`PmbNtKaW#|_d*A)nfRT�RWLG%HU+ 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Νc9W$;!7NYiM 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/(bk8b=ENB^WBV?0kjRZ%*Q+D6;4 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 F?_XBCND2S| literal 0 HcmV?d00001 diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/index.mdx b/i18n/es/docusaurus-plugin-content-docs/current/API/index.mdx new file mode 100644 index 0000000000..6cc321e4f4 --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/index.mdx @@ -0,0 +1,91 @@ +--- +title: Bienvenido a la API de Unraid +description: La API oficial de GraphQL para la gestión y automatización del servidor Unraid +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'; + +# Bienvenido a la API de Unraid + +:::tip[What's Nuevo] +A partir de Unraid OS v7.2, la API está integrada en el sistema operativo - ¡no se requiere instalación de plugins! +::: + +La API de Unraid proporciona una interfaz GraphQL para la interacción programática con tu servidor Unraid. Permite la automatización, el monitoreo y las capacidades de integración. + +## 📦 Disponibilidad + +### ✨ Integración Nativa (Unraid OS v7.2+) + +A partir de Unraid OS v7.2, la API está integrada directamente en el sistema operativo: + +- No se requiere instalación de plugins +- Disponible automáticamente al iniciar el sistema +- Integración profunda con el sistema +- Acceso a través de **Settings** → **Management Access** → **API** + +### 🔌 Instalación de Plugin (Pre-7.2 y Usuarios Avanzados) + +Para versiones de Unraid anteriores a v7.2 o para acceder a nuevas características de la API: + +1. Instale el Plugin Unraid Connect desde Aplicaciones de Comunidad +2. [Configure el plugin](./how-to-use-the-api.mdx#enabling-the-graphql-sandbox) +3. Accede a la funcionalidad de la API a través del [GraphQL Sandbox](./how-to-use-the-api.mdx) + +:::info[Important Notas] +- El plugin Unraid Connect proporciona la API para versiones pre-7.2 +- NO necesita iniciar sesión en Unraid Connect para usar la API localmente +- La instalación del plugin en 7.2+ le brinda acceso a nuevas características de la API antes de que se incluyan en las versiones del sistema operativo +::: + +## 📚 Secciones de Documentación + +

i{!&4jjul-%rAOy00-KM0V=+6%b0-6HCS|@cuXJ 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�RWLG%HU+ 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Νc9W$;!7NYiM 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/(bk8b=ENB^WBV?0kjRZ%*Q+D6;4 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 F?_XBCND2S| literal 0 HcmV?d00001 diff --git a/i18n/de/docusaurus-plugin-content-docs/current/API/index.mdx b/i18n/de/docusaurus-plugin-content-docs/current/API/index.mdx new file mode 100644 index 0000000000..d0083d558b --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/API/index.mdx @@ -0,0 +1,91 @@ +--- +title: Willkommen zur Unraid API +description: Die offizielle GraphQL-API für die Verwaltung und Automatisierung des Unraid-Servers +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'; + +# Willkommen zur Unraid API + +:::tip[What's Neu] +Ab Unraid OS v7.2 ist die API direkt in das Betriebssystem integriert - keine Plugin-Installation erforderlich! +::: + +Die Unraid-API bietet eine GraphQL-Schnittstelle für die programmatische Interaktion mit Ihrem Unraid-Server. Sie ermöglicht Automatisierung, Überwachung und Integrationsmöglichkeiten. + +## 📦 Verfügbarkeit + +### ✨ Native Integration (Unraid OS v7.2+) + +Ab Unraid OS v7.2 ist die API direkt in das Betriebssystem integriert: + +- Keine Plugin-Installation erforderlich +- Automatisch verfügbar beim Systemstart +- Tiefgehende Systemintegration +- Zugriff über **Einstellungen** → **Managementzugang** → **API** + +### 🔌 Plugin-Installation (Vor Version 7.2 und fortgeschrittene Benutzer) + +Für Unraid-Versionen vor v7.2 oder um neuere API-Funktionen zu nutzen: + +1. Installiere das Unraid Connect Plugin aus den Community Apps +2. [Konfiguriere das Plugin](./how-to-use-the-api.mdx#enabling-the-graphql-sandbox) +3. Zugriff auf API-Funktionalität über den [GraphQL Sandbox](./how-to-use-the-api.mdx) + +:::info[Important Anmerkungen] +- Das Unraid Connect Plugin stellt die API für Versionen vor 7.2 bereit +- Anmeldung bei Unraid Connect ist NICHT erforderlich, um die API lokal zu nutzen +- Durch Installation des Plugins auf 7.2+ erhalten Sie Zugriff auf neuere API-Funktionen, bevor sie in OS-Releases enthalten sind +::: + +## 📚 Dokumentationsabschnitte + +