Mount не может найти устройство в / etc / fstab

Как выглядит файл /etc/fstab

В каждой конкретной системе файл /etc/fstab выглядит не так, как в другой, ведь разделы, устройства, и их свойства, различаются в разных системах. Но скелет структуры файла всегда одинаков. Вот пример содержимого файла /etc/fstab:

Что же означает вся эта тарабарщина? Как легко заметить, каждая строка
содержит информацию об одном разделе или устройстве. Первый столбец содержит имя устройства, второй — точку его монтирования, третий — тип файловой системы, четвертый — опции монтирования, пятый (число) — опции дампа, шестой (число) опции проверки файловой системы. Давайте подробно рассмотрим всю эту информацию.

Зачем нужно монтирование

С помощью такого подхода — когда любой диск может быть любой папкой в системе, можно делать очень гибкую настройку. Самый частый пример, встречающийся на практике: файлы пользователя хранятся в папке /home/имя_пользователя/, например, у меня это папка /home/mial/. При установке операционной системы я могу сделать так, что мой второй или третий диск (а не системный) будет смонтирован в точку /home/mial/. То есть вся операционная система будет располагаться на одном диске, а все мои пользовательские файлы — на другом. Что это даёт? В случае переустановки системы, я вновь настрою монтирование диска с моими файлами в папку /home/mial/ и в результате в новой, только что установленной системе, уже будут на месте все мои документы, фотографии и прочее!

Поскольку часто узким местом в мощных компьютерах является скорость чтения с диска, то на на серверах с высокой нагрузкой практикуется перенос файлов баз данных (например, /var/lib/mysql/ на другой диск), возможен перенос файлов сервера (/srv/http/) на третий диск, файлов логов (/var/log/httpd/) на ещё один диск и т. д. Это позволяет добиться того, что данные из баз данных считываются независимо от записи журналов, то есть пока выполняются операции чтения-записи для одного процесса, другому процессу не нужно ждать своей очереди — всё выполняется одновременно.

Ещё монтирование позволяет выбрать различные режимы, например, диск можно смонтировать в режиме «только чтение» — в результате с него можно будет просматривать файлы, но испортить этот диск невозможно.

В общем, несмотря на то, что монтирование является чем-то непривычным для пользователей Windows, это потрясающая функция! Причём ничего сложного в этом нет, если понять суть.

Команды для поиска файлов:

find / -name file1

— найти файлы и директории с именем file1. Поиск начать с корня (/)  

find / -user user1

— найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/)  

find /home/user1 -name "*.bin"

— Найти все файлы и директории, имена которых оканчиваются на ‘. bin’. Поиск начать с ‘/ home/user1’  

find /usr/bin -type f -atime +100

— найти все файлы в ‘/usr/bin’, время последнего обращения к которым более 100 дней  

find /usr/bin -type f -mtime -10

— найти все файлы в ‘/usr/bin’, созданные или изменённые в течении последних 10 дней  

find / -name *.rpm -exec chmod 755 '{}' ;

— найти все фалы и директории, имена которых оканчиваются на ‘.rpm’, и изменить права доступа к ним  

find / -xdev -name "*.rpm"

— найти все фалы и директории, имена которых оканчиваются на ‘.rpm’, игнорируя съёмные носители, такие как cdrom, floppy и т.п.  

locate "*.ps"

— найти все файлы, содержащие в имени ‘.ps’. Предварительно рекомендуется выполнить команду ‘updatedb’  

whereis halt

— показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу ‘halt’which halt — отображает полный путь к файлу ‘halt’

Монтирование файловой системы

Для подключения файловой системы к конкретному местоположению (точке монтирования) команда mount используется в следующей форме:

mount  имя_устройства директория

После подключения точка монтирования становится корневой директорией смонтированной ФС. Например, смонтировать жесткий диск /dev/sdb1 в директорию /mnt/media можно следующим образом:

$ sudo mount /dev/sdb1 /mnt/media

Обычно при монтировании устройства с распространенной ФС, например, ext4 или xfs, команда mount автоматически определяет ее тип. Однако, некоторые ФС не распознаются. Их тип нужно указывать в явном виде. Для этого используется опция -t:

mount -t тип имя_устройства директория

Чтобы указать дополнительные опции монтирования, используется флаг -o:

mount -o опции_монтирования имя_устройства директория

Можно указать несколько опций, разделенных запятыми (после запятых не должно быть пробелов). Ниже предоставлены основные опции команды

