Convert Figma logo to code with AI

FedoraQt logoMediaWriter

Fedora Media Writer - Write Fedora Images to Portable Media

1,111
198
1,111
77

Top Related Projects

33,041

Flash OS images to SD cards & USB drives, safely and easily.

74,176

A new bootable USB solution.

34,490

The Reliable USB Formatting Utility

UNetbootin installs Linux/BSD distributions to a partition or USB drive

Quick Overview

Fedora Media Writer is an open-source tool designed to create bootable USB drives for Fedora and other Linux distributions. It provides a user-friendly graphical interface for downloading Fedora images and writing them to USB drives, making it easier for users to create installation media for Fedora and other operating systems.

Pros

  • Cross-platform support (Windows, macOS, and Linux)
  • User-friendly graphical interface
  • Automatic download of Fedora images
  • Supports custom image writing

Cons

  • Limited to creating bootable USB drives (no DVD support)
  • Primarily focused on Fedora, with limited support for other distributions
  • May require additional dependencies on some systems
  • Limited customization options for advanced users

Getting Started

To use Fedora Media Writer:

  1. Download the appropriate version for your operating system from the releases page.
  2. Install the application following the instructions for your OS.
  3. Launch Fedora Media Writer.
  4. Select the Fedora version you want to download or choose a custom image.
  5. Insert a USB drive and select it as the target.
  6. Click "Write" to create the bootable USB drive.

Note: Fedora Media Writer is not a code library, so code examples and a quick start guide for developers are not applicable.

Competitor Comparisons

33,041

Flash OS images to SD cards & USB drives, safely and easily.

Pros of Etcher

  • Cross-platform support (Windows, macOS, Linux)
  • User-friendly interface with a simple, intuitive design
  • Supports writing to multiple drives simultaneously

Cons of Etcher

  • Larger file size and resource usage
  • Slower write speeds compared to MediaWriter
  • Less focused on Fedora-specific features

Code Comparison

MediaWriter (C++):

void WriterThread::run()
{
    if (m_image->status() == Image::READY)
        writeCompressedImage();
    else
        writeUncompressedImage();
}

Etcher (JavaScript):

function writeImage(drive, image, options) {
  return new Promise((resolve, reject) => {
    const writer = createWriter(drive, image, options);
    writer.on('finish', resolve);
    writer.on('error', reject);
  });
}

MediaWriter is specifically designed for Fedora and uses C++, focusing on efficient image writing. Etcher, written in JavaScript, offers a more general-purpose solution with cross-platform compatibility. While MediaWriter excels in Fedora-specific tasks and performance, Etcher provides a more versatile and user-friendly experience across multiple operating systems.

74,176

A new bootable USB solution.

Pros of Ventoy

  • Supports multiple ISO files on a single USB drive
  • Works with a wide range of operating systems and bootable images
  • Allows for easy updating and adding of ISO files without reformatting

Cons of Ventoy

  • Requires initial setup and installation on the USB drive
  • May not be as user-friendly for beginners compared to MediaWriter
  • Lacks specific integration with Fedora or other distributions

Code Comparison

MediaWriter (C++):

void WriterThread::run()
{
    if (!m_image->write(m_device)) {
        emit error(m_image->errorString());
    }
    emit finished();
}

Ventoy (C):

