Создание блочного устройства linux

Управление накопителями в Linux: основные понятия и подходы

Операционная система Linux предоставляет производительные средства и наборы инструментов для управления аппаратными устройствами, в том числе накопителями. Эта статья расскажет, как Linux представляет эти устройства и, как превратить неформатированное хранилище (raw storage) в полезное пространство.

Блочные системы хранения

Блочная система хранения (block storage) – это ещё одно название блочного устройства в Linux. Блочное устройство – это часть аппаратных средств, предназначенная для хранения данных, например жесткий диск (hard disk drive, HDD), твердотельный накопитель (solid state drive, SSD), флэш-карта памяти и т.д. Они называются блочными устройствами, так как ядро подключается к аппаратным средствам путем ссылки на блоки фиксированного размера (фрагменты пространства).

По сути, блоковая система хранения – это обычное дисковое хранилище на компьютере. После установки и настройки такая система работает как продолжение дерева текущей файловой системы и позволяет записывать или считывать информацию с диска.

Разделы диска

Дисковые разделы – один из способов разделения накопителя на меньшие единицы. Разделом называется логически выделенная часть накопителя, которую, по сути, можно воспринимать и обрабатывать как сам накопитель.

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

Конечно, диски можно форматировать и использовать без разделения. Однако некоторые операционные системы требуют предоставить им таблицу разделов, даже если на диске есть только один раздел. Как правило, для достижения большей гибкости в дальнейшем новые диски рекомендуется заранее разделять.

MBR и GPT

При разделении диска важно учитывать формат. Как правило, при этом используются форматы MBR (Master Boot Record) и GPT (GUID Partition Table).

MBR – традиционная система дискового разделения, которая используется уже более 30 лет. Из-за её возраста в ней есть ряд серьёзных ограничений. Например, её нельзя использовать для разделения дисков, чей объём превышает 2Тб. Также MBR позволяет создать максимум четыре первичных раздела; при этом четвертый раздел, как правило, является «расширенным разделом», в котором можно создавать «логические разделы» (то есть, таким образом можно разделить последний раздел, чтобы добавить дополнительные разделы).

GPT – более современная модель разделения диска, которая пытается решить некоторые из проблем MBR. Системы, использующие GPT, могут делить диск на большее количество разделов (как правило, ограничения в этом смысле накладываются самой операционной системой). Кроме того, GPT не ограничивает размеры диска, а таблица разделов доступна в нескольких точках системы из соображений безопасности.

В большинстве случаев лучше использовать GPT (если только операционная система или наборы инструментов не подразумевают другого решения).

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

Ядро Linux может распознавать неформатированный диск. Но накопитель должен обязательно быть отформатированным.

Форматирование – это процедура записи на диск меток, файловой системы и другой управляющей информации для дальнейшей работы с файлами. Файловая система – это система, которая структурирует данные и управляет операциями записи и извлечения данных на диске. Без файловой системы невозможно использовать устройство для хранения файлов и выполнения любых файловых операций.

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

Наиболее популярными файловыми системами в Linux являются:

  • Ext4: (четвертая версия расширенной файловой системы) самая популярная на сегодняшний день файловая система. Ext4 обеспечивает систему журналирования и обратную совместимость с существующими системами, она невероятно надёжна и имеет зрелую поддержку и инструментарий. Это отличный выбор, если у вас нет никаких особенных требований.
  • XFS: специализируется на производительности и больших файлах данных. Эта файловая система быстро форматируется и предоставляет высокую пропускную способность при работе с большими файлами и дисками. Также она поддерживает быстрые снапшоты. XFS журналирует только метаданные. Это обеспечивает высокую производительность, но может привести к повреждению данных в случае резкой потери мощности.
  • Btrfs: современная многофункциональная файловая система, работающая по принципу «копирование при записи» (copy-on-write). Такая архитектура позволяет интегрировать функциональные возможности управления томами на уровне файловой системы. Готовность системы Btrfs к производственным нагрузкам всё ещё остаётся предметом активного обсуждения; многие системные администраторы считают её несколько незрелой для этого.
  • ZFS: современная файловая система и менеджер томов с широким и зрелым набором функций, работающий по принципу «копирование при записи». ZFS обеспечивает высокую целостность данных, может обрабатывать большие файловые системы, предоставляет функции управления томами (клонирование, создание снапшотов, систематизация томов в RAID и RAID-подобные массивы для обеспечения избыточности данных и повышения производительности). Что касается работы в Linux, ZFS имеет противоречивую историю из-за проблем с лицензированием. Несмотря на это Ubuntu поставляет двоичный модуль ядра ZFS, а Debian включает исходный код ZFS в свои репозитории. Другие дистрибутивы ещё не определились с поддержкой ZFS.

