 | Создание и конфигурирование файловой системы
Начнем с создания и конфигурирования файловых систем и их параметров.
Создание разделов
Прежде чем вы сможете пользоваться файловыми системами Linux, вам нужно создать их. Для того чтобы создать файловую систему, вам сначала необходимо создать раздел, на котором вы впоследствии будете создавать файловую систему. На жестком диске с архитектурой x86 может быть создано до четырех первичных (primary) разделов, при этом последний из этих первичных разделов может быть расширенным (extended) и включать в себя множество логических разделов.
До недавнего времени существовали ограничения на порядковый номер цилиндра, на котором может находиться загрузочный раздел, на максимальные размеры дисков, на местоположение первичного раздела на больших дисках и так далее. Однако в последние несколько лет практически все системные BIOS научились управлять дисками независимо от их размера, и современные загрузчики (по крайней мере для Linux) не имеют никаких особенных ограничений, касающихся размеров разделов или их местоположения.
Единственный оставшийся момент, о котором следует побеспокоиться, это файловые системы, отличные от Linux. Для некоторых из них время от времени все же появляется необходимость располагаться на первичном разделе в начале жесткого диска. Разделы же Linux могут прекрасно жить как на расширенном разделе, так и на любом доступном диске.
Существует несколько широко используемых инструментов в мире Linux для того, чтобы создавать и управлять разделами на жестких дисках. Самый старый из них - fdisk . Несколько позже становится популярным основанный на curses инструмент cfdisk . Также часто используется для разбиения жестких дисков программа parted сообщества GNU. Ну а, в свою очередь, программы инсталляции, предлагаемые большинством известных дистрибутивов, и/или их графическая оболочка, обеспечивают удобный интерфейс для процедуры разбиения диска и просмотра таблицы разделов.
Из всех этих инструментов, утилита fdisk остается самым гибким и нетребовательным инструментом. Но не стоит обольщаться. Случайная запись неправильной таблицы разделов влечет проблемы независимо от того, какой программой вы пользуетесь. Но если ваши разделы были созданы нестандартными способами, например, не инструментами Linux, то, возможно, fdisk будет работать там, где другие инструменты могли бы отказаться пробовать вообще.
Однако, программа cfdisk более дружественна пользователю и более интерактивна (в том случае, если она не откажется работать). Кроме того, parted обладает великолепными возможностями для изменения размера и перемещения существующего раздела не хуже чем fdisk или cfdisk.
Какую бы программу вы не использовали, чтобы создать разделы, все они работают похожим образом. Эти действия вы должны выполнять как суперпользователь, лучше всего, в однопользовательском режиме. Трудно переоценить важность этого момента, поэтому будьте очень осторожны, когда вы изменяете разделы, сделайте резервную копию всех важных данных и обратите особое внимание на то, какие изменения вы делаете.
Прежде чем вы начнете изменять таблицу разделов, неплохо было бы выяснить, какие разделы уже существуют. С помощью команды fdisk -l /dev/hda (или такой же, но для других дисков, например, /dev/hdb или /dev/sda) вы можете узнать, какие разделы имеются в системе. Команда mount также полезна для выяснения, как фактически используются существующие разделы. Если вы хотите создать новый раздел, имейте в виду какие-нибудь свободные секторы на последнем первичном разделе, которые можно было бы использовать для нового расширенного раздела.
Взгляните на пример таблицы разделов в моей ОС Linux:
Листинг 1. Пример обычной таблицы разделов
% fdisk -l /dev/sda
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1216 9767488+ 7 HPFS/NTFS
/dev/sda3 1217 4255 24410767+ 83 Linux
/dev/sda4 4256 9729 43969905 5 Extended
/dev/sda5 4256 4380 1004031 82 Linux swap /
Solaris
/dev/sda6 4381 5597 9775521 83 Linux
|
Из этой таблицы можно кое-что почерпнуть. Во-первых, можно увидеть, что первый раздел, вероятно, используется другой операционной системой. Далее введем mount, чтобы выяснить, как используются разделы:
% mount | head -1
/dev/sda3 on / type reiserfs (rw,noatime,notail,commit=600)
Таким образом, существующая система смонтирована как корневая файловая система на /dev/sda3. Возможно, наиболее интересным наблюдением является то, что раздел /dev/sda4 простирается до 9729 цилиндра, но этот расширенный раздел использует только часть всего имеющегося места.
После обнаружения свободного места, доступного на жестком диске, используем его для создания нового раздела с помощью fdisk:
% fdisk /dev/sda
Наш жесткий диск насчитывает 9729 цилиндров. Это не является нарушением, но все же больше чем 1024 и, при определенных условиях, может вызвать проблемы с:
- Загрузочным программным обеспечением (типа старых версий LILO)
- Загрузочными и разбивающими жесткие диски программами от других операционных систем (например, DOS FDISK или OS/2 FDISK)
Листинг 2. Создание раздела
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (5598-9729), default 5598):
Using default value 5598
Last cylinder or +size or +sizeM or +sizeK (5598-9729, default 9729):
+10000M
Command (m for help): w
The partition table has been altered!
|
Все, что следует за двоеточием, должно быть введено пользователем (вами). Таким образом, мы создали новый раздел Linux размером 10 GB.
/dev/sda7 5598 6814 9775521 83 Linux
Далее будет рассказано, как использовать вновь созданный раздел. Возможно, понадобится перезагрузить систему, чтобы получить доступ к новому разделу.
Создание файловой системы
Одного лишь наличия раздела недостаточно; вы должны создать на нем файловую систему. Мы создали новый раздел Linux /dev/sda7 и теперь должны выбрать, какой тип файловой системы, поддерживаемой Linux, использовать на этом разделе. Может быть, мы хотим создать исторически использующуюся по умолчанию файловую систему ext2? Или более новую журналируемую расширенную файловую систему формата ext3? Возможно, мы хотим создать одну из продвинутых файловых систем, привнесенных в Linux другими компаниями, например, ReiserFS, XFS или JFS. Или нам нужно иметь файловую систему, которая может взаимодействовать с другой операционной системой, типа Minix, MS-DOS, или VFAT (некоторые другие могут быть прочитаны, если уже созданы, но не всегда могут быть созданы инструментами Linux).
Для того, чтобы создавать новые файловые системы, нужно использовать следующие принятые обозначения mkfs.*.
Таким образом, ваша файловая система может быть создана при помощи
mkfs.ext2,
mkfs.minix,
mkfs.xfx,
и так далее, обычно это установлено в /sbin/. Также вы можете задать любую из них, используя синтаксис mkfs -t <fstype>. Для некоторых (не всех) типов файловых систем имеется короткая форма записи, например, mke3fs. Возможность создания определенного типа файловой системы зависит от дистрибутива, который вы используете, и его версии, а также, от дополнительного ПО, которое вы самостоятельно установили. При этом заметим, что mkfs.ext2 имеется практически в любом дистрибутиве.
Создать файловую систему достаточно просто. Вам нужно только применить инструмент mkfs.* к нужному разделу (к тому, на котором вы хотите ее создать). Например:
% mkfs.xfs /dev/sda7
Сообщения, которые вы далее увидите, зависят от файловой системы, которую вы предпочли. Вообще, эти сообщения дают вам информацию относительно числа inod'ов, блоков, типа журналирования (если имеется журналируемость), протяженности, и другую, соответствующую характеру использующейся файловой системы. Многие (но не все, к сожалению) из средств, создающих файловую систему предупредят вас, если вы решите создать новую файловую систему на разделе с уже существующей файловой системой, так что приступайте с большой осторожностью (создание новой файловой системы поверх старой может привести к потере данных).
Создание файловой системы ISO при помощи mkisofs
Отдельный и особенный случай создания файловой системы - это создание файловой системы ISO, которая является образом системы и может быть записана на компакт-диск или DVD-диск. Файловая система ISO является особенной в том смысле, что является действительно только файлом (правда, большим) с данными, выстроенными определенным способом, а не упорядочиванием физического устройства, такого как /dev/cdrom или /dev/hdb3.
Основная идея создания файловой системы ISO, которая означает либо ISO 9660 либо HFS, состоит в том, чтобы просто разместить файлы в одной или более существующих иерархий и представить их в образе ISO. Сам ISO9660 ограничивается простым DOS 8.3, но Rock Ridge и расширение Joliet разрешают более длинные названия и/или дополнительные свойства файла. Например, чтобы создать образ проекта, Вы могли бы использовать команду:
% mkisofs -o ProjectCD.iso -r ~/project-files ~/project-extras
В этом случае, мы создаем образ ISO, который использует атрибуты Rock Ridge (но, в отличие от -R, устанавливает более полезные значения, как, например, все файлы доступны для чтения), и содержит все файлы двух каталогов. Другие функции позволили бы нам добавлять загружаемые заголовки к образу, создавать образ HFS, размещать каталоги в указанных местоположениях, отличных от корневого, и более тонко настраивать атрибуты файла.
Создание файловой системы ISO при помощи cdrecord
Передача образа ISO на записываемый компакт-диск или DVD-диск в настоящее время часто осуществляется посредством связывающих инструментов, таких как интерфейс GUI. Например, и Gnome и KDE осуществляют запись компакт-дисков через интерфейс файлового менеджера. Существуют также удобные коммерческие программы, но для системного администратора старая добрая команда cdrecord представляется наиболее надежной из средств, имеющихся в большинстве современных дистрибутивов, и намного ближе к "стандарту", чем другие программы.
Вообще, нужно только определить устройство, на которое вы хотите записать, да файл ISO, который вы хотите записать.
Вы можете также определить как обычно множество параметров процесса записи, например, -overburn для компакт-дисков больших, чем 650 MB или определенную скорость записи для вашего записывающего устройства. Советую прочесть страницу помощи man для cdrecord для уточнения деталей.
Вы можете обнаружить записывающее устройство при помощи -scanbus. Устройство, которое вам нужно, имеет числовой индикатор шины, состоящий из трех цифр, и не является блочным устройством в вашей файловой системе. Например, можно увидеть нечто, похожее на следующее (сокращенно):
Листинг 3. Обнаружение записывающего устройства
% cdrecord -scanbus
[...]
scsibus0:
0,0,0 0) 'ATA ' 'WDC WD800UE-00HC' '09.0' Disk
0,1,0 1) *
[...]
scsibus1:
1,0,0 100) 'Slimtype' 'DVDRW SOSW-852S ' 'PSB2' Removable
CD-ROM
[...]
|
Получив информацию с шины, вы можете записать образ:
% sudo cdrecord -overburn -v speed=16 dev=1,0,0
/media/KNOPPIX_V3.6-2004-08-16-EN.iso
В этом случае образ небольшого размера, и я знаю, что мое записывающее устройство поддерживает скорость 16x. Вывод команды будет весьма многословным из-за использования флага -v, но это помогает в понимании процесса.
Создание файловой системы ISO при помощи dd
В заключение, иногда бывает необходимо создать новый образ ISO не из каталогов в вашей главной файловой системе, а из уже существующего компакт-диска или DVD-диска. Чтобы сделать образ ISO из компакт-диска, используйте команду dd, но обращайтесь к физическому адресу блочного устройства для компакт-дисков, а не к точке монтирования:
% dd if=/dev/cdrom of=project-cd.iso
Вы могли бы задаться вопросом, почему не используют команду cp, если цель состоит в том, чтобы просто скопировать байты. Фактически, если вы игнорируете ошибку ввода/вывода, о которой сообщается, когда устройство исчерпывает байты, подлежащие копированию, команда cp, вероятно , может работать. Все же, команда dd обладает лучшими качествами (она не жалуется, а вместо этого сообщает об итогах своей работы).
|  |