Як запустити update-grub з LiveCD?


62

Гаразд, значить, я зробив щось дурне. Я намагався очистити свої записи Grub і випадково видалив усі мої Linux ядра з Grub (вони все ще знаходяться на жорсткому диску). Тому зараз, очевидно, Grub не дає мені ніякого способу завантажуватися в Ubuntu; Я можу завантажуватися в Windows просто чудово, але Ubuntu навіть не входить до списку.

Тому я просто хочу якось запустити "sudo upgrade-grub", щоб відновити Ubuntu до списку. Я можу завантажуватися з LiveCD, але як тільки я запускаю цю команду? (Між іншим, моя установка Ubuntu на sda5.)


Це прекрасно працює ... зробив це всього 2 дні тому- opensource-sidh.blogspot.in/2011/06/…
Nirmik

в цьому потоці хочу вказати - що в 12.10 команда update-grub не працює з grub <2.0 ?! - Я сам минулими вихідними завершив установку 12.10 (груша ОС 7.0.1) з установкою grub, а потім оновлення-grub не працювало - довелося врятувати за допомогою супергруб-CD ...
dschinn1001

Відповіді:


81

Оскільки ви кажете, що ваш завантажувач grub з'являється, але меню порожнє, я думаю, вам не потрібно перевстановлювати grub, а скоріше, як ви просите, запустіть update-grub. Щоб досягти цього, ви можете використовувати Live CD, змонтувати відповідні розділи з вашого жорсткого диска, chroot у встановлений каталог та запустити update-grub, який повинен працювати так, ніби ви працювали на фактичному жорсткому диску.

Завантажте свій живий компакт-диск, вибравши "Спробуйте Ubuntu без встановлення".

Як тільки він завантажиться, відкрийте термінал (ctrl-alt-t) і встановіть розділ Ubuntu на / mnt. Я припускаю, що розділ Ubuntu є / dev / sda5, але ви повинні визначити це самостійно. Повідомте мене, якщо вам потрібна допомога:

sudo mount /dev/sda5 /mnt

Потім змонтуйте ще кілька необхідних каталогів:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc

Крім того, якщо у вас є окремий завантажувальний розділ Ubuntu (досить рідко в ці дні, але це може бути так):

sudo mount /dev/sdaX /mnt/boot

Як ви можете визначити, чи є у вас завантажувальний розділ?

Після встановлення розділу Ubuntu відкрийте /mnt/etc/fstab. Якщо ви бачите запис /boot, відзначте, на який пристрій він вказує ( /dev/sda4можливо?). Це те, що ви повинні встановити.

Як тільки вони змонтовані, зробіть chroot, щоб почати використовувати змонтований каталог як кореневий розділ:

sudo chroot /mnt

Ви отримаєте #/підказку. Перше, що потрібно зробити, це підтвердити, що ви використовуєте правильний /bootкаталог. Зайдіть /boot/grubі подивіться там файли. Має бути купа файлів .mod та файл grub.cfg. Якщо каталог порожній, не продовжуйте, оскільки це означає, що це НЕ ваш фактичний bootкаталог. Подивіться вище, щоб дізнатися, як потрібно встановити додатковий bootкаталог.

Після того як ви підтвердили , що /boot/містить правильні файли, а це означає , що він є правильним розташуванням, типу:

sudo update-grub

Це має відновити ваш файл /boot/grub/grub.cfg із записами меню.

Потім вийдіть з chroot:

exit

У цей момент ви, можливо, захочете перевірити, чи все було правильно оновлено. Для цього cd /mnt/boot/grubі перевірте, чи є там файли grub, має бути купа файлів .mod та grub.cfg, останні повинні мати записи для ваших ядер Ubuntu. Якщо ви бачите лише файли grub.cfg і відсутні.

Демонтуйте файлові системи:

sudo umount /mnt/dev
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot #Only if you mounted it earlier
sudo umount /mnt/

А потім перезавантажте, сподіваємось, ваше меню Grub буде відновлено.


Коли я намагаюся запустити три команди монтування, я отримую "точка монтажу / mnt / dev не існує" або відповідну для кожної.
Келлі

ваш Ubuntu встановлено на / dev / sda5? Якщо так, то після того, як sudo mount /dev/sda5 /mntви зможете cd /mntпобачити дерево своєї установки Ubuntu там. Це повинно мати dev, sys та proc. Якщо ні, можливо, ви монтуєте неправильний розділ. Ви можете це перевірити? Дякую!
roadmr

