- Как добавлять записи в /etc/fstab. Как использовать /etc/fstab для хранения опций монтирования
- Для чего нужен файл /etc/fstab
- Из чего состоят записи в /etc/fstab
- Пример файла /etc/fstab с объяснением значений записей
- Как управлять опциями монтирования с помощью /etc/fstab
- Как в Linux подключить новый диск, разметить и отформатировать разделы
- Оглавление
- Активация диска в Linux
- Как узнать имена дисков, как просмотреть все диски в системе
- Разметка дисков (разделение на разделы) в Linux
- Форматирование разделов
- Монтирование и размонтирование дисков
- Автоматическое монтирование диска при загрузке Linux
- Подключение съёмного носителя (флешки, внешнего диска) в Linux
- Как просмотреть все диски и точки монтирования
- Как удалить разделы диска
- Перемонтирование диска с правами записи
- Заключение
Как добавлять записи в /etc/fstab. Как использовать /etc/fstab для хранения опций монтирования
Для чего нужен файл /etc/fstab
При включении компьютера с Linux диски уже смонтированы в системе: главный диск смонтирован в / (корень), загрузочный диск смонтирован в /boot, дополнительные диски смонтированы в /mnt/*. Информация для этих монтирвоаний содержится в файле /etc/fstab. Система автоматически монтирует диски на основании записей, содержащихся в файле /etc/fstab.
Файл fstab содержит описательную информацию о файловых системах, которые может монтировать система. fstab только читается программами, но не записывается; системный администратор обязан правильно создать и поддерживать этот файл. Порядок записей в fstab важен, потому что утилиты fsck, mount и umount последовательно выполняют итерацию через fstab, делая своё дело.
Каждая файловая система описывается в отдельной строке. Поля в каждой строке разделены табуляцией или пробелами. Строки, начинающиеся с символа «#«, являются комментариями. Пустые строки игнорируются.
Ниже приведён типичный пример записи в fstab:
Из чего состоят записи в /etc/fstab
Первое поле (fs_spec).
Это поле описывает специальное блочное устройство, удалённую файловую систему или образ файловой системы для loop устройства, которое нужно смонтировать, или файл подкачки, или раздел подкачки, который нужно включить.
Для обычных монтирований он будет содержать (ссылку на) узел специального блочного устройства (созданный утилитой mknod) для монтируемого устройства, например, «/dev/cdrom» или «/dev/sdb7». Для монтирования NFS это поле — : , например, «knuth.aeb.nl:/». Для файловых систем без хранилища можно использовать любую строку, которая будет отображаться, например, в выводе df. Обычно для procfs используется «proc»; а для tmpfs используются «mem», «none» или «tmpfs». Другие специальные файловые системы, такие как udev и sysfs, обычно не указываются в fstab.
Вместо имени устройства можно указать LABEL= или UUID= . Это рекомендуемый метод, поскольку имена устройств часто совпадают с порядком обнаружения оборудования и могут измениться при добавлении или удалении других дисков. Например, «LABEL=Boot» или «UUID=3e6be9de-8139-11d1-9106-a43f08d823a6». (Используйте инструмент, специфичный для файловой системы, например e2label, xfs_admin или fatlabel, чтобы установить LABEL в файловых системах).
Также можно использовать ARTUUID= и PARTLABEL=. Эти идентификаторы разделов поддерживаются, например, для таблицы разделов GUID (GPT).
Чтобы узнать UUID всех дисков используйте любую из следующих команд:
Чтобы узнать UUID определённого диска, используйте любую из следующих команд:
Второе поле (fs_file).
Это поле описывает точку монтирования (цель) для файловой системы. Для разделов подкачки это поле должно быть указано как «none». Если имя точки монтирования содержит пробелы или табуляции, их можно использовать как «\040» и «\011» соответственно.
Третье поле (fs_vfstype).
Это поле описывает тип файловой системы. Linux поддерживает множество типов файловых систем: ext4, xfs, btrfs, f2fs, vfat, ntfs, hfsplus, tmpfs, sysfs, proc, iso9660, udf, squashfs, nfs, cifs и многие другие.
Запись подкачки в этом поле должна содержать «swap».
Запись «none» полезна для привязки или перемещения монтирований.
Можно указать несколько типов в списке, разделённом запятыми.
mount и umount поддерживают подтипы файловых систем. Подтип определяется суффиксом «.subtype». Например, «fuse.sshfs». Рекомендуется использовать нотацию подтипа, а не добавлять префикс в первое поле fstab (например, «sshfs#example.com» является устаревшим).
Четвёртое поле (fs_mntops).
В этом поле описаны параметры монтирования, связанные с файловой системой.
Поле отформатировано как список параметров, разделённых запятыми. Оно содержит как минимум тип монтирования (ro или rw), а также любые дополнительные параметры, соответствующие типу файловой системы (включая параметры настройки производительности).
Основные параметры, не зависящие от файловой системы:
defaults
использовать параметры по умолчанию: rw, suid, dev, exec, auto, nouser и async.
noauto
не монтировать при использовании команды «mount -a» (например, во время загрузки)
позволяет монтировать указанному пользователю
позволяет монтировать указанному владельцу устройства
или x- для использования программами поддержки fstab
nofail
не сообщает об ошибках для этого устройства, если оно не существует.
Пятое поле (fs_freq).
Это поле используется dump, чтобы определить, какие файловые системы нужно выгрузить. По умолчанию, если не присутствует, — ноль (не выгружать).
Шестое поле (fs_passno).
Это поле используется fsck для определения порядка, в котором выполняется проверка файловых систем во время загрузки. Корневая файловая система должна быть указана с fs_passno равным 1.
Для других файловых систем значение fs_passno должно быть равно 2. Файловые системы на диске будут проверяться последовательно, но файловые системы на разных дисках будут проверяться одновременно, чтобы использовать параллелизм, доступный на оборудовании. По умолчанию нулевое значение (не использовать fsck), если оно отсутствует.
Пример файла /etc/fstab с объяснением значений записей
Рассмотрим пример реального файла /etc/fstab на моей системе:
Этот файл отчасти создан автоматически, отчасти дописан вручную.
Автоматическая часть была создана командой в соответствии с «Инструкцией по установке Arch Linux»:
Самая первая строка является комментарием и просто напоминает значение полей.
Затем строка «# /dev/nvme0n1p2» также является комментарием, она содержит удобное для восприятия имя диска, чтобы было проще ориентироваться, к какому диску относится последующая запись.
Следующая строка начинается с «UUID=01e4d4f5-698f-4dc2-987b-270499457f48» — это уникальный идентификатор диска. Вторым полем идёт «/», это означает, что диск смонтирован в корень файловой системы. Затем «ext4» указывает на тип файловой системы. Затем идут опции монтирования «rw,relatime». Затем идёт «0», означающий, что не нужно выгружать файловые системы. Последней идёт «1», означающая, что в случае возникновения проблем этот диск должен быть проверен первым.
Следующая строка вновь является комментарием, показывающим нам, к какому диску она относится «# /dev/nvme0n1p1».
Затем идёт идентификатор диска «UUID=7327-B4E4», обратите внимание, что он намного короче предыдущего — видимо, зависит от файловой системы. Затем идёт точка монтирования «/boot», то есть это загрузочный раздел, который монтируется в указанную папку. Далее тип файловой системы «vfat». Затем опции монтирования «rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro» — все опции монтирования будут рассмотрены в конце данной статьи, поэтому не будем на них останавливаться. Затем идёт «0», означающий, что не нужно выгружать файловые системы, затем идёт «2», означающая, что диск должен быть проверен вторым.
На этом заканчивается автоматически сгенерированная часть и начинается часть дописанная мною вручную.
После установки системы, второй внутренний диск мной был отформатирован в файловую систему ext4, у этого диска название /dev/sda и он смонтирован в директорию /mnt/disk_d с опциями «rw,relatime». Вместо имени диска /dev/sda можно указать его UUID — но это не критично.
Далее идёт закомментированная строка, подключающая файл подкачки «#/swapfile none swap defaults 0 0». Поскольку строка закомментированна, это означает, что файл подкачки не используется.
Про создание и удаление файлов подкачки смотрите статьи:
Как управлять опциями монтирования с помощью /etc/fstab
Помните, что при любом монтировании, даже если оно происходит не в начале запуска компьютера, а в любое другое время, программа mount сверяется с опциями из файла /etc/fstab. По этой причине можно прописать необходимые опции и точки монтирования в этом файл.
К примеру, у меня есть внешний USB диск, который при подключении к компьютеру по умолчанию монтируется в «/run/media/mial/Новый том».
Мне такое название точки монтирования не нравится, я хочу, чтобы именно этот диск монтировался в /mnt/disk_e (как на моём старом компьютере это был диск E:\).
В этом случае мне нужно отмонтировать диск и заново его монтировать примерно следующей командой:
Это ненужные действия, которые можно избежать, прописав опции монтирования и точку монтирования в файле fstab. Открываем этот файл для редактирования:
Мне необходимо узнать UUID данного диска (поскольку при подключении он иногда получает имя /dev/sdc1, иногда /dev/sdd1 или другие, например, если к компьютеру уже подключены другие диски или флешки). UUID диска можно узнать например так:
Теперь в файл /etc/fstab я добавляю следующие строки:
Первая из них — комментарий, который напомнит мне, к чему относится эта запись.
Затем идёт строка, с описанными выше полями. В первом поле я идентифицирую диск — я использую не его имя, а UUID, поскольку имя устройства может меняться. Затем указываю точку монтирвоания (/mnt/disk_e). Затем тип файловой системы (ntfs). Затем идут опции, обратите внимание, что ОБЯЗАТЕЛЬНО нужно добавить опцию nofail, иначе если этот диск не подключён к компьютеру во время загрузки, компьютер может вовсе не загрузиться из-за ошибки в файле /etc/fstab. Затем идут ещё две цифры необязательных полей (отмена выгрузки файловых систем и отмена проверки).
Теперь в любое время при подключении этого диска он будет автоматически смонтирован в /mnt/disk_e. Это можно проверить с помощью команды:
Примечание: вы можете обратить внимание, что опции монтирования из файла /etc/fstab и опции монтирования на скриншоте не совпадают. Дело в том, что программа mount может использовать программы-помогатели, которые фактически и выполняют монтирования. При вызове программ-помогателей некоторые опции могут теряться или игнорироваться программой, которая в конечном счёте выполняет монтирование. По этой же причине, кстати, вместо файловой системы ntfs указана fuseblk — это означает, что работу по монтированию диска выполнила FUSE.
Ещё одним следствием описания монтирования в файле /etc/fstab является то, что для указанных там дисков можно использовать сокращённую команду монтирования — указывая только точку монтирования или только имя устройства, например:
Эта команда сработает как надо, смонтировав диск /dev/sdc1 в /mnt/disk_e — недостающие сведения и опции монтирования будут взяты из /etc/fstab.
Источник
Как в Linux подключить новый диск, разметить и отформатировать разделы
Оглавление
В этой небольшой заметке я покажу на практическом примере, как работать с дисками в Linux.
Активация диска в Linux
Предположим вы подключили новый диск, на котором ещё нет файловой системы. Система его не видит и нам нужно выполнить команды для его подключения.
Скажу сразу, все описанные здесь действия можно выполнять в командах с графическим интерфейсом. Я же буду размечать и форматировать диски в командной строке — это более универсальный способ, так как позволяет настроить диски и разделы даже в операционных системах, на которых нет графического окружения.
При подключении нового диска нам нужно:
- разметить его на разделы
- отформатировать каждый раздел для создания файловой системы
- смонтировать диск для возможности записи и чтения данных
- настроить автоматическое монтирование при включении компьютера
Как узнать имена дисков, как просмотреть все диски в системе
Начать нужно с того, чтобы узнать имя диска, который мы будем изменять. В Linux совсем непохожая на Windows система обозначения дисков. Вместо привычных дисков C, D, E и так далее, в Linux диски это устройства в папке /dev/. В dev вообще все возможные устройства, даже весьма экзотические, не существующие в Windows.
Чтобы посмотреть доступные диски, выполните команду:
Как видно из скриншота, имеется диск /dev/nvme0n1. Затем перечислены два устройства /dev/nvme0n1p1 и /dev/nvme0n1p2. По совпадающему части названия nvme0n1 можно понять, что это разделы, на которые разделён диск /dev/nvme0n1.
Также имеется диск /dev/sda, который не разделён ни на какие разделы — именно его я и буду подключать.
Разметка дисков (разделение на разделы) в Linux
В консоли диск можно разбить на разделы командой cfdisk. После неё укажите имя диска, с которым вы хотите выполнить действия:
Диск может быть GPT или MBR (показывается как dos). Вы без труда найдёте множество информации об этих таблицах разделов в Интернете. Только отмечу, что GPT является более современной и имеет больше возможностей. Поэтому если не нужно работать со старым железом, которое понимает только MBR, то выбираем GPT.
Для создания диска выберите Новый:
Введите его размер.
Если нужно, поменяйте тип раздела:
Затем переместитесь вниз на свободное место и повторяйте эти действия по созданию разделов. Когда закончите, выберите Запись.
Форматирование разделов
Для форматирования в ext4:
Для форматирования в ext3:
Для форматирования в ext2:
Для форматирования в FAT32:
Мой пример (я не стал разбивать диск на разделы):
Кстати, если вы хотите отформатировать раздел, который уже используете, то его нужно сначала отмонтировать (об этом дальше).
Монтирование и размонтирование дисков
С дисками в /dev/ нельзя работать напрямую, то есть нельзя на них записывать файлы или копировать с них файлы. Для работы с ними их нужно смонтировать. Это делается командой mount.
Диск подключается к точке монтирования и уже в этой папке можно работать с содержимом диска.
Эта концепция может показаться непривычной пользователям Windows, но это очень удобно! Диск можно смонтировать в любую папку. Например, домашняя папка может быть на другом диске — удобно при переустановке системы — данные не нужно копировать в безопасное место, поскольку они уже на другом диске.
Для монтирования используется команда вида:
Допустим, я хочу, чтобы новый диск был подключён (смонтирован) к папке /mnt/disk_d. Название можно выбрать любое и точка монтирования необязательно должна быть в директории /mnt/ — можно сделать в домашней папке или в любой другой.
Начинаем с создания директории, в которую будет смонтирован диск:
Разрешаем доступ всем в этот диск, чтобы обычный пользователь также мог смотреть и записывать туда файлы:
На самом деле, права доступа можно настроить более тонко — без полного разрешения для всех.
Для размонтирования диска используется любая из двух команд:
Автоматическое монтирование диска при загрузке Linux
Диски для монтирования при запуске Linux прописаны в файле /etc/fstab.
Допустим, я хочу при загрузке монтировать диск /dev/sda в директорию /mnt/disk_d/. При этом я хочу чтобы диск был доступен для чтения и записи пользователем. Тогда я создаю каталог — точку монтирования:
Открываю файл /etc/fstab:
и дописываю туда следующую строчку:
В этой строке вам нужно заменить
- /dev/sda — на диск, который вы желаете смонтировать
- /mnt/disk_d — на вашу точку монтирования, которую вы выбрали для своего диска.
- ext4 — на файловую систему вашего диска
Если вы не уверены в файловой системе или её обозначении, то выполните команду:
В результате диск будет автоматически монтироваться при каждом старте системы.
Чтобы ваш пользователь имел доступ к этой папке без необходимости повышать свои привилегии, выполните команду:
Можно более тонко настроить права доступа — например, создав группу, только члены которой будут иметь доступ к диску.
Обратите внимание, что если вы что-то неправильно сделали в файле /etc/fsta, то система не сможет загрузиться в графический интерфейс и вам придётся всё исправлять из консоли. Ссылка на дополнительную инструкцию в конце этой статьи.
Для проверки записей в файле /etc/fstab используйте команду
На скриншоте можно увидеть, что диск с UUID равным 26FC3023FC2FEC2D является недоступным (unreachable). Это может означать, что запись в файле /etc/fstab имеет ошибку. Но в данном случае диск с UUID=26FC3023FC2FEC2D — это съёмный диск, для его монтирования указана опция nofail (не вызывать фатальную ошибку, даже если диск отсутствует), поэтому предупреждение можно проигнорировать.
Для вывода более подробной информации добавьте опцию —verbose:
Все пункты успешно прошли проверку, рассмотрим более подробно записи проблемного диска:
- /mnt/disk_e — точка монтирования
- [ ] target exists — целевая папка (точка монтирования), существуют, то есть директория /mnt/disk_e имеется в системе
- [ ] VFS options: rw — найдена такая опция монтирования как rw, то есть диск монтируется для чтения и для записи. VFS — это опции ядра, системных вызовов. Эти опции одинаковы для всех файловых систем.
- [ ] FS options: utf8 — найдена опция, специфичная для данной файловой системы. Этой опцией является utf8, то есть для преобразования имён файлов будет использоваться кодировка UTF-8.
- [ ] userspace options: noauto,nofail — здесь перечислены опции пользовательского пространства. Опция noauto означает не монтировать автоматически, а опция nofail означает не сообщает об ошибках для этого устройства, если оно не существует — эта опция важна для съёмных носителей и сетевых дисков, которые могут отсутствовать во время загрузки компьютера.
Подключение съёмного носителя (флешки, внешнего диска) в Linux
Между прочим, многие дистрибутивы Linux при подключении USB флешки или внешнего диска автоматически их монтируют. Автоматическое монтирование обычно является функцией окружения рабочего стола. То есть на одном и том же дистрибутиве Linux, но с разными рабочими столами (версии Linux Mint как пример) автомонтирование может иметься или отсутствовать.
Если этого не произошло, значит нужно смонтировать вручную. Этот процесс ничем не отличается от обычного монтирования дисков: также создайте точку монтирования и используйте команду mount.
Съёмные носители можно монтировать через /etc/fstab, для этого даже есть специальная опция nofail — игнорировать ошибки, если диск отсутствует.
Как просмотреть все диски и точки монтирования
Для этого используйте уже знакомую нам команду:
Как удалить разделы диска
Если вы хотите удалить всё содержимое диска, в том числе его разбивку на разделы, то это делается так:
Откройте диск в gdisk:
Для перехода в экспертный режим там введите
Затем для удаления GPT введите
Дважды согласитесь, чтобы полностью очистить диск.
Перемонтирование диска с правами записи
Иногда диски монтируются только с правами чтения. В этом случае можно скопировать файлы с диска, но нельзя на него что-либо записать или удалить. Перемонтировать диск на запись можно одной командой:
В ней /dev/sdb1 замените на имя вашего раздела.
Если вы столкнулись с ошибкой:
То нужно выполнить команду (замените /dev/sdb1 на ваш раздел):
После этого перемонтируйте диск.
Обратите внимание, что если вы монтируете диск с файловой системой NTFS, то у вас должен быть установлен пакет ntfs-3g, иначе что бы вы не делали, диск будет только для чтения.
Заключение
Если у вас ещё остались вопросы, то задавайте их в комментариях.
Ещё несколько советов и проблемных случаев рассмотрено в статье «Работа с дисками в BlackArch (монтирование, решение проблем)» — эта статья подходит для всех дистрибутивов, не только BlackArch.
Источник