105 lines
3.6 KiB
Markdown
105 lines
3.6 KiB
Markdown
# cflash
|
|
Small and lightweight image and iso flasher build on `dd`.
|
|
|
|
[](https://opensource.org/licenses/MIT)
|
|
[](https://www.java.com/en/)
|
|
[](https://www.linux.org/)
|
|
[](https://en.wikipedia.org/wiki/Software_release_life_cycle#Beta)
|
|
|
|
# About
|
|
Java program using `dd` to make flashing iso and image files easier on the terminal. This program allows anyone to flash iso and image files without having to search for extra GUI tools by keeping it simple and resource-friendly.
|
|
|
|
## Getting Started
|
|
|
|
# Requirements
|
|
- `Java`: 21 (Download [here](https://www.oracle.com/java/technologies/downloads/#java21))
|
|
- `util-linux`: 2.41
|
|
- `coreutils`: 9.10
|
|
- `maven`: 3.9.15
|
|
- Operating System: Linux
|
|
### Building and Running Locally
|
|
|
|
1. Clone the repository:
|
|
|
|
```bash
|
|
git clone https://github.com/cametendo/cflash-git.git
|
|
cd cflash-git
|
|
```
|
|
|
|
2. Compile the code:
|
|
|
|
```bash
|
|
mvn clean package
|
|
```
|
|
|
|
3. Run the application:
|
|
|
|
```bash
|
|
java -jar target/cflash-<version>.jar (optionally add arguments here, like with dd)
|
|
```
|
|
|
|
### System-wide Installation
|
|
|
|
To install cflash globally so that it can be run from any terminal:
|
|
|
|
1. Clone the repository (if not done already):
|
|
|
|
```bash
|
|
git clone https://github.com/cametendo/cflash-git.git
|
|
cd cflash-git
|
|
```
|
|
|
|
2. Make the build and install scripts executable:
|
|
|
|
```bash
|
|
chmod +x build.sh install.sh
|
|
```
|
|
|
|
3. Build the project using the provided build script:
|
|
|
|
```bash
|
|
./build.sh
|
|
```
|
|
|
|
4. Install globally (requires root privileges):
|
|
|
|
```bash
|
|
sudo ./install.sh
|
|
```
|
|
|
|
5. Run cflash from anywhere:
|
|
|
|
```bash
|
|
cflash
|
|
```
|
|
|
|
**Notes:**
|
|
|
|
* The `build.sh` script compiles all Java source files and creates an executable `cflash.jar`.
|
|
* The `install.sh` script copies `cflash.jar` to `/usr/local/lib/cflash` and installs a wrapper script in `/usr/local/bin` for easy execution.
|
|
|
|
# Usage
|
|
- Using the command `cflash` in the terminal, will start the flashing process. You will be asked several question before the flashing begins:
|
|
1. You will see a list of every drive your system see's (excluding system drives) and the be asked to enter the device you want to flash the image onto. (F.e. **/dev/sda**)
|
|
2. You will be prompted to enter the path of the iso / image you want to flash
|
|
3. You will be prompted to choose a byte size (default: 4M)
|
|
4. You will be prompted to enter your oflag (default: direct)
|
|
5. You will be asked if you are absolutely sure that you want to continue (flashing will wipe all data)
|
|
- Alternative: using `cflash [device] [iso-path] [block-size] [oflag]` will skip the questions and instantly ask you, if you're absolutely sure you want to continue.
|
|
- Once confirmed, the flash will start and a small progress bar will appear showing the flashing progress.
|
|
- After completion, the program will detect the OS from the iso and wish you a great time with your new OS. (Example: "Done! Have fun with your new Linux installation!)
|
|
- **IMPORTANT**: Since dd needs sudo rights, ensure you have root priviliges.
|
|
|
|
# Supported OS
|
|
- Linux
|
|
|
|
# Installation
|
|
1. Clone the repository onto your device and cd into it.
|
|
2. Run the `build.sh` file to build the program.
|
|
3. Run the `ìnstall.sh`to install the program.
|
|
4. Open a terminal and use the program with `cflash`, optionally add all the arguments you need.
|
|
|
|
# License and Credits
|
|
**Author**: [Cametendo](https://www.github.com/Cametendo)
|
|
**License**: MIT
|