Mount at startup linux

Автоматическое монтирование fstab и systemd

Как вы знаете, во время загрузки операционной системы Linux все используемые разделы собираются в единую корневую файловую систему. Все это выполняется системой инициализации и пользователь даже не замечает переходов между разделами. Например, домашний раздел монтируется в /home, загрузочный в /boot.

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

Как происходит монтирование?

Файловая система Linux очень сильно отличается от Windows, здесь нет дисков. Есть только корневая файловая система, которая строиться путем монтирования всех нужных разделов в подкаталоги корня.

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

Все эти задачи выполняет система инициализации, независимо от того используете ли вы OpenRC или Systemd. Но сама система инициализации не знает куда монтировать тот или иной раздел. Для получения этой информации она использует конфигурационные файлы.

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

В этой статье мы рассмотрим как настроить автомонтирование разделов fstab, так и новый способ, с помощью systemd.

Автоматическое монтирование fstab

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

Сначала давайте рассмотрим синтаксис одной строчки fstab:

устройство точка_монтирования файловая_система опции резерв проверка

Теперь подробнее рассмотрим что означает каждый пункт:

  • Устройство — это раздел диска, который вам нужно примонтировать. Его можно указать в формате файла устройства Linux в каталоге /dev/, например, /dev/sda1 или с помощью уникального идентификатора UUID, тогда формат записи будет таким UUID=»XXXX-XXXX-XXXX-XXXX», также возможна запись с помощью метки, например, LABEL=home;
  • Файловая система указывает в какой файловой системе нужно монтировать это устройство, например, ext4, ext3, ext2, btrfs;
  • Точка монтирования — куда нужно примонтировать это устройство, например, /home, /boot, /mnt;
  • Опции — параметры монтирования файловой системы, рассмотрим подробнее ниже;
  • Проверка — указывает в какой очереди нужно проверять устройство на ошибки, 1 — в первую очередь, 2 — вторую, 0 — не проверять;
  • Резерв — указывает нужно ли делать резервную копию раздела, может принимать значения только 0 и 1.

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

Читайте также:  При копировании файла linux права

Начнем с общих для всех файловых систем опций:

  • sync — записывать на диск все изменения сразу после того, как они были выполнены, не использовать кэширование для записываемых данных. Может понадобится для извлечения флешки без размонтирования, но сильно снижает производительность;
  • async — использовать кэш при записи данных, увеличивает производительность, используется по умолчанию;
  • atime — сохранять время последнего доступа к файлу;
  • noatime — не сохранять время последнего доступа, полезно для ssd и флешек;
  • relatime — обновлять время доступа только при изменении файла, необходимо для работы многих программ;
  • norelatime — отключить relatime;
  • strictatime — обновлять время доступа всегда, отключает действие предыдущих опций;
  • auto — автоматически монтировать при загрузке, действие по умолчанию;
  • noauto — не монтировать при загрузке;
  • defaults — использовать опции монтирования fstab по умолчанию — rw,suid,dev,exec,auto,nouser,async;
  • dev — интерпретировать блочные устройства;
  • nodev — не интерпретировать блочные устройства;
  • diratime — аналогично atime только для каталогов;
  • dirnoatime — аналогично noatime, для каталогов;
  • exec — разрешить выполнять программы на этом разделе;
  • noexec — запретить выполнять программы на этом разделе;
  • group — разрешить другим пользователям кроме root монтировать этот раздел, если их группа совпадает с указанной, обычно используется вместе с noauto;
  • nofail — не сообщать об ошибках;
  • mand — разрешить блокирование файловой системы, нужно для некоторых антивирусов;
  • nomand — запретить блокирование файловой системы;
  • suid — разрешить выполнение программ с флагом suid от имени другого пользователя;
  • nosuid — игнорировать флаг suid;
  • owner — разрешить указанному пользователю монтировать устройство;
  • ro — монтировать только для чтения;
  • rw — монтировать для чтения и записи;
  • users — разрешить монтирование любому пользователю;
  • umask — установить права доступа к файлам и папкам на этом разделе;
  • uid — задает владельца каталога, по умолчанию root;
  • gid — задает группу владельца каталога.

Когда мы рассмотрели всю теорию, настройка fstab не вызовет у вас проблем. Теперь давайте рассмотрим стандартное содержимое файла fstab, а также как выполняется монтирование. Вот так выглядит монтирование корня:

/dev/sda2 / ext4 defaults 0 1

Здесь в качестве корневой файловой системы будет монтироваться раздел /dev/sda2 с файловой системой ext4 и опциями по умолчанию defaults. Резервная копия не используется, и вообще, этот параметр не читается системой инициализации и сейчас нас не интересует. Для домашнего раздела все будет выглядеть очень похоже:

/dev/sda3 /home ext4 defaults,noexec 0 2

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

/dev/sda4 /media/files/ ext4 noauto,users,rw 0 0

Тут мы указываем, что раздел не нужно монтировать во время загрузки, но его могут подключить любые пользователи в режиме для чтения и записи. Ни проверка ни резервная копия не выполняются. Для раздела подкачки файловая система указывается swap, а точка монтирования none:

Читайте также:  Ночной режим для linux

/dev/sda5 none swap defaults 0 0

Также вы можете примонтировать немножко оперативной памяти:

tmpfs /tmp tmpfs nodev , nosuid , noexec , size=100M 0 0

Таким образом, мы примонтировали оперативную память в /tmp и теперь система будет работать немного быстрее. Вот что получилось:

/dev/sda2 / ext4 defaults 0 1
/dev/sda3 /home ext4 defaults,noexec 0 2
/dev/sda4 /media/files/ ext4 noauto,users,rw 0 0
/dev/sda5 none swap defaults 0 0
tmpfs /tmp tmpfs nodev,nosuid,noexec,size=100M 0 0

А теперь, как я и обещал рассмотрим как выполняется монтирование с помощью systemd.

Автоматическое монтирование в Systemd

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

Вы можете посмотреть все созданные в systemd точки монтирования такой командой:

fstab

Но нам ничего не мешает самим создать такой файл точки монтирования. Это очень просто, давайте рассмотрим синтаксис:

[Mount]
What=адрес_раздела
Where=точка монтирования
Type=файловая система
Options=опции монтирования

Например, для той же домашней папки автоматическое монтирование fstab будет выглядеть вот так, имя обязательно должно состоять из точки монтирования, в которой слеши заменены на дефис:

sudo vi /etc/systemd/system/home.mount

[Unit]
Description=Mount System Home Directory

[Mount]
What=/dev/sda3
Where=/home
Type=ext4
Options=defaults,noexec

Точно такой же файл может быть создан для любого устройства. Теперь для монтирования достаточно набрать:

sudo systemctl start home.mount

А чтобы добавить эту точку монтирования в автозагрузку выполните:

sudo systemctl enable home.mount

Вот и все теперь вы знаете не только как выполняется монтирование fstab, но и автоматическое монтирование в systemd.

Выводы

Как видите, редактирование fstab не так уж сложно, как может показаться на первый взгляд. С этим справиться даже новичок в Linux если изучить параметры fstab и синтаксис самого файла. Если у вас остались вопросы, спрашивайте в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

How to Automount a Storage Partition on Startup in Linux

Md. Fahim Bin Amin

Md. Fahim Bin Amin

How to Automount a Storage Partition on Startup in Linux

By default, Linux OS does not automount any other partition at startup other than the root and the home partition.

You can mount other partitions very easily later, but you might want to enable some kind of automount feature on startup. This means that you won’t need to mount them later one by one or all at once after logging into your Linux OS.

Personally, I like to enable the automount feature on startup for some of my partitions which I use a lot while working on my desktop computer.

As I need to access those partitions all the time, I don’t like the hassle of mounting them individually each time I log into my computers – so I also use the automount feature on them. That is why I thought, why not share how to do that here as well!

Well, there are many set up automount. In this article, I will introduce you to a process that I think is simpler and easier among them.

Читайте также:  Alt linux raspberry pi

Fear not! I have also made a video tutorial about this entire procedure. So if you want to a visual walkthrough, then you can watch that video here.

HDD-Partition

And this one shows the partitions I have in my SSD:

SSD-Partition

To apply the automount feature on my desired partitions, I need to install the application now. Follow the steps given below.

Steps to Set Up Automount

Software-repo

  1. Open your software center or Add/Remove Software.

2. Search for gnome-disk-utility and you will get the following:

disk-utility-app

In this case, I have already installed the application, and therefore it is not asking me to install it.

If you haven’t installed this application already, then you will need to install it first. The installation procedure is very basic. Simply provide the permission and it will install itself.

3. Open the application we have installed just now. You may find it in the menu as Disks.

disks-in-menu

You will see the SSDs/HDDs you have on the left side of the application:

UI-of-disks

4. Select the SSD/HDD on which you want to enable the automount feature.

In this case, I want to enable that feature in my Hard Disk’s partition. Therefore, I will select the 2.0TB Hard Disk from the left side. After this, it will show me all the active partitions I have on the Hard Disk.

HDD-partition-in-disk

5. Next, simply select the partition you want the feature to be enabled on, and then click on the right-side icon from the left side down below. It will open the «Additional Partitions Options» for you.

caca-2

6. Then select the Edit Mount Options. from the side menu bar:

mount-option

7. Uncheck the User Session Defaults .

uncheck

8. Make sure the box is checked on beside Mount at system startup . You can customize the other settings as well if you want, but for our auto-mounting process at the system startup, our task is almost complete.

check

ok

And you are good to go from now on! This same method is applicable for any drive partition on which you want to enable the automounting feature.

Conclusion

Thanks for reading the entire article. If it helps you then you can also check out other articles of mine at freeCodeCamp.

If you want to get in touch with me, then you can do so using Twitter, LinkedIn, and GitHub.

You can also SUBSCRIBE to my YouTube channel (Code With FahimFBA) if you want to learn various kinds of programming languages with a lot of practical examples regularly.

If you want to check out my highlights, then you can do so at my Polywork timeline.

You can also visit my website to learn more about me and what I’m working on.

Источник

Оцените статью
Adblock
detector