Управление устройствами хранения в Linux

Файлы устройств в /dev

Система Linux почти всё представляет в виде файлов. Это касается и аппаратных накопителей, которые представлены в системе в виде файлов в каталоге /dev. Как правило, имена файлов, представляющих устройства хранения данных, начинаются с sd или hd, после чего следует буква. Например, первый диск на сервере, как правило, будет называться примерно так: /dev/sda.

Разделы таких накопителей тоже будут иметь свои файлы в /dev. В имя такого файла входит sd или hd + буква + порядковый номер раздела. Например, первый раздел на первом диске сервера будет называться /dev/sda1.

Файлы /dev/sd* и /dev/hd* представляют традиционный способ обозначения дисков и разделов, существует значительный недостаток в использовании значений. Ядро Linux распределяет имена устройств при каждой загрузке системы, а это может привести к путанице при изменении узлов устройств.

Чтобы обойти эту проблему, каталог /dev/disk содержит подкаталоги, которые предоставляют более надёжный способ определения дисков и разделов в системе. Они содержат символические ссылки на правильные файлы /dev/[sh]da*, которые создаются при загрузке системы. В названии ссылки содержится идентифицирующий признак каталога. Эти ссылки всегда указывают на правильные устройства, потому они используются как статические идентификаторы хранилищ.

В каталоге /dev/disk могут существовать следующие подкаталоги:

  • by-label: большинство файловых систем предоставляет механизмы маркировки, которые позволяют назначать произвольные имена для диска или раздела. Этот каталог хранит ссылки, названные с помощью предоставленных пользователем меток.
  • by-uuid: UUID (универсально уникальные идентификаторы) – это длинные уникальные последовательности букв и цифр, которые можно использовать в качестве идентификатора для ресурса хранения. Как правило, они очень сложные для человеческого восприятия, но зато они обеспечивают уникальность (даже при работе между несколькими системами). UUID отлично подходят для создания ссылок на хранилища, которые могут мигрировать между системами, так как они устраняют конфликты имён.
  • by-partlabel и by-partuuid: GPT таблицы предоставляют свой собственный набор меток и UUID. Они во многом похожи на идентификаторы из предыдущих каталогов, но используют специфические идентификаторы GPT.
  • by-id: хранит ссылки, сгенерированные серийным номером устройства.
  • by-path: как и by-id, этот каталог использует подключения устройств хранения к самой системе. Ссылки здесь построены на основе интерпретации системой аппаратного обеспечения, используемого для доступа к устройству. Серьёзным недостатком является то, что при подключении устройства к другому порту это значение может измениться.

Как правило, для постоянной идентификации конкретных устройств используются каталоги by-label или by-uuid.

Монтирование блочных устройств

Файлы устройств в каталоге /dev используются для обмена данными с драйвером ядра. Тем не менее, чтобы рассматривать устройство в качестве сегмента доступного пространства, требуется более удобное разделение.

В Linux и других Unix-подобных системах вся система представлена единым унифицированным деревом файлов независимо от количества физических устройств. Таким образом, когда на диске или разделе используется файловая система, её нужно подключить к существующему дереву. Монтирование – это процесс присоединения отформатированного раздела или диска к каталогу в файловой системе Linux. Доступ к содержимому накопителя можно получить с помощью этого каталога.

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

Стандарт иерархии файловой системы рекомендует использовать для временно смонтированных файловых систем каталог /mnt или его подкаталоги. Однако этот стандарт не дает никаких рекомендаций относительно того, где хранить более постоянные устройства, потому вы можете выбрать для них любое удобное место. Обычно для этого также используется каталог /mnt или его подкаталоги.

Постоянное монтирование

Дистрибутивы Linux читают файл /etc/fstab, чтобы узнать, какие файловые системы нужно монтировать во время запуска. Если этот файл не содержит записи о какой-либо файловой системе, то такая файловая система не будет смонтирована автоматически. Исключение составляют только системы, которые определяются файлами .mount системы инициализации systemd.

Файл /etc/fstab достаточно прост. Каждая строка определяет блочное устройство, его точку монтирования, формат диска, параметры монтирования, а также некоторую другую информацию.

Продвинутое управление хранилищами

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

Что такое RAID?

RAID (Redundant Array of Independent Disks) – это технология управления хранением данных и виртуализацией, которая позволяет сгруппировать диски и управлять ими как единым целым.

Читайте также:  Notification center mac os

