E-business архитектор IBM Крис Волден, ваш гид по всей серии developerWorks, поможет перенести навыки работы с Windows в Linux. В этой части мы исследуем иерархическую структуру каталогов в Linux и изучаем монтирование и устройства.
Работа с файлами и устройствами хранения данных в Linux отличается от Windows. Есть файлы и иерархическая структура каталогов, но кроме этого, вам придется развить другой способ мышления.
Листинг 1. Структура каталогов
/
|-- bin
|-- boot
|-- dev
|-- etc
|-- mnt
|-- opt
| |-- IBM
| | |-- WebSphereStudio
| | `-- db2
| |-- IBMHttpServer
|-- root
|-- sbin
|-- tmp
|-- usr
| |-- X11R6
| | |-- bin
| | |-- include
| | |-- lib
| | |-- man
| | `-- share
| |-- bin
| |-- dict
| |-- doc
| |-- etc
| |-- include
| |-- lib
| |-- libexec
| |-- local
| | |-- OpenOffice
| | | |-- sbin
В системе 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/:
/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
.
Листинг 2. Использование fdisk
[root@cmw-t30 root]# fdisk -l |
Приведенный выше список был создан на лэптопе, поэтому показывает довольно необычную для сервера структуру. Можно видеть один жесткий диск IDE с несколькими разделами. Если бы там были другие устройства, их бы тоже перечислили. Например, второй жесткий диск IDE мог быть показан как /dev/hdb.
Снова запустите fdisk
с устройством и вы получите короткое приглашение.
Листинг 3. fdisk на устройстве
[root@cmw-t30 root]# fdisk /dev/hda |
Ввод "m" даст вам меню команд. Текущая таблица разделов отобразится по нажатию "p". Вы можете создавать, удалять и изменять тип существующих разделов. "l" покажет вам полный список доступных типов разделов. Свои изменения в таблицу разделов вносите с помощью "w", закрывайте программу или выходите без сохранения используя "q". Некоторые изменения вступят в силу незамедлительно. Некоторые могут потребовать перезагрузки системы.
Правила создания разделов в Linux те же, что и в Windows. Доступно четыре первичных раздела, каждый из них может быть расширен.
Linux может обслуживать любой тип файловой системы, о котором знает ядро. Изрядное их количество компилируется по умолчанию, а новые можно добавлять. Наиболее интересные из них:
- ext2: Стандартная файловая система Linux
- ext3: Стандартная файловая система Linux с добавленным протоколированием
- vfat: Файловая система Microsoft Fat32
- jfs: Журналируемая файловая система IBM
- reiserfs: Еще одна популярная журналируемая файловая система
|
Созданные разделы форматируются подходящей версией команды mkfs
. У файловых систем есть свои собственные версии mkfs
, например, mkfs.ext2
или mkfs.ext3
. Эти вспомогательные скрипты позволят создать файловую систему, просто указав на раздел. Вот несколько примеров:
Листинг 4. Использование mkfs
# Create an ext2 file system on the third |
Существуют различные продвинутые параметры, чтобы влиять на то, как будет форматироваться раздел, но в общем случае вполне подходят значения по умолчанию. Отформатированный раздел может быть смонтирован в корень (/). Файловую систему следует отмонтировать перед переформатированием.
Другие программы файловой системы
Давайте рассмотрим другие полезные программы.
Есть несколько программных средств для просмотра состояния дисков и файловых систем.
df
df
означает "disk free". Эта команда сообщает, сколько места на диске используется и доступно в подмонтированной файловой системе. Полезные ключи:
Проверка дискового пространства
df -h | Читабельно; использует дружественные индикаторы k, M и G, чтобы показывать размер файла, а не отображать его в байтах. |
df -l | Ограничивает список до локальных файловых систем; по умолчанию показываются еще и удаленные |
du
du
означает "disk usage" (использование диска). Команда выводит, сколько дискового пространства используется определенными файлами и для каждого подкаталога (если аргумент -- каталог) Полезные ключи:
du -a | Показывает счетчики для всех файлов, не только каталогов |
du -h | Читабельность; использует дружественные индикаторы k, M и G, чтобы показывать размер файла, а не отображать его в байтах. |
du -c | Печатает общую сумму всех аргументов после того, как все они были обработаны; может использоваться, чтобы узнать полное использование диска заданным набором файлов или каталогов |
du -s | Показывает только итог для каждого аргумента |
fsck
Эта программа используется для проверки и исправления файловых систем, соответствует chkdsk
в Windows. У нее будут разные версии для разных типов файловых систем, как например mkfs
. fsck
следует выполнять на неотмонтированных томах, хотя она вряд ли потребуется, если только файловая система не была правильно отмонтирована. man fsck
и info fsck
дают подробную информацию, также как и Ресурсы, в конце этой статьи.
Webmin предоставляет несколько инструментов для работы с файловыми системами и разделами.
Рисунок 1. Программа работы с разделами в Webmin
Техника, разделы на локальных дисках
Каждый диск и раздел показан с текущей информацией об использовании. Щелкните по названию файловой системы, чтобы узнать подробности. У отмонтированных разделов можно менять их тип и форматировать файловые системы.
Система, диск и сетевые файловые системы
Подмонтированные и отмонтированные файловые системы перечислены в /etc/fstab. У обычных файловых систем есть мастер для создания записей. Системы незнакомых типов можно монтировать и отмонтировать отсюда, но придется вручную редактировать /etc/fstab. Большинство серверных файловых систем вполне можно обслуживать отсюда.
Хотя есть много общего в том, как Windows и Linux работают с разделами и файловыми системами, к переходу от букв, соответствующих дискам, к полностью иерархическому дереву придется привыкать. Как всегда есть программы надежной консоли для работы с этими функциями и конфигурационными файлами в каталоге /etc. Программа с интерфейсом-браузером вроде Webmin предлагает несколько вспомогательных инструментов.
Комментариев нет:
Отправить комментарий