Що робити перед подвійним завантаженням Windows 7 та Debian на EFI?


10

Я збираюся придбати материнську плату Asus із вбудованим програмним забезпеченням EFI і хотів підготуватися до встановлення Windows та Debian, коли апаратне забезпечення надійде. Я сподівався, що хтось, хто пішов цією дорогою, міг би дати мені кілька покажчиків.

Яку підготовку слід зробити перед тим, як спробувати встановити Windows 7 та Debian на новій системі на базі UEFI?

Відповіді:


8

EDIT: Коли я писав цю відповідь, дуже мало дистрибутивів, що постачаються з ядром, налаштованим EFI_STUB, тому потрібно було створити спеціальний. На сьогоднішній день більшість дистрибутивів постачають належним чином налаштоване ядро, і спеціальна збірка більше не потрібна. У цьому випадку цікаві розділи "Налаштування розділів" та "Налаштування речей" , "Вимоги" та "Складання ядра" можна пропустити.

Я не знаю, як Windows обробляє UEFI, але з боку Debian це досить просто.

Налаштуйте свої перегородки

Використовуйте схему розділів GPT, а не MBR.

Для завантаження з розділу GPT з UEFI призначений спеціальний завантажувальний розділ, який називається EFI SYSTEM PARTITION (ESP). Це не є обов'язковим, але найбільш сумісним способом є використання розділу FAT32. В більшості випадків розмір 200 МіБ повинен бути нормальним.

Щоб зареєструвати розділ як ESP, його потрібно позначити bootпрапором. На відміну від схем MBR, прапор завантаження використовується лише для позначення ESP, а не для розділів, з яких можна завантажуватися.

UEFI використовує структуру каталогів \EFI\<vendor>\<application>.efiдля зберігання програм UEFI. Розділювач каталогів позначається зворотною косою рисою навіть у Linux. може бути назвою розповсюдження, фактичне значення не стосується UEFI.

Додатки можуть бути системними утилітами, такими як шашки пам'яті або оболонка UEFI. Це також може бути завантажувач ОС або сама операційна система. Ці програми потрібно зареєструвати в UEFI, щоб мати можливість запускатись під час завантаження.

Вимоги

Версія ядра Linux> = 3.3 може бути завантажена безпосередньо UEFI. Ядро може виступати як власний завантажувач. Це називається EFISTUB . Наступні конфігурації ядра потрібні.

CONFIG_EFI = y
CONFIG_EFI_PARTITION = y
CONFIG_EFI_STUB = y
CONFIG_RELOCATABLE = y
CONFIG_FB_EFI = y
CONFIG_FRAMEBUFFER_CONSOLE = y
CONFIG_EFI_VARS = m

Ядро з цією конфігурацією наразі ще не є стабільним для Debian. Ви можете запекти власне ядро ​​або скористатись експериментальним деревом, тоді ви можете пропустити наступний абзац.

Компіляція ядра

(певно, більше не потрібно, дивіться редагування)

Якщо ви вирішили скласти ядро, ось короткі інструкції, як це зробити. Якщо у вас виникли проблеми, доступно багато інформації про те, як скласти ядро.

Отримання джерела

git clone git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

Перегляньте одну конкретну версію

git checkout v3.6

Налаштування ядра

зробити менюконфігуру

Зробіть потрібні налаштування у вашій системі або залиште їх такими, як є, якщо у вас немає нічого для налаштування. Це записує конфігурацію ядра у файл .config.

Переконайтесь, що встановлені параметри з попереднього абзацу. Це також має сенс вибрати CONFIG_INPUT_EVBUG=n. В іншому випадку ваші журнали будуть заповнені GiB сміття.

Побудова ядра

INSTALL_MOD_STRIP = 1 make-kpkg --uc --us binary-arch

Пакети створюються в батьківському каталозі.

Встановлення ядра

dpkg -i linux-image-3.5.0_Custom.deb linux-headers-3.5.0_Custom.deb

Побудова initramfs

mkinitramfs -o /boot/initrd.img-3.6.0-amd64 3.6.0

3.6.0 - версія ядра. Він за замовчуванням використовує працююче ядро, що не є хорошим вибором, оскільки ви все ще запустите старе ядро.

Налаштування речей

Щоб мати можливість завантажувати ядро ​​Linux, його потрібно скопіювати в ESP разом з initramfs. Враховуючи, що ESP встановлений на/boot/efi

/boot/efi/EFI/debian/vmlinuz-3.6.0.efi
/boot/efi/EFI/debian/initrd.img-3.6.0

ПРИМІТКА. Для забезпечення сумісності з більшістю систем розширення efiпотрібно додати до ядра.

Тепер ядро ​​може бути зареєстроване в UEFI. Для цього ми використовуємо інструмент efibootmgr.

echo "root = UUID = 3a4287b6-b3a7-4721-da38-acc38a928278 ro rootfstype = ext4 add_efi_memmap initrd = \\ EFI \\ debian \\ initrd.img-3.6.0" |
  iconv -f ascii -t ucs2 |
  efibootmgr \
    --створити \
    --gpt \
    --disk / dev / sda \
    - частина 4 \
    - мітка "Ядро Debian Linux 3.6.0" \
    - завантажувач "\\ EFI \\ debian \\ vmlinuz-3.6.0" \
    - написати-підпис \
    --додаток-бінарні-args -

Аргументом --diskє пристрій, де знаходиться ядро, а не ESP. --part- номер розділу, де знаходиться ядро. --labelце запис у меню завантаження UEFI.

Щоб побачити список доступних записів, просто запустіть efibootmgrбез аргументів. Синтаксис для видалення певного запису

efibootmgr -b запис (шістнадцятковий) -B

наприклад:

efibootmgr -b 001a -B

Ці інструкції не стосуються випадку оновлення ядра. Ядро та initramfs не копіюються автоматично в ESP. Це можна зробити за допомогою короткого сценарію, який копіює ядро ​​та initramfs в ESP і запускається efibootmgr. Цей скрипт може бути поміщений /etc/kernel/postinst.dдля запуску автоматично після оновлення ядра.

Примітка: менеджер завантаження, як GRUB, не потрібен, UEFI сам виступає як менеджер завантаження.

Це все, що вам потрібно з боку Linux, я не знаю, що потрібно для додавання Windows.


2

Переконайтесь, що UEFI не збирається заблокувати Linux із вашої машини; напевно, є налаштування для цього ефекту в BIOS. Перевірте і перевірте напевно. Я б ще раз перевірив цю точку з посібником та з виробником, якщо потрібно.

Була якась розширена дискусія з цього приводу; ZDNet мав кілька статей. Ось стаття від 21 вересня 2011 року та одна - від 23 вересня .

По-друге, виходячи з історичних даних, ви можете спочатку встановити Windows. Традиційно Windows просто передбачає, що це єдина ОС на машині - таким чином, вона видаляє будь-які завантажувальні дані, пов’язані з Linux. Це може бути інакше для УЄФІ, я не знаю.


2

Не обов’язково потрібно подвоювати Windows та Linux на UEFI. Дотримуйтесь посібника для конвертації UEFI в MBR-BIOS без втрати даних.

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


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