Характеристики RAID-массива зависит от уровня RAID, который определяет, как именно диски в массиве связаны друг с другом. Выбранный уровень влияет на производительность и избыточность. Наиболее распространенными уровнями являются:

  • RAID 0: также известен как распределение данных. При записи данных в массив они разделяются на блоки и распределяются между дисками в наборе. Это дает прирост производительности, поскольку можно одновременно записывать или читать несколько дисков. Недостатком является то, что отказ одного диска может стать причиной потери данных всего массива, так как ни один диск не содержит достаточных для восстановления данных.
  • RAID 1: технология зеркалирования. Данные, записанные в массив RAID 1, записываются на несколько дисков. Главным преимуществом такого подхода является избыточность данных, что позволяет сохранить данные даже в случае потери жёсткого диска. Поскольку несколько дисков содержат одни и те же данные, полезная емкость уменьшается наполовину.
  • RAID 5: технология распределения данных (подобно RAID 0). Этот уровень также реализует распределенную четность по всем дискам. Это означает, что если диск выйдет из строя, остальные диски позволяют восстановить массив с помощью информации о четности. Этой информации достаточно, чтобы восстановить один из дисков, то есть массив может пережить потерю любого диска.
  • RAID 6: обладает теми же параметрами, что и RAID 5, но использует два диска чётности. То есть, такие массивы могут переносить потерю любых двух дисков. Конечно, емкость массива зависит от четности.
  • RAID 10: комбинация уровней 1 и 0 (массив RAID 0, построенный из массивов RAID 1). Этот уровень предоставляет два набора зеркальных массивов, в которых можно распределять данные. В результате получается высокопроизводительный массив, обладающий некоторыми характеристиками избыточности. Суммарная мощность такого массива составляет половину объединенного дискового пространства.

Что такое LVM?

LVM (или Logical Vvolume Management) – это система, которая абстрагирует основные физические характеристики устройств хранения данных для повышения гибкости и мощности. LVM может создавать группы физических устройств и управлять ими как единым блоком. Это позволяет по мере необходимости сегментировать пространство в логические тома, которые будут работать как разделы.

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

Дальнейшие действия

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

Источник

Для системного администратора

LPI 101: Устройства, файловые системы Linux и стандарт FHS. Создание разделов и файловых систем

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

Кратко рассмотрим блочные устройства и разделы.

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

Абстрагированное представление устройств в виде блоков фиксированного размера с произвольным доступом позволяет программам использовать их независимо от того, является ли устройство жестким диском, дискетой, CD- диском, сетевым диском или каким-либо другим устройством, например файловой системой в оперативной памяти.

Примерами блочных устройств могут быть первый жесткий диск (IDE) (/dev/hda) или второй SCSI-диск (/dev/sdb). Для просмотра каталога /dev используйте команду ls -l. Первый символ b в строке указывает на блочное устройство: флоппи- или CD-дисковод, IDE- или SCSI-диск; а c – на символьное устройство, например, накопитель на магнитной ленте или терминал. См. примеры в листинге 1.

Листинг 1. Блочные и символьные устройства Linux

[ian@lyrebird ian]$ ls -l /dev/fd0 /dev/hda /dev/sdb /dev/st0 /dev/tty0
brw-rw—- 1 ian floppy 2, 0 Jun 24 2004 /dev/fd0
brw-rw—- 1 root disk 3, 0 Jun 24 2004 /dev/hda
brw-rw—- 1 root disk 8, 16 Jun 24 2004 /dev/sdb
crw-rw—- 1 root disk 9, 0 Jun 24 2004 /dev/st0
crw—w—- 1 root root 4, 0 Jun 24 2004 /dev/tty0

Для некоторых блочных устройств, таких как дискеты, CD и DVD- диски, принято использовать одну файловую систему на всем носителе. Однако на жестких дисках больших объемов и даже на небольших USB- накопителях доступное пространство принято делить или разбивать на несколько разделов.

Разделы могут отличаться по объему, на каждом из них может быть своя файловая система, так что один диск может использоваться для различных целей, включая использование его несколькими операционными системами. Например, я использую тестовые системы под несколькими различными дистрибутивами Linux, а также иногда под Windows®, и все они используют один или два общих жестких диска.

Из руководств 101 и 102 вы помните, что жесткий диск имеет геометрию, определяемую в терминах цилиндров, головок и секторов. Даже несмотря на то, что современные диски используют логическую адресацию блоков (LBA), которая в значительной степени маскирует геометрию диска, основной единицей размещения для разделов диска остается цилиндр.

Вывод информации о разделах

Информация о разделах диска хранится в таблице разделов. Таблица разделов содержит информацию о начале и окончании каждого раздела, информацию о его типе и о том, является ли он загрузочным или нет. Чтобы создать или удалить раздел, нужно отредактировать таблицу разделов, используя специальную программу. Для экзамена LPI вам необходимо знать программу fdisk, описанную здесь, хотя существуют и другие инструменты.

Для просмотра разделов используется команда fdisk с опцией -l. Если вы хотите просмотреть разделы для конкретного диска, добавьте имя устройства, например /dev/hda. Заметьте, что инструменты для разбиения на разделы требуют административных прав доступа. Листинг 2 показывает разделы на одном из моих жестких дисков.

Листинг 2. Просмотр разделов диска с помощью команды fdisk

[root@lyrebird root]# fdisk -l /dev/hda
Disk /dev/hda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 2078 16691503+ 7 HPFS/NTFS
/dev/hda2 2079 3295 9775552+ c Win95 FAT32 (LBA)
/dev/hda3 3296 3422 1020127+ 83 Linux
/dev/hda4 3423 19457 128801137+ f Win95 Ext’d (LBA)
/dev/hda5 3423 3684 2104483+ 82 Linux swap
/dev/hda6 3685 6234 20482843+ 83 Linux
/dev/hda7 6235 7605 11012526 83 Linux
/dev/hda8 7606 9645 16386268+ 83 Linux
/dev/hda9 9646 12111 19808113+ 83 Linux
/dev/hda10 12112 15680 28667961 83 Linux
/dev/hda11 15681 19457 30338721 83 Linux

  • В заголовке отражена информация об объеме диска и его геометрии. Большинство больших дисков, использующих LBA, имеют 255 головок на цилиндр и 63 сектора в дорожке, что составляет 16065 секторов или 8225280 байт на цилиндр.
  • В данном примере первый раздел (/dev/hda1) помечен как загрузочный (или активный). Как вы видели в руководстве к теме 102, это обеспечивает загрузку раздела с помощью стандартной загрузочной записи DOS. Этот признак не имеет смысла в LILO или GRUB- загрузчиках.
  • Столбцы Start и End показывают начальный и конечный цилиндры для каждого раздела. Они не должны перекрываться, а должны следовать строго друг за другом без промежутков.
  • Столбец Blocks показывает число блоков размером 1 килобайт (1024 байт) в разделе. Максимальное количество блоков в разделе, следовательно, равняется половине произведения числа цилиндров (End + 1 – Start) на число секторов в цилиндре. Знак + в конце означает, что используются не все секторы раздела.
  • Поле Id указывает на предполагаемое использование раздела. Тип 82 – файл подкачки, 83 – раздел для хранения информации. Существует около 100 различных типов томов. Данный диск используется несколькими операционными системами, в том числе Windows/XP, поэтому на нем есть разделы с файловой системой NTFS (и FAT32).

Создание разделов с помощью команды fdisk

Только что вы узнали, как просмотреть данные о разделах диска с помощью fdisk. Эта команда также позволяет редактировать таблицу разделов с целью создания и удаления разделов.

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

  • Не изменяйте разделы, которые используются в настоящий момент. Составьте план действий и четко его придерживайтесь.
  • Знайте возможности вашего инструментального средства. Fdisk не выполняет изменений без вашего подтверждения. Другие инструменты, как, например parter, могут применять изменения сразу.
  • Прежде чем начинать, создайте резервную копию важной информации, так как любая операция может привести к потере данных.
  • Инструменты для создания разделов диска оперируют таблицей разделов. Если ваш инструмент не выполняет также операций, связанных с перемещением, изменением размера, форматированием или другими способами изменения дискового пространства, ваши данные не будут повреждены. Если вы случайно допустите ошибку, как можно скорее прервите работу и обратитесь за помощью. Возможно, вы еще сможете восстановить разделы и данные.

Для запуска fdisk в интерактивном режиме просто задайте в качестве параметра имя диска, например, /dev/had или /dev/sdb. В следующем примере показана загрузка с рабочего CD-диска Knoppix. Если вы обладаете правами администратора, то получите результат, аналогичный листингу 3.

Листинг 3. Интерактивный запуск fdisk

root@ttyp1[knoppix]# fdisk /dev/hda
The number of cylinders for this disk is set to 14593.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help):

Современные диски содержат более 1024 цилиндров, поэтому обычно вы будете получать предупреждение, как в листинге 3. Нажмите m, чтобы получить список возможных однобуквенных команд, показанный в листинге 4.

Читайте также:  Windows изменить разрешение экрана горячей клавишей

Листинг 4. Помощь в fdisk

Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition’s system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help):

Для просмотра разделов диска нажмите p; результат – в листинге 5.

Листинг 5. Просмотр существующей таблицы разделов

Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 2611 20972826 7 HPFS/NTFS
Command (m for help):

