Changes

From Amahi Wiki
Jump to: navigation, search
6,938 bytes added ,  00:41, 10 December 2020
Mounting your Samba shares locally {{MessageBox|backgroundcolor = #faa|image =Warning.png|heading =WARNING|message = This is useful when you are using Greyholerecommended only for advanced users, and want to write or in any way work proceed with those files locallycaution.}}This tutorial is now available as the Amahi [https://www.amahi. Greyhole data should only be accessed through shares, so mounting those org/apps/greyhole-mount-shares -locally is an easy way to work with Greyhole data safelyMount Shares Locally] application.
* Add each share you want to mount locally to your /etc/fstab, like this:<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> #smb#//127.0.0.1/<share_name> /mnt/samba/<share_name> cifs credentials=/home/<username>/.smb_credentials,uidPurpose=500,gid=100,file_mode=0660,dir_mode=0770,hard,_netdev 0 0</div>You'll need to replace ''<share_name>'' with the actual share name.<br/>And ''<username>'' with your username. That user will own all the files in the mounted shares, though all users that are part of the ''users'' group (gid=100) will also be able to write in those mounted shares.
* Create the Mounting your Samba shares locally within your HDA is useful when you want a process '''running within your HDA'/home/<username>/.smb_credentials'' file. This is to write data in a way that ends up in a simple text file (use your favorite text editor)Greyhole-managed share.<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> username=<your_username> password=<your_password> domain=HOME</div>
* Manually create The reason is that Greyhole data should '''only be modified through shares'', not directly onto the /mnt/samba/<share_name> directorylocal file system, so mounting those shares locally is an easy way to work with Greyhole data safely.
* FinallyFor example, add if an app like a downloader gets files from the following lines internet and you want those files to be in /etc/rc.local:<div style="border: 1px solid #A3B1BF; padding: .5em 1em; color: #000; background-color: #E6F2FF; margin: 3px 3px 1em 3px;"> # Mount own Samba shares locally /bin/sed -ie 's/#smb#//g' /etc/fstab /bin/mount -a /bin/sed Greyhole-ie 's@//127.0.0.1@#smb#//127.0.0managed share, it has to place them into the share, not directly into the operating system, or Greyhole otherwise cannot handle them.1@g' /etc/fstab</div>
__TOC__ == Download and Setup == * As '''root''' (or precede commands with <code>sudo</code>), install the mount_shares_locally initd script: === Amahi 10 or greater (Fedora) === dnf install cifs-utils cp /usr/share/hda-ctl/mount_shares_locally /etc/init.d chmod +x /etc/init.d/mount_shares_locally chkconfig --add mount_shares_locally === Amahi 7/8/9 (Fedora) === yum install cifs-utils curl -o /etc/init.d/mount_shares_locally <nowiki>http://dl.amahi.org</nowiki>/mount_shares_locally.fedora chmod +x /etc/init.d/mount_shares_locally chkconfig --add mount_shares_locally ::'''NOTE:''' <code>yum</code> (deprecated) has been replaced with <code>dnf</code> as the package manager for Fedora 23 or greater. === Amahi 6 (Ubuntu 12.04) === sudo apt-get install cifs-utils curl sudo curl -o /etc/init.d/mount_shares_locally <nowiki>http://dl.amahi.org/mount_shares_locally.ubuntu</nowiki> sudo chmod +x /etc/init.d/mount_shares_locally sudo update-rc.d mount_shares_locally defaults == Configuration == * As '''root''', edit ''/etc/init.d/mount_shares_locally''**Replace ''"***set this string to your username!***"'' (line 12) with your username. For example: username="amahi";*The script may require the MariaDB root password be changed: **Please see [[Database Root Password]] for the appropriate login password (change for Amahi 10 '''ONLY''').**Also if you changed the MariaDB root password on your own. :<blockquote>Change ''hda'' (line 25) to the appropriate password if needed:<pre style="white-space: pre-wrap; word-break: keep-all;">mysql -u root -p hda -e "select name from shares" hda_production | grep -v "^name$" | xargs -d "\n" mkdir -p</pre></blockquote>* Create the ''/home/your_username/.smb_credentials'' file. This is a simple text file (use your favorite text editor). vi /home/your_username/.smb_credentials*Enter the following:  username=your_username password=your_password domain=HOME *Verify the ''.smb_credentials'' is owned by root:root or 1stadminuser:users: ls -al /home/your_username/.smb_credentials :'''NOTE:''' your_username and your_password in the .smb_credentials file needs to be the original username (1st Admin User) and password you created when you installed the OS ('''NOT''' ''root''). Also ensure the domain matches the ''Workgroup'' set for shares. *To test your new mounts, you can execute as root user:::<u>Mount</u> systemctl daemon-reload service mount_shares_locally start :<u>Unmount</u> service mount_shares_locally stop :'''NOTE:''' If you used /etc/rc.local and /etc/fstab to mount shares locally in the commands past, you can remove what you added in rcthose files now (<u>DO NOT</u> remove the drive mount lines). The above initd script replaces all this.local == Re-mount to Add new shares ==If you added new share to Greyhole, you need to restart the script by executing as root user (or sudo): service mount_shares_locally restartThis will unmount and remount all your shares, reflecting all the new shares you added== Where everything is mounted ==You will find the mounted shares in ''/mnt/samba/*'' and should look something like this:<br/>rc<pre>drwxrwx--- 2 your_username users 0 Aug 9 23:31 Booksdrwxrwx--- 2 your_username users 0 Aug 9 23:31 Docsdrwxrwx--- 2 your_username users 0 Mar 2 16:15 Moviesdrwxrwx--- 2 your_username users 0 Aug 9 23:31 Musicdrwxrwx--- 2 your_username users 0 Aug 9 23:31 Picturesdrwxrwx--- 2 your_username users 0 Aug 9 23:31 Publicdrwxrwx--- 2 your_username users 0 Jul 29 02:02 TVdrwxrwx--- 2 your_username users 0 Aug 9 23:31 Videos</pre>For example, your "Pictures" share would be located at '''/mnt/samba/Pictures'''.local is executed When working with files on bootthe HDA, access them via this share and <u>NOT</u> the traditional /var/hda/files/pictures location. == Uninstall==To uninstall ''mount_shares_locally'', after all other services have been starteddo the following as '''root''': service mount_shares_locally stop rm -rf /etc/init.d/mount_shares_locally rm -rf /home/your_username/.smb_credentials chkconfig --del mount_shares_locally rm -rf /mnt/samba/*Now if you choose to reinstall later, your machine will be in a clean state. ==Revise mount_shares_locally == {{Warning|<div style<nowiki>=</nowiki>"color:darkred">This is <b>NOT</b> an officially supported script for Amahi. Use at your own risk. We cannot guarantee it will work.<br/div>}} This Some apps used by Amahi are used to download files etc. Often we want these files to end up in our shares. Let's say that SickBeard is used to download TV episodes. You then have to configure SickBeard to place your new episode somewhere. A logical place is to save to the landing zone of your Greyhole share which could be ''/var/hda/files/TV''. There are two downsides to this though. * Greyhole is not notified of the fact that a file is necessary because mounts found added and only discovers it and makes it available in your share after a ''fsck'', which could take a long time.* Files deleted through apps in this folder don't register a ''delete'' event that Greyhole can pick up and thus only the symlink in fstab the landing zone is removed. The actual file copies remain on disc. Similarly users running Plex Media Server for example will have issues if the clients are mounted before allowed to ''delete contents'' and the server is configured to work on the landing zone. I described this issue when packaging Plex a long time ago [[Plex_Media_Server|here]].  Since Greyhole uses Samba service startsas a layer between the user and itself we would like to keep our writes and deletes to the shares and not the actual landing zone. But since apps (most of them) run as the user ''apache'' it will not be able to access ''/mnt/samba'', so just having which is the default mount point if you set up ''mount_shares_locally''. This following script retains the function of the original script but also adds a second mount point under ''/mnt/apache'' where the ''apache'' user will have read and write access. I have kept it simple and it will use the same credentials as the ''main'' mount. So only shares available to that user will be available for apache. By doing this apache will now have a place where it is allowed to read and write files to your shares and SickBeard can thus be configured to place the new episode in fstab ''/mnt/apache/TV'' which is then instantly picked up by Greyhole and file copies distributed to the discs in your pool as configured. Note that this script is based of the Greyhole original one and uses ''/etc/samba/smb.conf'' as the source of your shares and does not enoughload the shares from the database like the old HDA version of the script did. The commands If that behaviour is desired that can be easily added by replacing the lines <pre style="white-space: pre-wrap; word-break: keep-all;">testparm -s /etc/samba/smb.conf 2>/dev/null | grep "^\[" | grep -v "\[global\]" | grep -v "\[homes\]" | awk -F'[' '{print $2}' | awk -F']' '{print $1}' | xargs -d "\n" mkdir -p</pre> with <pre style="white-space: pre-wrap; word-break: keep-all;">mysql -u root -p -e "select comment from shares" hda_production | grep -v "^comment$" | xargs -d "\n" mkdir -p</pre>  '''WARNING:''' Please see [[Database Root Password]] for the appropriate login password. ==Troubleshooting===== MySQL Problems === Since Greyhole moved from SQL Lite to MySQL, you may hit a problem where Greyhole and the mount_shares_locally script both attempt to start before MySQL in bootup, leading to the services not starting properly. If this happens, you can try this to fix it:  ls /etc/rc.local will und/rc3.d/* Look for any entries marked S-1. If there are any, they need to be removed. Run the following as root:  rm S-comment 1* === Share Permissions ===Ensure your share lines from fstabfile and ownership permissions are correct: ls -al /var/hda/filesFor example, then mount them all, then rethe correct permissions are: drwxr-xr-x. 10 root root 4096 Jul 29 17:02 . drwxr-xr-x. 13 root root 4096 Dec 5 2013 .. drwxrwxr-comment them again, so that when fstab x 2 1stadmin users 4096 Dec 5 2013 booksIf this is executed on bootnot correct, it doesnyou will need to change them: chmod -R 775 /var/hda/files/sharename chown -R 1stadminuser:users /var/hda/files/sharename :'''NOTE:''' Replace ''1stadminuser'' with your admin user name and ''sharename''t give you errors about those shares not being availablewith the actual share name.
12,424

edits