<?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>Harv.pl &#187; linux</title>
	<atom:link href="http://www.harv.pl/category/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://www.harv.pl</link>
	<description>Mój wycinek Internetu - newsy, przemyślenia, technologie...</description>
	<lastBuildDate>Thu, 29 Jul 2010 19:35:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Dodawanie własnych rozszerzeń do foremost-a</title>
		<link>http://www.harv.pl/dodawanie-wlasnych-rozszerzen-do-foremost-a.html</link>
		<comments>http://www.harv.pl/dodawanie-wlasnych-rozszerzen-do-foremost-a.html#comments</comments>
		<pubDate>Wed, 11 Mar 2009 15:34:46 +0000</pubDate>
		<dc:creator>Harv</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[odzyskiwanie danych]]></category>
		<category><![CDATA[restore]]></category>

		<guid isPermaLink="false">http://www.harv.pl/?p=611</guid>
		<description><![CDATA[Tak jak obiecałem w moim poprzednim tekście o odzyskiwaniu danych z partycji ext3, podzielę się kilkoma swoimi doświadczeniami z używania foremost-a. Jak już pisałem wcześniej, Foremost standardowo obsługuje tylko najbardziej popularne formaty plików. Problem pojawia się w momencie, gdy zginie nam coś bardziej nietypowego. W moim przypadku, były to pliki psd. Po krótkim poczytaniu manuala [...]]]></description>
			<content:encoded><![CDATA[<p>Tak jak obiecałem w moim poprzednim <a href="http://www.harv.pl/2009/03/odzyskiwanie-danych-w-ext3/">tekście o odzyskiwaniu danych z partycji ext3</a>, podzielę się kilkoma swoimi doświadczeniami z używania foremost-a.</p>
<p>Jak już pisałem wcześniej, Foremost standardowo obsługuje tylko najbardziej popularne formaty plików. Problem pojawia się w momencie, gdy zginie nam coś bardziej nietypowego. W moim przypadku, były to pliki psd. Po krótkim poczytaniu manuala postanowiłem sobie dodać ten format do definicji foremost-a. Aby to zrobić należy wyedytować standardowy plik konfiguracyjny (domyślnie /etc/foremost.conf). Bezpośrednio po instalacji wszystkie obsługiwane typy plików są zakomentowane, w takim przypadku foremost wykonuje wyszukiwanie za pomocą wbudowanych filtrów.  Przejdźmy jednak do rzeczy. Proces dodawania nowego rozszerzenia opiszę na przykładzie w/w pliku psd.  Oto co musiałem dodać, żeby foremost rozpoznawał ten format: </p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">psd     y       <span style="color: #000000;">10000000</span>      \x38\x42\x50\x53</pre></div></div>

<p>Od lewej: rozszerzenie, czy wielkość liter ma znaczenie, wielkość pliku , nagłówek. Można jeszcze dodać stopkę pliku, jednak przy psd nie byłem w stanie takowej stwierdzić. Pierwsze trzy pozycje myślę, że są jasne i nie wymagają szerszego omówienia. Ale skąd wziąc informacje do wypełnienia czwartek i ewentualnie piątej pozycji ? </p>
<p>Ja w tym celu posłużyłem się hexeditorem, wrzucałem do niego kolejno kilka plików z rozszerzeniem psd i szukałem elementów wspólnych. Okazało się, że wszystkie zaczyną się tak samo:<a href="http://www.harv.pl/a/wp-content/uploads/2009/03/hex.jpg"><img class="aligncenter size-medium wp-image-612" title="hex" src="http://www.harv.pl/a/wp-content/uploads/2009/03/hex-300x180.jpg" alt="hex" width="300" height="180" /></a></p>
<p>Zgodnie z manualem każdą z wartości hexadecymalnch poprzecamy znakiem &#8222; x &#8221; , a poszczególne zapisy oddzielamy za pomocą &#8221; \ &#8221; . Dopuszczalne są też symbole maski &#8211; &#8221; * &#8221; dla wielu i &#8221; ? &#8221; dla pojedynczego znaku.  </p>
<p>Jeśli format plików, który dodajemy posiada też jakąś standardową stopkę, dodajemy ją po definicji nagłówka oddzielając je tabulatorem. </p>
<p>Skuteczność nie jest stuprocentowa, ale udało mi się odzyskać kilka wyjątkowo mi potrzebnych plików. Zachęcam do eksperymentów, byćmoże da się ten pattern udoskonalić.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harv.pl/dodawanie-wlasnych-rozszerzen-do-foremost-a.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Odzyskiwanie danych w ext3</title>
		<link>http://www.harv.pl/odzyskiwanie-danych-w-ext3.html</link>
		<comments>http://www.harv.pl/odzyskiwanie-danych-w-ext3.html#comments</comments>
		<pubDate>Mon, 09 Mar 2009 15:38:03 +0000</pubDate>
		<dc:creator>Harv</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[ext3]]></category>
		<category><![CDATA[odzyskiwanie danych]]></category>
		<category><![CDATA[restore]]></category>

		<guid isPermaLink="false">http://www.harv.pl/?p=580</guid>
		<description><![CDATA[Na wstępie chciałem zaznaczyć, że nie czuję się mega ekspertem w sprawach linuxowych systemów operacyjnych i ratowania danych. Jednak dzięki Wizard Mounterowi wyparowało mi trochę danych, przez co nabyłem trochę doświadczenia w tej materii. Stąd pomysł, żeby conieco napisać.  Pierwsza, podstawowa zasada w tej trudnej sytuacji &#8211; nie panikować. Google na pierwszy rzut oka nie [...]]]></description>
			<content:encoded><![CDATA[<p>Na wstępie chciałem zaznaczyć, że nie czuję się mega ekspertem w sprawach linuxowych systemów operacyjnych i ratowania danych. Jednak dzięki <a href="http://www.harv.pl/2009/03/krytyczny-bug-w-wizard-mounterze/">Wizard Mounterowi wyparowało mi trochę danych</a>, przez co nabyłem trochę doświadczenia w tej materii. Stąd pomysł, żeby conieco napisać. </p>
<p>Pierwsza, podstawowa zasada w tej trudnej sytuacji &#8211; <strong>nie panikować</strong>. Google na pierwszy rzut oka nie nastraja pozytywnie, w różnych FAQ wyczytamy, że w ext3 nie ma undelete, i że się nie da odzyskiwać danych. Nie jest to do końca prawda. Metoda, którą opisze poniżej, nie jest idealna, ale u mnie zadziałała całkiem nieźle. </p>
<p>Krok pierwszy po utracie danych to podmontowanie dysku z którego zniknęły dane w trybie read only, żebyśmy niczego sobie przez przypadek nie nadpisali. Np. następującym poleceniem</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: #660033;">-o</span> remount,ro <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>nasz dysk<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

<p>Teraz już jesteśmy relatywnie bezpieczni i więcej szkody już sobie nie wyrządzimy.  Do dalszej pracy będziemy potrzebowali dwóch narzędzi <em>debugfs</em> oraz <em>Sleuth Kit</em>. Ten pierwszy raczej jest dość powszechnie instalowany domyślnie. <em>Sleuth Kit</em> możemy doinstalować, np. w debianopochonych systemach komendą</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> sleuthkit</pre></div></div>

<p>Krok drugi, &#8222;podpinamy&#8221; się debugiem pod nasz system plików</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># debugfs /dev/[nasz dysk]</span>
&nbsp;
debugfs <span style="color: #000000;">1.40</span>-WIP <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">14</span>-Nov-<span style="color: #000000;">2006</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
debugfs:</pre></div></div>

<p>Teoretycznie da się w debugfs zmieniać swobodnie katalogi używając komendy <em>cd</em>, próbowałem na różne sposoby, i zawsze pluło errorami. Ale cóż, bez tego też można żyć. Aby wylistować zawrtość dysku używamy: </p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">debugfs:  <span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-d</span></pre></div></div>

<p>Wynikiem są  takie ciągi :<br />
<code> &lt;32705> (16) Filmy </code><br />
W nawiasach jest zawarty numer inode, będzie nam on potrzebny do zlokalizowania danych fizycznie na dysku. W tym celu wpisujemy<br />
<code> debugfs: imap &lt;32705></code><br />
I otrzymujemy coś takiego:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Inode <span style="color: #000000;">32705</span> is part of block group <span style="color: #000000;">1</span>
&nbsp;
        located at block <span style="color: #000000;">32780</span>, offset 0x0000</pre></div></div>

<p>Stąd wiemy, że folder <em>Filmy</em> należy do grupy pierwszej.  Wychodzimy z debugfs (komenda <em>q</em> ). Teraz trzeba się dowiedzieć jakie bloki należą do grupy 1.  Do tego celu użyjemy narzędzia fsstat. Przy dużych dyskach wynik może być zbyt długi, żeby się &#8222;zmieścić&#8221; w konsoli zatem wrzucimy go do pliku:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># fsstat /dev/[nasz dysk] &gt; fs </span></pre></div></div>

<p>Otwieramy plik fs, i szukamy interesującej nas grupy. </p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Group: <span style="color: #000000;">1</span>:
&nbsp;
  Inode Range: <span style="color: #000000;">32705</span> - <span style="color: #000000;">65408</span>
&nbsp;
  Block Range: <span style="color: #000000;">32768</span> - <span style="color: #000000;">65535</span></pre></div></div>

<p>Skoro już wiemy gdzie fizycznie, leżą nasze dane. Zrzućmy sobie ten obszar pamięci do pliku:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># dls /dev/hdb5 32768 - 65535 &gt; /tmp/raw_data</span></pre></div></div>

<p>Oczywiście zakładam, że /tmp jest na innej partycji/dysku niż /dev/hdb5.  </p>
<p>Gdy już mamy gotowy plik źródłowy, czas wyszukać nasze pliki. Pomoże nam tu pakiet foremost, służy on do wyszukiwania nagłówków plików, domyślnie obsługuje kilkanaście formatów obrazów (jpg, png, tif,) , plików skompresowanych (zip), dokumentów worda, pdf itp. Do dzieła. W konsoli wpisujemy:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># foremost -d -i /tmp/raw_data  -o /tmp/restore</span></pre></div></div>

<p>W zależności od tego jak duży był plik źródłowy po kilku/kilkunastu minutach w katalogu /tmp/restore znajdziemy wszystkie pliki, pokatalogowane według typu, które foremostowi udało się dopasować.  Niestety pojedyncze pliki nazywane są kolejnymi numerami, więc przy większej ilości zagubionych danych czeka nas żmudne przeglądanie i zmienianie nazw plików.</p>
<p>Jak już pisałem metoda nie jest idealna, ale za to relatywnie łatwa w implementacji i raczej skuteczna. W następnym odcinku opiszę trochę samego foremosta i kilka słów jak dodawać swoje sygnatury plików.</p>
<p><strong>Oczywiście wszystkie powyższe czynności wykonujesz na własną odpowiedzialność. Nie daję gwarancji, że u Ciebie to zadziała.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.harv.pl/odzyskiwanie-danych-w-ext3.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
