Инструменты пользователя

Инструменты сайта


igor:gentoo_installation

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
Последняя версияСледующая версия справа и слева
igor:gentoo_installation [2019/10/18 23:13] – [Выбор профиля установки системы] igorigor:gentoo_installation [2019/12/08 20:15] – [Установка базовой системы] igor
Строка 467: Строка 467:
 LiveCD # __mount --rbind /sys /mnt/gentoo/sys__ \\ LiveCD # __mount --rbind /sys /mnt/gentoo/sys__ \\
 LiveCD # __mount --rbind /dev /mnt/gentoo/dev__ \\ LiveCD # __mount --rbind /dev /mnt/gentoo/dev__ \\
 +LiveCD # __mount --rbind /dev/pts /mnt/gentoo/dev/pts__ \\
 LiveCD # __chroot /mnt/gentoo /bin/bash__ \\ LiveCD # __chroot /mnt/gentoo /bin/bash__ \\
 +LiveCD # __env-update__ \\
 LiveCD # __source /etc/profile__ \\ LiveCD # __source /etc/profile__ \\
 LiveCD # __export PS1="(chroot) $PS1"__'' \\ \\ LiveCD # __export PS1="(chroot) $PS1"__'' \\ \\
 И объясняю смысл. \\ И объясняю смысл. \\
 Если совсем коротко, то нужно передать "эмбриональной" системе некоторые органы управления, которые имеются у "материнской" системы. Когда у "эмбриона" вырастет собственное ядро, с этим проблем не будет, а пока приходится обеспечивать его жизнеспособность вот таким образом. \\ Если совсем коротко, то нужно передать "эмбриональной" системе некоторые органы управления, которые имеются у "материнской" системы. Когда у "эмбриона" вырастет собственное ядро, с этим проблем не будет, а пока приходится обеспечивать его жизнеспособность вот таким образом. \\
-Команда cp с ключом -L копирует __настоящее содержимое__ файла (/etc/resolv.conf - символическая ссылка). Этот файл содержит IP-адреса DNS-серверов, без которых нам не удастся выходить в интернет. Сейчас они находятся в /etc/resolv.conf ("материнская" файловая система), но после выполнения chroot этот файл не будет виден, а процедура разрешения URL-адресов в IP-адреса будет пытаться искать адреса DNS-серверов в одноименном файле "эмбриональной" файловой системы... а там ничего нет... значит надо заранее скопировать. Аналогичная ситуация с proc, sys и dev. Напомню, что proc, sys и dev - это псевдофайловые системы, которые не хранятся ни на каких устройствах. Но, как и настоящие файловые системы, они должны быть надлежащим образом смонтированы. Команда mount с ключом --rbind позволяет примонтировать файловую систему (рекурсивно, те. вместе со всем, что смонтировано внутри нее) во вторую точку монтирования, не теряя первую. То есть файловые системы sys и dev теперь будут доступны как "материнской" ОС, так и "эмбриону". Команда chroot позволяет запустить некоторую программу (в нашем случае диалоговую оболочку /bin/bash) так, чтобы эта программа видела не всю файловую систему, которая имеется на компьютере, а некоторую ее ветвь - в данном случае наш винчестер со всеми файлами и каталогами, которые мы на нем создали. За командой source /etc/profile стоит скрипт, формирующий переменные окружения для запускаемого баша. Если командой env просмотреть переменные окружения баша до и после команды source /etc/profile, разница будет видна невооруженным глазом. Ну и последняя команда меняет вид системного приглашения (переменная PS1): теперь оно каждый раз будет нам напоминать, что мы работаем в chroot-режиме. Кстати чтобы вернуться в среду с полной файловой системой, нам нужно просто завершить работу той программы, для которой делали chroot. То есть просто дать команду exit - и мы снова увидим системное приглашение без (chroot). \\ \\+Команда cp с ключом -L копирует __настоящее содержимое__ файла (/etc/resolv.conf - символическая ссылка). Этот файл содержит IP-адреса DNS-серверов, без которых нам не удастся выходить в интернет. Сейчас они находятся в /etc/resolv.conf ("материнская" файловая система), но после выполнения chroot этот файл не будет виден, а процедура разрешения URL-адресов в IP-адреса будет пытаться искать адреса DNS-серверов в одноименном файле "эмбриональной" файловой системы... а там ничего нет... значит надо заранее скопировать. Аналогичная ситуация с proc, sys и dev. Напомню, что proc, sys и dev - это псевдофайловые системы, которые не хранятся ни на каких устройствах. Как и настоящие файловые системы, они должны быть надлежащим образом смонтированы, но поскольку они все-таки ненастоящие (или по-какой-то иной причине?), примонтировать их во вторую точку, не теряя первуюобычным путем не получится - приходится указывать  ключ --rbind (в некоторых руководствах пишут -o bind - в данной ситуации это равнозначно). То есть файловые системы sys и dev теперь будут доступны как "материнской" ОС, так и "эмбриону". Команда chroot позволяет запустить некоторую программу (в нашем случае диалоговую оболочку /bin/bash) так, чтобы эта программа видела не всю файловую систему, которая имеется на компьютере, а некоторую ее ветвь - в данном случае наш винчестер со всеми файлами и каталогами, которые мы на нем создали. Однако, когда мы запускаем баш командой chroot, он не читает файлы с переменными окружения, которые находятся в каталоге /etc/env.d - значит придется это сделать принудительно командой env-update. За командой source /etc/profile также стоит скрипт, формирующий переменные окружения для запускаемого баша. Если командой env просмотреть переменные окружения баша до и после команды source /etc/profile, разница будет видна невооруженным глазом. Ну и последняя команда меняет вид системного приглашения (переменная PS1): теперь оно каждый раз будет нам напоминать, что мы работаем в chroot-режиме. Кстати чтобы вернуться в среду с полной файловой системой, нам нужно просто завершить работу той программы, для которой делали chroot. То есть просто дать команду exit - и мы снова увидим системное приглашение без (chroot). \\ \\
 ==== Установка пароля администратора ==== ==== Установка пароля администратора ====
 Совсем простая операция. Даем команду ''__passwd__'' - нас попросят ввести новый пароль администратора (рута, суперпользователя) - вводим. Попросят повторить - повторяем. \\ \\ Совсем простая операция. Даем команду ''__passwd__'' - нас попросят ввести новый пароль администратора (рута, суперпользователя) - вводим. Попросят повторить - повторяем. \\ \\
