В современных дистрибутивах Linux уже можно совершенной спокойно путешествовать по сетевым дискам. Но куда удобнее если смонтировать сетевой диск сразу в папку, да еще и на рабочем столе, красота. Я создал папку с общим доступом на сервере Hyper-V, её и буду монтировать. Монтирование SMB буду делать под специально заведенным пользователем, дабы не светить пароль админа.
- Ручное монтирование сетевой папки
- Автоматическое монтирование сетевой папки при загрузки системы
- RSS
- Как посмотреть UUID для HDD через терминал на Ubuntu/Debian
- Как посмотреть список дисков через терминал на Ubuntu/Debian
- Смотрим подключенные HDD с выводом информации о размере через терминал
- Форматирование HDD через терминал на Ubuntu/Debian
- Монтирование HDD через терминал на Ubuntu/Debian
- Ручное монтирование дисков через терминал
- Автоматическое монтирование диска при загрузке системы
- Восстановление дисков через терминал
- Восстановление файловой системы
- Восстановление поврежденного суперблока
- RSS
- Об авторе
- Немного теории
- Настройка сервера NFS в Ubuntu
- Подключение NFS
- Выводы
- Выводы
- Об авторе
- Что такое монтирование?
- Монтирование разделов с помощью mount
- Размонтирование устройств в Linux
- Выводы
- Подготовка
- Установка пакетов
- Сетевые порты
- Синтаксис
- Ручное монтирование
- Автоматическое монтирование CIFS через fstab
- Примеры использования опций
- Версии SMB
- Монтирование от гостевой учетной записи
- Права на примонтированные каталоги
Монтируемая папка
Монтируемая директория доступна только администраторам и пользователю smb (создан специально для монтирования). Сделать общую папку на сервере Windows можно двумя способами: 1 — через свойства папки; 2 — через Powershell. Через свойства папки проще и быстрее как для новичка.

Но в моем случае с сервером HyperV 2019 сработал только второй способ, через Powershell.
New-SmbShare -Name "smb_mount" -Path "F:\smb_mount" -FullAccess "Administrator", "smb"


