Top Related Projects
Flash OS images to SD cards & USB drives, safely and easily.
A new bootable USB solution.
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:
- Download the appropriate version for your operating system from the releases page.
- Install the application following the instructions for your OS.
- Launch Fedora Media Writer.
- Select the Fedora version you want to download or choose a custom image.
- Insert a USB drive and select it as the target.
- 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
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.
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.
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
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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.

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
udisks2orstoragedxz-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.
Top Related Projects
Flash OS images to SD cards & USB drives, safely and easily.
A new bootable USB solution.
The Reliable USB Formatting Utility
UNetbootin installs Linux/BSD distributions to a partition or USB drive
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot