<?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>sveshnikov.ru - это наилучший источник информации по теме unix perl shell и всего такого &#187; par2</title>
	<atom:link href="http://alexey.sveshnikov.ru/blog/tag/par2/feed/" rel="self" type="application/rss+xml" />
	<link>http://alexey.sveshnikov.ru/blog</link>
	<description>bookmarks-on-tranquilizers</description>
	<lastBuildDate>Tue, 25 May 2010 20:30:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Заговор от битых кластеров (добавляем информацию для восстановления архивов с помощью par2)</title>
		<link>http://alexey.sveshnikov.ru/blog/2008/04/10/broken-cd-parchive/</link>
		<comments>http://alexey.sveshnikov.ru/blog/2008/04/10/broken-cd-parchive/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 22:08:11 +0000</pubDate>
		<dc:creator>Alexey Sveshnikov</dc:creator>
				<category><![CDATA[UNIX]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[dd_rescue]]></category>
		<category><![CDATA[par2]]></category>
		<category><![CDATA[parchive]]></category>

		<guid isPermaLink="false">http://alexey.sveshnikov.ru/blog/2008/04/10/%d0%b7%d0%b0%d0%b3%d0%be%d0%b2%d0%be%d1%80-%d0%be%d1%82-%d0%b1%d0%b8%d1%82%d1%8b%d1%85-%d0%ba%d0%bb%d0%b0%d1%81%d1%82%d0%b5%d1%80%d0%be%d0%b2-%d0%b4%d0%be%d0%b1%d0%b0%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc/</guid>
		<description><![CDATA[В этой заметке я предложу способ чтения данных с поцарапанных, погрызанных собакой или обработанных шредером компакт-дисков. Итак, к делу: регулярно, при записывании данных на диск, остается некоторое количество свободного места. Лет 5 назад можно было положить диск на полочку, пометив, что еще 30 мегабайт можно забить каким-нибудь хламом, но сейчас стоимость болванки &#8211; 10 рублей, [...]]]></description>
			<content:encoded><![CDATA[<p>В этой заметке я предложу способ чтения данных с поцарапанных, погрызанных собакой или обработанных шредером компакт-дисков. </p>
<p>Итак, к делу: регулярно, при записывании данных на диск, остается некоторое количество свободного места. Лет 5 назад можно было положить диск на полочку, пометив, что еще 30 мегабайт можно забить каким-нибудь хламом, но сейчас стоимость болванки &#8211; 10 рублей, такой аргумент не действует. И, соответственно, привычку оставлять место &#8220;на потом&#8221; надо искоренять. Мне кажется, наиболее разумным было бы добавить на диск данные для восстановления &#8211; т.н. корректирующие коды Рида-Соломона, которые могут пригодится в случае, если диск будет поврежден.</p>
<p>Собственно весь заговор выглядит следующим образом:<br />
<code>#sudo aptitude install par2<br />
#man par2<br />
#cd backups<br />
#ls<br />
dump.sql.gz<br />
#par2 create -v -r10 -n1 -m500 dump.sql.gz<br />
#ls<br />
dump.sql.gz  dump.sql.gz.par2  dump.sql.gz.vol000+100.par2</code></p>
<p>Эта команда добавит 10% избыточной информации к данным, запишет все это в один файл, при этом программе par2 разрешено использовать 500 мегабайт оперативной памяти. Файлы *.par2 следует записать на диск вместе с дампом. </p>
<p>Мне эта программа понравилась, я захотел ее проверить в боевых условиях. Сделал архив размером около 400 Мб, добавил данные для восстановления &#8211;  еще 200Мб &#8211; *.par2 файлы (50% избыточность, по умолчанию &#8211; 5%). Все это я записал на CD-RW, в котором потом сделал, простите, дырку. В итоге стандартными средствами удавалось прочитать только первые 150 Кб данных. Чтобы восстановить файл нужно сначала все считать пускай с ошибками &#8211; для этого есть программа dd_rescue, которая является практчески полным аналогом dd с одним исключением &#8211; она умеет игнорировать ошибки чтения:</p>
<p><img src='http://alexey.sveshnikov.ru/blog/wp-content/uploads/2008/04/dsc_0001_1.jpg' alt='диск с дыркой' align="right" width="240"/></p>
<p><code>#sudo dd_rescue -Av -b 1048576 -B 1048576 /dev/scd0 brokencd.iso</code>(-A &#8211; заполняь нулями те участки файла, которые считать не удалось, v &#8211; verbose, -b &#8211; размер блока данных, -B &#8211; размер блока данных для проблемных областей диска)<br />
<code># sudo mount -o loop brokencd.iso mnt # монтируем получившийся образ диска<br />
# cp mnt/* dump; cd dump # копируем содержимое<br />
# par2 r archive.par2 # приводим в изначальный вид</code></p>
<p>На этом эксперимент завершился &#8211; все данные с диска восстановлены. Даже скучно.<br />
Но пример, мне кажется, весьма красноречив :)</p>
]]></content:encoded>
			<wfw:commentRss>http://alexey.sveshnikov.ru/blog/2008/04/10/broken-cd-parchive/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>