int VentoyFillMBR(int fd, uint64_t DiskSizeInBytes)
{
    int rc;
    uint64_t Part1Start;
    uint64_t Part1End;
    uint64_t Part2Start;
    uint64_t Part2End;

MediaWriter is focused on writing a single image to a device, while Ventoy manages multiple bootable images on a single device. MediaWriter's code is more straightforward for its specific task, whereas Ventoy's code handles more complex partitioning and multi-boot scenarios.

34,490

The Reliable USB Formatting Utility

Pros of Rufus

  • Supports a wider range of operating systems and image formats
  • Faster writing speeds and more efficient resource usage
  • More advanced features like bad blocks check and custom partition schemes

Cons of Rufus

  • Windows-only application, limiting cross-platform usage
  • Less user-friendly interface for beginners
  • Lacks integration with specific Linux distributions like Fedora

Code Comparison

MediaWriter (C++):

void WriterThread::run()
{
    if (!m_image->write(m_device)) {
        emit error(m_image->errorString());
        return;
    }
    emit finished();
}

Rufus (C):

BOOL WriteImage(HANDLE hPhysicalDrive, HANDLE hSourceImage)
{
    BOOL bRet = FALSE;
    DWORD dwSize;
    BYTE buffer[BUFFER_SIZE];

    while (ReadFile(hSourceImage, buffer, BUFFER_SIZE, &dwSize, NULL) && dwSize > 0) {
        if (!WriteFile(hPhysicalDrive, buffer, dwSize, &dwSize, NULL))
            goto out;
    }
    bRet = TRUE;
out:
    return bRet;
}

Both projects aim to create bootable USB drives, but Rufus offers more flexibility and features at the cost of platform limitations, while MediaWriter provides a simpler, cross-platform solution with tighter integration for Fedora and other Linux distributions.

UNetbootin installs Linux/BSD distributions to a partition or USB drive

Pros of UNetbootin

  • Cross-platform support (Windows, macOS, Linux)
  • Supports a wide range of Linux distributions and other operating systems
  • Can create bootable USB drives from ISO files or download distributions directly

Cons of UNetbootin

  • Less frequently updated compared to MediaWriter
  • User interface may feel outdated
  • Limited customization options for advanced users

Code Comparison

MediaWriter (C++):

void WriterWorker::work()
{
    if (m_image->status() == Image::DOWNLOAD_FAILED) {
        emit finished(WriterWorker::FAILED);
        return;
    }
    // ... (rest of the code)
}

UNetbootin (C++):

void unetbootin::runinstusb()
{
    if (!installType.startsWith("USB"))
        return;
    if (targetDrive == "")
        return;
    // ... (rest of the code)
}

Both projects use C++ for their core functionality. MediaWriter's code appears more modern and structured, with better error handling and status management. UNetbootin's code is simpler but may lack some of the robustness found in MediaWriter.

MediaWriter focuses specifically on creating Fedora live USB drives, while UNetbootin supports a broader range of distributions and operating systems. MediaWriter offers a more polished and up-to-date user interface, whereas UNetbootin provides greater flexibility in terms of supported systems.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Fedora Media Writer

Fedora Media Writer is a tool that helps users put Fedora images on their portable drives such as flash disks.

It is able to automatically download the required image for them and write them in a dd-like fashion, using either dd itself or some other way to access the drive directly.

This overwrites the drive's partition layout though so it also provides a way to restore a single-partition layout with a FAT32 partition.

Fedora Media Writer running

Troubleshooting

If you experience any problem with the application, like crashes or errors when writing to your drives, please open an issue here on Github.

Please don't forget to attach the FedoraMediaWriter.log file that will appear in your Documents folder ($HOME/Documents on Linux and Mac, C:\Users<user>\Documents). It contains some non-sensitive information about your system and the log of all events happening during the runtime.

Building

You can build FMW using the default Qt cmake build system. The gist for all three platforms is written below. For a more thorough look into how the releases are composed, you can read our GitHub Actions configuration.

Linux

You should specify the target directory using the -DCMAKE_INSTALL_PREFIX cmake option. The default prefix path is /usr/local

It can be done like this:

cmake [OPTIONS] .

The main binary, mediawriter, will be written to $PREFIX/bin and the helper binary can be found on the path $PREFIX/libexec/mediawriter/helper.

Requirements

  • udisks2 or storaged
  • xz-libs

Windows

Building FMW in Windows is just the matter of running cmake and make - as long as you have all dependencies in your include path. Only MinGW (both 32b and 64b variants) works at this moment.

To create a standalone package, use the windeployqt tool, included in your Qt installation. You will probably have to include a bunch of not included DLLs.

It is also possible to crosscompile the application using the MinGW compiler suite in Fedora (and probably some other distros).

Requirements

  • xz-libs

macOS

Again, you can just run cmake and make.

To release a standalone package, use macdeployqt, supplied with your Qt installation.

Requirements

  • xz-libs

Translation

If you want to help with translating Fedora Media Writer, please visit our Weblate project page.

Information about the individual Fedora flavors is retrieved from the websites and translated as a separate project.

Other information

For details about cryptography, see CRYPTOGRAPHY.md.

Some brief privacy information (regarding User-Agent strings) is in PRIVACY.md.