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

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


software:linux_server:dfs:dfs

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
software:linux_server:dfs:dfs [2025/03/26 21:23] – [Installing the kernel] vladpolskiysoftware:linux_server:dfs:dfs [2025/03/26 21:55] (текущий) – [Комментарии, предложения, ошибки] vladpolskiy
Строка 73: Строка 73:
  
 [[https://packages.debian.org/jessie/libbz2-1.0|libbz2-1.0]] [[https://packages.debian.org/jessie/libbz2-1.0|libbz2-1.0]]
-[libc6](https://packages.debian.org/jessie/libc6) 
  
-[libgcc1](https://packages.debian.org/jessie/libgcc1)+[[https://packages.debian.org/jessie/libc6|libc6]]
  
-[liblzma5](https://packages.debian.org/jessie/liblzma5)+[[https://packages.debian.org/jessie/libgcc1|libgcc1]]
  
-[libpcre3](https://packages.debian.org/jessie/libpcre3)+[[https://packages.debian.org/jessie/liblzma5|liblzma5]]
  
-[libreadline6](https://packages.debian.org/jessie/libreadline6)+[[https://packages.debian.org/jessie/libpcre3|libpcre3]]
  
-[libselinux1](https://packages.debian.org/jessie/libselinux1)+[[https://packages.debian.org/jessie/libreadline6|libreadline6]]
  
-[libstdc++6](https://packages.debian.org/jessie/libstdc++6)+[[https://packages.debian.org/jessie/libselinux1|libselinux1]]
  
-[libtinfo5](https://packages.debian.org/jessie/libtinfo5)+[[https://packages.debian.org/jessie/libstdc++6|libstdc++6]]
  
-[libusb-0.1-4](https://packages.debian.org/jessie/libusb-0.1-4)+[[https://packages.debian.org/jessie/libtinfo5|libtinfo5]]
  
-[multiarch-support](https://packages.debian.org/jessie/multiarch-support)+[[https://packages.debian.org/jessie/libusb-0.1-4|libusb-0.1-4]]
  
-[readline-common](https://packages.debian.org/jessie/readline-common)+[[https://packages.debian.org/jessie/multiarch-support|multiarch-support]]
  
-[tar](https://packages.debian.org/jessie/tar)+[[https://packages.debian.org/jessie/readline-common|readline-common]]
  
-[zlib1g](https://packages.debian.org/jessie/zlib1g)+[[https://packages.debian.org/jessie/tar|tar]
 + 
 +[[https://packages.debian.org/jessie/zlib1g|zlib1g]]
  
  
Строка 104: Строка 105:
 Все следующие команды необходимо выполнять как пользователь ''root'', то есть стать rootпользователем вашей хост-системы: Все следующие команды необходимо выполнять как пользователь ''root'', то есть стать rootпользователем вашей хост-системы:
  
-''su''+<code bash> 
 +su 
 +</code>
  
 ==== Подготовка точек монтирования файловой системы виртуального ядра ==== ==== Подготовка точек монтирования файловой системы виртуального ядра ====
Строка 156: Строка 159:
 Нам нужно создать ''dpkg'' базу данных , которая представляет собой просто текстовый файл, расположенный в /var/lib/dpkg/status. ''dpkg'' хранит всю информацию о пакете в этом файле, включая версию пакета, архитектуру, зависимости и т. д. В настоящее время он еще не существует. Без этого файла dpkg не будет работать правильно, поэтому важно создать его, прежде чем двигаться дальше. Нам нужно создать ''dpkg'' базу данных , которая представляет собой просто текстовый файл, расположенный в /var/lib/dpkg/status. ''dpkg'' хранит всю информацию о пакете в этом файле, включая версию пакета, архитектуру, зависимости и т. д. В настоящее время он еще не существует. Без этого файла dpkg не будет работать правильно, поэтому важно создать его, прежде чем двигаться дальше.
  
-''touch /var/lib/dpkg/status''+<code bash> 
 +touch /var/lib/dpkg/status 
 +</code>
  
 === Создание временных ссылок, ссылающихся на /tools/bin/bash === === Создание временных ссылок, ссылающихся на /tools/bin/bash ===
Строка 175: Строка 180:
  
 Прежде чем мы сможем установить ''apt'' и использовать его для автоматической установки большей части остального системного программного обеспечения, нам сначала необходимо установить его непосредственные зависимости в нашей целевой системе. Прежде чем мы сможем установить ''apt'' и использовать его для автоматической установки большей части остального системного программного обеспечения, нам сначала необходимо установить его непосредственные зависимости в нашей целевой системе.
-{{ :software:linux_server:dfs:68747470733a2f2f63646e2e7261776769742e636f6d2f73636f747477696c6c69616d626561736c65792f64656269616e2d66726f6d2d736372617463682f6d61737465722f696d616765732f6170742d646570656e64656e636965732e737667.svg |}}+{{:software:linux_server:dfs:68747470733a2f2f63646e2e7261776769742e636f6d2f73636f747477696c6c69616d626561736c65792f64656269616e2d66726f6d2d736372617463682f6d61737465722f696d616765732f6170742d646570656e64656e636965732e737667.svg |}}
 == Рисунок 2. Дерево зависимостей apt, глубина в один уровень == == Рисунок 2. Дерево зависимостей apt, глубина в один уровень ==
  
Строка 193: Строка 198:
 Для начала нам необходимо установить ''gcc-4.9-base'': Для начала нам необходимо установить ''gcc-4.9-base'':
  
-''dpkg -i (location of gcc-4.9-base)''+<code bash> 
 +dpkg -i (location of gcc-4.9-base) 
 +</code>
  
 Затем нам нужно будет сначала установить один пакет частично: Затем нам нужно будет сначала установить один пакет частично:
  
-''dpkg - i (LOCATION_OF_libgcc1)''+<code bash> 
 +dpkg - i (LOCATION_OF_libgcc1) 
 +</code>
  
 ПРИМЕЧАНИЕ: Здесь вы получите сообщение об ошибке, содержащее ошибки, очень похожие на следующие: ПРИМЕЧАНИЕ: Здесь вы получите сообщение об ошибке, содержащее ошибки, очень похожие на следующие:
Строка 217: Строка 226:
 После установки пакета настройте базу данных, чтобы убедиться, что она полностью установлена: После установки пакета настройте базу данных, чтобы убедиться, что она полностью установлена:
  
-''sed -ir 's/not-installed/installed/' /var/lib/dpkg/status''+<code bash> 
 +sed -ir 's/not-installed/installed/' /var/lib/dpkg/status 
 +</code>
  
 Теперь установите два других пакета по порядку: Теперь установите два других пакета по порядку:
  
-''dpkg -i (location_of_multiarch)''+<code bash> 
 +dpkg -i (location_of_multiarch) 
 +</code>
  
-''dpkg -i (location_of_libc6)''+<code bash> 
 +dpkg -i (location_of_libc6) 
 +</code>
  
 И переустановите libgcc1, чтобы скрыть наш маленький некрасивый хак и завершить полную установку каждого пакета: И переустановите libgcc1, чтобы скрыть наш маленький некрасивый хак и завершить полную установку каждого пакета:
  
-''dpkg -i --reinstall (location of libgcc1)''+<code bash> 
 +dpkg -i --reinstall (location of libgcc1) 
 +</code>
  
 ====Установка остальных зависимостей apt==== ====Установка остальных зависимостей apt====
Строка 237: Строка 254:
 Независимо от фактического дерева зависимостей, есть быстрый и грязный способ установить остальную часть всего дерева зависимостей apt. Просто выполните следующую команду и повторяйте ее столько раз, сколько вам нужно, пока dpkg не перестанет жаловаться: Независимо от фактического дерева зависимостей, есть быстрый и грязный способ установить остальную часть всего дерева зависимостей apt. Просто выполните следующую команду и повторяйте ее столько раз, сколько вам нужно, пока dpkg не перестанет жаловаться:
  
-''dpkg -i *''+<code bash> 
 +dpkg -i * 
 +</code>
  
 Здесь происходит следующее: dpkg попытается установить все программные пакеты в каталоге. Это неизбежно приведет к сбою, но не волнуйтесь. Просто повторяйте команду, пока все не будет установлено. Здесь происходит следующее: dpkg попытается установить все программные пакеты в каталоге. Это неизбежно приведет к сбою, но не волнуйтесь. Просто повторяйте команду, пока все не будет установлено.
Строка 253: Строка 272:
 Чтобы быть абсолютно уверенным, вы можете выполнить следующую команду, которая подсчитывает, сколько пакетов dpkg считает установленными в своей базе данных: Чтобы быть абсолютно уверенным, вы можете выполнить следующую команду, которая подсчитывает, сколько пакетов dpkg считает установленными в своей базе данных:
  
-''echo $(($(dpkg -l | wc -l)-5))''+<code bash> 
 +echo $(($(dpkg -l | wc -l)-5)) 
 +</code>
  
 Если возвращается значение 23, то можно с уверенностью предположить, что все установлено так, как задумано. Если возвращается значение 23, то можно с уверенностью предположить, что все установлено так, как задумано.
Строка 339: Строка 360:
 Мы устанавливаем ''base-passwd'', чтобы предоставить стандартный минимальный стандарт ''/etc/passwd'' и ''/etc/group'' файлы, которые одинаковы во всех системах Debian. Это происходит путем запуска ''update-passwd'' двоичного файла при его установке. Мы устанавливаем ''base-passwd'', чтобы предоставить стандартный минимальный стандарт ''/etc/passwd'' и ''/etc/group'' файлы, которые одинаковы во всех системах Debian. Это происходит путем запуска ''update-passwd'' двоичного файла при его установке.
  
-''apt-get install base-passwd''+<code bash> 
 +apt-get install base-passwd 
 +</code>
  
 === Создание /etc/shadow и /etc/gshadow=== === Создание /etc/shadow и /etc/gshadow===
 Нам придется вручную создать ''/etc/shadow'' и ''/etc/gshadow'', так как ''passwd'' пакет не сможет настроиться, если не сможет найти эти файлы: Нам придется вручную создать ''/etc/shadow'' и ''/etc/gshadow'', так как ''passwd'' пакет не сможет настроиться, если не сможет найти эти файлы:
  
-''touch /etc/shadow /etc/gshadow''+<code bash> 
 +touch /etc/shadow /etc/gshadow 
 +</code>
  
 ===авторизоваться=== ===авторизоваться===
 Затем мы устанавливаем ''login'' пакет, который дает нам возможность устанавливать новые сеансы в системе с ''login'', повышение привилегий с ''su'', файлы подключаемого модуля аутентификации Linux (PAM) для обоих указанных двоичных файлов, поддельную оболочку ''/bin/nologin'' и ''/etc/login.defs'' файл, который необходим для создания группы. В этот пакет включено больше функций, но эти наиболее упоминаемые. Затем мы устанавливаем ''login'' пакет, который дает нам возможность устанавливать новые сеансы в системе с ''login'', повышение привилегий с ''su'', файлы подключаемого модуля аутентификации Linux (PAM) для обоих указанных двоичных файлов, поддельную оболочку ''/bin/nologin'' и ''/etc/login.defs'' файл, который необходим для создания группы. В этот пакет включено больше функций, но эти наиболее упоминаемые.
  
-''apt-get install login''+<code bash> 
 +apt-get install login 
 +</code>
    
 === пароль === === пароль ===
 Затем мы устанавливаем ''passwd'' пакет, который предоставляет львиную долю утилит и файлов конфигурации, используемых для создания и управления информацией об учетных записях пользователей и групп. Затем мы устанавливаем ''passwd'' пакет, который предоставляет львиную долю утилит и файлов конфигурации, используемых для создания и управления информацией об учетных записях пользователей и групп.
  
-''apt-get install passwd''+<code bash> 
 +apt-get install passwd 
 +</code>
  
 === adduser === === adduser ===
 Нам также необходимо установить ''adduser'' пакет, поскольку он предоставляет нам ''/etc/adduser.conf'' файл по умолчанию, который понадобится для правильной установки новых пользователей. Нам также необходимо установить ''adduser'' пакет, поскольку он предоставляет нам ''/etc/adduser.conf'' файл по умолчанию, который понадобится для правильной установки новых пользователей.
  
-''apt-get install adduser''+<code bash> 
 +apt-get install adduser 
 +</code>
  
 === Установка пароля root и записей shadowfile=== === Установка пароля root и записей shadowfile===
Строка 366: Строка 397:
 На этом этапе нам следует запустить ''passwd'', чтобы изменить пароль ''root''. На этом этапе нам следует запустить ''passwd'', чтобы изменить пароль ''root''.
  
-''passwd root''+<code bash> 
 +passwd root 
 +</code>
  
-Затем нам следует запустить pwconvпреобразование наших записей ''/etc/passwd'' в теневые записи в ''/etc/shadow'':+Затем нам следует запустить ''pwconv'' преобразование наших записей ''/etc/passwd'' в теневые записи в ''/etc/shadow'':
  
-''pwconv''+<code bash> 
 +pwconv 
 +</code>
  
 ==== Исправление терминала и добавление утилит чтения/редактирования==== ==== Исправление терминала и добавление утилит чтения/редактирования====
Строка 457: Строка 492:
 Большое количество утилит командной строки полагаются на библиотеку ncurses для предоставления текстового интерфейса для взаимодействия пользователя через терминал. К ним относятся простые утилиты, такие как ''less'' и ''nano''. Без этой библиотеки эти утилиты не будут отображаться должным образом. Мы должны установить полный набор библиотеки ncurses, чтобы предотвратить возникновение указанных ошибок: Большое количество утилит командной строки полагаются на библиотеку ncurses для предоставления текстового интерфейса для взаимодействия пользователя через терминал. К ним относятся простые утилиты, такие как ''less'' и ''nano''. Без этой библиотеки эти утилиты не будут отображаться должным образом. Мы должны установить полный набор библиотеки ncurses, чтобы предотвратить возникновение указанных ошибок:
  
-''apt-get install ncurses-base ncurses-bin ncurses-doc''+<code bash> 
 +apt-get install ncurses-base ncurses-bin ncurses-doc 
 +</code>
  
 === dialog=== === dialog===
 Dialog — это модуль ''perl'', который некоторые скрипты пытаются использовать для предоставления текстового интерфейса, используемого во время настройки или установки. Вы могли заметить, что некоторые пакеты предупреждали вас, что эта утилита отсутствует во время установки. Давайте исправим это: Dialog — это модуль ''perl'', который некоторые скрипты пытаются использовать для предоставления текстового интерфейса, используемого во время настройки или установки. Вы могли заметить, что некоторые пакеты предупреждали вас, что эта утилита отсутствует во время установки. Давайте исправим это:
  
-''apt-get install dialog''+<code bash> 
 +apt-get install dialog 
 +</code>
  
 === less, vim and nano=== === less, vim and nano===
 Теперь, когда мы установили большую часть библиотек и утилит, необходимых для терминальных утилит, давайте установим некоторые из самых основных и часто используемых из них: Теперь, когда мы установили большую часть библиотек и утилит, необходимых для терминальных утилит, давайте установим некоторые из самых основных и часто используемых из них:
  
-''apt-get install less vim nano''+<code bash> 
 +apt-get install less vim nano 
 +</code>
  
 ==== Создание стандартной иерархии файловой системы в системе Debian==== ==== Создание стандартной иерархии файловой системы в системе Debian====
Строка 480: Строка 521:
 В любой системе Linux обычно есть база данных, полная страниц руководства, доступ к которой осуществляется с помощью ''man'' команды. Большинство программ, которые мы уже установили, уже добавили свои файлы документации в нужное место. Все, что нам нужно сделать сейчас, это установить их ''man'', чтобы воспользоваться ими, и любыми другими, которые будут добавлены со временем. В любой системе Linux обычно есть база данных, полная страниц руководства, доступ к которой осуществляется с помощью ''man'' команды. Большинство программ, которые мы уже установили, уже добавили свои файлы документации в нужное место. Все, что нам нужно сделать сейчас, это установить их ''man'', чтобы воспользоваться ими, и любыми другими, которые будут добавлены со временем.
  
-''apt-get install man''+<code bash> 
 +apt-get install man 
 +</code>
  
 ==== Установка всех оставшихся необходимых пакетов ==== ==== Установка всех оставшихся необходимых пакетов ====
Строка 487: Строка 530:
 Чтобы соответствовать стандарту Debian, нам необходимо установить все это: Чтобы соответствовать стандарту Debian, нам необходимо установить все это:
  
-''apt-get install bash bsdutils coreutils dash diffutils e2fsprogs findutils grep gzip hostname libc-bin init mount perl-base sed sysvinit-utils tar util-linux''+<code bash> 
 +apt-get install bash bsdutils coreutils dash diffutils e2fsprogs findutils grep gzip hostname libc-bin init mount perl-base sed sysvinit-utils tar util-linux 
 +</code>
  
 Ниже приведено краткое описание каждого установленного пакета: Ниже приведено краткое описание каждого установленного пакета:
Строка 565: Строка 610:
 После настройки ядра скомпилируйте его. После настройки ядра скомпилируйте его.
  
-`make`+<code bash> 
 +make 
 +</code>
  
 Если вы создали модульное ядро, установите в него скомпилированные модули: Если вы создали модульное ядро, установите в него скомпилированные модули:
  
-`make modules_install`+<code bash> 
 +make modules_install 
 +</code>
  
 Скопируйте готовое ядро ​​в каталог /boot/ и убедитесь, что его имя начинается с 'vmlinuz'. Хорошей идеей будет добавить идентификационную строку к имени этого файла. Номер версии этого ядра подойдет. Мы также копируем файл System.map и конфигурацию для этого ядра (чтобы мы могли легко проверить, как было собрано это ядро). Мы также добавляем к этому нашу идентификационную строку, потому что со временем мы можем захотеть установить больше ядер. Скопируйте готовое ядро ​​в каталог /boot/ и убедитесь, что его имя начинается с 'vmlinuz'. Хорошей идеей будет добавить идентификационную строку к имени этого файла. Номер версии этого ядра подойдет. Мы также копируем файл System.map и конфигурацию для этого ядра (чтобы мы могли легко проверить, как было собрано это ядро). Мы также добавляем к этому нашу идентификационную строку, потому что со временем мы можем захотеть установить больше ядер.
Строка 579: Строка 628:
 </code> </code>
  
-==== Adding modular functionality to the system====+==== Добавление модульной функциональности в систему====
  
-Regardless of if you installed the standard Debian GNU/Linux kernelor compiled your ownyou are going to need to provide your system with the binaries needed to loadremove and manipulate kernel modules+Независимо от того, установили ли вы стандартное ядро ​​Debian GNU/Linux или скомпилировали свое собственноевам потребуется снабдить свою систему двоичными файламинеобходимыми для загрузкиудаления и управления модулями ядра
  
-`apt-get install kmod `+<code bash> 
 +apt-get install kmod 
 +</code>
  
-The only exception to this case would be if you compiled your own monolithic kernel with no modulesand do not intend on adding any beyond the ones you've already compiled into the kernel (which would generally be the case if you're doing embedded development).+Единственным исключением из этого случая может быть случайкогда вы скомпилировали свое собственное монолитное ядро ​​без модулей и не собираетесь добавлять ничего, кроме тех, которые вы уже скомпилировали в ядро ​​(что обычно и происходит, если вы занимаетесь разработкой встраиваемых систем).
  
-==== Making the system bootable====+==== Делаем систему загрузочной==== 
 +=== Переконфигурирование диска с предустановленным загрузчиком GRUB2=== 
 +Если эта система Debian Linux находится на разделе уже загрузочного диска, все, что нужно сделать, чтобы сделать эту систему загрузочной, — это заменить файл конфигурации загрузчика диска, включив соответствующий раздел этой системы в список загрузочных разделов.
  
 +Если вы используете GRUB2, то использование ''grub2-mkconfig'' утилиты делает это очень простым. Просто укажите ей местоположение уже существующего файла grub.cfg:
  
-#### Reconfiguring a drive with a pre-installed GRUB2 bootloader +<code bash> 
-If this Debian Linux system is on a partition of an already bootable drive, all one needs to do to make this system bootable is to replace the configuration file of the drive's bootloader to include this system's corresponding partition in its list of bootable partitions. +grub2-mkconfig -o /boot/(path to grub.cfg) 
- +</code>
-If using GRUB2, then using the `grub2-mkconfig` utility makes it very simple to do so. Merely point it to the location of the already existing grub.cfg file: +
- +
-`grub2-mkconfig -o /boot/(path to grub.cfg)`+
  
-#### Installing GRUB2 onto a drive with no pre-installed bootloader +=== Установка GRUB2 на диск без предустановленного загрузчика=== 
-In the event that the partition is on a drive that does not yet have its own bootloaderyou must install it and configure it yourselfTo install GRUB2, you must first exit your chroot.+В случаеесли раздел находится на диске, на котором еще нет собственного загрузчика, вы должны установить и настроить его самостоятельноЧтобы установить GRUB2, вы должны сначала выйти из chroot.
  
 <code bash> <code bash>
Строка 605: Строка 656:
 </code> </code>
  
-Since this GRUB2 install does not have a configuration file yetlet's create one via template:+Поскольку в этой установке GRUB2 пока нет файла конфигурациидавайте создадим его с помощью шаблона:
  
 <code bash> <code bash>
Строка 622: Строка 673:
 </code> </code>
  
-Thenedit this file to replace the (kernel-location) string in the file with the actual location of said kernel inside the partition.+Затем отредактируйте этот файлзаменив строку (kernel-location) в файле фактическим местоположением указанного ядра внутри раздела.
  
-Afterwards, use the previously aforementioned `chroot` command provided in the 'Entering our chroot' section to return to the chroot.+После этого используйте ранее упомянутую ''chroot'' команду, приведенную в разделе «Вход в chroot», чтобы вернуться в chroot.
  
-==== Creating /etc/fstab====+==== Создание /etc/fstab====
  
-Before you boot into your system, it is absolutely -vital- for you to create and configure your /etc/fstab file+Перед загрузкой системы вам абсолютно необходимо создать и настроить файл /etc/fstab.
  
-If you do -not- have an /etc/fstab file or fail to specify what partition is to be mounted as the root filesystemyou will be stuck within a temporaryread-only filesystem created by the kernellocated only in RAMIt uses this to switch into the supposed root filesystemYou do not want to be stuck here.+Если у вас нет файла /etc/fstab или вы не указаликакой раздел должен быть смонтирован как корневая файловая системавы застрянете во временной файловой системе только для чтениясозданной ядром, расположенной только в оперативной памятиОно использует ее для переключения на предполагаемую корневую файловую системуВы не хотите застрять здесь.
  
-So we create a base /etc/fstab:+Итак, создаем базу /etc/fstab:
  
 <code bash> <code bash>
Строка 648: Строка 699:
 </code> </code>
  
-Modify the first entry with the partition location of this system, and the type of filesystemThe second entry should contain the location of your swap partitionIf you don't intend on using oneremove the line. +Измените первую запись на расположение раздела этой системы и тип файловой системыВторая запись должна содержать расположение вашего раздела подкачкиЕсли вы не собираетесь его использоватьудалите строку.
- +
-==== The End====+
  
-CongratulationsYou've finished building your Debian systemand now have the complete range of functionality expected of a Debian system on top of your regular LFS install.+==== Конец==== 
 +ПоздравляемВы завершили сборку своей системы Debian и теперь имеете полный набор функцийожидаемых от системы Debian, в дополнение к обычной установке LFS.
  
-==== Commentssuggestionsbugs====+==== Комментариипредложенияошибки====
  
-If you found this guide usefulor have suggestions, the author would love to hear from youEmail him at +Если вы нашли это руководство полезным или у вас есть предложенияавтор будет рад услышать от васНапишите ему по адресу
  
-scottwilliambeasley AT gmail .com . Replace the AT with @, and remove spaces.+[[mail>]]scottwilliambeasley@gmail.com
  
-Alsocontributions or additions to this manual are very much welcomedYou may do so by using this repository:+Такжевклады или дополнения к этому руководству очень приветствуютсяВы можете сделать это, используя этот репозиторий:
  
-  * https://github.com/scottwilliambeasley/debian-from-scratch/+  * [[https://github.com/scottwilliambeasley/debian-from-scratch/|Ссылка на оригинальную статью]]
   * https://git.wwoss.ru/lfs/debian-from-scratch   * https://git.wwoss.ru/lfs/debian-from-scratch
 +==== Дополнения и Файлы ====
 +{{ :software:linux_server:dfs:debian-from-scratch-master.zip |}}
software/linux_server/dfs/dfs.1743013429.txt.gz · Последнее изменение: 2025/03/26 21:23 — vladpolskiy