Лабораторная работа № 5 2011
Цель работы – практическое знакомство с организацией данных основной файловой системы ОС Linux и используемыми утилитами.
1. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Данные, хранящиеся на любом носителе, образуют файл Linux. Более того, многие устройства, подключенные к компьютеру (начиная с клавиатуры и заканчивая любыми внешними устройствами), Linux представляет как файлы (так называемые специальные файлы). В Linux определено несколько различных типов файлов. В основном пользователь имеет дело с файлами трех типов: обычными файлами, предназначенными для хранения данных, каталогами и файлами-ссылками.
Файловая система имеет иерархическую структуру. Linux может работать с различными типами файловых систем. В этой работе будут описаны возможности файловых систем Ext2/Ext3. В файловой системe Ext2 каждый каталог — это отдельный файл особого типа («d», от англ. «directory»), отличающийся от обычного файла с данными: в нем могут содержаться только ссылки на другие файлы и каталоги.
Допустимые имена файлов и каталогов
Linux всегда различает заглавные и строчные буквы в именах файлов и каталогов, поэтому «student», «Student» и «STUDENT» будут тремя разными именами.
Есть несколько символов, допустимых в именах файлов и каталогов, которые нужно использовать с осторожностью. Это спецсимволы «*», «\», «&», «», «;», «(«, «)», «|», а также символы пробела и табуляции.
В Linux в именах файлов и каталогов допустимо использовать не только символы латинского алфавита, но и любые символы любого языка.
В файловой системе Linux нет никаких предписаний по поводу расширения: в имени файла может быть любое количество точек (в том числе ни одной), а после последней точки может стоять любое количество символов. Хотя расширения не обязательны, они широко используются: расширение позволяет программе, не открывая файл, только по его имени определить, какого типа данные в нем содержатся. Определить тип содержимого файла можно и на основании самих данных (сигнатур). Многие форматы предусматривают указание в начале файла, как следует интерпретировать дальнейшую информацию.
В Linux есть утилита file, которая предназначена для определения типа содержащихся в файле данных. Эта утилита никогда не доверяет расширению файла (если оно присутствует), а анализирует сами данные. file различает не только разные данные, но и разные типы файлов.
1.1. Дерево каталогов
В большинстве современных файловых систем используется иерархическая модель организации данных: существует один каталог, объединяющий все данные в файловой системе — это «корень» всей файловой системы, корневой каталог. Корневой каталог может содержать любые объекты файловой системы, и в частности, подкаталоги. Подкаталоги также могут содержать любые объекты файловой системы и подкаталоги и т. д. Таким образом, все, что записано на диске — файлы, каталоги и специальные файлы — обязательно «принадлежит» корневому каталогу: либо непосредственно (содержится в нем), либо на некотором уровне вложенности.
Структуру файловой системы можно представить наглядно в виде дерева, «корнем» которого является корневой каталог, а в вершинах расположены все остальные каталоги. На рис. 1 изображено дерево каталогов, курсивом обозначены имена файлов, прямым начертанием — имена каталогов.
Рис. 1.Дерево каталогов в Linux
В любой файловой системе Linux всегда есть только один корневой каталог, который называется «/». Пользователь Linux всегда работает с единым деревом каталогов, даже если разные данные расположены на разных носителях: жестких или сетевых дисках, съемных дисках, CD-ROM и т. п. Такое представление отличается от технологии, применяемой в Windows, где для каждого устройства, на котором есть файловая система, используется свой корневой каталог, обозначенный литерой, например «a», «c», «d» и т. д. Для того чтобы отключать и подключать файловые системы на разных устройствах в состав одного общего дерева, используются процедуры монтирования и размонтирования. После того, как файловые системы на разных носителях подключены к общему дереву, содержащиеся на них данные доступны так, как если бы все они составляли единую файловую систему: пользователь может даже не знать, на каком устройстве какие файлы хранятся.
Положение любого каталога в дереве каталогов описывается при помощи полного пути. Полный путь всегда начинается от корневого каталога и состоит из перечисления всех вершин, встретившихся при движении по ветвям дерева до искомого каталога включительно. Названия соседних вершин разделяются символом «/» («слэш»). В Linux полный путь, например, до каталога «methody» в файловой системе, приведенной на рис. 1, записывается следующим образом /home/methody.
Изучение файловых систем в Linux
Файловая система Linux является одной из ее наиболее популярных возможностей. Хотя Linux поддерживает множество различных типов файловых систем, эта лабораторная работа посвящена семейству ext, одной из наиболее распространенных файловых систем в Linux.
Запустите ВМ CyberOps Workstation и откройте окно терминала.
Прежде чем к файловым системам можно будет обращаться и использовать, их необходимо монтировать. В сфере ИТ термин смонтировать файловую систему означает сделать ее доступной для операционной системы. Монтирование файловой системы ― это процедура связывания физического раздела блочного устройства (жесткого диска, твердотельного накопителя, флешки и т. д.) с каталогом, через который вся эта файловая система будет доступна. Поскольку упомянутый каталог становится корневым для вновь смонтированной файловой системы, он также называется точкой подключения.
[analyst@secOps ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
Приведенные выходные данные показывают, что в ВМ CyberOps Workstation установлены три устройства блочного ввода-вывода: sr0, sda и sdb. Выведенное дерево также показывает разделы на устройствах sda и sdb. Традиционно /dev/sdX используется для представления жестких дисков в Linux, где число Х означает номер раздела на этом устройстве. На компьютерах с несколькими жесткими дисками, скорее всего, будет несколько устройств /dev/sdX. Например, если Linux работает на компьютере с четырьмя жесткими дисками, то они будут по умолчанию отображаться как /dev/sda, /dev/sdb, /dev/sdc и /dev/sdd. Такие выходные данные означают, что sda и sdb являются жесткими дисками, каждый из которых состоит из одного раздела. Выходные данные также показывают, что sda имеет емкость 5,9 ГБ, тогда как sdb ― 1 ГБ.
Примечание. Linux часто отображает USB-накопители, так же как /dev/sdX, в зависимости от типа их микропрограммы.
- С помощью команды mount выведите более подробную информацию о файловых системах, смонтированных в настоящее время в ВМ CyberOps Workstation.
- Еще раз выполните команду mount, но на этот раз с помощью конвейера (|) направьте ее вывод команде grep, чтобы отфильтровать вывод и отобразить только корневую файловую систему:
[analyst@secOps ~]$ mount
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sys on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
dev on /dev type devtmpfs (rw,nosuid,relatime,size=1030408k,nr_inodes=218258,mode=755)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
/dev/sda1 on / type ext4 (rw,relatime,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
Многие из вышеперечисленных файловых систем не рассматриваются в рамках данного курса и не используются в данной лабораторной работе. Рассмотрим корневую файловую систему, которая находится в каталоге /dev/sda1. Корневая файловая система ― это место, где хранится сама операционная система Linux. Все программы, инструменты, файлы конфигурации хранятся по умолчанию в корневой файловой системе.
[analyst@secOps ~]$ mount | grep sda1
/dev/sda1 on / type ext4 (rw,relatime,data=ordered)
В отфильтрованном выводе команда mount показывает нам, что корневая файловая система расположена в первом разделе блочного устройства sda (/dev/sda1). Мы знаем, что это корневая файловая система, так как ее точка подключения — «/». Вывод также показывает тип форматирования данного раздела, в данном случае ext4. Информация в скобках относится к параметрам монтирования.
Что означает вывод этой команды? Где эти файлы физически хранятся?
Вышли в директорию /, в ней физически хранятся файлы.
Почему файлы из /dev/sdb1 отсутствуют в приведенных выше выходных данных?
Потому что не монтировали каталог /dev/sdb1
Лабораторная работа 7. Тема «Файловые системы ос Linux».
2. После загрузки ОС Linux и запроса имени ввести имя и пароль пользователя.
3. По окончании загрузки ОС запустить терминал.
4. Знать команды, приведенные в предыдущем пункте. Привести пример работы команд, выбранных преподавателем (3 действия).
ls, pwd, cat, man, cd, mkdir, mv, cp, ln, cat ls –s, ls –i, rm, rmdir, chmod u=rwx g=rwx o=rwx,
df –h, du –s –u /directory, free –m, top, htop, iftop, uname –a (sys info), lsb_release,
adduser newuser, passwd newuser
5. Создать файл с информацией общего плана о вашей системе, включая
информацию о дисках и их разметки.
6. Создать в домашнем каталоге следующую структуру подкаталогов (существующие каталоги не удалять!):
7. Скопировать файл /etc/group в каталоги 1, 2, 3 и 4 используя абсолютные имена копируемого файла и каталога назначения.
8. С помощью утилиты file вывести на экран сведения о 3 — 4 различных файлах (в том числе из каталогов /bin и /dev).
9. Выполнить команду ls –l /dev используя таблицу обозначений типов файлов, перечислить типы файлов, хранящихся в каталоге /dev.
11. Используя справочную систему, ознакомиться с ключами утилиты ls -R,-1 (единица), -m,
—color, ключи, определяющие порядок вывода.
12. Создать жесткую и символическую ссылки для одного из созданных в п.2 файлов.
Получить информацию о разделе, расположенном на устройстве /dev/sda1 с использованием dumpe2fs
Вывести информацию об операциях чтения/записи, а также общей
Вывести значения системных счетчиков с помощью команды sar:
Показать параметры ядра с помощью команды sysctl
Отобразить информацию, хранящуюся в inode с помощью команды stat
Проверить с помощью команды filefrag фрагментацию файла.
Контрольные вопросы
Типы файлов ос Linux
Данные, хранящиеся на любом носителе, образуют файл Linux. Более того, многие устройства, подключенные к компьютеру (начиная с клавиатуры и заканчивая любыми внешними устройствами), Linux представляет как файлы (так называемые специальные файлы). В Linux определено несколько различных типов файлов. В основном пользователь имеет дело с файлами трех типов: обычными файлами, предназначенными для хранения данных, каталогами и файлами-ссылками.
Назначение утилиты file.
В Linux есть утилита file, которая предназначена для определения типа содержащихся в файле данных. Эта утилита никогда не доверяет расширению файла (если оно присутствует), а анализирует сами данные. file различает не только разные данные, но и разные типы файлов.
Структура дерева каталогов ос Linux.
Структуру файловой системы можно представить наглядно в виде дерева, «корнем» которого является корневой каталог, а в вершинах расположены все остальные каталоги. На рис. 1 изображено дерево каталогов, курсивом обозначены имена файлов, прямым начертанием — имена каталогов.
В любой файловой системе Linux всегда есть только один корневой каталог, который называется «/»