Fstab

Автор BULATUS, 19 марта 2011, 17:45:58

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

BULATUS

Думаю полезно будет расписать что такое fstab и как его едят...
fstab это конфигурационный файл содержащий информацию о разделах жесткого диска. В нем прописана инструкция по монтированию всех носителей информации имеющихся на компьютере.
fstab представляет собой обычный текстовый файл, его можно редактировать в любом текстовом редакторе, но... только имея права администратора.
Информация в fstab записана столбцами, например как у меня:
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#<file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda1 during installation
UUID=01287c67-cf2c-435f-bcac-ebb6d40aed06 /               ext4    errors=remount-ro 0       1
# /home was on /dev/sdb1 during installation
UUID=fbe9fa10-08cf-498f-9056-12e0557dbb8f /home           ext4    defaults        0      2

где строки начинающиеся с # это комментарии.
UUID (выделено синим) идентификатор диска
Открыть содержимое (спойлер)
Узнать UUID диска можно в терминале
ls -l /dev/disk/by-uuid/
[свернуть]
/ точка монтирования (выделено красным)
Открыть содержимое (спойлер)
все просто, указываем желаемую директорию, подробнее http://ru.wikipedia.org/wiki/%D2%EE%F7% ... 0%ED%E8%FF
[свернуть]
ext4 файловая система (выделено зеленым)
Открыть содержимое (спойлер)
список файловых систем http://ru.wikipedia.org/wiki/%D0%A1%D0% ... 0%B5%D0%BC
[свернуть]
defaults опция монтирования (выделено коричневым)
Открыть содержимое (спойлер)
auto и noauto
Если задана опция auto, то устройство будет смонтировано автоматически во время запуска компьютера (или по команде mount -a ). Эта опция включена по умолчанию. Если вам не нужно, чтобы устройство монтировалось автоматически, вы должны прописать опцию noauto в /etc/fstab. С опцией noauto, устройство или раздел могут быть смонтированы только явно.

exec и noexec
Если хотите запускать двоичные программы, которые находятся в данном разделе, то применяйте опцию exec, а если не хотите - то noexec. Последнее может быть полезно, если на разделе содержатся программы, которые не могут работать в вашей системе, например Windows- приложения, либо программы, нежелательные к запуску по той или иной причине.
Опция exec включена по умолчанию, и очень хорошо, что включена. Представьте, что было бы, если бы вы по ошибке использовали для монтирования своего корневого раздела опцию noexec...

ro
Монтирует файловую систему в режиме "только чтение".

rw
Монтирует файловую систему в режиме "чтение и запись". Применение данной опции вылечит головную боль многих новых пользователей Линукс, рвущих волосы оттого, что не могут записывать: на дискету, в Windows-разделы или куда-либо еще.

sync and async
Эти опции определяют как осуществляется ввод/вывод в данную файловую систему: синхронно или асинхронно. Обратите внимание, что в примере опция sync применена с дискетой. Попросту говоря, когда вы копируете файл на дискету, то запись физически происходит в тот самый момент, когда дана команда копировать. Если же применяется опция async, ввод и вывод происходят неодновременно (асинхронно). В случае с дискетой это означает, что физически запись может произойти много позже команды. В этом нет ничего плохого, и во многих случаях даже предпочтительно, но может иметь неприятные побочные следствия: если вытащить дискету из дисковода, не отмонтировав ее, скопированного файла на ней может не оказаться.
По умолчанию применяется опция async. Но, может быть, стоит для дискеты прописать sync, особенно если вы привыкли вытаскивать неотмонтированные дискеты, подобно тому, как это делается в Windows.

defaults
По умолчанию включены следующие опции: rw, suid, dev, exec, auto, nouser и async.

опция резервного копирования, выражается числом. 0 — не выполнять резервное копирование; 1 — выполнять резервное копирование.

fsck
опция проверки файловой системы. 0 - не проверять, 1 - проверять первой и использоваться как корневая, 2 - для всех остальных
[свернуть]

kstati

#1
при монтировании ntfs я всегда кидаю fmask=0111, что позволяет избежать случайного запуска файлов.

