<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Amirreza Hosseini</title>
        <link>https://virgool.io/feed/@devamir81</link>
        <description>امیررضا حسینی</description>
        <language>fa</language>
        <pubDate>2026-06-17 04:43:40</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/164542/avatar/slekJA.png?height=120&amp;width=120</url>
            <title>Amirreza Hosseini</title>
            <link>https://virgool.io/@devamir81</link>
        </image>

                    <item>
                <title>آموزش لینوکس رایگان و حرفه‌ای | آموزش Linux به زبان ساده</title>
                <link>https://virgool.io/@devamir81/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D9%88-%D8%AD%D8%B1%D9%81%D9%87-%D8%A7%DB%8C-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-linux-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B3%D8%A7%D8%AF%D9%87-kxjbewxpqfmt</link>
                <description>Linux Essentialsبه آموزش لینوکس رایگان و جامع خوش آمدید. این دوره آموزش لینوکس جذاب و متفاوت بوده و دروازه ورود شما به دنیای بزرگ لینوکس و نرم افزار آزاد هست. این دوره آموزش لینوکس از صفر تا صد براساس سرفصل های بین المللی Linux Essentials لینوکس اسنشیالز هست . و برای تمامی علاقه مندان مناسبه.شما بعد از یادگیری دوره Linux Essentials به راحتی می تونید با سیستم عامل های خانواده لینوکس (Linux)کار کنید و نیاز های روزمره خودتون رو برطرف کنید.علاوه بر این مقاله محتوای دوره آموزش لینوکس رایگام به طور کامل به صورت ویدیوئی ظبط شده و شما میتونید از طریق این لینک به صورت کاملا رایگان به ویدیو های دوره دسترسی پیدا کنید :دوره آموزش لینوکس رایگانآموزش لینوکس حرفه ای و جامع | آموزش Linuxآموزش linux essentials | آموزش لینوکساگه می‌خواین لینوکس رو از پایه یاد بگیری و تا سطح حرفه‌ای جلو برین ، این دوره آموزش لینوکس مقدماتی  برای شما مناسبه. در دوره Linux Essentials از مفاهیم اولیه و دستورات ساده شروع می‌کنیم و کم‌کم یاد می‌گیریم چطور سیستم‌های لینوکسی رو مدیریت کنیم. چه برای استفاده شخصی یا ورود به بازار کار، این دوره رایگان یادگیری لینوکس بهت کمک می‌کنه همه‌چیز رو قدم به قدم و به زبان ساده یاد بگیری.شما با دیدن این آموزش لینوکس  میتونید از امکانات بی‌پایان این سیستم عامل استفاده کنید. و البته از فرصت‌های شغلی گسترده و بازار کار رو به رشد این حوزه هم نمی‌شه غافل شد.لینوکس چیستقبل از اینکه بریم سراغ آموزش لینوکس بهتره که یکم درباره تاریخچه لینوکس بدونیم. و اینکه اصلا لینوکس چیست و چه کاربرد هایی داره ؟لینوکس یک سیستم‌عامل قدرتمند و منعطف هست که در قلب بسیاری از فناوری‌های حوزه IT قرار داره. این سیستم عامل به خاطر قابلیت‌های بالا و انعطاف‌پذیری زیادی که داره، در خیلی از زمینه‌ها کاربرد داره. Linux نقش خیلی مهمی توی دنیای اینترنت داره. خیلی از وب‌سرور ها و پلتفرم های  خدمات ابری و ... از Linux استفاده می کنند. به خاطر امنیت و پایداری بالا، Linux توی زیرساخت‌های بزرگ اینترنتی استفاده می‌شه و تقریباً میشه گفت که بخش زیادی از دنیای آنلاین روی این سیستم‌عامل می‌چرخه. و این سیستم عامل به‌طور مداوم توسط یک جامعه بزرگ از توسعه‌دهندگان و کاربران به‌روز می‌شه.خلاصه این روزا توی دنیای کامپیوتر رد پای لینوکس خیلی جاها پیدا میشه و این موضوع اهمیت آموزش لینوکس رو نشون میده.لینوکس از خانواده سیستم‌عامل‌های شبه یونیکس Unix-like هست. یعنی شباهت‌های زیادی به یونیکس داره که یک سیستم‌عامل قدیمی و معتبره. این شباهت ‌ها باعث شده که لینوکس در محیط‌های حرفه‌ای و تجاری هم به خوبی عمل کنه و امکانات پیشرفته‌ای رو ارائه بده.حالا اینکه اصلا یونیکس چی هست و این دوتا چه ربطی به هم دارن رو در ادامه متوجه میشیم.کرنل لینوکسدر اصل، لینوکس به خودی خود یک هسته سیستم عامل یا Kernel هست. کرنل رو میشه به عنوان قلب تپنده یک سیستم عامل درنظر گرفت . به زبان ساده تر می تونیم بگیم هر سیستم عامل تشکیل شده از یک Kernel در هسته اون و یکسری Software که دارن در کنار هم کار می کنن و امکانات مختلفی رو به شما ارایه میدن و همه با هم یک سیستم عامل رو می سازن.هسته سیستم عامل یا Kernelکرنل Linux توسط لینوس توروالدس در سال 1991 معرفی شد.توزیع های لینوکستوزیع‌های لینوکس نسخه‌های مختلفی از سیستم‌عامل لینوکس هستند که از ترکیب هسته لینوکس (کرنل) و تعداد زیادی نرم‌افزار و ابزارهای دیگه ساخته می‌شن. کرنل هسته اصلی سیستم‌عامله و کارش مدیریت سخت‌افزار و ارائه خدمات پایه‌ای به نرم‌افزارهاست. اما برای اینکه یک سیستم‌عامل کامل بشه، به ابزارها و نرم‌افزارهای دیگه هم نیازه. مثلا محیط‌های گرافیکی و برنامه‌های کاربردی و یا سرویس هایی که در پس زمینه اجرا میشن و... پس همه این ها به کرنل اضافه می‌شن تا همه در کنار هم یک توزیع کامل بسازند.مثلا، توزیع‌هایی مثل Ubuntu و Fedora شامل کرنل لینوکس به‌علاوه محیط‌های گرافیکی و نرم‌افزارهای مختلف هستن که استفاده از سیستم‌عامل رو برای کاربران راحت‌تر می‌کنن.یا اگه بخام ساده تر بگم شاید بشه اینطوری گفت که مثلا توی دنیای ویندوز میگیم ویندوز 10 یا ویندوز 7 یا  Windows XP ولی توی Linux میگیم توزیع Ubuntu یا توزیع Kali Linux یا Fedoraو...اما خبر خوب اینه که اگه شما از این دوره آموزش لینوکس استفاده کنید ، میتونید با همه این توزیع های لینوکس به راحتی کار کنید. چون همه اون ها از یک کرنل و یک پایه و اساس استاندارد استفاده می کنند.تاریخچه لینوکس : از یونیکس تا لینوکسUnixقبل از اینکه بریم سراغ آموزش لینوکس رایگان بهتره که نگاهی به تاریخچه جذاب Linux بندازیم. دونستن تاریخچه لینوکس به ما کمک میکنه که درک عمیق تری نسبت به مفاهیم بنیادی این سیستم عامل داشته باشیم و فلسفه Linux و متن باز رو بهتر درک کنیم و یادگیری لینوکس رو راحت تر پیش ببریم.همون طور که گفتم سیستم عامل لینوکس از خانواده  Unix-like  هست . پس بهتره که اول به این سوال جواب بدیم که یونیکس چیه و از کجا اومده ؟یونیکس چیست ؟توسعه یونیکس در سال 1969 توسط شرکت AT&amp;T در آزمایشگاه‌های بل (Bell Labs) آغاز شد.  این سیستم‌عامل به خاطر طراحی ساده و قدرتمندش، به سرعت در دانشگاه‌ها و شرکت‌های فناوری محبوب شد.از جمله افراد برجسته تیم توسعه‌دهنده یونیکس می تونیم به کن تامپسون و دنیس ریچی اشاره کنیم.آقای Ken Thompson  نقش کلیدی در طراحی اولیه یونیکس داشت. و آقای Dennis Ritchie هم به خاطر توسعه زبان برنامه‌نویسی C ، که برای نوشتن یونیکس استفاده شد، شناخته می‌شه. این زبان و سیستم‌عامل به‌طور گسترده‌ای در دنیای کامپیوتر تاثیرگذار بودند.نسخه های مختلف Unix :پس از ظهور یونیکس ، شرکت‌های مختلف شروع به توسعه نسخه‌های تجاری و تخصصی خود شون از این سیستم‌عامل کردن. این نسخه‌های تجاری بر پایه کدهای اصلی یونیکس توسعه یافتند. اما با اضافه کردن ویژگی‌ها و بهبودهای خاص خودشون ، به نیازهای تجاری و صنعتی پاسخ دادند.به عنوان مثال :یونیکس HP-UX  که توسطHewlett-Packard توسعه یافت، به بهینه‌سازی‌های خاص برای سرورهای HP پرداخته و ویژگی‌های مدیریتی و امنیتی ویژه‌ای اضافه کرد.یونیکس AIX که توسط IBM توسعه یافته، با تمرکز بر سخت‌افزارهای IBM و ویژگی‌های پیشرفته در مدیریت منابع، به یک انتخاب محبوب در محیط‌های تجاری تبدیل شد.یونیکس Solaris که در ابتدا به نام SunOS  شناخته می‌شد و توسط Sun Microsystems توسعه یافته بود.و ...در تصویر زیر میتونید یک نمودار کلی از سیر تکاملی سیستم عامل های خانواده Uinx رو مشاهده کنید :Unix Familyبنیاد نرم‌افزار های آزاد چیست ؟یکی از مباحث جالب و مهم آموزش لینوکس ، دونستن مفهوم آزادی نرم افزار هست. اصلا زمانی که درباره Free Software یا نرم افزار آزاد صحبت می کنیم یعنی چی ؟در دهه‌های 1980 و 1990، با توجه به اینکه یونیکس به عنوان یک سیستم عامل تجاری و پرهزینه باقی مونده بود، نیاز به یک سیستم‌عامل مشابه اما رایگان و قابل دسترسی برای عموم احساس می‌شد. علاوه بر این ، در اون زمان، نرم‌افزارها عمدتاً توسط شرکت‌های بزرگ توسعه داده می‌شدند و این شرکت‌ها اجازه نمی‌دادند که کاربران به Source Code های این نرم‌افزار ها دسترسی داشته باشند یا اون‌ها رو تغییر بدن.در این دوران آقای ریچارد استالمن که به همکاری و اشتراک‌گذاری دانش اعتقاد داشت ، تصمیم گرفت راهی پیدا کنه که مردم بتونن آزادانه از نرم‌افزارها استفاده کنن و اون‌ها رو به اشتراک بگذارن. نهایتا استالمن بنیاد نرم افزار های آزاد و پروژه گنو GNU Project رو بنیان گذاری کرد.پروژه گنو Gnu Projectآقای Richard Stallman در سال 1983 یک پروژه جدید رو شروع کرد و اسمش رو گذاشت گنو GNU و هدفش این بود که یک سیستم‌عامل کاملاً آزاد و متن‌باز شبیه به یونیکس بسازه. اما با این تفاوت که همه می‌تونستن آزادانه ازش استفاده کنن.جالبه که بدونید کلمه GNU مخفف GNU is not Unix هست. و برای حمایت از این ایده، در سال 1985، ریچارد استالمن بنیاد نرم‌افزارهای آزاد (Free Software Foundation) رو تأسیس کرد. این بنیاد به دنبال ترویج و حمایت از نرم‌افزارهای آزاد بود.GNU Projectآزادی نرم‌افزار چیست؟استالمن معتقد بود که نرم‌افزار آزاد باید چهار آزادی اصلی داشته باشه:آزادی اجرا:  شما باید بتونید هر نرم‌افزاری رو برای هر کاری که دوست دارید استفاده کنید، بدون اینکه کسی مانع شما بشه.آزادی مطالعه و تغییر:  شما باید بتونید کدهای منبع نرم‌افزار رو ببینید و اگه خواستید، اون‌ها رو تغییر بدید.آزادی توزیع:  شما باید بتونید نسخه‌های کپی شده از نرم‌افزار رو با دیگران به اشتراک بذارید.آزادی توزیع نسخه‌های تغییر یافته : اگه نرم‌افزار رو تغییر دادید، باید بتونید نسخه تغییر یافته رو هم با دیگران به اشتراک بذارید.پس هر نرم افزاری که این 4 تا آزادی رو داشته باشه یک  Free Software یا نرم افزار آزاد در نظر گرفته میشه.یکی از ویژگی‌های جالب نرم‌افزارهای آزاد اینه که برنامه‌نویس‌ها از سراسر دنیا می‌تونن به صورت داوطلبانه توی توسعه این نرم‌افزارها مشارکت کنن. این همکاری باعث می‌شه که دانش و تجربه‌های مختلف به اشتراک گذاشته بشه و نرم‌افزارها سریع‌تر و بهتر پیشرفت کنن. در واقع، همه از این همکاری سود می‌برن و کاربران هم از نرم‌افزارهای بهتر و قدرتمندتری بهره‌مند می‌شن.درک مفهوم آزادی نرم افزار یکی از مهم ترین مفاهیم دوره Linux Essentials هست. حالا شما میشین که مثلا وقتی میگیم Linux یک نرم افزار آزاد هست یعنی چی ...لینوکس چگونه به وجود آمد ؟رفته رفته بعد از گذشت مدتی ، برنامه نویس های زیادی از سرتاسر دنیا شروع کردن به مشارکت در پروژه GNU . و تعداد زیادی نرم افزار آزاد منتشر شد. اما هنوز هسته یا همون Kernel که برای ساختن یک سیستم عامل رایگان ضروری بود ، ساخته نشده بود و جای خالیش به شدت احساس می شد.اینجا بود که در سال 1991 آقای لینوس توروالدس ( Linus Torvalds ) که یک دانشجوی فنلاندی بود، تصمیم گرفت یک کرنل جدید به نام Linux  بسازه. و این Kernel روکه با الهام گرفتن از ویژگی های Unix ساخته شده بود رو منتشر کرد و اون رو به عنوان یک Free Softwareمعرفی کرد.کرنل Linux خیلی سریع پیشرفت کرد و مورد استقبال قرار گرفت .  و کاربر ها تونستن با ترکیب کردن کرنل Linux  به علاوه نرم افزار های آزادی که در پروژه GNU به وجود اومده بودن ، سیستم عامل (یا توزیع) های گنو لینوکسی رو به وجود بیارن.Linus Torvaldsnusپروژه GNU و کلا مباحث نرم افزار آزاد هم داستان مفصلی داره که توی ویدیو کامل تر تر توضیح دادم. و برای اینکه این مقاله خیلی طولانی نشه شما رو ارجاع میدم به ویدیو قسمت اول دوره آموزش لینوکس رایگان که در ابتدای مقاله لینکش رو قرار دادم. و پیشنهاد می کنم که اگه به این مباحث تاریخچه علاقه دارین مستند Revolution OS رو ببینید.معرفی دوره آموزش لینوکس رایگان و ویژگی‌های آندوره آموزش لینوکس از صفر تا صد بر اساس مفاهیم Linux Essentials طراحی شده . این دوره آموزش لینوکس کاملا رایگان هست به شما کمک می‌کنه تا به‌سادگی و بدون نیاز به پیش‌زمینه خاصی، مهارت‌های اولیه کار با سیستم عامل لینوکس رو یاد بگیرید.به زبون ساده میشه گفت که دوره Linux Essentials مثل دوره ICDL توی دنیای ویندوز هست. تو دوره ی ICDL  شما مهارت های مهم و پایه ای کارکردن با کامپیوتر رو با استفاده از سیستم عامل ویندوز یاد میگیرید . ولی توی این دوره مهارت های اولیه و ضروری برای کارکردن با سیستم عامل لینوکس رو یاد می گیرید.سرفصل‌های دوره آموزش لینوکسدر این دوره آموزش لینوکس با مفاهیم و ابزارهای اصلی لینوکس آشنا می‌شید. اینجا چندتا از موضوعات مهمی که پوشش داده می‌شه رو به صورت کلی بهتون معرفی می‌کنم :معرفی لینوکس و تاریخچه اون : درباره اینکه Linux چیه، از کجا اومده و چرا اینقدر محبوب شده صحبت می‌کنیم. همچنین با مفاهیم نرم افزار های آزاد و مباحث copy right , copy left و انواع لایسنس ها آشنا میشیم.نصب و راه‌اندازی Linux : یاد می‌گیرید چطور انواع لینوکس های متعارف رو به صورت اصولی روی کامپیوترتون نصب کنید و با محیط کاربری اون آشنا میشید.کار با خط فرمان (Command Line) : خط فرمان یا ترمینال جاییه که خیلی از کارهای Linux توش انجام می‌شه. اینجا دستورات پایه و کاربردی رو یاد می‌گیرید و با ترفند های کاربردی آشنا می‌شید.مدیریت کاربران و دسترسی‌ها: سیستم عامل لینوکس به شما اجازه می‌ده که کاربران مختلف بسازید و براشون سطح دسترسی تعیین کنید. توی این بخش، این مفاهیم رو به زبان ساده یاد می‌گیرید.مدیریت نرم‌افزارها و بسته‌ها: یکی از بخش‌های مهم سیستم عامل Linux مدیریت بسته‌ها و نصب نرم‌افزارهاست. اینجا یاد می‌گیرید چطور نرم‌افزارهای مختلف رو نصب، به‌روز و حذف کنید.شبکه و امنیت در Linux : سیستم عامل لینوکس خیلی توی شبکه‌ها و سرورها استفاده می‌شه. توی این قسمت، مبانی شبکه و نکات ابتدایی اون رو در لینوکس بهتون یاد می‌دیم.مخاطبین هدف:دوره آموزش لینوکس ما برای همه مناسبه؛ چه اونایی که تازه با لینوکس آشنا شدن و چه کسایی که می‌خوان مهارت‌های جدیدی یاد بگیرن. اگه دانشجو یا علاقمند به IT هستین یا کسی هستین که در این زمینه مشغول به کار هست اما به دنبال ارتقای شغلی و یادگیری مهارت های جدیده ، این دوره می‌تونه براتون مفید باشه. اگر هم به دنیای هک و امنیت علاقه مند هستین باید بگم که Linux یک عضو جدا نشدنی و ضروری در این حوزه هستش. و میتونید یادگیری لینوکس رو با این دوره شروع کنید.روش تدریس و منابع آموزش لینوکس:آموزش‌ لینوکس در این دوره هم به صورت ویدیویی و هم به صورت متنی در قالب مقاله هایی کامل و جامع و با زبانی ساده ارائه شده تا همه بتونن به راحتی یاد بگیرن.و نحوه تدریس به صورت عملی هست تا بتونید مفاهیمی که گفته میشه رو در عمل ببینید و بهشون مسلط بشید. همچنین منابعی مثل مقالات و کتاب‌های پیشنهادی هم بهتون معرفی می‌شه تا اگه خواستید بیشتر یاد بگیرید، دسترسی داشته باشید.مسیر دوره‌ های یادگیری لینوکساگه تازه‌کار هستید یا به دنبال یادگیری لینوکس به صورت حرفه ای هستید، مسیر دوره‌های LPI یکی از بهترین راه‌هاست. LPI (Linux Professional Institute) یکی از معتبرترین مدارک Linux در دنیا رو ارائه می‌ده که در چند سطح مختلف شما رو برای کارهای حرفه‌ای آماده می‌کنه. این دوره‌ها از سطح مقدماتی تا پیشرفته، برای همه سطوح مناسب هست. در ادامه به صورت خیلی کلی و ساده نگاهی گذرا به حد و حدود این دوره ها می اندازیم:دوره Linux Essentials (لینوکس مقدماتی)این دوره، برای اون‌هایی طراحی شده که تازه می‌خوان با لینوکس آشنا بشن و هیچ پیش‌زمینه‌ای ندارن. با گذروندن این دوره، شما می‌تونید پایه‌های اصلی Linux رو یاد بگیرید و بعد به سطح‌های بالاتر برید.سرفصل های دوره Linux Essentials رو هم که بالاتر گفتم براتون.این دوره اولین قدمه و شما الان اینجا قرار دارین.بعد از گذروندن این دوره، می‌تونید وارد مسیر حرفه‌ای‌تری بشید.LPIC-1(مدیریت Linux در سطح پایه)در ادامه مسیر یادگیری لینوکس این دوره برای کساییه که می‌خوان توی زمینه مدیریت سیستم‌های لینوکس کار کنن. بعد از یادگیری دوره Linux Essentials وارد این دوره میشین : یاد می‌گیرید چطور لینوکس رو نصب و پیکربندی کنید.مدیریت کاربرها، گروه‌ها، فایل‌ها و دسترسی‌ها رو تمرین می‌کنید. با مباحث شبکه‌ای ساده و کار با سرورهای پایه مثل وب‌سرور و SSH آشنا می‌شید و...LPIC-2(مهندسی لینوکس در سطح پیشرفته)اگه تجربه بیشتری در Linux دارید و می‌خواید مدیریت پیشرفته‌تری رو برعهده بگیرید، LPIC-2 مرحله بعدیه. توی این سطح شما:با مباحث شبکه‌ ای پیشرفته‌تری کار می‌کنید.مدیریت سرویس‌های پیچیده‌تر مثل ایمیل سرورها و DNS رو یاد می‌گیرید.تنظیمات امنیتی بیشتری رو بررسی می‌کنید.مدیریت کرنل و بهینه‌سازی سیستم رو تمرین می‌کنید.LPIC-3(مدیریت پیشرفته در سطح سازمانی)این دوره برای حرفه‌ای‌ها و کساییه که در سازمان‌های بزرگ با سیستم‌های لینوکسی کار می‌کنن. مباحث کلی دوره  LPIC-3 :با تنظیمات و مباحث امنیتی پیشرفته‌تر کار می‌کنید.یاد میگیرید چطور سیستم‌های لینوکسی رو در مقیاس بزرگ و سازمانی مدیریت کنید.مجازی‌سازی و سرویس‌دهی شبکه‌های بزرگ رو تجربه می‌کنید.این اولین قسمت در دوره آموزش لینوکس ما بود و لینک سایر قسمت ها هم بعد از انتشار در ویرگول و یوتیوب در همین صفحه قرار می گیره.پلی لیست دوره آموزش لینوکسهر سوالی هم داشتین توی کامنت ها در خدمتم.امیدوارم براتون مفید باشه و استفاده کنید. با تشکر امیررضا حسینی</description>
                <category>Amirreza Hosseini</category>
                <author>Amirreza Hosseini</author>
                <pubDate>Mon, 30 Sep 2024 00:56:10 +0330</pubDate>
            </item>
                    <item>
                <title>ساخت ویندوز سفارشی با برنامه های دلخواه | ویندوز کاستوم بوتیبل</title>
                <link>https://virgool.io/@devamir81/%D8%B3%D8%A7%D8%AE%D8%AA-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C-%D8%A8%D8%A7-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%D8%AF%D9%84%D8%AE%D9%88%D8%A7%D9%87-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2-%DA%A9%D8%A7%D8%B3%D8%AA%D9%88%D9%85-%D8%A8%D9%88%D8%AA%DB%8C%D8%A8%D9%84-vsolncft3tno</link>
                <description>در این مقاله ، آموزش ساخت ویندوز سفارشی یا ویندوز کاستوم با برنامه های دلخواه رو یاد می گیریم. با استفاده از این آموزش شما می تونید یک ویندوز 10 سفارشی با برنامه های دلخواه بسازید و هرکجا که بخاین اون رو نصب کنید. البته این روش برای تمام نسخه های ویندوز ازجلمه ویندوز 11 ، 8.1 و 7 هم کاربرد داره.ساختن یک ویندوز سفارشی یا ویندوز کاستوم می تونه تا حد بسیار زیادی در زمان شما صرفه جویی کنه. مخصوصا برای helpdesk ها و ارائه دهندگان خدمات کامپیوتری که معمولا زیاد کار نصب ویندوز رو انجام میدن. دیگه نیازی نیست بعد از هر بار نصب کردن ویندوز فرآیند های تکراری نصب برنامه های کاربردی مثل office و web browser و media player و... رو انجام بدین. فقط کافیه با استفاده از فایل iso که از ویندوز سفارشی تون ساختید عملیات نصب ویندوز رو انجام بدین و یک ویندوز کامل و آماده به کار خواهید داشت !در این مقاله تمام مراحلی که باید انجام بدین مو به مو توضیح داده شده. اما اگه حوصله ندارین که این متن رو بخونید می تونین از ویدیو این آموزش استفاده کنید که اونجا هم همه چیز رو کامل توضیح دادم :ساخت ویندوز سفارشی یا ویندوز کاستوم با برنامه های دلخواهساخت ویندوز سفارشی یا ویندوز کاستوم با برنامه های دلخواه : فرآیند کلی ساخت ویندوز کاستوم یا سفارشی به این صورت هست که ابتدا باید روی یک کامپیوتر یا ماشین مجازی یک نسخه معمولی از ویندوز رو نصب کنیم. سپس باید روی اون تمامی نرم افزار های کاربردی و مورد نیاز مون رو نصب کنیم. و همه تنظیماتی که لازم داریم رو هم بر روی ویندوز اعمال کنیم. به این کامپیوتر یا ماشین مجازی (VM) اصطلاحا میگیم Reference Computer یا Reference Pc. بعدش باید از ویندوز Reference Computer مون که آماده کار شده و تمامی برنامه های مورد نیاز ما رو داره ، یک ایمیج (image) بگیریم. و در ادامه این image رو تبدیل به یک فایل ISO می کنیم تا بتونیم برای نصب ویندوز از اون استفاده کنیم. در اینجا من روی یک ماشین مجازی ویندوز 10 نصب کردم.به همراه چندین برنامه از جمله office ، anydesk ، vlc ، Firefox و ... شما می تونید هر ویندوزی دیگه که دوست دارین رو نصب کنید. دقت کنید که من روی این ماشین مجازی دو تا پارتیشن ساختم. یکی که برای درایو C هست و ویندوز روش نصبه. دومی هم بخاطر این ساختم که ایمیجی که از ویندوز می گیرم رو داخل اون پارتیشن بتونم ذخیره کنم. حجم این پارتیشن دوم هم 10 گیگ در نظر گرفتم که برای image ویندوز من با این نرم افزار هایی که روش نصب کردم کافی خواهد بود.Reference Computerقبل از اینکه بتونیم از این ویندوز image بگیریم باید یکسری کار ها انجام بدیم که در ادامه یکی یکی توضیح میدم.حذف کردن همه user ها به غیر از Administrator : یکی از کار های مهمی که در فرآیند ساخت ویندوز کاستومایز شده باید انجام بدیم اینه که همه کاربر ها غیر از Administrator رو حذف کنیم. اگه این کار رو نکنیم باعث میشه هر بار که با استفاده از این فایل iso ویندوز سفارشی مون جایی ویندوز نصب می کنیم ، اونجا هم این user ها به صورت تکراری ایجاد بشن.مثلا اگه من الان روی این Reference Computer یک کاربر به نام amirreza داشته باشم ، بعدا هر جا که این ویندوز سفارشی رو نصب کنم این کاربر اونجا هم به صورت خودکار ساخته میشه.برای اینکه بفهمیم در حال حاضر با چه یوزری وارد ویندوز شدیم میتونیم cmd رو باز کنیم و اسم یوزر مون رو مشاهده کنیم. مثلا اینجا من دارم از یوزر amirreza استفاده می کنم.برای اینکه این یوزر رو حذف کنم ، باید وارد کنسول local users and groups بشم. برای این کار کلید های  Win + R رو فشار میدم تا پنجره Run باز بشه. و داخلش تایپ می کنم  lusrmgr.msc و اینتر می کنم.در پنجره باز شده وارد پوشه users میشم و لیست تمام یوزر هایی که روی ویندوزم وجود داره رو می بینم.حالا باید کاربر Administrator که به صورت پیشفرض غیرفعاله رو فعال کنم تا بتونم بهش login کنم. و بعدش از اونجا کاربر amirreza (همین یوزری که در حال حاضر داخلش هستم) رو حذف کنم.روی Administrator راست کلیک می کنم و گزینه Properties رو میزنم. بعدش تیک Account is disabled رو برمیدارم و ok  رو میزنم.local users and groups حالا از این یوزر (amirreza) sign out میکنم و با کاربر Administrator لاگین میکنم.وقتی با اکانت ادمین وارد شدم باید از توی کنترل پنل در قسمت  user accoutns کاربر amirreza رو به همراه تمام فایل هاش حذف کنم. انجام دادن عملیات sysprep : در مرحله بعد پس از اینکه user های مورد نظر رو حذف کردیم ، باید از داخل همون اکانت Administrator ویندوز مون رو sysprep کنیم. حالا اصلا sysprep کردن یعنی چی ؟شما وقتی که ویندوز رو نصب می کنید ، windows  به صورت خودکار یکسری درایور ها رو شناسایی میکنه. یا ممکنه یکسری درایورد ها رو خودتون به صورت دستی نصب کنید. همه این driver ها صرفا مربوط به سخت افزار کامپیوتر شما هستن که روی ویندوز نصب شدن. و قطعا برای یک کامپیوتر دیگه با سخت افزار متفاوت ، درایور های متفاوتی وجود داره. غیر از بحث درایور ها ، ویندوز برای هر آبجکتی که داره یک ID یا شناسه کاملا منحصر به فرد تولید میکنه. مثلا هر یوزری که شما روی ویندوزتون دارین یک SID یا Security ID داره که دقیقا مخصوص همون user هست و کاملا یونیک و غیر تکراریه. همچنین گروه هایی که توی ویندوز داریم ، هر کدوم یک GUID دارن که اینم منحصر به فرده.علاوه بر اینا هر ویندوزی یک Computer Name داره که ترکیبی از حروف و اعداد هست. این شناسه هم باید در سطح یک شبکه برای هر کامپیوتر منحصر به فرد باشه.حالا از اونجایی که ما در فرآیند ساختن ویندوز کاستوم یا ویندوز سفارشی میایم و از ویندوزی که روی Reference Computer مون نصب شده به طور کامل image تهیه می کنیم ، درنتیجه تمام این اطلاعاتی که دربالا نام بردم دقیقا در داخل اون فایل image ذخیره میشن. یعنی هر جا که بخایم با استفاده از اون image ویندوز نصب کنیم ، این اطلاعات دقیقا به همون صورتی که روی Reference Pc مون بودن باقی می مونن. این موضوع میتونه خیلی مشکل ساز باشه هم در سطح شبکه و هم از لحاظ بحث درایور ها.به زبان ساده ، شما وقتی ویندوز رو sysprep می کنید ، تمام این اطلاعات ریست می شه و دیگه وابستگی به کامپیوتر و سخت افزار شما نداره. و شما می تونید به راحتی از این image برای نصب ویندوز روی هر کامپیوتری استفاده کنید.برای این کار کلید های Win + R رو میزنیم تا پنجره Run باز بشه. سپس داخلش می نویسیم sysprep و Enter می زنیم. بعد روی آیکون sysprep راست کلیک می کنیم و Run as Administrator رو می زنیم.در پنجره باز شده ، System Cleanup Action رو روی گزینه اول بزارید. و تیک گزینه Generalize رو هم بزنین. Sutdown Options رو هم روی Shutdown تنظیم کنید. بعدش ok رو بزنید تا عملیات System Preparation آغاز بشه. بعد از اتمام کار سیستم به صورت خودکار خاموش میشه.ایمیج گرفتن از ویندوز سفارشی : بعد از اینکه کامپیوتر یا ماشین مجازی خاموش شد ، باید یک دیوایس bootable ویندوز ، مثلا dvd یا usb بهش وصل کنید. البته اگه با ماشین مجازی این کار رو دارید انجام میدید فقط کافیه یک iso از ویندوز (فرقی نداره چه نسخه ای) رو داخل cdrom ماشین مجازی قرار بدین.بعدش سیستم رو روشن کنید. دقت کنید که نباید بزارید مراحل بوت شدن Windows شروع بشه. و سریع وارد Bios بشین و سیستم رو از روی اون iso ویندوز بوت کنید و وارد مرحله نصب ویندوز بشین.به این محیطی که هنگام نصب ویندوز داخلش هستیم اصطلاحا میگن WinPE یا Windows Preinstallation EnvironmentWinPEحالا باید از کل اطلاعات داخل درایو C (که محل نصب ویندوز و برنامه ها هستش) یک image بگیریم. این ایمیج یک فایل با پسوند WIM خواهد بود. و شما ، هم می تونید اونو تبدیل به فایل iso کنید و باهاش ویندوز نصب کنید. و هم می تونید از این فایل WIM توی سرویس WDS استفاده کنید و از طریق شبکه عملیات نصب ویندوز رو انجام بدین.مشخص کردن اسم پارتیشن ها : برای شروع از روی کیبورد کلید های Shift + F10 رو بزنید تا پنجره cmd براتون باز بشه. حالا توی command prompt باید یکسری دستور وارد کنیم. اگه یادتون باشه اول مقاله اشاره کردم که من روی این ماشین مجازی دو تا پارتیشن دارم. هر پارتیشن یک drive letter داره که درواقع همون اسمش هست. در اینجا ابتدا باید drive letter های پارتیشن هامونو مشخص کنیم . چون ممکنه تغییر کرده باشن. برای این کار دستورات زیر رو وارد می کنیم :disk partlist volumeاینجا شما لیست پارتیشن ها به همراه حجم و اسم اون ها رو می بینید. و باید از روی حجم شون تشخیص بدین که کدوم drive letter مربوط به درایو C هست و کدوم ماله اون درایو 10 گیگابایتی دیگه هست.مثلا در اینجا Drive letter درایو C به D تغییر کرده و اون درایو 10گیگی هم F هست. این ها رو یک جا یاد داشت کنید تا یادتون بمونه. گرفتن ایمیج WIM از ویندوز :حالا باید از درایو C ماشین مجازی مون ایمیج بگیریم و داخل اون درایو دیگه ذخیره کنیم. برای این کار از دستور dism استفاده می کنیم.dism /capture-image /imagefile:E:\install.wim /capturedir:F:\ /ScratchDir:E:\Scratch /name:&amp;quotWIN10PROx64&amp;quot /compress:maximum /checkintegrity /verifyجلوی عبارت imagefile باید آدرس جایی که فایل ایمیج مون که قراره ذخیره بشه رو بدیم. که من آدرس اون پارتیشن 10 گیگابایتی رو میدم. و اسم و پسوند رو هم install.wim بزارید.بعد از capturedir هم باید آدرس درایو C رو بدیم تا به طور دقیق از همه محتویاتش Capture بگیره.جلوی scratchdir هم میتونید آدرس یک پوشه رو بدین که یکسری فایل های موقتی در حین مراحل ایمیج گرفتن داخلش ذخیره بشه. البته این پارامتر اصلا اجباری نیست و میتونید کلا ننویسید اونو. من از قبل یک پوشه برای این کار توی پارتیشن F ساختم که آدرسشو میدم.برای name هم یک اسم دلخواه بدینجلوی عبارت compress هم باید مقدار فشرده سازی ایمیج تون رو مشخص کنید. فشرده سازی سه سطح none , fast, maximum رو داره. در حالت none اصلا فشرده سازی انجام نمیشه. حالت fast فشرده سازی متوسط و حالت maximum هم حداکثر فشرده سازی رو انجام میده. طبیعتا هر چی فشرده سازی بیشتر باشه حجم ایمیج نهایی ما کمتر خواهد بود.دو پارامتر آخر verify و checkintegrity هم برای اطمینان حاصل کردن از سالم بودن فایل ایمیج ما هست.حتما دقت کنید که اینجا برای آدرس دهی ها از اون drive letter هایی که در مرحله قبلی پیدا کردیم باید استفاده کنید. و طبق اون ها آدرس دهی کنید.در نهایت دستور رو اجرا میکنیم و منتظر میشیم که گرفتن ایمیج 100 درصد به اتمام برسه. که یکم زمان می بره.زمانی که با چنین پیغامی رو به رو شدین ، ایمیج شما آمادس. و میتونید وارد اون پارتیشن دیگه بشین و ببینید که ایمیج ساخته شده یا نه .f:dirهمون طور که میبینید فایل ما ساخته شده :)حالا باید ماشین مجازی رو restart کنیم و بزاریم تا ویندوز Reference Pc مون بیاد بالا . بعد باید این فایل install.wim رو با فلش یا با استفاده از هر چیز دیگه برای خودمون انتقال بدیم تا بتونیم ازش استفاده کنیم.تبدیل فایل WIM به ISO بوتیبل ویندوز : بعد از اینکه فایل WIM رو برداشتیم ، وقت اون رسیده که تبدیلش کنیم به iso تا بتونیم باهاش ویندوز نصب کنیم. البته همونطور که گفتم میتونید از این فایل WIM مستقیما در سرویس WDS هم استفاده کنید که موضوع بحث ما نیست.کپی کردن فایل های مورد نیاز برای ساخت iso : برای ساختن iso نهایی و اختصاصی خودمون احتیاج به یکسری فایل داریم. این فایل ها رو باید از محتویات یک iso معمولی ویندوز استخراج کنیم. من از قبل یک iso معمولی ویندوز 10 داشتم که باهاش Reference Computer رو آماده کردم. همون iso رو mount  می کنم و تمام اطلاعاتشو توی یک پوشه داخل کامپیوترم کپی می کنم.حالا وارد اون پوشه میشم و بعدش وارد دایرکتوری sources میشم. اینجا یک فایل install.wim وجود داره که ماله همین نسخه معمولی ویندوز هست. شما باید این فایل رو پاک کنید و بجاش اون فایل install.wim رو که از ویندوز سفارشی یا ویندوز کاستوم خودمون ساختیم رو اینجا کپی کنید. درواقع با جایگزین کردن این دوتا فایل وقتی ویندوز با استفاده از این فایل install.wim جدید نصب بشه ، دقیقا همون ویندوز 10 اختصاصی خودمون نصب میشه.نصب ابزار Windows ADK :برای اینکه بتونیم این محتویات رو تبدیل به یک iso قابل نصب بکنیم ، احتیاج به ابزار Windwos ADK داریم. این ابزار رایگان هست و از سایت مایکروسافت قابل دانلوده. فقط حواستون باشه که نسخه مناسب با ویندوز خودتون رو دانلود کنید. برای اینکه ببینید قیقا از چه نسخه ای از ویندوز دارین استفاده می کنید ، داخل صفحه run تایپ کنید winver و اینتر بزنید تا اطلاعات دقیق بهتون نشون داده بشه.وقتی فایل مناسب رو دانلود کردین ، در مراحل نصب فقط تیک پکیج Deployment Tools رو بزنید و بقیه تیک ها رو بردارید و بزارید تا نصب بشه.Windows ADKبعدش از داخل Start Menu و پوشه Windows kits روی Deployment and imaging Tools Environment کلیک کنید. در صفحه باز شده باید آخرین دستورات رو اجرا کنید تا فایل iso نهایی براتون ساخته بشه.Oscdimg -bootdata:2#p0,e,bD:\isofiles\Etfsboot.com#pEF,e,bD:\isofiles\Efisys.bin -u1 -udfver102 D:\isofiles\ D:\CustomIso.isoدر این دستور هرجا آدرس D:\isofiles\ رو می بینید ، درواقع آدرس جایی هست که محتویات فایل iso رو کپی کردم. و شما هم آدرس دهی ها رو طبق اون اسم گذاری هایی که خودتون انجام دادین تغییر بدین.و عبارت D:\CustomIso.iso آدرس و اسم دلخواهی هست که برای فایل ایزو نهایی مون انتخاب کردم تا اینجا ذخیره بشه.بعد از وارد کردن دستور صبر می کنیم که کار تموم بشه.تبریک !!! فایل iso ویندوز سفارشی شما ساخته شد. حالشو ببرید : )امیدوارم براتون مفید بوده باشه و بتونید با این ترفند توی زمانتون صرفه جویی کنید.هر سوالی هم داشتین بپرسید ، حتما جواب میدم.امیررضا حسینیYoutube : youtube.com/@neuron_networkInstagram : neuron_network</description>
                <category>Amirreza Hosseini</category>
                <author>Amirreza Hosseini</author>
                <pubDate>Sat, 19 Aug 2023 12:38:34 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش کامل پارتیشن بندی دیسک در لینوکس به زبان ساده</title>
                <link>https://virgool.io/@devamir81/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D9%85%D9%84-%D9%BE%D8%A7%D8%B1%D8%AA%DB%8C%D8%B4%D9%86-%D8%A8%D9%86%D8%AF%DB%8C-%D8%AF%DB%8C%D8%B3%DA%A9-%D8%AF%D8%B1-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B3%D8%A7%D8%AF%D9%87-g4t7ys84xeqh</link>
                <description>در این مقاله پارتیشن بندی دیسک توی لینوکس رو به صورت کامل و به زبانی ساده یاد می گیریم. برای این کار ابزار های مختلفی وجود داره مثل gparted , parted , fdisk , gdisk . که ما در اینجا از ابزار GNU Parted یا همون parted استفاده می کنیم. چون هم قابلیت های زیادی داره و هم کارکردن باهاش آسونه و از اونجایی که توی خط فرمان اجرا میشه در هر شرایطی میتونیم ازش استفاده کنیم. https://www.aparat.com/v/KLjWO آموزش پارتیشن بندی با استفاده از دستور parted برای شروع کافیه ابزار parted رو از داخل ترمینال فراخوانی کنید. ( از اینجا به بعد در همه مراحل نیاز به دسترسی root داریم . ) sudo parted /dev/sdXجلوی عبارت parted آدرس اون دیسکی رو که میخایم روش عملیات انجام بدیم رو وارد می کنیم. مثلا :توجه : اگه آدرس دیسک مورد نظر رو وارد نکنید به صورت پیشفرض اولین دیسک شما انتخاب میشه.اگه نمی دونید آدرس دقیق دیسک تون چیه می تونید parted -l رو وارد کنید. تا اطلاعات همه دیسک ها و پارتیشن ها رو به دست بیارین.حالا که وارد parted شدین می تونید با استفاده از دستوراتش کار های زیادی انجام بدین. با زدن m از روی کیبورد منوی این ابزار براتون باز میشه. و اطلاعاتی کلی راجع به دستورات و نحوه کارکردن باهاش به دست میارین .نمایش اطلاعات دیسک ها در parted با نوشتن print اطلاعات دقیق دیسک انتخاب شده و پارتیشن هاش نمایش داده میشه . همچنین میتونید از دستورات print all و print devices برای دیدن جزیات سایر دیسک ها استفاده کنید.انتخاب کردن دیسک ها در parted برای انتخاب کردن دیسک ها علاوه بر روشی که در ابتدا استفاده کردیم ، میتونیم از دستور select استفاده کنیم و جلوی اون آدرس دیسک مورد نظر مون رو وارد کنیم.select /dev/sdaنکته مهم : ابزار parted تمامی دستورات رو درجا اجرا میکنه. پس قبل از ایجاد تغییرات روی دیسک حواستون رو جمع کنید تا برای اطلاعاتتون مشکلی به وجود نیاد.ساختن partition table در ابزار parted :برای این کار کافیه دستور mklabel رو وارد کنیم. بعدش از ما میپرسه که چه نوع partition table میخایم بسازیم. با زدن کلید tab میتونیم انواع حالت های مختف پارتیشن تیبل رو ببینیم. نهایتا حالت مورد نظر رو وارد می کنیم.نکته : منظور از حالت  msdos همون mbr هست.دقت کنید زمانی که شما یک partition table جدید می سازید تمام پارتیشن های قبلی و همه اطلاعات شون پاک میشن. و باید از اول دیسک رو پارتیشن بندی کنید . پس همیشه نیاز نیست دوباره partition table بسازین مگر مجبور بشید .ایجاد کردن partition جدید در ابزار parted :برای ساختن پارتیشن باید دستور mkpart رو وارد کنیم. در ادامه اگر partition table ما mbr باشه ابتدا حالت پارتیشن رو از ما میپرسه که primary باشه یا extended ؟ ( توی حالت gpt دیگه بحث primary / extended وجود نداره . )سپس نوع file system  رو ازمون میپرسه. در این مرحله هم اگر کلید tab رو بزنیم انواع File System های مختلف رو لیست میکنه. نکته : دقت کنید که با انتخاب کردن فایل سیستم توی این مرحله پارتیشن شما فرمت نمیشه . و باید جداگانه به صورت دستی اون رو فرمت کنید. در واقع توی این مرحله فقط یک flag ست می کنید که سیستم عامل بدونه این پارتیشن قراره چه فایل سیستمی داشته باشه.بعد از انتخاب File System  باید نقطه شروع و پایان پارتیشن رو مشخص کنید. برای این کار از واحد های مختلفی میتونید استفاده کنید. مثلا : s      سکتور M      مگابایتG      گیگابایتو...بعد از وارد کردن مقادیر خواسته شده ، پارتیشن ما ساخته میشه .حذف کردن پارتیشن ها در parted : برای حذف کردن partition در ابزار parted کافیه دستور rm رو بزنید . بعدش از شما میخاد که شماره پارتیشن مورد نظر رو وارد کنید ( که با استفاده از دستور print می تونید این عدد رو پیدا کنید ) . و به همین راحتی عملیات حذف پارتیشن انجام میشه.تا ا ینجا نحوه کارکردن با disk و پارتیشن بندی کردن رو یاد گرفتیم. حالا برای اینکه بتونیم از پارتیشن هایی که ساختیم استفاده کنیم و روی اونها اطلاعات ذخیره کنیم ، باید پارتیشن ها رو Format کنیم. چون هنوز هیچ فایل سیستمی ندارن .فرمت کردن پارتیشن ها در لینوکس :برای این کار میتونیم از دستور mkfs استفاده کنیم. mkfs -t ext4 /dev/sdXجلوی t- باید نوع فایل سیستم که میخایم رو تعیین کنیم مثلا : ext4 , ext3 , vfat , ... و بعد از اون هم باید آدرس پارتیشن مورد نظر رو وارد کنیم و تمام.علاوه بر دستور بالا برای ساختن فایل سیستم NTFS میتونید از دستور mkntfs -Q هم استفاده کنید.mkntfs -Q /dev/sdX پارامتر Q- در این دستور نشان دهنده ویژگی quick format هست و اگه از اون استفاده نکنید عملیات فرمت کردن زمان بیشتری طول میکشه.تمام مواردی که در این مقاله گفته شد به علاوه نکات تکمیلی به صورت کامل در ویدیو ابتدای همین صفحه توضیح داده شده و میتونید از اون هم استفاده کنید.امیدوارم براتون مفید بوده باشه.</description>
                <category>Amirreza Hosseini</category>
                <author>Amirreza Hosseini</author>
                <pubDate>Wed, 18 May 2022 22:27:33 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش کامل تعمیر و نصب مجدد بوت لودر Grub2</title>
                <link>https://virgool.io/@devamir81/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D9%85%D9%84-%D8%AA%D8%B9%D9%85%DB%8C%D8%B1-%D9%88-%D9%86%D8%B5%D8%A8-%D9%85%D8%AC%D8%AF%D8%AF-%D8%A8%D9%88%D8%AA-%D9%84%D9%88%D8%AF%D8%B1-grub2-nmsdrmgzgxjp</link>
                <description>اگه به تازگی شروع به یاد گیری سیستم عامل های خانواده  Gnu/Linux کرده باشید ،  احتمالا برای شما هم پیش اومده که بعد از نصب ویندوز در کنار لینوکس یه  دفعه دیدین که دیگه به لینوکس تون دسترسی ندارین.و مستقیم وارد ویندوز میشین . شاید هم همین موضوع و درگیری با Bootloader ها باعث شده باشه که قید نصب کردن لینوکس در کنار ویندوز رو بزنید . و فقط روی ماشین مجازی از linux استفاده کنید. این مشکل  ممکنه علت های مختلفی داشته باشه. ولی اصل ماجرا مربوط به خراب شدن بوت لودر Grub2 میشه.در  این مطلب به بررسی حالت های مختلف تعمیر بوت لودر Grub2 در لینوکس می  پردازیم. پس تا انتها با من همراه باشید تا جواب همه سوالاتتون در این باره  رو بگیرین. و به راحتی مشکلتون رو حل کنید.تمامی مواردی که توی این مقاله گفتم ، به صورت کامل توی این ویدیو که لینکشو این پایین گذاشتم داخل یوتیوب توضیح دادم و میتونید ازش استفاده کنید :)تعمیر گراباول از همه باید بدونیم که یک سیستم عامل لینوکسی چجوری boot میشه و بالا میاد. بعدش راحت تر می تونیم اون رو تعمیر کنیم.مراحل بوت شدن یک سیستم عامل Linux Based :بلا فاصله بعد از اینکه شما کامپیوتر رو روشن می کنید به ترتیب یکسری مراحل به ترتیب طی میشه که می تونید اون ها رو در تصویر زیر مشاهده کنید.مراحل Boot شدن یک سیستم عامل لینوکسی فرآیند power-on self-test یا POST :بعد از روشن  شدن کامپیوتر فرآیند Post یا Power on Self test شروع میشه. توی این مرحله سلامتی سخت افزار های مهم کامپیوتر تست میشه. و اگه همه چیز اوکی باشه و قطعات مشکل خاصی نداشته باشن وارد مرحله بعد میشیم. فرآیند Post توسط BIOS و یا UEFI انجام میشه. BIOS و  UEFI نام firmware هایی هستند که بعد از روشن  شدن کامپیوتر شما کنترل سخت افزار رو به دست می گیرن . و سعی میکنن که  سیستم رو طبق تنظیماتی که براشون مشخص کردیم  Boot کنن. حالا این بستگی به Motherboard شما داره که ازBIOS  پشتیبانی میکنه یا UEFI .بوت لودر ‌Bootloader  :بعد  از این که فرآیند Boot از روی یکی از Device هایی که از قبل توی BIOS یا  UEFI مشخص کردیم (cdrom , hard disk   removable devices ,...)  شروع شد ،  نوبت به Bootloader میرسه.بوت لودر یا‌‌‌‌‌‌ Boot manager سعی میکنه که Kernel ( همون هسته سیستم عامل ) رو لود کنه. اما سوال اصلی اینجاس که خود Bootloader سرو کلش از کجا پیدا میشه ؟اگه توی حالت BIOS باشین Bootloader از روی MBR هارد دیسک شما ( اولین سکتور هارد دیسک ) لود میشه. اما اگه توی حالت UEFI باشین بوت لودر از داخل پارتیشن ESP لود میشه و...البته این مراحل رو به صورت دقیق تر توی ویدیو توضیح دادم .لازمه که بدونین توی دنیای Gnu/Linux بوت لودر های مختلفی وجود داره. اما معروف تر هاشون همینایی هستن که براتون نام می برم :بوت لودر GNU GRUB : گراب یا GRand Unified Bootloader دو تا ورژن ۱ و۲ داره. که این روزا بیشتر ورژن ۲ اون رو می بینیم و توی این مقاله هم روی همین ورژن بحث می کنیم.بوت لودر Lilo یا Linux Loader : یک بوت لودر خیلی قدیمه و امروزه کمتر ازش استفاده می شه.لود شدن initramfs  :بعد از اینکه کرنل لینوکس لود شد نیاز داره که به پارتیشن Root دسترسی پیدا بکنه. تا بتونه یکسری service ها و برنامه ها رواجرا بکنه. و بعدشسیستم عامل بالا میاد.  اما کرنل به تنهایی این توانایی رو نداره و نمیتونه پارتیشن Root رو باز  کنه. و قبلش نیاز داره یکسری module ها رو روی خودش نصب کنه. این ماژول های ضروری از قبل توی یک فایل فشرده به نام initrd یا initramfs ذخیره شدن . پس initrd به صورت موقت در RAM لود میشه تا کرنل بتونه ماژول های مورد نیاز خودش رو از داخل اون لود کنه. حالا Kernel لینوکس میتونه به محتوای پارتیشن Root دسترسی پیدا کنه.اجرا شدن init system :بعد از اینکه مراحل بالا طی شد ، Kernel کرنل اولین process رو از آدرس/sbin/init اجرا میکنه.  PID  این پراسس 1 هست. اسمش هم init هست. init مادر تمامی process ها و service های سیستم ما حساب میشه. بعد از اینکه init یا بهتر بگم init system ما اجرا میشه مسئولیت مدیریت  کردن  پراسس ها و سرویس ها میوفته گردن اون. و بقیه چیزا رو هم init برای ما بالا میاره.در دنیای لینوکس init system های مختلفی داریم مثل : sysv init , upstart , systemDران لول ها Runlevels :بعد  از اینکه  init system اجرا شد ، همه process ها و daemon هایی که لازم هست اجرا میشن. و در نهایت سیستم عامل لینوکسی ما بالا میاد .  اما اینکه  init system از کجا متوجه میشه که کدوم سرویس ها و پراسس ها رو باید اجرا کنه مربوط میشه به بحث runlevel ها .ران لول  ها حالت های مختلفی هستن که سیستم عامل ما میتونه توی اون حالت ها کار کنه . مثلا زمانی که شما از محیط گرافیکی ( GUI ) استفاده می کنید در ران لول 5 قرار دارید. یا به عنوان مثال توی Runlevel 3 محیط گرافیکی نداریم. و در حالت text mode هستیم و ...و درواقع  init system متوجه میشه که توی هر Runlevel باید چه service هایی رو اجرا کنه.  مثلا وقتی میخایم توی ران لول 5 بیاییم بالا میفهمه که باید Display  Manager رو هم اجرا کنه .حالا بهتر می تونیم فرآیند Boot شدن یک سیستم عامل لینوکسی رو درک کنیم. پس  بریم سراغ تعمیر Grub 2.بوت لودر Grub2 :وقتی که گراب ۲ میاد بالا به احتمال زیاد با  یه همچین صفحه ای روبه رو میشین که بهش میگیم منوی گراب .اگه Grub Menu به شما نمایش داده نشد باید قبل از اینکه سیستم بالا بیاد کلید  shift رو نگه دارین تا منو بهتون نمایش داده بشه. البته این برای زمانی هست که در حالت Bios بوت شدین .  اگر هم توی حالت UEFI بودین و این صفحه رو ندیدین باید کلید ESC رو  نگهدارین.منوی گرابحالا هر کدوم از این گزینه ها رو که انتخاب کنید ، همون سیستم عامل ( یا کرنل ) براتون بالا میاد.روی  هرکدوم شون هم که برید و کلید E رو از روی کیبورد بزنید ، می تونید تنظیمات مربوط به اون گزینه رو ببینید و حتی اونا رو ویرایش کنید. درواقع Grub این کار ها و تنظیمات  رو اجرا میکنه و سیستم عامل بوت میشه و... بریم یه نگاهی به این تنظیمات بندازیم.به عنوان مثال جلوی عبارت set root پارتیشن Root مشخص شده.جلوی  عبارت linux هم محل قرار گیری Kernel لینوکس در درون دیسک ما مشخص شده . و در جلوی اون دوباره  پارتیشن Root مشخص شده. و بعدشم پارامتر های کرنل نوشته شدن. به زبان خیلی ساده پارامتر های کرنل بر روی حالت بوت شدن لینوکس ما تاثیر میزارن. مثلا استفاده از پارامتر quiet باعث میشه که لاگ های مربوط به بوت شدن سیستم عامل به ما نمایش داده نشن و فقط یک صفحه گرافیکی رو ببینیم.و در خط آخر جلوی عبارت initrd آدرس محل قرار گیری فایل initramfs مشخص شده.حالا  توی همین صفحه اگر کلید F10 رو فشار بدید سیستم با همین تنظیمات فعلی ( به  همراه هر تغییری که داده باشین ) boot میشه. و با زدن کلید ESC هم میتونید  دوباره بیاین توی منوی اصلی گراب.تمام این تنظیمات و منو ها توی فایل grub.cfg در دایرکتوری /boot/grub ذخیره شدن و هردفعه از اونجا خونده میشن.توی منوی اصلی گراب هم اگه کلید C رو از روی کیبورد فشار بدین وارد Shell گراب میشین.در داخل Grub Shell دستورات مختلفی در اختیار داریم. و میتونیم سیستم عامل رو به صورت دستی و با وارد کردن دستورات مورد نیاز  Boot کنیم.Grub Shellحالا که بریم سراغ تعمیر بوت لودر Grub 2 در حالت های مختلف .حل مشکل عدم نمایش منوی گراب و ورود به grub shell :این  مشکل وقتی به وجود میاد که فایل /boot/grub/grub.cfg پاک بشه یا خراب  بشه.  زمانی که مشکلی برای این فایل به وجود بیاد گراب نمی تونه منو ها رو لود کنه. و به همین دلیل شما رو به شل گراب هدایت میکنه تا بتونید دستوران لازم رو وارد کنید و سیستم عامل رو بوت کنید.برای تعمیر گراب از داخل Grub Shell مراحل زیر رو دنبال کنید.تشخیص پارتیشن Root :اول از همه باید پارتیشن root رو به grub معرفی کنیم. برای این که خودمون بفهمیم  پارتیشن root کدوم یکی از پارتیشن ها هست از دستور ls استفاده می کنیم.همونطور که میبینین با زدن دستور ls تمامی هارد دیسک ها و پارتیشن ها به ما نمایش داده میشه. اگه  حالت هاردتون gtp باشه اینجا جلوی hd0 کلمه gpt رو می بینید . و اگر هم mbr باشه عبارت msdos رو می بینید.همونطور که در تصویر بالا می بینید برای اینکه محتویات هر پارتیشن رو هم ببینیم میتونیم دوباره از همون پارتیشن ls بگیریم.حالا با نوشتن عبارت
 set root=(hdX,msdosX) و زدن اینتر پارتیشن Root رو برای گراب مشخص می کنیم. که در اینجا (hd0 , msdos2) پارتیشن روت سیستم من هست.مشخص کردن محل ذخیره سازی Kernel :حالا باید محل ذخیره شدن کرنل ( فایل vmlinuz ) در داخل هارد دیسک رو برای بوت لودر گراب مشخص کنیم. فایل کرنل معمولا در مسیر /boot قرار داره. و میتونید با استفاده از دستور ls محل دقیقشو مشخص کنید. البته ممکن هست شما پارتیشن boot رو جدا کرده باشین . در این صورت باید  بفهمین پارتیشن Boot کدوم یکی از پارتیشن های شما هست. و آدرس دقیق فایل vmlinuz  رو پیدا کنید .همون طور که جلوتر گفتم برای مشخص کردن محل ذخیره سازی  کرنل توی گراب از دستور linux استفاده می کنیم. و جلوی اون آدرس کرنل رو  وارد می کنیم. بعد از اون هم با استفاده از عبارت root پارتیشن Root رو مشخص می کنیم. در ادامه هم هر کدوم از پارامتر های کرنل رو که نیاز داشته باشیم وارد می کنیم.مثلا پارتیشن روت من  (hd0,msdos1) بوده.linux   (hd0,msdos1)/vmlinuz-5.4.0-81-generic root=/dev/sda2 ro  quiet splashمشخص کردن محل ذخیره شدن initrd برای گراب :حالا باید محل ذخیر  initrd  رو هم به گراب بگیم . initrd یا initramfs هم در دایرکتوری /boot قرار داره.با وارد کردن عبارت initrd و در ادامه آدرس فایل initrd این کار رو هم انجام میدیم.initrd  (hd0,msdos1)/initrd.img-5.4.0-81-genericبوت کردن سیستم عامل و ساختن فایل grub.cfg :اگه تا اینجای کار رو درست پیش رفته باشید ، می تونید با وارد کردن دستور boot و زدن اینتر سیستم عامل رو بوت کنید.بعد  از اینکه سیستم شما بالا اومد باید فایل grub.cfg رو هم دوباره بسازین تا  هر دفعه مجبور نباشین برای بوت شدن سیستم این دستورات رو توی گراب وارد  کنید.برای این کار ترمینال رو باز کنید و این دستور رو با دسترسی root اجرا کنید :grub-mkconfig -o /boot/grub/grub.cfgحالا فایل grub.cfg ساخته شده و تمام.می تونید با خیال راحت سیستم رو restart کنید و منوی گراب مثل روز اول به شما نمایش داده میشه و به هر سیستم عامل دیگه ای هم که در کنار لینوکس نصب کرده باشین دسترسی دارین.نکته : توی بعضی از توزیع ها مثل centos به جای دایرکتوری grub و دستورات و پکیج هایی که اسمشون با grub شروع میشه grub2 رو داریم.حل مشکل عدم نمایش Grub Menu و ورود به Grub Rescue Shell :این  مشکل زمانی به وجود میاد که Grub نمیتونه به دایرکتوری /boot/grub دسترسی پیدا کنه. ممکنه این دایرکتوری وجود داشته باشه اما محتویاتش خراب شده باشن یا کلا پاک شده باشه. وقتی این اتفاق میوفته بدون اینکه منوی گراب بهتون نشون داده بشه مستقیم میوفتین توی grub rescue shell .Grub Rescue Shellمتاسفانه توی  این shell دستورات و امکانات خیلی محدودی در اختیار داریم. و نمی تونیم  مثل حالت قبل با وارد کردن دستورات مختلف سیستم رو بوت کنیم. اما نگران نباشید. چون این مشکل هم راه حل خودشو داره :)دقت کنید روشی که میخام برای تعمیر حالت Grub rescue بگم فقط در صورتی کار میکنه که محتویات دایرکتوری grub مشکلی نداشته باشن !!!در غیر این صورت باید گراب رو دوباره نصب کنید که جلو تر بهتون یاد میدم.برای تعمیر  بوت لودر Grub 2 در این حالت باید ابتدا آدرس دقیق دایرکتوری grub رو وارد کنیم. خوشبختانه اینجا هم دستور ls کار میکنه. و میتونیم ازش استفاده کنیم.با استفاده از دستور set prefix محل دایرکتوری grub رو مشخص می کنیم.مثلا:set prefix=(hd0,msdos1)/grub2حالا باید با استفاده از کامند insmod ماژول normal رو نصب کنیم :insmod normalاگه تا اینجا مراحل رو درست انجام داده باشین نباید هیچ اروری دریافت کنید.حالا  باید  دستور normal رو وارد کنیم. و گراب به حالت normal و معمولی بر  میگرده. و اگه محتویات فایل grub.cfg درست باشه منوی گراب بدرستی بهتون  نمایش داده میشه. وگرنه باید مثل حالت قبل با استفاده از grub shell سیستم  رو بوت کنید.خب حالا اگه کلا دایرکتوری grub حذف یا ناقص شده بود  باید چیکار کنیم؟ توی اینجور مواقع باید گراب رو دوباره نصب کنیم. که در  ادامه یادتون میدم.مشکل اجرا نشدن grub :بعضی  وقتا هم ممکنه اصلا هیچ اثری از گراب نبینید. مثلا اگه اول روی هاردتون لینوکس نصب کنید و بعدش در کنارش ویندوز نصب کنید ، وقتی سیستم رو ریستارت  می کنید احتمالا می بینید دیگه خبری از گراب نیست . و مستقیم وارد بوت لودر Windows میشین و به لینوکس تون دسترسی ندارین.به غیر از این  در بعضی مواقع هم ممکنه فقط یک صفحه مشکی براتون باز بشه و بالا سمت چپ  نوشته باشه Grub. بدون هیچ prompt و چیز دیگه ای. مثل تصویر زیر :توی این حالت ها هم برای تعمیر Grub باید اون رو دوباره نصب کنید.نصب دوباره بوت لودر Grub2 :برای اینکه گراب رو از اول نصب کنیم باید از این دستور استفاده کنیم :grub install  /dev/sdXاما وقتی کلا لینوکس ما بالا نمیاد و همه چی ترکیده باید چیکار کنیم ؟چاره کار boot کردن یک iso لینوکس به صورت Live هست. هیچ فرقی هم نمیکنه چه توزیعی باشه. من اینجا از یک linuxmint استفاده کردم.بعد از اینکه لینوکس live بوت شد یک ترمینال باز کنید و مراحل زیر رو انجام بدین.mount کردن پارتیشن ها و Directory های مورد نیاز :اول باید پارتیشن های مورد نیاز مون رو mount کنیم تا به اطلاعات اونا دسترسی داشته باشیم.ابتدا پارتیشن root سیستم رو mount می کنیم.mount /dev/sda2 /mntدر مرحله بعد اگه پارتیشن boot رو قبلا جدا کرده باشین باید اون رو هم توی /mnt/boot مونت کنید. اگر هم جدا نکرده باشین که نیاز نیازی نیست.mount /dev/sda1 /mnt/bootاینجا  یه نکته خیلی مهمی وجود داره : اگه توی حالت UEFI بوت شده باشین باید  پارتیشن ESP رو هم باید توی /mnt/boot/efi مونت کنین. درواقع دایرکتوری efi یک  mount point  برای پارتیشن ESP هست.حالا فقط دایرکتوری های dev و sys و proc باقی میمونن. این دایرکتوری ها در پارتیشن root وجود دارن. اما مشکل اینجاس که محتوای اونا توی RAM ذخیره مشه نه توی هارد. یعنی وقتی سیستم رو خاموش میکنین محتویات این دایرکتوری ها هم از بین میرن. الان مثلا اگه از /mnt/dev یک ls  بگیرین می بینید که خیلی از device های ما ازجمله hard disk ها رو  نشناخته. حالا برای حل این مشکل باید  محتویات dev و sys و proc که توی لینوکس  live ما وجود داره رو بریزیم توی  /mnt/dev و /mnt/sys و /mnt/proc تا بتونیم از اونا استفاده کنیم . پس این  دستورات رو وارد کنید.mount /dev --bind /mnt/dev
