Handbook:IA64/Installation/Disks

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:IA64/Installation/Disks and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
IA64 Handbook
Установка
Об установке
Выбор подходящего источника для установки
Настройка сети
Подготовка дисков
Установка stage3
Установка базовой системы
Настройка ядра
Настройка системы
Установка системных утилит
Настройка загрузчика
Завершение
Работа с Gentoo
Введение в Portage
USE-флаги
Возможности Portage
Система сценариев инициализации
Переменные окружения
Работа с Portage
Файлы и каталоги
Переменные
Смешение ветвей программного обеспечения
Дополнительные утилиты
Дополнительные репозитории пакетов
Расширенные возможности
Настройка сети
Начальная настройка
Расширенная настройка
Модульное построение сети
Беспроводная сеть
Добавляем функциональность
Динамическое управление


Введение в блочные устройства

Блочные устройства

Теперь взглянем на аспекты работы Gentoo Linux и Linux в общем, связанные с дисковой подсистемой, включая блочные устройства, разделы и файловые системы Linux. Как только основные понятия о дисках и файловых системах будут изучены, можно будет приступать к созданию разделов и файловых систем для установки.

Для начала, рассмотрим блочные устройства. Устройства SCSI и Serial ATA обозначаются как /dev/sda, /dev/sdb, /dev/sdc и так далее. На более современных компьютерах твердотельные накопители NVMe на базе PCI Express имеют дескриптор вида /dev/nvme0n1, /dev/nvme0n2 и так далее.

Следующая таблица поможет определить необходимый тип блочного устройства в системе:

Тип устройства Дескриптор устройства по умолчанию Примечания и полезные сведения
NVM Express (NVMe) /dev/nvme0n1 Передовая на данный момент технология твердотельных накопителей. Устройства NVMe подключаются к шине PCI Express и обладают наиболее быстрой скоростью передачи блочных данных, доступной на рынке. Системы образца 2014 года и новее могут иметь поддержку устройств NVMe.
SATA, SAS, SCSI или USB flash /dev/sda Данный тип устройств стал доступным примерно с 2007 года и встречается до сих пор, являясь, пожалуй, самым используемым типом в Linux. Устройства могут подключаться через шины SATA, SCSI или USB в виде устройства блочного хранилища.
MMC, eMMC и SD /dev/mmcblk0 Устройства embedded MMC, SD-карты и другие типы карт памяти могут использоваться для хранения данных. Однако не все системы могут позволить загружаться с данного типа устройств. Не рекомендуется использовать данные устройства для установки Linux; лучше используйте их по прямому назначению — для переноса файлов. Также их можно использовать для кратковременного резервного копирования.
IDE/PATA /dev/hda Так старые драйверы ядра Linux отображают диски IDE/Parallel ATA, подключённые к шине IDE. Строго говоря, подобный тип устройств постепенно исчезает из компьютеров с 2003 года, когда компьютерная индустрия переключилась на SATA. Большинство систем с одним контроллером IDE могут поддерживать до четырёх устройств (hda-hdd)
Альтернативное именование для этих устаревших интерфейсов включают в себя Extended IDE (EIDE) и Ultra ATA (UATA).

Данные блочные устройства представляют абстрактный интерфейс к диску. Пользовательские приложения могут использовать их для взаимодействия с диском, не заботясь о том, какой это диск — SATA, SCSI или какой-либо ещё. Программа просто адресует пространство на диске как совокупность следующих друг за другом 4096-байтных (4K) блоков с произвольным доступом.


Разделы

Несмотря на то, что теоретически возможно использовать весь диск для размещения системы Linux, это почти никогда не делается на практике. Вместо этого, блочное устройство разбивается на меньшие, более управляемые блочные устройства. В системах IA64 они называются разделами.

Itanium systems use EFI, the Extensible Firmware Interface, for booting. The partition table format that EFI understands is called GPT, or GUID Partition Table. The partitioning program that understands GPT is called "parted", so that is the tool used below. Additionally, EFI can only read FAT filesystems, so that is the format to use for the EFI boot partition, where the kernel will be installed by "elilo".

Продвинутая организация хранилища

Установочный CD IA64 предоставляет поддержку LVM2, которая обеспечивает большую гибкость в создании разделов. Во время инструкций по установке мы будем рассматривать «обычные» разделы, но все же хорошо знать, что LVM2 также поддерживается.

