mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-06-01 13:04:42 +00:00
5ca3463bf6
Full rewrite of the docs site under app/[locale]/ with next-intl in localePrefix:"always" mode. Every page now exists at both /en/<path> and /es/<path>; the root / shows a meta-refresh + JS redirect to /<defaultLocale>/ so GitHub Pages serves something on the apex URL. Highlights: - 107 doc pages migrated to file-per-page JSON namespaces under messages/en/ and messages/es/. Spanish content is fully translated (no copy-of-English placeholders). - New documentation for the Active Suppressions section in the Settings tab and the per-event Dismiss dropdown in the Health Monitor modal. - New screenshots: dismiss-duration-dropdown.png and an updated health-suppression-settings.png. - Pagefind integrated for client-side search; index is built on every CI deploy (not committed). - RSS feeds: per-locale at /<locale>/rss.xml plus root /rss.xml for backward compat. - Removed the dead app/[locale]/guides/[slug]/ route — every guide now has its own static page and no markdown source remains. - Fixed orphan link /guides/nvidia -> /guides/nvidia-manual in docs/hardware/nvidia-host. - Removed obsolete components (footer2, calendar, drawer). Verified locally with `npm ci && npm run build`: 2804 files in out/, 231 pages indexed by pagefind, root redirect intact, both locale roots and the new Active Suppressions docs render OK.
187 lines
12 KiB
JSON
187 lines
12 KiB
JSON
{
|
|
"meta": {
|
|
"title": "Host: Add local disk as Proxmox storage | ProxMenux Documentation",
|
|
"description": "Format a local SATA / SAS / NVMe disk on a Proxmox host and register it as Proxmox directory or ZFS pool storage. Safe disk detection, destructive-op confirmation gate, UUID-based fstab, ZFS pool creation and pvesm add dir / zfspool under the hood.",
|
|
"ogTitle": "Host: Add local disk as Proxmox storage | ProxMenux Documentation",
|
|
"ogDescription": "Format a local disk and register it as Proxmox directory or ZFS pool storage with a guided, safety-filtered flow."
|
|
},
|
|
"header": {
|
|
"title": "Host: Add local disk as Proxmox storage",
|
|
"description": "Take a physical disk on the Proxmox host, optionally format it (ext4 / xfs / btrfs / zfs) and register it as Proxmox storage — either as a directory (pvesm add dir) or a ZFS pool (pvesm add zfspool). ProxMenux filters the disk list so you cannot pick the root disk or anything in use, and makes every destructive step explicit before running it.",
|
|
"section": "Storage & Share · Host"
|
|
},
|
|
"intro": {
|
|
"title": "What this does",
|
|
"body": "Other <em>Host</em> tools in this section deal with <strong>network</strong> storage (NFS / Samba / iSCSI). This one deals with <strong>local</strong> disks — spare drives physically attached to your Proxmox host that you want to use for VM disks, backups, ISOs or templates. ProxMenux prepares the disk (partition + format + mount) and registers it in Proxmox so the UI can place content there."
|
|
},
|
|
"destructive": {
|
|
"title": "Destructive tool for the 'format' path",
|
|
"body": "The <em>Format</em> path <strong>erases every partition and byte on the selected disk</strong>. ProxMenux shows the disk list with a warning banner, filters out disks already in use, and requires an explicit confirmation before any <code>wipefs</code> / <code>sgdisk</code> / <code>mkfs</code> runs. Still — read the device path aloud twice before typing \"yes\"."
|
|
},
|
|
"compare": {
|
|
"heading": "Directory vs ZFS pool — which to pick",
|
|
"headerDir": "Directory (ext4 / xfs / btrfs)",
|
|
"headerZfs": "ZFS pool",
|
|
"rows": [
|
|
{
|
|
"label": "Proxmox storage type",
|
|
"dirRich": "<code>dir</code>",
|
|
"zfsRich": "<code>zfspool</code>"
|
|
},
|
|
{
|
|
"label": "VM disk format",
|
|
"dir": "qcow2 / raw file on a filesystem",
|
|
"zfs": "Native ZFS dataset (zvol) per disk"
|
|
},
|
|
{
|
|
"label": "Snapshots",
|
|
"dir": "qcow2 snapshots; btrfs snapshots if fs=btrfs",
|
|
"zfs": "Native, instant, copy-on-write"
|
|
},
|
|
{
|
|
"label": "Thin provisioning",
|
|
"dir": "Yes (qcow2 default)",
|
|
"zfs": "Yes (ZFS default)"
|
|
},
|
|
{
|
|
"label": "RAM needs",
|
|
"dir": "Low",
|
|
"zfs": "High — ZFS uses free RAM as ARC cache"
|
|
},
|
|
{
|
|
"label": "Supports content types",
|
|
"dir": "images, backup, iso, vztmpl, snippets, rootdir",
|
|
"zfs": "images, rootdir only (block storage)"
|
|
},
|
|
{
|
|
"label": "Best for",
|
|
"dir": "General-purpose disk: mix of VM disks, backups, ISOs",
|
|
"zfs": "Pure VM / LXC data disk with snapshot + integrity needs"
|
|
}
|
|
]
|
|
},
|
|
"opening": {
|
|
"heading": "Opening the tool",
|
|
"body": "From ProxMenux's main menu, open <strong>Storage & Share Manager → Add Local Disk as Proxmox Storage</strong>. You will see this sub-menu with four options:",
|
|
"imageAlt": "Local Disk Manager menu — Add / View / Remove / List available disks"
|
|
},
|
|
"howRuns": {
|
|
"heading": "How the script runs (Add flow)",
|
|
"body": "The flow has two phases with a triple-gate safety filter. Phase 1 discovers safe disks, decides what to do with the chosen one and collects storage parameters; Phase 2 does the destructive work. Until the final confirmation the disk is untouched."
|
|
},
|
|
"format": {
|
|
"heading": "Format a blank disk",
|
|
"intro": "The path for a fresh disk or one whose contents you do not care about.",
|
|
"items": [
|
|
"Pick the disk (system / in-use disks are hidden).",
|
|
"Pick \"Format disk (ERASE all data)\".",
|
|
"Pick the filesystem — see the table above for trade-offs.",
|
|
"Storage ID (default <code>disk-<device></code>), mount path, content-type preset.",
|
|
"Confirm at the <strong>FINAL CONFIRMATION — DATA WILL BE ERASED</strong> dialog.",
|
|
"ProxMenux wipes the partition table, creates one partition spanning the whole disk, runs <code>mkfs.<fs></code> (or <code>zpool create</code>), mounts it, adds it to <code>/etc/fstab</code> by UUID with <code>defaults,nofail</code>, and registers it in Proxmox via <code>pvesm add dir</code> or <code>pvesm add zfspool</code>."
|
|
],
|
|
"tipTitle": "Why UUID + nofail in /etc/fstab",
|
|
"tipBody": "The script writes <code>UUID=… /mnt/<id> <fs> defaults,nofail 0 2</code>. UUID survives device reordering across reboots (so <code>/dev/sdc</code> becoming <code>/dev/sdd</code> does not break boot). <code>nofail</code> means that if the disk ever disappears (hardware failure, unplugged), Proxmox still boots — storage will just show as inactive until the disk comes back."
|
|
},
|
|
"reuse": {
|
|
"heading": "Reuse an existing filesystem",
|
|
"intro": "The path for a disk you want to keep the data on — maybe you moved it from another Proxmox host, or the disk already has backups / ISOs you want to keep accessible.",
|
|
"items": [
|
|
"Pick the disk.",
|
|
"Pick \"Use existing filesystem\".",
|
|
"Storage ID, mount path, content-type preset.",
|
|
"ProxMenux does <strong>not</strong> touch the data: it creates the mount point, mounts the disk, adds a UUID entry to <code>/etc/fstab</code>, and registers it as a Proxmox <code>dir</code> storage."
|
|
],
|
|
"warnTitle": "Reuse path does not handle ZFS pools",
|
|
"warnBody": "If the disk already contains a ZFS pool, the <em>reuse</em> path here just tries to mount it as a regular filesystem — which fails. To import an existing ZFS pool use <code>zpool import <name></code> on the command line and then register it manually with <code>pvesm add zfspool</code>."
|
|
},
|
|
"presets": {
|
|
"heading": "Content-type presets",
|
|
"intro": "Instead of a long checklist, ProxMenux offers 4 presets plus a custom option. The preset string is passed to <code>pvesm add … --content <csv></code>:",
|
|
"headerPreset": "Preset",
|
|
"headerContent": "Content string",
|
|
"headerUse": "Use case",
|
|
"rows": [
|
|
{
|
|
"preset": "VM Storage",
|
|
"content": "images,backup",
|
|
"use": "A dedicated VM disk store that also keeps backups of those VMs nearby."
|
|
},
|
|
{
|
|
"preset": "Standard NAS",
|
|
"content": "backup,iso,vztmpl",
|
|
"use": "An archive / media disk — backups, ISOs and LXC templates. No live VM disks here."
|
|
},
|
|
{
|
|
"preset": "All types",
|
|
"content": "images,backup,iso,vztmpl,snippets",
|
|
"use": "\"Let the host decide\" — allows every content type Proxmox supports on this storage."
|
|
},
|
|
{
|
|
"preset": "Custom",
|
|
"content": "(free input)",
|
|
"useRich": "Type the exact CSV yourself, e.g. <code>images</code> alone, or <code>rootdir,images</code>."
|
|
}
|
|
],
|
|
"zfsTitle": "ZFS pool content is narrower",
|
|
"zfsBody": "If you picked <strong>zfs</strong> as the filesystem, Proxmox only accepts <code>images</code> and <code>rootdir</code> as content types on a <code>zfspool</code> (it is block storage, not a filesystem for ISOs). The presets above will still work but Proxmox silently drops the content types it cannot use — check <code>pvesm status</code> afterwards."
|
|
},
|
|
"manual": {
|
|
"heading": "Manual equivalent",
|
|
"extIntro": "Format + register a disk as ext4 directory storage:",
|
|
"zfsIntro": "Or as a ZFS pool:"
|
|
},
|
|
"view": {
|
|
"heading": "View disk storages",
|
|
"body": "Lists every disk-backed Proxmox storage (both <code>dir</code> and <code>zfspool</code> that are user-created — system pools like <code>rpool</code> are hidden). Shows the mount path / pool name, content types and live status."
|
|
},
|
|
"remove": {
|
|
"heading": "Remove disk storage",
|
|
"body": "Unregisters the storage from Proxmox (<code>pvesm remove</code>) and offers to clean up the matching entry in <code>/etc/fstab</code>. For ZFS pools the script does <strong>not</strong> automatically destroy the pool — that is a separate <code>zpool destroy <name></code> step you do by hand when you are sure.",
|
|
"warnTitle": "Data and existing VM dependencies",
|
|
"warnBody": "Removing the storage does not touch the filesystem or the pool — the data stays on the disk. But VMs / CTs that reference this storage by ID will fail to start after removal. Move those VM disks to another storage (or take a backup) before removing."
|
|
},
|
|
"list": {
|
|
"heading": "List available disks",
|
|
"body": "A read-only diagnostic view: prints the output of <code>lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL</code> followed by the <code>dir</code> / <code>zfspool</code> storages Proxmox already knows about. Good first stop when you open the tool and want to see \"what is on this host?\" before adding anything."
|
|
},
|
|
"troubleshoot": {
|
|
"heading": "Troubleshooting",
|
|
"noDisksTitle": "\"No available disks found\"",
|
|
"noDisksIntro": "The safety filter hid every disk. Common reasons:",
|
|
"noDisksItems": [
|
|
"Only the root disk is present.",
|
|
"Every other disk is part of an active ZFS / LVM / RAID array.",
|
|
"Every other disk is referenced by a VM or LXC config (passthrough).",
|
|
"The disk is in read-only mode (failing hardware or write-blocker)."
|
|
],
|
|
"noDisksOutro": "Use <em>List Available Disks</em> from the menu to see the raw <code>lsblk</code> output and understand what's happening.",
|
|
"mountedTitle": "Format fails with \"device is mounted\"",
|
|
"mountedBody": "Something auto-mounted the disk (udisksd, a desktop manager, a lingering systemd unit). Unmount it: <code>umount /dev/sdX?*</code> or <code>systemctl stop <whatever-mounts-it></code>, then retry. The script's safety filter should have hidden mounted disks, so if you reached this error the mount happened between the menu showing and you confirming.",
|
|
"zpoolTitle": "zpool create fails \"invalid vdev specification\"",
|
|
"zpoolBody": "Usually means the disk still has stale GPT / LVM / ZFS signatures that <code>zpool</code> refuses to overwrite without force. The script runs <code>wipefs</code> and <code>sgdisk --zap-all</code> before format, but a very stubborn disk may still have a stale label. Force a clean wipe manually: <code>zpool labelclear -f /dev/sdX</code> or <code>dd if=/dev/zero of=/dev/sdX bs=1M count=10</code> and retry.",
|
|
"inactiveTitle": "Storage shows as inactive after reboot",
|
|
"inactiveBody": "Check <code>findmnt <mount-path></code> — if the mount is missing, something in <code>/etc/fstab</code> failed. <code>dmesg | tail</code> usually points at the reason (UUID mismatch, filesystem corruption, <code>nofail</code> dropped the retry). A <code>mount -a</code> usually reactivates the storage once the cause is fixed."
|
|
},
|
|
"related": {
|
|
"heading": "Related",
|
|
"items": [
|
|
{
|
|
"href": "/docs/disk-manager/format-disk",
|
|
"label": "Disk Manager: Format / Wipe Physical Disk",
|
|
"tail": " — low-level alternative when you just want to prepare a disk without registering it as Proxmox storage."
|
|
},
|
|
{
|
|
"href": "/docs/storage-share/host-iscsi",
|
|
"label": "Add iSCSI target as Proxmox storage",
|
|
"tail": " — network equivalent when the block device lives on another box."
|
|
},
|
|
{
|
|
"href": "/docs/storage-share/host-local-shared",
|
|
"label": "Add Shared Directory on Host",
|
|
"tail": " — prepare a directory on the host for LXC bind mounts (does not register a Proxmox storage)."
|
|
}
|
|
]
|
|
}
|
|
}
|