https://github.com/josiahbull/dds
A precise, conservative, read-intensive file syncing utility.
https://github.com/josiahbull/dds
dd jetson raspberry-pi rust sd-card sync
Last synced: 3 months ago
JSON representation
A precise, conservative, read-intensive file syncing utility.
- Host: GitHub
- URL: https://github.com/josiahbull/dds
- Owner: JosiahBull
- License: mit
- Created: 2022-10-12T09:20:30.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-10-26T04:25:30.000Z (over 2 years ago)
- Last Synced: 2025-03-11T05:48:33.813Z (3 months ago)
- Topics: dd, jetson, raspberry-pi, rust, sd-card, sync
- Language: Rust
- Homepage:
- Size: 43.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DDS Disk Destroyer (is) Slow

DDS is a tool to restore data to sd-cards. It is optimized for writing to
devices with high read speeds, and low write speeds, where the majority of
the destination data will match the source data. This is useful for
restoring an sd-card to a previous version. It works by having a read head
move ahead of the write head in chunks, finding modified blocks and marking
them to be overwritten. This will also reduce the wear on the sd-card.This tool was written specifically for rolling back Jetson Nano sd-cards, but
it should work for any device (e.g. Rapsberry Pi).Note that for creating a disk image, it is still recommended to use `dd`, as
it is more resource-efficient than this tool for creating a large block backup.This tool does support multithreading, using separate processes for reading and
writing. This isn't especially useful in 99% of situations - but if you're
expecting >70% of your sd card to be overwritten it could be useful to enable.## Usage
```bash
# Create a backup of the sd-card
sudo dd if=/dev/sda of=$HOME/sda.img status=progress# Restore the backup to the sd-card
sudo dds --input=$HOME/sda.img --output=/dev/sda
```## Installation
```bash
curl https://raw.githubusercontent.com/josiahbull/dds/main/install.sh | bash
```## Compile from Source
```bash
# install rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh# clone and build from source
git clone https://github.com/josiahbull/dds/
cd dds
cargo build --release
./target/release/dds --help
```## Contribution and Licensing
Contribution is welcomed, and will be licensed under the MIT license.