قبلا گفته بودم میشه آرچ رو بدون پارتیشن بندی مجزا کنار ویندوز روی پارتیشن ویندوزی نصب کرد و من دارم اینکارو میکنم که پس از تکمیل آموزشش رو قرار میدم
البته با اینکه کامل تکمیل نشده ولی به وضعیت پایدار و قابل قبولی رسیده که حالا آموزشش رو اینجا قرار میدم.پست قبلی من تو همین تاپیک که نحوه نصب آرچ رو از طریق یه لینوکس لایو یا نصب شده دیگه رو آموزش میداد و پست اول تاپیک رو باید خونده و درک کرده باشید.
توجه : کلیه دستورات با مجوز root اجرا شود.با دستور su به root لاگین کنید.
هدفی که من در نظر گرفتم نصب آرچ روی یک فایل ایمیج raw(خام) روی پارتیشن NTFS ویندوزی و بوت اون از طریق ویندوز و بدون نیاز به نصب هر لینوکسی روی پارتیشن فیزیکی بود که ابتدا توی فروم آرچ لینوکس ایران سوالش رو مطرح کردم و همونطور که توقع داشتم هیچ جوابی نگرفتم.سوالی که من کرده بودم تحت عنوان
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
به صورت زیر بود :
با سلام
طبق تحقیقی که کردم نصب و بوت آرچ روی یه فایل مستقر روی پارتیشن ntfs ویندوز ممکنه.مطالبی که من پیدا کردم ناقصه و قدیمی مربوط به initscript که حالا جاشو داده به systemdبا دستور dd یه فایل خام ایجاد و با دستور mkfs.ext4 اونو فرمت و با دستور mount اونو سوار و با pacstrap بسته های baseو ntfs-3g و fuse و net-tools رو روی پارتیشن مجازی نصب میکنیم.باید یه hook به خصوص ایجاد بشه و به mkinitcpio.conf اضافه بشه و یه سری تغییرات دیگه و ایمیج initramfs سفارشی ساخته بشه.من مطلبی به درد بخوری راجع به syntax منوی گراب و به خصوص آرگومانهایی که به کرنل فرستاده میشند پیدا نکردم.فقط منوی گراب مربوط به نصب از طریق ایمیج ایزوی arch موجود بود.کسی هست که اطلاعات دقیقی از این فرآیند داشته باشه.خیلی میتونه به درد بخوره.
ابتدا نیاز به یه فایل خام با حجم مناسب(حدود 10 گیگ) روی پارتیشن ntfs داشتم البته با یک شرط و اون اینکه این فایل باید یک تکه باشد(و fragment نباشد)درایور ntfs-3g موجود در لینوکس که برای خواندن و نوشتن در پارتیشنهای ntfs مورد استفاده قرار میگیرد متاسفانه نمیتواند یک تکه بودن فایل ایجاد شده رو تضمین کند به نحوی که من روی پارتیشن ntfs خالی با حجم 19.5 گیگ فایلی با حجم 11 گیگ ایجاد کردم که 218 تکه داشت !!! به ناچار باید فایل در سیستم عامل ویندوز ایجاد گردد.فرض کنید پارتیشن ntfs در ویندوز با درایو f و ترجیحا خالی میباشد.با دستور زیر یک فایل با حجم 10 گیگ روی آن ایجاد میشود :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حجم فایل به بایت است و دستور باید در خط فرمان اجرا شود.پس از ایجاد فایل با defragmenter ویندوز یا با نرم افزار wincontig در ویندوز یا filefrag در لینوکس باید اطمینان حاصل کنید فایل یک تکه باشد.برای سادگی فعلا از هارد اینترنال اصلی استفاده کنید البته روی هارد اکسترنال هم میتوان اینکار را انجام داد ولی نیاز به تغییراتی دارد که فعلا راجع به آن تحقیق نکردم(تیاز به wait جهت آماده سازی و سوار کردن سیستم فایل از درایو usb میباشد)حالا به لینوکس لایو یا نصب شده بوت کنید و فایل را آماده کنید.درایو ntfs من در مسیر /media/Programming & Storage/ سوار شده است. در کلیه دستورات شما باید آن را جایگزین کنید(با mount point خودتان)
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
پیرو آموزش قبلی در این
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
باید فایل root-image.fs(حاوی سیستم فایل لایو آرچ به فرمت squashfs) را از ایزوی آرچ اکسترکت و در همان درایو حاوی arch.img قرار دهید.حالا باید فایل خام arch.img را فرمت کنید تا قابل استفاده باشد :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با دستور mkfs.ext4 فایل سیستم ext4 روی ایمیج خام ایجاد میگردد ابتدا سوالی از کاربر میشود که با y پاسخ دهید.خروجی این دستور :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دستور زیر را وارد کنید:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سیستم فایل لایو سی دی نصب آرچ در مسیر tmp/arch_iso/ سوار میشود و فایل arch.img در زیر شاخه mnt/ از آن نصب میشود.با دستور زیر به سی دی لایو نصاب آرچ chroot و base آرچ را طبق آموزشهای تاپیک نصب کنید فقط لازم نیست از دستور genfstab برای ایجاد etc/fstab/ استفاده کنید:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در دستورات بالا بعد از chroot مخزن multilib در فایل پیکربندی etc/pacman.conf/ فعال میکنیم که فقط برای معماری x86_64 مفید است.با دستور pacstrap گروه های نرم افزاری base و base-devel را نصب میکنیم.با دستور pacman باید fuse و ntfs-3g نصب شود.دستور آخر هم ورودی مورد نیاز برای فایل etc/fstab/ را میسازد.با دستور exit از محیط chroot سی دی لایو نصاب آرچ خارج میشویم و حالا باید به ایمیج محل نصب آرچ chroot بزنیم :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا نوبت به ویرایش فایل etc/locale.gen/ میرسد به جای ویرایش دستی میتوان از دستورات زیر استفاده کرد :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با یک دستور grep میتوان مطمین شد فایل به درستی ویرایش شده باشد :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در ادمه :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
به جای forozan شما نام دیگری را برای hostname وارد کنید و به جای ahmad هم نام کاربری خودتان را.حالا نوبت به تغییرات بنیادینی میرسد که برای بوت لازم است برای این تغییرات از منابع زیر کمک گرفته شده است:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته هر دوی این منابع قدیمی و مربوط به initscript هستند در حالیکه هم اکنون آرچ به systemd مهاجرت کرده و میباست تغییرات مناسب اعمال شود ولی کمک عمده ای کردند. برای باز کردن لینک googlecode باید از شیلتر شکن استفاده کرد.دستور زیر را تایپ کنید :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
متن زیر را به درون این محیط کپی پیست و فایل را ذخیره کنید :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دستور زیر را تایپ کنید :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
متن زیر را به درون این محیط کپی پیست و فایل را ذخیره کنید :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با دستور nano /lib/initcpio/init فایل init را برای ویرایش باز کنید و قبل از خط mount_handler=default_mount_handler چند خط زیر را وارد کنید :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا خط "${mount_handler} /new_root" را پیدا و با ۲ خط زیر جایگزین کنید :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا دستور mkinitcpio -p linux رو اجرا کنید تا فایل initramfs ایجاد بشه.دیگه میتونید exit رو تایپ و از محیط chroot خارج شید.محض اطمینان پس از خروج دستور sync رو اجرا کنید.جالا باید یه ورودی در فایل boot/grub/grub.cfg/ ایجاد کنید تا سیستم عامل آرچ مستقر روی ایمیج رو بتونید بوت کنید:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با توجه به اینکه هارد شما gpt باشه یا msdos یکی از ۲ گزینه بالا رو اضافه کنید(اکثرا msdos هستند) دستورات load_video و set gfxpayload=keep رو میتونید(و یا باید) حذف کنید.سینتکس صحیح رو با مرور فایل grub.cfg و مشاهده اون میتونید بفهمید.به ورودیهای قبلی توجه کنید.ضمنا sda8 در سیستم من ممکن است با سیستم شما متفاوت باشد عدد 8 را با شماره پارتیشن ntfs حاوی arch.img جایگزین کنید.اگر نام فایل ایمیج متفاوت است آنرا نیز تغییر دهید.فایل را دخیره و ری استارت کنید و ...من kde و درایور گرافیک رو رو این سیستم نصب کردم و این یه نما از اون :یه سری مطالب و ملاحظات وجود داره که تو پست بعدی میگم.