1

В /etc/default/grub есть:

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset vga=792 quiet"

и

GRUB_CMDLINE_LINUX=""

Так вот после update-grub (который собственно делает exec grub-mkconfig -o /boot/grub/grub.cfg)
Подхватываются все ядра на других разделах.
Чего не могу понять - как тем другим ядрам сообщить vga=792, и вообще можно ли для разных ядер разные параметры?

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

2

newzenon, почему нет? Только они и работать будут по-разному...

Linux Mint 19.3 Mate Edition
Windows 7

3 (08.12.2011 12:00:04 отредактировано zenon)

Wolfenberg пишет:

newzenon, почему нет? Только они и работать будут по-разному...

Не понял, я способа не нашел.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

4

newzenon, Там такой же способ, как в Gentoo. Компилируем и патчим сами, руками...

Linux Mint 19.3 Mate Edition
Windows 7

5 (08.12.2011 12:36:02 отредактировано zenon)

Wolfenberg, видимо ты чего-то не допонял, причем тут конкретный дистрибутив?
Меня интересует возможность передачи разных параметров загрузки ядрам у 2-го grub'a.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

6

newzenon,  :o руками подправить конфиг не?
У себя в Ubuntu как-то поправлял, когда VM Ware висела...

Linux Mint 19.3 Mate Edition
Windows 7

7

Wolfenberg, ну рассказывай, какой конфиг и где, я вроде все перерыл...

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

8

newzenon, да там он один у него.
/boot/grub/grub.cfg

Linux Mint 19.3 Mate Edition
Windows 7

9

Wolfenberg, ну, то же мне совет, этот файло при update-grub перезаписывается, такой костыль не нужен.
Упоминание нашел только в /etc/grub.d/proxifiedScripts/linux
кусок:

linux_entry "${OS}" "${version}" false \
      "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
  if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
    linux_entry "${OS}" "${version}" true \
        "single ${GRUB_CMDLINE_LINUX}"
  fi

Еще раз объясню.
редактируем /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset vga=792 quiet"
update-grub
После этого то ядро на разделе котором установлен grub2 загружается с разрешением как и надо - 1024x768, остальным ядра на других разделах упорно не передаются эти параметры и загрузка происходит с дефолтным разрешением 640x480.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

10

newzenon, причём здесь ядро? oO
Настрайвай драйвер на видео, а не городи костыли

Linux Mint 19.3 Mate Edition
Windows 7

11

Wolfenberg, причем тут драйвер, мне иксы не важны, у меня нет xdm/gdm/kdm, мне важно разрешение в консоли - vesa mode.
Где ты увидел тут вопрос про иксы?  :O

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

12 (08.12.2011 13:14:01 отредактировано redux)

Wolfenberg пишет:

newzenon, причём здесь ядро? blink
Настрайвай драйвер на видео, а не городи костыли

Wolfenberg, ab Не в тему пишите.
Он хочет разрешение в консоли еще ДО старта иксов (если они вообще есть,- об этом то ни слова-upd: уже написал bx  ).

13 (08.12.2011 13:23:19 отредактировано Wolfenberg)

newzenon, тогда правильнее будет создать новый файл конфига типа menu.lst с заданными параметрами конфига и всего, что в загрузке болтается.
Пример можно содрать с Open Suse 11.4 или Mandriva 2010
Только не забывайте о том, что необходимо каждый раз править его руками для новых элементов.

Linux Mint 19.3 Mate Edition
Windows 7

14

Wolfenberg пишет:

конфига типа menu.lst

Это во втором Grub'е не прокатит.

15

Wolfenberg, ну вот опять  oO  что в Suse или Mandriva Grub другой? или update-grub отсутствует?

Wolfenberg пишет:

newzenon, тогда правильнее будет создать новый файл конфига типа menu.lst с заданными параметрами конфига и всего, что в загрузке болтается.

И как ты себе это представляешь? только конкретно, а не что-то типа того-то, учитывая то что у grub2 и так есть конф файлы на всё и вся.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

16

newzenon,
Я сам второй Grub на дух не переношу и где возможно ставлю простого как рельса 0.97
Но вроде во втором можно поиграться скобками {} а-ля С или Java - указывая блоки куда относится параметр. Сам не делал, так что конкретных примеров не дам.

17 (08.12.2011 13:39:53 отредактировано Wolfenberg)

newzenon, grub тот же. Загрузочник другой. Очень просто представляю:
Пишешь список, как у тебя в grub.cfg, только в каждом пункте свои параметры выставляешь.

В загрузчике надо указать дополнительный параметр ядру
vga=
где моде:
NORMAL_VGA - Standard 80x25 mode available on all display adapters.

EXTENDED_VGA - Standard 8-pixel font mode: 80x43 on EGA, 80x50 on VGA.

ASK_VGA - Display a video mode menu upon startup (see below).
Video adapter:
Mode: COLSxROWS:
0 0F00 80x25
1 0F01 80x50
2 0F02 80x43
3 0F03 80x26

Подробне смотри в дереве исходников ядра Documentation/svga.txt
Ещё поищи по 'vga=' в подкаталоге Documentat

Linux Mint 19.3 Mate Edition
Windows 7

18

Ну исходя из документации можно например создать файл:

/etc/grub.d/40_custom
menuentry "Debian, Linux 2.6.39" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    set quiet=1
    insmod ext4
    set root=(hd0,5)
    search --no-floppy --fs-uuid --set 0e717c2a-24bd-4abe-acfe-ecf98fc814f8
    linux    /boot/vmlinuz-2.6.39c root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 rw quiet vga=792 nomodeset
    initrd    /boot/initrd.img-2.6.39
}

+++
Но основной вопрос так и не понятен, почему передача параметров идет только тому ядру, на разделе которого установлен сам grub2.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

19 (08.12.2011 13:42:36 отредактировано i2ks)

Попробуй указать  set gfxmode=ABCxEFG, где abc разрешение экрана

здесь подробней описано все и здесь cli mode

It is good day to die ...
MS Windows 10
Заметки о главном...

20

Wolfenberg пишет:

newzenon, grub тот же. Загрузочник другой. Очень просто представляю:
Пишешь список, как у тебя в grub.cfg, только в каждом пункте свои параметры выставляешь.

и первый же update-grub все это перепишит, или предлагаешь скрипты самого grub'a переписывать? Вот хватит ерунду-то предлагать.  oO

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

21

http://www.tldp.org/HOWTO/Framebuffer-HOWTO/
Читал?

Linux Mint 19.3 Mate Edition
Windows 7

22 (08.12.2011 13:47:31 отредактировано redux)

Wolfenberg пишет:

vga=

newzenon пишет:

vga=792

А разьвее второй Grub не ругнется на такой параеметр (как для первого Grub'a) что-то типа "устаревший параметр" и не откажется так переключать. Я имею в виду если это писать именно в строке передачи параметров ядру? Работает так, да?

23 (08.12.2011 13:55:58 отредактировано zenon)

Wolfenberg пишет:

http://www.tldp.org/HOWTO/Framebuffer-HOWTO/
Читал?

Да, основное, но это-то тут причем?
Режим vga=792 это 1024×768, 24 bit, и он у меня нормально работает.

$ hwinfo --framebuffer
02: None 00.0: 11001 VESA Framebuffer                           
  [Created at bios.459]
  Unique ID: rdCR.zn7pM8BU3A5
  Hardware Class: framebuffer
  Model: "NVIDIA BIOS-P/N@N7129"
  Vendor: "NVIDIA Corporation"
  Device: "BIOS-P/N@N7129"
  SubVendor: "NVIDIA"
  SubDevice: 
  Revision: "Chip Rev"
  Memory Size: 14 MB
  Memory Range: 0xcf000000-0xcfdfffff (rw)
  Mode 0x0300: 640x400 (+640), 8 bits
  Mode 0x0301: 640x480 (+640), 8 bits
  Mode 0x0303: 800x600 (+800), 8 bits
  Mode 0x030e: 320x200 (+640), 16 bits
  Mode 0x030f: 320x200 (+1280), 24 bits
  Mode 0x0311: 640x480 (+1280), 16 bits
  Mode 0x0312: 640x480 (+2560), 24 bits
  Mode 0x0314: 800x600 (+1600), 16 bits
  Mode 0x0315: 800x600 (+3200), 24 bits
  Mode 0x0330: 320x200 (+320), 8 bits
  Mode 0x0331: 320x400 (+320), 8 bits
  Mode 0x0332: 320x400 (+640), 16 bits
  Mode 0x0333: 320x400 (+1280), 24 bits
  Mode 0x0334: 320x240 (+320), 8 bits
  Mode 0x0335: 320x240 (+640), 16 bits
  Mode 0x0336: 320x240 (+1280), 24 bits
  Mode 0x033d: 640x400 (+1280), 16 bits
  Mode 0x033e: 640x400 (+2560), 24 bits
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

24 (08.12.2011 13:55:31 отредактировано zenon)

redux пишет:
Wolfenberg пишет:

vga=

newzenon пишет:

vga=792

А разьвее второй Grub не ругнется на такой параеметр (как для первого Grub'a) что-то типа "устаревший параметр" и не откажется так переключать. Я имею в виду если это писать именно в строке передачи параметров ядру? Работает так, да?

Ну я ж говорю это работает также как и 0x318 - только для ядра на котором grub2 стоит. Ядра на других разделах не получают этот параметр.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

25 (08.12.2011 14:06:51 отредактировано redux)

newzenon пишет:

Ядра на других разделах не получают этот параметр.

Если ядра на других разделах,то может тогда и загрузчики туда поставить свои, чтоб основной загрузчик им управление передавал? (Хотя извращение- не спорю).
UPD: фигню сказал, оказывается я так не умею.

26 (08.12.2011 14:07:16 отредактировано zenon)

redux пишет:

Если ядра на других разделах,то может тогда и загрузчики туда поставить свои, чтоб основной загрузчик им управление передавал? (Хотя извращение- не спорю).

Да, это уже каша будет.
Кстати недосмотрел, ядра-то получают параметр, вот какой конфиг генерирует update-grub для других ядер у меня (это кусок grub.cfg и результат работы грубовского 30_os-prober_proxy)

### BEGIN /etc/grub.d/30_os-prober_proxy ###
menuentry "Debian GNU/Linux, with Linux 3.1-1.slh.1-aptosid-amd64 (on /dev/sda1)" --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod reiserfs
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set=root 0b72ab7e-7dc7-4afb-96f2-c5d4bc376655
        linux /boot/vmlinuz-3.1-1.slh.1-aptosid-amd64 root=UUID=0b72ab7e-7dc7-4afb-96f2-c5d4bc376655 ro quiet vga=792 nomodeset nouveau.modeset=0
        initrd /boot/initrd.img-3.1-1.slh.1-aptosid-amd64
}
menuentry "Gentoo Base System release 2.1 (on /dev/sda7)" --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod reiserfs
        set root='(hd0,msdos7)'
        search --no-floppy --fs-uuid --set=root f960b405-1099-4d92-916a-9ed39bf2e9f1
        linux /boot/kernel-genkernel-x86_64-2.6.38.5-zen-libre root=/dev/sda7
        initrd /boot/initramfs-genkernel-x86_64-2.6.38.5-zen-libre
}
menuentry "Gentoo Base System release 2.1 (on /dev/sda7)" --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod reiserfs
        set root='(hd0,msdos7)'
        search --no-floppy --fs-uuid --set=root f960b405-1099-4d92-916a-9ed39bf2e9f1
        linux /boot/kernel-genkernel-x86_64-3.1.4-zen+ root=/dev/sda7
        initrd /boot/initramfs-genkernel-x86_64-3.1.4-zen+
}
menuentry "Debian GNU/Linux, with Linux 3.0-4.slh.3-aptosid-amd64 (on /dev/sda1)" --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod reiserfs
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set=root 0b72ab7e-7dc7-4afb-96f2-c5d4bc376655
        linux /boot/vmlinuz-3.0-4.slh.3-aptosid-amd64 root=UUID=0b72ab7e-7dc7-4afb-96f2-c5d4bc376655 ro quiet vga=792 nomodeset nouveau.modeset=0
        initrd /boot/initrd.img-3.0-4.slh.3-aptosid-amd64
}
### END /etc/grub.d/30_os-prober_proxy ###

Значит тут ещё что-то не так.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

27

newzenon, я тебе уже ссылки дал почитать, что где прописать и как. А ты все упираешься.

It is good day to die ...
MS Windows 10
Заметки о главном...

28

Стормозил тут http://linuxforum.ru/viewtopic.php?pid=232456#p232456, не тот скрипт за это отвечает, а этот /etc/grub.d/proxifiedScripts/os-prober
Весь:

#! /bin/sh
set -e

# grub-mkconfig helper script.
# Copyright (C) 2006,2007,2008,2009  Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.

prefix=/usr
exec_prefix=${prefix}
libdir=/lib64

. ${libdir}/grub/grub-mkconfig_lib

if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
  exit 0
fi

if [ -z "`which os-prober 2> /dev/null`" -o -z "`which linux-boot-prober 2> /dev/null`" ] ; then
  # missing os-prober and/or linux-boot-prober
  exit 0
fi

OSPROBED="`os-prober | tr ' ' '^' | paste -s -d ' '`"
if [ -z "${OSPROBED}" ] ; then
  # empty os-prober output, nothing doing
  exit 0
fi

osx_entry() {
        cat << EOF
menuentry "${LONGNAME} (${2}-bit) (on ${DEVICE})" --class osx --class darwin --class os {
EOF
    save_default_entry | sed -e "s/^/\t/"
    prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
    cat << EOF
        load_video
        set do_resume=0
        if [ /var/vm/sleepimage -nt10 / ]; then
           if xnu_resume /var/vm/sleepimage; then
             set do_resume=1
           fi
        fi
        if [ \$do_resume = 0 ]; then
           xnu_uuid ${OSXUUID} uuid
           if [ -f /Extra/DSDT.aml ]; then
              acpi -e /Extra/DSDT.aml
           fi
           $1 /mach_kernel boot-uuid=\${uuid} rd=*uuid
           if [ /System/Library/Extensions.mkext -nt /System/Library/Extensions ]; then
              xnu_mkext /System/Library/Extensions.mkext
           else
              xnu_kextdir /System/Library/Extensions
           fi
           if [ -f /Extra/Extensions.mkext ]; then
              xnu_mkext /Extra/Extensions.mkext
           fi
           if [ -d /Extra/Extensions ]; then
              xnu_kextdir /Extra/Extensions
           fi
           if [ -f /Extra/devprop.bin ]; then
              xnu_devprop_load /Extra/devprop.bin
           fi
           if [ -f /Extra/splash.jpg ]; then
              insmod jpeg
              xnu_splash /Extra/splash.jpg
           fi
           if [ -f /Extra/splash.png ]; then
              insmod png
              xnu_splash /Extra/splash.png
           fi
           if [ -f /Extra/splash.tga ]; then
              insmod tga
              xnu_splash /Extra/splash.tga
           fi
        fi
}
EOF
}

for OS in ${OSPROBED} ; do
  DEVICE="`echo ${OS} | cut -d ':' -f 1`"
  LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
  LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
  BOOT="`echo ${OS} | cut -d ':' -f 4`"

  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

  echo "Found ${LONGNAME} on ${DEVICE}" >&2

  case ${BOOT} in
    chain)

      cat << EOF
menuentry "${LONGNAME} (on ${DEVICE})" --class windows --class os {
EOF
      save_default_entry | sed -e "s/^/\t/"
      prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"

      case ${LONGNAME} in
    Windows\ Vista*|Windows\ 7*|Windows\ Server\ 2008*)
    ;;
    *)
      cat << EOF
    drivemap -s (hd0) \${root}
