| NTFSCLONE(8) | System Manager's Manual | NTFSCLONE(8) |
نام (NAME)
ntfsclone - کلون، ایجاد ایمیج، بازیابی یا نجات کارآمد یک فایلسیستم NTFS
خلاصه دستور (SYNOPSIS)
ntfsclone [OPTIONS] SOURCE
ntfsclone --save-image [OPTIONS] SOURCE
ntfsclone --restore-image [OPTIONS] SOURCE
ntfsclone --metadata [OPTIONS] SOURCE
توضیحات (DESCRIPTION)
دستور ntfsclone بهصورت کارآمد یک سیستمفایل NTFS را کلون (کپی، ذخیره، پشتیبانگیری، بازیابی) کرده یا آن را در قالب یک فایل پراکنده (sparse file)، ایمیج، دستگاه (پارتیشن) یا خروجی استاندارد نجات میدهد. این ابزار در سطح سکتورهای دیسک کار کرده و فقط دادههای استفادهشده را کپی میکند. فضای استفادهنشدهٔ دیسک به صفر تبدیل میشود (هنگام کلون کردن به فایل پراکنده)، با کدهای کنترلی کدگذاری میشود (هنگام ذخیره در قالب ایمیج اختصاصی)، بدون تغییر باقی میماند (هنگام کلون کردن روی دیسک/پارتیشن)، یا با صفرها پر میشود (هنگام کلون کردن در خروجی استاندارد).
دستور ntfsclone میتواند برای ایجاد نسخههای پشتیبان، تهیهٔ یک تصویر لحظهای (snapshot) دقیق از یک سیستمفایل NTFS و بازیابی بعدی آن، یا برای توسعهدهندگان جهت آزمایش قابلیتهای خواندن/نوشتن NTFS و عیبیابی/بررسی مشکلات کاربران با استفاده از کلون بدون خطر تخریب سیستمفایل اصلی مفید باشد.
نسخهٔ کلونشده، در صورتی که از قالب ایمیج اختصاصی استفاده نشود، کپی دقیقی از سیستمفایل NTFS اصلی بهصورت سکتور به سکتور است، بنابراین درست مانند سیستمفایل NTFS اصلی قابل مانت کردن است. برای نمونه اگر روی یک فایل کلون کنید و کرنل از دستگاه loopback و NTFS پشتیبانی کند، فایل را میتوان بهصورت زیر مانت کرد:
mount -t ntfs -o loop ntfsclone.img /mnt/ntfsclone
کلون کردن ویندوز (Windows Cloning)
اگر قصد دارید یک پارتیشن سیستمی یا بوت را به کامپیوتر دیگری کپی، جابهجا یا بازیابی کنید، یا آن را به دیسک یا پارتیشن دیگری انتقال دهید (برای مثال hda1->hda2، hda1->hdb1 یا با آفست متفاوتی از سکتور دیسک)، باید احتیاط بیشتری به خرج دهید.
معمولاً ویندوز قادر به بوت شدن نخواهد بود، مگر آنکه NTFS را روی همان پارتیشنی کپی، جابهجا یا بازیابی کنید که از همان سکتور روی همان نوع دیسک با همان تنظیمات سنتی سیلندر BIOS مانند پارتیشن و دیسک اصلی شروع شده باشد.
ابزار ntfsclone تضمین میکند که کپی دقیقی از NTFS تهیه کند، اما با مسائل مربوط به بوت سروکار ندارد. این موضوع بر اساس طراحی است: ntfsclone یک ابزار سیستمفایل است، نه یک ابزار سیستمی. هدف آن فقط کلون کردن NTFS است، نه کلون کردن ویندوز. بنابراین ntfsclone میتواند به عنوان یک بلوک ساختمانی بسیار سریع و قابل اعتماد برای کلون کردن ویندوز استفاده شود، اما بهتنهایی کافی نیست.
فایلهای پراکنده (Sparse Files)
یک فایل زمانی پراکنده (sparse) محسوب میشود که دارای بلوکهای تخصیصنیافته (حفرهها یا holes) باشد. اندازهٔ گزارششده برای چنین فایلهایی همواره بیشتر از فضای دیسک مصرفشده توسط آنها است. دستور du میتواند فضای واقعی مصرفشده روی دیسک توسط یک فایل پراکنده را نمایش دهد. حفرهها همواره بهصورت صفر خوانده میشوند. تمام سیستمفایلهای عمدهٔ لینوکس مانند ext2، ext3، reiserfs، Reiser4، JFS و XFS از فایلهای پراکنده پشتیبانی میکنند، اما برای نمونه سیستمفایل ISO 9600 CD-ROM از آن پشتیبانی نمیکند.
مدیریت فایلهای پراکندهٔ بزرگ (Handling Large Sparse Files)
در حال حاضر لینوکس پشتیبانی ناکافی برای مدیریت (tar، cp، gzip، gunzip، bzip2، bunzip2، cat و غیره) فایلهای پراکندهٔ بزرگ ارائه میدهد. تنها سیستمفایل اصلی لینوکس که از مدیریت کارآمد فایلهای پراکنده پشتیبانی میکند، XFS از طریق XFS_IOC_GETBMAPX ioctl(2) است. با این حال هیچیک از ابزارهای رایج از آن پشتیبانی نمیکنند. این بدان معناست که وقتی یک فایل پراکندهٔ بزرگ را tar، cp، gzip یا bzip2 میکنید، همیشه کل فایل خوانده میشود، حتی اگر از گزینههای «پشتیبانی از sparse» استفاده کنید.
دستور bzip2(1) فایلهای پراکندهٔ بزرگ را بسیار بهتر از gzip(1) فشرده میکند، اما این کار را بسیار کندتر انجام میدهد. افزون بر این، هیچکدام از آنها هنگام باز کردن فایل فشرده از دیدگاه مصرف فضای دیسک به شکل کارآمدی با فایلهای پراکندهٔ بزرگ برخورد نمیکنند.
در حال حاضر کارآمدترین روش از نظر سرعت و فضا برای فشردهسازی و باز کردن فایلهای پراکندهٔ بزرگ توسط ابزارهای رایج، استفاده از tar(1) همراه با گزینههای -S (مدیریت «کارآمد» فایلهای پراکنده) و -j (فیلتر کردن بایگانی از طریق bzip2) است. هرچند tar همچنان کل فایل را خوانده و تحلیل میکند، اما بلوکهای بزرگ داده که فقط حاوی صفر هستند را به فیلترها منتقل نمیکند و از نوشتن مقادیر زیاد صفر روی دیسک به صورت غیرضروری جلوگیری میکند. اما از آنجا که tar نمیتواند از ورودی استاندارد یک بایگانی بسازد، نمیتوانید این کار را مستقیماً با خواندن خروجی استاندارد ntfsclone درجا انجام دهید. متأسفانه استفاده از گزینهٔ -S از اواخر سال ۲۰۰۴ منجر به از دست رفتن جدی دادهها شده است و نگهدارندگان GNU tar تاکنون نسخههای اصلاحشده را منتشر نکردهاند.
قالب ایمیج اختصاصی (The Special Image Format)
همچنین این امکان وجود دارد (و در واقع توصیه میشود) که یک سیستمفایل NTFS را در یک قالب ایمیج اختصاصی ذخیره کنید. به جای نمایش بلوکهای تخصیصنیافته بهصورت حفره، آنها با استفاده از کدهای کنترلی کدگذاری میشوند. بدین ترتیب، این ایمیج بدون نیاز به پشتیبانی از فایل پراکنده، در فضا صرفهجویی میکند. این قالب ایمیج برای استریم کردن ایمیجهای سیستمفایل از طریق شبکه و موارد مشابه ایدهآل است، و اگر با ابزارهای دیگر ترکیب شود میتواند به عنوان جایگزینی برای Ghost یا Partition Image استفاده شود. نکتهٔ منفی این است که نمیتوانید ایمیج را مستقیماً مانت کنید و ابتدا باید آن را بازیابی نمایید.
برای ذخیرهٔ یک ایمیج با استفاده از قالب ایمیج اختصاصی، از گزینهٔ -s یا --save-image استفاده کنید. برای بازیابی یک ایمیج، از گزینهٔ -r یا --restore-image استفاده نمایید. توجه داشته باشید که میتوانید ایمیجها را از ورودی استاندارد با استفاده از «-» به عنوان فایل SOURCE بازیابی کنید.
کلون کردن صرفاً متادیتا (Metadata-only Cloning)
یکی از ویژگیهای ntfsclone این است که میتواند با استفاده از گزینهٔ -m یا --metadata فقط متادیتای NTFS را ذخیره کند و نسخهٔ کلونشده همچنان قابل مانت خواهد بود. در این حالت تمام محتوای غیرمتادیتایی فایلها از بین خواهد رفت و خواندن مجدد آنها همیشه به بایتهای صفر منجر میشود.
ایمیج فقط متادیتا میتواند بسیار خوب فشرده شود، معمولاً تا حداکثر ۱ الی ۸ مگابایت، بنابراین انتقال آن برای بررسی و عیبیابی بسیار آسان است.
در این حالت از ntfsclone، هیچیک از دادههای کاربر ذخیره نمیشود، از جمله دادههای مقیم (resident) کاربر که در داخل متادیتا گنجانده شدهاند. همگی با صفر پر میشوند. علاوه بر این، تمام مهرهای زمانی فایلها، فضاهای حذفشده و استفادهنشده در داخل متادیتا با صفر پر میشوند. بنابراین این حالت برای مثال برای تحلیلهای جرمشناسی دیجیتال (forensic) نامناسب است. این حالت میتواند با --save-image ترکیب شود تا به جای یک فایل پراکنده، فایلی با قالب ایمیج اختصاصی ایجاد گردد.
لطفاً توجه داشته باشید که نام فایلها پاک نمیشوند. آنها ممکن است حاوی اطلاعات حساس باشند، بنابراین پیش از ارسال چنین ایمیجی برای هر فردی، جوانب امر را به دقت بسنجید.
گزینهها (OPTIONS)
در زیر خلاصهای از تمام گزینههایی که ntfsclone میپذیرد آمده است. تقریباً تمام گزینهها دو نام معادل دارند. نام کوتاه با - و نام بلند با -- شروع میشود. هر یک از گزینههای تکحرفی که آرگومان دریافت نمیکنند را میتوان در یک فرمان ترکیب کرد؛ برای نمونه -fv معادل -f -v است. گزینههای نامبلند را میتوان به هر پیشوند یکتا از نامشان خلاصه کرد.
- -o, --output FILE
- کلون کردن NTFS در FILE ناموجود. اگر FILE برابر «-» باشد، در خروجی استاندارد کلون میشود. این گزینه را نمیتوان برای ایجاد یک پارتیشن استفاده کرد؛ برای یک پارتیشن موجود از --overwrite استفاده کنید.
- -O, --overwrite FILE
- کلون کردن NTFS روی FILE، که میتواند یک پارتیشن موجود یا یک فایل معمولی باشد که در صورت وجود بازنویسی خواهد شد.
- -s, --save-image
- ذخیره در قالب ایمیج اختصاصی. این کارآمدترین روش از نظر فضا و سرعت است چنانچه ایمیجگیری به خروجی استاندارد انجام شود (مثلاً برای فشردهسازی، رمزنگاری یا استریم در شبکه).
- -r, --restore-image
- بازیابی از قالب ایمیج اختصاصی مشخصشده توسط آرگومان SOURCE. اگر SOURCE برابر «-» باشد، ایمیج از ورودی استاندارد خوانده میشود.
- -n, --no-action
- آزمایش سازگاری یک ایمیج ذخیرهشده با شبیهسازی بازیابی آن بدون نوشتن هیچچیز. دادههای NTFS موجود در ایمیج آزمایش نمیشوند. گزینهٔ --restore-image نیز باید مشخص شده باشد، و گزینههای --output و --overwrite باید حذف شوند.
- --rescue
- نادیده گرفتن خطاهای خواندن دیسک تا دیسکهای دارای بدسکتور (مثلاً دیسکهای در حال خرابی) به کارآمدترین شکل و با کمترین فشار بازیابی و نجات داده شوند. Ntfsclone در این حالت نیز در پایینترین سطح یعنی سکتور کار میکند، بنابراین دادههای بیشتری قابل نجات هستند. محتوای سکتورهای غیرقابل خواندن با نویسهٔ '?' پر میشود و ابتدای چنین سکتورهایی با "BadSectoR\0" نشانهگذاری میگردد.
- -m, --metadata
- کلون کردن فقط متادیتا (برای متخصصان NTFS). فقط کلون کردن روی یک فایل (پراکنده) مجاز است، مگر اینکه از گزینهٔ --save-image نیز استفاده شود. نمیتوانید کلونِ صرفاً متادیتا را روی یک دستگاه انجام دهید.
- --ignore-fs-check
- نادیده گرفتن نتیجهٔ بررسی سلامت سیستمفایل. به منظور حفظ امنیت دادههای کاربر، استفاده از این گزینه فقط همراه با گزینهٔ --metadata مجاز است. کلاسترهایی که باعث ناسازگاری شدهاند نیز ذخیره میشوند.
- -t, --preserve-timestamps
- پاک نکردن مهرهای زمانی؛ فقط باید همراه با گزینهٔ --metadata استفاده شود.
- --full-logfile
- گنجاندن فایل لاگ ویندوز در کپی. این گزینه فقط برای استخراج متادیتا، ذخیره یا کلون کردن سیستمفایلی مفید است که به درستی از ویندوز آنمانت نشده باشد.
- --new-serial, یا
- --new-half-serial
- تنظیم یک شماره سریال تصادفی جدید برای کلون. شماره سریال یک عدد ۶۴ بیتی است که برای شناسایی دستگاه در طول فرایند مانت استفاده میشود، بنابراین باید تغییر یابد تا سیستمفایل اصلی و نسخهٔ کلون بتوانند بهطور همزمان در یک کامپیوتر مانت شوند.
گزینهٔ --new-half-serial فقط بخش بالایی شماره سریال را تغییر میدهد و بخش پایینی را که توسط ویندوز استفاده میشود دستنخورده باقی میگذارد.
گزینههای --new-serial و --new-half-serial فقط هنگام کلون کردن یک سیستمفایل یا بازیابی از یک ایمیج قابل استفاده هستند.
شماره سریال با UUID ولوم که ویندوز برای پیدا کردن فایلهای جابهجا شده به ولوم دیگر استفاده میکند، یکی نیست.
- -f, --force
- مجبور کردن ntfsclone به ادامهٔ کار اگر سیستمفایل برای بررسی یکپارچگی بهصورت "dirty" علامتگذاری شده باشد.
- -q, --quiet
- عدم نمایش هرگونه نوار پیشرفت در حین عملیات.
- -h, --help
- نمایش فهرستی از گزینهها همراه با شرح مختصری از هر کدام.
کدهای خروج (EXIT CODES)
کد خروج در صورت موفقیت 0 و در غیر این صورت غیر صفر است.
مثالها (EXAMPLES)
کلون کردن NTFS از /dev/hda1 روی /dev/hdc1:
ntfsclone --overwrite /dev/hdc1 /dev/hda1
ntfsclone --save-image --output backup.img /dev/hda1
ntfsclone --restore-image --overwrite /dev/hda1 backup.img
ntfsclone --save-image -o - /dev/hda1 | gzip -c > backup.img.gz
gunzip -c backup.img.gz |
ntfsclone --restore-image --overwrite /dev/hda1 -
ntfsclone --save-image --output - /dev/hda1 |
gzip -c | ssh host 'cat > backup.img.gz'
ssh host 'cat backup.img.gz' | gunzip -c |
ntfsclone --restore-image --overwrite /dev/hda1 -
wget -qO - http://server/backup.img |
ntfsclone --restore-image --overwrite /dev/hda1 -
ntfsclone --output ntfs-clone.img /dev/hda1
ntfsclone --metadata --output ntfsmeta.img /dev/hda1
bzip2 ntfsmeta.img
یا خروجی
دادن به یک
ایمیج
فشرده:
ntfsclone -mst --output - /dev/hda1 | bzip2 > ntfsmeta.bz2
bunzip2 -c ntfsmeta.img.bz2 |
cp --sparse=always /proc/self/fd/0 ntfsmeta.img
مشکلات شناختهشده (KNOWN ISSUES)
هیچ مشکل شناختهشدهای در ntfsclone وجود ندارد. اگر فکر میکنید مشکلی پیدا کردهاید، لطفاً ایمیلی حاوی شرح آن به تیم توسعه ارسال کنید: ntfs-3g-devel@lists.sf.net
گاهی ممکن است به نظر برسد ntfsclone هنگ کرده است، چنانچه کلون روی ReiserFS باشد و حتی فشردن CTRL-C آن را متوقف نکند. این یک باگ در ntfsclone نیست، بلکه به این دلیل است که ReiserFS در ایجاد فایلهای پراکندهٔ بزرگ بهشدت ناکارآمد است و در طول این عملیات سیگنالها را پردازش نمیکند. این مشکل ReiserFS در هستهٔ 2.4.22 بهبود یافت. سیستمفایلهای XFS، JFS و ext3 این مشکل را ندارند.
نویسندگان (AUTHORS)
دستور ntfsclone توسط Szabolcs Szakacsits با مشارکت Per Olofsson (پشتیبانی از قالب ایمیج اختصاصی) و Anton Altaparmakov نوشته شده است. این ابزار توسط Erik Larsson و Jean-Pierre Andre به ntfs-3g پورت شد.
در دسترس بودن (AVAILABILITY)
برنامهٔ
ntfsclone بخشی از
بستهٔ ntfs-3g
است و در
نشانی زیر
در دسترس
است:
https://github.com/tuxera/ntfs-3g/wiki
همچنین ببینید (SEE ALSO)
ntfsresize(8), ntfsprogs(8), xfs_copy(8), debugreiserfs(8), e2image(8)
| فوریه ۲۰۱۳ | ntfs-3g 2026.7.7 |