Разработка схемы разделов

Сколько разделов и насколько больших?

Расположение разделов на диске очень сильно зависит от потребностей системы. Если в ней будет много пользователей, рекомендуется разместить /home в виде отдельного раздела, что улучшит безопасность и значительно упростит резервное копирование (а также другие операции сопровождения). Если Gentoo устанавливается для использования в роли почтового сервера, следует отделить /var, так как вся почта хранится в каталоге /var. Для игровых серверов потребуется отдельный раздел /opt, так как большинство игровых серверов устанавливается туда. Причины выделения те же, что и для каталога /home: безопасность, резервное копирование и сопровождение.

В большинстве случаев /usr и /var должны быть достаточно большого размера. В /usr хранится большинство приложений, доступных системе, а также исходные коды ядра Linux (в каталоге /usr/src). По умолчанию в /var хранится репозиторий пакетов Gentoo (расположенный в /var/db/repos/gentoo), который, в зависимости от файловой системы, займёт около 650 МиБ дискового пространства. Оценка этого пространства не включает каталоги /var/cache/distfiles и /var/cache/binpkgs, в которых будут скапливаться архивы исходных кодов и (не обязательно) двоичных пакетов, которые будут формироваться в самой системе.

Сколько именно и какого объёма разделов нужно системе — всё зависит от сочетания различных факторов, которые необходимо принимать во внимание. Наличие отдельных разделов или томов имеет следующие плюсы:

  • Можно выбрать наиболее подходящую файловую систему для каждого раздела или тома.
  • Свободное место во всей системе не закончится внезапно из-за того, что одна-единственная сбойная программа постоянно записывает файлы в раздел или том.
  • Необходимая проверка файловых систем будет занимать меньше времени, так как проверка разных разделов может выполняться параллельно (еще больший выигрыш времени дает использование нескольких физических дисков).
  • Можно повысить безопасность системы, монтируя часть разделов в режиме только для чтения, nosuid (игнорируется бит setuid), noexec (игнорируется бит исполнения) и так далее.


Однако у множества разделов также есть недостатки:

  • Если они не настроены правильно, может получиться так, что будет огромное количество свободного места на одном разделе и нехватка на другом.
  • Другой проблемой является то, что отдельные разделы, особенно для важных точек монтирования, например /usr/ или /var/, часто требуют загрузки initramfs, чтобы смонтировать разделы прежде, чем запустятся другие загрузочные сценарии. Это не всегда является проблемой, так что результаты могут быть разные.
  • Также существует лимит в 15 разделов для SCSI и SATA, если только на диске не используются метки GPT.
Заметка
If you intend to uses Systemd, /usr/ must be available on boot, either as part of the root filesystem or mounted via an initramfs.

Что по поводу пространства подкачки?

Не существует идеального значения для раздела подкачки. Целью пространства подкачки является предоставление дискового пространства ядру в условиях активного использования оперативной памяти. Пространство подкачки позволяет ядру переносить на диск страницы памяти, которые не будут использоваться в ближайшее время, освобождая память (swap или page-out). Конечно, если эта память вдруг неожиданно понадобится, эти страницы должны быть помещены обратно в память (page-in), что займет некоторое время (так как диски — это очень медленные устройства по сравнению с оперативной памятью).

Если на системе не требуется запускать приложения, требовательные к памяти, либо изначально доступно очень много памяти, то, скорее всего, необходимости в пространстве подкачки нет. Однако раздел подкачки также используется для сохранения всей памяти в случае перехода системы в спящий режим. Если планируется использовать этот режим, то нужно пространство подкачки, хотя бы равное количеству оперативной памяти, которое есть в системе.


Non-default example partition scheme

An example partitioning for a 20GB disk is shown below, used as a demonstration laptop (containing webserver, mailserver, gnome, ...):

root #df -h
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda5     ext4    509M  132M  351M  28% /
/dev/sda2     ext4    5.0G  3.0G  1.8G  63% /home
/dev/sda7     ext4    7.9G  6.2G  1.3G  83% /usr
/dev/sda8     ext4   1011M  483M  477M  51% /opt
/dev/sda9     ext4    2.0G  607M  1.3G  32% /var
/dev/sda1     ext2     51M   17M   31M  36% /boot
/dev/sda6     swap    516M   12M  504M   2% <not mounted>
(Unpartitioned space for future usage: 2 GB)