-V — вывести версию утилиты;-h — вывести справку;-v — подробный режим;-a, —all — примонтировать все устройства, описанные в fstab;-F, —fork — создавать отдельный экземпляр mount для каждого отдельного раздела;-f, —fake — не выполнять никаких действий, а только посмотреть что собирается делать утилита;-n, —no-mtab — не записывать данные о монтировании в /etc/mtab;-l, —show-labels — добавить метку диска к точке монтирования;-c — использовать только абсолютные пути;-r, —read-only — монтировать раздел только для чтения;-w, —rw — монтировать для чтения и записи;-L, —label — монтировать раздел по метке;-U, —uuid — монтировать раздел по UUID;-T, —fstab — использовать альтернативный fstab;-B, —bind — монтировать локальную папку;-R, —rbind — перемонтировать локальную папку.

Полный список опций можно получить, выполнив команду man mount.

7.3. Процесс монтирования файловой системы от начала до конца

В приведенном ниже примере показана полная последовательность действий, начинающаяся с определения имени файла устройства жесткого диска (/dev/sdb) и заканчивающаяся монтированием созданной в разделе этого жесткого диска файловой системы в директорию .

# dmesg | grep '\'
sd 3:0:0:0:  150994944 512-byte logical blocks: (77.3 GB/72.0 GiB)
sd 3:0:0:0:  Write Protect is off
sd 3:0:0:0:  Mode Sense: 00 3a 00 00
sd 3:0:0:0:  Write cache: enabled, read cache: enabled, doesn't support \
DPO or FUA
sd 3:0:0:0:  Attached SCSI disk
# parted /dev/sdb
(parted) mklabel msdos
(parted) mkpart primary ext4 1 77000
(parted) print
Модель: ATA VBOX HARDDISK (scsi)
Диск /dev/sdb: 77.3GB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos
Номер  Начало  Конец   Размер  Тип      Файловая система  Флаги
1      1049kB  77.0GB  77.0GB  primary
(parted) quit
# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
4702208 inodes, 18798592 blocks
939929 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
574 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
( вывод сокращен )
...
# mount /dev/sdb1 /mnt
# mount | grep mnt
/dev/sdb1 on /mnt type ext4 (rw)
# df -h | grep mnt
/dev/sdb1 71G 180M 67G 1% /mnt
# du -sh /mnt
20K /mnt
# umount /mnt

Сохранение списков программных пакетов при загрузке

Сохранение статуса установленных пакетов opkg в хранящемся в extroot, а не в RAM, экономит некоторую оперативную память и сохраняет списки пакетов доступными после перезагрузки.

Через Web интерфейс

1. LuCI → System → Software → Configuration

смените

lists_dir ext varopkg-lists

на

lists_dir ext usrlibopkglists

это должно выглядеть примерно так:

dest root 
dest ram tmp
lists_dir ext usrlibopkglists
option overlay_root overlay
option check_signature

2. LuCI → System → Software → Actions → Update lists производит первоначальное обновление списка пакетов на extroot

———–Перевод и обновление статьи продолжается! ————
далее идет старая версия!

Проверка

Через Web интерфейс

  1. LuCI → System → Mount Points должен быть показан раздел на внешнем USB устройстве подмонтированный как .
  2. LuCI → System → Software должно быть показано большее свободное пространство на overlay разделе.

Через командную строку

Раздел на внешнем USB устройстве должен быть подмонтирован как
Свободное пространство в корневом разделе должно быть равно пространству на .

# grep -e /overlay /etc/mtab
devsda1 overlay ext4 rw,relatime,data=ordered
overlayfs:overlay  overlay rw,noatime,lowerdir=,upperdir=overlayupper,workdir=overlaywork
 
# df /overlay /
Filesystem           1K-blocks      Used Available Use% Mounted on
devsda1              7759872    477328   7221104   6% overlay
overlayfs:overlay     7759872    477328   7221104   6% 

Из чего состоят записи в /etc/fstab

Первое поле (fs_spec).

Это поле описывает специальное блочное устройство, удалённую файловую систему или образ файловой системы для loop устройства, которое нужно смонтировать, или файл подкачки, или раздел подкачки, который нужно включить.

Для обычных монтирований он будет содержать (ссылку на) узел специального блочного устройства (созданный утилитой mknod) для монтируемого устройства, например, «/dev/cdrom» или «/dev/sdb7». Для монтирования NFS это поле — <host>:<dir>, например, «knuth.aeb.nl:/». Для файловых систем без хранилища можно использовать любую строку, которая будет отображаться, например, в выводе df. Обычно для procfs используется «proc»; а для tmpfs используются «mem», «none» или «tmpfs». Другие специальные файловые системы, такие как udev и sysfs, обычно не указываются в fstab.

