Монтирование файловых систем.

Установка, настройка, эксплуатация.
Ответить
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Монтирование файловых систем.

Сообщение root »

Оглавление
Темы
Монтирование Samba в fstab
Монтирование разделов ntfs
Монтирование разделов fat32
Работа с образом ISO
Опции команды mount
Ошибки при монтировании
Network File System
Дополнительные материалы файловых систем
Samba — Доступ к сетевым дискам и принтерам по протоколу SMB
XFS: Файловая система
Перенос системы на другой диск (xfs_copy)
Перенос системы на другой диск (rsync)
Convert MBR to GPT
Fedora на ZFS
Исправляем нумерацию разделов на диске
LUKS: Шифруем данные
Гибернация — режим сна

Код: Выделить всё

//195.0.1.3/D$       /mnt/sergey    cifs    rw,exec,user,suid,noauto,username=sergey,password=Pa$$w0rd 0 0
//inext/C          /mnt/mediaplayer        cifs    rw,exec,user,suid,noauto,users,username=guest,password="",vers=1.0     0  0
Пример монтирования для IPv4

Код: Выделить всё

mount -t cifs //195.0.1.3/SEVEN -o username="ssergey",password="Pa$$w0rd" /mnt/sergey
Пример монтирования для IPv6

Код: Выделить всё

mount -t cifs //fec0:128::10:18:2:182/SEVEN /mnt/sergey -o username="sergey",password="Pa$$w0rd"
Пример обращения к ресурсу SAMBA по IPv6 из Windows

Код: Выделить всё

\\fe80--922b-34ff-fe93-7b5d.ipv6-literal.net\
Для наделения пользователей правом монтировать и демонтировать файловые системы назначаем на утилиты SUID-бит

Код: Выделить всё

chmod u+s /usr/sbin/mount.cifs
chmod u+s /bin/umount
chmod u+s /bin/mount
Последний раз редактировалось root 28 мар 2026 13:06, всего редактировалось 1 раз.
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Сообщение root »


Активация EPEL репозитория

Код: Выделить всё

dnf install epel-release
Установка ntfs-3g

Код: Выделить всё

dnf install ntfs-3g
Добавляем нужного пользователя в только что созданную группу

Код: Выделить всё

usermod -a -G disk sergey
Назначаем права доступа группе disk (для каталогов куда смонтированы разделы NTFS). Права доступа для FAT, FAT32 и NTFS систему назначаются при помощи gid и uid.

Код: Выделить всё

chgrp disk /mnt/d
chgrp disk /mnt/f
Изменение прав доступа к каталогам в которые будут монтироваться файловые системы носит информативный характер
Узнаем ID группы disk

Код: Выделить всё

cat /etc/group |grep disk
disk:x:6:sergey
или

Код: Выделить всё

getent group disk
disk:x:6:sergey
Правим fstab
e /etc/fstab

Код: Выделить всё

/dev/sdb2                       /mnt/d                  ntfs-3g                 gid=6,umask=0002,defaults  0 0
/dev/sdb3                       /mnt/f                  ntfs-3g                 gid=6,umask=0002,defaults  0 0
user - означает, что любой пользователь сможет монтировать и размонтировать раздел /dev/sdX.
rw - дает доступ на чтение-запись;
umask - убирает указанные права — например, umask=111 удаляет права на выполнение.
Проблема в том, что права на "выполнение" также удаляются у каталогов, поэтому
мы должны исправить это при помощи параметра dmask=000 (подробности смотрите на странице Umask).
для определения UUID используем
blkid |grep ntfs

Код: Выделить всё

/dev/sdb2: LABEL="DATA" UUID="6410E97E10E95796" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="6601d667-91e7-4ad9-a35d-9d5c0eff80d1"
/dev/sdb3: LABEL="VIDEO" UUID="769A0B3E9A0AFA7F" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="0b68b0fb-bda1-4950-877e-4f8ec3655514"

visudo

Код: Выделить всё

## Allows user to mount and unmount the ntfs partitions as root
User_Alias NTFS = sergey
Cmnd_Alias POINTS = /usr/bin/mount,/usr/bin/umount,/mnt/cdrom,/mnt/c,/mnt/d,/mnt/f
NTFS ALL = NOPASSWD:POINTS
Для монтирования общих папок cifs, от пользователя, в файловую систему нужен SUID-ный бит на файле mount.cifs

Код: Выделить всё

chmod 4755 /usr/sbin/mount.cifs
Так же может потребоваться установить SUID-ный бит на файлы:

Код: Выделить всё

chown root:disk $(which mount)
chown root:disk $(which ntfs-3g)
chmod 4750 $(which mount)
chmod 4750 $(which ntfs-3g)
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Сообщение root »


