我有两台设备:一台运行 Ubuntu 20.04 的笔记本电脑和一台运行 Raspberry Pi 操作系统的 Raspberry Pi 4。
这两个都有相同的版本nfs-kernel-server和设置。
这两台机器通过 NFS4 协议与另一台机器共享一些目录,有时是同时共享。
由于笨拙,我经常设法中断这些连接:
无论如何,充当客户端角色的机器都不能很好地应对这些中断。尝试事后卸载并不顺利(无休止的等待,没有任何结果),其他事情也会受到影响:我的 Ubuntu 有时开始抱怨没有应用程序与打开.txt文件关联(!)
问题:
如何以某种方式重置客户端上这些中断的 NFS 连接(无需重新启动)?1.) 方便拆卸 2.) 允许重新安装时从头开始。
细节:
nfs-common两台机器上的版本:1.3.4-2.5
所有这些安装都是手动启动的(通过按需运行脚本);他们都不在/etc/fstab. 我没有为 mount 命令提供任何选项;它很简单:
sudo mount IP:/share /mountpoint
Run Code Online (Sandbox Code Playgroud) 我有三个新的 Seagate IronWolf Pro HDD。他们工作得很好:
我遇到的一个问题是它们在闲置时发出令人担忧的声音。声音是重复的“粘性粘性...”,每个粘性间隔约 0.5 秒。“粘性”太强了,我能感觉到桌子上的振动。同样,驱动器工作正常,如果我将大文件复制到这些驱动器,点击声就会消失,似乎驱动器不知道如何空闲。安装驱动器后 1 或 2 秒可能会出现噪音。
以下是我迄今为止为解决该问题所做的努力:
磁头停放过多:我发现的第一个解释是 Ubuntu 端的电源管理导致磁头停放过多,可以通过 解决hdparm -B254 /dev/sda,但我的驱动器不支持此命令。
使用 hdparm 强制驱动器处于空闲状态:我尝试了诸如hdparm -y /dev/sda,之类的命令hdparm -S0 /dev/sda。每次注册命令时,咔嗒声都会停止一秒钟,然后立即恢复。
停用 SMART 监控:我发现一些驱动器监控记录导致了一些噪音问题,因此我将其停用,但没有成功。
升级固件:我考虑过升级固件,但我似乎已经拥有最新的固件。
停用 EPC / Idle_a / Idle_b:使用 Seagate 名为 SeaChest 的工具,我可以修改给定驱动器的电源设置。到目前为止,我尝试禁用不同的空闲模式、禁用 EPC,但没有成功。
我有另一个较小的台式机,具有相同的操作系统 (Ubuntu 20.04),但希捷硬盘不同(希捷 Exos 而不是希捷 IronWolf)。另一个驱动器按预期工作,因此问题可能出在 Ubuntu 和 Ironwolf 驱动器之间的兼容性上。
知道这是否是一个已知问题以及是否有办法解决这个问题?我不敢相信这种怠速声音对驾驶来说是件好事。
编辑1:
我在 Ubuntu 18 上重现了相同的行为,在我的 Seagate Exos 当前顺利运行的同一系统上。
我在硬盘支撑架上加了一些橡胶垫,现在我几乎听不到声音了。我仍然不完全确定这是正常的。我不明白为什么希捷 Exos 超级安静,而 IronWolf Pro 却不然。我尝试联系 Seagate,但由于某种原因无法联系到他们。 …
最近我开始了解这个mount --bind命令,但有一些我不太明白。假设我有一个磁盘分区,并使用此命令将其安装到安装点 /bkup。
sudo mount /dev/sdd1 /bkup
Run Code Online (Sandbox Code Playgroud)
如果我想让 /home/bkup 目录显示为 ~/bkup,我可以这样做
sudo mount --bind /bkup ~/bkup
Run Code Online (Sandbox Code Playgroud)
但这有什么不同
ln -s /bkup ~/bkup
Run Code Online (Sandbox Code Playgroud)
有效?mount --bind当我可以用命令做同样的事情时为什么要使用ln -s?
我在 Ubuntu Desktop 21.04 上运行 multipass,以在此 Ubuntu 计算机上创建许多 Ubuntu VM。我需要将我在根目录创建的文件夹挂载/app到其中一台虚拟机。虽然ls -l /app显示文件夹,但multipass mount /app newvm给出错误Source path "/app" does not exist。
如果我尝试使用自动完成功能并按multipass mount /Tab 键,它会显示根目录中的大多数文件夹,但不会显示/app文件夹。
为了进行测试,我使用创建了一个新的根级别文件夹sudo mkdir /bob。然后multipass mount /bob newvm。还是同样的错误。Source path "/bob" does not exist
为什么多通道不显示所有根级文件夹?
我需要使用udisksctl. 我尝试了网上已经看到的
经典方法:/dev/sda?*
udisksctl mount -b /dev/sda?*
Run Code Online (Sandbox Code Playgroud)
或者
udisksctl unmount -b /dev/sda?*
Run Code Online (Sandbox Code Playgroud)
/dev/sda?*就我而言相当于/dev/sda1 /dev/sda2
但udisksctl仅安装或卸载列出的第一个分区/dev/sda1。
如何让它一次挂载或卸载所有分区?
我正在尝试根据我在命令中知道的硬盘驱动器的 UUID 来查找硬盘驱动器制造商/型号。
我尝试使用lsblk -o FSTYPE,MOUNTPOINT,UUID,MODEL,SIZE列出所有硬盘驱动器,然后将它们存储在一个数组中以查找 UUID 及其型号。但是挂载的硬盘的UUID并不包含硬盘的型号信息。
它仅在硬盘的根位置(即/sda)上列出型号硬盘。
我正在编写一个 bash 脚本,用于存储 UUID 和硬盘的制造/型号以及文件系统类型,以便我可以自动将具有有效文件系统类型的硬盘安装在文件夹前缀上/someLocation/${model}-${UUID-first-4-char}
下面创建了两个数组,一个用于 uuid,另一个用于文件类型。
#create array
fsTypeArray=()
uuidArray=()
mapfile -t fsTypeArray < <(lsblk -o FSTYPE,MOUNTPOINT,UUID | awk 'NF==2 {print $1}')
mapfile -t uuidArray < <(lsblk -o FSTYPE,MOUNTPOINT,UUID | awk 'NF==2 {print $2}')
Run Code Online (Sandbox Code Playgroud)
然后这里是挂载 ext4 或 ntfs 的 if 语句
index=0
for i in "${fsTypeArray[@]}"
do
if [ $i == ntfs ]
then
echo "mountNtfsDrive"
currentDate="date +%Y%m%d%H%M%S"
mountNtfsDrive "${uuidArray[$index]}" `$currentDate`
elif [ $i == ext4 ] …Run Code Online (Sandbox Code Playgroud) 我在使用外置硬盘时遇到了很多困难。我目前在 Dell Inspiron B120 上运行双引导系统(XP Service Pack 3 和 Ubuntu 11.04 Natty Narwahl)。
我正在尝试设置新的 80 GB Hitachi 外置 HD。使用 GParted,我格式化了驱动器并设置了分区。分区方案如下
应用这些更改后,我进入“磁盘工具”,HD 与正确的分区一起出现。当我尝试为分区 1 和 3 安装卷时,我收到一个弹出窗口,说明:
Error Mounting Volume
An error occurred while performing an operation on "Home"
(Partition 3 of HTS548080m9AT00): The daemon is being inhibited.
Run Code Online (Sandbox Code Playgroud)
当我尝试检查文件系统时,我收到一个弹出窗口,说明:
Error Checking filesystem on volume
An error occurred while performing an operation on "Home"
(Partition 3 of HTS548080m9AT00): The daemon is …Run Code Online (Sandbox Code Playgroud) 我想使用命令行实用程序备份我的/home分区。为此,我首先必须卸载要备份的分区。大多数情况下,这很容易,但是被很多进程使用,以至于在不首先杀死所有这些进程的情况下无法卸载它。/dev/sda6partclone/home
因此,我正在寻找一种无需安装即可启动 Ubuntu 的方法/home,这样我就可以备份未安装的/dev/sda6分区。那可能吗?
需要明确的是,如果这款特殊的靴子可以是“一次性的”,那就太好了。所以我不是在寻找以不会被安装的方式改变/etc/fstab的方法/dev/sda6。那是因为这需要我/etc/fstab每次更改两次才能进行备份。
我知道还有其他可用的备份解决方案,例如deja-dup. 不过我想用partclone。
我目前正在尝试将数据从我的计算机硬盘备份到外部硬盘,同时从 USB 实时启动到 Ubuntu,但我遇到了一些问题。你看,我无法安装我的硬盘驱动器。每当我尝试时,我总是会遇到以下两个错误之一:
fuse: failed to access mountpoint [file I'm trying to mount to]: No such file or directory
Run Code Online (Sandbox Code Playgroud)
或者
Error mounting: mount exited with exit code 21: mount: according to mtab, [drive] is already mounted on [file I'm trying to mount to]
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
编辑:所以事实证明我正在使用的 USB 有问题。我只是用不同的方法试了一下,效果很好。
我在主硬盘上安装了 Ubuntu,在辅助硬盘上安装了 Windows 8。当我尝试访问辅助硬盘时,出现以下消息:
错误挂载:挂载退出,退出代码 14:Windows 休眠,拒绝挂载。无法挂载“/dev/sda1”:不允许操作 NTFS 分区处于休眠状态。请正确恢复和关闭 Windows,或使用 'ro' 挂载选项以只读方式挂载卷,或使用 'remove_hiberfile' 挂载选项以读写方式挂载卷。
我是 Linux 新手。我怎么做?
mount ×10
hard-drive ×2
20.04 ×1
backup ×1
bash ×1
drive ×1
external-hdd ×1
filesystem ×1
fuse ×1
multipass ×1
nfs ×1
partitioning ×1
sound ×1
startup ×1
suspend ×1
udisks ×1
unmount ×1
windows ×1