标签: nfs

使用 rsync 或 NFS 和硬链接备份到 Synology NAS

我想将数据从 Windows (Vista) 计算机备份到 Synology NAS (210j)。NAS 支持 FTP、SMB、NFS,还允许设置 rsync 守护程序。

我想将不同的文件夹备份到 NAS,但我更喜欢使用硬链接方法来节省磁盘空间(就像这个脚本一样)。使用此方法,将为每个备份创建一个新文件夹,但如果该文件已存在于目标上,则只会创建一个硬链接。

Synology 设备上的文件系统是 ext3,所以我可能无法使用rsyncbackup,因为它是为 NTFS 制作的。是否有另一种方法可以通过硬链接支持进行此备份?

backup nas rsync nfs

5
推荐指数
1
解决办法
3789
查看次数

将一台 Linux 主机的文件系统连接到另一台 Linux 主机的文件系统有哪些选项?

我有两台 Linux 主机(都运行 Ubuntu 10.04),我希望其中一台能够访问另一台的部分文件系统。即我希望remote1能够访问remote2的文件:/home/username

这只是为了允许我以读写方式访问另一台计算机上的主目录,并且其他用户不需要也能够访问它。

每个主机上使用的“用户名”ID 都不同,原因我不会详细说明(同样,ADS 等)。

我尝试过 Samba,但发现它不可靠。例如,我有一个程序可以监视目录并更新大约 12,000 个文件的列表。我发现这个列表不断变化,文件丢失,有些文件随机无法读取。太不靠谱了。

我在remote1上有一些运行良好的东西:

sshfs remote2:/home/username ~/remote2 -o idmap=user -o uid=$(id -u) -o gid=$(id -g)
Run Code Online (Sandbox Code Playgroud)

这在一段时间内非常有效。不幸的是,remote1 是一台笔记本电脑,并且经常与 LAN 断开连接。当安装这个 sshfs 文件系统时,这似乎完全破坏了一切,并且通常需要重新启动才能恢复。

我开始研究 NFS,但几年前我遇到了有关用户 ID 映射的问题。当时,我发现有一个用户空间 NFS 服务器可以处理这个问题,但它有很多自己的问题。但那是 NFSv3。NFSv4“内核服务器”可以处理不同的用户 ID 并在它们之间正确映射吗?我真的不想使用 NIS,而且实际上我也无法更改用户 ID——它们是通过外部方式设置的。

另外,NFS 如何处理“不可靠”的网络连接?它会自动重新连接还是共享会被破坏,直到重新安装为止?

像 CIFS 这样的东西怎么样?这可以应对经常出现的、不可预测的网络故障吗?这可能会遇到与 Samba 相同的问题,但如果合适的话值得一试。

我还应该考虑其他选择吗?

linux samba network-shares nfs sshfs

5
推荐指数
1
解决办法
639
查看次数

离线时使用 NFS 主目录

我有一台运行 NFS4 服务器并导出所有用户的主目录的服务器。当用户通过 LAN 或 WLAN 直接访问服务器时,此设置非常有效。但是,如果笔记本电脑用户想要在无法访问服务器的远程位置登录,则登录将失败。

有什么方法可以准备 NFS 主目录以供离线使用吗?当笔记本电脑可以访问服务器时将主目录与服务器同步,并在服务器无法访问时使用主目录的最新副本?

remote nfs

5
推荐指数
1
解决办法
2071
查看次数

在 Windows 7 Ultimate 上安装 Arch Linux NFS 共享时出错

我正在尝试通过 LAN 挂载 NFS 共享:

  • 服务器:Arch Linux x64
  • 客户端:Windows 7 Ultimate x64

服务器已经成功地将 NFS 共享导出到其他 Linux 机器,所以我很确定它没有问题。我/etc/exports为新的 Windows 机器添加了一个条目并重新启动了nfs-server服务。

在 Windows 机器上,我在“添加/删除程序”中启用了以下内容:

  • NFS 服务
  • 基于 UNIX 的应用程序子系统

然后,按照此处的指南我尝试运行以下命令来挂载 NFS 共享,以便它显示为Z:\驱动器:

mount //192.168.1.99/data/authorized Z:
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

cmdlet New-PSDrive at command pipeline position 1
Supply values for the following parameters:
Root: 
Run Code Online (Sandbox Code Playgroud)

它正在等待我为“Root:”输入一些东西。我猜这意味着 NFS 共享根目录,所以我输入了它 ( /data/authorized),尽管它应该已经从我的初始命令中获取了。

那是我收到此错误的时候:

New-PSDrive : Cannot find a provider with the name 'Z:'.
At line:1 char:6
+ mount …
Run Code Online (Sandbox Code Playgroud)

windows linux nfs

5
推荐指数
1
解决办法
6483
查看次数

如何更改 QNAP NAS 上的用户 ID?

我有一台 QNAP TS-110,可以通过 NFS 从 Ubuntu 系统访问它。

我猜想典型家庭网络上的 NFS 不使用任何用户身份验证。我读过很多地方,发现 Linux 机器和 NAS 上的用户具有相同的 UID 和/或 GID 很重要。

  • 现在我在 Ubuntu 上的主要用户已经有了uid=1000(me) gid=1000(me).
  • 在 NAS 上,主用户拥有uid=500 gid=100

我认为这就是我反复遇到访问问题的原因。(是这样吗?)

我的计划是通过 SSH 进入 NAS 并使用

usermod -u <newuid> -g<newgid> <username>
Run Code Online (Sandbox Code Playgroud)

问题出在NAS上没有usermod安装。

it.toolbox.com上,我读到我可以简单地/etc/passwd使用/etc/group所需的 UID 和 GID 进行编辑。