Код: Выделить всё

# Монтирование флешек Для root и группы disk устанавливаем полные права(0),
# а всех остальных пользователей лишаем прав (7)
/dev/sdd1                                   /mnt/flash      auto    user,rw,umask=0007,gid=6,noauto,iocharset=utf8 0   0
# Конкретная флешка для root и группы disk
UUID=d27b489d-87d1-455f-8099-bf3085a9c1e1   /mnt/adm_flash  xfs     user,rw,umask=0007,gid=6,noauto,iocharset=utf8 0 0
Для FAT, FAT32 и NTFS права на файловую систему назначаются при помощи gid и uid. Таким образом изменяется владелец и группа владельца на смонтированной системе.
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Сообщение root »


[anchor=4 goto=top]Работа с образом ISO
Монтирование ISO-образа

Код: Выделить всё

mount -o loop /home/sergey/Загрузки/Fedora-KDE-Live-x86_64-25-1.3.iso /media
Определяем имя устройства флешки Ориентируемся по объёму носителя
Записать образ на флешку можно так:

Код: Выделить всё

dd if=/home/sergey/name.iso of=/dev/sdd bs=4M status=progress && sync
bs - размер данных операции чтения/записи за раз. После записи обязательно делаем sync, чтобы избежать неполной записи на устройство.
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Сообщение root »


КомандаОписание
asyncВесь ввод-вывод в файловую систему должен производиться асинхронно
autoФайловая система может монтироваться командой mount c опцией -a
defaultsИспользовать набор опций, задаваемый по умолчанию: rw, suid, dev, exec, auto, nouser, async
devФайлы байт-ориентированных и блок-ориентированных устройств в файловой системе интерпретируются как специальные файлы
noauto Файловая система может монтироваться только явно. Опция -a не приведет к монтированию файловой системы
execРазрешает выполнение двоичных файлов
remountПозволяет перемонтировать уже смонтированную файловую систему. Обычно используется для изменения опций монтирования файловой системы, особенно для того, чтобы расширить права доступа (вместо прав только на чтение установить права на чтение/запись)
roМонтирует файловую систему только на чтение
rwМонтирует файловую систему для чтения и записи
suidПозволяет задействовать биты смены идентификатора пользователя и смены идентификатора группы
syncВесь ввод-вывод в файловую систему должен производиться синхронно
nodevФайлы байт-ориентированных и блок-ориентированных устройств в файловой системе не интерпретируются как специальные файлы
nosuidНе позволяет задействовать биты смены идентификатора пользователя и смены идентификатора группы
user, nouserОпция mount «user» для Linux позволяет обычным пользователям монтировать устройство, тогда как опция монтирования «nouser» для Linux позволяет только суперпользователю (root) монтировать устройство. «nouser» - это опция монтирования по умолчанию. Для таких пользователей монтирование всегда выполняется с опциями noexec, nosuid, nodev
vers=arg Версии протокола SMB. Допустимые значения:
  • 1.0 — Классический протокол CIFS/SMBv1.
  • 2.0 — Протокол SMB v2.002. Первоначально это было введено в Windows Vista с пакетом обновления 1 (SP1) и Windows Server 2008. Обратите внимание, что начальная версия Windows Vista говорила на немного другом диалекте (2.000), который не поддерживается.
  • 2.1 - Протокол SMBv2.1, который был представлен в Microsoft Windows 7 и Windows Server 2008R2.
  • 3.0 - Протокол SMBv3.0, который был представлен в Microsoft Windows 8 и Windows Server 2012.
  • 3.1.1 or 3.11 - Протокол SMBv3.1.1, который был представлен в Microsoft Windows Server 2016.
Последний раз редактировалось root 12 авг 2026 16:26, всего редактировалось 1 раз.
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Сообщение root »

При повторном использовании дисков из ZFS RAID наткнулся на ошибку монтирования следующего вида:

Код: Выделить всё

mount: /dev/sdb1: more filesystems detected. This should not happen, use -t  to explicitly specify the filesystem type or
use wipefs(8) to clean up the device.
Ещё одно из проявлений проблемы заключается в отказе монтирования корневой файловой системы, без указания типа FS, при старте без параметра

Код: Выделить всё

rootfstype=xfs
При дальнейших разбирательствах в ситуации выяснилось, утилиты lsblk и blkid не могут получить никакой информации о разделе.
Для начала смотрим какие сигнатуры файловых систем присутствуют на проблемном разделе

Код: Выделить всё

wipefs /dev/sdb1
Затем как определились с ненужной сигнатуры, можно удалить конкретную:

Код: Выделить всё

