fsfw-dresden / usb-live-linux

USB-Stick-Live-Softwareumgebung für Lernende und Lehrende jeden Alters: Schulstick, Unistick, Makerstick, Rentnerstick..
39 stars 15 forks source link

USB Stick kopieren unter Linux #29

Open vv01f opened 8 years ago

vv01f commented 8 years ago

wie gehts… muss sicher noch in die Doku, oder?

Um herauszufinden was an Blockgeräten da ist, gibt es lsblk. Also erst einen Stick einstecken (z.B. Quelle "if" = "input file") und dann den anderen (z.B. Ziel "of" = "output file") und die erkannten Geräte für das Kopieren verwenden.

sudo dd if=/dev/sdc of=/dev/sdd bs=1M

D.h. wenn man nicht auf einen anderen Stick, sondern auf eine Datei schreiben will, gibt man anstatt der Gerätedatei für "of" einen Dateinamen (ggf. mit Pfad):

sudo dd if=/dev/sdc of=~/uni-stick-image.iso bs=1M

Entsprechend wird dann von der Datei auf einen Stick kopiert:

sudo dd if=~/uni-stick-image.iso of=/dev/sdd bs=1M

Wenn man wissen will wieviel schon geschafft wurde, kann die kopierte Datenmenge ausgegeben werden:

sudo kill -USR1 $( pgrep -l '^dd$'|cut -d" " -f1 )

Und anschließend die Geräte auswerfen! (hier für mein Zielgerät)

sudo eject /dev/sdd
horazont commented 8 years ago

Zwei bis drei zusätzliche flags für dd zu empfehlen:

  1. conv=fdatasync, dann sind die daten wenn dd fertig ist sicher auf dem stick
  2. oflag=direct, damit reduziert/verhindert man die Hänger wenn man mehrere Sticks gleichzeitig beschreibt
  3. status=progress (braucht nen relativ neues dd) zeigt Fortschrittsinfos an, erspart das kill -USR1

Einige Sticks sind übrigens kleiner. Können wir für die trivial ein um 500 MiB kleineres Image erzeugen?

horazont commented 8 years ago

https://fsfw-dresden.de/uni-stick.data/write-and-test.py

Da hab ich mal das Skript hingelegt was ich mir schnell zusammengeschustert hab um die Sticks zu bespaßen.

s72785 commented 8 years ago

Vorschlag: Wir machen das Image p% kleiner um die Wahrscheinlichkeit von failenden Kopien bei defekten SEktoren auf Sticks (haben <8GB Speicher) zu minimieren.

Dazu: Start bei 1‰ (8MB) und wenn wir damit die defekten alle beschrieben bekommen, reicht das. Sonst müssen wir auf 2‰ gehen...

Verkleinern geht wie in #49 schon verlinkt: howto shrink, sollte auch gescriptet funktionieren.

cknoll commented 8 years ago

Können wir nicht einfach vorher rausfinden, wie viel Platz auf den Sticks ist?

Das Skript von @gerdg-dd macht doch genau das am Anfang...

PS: 8MB sind nur 0.1% von 8GB. ;-)

s72785 commented 8 years ago

hintergund ist aber, dass wir ein Image für unterschiedliche sticks bauen und dann deployen um zeit zu sparen. deshalb müsstest du ggf. unbekannt große sticks auf ihre größe prüfen. das Skript macht das mit dem master-stick, ja.

Nos- commented 8 years ago

Hmm, kann das Skript von @gerdg-dd nicht einfach um folgendes erweitert werden?

gerdg-dd commented 8 years ago

siehe (https://github.com/fsfw-dresden/usb-live-linux/issues/49#issuecomment-255463988)

cknoll commented 8 years ago

@horazont Spricht was dagegen, das oben verlinkte Skript ins repo (unter tools) zu packen?

cknoll commented 8 years ago

Persönliche aussage von @horazont: Spricht nichts dagegen. Ich füge das Skript demnächst nach tools ein.

Nos- commented 6 years ago

Falls noch aktuell, hier ein weiterer Kandidat: https://etcher.io/

vv01f commented 6 years ago

etcher wird IMHO aus tech-philosophischen Gründen auf dem Stick abgelehnt