[[Include(WikiToC)]] = Disk Images = The Disk Images page in the COSMOS Portal lets you browse, search, and manage the testbed's library of disk images. Disk images (`.ndz` files) are compressed snapshots of a node's hard drive that can be loaded onto testbed nodes using the `omf load` command. The image library includes baseline images maintained by the testbed administrators, shared images from other users, and your own custom images saved with `omf save`. Access the Disk Images page from the '''Disk Images''' link in the portal sidebar. This page is available to all authenticated users. ---- == Browsing Images == The Disk Images page organizes images into three tabs: === My Images === Shows images that you own — images you saved using `omf save` or images that have been assigned to you by an administrator. For each image, you see: * '''Image name''' — the `.ndz` filename (e.g., `jsmith-node1-1.sb1.cosmos-lab.org-2026-03-15.ndz`) * '''Description''' — a human-readable description (if set) * '''Size''' — the compressed image size on disk * '''Created''' — when the image was saved * '''Visibility''' — whether the image is public (available to all users) or private (only you can see it) === Public Images === Shows images that other users have marked as public, making them available for anyone to load. This is where you find shared experiment images, specialized configurations, and community-contributed setups. Public images are read-only — you cannot modify or delete another user's image, but you can load it onto your reserved nodes. === All Images === Shows the complete image library including your private images, all public images, and (for administrators) all images across all users. This tab is useful for finding images by name or description when you are not sure who owns them. ---- == Image Details == Each image entry displays the following information: ||= Field =||= Description =|| || '''Name''' || The filename of the `.ndz` disk image || || '''Owner''' || The username of the person who saved the image || || '''Group''' || The Linux group the image belongs to (affects visibility) || || '''Size''' || Compressed image size in megabytes or gigabytes || || '''Description''' || Human-readable text describing the image contents, software installed, and intended use || || '''Created''' || Date the image was saved || || '''Public''' || Whether the image is readable by all users or restricted to the owner/group || ---- == Searching and Sorting == The image table supports: * '''Text search''' — type in the search box to filter images by name or description. The filter applies in real time as you type. * '''Column sorting''' — click any column header (Name, Description, Size, Created) to sort the table. Click again to reverse the sort order. * '''Pagination''' — images are displayed 25 per page with navigation controls at the top and bottom of the table. ---- == Managing Your Images == For images you own, you can perform these operations: === Setting Visibility === By default, newly saved images are '''private''' — only you can see them. To share an image with other users: 1. Find the image in the '''My Images''' tab 2. Click on the image to expand its details 3. Toggle the '''Public''' switch to make it visible to everyone Making an image public means any authenticated user can see it in the '''Public Images''' tab and load it onto their reserved nodes using `omf load -i `. They cannot modify or delete your image. To make a public image private again, toggle the switch off. The image immediately disappears from other users' Public Images view. === Deleting Images === To delete an image you own: 1. Click on the image to expand its details 2. Click the '''Delete''' button 3. Confirm the deletion in the dialog '''Warning:''' Deletion is permanent. The image file is removed from the testbed storage and cannot be recovered. Make sure you have a backup if you might need the image again. You can only delete images you own. Administrators can delete any image. ---- == Baseline Images == The testbed provides several baseline images maintained by the administrators. These are available to all users and serve as starting points for experiments: ||= Image Name =||= Description =|| || `baseline.ndz` || Ubuntu-based image with basic testbed tools pre-installed (OMF resource controller, SSH access, network configuration). This is the recommended starting point for most experiments. || || `baseline-uhd.ndz` || Baseline image with UHD (USRP Hardware Driver) pre-installed for software-defined radio experiments with USRP devices. || || `baseline-gr.ndz` || Baseline image with UHD and GNU Radio pre-installed for SDR signal processing experiments. || When you load a baseline image, nodes are configured with: * Root SSH access from the testbed internal networks (your console server can reach the nodes) * Network interfaces configured via DHCP for the testbed management network * The `omf` resource controller (RC) which handles imaging and power management commands * Standard development tools (gcc, make, python, etc.) To load a baseline image onto all nodes in your reservation: {{{ omf load -t all -i baseline.ndz }}} For detailed information about loading and saving images, see the [wiki:UserGuide/OmfQuickStart OMF Quick Start Guide]. ---- == Saving Custom Images == After installing software, configuring services, or setting up your experiment environment on a testbed node, you can save the node's disk as a custom image using `omf save`. Your saved image appears in the '''My Images''' tab and can be loaded onto the same or different nodes in future experiments. The basic workflow is: 1. Load a baseline image and boot the node 2. SSH into the node and install/configure your software 3. Save the customized disk: `omf save ` 4. The image is automatically named `--.ndz` and stored on the testbed For detailed save instructions and options, see the [wiki:UserGuide/OmfQuickStart OMF Quick Start Guide]. ---- == Storage and Retention == Disk images are stored on NFS-mounted storage accessible from all console servers at `/mnt/images/`. Image sizes vary depending on how much of the disk is used — the `omf save` command automatically shrinks the partition to minimize the compressed image size. There is currently no automatic image expiration policy. However, if storage space becomes constrained, administrators may contact users with very large or very old images to discuss cleanup. Good practice is to periodically review your '''My Images''' tab and delete images you no longer need.