Зміст:
- Термінологія
- Перетворення
- Налаштування (+ подвійне завантаження)
Термінологія
BIOS = Базова система вводу / виводу
(U) EFI = (Уніфікований) Розширюваний інтерфейс мікропрограмного забезпечення
MBR = Основний запис завантаження
GPT = Таблиця розділів GUID
UEFI / EFI / BIOS = Інтерфейс прошивки
MBR / GPT = Як комп'ютер знає (на жорсткому диску), які розділи знаходяться на диску та як їх завантажувати.
UEFI / BIOS
Інтерфейс прошивки є способом , що вбудоване програмне забезпечення (програмне забезпечення всередині пристроїв) і операційної системи взаємодіють між собою . Він ініціалізує апаратне забезпечення, потім запускає операційну систему та забезпечує, щоб драйвери операційної системи могли працювати з обладнанням.
BIOS - це звичайний інтерфейс прошивки, який використовується. UEFI - це новіший інтерфейс, який має декілька функцій, наприклад швидкість, графічний інтерфейс та можливість запустити мережеву карту та отримати ip-адресу. UEFI замінює EFI. (Ті, хто розвивав ІФІ, побачили, що є інші, які роблять щось подібне, і тому приєдналися до них, зближуючи ідеї ІФІ. Це потім стало УЄФІ).
BIOS вимагає, щоб завантажувач був на початку диска, проте UEFI використовує для цього розділ і може вибирати серед декількох завантажувачів.
MBR / GPT + GRUB
MBR є частиною коду на початку диска , який містить завантажувач (для BIOS), а також карту розділів і унікальний ідентифікатор диска.
Щоб встановити GRUB на диск з MBR, GRUB розміщує невелику програму в MBR, щоб завантажити решту GRUB з іншої частини диска. (Це робиться тому, що MBR занадто малий, щоб містити всі GRUB). Вибраний простір - це простір між MBR та першим розділом, який зазвичай існує.
GPT - це стандарт для того, як визначаються учасники. У нього є "захисний" MBR, однак це лише для того, щоб комп'ютери, засновані на BIOS, завантажували та зупиняли інструменти, які знають про MBR лише від спроби скинути GPT. Це може мати
(Як обробляється GPT, залежить від завантаження за допомогою BIOS (або системи UEFI в режимі емуляції BIOS) або UEFI. Я зупинюся на UEFI, оскільки це стосується питання).
Завантажувачі для операційних систем зберігаються в розділі під назвою EFI System Partiton, який форматується (як правило) з FAT32. Тут встановлено GRUB.
Перетворення
Спочатку...
Ми граємо з таблицею перегородок, тому гарантована безпека неможлива. Це ризикована операція. Однак метод не повинен втрачати дані.
Інші, що стикаються з цим: Не використовуйте в Apple Macs.
Тепер ...
Вам потрібно буде це зробити на живому компакт-диску (або іншої установки Linux, встановленої на іншому диску.)
Маючи справу з дисками GPT, нам потрібно використовувати програму, відому GPT. "GPT fdisk" - це хороший інструмент для використання та те, що я буду використовувати. Його можна викликати gptfdisk
або
gdisk
залежно від розподілу (Ubuntu називає його gdisk
). Розділений (і Gparted) також відомий як GPT, тому його можна безпечно використовувати з дисками GPT.
Для перетворення вам потрібно:
- Змініть розміри розділів, щоб вони відповідали даним GPT та системним розділам EFI.
- Перетворіть диск і додайте розділи
- Встановіть GRUB в системний розділ EFI.
1) Змініть розмір розділу
Використовуйте parted
(командний рядок) або gparted
(GUI) для зміни розміру першого та останнього розділу. Перший розділ повинен мати близько 200 Мбіт перед ним, а останній розділ повинен мати від 1 Мбіт до 2 Мбіт (або буде зроблено), знятий з кінця.
2) Перетворіть диск
Біжи
gdisk /dev/sdx
зміна пристрою, який ви хочете перетворити /dev/sdx
.
Він повинен сказати вам, що він перетворить таблицю partiton.
GPT fdisk (gdisk) version 0.6.14
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if
you don't want to convert your MBR partitions to GPT format!
***************************************************************
Command (? for help):
Тепер додайте новий розділ, зробивши його типу "EFI system". Він повинен знайти вільний простір на початку (я пропоную деякий низький номер сектору, наприклад 34), і автоматично використовувати весь вільний простір. У прикладах використовується флеш-накопичувач 4 Гб з 1 розділом, який вже є там, розміром якого визначено вище.
Command (? for help): n
Partition number (2-128, default 2): 2
First sector (34-7831518, default = 34) or {+-}size{KMGTP}:
Information: Moved requested sector from 34 to 2048 in
order to align on 2048-sector boundaries.
Use 'l' on the experts' menu to adjust alignment
Last sector (2048-421887, default = 421887) or {+-}size{KMGTP}:
Current type is 'Linux/Windows data'
Hex code or GUID (L to show codes, Enter = 0700): L
0700 Linux/Windows data 0c01 Microsoft reserved 2700 Windows RE
4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS
7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved
8200 Linux swap 8301 Linux reserved 8e00 Linux LVM
a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap
a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID
a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS
a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted
a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+
af01 Apple RAID af02 Apple RAID offline af03 Apple label
af04 AppleTV recovery be00 Solaris boot bf00 Solaris root
bf01 Solaris /usr & Mac Z bf02 Solaris swap bf03 Solaris backup
bf04 Solaris /var bf05 Solaris /home bf06 Solaris alternate se
bf07 Solaris Reserved 1 bf08 Solaris Reserved 2 bf09 Solaris Reserved 3
bf0a Solaris Reserved 4 bf0b Solaris Reserved 5 c001 HP-UX data
c002 HP-UX service ef00 EFI System ef01 MBR partition scheme
ef02 BIOS boot partition fd00 Linux RAID
Hex code or GUID (L to show codes, Enter = 0700): ef00
Changed type of partition to 'EFI System'
Тепер у вас повинен бути розділ EFI.
Command (? for help): p
Disk /dev/sdd: 7831552 sectors, 3.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 669247F2-37F7-4797-98F9-9CE56F7EA8C8
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 7831518
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 421888 7829503 3.5 GiB 0700 Linux/Windows data
2 2048 421887 205.0 MiB EF00 EFI System
Потім вийдіть gdisk
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed, possibly destroying your data? (Y/N): y
OK; writing new GUID partition table (GPT).
The operation has completed successfully.
Тепер використовуйте Gparted (або командний рядок mkfs.vfat
) для форматування розділу як FAT32.
3) Встановіть GRUB
Це приходить з меншими запевненнями, що попередня частина, як я сама не пробувала її.
Я не впевнений у цьому кроці, тому здогадуюсь, використовуючи вказівки RAOF :
Щоб перейти на grub-efi, який ви хочете
- Знайдіть свій розділ EFI; змонтуйте його в / boot / efi. Додайте це до / etc / fstab¹
- Встановіть пакет grub-efi
- Переключіть пріоритет завантаження BIOS з UEFI та Legacy лише на UEFI (або подібний варіант)
Вам слід розібратися, з якою версією grub-efi встановити
ioreg -l -p IODeviceTree | grep firmware-abi
Якщо він каже, EFI32
встановіть grub-efi-ia32
пакет, якщо він каже, EFI64
встановіть grub-efi-amd64
пакет. Ви можете встановити пакети за допомогою
sudo apt-get install <package name>
Це, ймовірно, спрацює, лише якщо ви завантажилися в режимі EFI.
Якщо це не працює, ви можете спробувати ці покрокові інструкції (у розділі "Встановити GRUB2 в (U) EFI-системи") після того, як grub-efi
буде встановлено.
Налаштування (+ подвійне завантаження)
Якщо інструкції RAOK спрацьовують, вам слід додати наступний рядок до
/etc/grub.d/40_custom
menuentry "Windows 7" {
set root='(hd0,gpt1)'
chainloader /EFI/microsoft/bootmgfw.efi
}
Це передбачає, що Windows визнано hd0
GRUB. Це може знадобитися змінити hd1
, щоб працювати.
Тепер біжи
update-grub
оновити конфігураційний файл.
Список літератури та подальше читання
Я використав кілька джерел.