Handbook:AMD64/Blocks/Disks/ru

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:Alpha/Blocks/Disks and the translation is 100% complete.


Слайсы

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

Заметка
В следующих разделах для установки будет использоваться пример для конфигурации ARC/AlphaBIOS. Измените необходимые значения под свою конфигурацию!

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

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

Расположение разделов на диске сильно зависит от потребностей системы и файловой системы (файловых систем). Если в ней будет много пользователей, рекомендуется разместить /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.

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

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

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

Как правило, рекомендуется создавать пространство подкачки с размером в два раза больше оперативной памяти (ОЗУ). Для систем с несколькими дисками, целесообразно создать по одному разделу подкачки на каждом диске, чтобы их можно было использовать для параллельных операций чтения/записи. Чем быстрее диск может подкачивать, тем быстрее система будет работать, когда ей необходимо прочитать данные с пространства подкачки. При выборе между жестким диском и твердотельным накопителем, с точки зрения производительности лучше создать пространство подкачки на SSD. Также вы можете использовать файлы подкачки вместо разделов подкачки; в основном это необходимо для систем с очень ограниченным дисковым пространством.


Использование fdisk для создания разделов диска (только SRM)

Далее будет объяснено, как создать примерную разметку слайсов для SRM:

Слайс Описание
/dev/sda1 Слайс раздела подкачки (swap)
/dev/sda2 Корневой слайс (root)
/dev/sda3 Весь диск (необходимо)

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

Определение доступных дисков

Используйте следующие команды, чтобы выяснить, какие диски доступны в системе.

Для дисков IDE:

root #dmesg | grep 'drive$'

Для дисков SCSI:

root #dmesg | grep 'scsi'

Вывод команды отобразит обнаруженные диски и путь к ним в /dev/. Мы предположим, что это SCSI-диск /dev/sda.

Теперь запустите fdisk:

root #fdisk /dev/sda

Удаление всех слайсов

Если жёсткий диск полностью пуст, сначала создайте метку диска BSD.

Command (m for help):b
/dev/sda contains no disklabel.
Do you want to create a disklabel? (y/n) y
A bunch of drive-specific info will show here
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  c:        1      5290*     5289*    unused        0     0

Мы начнем с удаления всех слайсов кроме 'c'-слайса (необходим для использования меток BSD). Следующий пример показывает как удалить слайс (в примере мы используем 'a'). Повторите этот процесс, чтобы удалить остальные слайсы (все кроме слайса 'c').

Используйте p, чтобы просмотреть все доступные слайсы. d используется для удаления слайса.

BSD disklabel command (m for help):p
8 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        1       235*      234*    4.2BSD     1024  8192    16
  b:      235*      469*      234*      swap
  c:        1      5290*     5289*    unused        0     0
  d:      469*     2076*     1607*    unused        0     0
  e:     2076*     3683*     1607*    unused        0     0
  f:     3683*     5290*     1607*    unused        0     0
  g:      469*     1749*     1280     4.2BSD     1024  8192    16
  h:     1749*     5290*     3541*    unused        0     0
BSD disklabel command (m for help):d
Partition (a-h): a

После выполнения этой операции со всеми слайсами список должен показывать что-то подобное:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  c:        1      5290*     5289*    unused        0     0

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

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

Мы создадим слайс подкачки размером в 1 ГБ, начиная с третьего цилиндра. Используйте n, чтобы создать новый слайс. После создания слайса мы изменим его тип на 1 (один), обозначающий подкачку.

BSD disklabel command (m for help):n
Partition (a-p): a
First cylinder (1-5290, default 1): 3
Last cylinder or +size or +sizeM or +sizeK (3-5290, default 5290): +1024M
BSD disklabel command (m for help):t
Partition (a-c): a
Hex code (type L to list codes): 1

После выполнения этих операций разметка должна выглядеть примерно так:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        3      1003      1001       swap
  c:        1      5290*     5289*    unused        0     0

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

