Автор Тема: Grub2 - в меню русские буквы заменяются знаками вопроса (чипсет i810)  (Прочитано 23754 раз)

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

Оффлайн calambus

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1465
  • calambus@jabber.ru
В состав ПО сборки Runtu LITE 10.04 - 201107 от HsH входит Grub Customizer ...
опыт увеличивается пропорционально количеству выведенных из строя Систем и оборудования...
Руководство по добавлению изображений на Форум

Оффлайн vovchok

  • Постоялец
  • ***
  • Сообщений: 198
Спасибо, уже нашел, но как в нем добавить операцонку в загрузку - не могу понять. Единственное, что могу сделать - все поудалять оттуда (что уже и сделал, т.к. все равно не работало, а всякие memtestы мне не нужны). В "linux" - есть только "новые пункты меню" (нет скрипта и ссылки на операционку), и откуда должно взяться остальное - непонятно! В программе нет никакого хелпа, в инете тоже лишь как ее установить... При попытке залезть в загрузчик с самого CD (чтобы хотя бы посмотреть, что должно быть) ругается, что нет прав root и закрывается.

Оффлайн vovchok

  • Постоялец
  • ***
  • Сообщений: 198
Пол дня ковыряний показали, что с помощью grub customizer исправить ничего нельзя - он вообще ничего не видит и всегда выдает пустое окно (вместо содержимого меню). Начал сравнивать систему с другим, работающим компьютером - переписал оттуда /boot/grub/groob.cfg и /etc/default/grub - при загрузке меню появилось, но начало ругаться на отсутствие ядра...

Я уж не знаю, как такое могло произойти - вроде вирусов в linux быть не должно; но в каталоге /boot кроме каталога grub и файла memtest86+.bin ничего не оказалось! Переписал все недостающее с другого компа - думаю все бы получилось, если бы не файл initrd... Загрузиться конечно же не получилось, но во второй пункт загрузочного меню (не знаю что там в скобках написано, потому что в названиях остаются знаки вопроса даже если закоментировать русский в grub.cfg) вошло и долго (по моему выбору) исправляло все пакеты в системе, но потом после перезагрузки все равно ругалось на диск.

Есть способы поиметь этот файл (initrd) таким, каким он должен быть для этой системы?
« Последнее редактирование: Октябрь 01, 2012, 00:47:51 от vovchok »

Оффлайн calambus

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1465
  • calambus@jabber.ru
vovchok , осталось только переустановить Систему ...
опыт увеличивается пропорционально количеству выведенных из строя Систем и оборудования...
Руководство по добавлению изображений на Форум

Оффлайн vovchok

  • Постоялец
  • ***
  • Сообщений: 198
При установке линукса на диск файл initrd как-то генерится же - почему нельзя это сделать повторно без переустановки? Я в линуксе мелко плаваю, а этот комп у меня слава Богу экспериментальный - хочется испробовать все варианты, прежде чем прибегать к самому радикальному и простому, а то как же иначе повышать свою квалификацию...

Оффлайн Feduka

  • Активист
  • ****
  • Сообщений: 428
  • Меняю путина на Ходорковского
updateinitramfs, mkinitramfs почему бы не почитать man про это дело? или гугл. Можно и в лоб. Загрузить живую сессию с диска/флешки, с которой до того производилась установка. Скопировать из живой загруженной системы нужные файлы в то место, где у полудохлой системы находится /boot. По идее, все должно подойти. Можно попробовать загрузиться... Если что, груба можно ткнуть носом в нужные файлы уже при загрузке. А уже из запущенной системы update-grub приказать.
2:5020/655.11

Оффлайн vovchok

  • Постоялец
  • ***
  • Сообщений: 198
Загрузить живую сессию с диска/флешки, с которой до того производилась установка. Скопировать из живой загруженной системы нужные файлы в то место, где у полудохлой системы находится /boot. По идее, все должно подойти.
Я написал, что уже делал так, но на CD в папке /boot нет файлов vmlinuz и initrd и как-то оно тем не менее работает (хотя непонятно как линукс может загрузиться без ядра - наверное оно где-то в другом месте все-таки есть); ну да ладно - ядро я скопировал с другого компа с этой же системой, а вот initrd уникален для каждой установленной системы и его надо как-то сгенерить (о чем собственно я и спрашивал).

updateinitramfs, mkinitramfs почему бы не почитать man про это дело?
Спасибо - читаю. Но пока мне не понятно, как указать, что надо генерить initrd на другой системе (не той, что загружена), а той, что находится на подключенном диске - в параметрах mkinitramfs нет такой опции...
Если не трудно - напишите эту команду с указанием соответствующих параметров, когда система загружена с liveCD, а генерить initrd нужно для системы на hdd.