/usr/ is rather full (83% used) here, but once all software is installed, /usr/ doesn't tend to grow that much. Although allocating a few gigabytes of disk space for /var/ may seem excessive, remember that portage uses this partition by default for compiling packages. To keep /var/ at a more reasonable size, such as 1GB, alter the PORTAGE_TMPDIR variable in /etc/portage/make.conf to point to the partition with enough free space for compiling extremely large packages such as LibreOffice.

Использование parted для создания разделов диска

The following parts explain how to create the example partition layout used in the remainder of the installation instructions, namely:

Раздел Описание
/dev/sda1 Загрузочный раздел EFI
/dev/sda2 Раздел подкачки
/dev/sda3 Корневой раздел

Измените структуру разделов в соответствии с личными предпочтениями.

Просмотр текущей разметки разделов

parted is the GNU partition editor. Fire up parted on the disk (in our example, we use /dev/sda):

root #parted /dev/sda

Once in parted, a prompt that looks like this shows up:

(parted)

At this point one of the available commands is help, to see the other available commands. Another command is print to display the disk's current partition configuration:

(parted)print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags
1          0.017    203.938  fat32                             boot
2        203.938   4243.468  linux-swap
3       4243.469  34724.281  ext4

This particular configuration is very similar to the one recommended above. Note on the second line that the partition table is type is GPT. If it is different, then the ia64 system will not be able to boot from this disk. To explain how partitions are created, let's first remove the partitions and recreate them.

Удаление всех разделов

Заметка
Unlike fdisk and some other partitioning programs which postpone committing changes until the write instruction is given, parted commands take effect immediately. So once partitions are added or removed, there is no undo.

The easy way to remove all partitions and start fresh, which guarantees that we are using the correct partition type, is to make a new partition table using the mklabel command. This results in an empty GPT partition table.

(parted) mklabelgpt
(parted) mklabelprint
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags

Now that the partition table is empty, we're ready to create the partitions. We will use a default partitioning scheme as discussed previously. Of course, don't follow these instructions to the letter but adjust to personal preference.

Создание загрузочного раздела EFI

First create a small EFI boot partition. This is required to be a FAT filesystem in order for the IA64 firmware to read it. Our example makes this 32 MB, which is appropriate for storing kernels and elilo configuration. Expect each IA64 kernel to be around 5 MB, so this configuration leaves some room to grow and experiment.

(parted)mkpart primary fat32 0 32
(parted)print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags
1          0.017     32.000  fat32

Создание раздела подкачки

Let's now create the swap partition. The classic size to make the swap partition was twice the amount of RAM in the system. In modern systems with lots of RAM, this is no longer necessary. For most desktop systems, a 512 megabyte swap partition is sufficient. For a server, consider something larger to reflect the anticipated needs of the server.

(parted)mkpart primary linux-swap 32 544
(parted)print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags
1          0.017     32.000  fat32
2         32.000    544.000

Создание корневого раздела

Finally, create the root partition. Our configuration will make the root partition to occupy the rest of the disk. We default to ext4, but it is possible to use ext2, jfs, reiserfs or xfs. The actual filesystem is not created in this step, but the partition table contains an indication of what kind of filesystem is stored on each partition, and it's a good idea to make the table match the intentions.

(parted)mkpart primary ext4 544 34732.890
(parted)print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags
1          0.017     32.000  fat32
2         32.000    544.000
3        544.000  34732.874

Выход из parted

To quit from parted, type quit. There's no need to take a separate step to save the partition layout since parted has been saving it all along. Parted will give a reminder to update the /etc/fstab file, which is done later in the installation instructions.

(parted)quit
Information: Don't forget to update /etc/fstab, if necessary.


Создание файловых систем

Введение

Теперь, когда разделы созданы, пора разместить на них файловые системы. В следующем разделе описаны различные поддерживаемые в Linux файловые системы. Те из читателей, кто уже знает, какую файловую систему будет использовать, могут продолжить с раздела Создание файловой системы. Другим стоит продолжить чтение, чтобы узнать о доступных вариантах…

Файловые системы

