Настройка сервера Linux и Windows
ITShaman - Сайт для АЙТИшников!
"Машины должны работать. Люди должны думать."
(девиз компании IBM)
Облако тегов
Реклама
www.popularsite.ru

Автоматическое монтирование дисков и разделов в Linux или что такое fstab?

Автоматическое монтирование дисков и разделов в Linux или что такое fstab?

В результате обычного монтирования командой mount параметры будут сохранены до первой перезагрузки ОС. Подробнее о использовании команды mount можно прочитать статью "Команда mount в Linux или все о монтировании разделов, дисков, образов ISO и SMB ресурсов". После перезагрузки ОС все эти действия необходимо производить заново. Чтобы монтирование происходило в автоматическом режиме, при каждой загрузке операционной системы, нужно отредактировать конфигурационный файл fstab.

В этой статье подробно рассмотрен вопрос автоматического монтирования разделов жесткого диска и других накопителей при старте операционной системы Линукс.

1. Что такое /etc/fstab и зачем он нужен?
Наверх


fstab - это текстовый файл, содержащий список устройств хранения информации и параметры монтирования. Различные накопители, которые необходимо автоматически присоединить во время загрузки операционной системы, по порядку перечисляются в файле fstab. Также в этом файле содержатся информация об устройствах, которые не присоединяются автоматически, но при выполнении монтирования устройства стандартной командой mount происходит присоединение устройства с заданными параметрами Это необходимо, к примеру, для CD/DVD-приводов, которые не примонтированы постоянно, а монтируются при наличии диска в приводе.

2. Содержимое /etc/fstab
Наверх


Строки конфигурационного файла fstab

