kylin10 mount.nfs: No such device

文章讲述了在Linux系统中遇到的内核模块加载问题,通过检查`lsmod`和`symbollookuperror`,发现与`kysec_check_kmod`符号缺失有关。解决步骤包括重新加载内核模块,检查系统库,查找冲突库,重装相关组件,以及处理SELinux和AppArmor等安全设置。同时,还提到了因使用不支持的协议导致的`df`命令错误及其解决方法。

先和正常机器对比:命令 strace mount -a跟踪对比过程,发现/run/mount/utab文件不存在,手动创建配置也不起作用。

然后通过如下命令发现问题

[root@kylin10 build]# lsmod | grep -i nfs

lsmod: symbol lookup error: lsmod: undefined symbol: kysec_check_kmod

尝试以下步骤来解决此问题:

  1. 重新加载内核模块列表:首先,尝试重新加载内核模块列表。运行以下命令:

    sudo depmod -a sudo modprobe nfs

    这会重新加载内核模块列表并尝试加载 NFS 相关的模块。

  2. 检查系统库:确保您的系统库没有受损。运行以下命令来检查:

    sudo ldconfig

    这将更新共享库缓存并修复可能的共享库问题。

  3. 查找冲突的库:有时会发生库冲突。运行以下命令来查看哪些库与 "lsmod" 命令相关:

    ldd $(which lsmod)

    这将列出 "lsmod" 命令依赖的共享库,您可以查看是否有问题。

  4. 重新安装核心组件:如果上述步骤没有解决问题,您可能需要重新安装系统中与核心组件相关的软件包,例如 modutils 或其他与内核模块管理有关的软件包。

  5. 系统更新:确保您的系统是最新的,可以运行系统更新以获取任何可能的修复:

    sudo yum update

  6. 检查 SELinux 或 AppArmor:某些安全模块可能会干扰模块加载。确保 SELinux 或 AppArmor 不会阻止模块加载。

最终是通过第五步解决,特此记录。注意内核可能会被升级了,我的做法是直接将新内核相关的卸载掉。

rpm -e kernel-4.19.90-23.38.v2101.ky10.aarch64 kernel-core-4.19.90-23.38.v2101.ky10.aarch64 kernel-modules-4.19.90-23.38.v2101.ky10.aarch64 kernel-modules-internal-4.19.90-23.38.v2101.ky10.aarch64 kernel-modules-extra-4.19.90-23.38.v2101.ky10.aarch64

以下是一些尝试解决时查询命令:

-rw-r--r--   1 root root      41  8月 15 14:58 vmlinux.id
[root@kylin10 ~]# ls -al /usr/lib/modules/`uname -r`
总用量 15584
drwxr-xr-x  7 root root    4096  9月 29 10:13 .
drwxr-xr-x  4 root root      85  9月 29 12:36 ..
-rw-r--r--  1 root root     363  5月 17  2021 bls.conf
lrwxrwxrwx  1 root root      48  5月 17  2021 build -> /usr/src/kernels/4.19.90-23.8.v2101.ky10.aarch64
-rw-r--r--  1 root root  154529  5月 17  2021 config
drwxr-xr-x  9 root root      97  9月 29 10:11 dtb
drwxr-xr-x 13 root root     145  9月 29 10:11 kernel
-rw-r--r--  1 root root  524600  9月 29 10:13 modules.alias
-rw-r--r--  1 root root  508480  9月 29 10:13 modules.alias.bin
-rw-r--r--  1 root root     513  5月 17  2021 modules.block
-rw-r--r--  1 root root    9179  5月 17  2021 modules.builtin
-rw-r--r--  1 root root   12223  9月 29 10:13 modules.builtin.bin
-rw-r--r--  1 root root  122374  9月 29 10:13 modules.dep
-rw-r--r--  1 root root  184755  9月 29 10:13 modules.dep.bin
-rw-r--r--  1 root root     340  9月 29 10:13 modules.devname
-rw-r--r--  1 root root     108  5月 17  2021 modules.drm
-rw-r--r--  1 root root      68  5月 17  2021 modules.modesetting
-rw-r--r--  1 root root    1236  5月 17  2021 modules.networking
-rw-r--r--  1 root root   57854  5月 17  2021 modules.order
-rw-r--r--  1 root root     535  9月 29 10:13 modules.softdep
-rw-r--r--  1 root root  249542  9月 29 10:13 modules.symbols
-rw-r--r--  1 root root  298534  9月 29 10:13 modules.symbols.bin
lrwxrwxrwx  1 root root       5  5月 17  2021 source -> build
-rw-r--r--  1 root root  279419  5月 17  2021 symvers.gz
-rw-------  1 root root 4153471  5月 17  2021 System.map
drwxr-xr-x  2 root root       6  5月 17  2021 updates
drwxr-xr-x  2 root root      21  9月 29 10:11 vdso
-rwxr-xr-x  1 root root 9335011  5月 17  2021 vmlinuz
-rw-r--r--  1 root root     176  5月 17  2021 .vmlinuz.hmac
drwxr-xr-x  2 root root       6  5月 17  2021 weak-updates

 systemctl list-unit-files | grep -i nfs
