Handbook:PPC64/Installation/Disks
Введение в блочные устройства
Блочные устройства
Теперь взглянем на аспекты работы Gentoo Linux и Linux в общем, связанные с дисковой подсистемой, включая блочные устройства, разделы и файловые системы Linux. Как только основные понятия о дисках и файловых системах будут изучены, можно будет приступать к созданию разделов и файловых систем для установки.
Для начала, рассмотрим блочные устройства. Устройства SCSI и Serial ATA обозначаются как /dev/sda, /dev/sdb, /dev/sdc и так далее. На более современных компьютерах твердотельные накопители NVMe на базе PCI Express имеют дескриптор вида /dev/nvme0n1, /dev/nvme0n2 и так далее.
Следующая таблица поможет определить необходимый тип блочного устройства в системе:
Тип устройства | Дескриптор устройства по умолчанию | Примечания и полезные сведения |
---|---|---|
IDE, SATA, SAS, SCSI или USB flash | /dev/sda | Данный тип устройств стал доступным примерно с 2007 года и встречается до сих пор, являясь, пожалуй, самым используемым типом в Linux. Устройства могут подключаться через шины SATA, SCSI или USB в виде устройства блочного хранилища. Например, первый раздел на первом SATA устройстве обозначается как /dev/sda1. |
NVM Express (NVMe) | /dev/nvme0n1 | Передовая на данный момент технология твердотельных накопителей. Устройства NVMe подключаются к шине PCI Express и обладают наиболее быстрой скоростью передачи блочных данных, доступной на рынке. Системы образца 2014 года и новее могут иметь поддержку устройств NVMe. Первый раздел на первом NVMe устройстве обозначается как /dev/nvme0n1p1. |
MMC, eMMC и SD | /dev/mmcblk0 | Устройства embedded MMC, SD-карты и другие типы карт памяти могут использоваться для хранения данных. Однако не все системы могут позволить загружаться с данного типа устройств. Не рекомендуется использовать данные устройства для установки Linux; лучше используйте их по прямому назначению — для переноса файлов. Также их можно использовать для кратковременного резервного копирования или снимков диска. |
Данные блочные устройства представляют абстрактный интерфейс к диску. Пользовательские приложения могут использовать их для взаимодействия с диском, не заботясь о том, какой это диск — SATA, SCSI или какой-либо ещё. Программа просто адресует пространство на диске как совокупность следующих друг за другом 4096-байтных (4K) блоков с произвольным доступом.
Разделы и слайсы
Не смотря на то, что теоретически возможно использовать весь диск для размещения вашей Linux системы, этого почти никогда не случается на практике. Вместо этого все большое блочное устройство разбивается на меньшие, более удобные для обращения, блочные устройства. Для большинства систем они называются разделами. Другие архитектуры используют похожую технологию, называемую слайсы.
Разработка схемы разделов
Сколько разделов и насколько больших?
Расположение разделов на диске сильно зависит от потребностей системы и файловой системы (файловых систем). Если в ней будет много пользователей, рекомендуется разместить /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/ может потребовать загрузки с initramfs, чтобы смонтировать раздел прежде, чем запустятся другие загрузочные сценарии. Так как сборка initramfs выходит за рамки данного руководства, мы рекомендуем новичкам не создавать отдельный раздел для /usr/.
- Также существует лимит в 15 разделов для SCSI и SATA, если только на диске не используются метки GPT.
Если планируется использовать systemd в качестве системы инициализации и управления службами, то при загрузке системы должен быть доступен каталог /usr, либо как часть корневой файловой системы, либо смонтированный через initramfs.
Что по поводу пространства подкачки?
RAM size | Suspend support? | Hibernation support? |
---|---|---|
2 GB or less | 2 * RAM | 3 * RAM |
2 to 8 GB | RAM amount | 2 * RAM |
8 to 64 GB | 8 GB minimum, 16 maximum | 1.5 * RAM |
64 GB or greater | 8 GB minimum | Hibernation not recommended! Hibernation is not recommended for systems with very large amounts of memory. While possible, the entire contents of memory must be written to disk in order to successfully hibernate. Writing tens of gigabytes (or worse!) out to disk can can take a considerable amount of time, especially when rotational disks are used. It is best to suspend in this scenario. |
Не существует идеального значения для раздела подкачки. Целью пространства подкачки является предоставление дискового пространства ядру в условиях активного использования оперативной памяти. Пространство подкачки позволяет ядру переносить на диск страницы оперативной памяти, которые не будут использоваться в ближайшее время, освобождая её (swap или page-out). Конечно, если эта память вдруг неожиданно понадобится, эти страницы должны быть помещены обратно в память (page-in), что займет намного больше времени, чем чтение с оперативной памяти (так как диски — это очень медленные устройства по сравнению с оперативной памятью).
Если на системе не требуется запускать приложения, требовательные к памяти, либо изначально доступно очень много памяти, то, скорее всего, необходимости в пространстве подкачки нет. Однако раздел подкачки также используется для сохранения всей памяти в случае перехода системы в спящий режим (более вероятно на ноутбуках и десктопах, чем на серверах). Если планируется использовать этот режим, нужно пространство подкачки, равное или больше чем количеству оперативной памяти.
Как правило, рекомендуется создавать пространство подкачки для систем с оперативной памяти (ОЗУ) меньше 4 Гб, при этом размер подкачки рекомендуется должен быть в два раза больше ОЗУ. Для систем с несколькими дисками, целесообразно создать по одному разделу подкачки на каждом диске, чтобы их можно было использовать для параллельных операций чтения/записи. Чем быстрее диск может подкачивать, тем быстрее система будет работать, когда ей необходимо прочитать данные с пространства подкачки. При выборе между жестким диском и твердотельным накопителем, с точки зрения производительности лучше создать пространство подкачки на твердотельных носителях.
It is worth noting that swap files can be used as an alternative to swap partitions; this is mostly helpful for systems with very limited disk space.
По умолчанию: Использование mac-fdisk
Данные инструкции предназначены для систем Apple G5.
Раздел | Описание |
---|---|
/dev/sda1 | Карта разделов Apple, создаётся автоматически, когда диск размечается с таблицей разделов «mac». |
/dev/sda2 | Загрузочный блок New World |
/dev/sda3 | Раздел подкачки |
/dev/sda4 | Корневой раздел |
Запустите mac-fdisk:
root #
mac-fdisk /dev/sda
Сперва удалите разделы, которые были ранее очищены, чтобы выделить место для разделов Linux. Нажмите d в mac-fdisk, чтобы удалить эти разделы. Программа спросит номер удаляемого раздела.
Теперь создайте раздел Apple_Bootstrap, нажав на клавишу b. Программа спросит блок, с которого следует начинать. Введите номер следующего свободного раздела, завершив его вводом p, например «2p».
Этот раздел не является «загрузочным» разделом. Он совершенно не используется Linux; нет нужды размещать в нём файловую систему и его не нужно монтировать. Пользователям PPC не нужен отдельный раздел для /boot.
Теперь создайте раздел подкачки, нажав на клавишу c. mac-fdisk снова попросит блок, с которого следует начинать. Так как мы уже использовали 2 для создания раздела Apple_Bootstrap, введите 3p. Получив запрос размера раздела, введите 512M (или другой необходимый вам размер). При запросе имени введите swap (обязательно).
Чтобы создать корневой раздел, нажмите c, затем 4p, чтобы указать, с какого блока начинается раздел. При запросе размера введите 4p ещё раз, mac-fdisk расценит это как «Использовать всё доступное пространство». При запросе имени введите root (обязательно).
Чтобы закончить, запишите информацию о разделах на диск с помощью клавиши w, а затем — нажмите q для выхода из mac-fdisk.
Чтобы проверить, что всё в порядке, запустите mac-fdisk ещё раз, чтобы убедиться, что все разделы сохранены. Если разделов нет либо нет каких-то внесённых изменений, переинициализируйте разделы, нажав i в mac-fdisk. Имейте в виду, что это пересоздаст карту разделов и тем самым удалит все существующие разделы.
Альтернатива: Использование fdisk
Следующие инструкции предназначены для систем IBM pSeries, iSeries и OpenPower.
Если планируется использовать для установки Gentoo дисковый массив RAID на оборудовании POWER5, сперва запустите iprconfig, чтобы отформатировать диски в формат Advanced Function и создать дисковый массив. После завершения установки установите sys-fs/iprutils.
Если в системе есть SCSI-адаптер на базе ipr, необходимо запустить инструменты ipr.
root #
/etc/init.d/iprinit start
Далее будет объяснено, как создать примерную разметку следующих разделов:
Раздел | Описание |
---|---|
/dev/sda1 | Загрузочный раздел PPC PReP |
/dev/sda2 | Раздел подкачки |
/dev/sda3 | Корневой раздел |
Измените структуру разделов в соответствии с личными предпочтениями.
Просмотр текущей разметки разделов
fdisk является популярным и мощным инструментом для создания разделов на диске. Запустите fdisk, передав в качестве параметра имя диска (в нашем примере мы используем /dev/sda):
root #
fdisk /dev/sda
Command (m for help)
Если в системе всё ещё есть разделы AIX, будет выведено следующее сообщение об ошибке:
root #
fdisk /dev/sda
There is a valid AIX label on this disk. Unfortunately Linux cannot handle these disks at the moment. Nevertheless some advice: 1. fdisk will destroy its contents on write. 2. Be sure that this disk is NOT a still vital part of a volume group. (Otherwise you may erase the other disks as well, if unmirrored.) 3. Before deleting this physical volume be sure to remove the disk logically from your AIX machine. (Otherwise you become an AIXpert).
Не беспокойтесь, новую таблицу разделов DOS можно создать с помощью клавиши o.
Это уничтожит любую установленную версию AIX!
Введите p для отображения текущей конфигурации разделов:
Command (m for help):
p
Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System /dev/sda1 1 12 53266+ 83 Linux /dev/sda2 13 233 981571+ 82 Linux swap /dev/sda3 234 674 1958701+ 83 Linux /dev/sda4 675 6761 27035410+ 5 Extended /dev/sda5 675 2874 9771268+ 83 Linux /dev/sda6 2875 2919 199836 83 Linux /dev/sda7 2920 3008 395262 83 Linux /dev/sda8 3009 6761 16668918 83 Linux
Данный диск разбит на шесть файловых систем Linux (каждый раздел соответственно подписан как «Linux»), а так же раздел подкачки (названный как «Linux swap»).
Удаление всех разделов
Сначала удалите все существующие разделы на диске. Нажмите d для удаления раздела. Например, чтобы удалить существующий /dev/sda1:
Command (m for help):
d
Partition number (1-4): 1
Раздел отмечен к последующему удалению. Он больше не будет отображаться при нажатии p, но не будет удалён до тех пор, пока изменения не будут сохранены. Если была совершена какая-то ошибка, и необходимо прервать работу программы, сразу же нажмите q и Enter; никакие разделы не будут удалены или изменены.
Теперь, предполагая, что нам необходимо удалить все разделы, поочередно нажимайте p (для вывода текущего списка) и d вместе с номером удаляемого раздела. В конце концов, таблица разделов останется пуста:
Command (m for help):
p
Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System
Теперь, когда ещё не сохранённая таблица разделов пуста, создадим необходимые разделы. Мы будем использовать схему разделов, о которой говорили выше. Конечно же, нет нужды следовать инструкциям слово в слово, вы можете немного их подправить под свои нужды.
Создание загрузочного раздела PPC PReP
Сперва создайте небольшой загрузочный раздел PReP. Нажмите n для создания нового раздела, затем — p, чтобы указать основной раздел, после чего — 1, чтобы указать первый основной раздел. Получив запрос на первый цилиндр, просто нажмите Enter. Для указания последнего цилиндра наберите +7M, чтобы создать раздел размером в 7 МБ. После этого наберите t, чтобы указать тип раздела, 1 — чтобы выбрать только что созданный раздел, а затем — 41, означающий тип «PPC PReP Boot». Наконец, отметьте раздел PReP как загрузочный.
Раздел PReP должен быть меньше 8 МБ!
Command (m for help):
p
Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-6761, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-6761, default 6761): +8M
Command (m for help):
t
Selected partition 1 Hex code (type L to list codes): 41 Changed system type of partition 1 to 41 (PPC PReP Boot)
Command (m for help):
a
Partition number (1-4): 1 Command (m for help):
Теперь, если посмотреть на таблицу разделов через p, будет выведена следующая информация:
Command (m for help):
p
Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 3 13293 41 PPC PReP Boot
Создание раздела подкачки
Теперь создадим раздел подкачки. Чтобы это сделать, нажмите n для создания нового раздела, p — чтобы указать, что следует создать основной раздел. После этого наберите 2, чтобы создать второй основной раздел (в нашем случае — /dev/sda2). При запросе первого цилиндра нажмите Enter. При запросе последнего цилиндра наберите +512M, чтобы создать раздел объёмом 512 МБ. После этого наберите 82, чтобы указать тип раздела как «Linux Swap». По завершению этих действий команда p должна отобразить таблицу разделов следующего вида:
Command (m for help):
p
Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System /dev/sda1 1 3 13293 41 PPC PReP Boot /dev/sda2 4 117 506331 82 Linux swap
Создание корневого раздела
Наконец, чтобы создать корневой раздел, введите n, чтобы создать новый раздел, затем p, чтобы сказать fdisk, что создаваемый раздел должен быть основным. Затем введите 3, чтобы создать третий основной раздел, /dev/sda3. При запросе первого цилиндра нажмите Enter. При запросе последнего нажмите Enter, чтобы создать раздел, занимающий все оставшееся доступное пространство диска. После завершения этих шагов введите p для вывода на экран таблицы разделов, которая будет выглядеть например так:
Command (m for help):
p
Disk /dev/sda: 30.7 GB, 30750031872 bytes 141 heads, 63 sectors/track, 6761 cylinders Units = cylinders of 8883 * 512 = 4548096 bytes Device Boot Start End Blocks Id System /dev/sda1 1 3 13293 41 PPC PReP Boot /dev/sda2 4 117 506331 82 Linux swap /dev/sda3 118 6761 29509326 83 Linux
Сохранение разметки разделов
Сохраните разметку разделов и выйдите из fdisk, нажав w.
Command (m for help):
w
Создание файловых систем
При использовании SSD или NVMe диска, пожалуйста, проверьте наличие обновлений для прошивки. В частности, некоторые SSD от Intel (600p и 6000p) нуждаются в обновлении прошивки для исправления критических ошибок, чтобы не допустить повреждение данных из-за особенностей использования I/O в XFS (не по вине самой файловой системы). Программа smartctl умеет отображать модель и версию прошивки.
Введение
Теперь, когда разделы созданы, пора разместить на них файловые системы. В следующем разделе описаны различные поддерживаемые в Linux файловые системы. Те из читателей, кто уже знает, какую файловую систему будет использовать, могут продолжить с раздела Создание файловой системы на разделе. Остальным стоит продолжить чтение, чтобы узнать о доступных вариантах…
Файловые системы
Linux поддерживает несколько десятков файловых систем, хотя для большинства из них необходимы достаточно веские причины их использовать. Лишь только некоторые из них можно считать стабильными на архитектуре ppc64. Рекомендуется прочитать информацию о файловых системах и об их состоянии поддержки перед тем, как останавливать свой выбор на экспериментальных. XFS — рекомендуемая стабильная файловая система общего применения для всех платформ. Ниже представлен неполный список файловых систем:
- btrfs
- Файловая система нового поколения. Предоставляет множество продвинутых функций, таких как мгновенные снимки, самовосстановление с помощью контрольных сумм, поддержка прозрачного сжатия, подтомов и интегрированный RAID. Ядра старше ветки 5.4 не обеспечивают безопасную работу btrfs, так как исправления наиболее серьёзных проблем стабильности появились только в более поздних ветках долговременной поддержки (LTS) ядра. RAID 5/6 и quota groups небезопасны на всех версиях btrfs.
- ext4
- Ext4 является стабильной файловой системой общего применения для всех платформ, хотя в ней отсутствуют современные возможности по типу «reflinks».
- f2fs
- Файловая система (Flash-Friendly File System) была создана Samsung для использования на NAND-накопителях. Она может быть достойным выбором при установке на microSD карту, USB-накопитель или другие накопители.
- XFS
- Файловая система с журналированием метаданных, которая поставляется с мощным набором функций и оптимизирована для масштабируемости. Она непрерывно обновляется, обрастая новым возможностями. Единственным недостатком является то, что разделы с XFS пока нельзя уменьшать (хотя и над этим ведётся работа). Примечательно, что XFS поддерживает «reflinks» и механизм «копирование при записи» (Copy-on-Write, CoW), что весьма полезно для Gentoo систем из-за частых и/или больших компиляций, которые совершает пользователь. XFS является рекомендуемой современной файловой системой общего назначения для всех платформ. Для неё требуется раздел размером не менее 300 МБ.
- VFAT
- Так же известная как FAT32, поддерживается Linux, но не имеет поддержку стандартных файловых разрешений UNIX. В основном используется для взаимодействия или взаимозаменяемости с другими операционными системами (в основном Microsoft Windows и Apple macOS), но также необходима при использовании некоторых системных прошивок загрузчика (например, UEFI). Пользователям систем с UEFI должны использовать эту файловую систему для EFI System Partition, чтобы иметь возможность загружаться.
- NTFS
- New Technology Filesystem является основной файловой системой для Microsoft Windows начиная с NT 3.5. Как и VFAT, она не сохраняет настройки UNIX разрешений и расширенные атрибуты, необходимые для нормальной работы BSD или Linux, поэтому в большинстве случаев её не следует использоваться в качестве файловой системы для корневого раздела. Её следует использовать только для взаимодействия или обмена данными с системами Microsoft Windows (обратите внимание на акцент слова только).
Более подробную информацию о файловых системах можно найти в (поддерживаемой сообществом) статье Файловая система.
Создание файловой системы на разделе
Пожалуйста, не забудьте, что в конце установки (перед перезагрузкой системы) вам необходимо установить соответствующий пакет с инструментами для выбранной файловой системы.
Для создания файловых систем на разделе или томе существуют пользовательские утилиты для каждого возможного типа файловой системы. Нажмите на имя файловой системы в таблице ниже для получения дополнительной информации о каждой файловой системе:
Файловая система | Команда для создания | Присутствует в «живом» окружении? | Пакет |
---|---|---|---|
btrfs | mkfs.btrfs | Да | sys-fs/btrfs-progs |
ext4 | mkfs.ext4 | Да | sys-fs/e2fsprogs |
f2fs | mkfs.f2fs | Да | sys-fs/f2fs-tools |
xfs | mkfs.xfs | Да | sys-fs/xfsprogs |
vfat | mkfs.vfat | Да | sys-fs/dosfstools |
NTFS | mkfs.ntfs | Да | sys-fs/ntfs3g |
The handbook recommends new partitions as part of the installation process, but it is important to note running any mkfs command will erase any data contained within the partition. When necessary, ensure any data that exists within is appropriately backed up before creating a few filesystem.
Например, чтобы отформатировать корневой раздел (/dev/sda3) в xfs при использовании структуры разделов из примера, используются следующие команды:
root #
mkfs.xfs /dev/sda3
EFI system partition filesystem
The EFI system partition (/dev/sda1) must be formatted as FAT32:
root #
mkfs.vfat -F 32 /dev/sda1
Legacy BIOS boot partition filesystem
Systems booting via legacy BIOS with a MBR/DOS disklabel can use any filesystem format supported by the bootloader.
For example, to format with XFS:
root #
mkfs.xfs /dev/sda1
Small ext4 partitions
При использовании ext4 на малых разделах (менее 8 ГиБ) файловая система должна быть создана с особыми параметрами для резервирования достаточного количества индексных дескрипторов (inodes). Для этого используется одна из следующих команд:
root #
mkfs.ext4 -T small /dev/<раздел>
Данная команда учетверит количество индексных дескрипторов для такой ФС, так как мы уменьшили количество байт на каждый дескриптор («bytes-per-inode») с 16 кб до 4 кб.
Активация раздела подкачки
Для инициализации разделов подкачки используется команда mkswap:
root #
mkswap /dev/sda2
Чтобы активировать раздел подкачки, используйте swapon:
root #
swapon /dev/sda2
This 'activation' step is only necessary because the swap partition is newly created within the live environment. Once the system has been rebooted, as long as the swap partition is properly defined within fstab or other mount mechanism, swap space will activate automatically.
Монтирование корневого раздела
Installations which were previously started, but did not finish the installation process can resume the installation from this point in the handbook. Use this link as the permalink: Resumed installations start here.
Если в качестве установочного носителя используется не Gentoo-образ, необходимо дополнительно создать точку монтирования:
root #
mkdir --parents /mnt/gentoo
root #
mkdir --parents /mnt/gentoo
For EFI installs only, the ESP should be mounted under the root partition location:
root #
mkdir --parents /mnt/gentoo
Continue creating additional mount points necessary for any additional (custom) partition(s) created during previous steps by using the mkdir command.
Теперь, когда созданы разделы и размещённые на них файловые системы, настало время их смонтировать. Используйте команду mount, только не забудьте предварительно создать каталоги для монтирования каждого созданного раздела. В качестве примера мы смонтируем корневой раздела:
Mount the root partition:
root #
mount /dev/sda3 /mnt/gentoo
Continue mounting additional (custom) partitions as necessary using the mount command.
Если /tmp/ находится на отдельном разделе, не забудьте после монтирования изменить права доступа:
root #
chmod 1777 /mnt/gentoo/tmp
Позже в инструкции будут смонтированы файловая система proc (виртуальный интерфейс к ядру) и другие псевдофайловые системы ядра. Но сначала необходимо распаковать файл стадии Gentoo.