Вместо имени устройства можно указать LABEL=<label> или UUID=<uuid>. Это рекомендуемый метод, поскольку имена устройств часто совпадают с порядком обнаружения оборудования и могут измениться при добавлении или удалении других дисков. Например, «LABEL=Boot» или «UUID=3e6be9de-8139-11d1-9106-a43f08d823a6». (Используйте инструмент, специфичный для файловой системы, например e2label, xfs_admin или fatlabel, чтобы установить LABEL в файловых системах).

Также можно использовать ARTUUID= и PARTLABEL=. Эти идентификаторы разделов поддерживаются, например, для таблицы разделов GUID (GPT).

Чтобы узнать UUID всех дисков используйте любую из следующих команд:

findmnt --real -o TARGET,SOURCE,FSTYPE,UUID
mount | grep "^/dev"
blkid
lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,TYPE,UUID

Чтобы узнать UUID определённого диска, используйте любую из следующих команд:

findmnt --real -o TARGET,SOURCE,FSTYPE,UUID /dev/ДИСК
blkid /dev/ДИСК
lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,TYPE,UUID /dev/ДИСК

Второе поле (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» (например, во время загрузки)

user (пользователь)

позволяет монтировать указанному пользователю

owner (владелец)

позволяет монтировать указанному владельцу устройства

комментарий

или x-<name> для использования программами поддержки fstab

nofail

не сообщает об ошибках для этого устройства, если оно не существует.

Пятое поле (fs_freq).

Это поле используется dump, чтобы определить, какие файловые системы нужно выгрузить. По умолчанию, если не присутствует, — ноль (не выгружать).

Шестое поле (fs_passno).

Это поле используется fsck для определения порядка, в котором выполняется проверка файловых систем во время загрузки. Корневая файловая система должна быть указана с fs_passno равным 1.

Для других файловых систем значение fs_passno должно быть равно 2. Файловые системы на диске будут проверяться последовательно, но файловые системы на разных дисках будут проверяться одновременно, чтобы использовать параллелизм, доступный на оборудовании. По умолчанию нулевое значение (не использовать fsck), если оно отсутствует.

7.7. Практическое задание: монтирование файловых систем

3. Проверьте корректность своих выполненных действий с помощью утилит fdisk , df и mount . Также изучите содержимое файлов /etc/mtab и /proc/mounts .

4. Сделайте так, чтобы монтирование обеих файловых систем осуществлялось автоматически на постоянной основе, после чего проверьте работоспособность использованного механизма монтирования.

5. Что случится, если вы смонтируете файловую систему в директорию, в которой уже содержатся файлы?

6. Что случится, если вы смонтируете две файловых системы в одну и ту же точку монтирования?

7 (дополнительное задание). Дайте пояснения относительно различий между данными утилитами: find, locate, updatedb, makewhatis, whereis, apropos, which и type.

8 (дополнительное задание). Выполните проверку файловой системы, созданной в разделе, который смонтирован в директорию /srv/nfs/salesnumbers.

Третий столбец: Файловая система

Третий столбец файла /etc/fstab указывает тип файловой системы раздела или устройства. Поддерживается множество различных файловых систем, но мы рассмотрим только наиболее употребительные.

ext2 и ext3 С большой вероятностью ваши Линукс-разделы отформатированы в Ext3. Раньше стандартом была система Ext2, но в наши дни почти все дистрибутивы используют по умолчанию Ext3 или ReiserFS. Ext3 более современная система, чем Ext2 и отличается от нее своей журналируемостью. Это, в практическом плане, означает, что, если вы обесточите ваш компьютер, вместо того, чтобы выключить его по всем правилам, то вы не потеряете информацию, и не будете долго ждать при следующем включении, пока ваш компьютер проверяет файловую систему.

reiserfs Вполне возможно, что ваши Линукс-разделы отформатированы в ReiserFS. Подобно Ext3, ReiserFS тоже журналируемая файловая система, но она является гораздо более «продвинутой». Многие дистрибутивы Линукс (включая SuSE) используют ReiserFS по умолчанию.

swap Своп значит подкачка. Файловая система типа «swap» используется в разделах подкачки.

vfat и ntfs Windows разделы используют либо Vfat, либо NTFS. В 9х сериях (95, 98, МЕ) применялась Vfat, более известная как FAT32, в сериях NT (NT, 2000, XP) используется NTFS. В 2000 и XP можно применять и Vfat тоже. Если вы хотите иметь возможность писать в свои Windows-разделы из Линукса, советую отформатировать их в Vfat, потому что в Линуксе запись в NTFS-разделы до сих пор может причинить головную боль.

auto Нет-нет, это не тип файловой системы :-) Опция «auto» просто означает, что тип файловой системы определяется автоматически. Если снова взглянете на пример файла /etc/fstab, приведенный выше, то увидите, что и floppy и CD-ROM — оба — имеют вместо типа файловой системы опцию «auto». Почему? — Дело в том, что в этих устройствах могут применяться различные типы файловых систем. Одна дискета может быть отформатирована для Windows, другая — для Линукс (Ext2). Довольно разумно позволить системе самой определить тип файловой системы на носителях вроде дискет и оптических дисков.