EOF
    ;;
      esac

      cat <<EOF
    chainloader +1
}
EOF
    ;;
    linux)
      LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
      prepare_boot_cache=

      for LINUX in ${LINUXPROBED} ; do
        LROOT="`echo ${LINUX} | cut -d ':' -f 1`"
        LBOOT="`echo ${LINUX} | cut -d ':' -f 2`"
        LLABEL="`echo ${LINUX} | cut -d ':' -f 3 | tr '^' ' '`"
        LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`"
        LINITRD="`echo ${LINUX} | cut -d ':' -f 5`"
        LPARAMS="`echo ${LINUX} | cut -d ':' -f 6- | tr '^' ' '`"

        if [ -z "${LLABEL}" ] ; then
          LLABEL="${LONGNAME}"
        fi

    if [ "${LROOT}" != "${LBOOT}" ]; then
      LKERNEL="${LKERNEL#/boot}"
      LINITRD="${LINITRD#/boot}"
    fi

        cat << EOF
menuentry "${LLABEL} (on ${DEVICE})" --class gnu-linux --class gnu --class os {
EOF
    save_default_entry | sed -e "s/^/\t/"
    if [ -z "${prepare_boot_cache}" ]; then
      prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | sed -e "s/^/\t/")"
    fi
    printf '%s\n' "${prepare_boot_cache}"
    cat <<  EOF
    linux ${LKERNEL} ${LPARAMS}
EOF
        if [ -n "${LINITRD}" ] ; then
          cat << EOF
    initrd ${LINITRD}
EOF
        fi
        cat << EOF
}
EOF
      done
    ;;
    macosx)
      OSXUUID="`${grub_probe} --target=fs_uuid --device ${DEVICE} 2> /dev/null`"
      osx_entry xnu_kernel 32
      osx_entry xnu_kernel64 64
    ;;
    hurd)
      cat << EOF
menuentry "${LONGNAME} (on ${DEVICE})" --class hurd --class gnu --class os {
EOF
      save_default_entry | sed -e "s/^/\t/"
      prepare_grub_to_access_device ${DEVICE} | sed -e "s/^/\t/"
      grub_device="`${grub_probe} --device ${DEVICE} --target=drive`"
      mach_device="`echo "${grub_device}" | sed -e 's/(\(hd.*\),msdos\(.*\))/\1s\2/'`"
      grub_fs="`${grub_probe} --device ${DEVICE} --target=fs`"
      case "${grub_fs}" in
    *fs)    hurd_fs="${grub_fs}" ;;
    *)    hurd_fs="${grub_fs}fs" ;;
      esac
      cat << EOF
    multiboot /boot/gnumach.gz root=device:${mach_device}
    module /hurd/${hurd_fs}.static ${hurd_fs} --readonly \\
            --multiboot-command-line='\${kernel-command-line}' \\
            --host-priv-port='\${host-port}' \\
            --device-master-port='\${device-port}' \\
            --exec-server-task='\${exec-task}' -T typed '\${root}' \\
            '\$(task-create)' '\$(task-resume)'
    module /lib/ld.so.1 exec /hurd/exec '\$(exec-task=task-create)'
}
EOF
    ;;
    *)
      echo "  ${LONGNAME} is not yet supported by grub-mkconfig." >&2
    ;;
  esac
done
>       

За линуксовые ядра отвечает сие:

    linux)
      LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
      prepare_boot_cache=

      for LINUX in ${LINUXPROBED} ; do
        LROOT="`echo ${LINUX} | cut -d ':' -f 1`"
        LBOOT="`echo ${LINUX} | cut -d ':' -f 2`"
        LLABEL="`echo ${LINUX} | cut -d ':' -f 3 | tr '^' ' '`"
        LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`"
        LINITRD="`echo ${LINUX} | cut -d ':' -f 5`"
        LPARAMS="`echo ${LINUX} | cut -d ':' -f 6- | tr '^' ' '`"

        if [ -z "${LLABEL}" ] ; then
          LLABEL="${LONGNAME}"
        fi

    if [ "${LROOT}" != "${LBOOT}" ]; then
      LKERNEL="${LKERNEL#/boot}"
      LINITRD="${LINITRD#/boot}"
    fi

        cat << EOF

