Перезавантажте іншу ОС


3

У мене ноутбук з більш ніж однією ОС.

Чи є якась команда, за допомогою якої я можу вимкнути поточну ОС і завантажитися в іншу ОС?

windows-> Ubuntu і навпаки

спасибі


1
Це залежить від того, як вибрати для завантаження різних ОС, вибору завантаження BIOS, завантажувача LINUX або завантажувача Windows.
Пітер Гандорф

@PeterHahndorf Чи можете ви сказати це про все це (якщо ви знаєте)? це гарне питання.
TechLife

Відповіді:


2

Ці деталі можуть не зовсім збігатися з тим, як UEFI обробляє GPT-системи, але вони описують системи на основі MBR.

Офіційним (старим) стандартом є використання того, що є в Master Boot Record. Команда "fdisk" може бути використана для зміни реквізитів MBR.

Традиційний MBR містить деякі біти, які визначають, чи є розділ позначений. Стандарт визначає, що лише один розділ позначений прапором, хоча це не обов'язково виконується кодом завантаження. Коли користувач вказує, що конкретний розділ слід позначити, традиційна програма fdisk зазвичай перевіряє наявність іншого флагового розділу та, якщо його знайдено, відміняє його. Можуть бути альтернативні слова, які використовуються для опису "позначеного" розділу, як "вибраний" розділ.

Тоді традиційний MBR містить деякий «код» (інструкції). Коли система завантажується, цей код запускається. Код перевірить MBR, щоб побачити, наскільки великий кожен розділ, і побачити, який розділ позначений прапором. Потім він продовжить процес завантаження, запустивши додатковий код, який знаходиться в розділі, на якому позначено прапор.

Отже, це стандарт, який широко підтримується. На жаль, цей стандартний метод передбачає перехід на fdisk та взаємодію з ним вручну. Тож це не лише одна програма, яку можна запустити. Це, однак, найбільш широко підтримуваний стандарт.

Щоб цитувати FAQBSBS: Мультизавантаження :

Практично кожна ОС пропонує програму для цього; OpenBSD - це fdisk (8), подібні названі програми є в Windows 9x та DOS та багатьох інших операційних системах. Це може бути дуже бажано для ОС або систем, які потребують тривалого часу, щоб вимкнутись і перезавантажитись - ви можете встановити його і запустити процес перезавантаження, потім піти, випити чашку кави і повернутися до завантаженої системи. ви цього хочете - не чекаючи, коли Чарівний момент вибере наступну ОС.

Смішно, як при всіх фантазійних замінах, які були зроблені людьми, переваги найбільш широко підтримуваного офіційного процесу можна не помітити так часто.

Я знаю, що це може бути не настільки автоматизованим, як бажане, хоча в питанні, яке було задано, не було вказано неінтерактивності. Отже, проста відповідь, що так, є така команда. Це "fdisk".

Тепер є деякі інші варіації, і тому автоматизація, ймовірно, можлива, якщо ви шукаєте таке рішення. Ви можете перевірити свої операційні системи на наявність команди "boot" або чогось подібного; Я знаю, що стара операційна система OS / 2 містила команду "BOOT", яка могла змінити, яка операційна система була запущена. Точні команди, які вам потрібно виконати, залежать від того, який код завантаження ви фактично використовуєте. Існує кілька програм "менеджер завантаження", і ця функціональність тепер вбудована в більш операційні системи. Це хороша новина. Погана новина полягає в тому, що процес не настільки стандартизований, тому я не можу просто надати вам один конкретний процес, який добре поєднується з усіма різними варіаціями. В основному, потрібно вибрати рішення і використовувати його. Основна проблема, швидше за все, полягає в пошуку процесу, який можна виконати з декількох операційних систем, і який можна використовувати для запису до розділів диска, які обробляються під час завантаження системи. Ці секції, як правило, не є частиною файлової системи, і антивірусні функції можуть намагатися обмежити здатність людини писати до цих критичних розділів диску.

В основному, процес передбачає зміну бітів прапора розділу або зміну коду завантаження MBR або зміни поведінки коду, який знаходиться на розділі, який MBR використовує для продовження завантаження. Отже, це три різні підходи, і кожен з цих підходів фактично використовується деякими з різних варіантів, які доступні.

Четвертим підходом може бути зміна диска, з якого завантажуються BIOS-черевики. Однак цей підхід традиційно виявляється набагато менш сумісним між різними системами, тому такий підхід є скоріше теоретичною можливістю, ніж тим, що фактично використовується. (Хоча багато користувачів користуються цим підходом інтерактивно, часто натискаючи клавішу F12 або щось інше, щоб відкрити меню завантаження; іноді вони просто входять у налаштування BIOS і змінюють диск за замовчуванням, який буде використовуватися при наступних завантаженнях.)

