Файловая система Linux
Файловые системы в Linux, macOS и других Unix-подобных операционных системах не используют отдельные идентификаторы томов для устройств хранения, как, скажем, в Windows. Windows назначает каждому тому букву диска, такую как C: или D:, а файловая система для каждого тома представляет собой дерево каталогов, расположенное под этой буквой диска.
В Linux файловая система представляет собой дерево каталогов «все в одном». У смонтированного запоминающего устройства его файловая система привита к этому дереву, так что оно кажется неотъемлемой частью единой файловой системы. Вновь смонтированная файловая система будет доступна через каталог, в который она смонтирована. Этот каталог называется точкой монтирования для этой файловой системы.
Многие файловые системы автоматически монтируются во время загрузки или на лету как тома хранения, подключенные к компьютеру во время выполнения. Осторожные системные администраторы могут отключить функции автоматического монтирования во время выполнения, чтобы они могли контролировать соединения с системой.
Это означает, что запоминающие устройства, подключенные во время выполнения, могут не монтироваться автоматически и требуют установки вручную. Монтирование файловой системы вручную позволяет принимать решения об этой файловой системе, например о том, где будет находиться точка монтирования и будет ли файловая система доступна только для чтения или для чтения и записи.
Команды , и дают вам возможность контролировать этот важный аспект вашей системы Linux, вне зависимости от необходимости или по выбору.
Способ 2: монтирование через имена устройств
Дополнительная информация
Я не стал загружать основной текст статьи расшифровкой опций монтирования, но несколько слов пояснения сказать необходимо.
rw (read-write, чтение-запись) — файловая система будет подключена с возможностью записи на неё пользователями.
Если вы хотите предотвратить любую запись на файловую систему вообще, указание одной только опции ro (read-only, только чтение) вас не спасёт — такие действия, как восстановление целостности системы по записям из журнала, будут проведены при подключении систем, поддерживающих журналирование. При необходимости предотвратить любую запись на файловую систему пользуйтесь другими средствами для монтирования, либо внимательно читайте документацию на утилиту монтирования для соответствующей файловой системы, если она допускает принудительное отключение подобных действий.
- exec — все файлы на подключемой системе будут считаться исполнимыми, если система не поддерживает других механизмов указания исполнимости файла. Альтернативно, noexec запрещает исполнение любых бинарных файлов вообще.
- codepage=866 — указывает, какую кодировку использовать для трансляции имён файлов на файловой системе. Кириллическая русская кодовая страница для файловой системы FAT — 866. Длинные имена на файловой системе (VFAT) сохраняются в уникоде, реально эта настройка нужна только для дисков, записанных на отличных от Windows системах, не поддерживающих соглашения VFAT.
- nls=utf8 — указывает модулю файловой системы, какую кодировку использовать при передаче данных системе (и пользователю). Старое название этой опции — iocharset использовать запрещено — она будет удалена в следующих версиях программы.
Схематично взаимодействие этих двух опций можно представить как:
FS <=charset=> OS <=nls=> Applications <=> Operator
uid (gid) — указывает, какой пользователь (группа) будет владеть точкой подключения (и файлами на ней, если нет других способов определить владельца). gid=plugdev указывает, что все пользователи в группе 46(plugdev) могут обращаться к этому устройству
Локальные пользователи в Ubuntu обычно входят в эту группу.
nofail — если указанный том недоступен в момент загрузки, это не создаст ошибок и загрузка нормально продолжится.
Внимание: настольная (desktop) версия Ubuntu всё равно выдаст предупреждение и будет ждать ввода пользователя.
users — допускает монтирование и размонтирование устройства обычными пользователями, причём, в отличие от user, размонтировать устройство может любой пользователь, не обязательно тот, что его монтировал.
Более подробно о монтировании разделов диска и опций к нему можно узнать из статьи про fstab, а также в статье разделы_и_файловые_системы_linux.
Донастройка системы
Теперь диски стали подключаться автоматически, но так как это делается от имени root, у нас пропала возможность на подключенных дисках давать права на общий доступ, чтобы восстановить эту возможность добавим настройку в Samba:
sudo gedit /etc/samba/smb.conf
добавим в секцию :
usershare owner only = false
Как переместить точку монтирования
Можно переместить точку монтирования в другую директорию, для этого используется команда вида:
mount --move СТАРАЯ_ДИРЕКТОРИЯ НОВАЯ_ДИРЕКТОРИЯ
Это приведёт к тому, что содержимое, которое ранее отображалось в СТАРАЯ_ДИРЕКТОРИЯ, теперь будет доступно в НОВАЯ_ДИРЕКТОРИЯ. Физическое расположение файлов не меняется
Обратите внимание, что СТАРАЯ_ДИРЕКТОРИЯ должен быть точкой монтирования.
Также обратите внимание, что перемещение монтирования, находящегося под общим монтированием, недопустимо и не поддерживается. Используйте команду findmnt, чтобы увидеть текущие флаги распространения:
findmnt -o TARGET,PROPAGATION
Файл fstab
Файл содержит запись для каждой файловой системы, которая монтируется при перезагрузке компьютера. Каждая запись состоит из шести полей. Поля:
- Файловая система : Нет, как следует из названия, тип файловой системы в разделе (для этого и используется поле типа ). Это идентификатор раздела, который должен быть смонтирован.
- Точка монтирования : место в файловой системе, в которое вы хотите смонтировать раздел.
- Тип : тип файловой системы в разделе.
- Параметры : каждая файловая система может иметь параметры, заданные для включения или выключения функции.
- Дамп : ссылка на практически устаревшее средство резервного копирования файловых систем, где вся файловая система была «выгружена» на ленту.
- Pass : это «проходной» флаг. Он сообщает Linux, какие разделы следует проверять на наличие ошибок с помощью и в каком порядке . Ваш основной раздел загрузки и операционной системы должен быть равен 1, а остальные могут быть установлены на 2. Если флаг установлен на ноль, это означает «вообще не проверять». Если ваша файловая система не является файловой системой журналирования (например, ext2 или FAT16 / 32), лучше отключить его, установив его на 0.
Эти поля должны быть указаны в этом порядке, и между ними должен быть пробел или табуляция. Поиск значений для этих полей может быть пугающим, особенно значения для поля «параметры». Параметры поля « options» должны быть в списке через запятую без пробелов между ними.
Страница для каждой файловой системы будет содержать список опций, которые можно использовать. имеет около 40 вариантов . Вот некоторые из наиболее распространенных вариантов:
- Авто: файловая система будет смонтирована во время загрузки, автоматически.
- Примечание : файловая система монтируется только при вводе команды .
- Exec : выполнение двоичных файлов разрешено в этой файловой системе.
- Noexec : выполнение двоичных файлов в этой файловой системе запрещено.
- Ro : Файловая система должна быть смонтирована только для чтения.
- Rw : Файловая система должна быть смонтирована как чтение-запись.
- Синхронизация : запись в файл должна выполняться немедленно, а не в буфере. Лучше всего резервировать для дискет, если кто-то все еще их использует. Влечет за собой снижение производительности.
- Асинхронизация : запись в файл должна быть буферизована и оптимизирована.
- Пользователь : любой пользователь может монтировать файловую систему.
- Nouser : пользователь root является единственным, кто может монтировать эту файловую систему.
- Значения по умолчанию : это краткий способ указания набора общих настроек: rw, suid, dev, exec, auto, nouser и async).
- Suid : позволяет работать с битами и . Бит используется для того, чтобы файл мог быть выполнен как root обычным пользователем . Когда бит установлен в каталоге, для файлов и каталогов, созданных в этом каталоге, их групповая принадлежность равной владельцу , а не группе пользователя, который их создал.
- Nosuid : не разрешать использование битов и .
- Noatime: — Не обновлять время доступа к файлу в файловой системе. Это может помочь производительности на старом оборудовании.
- Nodiratime : не обновлять время доступа к каталогу в файловой системе.
- Relatime : обновить время доступа к файлу относительно времени изменения файла.
Опция «по умолчанию» — хороший начальный гамбит. Вы можете добавить или удалить дополнительные параметры, если требуется некоторая подстройка. Если бы только был удобный способ получить нужные вам настройки, то вам нужно ввести их в файл .
Введите файл .
Изменение размера раздела NTFS
Примечание: Перед редактированием разделов обязательно делайте резервную копию важных данных!
Некоторые пользователи с установленной системой Windows хотели бы оставить её при установке Arch Linux. Часто для того, чтобы освободить место на диске под установку Arch Linux, возникает необходимость изменить размер системного раздела, на котором установлена Windows. Эту задачу можно выполнить одним из двух способов:
1) Воспользоваться встроенным в Windows средством управления разделами. Для его запуска нажмите Win+R, введите в появившееся окно diskmgmt.msc и нажмите Enter. Кликните по разделу, размер которого нужно уменьшить, правой кнопкой мыши, и выберите в меню пункт Сжать том. Укажите количество места, которое нужно освободить, и нажмите OK. После завершения операции за изменённым разделом появится свободное место, в котором можно будет создать необходимые разделы в процессе установки системы.
Для изменения размера NTFS-раздела из существующей системы Arch Linux установите пакеты и и запустите программу gparted. Если в системе отсутствует графический пользовательский интерфейс, можно использовать программу parted, входящую в состав пакета .
Перемонтирование всех файловых систем в fstab
Все файловые системы, смонтированные во время загрузки, имеют записи в файле с именем , который является таблицей файловой системы, расположенной в
Вы можете использовать для принудительного «обновления» и перемонтирования всех файловых систем, перечисленных в . В нормальных условиях эксплуатации это не требуется. Это действительно вступает в свои права, если у вас есть проблемы с несколькими файловыми системами.
Вам нужно будет использовать , поэтому вам будет предложено ввести пароль.
sudo mount -a
Правда, на правильно работающем компьютере это немного не впечатляет.
Однако на компьютере с проблемами файловой системы перемонтирование может устранить проблемы. Если этого не произойдет, то, по крайней мере, вы получите диагностические сообщения на экране и в системных журналах, которые помогут вам найти причину проблемы.
СВЯЗАННЫЕ: Что такое файл Linux fstab и как он работает?
Определение файловых систем
Файловые систему в /etc/fstab могут быть определены тремя различными способами: по имени данному ядром, по UUID или по labels. Преимущество использования UUID или labels в том, что они не зависят от порядка дисков, полезно когда изменяется порядок накопителей в BIOS (это может быть сделано пользователем или некоторые BIOS могут иногда изменять порядок устройств), или при переключении кабеля устройства.
Имена данные ядром
Узнать имена данные ядром можно используя fdisk:
# fdisk -l ... Device Boot Start End Blocks Id System /dev/sda1 * 1 19458 156290016+ 83 Linux
Пример /etc/fstab с использованием имён данных ядром:
# <file system> <dir> <type> <options> <dump> <pass> /dev/sda1 / ext4 defaults 1 1
UUID
UUID генерируется утилитами mkfs.* при создании файловой системы. blkid показывает UUIDs устройств и разделов:
# blkid /dev/sda1: UUID="6a60524d-061d-454a-bfd1-38989910eccd" TYPE="ext4"
Пример /etc/fstab с использованием UUID-идентификаторов:
# <file system> <dir> <type> <options> <dump> <pass> UUID=6a60524d-061d-454a-bfd1-38989910eccd / ext4 defaults 1 1
Label
В первую очередь нужно задать label для устройства или раздела, для этого можно использовать приложения такие как gparted или e2label для разделов ext2, ext3 и ext4. Имейте ввиду, что не все файловые системы поддерживают label (например FAT). Каждый lable должен быть уникальным, (чтобы избежать конфликтов) и содержать не более 16 символов.
Устройство или раздел не должны быть смонтированы перед получением label. Initially you will need to boot from a Live(CD/DVD/USB) before you can label with a gparted-like application or for ext partitions you can use e2label:
# e2label /dev/<раздел-диска> Debian
Пример /etc/fstab с использованием label:
# <file system> <dir> <type> <options> <dump> <pass> LABEL=Debian / ext4 defaults 1 1
Параметры монтирования
mount
-t Тип файловой системы
DVDUDF
mount /dev/cdrom /mnt/dvd -t udf
mount
mount: wrong fs type, bad option, bad superblock on /dev/cdrom, missing codepage or other error In some cases useful info is found in syslog - try dmesg | tail or so
Unable to identify CD-ROM format.
mount: block device /dev/cdrom is write-protected, mounting read-only
-o Атрибуты доступа
- Доступ «только для чтения» (ro) или на «чтение и запись» (rw)
- Разрешение или запрещение запуска программ (noexec)
mount -t vfat -o rw,noexec,iocharset=utf-8,codepage=866 /dev/sda1 /mnt/usb
mount -t ntfs -o noatime,users,rw,fmask=111,dmask=000,locale=ru_RU.UTF-8 /dev/sda1 /mnt/win_xp
mount -o remount,rw /dev/sda2
Перемонтирование файловой системы
Перемонтирование файловой системы использует опцию . Обычно это делается для перевода файловой системы из состояния «только чтение» (тестирование) в состояние «чтение-запись» (производство).
Давайте снова смонтируем наш дисковод. На этот раз мы будем использовать флаг (только для чтения). Затем мы подключим конвейер через и рассмотрим детали файловой системы гибкого диска.
sudo mount -r / dev / sdb / mnt
крепление | grep / mnt
Как вы можете видеть, выделенный означает, что файловая система смонтирована только для чтения.
Используя опцию с флагом (чтение-запись), мы можем размонтировать и перемонтировать файловую систему с новыми настройками, все в одной команде.
sudo mount -o remount, rw / mnt
Повторение обвязки через показывает нам, что был заменен на (выделено). Файловая система теперь находится в режиме чтения-записи.
крепление | grep / mnt
Типы памяти подкачки
Как правило, существует два различных типа памяти подкачки:
Раздел подкачки (англ. «swap partition») — тип памяти подкачки по умолчанию. Представляет собой раздел жесткого диска, используемый исключительно для подкачки памяти; никакие другие файлы не могут находиться там.
Файл подкачки (англ. «swap file») — специальный файл, который находится среди остальных файлов вашей файловой системы.
Чтобы узнать, каким объемом памяти подкачки вы владеете, используйте следующую команду:
Каждая перечисленная строка на вышеприведенном скриншоте (у нас всего 1 строка) обозначает имеющиеся у нас пространства подкачки. Рассмотрим детально пункты вывода:
Filename — указывает на расположение пространства подкачки (мы видим, что наш раздел подкачки находится в /dev/sda5).
Type — указывает, что пространство подкачки является разделом (partition), а не файлом (file).
Size — размер пространства подкачки в килобайтах.
Used — указывает на использованное количество килобайт памяти подкачки.
Priority — определяет, какое пространство подкачки использовать в первую очередь.
Одна из замечательных особенностей подсистемы подкачки Linux заключается в том, что если вы смонтируете два (или более) пространства подкачки (на двух разных устройствах) с одинаковым приоритетом, то Linux будет чередовать активность подкачки между ними, что может значительно повысить производительность системы подкачки.
Примечание: Монтирование в Linux — это подключение диска в основную файловую систему.
Основы работы с fsck
В этой статье мы рассмотрим ручную работу с fsck. Возможно, вам понадобиться LiveCD носитель, чтобы запустить из него утилиту, если корневой раздел поврежден. Если же нет, то система сможет загрузиться в режим восстановления и вы будете использовать утилиту оттуда. Также вы можете запустить fsck в уже загруженной системе. Только для работы нужны права суперпользователя, поэтому выполняйте ее через sudo.
А теперь давайте рассмотрим сам синтаксис утилиты:
$ fsck
Основные опции указывают способ поведения утилиты, оболочки fsck. Раздел диска — это файл устройства раздела в каталоге /dev, например, /dev/sda1 или /dev/sda2. Опции файловой системы специфичны для каждой отдельной утилиты проверки.
А теперь давайте рассмотрим самые полезные опции fsck:
- -l — не выполнять другой экземпляр fsck для этого жесткого диска, пока текущий не завершит работу. Для SSD параметр игнорируется;
- -t — задать типы файловых систем, которые нужно проверить. Необязательно указывать устройство, можно проверить несколько разделов одной командой, просто указав нужный тип файловой системы. Это может быть сама файловая система, например, ext4 или ее опции в формате opts=ro. Утилита просматривает все файловые системы, подключенные в fstab. Если задать еще и раздел то к нему будет применена проверка именно указанного типа, без автоопределения;
- -A — проверить все файловые системы из /etc/fstab. Вот тут применяются параметры проверки файловых систем, указанные в /etc/fstab, в том числе и приоритетность. В первую очередь проверяется корень. Обычно используется при старте системы;
- -C — показать прогресс проверки файловой системы;
- -M — не проверять, если файловая система смонтирована;
- -N — ничего не выполнять, показать, что проверка завершена успешно;
- -R — не проверять корневую файловую систему;
- -T — не показывать информацию об утилите;
- -V — максимально подробный вывод.
Это были глобальные опции утилиты. А теперь рассмотрим опции для работы с файловой системой, их меньше, но они будут более интересны:
- -a — во время проверки исправить все обнаруженные ошибки, без каких-либо вопросов. Опция устаревшая и ее использовать не рекомендуется;
- -n — выполнить только проверку файловой системы, ничего не исправлять;
- -r — спрашивать перед исправлением каждой ошибки, используется по умолчанию для файловых систем ext;
- -y — отвечает на все вопросы об исправлении ошибок утвердительно, можно сказать, что это эквивалент a.
- -c — найти и занести в черный список все битые блоки на жестком диске. Доступно только для ext3 и ext4;
- -f — принудительная проверка файловой системы, даже если по журналу она чистая;
- -b — задать адрес суперблока, если основной был поврежден;
- -p — еще один современный аналог опции -a, выполняет проверку и исправление автоматически. По сути, для этой цели можно использовать одну из трех опций: p, a, y.
Теперь мы все разобрали и вы готовы выполнять восстановление файловой системы linux. Перейдем к делу.
Как изменить файл подкачки в Windows 10
Если пользователь в целом доволен производительностью своего ПК, менять настройки подкачки не рекомендуется. Виртуальная память регулируется через меню дополнительных свойств ОС. Последовательность действий следующая:
-
Наводим курсор на ярлык «Этот компьютер», нажимаем ПКМ и выбираем пункт «Свойства» в контекстном меню.
-
Открываем «Дополнительные параметры системы».
-
Нажимаем кнопку «Параметры» в блоке «Быстродействие».
-
Появляется новое окно, в котором выбираем вкладку «Дополнительно» и нажимаем кнопку «Изменить» в блоке «Виртуальная память».
Открыть раздел «Параметры быстродействия» можно и через поисковую строку. Для этого необходимо ввести в неё словосочетание «Настройка представления», после чего можно сразу переходить к четвёртому пункту.
Как настроить размер файла подкачки
По умолчанию операционная система Windows 10 автоматически меняет размер файла подкачки, исходя из собственных нужд. Это приводит к дополнительной фрагментации файлов, а значит и к снижению быстродействия, поэтому желательно задать постоянный размер файла самостоятельно. Открыв настройки виртуальной памяти, делаем следующее:
-
Удаляем галочку для опции «Автоматически выбирать…»
- Ставим отметку рядом с пунктом «Указать размер» и указываем значения для исходного и максимально допустимого размера файла в мегабайтах. Чтобы избежать лишней фрагментации, максимальный размер желательно сделать равным исходному.
- Нажимаем «Задать», затем подтверждаем изменения и перезагружаем ПК.
Выбор размера
Однозначного ответа по поводу идеального размера файла подкачки в Windows 10 не дают ни издания, посвященные IT, ни даже сама компания Microsoft. Общее правило таково: чем больше оперативной памяти имеется на компьютере, тем меньше должен быть размер файла подкачки. Определить же конкретное значение можно вот как:
- Стараемся как можно сильнее нагрузить систему: открываем сразу несколько приложений, вкладок в интернет-браузере, запускаем какую-нибудь видеоигру.
- Вызываем диспетчер задач Windows клавишами Ctrl+Alt+Delete. Открываем вкладку «Производительность» и проверяем показатель «Память», то есть объем задействованной виртуальной памяти в гигабайтах. Увеличиваем этот показатель вдвое и сравниваем с количеством оперативной памяти нашего ПК. Чтобы узнать, сколько её, нажимаем «Пуск» и переходим в раздел «Система».
- Оптимальный размер файла подкачки в Windows 10 определяется путём несложных вычислений, которые проще всего объяснить на примере. Допустим, у нас имеется 8 Гб оперативной памяти, из которых компьютер при значительной нагрузке использует 6. Умножив 6 на 2 согласно предыдущему пункту, получаем 12. Из этого числа вычитаем первоначальный объём RAM, то есть 8 Гб. У нас остается 4 Гб. Это и есть оптимальный размер файла подкачки.
Данный способ расчета особенно полезен при настройке подкачки под конкретные программы — например, игры, которые требуют больше всего виртуальной памяти. Если же речь идёт об офисном компьютере, то можно обойтись и без вычислений, а просто воспользоваться рекомендованными значениями для различных объемов RAM (слева указана ёмкость ОЗУ, справа — оптимальный размер файла подкачки)
Емкость ОЗУ | Размер файла подкачки |
1024 Мб | 2048 Мб |
2048 Мб | 1512 Мб |
4096 Мб | 1024 Мб |
От 6 Гб | размер минимальный, определяется индивидуально |
Формат строки
Каждая строка в файле /etc/fstab содержит следующие поля, разделенные пробелами или символами табуляции:
filesystem dir type options dump pass
filesystem
Физическое место размещения файловой системы, по которому определяется конкретный раздел или устройство хранения для монтирования.
type
Тип файловой системы. Поддерживается множество типов: ext2, ext3, ext4, btrfs, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap и auto. При выборе auto команда mount попытается определить реальный тип файловой системы самостоятельно. Это полезно для компакт-дисков (CD/DVD).
options
Параметры монтирования файловой системы. Подробнее смотрите на man странице mount
Обратите внимание, что некоторые параметры относятся к конкретным типам файловых систем.
Опция | Значение |
---|---|
auto | Файловая система монтируется при загрузке автоматически или после выполнения команды ‘mount -a’. |
noauto | Файловая система может быть смонтирована только вручную. |
exec | Позволяет исполнять бинарные файлы на разделе диска. Установлено по умолчанию. |
noexec | Бинарные файлы не выполняются. Использование опции на корневой системе приведёт к её неработоспособности. |
ro | Монтирует файловую систему только для чтения. |
rw | Монтирует файловую систему для чтения/записи. |
sync | Все операции ввода-вывода должны выполняться синхронно. |
async | Все операции ввода-вывода должны выполняться асинхронно. |
user | Разрешает любому пользователю монтировать файловую систему. Применяет опции noexec, nosuid, nodev, если они не переопределены. |
nouser | Только суперпользователь может монтировать файловую систему. Используется по умолчанию. |
defaults | Использовать значения по умолчанию. Соответствует набору rw, suid, dev, exec, auto, nouser, async. |
suid | Разрешить операции с suid и sgid битами. В основном используются, чтобы позволить пользователям выполнять бинарные файлы со временно приобретёнными привилегиями для выполнения определённой задачи. |
nosuid | Запрещает операции с suid и sgid битами. |
nodev | Данная опция предполагает, что на монтируемой файловой системе не будут созданы файлы устройств (/dev). Корневой каталог и целевая директория команды chroot всегда должны монтироваться с опцией dev или defaults. |
atime | Включает запись информации о последнем времени доступа (atime) при каждом чтении файла. Включено по умолчанию на Linux до v.2.6.29 включительно. |
noatime | Отключает запись информации о последнем времени доступа (atime) при каждом чтении файла. |
relatime | Включает запись информации о последнем времени доступа при чтении файла, если предыдущее время доступа (atime) меньше времени изменения файла (ctime). Включено по умолчанию на Linux начиная с v.2.6.30. |
acl | Включить обработку ACL для раздела |
dump
Используется утилитой dump для определения того, нужно ли создать резервную копию данных в файловой системе. Возможные значения: или 1. Если указано число 1, dump создаст резервную копию. У большинства пользователей утилита dump не установлена, поэтому им следует указывать 0 в этом поле.
pass
Используется программой fsck для определения того, нужно ли проверять целостность файловой системы. Возможные значения: , 1 или 2
Значение 1 следует указывать только для корневой файловой системы (с точкой монтирования ); для остальных ФС, которые вы хотите проверять, используйте значение 2, которое имеет менее высокий приоритет.Обратите внимание, что в случае btrfs следует всегда указывать , даже если эта файловая система используется в качестве корневой. Файловые системы, для которых в поле указано значение , не будут проверяться fsck.