Я перезапустив LiveCD, і цього разу, здається, він працює. Я, мабуть, перший раз набрав щось не так, хоча я був обережним. У всякому разі, я перезавантажуюсь зараз ... і ні, нічого не змінилося. Досі немає вибору Ubuntu в меню Grub.
Келлі

Отже, щоб відповісти на ваше запитання після запуску "sudo mount / dev / sda5 / mnt", а потім "cd / mnt", я бачу dev, sys та proc.
Келлі

1
Ви, пане, рятувальник життя :) Дякую за це. Працював як шарм.
ereOn

14

Завантаження з прямого компакт-диска.

Натисніть Alt+ Ctrl+, Tщоб відкрити термінал і запустити наступні команди:

sudo mount / dev / sda5 / mnt

Встановіть завантажувач GRUB2:

sudo grub-install --root-directory = / mnt / dev / sda

Це /dev/sda- сам жорсткий диск, а не розділ Ubuntu - /dev/sda5.

Відключіть розділ Ubuntu та перезавантажте комп'ютер так:

sudo umount / dev / sda5; перезавантаження судо

Якщо у вас встановлено більше однієї ОС, повторно виявіть такі операційні системи:

sudo update-grub

Це воно!


1
позначено міною для видалення - жодного разу двічі не те саме
23 93 26 35 19 57 3 89

Дякую, але це не працює. Він перевстановлює Grub, але коли я перезавантажую, він все ще не оновлювався, тому моя установка Ubuntu досі не відображається в Grub. Якось мені потрібно оновити Grub, перш ніж перезавантажитись, як з LiveCD.
Келлі

@Kelley Ви впевнені, що установка Ubuntu на sda5? Ви можете перевірити це, запустивши sudo fdisk -l. Установка Ubuntu матиме *після / dev / sdxx.
Башарат Сіальві

Так, це на sda5. Однак * є після sda2, який є моїм розділом Windows (і останній розділ, в який я міг завантажитися, оскільки це єдиний вибір у моєму меню Grub).
Келлі

Chroot. Будь ласка, прочитайте інші відповіді.
Іш

1

Моє рішення цієї проблеми було:

  1. скачати supergrub2disk з http://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/
  2. покладіть його на маятник http://www.supergrubdisk.org/put-super-grub2-disk-into-an-usb-pendrive-as-an-iso-image-from-windows/
  3. завантажувальний комп'ютер від pendrive із супергруб2disk на ньому
  4. увійдіть у свій Ubuntu
  5. отримати ремонт-завантаження для Ubuntu з https://help.ubuntu.com/community/Boot-Repair

Можливо, це не найшвидше рішення, але для мене це було найпростішим.


1

Це рішення точно таке, як відповідь дорожнього руху, за винятком набагато простішого.

  1. Завантажтесь на компакт-диски AntiX Live.
  2. Меню> Програми> Системні інструменти> Ремонт завантаження
  3. Виберіть "Відновити файл конфігурації GRUB" (цей параметр запускає update-grub)
  4. Виберіть диск / розділ, де / boot знаходиться
  5. Перезавантажте, коли її закінчите.

У моєму конкретному випадку "Перевстановити завантажувач GRUB" виправив це для мене. У мене встановлення Windows / Linux з подвійним завантаженням. Я використовував Macrium 7 для створення клону диска до файлу. Потім відновіть цей файл на новому диску. Після того як я відновив його на новому диску, він завантажиться на чорний екран із миготливим курсором у верхньому лівому куті .



-1

Дякую за всю чудову допомогу! Однак зрештою, здавалося, нічого не вийшло, і оскільки у мене був окремий / домашній розділ, я зміг перевстановити Ubuntu, не втрачаючи жодних даних. Мені все ж доведеться перевстановлювати програми та робити певну конфігурацію, але в цьому моменті все здається добре.


1
Радий знати, що ти вирішив це якось, але хронінг мав би спрацювати, і це, я вважаю найкращим рішенням.
Махеш

Так. Я не знаю, чому це не спрацювало, але відповідь була чудовою (і я її схвалив). Ви, хлопці, надали велику допомогу, і, можливо, відповіді допоможуть комусь іншому пережити цю проблему.
Келлі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.