staging.inyokaproject.org

dd

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels dd.

thosch66

Avatar von thosch66

Anmeldungsdatum:
16. Juni 2007

Beiträge: 125

Seltsames Verhalten beim Pipen von dd durch pv

Hallo,

ich nutze dd gerne, um Festplatten etwas zu quälen. Da hat mir die Beschreibung zum Einbinden von pv als Fortschrittsanzeige sehr gefallen.

Als ich testweise 1 GB in 1MB-Blöcken (bs=1M count=1024) von /dev/urandom nach /dev/null verschoben habe, musste ich eine unerfreuliche Entdeckung machen: Der Vorgang beendete sich "sauber" nach 128MB. 😮 Ohne pv lief es richtig durch und mit verendete es reproduzierbar bei 128MB.

thosch@xxx:~$ dd if=/dev/urandom bs=1M count=1024 | pv -s 1G | dd of=/dev/null bs=1M count=1024
0+1024 Datensätze einB/s] [===>                               ] 12% ETA 0:04:18
0+1024 Datensätze aus
134217728 Bytes (134 MB) kopiert, 36,7334 s, 3,7 MB/s
 128MB 0:00:36 [3,46MB/s] [===>                               ] 12%    

Ein Crosscheck unter what-ever-Linux auf meinem QNAP-NAS und Mac OS X (dort schon bei 64MB) ergaben ähnliche Ergebnisse. Es muss also an pv liegen.

Als ich die Größenparameter (bs=1M count=1024) auf der Zielseite der Pipe wegließ, lief es sauber durch. Auf allen drei Systemen.

thosch@xxx:~$ dd if=/dev/urandom bs=1M count=1024 | pv -s 1G | dd of=/dev/null
   1GB 0:04:58 [3,43MB/s] [=================================>] 100%            
2097152+0 Datensätze ein
2097152+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 298,876 s, 3,6 MB/s
1024+0 Datensätze ein
1024+0 Datensätze aus
1073741824 Bytes (1,1 GB) kopiert, 298,876 s, 3,6 MB/s

Kann es sein, dass diese Parameter auf der Zielseite unter bestimmten Umständen dazu führen, dass Vorgang zu früh "sauber" beendet wird? Der Sinn der Parameter auf dieser Seite hat sich mir sowieso nicht eröffnet, weil das Ziel einfach so viel schluckt, wie die Quelle schickt.

Wie seht Ihr das? Sollte man diesen Code-Schnipsel im Artikel anpassen?

Gruß

Thomas

doppelkeks

Anmeldungsdatum:
4. Dezember 2006

Beiträge: Zähle...

Sicher(es) Löschen

Hi,

ich würde gerne die Methode mit dd Festplatten sicher zu löschen eintragen. Da dies gerne genutzt wird und eine praktikable (wenn auch langwierige) Lösung ist. Würde es hinter die Live-USB-Stick einordnen. Also Nummer 10, Unterpunkt von Anwendung. Name: Sicheres Löschen Tag: sicher löschen, löschen

Ist alles schon getippt und getestet. Muss nur noch eingefügt werden 😎 Brauch nur noch ein OK.

kaputtnik

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 9245

Servus ☺

habe nicht so die Ahnung davon, aber es gibt wipe und Shell/shred zB.

Warum soll man dd, welches in erster Linie zum kopieren und konvertieren verwendet wird dazu benutzen?

Gruß
kaputtnik

Edit: Siehe auch Daten sicher löschen

RapaNui

Avatar von RapaNui

Anmeldungsdatum:
16. Juli 2007

Beiträge: 1925

Hola,

Vielleicht wäre ein Hinweis zu der Methode und dann zu den Programmen nicht schlecht. Ich hör auch immer davon: "Lósch das doch mit dd".

Wenn einer ein Beispiel hätte wie man ein leeres Image (virtual disk) anlegt wäre das auch noch interessant, da dies bei Wubi zum tragen kommen kann. Wie siehts aus doppelkeks?

RapaNui

noisefloor Team-Icon

(Themenstarter)

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

Brauch nur noch ein OK.

Wenn es mit prinzipiell geht ist das IMHO schon ok.

Wenn es aber "langwierig" ist und andere Methoden genau so "gut" und schneller sind macht es IMHO wenig Sinn.

Gruß, noisefloor

auftisch

Anmeldungsdatum:
1. August 2007

Beiträge: 144

