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

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

  • Показать страницу
  • История страницы
  • Ссылки сюда
  • Оставить на чай
  • Экспорт в PDF
  • Наверх

  • software:linux_server:lfs-example:chapter02

    Различия

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

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

    Предыдущая версия справа и слеваПредыдущая версия
    Следующая версия
    Предыдущая версия
    software:linux_server:lfs-example:chapter02 [2024/07/18 17:22] – [2. Подготовка хост-системы] vladpolskiysoftware:linux_server:lfs-example:chapter02 [2024/07/19 01:35] (текущий) – [2.7. Монтирование нового раздела] vladpolskiy
    Строка 59: Строка 59:
     {{ :software:linux_server:lfs-example:ubuntu-22.04-desktop-amd64.iso |}} {{ :software:linux_server:lfs-example:ubuntu-22.04-desktop-amd64.iso |}}
     \\   \\  
    -Чтобы узнать, есть ли в вашей хост-системе все необходимые пакеты и возможность компилировать программы, выполните следующий скрипт:+Для начала получим привилегии суперпользователя  
     +<code> 
     +sudo su - 
     +</code> 
     +<details> 
     +<summary>«См.Подробнее **sudo su -** »</summary> 
     +Команда **su** позволяет изменить текущего пользователя терминала на другого. Команда **sudo** выполняет команду от имени root пользователя. Теперь разберем сам вопрос. 
     + 
     +**sudo su** - выполняет команду su от имени суперпользователя. Таким образом, сначала используется sudo чтобы получить права суперпользователя, а затем пользователь меняется на root с помощью su. При этом вы останетесь в той же директории потому, что выполняется ваш .bashrc. А также .profile пользователя root поэтому вы окажетесь в окружении root. 
     +</details> 
     +{{:software:linux_server:lfs-example:lfs_example._1.png?|}} 
     + 
     +Чтобы узнать, есть ли в вашей хост-системе все необходимые пакеты и возможность компилировать программы, создадим и выполним следующий скрипт: 
     +<details> 
     +<summary>«Подробности»</summary> 
     +cat > version-check.sh << "EOF" 
     +  * **cat > << "EOF"** команда создает скрипт **version-check.sh** 
     +**#!/bin/bash 
     +# A script to list version numbers of critical development .... 
     +.... else 
     +   echo "OK: nproc reports $(nproc) logical cores are available" 
     +fi 
     +EOF** 
     +  * Непосредственно код скрипта **version-check.sh**
      
     +**bash version-check.sh** 
     +  * Команда выполняет скрипт  **version-check.sh**
     +</details>
     <code> <code>
     cat > version-check.sh << "EOF" cat > version-check.sh << "EOF"
    Строка 191: Строка 217:
     Обновите пакеты с помощью приведенной ниже команды, затем перезагрузитесь: Обновите пакеты с помощью приведенной ниже команды, затем перезагрузитесь:
     <code> <code>
    -sudo apt update; sudo apt upgrade -y; sudo reboot+apt update; apt upgrade -y; reboot
     </code> </code>
    -{{:software:linux_server:lfs-example:lfs_example_4.png?|}}+{{:software:linux_server:lfs-example:lfs_example._2.png?|}}
     \\   \\  
     При перезагрузке система вас отключит от сессии. Подсключитесь снова после перезагрузки по ssh. Затем удалите все ненужные пакеты, используя: При перезагрузке система вас отключит от сессии. Подсключитесь снова после перезагрузки по ssh. Затем удалите все ненужные пакеты, используя:
     <code> <code>
    -sudo apt --purge autoremove+apt --purge autoremove
     </code> </code>
     \\   \\  
    Строка 205: Строка 231:
     Устанавливаем Binutils (binutils-source является колекцией средств разработки программ, содержащих компоновщик, ассемблер и другие средства для работы с объектными файлами) с помощью команды Устанавливаем Binutils (binutils-source является колекцией средств разработки программ, содержащих компоновщик, ассемблер и другие средства для работы с объектными файлами) с помощью команды
     <code> <code>
    -sudo apt-get -y install binutils+apt-get -y install binutils
     </code> </code>
     В процесе инсталяции будут проверенны и установленны зависимости зависимости установки: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed и Texinfo В процесе инсталяции будут проверенны и установленны зависимости зависимости установки: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed и Texinfo
    Строка 218: Строка 244:
     Видим установленный Binutils версии 2.38, а так же установившиеся пакеты: Make, Texinfo. Если это не так, используем следующую команду для установки  Видим установленный Binutils версии 2.38, а так же установившиеся пакеты: Make, Texinfo. Если это не так, используем следующую команду для установки 
     <code> <code>
    -sudo apt-get -y install make texinfo+apt-get -y install make texinfo
     </code> </code>
     {{:software:linux_server:lfs-example:lfs_example_1_1.png?|}} {{:software:linux_server:lfs-example:lfs_example_1_1.png?|}}
     Для установки остальных пакетов воспользуемся командой Для установки остальных пакетов воспользуемся командой
     <code> <code>
    -sudo apt-get -y install bison gawk gcc g++ m4+apt-get -y install bison gawk gcc g++ m4
     </code> </code>
     {{:software:linux_server:lfs-example:lfs_example_9.png?|}} {{:software:linux_server:lfs-example:lfs_example_9.png?|}}
    Строка 230: Строка 256:
     Обновим пакеты с помощью приведенной ниже команды: Обновим пакеты с помощью приведенной ниже команды:
     <code> <code>
    -sudo apt update; sudo apt upgrade -y+apt update; apt upgrade -y
     </code> </code>
     Снова воспользуемся скриптом для проверки нашей хост-системы Снова воспользуемся скриптом для проверки нашей хост-системы
    Строка 245: Строка 271:
     В Ubuntu /bin/sh это dash, который разработан для быстрой работы, использования небольшого объема памяти и не поддерживает намного больше, чем минимум, ожидаемый от /bin/sh В Ubuntu /bin/sh это dash, который разработан для быстрой работы, использования небольшого объема памяти и не поддерживает намного больше, чем минимум, ожидаемый от /bin/sh
     <code> <code>
    -sudo dpkg-reconfigure dash+dpkg-reconfigure dash
     </code> </code>
     {{:software:linux_server:lfs-example:lfs_example_12.png?|}} {{:software:linux_server:lfs-example:lfs_example_12.png?|}}
    Строка 291: Строка 317:
     Минимальная система требует раздел размером около 10 гигабайт (ГБ). Этого достаточно для хранения всех архивов с исходным кодом и компиляции пакетов. Однако, если система LFS предназначена для использования в качестве основной системы Linux, вероятно, будет установлено дополнительное программное обеспечение, для которого потребуется дополнительное пространство. Раздел размером 30 ГБ является разумным размером для расширения. Сама система LFS не займет столько места. Большая часть этого требования заключается в предоставлении достаточного временного хранилища, а также в добавлении дополнительных возможностей после сборки LFS. Кроме того, для компиляции пакетов может потребоваться много места на диске, которое будет освобождено после установки пакета. Минимальная система требует раздел размером около 10 гигабайт (ГБ). Этого достаточно для хранения всех архивов с исходным кодом и компиляции пакетов. Однако, если система LFS предназначена для использования в качестве основной системы Linux, вероятно, будет установлено дополнительное программное обеспечение, для которого потребуется дополнительное пространство. Раздел размером 30 ГБ является разумным размером для расширения. Сама система LFS не займет столько места. Большая часть этого требования заключается в предоставлении достаточного временного хранилища, а также в добавлении дополнительных возможностей после сборки LFS. Кроме того, для компиляции пакетов может потребоваться много места на диске, которое будет освобождено после установки пакета.
      
    -При [[software:microsoft:hyper_v#Создание виртуальной машины Hyper-V|создании виртуальной машины]] в мастере создания виртуальных машин,  мы создали виртуальный диск размером 200Gb а при   +При [[software:microsoft:hyper_v#Создание виртуальной машины Hyper-V|создании виртуальной машины]] в мастере создания виртуальных машин,  мы создали виртуальный диск размером **200Gb** а при   
    -[[software:microsoft:hyper_v#Установка ubuntu-22.04-desktop-amd64 виртуальную машину Hyper-V|установке Ubuntu на виртуальную машину Hyper-V]] мы выделили размер диска sda1 в 75Gb (для установки программ из книги BLFS в будущем), при этом размер диска sda в 139,7Gb оставили неразмеченным.+[[software:microsoft:hyper_v#Установка ubuntu-22.04-desktop-amd64 виртуальную машину Hyper-V|установке Ubuntu на виртуальную машину Hyper-V]] мы выделили размер диска sda1 в **75Gb** (для установки программ из книги BLFS в будущем), при этом размер диска sda в **132,6Gb** оставили неразмеченным.
      
     На неразмеченном пространстве нашего диска sda выделим раздел для построения нашей будущей системы LFS, для этого выведим список устройств хранения и разделов командой: На неразмеченном пространстве нашего диска sda выделим раздел для построения нашей будущей системы LFS, для этого выведим список устройств хранения и разделов командой:
     <code> <code>
    -sudo lsblk+lsblk
     </code> </code>
     {{:software:linux_server:lfs-example:lfs_example_16.png?|}} {{:software:linux_server:lfs-example:lfs_example_16.png?|}}
    -Мы видим размер нашего диска sda в 200G и раздела sda1 в 69,8G+Мы видим общий размер нашего диска **sda** в **200G** и раздела **sda1** в **69,8G**, а так же разделы **/boot, SWAP** и **/boot/efi**, созданные нами [[software:microsoft:hyper_v#Установка ubuntu-22.04-desktop-amd64 виртуальную машину Hyper-V|при установке Ubuntu]]. 
     <code> <code>
     sda      8:0    0   200G  0 disk sda      8:0    0   200G  0 disk
    -─sda1   8:   0  69,8G  0 part /+─sda1   8:   0  69,8G  0 part / 
     +├─sda2   8:   0   1,9G  0 part /boot 
     +├─sda3   8:   0   3,8G  0 part [SWAP] 
     +└─sda4   8:   0   977M  0 part /boot/efi
     </code> </code>
    -Запустите parted как показано ниже, где /dev/sda — устройство, на котором вы хотите создать раздел:+Нами была оставлена неразмеченная область **free space** размером **132.6Gb** 
     +{{:software:linux_server:lfs-example:lfs_example_16_1.png?|}} 
     +Пришло время создать раздел на устройстве **/dev/sda** в этой области. Воспользуемся утилитой cfdisk 
     <code> <code>
    -sudo parted /dev/sda+cfdisk /dev/sda
     </code> </code>
     +{{:software:linux_server:lfs-example:lfs_example_16_2.png?|}}
     +воспользуемся интерактивным интерфейсом программы cfdisk
     {{:software:linux_server:lfs-example:lfs_example_17.png?|}} {{:software:linux_server:lfs-example:lfs_example_17.png?|}}
    -Проконтролируем текущую таблицу разделов: +Стрелочкой вниз перейдем на неразмеченную область **free space**, стрелкой лево/право выбирем Кнопку "New" для создания нового раздела
    -<code> +
    -print +
    -</code>+
     {{:software:linux_server:lfs-example:lfs_example_18.png?|}} {{:software:linux_server:lfs-example:lfs_example_18.png?|}}
    -Создадим новый раздел, используйте команду вида "**mkpart part-type fs-type start end**", где+Укажем размер создаваемого разделаоставив небольшой **free space** про запас. Подтвердим клавишей **Enter**  
    -  * **part-type** — Данный аргумент принимает значение: primary (первичный), extended (расширенный) или logical (логический).(все разделы в GPT первичные+{{:software:linux_server:lfs-example:lfs_example_18_1.png?|}} 
    -  * **fs-type** — Данный аргумент принимает значение: ext2, ext3, ext4 и другие чтобы задать тип ОС. +стрелкой вправо выбирем Кнопку "Write" для создания нового раздела. Подтвердим клавишей **Enter** 
    -  * **start**- Данный аргумент принимает значение которое задает начало позиции (создаваемого раздела) относительно 0-го байта. Можно задавать в байтах, но лучше всего ( так проще) указывать — 100M/1G. +{{:software:linux_server:lfs-example:lfs_example_18_2.png?|}} 
    -  * **end** -Данный аргумент принимает значение которое задает конец позиции оздаваемого раздела) относительно 0-го байта. Можно задавать в байтах, но лучше всего ( так проще) указывать — 100M/1G, 100%.+На вопрос программы "Are you sure you want to write the partition table to disk?" отвечаем "yes" 
     +{{:software:linux_server:lfs-example:lfs_example_18_3.png?|}} 
     +переходим на кнопку "Quit" и выходим из программы 
     +{{:software:linux_server:lfs-example:lfs_example_18_4.png?|}} 
     +Проконтролируем новую таблицу разделов:
     <code> <code>
    -mkpart logical 80GB 180GB+lsblk
     </code> </code>
     {{:software:linux_server:lfs-example:lfs_example_19.png?|}} {{:software:linux_server:lfs-example:lfs_example_19.png?|}}
    -Проконтролируем новую таблицу разделов:+Запомним имена разделов: **sda3** размером  3,8G [**SWAP**] и новый **sda5** размером **100Gb**. В этой книге новый **sda5** будет называться разделом **LFS**. Эти имена понадобятся позже для файла /etc/fstab.
     <code> <code>
    -p+├─sda3   8:   0   3,8G  0 part [SWAP] 
     +├─sda4   8:   0   977M  0 part /boot/efi 
     +└─sda5   8:   0   100G  0 part
     </code> </code>
    -{{:software:linux_server:lfs-example:lfs_example_20.png?|}} 
    -Для выхода из parted 
    -<code> 
    -quit  
    -</code> 
    -{{:software:linux_server:lfs-example:lfs_example_21.png?|}} 
    -Система выдает нам придупреждение:Information: You may need to update /etc/fstab.(Информация: возможно, вам потребуется обновить /etc/fstab.) 
    - 
      
     Поскольку для компиляции не всегда достаточно оперативной памяти (ОЗУ), рекомендуется использовать небольшой раздел диска в качестве раздела подкачки. Он используется ядром для хранения редко используемых данных и оставляет больше памяти для активных процессов. Раздел подкачки для системы LFS может совпадать с разделом, используемым хост-системой, и в этом случае нет необходимости создавать еще один. Поскольку для компиляции не всегда достаточно оперативной памяти (ОЗУ), рекомендуется использовать небольшой раздел диска в качестве раздела подкачки. Он используется ядром для хранения редко используемых данных и оставляет больше памяти для активных процессов. Раздел подкачки для системы LFS может совпадать с разделом, используемым хост-системой, и в этом случае нет необходимости создавать еще один.
    Строка 344: Строка 372:
     Для опытных пользователей возможны и другие схемы разбиения. Система LFS может располагаться на программном RAID-массиве или логическом томе LVM. Однако для некоторых опций требуется initramfs, что является сложной темой. Эти методы разбиения не рекомендуются начинающим пользователям LFS. Для опытных пользователей возможны и другие схемы разбиения. Система LFS может располагаться на программном RAID-массиве или логическом томе LVM. Однако для некоторых опций требуется initramfs, что является сложной темой. Эти методы разбиения не рекомендуются начинающим пользователям LFS.
     </WRAP> </WRAP>
    - + 
    -Запомните обозначение созданного раздела (например, sda5). В этой книге он будет называться разделом LFS. Также запомните обозначение раздела подкачки. Эти имена понадобятся позже для файла /etc/fstab.+
      
     ====2.4.1. Другие вопросы по созданию разделов==== ====2.4.1. Другие вопросы по созданию разделов====
    Строка 390: Строка 417:
     Другие файловые системы, включая FAT32, NTFS, ReiserFS, JFS и XFS, полезны для конкретных задач. Более подробную информацию об этих файловых системах и многих других можно найти по адресу https://en.wikipedia.org/wiki/Comparison_of_file_systems. Другие файловые системы, включая FAT32, NTFS, ReiserFS, JFS и XFS, полезны для конкретных задач. Более подробную информацию об этих файловых системах и многих других можно найти по адресу https://en.wikipedia.org/wiki/Comparison_of_file_systems.
      
    -Выполните следующую команду с sudo, чтобы вывести список устройств хранения и разделов:+LFS предполагает, что корневая файловая система (/) имеет тип ext4. Чтобы создать файловую систему ext4 на разделе LFS (недавно созданный **sda5**), выполните следующую команду:
     <code> <code>
    -sudo parted -l+mkfs -v -t ext4 /dev/sda5
     </code> </code>
    -{{:software:linux_server:lfs-example:lfs_example_22.png?|}} +Замените sda5 именем вашего раздела LFS, если он отличается
    -LFS предполагает, что корневая файловая система (/) имеет тип ext4. Чтобы создать файловую систему ext4 на разделе LFS, выполните следующую команду: +
    -<code> +
    -sudo mkfs -v -t ext4 /dev/sda2 +
    -</code> +
    -Замените sda2 именем вашего раздела LFS, если он отличается+
     {{:software:linux_server:lfs-example:lfs_example_23.png?|}} {{:software:linux_server:lfs-example:lfs_example_23.png?|}}
     Проверяем созданную нами файловую систему на новом разделе Проверяем созданную нами файловую систему на новом разделе
     <code> <code>
    -sudo parted -l+parted -l
     </code> </code>
     {{:software:linux_server:lfs-example:lfs_example_24.png?|}} {{:software:linux_server:lfs-example:lfs_example_24.png?|}}
      
    -Проверим наличие swap-файла+Проверим наличие swap-файла. У нас это созданный при установке sda3, который мы недавно запоминали.
     <code> <code>
    -sudo swapon --show+swapon --show
     </code> </code>
     {{:software:linux_server:lfs-example:lfs_example_32.png?|}} {{:software:linux_server:lfs-example:lfs_example_32.png?|}}
    Строка 446: Строка 468:
     Строго говоря, нельзя «смонтировать раздел». Монтируется файловая система на этом разделе. Но так как один раздел не может содержать несколько файловых систем, люди часто говорят о разделе и связанной с ним файловой системе так, как если бы они были одним и тем же. Строго говоря, нельзя «смонтировать раздел». Монтируется файловая система на этом разделе. Но так как один раздел не может содержать несколько файловых систем, люди часто говорят о разделе и связанной с ним файловой системе так, как если бы они были одним и тем же.
      
    -Монтируем раздел командами (в нашем случае это раздел sda2, хотя, у вас может быть иначе)+Монтируем раздел командами (в нашем случае это раздел sda5, хотя, у вас может быть иначе)
      
     <code> <code>
    -sudo mkdir -v $LFS+mkdir -v $LFS
     </code> </code>
     {{:software:linux_server:lfs-example:lfs_example_27.png?|}} {{:software:linux_server:lfs-example:lfs_example_27.png?|}}
     <code> <code>
    -sudo mount -v -t /dev/sda2 $LFS+mount -v -t ext4 /dev/sda5 $LFS
     </code> </code>
    -Замените sda2 на имя вашего раздела LFS в случае необходимости.+Замените **sda5** на имя вашего раздела **LFS** в случае необходимости.
     {{:software:linux_server:lfs-example:lfs_example_30.png?|}} {{:software:linux_server:lfs-example:lfs_example_30.png?|}}
    -На выходе имеем:mount: /dev/sda2 смонтирован в /mnt/lfs.\\  +На выходе имеем:mount: /dev/sda5 смонтирован в /mnt/lfs.\\  
     Проверим наш смонтированный раздел Проверим наш смонтированный раздел
     <code> <code>
    Строка 474: Строка 496:
     Замените <xxx> и <yyy> соответствующими именами разделов. Замените <xxx> и <yyy> соответствующими именами разделов.
      
    -Убедитесь, что этот новый раздел не смонтирован со слишком строгими разрешениями (такими как параметры nosuid или nodev). Запустите команду mount без каких-либо параметров, чтобы увидеть, какие параметры установлены для смонтированного раздела LFS. Если установлены nosuid и/или nodev, раздел должен быть размонтирован и смонтирован повторно. +Убедитесь, что этот новый раздел не смонтирован со слишком строгими разрешениями (такими как параметры **nosuid** или **nodev**). Запустите команду **mount** без каких-либо параметров, чтобы увидеть, какие параметры установлены для смонтированного раздела LFS. Если установлены nosuid и/или nodev, раздел должен быть размонтирован и смонтирован повторно. 
     +<code> 
     +mount 
     +</code> 
     +Проверим разрешения 
     +{{:software:linux_server:lfs-example:lfs_example_31_1_1.png?|}}
     <WRAP left round important 100%> <WRAP left round important 100%>
     **Предупреждение**\\   **Предупреждение**\\  
    Строка 486: Строка 512:
     Редактируем файл /etc/fstab в редакторе nano Редактируем файл /etc/fstab в редакторе nano
     <code> <code>
    -sudo nano /etc/fstab+nano /etc/fstab
     </code> </code>
     {{:software:linux_server:lfs-example:lfs_example_33.png?|}} {{:software:linux_server:lfs-example:lfs_example_33.png?|}}
    -Добавим строку для автоматического монтажа раздела sda2 +Добавим строку для автоматического монтажа раздела sda5 
     +<code> 
     +/dev/sda5  /mnt/lfs ext4   defaults      1     1 
     +</code>
     {{:software:linux_server:lfs-example:lfs_example_34.png?|}} {{:software:linux_server:lfs-example:lfs_example_34.png?|}}
     CTRL+O → ENTER → CTRL+X (Сохранить и выйти)\\   CTRL+O → ENTER → CTRL+X (Сохранить и выйти)\\  
    Строка 502: Строка 531:
      
     Теперь, когда новый раздел LFS готов к работе, пришло время загрузить пакеты. Теперь, когда новый раздел LFS готов к работе, пришло время загрузить пакеты.
    -  * [[software:linux_server:lfs-example:chapter03|]]+  * След. [[software:linux_server:lfs-example:chapter03|]]
    software/linux_server/lfs-example/chapter02.1721312570.txt.gz · Последнее изменение: 2024/07/18 17:22 — vladpolskiy