fstab состоит из строк. Каждая строка это устройство. Символ решетки (#) в начале строки, как и во всех Unix системах, обозначает комментарий и поэтому значимой строкой не считается.

Здесь будут рассмотрены только строки файла fstab. Более детально каждую строчку рассмотрим ниже.

Для просмотра файла fstab:
# sudo nano /etc/fstab
Пример, как может выглядеть конфигурационный файл fstab:
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# /dev/sda1
UUID=b60b8731-9ff7-2238f302e592 / reiserfs notail,relatime 0 1
# /dev/sda3
UUID=69af6982-e3c7-99d02fb3a973 /home ext3 relatime 0 2
# /dev/sda2
UUID=b3a38495-55d7-33b9ea8d62ec none swap sw 0 0
/dev/scd1 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/scd0 /media/cdrom1 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

Белый цвет.

Белым цветом помечен стандартный заголовок файла fstab.

Желтый цвет.

Желтая строка монтирует виртуальную файловую систему procfs к директории /proc. Это стандартная процедура ОС, поэтому лучше ее не трогать.

Синий цвет.

Синяя строка присоединяет корневой раздел с параметрами notail,relatime (значение параметров будет рассмотрено ниже). Это тоже лучше не трогать.

Зеленый цвет.

Зеленая строка монтирует раздел /home с параметром relatime.

Красный цвет.

Красная монтирует SWAP раздел.

Серый цвет.

Серые строки задают параметры user,noauto,exec,utf8 для ручного (параметр noauto) монтирования CD/DVD-приводов.

Черный цвет.

Черные строки задают параметры ручного монтирования floppy-диска.

Столбцы конфигурационного файла fstab

Теперь рассмотрим более подробно из чего состоит каждая строка. Все строки обладают одинаковым числом блоков. Каждый блок в строке отделен минимум одним пробелом (корректнее отделять блоки клавишей ).

UUID=b60b8731-9ff7-2238f302e592 / reiserfs notail,relatime 0 1

Желтое поле.

В желтом поле находятся названия или универсальные идентификаторы устройств.

Обозначение раздела жесткого диска в Linux может представляться двумя способами: названием устройства (/dev/sda1, /dev/sdb1 и т.д.) или универсальным идентификатором (UUID). В линуксе эти оба обозначения взаимозаменяемы.

В нашем примере, устройство /dev/sda1 и устройство UUID=b60b8731-9ff7-463f-a32f-2238f302e592 одно и то же. UUID назначается операционной системой автоматически при установке. Предпочтительнее в файле fstab использовать обозначение устройств по UUID, так как при обновлениях операционной системы могут измениться названия устройств (к примеру /dev/sda1 может изменить название на /dev/sdb1).

Просмотреть присвоенные устройству UUID можно командой:
# blkid

Синее поле.

В синем столбике отображены точки монтирования. Точка монтирования — это директория, где нужно искать данное устройство. В нашем примере, чтобы просмотреть содержимое раздела жесткого диска /dev/sda3 нужно открыть директорию /home.

Зеленое поле.

В зеленом столбике описаны типы файловых систем.

Жесткий диск:

  • ext2, ext3, ext4;
  • raserfs;
  • xfs;
  • ntfs (возможно ntfs-3g);
  • fat32;
  • vfat (это fat16).

USB-накопитель:

  • auto (автоматическое распознавание файловой системы);
  • ntfs (возможно ntfs-3g);
  • fat32;
  • vfat (это fat16).

CD/DVD-привод:

  • auto (автоматическое распознавание файловой системы);
  • iso9660,udf.

Floppy-привод:

  • auto (автоматическое распознавание файловой системы);
  • vfat (это fat16);
  • fat32;
  • ext2, ext3, ext4.

Красное поле.

В красном столбике находятся параметры монтирования. Если параметров несколько, то они перечисляются через запятую без пробелов.

ПараметрДействиеЗначение по умолчанию
1execРазрешить запуск исполняемых файлов.включена
noexecЗапретить запуск исполняемых файлов
2autoРаздел будет автоматически монтироваться при загрузке операционной системы.включена
noautoРаздел не будет автоматически монтироваться при загрузке операционной системы.
3rwВыставить права доступа на чтение и запись.включена
roВыставить права доступа только на чтение.
4nouserЗапретить простым пользователям монтировать/демонтировать устройство.включена
userРазрешить простым пользователям монтировать/демонтировать устройство.
5sw или swapСпециальный параметр SWAP области
6asyncВключение опции асинхронного ввода/вывода. Любая операция (копирование файла, удаление и т.д.) будет происходить немного позже, чем дана команда. Помогает в распределении нагрузки ОС, последняя сама выбирает подходящее время.включена
syncВключение опции синхронного ввода/вывода. Любая операция происходит синхронно с командой.
7suidРазрешить работу SUID и SGID битов. Бит SUID, у исполняемого файла, повышает запустившему пользователю права до владельца этого файла. К примеру, если root создал исполняемый файл с битом SUID, то пользователь, запустивший этот файл, получает на время исполнения файла права суперпользователя. Бит SGID, у исполняемого файла, повышает запустившему пользователю права до группы владельца этого файла.
nosuidЗаблокировать работу SUID и SGID битов для устройства.включена
8iocharset=koi8-r codepage=866Добавляет поддержку кодировки koi8-r в названиях файлов и директорий. Применять при необходимости.
9errors=remount-roПри ошибке перемонтировать с параметром только для чтения (ro).
10notailЗапрещает хранить маленькие файлы в хвостах больших. Увеличивает быстродействие.
11atimeПроизводить запись времени последнего доступа к файлу.включена
noatimeОтключение записи времени последнего доступа к файлу. Увеличивает быстродействие файловой системы. Эта опция не рекомендуется стандартом POSIX, так как некоторые приложения требуют этой функции (к примеру, почтовые клиенты и программы нотификации о новой почте перестанут правильно работать).
relatimeВключение обновления времени последнего обращения к файлу только в том случае, если предыдущее время доступа было раньше, чем текущее время изменения файла. Это более лояльный подход, чем noatime.
12defaultsИспользование всех параметров по-умолчанию: exec, auto, rw, nouser, async, nosuid, atime

Серое поле.

Серое поле указывает на включение/исключение устройства хранения информации в список резервного копирования программы DUMP, если последняя используется.

0 — не выполнять резервное копирование; 1 — выполнять резервное копирование.

Черное поле.

Черное поле устанавливает порядок проверки раздела на наличие ошибок. Если установить один и тот же порядок для двух разделов, они будут проверяться одновременно.

0 — раздел не проверяется; 1 — раздел проверяется первым; 2 — раздел проверяется вторым и т.д.

3. Примеры использования


3.1. Как автоматически подключить раздел NTFS в Linux
Наверх

  1. Просматриваем все доступные разделы:
    # sudo fdisk -l
    Результат:
    user@desktop:~$ sudo fdisk -l
    Диск /dev/sda: 160.0 ГБ, 160041885696 байт
    255 heads, 63 sectors/track, 19457 cylinders
    Units = цилиндры of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x815aa99a
    Устр-воЗагрНачалоКонецБлокиIdСистема
    /dev/sda1*1478838459578+7HPFS/NTFS
    /dev/sda26668194571027356755Расширенный
    /dev/sda3478950311951897+82Linuxсвоп / Solaris
    /dev/sda4503266671314117083Linux
    /dev/sda566681945710273564083Linux
    Пункты таблицы разделов расположены не в дисковом порядке
    Ищем раздел, который нужно подключить. В нашем примере это /dev/sda1
  2. Просматриваем присвоенные UUID устройствам:
    # blkid
    Результат:
    user@desktop:~$ blkid
    /dev/sda1: UUID="D45A39A15A3980F2" TYPE="ntfs"
    /dev/sda3: TYPE="swap" UUID="cff5bb9f-22d5-44d2-a4e8-30658f83fb4e"
    /dev/sda4: UUID="03d11ea5-2b80-4a5e-ba09-cd6909425070" LABEL="root" TYPE="reiserfs"
    /dev/sda5: UUID="503b7434-1ced-495d-a565-a4f02634c748" TYPE="ext3" SEC_TYPE="ext2"
    Находим нужный UUID. В нашем примере это UUID="D45A39A15A3980F2"
  3. Открываем файл fstab для редактирования:
    # sudo nano /etc/fstab
  4. Добавляем строчку к концу файла fstab. Эта строка формируется из:
    4.1 На первое место ставим UUID требуемого раздела жесткого диска:
    UUID=D45A39A15A3980F2
    4.2 На второе место выбираем и ставим точку монтирования, допустим будет /home/windows:
    UUID=D45A39A15A3980F2 /home/windows
    4.3 Указываем файловую систему NTFS:
    UUID=D45A39A15A3980F2 /home/windows ntfs
    4.4 Далее выбираем из таблицы параметры, с которыми хотим примонтировать раздел:
    UUID=D45A39A15A3980F2 /home/windows ntfs rw,notail,relatime
    4.5 Резервное копирование этого раздела программой dump делать нам не нужно, поэтому ставим далее 0:
    UUID=D45A39A15A3980F2 /home/windows ntfs rw,notail,relatime 0
    4.6 Проверка раздела на ошибки делать тоже не будем, поэтому тоже 0:
    UUID=D45A39A15A3980F2 /home/windows ntfs rw,notail,relatime 0 0
  5. Последнюю строку к концу файла fstab можно добавить руками или командой:
    # echo “UUID=D45A39A15A3980F2 /home/Windows ntfs rw,notail,relatime 0 0” | sudo tee -a /etc/fstab

3.2. Автоматическое подключение CD/DVD-привода
Наверх

# /dev/cdrom /media/cdrom iso9660,udf ro,noauto,user,exec 0 0
Устройство /dev/cdrom подключается к точке монтирования /media/cdrom. Файловая система iso9660,udf. Подключается с параметрами ro (только чтение), noauto (не подключатся автоматически при старте ОС), user (подключение может осуществить любой пользователь) и exec (разрешить запуск приложение с подключаемого носителя).
Добавить закладку на статью
Комментарии
  1. Iliya87
    31 Май, 00:48 #

    Вау! Спасибо за статью! Оказывается все просо, как два пальца…

  2. artu_zzz
    1 Июнь, 01:51 #

    Мне тоже понравилось… жизнерадостно…

  3. d2501
    19 Сентябрь, 04:47 #

    Добрый день. следуя предыдущей Вашей статье, подмаунтил два диска командами:
    sudo mount -t ext3 -o rw /dev/sdb2 /home/d2501/sub2
    sudo mount -t ext3 -o rw /dev/sdb1 /home/d2501/sub1

    теперь хочу добавить информацию в fstab, но blkid -L дает UUID только на один диск:
    device fs_type label mount point UUID
    ————————————————————————————————————————————————————————-
    /dev/sdb2 /home/d2501/sub2

    device fs_type label mount point UUID
    ————————————————————————————————————————————————————————-
    /dev/sdb1 ntfs SUB1 /home/d2501/sub1 7C8CDD178CDCCCB0

    и почему-то, файловая система определяется как ntfs, хотя форматировал и маунт с указанием ext3.

    как добавить в fstab без UUID? спасибо.

    fdisk -l

    Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
    255 heads, 63 sectors/track, 121601 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0xe5244be9

    Device Boot Start End Blocks Id System

    /dev/sdb1 60315 121601 492287827+ 83 Linux

    /dev/sdb2 1 60314 484472173+ 83 Linux

  4. Mut@NT
    19 Сентябрь, 09:36 # (Комментарий автора)

    Автоматическое монтирование без UUID делается почти так же как и с ним, просто вместо UUID ставится имя устройства (к примеру, /dev/sdb1).

    В Вашем случае требуется добавить в /etc/fstab:
    /dev/sdb2 /home/d2501/sub2 ext3 rw,notail,relatime 0 0
    /dev/sdb1 /home/d2501/sub1 ext3 rw,notail,relatime 0 0

    P.S. Странно, что UUID не виден. Попробуйте blkid (без дополнительных параметров)

  5. d2501
    19 Сентябрь, 09:54 #

    спасибо, попробую.
    blkid не выводит информацию о /dev/sdb2 с параметрами или без.

    что бы получить конктетный отказ в выдаче UUID я спрашивал так:

    blkid device /dev/sdb{1,2} и мне выводилась инфа только по sdb1:

    d2501@ubuntu:~$ blkid device /dev/sdb{1,2}

    /dev/sdb1: UUID=“7C8CDD178CDCCCB0” LABEL=“SUB1” TYPE=“ntfs”

  6. d2501
    19 Сентябрь, 14:28 #

    хм, в общем, не работает через fstab, вероятно руки)

    добавил команды mount в /etc/rc.local – так работает.

    ps. мой опыт в linux измеряется часами

  7. Mut@NT
    20 Сентябрь, 06:51 # (Комментарий автора)

    Главное, чтобы работало)))
    Вероятнее это не руки, а сами винты с ошибками. Возможно с логическими. Если есть желание можно поковырять их или переразбить.
    У меня такого не разу небыло))

  8. dimkachel
    4 Ноябрь, 23:47 #

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

  9. Mut@NT
    5 Ноябрь, 00:38 # (Комментарий автора)

    То, что Вы хотите, это мягко говоря неправильно! Так на вскидку могу предложить только примонтировать NTFS раздел с правами только на чтение.
    Что Вам мешает сделать этот раздел ext4?

    P.S Еще способ: отредактируйте файл smb.conf (конфигурационный файл Samba) чтобы он сделал шару только для чтения.

  10. Mishan
    15 Январь, 15:15 #

    У меня диски ntfs монтируются автоматически.Изменил fstab, не монтируется атоматически и доступ есть только к тому диску, который добавил в fstab, а на второй ntfs-диск не дает доступ. Сделал как было, всё сразу монтируется автоматом.
    Для чего я хотел менять: Поставил winamp виндовский под wine, музыку беру с ntfs-дисков, а при загрузке когда его запускаешь, то он не может достучаться до файлов с музыкой пока диск ntfs не откроешь.

  11. Mut@NT
    15 Январь, 17:24 # (Комментарий автора)

    Mishan: У меня диски ntfs монтируются автоматически.Изменил fstab, не монтируется атоматически и доступ есть только к тому диску, который добавил в fstab, а на второй ntfs-диск не дает доступ. Сделал как было, всё сразу монтируется автоматом.

    Покажите строки кода, которые добавляете в fstab

  12. Сергей Луконин
    28 Февраль, 12:17 #

    Мой вариант (немного попроще, ИМХО) монтирования NTFS-раздела:
    /dev/sda6 /media/data/ ntfs-3g defaults 1 1
    Ну, sda6 меняете на свой диск. Папка data находится в media для того, чтобы на рабочем столе появлялась иконка примонтированного раздела (хотя по идее монтировать можно в любое место). Ну и ntfs-3g для полного счастья тоже не мешает.
    В общем, кому интересно, статья тут: http://lukonin.info/review/10-montirovanie-diskov-pri-zagruzke-v-linux.html

  13. Mut@NT
    28 Февраль, 14:08 # (Комментарий автора)

    Не понимаю, в чем приведенный вами метод проще??? Вернее сказать, чем он отличается от приведенного в этой публикации?

  14. Portartour
    10 Март, 19:00 #

    При обращении к диску появляется такая ошибка
    Не удалось подключить Диск 200 GB
    Error mounting: mount exited with exit code 1: helper failed with:
    mount: only root can mount /dev/sdb1 on /media/Media

    Если убираю строку из FSTAB, то все работает, но с запросом пароля.
    Help.

  15. Mut@NT
    11 Март, 02:40 # (Комментарий автора)

    Portartour: При обращении к диску появляется такая ошибка Не удалось подключить Диск 200 GB Error mounting: mount exited with exit code 1: helper failed with: mount: only root can mount /dev/sdb1 on /media/MediaЕсли убираю строку из FSTAB, то все работает, но с запросом пароля. Help.

    Приведите пример строки, которую добавляете в fstab

  16. Portartour
    11 Март, 16:17 #

    В Fstab ввожу такую строку:
    UUID=24909ee3-d9d4-4bcc-ac63-fffa802ccd3a /media/Media ext4 rw,nosuid,nodev,uhelper=devkit 0 0
    Параметры взял из файла Mtab

  17. Mut@NT
    12 Март, 19:37 # (Комментарий автора)

    Portartour: В Fstab ввожу такую строку:UUID=24909ee3-d9d4-4bcc-ac63-fffa802ccd3a /media/Media ext4 rw,nosuid,nodev,uhelper=devkit 0 0 Параметры взял из файла Mtab

    Попробуйте:
    UUID=24909ee3-d9d4-4bcc-ac63-fffa802ccd3a /media/Media ext4 defaults 0 0

  18. Portartour
    13 Март, 18:51 #

    Спасибо большое!!!
    Сделал как Вы сказали, все заработало!!!

  19. slayer
    15 Март, 14:23 #

    Такой вопрос, монтирую раздел на 54гб с файловой системой ext4, такой строкой в fstab: UUID=598cfedf-4612-44b9-b1c2-81af92818e7c /media/media ext4 default 0 0, раздел обнаруживается, но нельзя создавать, удалять, просмаривать папки, пишет “У вас недостаточно прав для просмотра содержимого элемента …” Ubuntu 9.10

  20. Mut@NT
    15 Март, 15:23 # (Комментарий автора)

    slayer: Такой вопрос, монтирую раздел на 54гб с файловой системой ext4, такой строкой в fstab: UUID=598cfedf-4612-44b9-b1c2-81af92818e7c /media/media ext4 default 0 0, раздел обнаруживается, но нельзя создавать, удалять, просмаривать папки, пишет “У вас недостаточно прав для просмотра содержимого элемента …” Ubuntu 9.10

    Странное дело у Вас творится. Обычно значение default монтирует раздел для записи.
    Можете попробовать примонтировать этот раздел вручную, командой mount
    При монтировании вручную выдаются возникающие ошибки.
    Я могу предположить, что у вас имеются логические ошибки на подключаемом разделе. Пройдитесь командой fsck по разделу

  21. slayer
    16 Март, 13:18 #

    Вручную, командой mount раздел монтируется без проблем, а fsck.ext4 выдает:media: clean, 663/3620864 files, 339379/14464516 blocks. Вылечилось, когда задал права, такие же, как у /home раздела. Не знаю насколько это хорошее решение, но работает)))

  22. Mut@NT
    17 Март, 06:07 # (Комментарий автора)

    slayer: Вручную, командой mount раздел монтируется без проблем, а fsck.ext4 выдает:media: clean, 663/3620864 files, 339379/14464516 blocks. Вылечилось, когда задал права, такие же, как у /home раздела. Не знаю насколько это хорошее решение, но работает)))

    Если работает, то все правильно))
    Можете привести параметры здесь, при которых все заработало?

  23. slayer
    17 Март, 14:22 #

    Mut@NT: Можете привести параметры здесь, при которых все заработало?

    Напишу как я это делал. Чтобы добраться до раздела: Sudo nautilus /media/media (уже можно нормально работать с диском), затем, в “свойствах” раздела ищем пункт “права”, там собственно и меняем: “владелец->имя_учетки“, “доступ к папке->создание и удаление файлов”, “группа->имя_учетки“, “доступ к папке->доступ к файлам”, после этого все отлично заработало. наверняка есть способ менять права через консоль, но мне так привычнее.

  24. Павел
    1 Апрель, 05:16 #

    Такой вопрос. А если мне нужно чтобы ни один дополнительный диск подключаемый к системе не монтировался? А при монтировании через интерефейс Mount/Unmount монтировался в режиме read-only?

  25. Mut@NT
    3 Апрель, 10:48 # (Комментарий автора)

    Павел: Такой вопрос. А если мне нужно чтобы ни один дополнительный диск подключаемый к системе не монтировался? А при монтировании через интерефейс Mount/Unmount монтировался в режиме read-only?

    Строка должна иметь вид, к примеру:
    /dev/sda1 /mnt ext3 noauto,ro 0 0

    где noauto – не монтировать автоматом, а ro – только чтение

  26. bebe
    1 Июнь, 11:35 #

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

    Только я в итоге не через терминал делал, там как-то не удобно файлы редактировать))))… не очень понятно что-ли. gksudo gedit /etc/fstab мне показалось удобнее) не ругайтесь сильно)

  27. Mut@NT
    2 Июнь, 02:30 #

    bebe: Только я в итоге не через терминал делал, там как-то не удобно файлы редактировать))))… не очень понятно что-ли. gksudo gedit /etc/fstab мне показалось удобнее) не ругайтесь сильно)

    Главное же результат, а остальное дело лично.

  28. iRobot
    11 Июнь, 00:23 #

    Чувак! Дай Бог тебе здоровья и сил не забрасывать такой полезный ресурс!
    Благодаря тебе, этому обзору и соседнему про MountManager я наконец-то добился того, чего хотел от Убунты, а именно запроса пароля рута на примонтирование раздела Винды! По-умолчанию в 10.04 автомонтируется и пускает без пароля, а мне это не нравилось!

    И НИКТО ни на одном форуме мне так и не смог подсказать конкретно, что сделать, что бы пароль запрашивало! И только благодаря твоим обзорам я допер как это сделать :) Еще раз спасибо тебе огромное! :)

    Скажи пожалуйста, а как сделать, что б ВООБЩЕ раздел Винды в Убунте не было видно – он мне вообще не нужен.

  29. Mut@NT
    15 Июнь, 03:32 #

    iRobot: Скажи пожалуйста, а как сделать, что б ВООБЩЕ раздел Винды в Убунте не было видно – он мне вообще не нужен.

    Чтобы он не монтировался? Нужно прописать в параметрах noauto

Имя (обязательное поле)
e-mail (обязательное поле)
Сайт
Текст комментария:
Случайное
Популярное
Спонсоры статьи
При цитировании документа ссылка на сайт обязательна.
Администрирование и настройка серверов, рабочих станций на базе ОС Linux и Windows.
Рейтинг@Mail.ru