Что такое файл Linux fstab и как он работает?
Опубликовано: 2022-01-29Если вы используете Linux, то, вероятно, вам нужно было изменить некоторые параметры файловой системы. Знакомство с fstab может сделать весь процесс намного проще, и это намного проще, чем вы думаете.
Что такое Фстаб?
Fstab — это таблица файловой системы вашей операционной системы. Если вам нужен обзор файловых систем, обязательно ознакомьтесь с другой нашей статьей HTG объясняет: какую файловую систему Linux выбрать? Раньше это был основной способ автоматического монтирования файлов системой. В настоящее время вы можете подключить USB-накопитель любого типа, и он просто появится в Nautilus, как в Windows и Mac OS, но когда-то вам приходилось вручную монтировать эти диски в определенную папку, используя « монтировать». Это справедливо для DVD, CD и даже дискет (помните такие?).
В то время единственной альтернативой было сообщить компьютеру, что при каждом подключении определенного устройства оно должно автоматически монтироваться в определенном месте. Вот где появился fstab, и это было потрясающе. Предположим, вы поменяли местами жесткие диски на своем контроллере IDE или SCSI. Компьютер может загружать файловые системы в другом порядке, что может привести к путанице. Fstab настроен на поиск определенных файловых систем и их автоматическое монтирование желаемым образом каждый раз, предотвращая возникновение множества аварий.
Ваш файл Fstab
Файл fstab находится по адресу:
/etc/fstab
Давайте посмотрим на мой файл fstab, хорошо?
Вы определенно увидите различия, но если вы хотите использовать свой собственный fstab, просто введите эту команду в терминал:
Вы также можете использовать gedit, если вам не нравится nano.
Очевидные варианты
Вы заметите, что все записи начинаются с UUID. Возможно, вы помните, что видели это в одной из наших предыдущих статей «Как выбрать схему разделов для вашего ПК с Linux», но мы все равно объясним это снова. Каждой файловой системе при форматировании присваивается универсальный уникальный идентификатор, который она уносит в могилу. Поскольку его нельзя изменить, это идеальный способ выбора файловых систем для монтирования, особенно важных. Допустим, ваш раздел /home находится на втором жестком диске, и в конечном итоге вы перемещаете его на внешний жесткий диск; fstab по-прежнему найдет этот раздел и смонтирует его правильно, избегая неудачной загрузки. Если вы переключитесь (или застряли) на старом методе использования идентификаторов устройств для выбора разделов (например, /dev/sda1), это преимущество исчезнет, потому что жесткие диски и разделы учитываются их контроллерами и, таким образом, могут изменяться.
Редактировать: использование UUID в вашем файле fstab, хотя и удобно для большинства домашних пользователей, имеет несколько больших предостережений. Это не работает при использовании таких вещей, как «собранные» или «сетевые» устройства. Если вы более продвинутый пользователь или планируете использовать такие вещи, как программный RAID в будущем, вам лучше не использовать UUID.
Следующий раздел fstab, как и все последующие, отделяется либо пробелом, либо табуляцией, либо их комбинацией. Здесь вы найдете точку монтирования. Как видите, у меня есть корневая (/) точка монтирования, подкачка и две точки, которые я добавил вручную для своих общих сетевых дисков. Если вы добавляете запись в fstab, вам придется вручную создать точку монтирования перед перезагрузкой компьютера (и изменения вступят в силу).
Далее следует раздел, определяющий тип файловой системы на разделе. Многие из них, такие как ext2/3/4, ReiserFS, jFS и т. д., изначально читаются Linux. Ваша конкретная система может по-прежнему нуждаться в установленных определенных пакетах, чтобы иметь возможность читать и записывать их. Отличным примером являются мои разделы NTFS; вы можете видеть, что я использую драйвер ntfs-3g для доступа к ним.
Более страшные вещи
Следующие несколько разделов обычно отпугивают новичков, но на самом деле они не такие уж сложные. Доступен большой набор опций, но есть несколько очень распространенных. Давайте посмотрим на них. (Сначала стоит вариант по умолчанию, за которым следуют альтернативы, но, поскольку дистрибутивы Linux могут быть очень разными, ваш пробег может отличаться.)
- auto/noauto: укажите, должен ли раздел автоматически монтироваться при загрузке. Вы можете заблокировать монтирование определенных разделов при загрузке, используя «noauto».
- exec/noexec: указывает, может ли раздел выполнять двоичные файлы. Если у вас есть рабочий раздел, на котором вы компилируете, то это может быть полезно, или, может быть, если у вас есть /home в отдельной файловой системе. Если вы беспокоитесь о безопасности, измените это на «noexec».
- ro/rw: «ro» — только для чтения, а «rw» — для чтения-записи. Если вы хотите иметь возможность писать в файловую систему от имени пользователя, а не от имени пользователя root, вам необходимо указать «rw».
- синхронизация/асинхронность: это интересно. «синхронизация» заставляет запись выполняться сразу после выполнения команды, что идеально подходит для дискет (насколько вы гик?) и USB-накопителей, но не совсем необходимо для внутренних жестких дисков. Что делает «асинхронный», так это позволяет команде выполняться в течение прошедшего периода времени, возможно, когда активность пользователя утихает и тому подобное. Вы когда-нибудь получали сообщение с просьбой «подождать, пока изменения записываются на диск?» Обычно поэтому.
- nouser/user: Это позволяет пользователю иметь привилегии монтирования и размонтирования. Важным примечанием является то, что «пользователь» автоматически подразумевает «noexec», поэтому, если вам нужно выполнить двоичные файлы и по-прежнему монтировать как пользователь, обязательно явно используйте «exec» в качестве опции.
Эти параметры разделяются запятой, без пробелов, и могут быть расположены в любом порядке. Если вы не уверены в значениях по умолчанию, можно явно указать свои варианты. Вещи, которые монтируются из временных мест (например, USB), не будут следовать этому базовому шаблону, если вы не создали для них записи (по UUID) в fstab. Это удобно, когда вы хотите, чтобы внешний жесткий диск всегда монтировался определенным образом, потому что это не повлияет на обычные флэш-накопители и тому подобное.

