/
Additional GRUB Setup (in Russian)

Additional GRUB Setup (in Russian)

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм

GRUB ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… установлСнных Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ машинС дистрибутивов ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм. Для добавлСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ мСню GRUB, Π² Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ добавляСтся своя сСкция menuentry. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² для запуска Linux ΠΈ Windows ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π°Π²Ρ‚ΠΎΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ GRUB, Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ добавлялись ваши ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню, написанныС Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» /etc/grub.d/40_custom ΠΈ Π΄ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΈΡ… Π² ΠΊΠΎΠ½Π΅Ρ† этого Ρ„Π°ΠΉΠ»Π°. Всё Π΅Π³ΠΎ содСрТимоС Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΈ запускС grub-mkconfig

GNU/Linux

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ дистрибутив Linux загруТаСтся с Ρ€Π°Π·Π΄Π΅Π»Π° sda2:

submenu "Other Linux" { set root=hd0,2 linux /boot/vmlinuz # Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ сюда всС Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ ядра initrd /boot/initrd.img # Ρ„Π°ΠΉΠ» initrd, Ссли ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ }

Windows

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы Windows Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Multiboot, ΠΈ GRUB Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Windows нСпосрСдствСнно. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Windows, Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Ρ‘ собствСнный Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ядро Windows ΠΈ Π½Π°Π±ΠΎΡ€ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для старта Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², ΠΏΠΎ списку, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ· рССстра Windows.

Для BIOS ΠΈ для UEFI Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ вСрсии Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсии Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, каТдая со своими особСнностями. Windows, установлСнная Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ BIOS, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ UEFI-Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° ΠΈ Π½Π΅ стартуСт Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ UEFI, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ – Π±ΡƒΠ΄ΡƒΡ‡ΠΈ установлСнной Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ UEFI, Windows Π½Π΅ стартуСт Ρ€Π΅ΠΆΠΈΠΌΠ΅ BIOS.

Windows Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ BIOS

Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Windows для Ρ€Π΅ΠΆΠΈΠΌΠ° BIOS ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² – MBR, ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ GPT, нСзависимо ΠΎΡ‚ вСрсии Windows. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, 32-битная вСрсия Windows XP ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ BIOS.

Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Windows ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Ρ‡Π΅Ρ€Π΅Π· Π±ΡƒΡ‚-сСктор Ρ€Π°Π·Π΄Π΅Π»Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ установлСн:

menuentry "Windows" { chainloader (hd0,2)+1 }

Π»ΠΈΠ±ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ntldr

submenu "Windows XP" { set root=hd0,2 ntldr /ntldr }

Π’ Windows Vista ΠΈ Π²Ρ‹ΡˆΠ΅ Ρ„Π°ΠΉΠ» Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° называСтся ΠΈΠ½Π°Ρ‡Π΅, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

submenu "Windows 7" { set root=hd0,3 ntldr /bootmgr }

Windows Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ UEFI

Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Windows, установлСнной Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ UEFI, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² – GPT, ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ MBR.

Если GRUB2 установлСн Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ UEFI, Π΅Π³ΠΎ стартовый ΠΎΠ±Ρ€Π°Π· Π»Π΅ΠΆΠΈΡ‚ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ESP/EFISYS Ρ€Π°Π·Π΄Π΅Π»Π΅, Ρ‡Ρ‚ΠΎ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Windows. ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ стартовому ΠΎΠ±Ρ€Π°Π·Ρƒ GRUB2 Ρ€Π΅ΠΆΠΈΠΌΠ° UEFI ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ пСрСмСнная $cmdpath с содСрТимым Π²ΠΈΠ΄Π° (диск,Ρ€Π°Π·Π΄Π΅Π»)/EFI/ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³/grubx64.efi. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ· этого ΠΏΡƒΡ‚ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ диск ΠΈ Ρ€Π°Π·Π΄Π΅Π», ΠΌΠΎΠΆΠ½ΠΎ рСгулярным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Ρ€Π΅Π·Π°Ρ‚ΡŒ скобки ΠΈ ΠΏΡƒΡ‚ΡŒ, ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $root. ПослС этого Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Windows запускаСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ chainloader, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ EFI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:

submenu "Windows 8" { regexp -s root '\((.+)\)' "$cmdpath" chainloader /EFI/Microsoft/Boot/bootmgfw.efi }

Запуск FreeDOS

Аналогично ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ linux ΠΈ ntldr, Π² GRUB прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прямой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ядра FreeDOS, ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ freedos, Π±Π΅Π· использования ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² MBR ΠΈ Π±ΡƒΡ‚-сСкторС:

menuentry "FreeDOS" { freedos /KERNEL.SYS }

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° трСбуСтся ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Π° Ρ„Π»Π΅ΡˆΠΊΡƒ, FreeDOS, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ для запуска MHDD ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… инструмСнтов. Π’Π°ΠΊΠΎΠΉ способ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ позволяСт ΠΏΠΎΠ΄ Linux ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ установлСнной FreeDOS Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ носитСли, Π² Ρ‚ΠΎΠΌ числС "ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Π΅". (Установка FreeDOS ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌ способом, с записью Π΅Ρ‘ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² MBR ΠΈ Π±ΡƒΡ‚-сСктор, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ саму FreeDOS, хотя Π±Ρ‹ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС.)

Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π±Π΅Π· ОБ

Memtest86+

ВСст памяти memtest86+ (запускаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ BIOS):

menuentry "Memtest86+" { linux16 /boot/memtest86+/memtest.bin }

EFI-прилоТСния

EFI-прилоТСния ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· интСрфСйса UEFI, Π½ΠΎ ΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… EFI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² Ρ‚ΠΎΠΌ числС ΠΈΠ· UEFI-вСрсии GRUB2, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ chainloader. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° Windows это ΡƒΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ EFI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, вовсС Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ»Π°ΡΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Ρ€Π°Π·Π΄Π΅Π» EFISYS, особСнно Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ большоС, Π° Π½Π° спСцраздСлС ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ мСста. Достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„Π°ΠΉΠ» прилоТСния читался срСдствами GRUB, Π° пСрСмСнная root ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»Π° Π½Π° EFISYS. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ UEFI Shell запускаСтся прямо ΠΈΠ· /boot:

submenu "UEFI Shell" { archroot=$root regexp -s root '\((.+)\)' "$cmdpath" chainloader ($archroot)/boot/Shell.efi }

ΠŸΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· UEFI Shell Π²Ρ‹ снова ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ мСню GRUB.

Debian, Ubuntu ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ дистрибутивы с вСрсионным ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ядра

Π’ дистрибутивах с вСрсионными ядрами, ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ядра автоматичСски вызываСтся Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠΌΠ΅Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ² vmlinuz ΠΈ initrd ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π²Ρ‹Π½ΡƒΠ΄ΠΈΠ»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Debian ΠΈ Ubuntu ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ Π΄Π°ΠΆΠ΅ для ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии GRUB, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ использовались Ρ‚ΠΎΠ»ΡŒΠΊΠΎ статичСскиС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ.

Если Π΄Ρ€ΡƒΠ³ΠΎΠΉ дистрибутив установлСн Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ диск (Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ BIOS), ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ установку GRUB2, для Π΅Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ достаточно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ:

menuentry "Ubuntu" { chainloader (hd1)+1 }

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ UEFI нСсколько Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ установлСны ΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½ диск, ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ EFI-прилоТСния:

submenu "Ubuntu" { regexp -s root '\((.+)\)' "$cmdpath" chainloader /EFI/ubuntu/grubx64.efi }

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях (Π½Π΅ всСгда) Π΄Ρ€ΡƒΠ³ΡƒΡŽ установку GRUB2 ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ BIOS с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ multiboot, минуя встраиваниС ΠΎΠ±Ρ€Π°Π·Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ²:

submenu "Other Linux" { set root=hd0,6 multiboot /boot/grub/i386-pc/core.img }

К соТалСнию, часто встрСчаСтся ситуация, ΠΊΠΎΠ³Π΄Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ дистрибутив установлСн Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ BIOS Π½Π° Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый диск, Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ, ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ. Π’ этом случаС остаётся Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ GRUB ΠΈΠ· состава Ρ‚ΠΎΠ³ΠΎ дистрибутива, Π»ΠΈΠ±ΠΎ ΡƒΡ‡ΠΈΡ‚ΡŒ ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Arch Linux Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с вСрсионными ядрами.

Π‘Π°ΠΌΡ‹ΠΉ простой способ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ – ΠΏΠΎΠ΄ΡΡƒΠ½ΡƒΡ‚ΡŒ "своСму" GRUB ΠΊΠΎΠ½Ρ„ΠΈΠ³ ΠΎΡ‚ Ρ‡ΡƒΠΆΠΎΠ³ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всё ΡƒΠΆΠ΅ прСдусмотрСно, Π½Π΅ Π·Π°Π±Ρ‹Π² ΠΏΠ΅Ρ€Π΅Π΄ этим ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

submenu "Ubuntu" { unset lang unset gfxmode set root=hd0,2 configfile /boot/grub/grub.cfg }

Однако, Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· Ρ‡ΡƒΠΆΠΈΡ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ² ΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ², Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ мСню Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠΌ. Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ GRUB2 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ скрипт, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ мСню для Ubuntu:

. $prefix/ubuntu.cfg

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ‡ΡƒΠΆΠΈΡ… ядСр здСсь вынСсСны Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» настроСк:

usettings.cfg uroot=hd0,2 boot=/boot opts="root=LABEL=Ubuntu_root ro resume=LABEL=SwapU" hpref="Ubuntu"

Π‘Π°ΠΌ скрипт:

ubuntu.cfg function usave { if [ "$1" != "$usel" ] ; then usel="$1" save_env usel fi } function umenu { . $prefix/usettings.cfg kpref=$boot/vmlinuz- ipref=$boot/initrd.img- load_env default="$hpref $usel" if [ -n "$2" ] ; then default="$default $2" ; fi kernels= for kfile in "$uroot$kpref"* ; do k= regexp -s k "$kpref"'(.+)' "$kfile" kernels="$k $kernels" done for k in $kernels ; do ifile="$uroot$ipref$k" if [ -f "$ifile" ] ; then head="$hpref $k" if [ -n "$2" ] ; then head="$head $2" ; fi menuentry "$head" --source="usave $k linux $uroot$kpref$k $opts $1 initrd $ifile" fi done } submenu "Ubuntu" --hotkey=u { insmod regexp submenu "Recovery mode" --hotkey=r { umenu "recovery nomodeset" "recovery mode" } umenu }

Π­Ρ‚ΠΎΡ‚ скрипт Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ GRUB динамичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ подмСню со всСми ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ ядрами Ubuntu, ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ (для Ubuntu) Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ послСднСС Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ ядро.

ΠŸΡ€ΡΠΌΠ°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ· ΠΎΠ±Ρ€Π°Π·Π° диска

GRUB2 ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Ρ‹ ядСр ОБ Π² Ρ‚ΠΎΠΌ числС ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²-ΠΎΠ±Ρ€Π°Π·ΠΎΠ², ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… Π² псСвдоустройство ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ loopback. Однако слСдуСт ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ псСвдоустройство дСйствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ· ΠΎΠ±Ρ€Π°Π·Π° выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

loopback loop Ρ„Π°ΠΉΠ»-ΠΎΠ±Ρ€Π°Π·Π° linux (loop)/ΠΏΡƒΡ‚ΡŒ/ΠΊ/vmlinuz ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ initrd (loop)/ΠΏΡƒΡ‚ΡŒ/ΠΊ/initrd

ПослС отобраТСния ΠΎΠ±Ρ€Π°Π·Π° Π² loop-устройство (имя ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ, Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ loop), ΠΌΠΎΠΆΠ½ΠΎ срСдствами GRUB2 ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ с Π½ΠΈΠΌ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ с физичСскими дисками – Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ядра ΠΈ initrd, Ρ‡Ρ‚ΠΎ происходит ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ, Π° ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ Π€Π‘ ΠΎΠ±Ρ€Π°Π·Π° (трСбуСтся для ΠΎΠ±Ρ€Π°Π·Π° Arch):

probe -s isolabel -l loop

Π’Π°ΠΊ ΠΊΠ°ΠΊ срСдства Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с loopback-устройства Π² Ρ€Π°Π·Π½Ρ‹Ρ… дистрибутивах Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… трСбуСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, спСцифичныС для Π΄Π°Π½Π½ΠΎΠ³ΠΎ дистрибутива.

  • Установочный ΠΎΠ±Ρ€Π°Π· Arch Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΊΡƒ Π€Π‘ ΠΎΠ±Ρ€Π°Π·Π° Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ядра archisolabel=, ΠΈ линуксовоС устройство Ρ€Π°Π·Π΄Π΅Π»Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Π»Π΅ΠΆΠΈΡ‚, Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ img_dev= (ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π΅Π΅ всСго ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ UUID, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΌΠ΅Ρ‚ΠΊΡƒ, Ссли ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ).

  • ΠžΠ±Ρ€Π°Π· Ubuntu Π΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ΡΡ лишь ΠΏΡƒΡ‚Ρ‘ΠΌ ΠΊ ΠΎΠ±Ρ€Π°Π·Ρƒ Π½Π° дискС, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ сам.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… дистрибутивах срСдства Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ· ΠΎΠ±Ρ€Π°Π·Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈ вовсС ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, поэтому Π½Π΅ всС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π’ΠΎ всСх ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… прСдполагаСтся, Ρ‡Ρ‚ΠΎ GRUB2 установлСн Π½Π° Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π» диска ΠΈΠ»ΠΈ Ρ„Π»Π΅ΡˆΠΊΠΈ, Π³Π΄Π΅ Π»Π΅ΠΆΠ°Ρ‚ ΠΎΠ±Ρ€Π°Π·Ρ‹ (Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС см. Π½ΠΈΠΆΠ΅). Π’Π°ΠΊΠΎΠΉ способ установки позволяСт Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½Ρƒ Ρ„Π»Π΅ΡˆΠΊΡƒ ΠΈΠ»ΠΈ внСшний диск ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΎΠ±Ρ€Π°Π·ΠΎΠ², ΠΏΡ€ΠΈ этом сохранив Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π³ΠΎΡΡ мСста Π½Π° носитСлС ΠΏΠΎ прямому Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, с сохранСниСм ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.

Arch Linux ISO

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ GRUB2 Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ установочный ΠΎΠ±Ρ€Π°Π· Arch Linux.

grub.cfg dir= arch=x86_64 insmod regexp # для шаблонов * Π² ΠΈΠΌΠ΅Π½Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² probe -s root_uuid -u $root # ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ UUID для подстановки Π² img_dev= for iso in $dir/archlinux-*-$arch.iso ; do # ΠΈΡ‰Π΅ΠΌ ΠΎΠ±Ρ€Π°Π·(Ρ‹) Arch ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ if [ ! -f "$iso" ] ; then continue; fi # Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ±Ρ€Π°Π· сущСствуСт regexp -s build 'archlinux-(.+)-'$arch "$iso" # ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±Ρ€Π°Π·Π° Π΄Π°Ρ‚Ρƒ сборки menuentry "Arch Linux ISO $build $arch" --source="\ loopback loop $iso probe -s isolabel -l loop linux (loop)/arch/boot/$arch/vmlinuz archisolabel=\$isolabel img_dev=/dev/disk/by-uuid/$root_uuid img_loop=$iso earlymodules=loop initrd (loop)/arch/boot/$arch/archiso.img" done

Π€Π°ΠΉΠ» ΠΎΠ±Ρ€Π°Π·Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²ΠΈΠ΄Π° archlinux-YYYY.MM.DD-x86_64.iso Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π² ΠΊΠΎΡ€Π½Π΅ Ρ€Π°Π·Π΄Π΅Π»Π°. Π’ этом случаС тСкст Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ "ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ", Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΡ€Π°Π²ΠΎΠΊ -- Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ сам ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ имя ΠΎΠ±Ρ€Π°Π·Π° (ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²), сам ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ UUID Ρ€Π°Π·Π΄Π΅Π»Π°, ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΎΠ±Ρ€Π°Π·Π°, ΠΈ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ пСрСдаст всё это дистрибутиву Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ядра.

Если ΠΆΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΠ±Ρ€Π°Π·Π° (ΠΎΠ±Ρ€Π°Π·ΠΎΠ²) особый ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π²ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ корня Ρ€Π°Π·Π΄Π΅Π»Π°) Π² строку dir=, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€

