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

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


igor:gentoo_installation

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
igor:gentoo_installation [2019/12/08 17:15]
igor [Установка базовой системы]
igor:gentoo_installation [2019/12/28 18:01] (текущий)
igor [Установка базовой системы]
Строка 474: Строка 474:
 И объясняю смысл. \\ И объясняю смысл. \\
 Если совсем коротко, то нужно передать "эмбриональной" системе некоторые органы управления, которые имеются у "материнской" системы. Когда у "эмбриона" вырастет собственное ядро, с этим проблем не будет, а пока приходится обеспечивать его жизнеспособность вот таким образом. \\ Если совсем коротко, то нужно передать "эмбриональной" системе некоторые органы управления, которые имеются у "материнской" системы. Когда у "эмбриона" вырастет собственное ядро, с этим проблем не будет, а пока приходится обеспечивать его жизнеспособность вот таким образом. \\
-Команда 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). \\ \\+Команда 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__'' - нас попросят ввести новый пароль администратора (рута, суперпользователя) - вводим. Попросят повторить - повторяем. \\ \\
igor/gentoo_installation.txt · Последнее изменение: 2019/12/28 18:01 — igor