orlyanuch

#2
Также UUID диска можно узнать командой
$ sudo tune2fs -l /dev/sda7
Вывод команды:
Открыть содержимое (спойлер)
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          aa633675-933f-4690-8f9a-7401cdc116a7
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Filesystem flags:         signed_directory_hash
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              2321984
Block count:              9281545
Reserved block count:     464077
Free blocks:              2188644
Free inodes:              2321964
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1021
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8176
Inode blocks per group:   511
Filesystem created:       Sun Feb 27 06:12:51 2011
Last mount time:          Sat Mar 26 08:30:10 2011
Last write time:          Sat Mar 26 08:30:10 2011
Mount count:              25
Maximum mount count:      25
Last checked:             Fri Mar 18 20:55:55 2011
Check interval:           15552000 (6 months)
Next check after:         Wed Sep 14 21:55:55 2011
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:             256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      bf0b4361-9686-4ef5-8cc1-328f9d0ba0b9
Journal backup:           inode blocks
[свернуть]
Данные команды отображают большой объём информации о файловой системе. К примеру, значение поля Maximum mount count определяет количество монтирований ФС перед её проверкой. В данном случае я хочу увеличить это число:
$ sudo tune2fs -c 35 /dev/sda7
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to 35

Проверим:
$ sudo tune2fs -l /dev/sda7
~~~~
~~~~
Maximum mount count:      35
~~~~
~~~~

Также можно выполнять проверку ФС на основе заданных временных интервалов, а не количестве монтирований. Для начала нужно отключить проверку mount-count:
$ sudo tune2fs -c -1 /dev/sda1
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to -1

Активация динамической (с временной зависимостью) проверки:
$ sudo tune2fs -i 10 /dev/sda1   # проверять каждые 10 дней
$ sudo tune2fs -i 1d /dev/sda1   # проверять ежедневно
$ sudo tune2fs -i 3w /dev/sda1   # проверять каждые 3 недели
$ sudo tune2fs -i 6m /dev/sda1   # проверять каждые 6 месяцев
$ sudo tune2fs -i 0  /dev/sda1   # отключить проверку

Всегда должна быть включена либо mount-count, либо динамическая проверка.
Edimus, ut vivamus; nоn vivimus, ut edamus.

Leo

Ссылка на оф.сайт

Цитата: BULATUS от 19 марта 2011, 17:45:58обычный текстовый файл
... почему-то никто словом не обмолвился что файл этот системный и ошибки или нечаянное повреждение при редактировании может привести к невозможности загрузки системы стандартным способом.

rip

Возможно, сейчас поднимут крик, что я некромант, но все же...
Сразу скажу, что линукс у меня стоит всего второй день и большую часть времени я возился с монтированием дисков, которые пришлось переформатировать в ext4 за неимением рядом установленной винды и отсутствием опыта. Система Debian jessie x64. У меня 3 физических диска: 60 Гб ssd (/ и /home), 3 Тб hdd (/torrents и /docs) и 130 Гб ssd (/games). Железо практически новое, полтора года назад было топовым.
Открываю терминал, su, пароль.
Затем ввожу
gedit /etc/fstab
Консоль жутко матерится.
Открыть содержимое (спойлер)
(gedit:3757): dconf-WARNING **: failed to commit changes to dconf: Соединение закрыто

(gedit:3757): dconf-WARNING **: failed to commit changes to dconf: Соединение закрыто
Error creating proxy: Соединение закрыто (g-io-error-quark, 18)
Error creating proxy: Соединение закрыто (g-io-error-quark, 18)
Error creating proxy: Соединение закрыто (g-io-error-quark, 18)
Error creating proxy: Соединение закрыто (g-io-error-quark, 18)
Error creating proxy: Соединение закрыто (g-io-error-quark, 18)

(gedit:3757): dconf-WARNING **: failed to commit changes to dconf: Соединение закрыто

(gedit:3757): dconf-WARNING **: failed to commit changes to dconf: Соединение закрыто

(gedit:3757): dconf-WARNING **: failed to commit changes to dconf: Соединение закрыто

