Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: [HOWTO] Настройка и редактирование GRUB 2  (Прочитано 993449 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн BallRocK

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #210 : 12 Декабря 2009, 07:56:48 »
Цитировать
а вообще есть мысль пересортировать все это, сделав Linuxовый раздел на первом, нтфс на втором, а ufs-разделы, Linuxовый свап и прочую бяку запихать в расширенный...
Проблемма в том, что я планирую 7ку использоваться. Она у меня не купленая... Самый лучший активатор, который я смог найти, активирует ее толька в том случае, если она стоит на первом разделе в начале диска, на других разделах после его работы, она просто перестает загружаться.
Что касается UFS2 разделов... Там система такая, что в расширеный раздел фрии не поставишь, ну на сколько я знаю. То есть при установке на жестком создаются primary разделы BSD (называемые слайсами). После этого включается другая программа, которая в этих BSD слайсах создает патриции(логические разделы) / /usr /var и тд. Кроме BSD слайсов она ничего не понимает. Кроме того я еще хочу пользоваться ZFS, для нее так же нужен полностью слайс BSD.
Цитировать
+ а что freebsd? может, у нее какой загрузчик толковый? чем она запускается-то?
Так сходу не скажу, как называется ее загрузчик, при установке там есть выбор не создавать загрузчика вообще, прописать в mbr толька фрюху и третий вариант какой то менеджер. Он прекрасно работает с хр, но ubuntu почему то не грузит. И проблемма с 7кой. Ее нормально загружает толька Grub... После установки загрузчика фрии, 7рка перестает загружаться. Проблемма скорей всего связана с активатором.


Пользователь решил продолжить мысль 12 Декабря 2009, 02:43:51:
grub.cfg:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s /boot/grub/grubenv ]; then
  have_grubenv=true

  load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
  saved_entry=${prev_saved_entry}
  save_env saved_entry
  prev_saved_entry=
  save_env prev_saved_entry
fi
insmod ext2
set root=(hd0,6)
search --no-floppy --fs-uuid --set d91c50f2-c1ca-4096-ac40-614ccde55882
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm ; then true ; else
    # For backward compatibility with versions of terminal.mod that don't
    # understand terminal_output
    terminal gfxterm
  fi
fi
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/white
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry "Ubuntu, Linux 2.6.31-14-generic" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
   set quiet=1
   insmod ext2
   set root=(hd0,6)
   search --no-floppy --fs-uuid --set d91c50f2-c1ca-4096-ac40-614ccde55882
   linux   /boot/vmlinuz-2.6.31-14-generic root=UUID=d91c50f2-c1ca-4096-ac40-614ccde55882 ro   quiet splash
   initrd   /boot/initrd.img-2.6.31-14-generic
}
menuentry "Ubuntu, Linux 2.6.31-14-generic (recovery mode)" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
   insmod ext2
   set root=(hd0,6)
   search --no-floppy --fs-uuid --set d91c50f2-c1ca-4096-ac40-614ccde55882
   linux   /boot/vmlinuz-2.6.31-14-generic root=UUID=d91c50f2-c1ca-4096-ac40-614ccde55882 ro single
   initrd   /boot/initrd.img-2.6.31-14-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
   linux16   /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
   linux16   /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### 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.
menuentry "FreeBSD 8.0" {
    set root=(hd0,1,a)
    chainloader +1
}
### END /etc/grub.d/40_custom ###

Блок про FreeBSD добавлял сам через  40_custom
« Последнее редактирование: 12 Декабря 2009, 08:50:39 от BallRocK »

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #211 : 12 Декабря 2009, 11:59:32 »
Цитировать
menuentry "FreeBSD 8.0" {
    set root=(hd0,1,a)
    chainloader +1
}
кстати, голый set root - плохая идея. лучше вместо него search -u uuid_раздела -s, об чем читай в 6-м посте раздел про консоль. ибо нумерация сам видишь как работает. тут по соседству у товарища показывал четыре харда вместо трех)))
Цитировать
в том случае, если она стоит на первом разделе в начале диска, на других разделах после его работы, она просто перестает загружаться.
ну так в первом и сделай... на втором-третьем тогда сделаем ufs-ные большие разделы, а на четвертом расширенный, в который Ubuntu запихай и все прочее, ибо убунте пофиг, откуда грузиться... при этом создавай ufs-разделы делай заранее из-под лайва (гепартедом там или вручную), поставив ufstools. а установщиком уже внутри их крои. если такое возможно, конечно...
лучше на "ты"

