staging.inyokaproject.org

Shell-Script "dd"

Status: Gelöst | Ubuntu-Version: Ubuntu 20.10 (Groovy Gorilla)
Antworten |

nheki

Anmeldungsdatum:
7. Juni 2021

Beiträge: Zähle...

Hallo liebe Forengemeinde,

ich versuche mich an einem Script, dass einen angeschlossenen Datenträger via "dd" dumpen soll. Dafür wäre es sehr angenehm, wenn in der Abfrage die angeschlossenen Datenträger aufgelistet werden, man anschließend daraus einen auswählt und dann nur noch das Ziel gewählt wird. Plus evtl. weitere kleine Details die "dd" hergibt (bs=, statusprogress).

Allerdings habe ich sehr wenig Fachkenntniss, wie & ob man das einfach auf den Weg bringen kann.

Hier man starker Ansatz:

1
2
3
#!/bin/bash

echo "Create DD-Image"

😀

Das Script soll offline und portable auch mal fix an einem anderen PC funktionieren.

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 11349

Hej nheki,

und willkommen im Forum!

nheki schrieb:

[...]

ehrlich? Dazu ist dd viel zu "gefährlich"!

Gruß black tencate

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Mögliche Zutaten:

  • lsblk (z.B. als Startpunkt lsblk -flpn -o NAME)

  • select (ein Kommando der bash)

black_tencate schrieb:

ehrlich? Dazu ist dd viel zu "gefährlich"!

Naja, da kann man dann ja einen passenden Bestätigungsdialog vorschalten.

nheki

(Themenstarter)

Anmeldungsdatum:
7. Juni 2021

Beiträge: 2

@black_tencate Warum? Das Script hat doch die richtigen Befehle hinterlegt...

@rklm Danke für die Befehle, Ihr müsst nur mit mir bei Null anfangen ^^

Wie übergebe ich denn die Ergebnisse von lsblk in eine select-Abfrage?!

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7795

Ich hatte vor Jahren mal ein Skript um CD-Images zu ziehen mit dd und zenity: https://paste.ubuntuusers.de/416907/

Vielleicht kannst du da ja eine Inspiration für dich finden.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

nheki schrieb:

Wie übergebe ich denn die Ergebnisse von lsblk in eine select-Abfrage?!

1
2
3
4
5
6
7
8
9
select choice in $(lsblk ...) do
  if [ -z "$choice" ]; then
    echo "Ungueltige Auswahl"
  else
    break
  fi
done

dd "if=$choice" ...

Axel-Erfurt

Anmeldungsdatum:
18. Mai 2016

Beiträge: 1347

zenity eignet sich auch für die Auswahl

1
zenity --width=600 --height=400 --list --column="dev" --column="" --column="Mountpoint" --column="" --column="" --column="" --hide-column=2,4,5,6 $(mount | grep /dev/sd)

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 11349

Hej Axel-Erfurt,

Axel-Erfurt schrieb:

zenity eignet sich auch für die Auswahl

na ja, gemountet muß das device schon sein, einfach nur angesteckt reicht da nicht, im Gegensatz zu einem sudo parted -l

Gruß black tencate

Anhang

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7795

Bei dd sollte es ja gerade nicht gemountet sein bzw. das Script müsste sich dann auch um den umount/remount-readonly kümmern.

Wenn man ohne lsblk&Co das versuchen will, bekommt man die Liste möglicher Blockgeräte von /proc/partitions, die Liste der gemounteten Geräte von /proc/mounts bzw. mit Abhängigkeiten und Metadaten kann man sich unter /sys/block/... umschauen.

Wenn es z.B. nur um USB-Sticks gehen soll oder gar um Sticks die nur an einem bestimmten Port eingesteckt werden, kann man auch über /dev/disk/... gehen.

Es gibt sehr sehr viele Möglichkeiten wie man das machen kann, du musst eben in irgendeine Richtung gehen und wenn du dann irgendwo hängen bleibst vielleicht nochmal fragen. Mit "echo dd" als Ausgangsbasis kann man nur raten aber nicht viel be-raten... 😉

Axel-Erfurt

Anmeldungsdatum:
18. Mai 2016

Beiträge: 1347

Es kommt auch darauf an welche Einstellungen der Benutzer für Wechselmedien vorgenommen hat, automatisch einhängen oder nicht.

Deshalb müsste sich das Skript dann auch um das eventuelle Aushängen kümmern.

black_tencate

Avatar von black_tencate

Anmeldungsdatum:
27. März 2007

Beiträge: 11349

Hej Axel-Erfurt,

Axel-Erfurt schrieb:

... Deshalb müsste sich das Skript dann auch um ...

und, und, und…

Ich würde immer noch so ein Skript nicht auf meine devices "loslassen", aber warum einfach (sudo dd if=<Hybridfile> of=/dev/sdx bs=1M), wenn 's auch umständlich geht.

Btw., es gibt auch z.B. Ventoy oder YUMI (bei letzterem kann man die möglichen Zieldevices auf USB beschränken), und ich verwende sowieso EWMS.

Gruß black tencate

Antworten |