Работа с файлами и устройствами хранения данных в Linux отличается от Windows. Есть файлы и иерархическая структура каталогов, но кроме этого, вам придется развить другой способ мышления.
В системе Linux нет букв, обозначающих диски. На самом деле, это очень полезно. Если вы работали в системе Windows в сложном сетевом окружении, на надежной машине с несколькими устройствами, алфавита могло просто не хватить. В Linux есть только одна файловая структура. Она начинается от корня (/), и все локальные файловые системы, все локальные устройства и все удаленные системы представлены в этой структуре подкаталогами.
Когда Linux загружается впервые, он строит эту файловую структуру на основе информации из /etc/fstab файла. Там, где Windows присваивает разделам жесткого диска и другим устройствам хранения данных буквы, Linux определяет им каталоги в корневой файловой структуре. Структуру иерархии можно полностью настраивать и менять на лету.
Подмонтируй!
Слово, обозначающее добавление устройства к файловой системе — монтирование (mounting). Linux автоматически монтирует корневую (/) файловую систему. Отдельно может присутствовать файловая система /boot, в которой расположены загрузочные файлы ядра. Linux также монтирует некоторые особые файловые системы. Область свопинга не показывается как часть файловой системы, но управляется ядром. Однако, другие особые файловые системы, такие как proc, видны как нормальная часть файловой системы, а ее содержимое можно обрабатывать, как обычные файлы.
Другие файловые системы, такие как сменный носитель или удаленные файловые системы необходимо монтировать вручную. Монтируя файловую систему, вы должны знать правильный путь, чтобы сослаться на него из Linux и иметь пустой каталог, чтобы использовать его как точку монтирования (mount point). Для сменных носителей Linux, вероятно, создаст точки монтирования во время инсталляции. В Red Hat Linux устройство чтения компакт-дисков предполагается монтировать к каталогу /mnt/cdrom. Это означает, что когда вы вставляете CD в устройство CDROM, вы вводите команду:
mount /mnt/cdrom
CD добавляется в файловую систему и устройство чтения CD блокируется так, что случайно оно не откроется. Для доступа к содержимому компакт-диска просто используйте каталог /mnt/cdrom. Когда вы закончите работать с CD, можно будет удалить его из файловой системы при помощи команды:
umount /mnt/cdrom
Каталог /mnt/cdrom будет очищен, а устройство чтения CD разблокировано. Точно также следует поступать и с остальными сменными носителями информации, такими как дискета (/mnt/floppy).
Если выполнить mount без аргументов, то будут показаны файловые системы, подмонтированные в настоящий момент.
Файл /etc/fstab
Связь между устройством и его точкой монтирования настраивается в файле /etc/fstab. Его можно редактировать вручную или оставить программе администрирования. Вот пример /etc/fstab/:
/dev/hda5 / ext3 defaults 1 1
/dev/hda2 /boot ext3 exec,dev,duid,rw 1 2
/dev/hda6 swap swap defaults 0 0
/dev/scd0 /mnt/cdrom auto ro,noauto,exec 0 0
none /dev/pts devpts id=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
Каждая строка представляет монтируемую файловую систему. Первая колонка определяет устройство, которое должно быть подмонтировано. Во второй колонке находится точка монтирования — местоположение данного устройства в файловой системе. Третья колонка определяет тип файловой системы. В четвертой содержатся опции, показывающие как эта файловая система будет обрабатываться. В последней колонке написаны флаги, относящиеся к файловой системе. Первая цифра, 0 или 1, показывает, должна ли система копироваться при помощи команды dump (это нужно для системных резервных копий). Вторая цифра может быть 0, 1 или 2, она показывает порядок, в котором файловая система должна быть проверена при загрузке. 0 — не должна проверяться вовсе. 1 — должна проверяться первой и использоваться как корневая (/). Для всех остальных систем ставится 2.
В файле fstab, приведенном выше, корневая файловая система расположена на первом IDE жестком диске, в пятом разделе, первый логический диск в расширенном разделе. Файловая система /boot, где находятся файлы запуска ядра, расположена на первом IDE жестком диске, во втором первичном разделе. Пространство свопинга расположено на первом IDE жестком диске, в шестом разделе, втором логическом диске в расширенном разделе. Другие перечисленные файловые системы показывают свое устройство, как “none”. Мы осветим это вкратце. А сейчас давайте сконцентрируемся на физических дисках.
Опции в четвертой колонке будут меняться в зависимости от типа файловой системы. В приведенном выше примере / и /boot подмонтированы с опциями “default”. Это означает, что они монтируются автоматически, доступны для чтения и записи с асинхронным I/O (вводом/выводом). Только root может монтировать и отмонтировать устройства, но пользователи могут выполнять бинарники и использовать “sticky bit” (будет описан позже). Файловая система будет управляться как блочное устройство. Для /mnt/cdrom, однако, опции другие. Он не монтируется автоматически и будет открыт только для чтения. Пользователи смогут выполнять скрипты и программы в этой файловой системе.
Добавление файловых систем
Вы можете добавить файловые системы в /etc/fstab, дописав в файл новые строки. В качестве полезного примера приведу устройство RAID с файловыми ресурсами для использования отделом. Данное устройство будет содержать файлы данных и храниться отдельно от операционной системы, так что можно будет легко переместить его в другую систему в случае поломки оборудования. RAID уже сконфигурирован и распознается Linux как /dev/sdc, третье устройство SCSI. Журналируемая файловая система ext3 создана на первом разделе, и мы можем обращаться к ней как /dev/sdc1. Я хочу, чтобы этот RAID автоматически монтировался в файловую систему при загрузке компьютера.
Я добавляю следующую строку в /etc/fstab:
/dev/sdc1 /data ext3 defaults 0 0
В результате RAID подмонтируется при загрузке точно так же как системы / и /boot. Теперь я просто создаю каталог, который указал в качестве точки монтирования:
mkdir /data
Создав этот пустой каталог, мы теперь можем монтировать в него файловую систему:
mount /data
RAID теперь соответствует /data. Если система когда-либо будет перезагружаться, то /data подмонтируется автоматически.
Разделы
Разделы в Linux работают в общем так же как и в Windows. Консольная команда fdisk используется для создания и управления разделами. При выполнении этой команды вы должны указать ей устройство. Чтобы посмотреть доступные устройства, воспользуйтесь командой fdisk -l.
Снова запустите fdisk с устройством и вы получите короткое приглашение.
[root@cmw-t30 root]# fdisk /dev/hda
The number of cylinders for this disk is set to 7752.
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):
Ввод “m” даст вам меню команд. Текущая таблица разделов отобразится по нажатию “p”. Вы можете создавать, удалять и изменять тип существующих разделов. “l” покажет вам полный список доступных типов разделов. Свои изменения в таблицу разделов вносите с помощью “w”, закрывайте программу или выходите без сохранения используя “q”. Некоторые изменения вступят в силу незамедлительно. Некоторые могут потребовать перезагрузки системы.
Правила создания разделов в Linux те же, что и в Windows. Доступно четыре первичных раздела, каждый из них может быть расширен.
Типы файловых систем
Linux может обслуживать любой тип файловой системы, о котором знает ядро. Изрядное их количество компилируется по умолчанию, а новые можно добавлять. Наиболее интересные из них:
- ext2: Стандартная файловая система Linux
- ext3: Стандартная файловая система Linux с добавленным протоколированием
- vfat: Файловая система Microsoft Fat32
- jfs: Журналируемая файловая система IBM
- reiserfs: Еще одна популярная журналируемая файловая система
Форматирование разделов
Созданные разделы форматируются подходящей версией команды mkfs. У файловых систем есть свои собственные версии mkfs, например, mkfs.ext2 или mkfs.ext3. Эти вспомогательные скрипты позволят создать файловую систему, просто указав на раздел. Вот несколько примеров:
# Create an ext2 file system on the third
# parition of the first IDE hard drive
mkfs.ext2 /dev/hda3
# Create an ext3 file system on the first
# partition of the 2nd SCSI hard drivemkfs.ext2
mkfs.ext3 /dev/sdb1
# Create a jfs file system in an extended
# partition on the first IDE hard drive.
mkfs.jfs /dev/hda5
Существуют различные продвинутые параметры, чтобы влиять на то, как будет форматироваться раздел, но в общем случае вполне подходят значения по умолчанию. Отформатированный раздел может быть смонтирован в корень (/). Файловую систему следует отмонтировать перед переформатированием.
Webmin
Webmin предоставляет несколько инструментов для работы с файловыми системами и разделами.
Техника, разделы на локальных дисках
Каждый диск и раздел показан с текущей информацией об использовании. Щелкните по названию файловой системы, чтобы узнать подробности. У отмонтированных разделов можно менять их тип и форматировать файловые системы.
Система, диск и сетевые файловые системы
Подмонтированные и отмонтированные файловые системы перечислены в /etc/fstab. У обычных файловых систем есть мастер для создания записей. Системы незнакомых типов можно монтировать и отмонтировать отсюда, но придется вручную редактировать /etc/fstab. Большинство серверных файловых систем вполне можно обслуживать отсюда.
Целое — это сумма разделов
Хотя есть много общего в том, как Windows и Linux работают с разделами и файловыми системами, к переходу от букв, соответствующих дискам, к полностью иерархическому дереву придется привыкать. Как всегда есть программы надежной консоли для работы с этими функциями и конфигурационными файлами в каталоге /etc. Программа с интерфейсом-браузером вроде Webmin предлагает несколько вспомогательных инструментов.
Оригинал на developerWorks IBM