Оффлайн BallRocK

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #212 : 12 Декабря 2009, 12:28:18 »
Цитировать
при этом создавай ufs-разделы делай заранее из-под лайва (гепартедом там или вручную), поставив ufstools. а установщиком уже внутри их крои. если такое возможно, конечно...
Буду пробовать, правда есть маленькая проблемма... Интернет у моего провайдера организован через vpn... Ну и еще опять же я пробовал ставить винду, фряху а потом Ubuntu, все закончилось так же, так что даже и не знаю, поможет ли это, но попытка не пытка.
Цитировать
а что freebsd? может, у нее какой загрузчик толковый? чем она запускается-то?
Boot Easy, стандартный менеджер загрузки FreeBSD

Вот что еще интересного пишут на http://www.freebsd.org/doc/ru/books/handbook/boot-blocks.html

Менеджер загрузки LILO: Для того, чтобы этот менеджер загрузки мог загружать FreeBSD, загрузите Linux и добавьте к существующему файлу конфигурации /etc/lilo.conf такие строки:
other=/dev/hdXY
table=/dev/hdb
loader=/boot/chain.b
label=FreeBSD

Укажите диск с основным разделом FreeBSD в терминах Linux, заменив X буквой диска, используемой в Linux, а Y -- номером основного раздела. Если вы используете диски SCSI, замените /dev/hd на /dev/sd. Строка loader=/boot/chain.b может быть опущена, если обе операционные системы находятся на одном диске. Теперь запустите /sbin/lilo -v для того, чтобы ваши изменения были восприняты системой, что должно быть подтверждено сообщениями на экране.

Появились изменения, еще ничего не переустанавливал. Загрузился с флэшки и ввел 3 команды:

sh:grub> set root=(hd1,1,a)
sh:grub> chainloader +1
sh:grub> boot

Вуаля, фряха загрузилась  :D Попав во фряху я создал на ad4s3 (sda3) пул zfs под именем tank. После перезагрузки и загрузки с флэшки ввел команду:

sh:grub> ls (hd1," tab

результат меня порадовал, за место partition hd1,3: unknown filesystem он нашел zfs раздел и даже увидел название пула и UUID

Почему то раздел с виндой определяется как unknown а (hd1,6) вообще нет так же как и (hd1,4) там должен Linux стоять.
Как можно подправить этот глюк?
« Последнее редактирование: 12 Декабря 2009, 13:56:29 от BallRocK »

Оффлайн typus

  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
    • Virtual Reality Panoramafotografie für interaktive Darstellung auf Webseiten.
Re: пишем мануал по GRUB2
« Ответ #213 : 12 Декабря 2009, 13:53:32 »
UPD: добавлен раздел про создание собственных менюшек в стиле menu.lst. typus и прчие любители развлечений, читаем 6-й пост!!
Thx, такой подход мне нравится больше, чем я придумал, поскольку основные файлы останутся нетронутыми..

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #214 : 12 Декабря 2009, 14:52:08 »
Цитировать
Почему то раздел с виндой определяется как unknown а (hd1,6) вообще нет так же как и (hd1,4) там должен Linux стоять.
Как можно подправить этот глюк?
ну extended-раздел он, по-моему, и не должен видеть, а вот sda6 видеть обязан...
слушай, а попробуй-ка его
search -u uuid_его
или даже
search -f /vmlinuz
коли уж все равно одна Linux-система. (все в грубе). найдет ли?
UPD: да, расширенный раздел он действительно не видит, ибо нафиг надо оно.
нашел опасный путь: есть в грубе некая команда parttool. при желании можно рискнуть так:
parttool (hd1,6) type=ext2
то есть тупо задать тип партиции вручную. хз, чем это закончится, но если система все равно стоит толком не рабочая, то и бояться особо нечего. да и вряд ли что-то страшное должно случиться. в лучшем случае ошибку выдаст и пошлет подальше...
насчет нтфс - глупо, конечно, но все-таки загрузи ручками модуль
insmod ntfs
хотя у меня и так видит, но чем черт не шутит...
UPD2: единственная толковая страница, что мне удалось нагуглить про ентот самый parttool - http://www.keneks.net/blog/2009/05/hide-unhide-makeactive-partitions-with-grub-2-parttool/ - правда, про "type" чувак ничего не говорит, но для общего развития можно почитать....
UPD3: предварительно можно попробовать
parttool (hd1,6) boot+
и
parttool (hd1,6) hide-
« Последнее редактирование: 12 Декабря 2009, 15:13:47 от dimas000 »
лучше на "ты"

Оффлайн BallRocK

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #215 : 12 Декабря 2009, 15:53:29 »
Сейчас спробую.
Меня беспокоит вот это:

root@ubuntu:/# sudo update-grub
sudo: unable to resolve host ubuntu
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-14-generic
Found initrd image: /boot/initrd.img-2.6.31-14-generic
Found memtest86+ image: /boot/memtest86+.bin
Cannot find list of partitions!
done
root@ubuntu:/#

почему то update-grub вообще ошибкой заканчивается может не так что сделал? до этого успешно востановил Grub и вводил:

sudo mount /dev/sda6 /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo chroot /mnt

все это успешно прошло. После перезагрузки вывелось опять же

Grub loading.
error: no such partition
grub rescue>

вылазит консоль, но почему то из команд он понял толька ls, все остальные, даже ls (hd0,1) закончились тем что он не знает таких команд. Перезагрузился чтобы востановить загрузчик фрии (кстати стандартный загручик как я понял может загружать толька с primary разделов) но BIOS потерял жесткий. Определил толька после кратковременного выключения сетевого фильтра.

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #216 : 12 Декабря 2009, 16:15:28 »
rescue-консоль дает весьма скудные возможности, ибо она не есть полноценная grub-sh.
да, как выяснилось, parttool'у надо тип давать 0x83 для Linuxовой партиции. и 0x7 для нтфс (т.е. так, как кажет fdisk -l)
попробуй на харде снести папку /boot/grub и заменить таковой с флэшки. хрен бы с ней с менюшкой, тут уж не до нее, получить бы работающий груб на харде, хотя бы и в консольном варианте.
еще мб стоит попробовать поставить консольный груб таким же образом, как мы делаем загрузочную флэшку, т.е. не указывать рут, а лишь примонтировать /boot/grub харда в кач-ве /boot/grub лайв-системы и grub-install как в примере с флэшкой, только на /dev/sda
авось минималистичная версия и запуститься... мало ли...
Цитировать
Cannot find list of partitions!
done
ufstools таки поставил или нет (как в chroot, так и на лайве)? очень может быть, что ему не нравится неизвестная пока что фс
лучше на "ты"

Оффлайн BallRocK

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #217 : 12 Декабря 2009, 16:25:34 »
Цитировать
search -f /vmlinuz
error: no such device: /vmlinuz
Цитировать
parttool (hd1,6) type=ext2
error: invalid type
Цитировать
parttool (hd1,6) boot+
parttool (hd1,6) hide-
error: no such partition
Цитировать
insmod ntfs
После этого (hd1,2) так и остался unknown filesystem :(
попробовал Parttool (hd1,2) boot+ заработало, потом set root=(hd1,2) то же успех chainloader +1 так же закончился успешно, но на команду boot вывел чето типа что нет таблицы разделов и вывел загрузчика фряшного...
Цитировать
ufstools таки поставил или нет
Не пробовал, такак для этого надо откуда то слить pptp-linux со всеми зависимостями, а потом и сам ufstools, у меня инет vpn он по умолчанию в Ubuntu не настраиватся, надо качать дополнительные пакеты из инета, забавно :) Но я сохранил /var/cache/apt/archives правда почему то в нем не оказалось pptp-linux :(
Цитировать
очень может быть, что ему не нравится неизвестная пока что фс
Я что-то очень сомневаюсь, что по умолчанию пакет ufstools с Ubuntu устанавливается, проверить бы...

Пользователь решил продолжить мысль 12 Декабря 2009, 16:49:50:
Цитировать
да, как выяснилось, parttool'у надо тип давать 0x83 для Linuxовой партиции. и 0x7 для нтфс (т.е. так, как кажет fdisk -l
(hd1,6) no such partition выдает, а вот к (hd1,2) 0x7 применилось, толька толку от этого мало, загрузить винду все равно не удалось(
« Последнее редактирование: 12 Декабря 2009, 16:49:50 от BallRocK »

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #218 : 12 Декабря 2009, 17:26:18 »
а, ну да... пугать parttool'ом несуществующий раздел - это круто))
Цитировать
После этого (hd1,2) так и остался unknown filesystem
попробовал Parttool (hd1,2) boot+ заработало, потом set root=(hd1,2) то же успех chainloader +1 так же закончился успешно, но на команду boot вывел чето типа что нет таблицы разделов и вывел загрузчика фряшного...
ага, уже определенный прогресс есть... а что скажет, если после этого
ls (hd1,2)/
да, после set root проверяй всегда командой root результат, а то он молчит, а потом выясняется....
Цитировать
по умолчанию в Ubuntu не настраиватся, надо качать дополнительные пакеты из инета, забавно
мельком где-то читал, что pptp есть на установочном диске. так что вырубай все репы и включай сидиром.
Цитировать
Я что-то очень сомневаюсь, что по умолчанию пакет ufstools с Ubuntu устанавливается, проверить бы...
дык нету его по умолчанию. подтвержаю!
да, насчет скачки пакетов: на форум-то ты вылазишь через что-то - так почему бы не скачать с какого-нибудь packages.ubuntu.com енти самые пакеты. только что глянул, пакет зовется "ufsutils", зависимость у него одна - "libufs2".
лучше на "ты"

Оффлайн BallRocK

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #219 : 12 Декабря 2009, 17:57:01 »
Цитировать
ls (hd1,2)/
да, после set root проверяй всегда командой root результат, а то он молчит, а потом выясняется....
Unknown filesystem пишит в обоих случаях

Пользователь решил продолжить мысль 12 Декабря 2009, 13:22:11:
скачал "ufsutils" и "libufs2", поставил на лайфе, потом:
sudo mount /dev/sdf1 /boot/grub
sudo grub_install /dev/sdf
Завершилось успешно, результат точно такой же, как и без ufsutils и libufs2, не в них дело, и без них в ручную получилось под фри зайти, груб почему то не все разделы видит, своп фряшный видит как неопознаный и ntfs то же, а Linuxовых вообще не видит
« Последнее редактирование: 12 Декабря 2009, 21:16:25 от BallRocK »

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #220 : 12 Декабря 2009, 22:29:50 »
Цитировать
скачал "ufsutils" и "libufs2", поставил на лайфе, потом:
sudo mount /dev/sdf1 /boot/grub
sudo grub_install /dev/sdf
дык grub-install совершится по-любому, коли он и ранее совершался... ты попробуй после этго еще в chroot поставить енти пакеты, и там уже update-grub - тоже будет ругаться на партиции или нет...
лучше на "ты"

Оффлайн BallRocK

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #221 : 13 Декабря 2009, 08:06:36 »
Цитировать
ты попробуй после этго еще в chroot поставить енти пакеты, и там уже update-grub - тоже будет ругаться на партиции или нет...
Подскажи, какой командой через консоль пакеты ставить, чтоб он на репозитории не ломился.

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #222 : 13 Декабря 2009, 14:27:04 »
если речь о deb'ах, то
dpkg -i файл.deb
лучше на "ты"

Оффлайн BallRocK

  • Новичок
  • *
  • Сообщений: 30
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #223 : 13 Декабря 2009, 16:09:05 »
Цитировать
дык grub-install совершится по-любому, коли он и ранее совершался... ты попробуй после этго еще в chroot поставить енти пакеты, и там уже update-grub - тоже будет ругаться на партиции или нет...
Попробовал, никаких изменений... Ошибки при выполнении update-grub такие же, и при последующей загрузки вылазит та же самая ошибка...

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: пишем мануал по GRUB2
« Ответ #224 : 13 Декабря 2009, 18:50:49 »
ну тоды пробуй разлекаться с установкой консольной версии, как я описал выше.
да, насчет загрузки модулей ручками: поковырявшись с "lsmod" выяснил, что при показе списка партиций сами собой загружаются модули всех возможных фс (после "ls (hd1," tab)
лучше на "ты"

 

Страница сгенерирована за 0.02 секунд. Запросов: 21.