Найпоширеніший метод - це, ймовірно, створення 512-байтного зображення всього MBR, коли система завантажується в одну операційну систему, а потім збереження 512-байтового зображення всього MBR, коли система завантажується з іншою операційною системою. Потім скористайтеся будь-яким програмним забезпеченням, яке вам потрібно, щоб безпосередньо записати ці 512 байти на перші 512 байти диска. (Щось на кшталт "dd" зробить цю справу.) Найбільшою проблемою з цим може бути лише отримання дозволу операційної системи.

Відповідь AFH, схоже, показує, як це можна зробити з Linux із grub. Диспетчер завантаження Windows за XP / 2003 днів використовує подібні зображення сектора (на які посилається файл "Boot.ini"), тому вихід із Windows можна зробити, змінивши текстовий файл Boot.ini. (Цей процес, можливо, змінився в Vista / 2008, тому перевірте новий менеджер завантаження, перш ніж спробувати це в нових системах.) Точний спосіб реалізації будь-якого з цих рішень залежатиме від того, яку операційну систему ви намагаєтеся припинити використовувати. (Наприклад: яка версія Microsoft Windows.)


1

Так, це можливо, якщо ви використовуєте Grub для вибору завантаження: -

  • Завантажтесь у Linux.
  • Увімкніть привілеї root , увійшовши або використовуючи suабо sudo -s.
  • Скопіюйте /boot/grub.cfgабо в, /boot/grub.winабо /boot/grub.linзалежно від замовчування.
  • Редагуйте, /etc/default/grubщоб змінити GRUB_DEFAULT=номер альтернативної ОС у списку завантаження (рахуючи від нуля).
  • Запустіть update-grub, потім скопіюйте /boot/grub.cfgу /boot/grub.linабо /boot/grub.win, якщо потрібно.
  • Відновити GRUB_DEFAULT=попереднє значення в /etc/default/grub.
  • Створення bootlinта bootwinвміст:
    cp /boot/grub.lin /boot.cfgабоcp /boot/grub.win /boot.cfg
    shutdown -r now

Тепер ви можете зателефонувати bootlinабо bootwinз Ubuntu.

У Windows вам потрібно буде робити те саме: -

  • Спочатку встановіть ext2fsd .
  • Призначте літера диска (наприклад U:) до розділу Ubuntu і зробіть його для запису.
  • Тепер ви можете створити bootlin.cmdта bootwin.cmdмістити відповідну copyкоманду для перезапису з U:\boot\grub.cfgнаступним:
    shutdown -r

Якщо ви завантажуєтесь, ntldrви можете скористатися подібною технікою з двома копіями boot.ini(можливо, спочатку потрібно очистити лише атрибути для читання, системні та приховані). Можливо, існує подібна техніка, яку ви можете використовувати з іншими завантажувачами, але я залишаю це іншим, щоб підказати, що з ними буде працювати.

ПОПЕРЕДЖЕННЯ: Я вважаю, що ext2fsd добре працює в режимі лише для читання, але я ніколи не використовував його в режимі для запису: пам’ятайте, що він може пошкодити вашу систему Ubuntu, тому переконайтеся, що вона добре створена, доки ви не спробували її кілька разів і запевнив себе, що він працює правильно. Це може бути безпечніше від Windows , для редагування grub.cfg на місці , яке не потребуватиме зміни каталогу, але вам потрібно буде якийсь - то Windows , редактор-лінії , яка не використовує робочі файли в тій же файлової системи, або сколотити кілька рядків , Cщоб Зроби це.


0

тоді як, коли ми називаємо апаратне перезавантаження, воно більш-менш ідентично відключенню живлення та включенню. при цьому втрачається вся оперативна пам’ять. і коли ми включаємо, процес завантаження обробляється мікропрограмним забезпеченням материнської плати. якщо ми хочемо сказати прошивці материнської плати якесь повідомлення , ми не повинні залишати таке повідомлення в таран. але ми можемо написати щось (що завгодно) на диск (або якийсь інший постійний носій інформації, і я вважаю, що efi забезпечує механізм встановлення енергонезалежних змінних).

окрім вищезгаданих схем, Linux ядра мають функціонал kexec для "передачі контролю" іншій системі без зниження обладнання. хоча ядро ​​Windows не може бути безпосередньо kexec'ed, вирішення існує шляхом kexec'ing в програму завантажувача і нехай програма завантажувача ініціалізує систему Windows.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.