- Cтруктура файловой системы Linux
- / — корень
- /bin — (binaries) бинарные файлы пользователя
- /sbin — (system binaries) системные исполняемые файлы
- /etc — (etcetera) конфигурационные файлы
- /dev — (devices) файлы устройств
- /proc — (proccess) информация о процессах
- /var (variable) — Переменные файлы
- /var/log — Файлы логов
- /var/lib — базы данных
- /var/mail — почта
- /var/spool — очереди
- /var/lock — файлы блокировок
- /var/run — PID процессов
- /tmp (temp) — Временные файлы
- /usr — (user applications) Программы пользователя
- /usr/bin/ — Исполняемые файлы
- /usr/sbin/
- /usr/lib/ — Библиотеки
- /usr/local — Файлы пользователя
- /home — Домашняя папка
- /boot — Файлы загрузчика
- /lib (library) — Системные библиотеки
- /opt (Optional applications) — Дополнительные программы
- /mnt (mount) — Монтирование
- /media — Съемные носители
- /srv (server) — Сервер
- /run — процессы
- /sys (system) — Информация о системе
- Выводы
- Linux что такое dev sr0
- Послесловие.
Cтруктура файловой системы Linux
Понимание файловой системы Linux, структуры каталогов, размещения конфигурационных, исполняемых и временных файлов поможет вам лучше разбираться в своей системе и стать успешным системным администратором. Файловая система Linux будет непривычна именно для новичка, только что перешедшего с Windows, ведь здесь все совсем по-другому.
В отличие от Windows, программа не находится в одной папке, а, как правило, распределена по корневой файловой системе. Это распределение поддается определенным правилам. Вы когда-нибудь задавались вопросом, почему некоторые программы находятся в папке /bin, или /sbin, /usr/sbin, /usr/local/bin, в чем разница между этими каталогами?
Например, программа less, находится в каталоге /usr/bin, но почему не в /sbin или /usr/sbin. А такие программы, как ifconfig или fdisk находятся в каталоге /sbin и нигде иначе. В этой статье будет полностью рассмотрена структура файловой системы Linux, после ее прочтения вы сможете понять смысл использования большинства папок в корневом каталоге Linux.
/ — корень
Это главный каталог в системе Linux. По сути, это и есть файловая система Linux. Здесь нет дисков или чего-то подобного, как в Windows. Вместо этого, адреса всех файлов начинаются с корня, а дополнительные разделы, флешки или оптические диски подключаются в папки корневого каталога.
Только пользователь root имеет право читать и изменять файлы в этом каталоге. Обратите внимание, что у пользователя root домашний каталог /root, но не сам /.
/bin — (binaries) бинарные файлы пользователя
Этот каталог содержит исполняемые файлы. Здесь расположены программы, которые можно использовать в однопользовательском режиме или режиме восстановления. Одним словом, те утилиты, которые могут использоваться пока еще не подключен каталог /usr/. Это такие общие команды, как cat, ls, tail, ps и т д.
/sbin — (system binaries) системные исполняемые файлы
Так же как и /bin, содержит двоичные исполняемые файлы, которые доступны на ранних этапах загрузки, когда не примонтирован каталог /usr. Но здесь находятся программы, которые можно выполнять только с правами суперпользователя. Это разные утилиты для обслуживания системы. Например, iptables, reboot, fdisk, ifconfig,swapon и т д.
/etc — (etcetera) конфигурационные файлы
В этой папке содержатся конфигурационные файлы всех программ, установленных в системе. Кроме конфигурационных файлов, в системе инициализации Init Scripts, здесь находятся скрипты запуска и завершения системных демонов, монтирования файловых систем и автозагрузки программ. Структура каталогов linux в этой папке может быть немного запутанной, но предназначение всех их — настройка и конфигурация.
/dev — (devices) файлы устройств
В Linux все, в том числе внешние устройства являются файлами. Таким образом, все подключенные флешки, клавиатуры, микрофоны, камеры — это просто файлы в каталоге /dev/. Этот каталог содержит не совсем обычную файловую систему. Структура файловой системы Linux и содержащиеся в папке /dev файлы инициализируются при загрузке системы, сервисом udev. Выполняется сканирование всех подключенных устройств и создание для них специальных файлов. Это такие устройства, как: /dev/sda, /dev/sr0, /dev/tty1, /dev/usbmon0 и т д.
/proc — (proccess) информация о процессах
Это тоже необычная файловая система, а подсистема, динамически создаваемая ядром. Здесь содержится вся информация о запущенных процессах в реальном времени. По сути, это псевдофайловая система, содержащая подробную информацию о каждом процессе, его Pid, имя исполняемого файла, параметры запуска, доступ к оперативной памяти и так далее. Также здесь можно найти информацию об использовании системных ресурсов, например, /proc/cpuinfo, /proc/meminfo или /proc/uptime. Кроме файлов в этом каталоге есть большая структура папок linux, из которых можно узнать достаточно много информации о системе.
/var (variable) — Переменные файлы
Название каталога /var говорит само за себя, он должен содержать файлы, которые часто изменяются. Размер этих файлов постоянно увеличивается. Здесь содержатся файлы системных журналов, различные кеши, базы данных и так далее. Дальше рассмотрим назначение каталогов Linux в папке /var/.
/var/log — Файлы логов
Здесь содержатся большинство файлов логов всех программ, установленных в операционной системе. У многих программ есть свои подкаталоги в этой папке, например, /var/log/apache — логи веб-сервера, /var/log/squid — файлы журналов кеширующего сервера squid. Если в системе что-либо сломалось, скорее всего, ответы вы найдете здесь.
/var/lib — базы данных
Еще один тип изменяемых файлов — это файлы баз данных, пакеты, сохраненные пакетным менеджером и т д.
/var/mail — почта
В эту папку почтовый сервер складывает все полученные или отправленные электронные письма, здесь же могут находиться его логи и файлы конфигурации.
/var/spool — очереди
Изначально, эта папка отвечала за очереди печати на принтере и работу набора программ cups.
/var/lock — файлы блокировок
Здесь находятся файлы блокировок. Эти файлы означают, что определенный ресурс, файл или устройство занят и не может быть использован другим процессом. Apt-get, например, блокирует свою базу данных, чтобы другие программы не могли ее использовать, пока программа с ней работает.
/var/run — PID процессов
Содержит файлы с PID процессов, которые могут быть использованы, для взаимодействия между программами. В отличие от каталога /run данные сохраняются после перезагрузки.
/tmp (temp) — Временные файлы
В этом каталоге содержатся временные файлы, созданные системой, любыми программами или пользователями. Все пользователи имеют право записи в эту директорию.
Файлы удаляются при каждой перезагрузке. Аналогом Windows является папка Windows\Temp, здесь тоже хранятся все временные файлы.
/usr — (user applications) Программы пользователя
Это самый большой каталог с большим количеством функций. Тут наиболее большая структура каталогов Linux. Здесь находятся исполняемые файлы, исходники программ, различные ресурсы приложений, картинки, музыку и документацию.
/usr/bin/ — Исполняемые файлы
Содержит исполняемые файлы различных программ, которые не нужны на первых этапах загрузки системы, например, музыкальные плееры, графические редакторы, браузеры и так далее.
/usr/sbin/
Содержит двоичные файлы программ для системного администрирования, которые нужно выполнять с правами суперпользователя. Например, таких как Gparted, sshd, useradd, userdel и т д.
/usr/lib/ — Библиотеки
Содержит библиотеки для программ из /usr/bin или /usr/sbin.
/usr/local — Файлы пользователя
Содержит файлы программ, библиотек, и настроек созданные пользователем. Например, здесь могут храниться программы собранные и установленные из исходников и скрипты, написанные вручную.
/home — Домашняя папка
В этой папке хранятся домашние каталоги всех пользователей. В них они могут хранить свои личные файлы, настройки программ и т д. Например, /home/sergiy и т д. Если сравнивать с Windows, то это ваша папка пользователя на диске C, но в отличии от WIndows, home как правило размещается на отдельном разделе, поэтому при переустановке системы все ваши данные и настройки программ сохранятся.
/boot — Файлы загрузчика
Содержит все файлы, связанные с загрузчиком системы. Это ядро vmlinuz, образ initrd, а также файлы загрузчика, находящие в каталоге /boot/grub.
/lib (library) — Системные библиотеки
Содержит файлы системных библиотек, которые используются исполняемыми файлами в каталогах /bin и /sbin.
Библиотеки имеют имена файлов с расширением *.so и начинаются с префикса lib*. Например, libncurses.so.5.7. Папка /lib64 в 64 битных системах содержит 64 битные версии библиотек из /lib. Эту папку можно сравнить с WIndows\system32, там тоже сгружены все библиотеки системы, только там они лежат смешанные с исполняемыми файлами, а здесь все отдельно.
/opt (Optional applications) — Дополнительные программы
В эту папку устанавливаются проприетарные программы, игры или драйвера. Это программы созданные в виде отдельных исполняемых файлов самими производителями. Такие программы устанавливаются в под-каталоги /opt/, они очень похожи на программы Windows, все исполняемые файлы, библиотеки и файлы конфигурации находятся в одной папке.
/mnt (mount) — Монтирование
В этот каталог системные администраторы могут монтировать внешние или дополнительные файловые системы.
/media — Съемные носители
В этот каталог система монтирует все подключаемые внешние накопители — USB флешки, оптические диски и другие носители информации.
/srv (server) — Сервер
В этом каталоге содержатся файлы серверов и сервисов. Например, могут содержаться файлы веб-сервера apache.
/run — процессы
Еще один каталог, содержащий PID файлы процессов, похожий на /var/run, но в отличие от него, он размещен в TMPFS, а поэтому после перезагрузки все файлы теряются.
/sys (system) — Информация о системе
Назначение каталогов Linux из этой папки — получение информации о системе непосредственно от ядра. Это еще одна файловая система организуемая ядром и позволяющая просматривать и изменить многие параметры работы системы, например, работу swap, контролировать вентиляторы и многое другое.
Выводы
Теперь структура файловой системы Linux не кажется вам темным лесом. Конечно еще есть с чем разбираться, одна только подсистема /proc, /sys или /dev чего стоит. Но база уже заложена. Если я что-то упустил — напишите в комментариях.
Источник
Linux что такое dev sr0
Здравствуйте, уважаемые читатели сайта. Сегодня мы продолжим приобщать вас к прекрасному внутреннему миру Linux-систем и познакомим (как Вы уже наверняка поняли из названия статьи) с монтированием в операционных системах «под управлением» Linux.
И, само собой, постараемся преподнести информацию в облегченном варианте, т.е. мало будем упоминать командную строку и больше внимания уделять работе в графическом режиме. Ну, а там уж как получится. Ну что ж, нечего тянуть, поехали.
Давайте на секундочку представим такую ситуацию. Вы решились на установку Linux второй операционной системой вместе с Windows. Установили, – запустили её, – а потом захотели посмотреть на разделы Windows глазами линуксоидов . И, – Опа!, – тут вас может поджидать небольшое разочарование, ибо Вы этого диска (раздела) не видите (рассматривается простой случай, когда у вас установлен драйвер ntfs-config для работы с ntfs-разделами, и система видит Ваши разделы, но не примонтировала их по каким-либо причинам) .
Далее, чтобы начать его использовать, нам потребуется подключить или, по-другому, смонтировать эту невидимку. Для начала вспомним, что файловая система (ФС) Linux очень тесно связана с монтированием, а конкретнее – что ФС это одно большое дерево с корневой директорией / (слеш) . И монтирование корневой ФС является частью процесса инициализации ядра. В процессе загрузки операционной системы происходит последовательное (а не абы какое) присоединение всех видимых (да и невидимых тоже ) системой устройств.
В современных дистрибутивах Вы не увидите самого процесса загрузки ядра, ибо всё это происходит за красивым фоном. Но иногда эта информация бывает очень полезна, потому как помимо данных о примонтированных устройствах выводятся различные полезные сообщения ядра – об имеющемся оборудовании; о протоколах и технологиях, которые поддерживаются; а самое главное и ценное – об ошибках, если таковые имеются. Чтобы увидеть все сообщения загружаемой системы, наберите команду:
Загрузка ядра – отдельный разговор, сейчас мы не будем останавливаться на этом, просто введите вышеуказанную команду и внимательно изучите все, что выведется на экран монитора. Уверяю, вы найдете там много чего «вкусненького».
Давайте разбираться дальше. Вот ядро Linux опознало все ваши устройства, на которых находятся данные. И что же потом? А потом оно просто обязано предоставить нам с Вами какое-то внешнее связующее звено для дальнейшей работы с этими устройствами. И как не парадоксально, но в роли таких звеньев будут выступать файлы-устройств, которые создаются в каталоге /dev. Только так мы с вами сможем получить доступ к файлам и каталогам, которые располагаются на нашем, скрытом от взора, диске или дисках – это у кого как. У многих может возникнуть резонный вопрос — а зачем так заморачиваться и делать это руками, если современные системы Linux справляются с этим автоматически? Поверьте, иногда это нужно, встречаются отдельные случаи, когда система Linux не может автоматически подсоединить диск в силу каких-то причин, связанных со сбоем диска, вирусами, которыми заражены NTFS/FAT-разделы или из-за чего-то еще противоестественного. И тогда настоящие системные администраторы (или очень умные пользователи ) делают это руками с помощью команды:
Что дает примерно такой результат:
Давайте немного внесём ясности в то, что видим на рисунке. Мы наблюдаем самый настоящий процесс монтирования на начальной стадии загрузки системы. Первой присоединилась псевдофайловая система (напомним, что она используется для предоставления информации о процессах) , потом примкнула виртуальная файловая система /sysfs, которая экспортирует в пространство пользователя информацию ядра Linux об устройствах и драйверах, присутствующих в системе. Далее в каталог /dev монтируется tmpfs. Это временное файловое хранилище, предназначенное для монтирования ФС, с той лишь разницей, что размещается она в ОЗУ вместо физического диска, т.е., по-другому, это RAM-диск. Здесь создаются файлы тех устройств, которые присутствуют в системе и которые могли бы создаваться «на лету» – к таким можно отнести подключения по USB (или когда подгружается динамический модуль с драйвером устройства) .
И так далее, и тому подобное, т.е всё присоединяется последовательно, по порядку. Чтобы не пугать вас заумной терминологией, давайте спустимся с небес на землю и продолжим наш разговор о монтировании. Последним замыкающим звеном выступают: диск (/dev/sdа) и сменное USB-устройство (флешка /dev/sdb) . Я думаю, не надо подсказывать Вам, что если на диске (или каком-либо другом сменном устройстве) не один раздел, а несколько, то прицепятся все имеющиеся разделы и отличие будет только в имени файла-устройств. Например, если на диске 5 разделов, то файлы-устройств будут называться /dev/sda1, /dev/sda2, /dev/sda3, /dev/sda4, /dev/sda5.
Вывод:
Сколько разделов на съемном диске, столько и будет подключено файлов-устройств.
Этот же вывод команды можно получить, если откроем содержимое файла /etc/mtab (в некоторых системах Linux файл называется /etc/mnt/tab)
Давайте перейдем к практике. Посмотрите, какие из устройств подключены в данный момент к компьютеру, с помощью команды:
У Вас вывод может оказаться совсем другой, нежели в приведенном ниже рисунке:
Просим не забывать, что процесс монтирования/размонтирования выполняется с привилегиями root, о чем говорит значок # и sudo
Далее. Из рисунка видно, что в наличии имеется только один жесткий диск, где есть три точки монтирования — это файл подкачки swap, каталоги root и home (при установке системы мне было удобнее разбить диск именно так) .
С вероятностью на 90 процентов уверен, что на Вашем компьютере есть не только один диск, а их может быть несколько и они могут быть поделены на разделы. Чтобы получить доступ к этим разделам, нам нужно подмонтировать их к корневой файловой системе и только после этого мы можем обращаться к содержимому этих разделов через точку монтирования.
А теперь перейдем непосредственно к тренировкам. Допустим, что под рукой есть только CD/DVD-ROM. Давайте вот на нём и попробуем.
1. Вставьте диск в привод.
2. Он у вас автоматически определится системой, т.е. примонтируется (см.картинку ниже) :
3. Отмонтируйте его командой:
Взгляните на картинку — CD/DVD-ROM размонтирован (о чем свидетельствует отсутствие треугольника рядом) , но..
..он виден в системе (т.е определен системой, но не примонтирован) , а посему, дабы убедиться в достоверности этого, наберите команду:
Как видите, команда показала что CD/DVD-ROM отсутствует.
А теперь самое интересное, а именно, мы начинаем шаманить с присоединением нашего, так сказать, сидюка обратно. Для этого понадобится шаманский бубен и прямые руки
1. Чтобы особо не мучиться с правами суперпользователя, мы примонтируем его обратно в ту же директорию, откуда его и извлекли, а именно в /run/media/имя_пользователя. Почему именно сюда? Всё просто. Каталог /run был задуман как временное хранилище в целях «безопасности», и эта папка (/run/media/имя_пользователя) специально остаётся пустой после загрузки системы, так что ничего кроме смонтированных дисков (или других сменных устройств) Вы там не обнаружите (при условии, конечно, что сами что-нибудь не натворите) . Но вообще, прежде чем его туда прикрепить, мы должны
2. Создать директорию — /CDROM
sudo mkdir /run/media/имя_пользователя/CDROM
3. Примонтировать командой
sudo mount -t iso9660 /dev/sr0 /run/media/имя_пользователя/CDROM
-t iso9660 — параметр монтирования, который обычно определяется автоматически, но в некоторых особых случаях этот параметр нужно указать, чтобы система не говорила: «Ой.. Вот ведь какая незадача, что Вы не определили тип файловой системы». В нашем случае тип файловой системы — iso9660 — этим типом определяются все CD-, DVD-диски;
/dev/sr0 — это наш сидюк, откуда взялось это название, легко определить из команды, да хотя бы mount | column -t (или используйте дисковые утилиты, которые есть в любой linux-системе) ;
/run/media/имя_пользователя/CDROM – обязательно указываемый параметр, а то система не поймет, куда Вы хотите все это присоединить.
В командной строке все уложилось в три строчки
Аналогичным образом давайте примонтируем флешку:
1. Вставляем флешку в USB
Наша флешка определилась как файл-устройство /dev/sdb1 с именем 3C9B-F329 и с файловой системой FAT32.
2. Далее отсоединяем её командой:
И видим примерно следующее:
3. Теперь создаем папку в каталоге /run/media/имя_пользователя/
sudo mkdir /run/media/имя_пользователя/3C9B-F329
4. Монтируем
sudo mount /dev/sdb1 /run/media/имя_пользователя/3C9B-F329
Получаем на выходе примерно следующее:
Так вот. На протяжении всей статьи Вас подводили к наиважнейшему выводу: монтированием разделов мы “мягко” объясняем системе, как можно добраться до данных и сделать их доступными для использования в наших целях. Главное здесь, чтобы директория или поддиректория существовала, иначе, если её не будет, то весь наш процесс завершится ошибкой монтирования.
Обращаю внимание:
В процессе монтирования фактически монтируется ФС какого-либо устройства (или другого ресурса) . Принято говорить о “монтировании устройства”, хотя на самом деле подразумевается, что речь идет именно о “монтировании файловой системы устройства”.
Впрочем, хватит терминала, переходим к более простым способам с использованием графических инструментов.
Существует множество утилит и программ для работы с дисками, разделами (самая простая утилита, — это автоматическое монтирование, которое выполняет сама система) , но есть одно «но».. В каждой Linux-системе эти утилиты свои. Поэтому все мы их просто физически не охватим. Например, в Ubuntu есть встроенная утилита для работы с дисками “Инструмент конфигурации записи на NTFS“, а также можно установить утилиту “Mount Manager“. В “Fedora” же — “palimpsest“, что входит в состав “gnome-disk-utility“.
Ко всему прочему.. Есть общая программа для работы с разделами и дисками в любой Linux-системе – это GParted. Эта программа полностью бесплатна и умеет не только монтировать, но еще и очень, очень многое, но мы не будем рассматривать всё на что она способна, а разберем только две операции. Давайте только кратко, в виде наставительной инструкции:
Как размонтировать раздел с помощью Gparted:
- Запустить саму программу (с правами root)
- Выбрать смонтированный раздел (справа вверху есть выбор разделов — выделен красным прямоугольником) .
- Далее выбрать в меню “Раздел — Размонтировать”. Ну или воспользоваться щелчком правой кнопкой мыши по выделенному разделу и пунктом “Размонтировать”. После сего программа отсоединит раздел (в данном случае флешку)
Если операция отсоединения не выполнилась, то скорее всего раздел в данный момент используется другими процессами и поэтому не может быть размонтирован. В этом случае необходимо воспользоваться Live CD Gparted:
Теперь ко второй операции.
Как смонтировать раздел в GParted:
- Запустить программу (с правами root)
- Выбрать ещё не смонтированный раздел (главное, чтобы он у вас был определен системой) .
- Далее перейти в “Раздел – Монтировать” и выбрать точку монтирования из списка. Или щелкнуть правой кнопкой мыши по выделенному разделу — “Монтировать”, после чего Gparted смонтирует раздел к указанной точке монтирования.
Если пункт меню “ Раздел – Монтировать “ не виден (т.е. не активный) , значит GParted не знает, к какой точке монтировать раздел. В этом случае необходимо воспользоваться Live CD Gparted.
Но больше всего мне, в общем-то, нравиться утилита в openSUSE (немецкий дистрибутив) и/или её замечательный “Центр управления” (“Параметры системы“) YaST, с помощью которого можно без особых проблем смонтировать/размонтировать все, что только пожелаете.
Процесс таков:
- Запустите YaST (можно воспользоваться командной строкой с правами root — /usr/bin/xdg-su -c /sbin/yast2 или через графический интерфейс — “Системные параметры – YaST“) .
- Зайдите в “Система – Разделы“
Скорее всего, Вас предупредят о том, что эта операция не такая уж безобидная, и Вы понимаете степень вреда, который можно нанести системе, если что-то сделаете не совсем корректно. Но Вы все равно соглашайтесь и нажимайте “ Да “ .
Теперь откроется окно редактора раздела дисков, где выберите раздел (слева) – “Жесткие диски”, а справа будет выведен список всех дисков, которые подключены в данный момент к Вашему компьютеру. Ищите тот, который Вы хотите присоединить (в нашем случае мы выберем самую последнюю строчку — это флешка) .
Напоминание – не забудьте отсоединить тот диск, с которым будете экспериментировать.
Сделайте это штатными средствами, а именно просто нажмите на значок треугольника в проводнике:
Обратите внимание, что один диск занимает, как минимум, две строчки. Первая – это физическое его наименование и маркировка, а вторая – логический диск (разделы) с файловой системой.
Посмотрите на выделенную строчку – там указан тип файловой системы. У нас это FAT32.
Выделите свой диск и нажмите на кнопку “Редактировать”, которая располагается внизу окна.
Откроется окно настроек. Проверьте, чтобы стояла галка около пункта “Не форматировать”.
Обычно все диски в Linux монтируют в папку /run/media/имя_пользователя, о чем мы и упоминали выше.
Поэтому в строке “Точка монтирования“ впишите такой путь для монтирования Вашего диска: /run/media/имя_пользователя/имя вашего диска (в нашем случае это будет выглядеть так: /run/media/имя_пользователя/3C9B-F329).
Как только Вы впишите эту строчку, то сразу станет доступна кнопка “Опции Fstab“. Нажмите на неё, а в открывшемся окне отметьте точкой пункт “ID устройства“ и поставьте галочку на “Монтируемый пользователем“. Это нужно для того, чтобы Вы могли пользоваться диском в режиме обычного пользователя, а не только администратора.
Теперь посмотрите на пункт “Значения произвольных опций“. Там найдите текст umask=0002, и замените 0002 на 0000 (это права доступа к разделу) и согласитесь со всеми изменениями, нажав два раза ОК и Вас вернёт обратно к списку дисков. И, последнее, собственно, – в этом окне нажмите ОК. Программа снова выдаст вам предупреждение, что все изменения сейчас запишутся в файл. Если вы уверены в том что делаете, подтвердите изменения, нажав кнопку “Применить“.
В итоге, если всё было сделано корректно, то зайдя в папку /run/media/имя_пользователя (кстати посмотреть можно и через файловый менеджер, а именно, можете войти в терминал и набрать команду mс) Вы увидите:
Ура, а вот и наша примонтированная флешка. Можно возрадоваться. Бедная флешка.. Что она только не пережила на момент написания этой статьи.
Послесловие.
Ладно. На этом заканчиваем наше повествование. Оставайтесь с проектом, здесь Вам рады.
Источник