Что такое монтирование?

Как я уже сказал Linux имеет единую корневую файловую систему, куда подключаются все запоминающие устройства и другие ресурсы. На самом деле, в Windows происходит что-то подобное, только все это скрыто от пользователя.

Фактически смонтированный раздел становится частью корневой файловой системы и система старается сделать работу со всеми разделами, независимо от их файловых систем, прозрачной. Это значит, что если вы примонтируете участок оперативной памяти или удаленную сетевую папку, то сможете работать с ней в файловом менеджере точно так же, как и с локальным диском.

Например, вы хотите примонтировать флешку. Вы даете системе команду подключить ее в папку /run/media/имя_пользователя/UUID_флешки/. Система определяет файловую систему устройства, а затем, используя драйвера ядра подключает ее к указанной папке. Дальше вам остается работать с той папкой, как с любой другой. Больше ни о чем думать не нужно. Когда надумаете извлечь флешку, ее нужно отмонтировать.

Проблема

Внезапные выключения PC-роутера (как и любой Linux-машины) могут привести
к нарушениям корректности файловой системы. Повреждения возникают из-за
того, что операции с файловой системой не являются неделимыми; например,
модификация файла включает в себя изменение как блоков файла, так и описателя
файла (i-node), списка свободных блоков и т.д., которые записываются на
диск несколькими раздельными операциями записи. После выполнения первой
из операций и вплоть до завершения последней файловая система на диске
находится в промежуточном, переходном состоянии; если в этот момент произойдет
выключение, файловая система так и останется в некорректном состоянии и
будет требовать починки (fsck).

Во многих случаях повреждения оказываются несерьезными, так что при
загрузке системы возможна автоматическая починка без потери файлов (fsck
-a
). Тем не менее, существует вероятность серьезного повреждения,
которое потребует починки в ручном режиме и, возможно, восстановления потерянных
файлов. Поэтому допускать повреждения файловой системы нельзя, ибо это
противоречит принципу необслуживаемости (см. ) изделия.

7.2. Вывод списка смонтированных файловых систем

Для вывода списка смонтированных файловых систем следует использовать команду mount . Также можно прочитать содержимое файлов /proc/mounts и /etc/mtab .

7.2.1. Утилита mount

Простейший и наиболее часто используемый способ вывода списка смонтированных файловых систем заключается в использовании утилиты mount без каких-либо аргументов.

7.2.2. Файл /proc/mounts

Ядро ОС предоставляет информацию о смонтированных файловых системах посредством файла /proc/mounts , причем данный файл не хранится на жестком диске. При чтении информации из файла /proc/mounts осуществляется чтение информации, переданной непосредственно ядром ОС.

Содержимое файла /etc/mtab не обновляется средствами ядра ОС, а поддерживается в актуальном состоянии средствами утилиты mount . Не редактируйте файл /etc/mtab вручную.

Более удобный для пользователя способ получения списка смонтированных файловых систем заключается в использовании утилиты df . Утилита df (название расшифровывается как diskfree – свободное пространство диска) имеет полезную дополнительную возможность, заключающуюся в выводе данных об объеме свободного пространства в каждой из смонтированных файловых систем, расположенных в разделах жестких дисков. Как и большинство утилит из состава Linux, утилита df поддерживает параметр -h , предназначенный для активации режима вывода данных в формате, облегчающем чтение.

7.2.5. Команда df -h

В приведенном ниже примере вывода команды df -h вы можете обнаружить информацию о размере файловой системы, свободном пространстве, использованном пространстве в гигабайтах и процентах, а также точке монтирования файловой системы, созданной в соответствующем разделе жесткого диска.

Утилита du позволяет получить количественные показатели использования пространства жесткого диска для хранения файлов и директорий. Используя утилиту du с параметром, являющимся путем к точке монтирования, вы на самом деле будете получать информацию о пространстве раздела жесткого диска, занятом данными из файловой системы.

Хотя утилита du и может осуществлять рекурсивный обход дерева директорий с последующим выводом информации о каждой из директорий, параметр -s позволит вам получить обобщенную информацию о размере родительской директории. Этот параметр чаще всего используется вместе с параметром -h . Поэтому команда du -sh по отношению к точке монтирования позволит получить информацию обо всем пространстве раздела диска, использованном файловой системой.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: