Неможливо отримати мережевий накопичувач CIFS для встановлення на завантаженні


22

Я додав частку у fstab для доступу до мережевого диска з усіма своїми файлами на ... fstab виглядає так:

proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
//192.168.1.73/disk1 /media/disk1 cifs username=pi,password=raspberry,_netdev,uid=1000,gid=1000,iocharset=utf8, 0 0
# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that

Коли я запускаю sudo mount -aуспішно мережевому диску монтує і я можу робити cd /media/disk1те ls, правильно дає мені список всіх папок на зазначеному мережевому диску.

Однак після перезавантаження пі, коли я перебуваю cdв цьому місці, і запускаю lsзнову, нічого там немає. Доводиться sudo mount -aзнову запускати вручну , після чого монтується диск.

Я бачив про це багато разів на інших форумах, і, здається, існує думка, що кріплення у fstab відбувається надто рано - до того, як мережа буде створена. Я намагався втілити речі, які я розумію - але, якщо чесно, багато це - це над головою. Я додав _netdevдо рядка у fstab, я додав rootdelay=10у /boot/cmdline.txt, я встановив мережевий менеджер ... нічого з цього не допомогло.

І тому я звертаюся до вас, про готовність викинути пі у вікно - слідом за собою. Будь-яка допомога, дуже цінується.

Відповіді:


9

Я пропоную вам додати кріплення або до кореня, або до користувача crontab.

Зважаючи на те, що ви зараз використовуєте sudo, кореневий кронтаб видається найбільш підходящим.

sudo crontab -e # для редагування кореневого crontab

Додайте запис @reboot до crontab. Вам потрібна така лінія, як

@reboot (сон 30; / bin / mount / media / disk1) &

Це зачекає 30 секунд, перш ніж встановити диск.


1
Вибачтесь за витрачений час, щоб дістатися до цього, я лише щойно мав змогу пограти з цим знову. Мені дуже полегшено сказати, що ваше рішення працювало чудово. Велике спасибі за вашу допомогу.
Люк Тумей

це впевнено, але як ми можемо процедурно відключити при відключенні?
Ciasto piekarz

14

У мене також була така ж проблема, що стосується автоматичного встановлення мережевого накопичувача під час завантаження. Я спробував додати mount -aкоманду /etc/rc.localпісля редагування, /etc/fstabале безрезультатно. Причина не працює в тому, що мережа не готова до її mount -aвиконання.

Як вже згадували інші, проблема полягає в тому, що накопичувачі fstab монтуються ще до того, як мережа працює. Для того щоб бути впевненим, що мережа готова під час завантаження, є опція Wait for Network at Bootв raspi-config.

бігати

sudo raspi-config

і встановіть Wait for Network at Bootопцію на Slow wait for network connection before completing bootта перезавантажте. Звичайно, на час завантаження може вплинути, але якщо це не критично, цей метод можна використовувати.

Після перезавантаження ви можете перевірити, що мережевий накопичувач встановлений автоматично: швидка перевірка через ls /media/DRIVE_NAMEабоdf


Це, безумовно, виправлення, яке спрацювало для мене, з останніми оновленнями rpi3 станом на листопад 2016 року
ChrisAdmin

Я вважаю за краще використовувати /etc/rc.local mount -aрозчин, але не забудьте спати спочатку. Дивіться мою відповідь, яку я щойно опублікував тут: raspberrypi.stackexchange.com/a/63690/49091
Габріель Степлес

4

Оновіть нотатки, побачивши, що це з’явилося в Google. Я зазнав тієї ж серії розчарувань, монтуючи свою капсулу аеропорту. Я запускаю Raspberry Pi 3B + на програмі Rasbian Stretch, випущеній 14 березня 2018 року зі стандартним графічним інтерфейсом.

Ось мій рядок коду fstab:

//100.10.10.1/Data /mnt/timecapsule cifs username=********, password=******, vers=1.0, rw, uid=1000, iocharset=utf8, sec=ntlm 0 0

Здається, з часом відбулося кілька змін:

  1. Вам потрібно додати операцію "vers = 1.0"
  2. _netdev нічого не робить у файловій системі CFIS, працює лише у файловій системі NFS (як зазначив Габріель Степлес нижче)
  3. "user =" та "pass =" тепер мають бути "username =" та "password =" відповідно
  4. Нарешті, зараз є поле "Зачекайте на мережу", яке можна поставити галочкою в утиліті налаштування Raspberry Pi, яка вирішила проблему монтажу при завантаженні.

Після 2-х днів боротьби міна остаточно встановлена ​​і робить це під час завантаження!


1

Ще одна хитрість вирішити цю проблему - додати внизу файлу /etc/rc.localкоманду:

mount -a

Після перезавантаження ви можете перевірити, чи все в порядку, ввівши команду:

df -h

і ви побачите щось подібне:

pi@raspberrypi ~ $ df -h
File system      Dim. Usati Dispon. Uso% Montato su
/dev/root        7,2G  6,3G    584M  92% /
devtmpfs         119M     0    119M   0% /dev
tmpfs             25M  412K     25M   2% /run
tmpfs            5,0M     0    5,0M   0% /run/lock
tmpfs             49M     0     49M   0% /run/shm
/dev/mmcblk0p1    56M   20M     37M  36% /boot
//192.168.1.1/ws 466G  452G     14G  98% /mnt/winshare  <----------

0

Здається, цей _netdevваріант у нас /etc/fstabвзагалі нічого не робить для акцій cifs. Цей ресурс ( https://help.ubuntu.com/community/Fstab ), здається, підтверджує, що коли він каже "_netdev - це мережевий пристрій, монтуйте його після підключення до мережі. Дійсно лише з fstype nfs ".

Я вважаю за краще використовувати /etc/rc.localфайл для виправлення цього сну, а потім зателефонувавши mount -aвсередині нього, а не використовуючи crontabабо Wait for network at bootопцію в raspi-config. Однак, щоб отримати/etc/rc.local виправити роботу, не забудьте спати, як пояснено нижче.

Те, що я зробив, щоб виправити цю проблему (на моєму Pi3) - це змінити /etc/rc.localрежим сну 20 секунд (зателефонувавши sleep 20), а потім зателефонувати mount -a. Таким чином, незважаючи на те, що мережа ще НЕ підключена, коли система вперше зчитує файл fstab, тож монтаж не вдається, я змушую систему чекати тут 20 секунд (даючи час мережі підключитися), а потім змушую її mount -aзнову зателефонувати. щоб змонтувати всі диски у fstabфайлі.

Ось як /etc/rc.localвиглядає мій файл зараз:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
#GS notes: a *minimum* of sleep 10 is required for the mount below to work on the Pi 3; it failed with sleep 5, but worked with sleep 10, sleep 15, and sleep 30
sleep 20
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
  mount -a #GS: mount all drives in /etc/fstab
fi

exit 0

Готово! Зараз це прекрасно працює для мене!

Список літератури:


0

У моєму випадку я придбав Raspberry Pi 3 і встановив Raspbian Stretch , я відредагував свій fstab з моїм улюбленим розташуванням мережевих накопичувачів таким чином:

//172.30.0.54/mnt/anim /mnt/share/Z cifs  username=frieza,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/V /mnt/share/V cifs  username=goku,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/M /mnt/share/M cifs  username=piccolo,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/O /mnt/share/O cifs  username=drbrief,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/R /mnt/share/R cifs  username=vegeta,password=meh,uid=1000,gid=1000,vers=2.0 0 0

Тож коли б я не використовував:

sudo mount -a

Кожен накопичувач, перелічений у fstab, монтуватиметься автоматично, тоді я додав це до rc.local та декількох інших місць, щоб я міг насолоджуватися вмістом цих дисків при запуску, довгий короткий сюжет, нічого не працювало, поки я не вирішив додати рядок до кореня CRONTAB як по:

sudo crontab -e

Вибрав мого редактора (нано у випадку). Потім додав цей рядок внизу

@reboot (sleep 20;/bin/mount -a)&

У моєму випадку все спрацювало нормально після перезавантаження. Сподіваюся, це допоможе вам, хлопці, вийти.

ПРИМІТКА:

Якщо у вас виникли проблеми, ви завжди можете виконати:

service cron status

І це дасть вам підказку про те, що біг, а що ні


0

Ви можете додати атрибути _netdev та comment = systemd.automount у fstab, і для мене це все добре працює. Я стикався з тією ж проблемою при перезавантаженні.

\\network_shared_location\directory /your_mount_location/mount_directory cifs _netdev,username=<your_username>,password=<your_password>,workgroup=<YOUR_WORKGROUP>,users,auto,user_xattr,comment=systemd.automount 0 0

-1

Я знаю, що це трохи пізня відповідь, але у мене була така ж проблема, і це було пов’язано з тим, що мережа не fstabпрацювала, коли дзвонили. Я спробував crontabперший, і він спрацював нормально, але думка була трохи безладним ...

Існує великий пост тут , який проходить через використовуючи сценарій init.dдля запуску монтування , як при завантаженні ... він тепер працює відмінно підходить для мене.


1
Чи можете ви відредагувати свою відповідь, щоб вказати важливі деталі вашого посилання на випадок загибелі майбутнього посилання .
Greenonline
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.