Написано, что initrd создается на этапе установки системы для конкретного ядра и в последствии не меняется... Почему же тогда этот образ с другой аналогично установленной системы не подошел? Единственное, что настораживает - для каждого hdd в линуксе используется уникальный идентификатор (мне его приходилось менять, когда я копировал grub.cfg с одной системы на другую). Может и в initrd он присутствует и не дает обратиться к "подмененному" винчестеру?
« Последнее редактирование: Октябрь 02, 2012, 17:26:58 от vovchok »

Оффлайн Feduka

  • Активист
  • ****
  • Сообщений: 428
  • Меняю путина на Ходорковского
На ЦД в папке /boot может и нету чего Вам так хочется. Там вообще всё в "архив" завернуто и разворачивается при загрузке. А вот уже после загрузки есть не та файловая система, что на ЦД, а совсем другая, развернутая из архива. И в ней уже есть и ядро, и initramfs в нормальном виде, который по идее должен бы Вам подойти. Если конечно установка системы производилась именно с этого диска. Собственно говоря, не подойти оно и не могет, ибо в процессе инсталяции просто копируется. Параметры команд mkinitramfs не помню, в телефоне не найду :) Если так уж хочется слепить initrd для системы, установленной на совсем другом диске, то есть же chroot. Но это явно не тот случай. По поводу уникальности initrd на разных компах, да еще с привязкой к конкретному hdd - это по-моему ерунда какая-то. Если правильно помню, initrd - просто архив, который получается из каталога /lib/modules для конкретного ядра. В начале загрузки из этого архива и берутся нужные модули ядра для поддержки разных железяк, файловых систем и фиг там еще знает, чего в этих модулях есть. На двух разных компах с одним ядром набор модулей может быть и разным. К примеру, я каждый раз колупаюсь с updateinitramfs чтоб после установки системы на LVM после перезагрузки эти самые lvm-тома увиделись. Какая меж теми двумя компами разница в железках? По  идее, если живая сессия нормально работает с дисками и видеокартой, то копирование initrd - самый правильный вариант.
Если конечно мы тут вдвоем не занимаемся фигнёй :) В том смысле, что grub.cfg с другого компа запросто может приводить к ругани. Куда он посылает загрузчик искать ядра? Туда, где они лежат на компе-доноре. На реципиенте такого места может вообще не быть. Груб не понимает /boot и другие каталоги файловой системы, он понимает номера дисков и разделов на них (нумерует их начиная с 0, чтоб веселей еще было), а уж внутри раздела может поискать файл с указанным именем, если только тип файловой системы ему знаком. Я бы не стал /boot ложить на ntfs. Впрочем, может груб и оттуда уже умеет.
Вам надо точно вспомнить, где на hdd при установке оказался /boot. Быть может, это просто каталог на корневом разделе диска, а может быть отдельный раздел (у меня он вообще на отдельной microSD-карточке). Именно туда надо копировать ядро и initrd. По идее, они вообще могут быть отфонарными. С любого компа, лишь бы одной версии. Потом надо загрузиться все равно откуда. Хоть с дискеты, на которой есть груб. После появления меню груба (при загрузке хоть с Вашего hdd, хоть с дискеты, хоть с  CD), надо не дать ему по таймауту грузить что-либо, а нажать кнопочку "e" на клавиатуре. Тогда пункт меню можно будет отредактировать. И указать в нем нужные разделы диска и имена файлов - те самые, куда перед этим сложили ядро и initrd. Ну и куда ж он денется после этого? Загрузит то, что ему велено. В правильно загруженной системе придется груб либо update, либо заново установить. Лучше перед тем в документацию заглянуть. Может быть, ему надо указывать где чего лежит - я не помню.
2:5020/655.11

Оффлайн vovchok

  • Постоялец
  • ***
  • Сообщений: 198
Возможно Вы и правы применительно к другим системам, но в случае с runtu_lite_10.04 к сожалению все не так...

С одного и того же компакта абсолютно одинаково установил систему на одинакового объема винты и все пространство отдал под линукс (оно создало в конце диска небольшой раздел подкачки и такой же по объему extended, а все остальное пространство - один раздел ext4). В файле grub.cfg поменял все идентификаторы раздела на нужные и он прокатил как родной. Т.е. с grub проблем вроде бы и нету (кроме знаков вопроса вместо кирилицы, но это загрузке не мешает). Скопированное с такой же системы ядро тоже подхватывается (и дата у него какая-то старая), а вот initrd имеет дату установки системы на винт и на другом компе не работает! Повторюсь: система та же, винт того же объема и разбит аналогично (по дефолту с использоваем всего пространства). Загрузка вроде бы начинается (букву "е" нажимал, но там править нечего - все лежит как указано, только не то). Доходит до "checking battery state", хотя это desktop, и после этого на экране появляется следующая надпись и мигает каждые 12 секунд (ждал долго, но ничего другого не дождался):
fsck from util-linux-ng 2.17.2
/dev/sda1: clean, 94975/4841472 files, 3057887/19354880 blocks

