Редактируем Grub 2

Discussion in 'Linux, Freebsd, *nix' started by ramzes_01, 13 Feb 2012.

  1. ramzes_01

    ramzes_01 Member

    Joined:
    11 Feb 2012
    Messages:
    34
    Likes Received:
    5
    Reputations:
    1
    Редактируем Grub 1.9.8 именуемый Grub 2 (последняя версия BackTrack и Ubuntu).
    =================================
    == Вводная ==
    =================================
    Заглянем в папку -/etc/grub.d
    В данной директории мы должны увидеть файлы для конфигурации /boot/grub/grub.cfg
    00_header - не трогаем
    05_debian_theme - оформление загрузчика
    10_linux - прописана загрузка оси установившей данный Grub,
    20_memtest - здесь memtest
    30_os_prober - здесь прописана загрузка остальных обнаруженных осей
    40_custom - добавляя записи в этот файл мы добавляем пункты меню

    Чтобы именить Grub нам нужно сконфигурировать
    /boot/grub/grub.cfg

    Но напрямую редактировать его КАТЕГОРИЧЕСКИ нельзя, только посредством
    Code:
    sudo update-grub
    ====================================
    1. Редактируем меню, порядок отображения, сам список.
    ====================================
    Терминал:
    Code:
    sudo gedit /boot/grub/grub.cfg
    ====================================
    /boot/grub/grub.cfg - здесь мы копируем образец того что добавим в меню от и до
    Code:
    ### BEGIN /etc/grub.d/10_linux ###
    ### END
    ### BEGIN /etc/grub.d/20_memtest ###
    ### END
    ### BEGIN /etc/grub.d/30_os-prober ###
    ### END
    делаем это аккуратно и внимательно
    ====================================
    открываем /etc/grub.d/40_custom
    Code:
    sudo gedit /etc/grub.d/40_custom
    вставляем и редактируем то что в кавычках

    Например
    Code:
    ### BEGIN /etc/grub.d/30_os-prober ###
    menuentry "Здесь пишем что хотим видеть например Windows такая-то (sda1, sda2)" {
    	insmod ntfs
    	set root='(hd0,1)'
    	search --no-floppy --fs-uuid --set 2A98754798751315
    	chainloader +1
    }
    menuentry "например Linux 2 (sda3)" {
    	insmod ext2
    	set root='(hd0,3)'
    	search --no-floppy --fs-uuid --set 6fa6b1e5-d5fa-44f8-b6c7-669be4e08c0a
    	linux /boot/vmlinuz-2.6.32-38-generic root=UUID=6fa6b1e5-d5fa-44f8-b6c7-669be4e08c0a ro quiet splash
    	initrd /boot/initrd.img-2.6.32-38-generic
    }
    menuentry "например Linux 2 - режим восстановления (sda3)" {
    	insmod ext2
    	set root='(hd0,3)'
    	search --no-floppy --fs-uuid --set 6fa6b1e5-d5fa-44f8-b6c7-669be4e08c0a
    	linux /boot/vmlinuz-2.6.32-38-generic root=UUID=6fa6b1e5-d5fa-44f8-b6c7-669be4e08c0a ro single
    	initrd /boot/initrd.img-2.6.32-38-generic
    }
    ### END /etc/grub.d/30_os-prober ###
    ### BEGIN /etc/grub.d/10_linux ###
    menuentry 'например Linux 1 (sda4)' --class ubuntu --class gnu-linux --class gnu --class os {
    	recordfail
    	insmod ext2
    	set root='(hd0,6)'
    	search --no-floppy --fs-uuid --set 36ce6d7f-ddba-49d6-b5e5-9877e1623f77
    	linux	/boot/vmlinuz-2.6.39.4 root=UUID=36ce6d7f-ddba-49d6-b5e5-9877e1623f77 ro   text splash vga=791
    	initrd	/boot/initrd.img-2.6.39.4
    }
    menuentry 'например Linux 1 - режим восстановления (sda4)' --class ubuntu --class gnu-linux --class gnu --class os {
    	recordfail
    	insmod ext2
    	set root='(hd0,6)'
    	search --no-floppy --fs-uuid --set 36ce6d7f-ddba-49d6-b5e5-9877e1623f77
    	echo	'Loading Linux 2.6.39.4 ...'
    	linux	/boot/vmlinuz-2.6.39.4 root=UUID=36ce6d7f-ddba-49d6-b5e5-9877e1623f77 ro single 
    	echo	'Loading initial ramdisk ...'
    	initrd	/boot/initrd.img-2.6.39.4
    }
    ### END /etc/grub.d/10_linux ###
    Если нужен 20_memtest86+ копируем и его

    от того в какой последовательности расместить
    ### BEGIN
    до
    ### END
    зависит то что увидите при загрузке
    ====================================
    "Отключаем" эти три файла, они не будут учитываться при конфигурации
    нового /boot/grub/grub.cfg

    Code:
    sudo chmod -x /etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober
    
    конфигурируем /boot/grub/grub.cfg
    
    sudo update-grub
    смотрим отображение процесса и идем проверять то что получилось
    Code:
    sudo gedit /boot/grub/grub.cfg
    Если внутри /etc/grub.d/40_custom
    вы не увидели всего остального:
    Code:
    ### BEGIN /etc/grub.d/40_custom ###
    ### BEGIN /etc/grub.d/10_linux ###
    ### END
    ### BEGIN /etc/grub.d/20_memtest ###
    ### END
    ### BEGIN /etc/grub.d/30_os-prober ###
    ### END
    ### END
    значит проверяйте что не так

    всегда можно откатиться
    Code:
    sudo chmod +x /etc/grub.d/00_header /etc/grub.d/05_debian_theme /etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober /etc/grub.d/40_custom
    
    sudo update-grub
    ОБЯЗАТЕЛЬНО ПРОВЕРЬТЕ /boot/grub/grub.cfg файл перед перезагрузкой ПК

    ====================================
    2. Редактируем изображение и цвет шрифта.
    ====================================
    Терминал:
    Code:
    sudo gedit /etc/grub.d/05_debian_theme
    ищем
    else
      WALLPAPER="/usr/share/images/desktop-base/вставляем например - 1.jpg" - либо меняем директорию как надо
      COLOR_NORMAL="light-green/black" - ваши цвета
      COLOR_HIGHLIGHT="yellow/black" - ваши цвета
    fi
    
    set_mono_theme()
    {
      cat << EOF
    set menu_color_normal=light-green/black  - ваши цвета
    set menu_color_highlight=light-green/light-gray  - ваши цвета
    EOF
    
    Сохраняем
    По цветам в приведенном примере текст отображается зеленым цветом выбранный пункт меню желтым.

    Возможные варианты цветов, black, dark-gray, light-gray, white, brown, yellow, red, light-red, blue, light-blue, green, light-green, cyan, light-cyan, magenta, light-magenta.
    white blue magenta cyan
    light-gray yellow red light-magenta
    dark-gray green light-blue light-red
    black light-cyan light-green brown
    Источник: http://members.iinet.net/~herman546/p20/GRUB2%20Splashimages.html
    ====================================
    Открываем
    Code:
    sudo gedit /etc/default/grub
    Смотрим разрешение картинки
    GRUB_GFXMODE=1280х800
    правим если нужно 1.jpg (раньше "переваривал" только .png) или прописываем свое
    Если у Вас например "проблемное железо" и режим noapic к примеру пишем здесь
    GRUB_CMDLINE_LINUX="noapic"
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vga=791"
    если проблемы с VGA редактируем или сносим - кому как проще
    vga=791 - меняем на нужное значение согласно таблице
    Here is a list of the available video modes:
    
    Colour depth	640x480	800x600	1024x768	1280x1024	1400x1050	1600x1200
    8 (256)	769	771	773	775	
    15 (32K)	784	787	790	793	
    16 (65K)	785	788	791	794	834	884
    24 (16M)	786	789	792	795
    Источник:	
    http://pierre.baudu.in/other/grub.vga.modes.html
    
    GRUB_TIMEOUT=10 - по дефолту 10 секунд, если надо меняем
    GRUB_DEFAULT="Windows в том в виде в котором ось отображается в меню" 
    так можно по дефолту загрузить нужную тебе ось
    сохраняем
    sudo update-grub
    ====================================
    И кидаем изображение 1.jpg в нужную директорию
    Code:
    sudo mv /home/меняем на свое имя пользователя/1.jpg  /usr/share/images/desktop-base
    sudo update-grub
    ====================================
    == end ==
    ====================================

    ramzes_01®Guidelines for Determining Copy Rights
    оригинал
    https://forum.antichat.ru/thread318757.html
     
    #1 ramzes_01, 13 Feb 2012
    Last edited: 29 Feb 2012