maxis
09-06-07, 00:22
اگر در محل کار یا منزل به نرمافزارهایی مانند Adobe Photoshop یا Dreamweaver یا بازیهای مدرن نیاز دارید و نمیخواهید از روشهای شبیه سازی یا مجازی سازی مانند Vmware یا VirtualBox یا Wine استفاده کنید و میخواهید حتما سیستم گنو/لینوکس خود را همراه با ویندوزتان برروی یک دستگاه نصب کنید حتما به برنامهای نیاز خواهید داشت که در زمان روشن شدن سیستم (Boot سیستم) به شما امکان انتخاب سیستم عامل مورد نظرتان را بدهد. این برنامه را «مدیر بوت» یا Boot Loader خطاب میکنند. نیازی به خریدن یا دریافت کردن از اینترنت برنامهای جدید برای این کار ندارید، توزیعهای گنو/لینوکس ابزار مورد نیازتان را به شما میدهند. کافیست کار کردن با این ابزارها را بدانید. در حال حاضر دو برنامه بسیار محبوب برای مدیریت بوت در لینوکس وجود دارند به نامهای LILO و GRUB. امروزه دیگر توزیعهای بزرگ و مشهور گنو/لینوکس مانند Debian GNU/Linux یا Fedora Core یا SuSE Linux و توزیعهایی که برپایهای چنین توزیعهایی هستند به صورت پیش فرض از مدیر بوت قدرتمند Grub استفاده میکنند. امکانات و قابلیتهای Grub بسیار بیشتر از Lilo است، برای نمونه وجود یک خط فرمان توکار برای موارد استراری یا سادگی در مدیریت بوت لودر.
آنچه در این مقاله قصد بررسی آن را داریم، بررسی وضعیت «مدیر بوت» در نصب لینوکس و ویندوز در کنار یکدیگر است. در حقیقت نصب لینوکس و ویندوز برروی یک سیستم ممکن است مشکلاتی در پیش داشته باشد. در این مقاله به مشکلات مربوط به «مدیر بوت» رسیدگی خواهیم کرد و راهکارهایی برای رفع این مشکلات ارائه مینماییم. در حقیقت این مشکلات هرگز آنقدر که به نظر می رسند بزرگ نیستند و تنها دانشی جزئی دربارهی روش مدیریت بوت و آشنایی با «مدیر بوت» میتواند راهگسای مشکلاتی باشد که ممکن است در چنین مواردی رخ دهد. در این مقاله روشهای پارتیشن بندی بررسی نمیشوند و تنها به مشکلات و راهکارهای مربوط به نصب لینوکس و ویندوز در زمینهی «مدیر بوت» رسیدگی میکنیم.
1. اصول کار
اگر قصد نصب لینوکس و ویندوز در کنار یکدیگر را دارید، نصب لینوکس پس از ویندوز بسیار کارامدتر و بیدردسرتر خواهد بود. مدیربوت لینوکس به دلیل پشتیبانی از بوت چندگانه، به عبارت دیگر پشتیبانی از سیستم عاملهای مختلف در مدیر بوت قابلیتها و سازگاریهای بیشتری را برای شمافراهم میآورد. شما میتوانید لینوکس را برروی هر کدام از پارتیشنهای دیسک سخت خود نصب کنید. این پارتیشن میتواند یک پارتیشن توسعه یافته یا Extended باشد یا میتوانید یکی از ۴ پارتیشن اصلی با Primary شما باشد. حتی میتوانید لینوکس را بدون دردسر برروی دیسک سخت دوم خود (SlaveDisk) نصب کنید و بدون دردسر از آن استفاده کنید. اما ویندوز مخالف لینوکس به هیچوجه انعطاف پذیر نبوده. اگر قصد استفاده از ویندوزهای 95،98 یا ME را دارید لازم است که شما حتما این ویندوزها را در اولین پارتیشن اصلی فعال خودتان نصب کنید.(First Active Primary Partition) سایر واریانتهایی که برپایهی ویندوز NT هستند مانند Windows 2000 یا XP تنها به ذخیرهی فایلهای بوت خود در این پارتیشن نیازمند هستند. شما میتوانید اصل سیستم عامل را در درایوهای دیگرتان نصب کنید اما حتما باید فایلهای بوت در ا«اولین پارتیشن اصلی فعالتان» وجود داشته باشند. فایلهای بوت اساسی در این ویندوزها فایلهای "ntldr" و "ntdetect.com" و "boot.ini" میباشند. که فایل "boot.ini" فایل تنظیمات است.
ویندوزهای برپایهی NT از Master Boot record برای نصب سیستم بوت خود استفاده نمیکنند، بلکه از سکتور بوت پارتیشنی استفاده میکنند که فایلهای بوتشان در آن قرار دارد.اگر ویندوز دیگری در درایو مذکور نصب نمایید، به روند نصب به صورت اتوماتیک ویندوز را به مدیر بوت اضافه میکند.
2.روش استاندارد
در روش استاندارد نصب یک سیستم با بوت چندگانه یا Multi boot لینوکس بالای ویندوزهای نصب شده قرار میگیرد و ویندوزهای از پیش نصب شده از طریق مدیر بوت لینوکس (مانند گراب) قابل دسترس خواهد بود. مدیر بوت گراب به صورت اتوماتیک ویندوزهای نصب شده را شناسایی میکند و به منوی بوت خود اضافه میکند. (شکل شمارهی ۱) فایل تنظیمات Grub در مسیر boot/grub/menu.lst/ قرار دارد که به Grub میگوید چگونه ویندوزهای نصب شده یا لینوکستان را فراخوانی کند. سادهترین حالت تنطیماتی مانند این خواهند داشت:
titel windows
root (hd0,1)
chainloader +1
خطی که که با title آغاز شده حاوی نامی است برای ویندوز شما که در زمان بوت در مدیر بوت شما نمایش داده میشود. خطی که با عبارت root آغاز شده است، به Grub پارتیشن محل نصب ویندوز را اعلام میکند. روش نمایش دسک سخت در Grub با آنچه در لینوکس مشاهده میکنید کمی متفاوت است. در لینوکس به صورت استاندارد پارتیشنهای دیسکهای سخت به صورت dev/hdX/ مشخص میشوند. برای نمونه اولین دیسک سخت به صورت dv/hda/ مشخص میشود و اولین پارتیشن دیسک سخت اول به صورت dev/hda1/ نامگذاری میشود. دومین پارتیشن دیسک سخت اول با نام dev/hda2/ نامگذاری میگردد. اما در Grub این روش کمی متفاوت است. برای نام گذاری دیسکهای سخت از صفر نامگذاری میشوند. سپس پارتیشنها با یک ویرگول یا Comma به دنبال شمارهی دسک سخت میآید. برای نمونه dev/hda1/ به صورت hd0,0 مخص میشود، یا dev/hda2/ به صورت hd0,1 مشخص میشود. اغلب زمانی که کامپیوتری میخرید که از پیش ویندوز برروی آن نصب شده، ویندوز در پارتیشن اول دیسک اول نصب میگردد که این پارتیشن hd0,0 است. (همان درایور C ویندوزی)
برخی توزیعها بجای استفاده از کلمهی کلیدی root از کلمهی کلیدی rootnoverify استفاده میکنند. این کلمهی کلیدی به Grub اعلام میکند تا برای شناسایی پارتیشن مذکور اقدام نکند. اگر شما این کد را برروی اولین سکتور بوت خود اجرامیکنید تفاوتی میان این دو کلمهی کلیدی وجود نخواهد داشت. برای فراخوانی ویندوز در Grub از chainloader +1 استفاده میشود. 1+ به Grub اعلام میکند تا روند بوتکد (boot code) را مطابق آنچه در پارتیشن root آمده است دنبال کند. هر چند شما میتوانید مسیری مشخص را که به Boot Code متهی میشود به Grub اعلام نمایید. شما میتوانید این کار را با نوشتن سکتور بوت ویندوز XP یا 2000 برروی فایلی به نام boot/ntsector/ انجام دهید. برای این کار میتوانید از دستور زیر استفاده کنید:
tux@GIO:~$ dd if=/dev/hda1 of=/boot/ntsector bs=512 count=1
برای اجرای NTloader که برنامهی بوت ویندوز است از طریق پارتیشن لینوکسی خود میتوانید خطوط زیر را پس از انجام دستور قبلی به فایل menu.lst مدیر بوت خود (Grub) اضافه کنید:
title windows
root (hd0,2)
chainloader /boot/ntsector
در این نمونه پارتیشن بوت لینوکس شما برروی پارتیشن سوم دیسک سخت اول یا dev/hda3/ قرار دارد. در صورتی که لینوکستان در محل دیگری قرار دارد مقدار (hd0,2) متعاقبا تغیییر خواهد کرد. در این حالت دیگر استفاده از کلمهی کلیدی rootnoverify نیز ممکن نخواهد بود.
4. ویندوز بعد از لینوکس
اگر قصد نصب ویندوز پس از نصب لینوکس را دارید، مشکلات کمی بیشتر خواهند شد، دلیل این امر روش مدیریت بوت ویندوزهاست. هر دو سری ویندوزهای 95/98/ME و نیز خانوادهی NT زمان نصب MBR شما را باز نویسی میکنند. که این باعث از بین رفتن اطلاعات مورد نیاز برای فراخوانی Grub می شود. به عبارت دیگر در صورت نصب ویندوز پس از لینوکس دیگر مدیر بوت لینوکس شما نمایش داده نمیشود. در چنین حالتی شما دو انتخاب خواهید داشت، انتخاب اول نصب جدد بوت لودر گراب صدمه دیده و انتخاب دوم فراخوانی مدیر بوت لینوکس از طریق برنامهی بوت ویندوز یا NTloader.
4.1 نصب مجدد گراب
نصب مجدد گراب مانند راهکار بعدی (4.2) روندی بسیار ساده دارد، برای این کار کافیست از طریق یک فلاپی دیسک گراب یا یک دیسک زنده استفاده کنید. در ۱۰ دقیقه میتوانید گراب از دست رفتهی خود را بازیابی کنید. در صورتی که ویندوز در منوی گراب شما نیست میتوانید آن را به منوی گراب خود بیافزایید و سپس از طریق مدیر بوت گراب، ویندوز و لینوک خود را فراخوانی نمایید. در صورتی که این روش را انتخاب نمیدهاید میتوانید مقالهی کاملی را که دربارهی «نصب مجدد بوت لودر گراب صدمهدیده» در همین سایت منتشر شده است را مطالعه کنید.
4.2 فراخوانی لینوکس از طریق ویندوز
راهکار دوم فراخوانی بوت لودر Grub نصب شده در پارتیشن لینوکسی از طریق برنامهی بوت Windows است. این روش فقط در ویندوز NT و سایر ویندوزهای برپایهی NT که از مدیر بوت NTLoader استفاده میکنند ممکن است. در سایر ویندزها مانند Windows ME یا Windows 98 به دلیل وجود نداشتن برنامهی مدیر بوت این روش ممکن نیست و باید حتما از راهکار 4.1 استفاده نمایید. از آنجایی که ویندوز NT تنها قادر به خواندن فایل سیستمهای VFAT و NTFS است، شما باید فایلهای موردنیاز برای فراخوانی لینوکس را به پارتیشنی که ویندوز از آن فراخونی میشود منتقل کنید. نگران نباشید این کار نیر بسیار ساده است. اگر لینوکس شما برروی پارتیشن hda3 نصب شده است، کافیست از دستور زیر برای ایجاد فایل مورد نیاز استفاده کنید.
dd if=/dev/hda3 of=bootsec.lin bs=512 count=1
فایل bootsec.lin حاوی گراب نصب شده برروی پارتیشن لینوکسی شماست که باید این فایل را به پارتیشن ویندوزی منتقل کنید. برای اینکار در صورت نیاز میتوانید از یک فلاپی دیسک یا USB Stick استفاده کنید. پس از انتقال کافیست فایل boot.ini خط زیر را وارد نمایید:
c:\bootsec.lin="My Grub"
پس از اضافه کردن این خط فراموش نکنید که حتما مقدار timeout را در فایل boot.ini از صفر به مقداری دیگر تغییر دهید. در غیر این صورت ویندوز بدون نمایش منوی بوتلودر روند معمول فراخوانی را اجرا میکند. فراموش نکنید که در این نمونه ما با فرض قرار داشت فایل bootsec.lin بروی درایو C ویندوز مقدار c:\bootsec.lin را به فایل boot.ini اضافه نمودهایم. بسیار خب، پس از راهاندازی مجدد سیستم با انتخاب گزینهی My Grub در منوی بوت NTloader خود که در زمان بوت نمایش داده خواهد شد شما به منوی Grub نصب شده در پارتیشن لینوکسی خود دسترسی پیدا میکنید.
5. جمع بندی
امروزه اغلب توزیعهای لینوکس در زمان نصب لینوکسها،ویندوزها و حتی سیستم عاملهایدیگری مانند FreeBSD یا SunSolaris را به صورت اتوماتیک به منوی Grub اضافه میکنند. اما اگر به دلیل نصب مجدد ویندوز، اجرای اشتباه دستوری در لینوکس MBR دیسک سخت دچار صدمه شود یا توسط ویندوز نصب شدهی جدید بازنویسی شود، کافیست یکی از راهکارهای ذکر شده را پیگیری کنید تا مدیر بوت خود را همانند آنچه نیاز دارید تبدیل کنید.
آنچه در این مقاله قصد بررسی آن را داریم، بررسی وضعیت «مدیر بوت» در نصب لینوکس و ویندوز در کنار یکدیگر است. در حقیقت نصب لینوکس و ویندوز برروی یک سیستم ممکن است مشکلاتی در پیش داشته باشد. در این مقاله به مشکلات مربوط به «مدیر بوت» رسیدگی خواهیم کرد و راهکارهایی برای رفع این مشکلات ارائه مینماییم. در حقیقت این مشکلات هرگز آنقدر که به نظر می رسند بزرگ نیستند و تنها دانشی جزئی دربارهی روش مدیریت بوت و آشنایی با «مدیر بوت» میتواند راهگسای مشکلاتی باشد که ممکن است در چنین مواردی رخ دهد. در این مقاله روشهای پارتیشن بندی بررسی نمیشوند و تنها به مشکلات و راهکارهای مربوط به نصب لینوکس و ویندوز در زمینهی «مدیر بوت» رسیدگی میکنیم.
1. اصول کار
اگر قصد نصب لینوکس و ویندوز در کنار یکدیگر را دارید، نصب لینوکس پس از ویندوز بسیار کارامدتر و بیدردسرتر خواهد بود. مدیربوت لینوکس به دلیل پشتیبانی از بوت چندگانه، به عبارت دیگر پشتیبانی از سیستم عاملهای مختلف در مدیر بوت قابلیتها و سازگاریهای بیشتری را برای شمافراهم میآورد. شما میتوانید لینوکس را برروی هر کدام از پارتیشنهای دیسک سخت خود نصب کنید. این پارتیشن میتواند یک پارتیشن توسعه یافته یا Extended باشد یا میتوانید یکی از ۴ پارتیشن اصلی با Primary شما باشد. حتی میتوانید لینوکس را بدون دردسر برروی دیسک سخت دوم خود (SlaveDisk) نصب کنید و بدون دردسر از آن استفاده کنید. اما ویندوز مخالف لینوکس به هیچوجه انعطاف پذیر نبوده. اگر قصد استفاده از ویندوزهای 95،98 یا ME را دارید لازم است که شما حتما این ویندوزها را در اولین پارتیشن اصلی فعال خودتان نصب کنید.(First Active Primary Partition) سایر واریانتهایی که برپایهی ویندوز NT هستند مانند Windows 2000 یا XP تنها به ذخیرهی فایلهای بوت خود در این پارتیشن نیازمند هستند. شما میتوانید اصل سیستم عامل را در درایوهای دیگرتان نصب کنید اما حتما باید فایلهای بوت در ا«اولین پارتیشن اصلی فعالتان» وجود داشته باشند. فایلهای بوت اساسی در این ویندوزها فایلهای "ntldr" و "ntdetect.com" و "boot.ini" میباشند. که فایل "boot.ini" فایل تنظیمات است.
ویندوزهای برپایهی NT از Master Boot record برای نصب سیستم بوت خود استفاده نمیکنند، بلکه از سکتور بوت پارتیشنی استفاده میکنند که فایلهای بوتشان در آن قرار دارد.اگر ویندوز دیگری در درایو مذکور نصب نمایید، به روند نصب به صورت اتوماتیک ویندوز را به مدیر بوت اضافه میکند.
2.روش استاندارد
در روش استاندارد نصب یک سیستم با بوت چندگانه یا Multi boot لینوکس بالای ویندوزهای نصب شده قرار میگیرد و ویندوزهای از پیش نصب شده از طریق مدیر بوت لینوکس (مانند گراب) قابل دسترس خواهد بود. مدیر بوت گراب به صورت اتوماتیک ویندوزهای نصب شده را شناسایی میکند و به منوی بوت خود اضافه میکند. (شکل شمارهی ۱) فایل تنظیمات Grub در مسیر boot/grub/menu.lst/ قرار دارد که به Grub میگوید چگونه ویندوزهای نصب شده یا لینوکستان را فراخوانی کند. سادهترین حالت تنطیماتی مانند این خواهند داشت:
titel windows
root (hd0,1)
chainloader +1
خطی که که با title آغاز شده حاوی نامی است برای ویندوز شما که در زمان بوت در مدیر بوت شما نمایش داده میشود. خطی که با عبارت root آغاز شده است، به Grub پارتیشن محل نصب ویندوز را اعلام میکند. روش نمایش دسک سخت در Grub با آنچه در لینوکس مشاهده میکنید کمی متفاوت است. در لینوکس به صورت استاندارد پارتیشنهای دیسکهای سخت به صورت dev/hdX/ مشخص میشوند. برای نمونه اولین دیسک سخت به صورت dv/hda/ مشخص میشود و اولین پارتیشن دیسک سخت اول به صورت dev/hda1/ نامگذاری میشود. دومین پارتیشن دیسک سخت اول با نام dev/hda2/ نامگذاری میگردد. اما در Grub این روش کمی متفاوت است. برای نام گذاری دیسکهای سخت از صفر نامگذاری میشوند. سپس پارتیشنها با یک ویرگول یا Comma به دنبال شمارهی دسک سخت میآید. برای نمونه dev/hda1/ به صورت hd0,0 مخص میشود، یا dev/hda2/ به صورت hd0,1 مشخص میشود. اغلب زمانی که کامپیوتری میخرید که از پیش ویندوز برروی آن نصب شده، ویندوز در پارتیشن اول دیسک اول نصب میگردد که این پارتیشن hd0,0 است. (همان درایور C ویندوزی)
برخی توزیعها بجای استفاده از کلمهی کلیدی root از کلمهی کلیدی rootnoverify استفاده میکنند. این کلمهی کلیدی به Grub اعلام میکند تا برای شناسایی پارتیشن مذکور اقدام نکند. اگر شما این کد را برروی اولین سکتور بوت خود اجرامیکنید تفاوتی میان این دو کلمهی کلیدی وجود نخواهد داشت. برای فراخوانی ویندوز در Grub از chainloader +1 استفاده میشود. 1+ به Grub اعلام میکند تا روند بوتکد (boot code) را مطابق آنچه در پارتیشن root آمده است دنبال کند. هر چند شما میتوانید مسیری مشخص را که به Boot Code متهی میشود به Grub اعلام نمایید. شما میتوانید این کار را با نوشتن سکتور بوت ویندوز XP یا 2000 برروی فایلی به نام boot/ntsector/ انجام دهید. برای این کار میتوانید از دستور زیر استفاده کنید:
tux@GIO:~$ dd if=/dev/hda1 of=/boot/ntsector bs=512 count=1
برای اجرای NTloader که برنامهی بوت ویندوز است از طریق پارتیشن لینوکسی خود میتوانید خطوط زیر را پس از انجام دستور قبلی به فایل menu.lst مدیر بوت خود (Grub) اضافه کنید:
title windows
root (hd0,2)
chainloader /boot/ntsector
در این نمونه پارتیشن بوت لینوکس شما برروی پارتیشن سوم دیسک سخت اول یا dev/hda3/ قرار دارد. در صورتی که لینوکستان در محل دیگری قرار دارد مقدار (hd0,2) متعاقبا تغیییر خواهد کرد. در این حالت دیگر استفاده از کلمهی کلیدی rootnoverify نیز ممکن نخواهد بود.
4. ویندوز بعد از لینوکس
اگر قصد نصب ویندوز پس از نصب لینوکس را دارید، مشکلات کمی بیشتر خواهند شد، دلیل این امر روش مدیریت بوت ویندوزهاست. هر دو سری ویندوزهای 95/98/ME و نیز خانوادهی NT زمان نصب MBR شما را باز نویسی میکنند. که این باعث از بین رفتن اطلاعات مورد نیاز برای فراخوانی Grub می شود. به عبارت دیگر در صورت نصب ویندوز پس از لینوکس دیگر مدیر بوت لینوکس شما نمایش داده نمیشود. در چنین حالتی شما دو انتخاب خواهید داشت، انتخاب اول نصب جدد بوت لودر گراب صدمه دیده و انتخاب دوم فراخوانی مدیر بوت لینوکس از طریق برنامهی بوت ویندوز یا NTloader.
4.1 نصب مجدد گراب
نصب مجدد گراب مانند راهکار بعدی (4.2) روندی بسیار ساده دارد، برای این کار کافیست از طریق یک فلاپی دیسک گراب یا یک دیسک زنده استفاده کنید. در ۱۰ دقیقه میتوانید گراب از دست رفتهی خود را بازیابی کنید. در صورتی که ویندوز در منوی گراب شما نیست میتوانید آن را به منوی گراب خود بیافزایید و سپس از طریق مدیر بوت گراب، ویندوز و لینوک خود را فراخوانی نمایید. در صورتی که این روش را انتخاب نمیدهاید میتوانید مقالهی کاملی را که دربارهی «نصب مجدد بوت لودر گراب صدمهدیده» در همین سایت منتشر شده است را مطالعه کنید.
4.2 فراخوانی لینوکس از طریق ویندوز
راهکار دوم فراخوانی بوت لودر Grub نصب شده در پارتیشن لینوکسی از طریق برنامهی بوت Windows است. این روش فقط در ویندوز NT و سایر ویندوزهای برپایهی NT که از مدیر بوت NTLoader استفاده میکنند ممکن است. در سایر ویندزها مانند Windows ME یا Windows 98 به دلیل وجود نداشتن برنامهی مدیر بوت این روش ممکن نیست و باید حتما از راهکار 4.1 استفاده نمایید. از آنجایی که ویندوز NT تنها قادر به خواندن فایل سیستمهای VFAT و NTFS است، شما باید فایلهای موردنیاز برای فراخوانی لینوکس را به پارتیشنی که ویندوز از آن فراخونی میشود منتقل کنید. نگران نباشید این کار نیر بسیار ساده است. اگر لینوکس شما برروی پارتیشن hda3 نصب شده است، کافیست از دستور زیر برای ایجاد فایل مورد نیاز استفاده کنید.
dd if=/dev/hda3 of=bootsec.lin bs=512 count=1
فایل bootsec.lin حاوی گراب نصب شده برروی پارتیشن لینوکسی شماست که باید این فایل را به پارتیشن ویندوزی منتقل کنید. برای اینکار در صورت نیاز میتوانید از یک فلاپی دیسک یا USB Stick استفاده کنید. پس از انتقال کافیست فایل boot.ini خط زیر را وارد نمایید:
c:\bootsec.lin="My Grub"
پس از اضافه کردن این خط فراموش نکنید که حتما مقدار timeout را در فایل boot.ini از صفر به مقداری دیگر تغییر دهید. در غیر این صورت ویندوز بدون نمایش منوی بوتلودر روند معمول فراخوانی را اجرا میکند. فراموش نکنید که در این نمونه ما با فرض قرار داشت فایل bootsec.lin بروی درایو C ویندوز مقدار c:\bootsec.lin را به فایل boot.ini اضافه نمودهایم. بسیار خب، پس از راهاندازی مجدد سیستم با انتخاب گزینهی My Grub در منوی بوت NTloader خود که در زمان بوت نمایش داده خواهد شد شما به منوی Grub نصب شده در پارتیشن لینوکسی خود دسترسی پیدا میکنید.
5. جمع بندی
امروزه اغلب توزیعهای لینوکس در زمان نصب لینوکسها،ویندوزها و حتی سیستم عاملهایدیگری مانند FreeBSD یا SunSolaris را به صورت اتوماتیک به منوی Grub اضافه میکنند. اما اگر به دلیل نصب مجدد ویندوز، اجرای اشتباه دستوری در لینوکس MBR دیسک سخت دچار صدمه شود یا توسط ویندوز نصب شدهی جدید بازنویسی شود، کافیست یکی از راهکارهای ذکر شده را پیگیری کنید تا مدیر بوت خود را همانند آنچه نیاز دارید تبدیل کنید.