dir=/images

Ubuntu desktop ISO

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ GRUB2 Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ ISO-ΠΎΠ±Ρ€Π°Π·Ρ‹ Ubuntu, ΠΊΡ€ΠΎΠΌΠ΅ сСрвСрных. Π’ сгСнСрированном мСню Π±ΡƒΠ΄ΡƒΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ для всСх Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Ubuntu.

grub.cfg dir= insmod regexp for iso in $dir/*ubuntu-*.iso ; do # ΠΈΡ‰Π΅ΠΌ ΠΎΠ±Ρ€Π°Π·(Ρ‹) Ubuntu if [ ! -f "$iso" ] ; then continue; fi # Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ±Ρ€Π°Π· сущСствуСт regexp -s name '.*/(.+)\.iso' "$iso" # выдСляСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя if regexp server "$name" ; then continue ; fi # Ubuntu Server Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°Π΅ΠΌ, Ρ‚Π°ΠΌ всё ΠΈΠ½Π°Ρ‡Π΅ if regexp amd64 "$name" ; then efi='.efi' ; else efi= ; fi # для x86_64 ΠΎΠ±Ρ€Π°Π· ядра vmlinuz.efi menuentry "$name" --source="\ loopback loop $iso linux (loop)/casper/vmlinuz$efi boot=casper iso-scan/filename=$iso noeject -- initrd (loop)/casper/initrd.lz" done