Linux поддерживает несколько десятков файловых систем, хотя для большинства из них необходимы достаточно веские причины их использовать. Лишь только некоторые из них можно считать стабильными на архитектуре ia64. Рекомендуется прочитать информацию о файловых системах и об их состоянии поддержки перед тем, как останавливать свой выбор на экспериментальных.

btrfs
Файловая система следующего поколения, обеспечивающая множество дополнительных функций, таких как мгновенные снимки, самовосстановление с помощью контрольных сумм, поддержка прозрачного сжатия, субтомов и интегрированный RAID. Ядра старше ветки 5.4 не обеспечивают безопасную работу btrfs, так как исправления наиболее серьёзных проблем стабильности появились только в более поздних ветках долговременной поддержки ядра. Ошибки с повреждением файловой системы довольно часты для старых версий ядра, особенно небезопасны и нестабильны версии старше 4.4. Повреждения файловой системы для ядер старше 5.4 обычно характерны при включении сжатия. RAID 5/6 и quota groups небезопасны для всех версий btrfs. Более того, btrfs может неявным образом нарушить работу с файловыми операциями с ошибкой ENOSPC (при этом df сообщает, что свободное место есть) из-за внутренней фрагментации (свободное место высчитывается из расчёта DATA + SYSTEM участков, но при этом этом не учитывается в участках METADATA). Также, единственная ссылка 4K на экстент 128M внутри btrfs может отображать свободное место, которое недоступно для использования. Всё это приводит к тому, что btrfs возвращает ENOSPC, а df говорит, что есть свободное пространство. Установка sys-fs/btrfsmaintenance и конфигурация сценариев на периодический запуск поможет сократить количество проблем с ENOSPC путём ребалансировки btrfs, но не устранит их окончательно. Некоторые системы могут никогда не получить ошибку ENOSPC, когда как другие будут встречать её часто. Если риск получения ошибки ENOSPC недопустим, следует использовать другую файловую систему. При использовании btrfs убедитесь, что не собираетесь использовать конфигурацию, которая известна своей нестабильностью. За исключением проблемы ENOSPC, информация о существующих проблемах btrfs в последних ветках ядра доступна на вики-странице состояния btrfs.
ext2
Это проверенная и надежная файловая система Linux, но она не обладает средствами журналирования метаданных, что означает, что проверка файловой системы ext2 при запуске может занимать довольно много времени. Существует достаточно широкий выбор журналируемых файловых систем нового поколения, целостность которых может быть проверена очень быстро, что является преимуществом перед нежурналируемыми системами. Журналирование файловой системы позволяет избежать долгих задержек при загрузке системы, а также избежать её нестабильного состояния.
ext3
Журналируемая версия файловой системы ext2, обеспечивающая журналирования метаданных для быстрого восстановления в дополнение к другим режимам журналирования, таким как журналирование всех данных и упорядоченных данных. В данной ФС используются индексы на базе деревьев хешей, что в большинстве случаев обеспечивает высокую производительность. Вкратце, ext3 — это очень хорошая и надёжная файловая система.
ext4
Изначально созданная как ответвление от ext3, ext4 реализует новые возможности, повышение производительности и устранение ограничений на размер раздела на диске ценой незначительного изменения формата данных на диске. Она может быть размером до 1 ЭБ, а максимальный размер файла может составлять 16 ТБ. Вместо классического ext2/3 блочного распределения ext4 использует экстенты, которые улучшают производительность при работе с большими файлами и уменьшают фрагментацию. Ext4 также обеспечивает более сложные алгоритмы распределения блоков (отложенное распределение и мультиблочное распределение), дающие драйверу файловой системы больше возможностей по оптимизации размещения данных на диске. Ext4 рекомендуется как универсальная файловая система для всех платформ.
f2fs
Файловая система (Flash-Friendly File System) была создана Samsung для использования на NAND-накопителях. По состоянию на 2 квартал 2016 года файловая система считается не завершенной, но она может быть достойным выбором при установке на microSD карту, USB-накопитель или другие накопители.
JFS
Высокопроизводительная журналируемая файловая система от IBM. JFS — это легкая, быстрая и надежная файловая система, основанная на двоичных деревьях с хорошей производительностью в различных условиях.
ReiserFS
Основанная на двоичных деревьях журналируемая файловая система с хорошей общей производительностью, особенно при работе с множеством мелких файлов ценой чутью больших затрат центрального процессора. ReiserFS версии 3 включена в ядро Linux, однако не рекомендуется использовать её для первичной установки системы Gentoo. Существуют более новые версии ReiserFS, но для своей работы они требуют дополнительных патчей ядра.
XFS
Файловая система с журналированием метаданных, которая поставляется с мощным набором функций и оптимизирована для масштабируемости. XFS менее снисходительно относится к различным аппаратным проблемам, однако непрерывно обновляется, обрастая новым возможностями.
VFAT
Так же известна как FAT32, поддерживается Linux, но не имеет поддержку стандартных файловых разрешений UNIX. В основном используется для взаимодействия с другими операционными системами (в основном Microsoft Windows и Apple OSX), но также необходима при использовании некоторых системных прошивок загрузчика (например, UEFI).
NTFS
New Technology Filesystem является основной файловой системой для Microsoft Windows начиная с NT 3.5. Как и vfat, она не сохраняет настройки UNIX разрешений и расширенные атрибуты, необходимые для нормальной работы BSD или Linux, поэтому её не следует использоваться в качестве корневой файловой системы. Её необходимо использовать только для взаимодействия с системами Microsoft Windows (обратите внимание на акцент слова только).

