اکثر افرادی که با لینوکس کار میکنند فکر میکنند نیازی به defrag کردن نیست که این یک اشتباه رایج در میان کاربران لینوکس میباشد. در حقیقت سیستم عامل لینوکس از defragmentation پشتیبانی میکند. defrag کردن هارد به طور قابل ملاحظه ای باعث بهبود عملکرد I/O مثل ویدیوها برای لود سریعتر و یا extract کردن فایل های فشرده میشود.
در لینوکس فایل سیستم های ext2, ext3 و ext4 نیازی به توجه بسیار ندارند، اما با گذشت زمان، بعد از read / write های خیلی، خیلی، خیلی زیاد فایل سیستم نیاز داره بهینه بشه. در غیر اینصورت هارد دیسک ممکن است شروع کنه به کند شدن و ممکنه روی کل سیستم تاثیر بذاره.
در این مقاله قصد دارم به شما تعداد کمی از تکنیک های متفاوت برای انجام دادن defragmentation در فایل ها را نشون بدم. قبل از شروع ما باید ذکر کنیم فایل سیستم های مشابه مانند ext2,3,4 از تکه تکه شدن یا پخش شدن فایل ها جلوگیری میکنند.
فایل سیستم های ذکر شده شامل روش هایی برای جلوگیری از موارد بالا را دارد. برای مثال فایل سیستم های گفته شده گروهی از block های آزاد را در هارد دیسک به صورت کامل برای فایل های در حال رشد reserve میکند.
متاسفانه مشکل با همچنین مکانیزم هایی قابل حل شدن نیست. درحالیکه دیگر سیستم عاملها ممکن است به نرم افزارهای اضافی گران قیمت برای برطرف کردن همچنین مشکلاتی نیاز داشته باشند، لینوکس تا حدودی برای نصب نرم افزارها راحت هست و به شما برای حل همچنین مشکلاتی کمک میکند.
توصیه میشود این مقاله را هم مطالعه کنید :
نحوه پیدا کردن بدسکتور در لینوکس
نحوه بازیابی اطلاعات حذف شده در لینوکس
نحوه استفاده از دستور fsck برای رفع خطاهای فایل سیستم در لینوکس
چطور چک کنیم که فایل سیستم نیازی به Defrag شدن دارد ؟
قبل از اینکه ما شروع کنیم من دوست دارم عملیات زیر را در هارد های HDD شروع کنم و در SSD نباشد. درایو SSD خود را defrag کنید، باید تنها read/write افزایش پیدا کند و برای همین عمر اون کوتاه هستش. در عوض، اگر شما از SSD استفاده میکنید، شما باید از قابلیت TRIM استفاده کنید، که در این آموزش بحثی در موردش نمیشه.
بیایید تست کنیم که واقعا سیستم نیاز به defrag دارد. ما میتوانیم به راحتی با ابزاری همچون e2fsck این موضوع را چک کنیم. قبل از اینکه شما از این ابزار در یک پارتیشن از سیستم تان استفاده کنید، توصیه میشود پارتیشن مورد نظرتون را ابتدا با استفاده از دستور زیر umount کنید. البته خیلی ضروری نیست، اما راه امنی و مطمئنی هستش که انجام بدید.
در سیستم من /dev/sda1 به /tmp مانت شده :
به خاطر داشته باشید در سیستم شما پارتیشن تیبل ممکن است تفاوت داشته باشه همچنین مطمئن بشید پارتیشن تون به درستی unmount شده. برای unmount کردن پارتیشن تون از دستور زیر استفاده کنید :
اکنون بریم چک کنیم ببینم پارتیشن مون نیازی به defrag دارد؟ با استفاده از e2fsck شما نیاز خواهید داشت دستور زیر را اجرا کنید :
در دستور بالا چک فایل سیستم انجام خواهد شد. آپشن -f چک کردن را force میکند، حتی اگر سیستم تمیز به نظر برسد. آپشن -n برای باز کردن فایل سیستم به صورت read-only استفاه میشود و وانمود میکند به "no" پاسخ میدهد برای همه سوالاتی که ممکن است به نظر برسد.
این آپشن اساسا اجازه میدهد که از e2fsck به صورت interactive (سوال و جوابی) استفاده کنید. اگر همه چیز Ok هست، شما باید نتیجه مشابهی را همانند شکل زیر ببینید :
در اینجا مثال دیگری که error های یک سیستم را نمایش میدهد را مشاهده میکنید :
چطور فایل سیستم لینوکس را با استفاده از e2fsck تعمیر کنیم ؟
اگر خطاهایی را مشاهده کردید، شما میتوانید فایل سیستم را با استفاده از e2fsck به همراه آپشن -p تعمیر کنید. توجه داشته باشید برای اجرای دستور زیر احتیاج هست پارتیشن unmount باشد.
آپشن -p تلاش میکند که اتوماتیک فایل سیستم را برای حل مشکلات به صورت امن و مطمئن، و بدون دخالت انسان تعمیر کند. اگر مشكلي پیدا بشه كه ممكنه نياز باشه ادمين سيستم عمليات اضافي رفع مشكل رو خودش انجام بده، e2fsck یک توضیحی از مشکل print میکند و برای خارج شدن نیاز هست که شماره 4 را فشار دهید، که این به این معنا میباشد که error های فایل سیستم برطرف نشد و با توجه به مشکل پیدا شده ممکن است به راه حل دیگری نیاز داشته باشید. “File system errors left uncorrected”
اگر اتفاقی در پارتیشن افتاد که شما نتونستید آنرا unmount کنید، شما میتوانید از ابزار دیگری به نام e4defrag استفاده کنید. این نرم افزار روی بسیاری از توزیع های لینوکسی از قبل نصب و موجود است، اما اگر شما آنرا روی سیستم خود نداشتید با استفاده از دستور زیر آنرا نصب کنید.
چطور پارتیشن های لینوکس را Defrag کنیم ؟
برای defrag کردن پارتیشن ها در linux میتوانید از دستور زیر استفاده کنید.
چطور Direcotry ها را در لینوکس Defrag کنیم ؟
برای مثال، اگر شما قصد دارید تنها یک دایرکتوری یا دیوایس خاصی را در لینوکس defrag کنید، از این دستور استفاده کنید.
چطور تمام پارتیشن های Linux را Defrag کنیم ؟
اگر شما ترجیح میدید که تمام سیستم تان را defrag کنید، راه امن و مطمئن استفاده از دستور زیر میباشد.
به یاد داشته باشید که ممکنه این عمل زمان زیادی از شما بگیره، پس صبور باشید.
خلاصه :
defrag کردن در linux یک عملی هستش که شما احتیاج هست اون رو اجرا کنید. این برای کاربران حرفه ای هست که میدونند دقیقا چه کاری دارند انجام میدهند هستش و برای کاربرانی که تازه وارد دنیای لینوکس شده اند توصیه نمی شود. در کل این عملیات برای بهینه سازی سیستم شما مفید خواهد بود بطوریکه عملیات read/write جدید روی سیستم عامل ها موثرتر اجرا میشوند.
در لینوکس فایل سیستم های ext2, ext3 و ext4 نیازی به توجه بسیار ندارند، اما با گذشت زمان، بعد از read / write های خیلی، خیلی، خیلی زیاد فایل سیستم نیاز داره بهینه بشه. در غیر اینصورت هارد دیسک ممکن است شروع کنه به کند شدن و ممکنه روی کل سیستم تاثیر بذاره.
در این مقاله قصد دارم به شما تعداد کمی از تکنیک های متفاوت برای انجام دادن defragmentation در فایل ها را نشون بدم. قبل از شروع ما باید ذکر کنیم فایل سیستم های مشابه مانند ext2,3,4 از تکه تکه شدن یا پخش شدن فایل ها جلوگیری میکنند.
فایل سیستم های ذکر شده شامل روش هایی برای جلوگیری از موارد بالا را دارد. برای مثال فایل سیستم های گفته شده گروهی از block های آزاد را در هارد دیسک به صورت کامل برای فایل های در حال رشد reserve میکند.
متاسفانه مشکل با همچنین مکانیزم هایی قابل حل شدن نیست. درحالیکه دیگر سیستم عاملها ممکن است به نرم افزارهای اضافی گران قیمت برای برطرف کردن همچنین مشکلاتی نیاز داشته باشند، لینوکس تا حدودی برای نصب نرم افزارها راحت هست و به شما برای حل همچنین مشکلاتی کمک میکند.
توصیه میشود این مقاله را هم مطالعه کنید :
نحوه پیدا کردن بدسکتور در لینوکس
نحوه بازیابی اطلاعات حذف شده در لینوکس
نحوه استفاده از دستور fsck برای رفع خطاهای فایل سیستم در لینوکس
چطور چک کنیم که فایل سیستم نیازی به Defrag شدن دارد ؟
قبل از اینکه ما شروع کنیم من دوست دارم عملیات زیر را در هارد های HDD شروع کنم و در SSD نباشد. درایو SSD خود را defrag کنید، باید تنها read/write افزایش پیدا کند و برای همین عمر اون کوتاه هستش. در عوض، اگر شما از SSD استفاده میکنید، شما باید از قابلیت TRIM استفاده کنید، که در این آموزش بحثی در موردش نمیشه.
بیایید تست کنیم که واقعا سیستم نیاز به defrag دارد. ما میتوانیم به راحتی با ابزاری همچون e2fsck این موضوع را چک کنیم. قبل از اینکه شما از این ابزار در یک پارتیشن از سیستم تان استفاده کنید، توصیه میشود پارتیشن مورد نظرتون را ابتدا با استفاده از دستور زیر umount کنید. البته خیلی ضروری نیست، اما راه امنی و مطمئنی هستش که انجام بدید.
کد PHP:
$ sudo umount <device file>
به خاطر داشته باشید در سیستم شما پارتیشن تیبل ممکن است تفاوت داشته باشه همچنین مطمئن بشید پارتیشن تون به درستی unmount شده. برای unmount کردن پارتیشن تون از دستور زیر استفاده کنید :
کد PHP:
$ sudo umount /dev/sda1
کد PHP:
$ sudo e2fsck -fn /dev/sda1
این آپشن اساسا اجازه میدهد که از e2fsck به صورت interactive (سوال و جوابی) استفاده کنید. اگر همه چیز Ok هست، شما باید نتیجه مشابهی را همانند شکل زیر ببینید :
در اینجا مثال دیگری که error های یک سیستم را نمایش میدهد را مشاهده میکنید :
چطور فایل سیستم لینوکس را با استفاده از e2fsck تعمیر کنیم ؟
اگر خطاهایی را مشاهده کردید، شما میتوانید فایل سیستم را با استفاده از e2fsck به همراه آپشن -p تعمیر کنید. توجه داشته باشید برای اجرای دستور زیر احتیاج هست پارتیشن unmount باشد.
کد PHP:
$ sudo e2fsck -p <device file>
اگر اتفاقی در پارتیشن افتاد که شما نتونستید آنرا unmount کنید، شما میتوانید از ابزار دیگری به نام e4defrag استفاده کنید. این نرم افزار روی بسیاری از توزیع های لینوکسی از قبل نصب و موجود است، اما اگر شما آنرا روی سیستم خود نداشتید با استفاده از دستور زیر آنرا نصب کنید.
کد PHP:
$ sudo apt-get install e2fsprogs [On Debian and Derivatives]
# yum install e2fsprogs [On CentOS based systems]
# dnf install e2fsprogs [On Fedora 22+ versions]
چطور پارتیشن های لینوکس را Defrag کنیم ؟
برای defrag کردن پارتیشن ها در linux میتوانید از دستور زیر استفاده کنید.
کد PHP:
$ sudo e4defrag <location>
or
$ sudo e4defrag <device>
چطور Direcotry ها را در لینوکس Defrag کنیم ؟
برای مثال، اگر شما قصد دارید تنها یک دایرکتوری یا دیوایس خاصی را در لینوکس defrag کنید، از این دستور استفاده کنید.
کد PHP:
$ sudo e4defrag /home/user/directory/
# sudo e4defrag /dev/sda5
چطور تمام پارتیشن های Linux را Defrag کنیم ؟
اگر شما ترجیح میدید که تمام سیستم تان را defrag کنید، راه امن و مطمئن استفاده از دستور زیر میباشد.
کد PHP:
$ sudo e4defrag /
خلاصه :
defrag کردن در linux یک عملی هستش که شما احتیاج هست اون رو اجرا کنید. این برای کاربران حرفه ای هست که میدونند دقیقا چه کاری دارند انجام میدهند هستش و برای کاربرانی که تازه وارد دنیای لینوکس شده اند توصیه نمی شود. در کل این عملیات برای بهینه سازی سیستم شما مفید خواهد بود بطوریکه عملیات read/write جدید روی سیستم عامل ها موثرتر اجرا میشوند.