Объем данного диска 120 ГБ, имеется раздел под Windows XP, занимающий около 20 ГБ. Это первичный раздел, помеченный как загрузочный, что типично для Windows-систем.

Формирование структуры диска для рабочей станции

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

  • Еще один первичный раздел для наших загрузочных файлов. Он будет монтироваться как /boot и содержит файлы ядра и исходных RAM-дисков. Если вы используете загрузчик GRUB, то его файлы тоже будут располагаться здесь. Из руководства к теме 102 следует, что для этого необходимо около 100 Мбайт. Из листинга 5 видно, что объем цилиндра примерно 8 Мбайт, поэтому загрузочный раздел /boot займет 13 цилиндров. Это будет /dev/hda2.
  • Создадим расширенный раздел для размещения логических разделов, занимающий остальное свободное пространство. Это будет /dev/hda3.
  • Создадим раздел подкачки размером 500 Мбайт как /dev/hda5. Он займет 64 цилиндра.
  • Создадим логический раздел объемом около 20 ГБ для нашей Linux- системы. Это будет /dev/hda6.
  • Создадим отдельный раздел для данных пользователя размером 10 ГБ. В дальнейшем он будет монтироваться как /home, а пока это будет просто /dev/hda7.
  • И наконец, создадим маленький (2 ГБ) раздел для обмена данными между системами Linux и Windows. В дальнейшем на нем будет использоваться файловая система FAT32 (или vfat). Это будет /dev/hda8.

Начнем с использования команды n для создания нового раздела; см. листинг 6.

Листинг 6. Создание первого раздела

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (2612-14593, default 2612):
Using default value 2612
Last cylinder or +size or +sizeM or +sizeK (2612-14593, default 14593): 2624
Command (m for help): p
Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 2611 20972826 7 HPFS/NTFS
/dev/hda2 2612 2624 104422+ 83 Linux
Command (m for help):

Мы берем значение по умолчанию для первого цилиндра и задаем значение 2624 для последнего цилиндра, в результате получаем раздел из 13 цилиндров. Из листинга 6 видно, что наш раздел в действительности занимает примерно 100 Мбайт. Поскольку это первичный раздел, он должен иметь номер от 1 до 4. Рекомендуется назначать номера разделов последовательно; если этого не делать, некоторые инструменты выдают предупредительные сообщения.

Заметьте также, что наш новый раздел будет иметь тип 83, то есть раздел для хранения данных в Linux. Это можно рассматривать как указатель операционной системы, которую планируется использовать на этом разделе. Дальнейшее использование должно быть согласовано с этим, но в данный момент мы даже не будем форматировать раздел, не говоря уж о том, чтобы размещать на нем какую-либо информацию.

Теперь создадим расширенный раздел, который будет содержать логические разделы диска. Присвоим этому разделу номер 3 (/dev/hda3). Процесс и результат показан в листинге 7. Заметьте, что тип раздела назначается автоматически.

Листинг 7. Создание расширенного раздела

Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 3
First cylinder (2625-14593, default 2625):
Using default value 2625
Last cylinder or +size or +sizeM or +sizeK (2625-14593, default 14593):
Using default value 14593
Command (m for help): p
Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 2611 20972826 7 HPFS/NTFS
/dev/hda2 2612 2624 104422+ 83 Linux
/dev/hda3 2625 14593 96140992+ 5 Extended
Command (m for help):

Теперь перейдем к раздела файла подкачки как логического раздела внутри нашего расширенного раздела. Мы задаем для конечного цилиндра значение +64 (цилиндра) вместо того, чтобы считать самим. Отметьте, что при этом мы используем команду t, чтобы задать для вновь создаваемого раздела тип 82 (раздел подкачки Linux). Иначе это будет раздел с типом 83 (данные Linux).

Листинг 8. Создание раздела подкачки

Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (2625-14593, default 2625):
Using default value 2625
Last cylinder or +size or +sizeM or +sizeK (2625-14593, default 14593): +64
Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): 82
Changed system type of partition 5 to 82 (Linux swap)
Command (m for help): p
Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 2611 20972826 7 HPFS/NTFS
/dev/hda2 2612 2624 104422+ 83 Linux
/dev/hda3 2625 14593 96140992+ 5 Extended
/dev/hda5 2625 2689 522081 82 Linux swap
Command (m for help):

Теперь определим основной раздел для Linux и раздел /home. Для этого просто зададим объемы +20480 Мбайт и +10240 Мбайт, т.е. 20 ГБ и 10 ГБ соответственно. Предоставим fdisk самостоятельно подсчитать число цилиндров. Результаты представлены в листинге 9.

