<?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>Dateisysteme – Linux und Ich</title>
	<atom:link href="https://linuxundich.de/tag/dateisysteme/feed/" rel="self" type="application/rss+xml" />
	<link>https://linuxundich.de</link>
	<description>Blog über Ubuntu, Linux, Android und IT</description>
	<lastBuildDate>Tue, 22 Mar 2016 10:07:48 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>Bitrot bei JPG-Dateien, wirklich so dramatisch?</title>
		<link>https://linuxundich.de/bitrot-bei-jpg-dateien-wirklich-dramatisch/</link>
					<comments>https://linuxundich.de/bitrot-bei-jpg-dateien-wirklich-dramatisch/#comments</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Tue, 22 Mar 2016 08:53:05 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Btrfs]]></category>
		<category><![CDATA[Dateisysteme]]></category>
		<guid isPermaLink="false">https://linuxundich.de/?p=34903</guid>

					<description><![CDATA[Wie schlimm ist Bitrot bei JPG-Dateien wirklich? Ein Selbstversuch mit gezielt gekippten Bits liefert die Antwort.]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Daten können auf unterschiedliche Art und Weise verloren gehen: Kaputte Massenspeicher (egal ob Festplatte oder SSD), zerschossene Dateisysteme, Verlust des Notebooks oder Smartphones durch Diebstahl oder Schusseligkeit, sowie die eigene Dummheit beim versehentlichen Löschen von Daten. Gegen allzu dramatische Datenverluste infolge dieser unglücklichen Ereignisse helfen in der Regel Backups, die eigentlich jeder Computeranwender regelmäßig erstellen sollte &#8212; was bekanntlich aber nur ein Bruchteil aller User macht. Gegen eine weitere Form des Datenverlusts helfen jedoch auch Backups nur bedingt. <a href="https://en.wikipedia.org/wiki/Data_corruption">Silent Data Corruption</a> oder Bitrot schlägt unmerklich zu, da nur einzelne Bits einer oder mehrere Dateien betroffen sind. Moderne Dateisysteme wie Btrfs oder ZFS schützen in einem RAID-Verbund mit Prüfsummen zu Daten und Metadaten gegen Bitrot. Doch wie dramatisch ist das Problem eigentlich? Ich schaue mir von Bitrot befallene JPG-Dateien einmal genauer an.</p><h2 class="wp-block-heading">Bitrot schummelt Fehler leise ins Dateisystem</h2><p class="wp-block-paragraph">Unter Bitrot bezeichnet man umgangssprachlich das &#8222;Kippen&#8220; einzelner Datenbits. Dies kann etwa bei Zahlen schnell dramatische Folgen hervorrufen: Habt ihr etwa 100 Euro auf dem Konto (Binär: 1100100) und das erste Bit kippt in der Datenbank der Bank zu einer 0, dann schrumpft euer Guthaben auf einen Schlag auf nur noch 36 Euro (Binär: 0100100). Damit dies nicht passiert, speichern moderne Dateisysteme Daten redundant und schreiben Prüfsummen, sodass man zum einen merkt, dass etwas mit den Daten nicht stimmt und zum anderen sie auch automatisch wiederherstellen kann. Auch Dateiformate selber besitzen eine gewisse Redundanz, sodass kleine Datenfehler im Bild eigentlich kaum ersichtlich sein sollten. Daher hat mich <a href="https://arstechnica.com/information-technology/2014/01/bitrot-and-atomic-cows-inside-next-gen-filesystems/#page-3">dieser Beitrag von Ars Technica</a> sehr gewundert. Schon nach drei gekippten Bits ist das dort gezeigte Bild nicht mehr erkennbar. Gut, nach 10 gekippten Bits bin ich auch nicht mehr wiederzuerkennen, aber der Totalausfall nach 3 gedrehten Bits macht einem schon Sorgen &#8212; schließlich gehören Bilder für viele von uns zum wertvollsten Datenschatz.</p><p class="wp-block-paragraph">Um das Thema also einmal selber nachzustellen, braucht es ein Bild und ein kleines Programm, mit dem man gezielt einzelne Bits einer Datei umkippen lassen kann. Im Netz finden sich dazu eine Reihe von kleinen Code-Schnippseln, der folgende in Python geschriebene Code macht als <code>bitflip.py</code> abgespeichert genau dies. Als Parameter übergebt ihr dem Programm einen Offsetwert, also im Endeffekt das wievielte Bit es drehen soll. Zudem habe ich mit <code>bitflip.sh</code> ein kleines Shell-Skript geschrieben, das automatisiert eine beliebige Anzahl an Bits einer Datei drehen kann. Es nummeriert zudem die einzelnen Bilder und erstellt am Ende aus den Einzelbildern ein Video &#8212; mit dem Ziel am Ende den Verfall des Bildes als animierten Verlauf zu sehen.</p><h2 class="wp-block-heading">Skripte zum automatisierten Drehen einzelner Bits</h2><h3 class="wp-block-heading">bitflip.ph</h3><pre class="wp-block-code"><code>#!/usr/bin/python
&quot;&quot;&quot;Toggle the bit at the specified offset.
Syntax:  filename bit-offset&quot;&quot;&quot;

import sys
fname = sys.argv[1]
# Convert bit offset to bytes + leftover bits
bitpos = int(sys.argv[2])
nbytes, nbits = divmod(bitpos, 8)

# Open in read+write, binary mode; read 1 byte 
fp = open(fname, &quot;r+b&quot;)
fp.seek(nbytes, 0)
c = fp.read(1)

# Toggle bit at byte position `nbits`
toggled = bytes( [ ord(c)^(1&lt;&lt;nbits) ] ) 
# print(toggled) # diagnostic output

# Back up one byte, write out the modified byte
fp.seek(-1, 1)  # or absolute: fp.seek(nbytes, 0)
fp.write(toggled)
fp.close()</code></pre><h3 class="wp-block-heading">bitflip.sh</h3><pre class="wp-block-code"><code>#!/bin/bash
# Settings
ORIGFILE=$1
FIRSTBIT=$2
LASTBIT=$3
STEPWIDTH=$4

# Folders
FLIPPEDFILES=tmp_flipped
VIDEOTEMP=tmp_video

# Init
FLIPPEDBITS=0

# Watch for Ctrl+C
trap &quot;exit&quot; INT

# Prepare
if [[ ! -e $FLIPPEDFILES ]]; then
	mkdir $FLIPPEDFILES
else
	rm $FLIPPEDFILES/*
fi

if [[ ! -e $VIDEOTEMP ]]; then
	mkdir $VIDEOTEMP
else
	rm $VIDEOTEMP/*
fi

# Function annotate
function annotate () {
	convert $1/$2.jpg -gravity southeast \
		-stroke &#039;#000C&#039; -pointsize 100   -strokewidth 2 -annotate 0 $3 \
		-stroke  none   -pointsize 100   -fill white    -annotate 0 $3 \
		$1/$2.jpg
}

# Flip bits
cp $ORIGFILE $FLIPPEDFILES/$FIRSTBIT.jpg
convert $ORIGFILE $FLIPPEDFILES/$FIRSTBIT.jpg +append $VIDEOTEMP/$FIRSTBIT.jpg

while [  $FIRSTBIT -lt $LASTBIT ]; do

	echo Flipping bit: $FIRSTBIT
	echo Flipped bits: $FLIPPEDBITS

	let PLUSONE=FIRSTBIT+STEPWIDTH
	cp $FLIPPEDFILES/$FIRSTBIT.jpg $FLIPPEDFILES/$PLUSONE.jpg
	./bitflip.py $FLIPPEDFILES/$PLUSONE.jpg $PLUSONE
	convert $FLIPPEDFILES/$FIRSTBIT.jpg $FLIPPEDFILES/$PLUSONE.jpg +append $VIDEOTEMP/$PLUSONE.jpg
	annotate $VIDEOTEMP $PLUSONE $FLIPPEDBITS

	let FIRSTBIT=FIRSTBIT+STEPWIDTH
	let FLIPPEDBITS=FLIPPEDBITS+1
	clear
done

# Build video
cd $VIDEOTEMP
cat *.jpg | ffmpeg -y -f image2pipe -r 15 -vcodec mjpeg -i - -vcodec libx264 ../out.mp4</code></pre><p class="wp-block-paragraph">Doch bevor ich das Skript auf ein JPG loslasse, muss <code>bitflip.py</code> beweisen, ob es auch wirklich funktioniert. Dazu nehme ich ein beliebiges PNG-Bild und flippe gezielt ein einzelnes Bit. Ein binärer Vergleich mit <code>cmp</code> zeigt dann den Unterschied. Der Aufruf von <code>file</code> erkennt anschließend zwar noch eine PNG-Datei, doch ein Bildbetrachter mag die Datei nicht mehr öffnen, wie auch <code>identify</code> aus der Imagemagick-Suite mit <code>IDAT: CRC error</code> einen Fehler in der Bilddatei meldet. Schalte ich das Bit erneut um, dann akzeptiert <code>identify</code> das Bild wieder brav und der Bildbetrachter von Gnome öffnet die PNG-Datei ebenfalls wieder. Sum­ma sum­ma­rum: Schon ein gekipptes Bit kann eine Datei komplett ruinieren. JPG bringt jedoch deutlich mehr Redundanzen mit, von daher bin ich gespannt, wie sich das für Fotografien übliche Dateiformat schlägt.</p><pre class="wp-block-code"><code>### Beliebige PNG-Datei kopieren
$ cp picture.png picture-flip.png
### Als Beispiel das 2000. Bit flippen
$ ./bitflip.py picture-flip.png 2000
### Hat es geklappt, ja!
$ cmp -l picture.png picture-flip.png | gawk &#039;{printf &quot;%08X %02X %02X\n&quot;, $1, strtonum(0$2), strtonum(0$3)}&#039;
000000FB 1C 1D</code></pre><pre class="wp-block-code"><code>### Immer noch eine PNG-Datei?
$ file picture-flip.png
picture-flip.png: PNG image data, 800 x 533, 8-bit/color RGB, non-interlaced
### Bild-Information kaputt
$ identify -verbose picture-flip.png
identify: IDAT: CRC error `picture-flip.png&#039; @ error/png.c/MagickPNGErrorHandler/1630.
identify: corrupt image `picture-flip.png&#039; @ error/png.c/ReadPNGImage/3959.</code></pre><pre class="wp-block-code"><code>### Gegenprüfung, wieder das 2000. Bit flippen
$ ./bitflip.py picture-flip.png 2000
### Bild-Informationen stimmen wieder
$ identify -verbose picture-flip.png
Image: picture-flip.png
  Format: PNG (Portable Network Graphics)
  Mime type: image/png
  Class: DirectClass
  Geometry: 800x533+0+0
  Resolution: 28.35x28.35</code></pre>
<figure data-wp-context="{&quot;imageId&quot;:&quot;6ad737dddc0d2&quot;}" data-wp-interactive="core/image" data-wp-key="6ad737dddc0d2" class="wp-block-image size-large wp-lightbox-container"><img fetchpriority="high" decoding="async" width="907" height="722" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2016/02/bitrot-png-file.png" alt="Ein gekipptes Bit reicht aus, um eine PNG-Datei zu zerstören." class="wp-image-34920" style="width:100%" srcset="https://linuxundich.de/wp-content/uploads/2016/02/bitrot-png-file.png 907w, https://linuxundich.de/wp-content/uploads/2016/02/bitrot-png-file-640x509.png 640w, https://linuxundich.de/wp-content/uploads/2016/02/bitrot-png-file-768x611.png 768w" sizes="(max-width: 781px) 100vw, 680px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Ein gekipptes Bit reicht aus, um eine PNG-Datei zu zerstören.</figcaption></figure>
<p class="wp-block-paragraph">Bei Ars <a href="https://arstechnica.com/information-technology/2014/01/bitrot-and-atomic-cows-inside-next-gen-filesystems/#page-3">schildert Autor Jim Salter</a> nun, dass schon mit einem geflippten Bit im JPG-Bild Artefakte erscheinen. Nach zwei und erst recht nach drei gekippten Bits ist dann kaum mehr etwas von dem Originalbild zu erkennen. In meinen Tests kann ich das nun aber nicht nachvollziehen: Mein Testbild bleibt ein Bild und für das Auge ergibt sich kein erkennbarer Unterschied, nur <code>cmp</code> meldet (wie gewünscht) die Anzahl der Unterschiede in den jeweiligen Dateien. Ich habe den Vergleich bewusst auf eine &#8222;richtige&#8220; Fotografie beschränkt und nicht auf eine künstlich kleine JPG-Datei, da natürlich die Redundanz mit der Größe des Bildes zunimmt. 1000 gekippte Bits in einer 1 Kb großen Datei dürften sich deutlich dramatischer auswirken als in einer 5 Mb großen Datei, frisch von der Digitalkamera geladen.</p><h2 class="wp-block-heading">Mit 10 gekippten Bits</h2><pre class="wp-block-code"><code>$ cmp -l ../katze_orig.jpg 11000.jpg | gawk &#039;{printf &quot;%08X %02X %02X\n&quot;, $1, strtonum(0$2), strtonum(0$3)}&#039; | wc -l
10</code></pre>
<figure data-wp-context="{&quot;imageId&quot;:&quot;6ad737dddf4fc&quot;}" data-wp-interactive="core/image" data-wp-key="6ad737dddf4fc" class="wp-block-image size-large wp-lightbox-container"><img decoding="async" width="1280" height="720" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2016/02/11100-1280x720.jpg" alt="10 gekippte Bits (Links: Original, Rechts: Defekt)" class="wp-image-34922" style="width:100%" srcset="https://linuxundich.de/wp-content/uploads/2016/02/11100-1280x720.jpg 1280w, https://linuxundich.de/wp-content/uploads/2016/02/11100-640x360.jpg 640w, https://linuxundich.de/wp-content/uploads/2016/02/11100-768x432.jpg 768w, https://linuxundich.de/wp-content/uploads/2016/02/11100.jpg 1920w" sizes="(max-width: 781px) 100vw, 680px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">10 gekippte Bits (Links: Original, Rechts: Defekt)</figcaption></figure>
<h2 class="wp-block-heading">Mit 100 gekippten Bits</h2><pre class="wp-block-code"><code>$ cmp -l ../katze_orig.jpg 20100.jpg | gawk &#039;{printf &quot;%08X %02X %02X\n&quot;, $1, strtonum(0$2), strtonum(0$3)}&#039; | wc -l
100</code></pre>
<figure data-wp-context="{&quot;imageId&quot;:&quot;6ad737dde0f37&quot;}" data-wp-interactive="core/image" data-wp-key="6ad737dde0f37" class="wp-block-image size-large wp-lightbox-container"><img decoding="async" width="1280" height="720" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2016/02/20100-1280x720.jpg" alt="100 gekippte Bits (Links: Original, Rechts: Defekt)" class="wp-image-34923" style="width:100%" srcset="https://linuxundich.de/wp-content/uploads/2016/02/20100-1280x720.jpg 1280w, https://linuxundich.de/wp-content/uploads/2016/02/20100-640x360.jpg 640w, https://linuxundich.de/wp-content/uploads/2016/02/20100-768x432.jpg 768w, https://linuxundich.de/wp-content/uploads/2016/02/20100.jpg 1920w" sizes="(max-width: 781px) 100vw, 680px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">100 gekippte Bits (Links: Original, Rechts: Defekt)</figcaption></figure>
<h2 class="wp-block-heading">Mit knapp 1000 gekippten Bits</h2><pre class="wp-block-code"><code>$ cmp -l ../katze_orig.jpg 110000.jpg | gawk &#039;{printf &quot;%08X %02X %02X\n&quot;, $1, strtonum(0$2), strtonum(0$3)}&#039; | wc -l
999</code></pre>
<figure data-wp-context="{&quot;imageId&quot;:&quot;6ad737dde3412&quot;}" data-wp-interactive="core/image" data-wp-key="6ad737dde3412" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1280" height="720" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2016/02/110000-1280x720.jpg" alt="999 gekippte Bits (Links: Original, Rechts: Defekt)" class="wp-image-34924" style="width:100%" srcset="https://linuxundich.de/wp-content/uploads/2016/02/110000-1280x720.jpg 1280w, https://linuxundich.de/wp-content/uploads/2016/02/110000-640x360.jpg 640w, https://linuxundich.de/wp-content/uploads/2016/02/110000-768x432.jpg 768w, https://linuxundich.de/wp-content/uploads/2016/02/110000.jpg 1920w" sizes="auto, (max-width: 781px) 100vw, 680px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">999 gekippte Bits (Links: Original, Rechts: Defekt)</figcaption></figure>
<p class="wp-block-paragraph">Lange Rede, kurzer Sinn: Ganz so schlimm, wie es der Autor von Ars darstellt, wirkt sich Bitrot bei JPEG-Dateien nicht aus. Dennoch sollte man sich bei seiner Backupstrategie ein wenig Gedanken an die Tatsache verschwenden, dass einzelne Bits auf dem Datenträger kippen können. Sichert man nun einfach nur stumpf seine Daten auf ein Backup-Medium, dann wandert der Defekt unbemerkt ins Backup und ersetzt auch irgendwann mal die älteste Version in der Sicherung, sodass eine Wiederherstellung zu einem späteren Zeitpunkt unmöglich wird. Dazu gehören moderne Dateisysteme wie Btrfs oder ZFS, die Prüfsummen für alle Daten anlegen (nicht nur wie Ext4 für das Journal) und am besten darunter noch ein RAID1, sodass man Daten leicht wiederherstellen kann.</p><hr><p>☕ <strong>Linux und Ich unterstützen</strong><br>Danke, dass du <a href="https://linuxundich.de">Linux und Ich</a> liest. Wenn dir das Blog gefällt und du meine Arbeit unterstützen möchtest, findest du weitere Informationen auf der <a href="https://linuxundich.de/spendiere-einen-kaffee/">Blogspende-Seite</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/bitrot-bei-jpg-dateien-wirklich-dramatisch/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title>Ein WordPress-Blog mit PressFS ins Dateisystem mounten</title>
		<link>https://linuxundich.de/ein-wordpress-blog-mit-pressfs-ins-dateisystem-mounten/</link>
					<comments>https://linuxundich.de/ein-wordpress-blog-mit-pressfs-ins-dateisystem-mounten/#comments</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Fri, 17 Jun 2011 17:41:18 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Anleitung]]></category>
		<category><![CDATA[Dateisysteme]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://linuxundich.de/de/?p=13405</guid>

					<description><![CDATA[PressFS bindet eine WordPress-Installation ins Dateisystem ein, sodass sich Beiträge im Texteditor lesen lassen. Bislang allerdings nur lesend.]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Hier ist mal wieder eine Sache, über die man nur staunen kann. Joseph Scott hat mit <a href="https://web.archive.org/web/20110603153427/http://josephscott.org/archives/2011/05/pressfs-a-wordpress-filesystem/">PressFS ein Dateisystem für WordPress</a> geschrieben, über das man eine WordPress-Installation transparent ins Dateisystem einbinden kann. Somit lassen sich z.B. Artikel direkt im Texteditor schreiben und online stellen. Allerdings steht die Entwicklung des Ganzen noch am Anfang, so dass man bislang nur Inhalte lesen kann. PressFS um Routinen zum Schreiben zu erweitern, ist jedoch schon in Planung.</p><p class="wp-block-paragraph">Solltet Ihr PressFS einmal austesten wollen, so würde ich euch empfehlen, dies nicht gerade mit eurer &#8222;richtigen&#8220; WordPress-Installation zu tun. Das Projekt steckt in den Kinderschuhen, zwar kann man bislang nichts verändern, doch sicher ist sicher&#8230; Um nun PressFS zu probieren, müsst ihr den Code bei <a href="https://github.com/josephscott/pressfs">GitHub</a> auschecken, des Weiteren braucht ihr für den Betrieb auch noch die Python-Bindings für Fuse.</p><pre class="wp-block-code"><code>$ sudo apt-get install python-fuse git
$ git clone https://github.com/josephscott/pressfs.git</code></pre><p class="wp-block-paragraph">Sobald Ihr den Code habt, geht ihr in das heruntergeladene Verzeichnis mit dem Code und erzeugt euch eine Konfigurationsdatei config.ini aus der mitgelieferten Vorlage, öffnet diese danach gleich in eurem Lieblingseditor.</p><pre class="wp-block-code"><code>$ cp example-config.ini config.ini
$ gedit config.ini</code></pre><p class="wp-block-paragraph">In der Datei müsst Ihr nun eure Zugangsdaten und die URL zum Blog eintragen. Beachtet, dass die Authentifizierung über HTTP erfolgt und die Zugangsdaten somit im Klartext übertragen werden. Besser wäre es &#8211; so man denn ein SSL-Zertifikat hat &#8211; SSL zu verwenden.</p><pre class="wp-block-code"><code>url = http://urlzueuremblog.de/wordpress
username = Ichbineinadmin
password = ganzgeheim

[Cache]
req_expire = 3</code></pre><p class="wp-block-paragraph">Somit ist die Konfiguration auf eurem Rechner abgeschlossen. Als Nächstes muss das mitgelieferte WordPress-Plugin ins Blog geladen und aktiviert werden. Der Vorgang unterscheidet sich überhaupt nicht von der Installation üblicher Plugins.</p>
<figure data-wp-context="{&quot;imageId&quot;:&quot;6ad737de38ff6&quot;}" data-wp-interactive="core/image" data-wp-key="6ad737de38ff6" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1086" height="850" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2011/06/pressfs_installation.png" alt="Plugin-Übersicht von WordPress mit dem aktivierten PressFS-Plugin, daneben ein Dateimanager mit dem hochgeladenen Ordner pressfs" class="wp-image-13408" style="width:100%" srcset="https://linuxundich.de/wp-content/uploads/2011/06/pressfs_installation.png 1086w, https://linuxundich.de/wp-content/uploads/2011/06/pressfs_installation-640x501.png 640w, https://linuxundich.de/wp-content/uploads/2011/06/pressfs_installation-768x601.png 768w" sizes="auto, (max-width: 781px) 100vw, 680px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">PressFS-Plugin in WordPress installieren</figcaption></figure>
<p class="wp-block-paragraph">Jetzt könnt ihr euer WordPress-Blog mounten. Erzeugt einen Mount-Punkt, bspw. <code>/var/wordpress</code>, und führt dann das <code>pressfs.py</code>-Skript aus. Wenn Ihr danach im Terminal oder mit einem Dateimanager nach <code>/var/wordpress</code> geht, dann solltet ihr euer Blog &#8222;sehen&#8220;.</p><pre class="wp-block-code"><code>$ sudo mkdir /var/wordpress
$ python pressfs.py /var/wordpress</code></pre><p class="wp-block-paragraph">Die Inhalte des Blogs werden über verschiedene Unterverzeichnisse wiedergegeben. Für Kategorien, Beiträge, Schlagwörter und Benutzer wird jeweils ein Verzeichnis angelegt, das die entsprechenden Inhalte wiederum als Datei beinhaltet.</p><ul class="wp-block-list"><li>/var/wordress/categories/</li><li>/var/wordpress/posts/</li><li>/var/wordpress/tags/</li><li>/var/wordpress/users/</li></ul><p class="wp-block-paragraph">Die Verzeichnisse und die Dateien könnt Ihr im Dateimanager bzw. in jedem beliebigen Programm öffnen. So könnt Ihr bspw. einen Beitrag in Gedit öffnen und dort &#8211; wenn denn das Schreiben einmal möglich wird &#8211; bearbeiten und wieder abspeichern.</p>
<figure data-wp-context="{&quot;imageId&quot;:&quot;6ad737de3c834&quot;}" data-wp-interactive="core/image" data-wp-key="6ad737de3c834" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="1144" height="826" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2011/06/pressfs.png" alt="Ein gemountetes WordPress-Blog im Dateimanager: jeder Beitrag erscheint als Ordner, daneben ein Terminal mit der ls-Ausgabe und ein Editor mit dem Inhalt eines Beitrags" class="wp-image-13406" style="width:100%" srcset="https://linuxundich.de/wp-content/uploads/2011/06/pressfs.png 1144w, https://linuxundich.de/wp-content/uploads/2011/06/pressfs-640x462.png 640w, https://linuxundich.de/wp-content/uploads/2011/06/pressfs-768x555.png 768w" sizes="auto, (max-width: 781px) 100vw, 680px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">WordPress transparent im Dateisystem gemountet</figcaption></figure>
<p class="wp-block-paragraph">Wenn Scott es schafft Schreibvorgänge sicher zu implementieren, dann wird PressFS für Linux-Blogger sicher eine feine Sache. Ich kann mir zwar nicht vorstellen, damit das Web-Backend von WordPress überflüssig zu machen, aber wenn man schnell bestehende Beiträge verändern, oder per grep, sed und Co. automatisiert Inhalte ändern möchte&#8230; dann kann PressFS vielleicht ganz praktisch werden.</p><hr><p>☕ <strong>Linux und Ich unterstützen</strong><br>Danke, dass du <a href="https://linuxundich.de">Linux und Ich</a> liest. Wenn dir das Blog gefällt und du meine Arbeit unterstützen möchtest, findest du weitere Informationen auf der <a href="https://linuxundich.de/spendiere-einen-kaffee/">Blogspende-Seite</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/ein-wordpress-blog-mit-pressfs-ins-dateisystem-mounten/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>ZFS für Linux!</title>
		<link>https://linuxundich.de/zfs-fur-linux/</link>
					<comments>https://linuxundich.de/zfs-fur-linux/#comments</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Thu, 23 Sep 2010 19:25:39 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Dateisysteme]]></category>
		<guid isPermaLink="false">http://linuxundich.de/de/?p=9475</guid>

					<description><![CDATA[Oracle hat sein Versprechen eingelöst und ZFS auf Linux portiert. Quellcode sowie RPM- und DEB-Pakete stehen bereit.]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Die Welt der Dateisysteme für Linux hat heute ein prominentes Mitglied hinzugewonnen. Oracle hat sein Versprechen, ZFS auf Linux zu portieren, wahr gemacht. Auf der eigens eingerichteten Webseite <a href="https://zfsonlinux.org/">ZFS on Linux</a> kann man sich vom Quellcode bis hin zu RPM- und DEB-Paketen so ziemlich alles in der Richtung runterladen. Getestet habe ich das nicht, werde ich auch nicht, bis ZFS direkt in den Distributionen steckt, doch ZFS wird Linux sicherlich bereichern und die Qual der Wahl, das richtige Dateisystem zu wählen, noch verschlimmern&#8230;</p><p class="wp-block-paragraph">Warum? Das Dateisystem hat sich unter Solaris schon seit Jahren bewährt und hat Features, die es auch für den Desktop interessant machen. Deduplizierung, Snapshots, etc. Weiteres lässt sich in der <a href="https://de.wikipedia.org/wiki/ZFS_(Dateisystem)">Wikipedia</a> nachlesen. Besonders die eingebaute Möglichkeit gelöschte Daten oder ältere Dateistände wiederherzustellen, ist schick, ich bin gespannt wann die von <a href="https://web.archive.org/web/20110831133817/http://blogs.sun.com/erwann/entry/zfs_on_the_desktop_zfs">Sun an Nautilus erstellten Patches</a> auch unter Linux Einzug halten.</p><hr><p>☕ <strong>Linux und Ich unterstützen</strong><br>Danke, dass du <a href="https://linuxundich.de">Linux und Ich</a> liest. Wenn dir das Blog gefällt und du meine Arbeit unterstützen möchtest, findest du weitere Informationen auf der <a href="https://linuxundich.de/spendiere-einen-kaffee/">Blogspende-Seite</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/zfs-fur-linux/feed/</wfw:commentRss>
			<slash:comments>25</slash:comments>
		
		
			</item>
		<item>
		<title>Warum ist meine Ext4-Festplatte kleiner als angegeben?</title>
		<link>https://linuxundich.de/festplatte-kleiner-als-angegeben-ext4/</link>
					<comments>https://linuxundich.de/festplatte-kleiner-als-angegeben-ext4/#comments</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Tue, 08 Sep 2009 09:28:06 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Dateisysteme]]></category>
		<category><![CDATA[Einsteiger]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">http://linuxundich.de/de/?p=3562</guid>

					<description><![CDATA[Warum eine 500-GByte-Platte weniger anzeigt: unterschiedliche Rechenweisen und die fünf Prozent, die Ext2/3/4 für das System reservieren.]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">In Foren fallen mir immer wieder Fragen von Linux-Anwendern zur Kapazität Ihrer Festplatten auf. Man wundert sich oft, warum nach dem Formatieren einer etwa 500 GByte großen Festplatte deutlich weniger freier Plattenplatz angezeigt wird, als eigentlich erwartet. Dies liegt zum Einen an der unterschiedlichen Rechnungsweise der Festplattenhersteller, zum Anderen am Dateisystem Ext2, Ext3 und <a href="https://linuxundich.de/ext4-noch-nicht-reif-fur-den-desktop/">Ext4</a> das üblicherweise einen Teil der Festplatte für das System reserviert. Ich versuche das Thema kurz zusammenzufassen.</p><h2 class="wp-block-heading">Das Einheiten-Chaos</h2><p class="wp-block-paragraph">Der primäre Unterschied liegt in der unterschiedlichen Rechenweise von Festplattenherstellern und Informatikern. In der &#8222;normalen&#8220; Welt sind wir die 10 als Vorsatz für Maßeinheiten gewohnt. Bei den Gewichtseinheiten wird immer mit 10 hoch irgendwas gerechnet, also beispielsweise&#8230;</p><ul class="wp-block-list"><li>1 Kilogramm sind 10^3 Gramm</li><li>1 Tonne sind 10^3 Kilogramm oder 10^6 Gramm</li><li>usw&#8230;</li></ul><p class="wp-block-paragraph">Informatiker rechnen nun meist binär. Daher verwenden sie die 2 als Präfix für Potenzen.</p><ul class="wp-block-list"><li>1 Byte entspricht 8 Bit</li><li>1 Kilobyte sind 2^10 Byte, also 1024 Byte</li><li>1 Megabyte sind 2^20 Byte, also 1.048.576 Byte</li><li>usw&#8230;</li></ul><p class="wp-block-paragraph">Bei den auf der 2 basierenden Einheiten sollte man daher eigentlich von Kibibyte, Mebibyte und Co. reden, doch im allgemeinen Sprachgebrauch macht das praktisch niemand. Die Folge dieser unterschiedlichen Rechenweise: Eine vom Hersteller mit 1000 GByte Speicherkapazität angegebene Festplatte wird vom Betriebssystem mit nur rund 932 GByte ausgewiesen.</p>
<figure data-wp-context="{&quot;imageId&quot;:&quot;6ad737de778d3&quot;}" data-wp-interactive="core/image" data-wp-key="6ad737de778d3" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="837" height="609" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2009/09/immer-etwas-kleiner.png" alt="Je nach Rechenweise liegt die Festplattengröße immer etwas unter dem angegebenen Betrag." class="wp-image-28406" style="width:100%" srcset="https://linuxundich.de/wp-content/uploads/2009/09/immer-etwas-kleiner.png 837w, https://linuxundich.de/wp-content/uploads/2009/09/immer-etwas-kleiner-640x466.png 640w, https://linuxundich.de/wp-content/uploads/2009/09/immer-etwas-kleiner-768x559.png 768w" sizes="auto, (max-width: 781px) 100vw, 680px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Je nach Rechenweise liegt die Festplattengröße immer etwas unter dem angegebenen Betrag.</figcaption></figure>
<p class="wp-block-paragraph">Den Marketing- und Kaufleuten der Festplattenhersteller kommt die größer aussehende Auszeichnung natürlich besser, als die &#8222;kleinere&#8220; Rechenweise der Informatiker. Viel mehr will ich gar nicht auf diesen Unterschied eingehen. In der <a href="https://de.wikipedia.org/wiki/Byte#Gr.C3.B6.C3.9Fenunterschiede_zwischen_den_Bedeutungsauffassungen">Wikipedia</a> und selbst auf <a href="https://www.spiegel.de/netzwelt/web/0,1518,646498,00.html">Spiegel Online</a> finden sich wirklich gute Artikel, die das Thema auch dem Laien und Nichtmathematiker erklären&#8230;</p><h2 class="wp-block-heading">Ext2, Ext3 und Ext4 reservieren Speicher</h2><p class="wp-block-paragraph">Das eigentliche Thema ist die Tatsache, dass bei der Formatierung einer Festplatte mit Ext2 oder Ext3 (Ext4 scheint auch noch zu machen, <del datetime="2009-09-08T19:19:59+00:00">allerdings scheitert tune2fs bei Ext4</del>) als Dateisystem ein Teil der Festplatte für das System reserviert wird. Zum Warum und Weshalb komme ich gleich, erst einmal kurz ein paar Zahlen&#8230; Ich demonstriere das an einer alten Festplatte mit vom Hersteller angegebenen 4,32 GByte. Schaut man sich die Ausgabe von <code>df -h</code> an, so sieht man dass von den real freien 4GB Speicherplatz nur 3,7 GByte verfügbar sind</p><pre class="wp-block-code"><code>$ df -h
Dateisystem Größe Benut Verf Ben% Eingehängt auf
[...]
/dev/sdh1 4,0G 137M 3,7G 4% /media/disk-1</code></pre><p class="wp-block-paragraph">Der Grund dafür liegt darin, dass bei Ext{2,3,4} als Dateisystem von Haus aus 5% des Speicherplatzes einer Partition für das System reserviert werden. Dies soll Fragmentierung verhindern und garantieren, dass wichtige Dienste IMMER schreiben können, selbst wenn ein User des Systems die Platte zugemüllt hat. Die man-Page von tune2fs beschreibt die Funktion so&#8230;</p><pre class="wp-block-code"><code>$ man tune2fs
[...]
-m reserved-blocks-percentage

Set the percentage of the filesystem which may only be allocated by privileged processes. Reserving some number of filesystem blocks for use by privileged processes is done to avoid filesystem fragmentation, and to allow system daemons, such as syslogd(8), to continue to function correctly after non-privileged processes are prevented from writing to the filesystem. Normally, the default percentage of reserved blocks is 5%.</code></pre><p class="wp-block-paragraph">Bei modernen Platten ist dieser reservierte Speicherbereich mit 5% natürlich recht groß, bei einer Platte mit 1000 GB werden zum Beispiel 50GB reserviert. Gerade wenn man eine Festplatte nur als Datenspeicher benutzt, kann man diesen Wert ruhig runtersetzen. Über den Befehl&#8230;</p><pre class="wp-block-code"><code>$ sudo tune2fs -m [Prozentsatz] /dev/sd[xy]</code></pre><p class="wp-block-paragraph">kann man dies über ein Terminal machen. Die Partition kann währenddessen eingehängt (aka gemountet) bleiben. Den Prozentsatz könnt Ihr dabei frei wählen. Die Partition muss man natürlich korrekt angeben, Ihr findet die Partition etwa über fdisk heraus&#8230;</p><pre class="wp-block-code"><code>$ sudo fdisk -l
[...]
Platte /dev/sdh: 4327 MByte, 4327464960 Byte
255 Köpfe, 63 Sektoren/Spuren, 526 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Disk identifier: 0x16b6ac7b

Gerät boot. Anfang Ende Blöcke Id System
/dev/sdh1 1 526 4225094+ 83 Linux</code></pre><p class="wp-block-paragraph">Habt Ihr eine Partition nur mit Daten, so könnt Ihr den reservierten Speicherplatz komplett deaktivieren. Nach einem&#8230;</p><pre class="wp-block-code"><code>$ sudo tune2fs -m 0 /dev/sdh1
Setze den Prozentsatz reservierter Böcke auf 0% (0 Blöcke)</code></pre><p class="wp-block-paragraph">&#8230;steht auf der vorhin gezeigten Festplatte nun (fast) der komplette Speicherplatz auch zur Verfügung.</p><pre class="wp-block-code"><code>$ df -h
[...]
/dev/sdh1 4,0G 137M 3,9G 4% /media/disk-1</code></pre><p class="wp-block-paragraph">Die bereits nach der Formatierung belegten MB dienen dem <a href="https://de.wikipedia.org/wiki/Journaling-Dateisystem">Journal</a> des <a href="https://de.wikipedia.org/wiki/Ext4">Ext4</a>-Dateisystems. &#8222;Ganz leer&#8220; bekommt Ihr die Platte mit Ext4 also nie.</p>
<hr><p>☕ <strong>Linux und Ich unterstützen</strong><br>Danke, dass du <a href="https://linuxundich.de">Linux und Ich</a> liest. Wenn dir das Blog gefällt und du meine Arbeit unterstützen möchtest, findest du weitere Informationen auf der <a href="https://linuxundich.de/spendiere-einen-kaffee/">Blogspende-Seite</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/festplatte-kleiner-als-angegeben-ext4/feed/</wfw:commentRss>
			<slash:comments>21</slash:comments>
		
		
			</item>
		<item>
		<title>U3 Autostart von einem USB Speicherstick löschen</title>
		<link>https://linuxundich.de/u3-autostart-von-einem-usb-speicherstick-loschen/</link>
					<comments>https://linuxundich.de/u3-autostart-von-einem-usb-speicherstick-loschen/#comments</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Thu, 07 May 2009 15:02:59 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Dateisysteme]]></category>
		<category><![CDATA[USB-Stick]]></category>
		<guid isPermaLink="false">http://linuxundich.de/de/?p=1286</guid>

					<description><![CDATA[U3 lässt sich von einem USB-Stick entfernen – mit dem Tool des Konsortiums für Windows und Mac. Unter Linux gibt es dafür kein Programm.]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Eine Bekannte von mir hat einen <a href="https://de.wikipedia.org/wiki/U3">U3-Speicherstick</a> angeschleppt, der sie immer nervte, wenn sie ihn an den Rechner angeschlossen hat. Ich hatte nun den &#8222;Job&#8220; die Nerverei abzustellen&#8230; In den Kommentaren von <a href="https://linuxundich.de/ein-richtiger-usb-schlussel/">Ein richtiger USB-Schlüssel</a> tauchte ja die Frage auf, ob sich U3 vom Stick entfernen lässt. Die Antwort ist: Ja, aber&#8230; Das Konsortium rund um U3 bietet ein Tool für Windows und Mac zum <a href="https://web.archive.org/web/20090505204243/http://u3.com/support/default.aspx#CQ3">Download</a> an, mit dem man das ROM des Sticks löschen kann, so dass U3 nicht mehr nervt. Aber, obwohl der Stick mit 8GB ausgezeichnet ist, so hat er nur 7,5GB&#8230; Für Linux selber gibt es wohl leider kein Programm. [UPDATE 30.11.2011: Die Domain u3.com wurde wohl komplett verkauft. Bei <a href="http://u3.sandisk.com/">Sandisk</a> findet sich das Tool jedoch noch.]</p>
<figure data-wp-context="{&quot;imageId&quot;:&quot;6ad737de7aa71&quot;}" data-wp-interactive="core/image" data-wp-key="6ad737de7aa71" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="504" height="394" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2009/05/u3uninstall1.png" alt="U3 Launchpad entfernen" class="wp-image-1288" style="width:100%"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">U3 Launchpad entfernen</figcaption></figure>
<p class="wp-block-paragraph">Was recht eigenartig ist, dass das Programm ein paar Minuten lang behauptet, dass es in wenigen Sekunden fertig sei und dass man auf keinen Fall den Vorgang unterbrechen sollte.</p>
<figure data-wp-context="{&quot;imageId&quot;:&quot;6ad737de7be21&quot;}" data-wp-interactive="core/image" data-wp-key="6ad737de7be21" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" width="504" height="394" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2009/05/u3uninstall2.png" alt="Der Deinstaller meint x-mal nur noch 8 Sekunden zu brauchen..." class="wp-image-1287" style="width:100%"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Der Deinstaller meint x-mal nur noch 8 Sekunden zu brauchen&#8230;</figcaption></figure>
<p class="wp-block-paragraph">Nun gut, ich hab brav gewartet und nach ein paar Minuten war der Stick dann auch formatiert. Nicht schön ist, dass der Windows Explorer diesen Vorgang nicht so toll findet und sich nach dem Formatieren des Sticks aufhängt, aber was soll ich auf einem Linux-Blog über Windows lästern <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Richtig nett ist auch, dass Windows mich den Stick nicht mit NTFS formatieren lässt&#8230; Aber wozu hat man gparted.</p>

<hr><p>☕ <strong>Linux und Ich unterstützen</strong><br>Danke, dass du <a href="https://linuxundich.de">Linux und Ich</a> liest. Wenn dir das Blog gefällt und du meine Arbeit unterstützen möchtest, findest du weitere Informationen auf der <a href="https://linuxundich.de/spendiere-einen-kaffee/">Blogspende-Seite</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/u3-autostart-von-einem-usb-speicherstick-loschen/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Ext4 noch nicht reif für den Desktop!</title>
		<link>https://linuxundich.de/ext4-noch-nicht-reif-fur-den-desktop/</link>
					<comments>https://linuxundich.de/ext4-noch-nicht-reif-fur-den-desktop/#comments</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Fri, 06 Mar 2009 23:31:15 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Dateisysteme]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">http://christoph-langner.de/de/?p=685</guid>

					<description><![CDATA[Nach einem Absturz waren unter Ext4 reihenweise Dateien null Byte groß. Warum das Dateisystem 2009 noch nicht auf den Desktop gehörte.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ubuntu Jaunty Jackalope 9.04 bringt Unterstützung für das neue Dateisystem Ext4 mit und ab Ubuntu Karmic Koala 9.10 wird Ext4 vielleicht auch Standard. Von daher werden viele User sicherlich das neue Dateisystem – gerade weil es eine sehr hohe Performance verspricht – ausprobieren. Doch scheint es <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/317781">gravierende Probleme</a> mit Ext4 zu geben. Ich zitiere mal aus dem Bugreport&#8230;</p>



<span id="more-685"></span>



<p class="has-cyan-bluish-gray-background-color has-background wp-block-paragraph"><strong>UPDATE:</strong> Leser dieses Artikels sollten bedenken, dass sich das Rad der Geschichte immer weiterdreht. Zum Zeitpunkt der Erstellung des Beitrages waren diese Informationen korrekt, doch mittlerweile kann man beruhigt zu Ext4 greifen. Die im Beitrag genannten Patches haben es sogar noch in den Kernel von Ubuntu Jaunty geschafft. Ext4 IST in der Zwischenzeit reif für den Desktop geworden!</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">I recently installed Kubuntu Jaunty on a new drive, using Ext4 for all my data.</p>



<p class="wp-block-paragraph">The first time i had this problem was a few days ago when after a power loss ktimetracker&#8217;s config file was replaced by a 0 byte version . No idea if anything else was affected.. I just noticed ktimetracker right away.</p>



<p class="wp-block-paragraph">Today, I was experimenting with some BIOS settings that made the system crash right after loading the desktop. After a clean reboot pretty much any file written to by any application (during the previous boot) was 0 bytes. For example Plasma and some of the KDE core config files were reset. Also some of my MySQL databases were killed…</p>
</blockquote>



<p class="wp-block-paragraph">Es ist auch kein &#8222;Ubuntu-Problem&#8220;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">I thought it was worth adding this, even though I&#8217;m running Gentoo, it seems to be exactly the same issue:</p>



<p class="wp-block-paragraph">I recently upgraded to ext4 as well, I ran a game in Wine and the system hardlocked (nothing special there with the fglrx drivers). After rebooting all my Wine registry files were 0 bytes, as were many of my Gnome configuration files. Absoloute nightmare. fsck on boot said that it had removed 760+ orphaned inodes.</p>
</blockquote>



<p class="wp-block-paragraph">Um es kurz zusammenzufassen: Sollte ein Rechner mit Ext4 Partitionen abstürzen oder ihm der Saft ausgehen, so droht massiver Datenverlust. Die Gefahr bei einem Crash Daten zu verlieren ist deutlich höher als bei Ext3. Das Problem ist massiv und bedarf sowohl Änderungen am Kernel wie auch Änderungen an der Art und Weise wie Anwendungen Daten ablegen. <a href="https://bugs.launchpad.net/~tytso">Theodore</a> <a href="https://de.wikipedia.org/wiki/Theodore_Ts%27o">Ts&#8217;o</a> – einer der bekanntesten Entwickler des Linux-Kernels – fasst das Problem <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/317781/comments/45">hier</a> sehr gut zusammen.</p>



<p class="wp-block-paragraph">Ext4 mag reif für Serversysteme sein, denen dank USV sicherlich nie der Strom ausgeht. Doch man sollte es sich mehr als zweimal überlegen Ext4 auf einem Notebook oder Desktop einzusetzen, denen dank proprietärer Treiber und experimentierfreudiger User der eine oder andere Absturz droht!</p>

<hr><p>☕ <strong>Linux und Ich unterstützen</strong><br>Danke, dass du <a href="https://linuxundich.de">Linux und Ich</a> liest. Wenn dir das Blog gefällt und du meine Arbeit unterstützen möchtest, findest du weitere Informationen auf der <a href="https://linuxundich.de/spendiere-einen-kaffee/">Blogspende-Seite</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/ext4-noch-nicht-reif-fur-den-desktop/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
			</item>
	</channel>
</rss>