Общая папка у меня доступна по пути \\hvs19\smb_mount, но монтировать я буду ее по ip адресу. Принципиального вопроса как монтировать нет, просто не всегда есть возможность использовать имя.
С монтируемой папкой закончили, создадим папку куда будем монтировать. Я создал папку в /opt и назвал её F (по имени диска где лежит монтируемая папка) для удобства.
Установим набор утилит для монтирования SMB
Для Ubuntu (и прочих Debian`ов)
sudo apt-get install cifs-utils
Для Centos 8 (и прочих RPM дистрибутивов на YUM)
sudo yum install cifs-utils
Монтирование SMB
Все необходимые папки мы создали, теперь приступим к монтированию файловой системы.
sudo mount -t cifs -o username=smb,password=пароль //192.168.1.110/smb_mount /opt/F
Пройдемся по параметрам:
- -t cifs — тип файловой системы cifs (полностью совместим с SMB)
- username — пользователь у которого есть доступ к монтируемой папке (на сетевом диске). Если разрешено, можно использовать гостя, без пароля. В таком случае указываем username=guest
- password — пароль от учетной записи этого пользователя
- //192.168.1.110/smb_mount — общая папка на сервере которую монтируем
- /opt/F — папка куда монтируем.
Посмотрим что все получилось, проверим свободное место в сетевой папке

Можно использовать дополнительные возможности при монтировании, используя ключи после параметра -o. Вот некоторые из них
- rw — запись и чтение
- ro — только чтение
- iocharset=utf8 — в данной кодировке будет выводится информация;
- codepage=cp866 — кодировка используемая на сервере с общей папкой. Обычно Windows устанавливает кодировку cp866.
- vers=3.0 — принудительно указать версию подключения SMB протокола. Для безопасного подключения используйте последнюю версию.
Используя команду mount мы монтируем папку в ручном режиме и после перезагрузки монтирования не произойдет. Для автоматического монтирования папки читаем следующий раздел.
Автоматическое монтирование SMB
Для постоянного монтирования папке при старте системы необходимо внести изменения в файл /etc/fstab. При монтировании сетевого диска с SMB используется пароль. Для большей сохранности не будем указывать его в файле fstab, а сохраним в директории root.
Создадим файл с учетными данными
Добавим в файл строки: имя пользователя, пароль, домен (если используется). У меня домена нет, поэтому добавлю только имя и пароль
username=smb password=пароль domain=mydomain
Откроем файл /etc/fstab для редактирования
Добавим новую строку в конец файла
//192.168.1.110/smb_mount /opt/F cifs user,rw,credentials=/root/.cifsmnt 0 0

Сохраним файл и перезагрузим компьютер. После этого сетевая папка будет монтироваться автоматически.
Разберем указанные параметры
- //192.168.1.110 — ip адрес сервера где находится сетевая папка
- /smb_mount — сетевая папка на указанном выше сервере
- /opt/F — папка на локальном компьютере куда будем монтировать сетевую папку
- cifs — тип монтируемой файловой системы
- user — разрешение монтировать для любого пользователя
- rw — разрешения на чтение/запись на диск при монтировании
- credentials — путь к файлу с данными учетной записи используемых для подключения по SMB
- 0 — не использовать дамп
- 0 — не проверять файловую систему при старте программой fsck
Права на папки и файлы
Примонтированный диск по умолчанию монтируется от root и разрешает запись на диск только под ним. Рассмотрим опции позволяющие изменить доступ на примонтированные папки и файлы. Также рассмотрим настройки по смене владельца смонтированной папки.
- uid — задает владельца каталога. Узнать uid пользователей можно в файле /etc/passwd
- gid — задает группу владельца каталога. Узнать gid групп можно в файле /etc/passwd
- file_mode=0777 — права на доступ к файлам. 0777 — разрешено запись/чтение всем.
- dir_mode=0777 — права на доступ к папкам. 0777 — разрешено запись/чтение всем.
Пример записи в файле /etc/fstab монтирования от моего пользователя (не root) с полным доступом ко всем файлам и папкам
//192.168.1.110/smb_mount /opt/F cifs user,rw,credentials=/root/.cifsmnt,file_mode=0777,dir_mode=0777,uid=1000,gid=1000 0 0
Размонтирование SMB
Размонтировать сетевую папку SMB можно используя команду umount
В параметрах команды umount указываем директорию куда была смонтирована сетевая папка. В моем случае это /opt/F

Если смонтированная файловая система сейчас занята, появится сообщение umount: target is busy . В таком случае размонтировать получиться с ключом -l
Решение проблем монтирования
Если по какой либо причине после ваших попыток папка все же не монтируется, необходимо смотреть системный журнал.
grep "cifs" /var/log/syslog

Хотите отблагодарить автора статьи? Это даст ему дополнительный стимул к написанию новых статей.

Сегодня в статье рассмотрим пример как можно примонтировать сетевую папку Windows или Unix в операционную систему Linux.
В качестве подопытного будем использовать ПК с установленной на неё Ubuntu Server. Но данное руководство будет справедливо и для большинства других ОС на Linux.
Для работы c сетевыми дисками SMB/CIFS (Windows или Samba) нам понадобиться утилита cifs-utils. Для её установки открываем терминал и набираем следующую команду:
sudo apt-get install cifs-utilsДалее потребуется создать директорию, куда мы хотим примонтировать нашу расшаренную сетевую папку. Для этого давайте наберем вот такую команду:
sudo mkdir /home/user/share- user — имя вашего пользователя
- share — название директория куда будем монтировать нашу сетевую папку
Ручное монтирование сетевой папки
Далее набираем команду для монтирования нашей сетевой папки.
sudo mount -t cifs //myserver/share-name /home/user/share -o username=user2,password=parol,domain=mydomenmount -t cifs //192.168.0.1/share-name /home/user/share -o username=user2,password=parol,domain=mydomen- //myserver/share-name — это путь до нашей шары в сети. Если используются русские буквы или пробел в имени сетевой папки, надо весь путь заключить в кавычки «
//192.168.0.1/Мои документы«
- /home/user/share — это наша директория куда мы будем производить монтирование.
Так же сразу можно задать права доступа и кодировку, тогда надо вписать следующие параметры:
mount -t cifs //192.168.0.1/share-name /home/user/share -o username=user2,password=parol,domain=mydomen,iocharset=utf8,file_mode=0777,dir_mode=0777- username — указываем имя пользователя на удаленном хосте (сервере)
- password — указываем пароль пользователя user2
- domain — название домена (рабочей группы), если необходимо
- iocharset — указываем кодировку (utf8; cp1251; koi8-r)
- file_mode — права доступа к файлам
- dir_mode — права доступа к директории
Автоматическое монтирование сетевой папки при загрузки системы
sudo nano /root/.smbuserusername=user2
password=parol
domain=mydomenДля безопасности ограничим доступ к файлу:
sudo chmod 400 /root/.smbuserТеперь необходимо отредактировать файл fstab. Открываем его в терминале и вписываем необходимую информацию:
sudo nano /etc/fstab//192.168.0.1/share-name /home/user/share cifs credentials=/root/.smbuser 0 0- credentials — тут указываем путь до файла с нашими данными для входа.
Также если при попытки создать или удалить какие-либо файлы у Вас не хватает прав, то необходимо добавить uid и gid параметры.
//192.168.0.1/share-name /home/user/share cifs credentials=/root/.smbuser,uid=1000,gid=1000 0 0- uid и gid — цифра 1000 указывает на нашего пользователя для которого производим монтирование шары. Если у вас идентификатор отличается, то указываем свой.
mount -aЕсли не было ошибок, то для проверки всё ли у нас примонтировалось наберем команду:
df -hЕсли в выводе видим сетевую папку, то все хорошо. При следующей перезагрузки ПК, удаленная шара уже смонтируется автоматически.
Если есть вопросы, то пишем в комментариях.
RSS
Если вы обнаружили орфографическую ошибку, пожалуйста, сообщите нам, выделив текст и нажав на него.

Сегодня рассмотрим ряд команд для работы с HDD через терминал на Ubuntu/Debian и других Linux системах.
Прочитав несколько статей я конечно нашел нужную информацию о том как работать с HDD через терминал, но она была раскидана по просторам интернета и если вам дорого ваше время, то вы пришли по адресу. В данной статье я решил объединить команды и написать удобную шпаргалку для администрирования Ubuntu/Debian систем.
Как посмотреть UUID для HDD через терминал на Ubuntu/Debian
Посмотреть uuid диска для разделов можно с помощью команды:
sudo blkidВывод должен быть приблизительно такой:
/dev/sda5: UUID="461a03a9-a5f1-449a-8775-43afa0f455b6" TYPE="ext4" PARTUUID="62f972de-05"
/dev/sda6: UUID="572889de-8528-4e42-8a9d-1066e121b8de" TYPE="ext4" PARTUUID="62f972de-06"
/dev/sdb2: UUID="42fdec1c-3e51-11e9-b09f-1078d27639b3" TYPE="ext4" PARTUUID="32432dfd-0a2a-4c71-bf6c-2d207ae9b6b2"
/dev/sdb1: PARTUUID="a6d316f4-7282-4420-9cf5-56cb14878f22"Как посмотреть список дисков через терминал на Ubuntu/Debian
Самый простой способ увидеть все подключённые диски — это посмотреть содержимое каталога /dev/ и отфильтровать устройства по начальному названию sd или vd. Ну это уже зависит от того, какой диск и на какой системе выищите.
sudo ls -l /dev | grep sdbrw-rw---- 1 root disk 8, 0 сен 17 08:41 sda
brw-rw---- 1 root disk 8, 2 сен 17 08:41 sda2
brw-rw---- 1 root disk 8, 5 сен 17 08:41 sda5
brw-rw---- 1 root disk 8, 6 сен 17 08:41 sda6
brw-rw---- 1 root disk 8, 16 сен 17 08:41 sdb
brw-rw---- 1 root disk 8, 17 сен 17 08:41 sdb1
brw-rw---- 1 root disk 8, 18 сен 17 08:41 sdb2Смотрим подключенные HDD с выводом информации о размере через терминал
Посмотреть подключённые диски с выводом информации о размере, точке монтирования и свободном пространстве на Ubuntu/Debian, можно с помощью утилиты df:
sudo df -hudev 898M 0 898M 0% /dev
/dev/sdb2 110G 11G 93G 11% /
tmpfs 187M 0 187M 0% /run/user/1000
/dev/sda6 184G 60M 174G 1% /home/Music
/dev/sda5 719G 357G 326G 53% /home/FimslsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931,5G 0 disk
├─sda2 8:2 0 1K 0 part
├─sda5 8:5 0 730,2G 0 part /home/Fims
└─sda6 8:6 0 186,3G 0 part /home/Music
sdb 8:16 0 111,8G 0 disk
├─sdb1 8:17 0 1M 0 part
└─sdb2 8:18 0 111,8G 0 part /Вот вам еще одна команда, которой можно посмотреть подробный вывод о размерах подключенных дисков:
sudo fdisk -l....
Device Boot Start End Sectors Size Id Type /dev/sda2 19535870 1951168511 1931632642 921,1G 5 Extended /dev/sda5 419919872 1951168511 1531248640 730,2G 83 Linux /dev/sda6 29296640 419907583 390610944 186,3G 83 Linux
....
Device Start End Sectors Size Type /dev/sdb1 2048 4095 2048 1M BIOS boot /dev/sdb2 4096 234438655 234434560 111,8G Linux filesystemФорматирование HDD через терминал на Ubuntu/Debian
Для форматирования разделов дисков в системе используем команду parted.
Будьте внимательны с данной командой, т.к. она может затереть весь ваш диск.
Для начала определяем с каким диском мы будем работать. Для этого набираем все ту же нами знакомую команду lsblk
После вывода информации определяем наш диск и набираем:
sudo parted /dev/sdb- sdb — это наш диск
Далее создаем новую таблицу разделов:
(parted) mklabel msdosПосле можно создавать разделы. Если вам нужно создать один большой раздел, который будет занимать весь объем диска, то команда будет такой:
(parted) mkpart primary ext4 1MiB 100%Если же вы хотите создать несколько разделов на диске, то последовательность команд будет следующей:
(parted) mkpart primary ext4 1MibGB 5GB
(parted) mkpart primary ext4 5GB 20GB
(parted) mkpart primary ext4 20GB 100%После данной команды у вас будут три раздела с соответствующими размерами в 5 Гб, 15 Гб, а третий займет все оставшееся пространство на данном диске.
Для вывода информации набираем:
(parted) printЕсли вас все устраивает, то выходим из программы форматирования:
(parted) quitДавайте теперь отформатируем получившиеся разделы в файловую систему ext4:
sudo mkfs.ext4 /dev/sdb1или в случае с несколькими разделами диска:
sudo mkfs.ext4 /dev/sdb1
sudo mkfs.ext4 /dev/sdb2
sudo mkfs.ext4 /dev/sdb3После данной процедуры разделы готовы к использованию. Только не забудьте предварительно примонтировать их к системе.
Монтирование HDD через терминал на Ubuntu/Debian
Ручное монтирование дисков через терминал
Для монтирования дисков через терминал набираем следующую команду:
sudo mount /dev/sdb1 /home/MusicДиректория /home/Music должна существовать.
Если при монтировании директорий терминал выдает следующее
mount: /home/Music: /home/old/Music is not a block device.Значит Вы пытаетесь примонтировать одну директорию в другую. Для исправления данной ошибки наберите следующую команду используя опцию — -bind:
sudo mount --bind /home/old/Music /home/MusicВозможно, не только монтирование разделов linux, но и монтирование
файлов, если они содержат файловую систему, например, образов дисков.
Монтирование образа диска linux работает точно так же:
sudo mount ~/file.iso /home/user/isoАвтоматическое монтирование диска при загрузке системы
Для автоматического монтирования разделов диска воспользуемся файлом fstab. Также вам необходимо знать UUID вашего диска.
sudo nano /etc/fstabи редактируем в соответствии с моим листингом:
....
UUID=Ваш_UUID_диска /home/Music ext4 defaults 0 0- Ваш_UUID_диска — смотрим командой в начале статьи
Чтобы неперезагружать систему набираем команду:
sudo mount -aТеперь после перезагрузки системы раздел диска автоматически будет примонтирован в директорию /home/Music.
Восстановление дисков через терминал
Восстановление файловой системы
Если ваша файловая система находится на разделе с адресом /dev/sda1 выполните:
sudo fsck -y /dev/sda1Данная команда сработает только в режиме восстановления, если корневой раздел и другие разделы уже примонтированы она выдаст ошибку.
Восстановление поврежденного суперблока
Обычно эта команда справляется со всеми повреждениями на ура. Но если вы сделали что-то серьезное и повредили суперблок, то тут fsck может не помочь. Суперблок — это начало файловой системы. Без него ничего работать не будет.
Но не спешите прощаться с вашими данными, все еще можно восстановить.
С помощью такой команды смотрим куда были записаны резервные
суперблоки:
sudo mkfs -t ext4 -n /dev/sda1На самом деле эта команда создает новую файловую систему. Вместо ext4 подставьте ту файловую систему, в которую был отформатирован раздел, размер блока тоже должен совпадать иначе ничего не сработает. С опцией -n никаких изменений на диск не вноситься, а только выводится информация, в том числе о суперблоках.
Теперь у нас есть резервные адреса суперблоков и мы можем попытаться восстановить файловую систему с помощью каждого из них, например:
sudo fsck -b 98304 /dev/sdaДанные команды сработают только в режиме восстановления, если корневой раздел и другие разделы уже примонтированы она выдаст ошибку.
Или еще мы можем найти битые сектора и больше в них ничего не писать:
sudo fsck -c /dev/sda1Данная команда сработает только в режиме восстановления, если корневой раздел и другие разделы уже примонтированы она выдаст ошибку.
И так, сегодня мы научились работать с HDD через терминал на Ubuntu/Debian подобных системах.
Если есть вопросы, то пишем в комментариях.
RSS
Если вы обнаружили орфографическую ошибку, пожалуйста, сообщите нам, выделив текст и нажав на него.
В процессе создания и конфигурирования своего тестового веб-сервера на базе Raspberry Pi Zero W, у меня возникла задача монтирования сетевого ресурса (сетевого диска), размещенном на другом устройстве моей домашней сети — своеобразном NAS. Типичный подход для ОС Linux — организация к нему доступа через описание точки монтирования в файле fstab оказался несколько несостоятельным. Сетевая «шара», бесспорно, монтировалась и можно было спокойно с ней работать, но до первого «сетевого инцидента». Стоило только Raspberry Pi переподключиться к точке доступа Wi-Fi, как сетевой диск сразу становился недоступен. Приходилось заново «передергивать» fstab, чтобы система восстановила к нему доступ.
Такое положение дел, естественно, мало кого устроит. Но решение нашлось, и это решение — один из юнитов systemd.
Пожалуй, стоит оговориться, что свои «эксперименты» я проводил в родной для моей «малинки» Raspberry Pi OS, которая использует systemd как подсистему инициализации по умолчанию. Если у Вас иной дистрибутив Linux, убедитесь, что он так же работает на systemd. В противном случае, описанное ниже решение у Вас работать не будет.
Я не буду описывать как работает systemd, а также затрагивать специфику его организационной структуры управления процессами — это тема очень сложна и обширна и ее никак не описать в такой заметке как эта. Лишь отмечу, что по задумке создателей systemd, его структурными «кирпичиками» являются специальным образом оформленные файлы конфигураций, которые принято называть юнитами (от английского unit) или модулями. И из всего имеющегося многообразия юнитов systemd, сегодня нас особенно будут интересовать два: mount и automount.
Но мы не будем создавать их вручную для нашего конкретного случая, как это предлагается в большинстве похожих «решений», которые Вы можете найти в интернет. Для нас их создаст сам systemd, или точнее один из его «генераторов».
Логика проста — systemd обладает множеством своих собственных генераторов файлов конфигураций, которые динамически преобразуют стандартные системные файлы настроек в юниты systemd, которые уже он использует дальше в своей работе. Так, одним из таких генераторов обрабатывается при загрузке системы и файл fstab. И все что нам требуется — это дополнить монтируемый через него сетевой диск специальной опцией монтирования — x-systemd.automount. Собственно, это то, что и ожидается в первую очередь от пользователя. Давайте посмотрим, как это выглядит на практике.
В нашу задачу входит настройка автоматического монтирования сетевого ресурса (сетевого диска) располагающегося в той же сети, что и компьютер под управлением ОС Linux. Сетевой ресурс создан на основе пакета Samba (у Вас это может быть и сетевая «шара», созданная на базе ОС Windows) и взаимодействие с ним проходит по протоколу SMB.
Шаг 1. Для того, чтобы в ОС Linux можно было работать с сетевыми ресурсами по протоколу SMB/CIFS, необходимо установить пакет cifs-utils. В некоторых дистрибутивах ОС Linux он идет в штатной установке (например, в Raspberry Pi OS этот пакет уже был включен с самого начала), в других же его необходимо устанавливать самостоятельно. Для установки в Debian-подобных дистрибутивах:
sudo apt-get install cifs-utilsДля установки в RedHat-подобных дистрибутивах:
sudo yum install cifs-utilssudo mkdir /media/share
username=Логин_к_сетевому_диску
password=Пароль_к_сетевому_дискуУчитывая, что мы планируем подключать наш сетевой диск от пользователя root, то я рекомендую файл авторизации создавать в домашнем каталоге root (/root). Таким образом мы повысим степень защиты данных авторизации от несанкционированного доступа. Для создания файла Вы можете воспользоваться абсолютно любым текстовым редактором, в котором привыкли работать, например, nano:
sudo nano /root/.nascredentials
Имя файла авторизации Вы вправе использовать абсолютно любое. Главное, чтобы потом сами могли быстро понять, что это за файл и для чего он находится в директории /root :))). В моем случае это .nascredentials (именно с символом точки в начале).
Вводим данные для авторизации и сохраняем файл (не забываем указывать свои данные для авторизации):

После этого нам необходимо изменить права на только что созданный файл (.nascredentials), чтобы доступ к нему имел только пользователь root. Для этого нам потребуется утилита chmod:
sudo chmod /root/.nascredentials
Шаг 4. Внесение записи о точке монтирования в файл /etc/fstab. Если Вы не знаете, что из себя представляет файл fstab, для чего он служит и какую структуру имеют записи, вносимые в него, то я отправляю Вас вот к этой замечательной статье, где данные вопросы очень хорошо раскрыты. В общем виде нам необходимо указать что монтировать, куда монтировать, с какой файловой системой и с какими параметрами.
Куда монтировать — это директория, которую мы создали на Шаге 2 (см. выше).
С какой файловой системой — для подключения сетевых директорий используется файловая система cifs. Ее поддержку мы установили на Шаге 1.
С какими параметрами — сначала приведу всю строчку параметров, которая используется у меня при подключении сетевого диска, а потом поясню для чего служит каждый из них. Итак, мои параметры подключения сетевого ресурса:
x-systemd.automount,credentials=/root/.nascredentials,
iocharset=utf8,file_mode=,dir_mode=,gid=,uid=Что же значит вся эта «абракадабра»:
x-systemd.automount — параметр, который указывает генератору systemd сформировать юнит .automount для подключаемого сетевого диска. Собственно, ради него все и затеяно.
credentials=/root/.nascredentials — в параметре credentials мы передаем путь до файла авторизации (не забываем указывать свой путь, если вы разместили файл авторизации в другом месте или под другим именем), который мы создали на Шаге 3. Если доступ к вашему сетевому ресурсу анонимный, то параметр credentials Вам необходимо опустить.
iocharset=utf8 — параметр задает кодировку подключаемой файловой системы. Как правило, все современные файловые системы работают в кодировке UTF-8.
file_mode=0777 — параметр, устанавливающий максимальные права для всех на доступ к файлам подключаемого сетевого диска.
dir_mode=0777 — параметр, устанавливающий максимальные права для всех на доступ к директориям подключаемого диска.
gid=1000 — параметр, определяющий группу владельца подключаемого сетевого диска (иными словами — какая группа будет считаться владельцем сетевого диска).
uid=1000 — параметр, определяющий идентификатор владельца подключаемого сетевого диска (иными словами — какой пользователь будет считаться владельцем сетевого диска).
Как узнать gid и uid и почему именно стоят в параметрах? Для того, чтобы узнать эти идентификаторы, достаточно в командной строке набрать команду id:

Т.е. я указываю основным владельцем подключаемого ресурса пользователя, которым работаю в системе (в моем случае — пользователь oxide). Если не указать эти параметры при монтировании, то основным пользователем будет считаться пользователь, от имени которого запущен процесс монтирования (в подавляющем большинстве случаев — это root). Но и тут есть своя «оговорка» (это для любознательных) — все это «работает» если только удаленный компьютер сам не сообщает идентификатор пользователя. Если же сообщает, то права на файлы и директории будут ровно теми, которые записаны в файловой системе удаленного узла. И тут уже придется использовать несколько иные параметры подключения.
Итак, итоговая строчка монтирования нашего сетевого диска выглядит так (опции дампа и проверки файловой системы равны 0):
92../usb_disk /media/share cifs
x-systemd.automount,credentials=/root/.nascredentials,
iocharset=utf8,file_mode=,dir_mode=,gid=,uid= Или как это выглядит в терминале:

В качестве совета: прежде чем вносить изменения непосредственно в файл /etc/fstab, протестируйте получившуюся итоговую строчку монтирования вручную, используя команду mount.

Поскольку сформированные файлы — модули systemd, их, как и любые модули, можно проверять на статус работы. Для этого необходимо использовать утилиту systemctl:
systemctl status наименование_модуляПроверим работу модулей на моей машине:


Как Вы можете видеть на скриншотах, модули замечательно работают. При этом сетевой диск смонтирован на старте системы модулем .mount и до сих пор примонтирован. В свою очередь модуль .automount проверяет наличие доступа к сетевому диску при каждом обращении к нему и в случае отсутствия доступа пытается его восстановить. Отдельно стоит отметить, что удобство использования модулей systemd состоит еще и в автоматической проверке наличия доступа к сети. Т.е. модули .mount и .automount не завершатся неудачей просто потому что не успело появиться сетевое подключение. Свои попытки примонтировать сетевой диск они будут осуществлять только при наличии сетевого соединения.
А на этом у меня сегодня всё! Пишите в комментариях всё ли у Вас получилось :))).
В одной из прошлых статей мы рассматривали как настраивать сетевые папки в Linux с помощью NFS. Если в Windows используется для этих целей Samba, то в Linux принято организовывать общие папки с помощью сетевой файловой системы NFS.
В этой статье мы поговорим о том как монтировать такие папки вручную, а также как настроить их монтирование при обращении с помощью autofs. Так вы будете экономить трафик между серверами и получите неплохую производительность.
Для того чтобы примонтировать сетевую папку в системе должен быть установлен пакет nfs-commons. В Ubuntu его можно установить такой командой:
sudo apt install nfs-common
Затем можно выполнять монтирование с помощью обычной команды mount, которой надо передать адрес сервера NFS и путь к папке в файловой системе сервера. Например, чтобы смонтировать папку /var/nfs выполните:
Никакой авторизации в NFS нет, поддерживается только ограничение доступа по IP адресу, поэтому монтирование должно пройти успешно. Если статическое монтирование работает хорошо, можно переходить к настройке autofs. Не забудьте размонтировать сетевую папку:
sudo umount /mnt
Сначала нужно установить этот сервис. Для этого в Ubuntu выполните команду:
sudo apt install autofs
Все настройки сетевых папок, которые надо монтировать находятся в файле /etc/auto.master. Каждая строчка представляет из себя отдельную папку и имеет такой синтаксис:
Здесь файл карты, обычно это /etc/auto.misc — файл в котором более подробно описано что и куда надо монтировать. Синтаксис одной записи в файле /etc/auto.misc такой:
Для примера будем монтировать ту же сетевую папку /var/nfs на сервере 185.117.155.209 в локальную папку /mnt. В файл /etc/auto.master надо добавить такую строчку:
sudo vi /etc/auto.master
/mnt /etc/auto.nfs --timeout=100

Здесь мы сообщаем, что общая папка монтирования для всех ресурсов, описанных в файле /etc/auto.nfs — /mnt и если к ресурсу не обращаются на протяжении 100 секунд, то её следует размонтировать. Далее надо добавить описание монтирования в файл /etc/auto.nfs:
sudo vi /etc/auto.nfs

sudo systemctl restart autofs
Затем можно попытаться обратиться к этой папке и она автоматически смонтируется:

Как видите, всё достаточно просто. Так и выполняется автоматическое монтирование сетевых папок в Linux. Но чтобы у вас появилась возможность создавать файлы в этой папке, надо чтобы сервер NFS был правильно настроен. Об этом смотрите предыдущую статью про настройку NFS.
Об авторе
![]()
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
Сетевая файловая система NFS или Network File System, это популярный протокол сетевой файловой системы, который позволяет пользователям подключать удаленные сетевые каталоги на своей машине и передавать файлы между серверами. Вы можете использовать дисковое пространство на другой машине для своих файлов и работать с файлами, расположенными на других серверах. По сути, это альтернатива общего доступа Windows для Linux, в отличие от Samba реализована на уровне ядра и работает более стабильно.
В этой статье будет рассмотрена установка NFS в Ubuntu. Мы разберем установку всех необходимых компонентов, настройку общей папки, а также подключение сетевых папок.
Немного теории
Как уже было сказано, NFS, это сетевая файловая система. Для работы необходим сервер, на котором будет размещена общая папка и клиенты, которые могут монтировать сетевую папку как обычный диск в системе. В отличие от других протоколов NFS предоставляет прозрачный доступ к удаленным файлам. Программы будут видеть файлы как в обычной файловой системе и работать с ними как с локальными файлами, nfs возвращает только запрашиваемую часть файла, вместо файла целиком, поэтому эта файловая система будет отлично работать в системах с быстрым интернетом или в локальной сети.
Перед тем как мы сможем работать с NFS, нам придется установить несколько программ. На машину, которая будет сервером нужно установить пакет nfs-kernel-server, с помощью которого будет выполнено открытие шары nfs в ubuntu 16.04. Для этого выполните:
sudo apt install nfs-kernel-server
Теперь давайте проверим правильно ли установился сервер. Сервис NFS слушает соединения как для TCP, так и для UDP на порту 2049. Посмотреть действительно ли сейчас используются эти порты можно командой:

Также важно проверить поддерживается ли NFS на уровне ядра:

Видим, что работает, но если нет, нужно вручную загрузить модуль ядра nfs:
Давайте еще добавим NFS в автозагрузку:
sudo systemctl enable nfs-server
На клиентском компьютере вам нужно установить пакет nfs-common, чтобы иметь возможность работать с этой файловой системой. Вам необязательно устанавливать компоненты сервера, достаточно будет только этого пакета:
sudo apt install nfs-common
Вот и все, дальше настройка NFS в Ubuntu.
Настройка сервера NFS в Ubuntu
Мы можем открыть NFS доступ к любой папке, но давайте создадим для этих целей новую:
sudo mkdir /var/nfs
Дальше нас интересует настройка ubuntu nfs server. Все общие папки и другие настройки nfs находятся в файле /etc/exports. Синтаксис записи папки такой:
Адрес папки — это та папка, которую нужно сделать доступной по сети. Клиент — ip адрес или адрес сети, из которой могут получить доступ к этой папке. А вот с опциями немного сложнее. Рассмотрим некоторые из них:
- rw — разрешить чтение и запись в этой папке;
- ro — разрешить только чтение;
- sync — отвечать на следующие запросы только тогда, когда данные будут сохранены на диск (по умолчанию);
- async — не блокировать подключения пока данные записываются на диск;
- secure — использовать для соединения только порты ниже 1024;
- insecure — использовать любые порты;
- nohide — не скрывать поддиректории при, открытии доступа к нескольким директориям;
- root_squash — подменять запросы от root на анонимные, используется по умолчанию;
- no_root_squash — не подменять запросы от root на анонимные;
- all_squash — превращать все запросы в анонимные;
- subtree_check — проверять не пытается ли пользователь выйти за пределы экспортированной папки;
- no_subtree_check — отключить проверку обращения к экспортированной папке, улучшает производительность, но снижает безопасность, можно использовать когда экспортируется раздел диска;
- anonuid и anongid — указывает uid и gid для анонимного пользователя.
Например, для нашей папки, если вы хотите разрешить к ней подключаться только с определённого IP адреса, эта строка может выглядеть вот так:
sudo vi /etc/exports
Можно разрешить только нужную подсеть, например:
Для того чтобы разрешить все адреса используйте подсеть 0.0.0.0/0 или символ *.
Открытие шары NFS в Ubuntu почти завершено. Осталось разобраться с правами. Кроме ограничений IP адреса работает обычная система полномочий UNIX, поэтому если вы хотите чтобы определённый пользователь мог получить доступ к папке, то на сервере должен существовать пользователь с таким же UID и эта папка должна принадлежать ему или группе в которой он состоит.
Кроме того, обратите внимание на то, что все подключения от имени пользователя root считаются по умолчанию анонимными (nfsnobody), чтобы это отключить добавьте опцию монтирования no_root_squash, но это не безопасно, потому что любой root пользователь сможет получить доступ на запись ко всем файлам. Теперь попытаемся настроем клиента и попытаемся ее примонтировать.
Для того чтобы все пользователи могли получить доступ ко всем файлам можно создать пользователя с UID 1001 и попросить NFS все запросы считать запросами от анонимного пользователя, а анонимному пользователю присвоить UID 1001. Это делается такими опциями:
Когда все будет настроено, останется только обновить таблицу экспорта NFS:
sudo exportfs -a
Если на вашем сервере используется брандмауэр, то следует открыть порты 111 и 2049:
sudo ufw allow 111
sudo ufw allow 2049
Подключение NFS
Мы не будем подробно останавливаться на этом вопросе в сегодняшней статье. Это довольно большая тема, заслуживающая отдельной статьи. Но пару слов я все же скажу. Чтобы подключить сетевую папку вам не нужен никакой nfs клиент ubuntu, достаточно использовать команду mount:
sudo mount 127.0.0.1:/var/nfs/ /mnt/
Теперь вы можете попытаться создать файл в подключенной директории:
Также мы посмотрите подключенные файловые системы с помощью df:
127.0.0.1:/var/nfs 30G 6,7G 22G 24% /mnt
Чтобы отключить эту файловую систему достаточно использовать стандартный umount:
sudo umount /mnt/
Выводы
В этой статье была рассмотрена настройка NFS в Ubuntu 20.04, как видите, все делается очень просто и прозрачно. Подключение NFS шары выполняется в несколько кликов, с помощью стандартных команд, а открытие шары NFS ненамного сложнее подключения. Если у вас остались вопросы, пишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Операционные системы семейства Linux имеют одну замечательную особенность. Здесь все разделы отображаются не в каком-либо абстрактном месте под названием «Мой компьютер», а монтируются в корневую файловую систему. Вы можете управлять тем, куда и как будет смотирован определённый раздел. В корневую файловую систему монтируются все разделы ваших жёстких дисков, флешки, сетевые папки и виртуальные файловые системы.
В результате всего этого вы получаете единую и цельную файловую систему, с помощью которой можно управлять всеми возможностями Linux. Монтировать можно не только разделы, но и папки.
Вы можете примонтировать любую папку из файловой системы в другую папку, без каких-либо ограничений. Для этого используется всё та же команда mount. Только её нужно использовать вместе с опцией —bind. Однако прежде всего вам нужно задуматься, зачем вы это делаете. Если вам необходимо связать эти папки на постоянной основе, возможно, лучшим решением будет создать символическую ссылку.
Если же это невозможно, вернёмся к монтированию. Например, у нас есть папка /storage, которую мы хотим примонтировать в папку /mnt. Для этого достаточно выполнить:
sudo mount --bind /storage /mnt

Так это работает. Но эта точка монтирования будет непостоянной. После перезагрузки вам придётся повторить всё заново. Чтобы этого избежать, необходимо добавить запись о монтировании в /etc/fstab. Для этого примера она будет выглядеть вот так:
sudo vi /etc/fstab
/storage /mnt none bind 0 0
Однако эту строчку нужно добавлять в самом конце файла, так, чтобы все устройства, на которых находятся целевые папки, были уже смотированы. Размонтировать папку можно командой umount:
sudo umount /mnt
Вместо mount вы можете использовать ещё утилиту bindfs. Она выполняет почти такие же действия, только для неё не нужны права суперпользователя:
bindfs -n /storage /home/sergiy/mnt

Выводы
В этой небольшой статье мы разобрали, как использовать монтирование папок Linux. Как видите, это очень просто. Надеюсь, эта информация была для вас полезной.
Об авторе
![]()
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
Есть сервер в локальной сети под управлением Ubuntu 20.04, на него установлена Samba и расшарена папка, доступная без пароля. На windows подключается сетевой диск без проблем. На linux mint делаю по инструкции (
), в Сеть, прописываю адрес, выскакивает окошко подключиться анонимно или ввести пользователя, указываю анонимно и подключиться, подключается и видно расшаренную папку. Далее ее добавил в закладки, что б каждый раз не вводить адрес. После перезагрузки попка остается в закладках, и при открытии снова спрашивает анонимно или ввести пользователя и если нажать подключиться подключается. Но эту закладку не могу закрепить на рабочем столе.
Пробую прописать так:
Код: Выделить всё
sudo mount -t cifs -o username=guest,password= //10.130.230.230/public /home/user/myshare Сетевая папка монтируется, файлы в ней видны.
Но вот когда хочу сделать чтобы данная папка монтировалась при загрузке системы
Код: Выделить всё
//10.130.230.230/public /home/user/myshare cifs username=guest,password=,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0 пишет невозможно открыть так как требуются права суперпользователя.
Как сделать чтобы сетевая папка монтировалась при запуске и отображалась на рабочем столе?
Разделы дисков в Linux подключаются к системе совсем не так, как в Windows. Здесь есть корневая файловая система, куда подключаются все другие разделы и устройства, которые вы будете использовать. Системные разделы монтируются автоматически при старте системы. Но если вам нужно подключить дополнительные разделы, в некоторых случаях, может понадобиться это делать вручную.
В этой статье мы рассмотрим как выполняется монтирование диска в Linux, поговорим о том, как правильно использовать утилиту mount, umount и посмотреть какие разделы куда примонтированы.
Что такое монтирование?
Как я уже сказал Linux имеет единую корневую файловую систему, куда подключаются все запоминающие устройства и другие ресурсы. На самом деле, в Windows происходит что-то подобное, только все это скрыто от пользователя.
Фактически смонтированный раздел становится частью корневой файловой системы и система старается сделать работу со всеми разделами, независимо от их файловых систем, прозрачной. Это значит, что если вы примонтируете участок оперативной памяти или удаленную сетевую папку, то сможете работать с ней в файловом менеджере точно так же, как и с локальным диском.
Например, вы хотите примонтировать флешку. Вы даете системе команду подключить ее в папку /run/media/имя_пользователя/UUID_флешки/. Система определяет файловую систему устройства, а затем, используя драйвера ядра подключает ее к указанной папке. Дальше вам остается работать с той папкой, как с любой другой. Больше ни о чем думать не нужно. Когда надумаете извлечь флешку, ее нужно отмонтировать.
Обычно, монтированием занимаются специальные сервисы оболочки, но не всегда они доступны. А иногда нужно сделать все вручную, чтобы задать дополнительные опции монтирования или другие параметры. Для монтирования в Linux используется команда mount. Рассмотрим ее параметры:
$ mount
Или расширенный вариант:
Опции задают различные дополнительные особенности работы утилиты. Опция -t необязательна, но она позволяет задать файловую систему, которая будет использована и иногда это очень полезно. С помощью опции -o вы можете задать различные параметры монтирования, например, монтировать только для чтения и т д. Последних два параметра — это файл устройства, например, /dev/sda1 и папка назначения, например, /mnt.
Это не все, но основные опции, которые вам понадобятся во время работы с утилитой. Также, возможно, вы захотите знать список опций монтирования, которые могут быть полезными. Они все перечислены в статье автоматическое монтирование в fstab и писать их еще и здесь нет смысла. А теперь перейдем к примерам и рассмотрим как монтировать диск в linux.
Монтирование разделов с помощью mount
Монтирование разделов с помощью mount выполняется очень просто. Фактически в большинстве случаев будет достаточно упрощенной версии команды. Например, смонтируем раздел /dev/sdb6 в папку /mnt:
sudo mount /dev/sdb6 /mnt/

sudo mount -v /dev/sdb6 /mnt/

Если нужно, вы можете указать файловую систему с помощью опции -t:
sudo mount -v -t ext4 /dev/sdb6 /mnt
Если необходимо примонтировать файловую систему только для чтения, то вы можете использовать опцию -r или опцию монтирования -o ro, результат будет одинаковым:
sudo mount -t ext4 -r /dev/sdb6 /mnt
$ sudo mount -t ext4 -o ro /dev/sdb6 /mnt
Вы можете использовать и другие опции чтобы выполнить монтирование разделов linux, например, указать, что на этом разделе нельзя выполнять программы:
sudo mount -t ext4 -o noexec /dev/sdb6 /mnt
Обратите внимание, что вы не можете использовать опции uid, gid, fmask для файловых систем ext. Они поддерживаются только в FAT, vFAT, exFAT.
Вы можете использовать не только имена устройств чтобы выполнить монтирование диска в linux. Для этого можно применять UUID или метки, например, монтирование с помощью UUID:
sudo mount --uuid="b386d309-05c1-42c8-8364-8d37270b69e0" /mnt

Посмотреть uuid для ваших разделов можно с помощью команды:

Точно так же вы можете использовать метки. Команда монтирования диска linux будет выглядеть так:
sudo mount --label="home" /mnt/

Вы можете примонтировать одну папку в другую, для этого используйте опцию —bind
sudo mount --bind /mnt/ /media/
Возможно, не только монтирование разделов linux, но и монтирование файлов, если они содержат файловую систему, например, образов дисков. Монтирование образа диска linux работает точно так же:
sudo mount ~/file.iso /mnt
Посмотреть список всех примонтированных устройств можно просто выполнив mount без параметров:

Размонтирование устройств в Linux
Когда вы хотите завершить работу с устройством, особенно с флешкой, его нужно размонтировать. Для этого существует утилита umount. В качестве параметров она принимает точку монтирования или устройство. Например:
sudo umount /mnt
Теперь ваше устройство не смонтировано. Но иногда может возникнуть ошибка размонтирования. Система сообщит, что устройство занято: umount: /mnt: target is busy.

Проблему можно решить закрыв все программы, которые могут использовать любой файл в этой папке. Какие именно это программы вы можете узнать с помощью команды lsof:
lsof -w /mnt
$ lsof -w /dev/sdb6

Здесь вы видите всю необходимую информацию, чтобы понять что происходит и что с этим делать. Утилита вывела название программы, ее PID, и даже файл, с которым она работает. Вы можете завершить все программы, а потом снова повторить попытку или используйте опцию -l, файловая система будет отключена немедленно, несмотря на то, что она занята:
sudo umount -l /mnt

Выводы
В этой статье мы рассмотрели как выполняется монтирование жестких дисков linux, а также разделов и даже образов. Вы знаете как правильно использовать опции mount и umount. Если у вас остались вопросы, спрашивайте в комментариях!
Что такое Linux и CIFS простыми словами.
Работа с общими папками Windows происходит с использованием протокола CIFS (SMB). Все примеры в данном руководстве выполняются на Linux Ubuntu и CentOS.
Подготовительная работа
Синтаксис mount
Ручное монтирование
Автоматическое монтирование
Примеры
Подготовка
Установка пакетов
Для монтирования общей папки необходимо установить набор утилит для работы с CIFS.
yum install cifs-utils
apt-get install cifs-utils
Сетевые порты
Если мы будем монтировать сетевую папку, сервер которой находится за брандмауэром, необходимо открыть следующие порты:
- 137/UDP
- 138/UDP
- 139/TCP
- 445/TCP
Синтаксис
mount.cifs <папка на сервере> <во что монтируем> <-o опции>
* вместо mount.cifs можно написать mount -t cifs.
* простой пример монтирования папки public на сервере 192.168.1.1 в локальный каталог /mnt.
Ручное монтирование
Теперь монтирование можно выполнить следующей командой:
То же самое, с использованием домена:
Автоматическое монтирование CIFS через fstab
Для начала создаем файл, в котором будем хранить данные авторизации при подключении к общей папке:
И добавляем в него данные следующего вида:
Теперь открываем конфигурационный файл fstab:
и добавляем в него следующее:
Чтобы проверить правильность настроек, вводим следующую команду:
Примеры использования опций
Версии SMB
Если на стороне Windows используется старая или слишком новая версия протокола SMB, при попытке монтирования мы можем получить ошибку mount error(112): Host is down. Чтобы это исправить, указываем версию:
* монтирование по протоколу SMB1.0
Монтирование от гостевой учетной записи
или в fstab:
Права на примонтированные каталоги
При монтировании папки мы можем указать определенные права:
Для указания владельца, который будет назначен для примонтированного каталога, используем:
* чтобы посмотреть идентификаторы пользователя, вводим id -u <имя пользователя> и id -g <имя группы>.

