دلایل زیادی وجود دارد که شما ممکن است بخواهید یک پارتیشن لینوکس یا حتی هارد دیسک را Clone کنید، که در اکثر موارد مربوط به ایجاد نسخه پشتیبان از داده های شما است.
زمانی که از یک ماشین مجازی ، Clone می گیرید، برخی از feature های آن ماشین به همان صورتی که هستند کپی می شوند ، مانند IP Address ، Hostname ، UUID و SID و …
حال ممکن است این سوال برایتان پیش آید که در چه مواقعی باید از Clone استفاده کرد؟ فرض کنید که شما می خواهید سرور خاصی را از 2008 به 2016 ارتقا دهید . از اینرو از سرور 2008 یک Clone تهیه می کنید و آن را مثلا در Workstation خود بالا می آورید.
روش های مختلفی وجود دارد که می توانید با استفاده از برخی ابزارهای خارجی مانند partimage یا Clonezilla در لینوکس به این هدف برسید.
سپس برای تست کلیه عملیات لازم را روی آن پیاده سازی می کنید و در نهایت وقتی اطمینان پیدا کردید که هیچ مشکلی وجود نخواهد داشت ، این عملیات را بر روی سرور اصلی خود پیاده سازی می کنید.
اما در این آموزش قصد داریم Clone نمودن دیسک لینوکس را با ابزاری به نام dd بررسی کنیم ، که بیشتر برای تبدیل یا کپی فایل ها استفاده می شود و در اکثر توزیع های لینوکس از قبل نصب شده است.
نحوه Clone پارتیشن لینوکس
با دستور dd می توانید کل هارد دیسک یا فقط یک پارتیشن خاص لینوکس را کپی کنید. بعنوان مثال با کلون کردن یکی از پارتیشن ها شروع کنیم. فرض کنیم در سیستم شما دو درایو زیر موجوداست:
/dev/sdb
/dev/sdcnv
درادامه /dev/sdb1/ به /dev/sdc1 را کپی می کنیم.
ابتدا این پارتیشن ها را با استفاده از دستور fdisk همانطور که نشان داده شده است ، لیست کنید.
# fdisk -l /dev/sdb1/ /dev/sdc1
اکنون با استفاده از دستور dd زیر ، پارتیشن /dev/sdb1/ را در /dev/sdc1 کلون کنید.
# dd if=/dev/sdb1 of=/dev/sdc1
دستور فوق به dd می گوید از میسر /dev/sdb1 به عنوان فایل ورودی استفاده کرده و آن را روی فایل خروجی /dev/sdc1 بنویسید.
بعد از کلون کردن پارتیشن لینوکس ، می توانید هر دو بخش را با دستور زیر بررسی کنید:
# fdisk -l /dev/sdb1 /dev/sdc1
نحوه کلون هارد دیسک لینوکس
کلون کردن یک هارد لینوکس شبیه به کلون کردن یک پارتیشن است. با این تفاوت که به جای مشخص کردن پارتیشن ، کل درایو را مشخص می کنید. توجه داشته باشید که در این حالت توصیه می شود که اندازه هارد دیسک مساوی ویا بزرگتر از درایو منبع باشد.
# dd if=/dev/sdb of=/dev/sdc
این دستور درایو /dev/sdb را به همراه پارتیشن های آن در هارد دیسک مقصد /dev/sdc کپی کند. با دستور fdisk می توانید تغییرات هردودرایو را تأیید کنید.
# fdisk -l /dev/sdb /dev/sdc
نحوه تهیه نسخه پشتیبان از MBR در لینوکس
همچنین از دستور dd می توانید برای تهیه نسخه پشتیبان از MBR خود که در اولین sector دستگاه(device) قرار دارد، استفاده کنید. بنابراین اگر می خواهید از MBR خود نسخه پشتیبان تهیه کنید ، به سادگی دستورات زیر اجرا کنید:
# dd if=/dev/sda of=/backup/mbr.img bs=512 count=1
دستور فوق به dd می گوید که 512 بایت از اطلاعات /dev/sda را در مسیر /backup/mbr.img کپی نموده و گزینه count مشخص میکند فقط 1 بلوک را کپی کند. به عبارت دیگر به dd می گویید که 512 بایت اول /dev/sda را در فایلی که مشخص کرده اید کپی کند.
بهمین سادگی! دستور dd ابزاری قدرتمند لینوکس است که هنگام کپی کردن یا کلون کردن پارتیشن ها یا درایوهای لینوکس باید با احتیاط مورد استفاده قرار گیرد.
در صورتی که مقاله فوق مورد توجه شما قرار گرفته پیشنهاد میکنیم مقالات “تفاوت هاست لینوکس و هاست ویندوز” و ”علت بلاک شدن IP در فایروال سرور” در بلاگ مرواهاست مطالعه فرمایید