تعمیر گراب: تفاوت بین نسخهها
(افزودن R- به umount در جهت پیادهسازی بازگشتی تمام شاخههای bind شده.) |
(←پایان) |
||
(۲۰ نسخهٔ میانی ویرایش شده توسط ۴ کاربر نشان داده نشده) | |||
سطر ۵: | سطر ۵: | ||
=روش کار= | =روش کار= | ||
− | |||
− | + | {{نکته| اگر کار با محیط متنی برای شما دشوار است به قسمت پایانی مقاله '''روشهای جایگزین''' مراجعه کنید. }} | |
− | |||
− | |||
− | + | ابتدا رایانه را با رسانهٔ زنده [[Boot|راهاندازی]] کرده و در نشست زنده، [[Terminal emulator|شبیهساز پایانه]] را بگشایید. | |
− | |||
− | + | ==سوار کردن افرازها== | |
− | + | لازم است بدانید که [[Partition|افراز]] ریشه را در کجا نصب کردهاید. دستور [[fdisk]] میتواند در این زمینه به شما کمک کند. | |
− | برای شناخت صحیح | + | {{bc| |
− | + | $ sudo fdisk -l | |
+ | }} | ||
+ | |||
+ | فرض میکنیم ریشهی اوبونتو در افراز {{ic|/dev/sda3}} باشد. این افراز را روی [[File System|سامانهپروندهٔ]] توزیع زنده [[mount|سوار]] میکنیم. | ||
+ | |||
+ | {{bc| | ||
+ | $ sudo mount /dev/sda3 /mnt | ||
+ | }} | ||
+ | |||
+ | |||
+ | اگر هنگام نصب توزیع خود، افراز جدایی (فرض میشود {{ic|/dev/sda2}} ) برای boot در نظر گرفته بودهاید با دستور زیر boot را هم سوار نمایید: | ||
+ | |||
+ | {{bc| | ||
+ | $ sudo mount /dev/sda2 /mnt/boot | ||
+ | }} | ||
+ | |||
+ | در صورتی که سامانهٔ راهاندازی رایانهٔ شما از نوع [[UEFI]] است، لازم است افراز ESP نیز سوار شود. با فرض قرار داشتن ESP در {{ic|/dev/sda1}} داریم: | ||
+ | |||
+ | {{bc| | ||
+ | $ sudo mount /dev/sda1 /mnt/boot/efi | ||
+ | }} | ||
+ | |||
+ | برای شناخت صحیح افرازها در گراب باید شاخههای مجازی dev و proc و sys را از توزیع زندهای که هماکنون در حال کار با آن هستیم، روی سامانهپروندهی سیستم اصلی خود سوار کنیم: | ||
+ | |||
+ | {{bc| | ||
$ sudo mount --bind /dev/ /mnt/dev | $ sudo mount --bind /dev/ /mnt/dev | ||
− | $ sudo mount - | + | $ sudo chroot /mnt/ mount -t proc proc /proc |
− | $ sudo mount - | + | $ sudo chroot /mnt/ mount -t sysfs sysfs /sys |
− | + | $ sudo chroot /mnt/ mount -t devpts devpts /dev/pts | |
+ | }} | ||
==نصب گراب== | ==نصب گراب== | ||
− | حال باید گراب را روی دیسک اصلی خود که راهانداز [[Bios| | + | حال باید گراب را روی دیسک اصلی خود که راهانداز [[Bios|بایوس]] به [[MBR|رکورد راهاندازی اصلی]] آن اشاره میکند، نصب کرد. با فرض این که <code>sda</code> دیسک اصلی شماست: |
− | + | ||
+ | {{bc| | ||
+ | $ sudo grub-install --root-directory{{=}}/mnt/ /dev/sda | ||
+ | }} | ||
+ | |||
+ | برای سامانههای UEFI میتوان برای رفتن به ریشهٔ سوار شده و نصب گراب از این دستورها استفاده کرد: | ||
+ | |||
+ | {{bc| | ||
+ | $ sudo chroot /mnt | ||
+ | # grub-install --target{{=}}x86_64-efi --efi-directory{{=}}/boot/efi | ||
+ | }} | ||
==رفتن به محیط اوبونتوی اصلی== | ==رفتن به محیط اوبونتوی اصلی== | ||
− | + | اگر هنوز به ریشهٔ سوار شده وارد نشدهایم، این کار را با [[chroot]] انجام میدهیم: | |
− | + | ||
+ | {{bc| | ||
+ | $ sudo chroot /mnt | ||
+ | }} | ||
===بهروز رسانی گراب=== | ===بهروز رسانی گراب=== | ||
حال باید فهرست گراب را بر اساس آنچه روی دیسک وجود دارد بهروز رسانی کرد: | حال باید فهرست گراب را بر اساس آنچه روی دیسک وجود دارد بهروز رسانی کرد: | ||
− | + | ||
+ | {{bc| | ||
+ | # update-grub | ||
+ | }} | ||
==خروج== | ==خروج== | ||
− | سپس با زدن دستور <code>exit</code> یا فشردن دکمههای ctrl+d از محیط chroot خارج میشویم. پس از آن باید | + | سپس با زدن دستور <code>exit</code> یا فشردن دکمههای ctrl+d از محیط chroot خارج میشویم. پس از آن باید افرازهای سوار شده را پیاده کرد: |
− | + | ||
+ | {{bc| | ||
+ | $ sudo umount -R /mnt | ||
+ | }} | ||
==پایان== | ==پایان== | ||
− | + | در پایان رایانه را دوباره راهاندازی کرده و با خارج کردن رسانهٔ زنده، با گراب به اوبونتوی اصلی خود وارد شوید. | |
=روشهای جایگزین= | =روشهای جایگزین= |
نسخهٔ کنونی تا ۲ اردیبهشت ۱۴۰۳، ساعت ۰۹:۰۶
اگر پس از نصب اوبونتو، تغییراتی در ترتیب دیسکها بدهید یا سیستمعاملهای غیراستانداری مانند ویندوز را روی رایانهی خود نصب کنید، ممکن است گراب خود را از دست بدهید. در چنین مواردی باید گراب را دوباره نصب کرده یا به اصطلاح تعمیر کنید.
محتویات
پیشنیازها
- رسانهٔ زندهٔ اوبونتوی سازگار با معماری و نگارش گراب اوبونتویی که روی دیسک شماست.
روش کار
ابتدا رایانه را با رسانهٔ زنده راهاندازی کرده و در نشست زنده، شبیهساز پایانه را بگشایید.
سوار کردن افرازها
لازم است بدانید که افراز ریشه را در کجا نصب کردهاید. دستور fdisk میتواند در این زمینه به شما کمک کند.
$ sudo fdisk -l
فرض میکنیم ریشهی اوبونتو در افراز
/dev/sda3
باشد. این افراز را روی سامانهپروندهٔ توزیع زنده سوار میکنیم.
$ sudo mount /dev/sda3 /mnt
اگر هنگام نصب توزیع خود، افراز جدایی (فرض میشود
/dev/sda2
) برای boot در نظر گرفته بودهاید با دستور زیر boot را هم سوار نمایید:
$ sudo mount /dev/sda2 /mnt/boot
در صورتی که سامانهٔ راهاندازی رایانهٔ شما از نوع UEFI است، لازم است افراز ESP نیز سوار شود. با فرض قرار داشتن ESP در
/dev/sda1
داریم:
$ sudo mount /dev/sda1 /mnt/boot/efi
برای شناخت صحیح افرازها در گراب باید شاخههای مجازی dev و proc و sys را از توزیع زندهای که هماکنون در حال کار با آن هستیم، روی سامانهپروندهی سیستم اصلی خود سوار کنیم:
$ sudo mount --bind /dev/ /mnt/dev $ sudo chroot /mnt/ mount -t proc proc /proc $ sudo chroot /mnt/ mount -t sysfs sysfs /sys $ sudo chroot /mnt/ mount -t devpts devpts /dev/pts
نصب گراب
حال باید گراب را روی دیسک اصلی خود که راهانداز بایوس به رکورد راهاندازی اصلی آن اشاره میکند، نصب کرد. با فرض این که sda
دیسک اصلی شماست:
$ sudo grub-install --root-directory=/mnt/ /dev/sda
برای سامانههای UEFI میتوان برای رفتن به ریشهٔ سوار شده و نصب گراب از این دستورها استفاده کرد:
$ sudo chroot /mnt # grub-install --target=x86_64-efi --efi-directory=/boot/efi
رفتن به محیط اوبونتوی اصلی
اگر هنوز به ریشهٔ سوار شده وارد نشدهایم، این کار را با chroot انجام میدهیم:
$ sudo chroot /mnt
بهروز رسانی گراب
حال باید فهرست گراب را بر اساس آنچه روی دیسک وجود دارد بهروز رسانی کرد:
# update-grub
خروج
سپس با زدن دستور exit
یا فشردن دکمههای ctrl+d از محیط chroot خارج میشویم. پس از آن باید افرازهای سوار شده را پیاده کرد:
$ sudo umount -R /mnt
پایان
در پایان رایانه را دوباره راهاندازی کرده و با خارج کردن رسانهٔ زنده، با گراب به اوبونتوی اصلی خود وارد شوید.
روشهای جایگزین
میتوانید برای انجام این کار از نرمافزار بوت ریپیر نیز کمک بگیرید.