Вы можете видеть, что на двух моих накопителях включены права пользователя на монтирование, разрешен доступ на чтение и запись, а также включено автоматическое монтирование. Я не компилирую много программного обеспечения, но когда я это делаю, я добавляю опцию «exec» в конец списка.
Демпинг и Fscking
Следующая опция — это двоичное значение («0» для «ложь» и «1» для «истина») для «сброса». Это довольно устаревший метод резервного копирования для случаев, когда система вышла из строя. Вы должны оставить это как «0».
Последний параметр представляет собой числовое значение для «прохождения». Это сообщает системе порядок, в котором следует выполнять fsck (произносить это как угодно) или выполнять проверку файловой системы. Если диск имеет параметр «0», он будет пропущен, как и мои накопители в формате NTFS. Корневая файловая система всегда должна быть «1», а другие файловые системы могут идти позже. Это лучше всего подходит для журналирования файловых систем, таких как ext3/4 и ReiserFS. Старые файловые системы, такие как FAT16/32 и ext2, могут занять некоторое время, поэтому лучше отключить их fscking и периодически делать это самостоятельно.
Теперь, когда вы знаете, что делаете, вы можете сходить с ума по автоматическому монтированию и тому подобному. Это очень удобно, когда у вас есть куча разделов, которыми нужно управлять. Всегда не забывайте делать резервную копию на случай, если что-то пойдет не так, но получайте удовольствие и обязательно оставляйте свои впечатления в комментариях!
Команды Linux | ||
Файлы | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm | |
Процессы | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · тайм-аут · стена · да · убить · спать · sudo · su · время · groupadd · usermod · группы · lshw · выключение · перезагрузка · halt · poweroff · passwd · lscpu · crontab · дата · bg · fg | |
Сеть | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
СВЯЗАННЫЕ С: Лучшие ноутбуки с Linux для разработчиков и энтузиастов