<?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>گنجه &#187; لوح سخت</title>
	<atom:link href="http://blog.ebrahim.ir/tag/hard-disk/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ebrahim.ir</link>
	<description># tail -f /var/log/experience</description>
	<lastBuildDate>Wed, 25 Aug 2010 22:16:39 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>روشی برای تسریع dpkg</title>
		<link>http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/</link>
		<comments>http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 00:56:15 +0000</pubDate>
		<dc:creator>ابراهیم</dc:creator>
				<category><![CDATA[رایانه]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[BASH]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[dpkg]]></category>
		<category><![CDATA[Ext4]]></category>
		<category><![CDATA[ReiserFS]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Tokyo Cabinet]]></category>
		<category><![CDATA[بهینه‌سازی]]></category>
		<category><![CDATA[سامانهٔ عامل]]></category>
		<category><![CDATA[سامانهٔ پرونده]]></category>
		<category><![CDATA[لوح سخت]]></category>
		<category><![CDATA[لینوکس]]></category>
		<category><![CDATA[محک‌زنی]]></category>
		<category><![CDATA[کارآیی]]></category>

		<guid isPermaLink="false">http://blog.ebrahim.ir/?p=292</guid>
		<description><![CDATA[همون طور که احتمالاً می‌دونید dpkg توساخت0 مدیریت بسته‌ها1 در Debian است. یعنی APT و Synaptic و Aptitude و &#8230; همه روی dpkg بنا شده اند. dpkg برای نگه‌داری بعضی اطلاعات بسته‌های نصب‌شده، از تعداد زیادی (برای من حدود ۹۰۰۰ تا) پروندهٔ2 کوچک توی مسیر ‎/var/lib/dpkg/info استفاده می‌کنه. هر بار که بسته‌ای رو نصب یا [...]]]></description>
			<content:encoded><![CDATA[<p><!--startnum=0--></p>
<p>همون طور که احتمالاً می‌دونید dpkg توساخت<sup><a href="http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#footnote_0_292" id="identifier_0_292" class="footnote-link footnote-identifier-link" title="Back-end">0</a></sup> مدیریت بسته‌ها<sup><a href="http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#footnote_1_292" id="identifier_1_292" class="footnote-link footnote-identifier-link" title="Package management">1</a></sup> در Debian است. یعنی APT و Synaptic و Aptitude و &#8230; همه روی dpkg بنا شده اند.</p>
<p>dpkg برای نگه‌داری بعضی اطلاعات بسته‌های نصب‌شده، از تعداد زیادی (برای من حدود ۹۰۰۰ تا) پروندهٔ<sup><a href="http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#footnote_2_292" id="identifier_2_292" class="footnote-link footnote-identifier-link" title="File">2</a></sup> کوچک توی مسیر ‎/var/lib/dpkg/info استفاده می‌کنه. هر بار که بسته‌ای رو نصب یا حذف می‌کنید dpkg همهٔ اون پرونده‌ها رو از روی لوح<sup><a href="http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#footnote_3_292" id="identifier_3_292" class="footnote-link footnote-identifier-link" title="Disk">3</a></sup> می‌خونه. این کار روی سامانهٔ پروندهٔ<sup><a href="http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#footnote_4_292" id="identifier_4_292" class="footnote-link footnote-identifier-link" title="File system">4</a></sup> مورد استفادهٔ من، که Ext4 هست، اولین بار بیست-سی ثانیه‌ای طول می‌کشه، که برای من مدت زیادی هست. این کار در دفعات بعدی به علت قرار گرفتن همهٔ اون پرونده‌ها در نهان‌گاه<sup><a href="http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#footnote_5_292" id="identifier_5_292" class="footnote-link footnote-identifier-link" title="Cache">5</a></sup> سامانهٔ پرونده در حافظهٔ اصلی، بسیار سریع‌تر انجام می‌شه، تا وقتی که دوباره از نهان‌گاه خارج بشند.</p>
<p>این مشکل هر از گاهی یک سیخی بهم می‌زد و روی اعصابم راه می‌رفت. فکرهای مختلفی برای حلش به ذهنم رسید. از بسیار پیچیده، مثل طراحی و پیاده‌سازی مجدد dpkg روی Tokyo Cabinet یا SQLite، تا بسیار ساده:</p>
<p>شاید بدونید که سامانهٔ پروندهٔ ReiserFS در کار با پرونده‌های کوچک بسیار عالی عمل می‌کنه. علتش هم استفاده از فن «ته‌چِپانی»<sup><a href="http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#footnote_6_292" id="identifier_6_292" class="footnote-link footnote-identifier-link" title="Tail packing">6</a></sup> است.<sup><a href="http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#footnote_7_292" id="identifier_7_292" class="footnote-link footnote-identifier-link" title="http://en.wikipedia.org/wiki/ReiserFS#Performance">7</a></sup> فکر کردم شاید اگر پوشهٔ  ‎/var/lib/dpkg/info رو توی ReiserFS نگه دارم، مشکل حل بشه. این کار رو کردم، ولی به خاطر کارکرد<sup><a href="http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#footnote_8_292" id="identifier_8_292" class="footnote-link footnote-identifier-link" title="Mechanism">8</a></sup> داخلی dpkg روی کل ‎/var/lib/dpkg:</p>

<div class="wp_syntax" dir="ltr"><div class="code"><pre class="none" style="font-family:monospace;">$ sudo su -
# cd /var/lib
# tar cpzf dpkg.tar.gz dpkg
# dd if=/dev/zero of=dpkg.reiserfs bs=$((256*1024*1024)) count=1
# mkreiserfs -f dpkg.reiserfs
# mount -oloop dpkg.reiserfs dpkg
# tar xpf dpkg.tar.gz</pre></div></div>

<p>و بعد آزمودن و دائمی کردن با افزودن به fstab‏:</p>

<div class="wp_syntax" dir="ltr"><div class="code"><pre class="none" style="font-family:monospace;"># echo 3 &gt;/proc/sys/vm/drop_caches
# apt-get install hello
# apt-get purge hello
# echo /var/lib/dpkg.reiserfs /var/lib/dpkg reiserfs loop,noatime 0 1 &gt;&gt;/etc/fstab</pre></div></div>

<p>فکره جواب داد و سرعت dpkg بسیار به‌تر شد. حالا حتی اولین بار هم dpkg اون کار رو در دو-سه ثانیه انجام می‌ده.</p>
<p>علاوه بر مهارت ReiserFS در کار با پرونده‌های کوچک، چند نکتهٔ دیگه هم قابل ذکر هست. یکی این که Ext4 به علت فن «حوزه»<sup><a href="http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#footnote_9_292" id="identifier_9_292" class="footnote-link footnote-identifier-link" title="Extent">9</a></sup> در کار با پرونده‌های نسبتاً بزرگی که یک‌جا تخصیص<sup><a href="http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#footnote_10_292" id="identifier_10_292" class="footnote-link footnote-identifier-link" title="Allocation">10</a></sup> می‌یابند بسیار سریع هست. برای همین به dd گفتم که کل پرونده رو یک‌جا بسازه.</p>
<p>از طرفی چون، در نتیجهٔ نکتهٔ قبل، کل پرونده‌های مربوط به dpkg روی لوح نزدیک به هم قرار می‌گیرند و پراکنده نیستند، با خونده شدن یک پرونده از اون حوالی، تعداد زیادی از بقیه‌شون هم توی نهان‌گاه لوح و تعدادی هم توی نهان‌گاه سامانهٔ پرونده قرار می‌گیرند. همین امر باعث می‌شه کلی زمان جویش<sup><a href="http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#footnote_11_292" id="identifier_11_292" class="footnote-link footnote-identifier-link" title="Seek">11</a></sup> که قبلاً برای رسیدن به پرنده‌های پراکنده در اطراف و اکناف لوح هدر می‌رفت، صرفه‌جویی بشه.</p>
<p>به گزینهٔ<sup><a href="http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/#footnote_12_292" id="identifier_12_292" class="footnote-link footnote-identifier-link" title="Option">12</a></sup> noatime در fstab هم دقت کنید. رفتار معمولی سامانه‌های پرونده این هست که در هر دست‌رسی (اعم از خواندن یا نوشتن) به یک پرونده، زمان دست‌رسی رو ذخیره می‌کنند. این خیلی بده! هر دست‌رسی = حداقل یک عمل نوشتن روی لوح، و عمل نوشتن هم معمولاً کندتر از خوندن هست. نکته این جاست که برنامه‌های رایج امروزی معمولاً روی اون زمان ثبت‌شده برای آخرین دست‌رسی حساب نمی‌کنند و عملاً اون عدد بی‌استفاده است! گزینهٔ noatime به سامانهٔ پرونده می‌گه که کلاً قید ثبت اون زمان رو بزنه و به این ترتیب کلی عمل نوشتن صرفه‌جویی کنه.</p>
<ol start="0" class="footnotes"><li id="footnote_0_292" class="footnote">Back-end</li><li id="footnote_1_292" class="footnote">Package management</li><li id="footnote_2_292" class="footnote">File</li><li id="footnote_3_292" class="footnote">Disk</li><li id="footnote_4_292" class="footnote">File system</li><li id="footnote_5_292" class="footnote">Cache</li><li id="footnote_6_292" class="footnote">Tail packing</li><li id="footnote_7_292" class="footnote">http://en.wikipedia.org/wiki/ReiserFS#Performance</li><li id="footnote_8_292" class="footnote">Mechanism</li><li id="footnote_9_292" class="footnote">Extent</li><li id="footnote_10_292" class="footnote">Allocation</li><li id="footnote_11_292" class="footnote">Seek</li><li id="footnote_12_292" class="footnote">Option</li></ol>]]></content:encoded>
			<wfw:commentRss>http://blog.ebrahim.ir/1388/07/a-technique-for-speeding-up-dpkg/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>جادوی یخ‌زن</title>
		<link>http://blog.ebrahim.ir/1388/02/magic-of-freezer/</link>
		<comments>http://blog.ebrahim.ir/1388/02/magic-of-freezer/#comments</comments>
		<pubDate>Fri, 08 May 2009 19:16:55 +0000</pubDate>
		<dc:creator>ابراهیم</dc:creator>
				<category><![CDATA[رایانه]]></category>
		<category><![CDATA[خرابی]]></category>
		<category><![CDATA[لوح سخت]]></category>
		<category><![CDATA[لوح لغزان]]></category>
		<category><![CDATA[یخ‌زن]]></category>

		<guid isPermaLink="false">http://blog.ebrahim.ir/?p=276</guid>
		<description><![CDATA[چندی پیش در این مورد نوشته بودم که چگونه به کمک یخ‌زن0، لوح سختی1 احیا شد. چند روز بعدش یکی از دوستان پیامک2 زد که به همون روش، یک لوح لغزان3 رو احیا کرده! جالب‌تر این که چند روز پیش، یک MP3پخش‌کن4 که چند سالی بود کار نمی‌کرد، به همون روش احیا شد!!! FreezerHard diskSMSFloppy [...]]]></description>
			<content:encoded><![CDATA[<p><!--startnum=0--></p>
<p>چندی پیش در این مورد <a href="http://blog.ebrahim.ir/1388/01/reviving-hard-disk/">نوشته بودم</a> که چگونه به کمک یخ‌زن<sup><a href="http://blog.ebrahim.ir/1388/02/magic-of-freezer/#footnote_0_276" id="identifier_0_276" class="footnote-link footnote-identifier-link" title="Freezer">0</a></sup>، لوح سختی<sup><a href="http://blog.ebrahim.ir/1388/02/magic-of-freezer/#footnote_1_276" id="identifier_1_276" class="footnote-link footnote-identifier-link" title="Hard disk">1</a></sup> احیا شد.<br />
چند روز بعدش یکی از دوستان پیامک<sup><a href="http://blog.ebrahim.ir/1388/02/magic-of-freezer/#footnote_2_276" id="identifier_2_276" class="footnote-link footnote-identifier-link" title="SMS">2</a></sup> زد که به همون روش، یک لوح لغزان<sup><a href="http://blog.ebrahim.ir/1388/02/magic-of-freezer/#footnote_3_276" id="identifier_3_276" class="footnote-link footnote-identifier-link" title="Floppy disk">3</a></sup> رو احیا کرده!<br />
جالب‌تر این که چند روز پیش، یک MP3پخش‌کن<sup><a href="http://blog.ebrahim.ir/1388/02/magic-of-freezer/#footnote_4_276" id="identifier_4_276" class="footnote-link footnote-identifier-link" title="MP3 player">4</a></sup> که چند سالی بود کار نمی‌کرد، به همون روش احیا شد!!!</p>
<ol start="0" class="footnotes"><li id="footnote_0_276" class="footnote">Freezer</li><li id="footnote_1_276" class="footnote">Hard disk</li><li id="footnote_2_276" class="footnote">SMS</li><li id="footnote_3_276" class="footnote">Floppy disk</li><li id="footnote_4_276" class="footnote">MP3 player</li></ol>]]></content:encoded>
			<wfw:commentRss>http://blog.ebrahim.ir/1388/02/magic-of-freezer/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>احیای لوح سخت</title>
		<link>http://blog.ebrahim.ir/1388/01/reviving-hard-disk/</link>
		<comments>http://blog.ebrahim.ir/1388/01/reviving-hard-disk/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 22:52:59 +0000</pubDate>
		<dc:creator>ابراهیم</dc:creator>
				<category><![CDATA[رایانه]]></category>
		<category><![CDATA[PowerMax]]></category>
		<category><![CDATA[SMART]]></category>
		<category><![CDATA[آزمون]]></category>
		<category><![CDATA[ابزار]]></category>
		<category><![CDATA[اینترنت]]></category>
		<category><![CDATA[خرابی]]></category>
		<category><![CDATA[راه‌اندازی]]></category>
		<category><![CDATA[لوح سخت]]></category>
		<category><![CDATA[موعظه]]></category>
		<category><![CDATA[یخ‌زن]]></category>

		<guid isPermaLink="false">http://blog.ebrahim.ir/?p=242</guid>
		<description><![CDATA[این مطلب در مورد زنده کردن لوح‌های سخت‌شدهٔ دل‌هامون به کمک موعظه یا چیزی شبیه اون نیست! (البته متأسفانه) لوح سختی0 دارم که خراب شده بود. وقتی رایانه1 رو روشن می‌کردم، هی سعی می‌کرد راه بیفته ولی موفق نمی‌شد و اصلاً دور بر نمی‌داشت2. در نتیجه رایانه هم همون اول کار، توی مرحلهٔ شناسایی لوح‌های [...]]]></description>
			<content:encoded><![CDATA[<p><!--startnum=0--></p>
<p>این مطلب در مورد زنده کردن لوح‌های سخت‌شدهٔ دل‌هامون به کمک موعظه یا چیزی شبیه اون نیست! (البته متأسفانه)</p>
<p>لوح سختی<sup><a href="http://blog.ebrahim.ir/1388/01/reviving-hard-disk/#footnote_0_242" id="identifier_0_242" class="footnote-link footnote-identifier-link" title="Hard Disk">0</a></sup> دارم که خراب شده بود. وقتی رایانه<sup><a href="http://blog.ebrahim.ir/1388/01/reviving-hard-disk/#footnote_1_242" id="identifier_1_242" class="footnote-link footnote-identifier-link" title="Computer">1</a></sup> رو روشن می‌کردم، هی سعی می‌کرد راه بیفته ولی موفق نمی‌شد و اصلاً دور بر نمی‌داشت<sup><a href="http://blog.ebrahim.ir/1388/01/reviving-hard-disk/#footnote_2_242" id="identifier_2_242" class="footnote-link footnote-identifier-link" title="این&zwnj;ها رو با لمس کردن لوح سخت می&zwnj;شه فهمید">2</a></sup>. در نتیجه رایانه هم همون اول کار، توی مرحلهٔ شناسایی لوح‌های سخت، گیر می‌کرد و راه‌اندازی<sup><a href="http://blog.ebrahim.ir/1388/01/reviving-hard-disk/#footnote_3_242" id="identifier_3_242" class="footnote-link footnote-identifier-link" title="boot">3</a></sup> نمی‌شد. تقریباً ازش قطع امید کرده بودم.</p>
<p>طبق معمول قبل از هر گونه تصمیم‌گیری، سری به اینترنت زدم تا ببینم ملت در این باره چی گفته‌اند. بعد از کمی جست‌وجو، با راه‌کاری غیرمنتظره مواجه شدم: لوح سخت رو بگذارید تو یخ‌زن<sup><a href="http://blog.ebrahim.ir/1388/01/reviving-hard-disk/#footnote_4_242" id="identifier_4_242" class="footnote-link footnote-identifier-link" title="Freezer">4</a></sup>! بله، <a href="http://www.trap17.com/index.php/hard-drive-freezer-trick_t26193.html">گفته</a> <a href="http://geeksaresexy.blogspot.com/2006/01/freeze-your-hard-drive-to-recover-data.html">بودند</a> که بعد از سرد کردن لوح سخت، باید بلافاصله اون رو به رایانه بزنید. اگر قسمت باشه<sup><a href="http://blog.ebrahim.ir/1388/01/reviving-hard-disk/#footnote_5_242" id="identifier_5_242" class="footnote-link footnote-identifier-link" title="این تیکه&zwnj;اش رو اون&zwnj;ها این&zwnj;جوری نگفته بودند!">5</a></sup> چند دقیقه فرصت دارید تا داده‌های مهم‌ترتون رو بر دارید.</p>
<p>از اون جا که چیز زیادی برای از دست دادن نداشتم، و در ضمن از این جور انگولک‌کردن‌ها خوشم می‌آد، تصمیم گرفتم این کار رو بکنم. لوح سخت رو توی یک کیسه پیچیدم تا برفک نزنه و خیس نشه و بعد داخل یخ‌زن گذاشتم. بعد از چند ساعت که لوح سخت قصهٔ ما حسابی یخ زد، درش آوردم و سریع به رایانه وصلش کردم.</p>
<p>رایانه رو روشن کردم و در کمال ناباوری دیدم داره کار می‌کنه! با نرم‌افزار PowerMax آزمون سریع SMART<sup><a href="http://blog.ebrahim.ir/1388/01/reviving-hard-disk/#footnote_6_242" id="identifier_6_242" class="footnote-link footnote-identifier-link" title="Self-Monitoring, Analysis and Reporting Technology">6</a></sup> رو انجام دادم و دیدم واقعاً سالمه<sup><a href="http://blog.ebrahim.ir/1388/01/reviving-hard-disk/#footnote_7_242" id="identifier_7_242" class="footnote-link footnote-identifier-link" title="کلیدواژه&zwnj;ها رو برای خنده نمی&zwnj;دم! برای این می&zwnj;دم که بتونی باهاش جست&zwnj;وجو کنی">7</a></sup>. با خودم گفتم شاید اگر در حالت خاموش گرم بشه، دوباره به همون روز بیفته. برای همین، رایانه رو خاموش نکردم و گذاشتم لوح سخت دائماً کار کنه تا در حال چرخش گرم بشه، باشد که سالم بمونه. نمی‌دونم کار این فکر بود یا نه، ولی هر چی بود جواب داد! برای این که مطمئن بشم که لوح سخت برای طولانی‌مدت سالم شده، رایانه رو خاموش کردم تا لوح کمی خنک بشه و بعد دوباره روشنش کردم. دوباره آزمودمش و دیدم که سالمه.</p>
<p>برای اطمینان از سلامت داده‌ها، از توی سامانهٔ عامل<sup><a href="http://blog.ebrahim.ir/1388/01/reviving-hard-disk/#footnote_8_242" id="identifier_8_242" class="footnote-link footnote-identifier-link" title="Operating System">8</a></sup>، چند تا پرونده<sup><a href="http://blog.ebrahim.ir/1388/01/reviving-hard-disk/#footnote_9_242" id="identifier_9_242" class="footnote-link footnote-identifier-link" title="File">9</a></sup> رو خوندم و بررسی کردم که شکر خدا سالم بودند.</p>
<p>سپاس خدای راست <img src='http://blog.ebrahim.ir/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<ol start="0" class="footnotes"><li id="footnote_0_242" class="footnote">Hard Disk</li><li id="footnote_1_242" class="footnote">Computer</li><li id="footnote_2_242" class="footnote">این‌ها رو با لمس کردن لوح سخت می‌شه فهمید</li><li id="footnote_3_242" class="footnote">boot</li><li id="footnote_4_242" class="footnote">Freezer</li><li id="footnote_5_242" class="footnote"><span dir="rtl">این تیکه‌اش رو اون‌ها این‌جوری نگفته بودند!</span></li><li id="footnote_6_242" class="footnote">Self-Monitoring, Analysis and Reporting Technology</li><li id="footnote_7_242" class="footnote">کلیدواژه‌ها رو برای خنده نمی‌دم! برای این می‌دم که بتونی باهاش جست‌وجو کنی</li><li id="footnote_8_242" class="footnote">Operating System</li><li id="footnote_9_242" class="footnote">File</li></ol>]]></content:encoded>
			<wfw:commentRss>http://blog.ebrahim.ir/1388/01/reviving-hard-disk/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (user agent is rejected)

Served from: blog.ebrahim.ir @ 2012-02-07 00:23:03 -->
