Назад | Перейти на главную страницу

Centos 7 - fstab не монтирует некоторые разделы, но монтирует / dev / sd *

У меня есть виртуальная машина с Centos 7, на которой я хочу смонтировать несколько разделов ext4. Физические диски - это фактически жесткие диски, предоставленные vSphere. Все диски расположены на одном NAS - поэтому три рабочих диска (a, c, d) практически идентичны проблемным (e, f, g).

содержимое fstab:

UUID=b6ebbca4-71d0-4d2e-bc1a-e465e5190698   /boot           ext4    defaults        1 2
UUID=2c3ab9f5-60a6-4a79-ada3-84737eef7748   /           ext4    defaults        1 1
UUID=e130758c-5108-44de-bbd8-7e003c9072bc   swap            swap    defaults        0 0
UUID=decbbdb6-8362-41ef-aa72-83066c172913   /home           ext4    defaults        1 2
UUID=5717b613-a9f4-43c9-95d2-cfbbb891bd19   /apps_home          ext4    defaults        1 2
UUID=e24df090-2dda-404c-8944-a28bd37d6c5e   /apps/var/progress  ext4    defaults        1 2
UUID=5f254c77-a91d-4255-8315-9325ddb7a9d8   /apps/var/standard  ext4    defaults        1 2
UUID=746c70c1-002a-4249-a06f-df393a99252c   /apps/var/custom    ext4    defaults        1 2

lsblk -o '+UUID,FSTYPE' вывод:

NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT         UUID                                 FSTYPE
sda       8:0    0   50G  0 disk
├─sda1    8:1    0    1G  0 part /boot              b6ebbca4-71d0-4d2e-bc1a-e465e5190698 ext4
└─sda2    8:2    0   49G  0 part /                  2c3ab9f5-60a6-4a79-ada3-84737eef7748 ext4
sdb       8:16   0   40G  0 disk
└─sdb1    8:17   0   40G  0 part [SWAP]             e130758c-5108-44de-bbd8-7e003c9072bc swap
sdc       8:32   0   50G  0 disk
└─sdc1    8:33   0   50G  0 part /home              decbbdb6-8362-41ef-aa72-83066c172913 ext4
sdd       8:48   0  600G  0 disk
└─sdd1    8:49   0  600G  0 part /apps_home              5717b613-a9f4-43c9-95d2-cfbbb891bd19 ext4
sde       8:64   0  250G  0 disk
└─sde1    8:65   0  250G  0 part /apps/var/progress e24df090-2dda-404c-8944-a28bd37d6c5e ext4
sdf       8:80   0    1T  0 disk
└─sdf1    8:81   0 1024G  0 part /apps/var/standard 5f254c77-a91d-4255-8315-9325ddb7a9d8 ext4
sdg       8:96   0    2T  0 disk
└─sdg1    8:97   0    2T  0 part /apps/var/custom   746c70c1-002a-4249-a06f-df393a99252c ext4
sr0      11:0    1 1024M  0 rom

Проблема в том, что fstab не монтирует три последних раздела (которые должны быть смонтированы в /apps/var/progress /apps/var/standard и /apps/var/custom соответственно) последовательно после перезагрузок. Время от времени он монтирует один из них (если какой-либо из этих трех монтируется, это совершенно случайно, и всегда монтируется только один или ни один). Остальные разделы монтируются последовательно без каких-либо проблем.

Параметр mount -a ничего не делает, однако $ mount / dev / sde1 (или dev / sdf1 или dev / sdg1) работает как шарм. Точно так же установка с помощью команды $ mount / apps / var / progress тоже работает без проблем.

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

Я попытался заменить UUID именами / dev / sd *, попытался поставить кавычки.

mount всегда показывает, что разделы смонтированы в правильные каталоги, однако umount сообщает, что раздел в данный момент не смонтирован.

Я заметил, что три проблемных раздела ранее имели файловую систему ext3 и каким-то образом были преобразованы в ext4. Кроме того, для этих трех разделов blkid показывает PARTUUID в дополнение к UUID (я думаю, что они ранее использовались с centos 6)

mount всегда показывает, что разделы смонтированы в правильных каталогах, однако umount сообщает, что раздел в данный момент не смонтирован.

Из обсуждения в комментариях я считаю, что ваша система представляет такое поведение из-за /etc/mtab являясь обычным файлом, а не символической ссылкой, нацеленной на /proc/self/mount. Я предлагаю вам восстановить символическую ссылку, как описано в этом Решение Red Hat:

В Red Hat Enterprise Linux 7 /etc/mtab больше не плоский файл, это символическая ссылка на /proc/self/mounts. Если сервис по какой-то причине использует sed команда для доступа или изменения /etc/mtab, возможно, он удалит символическую ссылку и создаст плоский файл. Это, в свою очередь, приводит к тому, что сервер не загружается полностью, он переходит в аварийный режим, df вывод показывает все смонтированные, но если /proc/mounts проверено не будет ничего кроме / установлен.

В итоге из обсуждения в комментариях:

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

  • У вас есть точка монтирования /apps_home

  • У вас есть символическая ссылка /apps --> /apps_home/apps

  • И вы также должны попытаться смонтировать тома на /apps/var/progress /apps/var/custom и /apps/var/custom

Проблема в том, что точки монтирования /apps/var/[custom|progress|standard] не существует, пока /apps_home установлен.

Решение:

Оставьте символическую ссылку, но смонтируйте свои файловые системы на фактических путях к каталогам целевой символической ссылки: то есть преобразуйте записи fstab в:

UUID=5717b613-a9f4-43c9-95d2-cfbbb891bd19   /apps_home                    ext4 defaults 1 2
UUID=e24df090-2dda-404c-8944-a28bd37d6c5e   /apps_home/apps/var/progress  ext4 defaults 1 2
UUID=5f254c77-a91d-4255-8315-9325ddb7a9d8   /apps_home/apps/var/standard  ext4 defaults 1 2
UUID=746c70c1-002a-4249-a06f-df393a99252c   /apps_home/apps/var/custom    ext4 defaults 1 2

systemd-fstab-generato сгенерирует необходимые файлы модулей монтирования и systemd.mount неявно добавит правильные зависимости:

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

Альтернатива: удалите записи из / etc / fstab и создайте свои собственные файлы модулей монтирования и вручную настройте требования и зависимости порядка, чтобы гарантировать, что /apps/var/progress /apps/var/custom и /apps/var/custom не садись раньше /apps_home.