LINUX.ORG.RU

Переделать gentoo в x64

 ,


0

2

Хочу переделать в 64битный, но совсем с нуля переустанавливать не хочу. Хочу так:

  • 1. Оставить home как есть, там все должно остаться что было.
  • 2. Желательно оставить все установленные проги, то есть чтобы просто стал их 64 битный вариант.
  • 3. Ничего не переразбивать и не переделывать файловые системы - в готовые разделы.
  • 4. Конфиги тоже есть, вместо пересоздания, лучше бы их отредактировать и все.

Дайте ссылку с описанием как это сделать и какие шаги исключить, а какие наоборот сделать, каких там нет.

Проще с нуля делать всё. Хомяк и конфиги забекапь на что-нибудь: флешки, диски, облака. Список у ПМ запроси и сохрани куда-нибудь. Переразбивать и не надо, смысл?

Хотя где-то были истории успеха. Но тут надо думать самому, всё равно каждый случай как у врача — уникальный.

a1batross ★★★★★ ()
Ответ на: комментарий от a1batross

Такого количества места чтобы забекапить у меня нету. И не то чтобы сконвертить надо, я нагуглил рецепты конверсии, но они как то не выглядят надежными, скорее именно переставить но НЕ С НУЛЯ. Ну и да, чтобы после этого 32битное тоже запускалось.

justin_case ()

Для того, чтобы сменить CHOST, тебе понадобится плясать НАМНОГО больше, чем при переустановке, и бубен тебе нужен >60lvl, но если ты задался таким вопросом, то я настоятельно рекомендую переустановить, затерев только рут, забэкапив конфиги. На переустановку ты потратишь меньше сил, времени и нервов.

r3lgar ★★★★★ ()
Ответ на: комментарий от justin_case

Я такие финты ушами не выворачивал. Но зная генту, проще уж с нуля, чтобы в горящем танке уж ничего не натворить. Хотя генту хотя бы можно сконвертировать, в отличие от остальных дистрибутивов.

Попробуй для начала просто x86_64 ядро кросскомпилятором собрать с эмуляцией для x86. Потом либы переместить, настроить пути для линкера. Настроить профиль. Из stage3 выдернуть необходимые либы, бинарники, сам компилятор, возможно часть БД портажа. Дальше сам, наверное уже можно будет базовую систему собирать.

a1batross ★★★★★ ()
Ответ на: комментарий от justin_case

Такого количества места чтобы забекапить у меня нету.

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

r3lgar ★★★★★ ()
Ответ на: комментарий от a1batross

Он с glibc6 затрахается, в итоге бросит, и переустановит.

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

Мне сгодится так. Все что не home я готов стереть. Не хочу только по новой конфиги пилить или переразбивать. Насколько я помню, в далеком 200мохнатом году когда я поставил 32битную из-за того что многое 64битное не поддерживалось, там надо было make.conf и кучу других чуть ли не от руки по памяти создавать. А щас у меня уже все есть, только изменить. Так же как в общем и конфиг ядра, не хотелось бы его ПЕРЕконфигурять, за исключением конечно 64битности, я уже заточил ядро под свое железо.

Напишите поподробней, что забекапить и откуда начинать переустановку.

justin_case ()
Ответ на: комментарий от justin_case

Бэкапить:

  • /etc/fstab;
  • /etc/portage;
  • /etc/(ВСЕ_отредактированные_конфиги);
  • /var/lib/portage;
  • Если стоит layman, то диру с его конфигами (я не помню, где она лежит);
  • Можешь оставить диры с оверлеями, сорцами (в т.ч. сорцами ядра), и деревом портажа, не придётся заново качать;

Я мог что-то пропустить.

Установку начинать с распаковки stage3, предварительно полностью удалив всё в рут партишне. После распаковки вернуть конфиги по местам, выбрать нужный профиль, затем emerge -NDuv world, разгрести проблемы (они будут при подсовывании старого мира, степень сложности зависит от упоротости стейджа, и насколько сильно ты поработал над юзами), потом emerge -c, чтобы удалить не нужное, затем ядро, магия над загрузчиком, ребут, и если у тебя не совсем кривые руки, то у тебя будет та же самая гента, только amd64. Могут быть некоторые разные проблемы в процессе, но если ты смог установить генту один раз, разрулишь их и в этот раз.