Листинг 9. Создание основного раздела Linux

Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (2690-14593, default 2690):
Using default value 2690
Last cylinder or +size or +sizeM or +sizeK (2690-14593, default 14593): +20480M
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (5181-14593, default 5181):
Using default value 5181
Last cylinder or +size or +sizeM or +sizeK (5181-14593, default 14593): +10240M
Command (m for help): p
Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 2611 20972826 7 HPFS/NTFS
/dev/hda2 2612 2624 104422+ 83 Linux
/dev/hda3 2625 14593 96140992+ 5 Extended
/dev/hda5 2625 2689 522081 82 Linux swap
/dev/hda6 2690 5180 20008926 83 Linux
/dev/hda7 5181 6426 10008463+ 83 Linux
Command (m for help):

Последний раздел – раздел с файловой системой FAT32. Выполним уже знакомые действия для создания раздела /dev/hda9, определив объем как +2048 Мбайт, а затем изменим тип раздела на b (для FAT32 в версии Windows 95). Затем сохраним изменения.

Сохранение таблицы разделов

До настоящего времени мы редактировали таблицу разделов в оперативной памяти. Можно использовать команду q для выхода без сохранения изменений. Если что-то выполнено не так, как нужно, можно использовать d для удаления одного или более разделов и переопределить их заново. Если все сделано верно, используем v для проверки, а затем w, чтобы сохранить новую таблицу разделов и выйти. Смотрите листинг 10. Если вновь запустить fdisk -l, увидим, что изменения уже применены в Linux. В отличие от некоторых других операционных систем, для того, чтобы увидеть эти изменения, не всегда необходима перезагрузка. Перезагрузка может потребоваться, например, если раздел /dev/hda3 переназначается в /dev/hda2 из-за, того, что раздел /dev/hda2 был удален. Если перезагрузка необходима, fdisk сообщит вам об этом.

Листинг 10. Сохранение таблицы разделов.

Command (m for help): v
127186915 unallocated sectors
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
root@ttyp0[knoppix]# fdisk -l /dev/hda
Disk /dev/hda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 2611 20972826 7 HPFS/NTFS
/dev/hda2 2612 2624 104422+ 83 Linux
/dev/hda3 2625 14593 96140992+ 5 Extended
/dev/hda5 2625 2689 522081 82 Linux swap
/dev/hda6 2690 5180 20008926 83 Linux
/dev/hda7 5181 6426 10008463+ 83 Linux
/dev/hda8 6427 6676 2008093+ b W95 FAT32

Подробнее про fdisk

Можно отметить, что мы не изменяли загрузочный раздел. Наш диск по-прежнему имеет главную загрузочную запись Windows и соответственно будет загружаться с первого раздела, который помечен как загрузочный (раздел NTFS в нашем примере).

Ни LILO, ни GRUB не используют флаг загрузочного раздела. Если какой-либо из этих загрузчиков будет установлен в главной загрузочной записи, он может загрузить раздел Windows XP. Также можно установить LILO или GRUB в раздел /boot (/dev/hda2), пометить этот раздел как загрузочный и удалить загрузочный флажок с раздела /dev/hda1. Оставить первоначальную загрузочную запись полезно, если впоследствии на машине вновь будет использоваться только Windows.

Мы рассмотрели один из способов формирования рабочей станции в Linux.

Типы файловых систем

Linux поддерживает несколько различных типов файловых систем. Каждая имеет свои достоинства, недостатки и отличительные черты. Важное свойство файловой системы – журналирование – позволяет быстро восстановить систему после сбоя. Как правило, журналируемые системы предпочтительнее нежурналируемых, если у вас есть выбор. Ниже приведен краткий обзор типов файловых систем, которые необходимо знать для экзамена LPI. Более подробную информацию см. в разделе Ресурсы

Читайте также:  Обработка аудио mac os

Файловая система ext2

Файловая система ext2 (также известная как вторая расширенная файловая система) разработана для устранения недостатков в системе Minix, использовавшейся в ранних версиях Linux. Она широко использовалась в Linux в течение длительного времени. Ext2 не журналируется и в значительной степени вытеснена ext3.

Файловая система ext3

Файловая система ext3 дополняет возможности стандартной ext2 журналированием и поэтому представляет собой эволюционное развитие очень стабильной файловой системы. Она обеспечивает разумную производительность в большинстве ситуаций и продолжает совершенствоваться. Поскольку она представляет собой расширенный вариант системы ext2, есть возможность преобразовывать систему ext2 в ext3 и, в случае необходимости, обратно.

Файловая система ReiserFS

ReiserFS – это файловая система, основанная на B-дереве, с очень хорошими рабочими характеристиками, особенно для большого числа маленьких файлов. ReiserFS хорошо масштабируется и является журналируемой.

Файловая система XFS

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

Файловая система раздела подкачки

Пространство для подкачки должно быть отформатировано, но обычно оно не рассматривается как отдельная файловая система.

Файловая система vfat

Эта файловая система (также известная как FAT32) не является журналируемой и имеет множество недостатков по сравнению с файловыми системами, используемыми Linux. Она применяется для обмена данными между системами Windows и Linux, поскольку читается обеими. Не используйте эту файловую систему в Linux, за исключением случаев совместного использования данных системами Windows и Linux. Если распаковать архив Linux на диск с системой vfat, вы потеряете права доступа, например на выполнение программ, а также символические ссылки, которые могли храниться в архиве.

Как ext3, так и ReiserFS являются зрелыми файловыми системами и используются по умолчанию в ряде дистрибутивов. Обе они рекомендованы к широкому использованию.

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

Для создания файловых систем в Linux используется команда mkfs, а для создания раздела подкачки – команда mkswap. Команда mkfs фактически является интерфейсом доступа к целому ряду команд, специфичных для конкретных файловых систем, например, mkfs.ext3 для ext3, mkfs.reiserfs для ReiserFS.

Поддержка каких файловых систем имеется в вашей системе? Чтобы это выяснить, используйте команду ls /sbin/mk*. Пример представлен в листинге 11.

Листинг 11. Команды для создания файловых систем

r oot@ttyp0[knoppix]# ls /sbin/mk*
/sbin/mkdosfs /sbin/mkfs.ext2 /sbin/mkfs.msdos /sbin/mkraid
/sbin/mke2fs /sbin/mkfs.ext3 /sbin/mkfs.reiserfs /sbin/mkreiserfs
/sbin/mkfs /sbin/mkfs.jfs /sbin/mkfs.vfat /sbin/mkswap
/sbin/mkfs.cramfs /sbin/mkfs.minix /sbin/mkfs.xfs

Отметьте различные формы некоторых команд. Например, команды mke2fs, mkfs.ext2 и mkfs.ext3 равнозначны, как и mkreiserfs и mkfs.reiserfs.

Существует несколько общих опций для всех mkfs-команд. Опции, которые специфичны для создаваемой файловой системы, передаются командам создания в зависимости от типа, определенного параметром -type. В наших примерах используется mkfs -type, но можно использовать и другие формы с тем же результатом. Например, можно использовать mkfs -type reiserfs, mkreiserfs или mkfs.reiserfs. Для вызова справочных страниц по конкретной файловой системе укажите в качестве имени соответствующую команду mkfs, например, man mkfs.reiserfs. Многие значения, приведенные в нижеследующих примерах вывода, управляются опциями для mkfs.

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

Листинг 12. Создание файловой системы ext3

root@ttyp0[knoppix]# mkfs -t ext3 /dev/hda8
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
251392 inodes, 502023 blocks
25101 blocks (5.00%) reserved for the super user
First data block=0
16 block groups
32768 blocks per group, 32768 fragments per group
15712 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

Полезная опция, используемая при создании ext2 и ext3 – опция -L с именем, которая назначает метку тому. Метку можно использовать при монтировании файловой системы вместо имени устройства; это обеспечивает определенный уровень изоляции в отношении изменений, который необходимо отразить в различных управляющих файлах. Для просмотра и установки метки на существующую систему ext2 или ext3 используется команда e2label. Длина метки ограничена 16 символами.

Следует заметить, что ext3 ведет журнал. Если вы хотите добавить журналирование к существующей системе ext2, используйте команду tune2fs с опцией -j.

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

Листинг 13. Создание файловой системы ReiserFS

.root@ttyp0[knoppix]# mkfs -t reiserfs /dev/hda6
mkfs.reiserfs 3.6.17 (2003 www.namesys.com)
A pair of credits:
Many persons came to www.namesys.com/support.html, and got a question answered
for $25, or just gave us a small donation there.
Jeremy Fitzhardinge wrote the teahash.c code for V3. Colin Plumb also
contributed to that.
Guessing about desired format. Kernel 2.4.26 is running.
Format 3.6 with standard journal
Count of blocks on the device: 5002224
Number of blocks consumed by mkreiserfs formatting process: 8364
Blocksize: 4096
Hash function used to sort names: «r5»
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 72e317d6-8d3a-45e1-bcda-ad7eff2b3b40
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
ALL DATA WILL BE LOST ON ‘/dev/hda6’!
Continue (y/n):y
Initializing journal — 0%. 20%. 40%. 60%. 80%. 100%
Syncing..ok
Tell your friends to use a kernel based on 2.4.18 or later, and especially not a
kernel based on 2.4.9, when you use reiserFS. Have fun.
ReiserFS is successfully created on /dev/hda6.