wipefs -o /0x000001fe dev/sdb1
Если необходимо избавиться от большого количества ненужных сигнатур, можно удалить почистить следующей командой:

Код: Выделить всё

wipefs -a -t zfs_member /dev/sdb1
Так же можно очистить весь имеющиеся список

Код: Выделить всё

wipefs -a /dev/sdb1
wipefs может работать не только с разделами /dev/sdb1, но и дисками /dev/sdb
Последний раз редактировалось root 28 мар 2026 13:34, всего редактировалось 1 раз.
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Re: Монтирование файловых систем.

Сообщение root »

Сервер
Устанавливаем пакет NFS. И Сервер и Клиент устанавливается одним пакетом nfs-utils.

Код: Выделить всё

dnf install nfs-utils
Создаем папки (/srv/nfs4, /srv/nfs4/data, /srv/nfs4/backup) и правим /etc/exports.

Код: Выделить всё

mkdir -p /srv/nfs4/{backup,data}
??? chown -R nobody:nogroup /srv/nfs4/data
??? chown -R nobody:nogroup /srv/nfs4/backup
chmod -R 777 /srv/nfs4/data
chmod -R 777 /srv/nfs4/backup
Откроем файл /etc/exports для редактирования и добавим следующие строки:

Код: Выделить всё

# Корневая директория для NFSv4, fsid=0 помечает её как корень.
/srv/nfs4       192.168.1.0/24(rw,sync,fsid=0,no_subtree_check,crossmnt)
#Наши реальные шары. Они "видны" как /data и /backup относительно корня.
/srv/nfs4/data  192.168.1.0/24(rw,sync,no_subtree_check,no_hide)
/srv/nfs4/backup 192.168.1.0/24(rw,sync,no_subtree_check,no_hide)
И перезапускаем сервер

Код: Выделить всё

systemctl restart nfs-server
Смотрим какие шары экспортировались

Код: Выделить всё

exportfs -av
Правим /etc/idmapd.conf. Это критично для NFSv4, чтобы правильно отображать имена пользователей и групп. Отредактируем тот же файл и на клиенте:

Код: Выделить всё

[General]
Domain = free-adm.ru
после правки /etc/idmapd.conf

Код: Выделить всё

systemctl restart nfs-idmapd
Настраиваем SELinux (если путь нестандартный). Если NFS не видит файлы, нужно навесить правильный контекст:

Код: Выделить всё

semanage fcontext -a -t nfs_t "/srv/nfs4/data(/.*)?"
semanage fcontext -a -t nfs_t "/srv/nfs4/backup(/.*)?"
restorecon -Rv /srv/nfs4/data
restorecon -Rv /srv/nfs4/backup
Если semanage не найден, то устанавливаем пакет

Код: Выделить всё

dnf install policycoreutils-python-utils
Включаем сервис NFS

Код: Выделить всё

systemctl enable --now nfs-server
Важно для NFSv4: включаем также сервисы для уведомления о монтировании и RPC-связки
systemctl enable --now rpcbind.service nfs-mountd.service
Настраиваем FirewallD

Код: Выделить всё

firewall-cmd --permanent --add-service=nfs && firewall-cmd --reload
Разрешаем NFS (сервис) для внутренней зоны (обычно это зона для локальной сети)

Код: Выделить всё

firewall-cmd --permanent --add-service=nfs
Или если нужно совсем точно ограничить для сети (замени сеть на свою):

Код: Выделить всё

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="nfs" accept'
firewall-cmd --reload

Клиент
Устанавливаем тот же самый пакет NFS, что и для Сервера

Код: Выделить всё

dnf install nfs-utils
Правим /etc/idmapd.conf. Проверь, что на сервере в /etc/idmapd.conf прописан точно такой же Domain

Код: Выделить всё

[General]
Domain = free-adm.ru
Правим /etc/fstab и монтируешь (mount -a).

Код: Выделить всё

<IP-сервера>:/data		/mnt/nfs_data		nfs4    rw,hard,intr,noatime,vers=4.2,timeo=600,rsize=1048576,wsize=1048576   0   0
<IP-сервера>:/backup	/mnt/nfs_backup		nfs4    rw,hard,intr,noatime,vers=4.2,timeo=600,rsize=1048576,wsize=1048576   0   0
После изменения fstab нужно обновить конфигурацию systemd

Код: Выделить всё

systemctl daemon-reload
проверяем монтирование проходит без ошибок

Код: Выделить всё

mount -a
убеждаемся, что всё примонтировалось

Код: Выделить всё

df -h | grep nfs
Последний раз редактировалось root 28 мар 2026 17:42, всего редактировалось 5 раз.
Ответить