<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Der Blog rund um Linux und andere freie Software</title>
	<atom:link href="http://freetux.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://freetux.wordpress.com</link>
	<description></description>
	<lastBuildDate>Sun, 23 Dec 2007 21:49:35 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='freetux.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/5c4e2a10804b7d55e5fbe4a10f3d2ce3?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Der Blog rund um Linux und andere freie Software</title>
		<link>http://freetux.wordpress.com</link>
	</image>
			<item>
		<title>Systembackup mit dd</title>
		<link>http://freetux.wordpress.com/2007/12/23/systembackup-mit-dd/</link>
		<comments>http://freetux.wordpress.com/2007/12/23/systembackup-mit-dd/#comments</comments>
		<pubDate>Sun, 23 Dec 2007 21:42:40 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Howtos]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[dd]]></category>
		<category><![CDATA[Festplatte]]></category>
		<category><![CDATA[harddisk]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[system]]></category>

		<guid isPermaLink="false">http://freetux.wordpress.com/2007/12/23/systembackup-mit-dd/</guid>
		<description><![CDATA[Es gibt einige tools, um Daten unter Linux zu sichern. Man kann z.B. mit cp oder rsync die Daten einfach auf eine externe Festplatte kopieren. Um Partitionen zu sichern bietet sich partimage an. Wenn man jedoch eine komplette Festplatte mit allen darauf befindlichen Partitionen als 1 Image sichern möchte bietet sich das Programm dd an. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freetux.wordpress.com&blog=2378224&post=4&subd=freetux&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Es gibt einige tools, um Daten unter Linux zu sichern. Man kann z.B. mit cp oder rsync die Daten einfach auf eine externe Festplatte kopieren. Um Partitionen zu sichern bietet sich partimage an. Wenn man jedoch eine komplette Festplatte mit allen darauf befindlichen Partitionen als 1 Image sichern möchte bietet sich das Programm <a href="http://wiki.ubuntuusers.de/Shell/dd">dd</a> an. dd(=diskdump) erstellt eine exakte 1zu1-Kopie eines Datenträgers in dem es byte für byte ausliest und kopiert. Dabei ist es dd ziehmlich egal, welche Daten, Partitionen oder Betriebssysteme sich auf der zu kopierenden Platte befinden.</p>
<h2>Vorraussetzungen</h2>
<p>Um mit dd eine Festplatte zu kopieren, darf diese nicht ins Dateisystem eingehängt sein. Will man also ein Backup der Festplatte machen, auf der sich das Betriebssystem befindet, so muss man eine Live-CD dafür verwenden.</p>
<p>Die Live-CD sollte das Programm dd beinhalten (praktisch bei allen der Fall), sollte die Hardware des Computers gut erkennen und sollte Schreibsupport für NTFS-formatierte Datenträger haben, wenn man eine externe Festplatte mit NTFS benutzen möchte. Die neueste Ubuntu7.10 Desktop-CD verfügt z.B. über diesen Treiber.</p>
<p>Der externe Datenträger sollte über ausreichend Speicherplatz verfügen (später mehr).</p>
<h2>Durchführung des Backups</h2>
<p>Bitte vor der Durchführung meinen Disclaimer lesen!!! dd fragt NICHT nach, ob es die Aktion wirklich durchführen soll! Daher ist hier Vorsicht geboten! Alle Aufgaben werden in der Konsole erledigt, daher kann man die Live-CD (wenn sie dieses erlaubt) auch im Textmodus starten. Bei Knoppix z.B. mit &#8222;knoppix 3&#8243;. Ansonsten muss man nach dem Booten der LiveCD eine Konsole mit Rootrechten öffnen, da die kommenden Aktionen Administratorrechte benötigen.</p>
<p>Zunächst kann man sich mit dem Befehl &#8222;fdisk -l&#8220; einen Überblick über die Festplatten und Partitionen machen. Meine Ausgabe sieht so aus:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>Disk /dev/sda: 40.0 GB, 40007761920 bytes<br />
255 heads, 63 sectors/track, 4864 cylinders<br />
Units = cylinders of 16065 * 512 = 8225280 bytes<br />
Disk identifier: 0xcccdcccd</p>
<p>Device Boot      Start         End      Blocks   Id  System<br />
/dev/sda1   *           1         973     7815591    7  HPFS/NTFS<br />
/dev/sda2             974        1040      538177+  82  Linux swap / Solaris<br />
/dev/sda3            1041        1648     4883760   83  Linux<br />
/dev/sda4            1649        4864    25832520    5  Extended<br />
/dev/sda5            1649        4864    25832488+  83  Linux</p>
<p>Disk /dev/sdb: 60.0 GB, 60011642880 bytes<br />
255 heads, 63 sectors/track, 7296 cylinders<br />
Units = cylinders of 16065 * 512 = 8225280 bytes<br />
Disk identifier: 0&#215;000ccbfb</p>
<p>Device Boot      Start         End      Blocks   Id  System<br />
/dev/sdb1               1        7296    58605088+  83  Linux</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>Ich habe also sda, meine Festplatte, und sdb, meine Backupplatte. sda hat 4 Partitionen. Da eine erweitert ist, werden insgesamt 5 Partitionen angezeigt. sdb hat nur eine Partition. Wenn die Festplatte und die Backupplatte die identische Größe haben und man die Backupplatte für nichts anderes braucht, kann man das Backup direkt wie <a href="http://wiki.ubuntuusers.de/Shell/dd" target="_blank">hier</a> beschrieben durchführen. Dabei gehen ALLE Daten auf der externen Platte verloren! Die externe Platte ist dann ein exakter Klon der Festplatte. Möchte man jedoch das Image in eine Datei auf der externen Platte sichern (auf der externen Platte befindliche Daten gehen hierbei nicht verloren), empfiehlt sich eine der folgenden Vorgehensweisen:</p>
<p>zunächst muss man sich vergewissern, dass</p>
<ul>
<li>die Festplatte NICHT ins Dateisystem eingehängt ist</li>
<li>die externe Platte mit Schreibzugriff ins Dateisystem eingehängt ist</li>
</ul>
<p>Überprüft werden kann dies mit</p>
<p>mount -l</p>
<p>Sollte die Festplattenpartition sda1 z.B. auf /media/sda1 eingehängt sein, kann sie mit &#8222;umount  /media/sda1&#8243; ausgehängt werden. Die externe Platte kann mit <a href="http://wiki.ubuntuusers.de/mount" target="_blank">mount</a> ins Dateisystem eingehängt werden (falls sie noch nicht eingehängt ist). Hierbei muss mit dem Parameter &#8222;-t&#8220; noch der Dateisystemtyp der externen Platte übergeben werden:</p>
<p>mount -t ext3 /dev/sdb1 /media/sdb1</p>
<h3>Unkomprimiertes Backup</h3>
<p>Ein unkomprimiertes Backup wird mit</p>
<p>dd if=/dev/sda of=/media/sdb1/backup.img bs=1M</p>
<p>erstellt. if gibt die Festplatte an, of den Speicherort und bs die Größe der Blöcke, die auf einmal kopiert werden sollen. Ich habe hier 1Megabyte gewählt. Die Wahl hat lediglich Auswirkung auf die Geschwindigkeit. Man kann ausprobieren, was am Schnellsten geht. In den Standardeinstellungen verläuft die Kopie recht langsam.</p>
<p>Das so entstandene Image hat exakt dieselbe Größe wie die kopierte Festplatte unabhängig davon, wieviele Daten auf der Platte sind. Ein Backup einer 40GB Platte hat also selbst auch immer genau 40GB. Somit weiß man auch, wieviel Speicher auf dem externen Datenträger frei sein muss.</p>
<h3>Komprimiertes Backup</h3>
<p>Um ein komprimiertes Backup zu erstellen, wird der von dd erzeugte Datenstrom von <a href="http://wiki.ubuntuusers.de/gzip" target="_blank">gzip </a> komprimiert. Hierfür werden <a href="http://wiki.ubuntuusers.de/Shell/Umleitungen" target="_blank">Pipes und Umleitungen</a> verwendet.</p>
<p>dd if=/dev/sda bs=1M | gzip &gt; /media/sdb1/backup.img.gz</p>
<p>Alternativ kann man auch mit bzip2 eine noch bessere Komprimierungsrate erreichen</p>
<h2>Vorteile und Nachteile der Varianten</h2>
<p>Ein komprimiertes Image kann deutlich kleiner sein, besonders ein bzip2-komprimiertes Image ist kleiner als eines mit gzip, allerdings auch rechenintensiver (und damit langsamer) bei der Erstellung.</p>
<p>Ein unkomprimiertes Image hat den Vorteil, dass einzelne Partitionen nachträglich ins Dateisystem readonly eingehängt werden können. Man kann also  auf die Daten im Backup zugreifen ohne das Backup zurückspielen zu müssen. Das geht (meines Wissens) mit einem komprimierten Image nicht.</p>
<h2>Zurückspielen eines Backups</h2>
<p>Ein unkomprimiertes Backup lässt sich mit</p>
<p>dd if=/media/sdb1/backup.img of=/dev/sda bs=1M</p>
<p>zurückspielen. Ein komprimiertes Backup hingegen mit</p>
<p>gunzip -c /media/sdb1/backup.img | dd of=/dev/hda bs=1M</p>
<h2>Einbinden eines unkomprimierten Backups</h2>
<p>Wie oben schon angesprochen lässt sich eine Partition eines unkomprimierten Backups in das Dateisystem einbinden. Leider gibt es kein tool, das dies vollautomatisch erledigt, es ist allerdings auch kein Hexenwerk, dies von Hand zu bewerkstelligen.</p>
<p>Zunächst wird das gesamte Backup an das loopdevice loop0 gehängt:</p>
<p>losetup /dev/loop0 /media/sdb1/backup.img</p>
<p>Anschließend kann man mit</p>
<p>fdisk -ul /dev/loop0</p>
<p>die Partitionstabelle auslesen. Man kann natürlich auch vor dem Backup die Partitionstabelle mit diesem Befehl auslesen und abspeichern, dann erübrigt sich dieser Schritt. Meine sieht dann so aus:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Disk /dev/loop0: 40.0 GB, 40007761920 bytes<br />
255 heads, 63 sectors/track, 4864 cylinders, total 78140160 sectors<br />
Units = sectors of 1 * 512 = 512 bytes<br />
Disk identifier: 0xcccdcccd</p>
<p>Device Boot      Start         End      Blocks   Id  System<br />
/dev/loop0p1   *          63    15631244     7815591    7  HPFS/NTFS<br />
/dev/loop0p2        15631245    16707599      538177+  82  Linux swap / Solaris<br />
/dev/loop0p3        16707600    26475119     4883760   83  Linux<br />
/dev/loop0p4        26475120    78140159    25832520    5  Extended<br />
/dev/loop0p5        26475183    78140159    25832488+  83  Linux</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Jetzt kann das loopdevice mittels</p>
<p>losetup -d /dev/loop0</p>
<p>wieder gelöscht werden. Jetzt wird das Backup erneut über ein loopdevice angesprochen, allerdings wird losetup ein offset als Parameter übergeben. Offset bedeutet, dass losetup das Backup nun nicht mehr am Beginn des Backups  einhängt, sondern irgendwo mittendrin. Die oben erhaltene Partitionstabelle ermöglicht es, den offsetparameter so zu bestimmen, dass losetup mit dem übergebenen offset genau bei der gewünschten Partition landet.</p>
<p>Nehmen wir mal an, ich möchte bei Partition Nummer 3 meines Backups landen. Hierfür lese ich aus der Tabelle die Anzahl an Sektoren (16707600) und multipliziere diese mit der Anzahl an bytes pro Sektor (=512). Macht insgesamt einen offset von 8554291200 bytes <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Jetzt kann man mit</p>
<p>losetup -o 8554291200 /dev/loop0 /media/sdb1/backup.img</p>
<p>das Backup erneut über ein loopdevice ansprechen, diesmal allerdings an einer bestimmten Stelle und nicht direkt am Anfang. Wenn bis jetzt alles erfolgreich war, sollte man mit  mount die entsprechende Partition einbinden können:</p>
<p>mkdir ~/backup</p>
<p>mount -t ext3 /dev/loop0 ~/backup</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/freetux.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/freetux.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/freetux.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/freetux.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/freetux.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/freetux.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/freetux.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/freetux.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/freetux.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/freetux.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/freetux.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/freetux.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=freetux.wordpress.com&blog=2378224&post=4&subd=freetux&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://freetux.wordpress.com/2007/12/23/systembackup-mit-dd/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/206deb6146aa10399882b610ac151c89?s=96&#38;d=identicon" medium="image">
			<media:title type="html">tim</media:title>
		</media:content>
	</item>
	</channel>
</rss>