Наверное только скрипт изменять придеться, а конкректно
это

LKERNEL="${LKERNEL#/boot}"

на

LKERNEL="${LKERNEL#/boot} ${GRUB_CMDLINE_LINUX_DEFAULT}"
История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

29

Особо не вникал в вышеописанное, но если память не изменяет, то:

GRUB_CMDLINE_LINUX_DEFAULT=""

Для ядра  загружаемое по умолчанию;

GRUB_CMDLINE_LINUX=""

Для всех остальных ядер.

30 (09.12.2011 12:37:32 отредактировано zenon)

Вот смотрим:

$ cat /mnt/gentoo/etc/default/grub
GRUB_DEFAULT="0"
GRUB_HIDDEN_TIMEOUT_QUIET="false"
GRUB_TIMEOUT="10"

GRUB_BACKGROUND="/boot/grub2/for-grub-1600-1200-0057-1080p.png"
GRUB_CMDLINE_LINUX="splash quiet vga=795 noapic acpi=off"
GRUB_CMDLINE_LINUX_DEFAULT="splash quiet vga=795 noapic acpi=off"
GRUB_GFXMODE="1024x768"

Вот что сгенерировал update-grub:

$ cat /mnt/gentoo/boot/grub2/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos10)'
search --no-floppy --fs-uuid --set=root 6f9c97fe-bea8-467f-a3be-5a124224970a
if loadfont /share/grub2/unicode.pf2 ; then
  set gfxmode=1024x768
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod reiserfs
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set=root ead6564b-03af-44a6-b645-1c948bd47cca
insmod png
background_image -m stretch /boot/grub2/for-grub-1600-1200-0057-1080p.png
set timeout=10
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux_proxy ###
menuentry "GNU/Linux, с Linux x86_64-3.1.2-zen+" --class gnu-linux --class gnu --class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod reiserfs
    set root='(hd1,msdos1)'
    search --no-floppy --fs-uuid --set=root ead6564b-03af-44a6-b645-1c948bd47cca
    echo    'Загружается Linux x86_64-3.1.2-zen+ ...'
    linux    /boot/kernel-genkernel-x86_64-3.1.2-zen+ root=/dev/sdb1 ro splash quiet vga=795 noapic acpi=off splash quiet vga=795 noapic acpi=off
    echo    'Загружается начальный ramdisk ...'
    initrd    /boot/initramfs-genkernel-x86_64-3.1.2-zen+
}
menuentry "GNU/Linux, с Linux x86_64-3.1.2-zen+ (режим восстановления)" --class gnu-linux --class gnu --class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod reiserfs
    set root='(hd1,msdos1)'
    search --no-floppy --fs-uuid --set=root ead6564b-03af-44a6-b645-1c948bd47cca
    echo    'Загружается Linux x86_64-3.1.2-zen+ ...'
    linux    /boot/kernel-genkernel-x86_64-3.1.2-zen+ root=/dev/sdb1 ro single splash quiet vga=795 noapic acpi=off
    echo    'Загружается начальный ramdisk ...'
    initrd    /boot/initramfs-genkernel-x86_64-3.1.2-zen+
}
menuentry "GNU/Linux, с Linux x86_64-3.1.1-gentoo" --class gnu-linux --class gnu --class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod reiserfs
    set root='(hd1,msdos1)'
    search --no-floppy --fs-uuid --set=root ead6564b-03af-44a6-b645-1c948bd47cca
    echo    'Загружается Linux x86_64-3.1.1-gentoo ...'
    linux    /boot/kernel-genkernel-x86_64-3.1.1-gentoo root=/dev/sdb1 ro splash quiet vga=795 noapic acpi=off splash quiet vga=795 noapic acpi=off
    echo    'Загружается начальный ramdisk ...'
    initrd    /boot/initramfs-genkernel-x86_64-3.1.1-gentoo
}
menuentry "GNU/Linux, с Linux x86_64-3.1.1-gentoo (режим восстановления)" --class gnu-linux --class gnu --class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod reiserfs
    set root='(hd1,msdos1)'
    search --no-floppy --fs-uuid --set=root ead6564b-03af-44a6-b645-1c948bd47cca
    echo    'Загружается Linux x86_64-3.1.1-gentoo ...'
    linux    /boot/kernel-genkernel-x86_64-3.1.1-gentoo root=/dev/sdb1 ro single splash quiet vga=795 noapic acpi=off
    echo    'Загружается начальный ramdisk ...'
    initrd    /boot/initramfs-genkernel-x86_64-3.1.1-gentoo
}
### END /etc/grub.d/10_linux_proxy ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober_proxy ###
menuentry "Debian GNU/Linux, with Linux 3.1-1.slh.1-aptosid-amd64 (on /dev/sda1)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod reiserfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 0b72ab7e-7dc7-4afb-96f2-c5d4bc376655
    linux /boot/vmlinuz-3.1-1.slh.1-aptosid-amd64 root=UUID=0b72ab7e-7dc7-4afb-96f2-c5d4bc376655 ro quiet vga=792 nomodeset nouveau.modeset=0
    initrd /boot/initrd.img-3.1-1.slh.1-aptosid-amd64
}
menuentry "Gentoo Base System release 2.1 (on /dev/sda7)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod reiserfs
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set=root f960b405-1099-4d92-916a-9ed39bf2e9f1
    linux /boot/kernel-genkernel-x86_64-2.6.38.5-zen-libre root=/dev/sda7
    initrd /boot/initramfs-genkernel-x86_64-2.6.38.5-zen-libre
}
menuentry "Gentoo Base System release 2.1 (on /dev/sda7) ZEN-KERNEL 3.1.4" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod reiserfs
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set=root f960b405-1099-4d92-916a-9ed39bf2e9f1
    linux /boot/kernel-genkernel-x86_64-3.1.4-zen+ root=/dev/sda7
    initrd /boot/initramfs-genkernel-x86_64-3.1.4-zen+
}
menuentry "Debian GNU/Linux, with Linux 3.0-4.slh.3-aptosid-amd64 (on /dev/sda1)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod reiserfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 0b72ab7e-7dc7-4afb-96f2-c5d4bc376655
    linux /boot/vmlinuz-3.0-4.slh.3-aptosid-amd64 root=UUID=0b72ab7e-7dc7-4afb-96f2-c5d4bc376655 ro quiet vga=792 nomodeset nouveau.modeset=0
    initrd /boot/initrd.img-3.0-4.slh.3-aptosid-amd64
}
### END /etc/grub.d/30_os-prober_proxy ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

Для раздела на котром сам grub2 строчка:

linux    /boot/kernel-genkernel-x86_64-3.1.2-zen+ root=/dev/sdb1 ro splash quiet vga=795 noapic acpi=off splash quiet vga=795 noapic acpi=off

Для Debian почему-то проигнорировал GRUB_DISABLE_LINUX_UUID="true" и на CMDLINE тоже игнор:

linux /boot/vmlinuz-3.1-1.slh.1-aptosid-amd64 root=UUID=0b72ab7e-7dc7-4afb-96f2-c5d4bc376655 ro quiet vga=792 nomodeset

Для Gentoo:

linux /boot/kernel-genkernel-x86_64-3.1.4-zen+ root=/dev/sda7

Вывод, - по ходу update-grub выполняя сценарий os_prober заползает в разделы Linux и в каждом разделе ищет /etc/default/grub? Во всех ли дистрибутивах этот файло есть?

Почему так решил, потому что на разделе Debian как раз параметры

GRUB_CMDLINE_LINUX_DEFAULT="quiet vga=792 nomodeset nouveau.modeset=0"

На разделе /dev/sda7 с Gentoo этого файла вообще нет.
Такие дела.

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.