Я встановив Windows 7, який з'їв завантажувальний файл Ubuntu. Під час запуску комп'ютера тепер він переходить безпосередньо до Windows, не даючи мені можливості завантажувати Ubuntu.
Як я можу повернути Ubuntu назад?
Я встановив Windows 7, який з'їв завантажувальний файл Ubuntu. Під час запуску комп'ютера тепер він переходить безпосередньо до Windows, не даючи мені можливості завантажувати Ubuntu.
Як я можу повернути Ubuntu назад?
Відповіді:
Встановлюючи Windows, Windows передбачає, що це єдина операційна система (ОС) на пристрої, або, принаймні, вона не враховує Linux. Так він замінює GRUB власним завантажувачем. Що потрібно зробити, це замінити завантажувач Windows на GRUB. Я бачив різні вказівки щодо заміни GRUB шляхом спілкування з командами GRUB чи деякими подібними, але для мене найпростіший спосіб - просто chroot
встановити та запустити update-grub
. chroot
чудово, оскільки він дозволяє вам працювати над фактичним встановленням, а не намагатися перенаправляти речі туди-сюди. Це дійсно чисто.
Ось як:
Визначте номер розділу вашого основного розділу. sudo fdisk -l
, sudo blkid
Або GParted (які вже повинні бути встановлені за замовчуванням, на живий сесії) може допомогти вам в цьому. У цій відповіді я припускаю, що це так /dev/sda2
, але переконайтеся, що ви використовуєте правильний номер розділу для вашої системи!
Якщо ваш основний розділ знаходиться в LVM , пристрій замість цього буде розташований в /dev/mapper/
, швидше за все, /dev/mapper/{volume}--{os}-root
там , де {volume}
є ім'я тома LVM і {os}
є операційною системою. Виконати ls /dev/mapper
для точного імені.
Змонтуйте перегородку:
sudo mount /dev/sda2 /mnt #Replace sda2 with the partition from step 2
Якщо у вас є окремі /boot
, /var
або /usr
розділи , повторіть кроки 2 і 3 , щоб змонтувати ці розділи на /mnt/boot
, /mnt/var
і /mnt/usr
відповідно. Наприклад,
sudo mount /dev/sdXW /mnt/boot
sudo mount /dev/sdXY /mnt/var
sudo mount /dev/sdXZ /mnt/usr
заміна sdXW
, sdXY
і sdXZ
з відповідними номерами розділів.
Прив’яжіть монтувати деякі інші необхідні речі:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
Якщо Ubuntu встановлено в режимі EFI ( див. Цю відповідь, якщо ви не впевнені ), використовуйте sudo fdisk -l | grep -i efi
або GParted, щоб знайти свій розділ EFI. Він буде мати етикетку EFI
. Змонтуйте цей розділ, замінивши sdXY
фактичний номер розділу для вашої системи:
sudo mount /dev/sdXY /mnt/boot/efi
chroot
у вашу установку Ubuntu:
sudo chroot /mnt
На даний момент ви перебуваєте у встановленні, а не в прямому сеансі, а працюєте як root. Оновити груб:
update-grub
Якщо ви отримали помилки або якщо перехід до кроку 7 не усунув вашу проблему, перейдіть до кроку 8. (Інакше це необов’язково.)
Залежно від ситуації, можливо, доведеться перевстановити grub:
grub-install /dev/sda
update-grub # In order to find and add windows to grub menu.
Якщо Ubuntu встановлено в режимі EFI, а розділ UIID розділу EFI змінився, можливо, вам доведеться оновити його в /etc/fstab
. Порівняйте:
blkid | grep -i efi
grep -i efi /etc/fstab
Якщо поточний EFI-розділ UUID (від blkid
) відрізняється від вхідного /etc/fstab
, оновіть його /etc/fstab
поточним UUID.
Якщо все працювало без помилок, то все налаштовано:
exit
sudo reboot
На цьому етапі ви зможете нормально завантажуватися.
Якщо ви не можете нормально завантажитися і не зробили крок 8, оскільки не було повідомлень про помилки, спробуйте ще раз з кроком 8.
grub-efi-amd64
і якщо ви використовуєте захищений завантажувач, який ви хочете використовувати grub-install --uefi-secure-boot
. Про це також детально йдеться в superuser.com/a/376471/197980
Інсталятор Windows не хвилює інших ОС у системі. Так він пише власний код над основним записом завантаження. На щастя, рішення теж легко.
Вам потрібно відремонтувати MBR. Виконайте наступне
Завантажте за допомогою живого usb / cd ubuntu. Використовуйте boot-repair
для вирішення проблеми.
Після завантаження з live usb / cd, запустіть наступну команду в терміналі:
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
Використовуйте Recomended Repair
.
Більше інформації - https://help.ubuntu.com/community/Boot-Repair
Завантажтесь з живого USB-диска Ubuntu або компакт-диска та
встановіть Boot-Repair на ubuntu, виконавши наступні кроки
Відкрийте термінал і запустіть наступні команди
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair
Після завершення інсталяції ви можете запустити її з меню System-> Administration-> Boot-Repair, якщо ви використовуєте Gnome, або шукайте "boot-repair" на тире, якщо ви використовуєте Unity. Потім виконайте такі скріншоти:
Спосіб 1
Натисніть Застосувати та перезавантажте систему
Спосіб 2
Просто встановіть easyBCD
у Windows 7 і зробіть
Додати нову запис> Linux / BSD> (виберіть) Grub2> (натиснути) Додати запис
Тоді ви можете вибрати Ubuntu на завантажувачі Windows 7, щоб перейти до Grub2 (попередній завантажувач).
У системах на базі EFI (таких як більшість систем, що постачаються з Windows 8 або новіших версій), Windows іноді оновлюватиме завантажувач або скидає його як завантажувач за замовчуванням. Це особливо часто при перевстановці ОС або при здійсненні основного оновлення системи (наприклад, оновлення до останнього випуску Windows). Зауважте, що Windows навряд чи видалить будь-які файли GRUB на комп'ютері на базі EFI. Все необхідне для завантаження Ubuntu все ще існує; це просто обходить. У цих випадках повна перевстановлення GRUB є надмірною, і насправді це (малий) шанс, що це створить нові проблеми.
Таким чином, замість повторної установки GRUB у цих випадках, я рекомендую скинути GRUB (або будь-який завантажувач або менеджер завантаження), що є типовим. Існує кілька способів зробити це, зокрема:
ubuntu
запис у списку параметрів завантаження та перемістіть його до початку списку. Наступного разу при перезавантаженні GRUB має з’явитися. (Якщо ви використовуєте щось інше, ніж GRUB, вам потрібно буде знайти його запис.)bcdedit
- Інструмент Windows bcdedit
може бути використаний для встановлення GRUB у порядку завантаження за замовчуванням. Команда bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
, введена у вікні командного рядка адміністратора , зробить це; однак, якщо ваш комп'ютер завантажується із захищеним завантаженням, bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
замість цього вам буде потрібно. Насправді, остання команда, як правило, спрацює, навіть якщо захищене завантаження не використовується, тому я спершу використовую цю команду. Зауважте, що є більш просунутий інструмент оболонки Windows, який вимагає дещо іншого синтаксису, ніж я представив, але я не пригадую деталей.ubuntu
запис про завантаження Ubuntu відобразиться в цьому меню диспетчера завантажень, що дозволяє вам завантажуватися на Ubuntu. Крім того, ви можете завантажитися на аварійний носій Ubuntu, як, наприклад, інсталятор завантажений у режимі "спробувати перед встановленням". У будь-якому випадку ви можете efibootmgr
скоригувати порядок завантаження:
sudo efibootmgr
щоб побачити записи завантаження.BootOrder
рядок.ubuntu
та зазначте його Boot####
номер.sudo efibootmgr -o xxxx[,yyyy,zzzz,....]
щоб змінити порядок завантаження, зробивши xxxx
номер для Ubuntu. Що після цього, швидше за все, не дуже важливо, хоча я зазначав, що Windows, ймовірно, додасть себе до початку порядку завантаження, якщо його немає в списку. Таким чином, ви, ймовірно, повинні переконатися, що Windows знаходиться у списку, і, можливо, найбезпечніше буде повторно замовити список так, щоб усі оригінальні записи були там, тільки коли ubuntu
запис перемістився у верхню частину списку.Є інші варіанти цих процедур, такі як використання bcfg
в оболонці EFI, використання bless
в macOS, використання мого rEFInd для одноразового завантаження і т. Д. Я б почав з EasyUEFI; це, мабуть, найпростіше рішення. Іноді Windows наполягає на тому, щоб зробити його за замовчуванням кожного разу, коли він запускається, і звіти свідчать, що це bcdedit
може зробити кращу роботу над вирішенням цієї проблеми.
Зауважте, що жодне з попереднього не застосовується до установок в режимі BIOS; однак, оскільки більшість комп’ютерів, що постачаються з Windows 8 або пізнішими завантаженнями в режимі EFI, установки в режимі BIOS стають все більш рідкісними, тому в багатьох випадках краще вирішувати цю проблему способом EFI, а не сліпою перевстановленням GRUB.
efibootmgr
для повторного замовлення завантаження (як описано Rod -> спасибі!), який був зіпсований програмою win10 оновлення. Після цього GRUB-bootmanager з'являється як раніше до оновлення, тому я можу підтвердити, чи надане рішення працювало для мене. Я не зміг знайти базову версію EasyUEFI, але лише пробну версію запропонованої невільної про-версії.
Зараз є більш просте рішення:
Це перевірено на подвійному завантаженні ноутбука Samsung Series 7 Chronos Windows 8 та Ubuntu 13.10, захищеному завантаженні відключеному, UEFI та застарілому завантаженні.
Для мене працював Boot-Repair. Користуватися графічним додатком дуже просто, вам не потрібно використовувати командний рядок, потрібно лише натиснути кнопку :)
Усі доступні варіанти ремонту описані в документації на Ubuntu, і на окремій сторінці пояснено, як запустити завантажувальний ремонт (створивши завантажувальний диск або встановивши його на існуючий живий диск Ubuntu) та як ним користуватися.
Просто завантажте живий компакт-диск Ubuntu, встановіть Boot-Repair та запустіть його.
chroot
ремонт, ніж Google навколо, щоб встановити інший інструмент.
Коли GRUB порушений, користувач, як правило, не має доступу до систем, тому ремонт повинен виконуватися в прямому сеансі (Live CD або Live-USB).
Існує багато можливих причин розриву GRUB: запис Windows на MBR, DRM, що запобігає правильній установці GRUB, помилка інсталятора, зміна апаратного забезпечення ... Оновлення GRUB, запропонованого спочатку Скоттом, як правило, недостатньо, перевстановлення GRUB, як запропонував Марко, є Більш ефективні, але все ж існують різні ситуації, що вимагають інших налаштувань (додавання параметрів до ядра, приховування меню GRUB, зміна параметрів GRUB, вибір правильної архітектури хоста ...). Інші труднощі для ремонту GRUB - це використання chroot та вибір правильних перегородок / дисків.
Все це було спрощено за допомогою невеликого графічного інструменту: Boot-Repair . Він повинен бути інтегрований у компакт-диск Ubuntu 12.04 для більш легкого використання, але для людей, які потребують його зараз, вже є кілька дистрибутивів: -Ремонт при запуску), ...
Сподіваюся, це допомагає.
Відповіді Скотта та Web-E досить хороші та багато разів допомагали. Але багато разів інструмент для відновлення завантаження не в змозі відремонтувати grub через проблеми, пов’язані з платформою i386 та amd64 або тим, де grub не може знайти efi
каталог.
Що більш ніж у 10 разів вирішило мою проблему - це вручну очистити старі установки з гвинту та встановити нову.
Таким чином , перший виконати перші 6 кроків від Скотта, відповіді , де ви можете пропустити 5 - й крок , якщо він видає помилку:
- Завантажте його з живого компакт-диска або живого USB в режимі "Спробуйте Ubuntu".
Визначте номер розділу вашого основного розділу.
sudo fdisk -l
,sudo blkid
Або GParted (які вже повинні бути встановлені за замовчуванням, на живий сесії) може допомогти вам в цьому. У цій відповіді я припускаю, що це так/dev/sda2
, але переконайтеся, що ви використовуєте правильний номер розділу для вашої системи!Якщо ваш основний розділ знаходиться в LVM , пристрій замість цього буде розташований в
/dev/mapper/
, швидше за все,/dev/mapper/{volume}--{os}-root
там , де{volume}
є ім'я тома LVM і{os}
є операційною системою. Виконатиls /dev/mapper
для точного імені.Змонтуйте перегородку:
sudo mount /dev/sda2 /mnt #Replace sda2 with the partition from step 2
Якщо у вас є окремі
/boot
,/var
або/usr
розділи , повторіть кроки 2 і 3 , щоб змонтувати ці розділи на/mnt/boot
,/mnt/var
і/mnt/usr
відповідно. Наприклад,sudo mount /dev/sdXW /mnt/boot sudo mount /dev/sdXY /mnt/var sudo mount /dev/sdXZ /mnt/usr
заміна
sdXW
,sdXY
іsdXZ
з відповідними номерами розділів.Прив’яжіть монтувати деякі інші необхідні речі:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
Якщо Ubuntu встановлено в режимі EFI ([див. Цю відповідь, якщо ви не впевнені] [efi]), використовуйте
sudo fdisk -l | grep -i efi
або GParted, щоб знайти свій розділ EFI. Він буде мати етикеткуEFI
. Змонтуйте цей розділ, замінившиsdXY
фактичний номер розділу для вашої системи:sudo mount /dev/sdXY /mnt/boot/efi
chroot
у вашу установку Ubuntu:sudo chroot /mnt
Потім виконайте такі дії:
sudo dpkg --configure -a
sudo apt install -fy
sudo apt purge -y grub*-common grub-common:i386 shim-signed
sudo apt install -y grub-pc
sdXY
щоб встановити завантажувач. Знайдіть, де ваша поточна ОС встановлена за допомогою sudo fdisk -l
команди. Це буде позначено як Linux
. Перейдіть до цього вікна за допомогою Tabклавіші та виберіть параметр за допомогою Spaceклавіші.sudo grub-update
подвійну перевірку.Якщо проблема як і раніше зберігається, ви можете прочитати вікі Arch, щоб насправді зрозуміти, що стосується груба для вирішення багатьох інших різновидів проблем. (Так, також допомагає Ubuntu!).
Windows не бачить розділи, відформатовані Linux. Вам потрібно використовувати gparted від liveCD та створити NTFS, відформатований первинним розділом, із завантажувальним прапором.
У деяких виникли проблеми, якщо новий основний розділ знаходиться після розширеного розділу, оскільки Windows не завжди правильно скидає таблицю розділів. Найкраще мати хороші резервні копії та окрему резервну копію таблиці розділів.
Резервне копіювання таблиці розділів у текстовий файл та збереження на зовнішньому пристрої.
sudo sfdisk -d /dev/sda > PTsda.txt
Це стосується лише систем MBR (msdos). Якщо ваша установка Ubuntu знаходиться в дисководі розділів GPT, ви можете встановити Windows тільки в режимі UEFI або перетворити диск назад в MBR (msdos).
Тільки fsck
команда зафіксувала grub-rescue
для мене екран.
Використовуйте Boot-Repair для завантаження з Live-CD, а потім відкрийте Terminal
Отримайте правильний пристрій:
sudo fdisk -l
Потрібно знайти завантажувальний пристрій, завантажувальний пристрій має *
категорію Boot, як тут:
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 2000895 1998848 976M 82 Linux swap / Solaris
/dev/sda2 * 2000896 943716351 941715456 449G 83 Linux
Тепер відновіть диск, використовуючи:
sudo fsck /dev/sda2 -y
Примітка: / dev / sda2 - це завантажувальний пристрій у цьому прикладі.
Перезавантажте після завершення. Зроблено.
Відповідь Скотта Северанса є достовірною та детальною, але є резолюція, яка не потребує зовнішнього завантажувального пристрою, а тому не потрібно ідентифікувати та встановлювати всі ваші розділи Ubuntu, що ведуть до chroot
.
У Windows 10 ви можете Advanced Recovery
вибрати пристрій (розділ?) Для завантаження.
Перейдіть Settings
і виберіть Update & Security
:
Перейти до Recovery
:
З Advanced Startup
виборуRestart Now
Потім виберіть Use a Device
і всі варіанти завантаження повинні бути представлені вам. Виберіть розділ 'ubuntu', і ваш ПК повинен завантажитися з цього розділу.
Після завантаження в моє звичайне середовище Ubuntu, я спробував просто запустити, grub-update
але це не змінило.
Тоді я знайшов свою /boot/efi
перегородку, яка була /dev/nvme0n1p1
і бігла, sudo grub-install /dev/nvme0n1p1
а потім sudo update-grub
.
Це відновило мою основну завантажувальну запис кілька разів, оскільки, здається, існує нова політика Windows 10 щодо перезапису MBR на незначні оновлення .
У мене виникла інша проблема, викликана (ймовірно), boot-repair
протираючи /etc/grub.d/
шаблони, викладені в моєму запитанні тут: Ubuntu 18.04 не завантажується після встановлення Windows 10
Як вказує коментар @karels, конфігурація grub створюється за допомогою файлів у /etc/grub.d
. Мій каталог лише містив /etc/grub.d/25_custom
дивні записи меню, які вказували на неіснуючі зображення .efi. Схоже, мої /etc/grub.d
шаблони були, можливо, шланговими boot-repair
.
Я це зафіксував:
sudo mount /dev/sdxx /mnt
sudo cp /etc/grub.d/* /mnt/etc/grub.d/
sudo update-grub