[свернуть]
но файл открывает.
Я выставил себе статус администратора в настройках, но все без толку.
При попытки сделать изменения в файле, консоль тут же дает о себе знать криками:
** (gedit:3757): WARNING **: Set document metadata failed: Установка атрибута metadata::gedit-spell-language не поддерживается

** (gedit:3757): WARNING **: Set document metadata failed: Установка атрибута metadata::gedit-encoding не поддерживается

Парсил интернет на наличие таких же ошибок у других юзеров, но ничего не нашел.
Быть может это проблема в настройках доступа и правах, но как их поменять, я не знаю.
Помогите, пожалуйста, либо направьте на путь истинный. Спасибо.

vic5710

попробуйте sudo nano /etc/fstab из консоли
так проще будет. но для новичка редактировать системные файлы чревато. я бы сначала забэкапил
например: sudo cp /etc/fstab /etc/fstab.default
при обломе можно восстановить: sudo cp /etc/fstab.default /etc/fstab

rip

Спасибо, vic. Каким-то чудесным образом после переустановки дебиан, эта проблема разрешилась сама собой.
Пришлось, конечно, покопаться в дисках, чтобы дать самому же себе право записывать там что-то и удалять, но вроде бы все теперь работает.
Не совсем все-таки я разобрался в системе прав... К тому же у меня теперь в /home целых 3 пользователя накопилось.

vic5710

Цитата: rip от 13 июля 2015, 18:56:10
Спасибо, vic. Каким-то чудесным образом после переустановки дебиан, эта проблема разрешилась сама собой.
Пришлось, конечно, покопаться в дисках, чтобы дать самому же себе право записывать там что-то и удалять, но вроде бы все теперь работает.
Не совсем все-таки я разобрался в системе прав... К тому же у меня теперь в /home целых 3 пользователя накопилось.
при установке fstab генерируется с нуля так что чуда нет

lenin

если непрвильно отредактировать fstab файл то это черевато попаданием в Emergency mode . Я так и несмог из него выйти , так как все файлы становятся только read only .

У кого-то получалось починить проблему в fstab

oermolaev

lenin, LiveCD + chroot

lenin

LiveCD+chrot ==но это уже переустановка .есть ли возможность избежать этого. Например отредактировать fstab  в Uboot  каким-то образом

oermolaev

lenin, нет, не переустановка, а редактирование системного файла. "Починка" - как хотели.

lenin

спосибо попробуйю

Бениамин Масан

Тема давно протухла , но хочу добавить - если вы попали в ситуацию

Цитироватьесли непрвильно отредактировать fstab файл то это черевато попаданием в Emergency mode . Я так и несмог из него выйти , так как все файлы становятся только read only .
Поможет

mount -o remount rw  /
И можно чинить систему. Добавлю что в таком случае очень полезен файловый менеджер mc ( я его на свои компы ставлю первым делом, к сожалению по умолчанию он в дебиан не ставиться

n0m4d

Проблема с поломанным fstab решается при помощи загрузки с лайф usb, к примеру самое близкое у меня была под рукой убунка. Зашёл на диск c Debian и поправил файл в редакторе.

Узнать название дисков на время загрузки системы можно командой:
lsblk

После узнаём UUID интересующих дисков:
sudo blkid

Надо заметить, что в файл fstab, диски монтируются по UUID, не как не по названию типа sda1, sdc2 и тд так, как после перезагрузки системы, диски могут сменить своё название в произвольной форме и система не загрузится, а UUID является постоянным, неизменным, значением  диска и может смениться лишь при его форматировании.

Пример добавления в файл fstab двух дисков с файловой системой NTFS:

# Диск с Windows 10
UUID=какие-то_символы_id_диска    /media/Disk_C   ntfs-3g defaults,uid=1000 0 1

# Диск файлового хранилища для двух систем, Win и Lin
UUID=какие-то_символы_id_диска    /media/Disk_D   ntfs-3g defaults,uid=1000 0 0

Проверяем, как монтируются диски:
sudo mount -a
Telegram - конференция: https://t.me/DebianForumRu