Для задания метки тома используйте -l (или опцию –label с именем). Для добавления или просмотра метки к существующей системе ReiserFS используется команда reiserfstune. Максимальное число символов в метке – 16.

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

Листинг 14. Создание файловой системы XFS

root@ttyp0[knoppix]# mkfs -t xfs /dev/hda7
meta-data=/dev/hda7 isize=256 agcount=16, agsize=156382 blks
= sectsz=512
data = bsize=4096 blocks=2502112, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=1
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=2560, version=1
= sectsz=512 sunit=0 blks
realtime =none extsz=65536 blocks=0, rtextents=0

Для задания метки тома в системе XFS используется опция -L с именем. Для добавления метки к существующей файловой системе XFS используется команда xfs_admin с опцией -L. Для просмотра метки используется команда xfs_admin с опцией -l. В отличие от ext2, ext3 и ReiserFS максимальное число символов в метке составляет 12.

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

Листинг 15. Создание файловой системы vfat

root@ttyp0[knoppix]# mkfs -t vfat /dev/hda8
mkfs.vfat 2.10 (22 Sep 2003)

Метка тома в системе FAT32 назначается с помощью опции -n. Команда e2label отображает или устанавливает метку тома в системе vfat, а также в разделах ext. Длина метки ограничена 16 символами.

Создание пространства подкачки

Листинг 16. Создание пространства подкачки

root@ttyp0[knoppix]# mkswap /dev/hda5
Setting up swapspace version 1, size = 534605 kB

Разделы подкачки, в отличие от обыкновенных файловых систем, не монтируются, а активизируются командой swapon. Стартовые сценарии Linux автоматически активизируют разделы подкачки.

Другие инструменты и файловые системы

Следующие инструменты и файловые системы не входят в цели данного экзамена LPI. Здесь мы приводим очень краткий обзор инструментов и файловых систем, которые вам могут встретиться.

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

Многие дистрибутивы Linux содержат команды cfdisk и sfdisk. Команда cfdisk предоставляет более удобный графический интерфейс, чем fdisk, используя библиотеку функций ncurses, как показано на рисунке 1. Команда sfdisk предназначена для использования программистами и допускает использование сценариев. Применяйте ее, только если умеете ею пользоваться.

Рисунок 1. Использование cfdisk

Другим распространенным инструментом для работы с таблицей разделов является команда parted, с помощью которой можно изменять и формировать множество типов разделов, а также создавать и удалять их. Для изменения объема NTFS- раздела вместо команды parted используется ntfsresize. Команда qtparted использует графический интерфейс на базе Qt. Она выполняет как функции parted, так и ntfsresize.

Команда gparted – еще один инструмент с графическим интерфейсом, разработанный для среды GNOME. Она использует библиотеки GTK+GUI, как показано на рисунке 2.

Рисунок 2. Применение gparted

Имеется также ряд коммерческих инструментов для создания дисковых разделов. Возможно, наиболее известный из них – PartitionMagic, теперь распространяемый Symantec.

Многие дистрибутивы позволяют делить диск на разделы, а иногда также сжимать существующие разделы Windows NTFS или FAT32 в процессе установки. Более точную информацию см. в руководстве по установке конкретного дистрибутива.

Диспетчер логических томов

Диспетчер логических томов (LVM) для Linux позволяет объединять несколько физических устройств хранения в единую группу томов. Например, можно добавить раздел к существующей группе томов, вместо того чтобы искать необходимое для вашей файловой системы непрерывное дисковое пространство.

RAID (резервированный массив независимых дисков) – это технология, обеспечивающая надежное хранение информации с использованием недорогих дисков, которые гораздо доступнее используемых в системах высшей ценовой категории. Существует несколько типов RAID-массивов. Технология RAID может быть реализована как на аппаратном уровне, так и на программном. Linux поддерживает оба варианта.

Другие файловые системы

Вам также могут встретиться файловые системы, не рассмотренные здесь.

Journaled File System (JFS) от IBM, в настоящее время используемая в корпоративных серверах компании IBM, разработана для серверных сред с высокой пропускной способностью. Она реализована для Linux и входит в состав некоторых дистрибутивов. Для создания файловой системы JFS используется команда mkfs.jfs.

Существуют и другие файловые системы, например cramfs, часто используемая встроенными устройствами.

В следующем разделе рассказывается, как поддерживать целостность файловой системы и что делать при возникновении неполадок.

Источник

Оцените статью