r3lgar ★★★★★ ()

Мне хотелось написать что это очень просто сделать, но по-моему ты ещё не готов к такому. Если никогда прежде не разворачивал систему из stage3 с переносом конфигурации вручную, лучше установи заново — сэкономишь много нервов. В любом случае тебе в данной ситуации придётся пересобирать весь мир, а конфиги скопируй потом вручную просто. Если у тебя /home не отдельным разделом, то ты дурак и лучше переразбей разделы, если отдельным, то можно оставить как есть. Установленные программы в /var/portage/world, конфиги в /etc и некоторые могут быть в /var, бездумно копировать не стоит — они могут быть несовместимы между 32 и 64 битными версиями, в особенности это касается /etc/portage.

anonymous ()
Ответ на: комментарий от r3lgar

Ты забыл упомянуть, что делать это значительно лучше загрузившись с livecd и вопросы касающиеся сборки нового ядра, относительно последнего на мой взгляд лучше взять список загруженных модулей и используемых опций для нового ядра загрузившись с целевого gentoo livecd.

anonymous ()
Ответ на: комментарий от r3lgar

Для того, чтобы сменить CHOST, тебе понадобится плясать НАМНОГО больше, чем при переустановке

Да ладно, легко делается:

https://wiki.gentoo.org/wiki/Changing_the_CHOST_variable

И после этого я бы еще разок @мир пересобрал бы. После перезагрузки ОС. На всякий случай.

ns_ramesses ()

Забекапить список установленных пакетов и конфиги, накатить систему из stage3, собрать нужные пакеты восстановить конфиги.

sudopacman ★★★★★ ()
Ответ на: комментарий от r3lgar

В какой момент нужно будет сунуть конфиги обратно? И что поменять в make.conf

# Please consult /etc/make.conf.example for a more detailed example.
CFLAGS="-O2 -march=native -pipe"
CXXFLAGS="-O2 -march=native -pipe"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="i686-pc-linux-gnu"
MAKEOPTS="-j5"
VIDEO_CARDS="nvidia"
USE_VIDEO_CARDS="video_cards_nvidia"
INPUT_DEVICES="evdev keyboard mouse"
GENTOO_MIRRORS="ftp://mirror.yandex.ru/gentoo-distfiles/ "
LINGUAS="ru en"

USE="-hal -ipv6 -bluetooth -gnome alsa kde lm_sensors nvidia symlink udev unicode xvmc X win32codecs"
CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 ssse3 sse4_1"
ACCEPT_LICENSE="*" 
FEATURES="-preserve-libs"

# Set PORTDIR for backward compatibility with various tools:
#   gentoo-bashcomp - bug #478444
#   euse - bug #474574
#   euses and ufed - bug #478318
PORTDIR="/usr/portage"

и в конфиге ядра, чтобы оно стало 64битным?

justin_case ()
Ответ на: комментарий от anonymous

Ты забыл упомянуть, что делать это значительно лучше загрузившись с livecd

Разве это не очевидно?

вопросы касающиеся сборки нового ядра

Старый конфиг скормил, прошёлся по нему олдконфигом, и всё нормально. Я так x86 тыкал лет пять назад, не думаю, что в обратную сторону оно не будет работать.

r3lgar ★★★★★ ()
Ответ на: комментарий от justin_case

В какой момент нужно будет сунуть конфиги обратно?

После распаковки стейджа.

И что поменять в make.conf

Свой ложишь, но предварительно в него списываешь переменную CHOST из того, что в стейдже. Там у тебя что-то типа

CHOST="x86_64-pc-linux-gnu"

и в конфиге ядра, чтобы оно стало 64битным?

Скидываешь свой конфиг ядра в диру с сорцем, делаешь

make oldconfig
arch/x86/Kconfig по дефолту выставляет CONFIG_64BIT, если не сказано обратного.

r3lgar ★★★★★ ()
Ответ на: комментарий от r3lgar

Из амд64 проще сделать x86, чем наоборот. В данном случае достаточно того что олдконфиг не сделает из 32-битного конфига 64-битный.

anonymous ()
Ответ на: комментарий от anonymous

Тогда врукопашную в конфиге CONFIG_64BIT заменить n на y (и больше ничего не трогать), и снова пройтись олдконфигом. Оно само перелопатит всё под это дело, так как архитектура — это первая инструкция для скриптоты ядра, от неё всё пляшет.