Как ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΊΠΎΠ΄ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€Π°Π²ΠΎΠΊ, Ссли Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Π»Π΅ΠΆΠ°Ρ‚ Π² ΠΊΠΎΡ€Π½Π΅ Ρ€Π°Π·Π΄Π΅Π»Π°, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для Π½ΠΈΡ… Π² строку dir=

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠ±Ρ€Π°Π·ΠΎΠ² с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° встроСнного диска

Если ΠΎΠ±Ρ€Π°Π·Ρ‹ трСбуСтся Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ с Π½Π΅ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π° встроСнного ТСсткого диска (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, /home ), ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄, создав для Π½Π΅Π³ΠΎ подмСню:

submenu "ISO boot" { dir= set root=hd0,5 # здСсь Π½ΡƒΠΆΠ½ΠΎ Π²ΠΏΠΈΡΠ°Ρ‚ΡŒ настоящий Π½ΠΎΠΌΠ΅Ρ€ Ρ€Π°Π·Π΄Π΅Π»Π° # ΠΈΠ»ΠΈ Π½Π°ΠΉΡ‚ΠΈ Π΅Π³ΠΎ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΊΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Arch_home: # search -s root -l Arch_home insmod regexp probe -s root_uuid -u $root arch=x86_64 # вмСсто этой строки вставляСм основной ΠΊΠΎΠ΄, начиная с for }

Если Ρ€Π°Π·Π΄Π΅Π» трСбуСтся Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎ UUID, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

submenu "ISO boot" { dir= root_uuid=ef6daeca-9278-40df-8c3b-55cf093ab215 search -s root -u $root_uuid insmod regexp arch=x86_64 # вмСсто этой строки вставляСм основной ΠΊΠΎΠ΄, начиная с for }

Π—Π°Ρ‰ΠΈΡ‚Π° Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ

О Π·Π°Ρ‰ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°

По-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ GRUB2 прСдоставляСт Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊΠΎ всСм своим возмоТностям, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ Π² сСбя Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π»ΡŽΠ±Ρ‹Ρ… ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню, Π½ΠΎ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΡ… ΠΊΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°.

Всё это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΡ€ΠΈ настройкС ΠΈ восстановлСнии систСмы, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚Π΅ ΠΆΠ΅ самыС инструмСнты сущСствСнно ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅Π»ΡŽ Π²Π·Π»ΠΎΠΌ систСмы. ИзмСнСниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ядра ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано для получСния ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ root Π±Π΅Π· Π²Π²ΠΎΠ΄Π° пароля, Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° с внСшнСго носитСля – для получСния ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ доступа ΠΊΠΎ всСм Π½Π΅Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ.

GRUB2 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя срСдства ограничСния доступа ΠΊ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΡƒ. Π‘ ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ, Π² сочСтании с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ доступа ΠΊ BIOS, ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΎΠΌ Π² BIOS Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ с Π»ΡŽΠ±Ρ‹Ρ… Π²Π½Π΅ΡˆΠ½ΠΈΡ… носитСлСй, ΠΌΠΎΠΆΠ½ΠΎ сильно Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ нСсанкционированный доступ ΠΊ систСмС, ΠΊΡ€ΠΎΠΌΠ΅ случая вскрытия корпуса для извлСчСния дисков ΠΈΠ»ΠΈ сброса настроСк BIOS.

РСализация ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ Π² GRUB2

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π² GRUB2 дСлятся Π½Π° Ρ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ:

  • Гости, ΠΎΠ½ΠΈ ΠΆΠ΅ Π½Π΅Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ. ΠœΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню.

  • АвторизованныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ. ΠœΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Π΅ для Π½ΠΈΡ… ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню.

  • Администраторы. Π˜ΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ – ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ, ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π».

Для управлСния доступом ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌ мСню, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ menuentry ΠΈ submenu ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ:

--users= позволяСт Π·Π°Π΄Π°Ρ‚ΡŒ список ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ этот ΠΏΡƒΠ½ΠΊΡ‚ мСню

--unrestricted Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ этот ΠΏΡƒΠ½ΠΊΡ‚ мСню Π±Π΅Π· Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π’Π°ΠΆΠ½ΠΎ: ПослС Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, Π»ΡŽΠ±Ρ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· этих ΠΎΠΏΡ†ΠΈΠΉ, Π±ΡƒΠ΄Π΅Ρ‚ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ администраторам.

Бписок администраторов задаётся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ superusers, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊ:

set superusers=root

ΠŸΠ°Ρ€ΠΎΠ»ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

password ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ

Π»ΠΈΠ±ΠΎ Π² Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ (Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ) Π²ΠΈΠ΄Π΅, ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

password_pbkdf2 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ…Π΅Ρˆ

Для Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ пароля ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° grub-mkpasswd-pbkdf2. Запустив Π΅Ρ‘ ΠΈ ввСдя (Π΄Π²Π°ΠΆΠ΄Ρ‹) ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ…Π΅Ρˆ, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΉ для вставки Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ GRUB2.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ ΠΈ Ρ…Π΅ΡˆΠΈ ΠΎΡ‚ просмотра, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° Ρ„Π°ΠΉΠ» с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠΌ GRUB Π² Π²ΠΈΠ΄Π΅ root:root 600, Π»ΠΈΠ±ΠΎ вынСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с паролями Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

. $prefix/secret.cfg

ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π½Π΅ΠΌΡƒ.

Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ Π² Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ grub-mkconfig сам Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ доступ ΠΊ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΡƒ, хотя ΠΈ устанавливаСт ΠΏΡ€Π°Π²Π° доступа ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³Ρƒ Π² -rw------- root root, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для сохранСния ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ.

Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ написанный Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° с паролями, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π° /etc/grub.d/00_header ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ строки:

cat << EOF set superusers=root password_pbkdf2 root grub.pbkdf2.sha512.10000.C2DDC47FC5C7341CE73DBD6728E8D29A.AA5A1DEA93E23358E908301439DEC488 EOF

Π’Π°ΠΆΠ½ΠΎ: ПослС Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° Π’Π‘Π• ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню станут доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ администратору!

Π‘ΠΎΠ»Π΅Π΅ гибкая настройка доступа ΠΊ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ систСмы Π±Π΅Π· Π²Π²ΠΎΠ΄Π° пароля, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π»ΠΈΠ±ΠΎ ΠΏΡƒΡ‚Ρ‘ΠΌ добавлСния своих ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ --unrestricted Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π° /etc/grub.d/40_custom, Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ написании всСго ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° GRUB.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° с паролями

Π—Π΄Π΅ΡΡŒ "Arch Linux" Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π±Π΅Π· Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, "Windows" Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ second с ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ dnjhjq, Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ "Boot next disk", ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠΉ Ρ„Π»Π΅ΡˆΠΊΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ администратор ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ root, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ сказал свой ΠΏΠ°Ρ€ΠΎΠ»ΡŒ.

set default=0 set timeout=5 set superusers=root password second dnjhjq password_pbkdf2 root grub.pbkdf2.sha512.10000.C2DDC47FC5C7341CE73DBD6728E8D29A.AA5A1DEA93E23358E908301439DEC488 menuentry "Arch Linux" --unrestricted { linux /boot/vmlinuz-linux root=LABEL=Arch_root rw resume=LABEL=Arch_swap initrd /boot/initramfs-linux.img } submenu "Windows" --users=second { set root=hd0,1 chainloader +1 } submenu "Boot next disk" { set root=hd1 chainloader +1 }

Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ настройка

GRUB2 прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Π½ΡΡ‚ΡŒ способы отобраТСния ΠΈ внСшний Π²ΠΈΠ΄ мСню.

Π¦Π²Π΅Ρ‚Π° мСню

Π¦Π²Π΅Ρ‚Π° мСню GRUB2 Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… menu_color_normal (ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° тСкста/Ρ„ΠΎΠ½Π°) ΠΈ menu_color_highlight (Ρ†Π²Π΅Ρ‚Π° тСкста/Ρ„ΠΎΠ½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ строки). НапримСр, Ρ†Π²Π΅Ρ‚Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Arch Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ GRUB (grub.cfg) Ρ‚Π°ΠΊ:

set menu_color_normal=light-blue/black set menu_color_highlight=light-cyan/blue

ΠΈΠ»ΠΈ Π² настройках /etc/default/grub ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° grub-mkconfig Ρ‚Π°ΠΊ:

GRUB_COLOR_NORMAL="light-blue/black" GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

Бписок доступных Π² GRUB2 Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° сайтС.

Π‘ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ мСню

grub-mkconfig ΡƒΠΌΠ΅Π΅Ρ‚ "ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ" мСню Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ появляСтся Π½Π° экранС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши ESC Π΄ΠΎ истСчСния Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² /etc/default/grub строки

GRUB_HIDDEN_TIMEOUT=5 GRUB_HIDDEN_TIMEOUT_QUIET=true

Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ GRUB (grub.cfg) для получСния Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

set timeout=5 echo -n "Press ESC to see the menu... " if sleep --verbose --interruptible $timeout then set timeout=0 else unset timeout fi

Π—Π΄Π΅ΡΡŒ Π½Π΅ задаётся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ для скрытого ΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ мСню, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ timeout. ПослС Π²Ρ‹Π²ΠΎΠ΄Π° надписи запускаСтся ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ sleep с Π² Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ отсчёта --verbose ΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ESC --interruptible . Если отсчёт Π½Π΅ Π±Ρ‹Π» ΠΏΡ€Π΅Ρ€Π²Π°Π½, Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ нуля set timeout=0, ΠΈ мСню проскакиваСт Π±Π΅Π· Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π²ΠΎΠΎΠ±Ρ‰Π΅ unset timeout, Ρ‡Ρ‚ΠΎΠ±Ρ‹ отсчёт Π½Π΅ начался ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ послС ΠΏΠΎΠΊΠ°Π·Π° мСню.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π² Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ΅ графичСский Ρ€Π΅ΠΆΠΈΠΌ с обоями ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ, слСдуСт Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° отсчёта, ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли отсчёт ΠΏΡ€Π΅Ρ€Π²Π°Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Настройка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ€Π΅ΠΆΠΈΠΌΠ° экрана

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° доступных Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² экрана

GRUB2 ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² тСкстовом ΠΈ графичСских Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… экрана. ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ список Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² доступных срСдствами BIOS ΠΈΠ»ΠΈ UEFI Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ машинС, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ videoinfo Π² консоли Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°. На Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…, с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ графичСскими Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°ΠΌΠΈ, ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°ΠΌΠΈ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°ΠΌΠΈ, этот список ΠΌΠΎΠΆΠ΅Ρ‚ сущСствСнно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

Π’Ρ‹Π±Ρ€Π°Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ videotest Ρ€Π΅ΠΆΠΈΠΌ Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ консоли, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

videotest 1280x1024x32

ВСстовая ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° экранС Π΄ΠΎ наТатия Π½Π° Π»ΡŽΠ±ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ. Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π΅Ρ‘, Π·Π½Π°Ρ‡ΠΈΡ‚ тСст ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ВСст Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· тСкстового Ρ€Π΅ΠΆΠΈΠΌΠ°.

Π’Π°ΠΆΠ½ΠΎ: АвтоматичСский Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ графичСский Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Если графичСский Ρ€Π΅ΠΆΠΈΠΌ ΡƒΠΆΠ΅ Π·Π°Π΄Π°Π½ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎ ΠΈ Π²Ρ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π½Π° экранС интСрфСйса GRUB2 ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ тСкстовый Ρ€Π΅ΠΆΠΈΠΌ Π² настройках ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°.

ВСкстовый Ρ€Π΅ΠΆΠΈΠΌ

GRUB2 стартуСт Π² тСкстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅. Если Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² тСкстовый Ρ€Π΅ΠΆΠΈΠΌ ΠΈΠ· графичСского, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² скриптС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΈΠ»ΠΈ прямо Π² консоли GRUB, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

unset lang terminal_output console

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ автоматичСский ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€, Π² настройках ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ стоит auto ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ послС старта Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ графичСский Ρ€Π΅ΠΆΠΈΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ для Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° тСкстовый Ρ€Π΅ΠΆΠΈΠΌ:

GRUB_GFXMODE=console

ΠΈΠ»ΠΈ ΠΆΠ΅ Π·Π°Π΄Π°Ρ‚ΡŒ тСкстовый Ρ€Π΅ΠΆΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ядра:

GRUB_GFXPAYLOAD_LINUX=text

ГрафичСскиС Ρ€Π΅ΠΆΠΈΠΌΡ‹

GRUB2 позволяСт Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ экрана для самого Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ gfxmode , ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΆΠΈΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ядром Linux ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅, Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ gfxpayload

Π­Ρ‚ΠΈ Ρ€Π΅ΠΆΠΈΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ:

grub.cfg set gfxmode=1024x768x32 set gfxpayload=1280x1024x16
/etc/default/grub GRUB_GFXMODE=1024x768x32 GRUB_GFXPAYLOAD_LINUX=1280x1024x16

ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ:

grub.cfg set gfxmode=1280x1024x32 set gfxpayload=$gfxmode
/etc/default/grub GRUB_GFXMODE=1280x1024x32 GRUB_GFXPAYLOAD_LINUX=keep

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ…, Π½Π΅ задавая Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

Π Π΅ΠΆΠΈΠΌ экрана для ядра Linux Π±ΡƒΠ΄Π΅Ρ‚ установлСн Π² Π½Π°Ρ‡Π°Π»Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ядра, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ GRUB для этого ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π½Π΅ трСбуСтся.

ВмСсто ТСсткого указания ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слово auto , ΠΈ Π² этом случаС Ρ€Π΅ΠΆΠΈΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ автоматичСски, исходя ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ BIOS Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ auto соотвСтствуСт ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΈΠ· ΡˆΡ‚Π°Ρ‚Π½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ приходится Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ старый, спСцифичСский для BIOS, способ Π·Π°Π΄Π°Ρ‚ΡŒ VESA-Ρ€Π΅ΠΆΠΈΠΌ – Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ядра Linux vga, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ vga=790

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° vga, Π² зависимости ΠΎΡ‚ количСства Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΈ пиксСлСй Π½Π° экранС, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅

Β 

640x480

800x600

1024x768

1280x1024

Β 

640x480

800x600

1024x768

1280x1024

256

0x301=769

0x303=771

0x305=773

0x307=775

32K

0x310=784

0x313=787

0x316=790

0x319=793

64K

0x311=785

0x314=788

0x317=791

0x31A=794

16M

0x312=786

0x315=789

0x318=792

0x31B=795

Однако Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вСрсиях BIOS ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠ΄Ρ‹ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ². ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ videoinfo Π² консоли GRUB ΠΈΠ»ΠΈ ΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ ОБ GNU/Linux ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

sudo hwinfo --framebuffer

Команда hwinfo доступна Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ community.

ГрафичСский Ρ€Π΅ΠΆΠΈΠΌ, ΡˆΡ€ΠΈΡ„Ρ‚ ΠΈ ΠΎΠ±ΠΎΠΈ

Установка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ gfxmode сама ΠΏΠΎ сСбС НЕ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ GRUB Π² графичСский Ρ€Π΅ΠΆΠΈΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, трСбуСтся:

  • Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ gfxmode

  • Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ loadfont хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΡˆΡ€ΠΈΡ„Ρ‚

  • Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ графичСского Ρ€Π΅ΠΆΠΈΠΌΠ° (vbe для BIOS, Π»ΠΈΠ±ΠΎ efi_gop ΠΈ efi_uga для UEFI)

  • ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ графичСского Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° gfxterm

  • послС всСго этого Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ графичСский Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ terminal_output gfxterm

GRUB2 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ растровыС ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ Π² собствСнном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ pf2. Π¨Ρ€ΠΈΡ„Ρ‚ Unifont Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ grub ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ unicode.pf2, ΠΈ ΠΏΡ€ΠΈ установкС Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ grub-install автоматичСски копируСтся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /boot/grub/fonts

Π’ графичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅ GRUB2 Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ±ΠΎΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ background_image . ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ изобраТСния Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… tga, png ΠΈ jpeg, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… трСбуСтся ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния зависит ΠΎΡ‚ вашСго оборудования.

Π’ настройках ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° /etc/default/grub ΠΎΠ±ΠΎΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

GRUB_BACKGROUND=/boot/grub/themes/starfield/starfield.png

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ графичСского Ρ€Π΅ΠΆΠΈΠΌΠ° с установкой Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠ³ΠΎ ΡˆΡ€ΠΈΡ„Ρ‚Π° ΠΈ ΠΎΠ±ΠΎΠ΅Π² ΠΈΠ· Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹ оформлСния. НуТныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ графичСского Ρ€Π΅ΠΆΠΈΠΌΠ° Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ автоматичСски.

if [ "$grub_platform" = "pc" ] ; then insmod vbe # Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для BIOS else insmod efi_gop # ΠΈΠ»ΠΈ для EFI insmod efi_uga fi loadfont $prefix/fonts/unicode.pf2 # Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ set gfxmode=auto insmod gfxterm # Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ графичСского Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° terminal_output gfxterm # эта ΠΊΠΎΠΌΠ°Π½Π΄Π° запускаСт Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ insmod png # для этих ΠΎΠ±ΠΎΠΉ трСбуСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒ png background_image $prefix/themes/starfield/starfield.png

ПослС установки юникодного ΡˆΡ€ΠΈΡ„Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² мСню GRUB ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ, ΠΈ Π΄Π°ΠΆΠ΅ пСрСвСсти Π½Π° русский язык встроСнныС сообщСния Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, присвоив ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ lang Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ru .

Π’Π°ΠΆΠ½ΠΎ: НС ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ русский язык Π² тСкстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅! Если трСбуСтся Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² тСкстовый Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ terminal_output console , слСдуСт ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ русский язык ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ unset lang , ΠΈΠ½Π°Ρ‡Π΅ вмСсто надписСй Π½Π° русском останутся ΠΎΠ΄Π½ΠΈ вопросы.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² GRUB свои ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ pf2. Для этого Π² состав ΠΏΠ°ΠΊΠ΅Ρ‚Π° grub Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° grub-mkfont . Π›ΡƒΡ‡ΡˆΠ΅ всСго ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с растровыми ΡˆΡ€ΠΈΡ„Ρ‚Π°ΠΌΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ BDF

grub-mkfont ΡˆΡ€ΠΈΡ„Ρ‚.bdf -o ΡˆΡ€ΠΈΡ„Ρ‚.pf2

ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ TTF

grub-mkfont ΡˆΡ€ΠΈΡ„Ρ‚.ttf -s Ρ€Π°Π·ΠΌΠ΅Ρ€ -o ΡˆΡ€ΠΈΡ„Ρ‚.pf2

Установка ΡˆΡ€ΠΈΡ„Ρ‚Π° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Terminus

ΠŸΠ°ΠΊΠ΅Ρ‚ terminus-font для GRUB Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, трСбуСтся ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта Π΅Π³ΠΎ исходники, ΠΎΠ½ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π· Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ BDF. Π”Π°Π»Π΅Π΅ остаётся Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ², ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» со ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ΠΈ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, доступный для GRUB:

$ tar xf terminus-font-4.38.tar.gz $ cd terminus-font-4.38/ $ ls *.bdf ter-u12b.bdf ter-u14v.bdf ter-u18b.bdf ter-u22b.bdf ter-u28b.bdf ter-u12n.bdf ter-u16b.bdf ter-u18n.bdf ter-u22n.bdf ter-u28n.bdf ter-u14b.bdf ter-u16n.bdf ter-u20b.bdf ter-u24b.bdf ter-u32b.bdf ter-u14n.bdf ter-u16v.bdf ter-u20n.bdf ter-u24n.bdf ter-u32n.bdf $ grub-mkfont -v ter-u16b.bdf -o ter-u16b.pf2 Font name: Terminus Bold 16 Max width: 8 Max height: 16 Font ascent: 12 Font descent: 4 Number of glyph: 879 $ sudo cp ter-u16b.pf2 /boot/grub/fonts/

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° GRUB со ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ Terminus ΠΈ русским языком:

loadfont $prefix/fonts/ter-u16b.pf2 set gfxmode=auto set lang=ru # Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ русский язык insmod vbe insmod gfxterm terminal_output gfxterm

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ²

Если ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹, Π½ΠΎ Π½Π° экранС выглядят Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ Π² консоли GRUB, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ lsfonts, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ².

НСкоторыС Ρ„Π°ΠΉΠ»Ρ‹ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ, ΠΈ нСсовмСстимыми с установлСнной вСрсиСй GRUB. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡˆΡ€ΠΈΡ„Ρ‚Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈΡ… Π² консоли GRUB ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π²ΠΈΠ΄Π°

loadfont $prefix/themes/Ρ‚Π΅ΠΌΠ°/ΡˆΡ€ΠΈΡ„Ρ‚.pf2

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ нСсовмСстимый ΡˆΡ€ΠΈΡ„Ρ‚ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….

ГрафичСская Ρ‚Π΅ΠΌΠ° оформлСния

Π”Π°ΠΆΠ΅ послС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² графичСский Ρ€Π΅ΠΆΠΈΠΌ, мСню GRUB отобраТаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символов псСвдографики. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ отобраТСния GRUB – графичСскиС Ρ‚Π΅ΠΌΡ‹ оформлСния

Π’Π΅ΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„Π°ΠΉΠ» описания theme.txt, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ элСмСнты ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ для "рисования" мСню, ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΈ ΠΎΠ±ΠΎΠΈ.

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚ grub Π²Ρ…ΠΎΠ΄ΠΈΡ‚ дСфолтная Ρ‚Π΅ΠΌΠ° оформлСния, ΠΏΡ€ΠΈ установкС ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ grub-install ΠΎΠ½Π° копируСтся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /boot/grub/themes/starfield/ . Π’Π΅ΠΌΡƒ для GRUB трСбуСтся ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ описания Ρ‚Π΅ΠΌΡ‹. Π’ настройках ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° /etc/default/grub это дСлаСтся Ρ‚Π°ΠΊ:

GRUB_THEME="/boot/grub/themes/starfield/theme.txt"

Π’ Ρ„Π°ΠΉΠ»Π°Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ GRUB ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ описания Ρ‚Π΅ΠΌΡ‹ трСбуСтся Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ theme Π”Πž ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² графичСский Ρ€Π΅ΠΆΠΈΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π΅ΠΌΠ° ΠΌΠΎΠ³Π»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² Π½Π΅ΠΉ элСмСнты, Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² Π½Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ (Ρ‡Π°Ρ‰Π΅ всСго png) ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ всС ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Π² Π½Π΅ΠΉ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ‚Π΅ΠΌΡ‹ оформлСния, входящСй Π² ΠΏΠ°ΠΊΠ΅Ρ‚ grub:

dir=$prefix/themes/starfield # ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с Ρ‚Π΅ΠΌΠΎΠΉ set theme=$dir/theme.txt # Π·Π°Π΄Π°Ρ‘ΠΌ Ρ„Π°ΠΉΠ» описания insmod regexp # этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π² ΠΈΠΌΠ΅Π½Π°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² loadfont $dir/*.pf2 # Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ сразу всС ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΈΠ· Ρ‚Π΅ΠΌΡ‹ insmod png # ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ set gfxmode=auto set lang=ru insmod gfxterm insmod vbe terminal_output gfxterm # Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ

НСкоторыС Ρ‚Π΅ΠΌΡ‹ оформлСния GRUB ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² AUR.

Π’Π°ΠΆΠ½ΠΎ: НСкоторыС Ρ‚Π΅ΠΌΡ‹ оформлСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ, ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² Π½ΠΈΡ… ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСсовмСстимыми с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсиСй GRUB.

Π’Π°ΠΊΠΆΠ΅ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Π΅ΠΌΠ°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ это Π² Π²ΠΈΠ΄Ρƒ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ русский язык Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°

Автоматизация Π² мСню

Π—Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню

Π’ настройках ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ‚Π°ΠΊ:

/etc/default/grub GRUB_DEFAULT="saved" GRUB_SAVEDEFAULT="true"

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ запоминания Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ GRUB2 ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ Π½ΠΈΠΆΠ΅.

ΠžΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±Π΅Π· смСны Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π°

БущСствуСт ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° grub-reboot, с Π΅Ρ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·-ΠΏΠΎΠ΄ ОБ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊ:

grub-reboot "Windows XP"

Π’ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ мСню это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ссли ΠΏΠ΅Ρ€Π΅Π΄ запуском grub-mkconfig Π² /etc/default/grub Π±Ρ‹Π»Π° строка

GRUB_DEFAULT="saved"

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ GRUB2 ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ Π½ΠΈΠΆΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° GRUB с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ запоминания

set timeout=5 set default=0 load_env # восстанавливаСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° if [ -n "$next_entry" ] ; then # Ссли Π·Π°Π΄Π°Π½ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ set default="$next_entry" # Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ подмСняСм Π΄Π΅Ρ„ΠΎΠ»Ρ‚ unset next_entry # ΠΈ ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ save_env next_entry fi # Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π΄Π΅Ρ„ΠΎΠ»Ρ‚ Π½Π΅ сохраняСм export default # Π½Π° случай использования savedef Π²Π½ΡƒΡ‚Ρ€ΠΈ submenu function savedef { # Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ savedef if [ -n "$1" ] # Π²Ρ‹Π±ΠΎΡ€ Π±Π΅Ρ€Ρ‘ΠΌ Π»ΠΈΠ±ΠΎ then def="$1" # ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° else def="$chosen" # Π»ΠΈΠ±ΠΎ ΠΈΠ· $chosen, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ GRUB fi # с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню if [ "$def" != "$default" ] ; then # Если Π²Ρ‹Π±ΠΎΡ€ отличаСтся set default="$def" # ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π° - save_env default # сохраняСм Π΅Π³ΠΎ fi unset def } # ΠΊΠΎΠ½Π΅Ρ† Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ menuentry "Arch Linux" { savedef linux /boot/vmlinuz-linux root=LABEL=Arch_root rw initrd /boot/initramfs-linux.img } menuentry "Arch Linux fallback" { savedef "Arch Linux" # Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· выбСрСтся "Arch Linux" linux /boot/vmlinuz-linux root=LABEL=Arch_root rw initrd /boot/initramfs-linux-fallback.img } submenu "Windows XP" { savedef set root=hd0,1 ntldr /ntldr }

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прСдоставляСмая GRUB2 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сохранСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ сСансами.

Команда load_env Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° всС сохранённыС Π² Π½Ρ‘ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Команда save_env сохраняСт ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ».

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ chosen послС Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡƒΠ½ΠΊΡ‚Π° мСню помСщаСтся Π΅Π³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ. ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… мСню, Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ записываСтся вСсь "ΠΏΡƒΡ‚ΡŒ", состоящий ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠΌ ">". НапримСр, Ссли Π² подмСню "Fallback" Π²Ρ‹Π±Ρ€Π°Π½ ΠΏΡƒΠ½ΠΊΡ‚ "Arch linux-lts", Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ "Fallback>Arch linux-lts".

Π’Π°ΠΊΠΆΠ΅ здСсь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ объявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Ѐункция вызываСтся Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ GRUB. ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ эта функция Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ свой ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΠ»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ default, ΠΈ Ссли Π²Ρ‹Π±ΠΎΡ€ отличаСтся - Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² default ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ /boot/grub/grubenv . Π’Π°ΠΊ ΠΊΠ°ΠΊ GRUB Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы, Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ создан, Π° Π΄Π»ΠΈΠ½Π° Π΅Π³ΠΎ ΠΏΡ€ΠΈ пСрСзаписи Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, поэтому ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π° Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ Π² 1024 Π±Π°ΠΉΡ‚Π° всСгда Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ символами ### . Для просмотра ΠΈ измСнСния ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ ОБ сохранённых Π² этом Ρ„Π°ΠΉΠ»Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ grub-editenv, Π»ΠΈΠ±ΠΎ grub-reboot ΠΈ grub-set-default.

ДинамичСскоС мСню

ΠšΠΎΠ½Ρ„ΠΈΠ³ GRUB2 это скрипт, выполняСмый Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠΌ. Он Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚, Π° Π½Π΅ статичСски описываСт мСню Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ сам, "Π½Π° Π»Π΅Ρ‚Ρƒ", Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π² /boot/ всС установлСнныС ядра Arch Linux ΠΈ ΠΎΠ±Ρ€Π°Π·Ρ‹ initramfs, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ мСню для ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π° послС Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡƒΠ½ΠΊΡ‚Π° мСню Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π΅Π³ΠΎ. ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ядра подставляСтся автоматичСски Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠΌ UUID ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°.

Π’ grub.cfg пишСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ссылку. (ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ см. Π²Ρ‹ΡˆΠ΅.)

/boot/grub/grub.cfg . $prefix/main.cfg

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ настройки ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΈΠ· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° settings.cfg

/boot/grub/settings.cfg set menu_color_normal=white/blue set menu_color_highlight=white/black set timeout=5 set default=0 boot=/boot probe -s UUID -u $root # автоматичСски опрСдСляСм UUID корня opts="root=UUID=$UUID rw" # ΠΈ подставляСм Π΅Π³ΠΎ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ядра addimg=$boot/intel-ucode.img # Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π° CPU intel load_env

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», здСсь Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° функция запоминания Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню, сюда ΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ части ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°:

/boot/grub/main.cfg # ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» настроСк . $prefix/settings.cfg # ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° if [ -n "$next_entry" ] ; then set default="$next_entry" unset next_entry save_env next_entry fi export default # ΠžΠΏΠΈΡΡ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ запоминания function savedef { if [ -n "$1" ] then def="$1" else def="$chosen" fi if [ "$def" != "$default" ] ; then set default="$def" save_env default fi unset def } # ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ динамичСскоС мСню . $prefix/dynamic.cfg # ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню, Ссли ΠΎΠ½ Π΅ΡΡ‚ΡŒ c="$prefix/custom.cfg" if [ -f "$c" ] ; then . "$c" fi

Π‘ΠΊΡ€ΠΈΠΏΡ‚ поиска ядСр ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ мСню:

/boot/grub/dynamic.cfg insmod regexp initrd=initrd if [ -n "$addimg" -a -f "$addimg" ] ; then initrd="$initrd $addimg" fi kpref="$boot/vmlinuz-" ipref="$boot/initramfs-" kernels= for kfile in "$kpref"* ; do k= regexp -s k "$kpref"'(.+)' "$kfile" kernels="$kernels $k" done for ifile in "$ipref"* ; do kname= for k in $kernels; do if regexp "$k" "$ifile" ; then if ! regexp "$kname" "$k" ; then continue; fi head="Arch $k" if regexp -s s "$k"'-(.+).img' "$ifile" then head="$head $s"; fi kname="$k" fi done if [ -n "$kname" ] ; then menuentry "$head" --source="savedef linux $kpref$kname $opts $initrd $ifile" fi done

Консоль GRUB2

Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ GRUB2 выполняСт свой Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊ шСлл-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ скрипт, состоящий ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄. ВсС Ρ‚Π΅ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠ½ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ консоли.

ΠΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ консоль

Запуск консоли

Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ GRUB2 ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π° grub> , Π·Π½Π°Ρ‡ΠΈΡ‚ Π²Ρ‹ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² Π΅Π³ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ консоль.

GRUB2 ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ консоль, Ссли:

  • ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ grub.cfg;

  • Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π°ΠΉΠ΄Π΅Π½ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½, Π½ΠΎ Π² Ρ…ΠΎΠ΄Π΅ Π΅Π³ΠΎ выполнСния Ρ‚Π°ΠΊ ΠΈ Π½Π΅ Π±Ρ‹Π»ΠΎ создано мСню, ΠΈ Π½Π΅ Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° boot (см. Π½ΠΈΠΆΠ΅), Π»ΠΈΠ±ΠΎ Π΅Ρ‘ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΎΡΡŒ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎ;

  • Π² мСню Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° Π½Π°ΠΆΠ°Ρ‚Π° клавиша "c".

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π² консоли GRUB2

ΠšΡ€ΠΎΠΌΠ΅ ΡƒΠΆΠ΅ описанных Π² части "Настройка", Π² консоли GRUB2 ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ:

  • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ pager . ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π΅ΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pager=1 ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, Ссли ΠΎΠ½ Π½Π΅ помСщаСтся Π½Π° экран.

  • Команда help . Π‘Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°. ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π²ΠΈΠ΄Π° help слово Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ справку ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… присутствуСт Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ слово. НапримСр, ΠΊΠΎΠΌΠ°Π½Π΄Π° help normal ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ справку ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ normal ΠΈ normal_exit.

  • Команда ls Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список дисков ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², доступных Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΡƒ. Π‘ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ -l ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ свСдСния ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… -- Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΌΠ΅Ρ‚ΠΊΡƒ, UUID ΠΈ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Π‘ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ -lh Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π² "Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ" Π²ΠΈΠ΄Π΅. Π‘ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π² Π²ΠΈΠ΄Π΅ диска ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ свСдСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ Π½Ρ‘ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ls (hd0,1) Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ свСдСния ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ Π½Π° Π½ΡƒΠ»Π΅Π²ΠΎΠΌ дискС.

  • Команда ls с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. Π‘ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ -l ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ вСдСния ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ -lh Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ Π΄Π°Ρ‚Ρ‹ Π² "Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ" Ρ„Ρ€ΠΎΠΌΠ°Ρ‚Π΅. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ls -lh /boot ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /boot Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ (Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ root) Ρ€Π°Π·Π΄Π΅Π»Π΅, Π° ls (hd0,1)/ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Ρ€Π°Π·Π΄Π΅Π»Π° hd0,1.

  • Команда set Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ список всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… со значСниями.

  • Команда echo Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ шСлла, ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ всё, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ написано. ΠœΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ echo $cmdpath $prefix $root ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ значСния Ρ‚Ρ€Ρ‘Ρ… самых Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°.

  • Команда cat Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ шСлла, ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ содСрТимоС Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² консоль. Π’Π°ΠΊ ΠΊΠ°ΠΊ пСрСнаправлСния Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° GRUB2 Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для просмотра тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° самого Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, fstab, ΠΈ Ρ‚.Π΄.

  • Команда boot запускаСт ΠΎΠ±Ρ€Π°Π· ядра, Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, ΠΈΠ»ΠΈ EFI-прилоТСния, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄ этим ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ linux, initrd, ntldr, chainloader ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ мСню GRUB, Π³Π΄Π΅ запуск Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ² происходит автоматичСски послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΡƒΠ½ΠΊΡ‚Π° мСню, Π² консоли Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ – Π±Π΅Π· Π½Π΅Ρ‘ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· сам Π½Π΅ запустится.

Π’ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ консоли GRUB2 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΈ Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ клавиши TAB, ΠΊΠ°ΠΊ Π² консоли Linux.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Arch Linux ΠΈΠ· консоли Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°

Если Π²Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ установили Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π», Π½ΠΎ Π·Π°Π±Ρ‹Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ мСню ΠΈΠ· Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°, Π½ΠΎ ΠΎΠ½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΠΉΡ‚ΠΈ Π² консоль, Π½Π°ΠΆΠ°Π² ΠΊΠ»Π°Π²ΠΈΡˆΡƒ "c", ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

probe -s UUID -u $root linux /boot/vmlinuz-linux rw root=UUID=$UUID initrd /boot/initramfs-linux.img boot

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с внСшнСго диска ΠΈΠ· консоли

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… вСрсиях BIOS Π½Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса для ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с Ρ„Π»Π΅ΡˆΠΊΠΈ. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ мСню, Π½ΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΡ€ΠΎΡ‰Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ консолью GRUB:

root=hd1 chainloader +1 boot

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π±Π΅Π· мСню

grub.cfg set timeout=3 probe -s UUID -u $root linux /boot/vmlinuz-linux rw root=UUID=$UUID initrd /boot/initramfs-linux.img if sleep -vi $timeout then boot fi

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ GRUB2 Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ с диска ΠΎΠ±Ρ€Π°Π·Ρ‹ ядра ΠΈ initramfs, ΠΆΠ΄Ρ‘Ρ‚ 3 сСкунды, ΠΈ запускаСт ядро.

Если ΠΆΠ΅ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ этих сСкунд ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΌΡ‘Ρ‚ ESC, ΠΎΠ½ ΠΏΠΎΠΏΠ°Π΄Ρ‘Ρ‚ Π² консоль Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°. Π’Π°ΠΊ ΠΊΠ°ΠΊ ядро ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ΠΎ, для продолТСния Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ достаточно Π½Π°Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ boot Π² консоли.

Аварийная консоль

Если вмСсто мСню ΠΈΠ»ΠΈ "шапки" Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ консоли Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ стартС Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° сообщСниС ΠΎΠ± ошибкС ΠΈ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π° grub rescue>, Π·Π½Π°Ρ‡ΠΈΡ‚ Π²Ρ‹ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² Π°Π²Π°Ρ€ΠΈΠΉΠ½ΡƒΡŽ консоль.

Аварийная консоль GRUB2 встроСна Π² стартовый ΠΎΠ±Ρ€Π°Π· Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, ΠΈ запускаСтся Π² случаях, ΠΊΠΎΠ³Π΄Π° GRUB2 Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² "Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ" Ρ€Π΅ΠΆΠΈΠΌ. Π’Π°ΠΊΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, Ссли ядро GRUB2 ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π½Π΅ нашло ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ со своими Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ модулями ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ prefix.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄ (диск,Ρ€Π°Π·Π΄Π΅Π»)/ΠΏΡƒΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (hd0,msdos6)/boot/grub. ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ диска подставляСтся ΠΏΡ€ΠΈ стартС Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ (начиная с запятой) "Π·Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ" Π² стартовый ΠΎΠ±Ρ€Π°Π· Π΅Ρ‰Ρ‘ Π½Π° этапС установки. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ послС измСнСния любого ΠΈΠ· содСрТащихся Π² $prefix ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², Π½ΠΎΠΌΠ΅Ρ€Π° Ρ€Π°Π·Π΄Π΅Π»Π°, ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ grub), Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ трСбуСтся ΠΏΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ½ "вывалится" Π² Π°Π²Π°Ρ€ΠΈΠΉΠ½ΡƒΡŽ консоль.

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΉ консоли GRUB2 ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ всСго 4 ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: set , unset , ls , ΠΈ insmod . ΠŸΠΎΠ²Ρ‚ΠΎΡ€ ΠΈ Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ls поддСрТиваСтся Π² ΡƒΡ€Π΅Π·Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ – Π±Π΅Π· ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π² свСдСниях ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, Ссли ΠΎΠ½Π° ΠΎΠΏΠΎΠ·Π½Π°Π½Π°. По-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² стартовый ΠΎΠ±Ρ€Π°Π· Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ устанавливаСтся GRUB2. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΡƒΠΆΠ΅ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ², Ссли Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΡƒ удастся ΠΈΡ… Π½Π°ΠΉΡ‚ΠΈ.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях, ΠΊΠΎΠ³Π΄Π° встроСнных Π² стартовый ΠΎΠ±Ρ€Π°Π· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ достаточно для продолТСния Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡˆΠΈΡ…ΡΡ условиях, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π² Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΉ консоли ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $prefix.

Если Π²Ρ‹ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² Π°Π²Π°Ρ€ΠΈΠΉΠ½ΡƒΡŽ консоль, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ для Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ set. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ значСния Ρ‚Ρ€Ρ‘Ρ… Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… GRUB2. Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ cmdpath Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ диска, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ EFI-Ρ„Π°ΠΉΠ»Ρƒ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ стартовал ΠΎΠ±Ρ€Π°Π· Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°. Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ prefix Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΏΡƒΡ‚ΡŒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°. Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ root Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ диск ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π», скорСй всСго ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² $prefix. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ls ls $root ls $prefix

Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ дСлалось с диском ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ GRUB ΠΏΠΎΠΊΠ°Π·Π°Π» ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ ΡƒΠΆΠ΅ Π΄ΠΎΠ³Π°Π΄Ρ‹Π²Π°Π΅Ρ‚Π΅ΡΡŒ, Π² Ρ‡Ρ‘ΠΌ ошибка ΠΈ удастся Π»ΠΈ Π΅Ρ‘ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ.

Если Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $root оказался Π½Π΅ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π», ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π²ΠΈΠ΄Π° ls (диск,Ρ€Π°Π·Π΄Π΅Π»)/ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» ΠΈΠ· Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π»Π° пСрвая ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΏΠΎΠΊΠ° Π½Π΅ найдётся Π½ΡƒΠΆΠ½Ρ‹ΠΉ. Если ΠΎΠ½ нашСлся -- ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, оказался hd0,msdos5 вмСсто hd0,msdos6, ΠΈ читаСтся -- Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

root=hd0,5 prefix=($root)/boot/grub

Если Ρ€Π°Π·Π΄Π΅Π» ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (ΠΊΠΎΠΌΠ°Π½Π΄Π° ls $prefix Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈΠ»ΠΈ Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ), Π·Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, допустим Ρ‚Π°ΠΊΠΎΠΉ:

prefix=($root)/grub

Если Ρƒ вас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ диск, Ρ€Π°Π·Π΄Π΅Π» ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΈ Π²Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ прописали ΠΈΠ· Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, остаётся Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ "normal" ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ (ΠΎΠ½Π° станСт доступна послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ модуля), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² "Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ" Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°:

insmod normal normal

Если ΠΆΠ΅ ΠΈΠ· Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΉ консоли Π½Π΅ удаётся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° – ΡƒΠ²Ρ‹, Π½ΠΎ большС ΠΎΠ½Π° Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ смоТСт ΠΏΠΎΠΌΠΎΡ‡ΡŒ, ΠΈ Π²Π°ΠΌ придётся ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ способам Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с Π²Π½Π΅ΡˆΠ½ΠΈΡ… носитСлСй.

Запуск GRUB2 ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ²

Π—Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ EFI-ΠΎΠ±Ρ€Π°Π· GRUB2 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ UEFI ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ любоС EFI-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π—Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· BIOS-сборки GRUB2 Π½ΠΎΠ²Ρ‹Ρ… вСрсий ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΏΠΎ стандарту Multiboot ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ². Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ Π³Π»Π°Π²Ρƒ "ГСнСрация Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° для BIOS Π±Π΅Π· установки".

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ· старых вСрсий GRUB

Код ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° для GRUB Legacy, с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ GRUB2:

menu.lst default 0 timeout 1 title Chainload into GRUB v2 root (hd0,7) kernel /boot/grub/i386-pc/core.img

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ· syslinux

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ GRUB2 ΠΈΠ· syslinux ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎ Π½Ρ‘ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ исправлСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎ нСвозмоТности встраивания Π² MBR

grub-setup: warn: This msdos-style partition label has no post-MBR gap; embedding won't be possible! grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and its use is discouraged. grub-setup: error: If you really want blocklists, use --force.

Π­Ρ‚Π° ошибка ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ VMware.

Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ случится, Ссли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» начинаСтся сразу послС MBR, Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ мСста Π² 60 Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ.

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΎ GNU GRUB Π½Π° Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ GRUB (Π°Π½Π³Π».)

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΎ GRUB Π½Π° Ubuntu Wiki (Π°Π½Π³Π».)

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° UEFI-систСмах (Π°Π½Π³Π».)

Π—Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» BIOS (Π°Π½Π³Π».)

Настройка GRUB (Π°Π½Π³Π».)

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GRUB (Π°Π½Π³Π».)

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ EFI-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΈΡ… Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GRUB (Π°Π½Π³Π».)

Β 

Related content