This commit is contained in:
MacRimi 2025-03-04 19:11:31 +01:00
parent 0d556f01c4
commit d30d497ca0
2 changed files with 66 additions and 94 deletions

View File

@ -2,75 +2,65 @@ import { Steps } from "@/components/ui/steps"
import CopyableCode from "@/components/CopyableCode" import CopyableCode from "@/components/CopyableCode"
export const metadata = { export const metadata = {
title: "Import Disk Image to a VM | ProxMenux Documentation", title: "Disk Passthrough to a VM | ProxMenux Documentation",
description: "Step-by-step guide to import a disk image into a virtual machine in Proxmox VE using ProxMenux.", description: "Step-by-step guide to configure disk passthrough to a virtual machine in Proxmox VE using ProxMenux.",
} }
export default function ImportDiskImageVM() { export default function DiskPassthroughVM() {
return ( return (
<div className="max-w-3xl mx-auto"> <div className="max-w-3xl mx-auto">
<h1 className="text-3xl font-bold mb-6">Import Disk Image to a VM</h1> <h1 className="text-3xl font-bold mb-6">Disk Passthrough to a VM</h1>
<p className="mb-4"> <p className="mb-4">
This guide explains how to import a disk image into a virtual machine (VM) in <strong>Proxmox VE</strong> using <strong>ProxMenux</strong>. This guide explains how to assign physical disks to virtual machines (VMs) in <strong>Proxmox VE</strong> using <strong>ProxMenux</strong>.
The script simplifies the process by scanning for available disk images and allowing users to attach them to VMs without manual configuration. Disk passthrough allows a VM to have direct access to a physical disk, providing improved performance and compatibility for certain applications.
</p> </p>
<h2 className="text-2xl font-semibold mt-8 mb-4">Overview</h2> <h2 className="text-2xl font-semibold mt-8 mb-4">Overview</h2>
<p className="mb-4">The script automates the following steps:</p> <p className="mb-4">The script automates the following steps:</p>
<ol className="list-decimal pl-6 space-y-2 mb-6"> <ol className="list-decimal pl-6 space-y-2 mb-6">
<li>Scans for disk images (.img, .qcow2, .vmdk) in <code>/var/lib/vz/template/images/</code>.</li> <li>Lists available physical disks on the Proxmox host, excluding the system disk.</li>
<li>Displays a list of available virtual machines (VMs) for selection.</li> <li>Displays a list of available virtual machines (VMs) for selection.</li>
<li>Allows users to choose one or multiple disk images for import.</li> <li>Allows the user to select multiple disks to assign to a VM.</li>
<li>Provides storage volume options for placing the imported disk.</li> <li>Ensures selected disks are not already in use by another VM.</li>
<li>Offers an interface choice (SATA, SCSI, VirtIO, or IDE) for each imported disk.</li> <li>Configures the selected disks for passthrough to the chosen VM.</li>
<li>Imports and attaches the selected disk images to the chosen VM.</li>
</ol> </ol>
<h2 className="text-2xl font-semibold mt-8 mb-4">Implementation Steps</h2> <h2 className="text-2xl font-semibold mt-8 mb-4">Implementation Steps</h2>
<Steps> <Steps>
<Steps.Step title="Preparation"> <Steps.Step title="Disk Selection">
<p>Ensure that the disk images you want to import are placed in <code>/var/lib/vz/template/images/</code>.</p> <img src="https://macrimi.github.io/ProxMenux/disk/disk-selection.png" alt="Disk Selection Menu" className="mt-4 rounded shadow-lg" />
<p>The script scans the system and displays a list of available physical disks, excluding the system disk.</p>
</Steps.Step> </Steps.Step>
<Steps.Step title="VM Selection"> <Steps.Step title="VM Selection">
<p>Select the VM where the disk image(s) will be imported.</p> <p>The user selects the virtual machine (VM) to which the disk(s) will be assigned.</p>
</Steps.Step> </Steps.Step>
<Steps.Step title="Storage Selection"> <Steps.Step title="Disk Assignment">
<p>Choose the Proxmox storage volume where the imported disk(s) will be placed.</p> <img src="https://macrimi.github.io/ProxMenux/disk/disk-assigment.png" alt="Disk Assigment Menu" className="mt-4 rounded shadow-lg" />
</Steps.Step> <p>The script performs the following actions:</p>
<Steps.Step title="Image Selection">
<p>Select one or more disk images to import from the list of detected compatible images.</p>
</Steps.Step>
<Steps.Step title="Configuration">
<p>For each selected image:</p>
<ul className="list-disc pl-6 space-y-1 mt-2"> <ul className="list-disc pl-6 space-y-1 mt-2">
<li>Choose the interface type (SATA, SCSI, VirtIO, or IDE).</li> <li>Ensures the selected disk is not in use by another VM.</li>
<li>Optionally enable SSD emulation (for non-VirtIO interfaces).</li> <li>Provides an interface choice (SATA, SCSI, VirtIO, or IDE).</li>
<li>Decide whether to make the disk bootable.</li> <li>Automatically configures the disk passthrough and assigns it to the VM.</li>
</ul> </ul>
</Steps.Step> </Steps.Step>
<Steps.Step title="Import Process"> <Steps.Step title="Confirmation & Finalization">
<p>The script will import each selected disk image and display real-time progress updates.</p> <p>The script verifies the operation and confirms the successful disk passthrough.</p>
</Steps.Step>
<Steps.Step title="Finalization">
<p>After the import is complete, the script attaches the disks to the VM and applies the selected settings.</p>
</Steps.Step> </Steps.Step>
</Steps> </Steps>
<h2 className="text-2xl font-semibold mt-8 mb-4">Expected Results</h2> <h2 className="text-2xl font-semibold mt-8 mb-4">Expected Results</h2>
<ul className="list-disc pl-6 space-y-2 mb-6"> <ul className="list-disc pl-6 space-y-2 mb-6">
<li>The selected disk images are successfully imported and attached to the specified VM.</li> <li>The selected physical disk(s) are successfully assigned to the specified VM.</li>
<li>Users receive confirmation of the import operation.</li> <li>Users are provided with a confirmation of the disk assignment.</li>
<li>The VM is configured to recognize the new disks upon startup.</li> <li>The VM is configured to recognize the disk(s) upon startup.</li>
</ul> </ul>
<h2 className="text-2xl font-semibold mt-8 mb-4">Important Considerations</h2> <h2 className="text-2xl font-semibold mt-8 mb-4">Important Considerations</h2>
<ul className="list-disc pl-6 space-y-2 mb-6"> <ul className="list-disc pl-6 space-y-2 mb-6">
<li>Ensure you have sufficient storage space in the selected Proxmox storage volume.</li> <li>Ensure the selected disk is not already in use by another VM.</li>
<li>Supported disk image formats include <code>.img</code>, <code>.qcow2</code>, and <code>.vmdk</code>.</li> <li>VMs must be powered off before adding disks to prevent data corruption.</li>
<li>The target VM must be powered off before importing disk images.</li> <li>Using disk passthrough limits certain VM features, such as live migration.</li>
<li>SSD emulation is only available for non-VirtIO interfaces (SATA, SCSI, IDE).</li>
<li>Importing a disk as bootable will modify the VMs boot order. Adjust boot settings as needed.</li>
</ul> </ul>

View File

@ -1,9 +1,9 @@
import type { Metadata } from "next"
import { Steps } from "@/components/ui/steps" import { Steps } from "@/components/ui/steps"
import CopyableCode from "@/components/CopyableCode"
export const metadata: Metadata = { export const metadata = {
title: "Import Disk Image to a VM | ProxMenux Documentation", title: "Import Disk Image to a VM | ProxMenux Documentation",
description: "Learn how to import a disk image to a virtual machine in Proxmox VE.", description: "Step-by-step guide to import a disk image into a virtual machine in Proxmox VE using ProxMenux.",
} }
export default function ImportDiskImageVM() { export default function ImportDiskImageVM() {
@ -12,85 +12,67 @@ export default function ImportDiskImageVM() {
<h1 className="text-3xl font-bold mb-6">Import Disk Image to a VM</h1> <h1 className="text-3xl font-bold mb-6">Import Disk Image to a VM</h1>
<p className="mb-4"> <p className="mb-4">
This script automates the process of importing disk images into Proxmox VE virtual machines (VMs). It simplifies This guide explains how to import a disk image into a virtual machine (VM) in <strong>Proxmox VE</strong> using <strong>ProxMenux</strong>.
the task of attaching pre-existing disk files to VMs without requiring manual configuration. The script simplifies the process by scanning for available disk images and allowing users to attach them to VMs without manual configuration.
</p> </p>
<h2 className="text-2xl font-semibold mt-8 mb-4">What Does This Script Do?</h2> <h2 className="text-2xl font-semibold mt-8 mb-4">Overview</h2>
<p className="mb-4">When executed, this script performs the following actions:</p> <p className="mb-4">The script automates the following steps:</p>
<ol className="list-decimal pl-6 space-y-2 mb-6"> <ol className="list-decimal pl-6 space-y-2 mb-6">
<li>Scans for compatible disk images (.img, .qcow2, .vmdk) in the /var/lib/vz/template/images/ directory</li> <li>Scans for disk images (.img, .qcow2, .vmdk) in <code>/var/lib/vz/template/images/</code>.</li>
<li>Presents a list of available VMs for selection</li> <li>Displays a list of available virtual machines (VMs) for selection.</li>
<li>Allows you to choose one or multiple disk images for import</li> <li>Allows users to choose one or multiple disk images for import.</li>
<li>Lets you select a storage volume in Proxmox for disk placement</li> <li>Provides storage volume options for placing the imported disk.</li>
<li>Offers options for interface type (SATA, SCSI, VirtIO, IDE) for each imported disk</li> <li>Offers an interface choice (SATA, SCSI, VirtIO, or IDE) for each imported disk.</li>
<li>Provides optional settings like SSD emulation and bootable disk configuration</li> <li>Imports and attaches the selected disk images to the chosen VM.</li>
<li>Imports the selected disk images and attaches them to the chosen VM</li>
</ol> </ol>
<h2 className="text-2xl font-semibold mt-8 mb-4">Key Steps</h2> <h2 className="text-2xl font-semibold mt-8 mb-4">Implementation Steps</h2>
<Steps> <Steps>
<Steps.Step title="Preparation"> <Steps.Step title="Preparation">
<p> <p>Ensure that the disk images you want to import are placed in <code>/var/lib/vz/template/images/</code>.</p>
Ensure that the disk images you want to import are placed in the /var/lib/vz/template/images/ directory.
</p>
</Steps.Step> </Steps.Step>
<Steps.Step title="VM Selection"> <Steps.Step title="VM Selection">
<p>Choose the VM where you want to import the disk image(s) from a list of available VMs.</p> <p>Select the VM where the disk image(s) will be imported.</p>
</Steps.Step> </Steps.Step>
<Steps.Step title="Storage Selection"> <Steps.Step title="Storage Selection">
<p>Select the Proxmox storage volume where the imported disk(s) will be placed.</p> <p>Choose the Proxmox storage volume where the imported disk(s) will be placed.</p>
</Steps.Step> </Steps.Step>
<Steps.Step title="Image Selection"> <Steps.Step title="Image Selection">
<p> <p>Select one or more disk images to import from the list of detected compatible images.</p>
Choose one or more disk images to import from the list of compatible images found in the specified
directory.
</p>
</Steps.Step> </Steps.Step>
<Steps.Step title="Configuration"> <Steps.Step title="Configuration">
<p>For each selected image:</p> <p>For each selected image:</p>
<ul className="list-disc pl-6 space-y-1 mt-2"> <ul className="list-disc pl-6 space-y-1 mt-2">
<li>Choose the interface type (SATA, SCSI, VirtIO, or IDE)</li> <li>Choose the interface type (SATA, SCSI, VirtIO, or IDE).</li>
<li>Optionally enable SSD emulation (for non-VirtIO interfaces)</li> <li>Optionally enable SSD emulation (for non-VirtIO interfaces).</li>
<li>Decide whether to make the disk bootable</li> <li>Decide whether to make the disk bootable.</li>
</ul> </ul>
</Steps.Step> </Steps.Step>
<Steps.Step title="Import Process"> <Steps.Step title="Import Process">
<p>The script will import each selected disk image, showing real-time progress updates.</p> <p>The script will import each selected disk image and display real-time progress updates.</p>
</Steps.Step> </Steps.Step>
<Steps.Step title="Finalization"> <Steps.Step title="Finalization">
<p>After import, the script configures the disks in the VM and applies the chosen settings.</p> <p>After the import is complete, the script attaches the disks to the VM and applies the selected settings.</p>
</Steps.Step> </Steps.Step>
</Steps> </Steps>
<h2 className="text-2xl font-semibold mt-8 mb-4">What to Expect</h2> <h2 className="text-2xl font-semibold mt-8 mb-4">Expected Results</h2>
<ul className="list-disc pl-6 space-y-2 mb-6"> <ul className="list-disc pl-6 space-y-2 mb-6">
<li>The script will guide you through the process with clear prompts and menus.</li> <li>The selected disk images are successfully imported and attached to the specified VM.</li>
<li>You'll need to make selections for the target VM, storage, disk images, and configuration options.</li> <li>Users receive confirmation of the import operation.</li>
<li>The import process may take some time, depending on the size and number of disk images.</li> <li>The VM is configured to recognize the new disks upon startup.</li>
<li>Real-time progress updates will be displayed during the import process.</li>
<li>After completion, the imported disks will be available and configured in the selected VM.</li>
</ul> </ul>
<h2 className="text-2xl font-semibold mt-8 mb-4">Important Notes</h2> <h2 className="text-2xl font-semibold mt-8 mb-4">Important Considerations</h2>
<ul className="list-disc pl-6 space-y-2 mb-6"> <ul className="list-disc pl-6 space-y-2 mb-6">
<li>Ensure you have sufficient storage space in the selected Proxmox storage volume before importing.</li> <li>Ensure you have sufficient storage space in the selected Proxmox storage volume.</li>
<li>The script supports .img, .qcow2, and .vmdk disk image formats.</li> <li>Supported disk image formats include <code>.img</code>, <code>.qcow2</code>, and <code>.vmdk</code>.</li>
<li>Make sure the VM is powered off before importing disk images to avoid potential conflicts.</li> <li>The target VM must be powered off before importing disk images.</li>
<li>
Importing a disk as bootable will modify the VM's boot order. Adjust the boot order in the VM settings if
necessary.
</li>
<li>SSD emulation is only available for non-VirtIO interfaces (SATA, SCSI, IDE).</li> <li>SSD emulation is only available for non-VirtIO interfaces (SATA, SCSI, IDE).</li>
<li>This script requires root or sudo privileges to execute.</li> <li>Importing a disk as bootable will modify the VMs boot order. Adjust boot settings as needed.</li>
</ul> </ul>
<p className="mt-6 italic">
This script simplifies the process of importing disk images to VMs in Proxmox VE, making it easy to add
pre-existing disks or migrate disks from other environments. It handles the technical details of import and
configuration, allowing you to quickly add new storage to your VMs.
</p>
</div> </div>
) )
} }