Строка 480: Строка 482:
 **Философия** профилей: имея ОДИН набор "сырых материалов" для сборки системы и НЕСКОЛЬКО профилей, получаем соответствующее множество типовых вариантов системы, каждый из которых ориентирован на свою сферу применения, например для сервера или для десктопного компьютера, или для рабочего места разработчика программ... Их наличие (да к тому  же возможность создания новых) делает Генту __метадистрибутивом__, т. е. средством создания новых дистрибутивов. **Идеология** состоит в том, что каждый профиль представляет собой не что иное как рационально подобранный комплект Use-флагов. **Технически** это реализовано как дерево каталогов, корень которого находится в /var/db/repos/gentoo/profiles - это //базовый// профиль, а все другие основываются на нем или друг на друге. "Полазать" по этому дереву может быть весьма поучительно, но лучше оставить это на потом, чтобы сейчас не отклоняться от "дорожной карты". Профиль, выбранный для установки системы в данный момент, определяется файлом /etc/portage/make.profile. Этот файл представляет собой символическую ссылку, которая ведет на одну из ветвей дерева профилей. Мы должны были получить его в составе stage3-архива. Проверим? \\ \\ **Философия** профилей: имея ОДИН набор "сырых материалов" для сборки системы и НЕСКОЛЬКО профилей, получаем соответствующее множество типовых вариантов системы, каждый из которых ориентирован на свою сферу применения, например для сервера или для десктопного компьютера, или для рабочего места разработчика программ... Их наличие (да к тому  же возможность создания новых) делает Генту __метадистрибутивом__, т. е. средством создания новых дистрибутивов. **Идеология** состоит в том, что каждый профиль представляет собой не что иное как рационально подобранный комплект Use-флагов. **Технически** это реализовано как дерево каталогов, корень которого находится в /var/db/repos/gentoo/profiles - это //базовый// профиль, а все другие основываются на нем или друг на друге. "Полазать" по этому дереву может быть весьма поучительно, но лучше оставить это на потом, чтобы сейчас не отклоняться от "дорожной карты". Профиль, выбранный для установки системы в данный момент, определяется файлом /etc/portage/make.profile. Этот файл представляет собой символическую ссылку, которая ведет на одну из ветвей дерева профилей. Мы должны были получить его в составе stage3-архива. Проверим? \\ \\
 ''(chroot) LiveCD # __ls -l /etc/portage/make.profile__ \\ ''(chroot) LiveCD # __ls -l /etc/portage/make.profile__ \\
-lrwxrwxrwx 1 root root 65 окт 12 23:53 make.profile -> ../../var/db/repos/gentoo/profiles/default/linuх/x86/17.0'' \\ \\+lrwxrwxrwx 1 root root 65 окт 12 23:53 make.profile -> ../../var/db/repos/gentoo/profiles/default/linuх/amd64/17.0'' \\ \\ 
 +Последняя цифра у вас, вероятно, будет больше. \\
 Как видим, символическая ссылка имеется в наличии, и сейчас она указывает на базовый профиль, который нам рекомендован по умолчанию. Навести символическую ссылку на другой профиль можно, конечно, и вручную, но в этом нет необходимости: Гента опять-таки не была бы Гентой, если бы ее разработчики не придумали для нас еще одну приспособу - утилиту eselect. Увидеть, какой профиль стоит в данный момент, можно командой: \\ \\ Как видим, символическая ссылка имеется в наличии, и сейчас она указывает на базовый профиль, который нам рекомендован по умолчанию. Навести символическую ссылку на другой профиль можно, конечно, и вручную, но в этом нет необходимости: Гента опять-таки не была бы Гентой, если бы ее разработчики не придумали для нас еще одну приспособу - утилиту eselect. Увидеть, какой профиль стоит в данный момент, можно командой: \\ \\
 ''(chroot) LiveCD # __eselect profile show__ \\ ''(chroot) LiveCD # __eselect profile show__ \\
 Current /etc/portage/make.profile symlink: \\ Current /etc/portage/make.profile symlink: \\
 default/linux/amd64/17.0'' \\ \\ default/linux/amd64/17.0'' \\ \\
-Последняя цифра у вас, вероятно, будет больше. Вывод этой команды очевидным образом "перекликается" с выводом предыдущей. \\ +Вывод этой команды очевидным образом "перекликается" с выводом предыдущей. \\ 
 Следующая команда покажет все профили, какие доступны: \\ \\ Следующая команда покажет все профили, какие доступны: \\ \\
 ''(chroot) LiveCD # __eselect profile list__ \\ ''(chroot) LiveCD # __eselect profile list__ \\
igor/gentoo_installation.txt · Последнее изменение: 2019/12/28 21:01 — igor