Создание файловой системы

Для создания файловых систем на разделе или томе существуют пользовательские утилиты для каждого возможного типа файловой системы. Нажмите на имя файловой системы в таблице ниже для получения дополнительной информации о каждой файловой системе:

Файловая система Команда для создания Есть на минимальном CD? Пакет
btrfs mkfs.btrfs Да sys-fs/btrfs-progs
ext2 mkfs.ext2 Да sys-fs/e2fsprogs
ext3 mkfs.ext3 Да sys-fs/e2fsprogs
ext4 mkfs.ext4 Да sys-fs/e2fsprogs
f2fs mkfs.f2fs Да sys-fs/f2fs-tools
jfs mkfs.jfs Да sys-fs/jfsutils
reiserfs mkfs.reiserfs Да sys-fs/reiserfsprogs
xfs mkfs.xfs Да sys-fs/xfsprogs
vfat mkfs.vfat Да sys-fs/dosfstools
NTFS mkfs.ntfs Да sys-fs/ntfs3g

Например, чтобы создать корневой раздел (/dev/sda3) в ext4 при использовании структуры разделов из примера, используются следующие команды:

root #mkfs.ext4 /dev/sda3

При использовании ext2, ext3 или ext4 на малых разделах (менее 8 ГиБ) файловая система должна быть создана с особыми параметрами для резервирования достаточного количества индексных дескрипторов (inodes). Приложение mke2fs (mkfs.ext2) использует настройки «bytes-per-inode» для вычисления количества необходимых дескрипторов. На небольших разделах рекомендуется увеличивать расчётное количество дескрипторов.

root #mkfs.ext2 -T small /dev/<device>
root #mkfs.ext3 -T small /dev/<device>
root #mkfs.ext4 -T small /dev/<device>

Данные команды учетверяют количество индексных дескрипторов для такой ФС, так как «bytes-per-inode» уменьшает количество байт на каждый дескриптор с 16 кб до 4 кб. Это соотношение может быть изменено в любую сторону с помощью команды:

Теперь создайте файловые системы на только что созданных томах (или логических разделах).

Активация раздела подкачки

Для инициализации разделов подкачки используется команда mkswap:

root #mkswap /dev/sda2

Чтобы активировать раздел подкачки, используйте swapon:

root #swapon /dev/sda2

Создайте и активируйте раздел подкачки командами выше.

Монтирование корневого раздела

Теперь, когда созданы разделы и размещённые на них файловые системы, настало время их смонтировать. Используйте команду mount, только не забудьте предварительно создать каталоги для монтирования каждого созданного раздела. В качестве примера мы смонтируем корневой раздела:

root #mount /dev/sda3 /mnt/gentoo
Заметка
Если /tmp/ находится на отдельном разделе, не забудьте после монтирования изменить права доступа:
root #chmod 1777 /mnt/gentoo/tmp
Это также справедливо для /var/tmp.

Позже в инструкции будут смонтированы файловая система proc (виртуальный интерфейс к ядру) и другие псевдофайловые системы ядра. Но сначала мы установим установочные файлы Gentoo.