r3lgar ★★★★★ ()
Ответ на: комментарий от anonymous

Вот да, так что лучше я руками поставлю чтобы ядро стало 64 битным. Где это надо ставить? И еще, как мне сделать, чтобы проги потом запускались все, в том числе и 32 битные тоже?

justin_case ()
Ответ на: комментарий от justin_case

Выставь профиль с мультилибом, тебя наверное интересует default/linux/amd64/13.0/desktop, т.е.

 ~ # eselect profile set 3
. Ядро и конфиги у тебя в /usr/src/linux, тут как обычно. Если ты спрашиваешь как собрать и установить ядро (хотя вроде должен сам знать), то вот:
emerge sys-kernel/gentoo-sources
eselect kernel set 1
zcat /proc/config.gz > /usr/src/linux/.config
cd /usr/src/linux
make oldconfig
make -j5 menuconfig
make -j5 && make INSTALL_MOD_STRIP=1 -j5 modules_install
mount /boot
cp -v /usr/src/linux/arch/x86_64/boot/bzImage /boot/kernel-new
mount /boot
grub2-mkconfig -o /boot/grub/grub.cfg

Если ядро с livecd загружено, выполни make localmodconfigперед/вместо menuconfig.

anonymous ()

Ядро 64 собери
грузись в это ядрл, разверни stage3
Забинди рут в чрут и меняй chost и собирай мир
Делать все лучше в screen и ssh, для логирования всего вывода и быстрого поиска фиксов

mystery ★★ ()
Ответ на: комментарий от anonymous

Нет, я спрашиваю что включить в конфиге ядра чтобы оно стало 64 битным и что надо ставить или где в конфиге указать не только ядра, чтобы можно было запускать и 32 битные проги тоже. А профиль я юзаю кеды и лило, а не груб.

justin_case ()
Ответ на: комментарий от justin_case

CONFIG_IA32_EMULATION=y и наверное CONFIG_X86_VSYSCALL_EMULATION=y

anonymous ()

По мне, лучше с нуля. Основные конфиги бэкапишь и вперёд. Смена архитектуры довольно серьёзная вещь. Да и конфиги тоже надо смотреть перед этим в идеале. ИМХО

ElSuerte ()
Ответ на: комментарий от anonymous

Правильная ли последовательность действий?

  • скопировать /etc/ и /var/lib/portage
  • Создать конфиг ядра с 64 битами, и make.conf с новым CHOSTом
  • загрузиться с сидюка смонтировать /, отмонтировать home, чрутнуться
  • стереть /, скачать stage3, распаковать его
  • скопировать конфиги обратно в /etc
  • Собрать и поставить ядро с подсунутым ему конфигом
  • emerge world (вот тут не знаю, посчитает ли оно нужным пересобраться или подумает что все и так уже стоит)

Что добавить, что убрать?

justin_case ()
Ответ на: комментарий от justin_case

Ты читал не мои комментарии, моя рекоммендация была сначала пересобрать и обновить рабочую 64-битную систему из stage3 и только потом возвращать файлы конфигурации и пакеты из старой 32-битной.

Относительно списка, у тебя напутана очерёдность действий. И ядро где-то в самом конце должно быть, когда уже всё за исключением прикладного софта установлено (ты же в чруте под ядром с livecd работаешь, зачем тебе ядро прямо сейчас? тем более ДО того как ты распаковал stage3 и выполнил чрут? куда ты кстати собрался чрутится, если ты ещё даже не скачал стейдж?).

Да и к тому же моя рекомендация была чёткая, тарить весь /var (сейчас уже больше /var/lib на самом деле, всякие конфиги перенесли туда). Так что спрашивай того кто давал тебе эти советы.

Из /etc тебе в чруте понадобится только /etc/resolv.conf (насколько я помню), можешь копировать его с livecd, покуда в состоянии поднять в нём сеть или оттуда, куда ты перед загрузкой с livecd затарил /etc и скачал stage3 (у тебя же нет сети при загрузке с флешки в этом сценарии, откуда ты стейдж качать собрался?). В общем просто устанавливай пошагово по хендбуку начисто, следя чтобы хомяк ненароком не удалить и заодно сохранить все твои бесценные конфиги в безопасном месте.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.