mount /sys --bind /mnt/sys
mount /proc --bind /mnt/procchroot کردن و نصب Grubحالا  آماده ایم که chroot کنیم توی /mnt . با انجام chroot یجورایی انگار پریدیم توی  همون سیستم عامل مون که بالا نمیاد و داریم درستش می کنیم.chroot /mntحالا کافیه گراب رو دوباره روی هارد نصب کنیم. و می تونیم از دستور  grub-install استفاده کنیم. دقت کنید که اینجا فقط هارد دیسک رو مشخص می کنیم نه پارتیشن.grub-install /dev/sdaنکته  : اگه توی حالت Bios بودین و یک درصد دیدن کامند grub-install کار نمیکنه  احتمالا مجبور باشید پکیج grub-common رو دوباره نصب کنید. اگر هم توی حالت  uefi بودین و دیدن این کامند کار نمیکنه برای حل این مشکل باید پکیج  grub-efi رو دوباره نصب کنید.ساختن فایل grub.cfgبا زدن دستور قبلی گراب روی اولین هارد دیسک من نصب شد. بعدش باید فایل grub.cfg رو هم بسازیم.grub-mkconfig -o /boot/grubاگه همه این مراحل رو درست انجام داده باشین دیگه کار تمومه...می  تونید با زدن دستور exit از این shell خارج بشین و دوباره وارد سیستم live  تون بشین. حالا باید تک تک چیزایی که mount کردین رو umount کنید.umount /mnt/boot
umount /mnt/boot/efi 
umount /mnt/dev
umount /mnt/sys
umount /mnt/procالان میتونید سیستم رو Restart کنید. و گراب هم به درستی کار میکنه.با  استفاده از روش های بالا میتونید به راحتی بوت لودر Grub2 رو تعمیر کنین.  حالا یک موضوع دیگه ای هم وجود داره که دونستنش خالی از لطف نیست . و اون هم بحث Chain loading هست.Chain loading چیست ؟عملیات Chain loading زمانی اتفاق میوفته که از منوی گراب یک سیستم عامل به غیر از linux (مثلا Windows ) رو انتخاب و بودت می کنیم. درواقع بعد از اینکه بوت لودر Grub بالا میاد ادامه کار رو میده دست یک بوت لودر دیگه مثل بوت لودر ویندوز . و از اینجا به بعد گراب از بازی خارج میشه و این بوت لودر Windows هست که بقیه کار هارو انجام میده و ویندوز رو میاره بالا .نحوه انجام دادن Chain loading در Grub2 :همونطور که در ابتدا گفتم ، شل گراب ( Grub Shell ) امکانات مختلفی رو به ما ارائه میده. شما می تونید عملیات Chain loading رو هم از داخل این Shell با وارد کردن دستور های مورد نیاز انجام بدین.مشخص کردن پارتیشن درایو C :اولین کاری که باید انجام بدیم  اینه که بفهمیم Root ویندوز مون یا همون درایو C کردوم یکی از پارتیشن های ما هست. برای این کار هم دقیقا مثل زمانی که می خواستیم لینوکس رو روت کنیم از دستور ls استفاده می کنیم.بعد از اینکه این پارتیشن رو تشخیص دادیم با استفاده از دستور set root اون رو یه عنوان پارتیشن روت معرفی میکنیم.مثلا اگه آدرس درایو C تون (hd0 , gpt6) باشه باید به این صورت عمل کنید :
set root=(hd0,gpt6)
حالا از اینجا به بعد اگه توی حالت UEFI بوت شده باشید باید آدرس فایل bootmgfw.efi رو که در پارتیشن ESP و در داخل دایرکتوری Microsoft ذخیره شده رو هم به گراب بدید. پس مثل مرحله قبل پارتیشن ESP رو هم پیدا می کنید. سپس با استفاده از دستور chainloader این فایل رو به گراب معرفی می کنید. مثل تصویر زیر :حالا اگه دستور boot رو وارد کنید ویندوزتون بالا میاد.اگر هم در حالت BIOS بوت شده باشین نیازی به این کار نیست. و فقط کافیه دستور chainloader +1 رو وارد کنید. و بعدشم دستور boot رو بزنید .  و به این ترتیب عملیات Chain loading به درستی انجام میشه.توضیح دقیق همه این موارد به اضافه یکسری مباحث تکمیلی مثل آموزش اضافه کردن منوی دلخواه به grub رو می تونید توی ویدیو ابتدای مقاله ببینید. پیشنهاد می کنم یه نگاهی هم به منابع این مطلب بندازین. لینکشونو آخر این مطلب براتون میزارم.امیدوارم که براتون مفید بوده باشه و به دردتون خورده باشه  :)هر سوالی در این مورد داشتید بپرسید. خوشحال میشم بتونم کمک تون کنم :Youtube : youtube.com/@neuron_networkInstagram : neuron_networkامیررضا حسینیمنابع :Lpic 1 102.2 - Install a boot manager fedora docs - Bootloading with GRUB2Ubuntu Wiki - Grub2/installingUbuntu Wiki - Grub2/Troubleshooting</description>
                <category>Amirreza Hosseini</category>
                <author>Amirreza Hosseini</author>
                <pubDate>Tue, 12 Oct 2021 10:01:38 +0330</pubDate>
            </item>
            </channel>
</rss>