Мы создадим корневой слайс начиная с первого цилиндра после слайса подкачки. Используйте p, что посмотреть, где заканчивается слайс подкачки. В нашем примере это 1003. Создайте корневой слайс начиная с 1004.

Другая проблема заключается в том, что в fdisk обнаружена ошибка, из-за которой число доступных цилиндров на единицу больше реального числа цилиндров. Другими словами, при запросе последнего цилиндра, уменьшите номер цилиндра (в этом примере: 5290) на один.

Когда слайс создан, мы изменим тип на 8 для ext2.

BSD disklabel command (m for help):n
Partition (a-p): b
First cylinder (1-5290, default 1): 1004
Last cylinder or +size or +sizeM or +sizeK (1004-5290, default 5290): 5289
BSD disklabel command (m for help):t
Partition (a-c): b
Hex code (type L to list codes): 8

Итоговая разметка слайсов теперь должна выглядеть примерно так:

BSD disklabel command (m for help):p
3 partitions:
#       start       end      size     fstype   [fsize bsize   cpg]                                    
  a:        3      1003      1001       swap
  b:     1004      5289      4286       ext2
  c:        1      5290*     5289*    unused        0     0

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

Выйдите из приложения fdisk, нажав w. Это также сохранит разметку слайсов.

Command (m for help):w

Использование fdisk для создания разделов диска (только ARC/AlphaBIOS)

Далее будет объяснено, как создать примерную разметку разделов для ARC/AlphaBIOS:

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

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

Определение доступных дисков

Используйте следующие команды, чтобы выяснить, какие диски доступны в системе.

Для дисков IDE:

root #dmesg | grep 'drive$'

Для дисков SCSI:

root #dmesg | grep 'scsi'

Вывод команды отобразит обнаруженные диски и путь к ним в /dev/. Мы предположим, что это SCSI-диск /dev/sda.

Теперь запустите fdisk:

root #fdisk /dev/sda

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

Если жёсткий диск полностью пуст, сначала создайте метку диска DOS.

Command (m for help):o
Building a new DOS disklabel.

Мы начнем с удаления всех разделов. Следующий пример показывает, как удалить раздел (в примере мы используем '1'). Повторите этот процесс, чтобы удалить остальные разделы.

Используйте p, чтобы просмотреть все доступные разделы. d используется для удаления раздела.

command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         478      489456   83  Linux
/dev/sda2             479        8727     8446976    5  Extended
/dev/sda5             479        1433      977904   83  Linux Swap
/dev/sda6            1434        8727     7469040   83  Linux
command (m for help):d
Partition number (1-6): 1

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

В системах Alpha, в которых используется MILO для загрузки, необходимо создать небольшой загрузочный раздел vfat.

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-8727, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-8727, default 8727): +16M
Command (m for help):t
Selected partition 1
Hex code (type L to list codes): 6
Changed system type of partition 1 to 6 (FAT16)

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

Создадим раздел подкачки размером в 1 ГБ. Используйте n, чтобы создать новый раздел.

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (17-8727, default 17): 17
Last cylinder or +size or +sizeM or +sizeK (17-8727, default 8727): +1000M
Command (m for help):t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)

После выполнения этих операций разметка должна выглядеть примерно так:

Command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          16       16368    6  FAT16
/dev/sda2              17         971      977920   82  Linux swap

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

Теперь создадим корневой раздел. Снова, воспользуйтесь n.

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (972-8727, default 972): 972
Last cylinder or +size or +sizeM or +sizeK (972-8727, default 8727): 8727

После выполнения этих операций разметка должна выглядеть примерно так:

Command (m for help):p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          16       16368    6  FAT16
/dev/sda2              17         971      977920   82  Linux swap
/dev/sda3             972        8727     7942144   83  Linux

Сохранение разметки разделов и выход

Сохраните сделанные изменения в fdisk, нажав w.

Command (m for help):w

Теперь, когда разделы созданы, продолжайте с раздела Создание файловых систем.