- Как монтировать и размонтировать файловые системы в Linux
- Как вывести список подключенных файловых систем
- Монтирование файловой системы
- Монтирование файловой системы с помощью / etc / fstab
- Установка USB-накопителя
- Монтирование файлов ISO
- Монтирование NFS
- Отключение файловой системы
- Ленивое отключение
- Размонтировать принудительно
- Выводы
- How to Create a New Ext4 File System (Partition) in Linux
- Creating a New Partition in Linux
- Formatting New Ext4 Partition
- Mounting New Ext4 Parition in File System
- If You Appreciate What We Do Here On TecMint, You Should Consider:
- Виртуальные файловые системы в Linux: зачем они нужны и как они работают? Часть 1
Как монтировать и размонтировать файловые системы в Linux
В операционных системах Linux и UNIX вы можете использовать команду mount для подключения (монтирования) файловых систем и съемных устройств, таких как флэш-накопители USB, в определенной точке монтирования в дереве каталогов.
Команда umount отсоединяет (размонтирует) смонтированную файловую систему от дерева каталогов.
В этом руководстве мы рассмотрим основы подключения и отключения различных файловых систем с помощью команд mount и umount .
Как вывести список подключенных файловых систем
При использовании без аргументов команда mount отобразит все подключенные в данный момент файловые системы:
По умолчанию вывод будет включать все файловые системы, включая виртуальные, такие как cgroup, sysfs и другие. Каждая строка содержит информацию об имени устройства, каталоге, в который оно смонтировано, типе файловой системы и параметрах монтирования в следующей форме:
Чтобы отобразить только определенные файловые системы, используйте параметр -t .
Например, чтобы распечатать только разделы ext4, которые вы должны использовать:
Монтирование файловой системы
Чтобы смонтировать файловую систему в указанном месте (точке монтирования), используйте команду mount в следующей форме:
После присоединения файловой системы точка монтирования становится корневым каталогом смонтированной файловой системы.
Например, чтобы смонтировать файловую систему /dev/sdb1 каталог /mnt/media вы должны использовать:
Обычно при монтировании устройства с общей файловой системой, такой как ext4 или xfs команда mount автоматически определяет тип файловой системы. Однако некоторые файловые системы не распознаются и требуют явного указания.
Используйте параметр -t чтобы указать тип файловой системы:
Чтобы указать дополнительные параметры монтирования , используйте параметр -o :
Несколько вариантов могут быть представлены в виде списка, разделенного запятыми (не вставляйте пробел после запятой).
Вы можете получить список всех вариантов монтирования, набрав в терминале man mount .
Монтирование файловой системы с помощью / etc / fstab
Предоставляя только один параметр (каталог или устройство) команде mount , она будет читать содержимое файла конфигурации /etc/fstab чтобы проверить, указана ли указанная файловая система в списке или нет.
Если /etc/fstab содержит информацию о данной файловой системе, команда mount использует значение другого параметра и параметры монтирования, указанные в fstab .
Файл /etc/fstab содержит список записей в следующем виде:
Используйте команду mount в одной из следующих форм, чтобы присоединить файловую систему, указанную в /etc/fstab :
Установка USB-накопителя
В большинстве современных дистрибутивов Linux, таких как Ubuntu, USB-накопители автоматически монтируются, когда вы их вставляете, но иногда вам может потребоваться вручную смонтировать диск.
Чтобы вручную подключить USB-устройство, выполните следующие действия:
Создайте точку монтирования:
Предполагая, что USB-накопитель использует устройство /dev/sdd1 вы можете /dev/sdd1 его к каталогу /media/usb , набрав:
Чтобы узнать тип устройства и файловой системы, вы можете использовать любую из следующих команд:
Чтобы смонтировать USB-накопители в формате exFAT, установите бесплатный модуль и инструменты FUSE exFAT .
Монтирование файлов ISO
Вы можете смонтировать файл ISO с помощью устройства loop, которое представляет собой специальное псевдоустройство, которое делает файл доступным как блочное устройство.
Начните с создания точки монтирования, это может быть любое место, которое вы хотите:
Подключите ISO-файл к точке монтирования, введя следующую команду:
Не забудьте заменить /path/to/image.iso путем к вашему файлу ISO.
Монтирование NFS
Чтобы смонтировать общий ресурс NFS, в вашей системе должен быть установлен клиентский пакет NFS.
Установите клиент NFS в Ubuntu и Debian:
Установите клиент NFS на CentOS и Fedora:
Выполните следующие действия, чтобы смонтировать удаленный каталог NFS в вашей системе:
Создайте каталог, который будет точкой монтирования для удаленной файловой системы:
Как правило, вам нужно автоматически монтировать удаленный общий ресурс NFS при загрузке. Для этого откройте файл /etc/fstab текстовом редакторе :
Добавьте в файл следующую строку, заменив remote.server:/dir IP-адресом сервера NFS или именем хоста и экспортированным каталогом:
Подключите общий ресурс NFS, выполнив следующую команду:
Отключение файловой системы
Чтобы отсоединить смонтированную файловую систему, используйте команду umount после которой укажите либо каталог, в котором она была смонтирована (точка монтирования), либо имя устройства:
Если файловая система используется, команда umount не сможет отсоединить файловую систему. В таких ситуациях вы можете использовать команду fuser чтобы узнать, какие процессы обращаются к файловой системе:
Как только вы определите процессы, вы можете остановить их и размонтировать файловую систему.
Ленивое отключение
Используйте параметр -l ( —lazy ), чтобы отключить занятую файловую систему, как только она больше не будет занята.
Размонтировать принудительно
Используйте параметр -f ( —force ), чтобы принудительно размонтировать. Этот параметр обычно используется для отключения недоступной системы NFS.
Обычно не рекомендуется принудительное отключение, так как это может повредить данные в файловой системе.
Выводы
К настоящему времени вы должны хорошо понимать, как использовать команду mount для присоединения различных файловых систем к вашему дереву каталогов и отсоединения монтирования с помощью команды umount .
Чтобы узнать больше о параметрах команд mount и umount , см. Соответствующие страницы руководства.
Источник
How to Create a New Ext4 File System (Partition) in Linux
The ext4 or fourth extended filesystem is a widely-used journaling file system for Linux. It was designed as a progressive revision of the ext3 file system and overcomes a number of limitations in ext3.
It has significant advantages over its predecessor such as improved design, better performance, reliability, and new features. Although it is best suited for hard drives, it can also be used on removable devices.
This article will show you how to create a new ext4 file system (partition) in Linux. We will first of all look at how to create a new partition in Linux, format it with the ext4 file system and mount it.
Note: For the purpose of this article:
- We will assume that you have added a new hard drive to your Linux machine, in which you will create the new ext4 partition, and
- If you are operating the system as an administrative user, use the sudo command to gain root privileges to run the commands shown in this article.
Creating a New Partition in Linux
List the partitions using the fdisk -l or parted -l commands to identify the hard drive you want to partition.
List Linux Partitions
Looking at the output in the screenshot above, we have two hard disks added on the test system and we will partition disk /dev/sdb .
Now use parted command to start creating the partition on the selected storage device.
Then create a partition using the mkpart command, give it additional parameters like “primary” or “logical” depending on the partition type that you wish to create. Then select ext4 as the file system type, set the start and end to establish the size of the partition:
Create a New Ext4 Partition
To print the partition table on the device /dev/sdb or detailed information about the new partition, run the print command.
Print Partition Table
Now exit the program using the quit command.
Formatting New Ext4 Partition
Next, you need to properly format the new partition with the ext4 file system type using the mkfs.ext4 or mke4fs command as follows.
Format a New Ext4 Partition
Then label the partition using the e4label command as follows.
Mounting New Ext4 Parition in File System
Next, create a mount point and mount the newly created ext4 partition file system.
Now using the df command, you can list all file systems on your system together with their sizes in a human readable format (-h) , and their mount points and file system types (-T) :
Show Linux Filesystem with Mount Points
Lastly, add the following entry in your /etc/fstab to enable persistent mounting of the file system, even after a reboot.
You might also like to read these following related articles:
That’s all! In this article, we’ve explained how to create a new partition in Linux, format it with ext4 file system type and mount it as a filesystem. For more information or to share any queries with us, use the feedback form below.
If You Appreciate What We Do Here On TecMint, You Should Consider:
TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.
If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.
We are thankful for your never ending support.
Источник
Виртуальные файловые системы в Linux: зачем они нужны и как они работают? Часть 1
Всем привет! Мы продолжаем запуски новых потоков по уже полюбившимся вам курсам и сейчас спешим сообщить о том, что у нас стартует новый набор по курсу «Администратор Linux», который запустится в конце апреля. К этому событию и будет приурочена новая публикация. С оригиналом материала можно ознакомиться тут.
Виртуальные файловые системы выполняют роль некой волшебной абстракции, которая позволяет философии Linux говорить, что «всё является файлом».
Что такое файловая система? Опираясь на слова одного из первых контрибьюторов и авторов Linux Робера Лава, «Файловая система – это иерархическое хранилище данных, собранное в соответствии с определенной структурой». Как бы то ни было, это определение в равной мере хорошо подходит для VFAT (Virtual File Allocation Table), Git и Cassandra (база данных NoSQL). Так что именно определяет такое понятие, как «файловая система»?
Основы файловой системы
Ядро Linux имеет определенные требования к сущности, которая может считаться файловой системой. Она должна реализовывать методы open() , read() и write() для постоянных объектов, которые имеют имена. С точки зрения объектно-ориентированного программирования, ядро определяет обобщенную файловую систему (generic filesystem) в качестве абстрактного интерфейса, а эти три большие функции считаются «виртуальными» и не имеют конкретного определения. Соответственно, реализация файловой системы по умолчанию называется виртуальной файловой системой (VFS).
Если мы можем открывать, читать и записывать в сущность, то эта сущность считается файлом, как мы видим из примера в консоли сверху.
Феномен VFS лишь подчеркивает наблюдение, характерное для Unix-подобных систем, которое гласит, что «всё является файлом». Подумайте, насколько странно, что тот маленький пример сверху с /dev/console показывает, как на самом деле работает консоль. На картинке изображена интерактивная Bash сессия. Отправка строки в консоль (virtual console device) отображает ее на виртуальном экране. VFS имеет другие, еще более странные свойства. Например, она дает возможность осуществлять поиск по ним.
Знакомые нам системы, такие как ext4, NFS и /proc имеют три важные функции в структуре данных С, которая называется file_operations. Кроме того, определенные файловые системы расширяют и переопределяют функции VFS привычным объектно-ориентированным способом. Как отмечает Роберт Лав, абстракция VFS позволяет пользователям Linux беспечно копировать файлы в или из сторонних операционных систем или абстрактных сущностей, таких как pipes, не беспокоясь об их внутреннем формате данных. Со стороны пользователя (userspace) с помощью системного вызова процесс может копировать из файла в структуры данных ядра с помощью метода read() одной файловой системы, а затем использовать метод write() другой файловой системы для вывода данных.
Определения функций, которые принадлежат к базовым типам VFS, находятся в файлах fs/*.c исходного кода ядра, в то время как подкаталоги fs/ содержат определенные файловые системы. В ядре также содержатся сущности, такие как cgroups , /dev и tmpfs , которые требуются в процессе загрузки и поэтому определяются в подкаталоге ядра init/ . Заметьте, что cgroups , /dev и tmpfs не вызывают «большую тройку» функций file_operations , а напрямую читают и пишут в память.
На приведенной ниже диаграмме показано, как userspace обращается к различным типам файловых систем, обычно монтируемых в системах Linux. Не показаны такие конструкции как pipes , dmesg и POSIX clocks , которые также реализуют структуру file_operations , доступ к которым проходит через слой VFS.
VFS — это «слой оболочки» между системными вызовами и реализациями определенных file_operations , таких как ext4 и procfs . Функции file_operations могут взаимодействовать либо с драйверами устройств, либо с устройствами доступа к памяти. tmpfs , devtmpfs и cgroups не используют file_operations , а напрямую обращаются к памяти.
Существование VFS обеспечивает возможность переиспользовать код, так как основные методы, связанные с файловыми системами, не должны быть повторно реализованы каждым типом файловой системы. Переиспользование кода – широкоприменяемая практика программных инженеров! Однако, если повторно используемый код содержит серьезные ошибки, от них страдают все реализации, которые наследуют общие методы.
/tmp: Простая подсказка
Простой способ обнаружить, что VFS присутствуют в системе – это ввести mount | grep -v sd | grep -v :/ , что покажет все смонтированные ( mounted ) файловые системы, которые не являются резидентами на диске и не NFS, что справедливо на большинстве компьютеров. Одним из перечисленных маунтов ( mounts ) VFS, несомненно, будет /tmp , верно?
Все знают, что хранение /tmp на физическом носителе – безумие! Источник.
Почему нежелательно хранить /tmp на физическом носителе? Потому что файлы в /tmp являются временными, а устройства хранения медленнее, чем память, где создается tmpfs. Более того, физические носители более подвержены износу при перезаписи, чем память. Наконец, файлы в /tmp могут содержать конфиденциальную информацию, поэтому их исчезновение при каждой перезагрузке является неотъемлемой функцией.
К сожалению, некоторые скрипты инсталляции Linux дистрибутивов создают /tmp на устройстве хранения по умолчанию. Не отчаивайтесь, если это произошло и с вашей системой. Выполните несколько простых инструкций с Arch Wiki, чтобы это исправить, и помните о том, что память выделенная для tmpfs , становится недоступной для других целей. Другими словами, система с гигантской tmpfs и большими файлами в ней может израсходовать всю память и упасть. Другая подсказка: во время редактирования файла /etc/fstab , помните о том, что он должен заканчиваться новой строкой, иначе ваша система не загрузится.
Помимо /tmp , VFS (виртуальные файловые системы), которые наиболее знакомы пользователям Linux – это /proc и /sys . ( /dev располагается в общей памяти и не имеет file_operations ). Почему именно эти два компонента? Давайте разберемся в этом вопросе.
procfs создает снимок мгновенного состояния ядра и процессов, которые он контролирует для userspace . В /proc ядро выводит информацию о том, какими средствами оно располагает, например, прерывания, виртуальная память и планировщик. Кроме того, /proc/sys – это место, где параметры, настраиваемые с помощью команды sysctl , доступны для userspace . Статус и статистика отдельных процессов выводится в каталогах /proc/ .
Здесь /proc/meminfo — это пустой файл, который тем не менее содержит ценную информацию.
Поведение /proc файлов показывает, какими непохожими могут быть дисковые файловые системы VFS. С одной стороны, /proc/meminfo содержат информацию, которую можно посмотреть командой free . С другой же, там пусто! Как так получается? Ситуация напоминает знаменитую статью под названием «Существует ли луна, когда на нее никто не смотрит? Реальность и квантовая теория», написанную профессором физики Корнельского университета Дэвидом Мермином в 1985 году. Дело в том, что ядро собирает статистику памяти, когда происходит запрос к /proc , и на самом деле в файлах /proc ничего нет, когда никто туда не смотрит. Как сказал Мермин, «Фундаментальная квантовая доктрина гласит, что измерение, как правило, не выявляет ранее существовавшего значения измеряемого свойства.» (А над вопросом про луну подумайте в качестве домашнего задания!)
Кажущаяся пустота procfs имеет смысл, поскольку располагающаяся там информация динамична. Немного другая ситуация с sysfs . Давайте сравним, сколько файлов размером не менее одного байта есть в /proc и в /sys .
Procfs имеет один файл, а именно экспортированную конфигурацию ядра, которая является исключением, поскольку ее нужно генерировать только один раз за загрузку. С другой стороны, в /sys лежит множество более объемных файлов, многие из которых занимают целую страницу памяти. Обычно файлы sysfs содержат ровно одно число или строку, в отличие от таблиц информации, получаемой при чтении таких файлов, как /proc/meminfo .
Цель sysfs – предоставить свойства доступные для чтения и записи того, что ядро называет «kobjects» в userspace. Единственная цель kobjects – это подсчет ссылок: когда удаляется последняя ссылка на kobject, система восстановит ресурсы, связанные с ним. Тем не менее, /sys составляет большую часть знаменитого «stable ABI для userspace» ядра, которое никто никогда, ни при каких обстоятельствах не может «сломать». Это не означает, что файлы в sysfs статичны, что противоречило бы подсчету ссылок на нестабильные объекты.
Стабильный двоичный интерфейс приложений ядра (kernel’s stable ABI) ограничивает то, что может появиться в /sys , а не то, что на самом деле присутствует в данный конкретный момент. Листинг разрешений на файлы в sysfs обеспечивает понимание того, как конфигурируемые параметры устройств, модулей, файловых систем и т.д. могут быть настроены или прочитаны. Делаем логический вывод, что procfs также является частью stable ABI ядра, хотя это не указано явно в документации.
Файлы в sysfs описывают одно конкретное свойство для каждой сущности и могут быть читаемыми, перезаписываемыми или и то и другое сразу. «0» в файле говорит о том, что SSD не может быть удален.
Вторую часть перевода начнем с того, как наблюдать за VFS с помощью инструментов eBPF и bcc, а сейчас ждем ваши комментарии и традиционно приглашаем на открытый вебинар, который уже 9 апреля проведет наш преподаватель — Владимир Дроздецкий.
Источник