Fedora 论坛中有很多关于事后如何修复文件的讨论。

现在的问题是:

  1. 我可以简单地编辑/etc/passwd和分组吗?
  2. 如何检查我要更改 UID 的用户是否未登录?
  3. chown -R --from=500:500 1000:1000 /path/*配置文件更改后,对所有文件使用是否正确?
  4. 如何确保 NAS 在此更改后没有问题?

linux nas permissions nfs uid

5
推荐指数
1
解决办法
1万
查看次数

未找到 NFS 网络路径

我确实在我的 debian 7 服务器上设置了一个 nfs 共享,并试图将它安装在 Windows 7 机器上。

我尝试了以下方法:

C:\Users\David>mount \\192.168.178.240\backups Y:
Network Error - 53

Type 'NET HELPMSG 53' for more information.


C:\Users\David>mount 192.168.178.240:/backups Y:
Network Error - 53

Type 'NET HELPMSG 53' for more information.
Run Code Online (Sandbox Code Playgroud)

当我运行时,NET HELPMSG 53它告诉我找不到网络路径。

C:\Users\David>showmount -e 192.168.178.240
Exports list on 192.168.178.240:
/backups                           192.168.0.0/255.255.255.0
Run Code Online (Sandbox Code Playgroud)

如您所见,它确实存在。Windows 7 机器的 IP 地址是 192.168.137.252,因此它位于正确的子网中。

/etc/exports 如下:

root@debiansrv:~# grep backups /etc/exports
/backups 192.168.0.0/255.255.255.0(rw)
Run Code Online (Sandbox Code Playgroud)

windows-7 network-shares nfs

5
推荐指数
1
解决办法
1万
查看次数

NFS:网络断开导致 Gnome Nautilus 挂起/跳跃进度条

我通过 /etc/fstab 挂载 NFSv4 导出并挂载和使用 nautilus 中的共享文件夹。

有两个问题:

  • 当我将一个大文件(大约 4 GB)复制到 NFS 服务器时,进度条迅速变为 2 GB,然后基本停止移动。但是副本仍在进行中 - 只是没有很好地显示
  • 当我在没有卸载 nfs 共享的情况下断开网络连接时,nautilus 会冻结。

我该如何解决这个问题?

/etc/export 在服务器上

/export/share   192.168.0.0/24(rw,sync,insecure,no_subtree_check,anonuid=1000,anongid=1000)
Run Code Online (Sandbox Code Playgroud)

/etc/fstab 在客户端:

server:/share   /mnt    nfs4    soft,tcp
Run Code Online (Sandbox Code Playgroud)

linux mount gnome nfs ubuntu

5
推荐指数
1
解决办法
2256
查看次数

你如何在 NixOS 中声明绑定安装?

我试图在我的 NixOS 配置中声明一个绑定安装。我正在尝试下面的配置片段,但是当我对其进行测试时(使用nixos-rebuild test),它会将操作系统发送到恢复模式。需要明确的是,我也希望/data能够联系到/srv/nfs

# 
# /etc/nixos/configuration.nix
#
fileSystems."/data" = {
  device = "/dev/disk/by-uuid/bobloblaw";
  fsType = "btrfs";
};

fileSystems."/srv/nfs" = {
  device = "/data";
  fsType = "bindfs";
};
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

linux mount filesystems nfs nixos

5
推荐指数
1
解决办法
1594
查看次数

使主机上的 NFS 挂载在 Docker 容器内可见且可读写

我是 Docker 的新手,我想用它来为我的代码获得一个受控的编译环境。

我已经有了一个包含我需要的所有工具的 Docker 镜像。我目前的问题如下:

  • 我在主机上有我的代码,在我从 NFS 服务器挂载的主文件夹中
  • 我想使用 r+w 权限使该文件夹在 Docker 容器内可见

这是我首先尝试的(将源文件夹作为卷运行容器)和我得到的错误:

[mbrandalero@machine ~]$ docker run -it --cap-add sys_admin -v "/homes/mbrandalero/src:/usr/local/src/" mbrandalero/my-image bash
/usr/bin/docker-current: Error response from daemon: error while creating mount source path '/homes/mbrandalero/src': mkdir /homes/mbrandalero/src: permission denied.
Run Code Online (Sandbox Code Playgroud)

(显然它正在尝试在主机端创建目录,但它已经存在)

奇怪的是,当我尝试将整个主文件夹作为卷运行容器时,它可以工作但会产生不同的错误(文件夹中没有写权限):

[mbrandalero@machine ~]$ docker run -it --cap-add sys_admin -v "/homes/mbrandalero/:/usr/local/src/home" mbrandalero/my_image bash
root@46712ad936f2:/usr/local/src# cd home/
bash: cd: home/: Permission denied
root@46712ad936f2:/usr/local/src# ls -lah | grep "\(\.\|home\)"
total 4.0K
drwxr-xr-x  1 root  root    18 May 20 14:50 . …
Run Code Online (Sandbox Code Playgroud)

linux nfs docker

5
推荐指数
1
解决办法
6307
查看次数

如何在 WSL2 上挂载 NFS 共享?

如何在 Windows 10 上从 WSL2 挂载 NFS 共享?

sudo mount -t nfs 192.168.1.101:/mnt/tank /mnt/tank
Run Code Online (Sandbox Code Playgroud)

失败了

mount.nfs: rpc.statd is not running but is required for remote locking.
mount.nfs: Either use '-o nolock' to keep locks local, or start statd.
Run Code Online (Sandbox Code Playgroud)

我在 windows-subsystem-for-linux 上运行 Ubuntu 20.04 LTS。

nfs ubuntu windows-10 windows-subsystem-for-linux wsl2

5
推荐指数
1
解决办法
2万
查看次数