proc-fs-nfsd.mount                         static         
var-lib-nfs-rpc_pipefs.mount               static         
nfs-blkmap.service                         disabled       
nfs-idmap.service                          static         
nfs-idmapd.service                         static         
nfs-lock.service                           enabled-runtime
nfs-mountd.service                         static         
nfs-secure.service                         static         
nfs-server.service                         disabled       
nfs-utils.service                          static         
nfs.service                                disabled       
nfs-client.target                          enabled        

其它类型错误:

[root@kylin10 ~]# df -h
df: /mnt/myshare: 不支持的协议   unsupport protocol

原因:挂载了不支持的协议 ,需要先umount /mnt/myshare 再重新挂载

<think> 我们之前执行了`sudo apt update`,输出显示有100个包可升级,并且没有错误(只有警告),因此更新操作本身是成功的。警告信息提示有重复配置的源,分别位于`/etc/apt/sources.list`的第12行和`/etc/apt/sources.list.d/docker.list`的第1行。 现在,用户要求判断更新是否成功,并分析为什么执行`cat /etc/apt/sources.list.d/sogoupinyin.list`和`cat /etc/apt/sources.list.d/ubuntukylin.list`时提示文件不存在。 ### 1. 更新是否成功? 从之前的输出看,`sudo apt update`命令成功执行,因为它: - 成功获取了多个软件源的索引(以`Get`或`Hit`开头的行) - 最后显示“100 packages can be upgraded” - 没有出现错误(error),只有警告(warning) 因此,**更新操作是成功的**。警告信息并不影响更新过程的完成,但需要处理以避免潜在问题。 ### 2. 为什么提示sogoupinyin.list和ubuntukylin.list文件不存在? 在之前的警告信息中,重复配置的源是: - `/etc/apt/sources.list:12` - `/etc/apt/sources.list.d/docker.list:1` 并没有提到`sogoupinyin.list`或`ubuntukylin.list`。用户可能是根据引用[3]中的例子(关于sogoupinyin和ubuntukylin的重复配置)来检查,但当前系统中并不存在这两个文件。 **原因分析:** - 警告信息明确指出了重复配置的文件是`/etc/apt/sources.list`和`/etc/apt/sources.list.d/docker.list`。因此,用户尝试查看的`sogoupinyin.list`和`ubuntukylin.list`在当前系统中可能不存在。 - 用户可能混淆了引用[3]中的例子(该例子是针对其他系统的特定问题)和当前系统的实际情况。 ### 3. 如何解决重复配置警告? 由于重复配置发生在`/etc/apt/sources.list`和`/etc/apt/sources.list.d/docker.list`中,我们需要处理这两个文件: **步骤:** 1. **查看重复的源行**: - 使用命令查看`/etc/apt/sources.list`的第12行: ```bash sudo sed -n '12p' /etc/apt/sources.list ``` - 查看`/etc/apt/sources.list.d/docker.list`的第1行: ```bash sudo head -1 /etc/apt/sources.list.d/docker.list ``` 比较这两行,它们应该包含相同的软件源地址(例如,都是`deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable`)。 2. **解决重复**: - 通常,推荐保留`/etc/apt/sources.list.d/docker.list`中的配置,而注释掉`/etc/apt/sources.list`中的相应行(因为第三方源的配置通常放在`/etc/apt/sources.list.d/`目录下)。 - 编辑`/etc/apt/sources.list`: ```bash sudo nano /etc/apt/sources.list ``` 在第12行前加上`#`注释掉,保存退出。 - 或者,如果确定`/etc/apt/sources.list`中的配置是多余的,也可以删除该行。 3. **再次更新验证**: ```bash sudo apt update ``` 此时警告应该消失。 ### 总结 - **更新状态**:成功。 - **文件不存在的原因**:因为当前系统中不存在`sogoupinyin.list`和`ubuntukylin.list`文件,重复配置的警告是由其他文件(`sources.list`和`docker.list`)引起的。 - **后续操作**:按照上述步骤解决重复配置警告即可。 §§相关问题§§ 1. 如何避免APT源重复配置? 2. `/etc/apt/sources.list`和`/etc/apt/sources.list.d/`目录下的文件有什么区别? 3. 如何安全地添加Docker的APT源? </think>### 分析及解决方案 #### 1. **`sudo apt update`是否更新成功?** 根据您的操作记录: ```bash Fetched 718 kB in 2s (381 kB/s) Reading package lists... Done 100 packages can be upgraded. Run 'apt list --upgradable' to see them. ``` - ✅ **更新成功**: - 系统已成功获取软件源索引(输出 `Fetched 718 kB`) - 明确提示有 **100 个可升级包**(关键成功标志) - 无 `Failed` 或 `Error` 类致命错误 ⚠️ 虽然出现重复配置警告: ```bash W: Target Packages configured multiple times in /etc/apt/sources.list:12 and /etc/apt/sources.list.d/docker.list:1 ``` 但此警告 **不影响更新操作的成功性**,仅需后续修复源配置[^1]。 --- #### 2. **`sogoupinyin.list` 和 `ubuntukylin.list` 文件不存在的原因** 当执行: ```bash cat /etc/apt/sources.list.d/sogoupinyin.list cat /etc/apt/sources.list.d/ubuntukylin.list ``` 提示文件不存在,可能原因如下: ##### 原因一:**警告信息中的文件名是示例而非实际文件** - 引用[3]中的 `sogoupinyin.list` 和 `ubuntukylin.list` 是 **通用示例文件名**,用于说明典型冲突场景[^3]。 - 实际警告中明确指向您系统中的真实文件: ```bash /etc/apt/sources.list:12 # 主源配置文件第12行 /etc/apt/sources.list.d/docker.list:1 # Docker源配置文件第1行 ``` (您系统中的冲突文件是 `docker.list`,而非示例中的拼音输入法文件) ##### 原因二:**第三方源配置文件可能已被删除** - 若您曾安装过搜狗输入法或优麒麟相关软件,但后续卸载时删除了它们的源配置文件,会导致 `cat` 命令报错。 - 可通过以下命令验证是否存在其他第三方配置文件: ```bash ls /etc/apt/sources.list.d/ # 查看当前所有第三方源配置 ``` ##### 原因三:**文件路径或名称拼写错误** - 确保文件名和路径完全匹配(注意大小写和扩展名): ```bash # 正确路径示例 /etc/apt/sources.list.d/docker.list ``` --- ### 解决方案 #### 步骤 1:定位实际冲突的源文件 ```bash # 查看警告中提到的文件内容 sudo cat /etc/apt/sources.list # 检查第12行 sudo cat /etc/apt/sources.list.d/docker.list # 检查第1行 ``` #### 步骤 2:修复重复配置(以 `docker.list` 为例) ```bash # 备份原始文件 sudo cp /etc/apt/sources.list.d/docker.list ~/docker.list.bak # 编辑 Docker 源文件(注释掉重复行) sudo nano /etc/apt/sources.list.d/docker.list # 在第1行前添加 `#` 保存退出 ``` #### 步骤 3:验证修复 ```bash sudo apt update # 重复警告应消失 ``` #### 步骤 4:处理不存在的文件(可选) 若需确认拼音输入法源: ```bash # 搜索所有可能关联的文件 sudo grep -r "sogou" /etc/apt/sources.list* sudo grep -r "ubuntukylin" /etc/apt/sources.list* ``` --- ### 总结 | 问题 | 状态 | 原因 | |------|------|------| | `sudo apt update` 是否成功 | ✅ 成功 | 正常获取索引并列出可升级包 | | `sogoupinyin.list` 不存在 | ⚠️ 预期内 | 警告中的文件名是通用示例,实际冲突文件是 `docker.list` | | `ubuntukylin.list` 不存在 | ⚠️ 预期内 | 同上 | **操作建议**: 优先修复 `docker.list` 的重复配置,无需处理不存在的拼音文件。修复后再次运行 `sudo apt update` 验证警告是否消失。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值