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

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


igor:gentoo_installation

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
igor:gentoo_installation [2019/10/18 23:15] – [Выбор профиля установки системы] igorigor:gentoo_installation [2019/12/28 21:01] (текущий) – [Установка базовой системы] 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 здесь - самая трудная для понимания. Гуглить по слову source бесперспективно, и мануала по ней тоже нет, потому что это встроенная команда нашей диалоговой оболочки. В принципе, мы могли бы сейчас сказать, что это совершенно отдельная тема, "просто так надо", но я все же скажу пару слов. Etc/profile представляет собой скрипт на языке баш, только он не имеет шебанга и поэтому не может выполняться как самостоятельная программа. По команде source баш - __тот самый__ баш, который сейчас с нами работает в качестве диалоговой оболочки, - выполняет этот скрипт, формирующий переменные окружения для баша, и по окончании выполнения скрипта эти переменные остаются в нашем распоряжении (чего не было бы, если бы мы запустили /etc/profile как самостоятельный скрипт). Если командой env просмотреть переменные окружения баша до и после команды source /etc/profile, разница будет видна невооруженным глазом. Ну и последняя команда меняет вид системного приглашения (переменная PS1): теперь оно каждый раз будет нам напоминать, что мы работаем в chroot-режиме. Кстати чтобы вернуться в среду с полной файловой системой, нам нужно просто завершить работу той программы, для которой делали chroot. То есть просто дать команду exit - и мы снова увидим системное приглашение без (chroot). \\ \\
 ==== Установка пароля администратора ==== ==== Установка пароля администратора ====
 Совсем простая операция. Даем команду ''__passwd__'' - нас попросят ввести новый пароль администратора (рута, суперпользователя) - вводим. Попросят повторить - повторяем. \\ \\ Совсем простая операция. Даем команду ''__passwd__'' - нас попросят ввести новый пароль администратора (рута, суперпользователя) - вводим. Попросят повторить - повторяем. \\ \\
Строка 481: Строка 483:
 ''(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х/amd64/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