<?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/"
	>

<channel>
	<title>Butschek.de &#187; losetup</title>
	<atom:link href="http://www.butschek.de/tag/losetup/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.butschek.de</link>
	<description>Linux, Server &#38; Co</description>
	<lastBuildDate>Wed, 16 Nov 2011 21:06:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel='hub' href='http://www.butschek.de/?pushpress=hub'/>
		<item>
		<title>kpartx: Partition im Loop Device</title>
		<link>http://www.butschek.de/2009/05/22/kpartx/</link>
		<comments>http://www.butschek.de/2009/05/22/kpartx/#comments</comments>
		<pubDate>Fri, 22 May 2009 08:00:00 +0000</pubDate>
		<dc:creator>Michael Butschek</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[LST]]></category>
		<category><![CDATA[kpartx]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[losetup]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.butschek.de/?p=477</guid>
		<description><![CDATA[Ein normales Image einer Partition kann mit losetup zum Loop-Device gemacht werden und so über /dev/loopX als Gerät angesprochen und z.B. gemountet werden. Schwieriger wird es jedoch, wenn das Loop-Device eine komplette Platte inklusive Partitionen enthält. Ein einfaches Beispiel: Ein &#8230; <a href="http://www.butschek.de/2009/05/22/kpartx/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Festplatte" src="http://www.butschek.de/files/blog/2009/harddisk.jpg" alt="" width="200" height="150" />Ein normales Image einer Partition kann mit <a title="man losetup(8)" href="http://www.butschek.de/man/8/losetup">losetup</a> zum Loop-Device gemacht werden und so über /dev/loopX als Gerät angesprochen und z.B. gemountet werden. Schwieriger wird es jedoch, wenn das Loop-Device eine komplette Platte inklusive Partitionen enthält.</p>
<p>Ein einfaches Beispiel: Ein mit &#8220;<a title="man dd(1)" href="http://www.butschek.de/man/dd">dd</a> if=/dev/sda of=/imagefile&#8221; erstelltes Image kann zwar mit losetup zu /dev/loop0 gemacht werden, jedoch ist ein direktes Ansprechen der Partitionen, die ehemals auf /dev/sda existierten, nicht möglich. Dazu müßte es ja ein /dev/loop0_1, /dev/loop0_2 oder /dev/loop0_3 geben.</p>
<p>Gut, möglich ist es schon, denn losetup kann mit &#8211;offset auch nur Teile der Image-Datei als Loop-Device nutzen, nur müßte man so auf&#8217;s Byte genau die Partitionen finden, wobei ein Irrtum möglicherweise die Daten vernichten würde.</p>
<p>Diese Aufgabe löst <a title="man kpartx(8)" href="http://www.butschek.de/man/8/kpartx">kpartx</a>. Der Einsatz ist ganz einfach: Installieren und loslegen.</p>
<pre>apt-get install kpartx
kpartx -av /imagefile
oder
kpartx -av /dev/loop0</pre>
<p>Schon stehen unter /dev/mapper je Partition ein Loop-Device zur Verfügung, also zum Beispiel:</p>
<ul>
<li>/dev/mapper/loop0p1 (ehemals /dev/sda1)</li>
<li>/dev/mapper/loop0p2 (ehemals /dev/sda2)</li>
<li>/dev/mapper/loop0p3 (ehemals /dev/sda3)</li>
</ul>
<p>Der Parameter <strong>-a</strong> steht für add, das <strong>v</strong> dagegen für verbose, so dass ich gleich sehe, was er mir angelegt hat. Mit dem Parameter <strong>-l</strong> zeigt man die Mappings an, mit <strong>-d</strong> löscht man sie wieder.</p>
<p><strong>Typischer Anwendungszweck:</strong></p>
<p>Mit losetup kam ich noch gut klar. Als ich jedoch das erste mal ein Image erstellt habe und darin eine virtuelles Debian von einer virtuellen CD (.ISO-Datei) installierte, hat mir dieses in der Image-Datei mehrere Partitionen angelegt. Hier war kpartx meine Rettung, denn so konnte ich noch auf die Daten im Image-File zugreifen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.butschek.de/2009/05/22/kpartx/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Loop Device Setup</title>
		<link>http://www.butschek.de/2009/05/14/loop-device-setup/</link>
		<comments>http://www.butschek.de/2009/05/14/loop-device-setup/#comments</comments>
		<pubDate>Thu, 14 May 2009 08:00:00 +0000</pubDate>
		<dc:creator>Michael Butschek</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[LST]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[losetup]]></category>
		<category><![CDATA[Shell]]></category>

		<guid isPermaLink="false">http://www.butschek.de/?p=443</guid>
		<description><![CDATA[Mit einem Loop-Device kann man unter Linux nette Dinge machen: Man kann Dateien wie ein Gerät, z.B. eine Festplatte oder eine Partition (also ein Block Device) behandeln. Normalerweise besteht eine Festplatte aus mehreren Partitionen. Diese werden uns dank udev im &#8230; <a href="http://www.butschek.de/2009/05/14/loop-device-setup/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft" title="losetup" src="http://www.butschek.de/files/blog/2009/losetup.png" alt="" width="200" height="55" />Mit einem Loop-Device kann man unter Linux nette Dinge machen: Man kann Dateien wie ein Gerät, z.B. eine Festplatte oder eine Partition (also ein Block Device) behandeln.</p>
<p style="text-align: justify;">Normalerweise besteht eine Festplatte aus mehreren Partitionen. Diese werden uns dank udev im /dev Verzeichnis angezeigt und lassen sich mit Ihrem Namen /dev/sda1, /dev/sda2, &#8230; ansprechen.</p>
<p style="text-align: justify;">Was aber, wenn nur ein Dump einer Partition in Form einer Datei vorliegt? Zum Beispiel wenn jemand eine komplette Kopie mit &#8220;dd if=/dev/sda3 of=/file&#8221; erstellt hat. Hier hilft <a title="man losetup(8)" href="http://www.butschek.de/man/8/losetup">losetup</a>.</p>
<p style="text-align: justify;">Um eine Datei als sog. Loop-Device zu benutzen, muss es &#8211; sofern nicht schon vorhanden &#8211; erstmal erstellt werden:</p>
<pre>dd if=/dev/zero of=/home/test bs=1M count=1k</pre>
<p style="text-align: justify;">Damit erstellen wir eine Datei mit eine Größe von 1 GB (1000 Blöcke [<strong>1k</strong>] zu je <strong>1M</strong>B). Diese wird nun eingebunden.</p>
<pre>losetup -f /home/test</pre>
<p style="text-align: justify;">Mit &#8216;losetup  -a&#8217; läßt sich jetzt herausfinden, welchen Gerätenamen unser Gerät nun erhalten hat, üblicherweise wird dies beim ersten Versuch /dev/loop0 sein. Man hätte übrigens mit &#8216;losetup -f&#8217; auch vorher schon nachsehen können, welches der nächste freie Gerätename ist &#8211; für Scripte ist dieser Weg wohl einfacher.</p>
<p>So, nun können wir /dev/loop0 benutzen wie eine normale Partition, z.B. so:</p>
<pre>mkfs.ext3 /dev/loop0
mount /dev/loop0 /mnt
df -h /mnt</pre>
<p>Nach dem entmounten läßt sich das Loop Device auch wieder entfernen:</p>
<pre>umount /dev/loop0
losetup -d /dev/loop0</pre>
<p>Damit ist unsere Datei auch wieder nur eine Datei.</p>
<p style="text-align: justify;">Mit dem Parameter -e läßt sich übrigens auch ein verschlüsseltes Loop-Device erzeugen (z.B. losetup -e des -f file, siehe <a title="man losetup(8)" href="http://www.butschek.de/man/8/losetup">Manpage</a>, doch nutze ich hier lieber LUKS, das in Kürze in einem Artikel erklärt wird.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.butschek.de/2009/05/14/loop-device-setup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

