Jump to content
Sign in to follow this  
cresta

linux-32 и linux-64 на одном компе

Recommended Posts

Здравствуйте!

Установлено:

/dev/sda1 - winxp

/dev/sda6 - mandriva 2008 (32bit)

установил на /dev/sda8 mandriva 2008 (64bit)

После этого 32-битная версия практически перестала функционировать.

Система загружается, но из устройств работает только видеокарта и мышь.

Звуковая карта не работает, сетевая карта не работает, клавиатура не работает, usb-устройства не работают, кнопка выключения питания не работает, 1394 не работает.

Сама 64-битная система установилась без проблем и функционирует нормально, а 32-битная повреждена при установке 64-битной.

Каким образом пересеклись /dev/sda6 и /dev/sda8, честно говоря я даже не представляю.

Можно ли поправить 32-битную систему? Или проще пристрелить и поставить заново?

Share this post


Link to post
Share on other sites

В обоих системах сделано так, что есть только одна точка монтирования для "/". И swap.

Для 32-битной системы к / монтируется sda6, swap на sda5

Для 64-битной системы к / монтируется sda8, swap на sda9

В логах загрузки сообщается, что (например для сетевой карты) устройство не может быть запущено на установленном драйвере r8169

Share this post


Link to post
Share on other sites

cresta писал(а) Wed, 18 February 2009 07:53

В обоих системах сделано так, что есть только одна точка монтирования для "/". И swap.

Для 32-битной системы к / монтируется sda6, swap на sda7

Для 64-битной системы к / монтируется sda8, swap на sda9

Остальные разделы [2358], как я понял, вы используются для чего-то другого.

На расстоянии могу предположить только одно:

Загрузчиком грузится выбранное ядро (32 или 64). Затем разные ядра по-разному именуют разделы и 32 битное ядро монтирует корень на другой раздел.

Share this post


Link to post
Share on other sites

В общем, как я понял, дело в загрузчике.

64-битная система при установке загрузчика вписала для 32-битной не то ядро, которое нужно:

kernel-server-2.6.24.4-1mnb - Linux Kernel for server use with i686 & 64GB RAM

Я это ядро устанавливал, пытаясь задействовать более чем 3Гб ОЗУ

По логам загрузки грузилось это ядро.

После запуска с диска Resque System утилиты восстановления загрузчика 32-битная система грузится теперь нормально.

Вот только 64-битная теперь пропала Mad

Как теперь восстановить загрузку 64?

Копирование секций из lilo.conf (как из 32 в 64, так и наоборот) ничего не дает.

64 бита не грузятся, застревая на сообщении request_module: runaway loop modprobe binfmt-464c

Сделать из 32 битной системы chroot на /mnt/sda8 и запустить lilo тоже не удается, тамошний конфигуратор lilo 64-битный и не запускается из 32-х

В общем со всех сторон засада Sad

В принципе возможно заставить lilo корректно грузить 32 и 64-разрядные системы одновременно?

Share this post


Link to post
Share on other sites

cresta писал(а) Wed, 18 February 2009 12:33

В общем со всех сторон засада Sad

В принципе возможно заставить lilo корректно грузить 32 и 64-разрядные системы одновременно?

Загрузчику безразлично, какую истему он грузит.

grub грузит файлы с указанным именем, lilo - указанные номера секторов диска, связанные с файлами ядра.

Вам стоит вручную настроить загрузчик на нужные ядра (или на все, которые у вас есть). Только редактируйте именно тот файл из двух, который фактически используется (или сделайте их одинаковыми).

Почитайте документацию по загрузчику. Если не пробьетесь, выкладывайте сюда файл конфигуразии загрузчика и содержимое /boot обеих систем.

Share this post


Link to post
Share on other sites

lilo.conf для 32-бит:

# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file

default="linux-32"
boot=/dev/sda
install=menu
prompt
nowarn
timeout=100
message=/boot/message
image=/boot/vmlinuz
	label="linux-32"
	root="UUID=448762d0-cfc0-11dd-9029-73462a196d5c"
	initrd=/boot/initrd.img
	append="resume=/dev/sda5 splash=silent mem=4096M"
	vga=791
image=/boot/vmlinuz
	label="linux-nonfb"
	root="UUID=448762d0-cfc0-11dd-9029-73462a196d5c"
	initrd=/boot/initrd.img
	append="resume=/dev/sda5 splash=silent mem=4096M"
	vga=791
image=/boot/vmlinuz
	label="failsafe"
	root="UUID=448762d0-cfc0-11dd-9029-73462a196d5c"
	initrd=/boot/initrd.img
	append="failsafe"
other=/dev/sda1
	label="windows"
image=/boot/vmlinuz
	label="linux-64"
	root=/dev/sda8
	initrd=/boot/initrd.img
	append="resume=/dev/sda9 splash=silent mem=4096M"
	vga=794

содержимое директории boot на /dev/sda8:

boot.0800
boot.backup.sda
config
config-2.6.24.4-server-1mnb
gfxmenu
initrd-2.6.24.4-server-1mnb.img
initrd.img
initrd-server.img
kernel.h
kernel.h-2.6.24.4-server-1mnb
map
message
message-text
System.map
System.map-2.6.24.4-server-1mnb
vmlinuz
vmlinuz-2.6.24.4-server-1mnb
vmlinuz-server

initrd.img и initrd-server.img - ссылки на initrd-2.6.24.4-server-1mnb.img

vmlinuz и vmlinuz-server - ссылки на vmlinuz-2.6.24.4-server-1mnb

Пробовал самостоятельно указывать рут-раздел, образ и ядро, пробовал использовать соответствующую секцию из lilo.conf для 64-битной системы, результат один: выводит 6 раз сообщение

request_module: runaway loop modprobe binfmt-464c

и замерзает.

Share this post


Link to post
Share on other sites

У вас всегда грузится одно и то же ядро /boot/vmlinuz.

Параметр root= относится к параметрам ядра и указывает корневую файловую систему. К загрузчику он отношения не имеет.

Предлагаю способы решения на выбор. Сам не пробовал, да и lilo последний раз использовал давно.

1. Скопировать 64 разрядное ядро в /boot на разделе с 32 разрядным, затем прописать в image=/boot/имя-файла-ядра-64, сохранить конфиг и выполнить команду /sbin/lilo.

Тогда ядра будут грузиться с одного раздела, а корень монтироваться куда надо.

2. Подправить image= с указанием кроме файла еще и раздела. Синтаксис для lilo не знаю. И тоже не забыть выполнить команду lilo после сохранения файла.

Тогда ядра будут грузиться с разных разделов.

3. Поставить grub (но его тоже придется настраивать) как более функциональный загрузчик.

Share this post


Link to post
Share on other sites

Действительно, скопировал ядро и образ на 32-битный раздел? запустилась 64-битная система

Видимо по этой же причине после установки 64-битной при загрузке 32-х пыталось загрузиться ядро от 64

Спасибо за помощь!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...