Bei folgender Schleife aus dem wiki (http://wiki.ubuntuusers.de/shell/dd#Den-Fortschritt-von-dd-abfragen , die erste) bekomme ich einen error:

1
bash: [: too many arguments
1
while [ $(ps -a | grep 7100) ]; do kill -SIGUSR1 7100; sleep 10; done

Pid selber ermittelt, hatte dd schon gestartet.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Das ist klar. Schau mal was das grep ausgibt:

dd if=/dev/XXX of=/dev/XXX & ddpid=$! ; ps -a | grep $ddpid

Da kommt ja noch ein ganzer Sermon mit ...

Es funktioniert aber, wenn Du den Sermon mit grep wegschneidest:

dd if=/dev/XXX of=/dev/XXX & ddpid=$! ; while [ $(ps -a | grep -o $ddpid) ]; do kill -SIGUSR1 $ddpid; sleep 10; done 

Ob es noch einfacher geht, das sei mal dahingestellt.

LG,

track

auftisch

Anmeldungsdatum:
1. August 2007

Beiträge: 144

Das funktioniert auch nicht! Teste doch mal vorher.

bash: kill: (6258) - Operation not permitted

mit sudo vor kill:

1
2
3
[2] 6283
[1]   Exit 143                sudo dd if=/dev/sda  ....
[2]+  User defined signal 1   sudo dd if= ......

Abbruch nach 3 Sekunden.

TausB

Avatar von TausB

Anmeldungsdatum:
26. November 2009

Beiträge: 1570

Hallo!

Wäre es nicht sinnvoll unter Shell/dd (Abschnitt „Partition-aus-einem-Image-der-gesamten-Platte-einbinden“) einen Link auf mount (Abschnitt „Festplatten-Image“) zu integrieren (wegen des Skriptes zum Einbinden von Partitionen aus FestplattenImages)? Ich suche jedes mal ... 😉

TausB

noisefloor Team-Icon

(Themenstarter)

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

ist doch der Fall, im Abschnitt Image einer Partition einbinden.

Gruß, noisefloor

TausB

Avatar von TausB

Anmeldungsdatum:
26. November 2009

Beiträge: 1570

noisefloor schrieb:

Hallo,

ist doch der Fall, im Abschnitt Image einer Partition einbinden.

Gruß, noisefloor

Ööööhm - nein. Dort finde ich weder einen Link auf das SKRIPT, noch das SKRIPT zum einfacheren Einbinden, präziser zum Ermitteln des Offset.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
#----------------------------------------------------------------------
# Author: haveaniceday
# Version: 1, Last updated: 12/2007
#----------------------------------------------------------------------

# fdisk finden 
PATH="/sbin:$PATH" 
if [ $# -lt 1 ] 
then 
        echo "usage: ${0##*/} <image>" 
        exit 1 
fi 

IMAGE=$1 
if [ ! -f $IMAGE ] 
then 
        echo "Warnung, $IMAGE ist kein File" 
fi 

# tr -d '*' => bootflag entfernen 
LANG=C fdisk -lu $IMAGE  2>&1 | tr -d '*' | grep "$IMAGE[a-z0-9]" | while read part start end blocks id rest 
do 
        echo 
        echo "$read $part $start $end $blocks $id $rest" 
        case $id in 
        5|f|85) echo "Ignoriere extended partition" 
           continue 
           ;; 
        82) echo "Ignoriere Swap" 
           continue 
           ;; 
        *) 
          ;; 
        esac 

        let offset=$start*512 
        echo mount -o loop,ro,offset=$offset $IMAGE /mnt 
done 
exit 0 

Bei klick landest Du exakt dort, wo ich meine.

TausB

noisefloor Team-Icon

(Themenstarter)

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

axo - hat das mit dem Link überlesen... JETZT ist der link drin. ☺

Gruß, noisefloor

TausB

Avatar von TausB

Anmeldungsdatum:
26. November 2009

Beiträge: 1570

noisefloor schrieb:

Hallo,

axo - hat das mit dem Link überlesen...

... das dachte ich mir schon.

JETZT ist der link drin. ☺

Na also - geht doch. 😈

Gruß
TausB

PS: Danke.

aasche

Anmeldungsdatum:
30. Januar 2006

Beiträge: 14259

Stimmt der untere Teil der Warnbox (UUID-Problem)?

Festplatte klonen

Der folgende Befehl klont (kopiert) die komplette Festplatte /dev/sda inklusive aller Partitionen, MBR und Partitionstabelle auf die eine zweite Festplatte /dev/sdb:

dd if=/dev/sda of=/dev/sdb 

Achtung!

Es sollte darauf geachtet werden, dass die beiden Festplatten gleich groß sind - oder zumindest das Ziel größer.

Falls man plant, /dev/sdb als neue Festplatte einzusetzen und die alte Festplatte (/dev/sda) zu ersetzen, wird der PC nicht booten! Per "dd" sind die UUIDs von /dev/sda übernommen worden. Die "neue" Festplatte /dev/sdb (einzeln als /dev/sda erkannt) hat jedoch andere UUIDs. Diese werden natürlich nicht erkannt und der PC wird folgerichtig nicht booten.

noisefloor Team-Icon

(Themenstarter)

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

es deckt sich zumindest mit der Aussage im UUID Artikel, wobei da auch direkt erklärt wird, wie man die UUID manuell ändert...

Praxiserfahrung habe ich aber kein hierzu.

Gruß, noisefloor