Как правильно отредактировать /etc/fstab для сетевого диска?

Вопрос или проблема

Я пытаюсь автоматически монтировать сетевой диск при запуске, редактируя /etc/fstab, но это не работает.

Если я выполняю эту команду,

sudo mount.cifs //192.168.0.67/test /home/pi/test -o username=myname,password=123

она отлично работает. Но я не знаю, как правильно записать то же самое в /etc/fstab.

Каждая строка в файле /etc/fstab содержит следующие поля, разделенные пробелами или табуляциями:

file_system    dir    type    options    dump    pass

Обычно добавляемая точка монтирования в /etc/fstab будет выглядеть следующим образом:

# <file system>        <dir>         <type>    <options>             <dump> <pass>
/dev/sda1              /             ext4      defaults,noatime      0      1

Вы не можете просто добавить объявление монтирования в файл.

Добавьте эту строку в конец вашего файла /etc/fstab:

 //192.168.0.67/test  /home/pi/test  cifs  username=myname,password=123,iocharset=utf8,sec=ntlm  0  0

После редактирования /etc/fstab можно проверить, смонтировав файловую систему с помощью mount -a, что позволит проверить fstab и попытаться смонтировать все, что там есть.

В дополнение к ответу 에이바, вы можете сохранить учетные данные в специальном файле, называемом .smbcredentials, в вашем домашнем каталоге для небольшой безопасности. Это хорошая практика, особенно для многопользовательских систем. Таким образом, вы будете защищать ваш пароль cifs. Создайте файл: /home/myname/.smbcredentials и включите в него только две строки:

user=myname
password=123

Установите права на файл:
$ chmod 600 .smbcredentials

Затем в /etc/fstab включите следующую строку:

//192.168.0.67/test  /home/myname/test  cifs  credentials=/home/myname/.smbcredentials,iocharset=utf8,sec=ntlm  0  0

Обязательно протестируйте с mount -a или перезагрузкой.

Извините, если это выглядит как захват вашей темы, это связано, и я потратил часы, пытаясь заставить работать советы, опубликованные здесь, с моим Raspberry Pi, прежде чем я сдался и придумал эту альтернативу для пользователей Raspberry Pi… обратите внимание, что это также должно работать на Ubuntu 18.04.

Я пытался заставить вышеуказанные советы работать с Raspberry Pi Raspbian buster desktop на моем Raspberry Pi 3+, но все, что мне удалось стабильно работать, это командная версия, опубликованная user6354 в начале этого потока. Тем не менее, я смог поместить эту строку с небольшим редактированием в файл в папке /home/user/.config/autostart на моем Raspberry Pi и заставить ее работать.

Содержание файла должно выглядеть следующим образом (внесите изменения для вашей ситуации – см. ниже):

[Desktop Entry]
Encoding=UTF-8
Name=OurCloud_share
Name[en_GB]=OurCloud_share
GenericName=OurCloud_share
Comment=Script to mount OurCloud_share
TryExec=lxterminal
Exec=lxterminal -e "sudo mount.cifs //192.168.1.xxx/sourcefolder /home/pi/targetfolder -o username=loginID,password=userpassword"
Icon=lxterminal
Type=Application
StartupNotify=true
Categories=GTK;Utility;TerminalEmulator;
Name[en_US]=mount_OurCloud.desktop

Где:

OurCloud_share = как вы хотите назвать доступ к вашему NAS-диску

192.168.1.xxx = замените это на TCP/IP-адрес вашего NAS в сети

sourcefolder = общая папка на вашем NAS-диске

targetfolder = папка, где вы хотите, чтобы содержимое смонтированной папки NAS отображалось (создайте эту папку и убедитесь, что она доступна на запись, если вы хотите иметь двусторонний доступ к ней)

loginID = идентификатор пользователя для входа в ваш NAS через сеть

userpassword = пароль для использования с идентификатором пользователя

Назовите файл как-то осмысленно (здесь я использую “mount_OurCloud.desktop”. Тип файла “.desktop” обязателен.)

Сохраните это, а затем используйте права root для установки разрешения на выполнение этого файла.

Перезагрузите, и ваша NAS-папка должна быть видна в целевой папке.

.

Ответ или решение

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

Теория

Файл /etc/fstab (File Systems Table) используется в UNIX-подобных системах для автоматизации процесса монтирования файловых систем. Он содержит информацию о всех доступных файловых системах и определяет, какие из них должны монтироваться автоматически, с каким доступом и опциями. Каждая строка в этом файле следуют следующему шаблону:

<файловая система> <точка монтирования> <тип> <опции> <дамп> <проверка>
  • Файловая система: путь или идентификатор файловой системы, которую требуется смонтировать. В случае сетевых накопителей это будет UNC путь, например, //192.168.0.67/test.

  • Точка монтирования: директория, в которую будет монтирована файловая система, например, /home/pi/test.

  • Тип: тип файловой системы. Для монтирования CIFS/SMB-дисков используется cifs.

  • Опции: список опций, разделенных запятыми, таких как метод аутентификации, кодировка, режим доступа и пр.

  • Дамп и Проверка: определяют необходимость и порядок проверки файловой системы; обычно для сетевых дисков устанавливаются в 0.

Пример

Предположим, что вы хотите монтировать сетевой диск с IP-адресом 192.168.0.67, который доступен через CIFS-протокол. Монтирование может быть успешно выполнено через команду:

sudo mount.cifs //192.168.0.67/test /home/pi/test -o username=myname,password=123

Конвертируем эту команду в запись в /etc/fstab:

//192.168.0.67/test /home/pi/test cifs username=myname,password=123,iocharset=utf8,sec=ntlm 0 0

Здесь:

  • iocharset=utf8 используется для корректной поддержки кодировки UTF-8.
  • sec=ntlm определяет метод безопасности.

Применение

После редактирования /etc/fstab рекомендуется выполнить команду sudo mount -a, чтобы проверить корректность настройка монтирования. Эта команда монтирует все файловые системы, указанные в /etc/fstab, и позволяет убедиться, что синтаксис строки и параметры правильные.

Увеличение безопасности

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

  1. Создайте файл /home/myname/.smbcredentials:

    username=myname
    password=123
  2. Ограничите доступ к этому файлу:

    chmod 600 /home/myname/.smbcredentials
  3. Измените строку в /etc/fstab на:

    //192.168.0.67/test /home/myname/test cifs credentials=/home/myname/.smbcredentials,iocharset=utf8,sec=ntlm 0 0

Теперь учетные данные безопасно хранятся и защищены от несанкционированного доступа.

Рассмотрение альтернатив

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

Создайте файл .desktop в каталоге /home/pi/.config/autostart, содержащий команду монтирования, например:

[Desktop Entry]
Encoding=UTF-8
Name=Mount Network Drive
Exec=lxterminal -e "sudo mount.cifs //192.168.0.67/test /home/pi/test -o username=myname,password=123"
Type=Application
StartupNotify=true

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...