По трем кнопкам система идет на перезагрузку.

Разумеется директорию /grub я смотрю в смонтированной из liveCD файловой системе, а не на самом CD непосредственно и там не хватает ядра и initrd. Натоместь в корне есть файлы !vmlinuz и !initrd с маленькими размерами (~30 байт) и недоступные для просмотра (при попытке обратиться к ним сообщает, что таких файлов вообще нет).

Наверняка лучше всего на этот вопрос ответил бы уважаемый HsH, но он почему-то молчит...
« Последнее редактирование: Октябрь 02, 2012, 22:38:38 от vovchok »

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3474
на этот вопрос ответил бы уважаемый HsH, но он почему-то молчит...

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

Есть способы поиметь этот файл (initrd) таким, каким он должен быть для этой системы?

  Если кратко, то в вашем случае необходимо:

1. Проверить на ошибки системный диск. Сделать это можно с LiveCD (на отмонтированном разделе), выполнив команду
sudo fsck -f /dev/sdXYуказав соответствующий раздел (подставить вместо X и Y свои значения, например sda1)

2. Примонтировать раздел следующим образом:
sudo mount -t extN /dev/sdXY /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
вместо extN подставьте ext3 или ext4 в зависимости от типа вашей ФС - это важно.

3. Выполнить chroot в установленную систему, скопировать /etc/resolv.conf для поддержки сети в chroot-окружении.
sudo cp -ap /etc/resolf.conf /mnt/etc/
sudo chroot /mnt

4. Переустановить пакет с ядром (linux-image-2.6.32-*-generic) и загрузчиком grub (grub-pc). В процессе переустановки сгенерируются необходимые файлы и конфиги.

5. Отмонтировать раздел, перезагрузиться.

    Пробуйте, по результатам отпишитесь.

Оффлайн vovchok

  • Постоялец
  • ***
  • Сообщений: 198
Успешно дошел до пункта 4 "Переустановить пакет с ядром и grub" - не понял как это сделать...
« Последнее редактирование: Октябрь 04, 2012, 21:46:20 от vovchok »

Оффлайн calambus

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1465
  • calambus@jabber.ru
Как обычно , посмотреть доступные версии ядер :
aptitude search linux-image-*указать точно номер ядра :
sudo aptitude install linux-image-2.6.32-*-generic sudo aptitude install grub-pc
« Последнее редактирование: Октябрь 04, 2012, 22:25:52 от calambus »
опыт увеличивается пропорционально количеству выведенных из строя Систем и оборудования...
Руководство по добавлению изображений на Форум

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3474
"Переустановить пакет с ядром и grub" - не понял как это сделать...
aptitude update
aptitude reinstall linux-image-`uname -r` grub-pc
Команду sudo добавлять не нужно, т.к. в chroot вы работаете от root.

   После выполнения - выход из chroot (Ctrl+D) и отмонтирование раздела
sudo umount -l /mnt/dev
sudo umount -l /mnt/proc
sudo umount -l /mnt
Перезагрузка.

Оффлайн vovchok

  • Постоялец
  • ***
  • Сообщений: 198
Спасибо, уже сделал, как написал calambus - система поднялась! Правда с grub что-то не сложилось - показало при загрузке ту же картинку, с которой все началось (мой первый пост в этой теме) - пришлось переписать grub.cfg с другого компа. Еще при восстановлении ядра ругалось, что не смонтирована какая-то директория для логов. И вместо размонтирования всего я написал reboot.

Пока наблюдал восстановление ядра и кучу восстанавливаемых пакетов беспроводных сетей вспомнил, что перед падением поудалял все, что было установлено для wifi - может из-за этого и навернулось ядро? Не может ли synaptic сдуру удалить ядро и initrd? (Вроде как больше не на что грешить...)

И еще одно наблюдение - весной я долго боролся с wifi rt73 и победил его только виндовыми дровами (как раз на этой системе). Так вот если этот свисток воткнут в комп во время установки рунты - то все работает через NM прямо из коробки и не надо никаких танцев с бубном.

Оффлайн calambus

  • Местный
  • *****
  • Автор темы
  • Сообщений: 1465
  • calambus@jabber.ru
Цитировать (выделенное)
Автор: vovchok
Не может ли synaptic сдуру удалить ядро и initrd?
Элементарно , сносит всё подряд , и ядро в том числе ... Сам имел такое несчастье - по собственной-же дурости .
По этому прежде чем удалять , что либо с помощью Synaptic`a , нужно очень хорошо подумать о возможных последствиях ...
Так что примите коллега мои поздравления с успешным разрешением проблемы !
« Последнее редактирование: Октябрь 05, 2012, 08:51:01 от calambus »
опыт увеличивается пропорционально количеству выведенных из строя Систем и оборудования...
Руководство по добавлению изображений на Форум