انجمنهای فارسی اوبونتو
جامعه کاربران => کافه اوبونتو => نویسنده: norouzi90 در 28 دی 1400، 10:52 قظ
-
با سلام،
برای ادامه تحقیقم در رابطه با:
https://forum.ubuntu-ir.org/index.php?topic=154267.0 (https://forum.ubuntu-ir.org/index.php?topic=154267.0)
من نیاز دارم ویندوز را بر روی سیستمم نصب کنم. تا در محیط ویندوز از کارت گرافیکم بنچمارک بگیرم و نتایچ حاصله را با محیط
گنو/لینوکس مقایسه کنم. ولی در رابطه با نصب ویندوز سوالاتی داشتم:
۱- قبلا که ویندوز xp را نصب می کردم برای شناساندن کارت گرافیک نیاز به داشتن سی دی مادربورد بود.
آیا بازهم از همان روش استفاده می شود و بایستی سی دی مادر بورد را حتما داشته باشم؟
در ویندوزهای بعدی مانند vista و 7 و 8 و 10 و 11 هم مراحل کار مانند xp است؟ و یا اینکه در این نوع ویندوزها بصورت اتوماتیک وار
سخت افزار توسط سیستم شناسایی و نصب می گردد؟
۲- یک سی دی ویندوز 7 دارم ، نه توسط آن و نه توسط فلش مموری که دارم و ویندوز 7 را به آن رایت کرده ام، در هیچکدام کامپیوترم توسط آنها
بوت نمی شود تا ویندوز را نصب کنم و مستقیم می رود و وارد محیط لینوکس می شود.
۳-بعد از تست می خواهم ویندوز را حذف کنم و نمی خواهم سیستمم دوال بوت گردد ، آیا بعد از نصب ویندوز و انجام تست مربوطه اگر بخواهم ویندوز
را حذف کنم ، ایا تنها کافیست از یک سی دی یا فلش توزیع گنو/لینوکس استفاده کنم و با آن پارتیشنی را که در آن ویندوز نصب کرده ام را فرمت کنم و
بعد از آن مشکلی در ورود به محیط اصلی ام (دبیان) نخواهم داشت؟
۴- آیا به ذهنتان راهکار دیگری به غیر از نصب ویندوز در هاردم می رسد که توسط آن نرم افزار های بنچمارک را در محیط ویندوز و با سخت افزار فعلی ام را تست بکنم؟
-
اینجا که در مورد نصب نمیشه زیاد راهنمایی کرد یهتره توی انجمن ویندوز بپرسید که بهتر راهنمایی کنند.
اما احتمالاً اون سی دی فقط برای ویندوز ایکس پی کار کنه.
من ویندوز ۱۰ داشتم با آپدیت سیستم گرافیک خودکار نصب میشد.
بعد از اینکه ویندوز رو نصب کردید باید یک توزیع لایو داشته باشید تا گراب اوبونتو رو تعمیر کنید چون اوبونتو دیگه بالا نمیاد بعد از نصب ویندوز.
کارتون که تموم شد میرید داخل اوبونتو پارتیشن های ویندوز رو پاک می کنید و sudo update-grub می زنید تا گراب مجدداً سیستم عامل های نصب شده روی سیستم رو تشخیص بده.
-
با سلام،
برای ادامه تحقیقم در رابطه با:
https://forum.ubuntu-ir.org/index.php?topic=154267.0 (https://forum.ubuntu-ir.org/index.php?topic=154267.0)
من نیاز دارم ویندوز را بر روی سیستمم نصب کنم. تا در محیط ویندوز از کارت گرافیکم بنچمارک بگیرم و نتایچ حاصله را با محیط
گنو/لینوکس مقایسه کنم. ولی در رابطه با نصب ویندوز سوالاتی داشتم:
۱- قبلا که ویندوز xp را نصب می کردم برای شناساندن کارت گرافیک نیاز به داشتن سی دی مادربورد بود.
آیا بازهم از همان روش استفاده می شود و بایستی سی دی مادر بورد را حتما داشته باشم؟
در ویندوزهای بعدی مانند vista و 7 و 8 و 10 و 11 هم مراحل کار مانند xp است؟ و یا اینکه در این نوع ویندوزها بصورت اتوماتیک وار
سخت افزار توسط سیستم شناسایی و نصب می گردد؟
۲- یک سی دی ویندوز 7 دارم ، نه توسط آن و نه توسط فلش مموری که دارم و ویندوز 7 را به آن رایت کرده ام، در هیچکدام کامپیوترم توسط آنها
بوت نمی شود تا ویندوز را نصب کنم و مستقیم می رود و وارد محیط لینوکس می شود.
۳-بعد از تست می خواهم ویندوز را حذف کنم و نمی خواهم سیستمم دوال بوت گردد ، آیا بعد از نصب ویندوز و انجام تست مربوطه اگر بخواهم ویندوز
را حذف کنم ، ایا تنها کافیست از یک سی دی یا فلش توزیع گنو/لینوکس استفاده کنم و با آن پارتیشنی را که در آن ویندوز نصب کرده ام را فرمت کنم و
بعد از آن مشکلی در ورود به محیط اصلی ام (دبیان) نخواهم داشت؟
۴- آیا به ذهنتان راهکار دیگری به غیر از نصب ویندوز در هاردم می رسد که توسط آن نرم افزار های بنچمارک را در محیط ویندوز و با سخت افزار فعلی ام را تست بکنم؟
واقعا انتظار دارید اینجا جواب این سوال رو بگیرید؟ اگه موضوع حذف نشه خیلی شانس آوردید.
۱- نه لازم نیست حتما cd داشته باشید. معمولا دیگه درایورها رو از اینترنت دریافت میکنید.
۲- ویندوز 7 ممکنه درست از uefi پشتیبانی نکنه. مطمئن بشید که اون cd، میتونه توی حالت uefi بوت بشه. شاید بهتر باشه از ویندوز 10 استفاده کنید. اگه iso های ویندوز رو با dd بنویسید، فلش قابل بوت ایجاد نمیشه. بهتره از چیزی مثل ventoy استفاده کنید.
۳- فرمت کردن پارتیشن ویندوز کافی نیست. باید فایلهای اون رو از توی ESP هم پاک کنید. یه گزینه هم توی متغییرهای EFI داره، اون هم باید پاک بشه.
ESP مخفف EFI System Partition هست. معمولا این پارتیشن روی /boot/efi/ یا /efi/ یا /boot/ سوار میشه.
-
بهتره از چیزی مثل ventoy استفاده کنید.
ventoy را نصب کردم ولی نمی دانم چرا در فایل منیجر ( thunar ) فلشم را نشان نمی دهد.
ولی در lsblk نشان داده می شود.
-
نوروزی : سلام آقای انجمن ویندوز.
انجمن ویندوز : قبل از سلام ، لطفا برو ثبت نام کن.
نوروزی : ای به چشم.( در دلم: خدا بگم چکارت بکنه آقا دانیال، مدل کارت گرافیکم را پرسیدی و بعد معلوم نشد کجا غیبت زد !!!)
انجمن ویندوز: خوب پسرم بگو دردت چیه؟ کجات درد می کنه؟
نوروزی: چیزی نشده ، دلم برات تنگ شده بود.
انجمن ویندوز: دروغ نگو.
نوروزی:راستش...
انجمن ویندوز: الان شد.
نوروزی: بعد از چند سال فکر کردم چرا نبایستی تو لینوکس نشود با خیال راحت گیمر شد.
فکر کردم کارت گرافیکی تو لینوکس توی ظاهر ساپورت می شه...
انجمن ویندوز: قصه هزار شب نگو ، برو سر اصل مطلب.
نوروزی: کلا دو سه ساعت ویندوز توی سیستمم لازم دارم بعدش هم می خواهم پاکش کنم.
انجمن ویندوز: خوب سی دی ویندوز را بگیر و نصبش کن.
نوروزی: نمی شه.
انجمن ویندوز: خوب ببین پسرم دو تا راه داری ، یا جوابهای کلی می خوای که این یک بحثه و
یا یک کلاسهایی داریم می تونی هزینه اش را....
نوروزی: بابا نمیدونم چرا بوت نمیشه ، اگر بوت بشه ویندوز رو یک سوته ریختم توی سیستم.
انجمن ویندوز:یک جایی گند زدی، بگو ببینم.
نوروزی: راستش توی سیستمم لینوکس دارم.
انجمن ویندوز: چی، یونیکس.
نوروزی:نه، داداش کوچیکش.
انجمن ویندوز:خوب مشخصه، مثل آدم فضایی ها می روی چیزهای ناشناخته نصب می کنی، همین میشه.
نوروزی: خوب نه اونجا جوابم را می دهند و نه اینجا، کله خودم هم چیزی را نشان نمی دهد.
انجمن ویندوز: خوب یکم از مشخصات سیستم و همون داداش کوچیکه(لینوکس) را بگو تا ببینم چکار می توانم برات بکنم.
سه ساعت بعد...
نوروزی: می تونیم در لینوکس افزار ریشه را......
سه روز بعد....
انجمن ویندوز: بنظرم عوض اینکه بگویند لینوکس یا گنو/لینوکس، یک نام اختصاری پیدا کنند بهتر است.
نوروزی: حتما ، به آقای بهزادی می گویم.
انجمن ویندوز:آقای بهزادی کیه؟
..........................
یک هفته بعد........
نوروزی: تو را خدا فقط بوت بشه کافیه، خسته شدم.
انجمن ویندوز: ویندوز مثل لینوکس الکی نیست،........
یک ماه بعد......
انجمن ویندوز: ببین گل من، دو تا راه داری یا کلا یک دفعه هاردت را فرمت کن و ویندوزت را بزن یا اینکه
خیلی تعصب داری برگرد و از همون اعضای انجمن بپرس، اینبار یکم از راهش، اگر خواستی برای این هم کلاس داریم.
کلاس ارتباطات و روابط عمومی، تو اگر این کلاسها را بگذرونی می تونی بروی وسط کویر ، بخاری بفروشی یا اینکه
توی انجمن همون به اصطلاح خودتون گنو/لینوکس ، سوال ویندوز بپرسی فرداش بشوی عضو کاربران ایرانی ابونتو ، اگر یکم هم پیاز داغش را بیشتر بکنی بشوی ناظر.
اگر گفتی اگر پیاز داغش را بیشترترترتر کنی چی می شه؟
نوروزي: خوب معلوم ، می شوم عضو رسمی جهانی ابونتو ، اینطوری که ترترترتر کردی شاید هم عضو رسمی بین کهکشانی،به به!خیلی هم به به!
انجمن ویندوز: زکی، آنوقت موضوعت قفل می شه! بهمین خاطر است که می گم بیا برو توی کلاسها شرکت کن.
نوروزی:ای ،بیشتر که فکر می کنم می بینم مشکلم حل شد، اصلا مشکلی نبود که بخواد حل بشه.( در دلم: حالم از هر چی کارت گرافیکه دیگه داره بهم می خوره!)
-
دستی سوارش کن و و ایزو رو بریز روش
-
نوروزی : سلام آقای انجمن ویندوز.....می کنم می بینم مشکلم حل شد، اصلا مشکلی نبود که بخواد حل بشه.( در دلم: حالم از هر چی کارت گرافیکه دیگه داره بهم می خوره!)
;D
واقعا تلخه
انجمن اوبونتو جای عجیبیه وقتی حد اقل یک سال اینجا باشی درک میکنی
ادم های خوب فقط اینجا میمونن (الان من خوبم ؟ خوب خودم که نمیتونم نظر بدم ولی اینجا موندگار شدم )
راستی ویجت های شخص ثالث ویندزد ۱۱ یکم زیادی شبیه کی دی ای نیست ؟ پنلش ؟ البته تعجبی نداره
-
;D
مشکل دقیقا چی بود
گیم و کارت گرافیک ؟
-
بهتره از چیزی مثل ventoy استفاده کنید.
ventoy را نصب کردم ولی نمی دانم چرا در فایل منیجر ( thunar ) فلشم را نشان نمی دهد.
ولی در lsblk نشان داده می شود.
sdb1 رو یه جا مثل /mnt/ سوار کنید و iso ویندوز رو بریزید داخلش.
برای سوار کردن، باید چیکار کنید. برای ریختن اطلاعات روی اون پارتیشن، از اونجایی که مستقبم با mount و بدون آپشن خاصی سوار شده، باید دسترسی روت داشته باشید.
sdb1، با فایلسیستم exfat فرمت شده.
نمیدونم چرا توی مدیرفایل، اون پارتیشنها نمایش داده نشدند ولی دستی میتونید اون پارتیشن رو سوار کنید.
بعد از نصب ویندوز، اولویت بوتلودر ویندوز از گراب بالاتر قرار میگیره. اگه ویندوز رو توی حالت uefi نصب کرده باشید، معمولا باید توی تنظیمات uefi بتونید الویت بوتلودر ویندوز و گراب رو تغییر بدید.
اگه بخواهید ویندوز رو توی حالت legacy نصب کنید، به نتایج جالبی نمیرسید.. چون همین الان دبیان توی حالت uefi نصب شده. اگه دوتا سیستمعامل نصب کنید، یکی توی حالت uefi و یکی توی حالت legacy، نتیجه این میشه آخرش یکی درست کار نمیکنه.
-
کارهایی را که نباید بکنید(البته مثل من):
بلاخره توانستم ویندوز را نصب کنم ولی به قیمت از دست دادن همه پارتیشن های لینوکسم.
می خواستم تجربیاتی که بدست آوردم را در اختیار دوستان قرار بدهم.
البته چون من سیستمم را خراب کردم می خواهم بگویم این کارهایی که من کردم را نکنید و بدنبال روشهای بهتر باشید.
تا قیامت نمی توانستم نگاه کنم تا بلکه سی دی ویندوز بوت شود و بناچار پارتیشن efi را همین طوری فرمت کردم تا بلکه سیستم اجازه ،
بوت شدن سی دی ویندوز را بدهد(فکرکنم اینجاست که آقای Dragon- بگوید: ای داد بیداد،کارم دراومد!!!) ولی بلاخره بوت شد.
- ویندوز xp : در مراحل نصب هاردم را نشان داد بصورت ناشناخته و همچنین پارتیشن هایم را اصلا نشان نداد.
- ویندوز ۷ : در مراحل نصب هاردم و پارتیشن هایم را نشان داد ولی وقتی خواستم بر روی یکی از پارتیشن هایم ، ویندوز را نصب کنم گفت که چون هاردم ، gpt است ، نمی شود.
ویندوز ۱۰: در بازار برای ویندوز ۱۰ دو مدل وجود داشت که یک مدلش همانطور که بر روی جلد کاغذیش نوشته بود:Uefi
ویندوز ۱۰ را توانستم نصب کنم ، ولی فهمیدم که بصورت اتوماتیک وار توسط سیستم عامل firmware های سخت افزاری مربوط به کارت صدا و گرافیک و .. نصب نمی گردد، تا جایی که فهمیدم اینها را می شود از فروشگاه اینترنتی ماکروسافت نصب کرد ولی برای اینکار نیاز به داشتن اکانت می باشد. البته در اینجا من چون سی دی مادربورد و سی دی های درایورهای سخت افزاری را داشتم ، توانستم بدون مشکل آنها را نصب کنم.
البته بعد از انجام تست موردنظرم ، پارتیشن ویندوز را فرمت کردم و خواستم دوباره به آغوش گرم دبیان برگردم که در اینجا برای بازگرداندن پارتیشن efi به مشکل خوردم.
تا بحال در بیشتر خرابکاریهایم دست بدامان timeshift می شدم به امید آن، توسط سی دی لایو ،از طریق timeshift خواستم ، سیستم را بحالت قبل برگردانم ولی timeshift خطا داد. خیلی گزینه ها را اینور و آن ور کردم ولی برخلاف انتظارم ، اینکار عملی نشد ، در آن موقع تازه این را فهمیدم که timeshift تنها و فقط از پارتیشن ریشه بکاپ می گیرد، نه از پارتیشن های دیگر مانند پارتیشن efi و یا پارتیشن بوت و.... تا جایی که من فهمیدم اگر در مراحل نصب همه چیز را تنها روی یک پارتیشن نصب نمایید که کل سیستم در آن باشد،در اینگونه موارد از timeshift می توانید ، کمک بگیرید ولی وقتی در مراحل نصب چندین پارتیشن برای سیستمتان اعم از / , usr . var , tmp , boot , home در نظر بگیرید، بایستی برای backup فکر معقول تری نمایید.
بعد دست به دامان تعمیر گراب در
https://wiki.ubuntu.ir/wiki/%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8 (https://wiki.ubuntu.ir/wiki/%D8%AA%D8%B9%D9%85%DB%8C%D8%B1_%DA%AF%D8%B1%D8%A7%D8%A8)
شدم ولی فایده نداشت.
با ایزوی دبیان، با گزینه rescue mode هم کاری نتوانستم کاری از پیش ببرم.
حتی دوباره بصورت مینیمال دبیان را نصب کردم ودوباره timeshift را نصب کردم تا بلکه timeshift آن پارتیشن efi جدید را که در جای پارتیشن efi قبلی ام نصب شده را قبول کرده و سیستمم به حالت قبل restore گردد ، که نشد.
فهمیدم اینکار کمی تخصصی است و از طرفی دلم نخواست دوستان را به زحمت بیاندازم ، سیمهایم قاطی کرد و بعد همه پارتیشن های سیستمم را فرمت کردم و از نو دبیان را نصب کردم.
خلاصه گناه دارم، بعضی وقتها بگویید چی به چی است!!
-
عیبی نداره همه همینطوری هستند تا خودشون تجربه نکنند نمیفهمند
اینجا یک ضرب المثل به ذهم ادم میرسه هیچ منظوری ازش ندارم و شخص خاصی رو هم مد نظر ندارم فقط به ذهنم رسید
(یس در گوش خر خواندن )
باز هم میگم منظوری ندارم :)
-
ویندوز کلا گند می زنه به سیستم.
می خواستم دو تا ویندوز ایکس پی و ۱۰ رو بوت دوگانه بیارم ۲ روز عمرم رو هدر داد یکی رو نصب می کردی اون یکی بالا نمیومد.
یک بار هم درایور کارت گرافیک رو پاک کردم دیگه بالا نیومد به هر دری بود زدم بازم مجبور به عوض کردن ویندوز شدم.
یک عکس باز می خواستی بکنی حدود ۲ تا ۳ دقیقه باید صبر می کردی یک عکس باز بشه برنامه Photos توی ویندوز واقع ا برنامه بیخودی بود.
الان هم یک ویندوز ۱۰ کنار لینوکس دارم برای اینکه کند نباشه نسخه قدیمیشو ریختم می خوام سیستم رو خاموش کنم صفحه ورود میاد دوباره وارد دسکتاپ میشه 🤦
برادر شما هم وقتتو واسه این کارا هدر نده دنبال این باش یک چیز یاد بگیری و استفادت از سیستم هم مفید باشه و هر سری میری پای کامپیوتر یک چیزی بدست بیاری.
من رو نگاه نکن دارم روز به روز توزیع عوض می کنم چون هنوز توزیع مناسبمو پیدا نکردم 😁
وگرنه علاقه ای به از اول نصب کردن برنامه ها ندارم البته توی این توزیع عوض کردن ها کلی چیز یاد گرفتم مخصوصاً تو نصب آرچ پس این کار من مفید بوده.
ولی نصب ویندوز هیچی بهت اضافه نمی کنه الکی فقط وقتتو تلف می کنی.
-
تا قیامت نمی توانستم نگاه کنم تا بلکه سی دی ویندوز بوت شود و بناچار پارتیشن efi را همین طوری فرمت کردم.
توی ادامه، esp همون پارتیشن efi هست و به جای هم دیگه به کار میرن. مگه اینکه جایی خلاف اون گفته بشه.
لازم نبوده esp رو فرمت کنید.
اگه cd ویندوز رو توی کامپیوتر قرار میداد و بعد وارد منوی uefi میشدید، اونجایی که الویت بوت رو انتخاب میکنید، یه گزینه هم برای ویندوز باید وجود میداشت. اگه اولویت اون رو بالاتر از بقیه قرار میدادید، ویندوز باید بوت میشد. البته قبلش باید دقت میکردید که بوت از طریق cd و فلش غیرفعال نشده بوده، معمولا به طور پیشفرض، این قابلیت فعال هست.
حتی میتونستید مستقیم با دستور efibootmgr، مستقیم از خود دبیان الویت بوت رو تغییر میدادید. البته اینکه بوت از طریق cd و فلش فعال باشه رو باید از طریق منوی uefi تنظیم کنید، راه دیگهای نداره.
- ویندوز xp :
...
ویندوز xp از uefi پشتیبانی نمیکنه و توی حالت legacy بوت میشه. ویندوز xp نمیتونه روی دیسکی نصب بشه که پارتیشنتیبل اون، gpt هست. ولی فکر کنم بعد از نصب بتونه اطلاعات دیسکهایی که پارتیشنتیبل gpt دارند رو بخونه؛ مطمئن نیستم.
- ویندوز ۷ :
...
ویندوز ۷ کامل از uefi پشتیبانی نمیکنه. احتمالا این هم توی حالت legacy بوت شده بوده.
ویندوز رو میتونید یا توی حالت bios + mbr نصب کنید یا uefi + gpt. حالت دیگهای پشتیبانی نمیشه. در حالی که توی سیستمعاملهای لینوکسی، bios + mbr و bois + gpt و uefi + gpt و uefi + mbr پشتیبانی میشه. این آخری بسته به سختافزار، ممکنه درست انجام نشه چون توی بعضی مادربردها، وقتی firmware میبینه دیسکی که قراره که قراره از اون بوت انجام بشه، از mbr استفاده میکنه، حالت legacy فعال میشه.
ویندوز ۱۰:
...
ویندوز 8 و نسخههای بعدی، درست از uefi پشتیبانی میکنند.
ویندوز ۱۰ را توانستم نصب کنم ، ولی فهمیدم که بصورت اتوماتیک وار توسط سیستم عامل firmware های سخت افزاری مربوط به کارت صدا و گرافیک و .. نصب نمی گردد، تا جایی که فهمیدم اینها را می شود از فروشگاه اینترنتی ماکروسافت نصب کرد ولی برای اینکار نیاز به داشتن اکانت می باشد.
توی ویندوز، معمولا firmware به صورت خالی نصب نمیشه، درایور نصب میشه که firmware ها همراه اون هستند.
تا جایی که میدونم، درایورها از طریق قسمت windows updates نصب میشدند، نه فروشگاه مایکروسافت.
علاوه بر windows updates و cd که داشتید، میتونستید درایورها رو مستقیم از وبسایت سازنده دریافت کنید.
تا بحال در بیشتر خرابکاریهایم دست بدامان timeshift می شدم
...
همونطور که دیدید، timeshift به طور پیشفرض فقط از جاهایی پشتیبان میگیره که گفتید. esp جدا هست. به خاطر همین از اون پشتیبانی نگرفته. به غیر از این، فکر نکنم timeshift از فایلسیستمهای غیر لینوکسی پشتیبانی کنه؛ مطمئن نیستم.
وقتی esp رو فرمت کردید، فایل اجرایی گراب، که موقع بوت توسط uefi اجرا میشه رو پاک کردید در نتیجه گراب بوت نمیشده و شما به دبیان دسترسی نداشتید.
توی سیستمهای uefi، یه سری چیز به اسم متغییرهای EFI وجود داره. از طریق این متغییرها میشه چیزهای مختلفی رو تنظیم کرد. یکی از این چیزها، الویت بوت هست. این متغییرها روی یه حافظه از جنس nvram که روی مادربرد قرار داره، ذخیره میشن. جنس این حافظهها با جنس فلشها، کارتهای حافظه و ssd ها یکی هست. (ssd های سری optain اینتل، با یه تکنولوژی دیگه ساخته میشن، جنس اونها nvram نیست. یه تکنولوژی انحصاری اینتل هست)
متغییرهای مربوط به الویت بوت، مشخص میکنند که firmware باید چه فایلی رو با چه آپشنهایی، توی چه مسیری و توی چه پارتیشنی اجرا کنه.
یه قابلیت یا شاید بشه گفت مشکلی که توی اکثر پیادهسازیهای مختلف uefi هست، اینه که اگه یه فایلی بالاترین الویت بوت رو داشته باشه و بعد firmware سعی کنه اون رو اجرا کنه اما فایل وجود نداشته باشه، اطلاعات اون کلا از متغییرهای EFI پاک میشن. این حالتی هست که احتمالا برای شما پیش اومد. شما اول کار، قبل از اینکه ویندوز رو نصب کنید، esp رو فرمت کردید. با اینکار، اطلاعات اون پارتیشن از جمله فایل اجرایی گراب، پاک شدند. گراب شما احتمالا بالاترین الویت رو داشته.
بعد از راهاندازی مجدد، firmware سعی کرده چیزی که بالاترین الویت رو داشته، یعنی گراب، رو اجرا کنه؛ اما از اونجایی که اون فایل وجود نداشته، اینکار با شکست مواجه شده، در این وضعیت firmware به ترتیب الویتهای بعدی رو امتحان کرده تا اینکه بالاخره یه جایی، cd ویندوز بوت شده.
وقتی ویندوز رو نصب کردید، یه چیز دیگه به این متغییرها اضافه شد که باعث میشده بوتلودر ویندوز شناسایی بشه و الویت اون بالاتر از بقیه قرار بگیره.
وقتی ویندوز رو پاک کردید، متغییرهای اون هنوز توی حافظه nvram باقی مونده بودند، در نتیجه firmware سعی میکرده اون رو بوت کنه و اینکار رو هم میکرده. اما از اونجایی که بقیه ویندوز وجود نداشته، بالاخره یه جایی خطا میگرفتید.
علاوه بر چیزهای بالا، یه مسیر پیشفرضی توی esp هست که اگه طبق متغییرهای EFI نشد چیزی رو بوت کرد، firmware سعی کنه اون رو بوت کنه. این مسیر با توجه به معماری پردازنده متفاوته. مسیر اون به طور عمومی به شکل زیر هست
/EFI/Boot/bootARCH.efi
به جای ARCH، معماری قرار میگیره. مثلا برای معماری x86_64 یا همون x64 یا amd64 یا intel64، مسیر میشه این
/EFI/Boot/bootx64.efi
یا مثلا برای معماری arm64 میشه این
/EFI/Boot/bootaa64.efi
یا برای x86 این
/EFI/Boot/bootia32.efi
روت ( / ) رو نسبت به پارتیشن efi در نظر بگیرید. مثلا اگه پارتیشن efi روی /boot/efi/ سوار شده و مسیر فایل بالا توی سیستم شما به صورت زیر هست،
/boot/efi/EFI/Boot/bootx64.efi
مسیر اون فایل داخل پارتیشن efi، این هست.
/EFI/Boot/bootx64.efi
به بزرگ و کوچک بودن اسم فایلها، توجه نکنید. فایلسیستمهای ویندوز case insensetive هستند، به این معنی که کوچک و بزرگ بودن حروف برای اونها مهم نیست. مثلا همه اسمهای زیر رو یکی میبینند و نمیتونید یه جا، چندین فایل با این اسمها داشته باشید.
BIN
BIn
BiN
Bin
bIN
bIn
biN
bin
ویندوز، بوتلودر خودش رو داخل یه دایرکتوری توی esp ذخیره میکنه و با تغییر متغییرهای EFI، الویت رو به اون میده. علاوه بر این، بوتلودر خودش رو توی مسیر پیشفرض هم قرار میده تا اگه به هر دلیلی متغییرهای EFI کار نکردند، باز هم ویندوز بتونه بوت بشه.
اون اوایل که تازه uefi اومده بود، این مشکل تو بعضی پیادهسازیها وجود داشته که بدون توجه به متغییرهای EFI، چیزی که توی مسیر پیشفرض قرار داشت، بوت میشد.
راه حل مشکل شما این بوده که گراب رو دوباره نصب و متغییرهای EFI رو هم درست تنظیم میکردید. دستور grub-install، کار تغییر متغییرهای EFI رو به صورت خودکار انجام میده، به شرطی که به متغییرهای EFI دسترسی داشته باشه.
توی کرنل لینوکس، یه ماژول وجود داره به اسم efivarfs. این ماژول باعث میشه که کرنل بتونه با uefi و efi کار کنه. این ماژول، یه فایلسیستم api ( مجازی هست) میتونه ایجاد کنه تا بشه از طریق فضای کاربر (userspace) به متغییرهای EFI دسترسی داشت.
این فایلسیستم ایجاد شده، efivarfs نام داره و معمولا روی دایرکتوری زیر سوار میشه.
/sys/firmware/efi/efivars
توی دایرکتوری بالا، متغییرهای EFI در قالب فایلهای مختلف نمایان میشن. اکثر اونها غیر قابل تغییر هستند به این دلیل که صفت immutable برای اونها فعال شده. با دستور lsattr میتونید صفتهای یه فایل رو ببینید. اگه پنجمین کاراکتر از چپ i بود، یعنی صفت بالایی برای اون فایل فعاله. با دستور chattr میتونید اون صفتها رو تغییر بدید.
این صفت برای این گذاشته شده تا کاربر به طور اشتباهی، اون فایلها رو تغییر نده. تغییر اشتباه اونها میتونه باعث بشه سیستم بوت نشه یا حتی توی موارد بد پیادهسازی، باعث آسیب به سختافزار بشه.
این عمل سوار شدن، توسط init system، در صورتی که متوجه بشه توی حالت uefi هست، انجام میشه.
در صورتی که بخواهید دستی اینکار رو انجام بدید، اول باید مطمئن بشید که کرنل با پارامتر noefi بوت نشده. پارامترهایی که کرنل باهاش بوت شده رو میتونید توی فایل زیر ببینید.
/proc/cmdline
بعد از اینکه از بالایی مطمئن شدید، ماژول efivarfs رو بارگذاری کنید.
sudo modprobe efivarfs
الان میتونید با دستور mount، فایلسیستم رو روی مسیر درست سوار کنید.
sudo moun -t efivarfs efivarfs /sys/firmware/efi/efivars
راهنمای تعمییر گراب توی ویکی، جایی نمیگه که فایلسیستم بالایی رو سوار کنید. دستوری که برای نصب گراب داده، از آپشنهای منسوخ شده استفاده میکنه ( root-directory--)، روشی که برای نصب گراب توی حالت uefi داده، مناسب نیست و چندین مشکل دیگه هم داره. دادن مسیر دیسک وقتی که کامپیوتر توی حالت uefi بوت شده، بی تاثیر هست.
من خودم برای وقتی که میخواهم گراب رو تعمییر کنم یا با سیستم داخل chroot کاری انجام بدم که به دسترسی مستقیم به سختافزار نیاز داره، کل فایلسیستمهایی که روی /proc/ /sys/ /run/ و /dev/ به همراه هر چیزی که زیر اونها سوار شده رو توی chroot هم سوار میکنم.
از اونجایی که سوار کردن دستی اونها وقت گیره، از آپشن rbind-- همراه دستور mount استفاده میکنم تا به صورت بازگشتی، هر چی زیر اونها هست رو هم سوار کنه. اینجوری (فرض میکنیم جایی که داربم روش کار میکنیم، /mnt/ هست)
sudo mount --rbind /dev /mnt/dev
sudo mount --rbind /proc /mnt/proc
sudo mount --rbind /sys /mnt/sys
sudo mount --rbind /run /mnt/run
مطمئن نیستم که به run نیازی باشه ولی بودن اون مشکلی ایجاد نمیکنه.
مشکلی که دستورهای بالا دارند اینه که موقع unmount کردن، اذیت میکنند، به آپشن f- یا l- نیاز دارند که اونها هم مشکل خاص خودشون رو دارند، برای همین فایلسیستمهای توی chroot رو به صورت برده جایی که از روش سوار شدن در میاریم
اینکار با دادن آپشن make-slave-- ممکنه. اما از اونجایی که این آپشن فقط برای یه دایرکتوری کار میده و به زیریهای اون کاری نداره، make-rslave-- گزینه بهتری هست. عملکرد این مثل بالایی هست با این تفاوت که به صورت بازگشتی عمل میکنه و علاوه بر دایرکتوری هدف، هر چی زیر اون هست رو هم به صورت برده در میاره.
دستور میشه این
sudo mount --rbind --make-rslave /dev /mnt/dev
sudo mount --rbind --make-rslave /proc /mnt/proc
sudo mount --rbind --make-rslave /sys /mnt/sys
sudo mount --rbind --make-rslave /run /mnt/run
از اونجایی که دستورات بالا خیلی شبیه هم هستند و تایپ کردن زیادی دارند، میشه با یه حلقه تکرار کار رو راحتتر کرد. من همیشه از این استفاده میکنم.
for i in dev sys proc run; do
sudo mount --rbind --make-rslave /$i /mnt/$i
done
بعد از اینکه فایلسیستمهای بالایی رو سوار کردید، سیستم داخل chroot میتونه راحتتر با دنیای بیرون و سختافزار ارتباط بر قرار کنه.
الان میتونید وارد محیط chroot بشید و کارها رو اونجا انجام بدید.
sudo chroot /mnt
اول چیزهایی که توی fstab تنظیم شدند رو سوار کنید. این مرحله لازمه تا esp روی جای درست سوار بشه تا در ادامه، گراب فایل اجرایی خودش رو داخل اون قرار بده.
mount -a
وقتی وارد chroot میشید، به عنوان کاربر روت شناخته میشید. پس به sudo نیازی ندارید.
الان گراب رو نصب کنید
grub-install
چون توی حالت uefi هستید، لازم نیست دیسکی که گراب قراره روی نصب بشه رو بدید. اگه esp روی یکی از دایرکتوریهای /boot/efi/ یا /boot/ یا /efi/ سوار شده باشه، گراب اون رو شناسایی میکنه و فایلهاش رو توی جای درست قرار میده. دلیلش اینه که مسیرهای بالایی، جز استاندارد freedesktop هستند که توسط خیلی از برنامههای آزاد، رعایت میشه.
اگه لازمه که دستی جای esp رو مشخص کنید، آپشن efi-directory-- برای اینکار هست. مثلا برای اینکه /root/grubfiles/ به عنوان esp استفاده بشه، اینجوری دستور رو اجرا کنید
grub-install --efi-directory=/root/grubfiles
میشه به جای علامت مساوی، از فاصله استفاده کرد. این شکلی
grub-install --efi-directory /root/grubfiles
دوتا دستور بالایی توی عملکرد، هیچ فرقی با هم ندارند.
گراب به طور پیشفرض، فایلهای خودش رو توی یه دایرکتوری به اسم توزیع، توی دایرکتوری EFI توی esp قرار میده. مثلا برای دبیان، میشه مسیر زیر (یادتون باشه داریم مسیر رو نسبت به esp میگیم)
/EFI/debian
اگه میخواهید توی /EFI/Boot/ نصب بشه، میتونید از آپشن removal-- استفاده کنید. اینجوری
grub-install --removal
برای اطلاعات بیشتر درباره دستور grub-install، صفحه man اون رو ببینید
man grub-install
بعد از اینکه گراب رو نصب کردید، تنظیمات اون رو آپدیت کنید، هر چند فکر نکنم این مرحله لازم باشه.
update-grub
بعد از کارهای بالا، از chroot با ctrl + d یا exit خارج بشید.
چیزهایی که سوار کردید رو unmount کنید.
sudo umount -R /mnt
بعد باید گراب درست میشده و با راهاندازی مجدد، وارد اون میشدید.
وقتی که دبیان رو نصب کردید، esp رو هم فرمت کردید یا نه؟ اگه نکردید، احتمالا هنوز فایلهای مربوط به ویندوز، داخل esp هستند. توی دبیان و توزیعهای مبتنی بر اون، esp روی /boot/efi/ سوار میشه. اونجا رو بررسی کنید که فایلهای مربوط به ویندوز وجود داره یا نه.
ls /boot/efi
ls /boot/efi/EFI
احتمالا هنوز چیزهای مربوط به ویندوز، توی متغییرهای EFI وجود دارند. خروجی دستور efibootmgr رو بررسی کنید.
برای اطلاعات بیشتر درباره efi و uefi، میتونید صفحه مربوطه توی ویکی آرچ (https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface)، صفحه مربوط به uefi توی ویکیپدیا انگلیسی (https://en.m.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface) و این وبلاگ (https://rodsbooks.com/efi-bootloaders/index.html) رو ببینید. آخری توسط یکی از کارمندهای canonical نوشته شده. نویسنده refind و gdisk هم هست.
https://uefi.org هم وبسایت رسمی uefi هست. میتونید آخرین اخبار، مشخصات و چیزهای مربوط به uefi رو اونجا پیدا کنید. یه کانال هم توی یوتیوب دارند که هر چند ماه یه بار، ویدیوهایی درباره uefi و چیزهای مربوط به اون قرار میدهند. معمولا حدود 40 دقیقه یا بیشتر طول میکشه.
عموما افرادی اونجا صحبت میکنند که توی شرکتهایی مثل اینتل کار میکنند.
متاسفانه چیز درستی به زبان فارسی سراغ ندارم وگرنه قرار میدادم.
-
وقتی که دبیان رو نصب کردید، esp رو هم فرمت کردید یا نه؟ اگه نکردید، احتمالا هنوز فایلهای مربوط به ویندوز، داخل esp هستند. توی دبیان و توزیعهای مبتنی بر اون، esp روی /boot/efi/ سوار میشه. اونجا رو بررسی کنید که فایلهای مربوط به ویندوز وجود داره یا نه.
چون شما قبلا محبت کرده بودید و در ارسالی قبلی اتان:
۳- فرمت کردن پارتیشن ویندوز کافی نیست. باید فایلهای اون رو از توی ESP هم پاک کنید. یه گزینه هم توی متغییرهای EFI داره، اون هم باید پاک بشه.
این مورد رامتذکر شده بودید، من هم رفتم و با gparted چک کردم و چون دیدم حجم پارتیشن efi خیلی بالا رفته ، فهمیدم به احتمال زیاد فایل های مربوط به شناسایی ویندور هنوز مانده اند، بنابراین دوباره پارتیشنی efi را فرمت کردم.
در ضمن یک مورد خاص دیگری را هم می خواستم بگویم این است که زمانیکه از راهنمای ویکی برای تعمیر گراب ( در محیط لایو مینت) استفاده کردم
در بین راه دو تا خطا داد به نامهای embedding و blocklists که راهکاری که برای گذشتن از این خطاها پیدا کردم این بود که
توسط gparted ، پرچم های (manage flags) پارتیشن efi را از esp و boot به legacy-boot تغییر دادم و خطاهای داده شده دیگر نیامد
هر چند که این نوع flag گذاری برایم غیر قابل قبول بود ، بنظرم چون من دارم از پارتیشن efi استفاده می کنم ، flag هایش
بایستی esp و boot باشد و نه legacy-boot !! هر چند که علی الظاهر تعمیر گراب با موفقیت انجام شد ولی این امر باعث نشد سیستم
من بوت شود.( عکس شماره ۱)
الان هم تنها دبیان را دارم.
با تشکر مجدد از آقای Dragon- بابت تمامی لطف هایی که دارند.
-
این مورد رامتذکر شده بودید، من هم رفتم و با gparted چک کردم و چون دیدم حجم پارتیشن efi خیلی بالا رفته ، فهمیدم به احتمال زیاد فایل های مربوط به شناسایی ویندور هنوز مانده اند، بنابراین دوباره پارتیشنی efi را فرمت کردم.
این رو بررسی کردید:
احتمالا هنوز چیزهای مربوط به ویندوز، توی متغییرهای EFI وجود دارند. خروجی دستور efibootmgr رو بررسی کنید.
و این
یه گزینه هم توی متغییرهای EFI داره، اون هم باید پاک بشه.
در ضمن یک مورد خاص دیگری را هم می خواستم بگویم این است که زمانیکه از راهنمای ویکی برای تعمیر گراب ( در محیط لایو مینت) استفاده کردم
در بین راه دو تا خطا داد به نامهای embedding و blocklists
به نظر میاد گراب نتونسته تشخیص بده که سیستم توی حالت uefi بوت شده. مطمئن هستید که اون موقع، مینت توی حالت uefi بوت شده بود یا نه؟
که راهکاری که برای گذشتن از این خطاها پیدا کردم این بود که
توسط gparted ، پرچم های (manage flags) پارتیشن efi را از esp و boot به legacy-boot تغییر دادم و خطاهای داده شده دیگر نیامد
احتمالا سیستم توی حالت legacy بوت شده بوده. اگه پارتیشنتیبل gpt باشه و سیستم بخواهد توی حالت legacy بوت بشه، گراب نمیتونه درست نصب بشه.
دلیلش اینه که توی حالت legacy، فرایند بوت اینجوری هست که firmware سعی میکنه چیزی که برای بوت لازم هست رو از اول هارد بخونه.
header پارتیشنتیبل gpt، بزرگتر از mbr هست و انقدر فضای خالی توی اول دیسک باقی نمیزاره تا گراب بتونه کل فایل خودش رو اونجا قرار بده. به همین دلیل یه پارتیشن به اسم bios boot partition لازمه. در این وضعیت، گراب چیزهایی کوچک رو اول دیسک قرار میده و بعد موقع بوت، اون چیزهای کوچک قسمت اصلی رو که توی bios boot partition قرار داره رو اجرا میکنند.
bios boot partition، حجم زیادی لازم نداره، حدود 1Mib کافی هست و فرمت هم لازم نیست بشه.
بعد از اینکه flag ها رو با gparted تغییر دادید، گراب، esp رو به عنوان bios boot partition شناسایی کرده و فایلهای خودش رو توی اون قرار داده.
هر چند که این نوع flag گذاری برایم غیر قابل قبول بود ، بنظرم چون من دارم از پارتیشن efi استفاده می کنم ، flag هایش
بایستی esp و boot باشد و نه legacy-boot !!
درست فکر کردید.
این فلگهایی که توی gparted یا توی برنامههای دیگه میبینید، در واقعیت یه جور دیگه کار میکنند.
پارتیشنتیبل gpt، می.تونه برای نوع هر پارتیشن، یه guid تخصیص بده تا نوع اون از بقیه متمایز بشه.
برای esp، این guid برابر C12A7328-F81F-11D2-BA4B-00A0C93EC93B هست. برای انواع مختلف، این guid متفاوته.
اکثر برنامههای مدیریت پارتیشن، این guid رو مستقیم به کاربر نمیگن. بلکه خودشون یه منطق دیگه رو به کاربر نشون میدن و در زیر، guid رو عوض میکنند.
مثلا parted (که gparted از اون استفاده میکنه) از پرچمها استفاده میکنه. یا gdisk، از چیزی به اسم Type استفاده میکنه. ef00، مربوط به esp هست و ef01 مربوط به bios boot partotion
fdisk هم منطق خودش رو داره. منطق fdisk و gdisk شبیه هم هست ولی مقادیری که توی هر کدوم استفاده میشه، متفاوته.
توی پارتیشنتیبل mbr/dos، محدودیتهای مختلفی وجود داره و نمیشه یه guid به اون بزرگی برای نوع هر پارتیشن تعیین کرد. توی اونجا، از کد برای تشخیص نوع پارتیشن استفاده میشه. مثلا 0xEF مال esp هست. اون 0x اول میگه که این یه عدد هگزادسیمال هست (مبنای 16). اگه به مبنای 10 تبدیلش کنید، میشه 239
حواستون باشه توی پارتیشنتیبل دوتا guid داریم. یه guid برای هر پارتیشنی که ساخته میشه، گذاشته میشه. بعد میشه پارتیشن رو با این guid پیدا یا سوار کرد. توی هر سیستم، باید هر پارتیشن، باید guid یکتا داشته باشه.
یه guid هم هست که نوع پارتیشن رو مشخص میکنه. میشه چندین پارتیشن داشته که guid که نوع اونها رو مشخص میکنه، یکی باشه. مشکلی هم پیش نمیاد.
مثلا دوتا esp روی یه دیسک. یکی اصلی و یکی هم برای پشتیبانی که اگه اولی خراب شد، دومی باشه. یا چندین esp روی چندین دیسک. یا چندین پارتیشن که نوع اونها Linux باشه.
از systemd نسخه 250، یه چیزی بهش اضافه شده به اسم systemd-gpt-auto-generator. این یه generator هست و کارش اینه که فایلسیستمهایی که قرار روی / یا /home/ یا /var/ یا ... سوار بشند رو از طریق guid مربوط به نوع اونها پیدا و سوار کنه. در نتیجه میشه بعضی چیزها رو توی fstab تعریف نکرد و گذاشت systemd اونها رو راه بندازه. البته برای اینکه بتونید درست از این generator استفاده کنید، بوتلودر شما باید systemd-boot/gummiboot باشه.
میشه با دادن rd.systemd.gpt_auto=no یا systemd.gpt_auto=no به خط فرمان کرنل، کاری کنید که systemd این generator رو اجرا نکنه.
برای اطلاعات بیشتر درباره guid هایی که باید استفاده بشه و چیزهای دیگه، صفحه man مربوط به اون رو ببینید.
man systemd-gpt-auto-generator
دقت کنید این generator، از نسخه 250 اضافه شده. دبیان 11 از systemd نسخه 247 استفاده میکنه. پس اون صفحه man رو توی دبیان 11 ندارید.
rd.systemd.gpt_auto=no فقط وقتی کار میده که از dracut برای ساخت initramfs استفاده شده باشه. (و فکر کنم systemd هم باید داخل initramfs موجود باشه) دبیان و توزیعهای مبتنی بر اون، به طور پیشفرض از initramfs-tools برای ایجاد initramfs استفاده میکنند.
ولی dracut هم توی مخازن هست و میشه اون رو جایگزین initramfs-tools کنید. هر چند ممکنه dracut مشکلاتی توی دبیان داشته باشه؛ چون زیاد توی دبیان استفاده نمیشه و در نتیجه ممکنه باگهای اون پیدا نشه.
من خودم دوتا باگ توی بسته zfs-dracut توی دبیان 12 پیدا کردم که گزارش هم نشدن. یکی از اونها از دبیان 10 تا حالا هست و هنوز حل یا حتی گزارش نشده!!
اون باگها مشکل جدی درست نمیکنند ولی زیاد هم کوچک نیستند.
dracut توسط ردهت ساخته شده و اکثر توزیعها، از اون استفاده میکنند. arch به طور پیشفرض از mkinitcpio استفاده میکنه ولی dracut هم برای استفاده، توی مخازن موجوده.
هر چند که علی الظاهر تعمیر گراب با موفقیت انجام شد ولی این امر باعث نشد سیستم
من بوت شود.
گراب روی دیسک نصب شده بوده، ولی برای حالت legacy، در نتیجه وقتی سعی میکردید توی حالت uefi بوتش کنید، بوت نمیشده.
-
دو تا عکس مربوطه را در اینجا می گذارم، خودم متوجه نمی شوم که آیا چیزی از اجزاء و فایل های ویندوز در سیستمم باقی مانده است یا نه؟
-
entry مربوط به ویندوز، توی متغییرهای EFI باقی مونه. میتونید اینجوری پاکش کنید.
sudo efibootmgr -Bb 0001
البته بودنش تاثیر خاصی نداره چون فایلهای لازم برای بوتش وجود نداره.
با efibootmgr -v میتونید اطلاعات بیشتری بگیرید.
معمولا لازم نیست efibootmgr رو با دسترسی روت اجرا کنید تا اطلاعات به شما بده.
خروجی این دستور رو هم قرار بدید. هر چند بعید میدونم چیز خاصی اونجا باشه. چون esp رو فرمت کردید.
ls -la /boot/efi
-
خروجی های مربوطه در عکس می باشند.
-
به نظر درست میاد.
عحیبه که نتونستید بدون دیترسی روت، محتوای esp رو ببینید. احتمالا با آپشنهای dmask=0077 و fmask=0077 سوار شده.
خروجی این دستورات رو هم بذارید.
mount | grep /boot/efi
grep '/boot/efi' /etc/fstab
umask
grep -i 'umask' /etc/profile
grep -ir 'umask' /etc/profile.d
grep -i 'umask'/etc/bash.bashrc
البته اینکه فقط روت به esp دسترسی داره، نباید مشکلی بوجود بیاره ولی بهتره بررسی کنید که چرا اینجوری هستند.
-
خروجی دستورات.
-
به دلیل وجود fmask=0077 توی آپشنهای مربوط به esp، باعث میشه که فقط روت به esp دسترسی داشته باشه. اگه میخواهید شما هم بتونید محتویات داخل esp رو ببینید، فایل fstab رو باز کنید و defaults رو جایگزین umask=0077 کنید.
کار بالا اختیاری هست و اگه میخواهید، میتونید انجامش ندید.
-
تشکر مجدد.